Feat: new euclidean words and sugar for floating point numbers

This commit is contained in:
2026-02-05 01:30:34 +01:00
parent 53fb3eb759
commit c92a29ab85
9 changed files with 237 additions and 2 deletions

View File

@@ -92,6 +92,8 @@ pub(super) fn simple_op(name: &str) -> Option<Op> {
".," => Op::StepRange,
"gen" => Op::Generate,
"geom.." => Op::GeomRange,
"euclid" => Op::Euclid,
"euclidrot" => Op::EuclidRot,
"times" => Op::Times,
"m." => Op::MidiEmit,
"ccval" => Op::GetMidiCC,

View File

@@ -420,4 +420,24 @@ pub(super) const WORDS: &[Word] = &[
compile: Simple,
varargs: false,
},
Word {
name: "euclid",
aliases: &[],
category: "Generator",
stack: "(k n -- i1 i2 ... ik)",
desc: "Push indices for k hits evenly distributed over n steps",
example: "4 8 euclid => 0 2 4 6",
compile: Simple,
varargs: false,
},
Word {
name: "euclidrot",
aliases: &[],
category: "Generator",
stack: "(k n r -- i1 i2 ... ik)",
desc: "Push Euclidean indices with rotation r",
example: "3 8 2 euclidrot => 1 4 6",
compile: Simple,
varargs: false,
},
];