From d2e28b04158fe5b74bb28bf3d4bb1fb4f574fec4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Forment?= Date: Tue, 10 Feb 2026 19:41:59 +0100 Subject: [PATCH] Feat: all engine params use varargs and can eat the stack, document it as such --- crates/forth/src/words/effects.rs | 360 +++++++++++++++--------------- crates/forth/src/words/midi.rs | 28 +-- crates/forth/src/words/sound.rs | 220 +++++++++--------- 3 files changed, 304 insertions(+), 304 deletions(-) diff --git a/crates/forth/src/words/effects.rs b/crates/forth/src/words/effects.rs index 37a0f3a..17dd6b3 100644 --- a/crates/forth/src/words/effects.rs +++ b/crates/forth/src/words/effects.rs @@ -7,71 +7,71 @@ pub(super) const WORDS: &[Word] = &[ name: "gain", aliases: &[], category: "Envelope", - stack: "(f --)", + stack: "(v.. --)", desc: "Set volume (0-1)", example: "0.8 gain", compile: Param, - varargs: false, + varargs: true, }, Word { name: "postgain", aliases: &[], category: "Envelope", - stack: "(f --)", + stack: "(v.. --)", desc: "Set post gain", example: "1.2 postgain", compile: Param, - varargs: false, + varargs: true, }, Word { name: "velocity", aliases: &[], category: "Envelope", - stack: "(f --)", + stack: "(v.. --)", desc: "Set velocity", example: "100 velocity", compile: Param, - varargs: false, + varargs: true, }, Word { name: "attack", aliases: &["att"], category: "Envelope", - stack: "(f --)", + stack: "(v.. --)", desc: "Set attack time", example: "0.01 attack", compile: Param, - varargs: false, + varargs: true, }, Word { name: "decay", aliases: &["dec"], category: "Envelope", - stack: "(f --)", + stack: "(v.. --)", desc: "Set decay time", example: "0.1 decay", compile: Param, - varargs: false, + varargs: true, }, Word { name: "sustain", aliases: &["sus"], category: "Envelope", - stack: "(f --)", + stack: "(v.. --)", desc: "Set sustain level", example: "0.5 sustain", compile: Param, - varargs: false, + varargs: true, }, Word { name: "release", aliases: &["rel"], category: "Envelope", - stack: "(f --)", + stack: "(v.. --)", desc: "Set release time", example: "0.3 release", compile: Param, - varargs: false, + varargs: true, }, Word { name: "adsr", @@ -97,836 +97,836 @@ pub(super) const WORDS: &[Word] = &[ name: "penv", aliases: &[], category: "Envelope", - stack: "(f --)", + stack: "(v.. --)", desc: "Set pitch envelope", example: "0.5 penv", compile: Param, - varargs: false, + varargs: true, }, Word { name: "patt", aliases: &[], category: "Envelope", - stack: "(f --)", + stack: "(v.. --)", desc: "Set pitch attack", example: "0.01 patt", compile: Param, - varargs: false, + varargs: true, }, Word { name: "pdec", aliases: &[], category: "Envelope", - stack: "(f --)", + stack: "(v.. --)", desc: "Set pitch decay", example: "0.1 pdec", compile: Param, - varargs: false, + varargs: true, }, Word { name: "psus", aliases: &[], category: "Envelope", - stack: "(f --)", + stack: "(v.. --)", desc: "Set pitch sustain", example: "0 psus", compile: Param, - varargs: false, + varargs: true, }, Word { name: "prel", aliases: &[], category: "Envelope", - stack: "(f --)", + stack: "(v.. --)", desc: "Set pitch release", example: "0.1 prel", compile: Param, - varargs: false, + varargs: true, }, // Filter Word { name: "lpf", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set lowpass frequency", example: "2000 lpf", compile: Param, - varargs: false, + varargs: true, }, Word { name: "lpq", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set lowpass resonance", example: "0.5 lpq", compile: Param, - varargs: false, + varargs: true, }, Word { name: "lpe", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set lowpass envelope", example: "0.5 lpe", compile: Param, - varargs: false, + varargs: true, }, Word { name: "lpa", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set lowpass attack", example: "0.01 lpa", compile: Param, - varargs: false, + varargs: true, }, Word { name: "lpd", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set lowpass decay", example: "0.1 lpd", compile: Param, - varargs: false, + varargs: true, }, Word { name: "lps", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set lowpass sustain", example: "0.5 lps", compile: Param, - varargs: false, + varargs: true, }, Word { name: "lpr", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set lowpass release", example: "0.3 lpr", compile: Param, - varargs: false, + varargs: true, }, Word { name: "hpf", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set highpass frequency", example: "100 hpf", compile: Param, - varargs: false, + varargs: true, }, Word { name: "hpq", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set highpass resonance", example: "0.5 hpq", compile: Param, - varargs: false, + varargs: true, }, Word { name: "hpe", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set highpass envelope", example: "0.5 hpe", compile: Param, - varargs: false, + varargs: true, }, Word { name: "hpa", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set highpass attack", example: "0.01 hpa", compile: Param, - varargs: false, + varargs: true, }, Word { name: "hpd", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set highpass decay", example: "0.1 hpd", compile: Param, - varargs: false, + varargs: true, }, Word { name: "hps", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set highpass sustain", example: "0.5 hps", compile: Param, - varargs: false, + varargs: true, }, Word { name: "hpr", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set highpass release", example: "0.3 hpr", compile: Param, - varargs: false, + varargs: true, }, Word { name: "bpf", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set bandpass frequency", example: "1000 bpf", compile: Param, - varargs: false, + varargs: true, }, Word { name: "bpq", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set bandpass resonance", example: "0.5 bpq", compile: Param, - varargs: false, + varargs: true, }, Word { name: "bpe", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set bandpass envelope", example: "0.5 bpe", compile: Param, - varargs: false, + varargs: true, }, Word { name: "bpa", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set bandpass attack", example: "0.01 bpa", compile: Param, - varargs: false, + varargs: true, }, Word { name: "bpd", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set bandpass decay", example: "0.1 bpd", compile: Param, - varargs: false, + varargs: true, }, Word { name: "bps", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set bandpass sustain", example: "0.5 bps", compile: Param, - varargs: false, + varargs: true, }, Word { name: "bpr", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set bandpass release", example: "0.3 bpr", compile: Param, - varargs: false, + varargs: true, }, Word { name: "llpf", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set ladder lowpass frequency", example: "2000 llpf", compile: Param, - varargs: false, + varargs: true, }, Word { name: "llpq", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set ladder lowpass resonance", example: "0.5 llpq", compile: Param, - varargs: false, + varargs: true, }, Word { name: "lhpf", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set ladder highpass frequency", example: "100 lhpf", compile: Param, - varargs: false, + varargs: true, }, Word { name: "lhpq", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set ladder highpass resonance", example: "0.5 lhpq", compile: Param, - varargs: false, + varargs: true, }, Word { name: "lbpf", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set ladder bandpass frequency", example: "1000 lbpf", compile: Param, - varargs: false, + varargs: true, }, Word { name: "lbpq", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set ladder bandpass resonance", example: "0.5 lbpq", compile: Param, - varargs: false, + varargs: true, }, Word { name: "ftype", aliases: &[], category: "Filter", - stack: "(n --)", + stack: "(v.. --)", desc: "Set filter type", example: "1 ftype", compile: Param, - varargs: false, + varargs: true, }, Word { name: "eqlo", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set low shelf gain (dB)", example: "3 eqlo", compile: Param, - varargs: false, + varargs: true, }, Word { name: "eqmid", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set mid peak gain (dB)", example: "-2 eqmid", compile: Param, - varargs: false, + varargs: true, }, Word { name: "eqhi", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set high shelf gain (dB)", example: "1 eqhi", compile: Param, - varargs: false, + varargs: true, }, Word { name: "tilt", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set tilt EQ (-1 dark, 1 bright)", example: "-0.5 tilt", compile: Param, - varargs: false, + varargs: true, }, Word { name: "comb", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set comb filter mix", example: "0.5 comb", compile: Param, - varargs: false, + varargs: true, }, Word { name: "combfreq", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set comb frequency", example: "200 combfreq", compile: Param, - varargs: false, + varargs: true, }, Word { name: "combfeedback", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set comb feedback", example: "0.5 combfeedback", compile: Param, - varargs: false, + varargs: true, }, Word { name: "combdamp", aliases: &[], category: "Filter", - stack: "(f --)", + stack: "(v.. --)", desc: "Set comb damping", example: "0.5 combdamp", compile: Param, - varargs: false, + varargs: true, }, // Reverb Word { name: "verb", aliases: &[], category: "Reverb", - stack: "(f --)", + stack: "(v.. --)", desc: "Set reverb mix", example: "0.3 verb", compile: Param, - varargs: false, + varargs: true, }, Word { name: "verbdecay", aliases: &[], category: "Reverb", - stack: "(f --)", + stack: "(v.. --)", desc: "Set reverb decay (0-1)", example: "0.75 verbdecay", compile: Param, - varargs: false, + varargs: true, }, Word { name: "verbdamp", aliases: &[], category: "Reverb", - stack: "(f --)", + stack: "(v.. --)", desc: "Set reverb damping", example: "0.5 verbdamp", compile: Param, - varargs: false, + varargs: true, }, Word { name: "verbpredelay", aliases: &[], category: "Reverb", - stack: "(f --)", + stack: "(v.. --)", desc: "Set reverb predelay (0-1)", example: "0.1 verbpredelay", compile: Param, - varargs: false, + varargs: true, }, Word { name: "verbdiff", aliases: &[], category: "Reverb", - stack: "(f --)", + stack: "(v.. --)", desc: "Set reverb diffusion", example: "0.7 verbdiff", compile: Param, - varargs: false, + varargs: true, }, Word { name: "verbtype", aliases: &[], category: "Reverb", - stack: "(s --)", + stack: "(v.. --)", desc: "Set reverb algorithm (vital or dattorro)", example: "vital verbtype", compile: Param, - varargs: false, + varargs: true, }, Word { name: "verbchorus", aliases: &[], category: "Reverb", - stack: "(f --)", + stack: "(v.. --)", desc: "Set reverb chorus amount (0-1)", example: "0.3 verbchorus", compile: Param, - varargs: false, + varargs: true, }, Word { name: "verbchorusfreq", aliases: &[], category: "Reverb", - stack: "(f --)", + stack: "(v.. --)", desc: "Set reverb chorus frequency (0-1)", example: "0.2 verbchorusfreq", compile: Param, - varargs: false, + varargs: true, }, Word { name: "verbprelow", aliases: &[], category: "Reverb", - stack: "(f --)", + stack: "(v.. --)", desc: "Set reverb pre-low filter (0-1)", example: "0.2 verbprelow", compile: Param, - varargs: false, + varargs: true, }, Word { name: "verbprehigh", aliases: &[], category: "Reverb", - stack: "(f --)", + stack: "(v.. --)", desc: "Set reverb pre-high filter (0-1)", example: "0.8 verbprehigh", compile: Param, - varargs: false, + varargs: true, }, Word { name: "verblowcut", aliases: &[], category: "Reverb", - stack: "(f --)", + stack: "(v.. --)", desc: "Set reverb low cut frequency (0-1)", example: "0.5 verblowcut", compile: Param, - varargs: false, + varargs: true, }, Word { name: "verbhighcut", aliases: &[], category: "Reverb", - stack: "(f --)", + stack: "(v.. --)", desc: "Set reverb high cut frequency (0-1)", example: "0.7 verbhighcut", compile: Param, - varargs: false, + varargs: true, }, Word { name: "verblowgain", aliases: &[], category: "Reverb", - stack: "(f --)", + stack: "(v.. --)", desc: "Set reverb low gain (0-1)", example: "0.4 verblowgain", compile: Param, - varargs: false, + varargs: true, }, Word { name: "size", aliases: &[], category: "Reverb", - stack: "(f --)", + stack: "(v.. --)", desc: "Set size", example: "1 size", compile: Param, - varargs: false, + varargs: true, }, // Delay Word { name: "delay", aliases: &[], category: "Delay", - stack: "(f --)", + stack: "(v.. --)", desc: "Set delay mix", example: "0.3 delay", compile: Param, - varargs: false, + varargs: true, }, Word { name: "delaytime", aliases: &[], category: "Delay", - stack: "(f --)", + stack: "(v.. --)", desc: "Set delay time", example: "0.25 delaytime", compile: Param, - varargs: false, + varargs: true, }, Word { name: "delayfeedback", aliases: &[], category: "Delay", - stack: "(f --)", + stack: "(v.. --)", desc: "Set delay feedback", example: "0.5 delayfeedback", compile: Param, - varargs: false, + varargs: true, }, Word { name: "delaytype", aliases: &[], category: "Delay", - stack: "(n --)", + stack: "(v.. --)", desc: "Set delay type", example: "1 delaytype", compile: Param, - varargs: false, + varargs: true, }, // Lo-fi Word { name: "crush", aliases: &[], category: "Lo-fi", - stack: "(f --)", + stack: "(v.. --)", desc: "Set bit crush", example: "8 crush", compile: Param, - varargs: false, + varargs: true, }, Word { name: "fold", aliases: &[], category: "Lo-fi", - stack: "(f --)", + stack: "(v.. --)", desc: "Set wave fold", example: "2 fold", compile: Param, - varargs: false, + varargs: true, }, Word { name: "wrap", aliases: &[], category: "Lo-fi", - stack: "(f --)", + stack: "(v.. --)", desc: "Set wave wrap", example: "0.5 wrap", compile: Param, - varargs: false, + varargs: true, }, Word { name: "distort", aliases: &[], category: "Lo-fi", - stack: "(f --)", + stack: "(v.. --)", desc: "Set distortion", example: "0.5 distort", compile: Param, - varargs: false, + varargs: true, }, Word { name: "distortvol", aliases: &[], category: "Lo-fi", - stack: "(f --)", + stack: "(v.. --)", desc: "Set distortion volume", example: "0.8 distortvol", compile: Param, - varargs: false, + varargs: true, }, // Stereo Word { name: "pan", aliases: &[], category: "Stereo", - stack: "(f --)", + stack: "(v.. --)", desc: "Set pan (-1 to 1)", example: "0.5 pan", compile: Param, - varargs: false, + varargs: true, }, Word { name: "width", aliases: &[], category: "Stereo", - stack: "(f --)", + stack: "(v.. --)", desc: "Set stereo width (0 mono, 1 normal, 2 wide)", example: "0 width", compile: Param, - varargs: false, + varargs: true, }, Word { name: "haas", aliases: &[], category: "Stereo", - stack: "(f --)", + stack: "(v.. --)", desc: "Set Haas delay in ms (spatial placement)", example: "8 haas", compile: Param, - varargs: false, + varargs: true, }, // Mod FX Word { name: "phaser", aliases: &[], category: "Mod FX", - stack: "(f --)", + stack: "(v.. --)", desc: "Set phaser rate", example: "1 phaser", compile: Param, - varargs: false, + varargs: true, }, Word { name: "phaserdepth", aliases: &[], category: "Mod FX", - stack: "(f --)", + stack: "(v.. --)", desc: "Set phaser depth", example: "0.5 phaserdepth", compile: Param, - varargs: false, + varargs: true, }, Word { name: "phasersweep", aliases: &[], category: "Mod FX", - stack: "(f --)", + stack: "(v.. --)", desc: "Set phaser sweep", example: "0.5 phasersweep", compile: Param, - varargs: false, + varargs: true, }, Word { name: "phasercenter", aliases: &[], category: "Mod FX", - stack: "(f --)", + stack: "(v.. --)", desc: "Set phaser center", example: "1000 phasercenter", compile: Param, - varargs: false, + varargs: true, }, Word { name: "flanger", aliases: &[], category: "Mod FX", - stack: "(f --)", + stack: "(v.. --)", desc: "Set flanger rate", example: "0.5 flanger", compile: Param, - varargs: false, + varargs: true, }, Word { name: "flangerdepth", aliases: &[], category: "Mod FX", - stack: "(f --)", + stack: "(v.. --)", desc: "Set flanger depth", example: "0.5 flangerdepth", compile: Param, - varargs: false, + varargs: true, }, Word { name: "flangerfeedback", aliases: &[], category: "Mod FX", - stack: "(f --)", + stack: "(v.. --)", desc: "Set flanger feedback", example: "0.5 flangerfeedback", compile: Param, - varargs: false, + varargs: true, }, Word { name: "chorus", aliases: &[], category: "Mod FX", - stack: "(f --)", + stack: "(v.. --)", desc: "Set chorus rate", example: "1 chorus", compile: Param, - varargs: false, + varargs: true, }, Word { name: "chorusdepth", aliases: &[], category: "Mod FX", - stack: "(f --)", + stack: "(v.. --)", desc: "Set chorus depth", example: "0.5 chorusdepth", compile: Param, - varargs: false, + varargs: true, }, Word { name: "chorusdelay", aliases: &[], category: "Mod FX", - stack: "(f --)", + stack: "(v.. --)", desc: "Set chorus delay", example: "0.02 chorusdelay", compile: Param, - varargs: false, + varargs: true, }, Word { name: "feedback", aliases: &["fb"], category: "Mod FX", - stack: "(f --)", + stack: "(v.. --)", desc: "Set feedback delay level", example: "0.7 feedback", compile: Param, - varargs: false, + varargs: true, }, Word { name: "fbtime", aliases: &["fbt"], category: "Mod FX", - stack: "(f --)", + stack: "(v.. --)", desc: "Set feedback delay time in ms", example: "30 fbtime", compile: Param, - varargs: false, + varargs: true, }, Word { name: "fbdamp", aliases: &["fbd"], category: "Mod FX", - stack: "(f --)", + stack: "(v.. --)", desc: "Set feedback delay damping", example: "0.3 fbdamp", compile: Param, - varargs: false, + varargs: true, }, Word { name: "fblfo", aliases: &[], category: "Mod FX", - stack: "(f --)", + stack: "(v.. --)", desc: "Set feedback delay LFO rate in Hz", example: "2 fblfo", compile: Param, - varargs: false, + varargs: true, }, Word { name: "fblfodepth", aliases: &[], category: "Mod FX", - stack: "(f --)", + stack: "(v.. --)", desc: "Set feedback delay LFO depth", example: "0.5 fblfodepth", compile: Param, - varargs: false, + varargs: true, }, Word { name: "fblfoshape", aliases: &[], category: "Mod FX", - stack: "(s --)", + stack: "(v.. --)", desc: "Set feedback delay LFO shape", example: "tri fblfoshape", compile: Param, - varargs: false, + varargs: true, }, ]; diff --git a/crates/forth/src/words/midi.rs b/crates/forth/src/words/midi.rs index 88fa338..53087f8 100644 --- a/crates/forth/src/words/midi.rs +++ b/crates/forth/src/words/midi.rs @@ -6,61 +6,61 @@ pub(super) const WORDS: &[Word] = &[ name: "chan", aliases: &[], category: "MIDI", - stack: "(n --)", + stack: "(v.. --)", desc: "Set MIDI channel 1-16", example: "1 chan", compile: Param, - varargs: false, + varargs: true, }, Word { name: "ccnum", aliases: &[], category: "MIDI", - stack: "(n --)", + stack: "(v.. --)", desc: "Set MIDI CC number 0-127", example: "1 ccnum", compile: Param, - varargs: false, + varargs: true, }, Word { name: "ccout", aliases: &[], category: "MIDI", - stack: "(n --)", + stack: "(v.. --)", desc: "Set MIDI CC output value 0-127", example: "64 ccout", compile: Param, - varargs: false, + varargs: true, }, Word { name: "bend", aliases: &[], category: "MIDI", - stack: "(f --)", + stack: "(v.. --)", desc: "Set pitch bend -1.0 to 1.0 (0 = center)", example: "0.5 bend", compile: Param, - varargs: false, + varargs: true, }, Word { name: "pressure", aliases: &[], category: "MIDI", - stack: "(n --)", + stack: "(v.. --)", desc: "Set channel pressure (aftertouch) 0-127", example: "64 pressure", compile: Param, - varargs: false, + varargs: true, }, Word { name: "program", aliases: &[], category: "MIDI", - stack: "(n --)", + stack: "(v.. --)", desc: "Set program change number 0-127", example: "0 program", compile: Param, - varargs: false, + varargs: true, }, Word { name: "m.", @@ -126,10 +126,10 @@ pub(super) const WORDS: &[Word] = &[ name: "dev", aliases: &[], category: "MIDI", - stack: "(n --)", + stack: "(v.. --)", desc: "Set MIDI device slot 0-3 for output/input", example: "1 dev 60 note m.", compile: Param, - varargs: false, + varargs: true, }, ]; diff --git a/crates/forth/src/words/sound.rs b/crates/forth/src/words/sound.rs index a6fb033..750351a 100644 --- a/crates/forth/src/words/sound.rs +++ b/crates/forth/src/words/sound.rs @@ -48,555 +48,555 @@ pub(super) const WORDS: &[Word] = &[ name: "bank", aliases: &[], category: "Sample", - stack: "(str --)", + stack: "(v.. --)", desc: "Set sample bank suffix", example: "\"a\" bank", compile: Param, - varargs: false, + varargs: true, }, Word { name: "time", aliases: &[], category: "Sample", - stack: "(f --)", + stack: "(v.. --)", desc: "Set time offset", example: "0.1 time", compile: Param, - varargs: false, + varargs: true, }, Word { name: "repeat", aliases: &[], category: "Sample", - stack: "(n --)", + stack: "(v.. --)", desc: "Set repeat count", example: "4 repeat", compile: Param, - varargs: false, + varargs: true, }, Word { name: "dur", aliases: &[], category: "Sample", - stack: "(f --)", + stack: "(v.. --)", desc: "Set duration", example: "0.5 dur", compile: Param, - varargs: false, + varargs: true, }, Word { name: "gate", aliases: &[], category: "Sample", - stack: "(f --)", + stack: "(v.. --)", desc: "Set gate time", example: "0.8 gate", compile: Param, - varargs: false, + varargs: true, }, Word { name: "speed", aliases: &[], category: "Sample", - stack: "(f --)", + stack: "(v.. --)", desc: "Set playback speed", example: "1.5 speed", compile: Param, - varargs: false, + varargs: true, }, Word { name: "begin", aliases: &[], category: "Sample", - stack: "(f --)", + stack: "(v.. --)", desc: "Set sample start (0-1)", example: "0.25 begin", compile: Param, - varargs: false, + varargs: true, }, Word { name: "end", aliases: &[], category: "Sample", - stack: "(f --)", + stack: "(v.. --)", desc: "Set sample end (0-1)", example: "0.75 end", compile: Param, - varargs: false, + varargs: true, }, Word { name: "voice", aliases: &[], category: "Sample", - stack: "(n --)", + stack: "(v.. --)", desc: "Set voice number", example: "1 voice", compile: Param, - varargs: false, + varargs: true, }, Word { name: "orbit", aliases: &[], category: "Sample", - stack: "(n --)", + stack: "(v.. --)", desc: "Set orbit/bus", example: "0 orbit", compile: Param, - varargs: false, + varargs: true, }, Word { name: "n", aliases: &[], category: "Sample", - stack: "(n --)", + stack: "(v.. --)", desc: "Set sample number", example: "0 n", compile: Param, - varargs: false, + varargs: true, }, Word { name: "cut", aliases: &[], category: "Sample", - stack: "(n --)", + stack: "(v.. --)", desc: "Set cut group", example: "1 cut", compile: Param, - varargs: false, + varargs: true, }, Word { name: "reset", aliases: &[], category: "Sample", - stack: "(n --)", + stack: "(v.. --)", desc: "Reset parameter", example: "1 reset", compile: Param, - varargs: false, + varargs: true, }, // Oscillator Word { name: "freq", aliases: &[], category: "Oscillator", - stack: "(f --)", + stack: "(v.. --)", desc: "Set frequency (Hz)", example: "440 freq", compile: Param, - varargs: false, + varargs: true, }, Word { name: "detune", aliases: &[], category: "Oscillator", - stack: "(f --)", + stack: "(v.. --)", desc: "Set detune amount", example: "0.01 detune", compile: Param, - varargs: false, + varargs: true, }, Word { name: "glide", aliases: &[], category: "Oscillator", - stack: "(f --)", + stack: "(v.. --)", desc: "Set glide/portamento", example: "0.1 glide", compile: Param, - varargs: false, + varargs: true, }, Word { name: "pw", aliases: &[], category: "Oscillator", - stack: "(f --)", + stack: "(v.. --)", desc: "Set pulse width", example: "0.5 pw", compile: Param, - varargs: false, + varargs: true, }, Word { name: "spread", aliases: &[], category: "Oscillator", - stack: "(f --)", + stack: "(v.. --)", desc: "Set stereo spread", example: "0.5 spread", compile: Param, - varargs: false, + varargs: true, }, Word { name: "mult", aliases: &[], category: "Oscillator", - stack: "(f --)", + stack: "(v.. --)", desc: "Set multiplier", example: "2 mult", compile: Param, - varargs: false, + varargs: true, }, Word { name: "warp", aliases: &[], category: "Oscillator", - stack: "(f --)", + stack: "(v.. --)", desc: "Set warp amount", example: "0.5 warp", compile: Param, - varargs: false, + varargs: true, }, Word { name: "mirror", aliases: &[], category: "Oscillator", - stack: "(f --)", + stack: "(v.. --)", desc: "Set mirror", example: "1 mirror", compile: Param, - varargs: false, + varargs: true, }, Word { name: "harmonics", aliases: &[], category: "Oscillator", - stack: "(f --)", + stack: "(v.. --)", desc: "Set harmonics (mutable only)", example: "4 harmonics", compile: Param, - varargs: false, + varargs: true, }, Word { name: "timbre", aliases: &[], category: "Oscillator", - stack: "(f --)", + stack: "(v.. --)", desc: "Set timbre (mutable only)", example: "0.5 timbre", compile: Param, - varargs: false, + varargs: true, }, Word { name: "morph", aliases: &[], category: "Oscillator", - stack: "(f --)", + stack: "(v.. --)", desc: "Set morph (mutable only)", example: "0.5 morph", compile: Param, - varargs: false, + varargs: true, }, Word { name: "coarse", aliases: &[], category: "Oscillator", - stack: "(f --)", + stack: "(v.. --)", desc: "Set coarse tune", example: "12 coarse", compile: Param, - varargs: false, + varargs: true, }, Word { name: "sub", aliases: &[], category: "Oscillator", - stack: "(f --)", + stack: "(v.. --)", desc: "Set sub oscillator level", example: "0.5 sub", compile: Param, - varargs: false, + varargs: true, }, Word { name: "suboct", aliases: &[], category: "Oscillator", - stack: "(n --)", + stack: "(v.. --)", desc: "Set sub oscillator octave", example: "2 suboct", compile: Param, - varargs: false, + varargs: true, }, Word { name: "subwave", aliases: &[], category: "Oscillator", - stack: "(n --)", + stack: "(v.. --)", desc: "Set sub oscillator waveform", example: "1 subwave", compile: Param, - varargs: false, + varargs: true, }, Word { name: "note", aliases: &[], category: "Oscillator", - stack: "(n --)", + stack: "(v.. --)", desc: "Set MIDI note", example: "60 note", compile: Param, - varargs: false, + varargs: true, }, // Wavetable Word { name: "scan", aliases: &[], category: "Wavetable", - stack: "(f --)", + stack: "(v.. --)", desc: "Set wavetable scan position (0-1)", example: "0.5 scan", compile: Param, - varargs: false, + varargs: true, }, Word { name: "wtlen", aliases: &[], category: "Wavetable", - stack: "(n --)", + stack: "(v.. --)", desc: "Set wavetable cycle length in samples", example: "2048 wtlen", compile: Param, - varargs: false, + varargs: true, }, Word { name: "scanlfo", aliases: &[], category: "Wavetable", - stack: "(f --)", + stack: "(v.. --)", desc: "Set scan LFO rate (Hz)", example: "0.2 scanlfo", compile: Param, - varargs: false, + varargs: true, }, Word { name: "scandepth", aliases: &[], category: "Wavetable", - stack: "(f --)", + stack: "(v.. --)", desc: "Set scan LFO depth (0-1)", example: "0.4 scandepth", compile: Param, - varargs: false, + varargs: true, }, Word { name: "scanshape", aliases: &[], category: "Wavetable", - stack: "(s --)", + stack: "(v.. --)", desc: "Set scan LFO shape (sine/tri/saw/square/sh)", example: "\"tri\" scanshape", compile: Param, - varargs: false, + varargs: true, }, // FM Word { name: "fm", aliases: &[], category: "FM", - stack: "(f --)", + stack: "(v.. --)", desc: "Set FM frequency", example: "200 fm", compile: Param, - varargs: false, + varargs: true, }, Word { name: "fmh", aliases: &[], category: "FM", - stack: "(f --)", + stack: "(v.. --)", desc: "Set FM harmonic ratio", example: "2 fmh", compile: Param, - varargs: false, + varargs: true, }, Word { name: "fmshape", aliases: &[], category: "FM", - stack: "(f --)", + stack: "(v.. --)", desc: "Set FM shape", example: "0 fmshape", compile: Param, - varargs: false, + varargs: true, }, Word { name: "fme", aliases: &[], category: "FM", - stack: "(f --)", + stack: "(v.. --)", desc: "Set FM envelope", example: "0.5 fme", compile: Param, - varargs: false, + varargs: true, }, Word { name: "fma", aliases: &[], category: "FM", - stack: "(f --)", + stack: "(v.. --)", desc: "Set FM attack", example: "0.01 fma", compile: Param, - varargs: false, + varargs: true, }, Word { name: "fmd", aliases: &[], category: "FM", - stack: "(f --)", + stack: "(v.. --)", desc: "Set FM decay", example: "0.1 fmd", compile: Param, - varargs: false, + varargs: true, }, Word { name: "fms", aliases: &[], category: "FM", - stack: "(f --)", + stack: "(v.. --)", desc: "Set FM sustain", example: "0.5 fms", compile: Param, - varargs: false, + varargs: true, }, Word { name: "fmr", aliases: &[], category: "FM", - stack: "(f --)", + stack: "(v.. --)", desc: "Set FM release", example: "0.1 fmr", compile: Param, - varargs: false, + varargs: true, }, Word { name: "fm2", aliases: &[], category: "FM", - stack: "(f --)", + stack: "(v.. --)", desc: "Set FM operator 2 depth", example: "1.5 fm2", compile: Param, - varargs: false, + varargs: true, }, Word { name: "fm2h", aliases: &[], category: "FM", - stack: "(f --)", + stack: "(v.. --)", desc: "Set FM operator 2 harmonic ratio", example: "3 fm2h", compile: Param, - varargs: false, + varargs: true, }, Word { name: "fmalgo", aliases: &[], category: "FM", - stack: "(n --)", + stack: "(v.. --)", desc: "Set FM algorithm (0=cascade 1=parallel 2=branch)", example: "0 fmalgo", compile: Param, - varargs: false, + varargs: true, }, Word { name: "fmfb", aliases: &[], category: "FM", - stack: "(f --)", + stack: "(v.. --)", desc: "Set FM feedback amount", example: "0.5 fmfb", compile: Param, - varargs: false, + varargs: true, }, // Modulation Word { name: "vib", aliases: &[], category: "Modulation", - stack: "(f --)", + stack: "(v.. --)", desc: "Set vibrato rate", example: "5 vib", compile: Param, - varargs: false, + varargs: true, }, Word { name: "vibmod", aliases: &[], category: "Modulation", - stack: "(f --)", + stack: "(v.. --)", desc: "Set vibrato depth", example: "0.5 vibmod", compile: Param, - varargs: false, + varargs: true, }, Word { name: "vibshape", aliases: &[], category: "Modulation", - stack: "(f --)", + stack: "(v.. --)", desc: "Set vibrato shape", example: "0 vibshape", compile: Param, - varargs: false, + varargs: true, }, Word { name: "am", aliases: &[], category: "Modulation", - stack: "(f --)", + stack: "(v.. --)", desc: "Set AM frequency", example: "10 am", compile: Param, - varargs: false, + varargs: true, }, Word { name: "amdepth", aliases: &[], category: "Modulation", - stack: "(f --)", + stack: "(v.. --)", desc: "Set AM depth", example: "0.5 amdepth", compile: Param, - varargs: false, + varargs: true, }, Word { name: "amshape", aliases: &[], category: "Modulation", - stack: "(f --)", + stack: "(v.. --)", desc: "Set AM shape", example: "0 amshape", compile: Param, - varargs: false, + varargs: true, }, Word { name: "rm", aliases: &[], category: "Modulation", - stack: "(f --)", + stack: "(v.. --)", desc: "Set RM frequency", example: "100 rm", compile: Param, - varargs: false, + varargs: true, }, Word { name: "rmdepth", aliases: &[], category: "Modulation", - stack: "(f --)", + stack: "(v.. --)", desc: "Set RM depth", example: "0.5 rmdepth", compile: Param, - varargs: false, + varargs: true, }, Word { name: "rmshape", aliases: &[], category: "Modulation", - stack: "(f --)", + stack: "(v.. --)", desc: "Set RM shape", example: "0 rmshape", compile: Param, - varargs: false, + varargs: true, }, // LFO Word {