Feat: add new words for new audio rate modulations
This commit is contained in:
@@ -1433,7 +1433,7 @@ impl Forth {
|
|||||||
let dur = pop_float(stack)? * ctx.step_duration();
|
let dur = pop_float(stack)? * ctx.step_duration();
|
||||||
let end = pop_float(stack)?;
|
let end = pop_float(stack)?;
|
||||||
let start = pop_float(stack)?;
|
let start = pop_float(stack)?;
|
||||||
let suffix = match curve { 1 => "e", 2 => "s", _ => "" };
|
let suffix = match curve { 1 => "e", 2 => "s", 3 => "i", 4 => "o", 5 => "p", _ => "" };
|
||||||
let s = format!("{start}>{end}:{dur}{suffix}");
|
let s = format!("{start}>{end}:{dur}{suffix}");
|
||||||
stack.push(Value::Str(s.into(), None));
|
stack.push(Value::Str(s.into(), None));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -136,6 +136,9 @@ pub(super) fn simple_op(name: &str) -> Option<Op> {
|
|||||||
"slide" => Op::ModSlide(0),
|
"slide" => Op::ModSlide(0),
|
||||||
"expslide" => Op::ModSlide(1),
|
"expslide" => Op::ModSlide(1),
|
||||||
"sslide" => Op::ModSlide(2),
|
"sslide" => Op::ModSlide(2),
|
||||||
|
"islide" => Op::ModSlide(3),
|
||||||
|
"oslide" => Op::ModSlide(4),
|
||||||
|
"pslide" => Op::ModSlide(5),
|
||||||
"jit" => Op::ModRnd(0),
|
"jit" => Op::ModRnd(0),
|
||||||
"sjit" => Op::ModRnd(1),
|
"sjit" => Op::ModRnd(1),
|
||||||
"drunk" => Op::ModRnd(2),
|
"drunk" => Op::ModRnd(2),
|
||||||
|
|||||||
@@ -862,6 +862,36 @@ pub(super) const WORDS: &[Word] = &[
|
|||||||
compile: Simple,
|
compile: Simple,
|
||||||
varargs: false,
|
varargs: false,
|
||||||
},
|
},
|
||||||
|
Word {
|
||||||
|
name: "islide",
|
||||||
|
aliases: &[],
|
||||||
|
category: "Audio Modulation",
|
||||||
|
stack: "(start end dur -- str)",
|
||||||
|
desc: "Swell transition (slow start, fast finish): start>end:duri",
|
||||||
|
example: "200 4000 1 islide lpf",
|
||||||
|
compile: Simple,
|
||||||
|
varargs: false,
|
||||||
|
},
|
||||||
|
Word {
|
||||||
|
name: "oslide",
|
||||||
|
aliases: &[],
|
||||||
|
category: "Audio Modulation",
|
||||||
|
stack: "(start end dur -- str)",
|
||||||
|
desc: "Pluck transition (fast attack, slow settle): start>end:duro",
|
||||||
|
example: "0 1 0.5 oslide gain",
|
||||||
|
compile: Simple,
|
||||||
|
varargs: false,
|
||||||
|
},
|
||||||
|
Word {
|
||||||
|
name: "pslide",
|
||||||
|
aliases: &[],
|
||||||
|
category: "Audio Modulation",
|
||||||
|
stack: "(start end dur -- str)",
|
||||||
|
desc: "Stair transition (8 discrete steps): start>end:durp",
|
||||||
|
example: "0 1 2 pslide gain",
|
||||||
|
compile: Simple,
|
||||||
|
varargs: false,
|
||||||
|
},
|
||||||
Word {
|
Word {
|
||||||
name: "jit",
|
name: "jit",
|
||||||
aliases: &[],
|
aliases: &[],
|
||||||
|
|||||||
Reference in New Issue
Block a user