Feat: refactoring by breaking words in multiple files

This commit is contained in:
2026-02-04 23:50:38 +01:00
parent 8d249cf89b
commit b75b9562af
13 changed files with 3138 additions and 3080 deletions

View File

@@ -0,0 +1,622 @@
use super::{Word, WordCompile::*};
// Sound, Oscillator, Sample, Wavetable, FM, Modulation, LFO
pub(super) const WORDS: &[Word] = &[
// Sound
Word {
name: "sound",
aliases: &["s"],
category: "Sound",
stack: "(name --)",
desc: "Begin sound command",
example: "\"kick\" sound",
compile: Simple,
varargs: false,
},
Word {
name: ".",
aliases: &[],
category: "Sound",
stack: "(--)",
desc: "Emit current sound",
example: "\"kick\" s . . . .",
compile: Simple,
varargs: false,
},
Word {
name: "clear",
aliases: &[],
category: "Sound",
stack: "(--)",
desc: "Clear sound register (sound and all params)",
example: "\"kick\" s 0.5 gain . clear \"hat\" s .",
compile: Simple,
varargs: false,
},
// Sample
Word {
name: "bank",
aliases: &[],
category: "Sample",
stack: "(str --)",
desc: "Set sample bank suffix",
example: "\"a\" bank",
compile: Param,
varargs: false,
},
Word {
name: "time",
aliases: &[],
category: "Sample",
stack: "(f --)",
desc: "Set time offset",
example: "0.1 time",
compile: Param,
varargs: false,
},
Word {
name: "repeat",
aliases: &[],
category: "Sample",
stack: "(n --)",
desc: "Set repeat count",
example: "4 repeat",
compile: Param,
varargs: false,
},
Word {
name: "dur",
aliases: &[],
category: "Sample",
stack: "(f --)",
desc: "Set duration",
example: "0.5 dur",
compile: Param,
varargs: false,
},
Word {
name: "gate",
aliases: &[],
category: "Sample",
stack: "(f --)",
desc: "Set gate time",
example: "0.8 gate",
compile: Param,
varargs: false,
},
Word {
name: "speed",
aliases: &[],
category: "Sample",
stack: "(f --)",
desc: "Set playback speed",
example: "1.5 speed",
compile: Param,
varargs: false,
},
Word {
name: "begin",
aliases: &[],
category: "Sample",
stack: "(f --)",
desc: "Set sample start (0-1)",
example: "0.25 begin",
compile: Param,
varargs: false,
},
Word {
name: "end",
aliases: &[],
category: "Sample",
stack: "(f --)",
desc: "Set sample end (0-1)",
example: "0.75 end",
compile: Param,
varargs: false,
},
Word {
name: "voice",
aliases: &[],
category: "Sample",
stack: "(n --)",
desc: "Set voice number",
example: "1 voice",
compile: Param,
varargs: false,
},
Word {
name: "orbit",
aliases: &[],
category: "Sample",
stack: "(n --)",
desc: "Set orbit/bus",
example: "0 orbit",
compile: Param,
varargs: false,
},
Word {
name: "n",
aliases: &[],
category: "Sample",
stack: "(n --)",
desc: "Set sample number",
example: "0 n",
compile: Param,
varargs: false,
},
Word {
name: "cut",
aliases: &[],
category: "Sample",
stack: "(n --)",
desc: "Set cut group",
example: "1 cut",
compile: Param,
varargs: false,
},
Word {
name: "reset",
aliases: &[],
category: "Sample",
stack: "(n --)",
desc: "Reset parameter",
example: "1 reset",
compile: Param,
varargs: false,
},
// Oscillator
Word {
name: "freq",
aliases: &[],
category: "Oscillator",
stack: "(f --)",
desc: "Set frequency (Hz)",
example: "440 freq",
compile: Param,
varargs: false,
},
Word {
name: "detune",
aliases: &[],
category: "Oscillator",
stack: "(f --)",
desc: "Set detune amount",
example: "0.01 detune",
compile: Param,
varargs: false,
},
Word {
name: "glide",
aliases: &[],
category: "Oscillator",
stack: "(f --)",
desc: "Set glide/portamento",
example: "0.1 glide",
compile: Param,
varargs: false,
},
Word {
name: "pw",
aliases: &[],
category: "Oscillator",
stack: "(f --)",
desc: "Set pulse width",
example: "0.5 pw",
compile: Param,
varargs: false,
},
Word {
name: "spread",
aliases: &[],
category: "Oscillator",
stack: "(f --)",
desc: "Set stereo spread",
example: "0.5 spread",
compile: Param,
varargs: false,
},
Word {
name: "mult",
aliases: &[],
category: "Oscillator",
stack: "(f --)",
desc: "Set multiplier",
example: "2 mult",
compile: Param,
varargs: false,
},
Word {
name: "warp",
aliases: &[],
category: "Oscillator",
stack: "(f --)",
desc: "Set warp amount",
example: "0.5 warp",
compile: Param,
varargs: false,
},
Word {
name: "mirror",
aliases: &[],
category: "Oscillator",
stack: "(f --)",
desc: "Set mirror",
example: "1 mirror",
compile: Param,
varargs: false,
},
Word {
name: "harmonics",
aliases: &[],
category: "Oscillator",
stack: "(f --)",
desc: "Set harmonics (mutable only)",
example: "4 harmonics",
compile: Param,
varargs: false,
},
Word {
name: "timbre",
aliases: &[],
category: "Oscillator",
stack: "(f --)",
desc: "Set timbre (mutable only)",
example: "0.5 timbre",
compile: Param,
varargs: false,
},
Word {
name: "morph",
aliases: &[],
category: "Oscillator",
stack: "(f --)",
desc: "Set morph (mutable only)",
example: "0.5 morph",
compile: Param,
varargs: false,
},
Word {
name: "coarse",
aliases: &[],
category: "Oscillator",
stack: "(f --)",
desc: "Set coarse tune",
example: "12 coarse",
compile: Param,
varargs: false,
},
Word {
name: "sub",
aliases: &[],
category: "Oscillator",
stack: "(f --)",
desc: "Set sub oscillator level",
example: "0.5 sub",
compile: Param,
varargs: false,
},
Word {
name: "suboct",
aliases: &[],
category: "Oscillator",
stack: "(n --)",
desc: "Set sub oscillator octave",
example: "2 suboct",
compile: Param,
varargs: false,
},
Word {
name: "subwave",
aliases: &[],
category: "Oscillator",
stack: "(n --)",
desc: "Set sub oscillator waveform",
example: "1 subwave",
compile: Param,
varargs: false,
},
Word {
name: "note",
aliases: &[],
category: "Oscillator",
stack: "(n --)",
desc: "Set MIDI note",
example: "60 note",
compile: Param,
varargs: false,
},
// Wavetable
Word {
name: "scan",
aliases: &[],
category: "Wavetable",
stack: "(f --)",
desc: "Set wavetable scan position (0-1)",
example: "0.5 scan",
compile: Param,
varargs: false,
},
Word {
name: "wtlen",
aliases: &[],
category: "Wavetable",
stack: "(n --)",
desc: "Set wavetable cycle length in samples",
example: "2048 wtlen",
compile: Param,
varargs: false,
},
Word {
name: "scanlfo",
aliases: &[],
category: "Wavetable",
stack: "(f --)",
desc: "Set scan LFO rate (Hz)",
example: "0.2 scanlfo",
compile: Param,
varargs: false,
},
Word {
name: "scandepth",
aliases: &[],
category: "Wavetable",
stack: "(f --)",
desc: "Set scan LFO depth (0-1)",
example: "0.4 scandepth",
compile: Param,
varargs: false,
},
Word {
name: "scanshape",
aliases: &[],
category: "Wavetable",
stack: "(s --)",
desc: "Set scan LFO shape (sine/tri/saw/square/sh)",
example: "\"tri\" scanshape",
compile: Param,
varargs: false,
},
// FM
Word {
name: "fm",
aliases: &[],
category: "FM",
stack: "(f --)",
desc: "Set FM frequency",
example: "200 fm",
compile: Param,
varargs: false,
},
Word {
name: "fmh",
aliases: &[],
category: "FM",
stack: "(f --)",
desc: "Set FM harmonic ratio",
example: "2 fmh",
compile: Param,
varargs: false,
},
Word {
name: "fmshape",
aliases: &[],
category: "FM",
stack: "(f --)",
desc: "Set FM shape",
example: "0 fmshape",
compile: Param,
varargs: false,
},
Word {
name: "fme",
aliases: &[],
category: "FM",
stack: "(f --)",
desc: "Set FM envelope",
example: "0.5 fme",
compile: Param,
varargs: false,
},
Word {
name: "fma",
aliases: &[],
category: "FM",
stack: "(f --)",
desc: "Set FM attack",
example: "0.01 fma",
compile: Param,
varargs: false,
},
Word {
name: "fmd",
aliases: &[],
category: "FM",
stack: "(f --)",
desc: "Set FM decay",
example: "0.1 fmd",
compile: Param,
varargs: false,
},
Word {
name: "fms",
aliases: &[],
category: "FM",
stack: "(f --)",
desc: "Set FM sustain",
example: "0.5 fms",
compile: Param,
varargs: false,
},
Word {
name: "fmr",
aliases: &[],
category: "FM",
stack: "(f --)",
desc: "Set FM release",
example: "0.1 fmr",
compile: Param,
varargs: false,
},
// Modulation
Word {
name: "vib",
aliases: &[],
category: "Modulation",
stack: "(f --)",
desc: "Set vibrato rate",
example: "5 vib",
compile: Param,
varargs: false,
},
Word {
name: "vibmod",
aliases: &[],
category: "Modulation",
stack: "(f --)",
desc: "Set vibrato depth",
example: "0.5 vibmod",
compile: Param,
varargs: false,
},
Word {
name: "vibshape",
aliases: &[],
category: "Modulation",
stack: "(f --)",
desc: "Set vibrato shape",
example: "0 vibshape",
compile: Param,
varargs: false,
},
Word {
name: "am",
aliases: &[],
category: "Modulation",
stack: "(f --)",
desc: "Set AM frequency",
example: "10 am",
compile: Param,
varargs: false,
},
Word {
name: "amdepth",
aliases: &[],
category: "Modulation",
stack: "(f --)",
desc: "Set AM depth",
example: "0.5 amdepth",
compile: Param,
varargs: false,
},
Word {
name: "amshape",
aliases: &[],
category: "Modulation",
stack: "(f --)",
desc: "Set AM shape",
example: "0 amshape",
compile: Param,
varargs: false,
},
Word {
name: "rm",
aliases: &[],
category: "Modulation",
stack: "(f --)",
desc: "Set RM frequency",
example: "100 rm",
compile: Param,
varargs: false,
},
Word {
name: "rmdepth",
aliases: &[],
category: "Modulation",
stack: "(f --)",
desc: "Set RM depth",
example: "0.5 rmdepth",
compile: Param,
varargs: false,
},
Word {
name: "rmshape",
aliases: &[],
category: "Modulation",
stack: "(f --)",
desc: "Set RM shape",
example: "0 rmshape",
compile: Param,
varargs: false,
},
// LFO
Word {
name: "ramp",
aliases: &[],
category: "LFO",
stack: "(freq curve -- val)",
desc: "Ramp [0,1]: fract(freq*beat)^curve",
example: "0.25 2.0 ramp",
compile: Simple,
varargs: false,
},
Word {
name: "range",
aliases: &[],
category: "LFO",
stack: "(val min max -- scaled)",
desc: "Scale [0,1] to [min,max]",
example: "0.5 200 800 range => 500",
compile: Simple,
varargs: false,
},
Word {
name: "linramp",
aliases: &[],
category: "LFO",
stack: "(freq -- val)",
desc: "Linear ramp (curve=1)",
example: "1.0 linramp",
compile: Simple,
varargs: false,
},
Word {
name: "expramp",
aliases: &[],
category: "LFO",
stack: "(freq -- val)",
desc: "Exponential ramp (curve=3)",
example: "0.25 expramp",
compile: Simple,
varargs: false,
},
Word {
name: "logramp",
aliases: &[],
category: "LFO",
stack: "(freq -- val)",
desc: "Logarithmic ramp (curve=0.3)",
example: "2.0 logramp",
compile: Simple,
varargs: false,
},
Word {
name: "triangle",
aliases: &[],
category: "LFO",
stack: "(freq -- val)",
desc: "Triangle wave [0,1]: 0→1→0",
example: "0.5 triangle",
compile: Simple,
varargs: false,
},
Word {
name: "perlin",
aliases: &[],
category: "LFO",
stack: "(freq -- val)",
desc: "Perlin noise [0,1] sampled at freq*beat",
example: "0.25 perlin",
compile: Simple,
varargs: false,
},
];