Merge remote-tracking branch 'origin/main' into supradough

This commit is contained in:
Felix Roos 2025-07-15 22:26:46 +02:00
commit a32473d570
No known key found for this signature in database
142 changed files with 5203 additions and 1984 deletions

View file

@ -1910,6 +1910,86 @@ exports[`runs examples > example "chunkBack" example index 0 1`] = `
]
`;
exports[`runs examples > example "chunkBackInto" example index 0 1`] = `
[
"[ 0/1 → 1/16 | s:bd speed:2 bank:tr909 ]",
"[ 1/16 → 1/8 | s:sd speed:2 bank:tr909 ]",
"[ 1/8 → 3/16 | s:bd speed:2 bank:tr909 ]",
"[ 3/16 → 1/4 | s:sd speed:2 bank:tr909 ]",
"[ 1/4 → 3/8 | s:ht bank:tr909 ]",
"[ 3/8 → 1/2 | s:lt bank:tr909 ]",
"[ 1/2 → 5/8 | s:bd bank:tr909 ]",
"[ 3/4 → 7/8 | s:cp bank:tr909 ]",
"[ 7/8 → 1/1 | s:lt bank:tr909 ]",
"[ 1/1 → 9/8 | s:bd bank:tr909 ]",
"[ 9/8 → 5/4 | s:sd bank:tr909 ]",
"[ 5/4 → 21/16 | s:ht speed:2 bank:tr909 ]",
"[ 21/16 → 11/8 | s:lt speed:2 bank:tr909 ]",
"[ 11/8 → 23/16 | s:ht speed:2 bank:tr909 ]",
"[ 23/16 → 3/2 | s:lt speed:2 bank:tr909 ]",
"[ 3/2 → 13/8 | s:bd bank:tr909 ]",
"[ 7/4 → 15/8 | s:cp bank:tr909 ]",
"[ 15/8 → 2/1 | s:lt bank:tr909 ]",
"[ 2/1 → 17/8 | s:bd bank:tr909 ]",
"[ 17/8 → 9/4 | s:sd bank:tr909 ]",
"[ 9/4 → 19/8 | s:ht bank:tr909 ]",
"[ 19/8 → 5/2 | s:lt bank:tr909 ]",
"[ 5/2 → 41/16 | s:bd speed:2 bank:tr909 ]",
"[ 21/8 → 43/16 | s:bd speed:2 bank:tr909 ]",
"[ 11/4 → 23/8 | s:cp bank:tr909 ]",
"[ 23/8 → 3/1 | s:lt bank:tr909 ]",
"[ 3/1 → 25/8 | s:bd bank:tr909 ]",
"[ 25/8 → 13/4 | s:sd bank:tr909 ]",
"[ 13/4 → 27/8 | s:ht bank:tr909 ]",
"[ 27/8 → 7/2 | s:lt bank:tr909 ]",
"[ 7/2 → 29/8 | s:bd bank:tr909 ]",
"[ 15/4 → 61/16 | s:cp speed:2 bank:tr909 ]",
"[ 61/16 → 31/8 | s:lt speed:2 bank:tr909 ]",
"[ 31/8 → 63/16 | s:cp speed:2 bank:tr909 ]",
"[ 63/16 → 4/1 | s:lt speed:2 bank:tr909 ]",
]
`;
exports[`runs examples > example "chunkInto" example index 0 1`] = `
[
"[ 0/1 → 1/16 | s:bd speed:2 bank:tr909 ]",
"[ 1/16 → 1/8 | s:sd speed:2 bank:tr909 ]",
"[ 1/8 → 3/16 | s:bd speed:2 bank:tr909 ]",
"[ 3/16 → 1/4 | s:sd speed:2 bank:tr909 ]",
"[ 1/4 → 3/8 | s:ht bank:tr909 ]",
"[ 3/8 → 1/2 | s:lt bank:tr909 ]",
"[ 1/2 → 5/8 | s:bd bank:tr909 ]",
"[ 3/4 → 7/8 | s:cp bank:tr909 ]",
"[ 7/8 → 1/1 | s:lt bank:tr909 ]",
"[ 1/1 → 9/8 | s:bd bank:tr909 ]",
"[ 9/8 → 5/4 | s:sd bank:tr909 ]",
"[ 5/4 → 21/16 | s:ht speed:2 bank:tr909 ]",
"[ 21/16 → 11/8 | s:lt speed:2 bank:tr909 ]",
"[ 11/8 → 23/16 | s:ht speed:2 bank:tr909 ]",
"[ 23/16 → 3/2 | s:lt speed:2 bank:tr909 ]",
"[ 3/2 → 13/8 | s:bd bank:tr909 ]",
"[ 7/4 → 15/8 | s:cp bank:tr909 ]",
"[ 15/8 → 2/1 | s:lt bank:tr909 ]",
"[ 2/1 → 17/8 | s:bd bank:tr909 ]",
"[ 17/8 → 9/4 | s:sd bank:tr909 ]",
"[ 9/4 → 19/8 | s:ht bank:tr909 ]",
"[ 19/8 → 5/2 | s:lt bank:tr909 ]",
"[ 5/2 → 41/16 | s:bd speed:2 bank:tr909 ]",
"[ 21/8 → 43/16 | s:bd speed:2 bank:tr909 ]",
"[ 11/4 → 23/8 | s:cp bank:tr909 ]",
"[ 23/8 → 3/1 | s:lt bank:tr909 ]",
"[ 3/1 → 25/8 | s:bd bank:tr909 ]",
"[ 25/8 → 13/4 | s:sd bank:tr909 ]",
"[ 13/4 → 27/8 | s:ht bank:tr909 ]",
"[ 27/8 → 7/2 | s:lt bank:tr909 ]",
"[ 7/2 → 29/8 | s:bd bank:tr909 ]",
"[ 15/4 → 61/16 | s:cp speed:2 bank:tr909 ]",
"[ 61/16 → 31/8 | s:lt speed:2 bank:tr909 ]",
"[ 31/8 → 63/16 | s:cp speed:2 bank:tr909 ]",
"[ 63/16 → 4/1 | s:lt speed:2 bank:tr909 ]",
]
`;
exports[`runs examples > example "clip" example index 0 1`] = `
[
"[ 0/1 → 1/4 | note:c s:piano clip:0.5 ]",
@ -2572,16 +2652,16 @@ exports[`runs examples > example "delayspeed" example index 0 1`] = `
]
`;
exports[`runs examples > example "delaytime" example index 0 1`] = `
exports[`runs examples > example "delaysync" example index 0 1`] = `
[
"[ 0/1 → 1/2 | s:bd delay:0.25 delaytime:0.125 ]",
"[ 1/2 → 1/1 | s:bd delay:0.25 delaytime:0.125 ]",
"[ 1/1 → 3/2 | s:bd delay:0.25 delaytime:0.25 ]",
"[ 3/2 → 2/1 | s:bd delay:0.25 delaytime:0.25 ]",
"[ 2/1 → 5/2 | s:bd delay:0.25 delaytime:0.5 ]",
"[ 5/2 → 3/1 | s:bd delay:0.25 delaytime:0.5 ]",
"[ 3/1 → 7/2 | s:bd delay:0.25 delaytime:1 ]",
"[ 7/2 → 4/1 | s:bd delay:0.25 delaytime:1 ]",
"[ 0/1 → 1/2 | s:bd delay:0.25 delaysync:0.125 ]",
"[ 1/2 → 1/1 | s:bd delay:0.25 delaysync:0.125 ]",
"[ 1/1 → 3/2 | s:bd delay:0.25 delaysync:0.25 ]",
"[ 3/2 → 2/1 | s:bd delay:0.25 delaysync:0.25 ]",
"[ 2/1 → 5/2 | s:bd delay:0.25 delaysync:0.375 ]",
"[ 5/2 → 3/1 | s:bd delay:0.25 delaysync:0.375 ]",
"[ 3/1 → 7/2 | s:bd delay:0.25 delaysync:0.625 ]",
"[ 7/2 → 4/1 | s:bd delay:0.25 delaysync:0.625 ]",
]
`;
@ -4458,6 +4538,35 @@ exports[`runs examples > example "inside" example index 0 1`] = `
]
`;
exports[`runs examples > example "into" example index 0 1`] = `
[
"[ 0/1 → 1/8 | s:bd speed:2 ]",
"[ 1/8 → 1/4 | s:sd speed:2 ]",
"[ 1/4 → 3/8 | s:bd speed:2 ]",
"[ 3/8 → 1/2 | s:sd speed:2 ]",
"[ 1/2 → 3/4 | s:ht ]",
"[ 3/4 → 1/1 | s:lt ]",
"[ 1/1 → 9/8 | s:bd speed:2 ]",
"[ 9/8 → 5/4 | s:sd speed:2 ]",
"[ 5/4 → 11/8 | s:bd speed:2 ]",
"[ 11/8 → 3/2 | s:sd speed:2 ]",
"[ 3/2 → 7/4 | s:ht ]",
"[ 7/4 → 2/1 | s:lt ]",
"[ 2/1 → 17/8 | s:bd speed:2 ]",
"[ 17/8 → 9/4 | s:sd speed:2 ]",
"[ 9/4 → 19/8 | s:bd speed:2 ]",
"[ 19/8 → 5/2 | s:sd speed:2 ]",
"[ 5/2 → 11/4 | s:ht ]",
"[ 11/4 → 3/1 | s:lt ]",
"[ 3/1 → 25/8 | s:bd speed:2 ]",
"[ 25/8 → 13/4 | s:sd speed:2 ]",
"[ 13/4 → 27/8 | s:bd speed:2 ]",
"[ 27/8 → 7/2 | s:sd speed:2 ]",
"[ 7/2 → 15/4 | s:ht ]",
"[ 15/4 → 4/1 | s:lt ]",
]
`;
exports[`runs examples > example "invert" example index 0 1`] = `
[
"[ 0/1 → 1/8 | s:bd ]",
@ -5083,6 +5192,15 @@ exports[`runs examples > example "linger" example index 0 1`] = `
]
`;
exports[`runs examples > example "lock" example index 0 1`] = `
[
"[ 0/1 → 1/1 | delay:{s:sd} lock:1 ]",
"[ 1/1 → 2/1 | delay:{s:sd} lock:1 ]",
"[ 2/1 → 3/1 | delay:{s:sd} lock:1 ]",
"[ 3/1 → 4/1 | delay:{s:sd} lock:1 ]",
]
`;
exports[`runs examples > example "loop" example index 0 1`] = `
[
"[ 0/1 → 1/1 | s:casio loop:1 ]",
@ -8517,6 +8635,35 @@ exports[`runs examples > example "seqPLoop" example index 0 1`] = `
]
`;
exports[`runs examples > example "setcpm" example index 0 1`] = `
[
"[ 0/1 → 1/4 | s:bd bank:tr707 ]",
"[ 1/4 → 1/2 | s:bd bank:tr707 ]",
"[ 1/4 → 1/2 | s:sd bank:tr707 ]",
"[ 1/2 → 3/4 | s:bd bank:tr707 ]",
"[ 3/4 → 1/1 | s:bd bank:tr707 ]",
"[ 3/4 → 1/1 | s:sd bank:tr707 ]",
"[ 1/1 → 5/4 | s:bd bank:tr707 ]",
"[ 5/4 → 3/2 | s:bd bank:tr707 ]",
"[ 5/4 → 3/2 | s:sd bank:tr707 ]",
"[ 3/2 → 7/4 | s:bd bank:tr707 ]",
"[ 7/4 → 2/1 | s:bd bank:tr707 ]",
"[ 7/4 → 2/1 | s:sd bank:tr707 ]",
"[ 2/1 → 9/4 | s:bd bank:tr707 ]",
"[ 9/4 → 5/2 | s:bd bank:tr707 ]",
"[ 9/4 → 5/2 | s:sd bank:tr707 ]",
"[ 5/2 → 11/4 | s:bd bank:tr707 ]",
"[ 11/4 → 3/1 | s:bd bank:tr707 ]",
"[ 11/4 → 3/1 | s:sd bank:tr707 ]",
"[ 3/1 → 13/4 | s:bd bank:tr707 ]",
"[ 13/4 → 7/2 | s:bd bank:tr707 ]",
"[ 13/4 → 7/2 | s:sd bank:tr707 ]",
"[ 7/2 → 15/4 | s:bd bank:tr707 ]",
"[ 15/4 → 4/1 | s:bd bank:tr707 ]",
"[ 15/4 → 4/1 | s:sd bank:tr707 ]",
]
`;
exports[`runs examples > example "shape" example index 0 1`] = `
[
"[ 0/1 → 1/8 | s:hh shape:0 ]",
@ -8720,46 +8867,46 @@ exports[`runs examples > example "shrink" example index 3 1`] = `
exports[`runs examples > example "shuffle" example index 0 1`] = `
[
"[ 0/1 → 1/4 | note:c s:piano ]",
"[ 0/1 → 1/4 | note:e s:piano ]",
"[ 1/4 → 1/2 | note:d s:piano ]",
"[ 1/2 → 3/4 | note:e s:piano ]",
"[ 3/4 → 1/1 | note:f s:piano ]",
"[ 1/1 → 5/4 | note:c s:piano ]",
"[ 5/4 → 3/2 | note:d s:piano ]",
"[ 3/2 → 7/4 | note:e s:piano ]",
"[ 7/4 → 2/1 | note:f s:piano ]",
"[ 2/1 → 9/4 | note:c s:piano ]",
"[ 9/4 → 5/2 | note:d s:piano ]",
"[ 1/2 → 3/4 | note:f s:piano ]",
"[ 3/4 → 1/1 | note:c s:piano ]",
"[ 1/1 → 5/4 | note:e s:piano ]",
"[ 5/4 → 3/2 | note:c s:piano ]",
"[ 3/2 → 7/4 | note:f s:piano ]",
"[ 7/4 → 2/1 | note:d s:piano ]",
"[ 2/1 → 9/4 | note:d s:piano ]",
"[ 9/4 → 5/2 | note:c s:piano ]",
"[ 5/2 → 11/4 | note:e s:piano ]",
"[ 11/4 → 3/1 | note:f s:piano ]",
"[ 3/1 → 13/4 | note:c s:piano ]",
"[ 13/4 → 7/2 | note:d s:piano ]",
"[ 7/2 → 15/4 | note:e s:piano ]",
"[ 15/4 → 4/1 | note:f s:piano ]",
"[ 13/4 → 7/2 | note:e s:piano ]",
"[ 7/2 → 15/4 | note:f s:piano ]",
"[ 15/4 → 4/1 | note:d s:piano ]",
]
`;
exports[`runs examples > example "shuffle" example index 1 1`] = `
[
"[ 0/1 → 1/8 | note:c s:piano ]",
"[ 0/1 → 1/8 | note:e s:piano ]",
"[ 1/8 → 1/4 | note:d s:piano ]",
"[ 1/4 → 3/8 | note:e s:piano ]",
"[ 3/8 → 1/2 | note:f s:piano ]",
"[ 1/4 → 3/8 | note:f s:piano ]",
"[ 3/8 → 1/2 | note:c s:piano ]",
"[ 1/2 → 1/1 | note:g s:piano ]",
"[ 1/1 → 9/8 | note:c s:piano ]",
"[ 9/8 → 5/4 | note:d s:piano ]",
"[ 5/4 → 11/8 | note:e s:piano ]",
"[ 11/8 → 3/2 | note:f s:piano ]",
"[ 1/1 → 9/8 | note:e s:piano ]",
"[ 9/8 → 5/4 | note:c s:piano ]",
"[ 5/4 → 11/8 | note:f s:piano ]",
"[ 11/8 → 3/2 | note:d s:piano ]",
"[ 3/2 → 2/1 | note:g s:piano ]",
"[ 2/1 → 17/8 | note:c s:piano ]",
"[ 17/8 → 9/4 | note:d s:piano ]",
"[ 2/1 → 17/8 | note:d s:piano ]",
"[ 17/8 → 9/4 | note:c s:piano ]",
"[ 9/4 → 19/8 | note:e s:piano ]",
"[ 19/8 → 5/2 | note:f s:piano ]",
"[ 5/2 → 3/1 | note:g s:piano ]",
"[ 3/1 → 25/8 | note:c s:piano ]",
"[ 25/8 → 13/4 | note:d s:piano ]",
"[ 13/4 → 27/8 | note:e s:piano ]",
"[ 27/8 → 7/2 | note:f s:piano ]",
"[ 25/8 → 13/4 | note:e s:piano ]",
"[ 13/4 → 27/8 | note:f s:piano ]",
"[ 27/8 → 7/2 | note:d s:piano ]",
"[ 7/2 → 4/1 | note:g s:piano ]",
]
`;

View file

@ -97,6 +97,7 @@ const toneHelpersMocked = {
'_pianoroll',
'_spectrum',
'markcss',
'p',
].forEach((mock) => {
strudel.Pattern.prototype[mock] = function () {
return this;
@ -163,6 +164,7 @@ evalScope(
loadCsound,
loadcsound,
setcps: id,
setcpm: id,
Clock: {}, // whatever
},
);

View file

@ -359,28 +359,6 @@ stack(
"[~ [0 ~]] 0 [~ [4 ~]] 4".sub(7).restart(scales).scale(scales).early(.25)
).note().piano().slow(2)`;
/*
export const customTrigger = `// licensed with CC BY-NC-SA 4.0 https://creativecommons.org/licenses/by-nc-sa/4.0/
// by Felix Roos
stack(
freq("55 [110,165] 110 [220,275]".mul("<1 <3/4 2/3>>").struct("x(3,8)").layer(x=>x.mul("1.006,.995"))),
freq("440(5,8)".clip(.18).mul("<1 3/4 2 2/3>")).gain(perlin.range(.2,.8))
).s("<sawtooth square>/2")
.onTrigger((t,hap,ct)=>{
const ac = Tone.getContext().rawContext;
t = ac.currentTime + t - ct;
const { freq, s, gain = 1 } = hap.value;
const master = ac.createGain();
master.gain.value = 0.1 * gain;
master.connect(ac.destination);
const o = ac.createOscillator();
o.type = s || 'triangle';
o.frequency.value = Number(freq);
o.connect(master);
o.start(t);
o.stop(t + hap.duration);
}).stack(s("bd(3,8),hh*4,~ sd").webdirt())`; */
export const swimmingWithSoundfonts = `// Koji Kondo - Swimming (Super Mario World)
stack(
n(