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

@@ -113,6 +113,10 @@ pub(super) fn simple_op(name: &str) -> Option<Op> {
"mstart" => Op::MidiStart,
"mstop" => Op::MidiStop,
"mcont" => Op::MidiContinue,
"rec" => Op::Rec,
"overdub" | "dub" => Op::Overdub,
"orec" => Op::Orec,
"odub" => Op::Odub,
"forget" => Op::Forget,
"index" => Op::Index(None),
"key!" => Op::SetKey,

View File

@@ -63,6 +63,47 @@ pub(super) const WORDS: &[Word] = &[
compile: Simple,
varargs: false,
},
// Recording
Word {
name: "rec",
aliases: &[],
category: "Sound",
stack: "(name --)",
desc: "Toggle recording audio output to named sample",
example: "\"loop1\" rec",
compile: Simple,
varargs: false,
},
Word {
name: "overdub",
aliases: &["dub"],
category: "Sound",
stack: "(name --)",
desc: "Toggle overdub recording onto existing named sample",
example: "\"loop1\" overdub",
compile: Simple,
varargs: false,
},
Word {
name: "orec",
aliases: &[],
category: "Sound",
stack: "(name orbit --)",
desc: "Toggle recording a single orbit into named sample",
example: "\"drums\" 0 orec",
compile: Simple,
varargs: false,
},
Word {
name: "odub",
aliases: &[],
category: "Sound",
stack: "(name orbit --)",
desc: "Toggle overdub recording a single orbit onto named sample",
example: "\"drums\" 0 odub",
compile: Simple,
varargs: false,
},
// Sample
Word {
name: "bank",