Skip to content

LFOs

bash
s32 --loopback lfo cfg get s32 2
s32 --loopback lfo cfg set s32 2 wave=sine freq=3.75 enabled=on
s32 --loopback lfo cfg set s32 2 enabled=on freq=2.5 amp=0.8 sync=off
s32 --loopback lfo assign list
s32 --loopback lfo assign add 0 target=device rack=100 device=1000 param=bypass min=0 max=1
s32 --loopback lfo assign add 0 target=lfo targetLfo=1 param=amplitude min=0 max=1
s32 --loopback lfo assign add 0 target=macro pot=2 macro=1 min=0 max=1
s32 --loopback lfo assign remove 2
s32 --loopback lfo assign remove 1
s32 --loopback lfo assign remove 0

DOMAIN is s32 (onboard pool) or cv16 (expander pool). INDEX is the LFO in that pool (0–15).

Config

lfo cfg get DOMAIN INDEX

lfo cfg set DOMAIN INDEX FREQ_HZ — sets frequency in Hz and enables the LFO.

lfo cfg set DOMAIN INDEX key=value … writes any field, leaving the rest as read. The device rejects values outside the live domain (freq=-1, amplitude/depth outside 0…1, inverted S32 min/max) instead of storing them.

KeyS32CV16
freq / frequencyHz (or subdivision when sync=on)same
bpmClock subdivisionsame
enabledon / offon / off
wavesine, triangle, square, saw, pulse, s-h, exponential, stepped, double-sine, ramp, bell, double-trianglesame
phaseDegreesdegrees
offset
syncon / offon / off
amp / amplitudeyes
min / maxyes
depthyes

Assignments

lfo assign add LFO target=device|lfo|macro …

rack / device are ids from rack list / device list, not slot indices. They apply to target=device only. target=lfo uses targetLfo=. target=macro uses pot= (0–31) and macro= (0–3); omitting either is an error.

targetMeaningAddressingparam=
deviceRack device parameterrack=ID device=IDParameterId name (bypass, clock-division, mode, …) or 0–255
lfoAnother LFO parameter (same domain)targetLfo=INDEXLFO parameter name (amplitude, frequency, phase, …) or 0–255
macroKnob macropot=POT macro=MACROunused

param=bypass is ParameterId 0, the same token macro set … mode=device and device param get/set already accept. Numeric param=0 still works.

LFO-to-LFO rows must stay in the same domain; the device rejects cross-domain rows, self-loops, and longer LFO-to-LFO cycles.