Files
Cagire/crates/forth/src/words/effects.rs
Raphaël Forment 52cc890a67
Some checks failed
Deploy Website / deploy (push) Failing after 4m50s
Feat: website WIP and new words
2026-02-06 16:19:09 +01:00

853 lines
19 KiB
Rust

use super::{Word, WordCompile::*};
// Filter, Envelope, Reverb, Delay, Lo-fi, Stereo, Mod FX
pub(super) const WORDS: &[Word] = &[
// Envelope
Word {
name: "gain",
aliases: &[],
category: "Envelope",
stack: "(f --)",
desc: "Set volume (0-1)",
example: "0.8 gain",
compile: Param,
varargs: false,
},
Word {
name: "postgain",
aliases: &[],
category: "Envelope",
stack: "(f --)",
desc: "Set post gain",
example: "1.2 postgain",
compile: Param,
varargs: false,
},
Word {
name: "velocity",
aliases: &[],
category: "Envelope",
stack: "(f --)",
desc: "Set velocity",
example: "100 velocity",
compile: Param,
varargs: false,
},
Word {
name: "attack",
aliases: &["att"],
category: "Envelope",
stack: "(f --)",
desc: "Set attack time",
example: "0.01 attack",
compile: Param,
varargs: false,
},
Word {
name: "decay",
aliases: &["dec"],
category: "Envelope",
stack: "(f --)",
desc: "Set decay time",
example: "0.1 decay",
compile: Param,
varargs: false,
},
Word {
name: "sustain",
aliases: &["sus"],
category: "Envelope",
stack: "(f --)",
desc: "Set sustain level",
example: "0.5 sustain",
compile: Param,
varargs: false,
},
Word {
name: "release",
aliases: &["rel"],
category: "Envelope",
stack: "(f --)",
desc: "Set release time",
example: "0.3 release",
compile: Param,
varargs: false,
},
Word {
name: "adsr",
aliases: &[],
category: "Envelope",
stack: "(a d s r --)",
desc: "Set attack, decay, sustain, release",
example: "0.01 0.1 0.5 0.3 adsr",
compile: Simple,
varargs: false,
},
Word {
name: "ad",
aliases: &[],
category: "Envelope",
stack: "(a d --)",
desc: "Set attack, decay (sustain=0)",
example: "0.01 0.1 ad",
compile: Simple,
varargs: false,
},
Word {
name: "penv",
aliases: &[],
category: "Envelope",
stack: "(f --)",
desc: "Set pitch envelope",
example: "0.5 penv",
compile: Param,
varargs: false,
},
Word {
name: "patt",
aliases: &[],
category: "Envelope",
stack: "(f --)",
desc: "Set pitch attack",
example: "0.01 patt",
compile: Param,
varargs: false,
},
Word {
name: "pdec",
aliases: &[],
category: "Envelope",
stack: "(f --)",
desc: "Set pitch decay",
example: "0.1 pdec",
compile: Param,
varargs: false,
},
Word {
name: "psus",
aliases: &[],
category: "Envelope",
stack: "(f --)",
desc: "Set pitch sustain",
example: "0 psus",
compile: Param,
varargs: false,
},
Word {
name: "prel",
aliases: &[],
category: "Envelope",
stack: "(f --)",
desc: "Set pitch release",
example: "0.1 prel",
compile: Param,
varargs: false,
},
// Filter
Word {
name: "lpf",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set lowpass frequency",
example: "2000 lpf",
compile: Param,
varargs: false,
},
Word {
name: "lpq",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set lowpass resonance",
example: "0.5 lpq",
compile: Param,
varargs: false,
},
Word {
name: "lpe",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set lowpass envelope",
example: "0.5 lpe",
compile: Param,
varargs: false,
},
Word {
name: "lpa",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set lowpass attack",
example: "0.01 lpa",
compile: Param,
varargs: false,
},
Word {
name: "lpd",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set lowpass decay",
example: "0.1 lpd",
compile: Param,
varargs: false,
},
Word {
name: "lps",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set lowpass sustain",
example: "0.5 lps",
compile: Param,
varargs: false,
},
Word {
name: "lpr",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set lowpass release",
example: "0.3 lpr",
compile: Param,
varargs: false,
},
Word {
name: "hpf",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set highpass frequency",
example: "100 hpf",
compile: Param,
varargs: false,
},
Word {
name: "hpq",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set highpass resonance",
example: "0.5 hpq",
compile: Param,
varargs: false,
},
Word {
name: "hpe",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set highpass envelope",
example: "0.5 hpe",
compile: Param,
varargs: false,
},
Word {
name: "hpa",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set highpass attack",
example: "0.01 hpa",
compile: Param,
varargs: false,
},
Word {
name: "hpd",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set highpass decay",
example: "0.1 hpd",
compile: Param,
varargs: false,
},
Word {
name: "hps",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set highpass sustain",
example: "0.5 hps",
compile: Param,
varargs: false,
},
Word {
name: "hpr",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set highpass release",
example: "0.3 hpr",
compile: Param,
varargs: false,
},
Word {
name: "bpf",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set bandpass frequency",
example: "1000 bpf",
compile: Param,
varargs: false,
},
Word {
name: "bpq",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set bandpass resonance",
example: "0.5 bpq",
compile: Param,
varargs: false,
},
Word {
name: "bpe",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set bandpass envelope",
example: "0.5 bpe",
compile: Param,
varargs: false,
},
Word {
name: "bpa",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set bandpass attack",
example: "0.01 bpa",
compile: Param,
varargs: false,
},
Word {
name: "bpd",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set bandpass decay",
example: "0.1 bpd",
compile: Param,
varargs: false,
},
Word {
name: "bps",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set bandpass sustain",
example: "0.5 bps",
compile: Param,
varargs: false,
},
Word {
name: "bpr",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set bandpass release",
example: "0.3 bpr",
compile: Param,
varargs: false,
},
Word {
name: "llpf",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set ladder lowpass frequency",
example: "2000 llpf",
compile: Param,
varargs: false,
},
Word {
name: "llpq",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set ladder lowpass resonance",
example: "0.5 llpq",
compile: Param,
varargs: false,
},
Word {
name: "lhpf",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set ladder highpass frequency",
example: "100 lhpf",
compile: Param,
varargs: false,
},
Word {
name: "lhpq",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set ladder highpass resonance",
example: "0.5 lhpq",
compile: Param,
varargs: false,
},
Word {
name: "lbpf",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set ladder bandpass frequency",
example: "1000 lbpf",
compile: Param,
varargs: false,
},
Word {
name: "lbpq",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set ladder bandpass resonance",
example: "0.5 lbpq",
compile: Param,
varargs: false,
},
Word {
name: "ftype",
aliases: &[],
category: "Filter",
stack: "(n --)",
desc: "Set filter type",
example: "1 ftype",
compile: Param,
varargs: false,
},
Word {
name: "eqlo",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set low shelf gain (dB)",
example: "3 eqlo",
compile: Param,
varargs: false,
},
Word {
name: "eqmid",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set mid peak gain (dB)",
example: "-2 eqmid",
compile: Param,
varargs: false,
},
Word {
name: "eqhi",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set high shelf gain (dB)",
example: "1 eqhi",
compile: Param,
varargs: false,
},
Word {
name: "tilt",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set tilt EQ (-1 dark, 1 bright)",
example: "-0.5 tilt",
compile: Param,
varargs: false,
},
Word {
name: "comb",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set comb filter mix",
example: "0.5 comb",
compile: Param,
varargs: false,
},
Word {
name: "combfreq",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set comb frequency",
example: "200 combfreq",
compile: Param,
varargs: false,
},
Word {
name: "combfeedback",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set comb feedback",
example: "0.5 combfeedback",
compile: Param,
varargs: false,
},
Word {
name: "combdamp",
aliases: &[],
category: "Filter",
stack: "(f --)",
desc: "Set comb damping",
example: "0.5 combdamp",
compile: Param,
varargs: false,
},
// Reverb
Word {
name: "verb",
aliases: &[],
category: "Reverb",
stack: "(f --)",
desc: "Set reverb mix",
example: "0.3 verb",
compile: Param,
varargs: false,
},
Word {
name: "verbdecay",
aliases: &[],
category: "Reverb",
stack: "(f --)",
desc: "Set reverb decay",
example: "2 verbdecay",
compile: Param,
varargs: false,
},
Word {
name: "verbdamp",
aliases: &[],
category: "Reverb",
stack: "(f --)",
desc: "Set reverb damping",
example: "0.5 verbdamp",
compile: Param,
varargs: false,
},
Word {
name: "verbpredelay",
aliases: &[],
category: "Reverb",
stack: "(f --)",
desc: "Set reverb predelay",
example: "0.02 verbpredelay",
compile: Param,
varargs: false,
},
Word {
name: "verbdiff",
aliases: &[],
category: "Reverb",
stack: "(f --)",
desc: "Set reverb diffusion",
example: "0.7 verbdiff",
compile: Param,
varargs: false,
},
Word {
name: "size",
aliases: &[],
category: "Reverb",
stack: "(f --)",
desc: "Set size",
example: "1 size",
compile: Param,
varargs: false,
},
// Delay
Word {
name: "delay",
aliases: &[],
category: "Delay",
stack: "(f --)",
desc: "Set delay mix",
example: "0.3 delay",
compile: Param,
varargs: false,
},
Word {
name: "delaytime",
aliases: &[],
category: "Delay",
stack: "(f --)",
desc: "Set delay time",
example: "0.25 delaytime",
compile: Param,
varargs: false,
},
Word {
name: "delayfeedback",
aliases: &[],
category: "Delay",
stack: "(f --)",
desc: "Set delay feedback",
example: "0.5 delayfeedback",
compile: Param,
varargs: false,
},
Word {
name: "delaytype",
aliases: &[],
category: "Delay",
stack: "(n --)",
desc: "Set delay type",
example: "1 delaytype",
compile: Param,
varargs: false,
},
// Lo-fi
Word {
name: "crush",
aliases: &[],
category: "Lo-fi",
stack: "(f --)",
desc: "Set bit crush",
example: "8 crush",
compile: Param,
varargs: false,
},
Word {
name: "fold",
aliases: &[],
category: "Lo-fi",
stack: "(f --)",
desc: "Set wave fold",
example: "2 fold",
compile: Param,
varargs: false,
},
Word {
name: "wrap",
aliases: &[],
category: "Lo-fi",
stack: "(f --)",
desc: "Set wave wrap",
example: "0.5 wrap",
compile: Param,
varargs: false,
},
Word {
name: "distort",
aliases: &[],
category: "Lo-fi",
stack: "(f --)",
desc: "Set distortion",
example: "0.5 distort",
compile: Param,
varargs: false,
},
Word {
name: "distortvol",
aliases: &[],
category: "Lo-fi",
stack: "(f --)",
desc: "Set distortion volume",
example: "0.8 distortvol",
compile: Param,
varargs: false,
},
// Stereo
Word {
name: "pan",
aliases: &[],
category: "Stereo",
stack: "(f --)",
desc: "Set pan (-1 to 1)",
example: "0.5 pan",
compile: Param,
varargs: false,
},
Word {
name: "width",
aliases: &[],
category: "Stereo",
stack: "(f --)",
desc: "Set stereo width (0 mono, 1 normal, 2 wide)",
example: "0 width",
compile: Param,
varargs: false,
},
Word {
name: "haas",
aliases: &[],
category: "Stereo",
stack: "(f --)",
desc: "Set Haas delay in ms (spatial placement)",
example: "8 haas",
compile: Param,
varargs: false,
},
// Mod FX
Word {
name: "phaser",
aliases: &[],
category: "Mod FX",
stack: "(f --)",
desc: "Set phaser rate",
example: "1 phaser",
compile: Param,
varargs: false,
},
Word {
name: "phaserdepth",
aliases: &[],
category: "Mod FX",
stack: "(f --)",
desc: "Set phaser depth",
example: "0.5 phaserdepth",
compile: Param,
varargs: false,
},
Word {
name: "phasersweep",
aliases: &[],
category: "Mod FX",
stack: "(f --)",
desc: "Set phaser sweep",
example: "0.5 phasersweep",
compile: Param,
varargs: false,
},
Word {
name: "phasercenter",
aliases: &[],
category: "Mod FX",
stack: "(f --)",
desc: "Set phaser center",
example: "1000 phasercenter",
compile: Param,
varargs: false,
},
Word {
name: "flanger",
aliases: &[],
category: "Mod FX",
stack: "(f --)",
desc: "Set flanger rate",
example: "0.5 flanger",
compile: Param,
varargs: false,
},
Word {
name: "flangerdepth",
aliases: &[],
category: "Mod FX",
stack: "(f --)",
desc: "Set flanger depth",
example: "0.5 flangerdepth",
compile: Param,
varargs: false,
},
Word {
name: "flangerfeedback",
aliases: &[],
category: "Mod FX",
stack: "(f --)",
desc: "Set flanger feedback",
example: "0.5 flangerfeedback",
compile: Param,
varargs: false,
},
Word {
name: "chorus",
aliases: &[],
category: "Mod FX",
stack: "(f --)",
desc: "Set chorus rate",
example: "1 chorus",
compile: Param,
varargs: false,
},
Word {
name: "chorusdepth",
aliases: &[],
category: "Mod FX",
stack: "(f --)",
desc: "Set chorus depth",
example: "0.5 chorusdepth",
compile: Param,
varargs: false,
},
Word {
name: "chorusdelay",
aliases: &[],
category: "Mod FX",
stack: "(f --)",
desc: "Set chorus delay",
example: "0.02 chorusdelay",
compile: Param,
varargs: false,
},
Word {
name: "feedback",
aliases: &["fb"],
category: "Mod FX",
stack: "(f --)",
desc: "Set feedback delay level",
example: "0.7 feedback",
compile: Param,
varargs: false,
},
Word {
name: "fbtime",
aliases: &["fbt"],
category: "Mod FX",
stack: "(f --)",
desc: "Set feedback delay time in ms",
example: "30 fbtime",
compile: Param,
varargs: false,
},
Word {
name: "fbdamp",
aliases: &["fbd"],
category: "Mod FX",
stack: "(f --)",
desc: "Set feedback delay damping",
example: "0.3 fbdamp",
compile: Param,
varargs: false,
},
Word {
name: "fblfo",
aliases: &[],
category: "Mod FX",
stack: "(f --)",
desc: "Set feedback delay LFO rate in Hz",
example: "2 fblfo",
compile: Param,
varargs: false,
},
Word {
name: "fblfodepth",
aliases: &[],
category: "Mod FX",
stack: "(f --)",
desc: "Set feedback delay LFO depth",
example: "0.5 fblfodepth",
compile: Param,
varargs: false,
},
Word {
name: "fblfoshape",
aliases: &[],
category: "Mod FX",
stack: "(s --)",
desc: "Set feedback delay LFO shape",
example: "tri fblfoshape",
compile: Param,
varargs: false,
},
];