format, snapshot

This commit is contained in:
tyow
2026-03-10 18:25:01 -04:00
parent f769b9c7a5
commit 25bf6856ae
2 changed files with 349 additions and 114 deletions
+25 -73
View File
@@ -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,
+324 -41
View File
@@ -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 ]",
]
`;