Stepwise documentation tweaks, with mridangam samples (#1275)

* add mridangam sample bank
* stepwise documentation tweaks
This commit is contained in:
Alex McLean 2025-02-02 23:55:36 +00:00 committed by GitHub
parent ce9d23049a
commit 018d1ccd31
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 695 additions and 331 deletions

View File

@ -2822,17 +2822,13 @@ export const take = stepRegister('take', function (i, pat) {
* A positive number will drop steps from the start of a pattern, and a negative number from the end. * A positive number will drop steps from the start of a pattern, and a negative number from the end.
* @return {Pattern} * @return {Pattern}
* @example * @example
* "bd cp ht mt".drop("1").sound() * "tha dhi thom nam".drop("1").sound().bank("mridangam")
* // The same as "cp ht mt".sound()
* @example * @example
* "bd cp ht mt".drop("-1").sound() * "tha dhi thom nam".drop("-1").sound().bank("mridangam")
* // The same as "bd cp ht".sound()
* @example * @example
* "bd cp ht mt".drop("1 2 3").sound() * "tha dhi thom nam".drop("0 1 2 3").sound().bank("mridangam")
* // The same as "cp ht mt ht mt mt".sound()
* @example * @example
* "bd cp ht mt".drop("-1 -2 -3").sound() * "tha dhi thom nam".drop("0 -1 -2 -3").sound().bank("mridangam")
* // The same as "bd cp ht bd cp bd".sound()
*/ */
export const drop = stepRegister('drop', function (i, pat) { export const drop = stepRegister('drop', function (i, pat) {
if (!pat.hasSteps) { if (!pat.hasSteps) {
@ -2846,14 +2842,40 @@ export const drop = stepRegister('drop', function (i, pat) {
return pat.take(Fraction(0).sub(pat._steps.sub(i))); return pat.take(Fraction(0).sub(pat._steps.sub(i)));
}); });
/**
* *Experimental*
*
* `repeat` is similar to `fast` in that it 'speeds up' the pattern, but it also increases the step count
* accordingly. So `stepcat("a b".repeat(2), "c d")` would be the same as `"a b a b c d"`, whereas
* `stepcat("a b".fast(2), "c d")` would be the same as `"[a b] [a b] c d"`.
* @example
* stepcat(
* sound("bd bd - cp").repeat(2),
* sound("bd - sd -")
* ).pace(8)
*/
export const repeat = stepRegister('repeat', function (factor, pat) { export const repeat = stepRegister('repeat', function (factor, pat) {
return pat.fast(factor).expand(factor); return pat.fast(factor).expand(factor);
}); });
/**
* *Experimental*
*
* Expands the step size of the pattern by the given factor.
* @example
* sound("tha dhi thom nam").bank("mridangam").expand("3 2 1 1 2 3").pace(8)
*/
export const expand = stepRegister('expand', function (factor, pat) { export const expand = stepRegister('expand', function (factor, pat) {
return pat.withSteps((t) => t.mul(Fraction(factor))); return pat.withSteps((t) => t.mul(Fraction(factor)));
}); });
/**
* *Experimental*
*
* Contracts the step size of the pattern by the given factor. See also `expand`.
* @example
* sound("tha dhi thom nam").bank("mridangam").contract("3 2 1 1 2 3").pace(8)
*/
export const contract = stepRegister('contract', function (factor, pat) { export const contract = stepRegister('contract', function (factor, pat) {
return pat.withSteps((t) => t.div(Fraction(factor))); return pat.withSteps((t) => t.div(Fraction(factor)));
}); });
@ -2907,13 +2929,17 @@ export const shrinklist = (amount, pat) => pat.shrinklist(amount);
* A positive number will progressively drop steps from the start of a pattern, and a negative number from the end. * A positive number will progressively drop steps from the start of a pattern, and a negative number from the end.
* @return {Pattern} * @return {Pattern}
* @example * @example
* "bd cp ht mt".shrink("1").sound() * "tha dhi thom nam".shrink("1").sound()
* // The same as "bd cp ht mt".drop("0 1 2 3").sound() * .bank("mridangam")
* @example * @example
* "bd cp ht mt".shrink("-1").sound() * "tha dhi thom nam".shrink("-1").sound()
* // The same as "bd cp ht mt".drop("0 -1 -2 -3").sound() * .bank("mridangam")
* @example * @example
* "bd cp ht mt".grow("1 -1").sound() * "tha dhi thom nam".shrink("1 -1").sound().bank("mridangam").pace(4)
* @example
* note("0 1 2 3 4 5 6 7".scale("C:ritusen")).sound("folkharp")
.shrink("1 -1").pace(8)
*/ */
export const shrink = register( export const shrink = register(
@ -2942,11 +2968,16 @@ export const shrink = register(
* A positive number will progressively grow steps from the start of a pattern, and a negative number from the end. * A positive number will progressively grow steps from the start of a pattern, and a negative number from the end.
* @return {Pattern} * @return {Pattern}
* @example * @example
* "bd cp ht mt".grow("1").sound() * "tha dhi thom nam".grow("1").sound()
* // The same as "bd cp ht mt".take("1 2 3 4") * .bank("mridangam")
* @example * @example
* "bd cp ht mt".grow("-1").sound() * "tha dhi thom nam".grow("-1").sound()
* // The same as "bd cp ht mt".take("-1 -2 -3 -4") * .bank("mridangam")
* @example
* "tha dhi thom nam".grow("1 -1").sound().bank("mridangam").pace(4)
* @example
* note("0 1 2 3 4 5 6 7".scale("C:ritusen")).sound("folkharp")
.grow("1 -1").pace(8)
*/ */
export const grow = register( export const grow = register(

View File

@ -38,6 +38,7 @@ export async function prebake() {
samples(`${ds}/Dirt-Samples.json`), samples(`${ds}/Dirt-Samples.json`),
samples(`${ds}/EmuSP12.json`), samples(`${ds}/EmuSP12.json`),
samples(`${ds}/vcsl.json`), samples(`${ds}/vcsl.json`),
samples(`${ds}/mridangam.json`),
]); ]);
aliasBank(`${ts}/tidal-drum-machines-alias.json`); aliasBank(`${ts}/tidal-drum-machines-alias.json`);

View File

@ -1881,6 +1881,66 @@ exports[`runs examples > example "compressor" example index 0 1`] = `
] ]
`; `;
exports[`runs examples > example "contract" example index 0 1`] = `
[
"[ 0/1 → 1/24 | s:tha bank:mridangam ]",
"[ 1/24 → 1/12 | s:dhi bank:mridangam ]",
"[ 1/12 → 1/8 | s:thom bank:mridangam ]",
"[ 1/8 → 1/6 | s:nam bank:mridangam ]",
"[ 1/6 → 11/48 | s:tha bank:mridangam ]",
"[ 11/48 → 7/24 | s:dhi bank:mridangam ]",
"[ 7/24 → 17/48 | s:thom bank:mridangam ]",
"[ 17/48 → 5/12 | s:nam bank:mridangam ]",
"[ 5/12 → 13/24 | s:tha bank:mridangam ]",
"[ 13/24 → 2/3 | s:dhi bank:mridangam ]",
"[ 2/3 → 19/24 | s:thom bank:mridangam ]",
"[ 19/24 → 11/12 | s:nam bank:mridangam ]",
"[ 11/12 → 25/24 | s:tha bank:mridangam ]",
"[ 25/24 → 7/6 | s:dhi bank:mridangam ]",
"[ 7/6 → 31/24 | s:thom bank:mridangam ]",
"[ 31/24 → 17/12 | s:nam bank:mridangam ]",
"[ 17/12 → 71/48 | s:tha bank:mridangam ]",
"[ 71/48 → 37/24 | s:dhi bank:mridangam ]",
"[ 37/24 → 77/48 | s:thom bank:mridangam ]",
"[ 77/48 → 5/3 | s:nam bank:mridangam ]",
"[ 5/3 → 41/24 | s:tha bank:mridangam ]",
"[ 41/24 → 7/4 | s:dhi bank:mridangam ]",
"[ 7/4 → 43/24 | s:thom bank:mridangam ]",
"[ 43/24 → 11/6 | s:nam bank:mridangam ]",
"[ 11/6 → 15/8 | s:tha bank:mridangam ]",
"[ 15/8 → 23/12 | s:dhi bank:mridangam ]",
"[ 23/12 → 47/24 | s:thom bank:mridangam ]",
"[ 47/24 → 2/1 | s:nam bank:mridangam ]",
"[ 2/1 → 33/16 | s:tha bank:mridangam ]",
"[ 33/16 → 17/8 | s:dhi bank:mridangam ]",
"[ 17/8 → 35/16 | s:thom bank:mridangam ]",
"[ 35/16 → 9/4 | s:nam bank:mridangam ]",
"[ 9/4 → 19/8 | s:tha bank:mridangam ]",
"[ 19/8 → 5/2 | s:dhi bank:mridangam ]",
"[ 5/2 → 21/8 | s:thom bank:mridangam ]",
"[ 21/8 → 11/4 | s:nam bank:mridangam ]",
"[ 11/4 → 23/8 | s:tha bank:mridangam ]",
"[ 23/8 → 3/1 | s:dhi bank:mridangam ]",
"[ 3/1 → 25/8 | s:thom bank:mridangam ]",
"[ 25/8 → 13/4 | s:nam bank:mridangam ]",
"[ 13/4 → 53/16 | s:tha bank:mridangam ]",
"[ 53/16 → 27/8 | s:dhi bank:mridangam ]",
"[ 27/8 → 55/16 | s:thom bank:mridangam ]",
"[ 55/16 → 7/2 | s:nam bank:mridangam ]",
"[ 7/2 → 85/24 | s:tha bank:mridangam ]",
"[ 85/24 → 43/12 | s:dhi bank:mridangam ]",
"[ 43/12 → 29/8 | s:thom bank:mridangam ]",
"[ 29/8 → 11/3 | s:nam bank:mridangam ]",
"[ 11/3 → 89/24 | s:tha bank:mridangam ]",
"[ 89/24 → 15/4 | s:dhi bank:mridangam ]",
"[ 15/4 → 91/24 | s:thom bank:mridangam ]",
"[ 91/24 → 23/6 | s:nam bank:mridangam ]",
"[ 23/6 → 187/48 | s:tha bank:mridangam ]",
"[ 187/48 → 95/24 | s:dhi bank:mridangam ]",
"[ (95/24 → 4/1) ⇝ 193/48 | s:thom bank:mridangam ]",
]
`;
exports[`runs examples > example "cosine" example index 0 1`] = ` exports[`runs examples > example "cosine" example index 0 1`] = `
[ [
"[ 0/1 → 1/16 | note:Eb4 ]", "[ 0/1 → 1/16 | note:Eb4 ]",
@ -2523,93 +2583,125 @@ exports[`runs examples > example "drive" example index 0 1`] = `
exports[`runs examples > example "drop" example index 0 1`] = ` exports[`runs examples > example "drop" example index 0 1`] = `
[ [
"[ 0/1 → 1/3 | s:cp ]", "[ 0/1 → 1/3 | s:dhi bank:mridangam ]",
"[ 1/3 → 2/3 | s:ht ]", "[ 1/3 → 2/3 | s:thom bank:mridangam ]",
"[ 2/3 → 1/1 | s:mt ]", "[ 2/3 → 1/1 | s:nam bank:mridangam ]",
"[ 1/1 → 4/3 | s:cp ]", "[ 1/1 → 4/3 | s:dhi bank:mridangam ]",
"[ 4/3 → 5/3 | s:ht ]", "[ 4/3 → 5/3 | s:thom bank:mridangam ]",
"[ 5/3 → 2/1 | s:mt ]", "[ 5/3 → 2/1 | s:nam bank:mridangam ]",
"[ 2/1 → 7/3 | s:cp ]", "[ 2/1 → 7/3 | s:dhi bank:mridangam ]",
"[ 7/3 → 8/3 | s:ht ]", "[ 7/3 → 8/3 | s:thom bank:mridangam ]",
"[ 8/3 → 3/1 | s:mt ]", "[ 8/3 → 3/1 | s:nam bank:mridangam ]",
"[ 3/1 → 10/3 | s:cp ]", "[ 3/1 → 10/3 | s:dhi bank:mridangam ]",
"[ 10/3 → 11/3 | s:ht ]", "[ 10/3 → 11/3 | s:thom bank:mridangam ]",
"[ 11/3 → 4/1 | s:mt ]", "[ 11/3 → 4/1 | s:nam bank:mridangam ]",
] ]
`; `;
exports[`runs examples > example "drop" example index 1 1`] = ` exports[`runs examples > example "drop" example index 1 1`] = `
[ [
"[ 0/1 → 1/3 | s:bd ]", "[ 0/1 → 1/3 | s:tha bank:mridangam ]",
"[ 1/3 → 2/3 | s:cp ]", "[ 1/3 → 2/3 | s:dhi bank:mridangam ]",
"[ 2/3 → 1/1 | s:ht ]", "[ 2/3 → 1/1 | s:thom bank:mridangam ]",
"[ 1/1 → 4/3 | s:bd ]", "[ 1/1 → 4/3 | s:tha bank:mridangam ]",
"[ 4/3 → 5/3 | s:cp ]", "[ 4/3 → 5/3 | s:dhi bank:mridangam ]",
"[ 5/3 → 2/1 | s:ht ]", "[ 5/3 → 2/1 | s:thom bank:mridangam ]",
"[ 2/1 → 7/3 | s:bd ]", "[ 2/1 → 7/3 | s:tha bank:mridangam ]",
"[ 7/3 → 8/3 | s:cp ]", "[ 7/3 → 8/3 | s:dhi bank:mridangam ]",
"[ 8/3 → 3/1 | s:ht ]", "[ 8/3 → 3/1 | s:thom bank:mridangam ]",
"[ 3/1 → 10/3 | s:bd ]", "[ 3/1 → 10/3 | s:tha bank:mridangam ]",
"[ 10/3 → 11/3 | s:cp ]", "[ 10/3 → 11/3 | s:dhi bank:mridangam ]",
"[ 11/3 → 4/1 | s:ht ]", "[ 11/3 → 4/1 | s:thom bank:mridangam ]",
] ]
`; `;
exports[`runs examples > example "drop" example index 2 1`] = ` exports[`runs examples > example "drop" example index 2 1`] = `
[ [
"[ 0/1 → 1/6 | s:cp ]", "[ 0/1 → 1/10 | s:tha bank:mridangam ]",
"[ 1/6 → 1/3 | s:ht ]", "[ 1/10 → 1/5 | s:dhi bank:mridangam ]",
"[ 1/3 → 1/2 | s:mt ]", "[ 1/5 → 3/10 | s:thom bank:mridangam ]",
"[ 1/2 → 2/3 | s:ht ]", "[ 3/10 → 2/5 | s:nam bank:mridangam ]",
"[ 2/3 → 5/6 | s:mt ]", "[ 2/5 → 1/2 | s:dhi bank:mridangam ]",
"[ 5/6 → 1/1 | s:mt ]", "[ 1/2 → 3/5 | s:thom bank:mridangam ]",
"[ 1/1 → 7/6 | s:cp ]", "[ 3/5 → 7/10 | s:nam bank:mridangam ]",
"[ 7/6 → 4/3 | s:ht ]", "[ 7/10 → 4/5 | s:thom bank:mridangam ]",
"[ 4/3 → 3/2 | s:mt ]", "[ 4/5 → 9/10 | s:nam bank:mridangam ]",
"[ 3/2 → 5/3 | s:ht ]", "[ 9/10 → 1/1 | s:nam bank:mridangam ]",
"[ 5/3 → 11/6 | s:mt ]", "[ 1/1 → 11/10 | s:tha bank:mridangam ]",
"[ 11/6 → 2/1 | s:mt ]", "[ 11/10 → 6/5 | s:dhi bank:mridangam ]",
"[ 2/1 → 13/6 | s:cp ]", "[ 6/5 → 13/10 | s:thom bank:mridangam ]",
"[ 13/6 → 7/3 | s:ht ]", "[ 13/10 → 7/5 | s:nam bank:mridangam ]",
"[ 7/3 → 5/2 | s:mt ]", "[ 7/5 → 3/2 | s:dhi bank:mridangam ]",
"[ 5/2 → 8/3 | s:ht ]", "[ 3/2 → 8/5 | s:thom bank:mridangam ]",
"[ 8/3 → 17/6 | s:mt ]", "[ 8/5 → 17/10 | s:nam bank:mridangam ]",
"[ 17/6 → 3/1 | s:mt ]", "[ 17/10 → 9/5 | s:thom bank:mridangam ]",
"[ 3/1 → 19/6 | s:cp ]", "[ 9/5 → 19/10 | s:nam bank:mridangam ]",
"[ 19/6 → 10/3 | s:ht ]", "[ 19/10 → 2/1 | s:nam bank:mridangam ]",
"[ 10/3 → 7/2 | s:mt ]", "[ 2/1 → 21/10 | s:tha bank:mridangam ]",
"[ 7/2 → 11/3 | s:ht ]", "[ 21/10 → 11/5 | s:dhi bank:mridangam ]",
"[ 11/3 → 23/6 | s:mt ]", "[ 11/5 → 23/10 | s:thom bank:mridangam ]",
"[ 23/6 → 4/1 | s:mt ]", "[ 23/10 → 12/5 | s:nam bank:mridangam ]",
"[ 12/5 → 5/2 | s:dhi bank:mridangam ]",
"[ 5/2 → 13/5 | s:thom bank:mridangam ]",
"[ 13/5 → 27/10 | s:nam bank:mridangam ]",
"[ 27/10 → 14/5 | s:thom bank:mridangam ]",
"[ 14/5 → 29/10 | s:nam bank:mridangam ]",
"[ 29/10 → 3/1 | s:nam bank:mridangam ]",
"[ 3/1 → 31/10 | s:tha bank:mridangam ]",
"[ 31/10 → 16/5 | s:dhi bank:mridangam ]",
"[ 16/5 → 33/10 | s:thom bank:mridangam ]",
"[ 33/10 → 17/5 | s:nam bank:mridangam ]",
"[ 17/5 → 7/2 | s:dhi bank:mridangam ]",
"[ 7/2 → 18/5 | s:thom bank:mridangam ]",
"[ 18/5 → 37/10 | s:nam bank:mridangam ]",
"[ 37/10 → 19/5 | s:thom bank:mridangam ]",
"[ 19/5 → 39/10 | s:nam bank:mridangam ]",
"[ 39/10 → 4/1 | s:nam bank:mridangam ]",
] ]
`; `;
exports[`runs examples > example "drop" example index 3 1`] = ` exports[`runs examples > example "drop" example index 3 1`] = `
[ [
"[ 0/1 → 1/6 | s:bd ]", "[ 0/1 → 1/10 | s:tha bank:mridangam ]",
"[ 1/6 → 1/3 | s:cp ]", "[ 1/10 → 1/5 | s:dhi bank:mridangam ]",
"[ 1/3 → 1/2 | s:ht ]", "[ 1/5 → 3/10 | s:thom bank:mridangam ]",
"[ 1/2 → 2/3 | s:bd ]", "[ 3/10 → 2/5 | s:nam bank:mridangam ]",
"[ 2/3 → 5/6 | s:cp ]", "[ 2/5 → 1/2 | s:tha bank:mridangam ]",
"[ 5/6 → 1/1 | s:bd ]", "[ 1/2 → 3/5 | s:dhi bank:mridangam ]",
"[ 1/1 → 7/6 | s:bd ]", "[ 3/5 → 7/10 | s:thom bank:mridangam ]",
"[ 7/6 → 4/3 | s:cp ]", "[ 7/10 → 4/5 | s:tha bank:mridangam ]",
"[ 4/3 → 3/2 | s:ht ]", "[ 4/5 → 9/10 | s:dhi bank:mridangam ]",
"[ 3/2 → 5/3 | s:bd ]", "[ 9/10 → 1/1 | s:tha bank:mridangam ]",
"[ 5/3 → 11/6 | s:cp ]", "[ 1/1 → 11/10 | s:tha bank:mridangam ]",
"[ 11/6 → 2/1 | s:bd ]", "[ 11/10 → 6/5 | s:dhi bank:mridangam ]",
"[ 2/1 → 13/6 | s:bd ]", "[ 6/5 → 13/10 | s:thom bank:mridangam ]",
"[ 13/6 → 7/3 | s:cp ]", "[ 13/10 → 7/5 | s:nam bank:mridangam ]",
"[ 7/3 → 5/2 | s:ht ]", "[ 7/5 → 3/2 | s:tha bank:mridangam ]",
"[ 5/2 → 8/3 | s:bd ]", "[ 3/2 → 8/5 | s:dhi bank:mridangam ]",
"[ 8/3 → 17/6 | s:cp ]", "[ 8/5 → 17/10 | s:thom bank:mridangam ]",
"[ 17/6 → 3/1 | s:bd ]", "[ 17/10 → 9/5 | s:tha bank:mridangam ]",
"[ 3/1 → 19/6 | s:bd ]", "[ 9/5 → 19/10 | s:dhi bank:mridangam ]",
"[ 19/6 → 10/3 | s:cp ]", "[ 19/10 → 2/1 | s:tha bank:mridangam ]",
"[ 10/3 → 7/2 | s:ht ]", "[ 2/1 → 21/10 | s:tha bank:mridangam ]",
"[ 7/2 → 11/3 | s:bd ]", "[ 21/10 → 11/5 | s:dhi bank:mridangam ]",
"[ 11/3 → 23/6 | s:cp ]", "[ 11/5 → 23/10 | s:thom bank:mridangam ]",
"[ 23/6 → 4/1 | s:bd ]", "[ 23/10 → 12/5 | s:nam bank:mridangam ]",
"[ 12/5 → 5/2 | s:tha bank:mridangam ]",
"[ 5/2 → 13/5 | s:dhi bank:mridangam ]",
"[ 13/5 → 27/10 | s:thom bank:mridangam ]",
"[ 27/10 → 14/5 | s:tha bank:mridangam ]",
"[ 14/5 → 29/10 | s:dhi bank:mridangam ]",
"[ 29/10 → 3/1 | s:tha bank:mridangam ]",
"[ 3/1 → 31/10 | s:tha bank:mridangam ]",
"[ 31/10 → 16/5 | s:dhi bank:mridangam ]",
"[ 16/5 → 33/10 | s:thom bank:mridangam ]",
"[ 33/10 → 17/5 | s:nam bank:mridangam ]",
"[ 17/5 → 7/2 | s:tha bank:mridangam ]",
"[ 7/2 → 18/5 | s:dhi bank:mridangam ]",
"[ 18/5 → 37/10 | s:thom bank:mridangam ]",
"[ 37/10 → 19/5 | s:tha bank:mridangam ]",
"[ 19/5 → 39/10 | s:dhi bank:mridangam ]",
"[ 39/10 → 4/1 | s:tha bank:mridangam ]",
] ]
`; `;
@ -2909,6 +3001,29 @@ exports[`runs examples > example "every" example index 0 1`] = `
] ]
`; `;
exports[`runs examples > example "expand" example index 0 1`] = `
[
"[ 0/1 → 3/8 | s:tha bank:mridangam ]",
"[ 3/8 → 3/4 | s:dhi bank:mridangam ]",
"[ 3/4 → 9/8 | s:thom bank:mridangam ]",
"[ 9/8 → 3/2 | s:nam bank:mridangam ]",
"[ 3/2 → 7/4 | s:tha bank:mridangam ]",
"[ 7/4 → 2/1 | s:dhi bank:mridangam ]",
"[ 2/1 → 9/4 | s:thom bank:mridangam ]",
"[ 9/4 → 5/2 | s:nam bank:mridangam ]",
"[ 5/2 → 21/8 | s:tha bank:mridangam ]",
"[ 21/8 → 11/4 | s:dhi bank:mridangam ]",
"[ 11/4 → 23/8 | s:thom bank:mridangam ]",
"[ 23/8 → 3/1 | s:nam bank:mridangam ]",
"[ 3/1 → 25/8 | s:tha bank:mridangam ]",
"[ 25/8 → 13/4 | s:dhi bank:mridangam ]",
"[ 13/4 → 27/8 | s:thom bank:mridangam ]",
"[ 27/8 → 7/2 | s:nam bank:mridangam ]",
"[ 7/2 → 15/4 | s:tha bank:mridangam ]",
"[ 15/4 → 4/1 | s:dhi bank:mridangam ]",
]
`;
exports[`runs examples > example "fanchor" example index 0 1`] = ` exports[`runs examples > example "fanchor" example index 0 1`] = `
[ [
"[ 0/1 → 1/8 | note:f s:sawtooth cutoff:1000 lpenv:8 fanchor:0 ]", "[ 0/1 → 1/8 | note:f s:sawtooth cutoff:1000 lpenv:8 fanchor:0 ]",
@ -3536,91 +3651,149 @@ exports[`runs examples > example "gap" example index 0 1`] = `[]`;
exports[`runs examples > example "grow" example index 0 1`] = ` exports[`runs examples > example "grow" example index 0 1`] = `
[ [
"[ 0/1 → 1/10 | s:bd ]", "[ 0/1 → 1/10 | s:tha bank:mridangam ]",
"[ 1/10 → 1/5 | s:bd ]", "[ 1/10 → 1/5 | s:tha bank:mridangam ]",
"[ 1/5 → 3/10 | s:cp ]", "[ 1/5 → 3/10 | s:dhi bank:mridangam ]",
"[ 3/10 → 2/5 | s:bd ]", "[ 3/10 → 2/5 | s:tha bank:mridangam ]",
"[ 2/5 → 1/2 | s:cp ]", "[ 2/5 → 1/2 | s:dhi bank:mridangam ]",
"[ 1/2 → 3/5 | s:ht ]", "[ 1/2 → 3/5 | s:thom bank:mridangam ]",
"[ 3/5 → 7/10 | s:bd ]", "[ 3/5 → 7/10 | s:tha bank:mridangam ]",
"[ 7/10 → 4/5 | s:cp ]", "[ 7/10 → 4/5 | s:dhi bank:mridangam ]",
"[ 4/5 → 9/10 | s:ht ]", "[ 4/5 → 9/10 | s:thom bank:mridangam ]",
"[ 9/10 → 1/1 | s:mt ]", "[ 9/10 → 1/1 | s:nam bank:mridangam ]",
"[ 1/1 → 11/10 | s:bd ]", "[ 1/1 → 11/10 | s:tha bank:mridangam ]",
"[ 11/10 → 6/5 | s:bd ]", "[ 11/10 → 6/5 | s:tha bank:mridangam ]",
"[ 6/5 → 13/10 | s:cp ]", "[ 6/5 → 13/10 | s:dhi bank:mridangam ]",
"[ 13/10 → 7/5 | s:bd ]", "[ 13/10 → 7/5 | s:tha bank:mridangam ]",
"[ 7/5 → 3/2 | s:cp ]", "[ 7/5 → 3/2 | s:dhi bank:mridangam ]",
"[ 3/2 → 8/5 | s:ht ]", "[ 3/2 → 8/5 | s:thom bank:mridangam ]",
"[ 8/5 → 17/10 | s:bd ]", "[ 8/5 → 17/10 | s:tha bank:mridangam ]",
"[ 17/10 → 9/5 | s:cp ]", "[ 17/10 → 9/5 | s:dhi bank:mridangam ]",
"[ 9/5 → 19/10 | s:ht ]", "[ 9/5 → 19/10 | s:thom bank:mridangam ]",
"[ 19/10 → 2/1 | s:mt ]", "[ 19/10 → 2/1 | s:nam bank:mridangam ]",
"[ 2/1 → 21/10 | s:bd ]", "[ 2/1 → 21/10 | s:tha bank:mridangam ]",
"[ 21/10 → 11/5 | s:bd ]", "[ 21/10 → 11/5 | s:tha bank:mridangam ]",
"[ 11/5 → 23/10 | s:cp ]", "[ 11/5 → 23/10 | s:dhi bank:mridangam ]",
"[ 23/10 → 12/5 | s:bd ]", "[ 23/10 → 12/5 | s:tha bank:mridangam ]",
"[ 12/5 → 5/2 | s:cp ]", "[ 12/5 → 5/2 | s:dhi bank:mridangam ]",
"[ 5/2 → 13/5 | s:ht ]", "[ 5/2 → 13/5 | s:thom bank:mridangam ]",
"[ 13/5 → 27/10 | s:bd ]", "[ 13/5 → 27/10 | s:tha bank:mridangam ]",
"[ 27/10 → 14/5 | s:cp ]", "[ 27/10 → 14/5 | s:dhi bank:mridangam ]",
"[ 14/5 → 29/10 | s:ht ]", "[ 14/5 → 29/10 | s:thom bank:mridangam ]",
"[ 29/10 → 3/1 | s:mt ]", "[ 29/10 → 3/1 | s:nam bank:mridangam ]",
"[ 3/1 → 31/10 | s:bd ]", "[ 3/1 → 31/10 | s:tha bank:mridangam ]",
"[ 31/10 → 16/5 | s:bd ]", "[ 31/10 → 16/5 | s:tha bank:mridangam ]",
"[ 16/5 → 33/10 | s:cp ]", "[ 16/5 → 33/10 | s:dhi bank:mridangam ]",
"[ 33/10 → 17/5 | s:bd ]", "[ 33/10 → 17/5 | s:tha bank:mridangam ]",
"[ 17/5 → 7/2 | s:cp ]", "[ 17/5 → 7/2 | s:dhi bank:mridangam ]",
"[ 7/2 → 18/5 | s:ht ]", "[ 7/2 → 18/5 | s:thom bank:mridangam ]",
"[ 18/5 → 37/10 | s:bd ]", "[ 18/5 → 37/10 | s:tha bank:mridangam ]",
"[ 37/10 → 19/5 | s:cp ]", "[ 37/10 → 19/5 | s:dhi bank:mridangam ]",
"[ 19/5 → 39/10 | s:ht ]", "[ 19/5 → 39/10 | s:thom bank:mridangam ]",
"[ 39/10 → 4/1 | s:mt ]", "[ 39/10 → 4/1 | s:nam bank:mridangam ]",
] ]
`; `;
exports[`runs examples > example "grow" example index 1 1`] = ` exports[`runs examples > example "grow" example index 1 1`] = `
[ [
"[ 0/1 → 1/10 | s:mt ]", "[ 0/1 → 1/10 | s:nam bank:mridangam ]",
"[ 1/10 → 1/5 | s:ht ]", "[ 1/10 → 1/5 | s:thom bank:mridangam ]",
"[ 1/5 → 3/10 | s:mt ]", "[ 1/5 → 3/10 | s:nam bank:mridangam ]",
"[ 3/10 → 2/5 | s:cp ]", "[ 3/10 → 2/5 | s:dhi bank:mridangam ]",
"[ 2/5 → 1/2 | s:ht ]", "[ 2/5 → 1/2 | s:thom bank:mridangam ]",
"[ 1/2 → 3/5 | s:mt ]", "[ 1/2 → 3/5 | s:nam bank:mridangam ]",
"[ 3/5 → 7/10 | s:bd ]", "[ 3/5 → 7/10 | s:tha bank:mridangam ]",
"[ 7/10 → 4/5 | s:cp ]", "[ 7/10 → 4/5 | s:dhi bank:mridangam ]",
"[ 4/5 → 9/10 | s:ht ]", "[ 4/5 → 9/10 | s:thom bank:mridangam ]",
"[ 9/10 → 1/1 | s:mt ]", "[ 9/10 → 1/1 | s:nam bank:mridangam ]",
"[ 1/1 → 11/10 | s:mt ]", "[ 1/1 → 11/10 | s:nam bank:mridangam ]",
"[ 11/10 → 6/5 | s:ht ]", "[ 11/10 → 6/5 | s:thom bank:mridangam ]",
"[ 6/5 → 13/10 | s:mt ]", "[ 6/5 → 13/10 | s:nam bank:mridangam ]",
"[ 13/10 → 7/5 | s:cp ]", "[ 13/10 → 7/5 | s:dhi bank:mridangam ]",
"[ 7/5 → 3/2 | s:ht ]", "[ 7/5 → 3/2 | s:thom bank:mridangam ]",
"[ 3/2 → 8/5 | s:mt ]", "[ 3/2 → 8/5 | s:nam bank:mridangam ]",
"[ 8/5 → 17/10 | s:bd ]", "[ 8/5 → 17/10 | s:tha bank:mridangam ]",
"[ 17/10 → 9/5 | s:cp ]", "[ 17/10 → 9/5 | s:dhi bank:mridangam ]",
"[ 9/5 → 19/10 | s:ht ]", "[ 9/5 → 19/10 | s:thom bank:mridangam ]",
"[ 19/10 → 2/1 | s:mt ]", "[ 19/10 → 2/1 | s:nam bank:mridangam ]",
"[ 2/1 → 21/10 | s:mt ]", "[ 2/1 → 21/10 | s:nam bank:mridangam ]",
"[ 21/10 → 11/5 | s:ht ]", "[ 21/10 → 11/5 | s:thom bank:mridangam ]",
"[ 11/5 → 23/10 | s:mt ]", "[ 11/5 → 23/10 | s:nam bank:mridangam ]",
"[ 23/10 → 12/5 | s:cp ]", "[ 23/10 → 12/5 | s:dhi bank:mridangam ]",
"[ 12/5 → 5/2 | s:ht ]", "[ 12/5 → 5/2 | s:thom bank:mridangam ]",
"[ 5/2 → 13/5 | s:mt ]", "[ 5/2 → 13/5 | s:nam bank:mridangam ]",
"[ 13/5 → 27/10 | s:bd ]", "[ 13/5 → 27/10 | s:tha bank:mridangam ]",
"[ 27/10 → 14/5 | s:cp ]", "[ 27/10 → 14/5 | s:dhi bank:mridangam ]",
"[ 14/5 → 29/10 | s:ht ]", "[ 14/5 → 29/10 | s:thom bank:mridangam ]",
"[ 29/10 → 3/1 | s:mt ]", "[ 29/10 → 3/1 | s:nam bank:mridangam ]",
"[ 3/1 → 31/10 | s:mt ]", "[ 3/1 → 31/10 | s:nam bank:mridangam ]",
"[ 31/10 → 16/5 | s:ht ]", "[ 31/10 → 16/5 | s:thom bank:mridangam ]",
"[ 16/5 → 33/10 | s:mt ]", "[ 16/5 → 33/10 | s:nam bank:mridangam ]",
"[ 33/10 → 17/5 | s:cp ]", "[ 33/10 → 17/5 | s:dhi bank:mridangam ]",
"[ 17/5 → 7/2 | s:ht ]", "[ 17/5 → 7/2 | s:thom bank:mridangam ]",
"[ 7/2 → 18/5 | s:mt ]", "[ 7/2 → 18/5 | s:nam bank:mridangam ]",
"[ 18/5 → 37/10 | s:bd ]", "[ 18/5 → 37/10 | s:tha bank:mridangam ]",
"[ 37/10 → 19/5 | s:cp ]", "[ 37/10 → 19/5 | s:dhi bank:mridangam ]",
"[ 19/5 → 39/10 | s:ht ]", "[ 19/5 → 39/10 | s:thom bank:mridangam ]",
"[ 39/10 → 4/1 | s:mt ]", "[ 39/10 → 4/1 | s:nam bank:mridangam ]",
]
`;
exports[`runs examples > example "grow" example index 2 1`] = `
[
"[ 0/1 → 1/4 | s:tha bank:mridangam ]",
"[ 1/4 → 1/2 | s:tha bank:mridangam ]",
"[ 1/2 → 3/4 | s:dhi bank:mridangam ]",
"[ 3/4 → 1/1 | s:tha bank:mridangam ]",
"[ 1/1 → 5/4 | s:dhi bank:mridangam ]",
"[ 5/4 → 3/2 | s:thom bank:mridangam ]",
"[ 3/2 → 7/4 | s:tha bank:mridangam ]",
"[ 7/4 → 2/1 | s:dhi bank:mridangam ]",
"[ 2/1 → 9/4 | s:thom bank:mridangam ]",
"[ 9/4 → 5/2 | s:nam bank:mridangam ]",
"[ 5/2 → 11/4 | s:nam bank:mridangam ]",
"[ 11/4 → 3/1 | s:thom bank:mridangam ]",
"[ 3/1 → 13/4 | s:nam bank:mridangam ]",
"[ 13/4 → 7/2 | s:dhi bank:mridangam ]",
"[ 7/2 → 15/4 | s:thom bank:mridangam ]",
"[ 15/4 → 4/1 | s:nam bank:mridangam ]",
]
`;
exports[`runs examples > example "grow" example index 3 1`] = `
[
"[ 0/1 → 1/8 | note:C3 s:folkharp ]",
"[ 1/8 → 1/4 | note:C3 s:folkharp ]",
"[ 1/4 → 3/8 | note:D3 s:folkharp ]",
"[ 3/8 → 1/2 | note:C3 s:folkharp ]",
"[ 1/2 → 5/8 | note:D3 s:folkharp ]",
"[ 5/8 → 3/4 | note:F3 s:folkharp ]",
"[ 3/4 → 7/8 | note:C3 s:folkharp ]",
"[ 7/8 → 1/1 | note:D3 s:folkharp ]",
"[ 1/1 → 9/8 | note:F3 s:folkharp ]",
"[ 9/8 → 5/4 | note:G3 s:folkharp ]",
"[ 5/4 → 11/8 | note:C3 s:folkharp ]",
"[ 11/8 → 3/2 | note:D3 s:folkharp ]",
"[ 3/2 → 13/8 | note:F3 s:folkharp ]",
"[ 13/8 → 7/4 | note:G3 s:folkharp ]",
"[ 7/4 → 15/8 | note:A3 s:folkharp ]",
"[ 15/8 → 2/1 | note:C3 s:folkharp ]",
"[ 2/1 → 17/8 | note:D3 s:folkharp ]",
"[ 17/8 → 9/4 | note:F3 s:folkharp ]",
"[ 9/4 → 19/8 | note:G3 s:folkharp ]",
"[ 19/8 → 5/2 | note:A3 s:folkharp ]",
"[ 5/2 → 21/8 | note:C4 s:folkharp ]",
"[ 21/8 → 11/4 | note:C3 s:folkharp ]",
"[ 11/4 → 23/8 | note:D3 s:folkharp ]",
"[ 23/8 → 3/1 | note:F3 s:folkharp ]",
"[ 3/1 → 25/8 | note:G3 s:folkharp ]",
"[ 25/8 → 13/4 | note:A3 s:folkharp ]",
"[ 13/4 → 27/8 | note:C4 s:folkharp ]",
"[ 27/8 → 7/2 | note:D4 s:folkharp ]",
"[ 7/2 → 29/8 | note:C3 s:folkharp ]",
"[ 29/8 → 15/4 | note:D3 s:folkharp ]",
"[ 15/4 → 31/8 | note:F3 s:folkharp ]",
"[ 31/8 → 4/1 | note:G3 s:folkharp ]",
] ]
`; `;
@ -6322,6 +6495,33 @@ exports[`runs examples > example "release" example index 0 1`] = `
] ]
`; `;
exports[`runs examples > example "repeat" example index 0 1`] = `
[
"[ 0/1 → 1/8 | s:bd ]",
"[ 1/8 → 1/4 | s:bd ]",
"[ 3/8 → 1/2 | s:cp ]",
"[ 1/2 → 5/8 | s:bd ]",
"[ 5/8 → 3/4 | s:bd ]",
"[ 7/8 → 1/1 | s:cp ]",
"[ 1/1 → 9/8 | s:bd ]",
"[ 5/4 → 11/8 | s:sd ]",
"[ 3/2 → 13/8 | s:bd ]",
"[ 13/8 → 7/4 | s:bd ]",
"[ 15/8 → 2/1 | s:cp ]",
"[ 2/1 → 17/8 | s:bd ]",
"[ 17/8 → 9/4 | s:bd ]",
"[ 19/8 → 5/2 | s:cp ]",
"[ 5/2 → 21/8 | s:bd ]",
"[ 11/4 → 23/8 | s:sd ]",
"[ 3/1 → 25/8 | s:bd ]",
"[ 25/8 → 13/4 | s:bd ]",
"[ 27/8 → 7/2 | s:cp ]",
"[ 7/2 → 29/8 | s:bd ]",
"[ 29/8 → 15/4 | s:bd ]",
"[ 31/8 → 4/1 | s:cp ]",
]
`;
exports[`runs examples > example "repeatCycles" example index 0 1`] = ` exports[`runs examples > example "repeatCycles" example index 0 1`] = `
[ [
"[ 0/1 → 1/4 | note:42 s:gm_acoustic_guitar_nylon ]", "[ 0/1 → 1/4 | note:42 s:gm_acoustic_guitar_nylon ]",
@ -7380,176 +7580,149 @@ exports[`runs examples > example "shape" example index 0 1`] = `
exports[`runs examples > example "shrink" example index 0 1`] = ` exports[`runs examples > example "shrink" example index 0 1`] = `
[ [
"[ 0/1 → 1/10 | s:bd ]", "[ 0/1 → 1/10 | s:tha bank:mridangam ]",
"[ 1/10 → 1/5 | s:cp ]", "[ 1/10 → 1/5 | s:dhi bank:mridangam ]",
"[ 1/5 → 3/10 | s:ht ]", "[ 1/5 → 3/10 | s:thom bank:mridangam ]",
"[ 3/10 → 2/5 | s:mt ]", "[ 3/10 → 2/5 | s:nam bank:mridangam ]",
"[ 2/5 → 1/2 | s:cp ]", "[ 2/5 → 1/2 | s:dhi bank:mridangam ]",
"[ 1/2 → 3/5 | s:ht ]", "[ 1/2 → 3/5 | s:thom bank:mridangam ]",
"[ 3/5 → 7/10 | s:mt ]", "[ 3/5 → 7/10 | s:nam bank:mridangam ]",
"[ 7/10 → 4/5 | s:ht ]", "[ 7/10 → 4/5 | s:thom bank:mridangam ]",
"[ 4/5 → 9/10 | s:mt ]", "[ 4/5 → 9/10 | s:nam bank:mridangam ]",
"[ 9/10 → 1/1 | s:mt ]", "[ 9/10 → 1/1 | s:nam bank:mridangam ]",
"[ 1/1 → 11/10 | s:bd ]", "[ 1/1 → 11/10 | s:tha bank:mridangam ]",
"[ 11/10 → 6/5 | s:cp ]", "[ 11/10 → 6/5 | s:dhi bank:mridangam ]",
"[ 6/5 → 13/10 | s:ht ]", "[ 6/5 → 13/10 | s:thom bank:mridangam ]",
"[ 13/10 → 7/5 | s:mt ]", "[ 13/10 → 7/5 | s:nam bank:mridangam ]",
"[ 7/5 → 3/2 | s:cp ]", "[ 7/5 → 3/2 | s:dhi bank:mridangam ]",
"[ 3/2 → 8/5 | s:ht ]", "[ 3/2 → 8/5 | s:thom bank:mridangam ]",
"[ 8/5 → 17/10 | s:mt ]", "[ 8/5 → 17/10 | s:nam bank:mridangam ]",
"[ 17/10 → 9/5 | s:ht ]", "[ 17/10 → 9/5 | s:thom bank:mridangam ]",
"[ 9/5 → 19/10 | s:mt ]", "[ 9/5 → 19/10 | s:nam bank:mridangam ]",
"[ 19/10 → 2/1 | s:mt ]", "[ 19/10 → 2/1 | s:nam bank:mridangam ]",
"[ 2/1 → 21/10 | s:bd ]", "[ 2/1 → 21/10 | s:tha bank:mridangam ]",
"[ 21/10 → 11/5 | s:cp ]", "[ 21/10 → 11/5 | s:dhi bank:mridangam ]",
"[ 11/5 → 23/10 | s:ht ]", "[ 11/5 → 23/10 | s:thom bank:mridangam ]",
"[ 23/10 → 12/5 | s:mt ]", "[ 23/10 → 12/5 | s:nam bank:mridangam ]",
"[ 12/5 → 5/2 | s:cp ]", "[ 12/5 → 5/2 | s:dhi bank:mridangam ]",
"[ 5/2 → 13/5 | s:ht ]", "[ 5/2 → 13/5 | s:thom bank:mridangam ]",
"[ 13/5 → 27/10 | s:mt ]", "[ 13/5 → 27/10 | s:nam bank:mridangam ]",
"[ 27/10 → 14/5 | s:ht ]", "[ 27/10 → 14/5 | s:thom bank:mridangam ]",
"[ 14/5 → 29/10 | s:mt ]", "[ 14/5 → 29/10 | s:nam bank:mridangam ]",
"[ 29/10 → 3/1 | s:mt ]", "[ 29/10 → 3/1 | s:nam bank:mridangam ]",
"[ 3/1 → 31/10 | s:bd ]", "[ 3/1 → 31/10 | s:tha bank:mridangam ]",
"[ 31/10 → 16/5 | s:cp ]", "[ 31/10 → 16/5 | s:dhi bank:mridangam ]",
"[ 16/5 → 33/10 | s:ht ]", "[ 16/5 → 33/10 | s:thom bank:mridangam ]",
"[ 33/10 → 17/5 | s:mt ]", "[ 33/10 → 17/5 | s:nam bank:mridangam ]",
"[ 17/5 → 7/2 | s:cp ]", "[ 17/5 → 7/2 | s:dhi bank:mridangam ]",
"[ 7/2 → 18/5 | s:ht ]", "[ 7/2 → 18/5 | s:thom bank:mridangam ]",
"[ 18/5 → 37/10 | s:mt ]", "[ 18/5 → 37/10 | s:nam bank:mridangam ]",
"[ 37/10 → 19/5 | s:ht ]", "[ 37/10 → 19/5 | s:thom bank:mridangam ]",
"[ 19/5 → 39/10 | s:mt ]", "[ 19/5 → 39/10 | s:nam bank:mridangam ]",
"[ 39/10 → 4/1 | s:mt ]", "[ 39/10 → 4/1 | s:nam bank:mridangam ]",
] ]
`; `;
exports[`runs examples > example "shrink" example index 1 1`] = ` exports[`runs examples > example "shrink" example index 1 1`] = `
[ [
"[ 0/1 → 1/10 | s:bd ]", "[ 0/1 → 1/10 | s:tha bank:mridangam ]",
"[ 1/10 → 1/5 | s:cp ]", "[ 1/10 → 1/5 | s:dhi bank:mridangam ]",
"[ 1/5 → 3/10 | s:ht ]", "[ 1/5 → 3/10 | s:thom bank:mridangam ]",
"[ 3/10 → 2/5 | s:mt ]", "[ 3/10 → 2/5 | s:nam bank:mridangam ]",
"[ 2/5 → 1/2 | s:bd ]", "[ 2/5 → 1/2 | s:tha bank:mridangam ]",
"[ 1/2 → 3/5 | s:cp ]", "[ 1/2 → 3/5 | s:dhi bank:mridangam ]",
"[ 3/5 → 7/10 | s:ht ]", "[ 3/5 → 7/10 | s:thom bank:mridangam ]",
"[ 7/10 → 4/5 | s:bd ]", "[ 7/10 → 4/5 | s:tha bank:mridangam ]",
"[ 4/5 → 9/10 | s:cp ]", "[ 4/5 → 9/10 | s:dhi bank:mridangam ]",
"[ 9/10 → 1/1 | s:bd ]", "[ 9/10 → 1/1 | s:tha bank:mridangam ]",
"[ 1/1 → 11/10 | s:bd ]", "[ 1/1 → 11/10 | s:tha bank:mridangam ]",
"[ 11/10 → 6/5 | s:cp ]", "[ 11/10 → 6/5 | s:dhi bank:mridangam ]",
"[ 6/5 → 13/10 | s:ht ]", "[ 6/5 → 13/10 | s:thom bank:mridangam ]",
"[ 13/10 → 7/5 | s:mt ]", "[ 13/10 → 7/5 | s:nam bank:mridangam ]",
"[ 7/5 → 3/2 | s:bd ]", "[ 7/5 → 3/2 | s:tha bank:mridangam ]",
"[ 3/2 → 8/5 | s:cp ]", "[ 3/2 → 8/5 | s:dhi bank:mridangam ]",
"[ 8/5 → 17/10 | s:ht ]", "[ 8/5 → 17/10 | s:thom bank:mridangam ]",
"[ 17/10 → 9/5 | s:bd ]", "[ 17/10 → 9/5 | s:tha bank:mridangam ]",
"[ 9/5 → 19/10 | s:cp ]", "[ 9/5 → 19/10 | s:dhi bank:mridangam ]",
"[ 19/10 → 2/1 | s:bd ]", "[ 19/10 → 2/1 | s:tha bank:mridangam ]",
"[ 2/1 → 21/10 | s:bd ]", "[ 2/1 → 21/10 | s:tha bank:mridangam ]",
"[ 21/10 → 11/5 | s:cp ]", "[ 21/10 → 11/5 | s:dhi bank:mridangam ]",
"[ 11/5 → 23/10 | s:ht ]", "[ 11/5 → 23/10 | s:thom bank:mridangam ]",
"[ 23/10 → 12/5 | s:mt ]", "[ 23/10 → 12/5 | s:nam bank:mridangam ]",
"[ 12/5 → 5/2 | s:bd ]", "[ 12/5 → 5/2 | s:tha bank:mridangam ]",
"[ 5/2 → 13/5 | s:cp ]", "[ 5/2 → 13/5 | s:dhi bank:mridangam ]",
"[ 13/5 → 27/10 | s:ht ]", "[ 13/5 → 27/10 | s:thom bank:mridangam ]",
"[ 27/10 → 14/5 | s:bd ]", "[ 27/10 → 14/5 | s:tha bank:mridangam ]",
"[ 14/5 → 29/10 | s:cp ]", "[ 14/5 → 29/10 | s:dhi bank:mridangam ]",
"[ 29/10 → 3/1 | s:bd ]", "[ 29/10 → 3/1 | s:tha bank:mridangam ]",
"[ 3/1 → 31/10 | s:bd ]", "[ 3/1 → 31/10 | s:tha bank:mridangam ]",
"[ 31/10 → 16/5 | s:cp ]", "[ 31/10 → 16/5 | s:dhi bank:mridangam ]",
"[ 16/5 → 33/10 | s:ht ]", "[ 16/5 → 33/10 | s:thom bank:mridangam ]",
"[ 33/10 → 17/5 | s:mt ]", "[ 33/10 → 17/5 | s:nam bank:mridangam ]",
"[ 17/5 → 7/2 | s:bd ]", "[ 17/5 → 7/2 | s:tha bank:mridangam ]",
"[ 7/2 → 18/5 | s:cp ]", "[ 7/2 → 18/5 | s:dhi bank:mridangam ]",
"[ 18/5 → 37/10 | s:ht ]", "[ 18/5 → 37/10 | s:thom bank:mridangam ]",
"[ 37/10 → 19/5 | s:bd ]", "[ 37/10 → 19/5 | s:tha bank:mridangam ]",
"[ 19/5 → 39/10 | s:cp ]", "[ 19/5 → 39/10 | s:dhi bank:mridangam ]",
"[ 39/10 → 4/1 | s:bd ]", "[ 39/10 → 4/1 | s:tha bank:mridangam ]",
] ]
`; `;
exports[`runs examples > example "shrink" example index 2 1`] = ` exports[`runs examples > example "shrink" example index 2 1`] = `
[ [
"[ 0/1 → 1/20 | s:bd ]", "[ 0/1 → 1/4 | s:tha bank:mridangam ]",
"[ 1/20 → 1/10 | s:bd ]", "[ 1/4 → 1/2 | s:dhi bank:mridangam ]",
"[ 1/10 → 3/20 | s:cp ]", "[ 1/2 → 3/4 | s:thom bank:mridangam ]",
"[ 3/20 → 1/5 | s:bd ]", "[ 3/4 → 1/1 | s:nam bank:mridangam ]",
"[ 1/5 → 1/4 | s:cp ]", "[ 1/1 → 5/4 | s:dhi bank:mridangam ]",
"[ 1/4 → 3/10 | s:ht ]", "[ 5/4 → 3/2 | s:thom bank:mridangam ]",
"[ 3/10 → 7/20 | s:bd ]", "[ 3/2 → 7/4 | s:nam bank:mridangam ]",
"[ 7/20 → 2/5 | s:cp ]", "[ 7/4 → 2/1 | s:thom bank:mridangam ]",
"[ 2/5 → 9/20 | s:ht ]", "[ 2/1 → 9/4 | s:nam bank:mridangam ]",
"[ 9/20 → 1/2 | s:mt ]", "[ 9/4 → 5/2 | s:nam bank:mridangam ]",
"[ 1/2 → 11/20 | s:mt ]", "[ 5/2 → 11/4 | s:tha bank:mridangam ]",
"[ 11/20 → 3/5 | s:ht ]", "[ 11/4 → 3/1 | s:dhi bank:mridangam ]",
"[ 3/5 → 13/20 | s:mt ]", "[ 3/1 → 13/4 | s:thom bank:mridangam ]",
"[ 13/20 → 7/10 | s:cp ]", "[ 13/4 → 7/2 | s:nam bank:mridangam ]",
"[ 7/10 → 3/4 | s:ht ]", "[ 7/2 → 15/4 | s:tha bank:mridangam ]",
"[ 3/4 → 4/5 | s:mt ]", "[ 15/4 → 4/1 | s:dhi bank:mridangam ]",
"[ 4/5 → 17/20 | s:bd ]", ]
"[ 17/20 → 9/10 | s:cp ]", `;
"[ 9/10 → 19/20 | s:ht ]",
"[ 19/20 → 1/1 | s:mt ]", exports[`runs examples > example "shrink" example index 3 1`] = `
"[ 1/1 → 21/20 | s:bd ]", [
"[ 21/20 → 11/10 | s:bd ]", "[ 0/1 → 1/8 | note:C3 s:folkharp ]",
"[ 11/10 → 23/20 | s:cp ]", "[ 1/8 → 1/4 | note:D3 s:folkharp ]",
"[ 23/20 → 6/5 | s:bd ]", "[ 1/4 → 3/8 | note:F3 s:folkharp ]",
"[ 6/5 → 5/4 | s:cp ]", "[ 3/8 → 1/2 | note:G3 s:folkharp ]",
"[ 5/4 → 13/10 | s:ht ]", "[ 1/2 → 5/8 | note:A3 s:folkharp ]",
"[ 13/10 → 27/20 | s:bd ]", "[ 5/8 → 3/4 | note:C4 s:folkharp ]",
"[ 27/20 → 7/5 | s:cp ]", "[ 3/4 → 7/8 | note:D4 s:folkharp ]",
"[ 7/5 → 29/20 | s:ht ]", "[ 7/8 → 1/1 | note:F4 s:folkharp ]",
"[ 29/20 → 3/2 | s:mt ]", "[ 1/1 → 9/8 | note:D3 s:folkharp ]",
"[ 3/2 → 31/20 | s:mt ]", "[ 9/8 → 5/4 | note:F3 s:folkharp ]",
"[ 31/20 → 8/5 | s:ht ]", "[ 5/4 → 11/8 | note:G3 s:folkharp ]",
"[ 8/5 → 33/20 | s:mt ]", "[ 11/8 → 3/2 | note:A3 s:folkharp ]",
"[ 33/20 → 17/10 | s:cp ]", "[ 3/2 → 13/8 | note:C4 s:folkharp ]",
"[ 17/10 → 7/4 | s:ht ]", "[ 13/8 → 7/4 | note:D4 s:folkharp ]",
"[ 7/4 → 9/5 | s:mt ]", "[ 7/4 → 15/8 | note:F4 s:folkharp ]",
"[ 9/5 → 37/20 | s:bd ]", "[ 15/8 → 2/1 | note:F3 s:folkharp ]",
"[ 37/20 → 19/10 | s:cp ]", "[ 2/1 → 17/8 | note:G3 s:folkharp ]",
"[ 19/10 → 39/20 | s:ht ]", "[ 17/8 → 9/4 | note:A3 s:folkharp ]",
"[ 39/20 → 2/1 | s:mt ]", "[ 9/4 → 19/8 | note:C4 s:folkharp ]",
"[ 2/1 → 41/20 | s:bd ]", "[ 19/8 → 5/2 | note:D4 s:folkharp ]",
"[ 41/20 → 21/10 | s:bd ]", "[ 5/2 → 21/8 | note:F4 s:folkharp ]",
"[ 21/10 → 43/20 | s:cp ]", "[ 21/8 → 11/4 | note:G3 s:folkharp ]",
"[ 43/20 → 11/5 | s:bd ]", "[ 11/4 → 23/8 | note:A3 s:folkharp ]",
"[ 11/5 → 9/4 | s:cp ]", "[ 23/8 → 3/1 | note:C4 s:folkharp ]",
"[ 9/4 → 23/10 | s:ht ]", "[ 3/1 → 25/8 | note:D4 s:folkharp ]",
"[ 23/10 → 47/20 | s:bd ]", "[ 25/8 → 13/4 | note:F4 s:folkharp ]",
"[ 47/20 → 12/5 | s:cp ]", "[ 13/4 → 27/8 | note:A3 s:folkharp ]",
"[ 12/5 → 49/20 | s:ht ]", "[ 27/8 → 7/2 | note:C4 s:folkharp ]",
"[ 49/20 → 5/2 | s:mt ]", "[ 7/2 → 29/8 | note:D4 s:folkharp ]",
"[ 5/2 → 51/20 | s:mt ]", "[ 29/8 → 15/4 | note:F4 s:folkharp ]",
"[ 51/20 → 13/5 | s:ht ]", "[ 15/4 → 31/8 | note:C4 s:folkharp ]",
"[ 13/5 → 53/20 | s:mt ]", "[ 31/8 → 4/1 | note:D4 s:folkharp ]",
"[ 53/20 → 27/10 | s:cp ]",
"[ 27/10 → 11/4 | s:ht ]",
"[ 11/4 → 14/5 | s:mt ]",
"[ 14/5 → 57/20 | s:bd ]",
"[ 57/20 → 29/10 | s:cp ]",
"[ 29/10 → 59/20 | s:ht ]",
"[ 59/20 → 3/1 | s:mt ]",
"[ 3/1 → 61/20 | s:bd ]",
"[ 61/20 → 31/10 | s:bd ]",
"[ 31/10 → 63/20 | s:cp ]",
"[ 63/20 → 16/5 | s:bd ]",
"[ 16/5 → 13/4 | s:cp ]",
"[ 13/4 → 33/10 | s:ht ]",
"[ 33/10 → 67/20 | s:bd ]",
"[ 67/20 → 17/5 | s:cp ]",
"[ 17/5 → 69/20 | s:ht ]",
"[ 69/20 → 7/2 | s:mt ]",
"[ 7/2 → 71/20 | s:mt ]",
"[ 71/20 → 18/5 | s:ht ]",
"[ 18/5 → 73/20 | s:mt ]",
"[ 73/20 → 37/10 | s:cp ]",
"[ 37/10 → 15/4 | s:ht ]",
"[ 15/4 → 19/5 | s:mt ]",
"[ 19/5 → 77/20 | s:bd ]",
"[ 77/20 → 39/10 | s:cp ]",
"[ 39/10 → 79/20 | s:ht ]",
"[ 79/20 → 4/1 | s:mt ]",
] ]
`; `;

View File

@ -0,0 +1,160 @@
{
"_base": "https://raw.githubusercontent.com/yaxu/mrid/main/",
"mridangam_gumki": [
"norm_sounds/gumki/gumki2-3.wav",
"norm_sounds/gumki/gumki2-7.wav",
"norm_sounds/gumki/gumki2-6.wav",
"norm_sounds/gumki/gumki2-5.wav",
"norm_sounds/gumki/gumki-4.wav",
"norm_sounds/gumki/gumki-2.wav",
"norm_sounds/gumki/gumki2-4.wav",
"norm_sounds/gumki/gumki-5.wav",
"norm_sounds/gumki/gumki2-8.wav",
"norm_sounds/gumki/gumki-6.wav",
"norm_sounds/gumki/gumki-1.wav",
"norm_sounds/gumki/gumki2-2.wav",
"norm_sounds/gumki/gumki-3.wav",
"norm_sounds/gumki/gumki2-1.wav"
],
"mridangam_ka": [
"norm_sounds/ka/ka2-4.wav",
"norm_sounds/ka/ka2-2.wav",
"norm_sounds/ka/ka2-1.wav",
"norm_sounds/ka/ka-2.wav",
"norm_sounds/ka/ka-5.wav",
"norm_sounds/ka/ka-7.wav",
"norm_sounds/ka/ka-6.wav",
"norm_sounds/ka/ka2-5.wav",
"norm_sounds/ka/ka-1.wav",
"norm_sounds/ka/ka-4.wav",
"norm_sounds/ka/ka2-3.wav",
"norm_sounds/ka/ka-3.wav"
],
"mridangam_nam": [
"norm_sounds/nam/nam2-1.wav",
"norm_sounds/nam/nam2-3.wav",
"norm_sounds/nam/nam-3.wav",
"norm_sounds/nam/nam-2.wav",
"norm_sounds/nam/nam2-5.wav",
"norm_sounds/nam/nam2-2.wav",
"norm_sounds/nam/nam2-4.wav",
"norm_sounds/nam/nam-1.wav"
],
"mridangam_ta": [
"norm_sounds/ta/ta-3.wav",
"norm_sounds/ta/ta2-2.wav",
"norm_sounds/ta/ta-2.wav",
"norm_sounds/ta/ta2-3.wav",
"norm_sounds/ta/ta2-6.wav",
"norm_sounds/ta/ta2-4.wav",
"norm_sounds/ta/ta2-1.wav",
"norm_sounds/ta/ta2-5.wav",
"norm_sounds/ta/ta-1.wav"
],
"mridangam_ki": [
"norm_sounds/ki/ki2-3.wav",
"norm_sounds/ki/ki2-1.wav",
"norm_sounds/ki/ki-2.wav",
"norm_sounds/ki/ki-1.wav",
"norm_sounds/ki/ki2-4.wav",
"norm_sounds/ki/ki2-2.wav",
"norm_sounds/ki/ki-3.wav"
],
"mridangam_dhin": [
"norm_sounds/dhin/dhin2-3.wav",
"norm_sounds/dhin/dhin-2.wav",
"norm_sounds/dhin/dhin2-5.wav",
"norm_sounds/dhin/dhin-3.wav",
"norm_sounds/dhin/dhin2-4.wav",
"norm_sounds/dhin/dhin2-2.wav",
"norm_sounds/dhin/dhin-1.wav",
"norm_sounds/dhin/dhin2-1.wav"
],
"mridangam_na": [
"norm_sounds/na/na-6.wav",
"norm_sounds/na/na2-5.wav",
"norm_sounds/na/na-3.wav",
"norm_sounds/na/na2-2.wav",
"norm_sounds/na/na-7.wav",
"norm_sounds/na/na2-1.wav",
"norm_sounds/na/na2-3.wav",
"norm_sounds/na/na-2.wav",
"norm_sounds/na/na-4.wav",
"norm_sounds/na/na-5.wav",
"norm_sounds/na/na-1.wav",
"norm_sounds/na/na2-4.wav"
],
"mridangam_chaapu": [
"norm_sounds/c/chaapu-3.wav",
"norm_sounds/c/chaapu2-9.wav",
"norm_sounds/c/chaapu2-4.wav",
"norm_sounds/c/chaapu2-3.wav",
"norm_sounds/c/chaapu2-6.wav",
"norm_sounds/c/chaapu-1.wav",
"norm_sounds/c/chaapu2-8.wav",
"norm_sounds/c/chaapu2-1.wav",
"norm_sounds/c/chaapu2-2.wav",
"norm_sounds/c/chaapu2-5.wav",
"norm_sounds/c/chaapu-4.wav",
"norm_sounds/c/chaapu2-7.wav",
"norm_sounds/c/chaapu-2.wav"
],
"mridangam_dhum": [
"norm_sounds/dhum/dhum-1.wav",
"norm_sounds/dhum/dhum2-3.wav",
"norm_sounds/dhum/dhum2-1.wav",
"norm_sounds/dhum/dhum-2.wav",
"norm_sounds/dhum/dhum2-2.wav",
"norm_sounds/dhum/dhum-3.wav",
"norm_sounds/dhum/dhum2-4.wav"
],
"mridangam_ardha": [
"norm_sounds/ac/ardha-chaapu2-3.wav",
"norm_sounds/ac/ardha-chaapu2-14.wav",
"norm_sounds/ac/ardha-chaapu2-2.wav",
"norm_sounds/ac/ardha-chaapu2-10.wav",
"norm_sounds/ac/ardha-chaapu-5.wav",
"norm_sounds/ac/ardha-chaapu2-6.wav",
"norm_sounds/ac/ardha-chaapu-3.wav",
"norm_sounds/ac/ardha-chaapu2-4.wav",
"norm_sounds/ac/ardha-chaapu-2.wav",
"norm_sounds/ac/ardha-chaapu2-12.wav",
"norm_sounds/ac/ardha-chaapu2-5.wav",
"norm_sounds/ac/ardha-chaapu-6.wav",
"norm_sounds/ac/ardha-chaapu2-9.wav",
"norm_sounds/ac/ardha-chaapu2-13.wav",
"norm_sounds/ac/ardha-chaapu2-1.wav",
"norm_sounds/ac/ardha-chaapu-4.wav",
"norm_sounds/ac/ardha-chaapu2-11.wav",
"norm_sounds/ac/ardha-chaapu2-7.wav",
"norm_sounds/ac/ardha-chaapu2-8.wav",
"norm_sounds/ac/ardha-chaapu-1.wav"
],
"mridangam_thom": [
"norm_sounds/thom/thom2-3.wav",
"norm_sounds/thom/thom-2.wav",
"norm_sounds/thom/thom-3.wav",
"norm_sounds/thom/thom-1.wav",
"norm_sounds/thom/thom2-4.wav",
"norm_sounds/thom/thom2-2.wav",
"norm_sounds/thom/thom2-1.wav"
],
"mridangam_dhi": [
"norm_sounds/dhi/dhi-3.wav",
"norm_sounds/dhi/dhi2-4.wav",
"norm_sounds/dhi/dhi2-1.wav",
"norm_sounds/dhi/dhi2-3.wav",
"norm_sounds/dhi/dhi-1.wav",
"norm_sounds/dhi/dhi2-2.wav",
"norm_sounds/dhi/dhi-2.wav"
],
"mridangam_tha": [
"norm_sounds/tha/tha2-3.wav",
"norm_sounds/tha/tha2-2.wav",
"norm_sounds/tha/tha2-4.wav",
"norm_sounds/tha/tha-1.wav",
"norm_sounds/tha/tha-3.wav",
"norm_sounds/tha/tha2-1.wav",
"norm_sounds/tha/tha-2.wav"
]
}

View File

@ -76,8 +76,6 @@ This results in a dense pattern, because the different expanded versions are squ
<MiniRepl client:idle tune={`note("c a f e").sound("folkharp").expand("3 2 1 1 2 3").pace(8)`} /> <MiniRepl client:idle tune={`note("c a f e").sound("folkharp").expand("3 2 1 1 2 3").pace(8)`} />
## Deprecated aliases
Earlier versions of many of these functions had `s_` prefixes, and the `pace` function was previously known as `steps`. These still exist as aliases, but may have changed behaviour and will soon be removed. Please update your patterns! Earlier versions of many of these functions had `s_` prefixes, and the `pace` function was previously known as `steps`. These still exist as aliases, but may have changed behaviour and will soon be removed. Please update your patterns!
## Stepwise functions ## Stepwise functions

View File

@ -29,6 +29,7 @@ export async function prebake() {
tag: 'drum-machines', tag: 'drum-machines',
}), }),
samples(`${baseNoTrailing}/EmuSP12.json`, undefined, { prebake: true, tag: 'drum-machines' }), samples(`${baseNoTrailing}/EmuSP12.json`, undefined, { prebake: true, tag: 'drum-machines' }),
samples(`${baseNoTrailing}/mridangam.json`, undefined, { prebake: true, tag: 'drum-machines' }),
samples( samples(
{ {
casio: ['casio/high.wav', 'casio/low.wav', 'casio/noise.wav'], casio: ['casio/high.wav', 'casio/low.wav', 'casio/noise.wav'],