Skip to content

Examples

All of these run as written with --loopback. Against a board, drop --loopback or pass --usb, and add --yes on destructive lines if you are not in a TTY.

--loopback is per process: chain steps with repl or --script, not separate shells.

Hello → list → pull / push

bash
s32 --loopback hello
s32 --loopback list

One process for the transfer:

text
s32 --loopback repl
s32> pull internal 1 /tmp/p1.s32p
s32> push /tmp/p1.s32p
s32> active
s32> push /tmp/p1.s32p --activate
s32> active

Edit a CC macro

Each knob has four macros. Modes use names, not integers — see Macros.

text
s32> macro get 4 1
s32> macro set 4 1 mode=cc msb=74 channel=3
s32> macro get 4 1
s32> potname set 4 Cutoff

Route a knob to a rack device parameter:

text
s32> macro set 4 0 mode=device rack=100 device=1000 param=bypass min=0 max=1

Assign an LFO to the same ParameterId. param= follows target: ParameterId names for device, LFO names for target=lfo. Macro targets use pot= / macro= (0–31 / 0–3), not rack / device.

text
s32> lfo assign add 0 target=device rack=100 device=1000 param=bypass min=0 max=1
s32> lfo assign add 0 target=lfo targetLfo=1 param=amplitude min=0 max=1
s32> lfo assign add 0 target=macro pot=2 macro=1 min=0 max=1

Add a device

text
s32> schema
s32> rack list
s32> device list 0
s32> device add 0 clock
s32> device param set 0 1 bypass 1
s32> device param get 0 1 bypass

device add takes a type name (clock, midi-in, step-seq, …) or the numeric schema id. device param uses ParameterId (bypass is 0). On hardware, Clock’s division control is clock-division, not slot 1 (1 is MODE).

Screen PNG

text
s32> view nav racks
s32> screen png /tmp/oled.png

Watch pots

bash
s32 --usb watch 8000

Turn knobs on the hardware. The simulator has no physical pots; watch still prints events produced by earlier edits in the same process.