Feat: internal recording / overdubbing

This commit is contained in:
2026-02-24 13:13:56 +01:00
parent 2de49bdeba
commit a6ff19bb08
7 changed files with 212 additions and 0 deletions

View File

@@ -1610,6 +1610,24 @@ impl Forth {
}
drain_select_run(count, resolved_idx, stack, outputs, cmd)?;
}
Op::Rec => {
let name = pop(stack)?;
outputs.push(format!("/doux/rec/sound/{}", name.as_str()?));
}
Op::Overdub => {
let name = pop(stack)?;
outputs.push(format!("/doux/rec/sound/{}/overdub/1", name.as_str()?));
}
Op::Orec => {
let orbit = pop(stack)?.as_int()?;
let name = pop(stack)?;
outputs.push(format!("/doux/rec/sound/{}/orbit/{}", name.as_str()?, orbit));
}
Op::Odub => {
let orbit = pop(stack)?.as_int()?;
let name = pop(stack)?;
outputs.push(format!("/doux/rec/sound/{}/overdub/1/orbit/{}", name.as_str()?, orbit));
}
Op::Forget => {
let name = pop(stack)?;
self.dict.lock().remove(name.as_str()?);