diff --git a/packages/xen/xen.mjs b/packages/xen/xen.mjs index 8ac524c8d..a5cd72488 100644 --- a/packages/xen/xen.mjs +++ b/packages/xen/xen.mjs @@ -67,6 +67,16 @@ const trimFreq = (freq) => parseFloat(freq.toPrecision(10)); // values mapped to the frequencies associated with the given edosteps // scaleNameOrRatios: string || number[], steps?: number +// old, currently unsupported +// * @example +// * // You can also use xen with frequency ratios. +// * // This is equivalent to the above: +// * i("0 1 2").xen([ +// * Math.pow(2, 0/31), +// * Math.pow(2, 8/31), +// * Math.pow(2, 18/31), +// * ]).piano() + /** * Assumes a numerical pattern of scale steps, and a scale. Scales accepted are all preset scale names of `tune`, arbitrary edos such as 31edo, or an array of frequency ratios. Assumes scales repeat at octave (2/1). Returns a new pattern with all values mapped to their associated frequency, assuming a base frequency of 220hz. * @@ -79,14 +89,6 @@ const trimFreq = (freq) => parseFloat(freq.toPrecision(10)); * // A minor triad in 31edo: * i("0 8 18").xen("31edo").piano() * @example - * // You can also use xen with frequency ratios. - * // This is equivalent to the above: - * i("0 1 2").xen([ - * Math.pow(2, 0/31), - * Math.pow(2, 8/31), - * Math.pow(2, 18/31), - * ]).piano() - * @example * // xen also supports all scale names that * // tune does: * i("0 1 2 3 4 5").xen("hexany15") @@ -116,76 +118,26 @@ export const xen = register( }); }; - // How do we use curry to solve the stack problem - /* - Register does this by effectively saying - are there multiple args? - If so, split them into two arrays - left has 1, right has rest - join left and right: - - result = join(right.reduce((acc, p) => acc.appLeft(p), left.fmap(mapFn))); - - where mapFn applies the registered function 'func'. - ---- - When we're in xen but not in query, then we already have access to `scaleNameOrRatios` - Could we run query for each? (could that be 'func' in this case?) - ---- - I don't think so, I think it makes more sense to do it within the query, but call an innerfunc on each arg - ---- - Okay, working for strings. - - How do you tell the different between these two inputs? - - i("0 1").xen(` - 1:1, - [13:12, 5:4], - 2:1 - `).piano().log() - - i("0 1").xen(` - 1:1, - 13:12, - 5:4, - 2:1 - `).piano().log() - - - If it's not, we can just do: - xen([ - "1:1", - "[13:12, 5:4]", - ... - ]) - - ---- - - okay I got the above working and now I need to rejigger this one to work with the other stuff - - i("0 1 2 3").xen("hexany15, [sev-elev hexany23]").s("sin") - - */ - const JIsc2 = (input) => { - let k = parray(input) + let k = parray(input); return new Pattern((state) => { - let res = k.withValue(x => x.map(y => eval(y.join('/')))).query(state) - return res - }) - } + let res = k.withValue((x) => x.map((y) => eval(y.join('/')))).query(state); + return res; + }); + }; const query = (state) => { let input = scaleNameOrRatios.query(state); - - if (input.length == 0) return [] - let scPat = input[0].value - let scs + if (input.length == 0) return []; + + let scPat = input[0].value; + let scs; if (typeof scPat == 'string') { - scs = input.map(x=>x.value) + scs = input.map((x) => x.value); } else { - scs = JIsc2(scPat).query(state) + scs = JIsc2(scPat).query(state); } let k = scs.map((sc, ith) => { @@ -223,8 +175,8 @@ export const xen = register( .query(state); return removeUndefineds(haps); // return haps - }) - return flatten(k) + }); + return flatten(k); }; /* @@ -232,8 +184,8 @@ export const xen = register( return new Pattern(query) we could do a join on scaleNameOrRatios which creates multiple patterns and then joins them */ - let res = new Pattern(query) - + let res = new Pattern(query); + return res; }, false, diff --git a/test/__snapshots__/examples.test.mjs.snap b/test/__snapshots__/examples.test.mjs.snap index 458904baf..cc8a73c89 100644 --- a/test/__snapshots__/examples.test.mjs.snap +++ b/test/__snapshots__/examples.test.mjs.snap @@ -5832,37 +5832,133 @@ exports[`runs examples > example "hush" example index 0 1`] = ` exports[`runs examples > example "i" example index 0 1`] = ` [ + "[ 0/1 → 1/8 | freq:220 ]", + "[ 0/1 → 1/8 | freq:220 ]", + "[ 0/1 → 1/8 | freq:220 ]", "[ 0/1 → 1/8 | freq:220 ]", "[ 1/8 → 1/4 | freq:252.7136381 ]", + "[ 1/8 → 1/4 | freq:235.7901618 ]", + "[ 1/8 → 1/4 | freq:230.404707 ]", + "[ 1/8 → 1/4 | freq:275 ]", "[ 1/4 → 3/8 | freq:290.2917404 ]", + "[ 1/4 → 3/8 | freq:252.7136381 ]", + "[ 1/4 → 3/8 | freq:241.3014955 ]", + "[ 1/4 → 3/8 | freq:293.3333333 ]", "[ 3/8 → 1/2 | freq:333.4576446 ]", + "[ 3/8 → 1/2 | freq:270.8517709 ]", + "[ 3/8 → 1/2 | freq:252.7136381 ]", + "[ 3/8 → 1/2 | freq:330 ]", "[ 1/2 → 5/8 | freq:383.0422479 ]", + "[ 1/2 → 5/8 | freq:290.2917404 ]", + "[ 1/2 → 5/8 | freq:264.6655079 ]", + "[ 1/2 → 5/8 | freq:352 ]", + "[ 5/8 → 3/4 | freq:440 ]", + "[ 5/8 → 3/4 | freq:311.1269837 ]", + "[ 5/8 → 3/4 | freq:277.182631 ]", "[ 5/8 → 3/4 | freq:440 ]", "[ 3/4 → 7/8 | freq:505.4272762 ]", + "[ 3/4 → 7/8 | freq:333.4576446 ]", + "[ 3/4 → 7/8 | freq:290.2917404 ]", + "[ 3/4 → 7/8 | freq:550 ]", "[ 7/8 → 1/1 | freq:580.5834807 ]", + "[ 7/8 → 1/1 | freq:357.3910544 ]", + "[ 7/8 → 1/1 | freq:304.0208336 ]", + "[ 7/8 → 1/1 | freq:586.6666667 ]", "[ 1/1 → 9/8 | freq:220 ]", + "[ 1/1 → 9/8 | freq:220 ]", + "[ 1/1 → 9/8 | freq:220 ]", + "[ 1/1 → 9/8 | freq:220 ]", + "[ 9/8 → 5/4 | freq:252.7136381 ]", "[ 9/8 → 5/4 | freq:235.7901618 ]", + "[ 9/8 → 5/4 | freq:230.404707 ]", + "[ 9/8 → 5/4 | freq:275 ]", + "[ 5/4 → 11/8 | freq:290.2917404 ]", "[ 5/4 → 11/8 | freq:252.7136381 ]", + "[ 5/4 → 11/8 | freq:241.3014955 ]", + "[ 5/4 → 11/8 | freq:293.3333333 ]", + "[ 11/8 → 3/2 | freq:333.4576446 ]", "[ 11/8 → 3/2 | freq:270.8517709 ]", + "[ 11/8 → 3/2 | freq:252.7136381 ]", + "[ 11/8 → 3/2 | freq:330 ]", + "[ 3/2 → 13/8 | freq:383.0422479 ]", "[ 3/2 → 13/8 | freq:290.2917404 ]", + "[ 3/2 → 13/8 | freq:264.6655079 ]", + "[ 3/2 → 13/8 | freq:352 ]", + "[ 13/8 → 7/4 | freq:440 ]", "[ 13/8 → 7/4 | freq:311.1269837 ]", + "[ 13/8 → 7/4 | freq:277.182631 ]", + "[ 13/8 → 7/4 | freq:440 ]", + "[ 7/4 → 15/8 | freq:505.4272762 ]", "[ 7/4 → 15/8 | freq:333.4576446 ]", + "[ 7/4 → 15/8 | freq:290.2917404 ]", + "[ 7/4 → 15/8 | freq:550 ]", + "[ 15/8 → 2/1 | freq:580.5834807 ]", "[ 15/8 → 2/1 | freq:357.3910544 ]", + "[ 15/8 → 2/1 | freq:304.0208336 ]", + "[ 15/8 → 2/1 | freq:586.6666667 ]", "[ 2/1 → 17/8 | freq:220 ]", + "[ 2/1 → 17/8 | freq:220 ]", + "[ 2/1 → 17/8 | freq:220 ]", + "[ 2/1 → 17/8 | freq:220 ]", + "[ 17/8 → 9/4 | freq:252.7136381 ]", + "[ 17/8 → 9/4 | freq:235.7901618 ]", "[ 17/8 → 9/4 | freq:230.404707 ]", + "[ 17/8 → 9/4 | freq:275 ]", + "[ 9/4 → 19/8 | freq:290.2917404 ]", + "[ 9/4 → 19/8 | freq:252.7136381 ]", "[ 9/4 → 19/8 | freq:241.3014955 ]", + "[ 9/4 → 19/8 | freq:293.3333333 ]", + "[ 19/8 → 5/2 | freq:333.4576446 ]", + "[ 19/8 → 5/2 | freq:270.8517709 ]", "[ 19/8 → 5/2 | freq:252.7136381 ]", + "[ 19/8 → 5/2 | freq:330 ]", + "[ 5/2 → 21/8 | freq:383.0422479 ]", + "[ 5/2 → 21/8 | freq:290.2917404 ]", "[ 5/2 → 21/8 | freq:264.6655079 ]", + "[ 5/2 → 21/8 | freq:352 ]", + "[ 21/8 → 11/4 | freq:440 ]", + "[ 21/8 → 11/4 | freq:311.1269837 ]", "[ 21/8 → 11/4 | freq:277.182631 ]", + "[ 21/8 → 11/4 | freq:440 ]", + "[ 11/4 → 23/8 | freq:505.4272762 ]", + "[ 11/4 → 23/8 | freq:333.4576446 ]", "[ 11/4 → 23/8 | freq:290.2917404 ]", + "[ 11/4 → 23/8 | freq:550 ]", + "[ 23/8 → 3/1 | freq:580.5834807 ]", + "[ 23/8 → 3/1 | freq:357.3910544 ]", "[ 23/8 → 3/1 | freq:304.0208336 ]", + "[ 23/8 → 3/1 | freq:586.6666667 ]", "[ 3/1 → 25/8 | freq:220 ]", + "[ 3/1 → 25/8 | freq:220 ]", + "[ 3/1 → 25/8 | freq:220 ]", + "[ 3/1 → 25/8 | freq:220 ]", + "[ 25/8 → 13/4 | freq:252.7136381 ]", + "[ 25/8 → 13/4 | freq:235.7901618 ]", + "[ 25/8 → 13/4 | freq:230.404707 ]", "[ 25/8 → 13/4 | freq:275 ]", + "[ 13/4 → 27/8 | freq:290.2917404 ]", + "[ 13/4 → 27/8 | freq:252.7136381 ]", + "[ 13/4 → 27/8 | freq:241.3014955 ]", "[ 13/4 → 27/8 | freq:293.3333333 ]", + "[ 27/8 → 7/2 | freq:333.4576446 ]", + "[ 27/8 → 7/2 | freq:270.8517709 ]", + "[ 27/8 → 7/2 | freq:252.7136381 ]", "[ 27/8 → 7/2 | freq:330 ]", + "[ 7/2 → 29/8 | freq:383.0422479 ]", + "[ 7/2 → 29/8 | freq:290.2917404 ]", + "[ 7/2 → 29/8 | freq:264.6655079 ]", "[ 7/2 → 29/8 | freq:352 ]", "[ 29/8 → 15/4 | freq:440 ]", + "[ 29/8 → 15/4 | freq:311.1269837 ]", + "[ 29/8 → 15/4 | freq:277.182631 ]", + "[ 29/8 → 15/4 | freq:440 ]", + "[ 15/4 → 31/8 | freq:505.4272762 ]", + "[ 15/4 → 31/8 | freq:333.4576446 ]", + "[ 15/4 → 31/8 | freq:290.2917404 ]", "[ 15/4 → 31/8 | freq:550 ]", + "[ 31/8 → 4/1 | freq:580.5834807 ]", + "[ 31/8 → 4/1 | freq:357.3910544 ]", + "[ 31/8 → 4/1 | freq:304.0208336 ]", "[ 31/8 → 4/1 | freq:586.6666667 ]", ] `; @@ -14566,99 +14662,286 @@ exports[`runs examples > example "wtphaserand" example index 0 1`] = ` exports[`runs examples > example "xen" example index 0 1`] = ` [ "[ 0/1 → 1/3 | freq:220 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 0/1 → 1/3 | freq:220 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 0/1 → 1/3 | freq:220 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 0/1 → 1/3 | freq:220 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 1/3 → 2/3 | freq:263.0921203 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 1/3 → 2/3 | freq:263.0921203 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 1/3 → 2/3 | freq:263.0921203 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", "[ 1/3 → 2/3 | freq:263.0921203 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", "[ 2/3 → 1/1 | freq:329.0139341 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 2/3 → 1/1 | freq:329.0139341 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 2/3 → 1/1 | freq:329.0139341 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 2/3 → 1/1 | freq:329.0139341 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 1/1 → 4/3 | freq:220 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 1/1 → 4/3 | freq:220 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 1/1 → 4/3 | freq:220 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", "[ 1/1 → 4/3 | freq:220 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", "[ 4/3 → 5/3 | freq:263.0921203 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 4/3 → 5/3 | freq:263.0921203 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 4/3 → 5/3 | freq:263.0921203 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 4/3 → 5/3 | freq:263.0921203 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 5/3 → 2/1 | freq:329.0139341 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 5/3 → 2/1 | freq:329.0139341 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 5/3 → 2/1 | freq:329.0139341 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", "[ 5/3 → 2/1 | freq:329.0139341 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", "[ 2/1 → 7/3 | freq:220 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 2/1 → 7/3 | freq:220 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 2/1 → 7/3 | freq:220 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 2/1 → 7/3 | freq:220 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 7/3 → 8/3 | freq:263.0921203 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 7/3 → 8/3 | freq:263.0921203 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 7/3 → 8/3 | freq:263.0921203 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", "[ 7/3 → 8/3 | freq:263.0921203 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", "[ 8/3 → 3/1 | freq:329.0139341 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 8/3 → 3/1 | freq:329.0139341 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 8/3 → 3/1 | freq:329.0139341 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 8/3 → 3/1 | freq:329.0139341 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 3/1 → 10/3 | freq:220 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 3/1 → 10/3 | freq:220 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 3/1 → 10/3 | freq:220 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", "[ 3/1 → 10/3 | freq:220 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", "[ 10/3 → 11/3 | freq:263.0921203 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 10/3 → 11/3 | freq:263.0921203 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 10/3 → 11/3 | freq:263.0921203 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 10/3 → 11/3 | freq:263.0921203 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 11/3 → 4/1 | freq:329.0139341 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 11/3 → 4/1 | freq:329.0139341 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 11/3 → 4/1 | freq:329.0139341 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", "[ 11/3 → 4/1 | freq:329.0139341 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", ] `; exports[`runs examples > example "xen" example index 1 1`] = ` [ - "[ 0/1 → 1/3 | freq:220 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 1/3 → 2/3 | freq:263.0921203 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 2/3 → 1/1 | freq:329.0139341 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 1/1 → 4/3 | freq:220 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 4/3 → 5/3 | freq:263.0921203 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 5/3 → 2/1 | freq:329.0139341 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 2/1 → 7/3 | freq:220 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 7/3 → 8/3 | freq:263.0921203 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 8/3 → 3/1 | freq:329.0139341 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 3/1 → 10/3 | freq:220 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 10/3 → 11/3 | freq:263.0921203 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 11/3 → 4/1 | freq:329.0139341 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 0/1 → 1/6 | freq:220 ]", + "[ 0/1 → 1/6 | freq:220 ]", + "[ 0/1 → 1/6 | freq:220 ]", + "[ 0/1 → 1/6 | freq:220 ]", + "[ 1/6 → 1/3 | freq:275 ]", + "[ 1/6 → 1/3 | freq:275 ]", + "[ 1/6 → 1/3 | freq:275 ]", + "[ 1/6 → 1/3 | freq:275 ]", + "[ 1/3 → 1/2 | freq:293.3333333 ]", + "[ 1/3 → 1/2 | freq:293.3333333 ]", + "[ 1/3 → 1/2 | freq:293.3333333 ]", + "[ 1/3 → 1/2 | freq:293.3333333 ]", + "[ 1/2 → 2/3 | freq:330 ]", + "[ 1/2 → 2/3 | freq:330 ]", + "[ 1/2 → 2/3 | freq:330 ]", + "[ 1/2 → 2/3 | freq:330 ]", + "[ 2/3 → 5/6 | freq:352 ]", + "[ 2/3 → 5/6 | freq:352 ]", + "[ 2/3 → 5/6 | freq:352 ]", + "[ 2/3 → 5/6 | freq:352 ]", + "[ 5/6 → 1/1 | freq:440 ]", + "[ 5/6 → 1/1 | freq:440 ]", + "[ 5/6 → 1/1 | freq:440 ]", + "[ 5/6 → 1/1 | freq:440 ]", + "[ 1/1 → 7/6 | freq:220 ]", + "[ 1/1 → 7/6 | freq:220 ]", + "[ 1/1 → 7/6 | freq:220 ]", + "[ 1/1 → 7/6 | freq:220 ]", + "[ 7/6 → 4/3 | freq:275 ]", + "[ 7/6 → 4/3 | freq:275 ]", + "[ 7/6 → 4/3 | freq:275 ]", + "[ 7/6 → 4/3 | freq:275 ]", + "[ 4/3 → 3/2 | freq:293.3333333 ]", + "[ 4/3 → 3/2 | freq:293.3333333 ]", + "[ 4/3 → 3/2 | freq:293.3333333 ]", + "[ 4/3 → 3/2 | freq:293.3333333 ]", + "[ 3/2 → 5/3 | freq:330 ]", + "[ 3/2 → 5/3 | freq:330 ]", + "[ 3/2 → 5/3 | freq:330 ]", + "[ 3/2 → 5/3 | freq:330 ]", + "[ 5/3 → 11/6 | freq:352 ]", + "[ 5/3 → 11/6 | freq:352 ]", + "[ 5/3 → 11/6 | freq:352 ]", + "[ 5/3 → 11/6 | freq:352 ]", + "[ 11/6 → 2/1 | freq:440 ]", + "[ 11/6 → 2/1 | freq:440 ]", + "[ 11/6 → 2/1 | freq:440 ]", + "[ 11/6 → 2/1 | freq:440 ]", + "[ 2/1 → 13/6 | freq:220 ]", + "[ 2/1 → 13/6 | freq:220 ]", + "[ 2/1 → 13/6 | freq:220 ]", + "[ 2/1 → 13/6 | freq:220 ]", + "[ 13/6 → 7/3 | freq:275 ]", + "[ 13/6 → 7/3 | freq:275 ]", + "[ 13/6 → 7/3 | freq:275 ]", + "[ 13/6 → 7/3 | freq:275 ]", + "[ 7/3 → 5/2 | freq:293.3333333 ]", + "[ 7/3 → 5/2 | freq:293.3333333 ]", + "[ 7/3 → 5/2 | freq:293.3333333 ]", + "[ 7/3 → 5/2 | freq:293.3333333 ]", + "[ 5/2 → 8/3 | freq:330 ]", + "[ 5/2 → 8/3 | freq:330 ]", + "[ 5/2 → 8/3 | freq:330 ]", + "[ 5/2 → 8/3 | freq:330 ]", + "[ 8/3 → 17/6 | freq:352 ]", + "[ 8/3 → 17/6 | freq:352 ]", + "[ 8/3 → 17/6 | freq:352 ]", + "[ 8/3 → 17/6 | freq:352 ]", + "[ 17/6 → 3/1 | freq:440 ]", + "[ 17/6 → 3/1 | freq:440 ]", + "[ 17/6 → 3/1 | freq:440 ]", + "[ 17/6 → 3/1 | freq:440 ]", + "[ 3/1 → 19/6 | freq:220 ]", + "[ 3/1 → 19/6 | freq:220 ]", + "[ 3/1 → 19/6 | freq:220 ]", + "[ 3/1 → 19/6 | freq:220 ]", + "[ 19/6 → 10/3 | freq:275 ]", + "[ 19/6 → 10/3 | freq:275 ]", + "[ 19/6 → 10/3 | freq:275 ]", + "[ 19/6 → 10/3 | freq:275 ]", + "[ 10/3 → 7/2 | freq:293.3333333 ]", + "[ 10/3 → 7/2 | freq:293.3333333 ]", + "[ 10/3 → 7/2 | freq:293.3333333 ]", + "[ 10/3 → 7/2 | freq:293.3333333 ]", + "[ 7/2 → 11/3 | freq:330 ]", + "[ 7/2 → 11/3 | freq:330 ]", + "[ 7/2 → 11/3 | freq:330 ]", + "[ 7/2 → 11/3 | freq:330 ]", + "[ 11/3 → 23/6 | freq:352 ]", + "[ 11/3 → 23/6 | freq:352 ]", + "[ 11/3 → 23/6 | freq:352 ]", + "[ 11/3 → 23/6 | freq:352 ]", + "[ 23/6 → 4/1 | freq:440 ]", + "[ 23/6 → 4/1 | freq:440 ]", + "[ 23/6 → 4/1 | freq:440 ]", + "[ 23/6 → 4/1 | freq:440 ]", ] `; exports[`runs examples > example "xen" example index 2 1`] = ` [ - "[ 0/1 → 1/6 | freq:220 ]", - "[ 1/6 → 1/3 | freq:275 ]", - "[ 1/3 → 1/2 | freq:293.3333333 ]", - "[ 1/2 → 2/3 | freq:330 ]", - "[ 2/3 → 5/6 | freq:352 ]", - "[ 5/6 → 1/1 | freq:440 ]", - "[ 1/1 → 7/6 | freq:220 ]", - "[ 7/6 → 4/3 | freq:275 ]", - "[ 4/3 → 3/2 | freq:293.3333333 ]", - "[ 3/2 → 5/3 | freq:330 ]", - "[ 5/3 → 11/6 | freq:352 ]", - "[ 11/6 → 2/1 | freq:440 ]", - "[ 2/1 → 13/6 | freq:220 ]", - "[ 13/6 → 7/3 | freq:275 ]", - "[ 7/3 → 5/2 | freq:293.3333333 ]", - "[ 5/2 → 8/3 | freq:330 ]", - "[ 8/3 → 17/6 | freq:352 ]", - "[ 17/6 → 3/1 | freq:440 ]", - "[ 3/1 → 19/6 | freq:220 ]", - "[ 19/6 → 10/3 | freq:275 ]", - "[ 10/3 → 7/2 | freq:293.3333333 ]", - "[ 7/2 → 11/3 | freq:330 ]", - "[ 11/3 → 23/6 | freq:352 ]", - "[ 23/6 → 4/1 | freq:440 ]", -] -`; - -exports[`runs examples > example "xen" example index 3 1`] = ` -[ + "[ 0/1 → 1/8 | freq:220 ]", + "[ 0/1 → 1/8 | freq:220 ]", + "[ 0/1 → 1/8 | freq:220 ]", "[ 0/1 → 1/8 | freq:220 ]", "[ 1/8 → 1/4 | freq:252.7136381 ]", + "[ 1/8 → 1/4 | freq:235.7901618 ]", + "[ 1/8 → 1/4 | freq:230.404707 ]", + "[ 1/8 → 1/4 | freq:275 ]", "[ 1/4 → 3/8 | freq:290.2917404 ]", + "[ 1/4 → 3/8 | freq:252.7136381 ]", + "[ 1/4 → 3/8 | freq:241.3014955 ]", + "[ 1/4 → 3/8 | freq:293.3333333 ]", "[ 3/8 → 1/2 | freq:333.4576446 ]", + "[ 3/8 → 1/2 | freq:270.8517709 ]", + "[ 3/8 → 1/2 | freq:252.7136381 ]", + "[ 3/8 → 1/2 | freq:330 ]", "[ 1/2 → 5/8 | freq:383.0422479 ]", + "[ 1/2 → 5/8 | freq:290.2917404 ]", + "[ 1/2 → 5/8 | freq:264.6655079 ]", + "[ 1/2 → 5/8 | freq:352 ]", + "[ 5/8 → 3/4 | freq:440 ]", + "[ 5/8 → 3/4 | freq:311.1269837 ]", + "[ 5/8 → 3/4 | freq:277.182631 ]", "[ 5/8 → 3/4 | freq:440 ]", "[ 3/4 → 7/8 | freq:505.4272762 ]", + "[ 3/4 → 7/8 | freq:333.4576446 ]", + "[ 3/4 → 7/8 | freq:290.2917404 ]", + "[ 3/4 → 7/8 | freq:550 ]", "[ 7/8 → 1/1 | freq:580.5834807 ]", + "[ 7/8 → 1/1 | freq:357.3910544 ]", + "[ 7/8 → 1/1 | freq:304.0208336 ]", + "[ 7/8 → 1/1 | freq:586.6666667 ]", "[ 1/1 → 9/8 | freq:220 ]", + "[ 1/1 → 9/8 | freq:220 ]", + "[ 1/1 → 9/8 | freq:220 ]", + "[ 1/1 → 9/8 | freq:220 ]", + "[ 9/8 → 5/4 | freq:252.7136381 ]", "[ 9/8 → 5/4 | freq:235.7901618 ]", + "[ 9/8 → 5/4 | freq:230.404707 ]", + "[ 9/8 → 5/4 | freq:275 ]", + "[ 5/4 → 11/8 | freq:290.2917404 ]", "[ 5/4 → 11/8 | freq:252.7136381 ]", + "[ 5/4 → 11/8 | freq:241.3014955 ]", + "[ 5/4 → 11/8 | freq:293.3333333 ]", + "[ 11/8 → 3/2 | freq:333.4576446 ]", "[ 11/8 → 3/2 | freq:270.8517709 ]", + "[ 11/8 → 3/2 | freq:252.7136381 ]", + "[ 11/8 → 3/2 | freq:330 ]", + "[ 3/2 → 13/8 | freq:383.0422479 ]", "[ 3/2 → 13/8 | freq:290.2917404 ]", + "[ 3/2 → 13/8 | freq:264.6655079 ]", + "[ 3/2 → 13/8 | freq:352 ]", + "[ 13/8 → 7/4 | freq:440 ]", "[ 13/8 → 7/4 | freq:311.1269837 ]", + "[ 13/8 → 7/4 | freq:277.182631 ]", + "[ 13/8 → 7/4 | freq:440 ]", + "[ 7/4 → 15/8 | freq:505.4272762 ]", "[ 7/4 → 15/8 | freq:333.4576446 ]", + "[ 7/4 → 15/8 | freq:290.2917404 ]", + "[ 7/4 → 15/8 | freq:550 ]", + "[ 15/8 → 2/1 | freq:580.5834807 ]", "[ 15/8 → 2/1 | freq:357.3910544 ]", + "[ 15/8 → 2/1 | freq:304.0208336 ]", + "[ 15/8 → 2/1 | freq:586.6666667 ]", "[ 2/1 → 17/8 | freq:220 ]", + "[ 2/1 → 17/8 | freq:220 ]", + "[ 2/1 → 17/8 | freq:220 ]", + "[ 2/1 → 17/8 | freq:220 ]", + "[ 17/8 → 9/4 | freq:252.7136381 ]", + "[ 17/8 → 9/4 | freq:235.7901618 ]", "[ 17/8 → 9/4 | freq:230.404707 ]", + "[ 17/8 → 9/4 | freq:275 ]", + "[ 9/4 → 19/8 | freq:290.2917404 ]", + "[ 9/4 → 19/8 | freq:252.7136381 ]", "[ 9/4 → 19/8 | freq:241.3014955 ]", + "[ 9/4 → 19/8 | freq:293.3333333 ]", + "[ 19/8 → 5/2 | freq:333.4576446 ]", + "[ 19/8 → 5/2 | freq:270.8517709 ]", "[ 19/8 → 5/2 | freq:252.7136381 ]", + "[ 19/8 → 5/2 | freq:330 ]", + "[ 5/2 → 21/8 | freq:383.0422479 ]", + "[ 5/2 → 21/8 | freq:290.2917404 ]", "[ 5/2 → 21/8 | freq:264.6655079 ]", + "[ 5/2 → 21/8 | freq:352 ]", + "[ 21/8 → 11/4 | freq:440 ]", + "[ 21/8 → 11/4 | freq:311.1269837 ]", "[ 21/8 → 11/4 | freq:277.182631 ]", + "[ 21/8 → 11/4 | freq:440 ]", + "[ 11/4 → 23/8 | freq:505.4272762 ]", + "[ 11/4 → 23/8 | freq:333.4576446 ]", "[ 11/4 → 23/8 | freq:290.2917404 ]", + "[ 11/4 → 23/8 | freq:550 ]", + "[ 23/8 → 3/1 | freq:580.5834807 ]", + "[ 23/8 → 3/1 | freq:357.3910544 ]", "[ 23/8 → 3/1 | freq:304.0208336 ]", + "[ 23/8 → 3/1 | freq:586.6666667 ]", "[ 3/1 → 25/8 | freq:220 ]", + "[ 3/1 → 25/8 | freq:220 ]", + "[ 3/1 → 25/8 | freq:220 ]", + "[ 3/1 → 25/8 | freq:220 ]", + "[ 25/8 → 13/4 | freq:252.7136381 ]", + "[ 25/8 → 13/4 | freq:235.7901618 ]", + "[ 25/8 → 13/4 | freq:230.404707 ]", "[ 25/8 → 13/4 | freq:275 ]", + "[ 13/4 → 27/8 | freq:290.2917404 ]", + "[ 13/4 → 27/8 | freq:252.7136381 ]", + "[ 13/4 → 27/8 | freq:241.3014955 ]", "[ 13/4 → 27/8 | freq:293.3333333 ]", + "[ 27/8 → 7/2 | freq:333.4576446 ]", + "[ 27/8 → 7/2 | freq:270.8517709 ]", + "[ 27/8 → 7/2 | freq:252.7136381 ]", "[ 27/8 → 7/2 | freq:330 ]", + "[ 7/2 → 29/8 | freq:383.0422479 ]", + "[ 7/2 → 29/8 | freq:290.2917404 ]", + "[ 7/2 → 29/8 | freq:264.6655079 ]", "[ 7/2 → 29/8 | freq:352 ]", "[ 29/8 → 15/4 | freq:440 ]", + "[ 29/8 → 15/4 | freq:311.1269837 ]", + "[ 29/8 → 15/4 | freq:277.182631 ]", + "[ 29/8 → 15/4 | freq:440 ]", + "[ 15/4 → 31/8 | freq:505.4272762 ]", + "[ 15/4 → 31/8 | freq:333.4576446 ]", + "[ 15/4 → 31/8 | freq:290.2917404 ]", "[ 15/4 → 31/8 | freq:550 ]", + "[ 31/8 → 4/1 | freq:580.5834807 ]", + "[ 31/8 → 4/1 | freq:357.3910544 ]", + "[ 31/8 → 4/1 | freq:304.0208336 ]", "[ 31/8 → 4/1 | freq:586.6666667 ]", ] `;