Feat: all engine params use varargs and can eat the stack, document it as such

This commit is contained in:
2026-02-10 19:41:59 +01:00
parent d792f011ee
commit 1de8c068f6
3 changed files with 304 additions and 304 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -6,61 +6,61 @@ pub(super) const WORDS: &[Word] = &[
name: "chan", name: "chan",
aliases: &[], aliases: &[],
category: "MIDI", category: "MIDI",
stack: "(n --)", stack: "(v.. --)",
desc: "Set MIDI channel 1-16", desc: "Set MIDI channel 1-16",
example: "1 chan", example: "1 chan",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "ccnum", name: "ccnum",
aliases: &[], aliases: &[],
category: "MIDI", category: "MIDI",
stack: "(n --)", stack: "(v.. --)",
desc: "Set MIDI CC number 0-127", desc: "Set MIDI CC number 0-127",
example: "1 ccnum", example: "1 ccnum",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "ccout", name: "ccout",
aliases: &[], aliases: &[],
category: "MIDI", category: "MIDI",
stack: "(n --)", stack: "(v.. --)",
desc: "Set MIDI CC output value 0-127", desc: "Set MIDI CC output value 0-127",
example: "64 ccout", example: "64 ccout",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "bend", name: "bend",
aliases: &[], aliases: &[],
category: "MIDI", category: "MIDI",
stack: "(f --)", stack: "(v.. --)",
desc: "Set pitch bend -1.0 to 1.0 (0 = center)", desc: "Set pitch bend -1.0 to 1.0 (0 = center)",
example: "0.5 bend", example: "0.5 bend",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "pressure", name: "pressure",
aliases: &[], aliases: &[],
category: "MIDI", category: "MIDI",
stack: "(n --)", stack: "(v.. --)",
desc: "Set channel pressure (aftertouch) 0-127", desc: "Set channel pressure (aftertouch) 0-127",
example: "64 pressure", example: "64 pressure",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "program", name: "program",
aliases: &[], aliases: &[],
category: "MIDI", category: "MIDI",
stack: "(n --)", stack: "(v.. --)",
desc: "Set program change number 0-127", desc: "Set program change number 0-127",
example: "0 program", example: "0 program",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "m.", name: "m.",
@@ -126,10 +126,10 @@ pub(super) const WORDS: &[Word] = &[
name: "dev", name: "dev",
aliases: &[], aliases: &[],
category: "MIDI", category: "MIDI",
stack: "(n --)", stack: "(v.. --)",
desc: "Set MIDI device slot 0-3 for output/input", desc: "Set MIDI device slot 0-3 for output/input",
example: "1 dev 60 note m.", example: "1 dev 60 note m.",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
]; ];

View File

@@ -48,555 +48,555 @@ pub(super) const WORDS: &[Word] = &[
name: "bank", name: "bank",
aliases: &[], aliases: &[],
category: "Sample", category: "Sample",
stack: "(str --)", stack: "(v.. --)",
desc: "Set sample bank suffix", desc: "Set sample bank suffix",
example: "\"a\" bank", example: "\"a\" bank",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "time", name: "time",
aliases: &[], aliases: &[],
category: "Sample", category: "Sample",
stack: "(f --)", stack: "(v.. --)",
desc: "Set time offset", desc: "Set time offset",
example: "0.1 time", example: "0.1 time",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "repeat", name: "repeat",
aliases: &[], aliases: &[],
category: "Sample", category: "Sample",
stack: "(n --)", stack: "(v.. --)",
desc: "Set repeat count", desc: "Set repeat count",
example: "4 repeat", example: "4 repeat",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "dur", name: "dur",
aliases: &[], aliases: &[],
category: "Sample", category: "Sample",
stack: "(f --)", stack: "(v.. --)",
desc: "Set duration", desc: "Set duration",
example: "0.5 dur", example: "0.5 dur",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "gate", name: "gate",
aliases: &[], aliases: &[],
category: "Sample", category: "Sample",
stack: "(f --)", stack: "(v.. --)",
desc: "Set gate time", desc: "Set gate time",
example: "0.8 gate", example: "0.8 gate",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "speed", name: "speed",
aliases: &[], aliases: &[],
category: "Sample", category: "Sample",
stack: "(f --)", stack: "(v.. --)",
desc: "Set playback speed", desc: "Set playback speed",
example: "1.5 speed", example: "1.5 speed",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "begin", name: "begin",
aliases: &[], aliases: &[],
category: "Sample", category: "Sample",
stack: "(f --)", stack: "(v.. --)",
desc: "Set sample start (0-1)", desc: "Set sample start (0-1)",
example: "0.25 begin", example: "0.25 begin",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "end", name: "end",
aliases: &[], aliases: &[],
category: "Sample", category: "Sample",
stack: "(f --)", stack: "(v.. --)",
desc: "Set sample end (0-1)", desc: "Set sample end (0-1)",
example: "0.75 end", example: "0.75 end",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "voice", name: "voice",
aliases: &[], aliases: &[],
category: "Sample", category: "Sample",
stack: "(n --)", stack: "(v.. --)",
desc: "Set voice number", desc: "Set voice number",
example: "1 voice", example: "1 voice",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "orbit", name: "orbit",
aliases: &[], aliases: &[],
category: "Sample", category: "Sample",
stack: "(n --)", stack: "(v.. --)",
desc: "Set orbit/bus", desc: "Set orbit/bus",
example: "0 orbit", example: "0 orbit",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "n", name: "n",
aliases: &[], aliases: &[],
category: "Sample", category: "Sample",
stack: "(n --)", stack: "(v.. --)",
desc: "Set sample number", desc: "Set sample number",
example: "0 n", example: "0 n",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "cut", name: "cut",
aliases: &[], aliases: &[],
category: "Sample", category: "Sample",
stack: "(n --)", stack: "(v.. --)",
desc: "Set cut group", desc: "Set cut group",
example: "1 cut", example: "1 cut",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "reset", name: "reset",
aliases: &[], aliases: &[],
category: "Sample", category: "Sample",
stack: "(n --)", stack: "(v.. --)",
desc: "Reset parameter", desc: "Reset parameter",
example: "1 reset", example: "1 reset",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
// Oscillator // Oscillator
Word { Word {
name: "freq", name: "freq",
aliases: &[], aliases: &[],
category: "Oscillator", category: "Oscillator",
stack: "(f --)", stack: "(v.. --)",
desc: "Set frequency (Hz)", desc: "Set frequency (Hz)",
example: "440 freq", example: "440 freq",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "detune", name: "detune",
aliases: &[], aliases: &[],
category: "Oscillator", category: "Oscillator",
stack: "(f --)", stack: "(v.. --)",
desc: "Set detune amount", desc: "Set detune amount",
example: "0.01 detune", example: "0.01 detune",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "glide", name: "glide",
aliases: &[], aliases: &[],
category: "Oscillator", category: "Oscillator",
stack: "(f --)", stack: "(v.. --)",
desc: "Set glide/portamento", desc: "Set glide/portamento",
example: "0.1 glide", example: "0.1 glide",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "pw", name: "pw",
aliases: &[], aliases: &[],
category: "Oscillator", category: "Oscillator",
stack: "(f --)", stack: "(v.. --)",
desc: "Set pulse width", desc: "Set pulse width",
example: "0.5 pw", example: "0.5 pw",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "spread", name: "spread",
aliases: &[], aliases: &[],
category: "Oscillator", category: "Oscillator",
stack: "(f --)", stack: "(v.. --)",
desc: "Set stereo spread", desc: "Set stereo spread",
example: "0.5 spread", example: "0.5 spread",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "mult", name: "mult",
aliases: &[], aliases: &[],
category: "Oscillator", category: "Oscillator",
stack: "(f --)", stack: "(v.. --)",
desc: "Set multiplier", desc: "Set multiplier",
example: "2 mult", example: "2 mult",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "warp", name: "warp",
aliases: &[], aliases: &[],
category: "Oscillator", category: "Oscillator",
stack: "(f --)", stack: "(v.. --)",
desc: "Set warp amount", desc: "Set warp amount",
example: "0.5 warp", example: "0.5 warp",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "mirror", name: "mirror",
aliases: &[], aliases: &[],
category: "Oscillator", category: "Oscillator",
stack: "(f --)", stack: "(v.. --)",
desc: "Set mirror", desc: "Set mirror",
example: "1 mirror", example: "1 mirror",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "harmonics", name: "harmonics",
aliases: &[], aliases: &[],
category: "Oscillator", category: "Oscillator",
stack: "(f --)", stack: "(v.. --)",
desc: "Set harmonics (mutable only)", desc: "Set harmonics (mutable only)",
example: "4 harmonics", example: "4 harmonics",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "timbre", name: "timbre",
aliases: &[], aliases: &[],
category: "Oscillator", category: "Oscillator",
stack: "(f --)", stack: "(v.. --)",
desc: "Set timbre (mutable only)", desc: "Set timbre (mutable only)",
example: "0.5 timbre", example: "0.5 timbre",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "morph", name: "morph",
aliases: &[], aliases: &[],
category: "Oscillator", category: "Oscillator",
stack: "(f --)", stack: "(v.. --)",
desc: "Set morph (mutable only)", desc: "Set morph (mutable only)",
example: "0.5 morph", example: "0.5 morph",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "coarse", name: "coarse",
aliases: &[], aliases: &[],
category: "Oscillator", category: "Oscillator",
stack: "(f --)", stack: "(v.. --)",
desc: "Set coarse tune", desc: "Set coarse tune",
example: "12 coarse", example: "12 coarse",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "sub", name: "sub",
aliases: &[], aliases: &[],
category: "Oscillator", category: "Oscillator",
stack: "(f --)", stack: "(v.. --)",
desc: "Set sub oscillator level", desc: "Set sub oscillator level",
example: "0.5 sub", example: "0.5 sub",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "suboct", name: "suboct",
aliases: &[], aliases: &[],
category: "Oscillator", category: "Oscillator",
stack: "(n --)", stack: "(v.. --)",
desc: "Set sub oscillator octave", desc: "Set sub oscillator octave",
example: "2 suboct", example: "2 suboct",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "subwave", name: "subwave",
aliases: &[], aliases: &[],
category: "Oscillator", category: "Oscillator",
stack: "(n --)", stack: "(v.. --)",
desc: "Set sub oscillator waveform", desc: "Set sub oscillator waveform",
example: "1 subwave", example: "1 subwave",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "note", name: "note",
aliases: &[], aliases: &[],
category: "Oscillator", category: "Oscillator",
stack: "(n --)", stack: "(v.. --)",
desc: "Set MIDI note", desc: "Set MIDI note",
example: "60 note", example: "60 note",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
// Wavetable // Wavetable
Word { Word {
name: "scan", name: "scan",
aliases: &[], aliases: &[],
category: "Wavetable", category: "Wavetable",
stack: "(f --)", stack: "(v.. --)",
desc: "Set wavetable scan position (0-1)", desc: "Set wavetable scan position (0-1)",
example: "0.5 scan", example: "0.5 scan",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "wtlen", name: "wtlen",
aliases: &[], aliases: &[],
category: "Wavetable", category: "Wavetable",
stack: "(n --)", stack: "(v.. --)",
desc: "Set wavetable cycle length in samples", desc: "Set wavetable cycle length in samples",
example: "2048 wtlen", example: "2048 wtlen",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "scanlfo", name: "scanlfo",
aliases: &[], aliases: &[],
category: "Wavetable", category: "Wavetable",
stack: "(f --)", stack: "(v.. --)",
desc: "Set scan LFO rate (Hz)", desc: "Set scan LFO rate (Hz)",
example: "0.2 scanlfo", example: "0.2 scanlfo",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "scandepth", name: "scandepth",
aliases: &[], aliases: &[],
category: "Wavetable", category: "Wavetable",
stack: "(f --)", stack: "(v.. --)",
desc: "Set scan LFO depth (0-1)", desc: "Set scan LFO depth (0-1)",
example: "0.4 scandepth", example: "0.4 scandepth",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "scanshape", name: "scanshape",
aliases: &[], aliases: &[],
category: "Wavetable", category: "Wavetable",
stack: "(s --)", stack: "(v.. --)",
desc: "Set scan LFO shape (sine/tri/saw/square/sh)", desc: "Set scan LFO shape (sine/tri/saw/square/sh)",
example: "\"tri\" scanshape", example: "\"tri\" scanshape",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
// FM // FM
Word { Word {
name: "fm", name: "fm",
aliases: &[], aliases: &[],
category: "FM", category: "FM",
stack: "(f --)", stack: "(v.. --)",
desc: "Set FM frequency", desc: "Set FM frequency",
example: "200 fm", example: "200 fm",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "fmh", name: "fmh",
aliases: &[], aliases: &[],
category: "FM", category: "FM",
stack: "(f --)", stack: "(v.. --)",
desc: "Set FM harmonic ratio", desc: "Set FM harmonic ratio",
example: "2 fmh", example: "2 fmh",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "fmshape", name: "fmshape",
aliases: &[], aliases: &[],
category: "FM", category: "FM",
stack: "(f --)", stack: "(v.. --)",
desc: "Set FM shape", desc: "Set FM shape",
example: "0 fmshape", example: "0 fmshape",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "fme", name: "fme",
aliases: &[], aliases: &[],
category: "FM", category: "FM",
stack: "(f --)", stack: "(v.. --)",
desc: "Set FM envelope", desc: "Set FM envelope",
example: "0.5 fme", example: "0.5 fme",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "fma", name: "fma",
aliases: &[], aliases: &[],
category: "FM", category: "FM",
stack: "(f --)", stack: "(v.. --)",
desc: "Set FM attack", desc: "Set FM attack",
example: "0.01 fma", example: "0.01 fma",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "fmd", name: "fmd",
aliases: &[], aliases: &[],
category: "FM", category: "FM",
stack: "(f --)", stack: "(v.. --)",
desc: "Set FM decay", desc: "Set FM decay",
example: "0.1 fmd", example: "0.1 fmd",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "fms", name: "fms",
aliases: &[], aliases: &[],
category: "FM", category: "FM",
stack: "(f --)", stack: "(v.. --)",
desc: "Set FM sustain", desc: "Set FM sustain",
example: "0.5 fms", example: "0.5 fms",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "fmr", name: "fmr",
aliases: &[], aliases: &[],
category: "FM", category: "FM",
stack: "(f --)", stack: "(v.. --)",
desc: "Set FM release", desc: "Set FM release",
example: "0.1 fmr", example: "0.1 fmr",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "fm2", name: "fm2",
aliases: &[], aliases: &[],
category: "FM", category: "FM",
stack: "(f --)", stack: "(v.. --)",
desc: "Set FM operator 2 depth", desc: "Set FM operator 2 depth",
example: "1.5 fm2", example: "1.5 fm2",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "fm2h", name: "fm2h",
aliases: &[], aliases: &[],
category: "FM", category: "FM",
stack: "(f --)", stack: "(v.. --)",
desc: "Set FM operator 2 harmonic ratio", desc: "Set FM operator 2 harmonic ratio",
example: "3 fm2h", example: "3 fm2h",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "fmalgo", name: "fmalgo",
aliases: &[], aliases: &[],
category: "FM", category: "FM",
stack: "(n --)", stack: "(v.. --)",
desc: "Set FM algorithm (0=cascade 1=parallel 2=branch)", desc: "Set FM algorithm (0=cascade 1=parallel 2=branch)",
example: "0 fmalgo", example: "0 fmalgo",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "fmfb", name: "fmfb",
aliases: &[], aliases: &[],
category: "FM", category: "FM",
stack: "(f --)", stack: "(v.. --)",
desc: "Set FM feedback amount", desc: "Set FM feedback amount",
example: "0.5 fmfb", example: "0.5 fmfb",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
// Modulation // Modulation
Word { Word {
name: "vib", name: "vib",
aliases: &[], aliases: &[],
category: "Modulation", category: "Modulation",
stack: "(f --)", stack: "(v.. --)",
desc: "Set vibrato rate", desc: "Set vibrato rate",
example: "5 vib", example: "5 vib",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "vibmod", name: "vibmod",
aliases: &[], aliases: &[],
category: "Modulation", category: "Modulation",
stack: "(f --)", stack: "(v.. --)",
desc: "Set vibrato depth", desc: "Set vibrato depth",
example: "0.5 vibmod", example: "0.5 vibmod",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "vibshape", name: "vibshape",
aliases: &[], aliases: &[],
category: "Modulation", category: "Modulation",
stack: "(f --)", stack: "(v.. --)",
desc: "Set vibrato shape", desc: "Set vibrato shape",
example: "0 vibshape", example: "0 vibshape",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "am", name: "am",
aliases: &[], aliases: &[],
category: "Modulation", category: "Modulation",
stack: "(f --)", stack: "(v.. --)",
desc: "Set AM frequency", desc: "Set AM frequency",
example: "10 am", example: "10 am",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "amdepth", name: "amdepth",
aliases: &[], aliases: &[],
category: "Modulation", category: "Modulation",
stack: "(f --)", stack: "(v.. --)",
desc: "Set AM depth", desc: "Set AM depth",
example: "0.5 amdepth", example: "0.5 amdepth",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "amshape", name: "amshape",
aliases: &[], aliases: &[],
category: "Modulation", category: "Modulation",
stack: "(f --)", stack: "(v.. --)",
desc: "Set AM shape", desc: "Set AM shape",
example: "0 amshape", example: "0 amshape",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "rm", name: "rm",
aliases: &[], aliases: &[],
category: "Modulation", category: "Modulation",
stack: "(f --)", stack: "(v.. --)",
desc: "Set RM frequency", desc: "Set RM frequency",
example: "100 rm", example: "100 rm",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "rmdepth", name: "rmdepth",
aliases: &[], aliases: &[],
category: "Modulation", category: "Modulation",
stack: "(f --)", stack: "(v.. --)",
desc: "Set RM depth", desc: "Set RM depth",
example: "0.5 rmdepth", example: "0.5 rmdepth",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
Word { Word {
name: "rmshape", name: "rmshape",
aliases: &[], aliases: &[],
category: "Modulation", category: "Modulation",
stack: "(f --)", stack: "(v.. --)",
desc: "Set RM shape", desc: "Set RM shape",
example: "0 rmshape", example: "0 rmshape",
compile: Param, compile: Param,
varargs: false, varargs: true,
}, },
// LFO // LFO
Word { Word {