Reorganise pattern.mjs with a 'toplevel first' regime (#286)

'toplevel first' regime
* loopAt has its optional cps parameter removed, with loopAtCps added for supporting that usage.
* rename bitlevel operations e.g. _and -> band

Co-authored-by: Felix Roos <flix91@gmail.com>
This commit is contained in:
Alex McLean 2022-12-10 14:39:03 +00:00 committed by GitHub
parent 98e9780819
commit 4340f024d3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 865 additions and 874 deletions

View File

@ -204,7 +204,7 @@ const generic_params = [
* "c4 eb4 g4 bb4".legato("<0.125 .25 .5 .75 1 2 4>")
*
*/
['f', 'legato', 'controls the amount of overlap between two adjacent sounds'],
// ['f', 'legato', 'controls the amount of overlap between two adjacent sounds'],
// ['f', 'clhatdecay', ''],
/**
* bit crusher effect.
@ -562,7 +562,7 @@ const generic_params = [
// TODO: detune? https://tidalcycles.org/docs/patternlib/tutorials/synthesizers/#supersquare
['f', 'semitone', ''],
// TODO: dedup with synth param, see https://tidalcycles.org/docs/reference/synthesizers/#superpiano
['f', 'velocity', ''],
// ['f', 'velocity', ''],
['f', 'voice', ''], // TODO: synth param
/**
* Sets the level of reverb.

File diff suppressed because it is too large Load Diff

View File

@ -16,6 +16,7 @@ import {
pure,
stack,
fastcat,
firstOf,
slowcat,
cat,
sequence,
@ -154,6 +155,12 @@ describe('Pattern', () => {
});
});
describe('add()', () => {
it('works as toplevel function', () => {
expect(add(pure(4), pure(5)).query(st(0, 1))[0].value).toBe(9);
});
it('works as toplevel function, with bare values for arguments', () => {
expect(add(4, 5).query(st(0, 1))[0].value).toBe(9);
});
it('can structure In()', () => {
expect(pure(3).add(pure(4)).query(st(0, 1))[0].value).toBe(7);
expect(pure(3).add.in(pure(4)).query(st(0, 1))[0].value).toBe(7);
@ -406,8 +413,8 @@ describe('Pattern', () => {
);
});
it('defaults to accepting sequences', () => {
expect(sequence(1, 2, 3).fast(sequence(1.5, 2)).firstCycle()).toStrictEqual(
sequence(1, 2, 3).fast(1.5, 2).firstCycle(),
expect(sequence('a', 'b', 'c').fast(sequence(1.5, 2)).sortHapsByPart().firstCycle()).toStrictEqual(
sequence('a', 'b', 'c').fast(1.5, 2).sortHapsByPart().firstCycle(),
);
});
it('works as a static function', () => {
@ -586,6 +593,16 @@ describe('Pattern', () => {
.firstCycle(),
).toStrictEqual(sequence(sequence('a', 'a'), 'a', 'a').firstCycle());
});
it('Works as a toplevel function', () => {
expect(firstOf(3, fast(2), pure('a'))._fast(3).firstCycle()).toStrictEqual(
sequence(sequence('a', 'a'), 'a', 'a').firstCycle(),
);
});
it('Works as a toplevel function, with a patterned first argument', () => {
expect(firstOf(pure(3), fast(2), pure('a'))._fast(3).firstCycle()).toStrictEqual(
sequence(sequence('a', 'a'), 'a', 'a').firstCycle(),
);
});
it('works with currying', () => {
expect(pure('a').firstOf(3, fast(2))._fast(3).firstCycle()).toStrictEqual(
sequence(sequence('a', 'a'), 'a', 'a').firstCycle(),
@ -895,9 +912,7 @@ describe('Pattern', () => {
});
describe('alignments', () => {
it('Can squeeze arguments', () => {
expect(sequence(1, 2).add.squeeze(4, 5).firstCycle()).toStrictEqual(
sequence(5, 6, 6, 7).firstCycle()
);
expect(sequence(1, 2).add.squeeze(4, 5).firstCycle()).toStrictEqual(sequence(5, 6, 6, 7).firstCycle());
});
});
});

View File

@ -116,9 +116,9 @@ export const constant = (a, b) => a;
export const listRange = (min, max) => Array.from({ length: max - min + 1 }, (_, i) => i + min);
export function curry(func, overload) {
export function curry(func, overload, arity = func.length) {
const fn = function curried(...args) {
if (args.length >= func.length) {
if (args.length >= arity) {
return func.apply(this, args);
} else {
const partial = function (...args2) {

View File

@ -1414,9 +1414,9 @@ exports[`renders tunes > tune: csoundDemo 1`] = `
"[ -1/4 ⇜ (0/1 → 1/4) | note:Bb3 ]",
"[ (1/4 → 1/1) ⇝ 5/4 | note:F3 ]",
"[ 0/1 → 1/2 | note:F4 ]",
"[ (1/2 → 1/1) ⇝ 3/2 | note:C4 ]",
"[ -1/4 ⇜ (0/1 → 1/4) | note:A4 ]",
"[ (1/4 → 1/2) ⇝ 3/4 | note:A4 ]",
"[ (1/2 → 1/1) ⇝ 3/2 | note:C4 ]",
"[ 1/4 ⇜ (1/2 → 3/4) | note:A4 ]",
"[ (3/4 → 1/1) ⇝ 7/4 | note:E4 ]",
]
@ -1456,24 +1456,24 @@ exports[`renders tunes > tune: echoPiano 1`] = `
"[ 0/1 → 1/2 | note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]",
"[ (1/4 → 5/8) ⇝ 3/4 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]",
"[ 0/1 → 1/4 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
"[ (1/2 → 3/4) ⇝ 1/1 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ (1/4 → 3/8) ⇝ 1/2 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]",
"[ (1/2 → 3/4) ⇝ 1/1 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ (3/4 → 7/8) ⇝ 5/4 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ -1/8 ⇜ (0/1 → 1/16) ⇝ 1/8 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]",
"[ -1/8 ⇜ (0/1 → 1/16) ⇝ 1/8 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]",
"[ (1/8 → 9/16) ⇝ 5/8 | note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]",
"[ (3/8 → 11/16) ⇝ 7/8 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]",
"[ 1/8 → 3/8 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
"[ (5/8 → 13/16) ⇝ 9/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ (3/8 → 1/2) ⇝ 5/8 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]",
"[ (5/8 → 13/16) ⇝ 9/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ (7/8 → 15/16) ⇝ 11/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ (0/1 → 1/8) ⇝ 1/4 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]",
"[ (0/1 → 1/8) ⇝ 1/4 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]",
"[ (1/4 → 5/8) ⇝ 3/4 | note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]",
"[ (1/2 → 3/4) ⇝ 1/1 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]",
"[ 1/4 → 1/2 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
"[ (3/4 → 7/8) ⇝ 5/4 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ (1/2 → 5/8) ⇝ 3/4 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]",
"[ (3/4 → 7/8) ⇝ 5/4 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ -1/8 ⇜ (0/1 → 1/8) | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]",
"[ (1/8 → 1/4) ⇝ 3/8 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]",
"[ -1/8 ⇜ (0/1 → 1/8) | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
@ -1481,40 +1481,40 @@ exports[`renders tunes > tune: echoPiano 1`] = `
"[ (3/8 → 11/16) ⇝ 7/8 | note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]",
"[ (5/8 → 13/16) ⇝ 9/8 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]",
"[ 3/8 → 5/8 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
"[ (7/8 → 15/16) ⇝ 11/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ (5/8 → 3/4) ⇝ 7/8 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]",
"[ (7/8 → 15/16) ⇝ 11/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ 1/1 → 3/2 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]",
"[ (5/4 → 13/8) ⇝ 7/4 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]",
"[ (3/2 → 7/4) ⇝ 2/1 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ 3/4 ⇜ (1/1 → 5/4) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ (3/2 → 7/4) ⇝ 2/1 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ (7/4 → 15/8) ⇝ 9/4 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 5/8 ⇜ (1/1 → 17/16) ⇝ 9/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ 7/8 ⇜ (1/1 → 17/16) ⇝ 11/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ (9/8 → 25/16) ⇝ 13/8 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]",
"[ (11/8 → 27/16) ⇝ 15/8 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]",
"[ (13/8 → 29/16) ⇝ 17/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ 7/8 ⇜ (9/8 → 11/8) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ (13/8 → 29/16) ⇝ 17/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ (15/8 → 31/16) ⇝ 19/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 3/4 ⇜ (1/1 → 9/8) ⇝ 5/4 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ (1/1 → 9/8) ⇝ 3/2 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ (5/4 → 13/8) ⇝ 7/4 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]",
"[ (3/2 → 7/4) ⇝ 2/1 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]",
"[ (7/4 → 15/8) ⇝ 9/4 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ 1/1 ⇜ (5/4 → 3/2) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ (7/4 → 15/8) ⇝ 9/4 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ 5/8 ⇜ (1/1 → 9/8) | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]",
"[ 7/8 ⇜ (1/1 → 19/16) ⇝ 11/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ (9/8 → 5/4) ⇝ 13/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ (11/8 → 27/16) ⇝ 15/8 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]",
"[ (13/8 → 29/16) ⇝ 17/8 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]",
"[ (15/8 → 31/16) ⇝ 19/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ 9/8 ⇜ (11/8 → 13/8) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ (15/8 → 31/16) ⇝ 19/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ 2/1 → 17/8 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]",
"[ 5/2 → 21/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ 11/4 → 23/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ 9/4 → 19/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ 11/4 → 23/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ 5/2 → 21/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 7/4 ⇜ (2/1 → 9/4) | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 5/2 → 21/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 11/4 → 23/8 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]",
"[ 13/8 ⇜ (2/1 → 33/16) ⇝ 17/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ 15/8 ⇜ (2/1 → 33/16) ⇝ 19/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
@ -1523,24 +1523,24 @@ exports[`renders tunes > tune: echoPiano 1`] = `
"[ (23/8 → 47/16) ⇝ 3/1 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ 19/8 → 5/2 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ (23/8 → 47/16) ⇝ 3/1 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ 21/8 → 11/4 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 15/8 ⇜ (17/8 → 19/8) | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 21/8 → 11/4 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ (23/8 → 47/16) ⇝ 3/1 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]",
"[ 7/4 ⇜ (2/1 → 17/8) ⇝ 9/4 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ (2/1 → 17/8) ⇝ 5/2 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 9/4 → 19/8 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]",
"[ 11/4 → 23/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ 5/2 → 21/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ 11/4 → 23/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 2/1 ⇜ (9/4 → 5/2) | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 11/4 → 23/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 13/8 ⇜ (2/1 → 17/8) | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]",
"[ 15/8 ⇜ (2/1 → 35/16) ⇝ 19/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ (17/8 → 9/4) ⇝ 21/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 19/8 → 5/2 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]",
"[ (23/8 → 47/16) ⇝ 3/1 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ 21/8 → 11/4 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ (23/8 → 47/16) ⇝ 3/1 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 17/8 ⇜ (19/8 → 21/8) | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ (23/8 → 47/16) ⇝ 3/1 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 3/1 → 13/4 | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]",
"[ 7/2 → 15/4 | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]",
"[ 3/1 → 25/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
@ -1548,8 +1548,8 @@ exports[`renders tunes > tune: echoPiano 1`] = `
"[ (15/4 → 31/8) ⇝ 4/1 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]",
"[ 3/1 → 25/8 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]",
"[ 13/4 → 27/8 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]",
"[ 7/2 → 15/4 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
"[ 13/4 → 27/8 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]",
"[ 7/2 → 15/4 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
"[ 7/2 → 29/8 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]",
"[ (15/4 → 31/8) ⇝ 4/1 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]",
"[ 25/8 → 27/8 | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]",
@ -1559,8 +1559,8 @@ exports[`renders tunes > tune: echoPiano 1`] = `
"[ (31/8 → 63/16) ⇝ 33/8 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]",
"[ 25/8 → 13/4 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]",
"[ 27/8 → 7/2 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]",
"[ (29/8 → 61/16) ⇝ 31/8 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
"[ 27/8 → 7/2 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]",
"[ (29/8 → 61/16) ⇝ 31/8 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
"[ 29/8 → 15/4 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]",
"[ (31/8 → 63/16) ⇝ 33/8 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]",
"[ 3/1 → 25/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
@ -1572,8 +1572,8 @@ exports[`renders tunes > tune: echoPiano 1`] = `
"[ 7/2 → 15/4 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]",
"[ 13/4 → 27/8 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]",
"[ 7/2 → 29/8 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]",
"[ (15/4 → 31/8) ⇝ 4/1 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
"[ 7/2 → 29/8 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]",
"[ (15/4 → 31/8) ⇝ 4/1 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
"[ 15/4 → 31/8 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]",
"[ 25/8 → 13/4 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ 25/8 → 13/4 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
@ -1584,30 +1584,30 @@ exports[`renders tunes > tune: echoPiano 1`] = `
"[ (29/8 → 61/16) ⇝ 31/8 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]",
"[ 27/8 → 7/2 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]",
"[ 29/8 → 15/4 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]",
"[ (31/8 → 63/16) ⇝ 33/8 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
"[ 29/8 → 15/4 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]",
"[ (31/8 → 63/16) ⇝ 33/8 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
"[ (31/8 → 63/16) ⇝ 4/1 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]",
"[ 4/1 → 9/2 | note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]",
"[ (17/4 → 37/8) ⇝ 19/4 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]",
"[ 4/1 → 17/4 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
"[ (9/2 → 19/4) ⇝ 5/1 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ (17/4 → 35/8) ⇝ 9/2 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]",
"[ (9/2 → 19/4) ⇝ 5/1 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ (19/4 → 39/8) ⇝ 21/4 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ 31/8 ⇜ (4/1 → 65/16) ⇝ 33/8 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]",
"[ 31/8 ⇜ (4/1 → 65/16) ⇝ 33/8 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]",
"[ (33/8 → 73/16) ⇝ 37/8 | note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]",
"[ (35/8 → 75/16) ⇝ 39/8 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]",
"[ 33/8 → 35/8 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
"[ (37/8 → 77/16) ⇝ 41/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ (35/8 → 9/2) ⇝ 37/8 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]",
"[ (37/8 → 77/16) ⇝ 41/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ (39/8 → 79/16) ⇝ 43/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ (4/1 → 33/8) ⇝ 17/4 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]",
"[ (4/1 → 33/8) ⇝ 17/4 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]",
"[ (17/4 → 37/8) ⇝ 19/4 | note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]",
"[ (9/2 → 19/4) ⇝ 5/1 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]",
"[ 17/4 → 9/2 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
"[ (19/4 → 39/8) ⇝ 21/4 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ (9/2 → 37/8) ⇝ 19/4 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]",
"[ (19/4 → 39/8) ⇝ 21/4 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ 31/8 ⇜ (4/1 → 33/8) | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]",
"[ (33/8 → 17/4) ⇝ 35/8 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]",
"[ 31/8 ⇜ (4/1 → 33/8) | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
@ -1615,40 +1615,40 @@ exports[`renders tunes > tune: echoPiano 1`] = `
"[ (35/8 → 75/16) ⇝ 39/8 | note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]",
"[ (37/8 → 77/16) ⇝ 41/8 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]",
"[ 35/8 → 37/8 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
"[ (39/8 → 79/16) ⇝ 43/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ (37/8 → 19/4) ⇝ 39/8 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]",
"[ (39/8 → 79/16) ⇝ 43/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ 5/1 → 11/2 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]",
"[ (21/4 → 45/8) ⇝ 23/4 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]",
"[ (11/2 → 23/4) ⇝ 6/1 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ 19/4 ⇜ (5/1 → 21/4) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ (11/2 → 23/4) ⇝ 6/1 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ (23/4 → 47/8) ⇝ 25/4 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 37/8 ⇜ (5/1 → 81/16) ⇝ 41/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ 39/8 ⇜ (5/1 → 81/16) ⇝ 43/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ (41/8 → 89/16) ⇝ 45/8 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]",
"[ (43/8 → 91/16) ⇝ 47/8 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]",
"[ (45/8 → 93/16) ⇝ 49/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ 39/8 ⇜ (41/8 → 43/8) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ (45/8 → 93/16) ⇝ 49/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ (47/8 → 95/16) ⇝ 51/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 19/4 ⇜ (5/1 → 41/8) ⇝ 21/4 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ (5/1 → 41/8) ⇝ 11/2 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ (21/4 → 45/8) ⇝ 23/4 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]",
"[ (11/2 → 23/4) ⇝ 6/1 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]",
"[ (23/4 → 47/8) ⇝ 25/4 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ 5/1 ⇜ (21/4 → 11/2) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ (23/4 → 47/8) ⇝ 25/4 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ 37/8 ⇜ (5/1 → 41/8) | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]",
"[ 39/8 ⇜ (5/1 → 83/16) ⇝ 43/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ (41/8 → 21/4) ⇝ 45/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ (43/8 → 91/16) ⇝ 47/8 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]",
"[ (45/8 → 93/16) ⇝ 49/8 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]",
"[ (47/8 → 95/16) ⇝ 51/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ 41/8 ⇜ (43/8 → 45/8) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ (47/8 → 95/16) ⇝ 51/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ 6/1 → 49/8 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]",
"[ 13/2 → 53/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ 27/4 → 55/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ 25/4 → 51/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ 27/4 → 55/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ 13/2 → 53/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 23/4 ⇜ (6/1 → 25/4) | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 13/2 → 53/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 27/4 → 55/8 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]",
"[ 45/8 ⇜ (6/1 → 97/16) ⇝ 49/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ 47/8 ⇜ (6/1 → 97/16) ⇝ 51/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
@ -1657,24 +1657,24 @@ exports[`renders tunes > tune: echoPiano 1`] = `
"[ (55/8 → 111/16) ⇝ 7/1 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ 51/8 → 13/2 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ (55/8 → 111/16) ⇝ 7/1 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ 53/8 → 27/4 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 47/8 ⇜ (49/8 → 51/8) | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 53/8 → 27/4 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ (55/8 → 111/16) ⇝ 7/1 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]",
"[ 23/4 ⇜ (6/1 → 49/8) ⇝ 25/4 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ (6/1 → 49/8) ⇝ 13/2 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 25/4 → 51/8 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]",
"[ 27/4 → 55/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ 13/2 → 53/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ 27/4 → 55/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 6/1 ⇜ (25/4 → 13/2) | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 27/4 → 55/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 45/8 ⇜ (6/1 → 49/8) | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]",
"[ 47/8 ⇜ (6/1 → 99/16) ⇝ 51/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
"[ (49/8 → 25/4) ⇝ 53/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 51/8 → 13/2 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]",
"[ (55/8 → 111/16) ⇝ 7/1 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ 53/8 → 27/4 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ (55/8 → 111/16) ⇝ 7/1 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 49/8 ⇜ (51/8 → 53/8) | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ (55/8 → 111/16) ⇝ 7/1 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]",
"[ 7/1 → 29/4 | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]",
"[ 15/2 → 31/4 | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]",
"[ 7/1 → 57/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
@ -1682,8 +1682,8 @@ exports[`renders tunes > tune: echoPiano 1`] = `
"[ (31/4 → 63/8) ⇝ 8/1 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]",
"[ 7/1 → 57/8 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]",
"[ 29/4 → 59/8 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]",
"[ 15/2 → 31/4 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
"[ 29/4 → 59/8 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]",
"[ 15/2 → 31/4 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
"[ 15/2 → 61/8 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]",
"[ (31/4 → 63/8) ⇝ 8/1 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]",
"[ 57/8 → 59/8 | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]",
@ -1693,8 +1693,8 @@ exports[`renders tunes > tune: echoPiano 1`] = `
"[ (63/8 → 127/16) ⇝ 65/8 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]",
"[ 57/8 → 29/4 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]",
"[ 59/8 → 15/2 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]",
"[ (61/8 → 125/16) ⇝ 63/8 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
"[ 59/8 → 15/2 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]",
"[ (61/8 → 125/16) ⇝ 63/8 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
"[ 61/8 → 31/4 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]",
"[ (63/8 → 127/16) ⇝ 65/8 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]",
"[ 7/1 → 57/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
@ -1706,8 +1706,8 @@ exports[`renders tunes > tune: echoPiano 1`] = `
"[ 15/2 → 31/4 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]",
"[ 29/4 → 59/8 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]",
"[ 15/2 → 61/8 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]",
"[ (31/4 → 63/8) ⇝ 8/1 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
"[ 15/2 → 61/8 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]",
"[ (31/4 → 63/8) ⇝ 8/1 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
"[ 31/4 → 63/8 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]",
"[ 57/8 → 29/4 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]",
"[ 57/8 → 29/4 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]",
@ -1718,8 +1718,8 @@ exports[`renders tunes > tune: echoPiano 1`] = `
"[ (61/8 → 125/16) ⇝ 63/8 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]",
"[ 59/8 → 15/2 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]",
"[ 61/8 → 31/4 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]",
"[ (63/8 → 127/16) ⇝ 65/8 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
"[ 61/8 → 31/4 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]",
"[ (63/8 → 127/16) ⇝ 65/8 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]",
"[ (63/8 → 127/16) ⇝ 8/1 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]",
]
`;
@ -9910,13 +9910,13 @@ exports[`renders tunes > tune: waa2 1`] = `
"[ 1/2 ⇜ (1/1 → 2752604/2452023) | n:69 s:sawtooth cutoff:3850.2031844444546 gain:0.5 room:0.5 ]",
"[ -1/4 ⇜ (0/1 → 1/4) ⇝ 3654347/9808092 | n:48 s:sawtooth cutoff:3995.31915093835 gain:0.5 room:0.5 ]",
"[ -1/4 ⇜ (1/4 → 3053185/9808092) ⇝ 3654347/9808092 | n:48 s:square cutoff:3995.31915093835 gain:0.5 room:0.5 ]",
"[ -1/4 ⇜ (0/1 → 1/4) ⇝ 3654347/9808092 | n:64 s:sawtooth cutoff:3995.31915093835 gain:0.5 room:0.5 ]",
"[ -1/4 ⇜ (1/4 → 3053185/9808092) ⇝ 3654347/9808092 | n:64 s:square cutoff:3995.31915093835 gain:0.5 room:0.5 ]",
"[ (1/4 → 1/2) ⇝ 8558393/9808092 | n:74 s:square cutoff:3957.6603580168244 gain:0.5 room:0.5 ]",
"[ 1/4 ⇜ (1/2 → 3/4) ⇝ 8558393/9808092 | n:74 s:sawtooth cutoff:3957.6603580168244 gain:0.5 room:0.5 ]",
"[ 1/4 ⇜ (3/4 → 8558393/9808092) | n:74 s:square cutoff:3957.6603580168244 gain:0.5 room:0.5 ]",
"[ (3/4 → 1/1) ⇝ 5204627/4904046 | n:62 s:square cutoff:3897.7021140702864 gain:0.5 room:0.5 ]",
"[ 3/4 ⇜ (1/1 → 5204627/4904046) | n:62 s:sawtooth cutoff:3858.612673535166 gain:0.5 room:0.5 ]",
"[ -1/4 ⇜ (0/1 → 1/4) ⇝ 3654347/9808092 | n:64 s:sawtooth cutoff:3995.31915093835 gain:0.5 room:0.5 ]",
"[ -1/4 ⇜ (1/4 → 3053185/9808092) ⇝ 3654347/9808092 | n:64 s:square cutoff:3995.31915093835 gain:0.5 room:0.5 ]",
"[ (1/4 → 1/2) ⇝ 8558393/9808092 | n:55 s:square cutoff:3957.6603580168244 gain:0.5 room:0.5 ]",
"[ 1/4 ⇜ (1/2 → 3/4) ⇝ 8558393/9808092 | n:55 s:sawtooth cutoff:3957.6603580168244 gain:0.5 room:0.5 ]",
"[ 1/4 ⇜ (3/4 → 8558393/9808092) | n:55 s:square cutoff:3957.6603580168244 gain:0.5 room:0.5 ]",

View File

@ -582,7 +582,7 @@ export const chop = `// licensed with CC BY-NC-SA 4.0 https://creativecommons.or
samples({ p: 'https://cdn.freesound.org/previews/648/648433_11943129-lq.mp3' })
s("p")
.loopAt(32,1)
.loopAt(32)
.chop(128)
.jux(rev)
.shape(.4)
@ -652,7 +652,7 @@ samples({bass:'https://cdn.freesound.org/previews/614/614637_2434927-hq.mp3',
dino:{b4:'https://cdn.freesound.org/previews/316/316403_5123851-hq.mp3'}})
stack(
s('bass').loopAt(8,1).clip(1),
s('bass').loopAt(8).clip(1),
s("bd*2, ~ sd,hh*4"),
note("Abm7".voicings(['c3','a4']).struct("x(3,8,1)".slow(2))),
"0 1 2 3".scale('ab4 minor pentatonic')

View File

@ -374,16 +374,16 @@ exports[`runs examples > example "chunk" example index 0 1`] = `
"[ 1/4 → 1/2 | note:B3 ]",
"[ 1/2 → 3/4 | note:C4 ]",
"[ 3/4 → 1/1 | note:D4 ]",
"[ 7/4 → 2/1 | note:D5 ]",
"[ 1/1 → 5/4 | note:A3 ]",
"[ 5/4 → 3/2 | note:B3 ]",
"[ 3/2 → 7/4 | note:C4 ]",
"[ 5/2 → 11/4 | note:C5 ]",
"[ 7/4 → 2/1 | note:D5 ]",
"[ 2/1 → 9/4 | note:A3 ]",
"[ 9/4 → 5/2 | note:B3 ]",
"[ 5/2 → 11/4 | note:C5 ]",
"[ 11/4 → 3/1 | note:D4 ]",
"[ 13/4 → 7/2 | note:B4 ]",
"[ 3/1 → 13/4 | note:A3 ]",
"[ 13/4 → 7/2 | note:B4 ]",
"[ 7/2 → 15/4 | note:C4 ]",
"[ 15/4 → 4/1 | note:D4 ]",
]
@ -395,18 +395,18 @@ exports[`runs examples > example "chunkBack" example index 0 1`] = `
"[ 1/4 → 1/2 | note:B3 ]",
"[ 1/2 → 3/4 | note:C4 ]",
"[ 3/4 → 1/1 | note:D4 ]",
"[ 5/4 → 3/2 | note:B4 ]",
"[ 1/1 → 5/4 | note:A3 ]",
"[ 5/4 → 3/2 | note:B4 ]",
"[ 3/2 → 7/4 | note:C4 ]",
"[ 7/4 → 2/1 | note:D4 ]",
"[ 5/2 → 11/4 | note:C5 ]",
"[ 2/1 → 9/4 | note:A3 ]",
"[ 9/4 → 5/2 | note:B3 ]",
"[ 5/2 → 11/4 | note:C5 ]",
"[ 11/4 → 3/1 | note:D4 ]",
"[ 15/4 → 4/1 | note:D5 ]",
"[ 3/1 → 13/4 | note:A3 ]",
"[ 13/4 → 7/2 | note:B3 ]",
"[ 7/2 → 15/4 | note:C4 ]",
"[ 15/4 → 4/1 | note:D5 ]",
]
`;
@ -1906,6 +1906,15 @@ exports[`runs examples > example "loopAt" example index 0 1`] = `
]
`;
exports[`runs examples > example "loopAtCps" example index 0 1`] = `
[
"[ (0/1 → 1/1) ⇝ 4/1 | s:rhodes speed:0.375 unit:c cps:1.5 ]",
"[ 0/1 ⇜ (1/1 → 2/1) ⇝ 4/1 | s:rhodes speed:0.375 unit:c cps:1.5 ]",
"[ 0/1 ⇜ (2/1 → 3/1) ⇝ 4/1 | s:rhodes speed:0.375 unit:c cps:1.5 ]",
"[ 0/1 ⇜ (3/1 → 4/1) | s:rhodes speed:0.375 unit:c cps:1.5 ]",
]
`;
exports[`runs examples > example "lrate" example index 0 1`] = `
[
"[ 0/1 → 1/1 | n:0 s:supersquare leslie:1 lrate:1 ]",
@ -2059,27 +2068,27 @@ exports[`runs examples > example "off" example index 0 1`] = `
"[ 0/1 → 1/3 | note:c3 ]",
"[ 1/3 → 2/3 | note:eb3 ]",
"[ 2/3 → 1/1 | note:g3 ]",
"[ 1/1 → 4/3 | note:c3 ]",
"[ 4/3 → 5/3 | note:eb3 ]",
"[ 5/3 → 2/1 | note:g3 ]",
"[ 2/1 → 7/3 | note:c3 ]",
"[ 7/3 → 8/3 | note:eb3 ]",
"[ 8/3 → 3/1 | note:g3 ]",
"[ 3/1 → 10/3 | note:c3 ]",
"[ 10/3 → 11/3 | note:eb3 ]",
"[ 11/3 → 4/1 | note:g3 ]",
"[ -5/24 ⇜ (0/1 → 1/8) | note:62 ]",
"[ 1/8 → 11/24 | note:55 ]",
"[ 11/24 → 19/24 | note:58 ]",
"[ (19/24 → 1/1) ⇝ 9/8 | note:62 ]",
"[ 1/1 → 4/3 | note:c3 ]",
"[ 4/3 → 5/3 | note:eb3 ]",
"[ 5/3 → 2/1 | note:g3 ]",
"[ 19/24 ⇜ (1/1 → 9/8) | note:62 ]",
"[ 9/8 → 35/24 | note:55 ]",
"[ 35/24 → 43/24 | note:58 ]",
"[ (43/24 → 2/1) ⇝ 17/8 | note:62 ]",
"[ 2/1 → 7/3 | note:c3 ]",
"[ 7/3 → 8/3 | note:eb3 ]",
"[ 8/3 → 3/1 | note:g3 ]",
"[ 43/24 ⇜ (2/1 → 17/8) | note:62 ]",
"[ 17/8 → 59/24 | note:55 ]",
"[ 59/24 → 67/24 | note:58 ]",
"[ (67/24 → 3/1) ⇝ 25/8 | note:62 ]",
"[ 3/1 → 10/3 | note:c3 ]",
"[ 10/3 → 11/3 | note:eb3 ]",
"[ 11/3 → 4/1 | note:g3 ]",
"[ 67/24 ⇜ (3/1 → 25/8) | note:62 ]",
"[ 25/8 → 83/24 | note:55 ]",
"[ 83/24 → 91/24 | note:58 ]",
@ -3181,17 +3190,17 @@ exports[`runs examples > example "webdirt" example index 0 1`] = `
exports[`runs examples > example "when" example index 0 1`] = `
[
"[ 2/1 → 7/3 | note:43 ]",
"[ 7/3 → 8/3 | note:46 ]",
"[ 8/3 → 3/1 | note:50 ]",
"[ 3/1 → 10/3 | note:43 ]",
"[ 10/3 → 11/3 | note:46 ]",
"[ 11/3 → 4/1 | note:50 ]",
"[ 0/1 → 1/3 | note:c3 ]",
"[ 1/3 → 2/3 | note:eb3 ]",
"[ 2/3 → 1/1 | note:g3 ]",
"[ 1/1 → 4/3 | note:c3 ]",
"[ 4/3 → 5/3 | note:eb3 ]",
"[ 5/3 → 2/1 | note:g3 ]",
"[ 2/1 → 7/3 | note:43 ]",
"[ 7/3 → 8/3 | note:46 ]",
"[ 8/3 → 3/1 | note:50 ]",
"[ 3/1 → 10/3 | note:43 ]",
"[ 10/3 → 11/3 | note:46 ]",
"[ 11/3 → 4/1 | note:50 ]",
]
`;