Feat: demo songs

This commit is contained in:
2026-02-22 23:50:35 +01:00
parent 81f475a75b
commit f47285385c
27 changed files with 25324 additions and 38 deletions

View File

@@ -1083,6 +1083,28 @@ impl Forth {
let val = pop_float(stack)?;
stack.push(Value::Float(min + val * (max - min), None));
}
Op::LinMap => {
let out_hi = pop_float(stack)?;
let out_lo = pop_float(stack)?;
let in_hi = pop_float(stack)?;
let in_lo = pop_float(stack)?;
let val = pop_float(stack)?;
let t = if (in_hi - in_lo).abs() < f64::EPSILON {
0.0
} else {
(val - in_lo) / (in_hi - in_lo)
};
stack.push(Value::Float(out_lo + t * (out_hi - out_lo), None));
}
Op::ExpMap => {
let hi = pop_float(stack)?;
let lo = pop_float(stack)?;
let val = pop_float(stack)?;
if lo <= 0.0 || hi <= 0.0 {
return Err("expmap requires positive bounds".into());
}
stack.push(Value::Float(lo * (hi / lo).powf(val), None));
}
Op::Perlin => {
let freq = pop_float(stack)?;
let val = perlin_noise_1d(freq * ctx.beat);