Merge pull request #978 from daslyfe/oscillator_enhancements

supersaw oscillator
This commit is contained in:
Felix Roos 2024-03-21 22:53:55 +01:00 committed by GitHub
commit a46bd9b36e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 533 additions and 806 deletions

View File

@ -895,17 +895,37 @@ export const { delaytime, delayt, dt } = registerControl('delaytime', 'delayt',
*/
export const { lock } = registerControl('lock');
/**
* Set detune of oscillators. Works only with some synths, see <a target="_blank" href="https://tidalcycles.org/docs/patternlib/tutorials/synthesizers">tidal doc</a>
* Set detune for stacked voices of supported oscillators
*
* @name detune
* @param {number | Pattern} amount between 0 and 1
* @param {number | Pattern} amount
* @synonyms det
* @superdirtOnly
* @example
* n("0 3 7").s('superzow').octave(3).detune("<0 .25 .5 1 2>").osc()
* note("d f a a# a d3").fast(2).s("supersaw").detune("<.1 .2 .5 24.1>")
*
*/
export const { detune, det } = registerControl('detune', 'det');
/**
* Set number of stacked voices for supported oscillators
*
* @name unison
* @param {number | Pattern} numvoices
* @example
* note("d f a a# a d3").fast(2).s("supersaw").unison("<1 2 7>")
*
*/
export const { unison } = registerControl('unison');
/**
* Set the stereo pan spread for supported oscillators
*
* @name spread
* @param {number | Pattern} spread between 0 and 1
* @example
* note("d f a a# a d3").fast(2).s("supersaw").spread("<0 .3 1>")
*
*/
export const { spread } = registerControl('spread');
/**
* Set dryness of reverb. See `room` and `size` for more information about reverb.
*

View File

@ -186,3 +186,76 @@ export function getVibratoOscillator(param, value, t) {
return vibratoOscillator;
}
}
// ConstantSource inherits AudioScheduledSourceNode, which has scheduling abilities
// a bit of a hack, but it works very well :)
export function webAudioTimeout(audioContext, onComplete, startTime, stopTime) {
const constantNode = audioContext.createConstantSource();
constantNode.start(startTime);
constantNode.stop(stopTime);
constantNode.onended = () => {
onComplete();
};
}
const mod = (freq, range = 1, type = 'sine') => {
const ctx = getAudioContext();
const osc = ctx.createOscillator();
osc.type = type;
osc.frequency.value = freq;
osc.start();
const g = new GainNode(ctx, { gain: range });
osc.connect(g); // -range, range
return { node: g, stop: (t) => osc.stop(t) };
};
const fm = (frequencyparam, harmonicityRatio, modulationIndex, wave = 'sine') => {
const carrfreq = frequencyparam.value;
const modfreq = carrfreq * harmonicityRatio;
const modgain = modfreq * modulationIndex;
return mod(modfreq, modgain, wave);
};
export function applyFM(param, value, begin) {
const {
fmh: fmHarmonicity = 1,
fmi: fmModulationIndex,
fmenv: fmEnvelopeType = 'exp',
fmattack: fmAttack,
fmdecay: fmDecay,
fmsustain: fmSustain,
fmrelease: fmRelease,
fmvelocity: fmVelocity,
fmwave: fmWaveform = 'sine',
duration,
} = value;
let modulator;
let stop = () => {};
if (fmModulationIndex) {
const ac = getAudioContext();
const envGain = ac.createGain();
const fmmod = fm(param, fmHarmonicity, fmModulationIndex, fmWaveform);
modulator = fmmod.node;
stop = fmmod.stop;
if (![fmAttack, fmDecay, fmSustain, fmRelease, fmVelocity].find((v) => v !== undefined)) {
// no envelope by default
modulator.connect(param);
} else {
const [attack, decay, sustain, release] = getADSRValues([fmAttack, fmDecay, fmSustain, fmRelease]);
const holdEnd = begin + duration;
getParamADSR(
envGain.gain,
attack,
decay,
sustain,
release,
0,
1,
begin,
holdEnd,
fmEnvelopeType === 'exp' ? 'exponential' : 'linear',
);
modulator.connect(envGain);
envGain.connect(param);
}
}
return { stop };
}

View File

@ -50,8 +50,8 @@ function loadWorklets() {
return workletsLoading;
}
function getWorklet(ac, processor, params) {
const node = new AudioWorkletNode(ac, processor);
export function getWorklet(ac, processor, params, config) {
const node = new AudioWorkletNode(ac, processor, config);
Object.entries(params).forEach(([key, value]) => {
node.parameters.get(key).value = value;
});

View File

@ -1,31 +1,138 @@
import { midiToFreq, noteToMidi } from './util.mjs';
import { registerSound, getAudioContext } from './superdough.mjs';
import { gainNode, getADSRValues, getParamADSR, getPitchEnvelope, getVibratoOscillator } from './helpers.mjs';
import { clamp, midiToFreq, noteToMidi } from './util.mjs';
import { registerSound, getAudioContext, getWorklet } from './superdough.mjs';
import {
applyFM,
gainNode,
getADSRValues,
getParamADSR,
getPitchEnvelope,
getVibratoOscillator,
webAudioTimeout,
} from './helpers.mjs';
import { getNoiseMix, getNoiseOscillator } from './noise.mjs';
const mod = (freq, range = 1, type = 'sine') => {
const ctx = getAudioContext();
const osc = ctx.createOscillator();
osc.type = type;
osc.frequency.value = freq;
osc.start();
const g = new GainNode(ctx, { gain: range });
osc.connect(g); // -range, range
return { node: g, stop: (t) => osc.stop(t) };
const getFrequencyFromValue = (value) => {
let { note, freq } = value;
note = note || 36;
if (typeof note === 'string') {
note = noteToMidi(note); // e.g. c3 => 48
}
// get frequency
if (!freq && typeof note === 'number') {
freq = midiToFreq(note); // + 48);
}
return Number(freq);
};
const fm = (osc, harmonicityRatio, modulationIndex, wave = 'sine') => {
const carrfreq = osc.frequency.value;
const modfreq = carrfreq * harmonicityRatio;
const modgain = modfreq * modulationIndex;
return mod(modfreq, modgain, wave);
};
const waveforms = ['sine', 'square', 'triangle', 'sawtooth'];
const waveforms = ['triangle', 'square', 'sawtooth', 'sine'];
const noises = ['pink', 'white', 'brown', 'crackle'];
export function registerSynthSounds() {
[...waveforms, ...noises].forEach((s) => {
[...waveforms].forEach((s) => {
registerSound(
s,
(t, value, onended) => {
const [attack, decay, sustain, release] = getADSRValues(
[value.attack, value.decay, value.sustain, value.release],
'linear',
[0.001, 0.05, 0.6, 0.01],
);
let sound = getOscillator(s, t, value);
let { node: o, stop, triggerRelease } = sound;
// turn down
const g = gainNode(0.3);
const { duration } = value;
o.onended = () => {
o.disconnect();
g.disconnect();
onended();
};
const envGain = gainNode(1);
let node = o.connect(g).connect(envGain);
const holdEnd = t + duration;
getParamADSR(node.gain, attack, decay, sustain, release, 0, 1, t, holdEnd, 'linear');
const envEnd = holdEnd + release + 0.01;
triggerRelease?.(envEnd);
stop(envEnd);
return {
node,
stop: (releaseTime) => {},
};
},
{ type: 'synth', prebake: true },
);
});
registerSound(
'supersaw',
(begin, value, onended) => {
const ac = getAudioContext();
let { duration, n, unison = 5, spread = 0.6, detune } = value;
detune = detune ?? n ?? 0.18;
const frequency = getFrequencyFromValue(value);
const [attack, decay, sustain, release] = getADSRValues(
[value.attack, value.decay, value.sustain, value.release],
'linear',
[0.001, 0.05, 0.6, 0.01],
);
const holdend = begin + duration;
const end = holdend + release + 0.01;
const voices = clamp(unison, 1, 100);
let panspread = voices > 1 ? clamp(spread, 0, 1) : 0;
let o = getWorklet(
ac,
'supersaw-oscillator',
{
frequency,
begin,
end,
freqspread: detune,
voices,
panspread,
},
{
outputChannelCount: [2],
},
);
const gainAdjustment = 1 / Math.sqrt(voices);
getPitchEnvelope(o.parameters.get('detune'), value, begin, holdend);
const vibratoOscillator = getVibratoOscillator(o.parameters.get('detune'), value, begin);
const fm = applyFM(o.parameters.get('frequency'), value, begin);
let envGain = gainNode(1);
envGain = o.connect(envGain);
webAudioTimeout(
ac,
() => {
o.disconnect();
envGain.disconnect();
onended();
fm?.stop();
vibratoOscillator?.stop();
},
begin,
end,
);
getParamADSR(envGain.gain, attack, decay, sustain, release, 0, 0.3 * gainAdjustment, begin, holdend, 'linear');
return {
node: envGain,
stop: (time) => {},
};
},
{ prebake: true, type: 'synth' },
);
[...noises].forEach((s) => {
registerSound(
s,
(t, value, onended) => {
@ -36,12 +143,9 @@ export function registerSynthSounds() {
);
let sound;
if (waveforms.includes(s)) {
sound = getOscillator(s, t, value);
} else {
let { density } = value;
sound = getNoiseOscillator(s, t, density);
}
let { density } = value;
sound = getNoiseOscillator(s, t, density);
let { node: o, stop, triggerRelease } = sound;
@ -106,24 +210,7 @@ export function waveformN(partials, type) {
// expects one of waveforms as s
export function getOscillator(s, t, value) {
let {
n: partials,
note,
freq,
noise = 0,
// fm
fmh: fmHarmonicity = 1,
fmi: fmModulationIndex,
fmenv: fmEnvelopeType = 'exp',
fmattack: fmAttack,
fmdecay: fmDecay,
fmsustain: fmSustain,
fmrelease: fmRelease,
fmvelocity: fmVelocity,
fmwave: fmWaveform = 'sine',
duration,
} = value;
let ac = getAudioContext();
let { n: partials, duration, noise = 0 } = value;
let o;
// If no partials are given, use stock waveforms
if (!partials || s === 'sine') {
@ -134,55 +221,15 @@ export function getOscillator(s, t, value) {
else {
o = waveformN(partials, s);
}
// get frequency from note...
note = note || 36;
if (typeof note === 'string') {
note = noteToMidi(note); // e.g. c3 => 48
}
// get frequency
if (!freq && typeof note === 'number') {
freq = midiToFreq(note); // + 48);
}
// set frequency
o.frequency.value = Number(freq);
o.frequency.value = getFrequencyFromValue(value);
o.start(t);
// FM
let stopFm;
let envGain = ac.createGain();
if (fmModulationIndex) {
const { node: modulator, stop } = fm(o, fmHarmonicity, fmModulationIndex, fmWaveform);
if (![fmAttack, fmDecay, fmSustain, fmRelease, fmVelocity].find((v) => v !== undefined)) {
// no envelope by default
modulator.connect(o.frequency);
} else {
const [attack, decay, sustain, release] = getADSRValues([fmAttack, fmDecay, fmSustain, fmRelease]);
const holdEnd = t + duration;
getParamADSR(
envGain.gain,
attack,
decay,
sustain,
release,
0,
1,
t,
holdEnd,
fmEnvelopeType === 'exp' ? 'exponential' : 'linear',
);
modulator.connect(envGain);
envGain.connect(o.frequency);
}
stopFm = stop;
}
// Additional oscillator for vibrato effect
let vibratoOscillator = getVibratoOscillator(o.detune, value, t);
// pitch envelope
getPitchEnvelope(o.detune, value, t, t + duration);
const fmModulator = applyFM(o.frequency, value, t);
let noiseMix;
if (noise) {
@ -192,9 +239,9 @@ export function getOscillator(s, t, value) {
return {
node: noiseMix?.node || o,
stop: (time) => {
fmModulator.stop(time);
vibratoOscillator?.stop(time);
noiseMix?.stop(time);
stopFm?.(time);
o.stop(time);
},
triggerRelease: (time) => {

View File

@ -129,3 +129,148 @@ class DistortProcessor extends AudioWorkletProcessor {
}
}
registerProcessor('distort-processor', DistortProcessor);
// adjust waveshape to remove frequencies above nyquist to prevent aliasing
// referenced from https://www.kvraudio.com/forum/viewtopic.php?t=375517
const polyBlep = (phase, dt) => {
// 0 <= phase < 1
if (phase < dt) {
phase /= dt;
// 2 * (phase - phase^2/2 - 0.5)
return phase + phase - phase * phase - 1;
}
// -1 < phase < 0
else if (phase > 1 - dt) {
phase = (phase - 1) / dt;
// 2 * (phase^2/2 + phase + 0.5)
return phase * phase + phase + phase + 1;
}
// 0 otherwise
else {
return 0;
}
};
const saw = (phase, dt) => {
const v = 2 * phase - 1;
return v - polyBlep(phase, dt);
};
function lerp(a, b, n) {
return n * (b - a) + a;
}
function getUnisonDetune(unison, detune, voiceIndex) {
if (unison < 2) {
return 0;
}
return lerp(-detune * 0.5, detune * 0.5, voiceIndex / (unison - 1));
}
class SuperSawOscillatorProcessor extends AudioWorkletProcessor {
constructor() {
super();
this.phase = [];
}
static get parameterDescriptors() {
return [
{
name: 'begin',
defaultValue: 0,
max: Number.POSITIVE_INFINITY,
min: 0,
},
{
name: 'end',
defaultValue: 0,
max: Number.POSITIVE_INFINITY,
min: 0,
},
{
name: 'frequency',
defaultValue: 440,
min: Number.EPSILON,
},
{
name: 'panspread',
defaultValue: 0.4,
min: 0,
max: 1,
},
{
name: 'freqspread',
defaultValue: 0.2,
min: 0,
},
{
name: 'detune',
defaultValue: 0,
min: 0,
},
{
name: 'voices',
defaultValue: 5,
min: 1,
},
];
}
process(input, outputs, params) {
// eslint-disable-next-line no-undef
if (currentTime <= params.begin[0]) {
return true;
}
// eslint-disable-next-line no-undef
if (currentTime >= params.end[0]) {
// this.port.postMessage({ type: 'onended' });
return false;
}
let frequency = params.frequency[0];
//apply detune in cents
frequency = frequency * Math.pow(2, params.detune[0] / 1200);
const output = outputs[0];
const voices = params.voices[0];
const freqspread = params.freqspread[0];
const panspread = params.panspread[0] * 0.5 + 0.5;
const gain1 = Math.sqrt(1 - panspread);
const gain2 = Math.sqrt(panspread);
for (let n = 0; n < voices; n++) {
const isOdd = (n & 1) == 1;
//applies unison "spread" detune in semitones
const freq = frequency * Math.pow(2, getUnisonDetune(voices, freqspread, n) / 12);
let gainL = gain1;
let gainR = gain2;
// invert right and left gain
if (isOdd) {
gainL = gain2;
gainR = gain1;
}
// eslint-disable-next-line no-undef
const dt = freq / sampleRate;
for (let i = 0; i < output[0].length; i++) {
this.phase[n] = this.phase[n] ?? Math.random();
const v = saw(this.phase[n], dt);
output[0][i] = output[0][i] + v * gainL;
output[1][i] = output[1][i] + v * gainR;
this.phase[n] += dt;
if (this.phase[n] > 1.0) {
this.phase[n] = this.phase[n] - 1;
}
}
}
return true;
}
}
registerProcessor('supersaw-oscillator', SuperSawOscillatorProcessor);

View File

@ -1939,18 +1939,54 @@ exports[`runs examples > example "delaytime" example index 0 1`] = `
exports[`runs examples > example "detune" example index 0 1`] = `
[
"[ 0/1 → 1/3 | n:0 s:superzow octave:3 detune:0 ]",
"[ 1/3 → 2/3 | n:3 s:superzow octave:3 detune:0 ]",
"[ 2/3 → 1/1 | n:7 s:superzow octave:3 detune:0 ]",
"[ 1/1 → 4/3 | n:0 s:superzow octave:3 detune:0.25 ]",
"[ 4/3 → 5/3 | n:3 s:superzow octave:3 detune:0.25 ]",
"[ 5/3 → 2/1 | n:7 s:superzow octave:3 detune:0.25 ]",
"[ 2/1 → 7/3 | n:0 s:superzow octave:3 detune:0.5 ]",
"[ 7/3 → 8/3 | n:3 s:superzow octave:3 detune:0.5 ]",
"[ 8/3 → 3/1 | n:7 s:superzow octave:3 detune:0.5 ]",
"[ 3/1 → 10/3 | n:0 s:superzow octave:3 detune:1 ]",
"[ 10/3 → 11/3 | n:3 s:superzow octave:3 detune:1 ]",
"[ 11/3 → 4/1 | n:7 s:superzow octave:3 detune:1 ]",
"[ 0/1 → 1/12 | note:d s:supersaw detune:0.1 ]",
"[ 1/12 → 1/6 | note:f s:supersaw detune:0.1 ]",
"[ 1/6 → 1/4 | note:a s:supersaw detune:0.1 ]",
"[ 1/4 → 1/3 | note:a# s:supersaw detune:0.1 ]",
"[ 1/3 → 5/12 | note:a s:supersaw detune:0.1 ]",
"[ 5/12 → 1/2 | note:d3 s:supersaw detune:0.1 ]",
"[ 1/2 → 7/12 | note:d s:supersaw detune:0.1 ]",
"[ 7/12 → 2/3 | note:f s:supersaw detune:0.1 ]",
"[ 2/3 → 3/4 | note:a s:supersaw detune:0.1 ]",
"[ 3/4 → 5/6 | note:a# s:supersaw detune:0.1 ]",
"[ 5/6 → 11/12 | note:a s:supersaw detune:0.1 ]",
"[ 11/12 → 1/1 | note:d3 s:supersaw detune:0.1 ]",
"[ 1/1 → 13/12 | note:d s:supersaw detune:0.2 ]",
"[ 13/12 → 7/6 | note:f s:supersaw detune:0.2 ]",
"[ 7/6 → 5/4 | note:a s:supersaw detune:0.2 ]",
"[ 5/4 → 4/3 | note:a# s:supersaw detune:0.2 ]",
"[ 4/3 → 17/12 | note:a s:supersaw detune:0.2 ]",
"[ 17/12 → 3/2 | note:d3 s:supersaw detune:0.2 ]",
"[ 3/2 → 19/12 | note:d s:supersaw detune:0.2 ]",
"[ 19/12 → 5/3 | note:f s:supersaw detune:0.2 ]",
"[ 5/3 → 7/4 | note:a s:supersaw detune:0.2 ]",
"[ 7/4 → 11/6 | note:a# s:supersaw detune:0.2 ]",
"[ 11/6 → 23/12 | note:a s:supersaw detune:0.2 ]",
"[ 23/12 → 2/1 | note:d3 s:supersaw detune:0.2 ]",
"[ 2/1 → 25/12 | note:d s:supersaw detune:0.5 ]",
"[ 25/12 → 13/6 | note:f s:supersaw detune:0.5 ]",
"[ 13/6 → 9/4 | note:a s:supersaw detune:0.5 ]",
"[ 9/4 → 7/3 | note:a# s:supersaw detune:0.5 ]",
"[ 7/3 → 29/12 | note:a s:supersaw detune:0.5 ]",
"[ 29/12 → 5/2 | note:d3 s:supersaw detune:0.5 ]",
"[ 5/2 → 31/12 | note:d s:supersaw detune:0.5 ]",
"[ 31/12 → 8/3 | note:f s:supersaw detune:0.5 ]",
"[ 8/3 → 11/4 | note:a s:supersaw detune:0.5 ]",
"[ 11/4 → 17/6 | note:a# s:supersaw detune:0.5 ]",
"[ 17/6 → 35/12 | note:a s:supersaw detune:0.5 ]",
"[ 35/12 → 3/1 | note:d3 s:supersaw detune:0.5 ]",
"[ 3/1 → 37/12 | note:d s:supersaw detune:24.1 ]",
"[ 37/12 → 19/6 | note:f s:supersaw detune:24.1 ]",
"[ 19/6 → 13/4 | note:a s:supersaw detune:24.1 ]",
"[ 13/4 → 10/3 | note:a# s:supersaw detune:24.1 ]",
"[ 10/3 → 41/12 | note:a s:supersaw detune:24.1 ]",
"[ 41/12 → 7/2 | note:d3 s:supersaw detune:24.1 ]",
"[ 7/2 → 43/12 | note:d s:supersaw detune:24.1 ]",
"[ 43/12 → 11/3 | note:f s:supersaw detune:24.1 ]",
"[ 11/3 → 15/4 | note:a s:supersaw detune:24.1 ]",
"[ 15/4 → 23/6 | note:a# s:supersaw detune:24.1 ]",
"[ 23/6 → 47/12 | note:a s:supersaw detune:24.1 ]",
"[ 47/12 → 4/1 | note:d3 s:supersaw detune:24.1 ]",
]
`;
@ -6806,6 +6842,59 @@ exports[`runs examples > example "splice" example index 0 1`] = `
]
`;
exports[`runs examples > example "spread" example index 0 1`] = `
[
"[ 0/1 → 1/12 | note:d s:supersaw spread:0 ]",
"[ 1/12 → 1/6 | note:f s:supersaw spread:0 ]",
"[ 1/6 → 1/4 | note:a s:supersaw spread:0 ]",
"[ 1/4 → 1/3 | note:a# s:supersaw spread:0 ]",
"[ 1/3 → 5/12 | note:a s:supersaw spread:0 ]",
"[ 5/12 → 1/2 | note:d3 s:supersaw spread:0 ]",
"[ 1/2 → 7/12 | note:d s:supersaw spread:0 ]",
"[ 7/12 → 2/3 | note:f s:supersaw spread:0 ]",
"[ 2/3 → 3/4 | note:a s:supersaw spread:0 ]",
"[ 3/4 → 5/6 | note:a# s:supersaw spread:0 ]",
"[ 5/6 → 11/12 | note:a s:supersaw spread:0 ]",
"[ 11/12 → 1/1 | note:d3 s:supersaw spread:0 ]",
"[ 1/1 → 13/12 | note:d s:supersaw spread:0.3 ]",
"[ 13/12 → 7/6 | note:f s:supersaw spread:0.3 ]",
"[ 7/6 → 5/4 | note:a s:supersaw spread:0.3 ]",
"[ 5/4 → 4/3 | note:a# s:supersaw spread:0.3 ]",
"[ 4/3 → 17/12 | note:a s:supersaw spread:0.3 ]",
"[ 17/12 → 3/2 | note:d3 s:supersaw spread:0.3 ]",
"[ 3/2 → 19/12 | note:d s:supersaw spread:0.3 ]",
"[ 19/12 → 5/3 | note:f s:supersaw spread:0.3 ]",
"[ 5/3 → 7/4 | note:a s:supersaw spread:0.3 ]",
"[ 7/4 → 11/6 | note:a# s:supersaw spread:0.3 ]",
"[ 11/6 → 23/12 | note:a s:supersaw spread:0.3 ]",
"[ 23/12 → 2/1 | note:d3 s:supersaw spread:0.3 ]",
"[ 2/1 → 25/12 | note:d s:supersaw spread:1 ]",
"[ 25/12 → 13/6 | note:f s:supersaw spread:1 ]",
"[ 13/6 → 9/4 | note:a s:supersaw spread:1 ]",
"[ 9/4 → 7/3 | note:a# s:supersaw spread:1 ]",
"[ 7/3 → 29/12 | note:a s:supersaw spread:1 ]",
"[ 29/12 → 5/2 | note:d3 s:supersaw spread:1 ]",
"[ 5/2 → 31/12 | note:d s:supersaw spread:1 ]",
"[ 31/12 → 8/3 | note:f s:supersaw spread:1 ]",
"[ 8/3 → 11/4 | note:a s:supersaw spread:1 ]",
"[ 11/4 → 17/6 | note:a# s:supersaw spread:1 ]",
"[ 17/6 → 35/12 | note:a s:supersaw spread:1 ]",
"[ 35/12 → 3/1 | note:d3 s:supersaw spread:1 ]",
"[ 3/1 → 37/12 | note:d s:supersaw spread:0 ]",
"[ 37/12 → 19/6 | note:f s:supersaw spread:0 ]",
"[ 19/6 → 13/4 | note:a s:supersaw spread:0 ]",
"[ 13/4 → 10/3 | note:a# s:supersaw spread:0 ]",
"[ 10/3 → 41/12 | note:a s:supersaw spread:0 ]",
"[ 41/12 → 7/2 | note:d3 s:supersaw spread:0 ]",
"[ 7/2 → 43/12 | note:d s:supersaw spread:0 ]",
"[ 43/12 → 11/3 | note:f s:supersaw spread:0 ]",
"[ 11/3 → 15/4 | note:a s:supersaw spread:0 ]",
"[ 15/4 → 23/6 | note:a# s:supersaw spread:0 ]",
"[ 23/6 → 47/12 | note:a s:supersaw spread:0 ]",
"[ 47/12 → 4/1 | note:d3 s:supersaw spread:0 ]",
]
`;
exports[`runs examples > example "square" example index 0 1`] = `
[
"[ 0/1 → 1/4 | note:C3 ]",
@ -7267,6 +7356,59 @@ exports[`runs examples > example "undegradeBy" example index 0 1`] = `
]
`;
exports[`runs examples > example "unison" example index 0 1`] = `
[
"[ 0/1 → 1/12 | note:d s:supersaw unison:1 ]",
"[ 1/12 → 1/6 | note:f s:supersaw unison:1 ]",
"[ 1/6 → 1/4 | note:a s:supersaw unison:1 ]",
"[ 1/4 → 1/3 | note:a# s:supersaw unison:1 ]",
"[ 1/3 → 5/12 | note:a s:supersaw unison:1 ]",
"[ 5/12 → 1/2 | note:d3 s:supersaw unison:1 ]",
"[ 1/2 → 7/12 | note:d s:supersaw unison:1 ]",
"[ 7/12 → 2/3 | note:f s:supersaw unison:1 ]",
"[ 2/3 → 3/4 | note:a s:supersaw unison:1 ]",
"[ 3/4 → 5/6 | note:a# s:supersaw unison:1 ]",
"[ 5/6 → 11/12 | note:a s:supersaw unison:1 ]",
"[ 11/12 → 1/1 | note:d3 s:supersaw unison:1 ]",
"[ 1/1 → 13/12 | note:d s:supersaw unison:2 ]",
"[ 13/12 → 7/6 | note:f s:supersaw unison:2 ]",
"[ 7/6 → 5/4 | note:a s:supersaw unison:2 ]",
"[ 5/4 → 4/3 | note:a# s:supersaw unison:2 ]",
"[ 4/3 → 17/12 | note:a s:supersaw unison:2 ]",
"[ 17/12 → 3/2 | note:d3 s:supersaw unison:2 ]",
"[ 3/2 → 19/12 | note:d s:supersaw unison:2 ]",
"[ 19/12 → 5/3 | note:f s:supersaw unison:2 ]",
"[ 5/3 → 7/4 | note:a s:supersaw unison:2 ]",
"[ 7/4 → 11/6 | note:a# s:supersaw unison:2 ]",
"[ 11/6 → 23/12 | note:a s:supersaw unison:2 ]",
"[ 23/12 → 2/1 | note:d3 s:supersaw unison:2 ]",
"[ 2/1 → 25/12 | note:d s:supersaw unison:7 ]",
"[ 25/12 → 13/6 | note:f s:supersaw unison:7 ]",
"[ 13/6 → 9/4 | note:a s:supersaw unison:7 ]",
"[ 9/4 → 7/3 | note:a# s:supersaw unison:7 ]",
"[ 7/3 → 29/12 | note:a s:supersaw unison:7 ]",
"[ 29/12 → 5/2 | note:d3 s:supersaw unison:7 ]",
"[ 5/2 → 31/12 | note:d s:supersaw unison:7 ]",
"[ 31/12 → 8/3 | note:f s:supersaw unison:7 ]",
"[ 8/3 → 11/4 | note:a s:supersaw unison:7 ]",
"[ 11/4 → 17/6 | note:a# s:supersaw unison:7 ]",
"[ 17/6 → 35/12 | note:a s:supersaw unison:7 ]",
"[ 35/12 → 3/1 | note:d3 s:supersaw unison:7 ]",
"[ 3/1 → 37/12 | note:d s:supersaw unison:1 ]",
"[ 37/12 → 19/6 | note:f s:supersaw unison:1 ]",
"[ 19/6 → 13/4 | note:a s:supersaw unison:1 ]",
"[ 13/4 → 10/3 | note:a# s:supersaw unison:1 ]",
"[ 10/3 → 41/12 | note:a s:supersaw unison:1 ]",
"[ 41/12 → 7/2 | note:d3 s:supersaw unison:1 ]",
"[ 7/2 → 43/12 | note:d s:supersaw unison:1 ]",
"[ 43/12 → 11/3 | note:f s:supersaw unison:1 ]",
"[ 11/3 → 15/4 | note:a s:supersaw unison:1 ]",
"[ 15/4 → 23/6 | note:a# s:supersaw unison:1 ]",
"[ 23/6 → 47/12 | note:a s:supersaw unison:1 ]",
"[ 47/12 → 4/1 | note:d3 s:supersaw unison:1 ]",
]
`;
exports[`runs examples > example "unit" example index 0 1`] = `
[
"[ 0/1 → 1/4 | speed:1 s:bd unit:c ]",

View File

@ -7208,653 +7208,6 @@ exports[`renders tunes > tune: holyflute 1`] = `
]
`;
exports[`renders tunes > tune: hyperpop 1`] = `
[
"[ -1/4 ⇜ (0/1 → 1/12) ⇝ 1/8 | gain:0.00024394233952886464 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5999.785818935017 cutoff:4000 ]",
"[ -1/4 ⇜ (0/1 → 1/12) ⇝ 1/8 | gain:0.00024394233952886464 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5999.785818935017 cutoff:4000 ]",
"[ -3/8 ⇜ (0/1 → 1/8) | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:1616.8693414940683 ]",
"[ -3/8 ⇜ (0/1 → 1/8) | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:1616.8693414940683 ]",
"[ -1/8 ⇜ (0/1 → 1/6) ⇝ 1/4 | gain:0.00031404209523161047 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5999.785818935017 cutoff:4000 ]",
"[ -1/8 ⇜ (0/1 → 1/6) ⇝ 1/4 | gain:0.00031404209523161047 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5999.785818935017 cutoff:4000 ]",
"[ -1/4 ⇜ (0/1 → 1/4) | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:1650 ]",
"[ -1/4 ⇜ (0/1 → 1/4) | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:1650 ]",
"[ 0/1 → 1/4 | gain:0.00039824554453003064 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5999.143312438893 cutoff:4000 ]",
"[ 0/1 → 1/4 | gain:0.00039824554453003064 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5999.143312438893 cutoff:4000 ]",
"[ 0/1 → 1/4 | s:bd gain:0.7 ]",
"[ (0/1 → 1/3) ⇝ 3/8 | gain:0.26103468453995016 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5998.072590601808 cutoff:4000 ]",
"[ (0/1 → 1/3) ⇝ 3/8 | gain:0.26103468453995016 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5998.072590601808 cutoff:4000 ]",
"[ -1/8 ⇜ (0/1 → 3/8) | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:1683.1306585059317 ]",
"[ -1/8 ⇜ (0/1 → 3/8) | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:1683.1306585059317 ]",
"[ -1/4 ⇜ (1/12 → 1/8) | gain:0.00024394233952886464 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5999.785818935017 cutoff:4000 ]",
"[ -1/4 ⇜ (1/12 → 1/8) | gain:0.00024394233952886464 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5999.785818935017 cutoff:4000 ]",
"[ 1/8 → 1/4 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1699.6897509708342 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 1/8 → 1/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1699.6897509708342 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (1/8 → 5/12) ⇝ 1/2 | gain:0.0002657724569848846 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5994.647308096509 cutoff:4000 ]",
"[ (1/8 → 5/12) ⇝ 1/2 | gain:0.0002657724569848846 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5994.647308096509 cutoff:4000 ]",
"[ -1/8 ⇜ (1/6 → 1/4) | gain:0.00031404209523161047 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5999.785818935017 cutoff:4000 ]",
"[ -1/8 ⇜ (1/6 → 1/4) | gain:0.00031404209523161047 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5999.785818935017 cutoff:4000 ]",
"[ 1/4 → 1/2 | gain:0.0003367315392180906 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5992.29333433282 cutoff:4000 ]",
"[ 1/4 → 1/2 | gain:0.0003367315392180906 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5992.29333433282 cutoff:4000 ]",
"[ 1/4 → 1/2 | s:hh3 gain:0.7 ]",
"[ (1/4 → 7/12) ⇝ 5/8 | gain:0.2205154266512362 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5989.512318936654 cutoff:4000 ]",
"[ (1/4 → 7/12) ⇝ 5/8 | gain:0.2205154266512362 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5989.512318936654 cutoff:4000 ]",
"[ 0/1 ⇜ (1/3 → 3/8) | gain:0.26103468453995016 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5998.072590601808 cutoff:4000 ]",
"[ 0/1 ⇜ (1/3 → 3/8) | gain:0.26103468453995016 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5998.072590601808 cutoff:4000 ]",
"[ 3/8 → 1/2 | note:D2 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1765.826371664994 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 3/8 → 1/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1765.826371664994 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (3/8 → 2/3) ⇝ 3/4 | gain:0.2828651860235305 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5982.671142387316 cutoff:4000 ]",
"[ (3/8 → 2/3) ⇝ 3/4 | gain:0.2828651860235305 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5982.671142387316 cutoff:4000 ]",
"[ 1/8 ⇜ (5/12 → 1/2) | gain:0.0002657724569848846 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5994.647308096509 cutoff:4000 ]",
"[ 1/8 ⇜ (5/12 → 1/2) | gain:0.0002657724569848846 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5994.647308096509 cutoff:4000 ]",
"[ 1/2 → 5/8 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1798.799979846742 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 1/2 → 5/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1798.799979846742 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 1/2 → 3/4 | gain:0.0002836833950716784 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5978.612153434527 cutoff:4000 ]",
"[ 1/2 → 3/4 | gain:0.0002836833950716784 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5978.612153434527 cutoff:4000 ]",
"[ 1/2 → 3/4 | s:bd gain:0.7 ]",
"[ (1/2 → 5/6) ⇝ 7/8 | gain:0.18560442471759028 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5974.128467049176 cutoff:4000 ]",
"[ (1/2 → 5/6) ⇝ 7/8 | gain:0.18560442471759028 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5974.128467049176 cutoff:4000 ]",
"[ 1/2 → 1/1 | s:sn gain:0.7 ]",
"[ 1/4 ⇜ (7/12 → 5/8) | gain:0.2205154266512362 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5989.512318936654 cutoff:4000 ]",
"[ 1/4 ⇜ (7/12 → 5/8) | gain:0.2205154266512362 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5989.512318936654 cutoff:4000 ]",
"[ (5/8 → 11/12) ⇝ 1/1 | gain:0.237641808847867 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5963.890147645195 cutoff:4000 ]",
"[ (5/8 → 11/12) ⇝ 1/1 | gain:0.237641808847867 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5963.890147645195 cutoff:4000 ]",
"[ 3/8 ⇜ (2/3 → 3/4) | gain:0.2828651860235305 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5982.671142387316 cutoff:4000 ]",
"[ 3/8 ⇜ (2/3 → 3/4) | gain:0.2828651860235305 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5982.671142387316 cutoff:4000 ]",
"[ 3/4 → 7/8 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1864.4584935007128 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 3/4 → 7/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1864.4584935007128 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 3/4 → 1/1 | gain:0.300533478008833 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5958.137268909887 cutoff:4000 ]",
"[ 3/4 → 1/1 | gain:0.300533478008833 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5958.137268909887 cutoff:4000 ]",
"[ 3/4 → 1/1 | s:hh3 gain:0.7 ]",
"[ (3/4 → 13/12) ⇝ 9/8 | gain:0.15563993880588714 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5951.963201008076 cutoff:4000 ]",
"[ (3/4 → 13/12) ⇝ 9/8 | gain:0.15563993880588714 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5951.963201008076 cutoff:4000 ]",
"[ 1/2 ⇜ (5/6 → 7/8) | gain:0.18560442471759028 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5974.128467049176 cutoff:4000 ]",
"[ 1/2 ⇜ (5/6 → 7/8) | gain:0.18560442471759028 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5974.128467049176 cutoff:4000 ]",
"[ 7/8 → 1/1 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1897.1038487394403 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 7/8 → 1/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1897.1038487394403 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (7/8 → 7/6) ⇝ 5/4 | gain:0.1989031661444791 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5938.355801271282 cutoff:4000 ]",
"[ (7/8 → 7/6) ⇝ 5/4 | gain:0.1989031661444791 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5938.355801271282 cutoff:4000 ]",
"[ 5/8 ⇜ (11/12 → 1/1) | gain:0.237641808847867 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5963.890147645195 cutoff:4000 ]",
"[ 5/8 ⇜ (11/12 → 1/1) | gain:0.237641808847867 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5963.890147645195 cutoff:4000 ]",
"[ 1/1 → 5/4 | gain:0.2513066112116339 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5930.924800994192 cutoff:4000 ]",
"[ 1/1 → 5/4 | gain:0.2513066112116339 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5930.924800994192 cutoff:4000 ]",
"[ 1/1 → 5/4 | s:bd gain:0.7 ]",
"[ (1/1 → 4/3) ⇝ 11/8 | gain:0.13002412009397907 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5923.077274266886 cutoff:4000 ]",
"[ (1/1 → 4/3) ⇝ 11/8 | gain:0.13002412009397907 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5923.077274266886 cutoff:4000 ]",
"[ 3/4 ⇜ (13/12 → 9/8) | gain:0.15563993880588714 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5951.963201008076 cutoff:4000 ]",
"[ 3/4 ⇜ (13/12 → 9/8) | gain:0.15563993880588714 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5951.963201008076 cutoff:4000 ]",
"[ 9/8 → 5/4 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1961.928446178906 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 9/8 → 5/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1961.928446178906 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (9/8 → 17/12) ⇝ 3/2 | gain:0.16585458116324744 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5906.1380911341175 cutoff:4000 ]",
"[ (9/8 → 17/12) ⇝ 3/2 | gain:0.16585458116324744 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5906.1380911341175 cutoff:4000 ]",
"[ 7/8 ⇜ (7/6 → 5/4) | gain:0.1989031661444791 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5938.355801271282 cutoff:4000 ]",
"[ 7/8 ⇜ (7/6 → 5/4) | gain:0.1989031661444791 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5938.355801271282 cutoff:4000 ]",
"[ 5/4 → 3/2 | gain:0.20935386344254933 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5897.049337170482 cutoff:4000 ]",
"[ 5/4 → 3/2 | gain:0.20935386344254933 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5897.049337170482 cutoff:4000 ]",
"[ 5/4 → 3/2 | s:hh3 gain:0.7 ]",
"[ (5/4 → 19/12) ⇝ 13/8 | gain:0.10821620301269062 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5887.549861142967 cutoff:4000 ]",
"[ (5/4 → 19/12) ⇝ 13/8 | gain:0.10821620301269062 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5887.549861142967 cutoff:4000 ]",
"[ 1/1 ⇜ (4/3 → 11/8) | gain:0.13002412009397907 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5923.077274266886 cutoff:4000 ]",
"[ 1/1 ⇜ (4/3 → 11/8) | gain:0.13002412009397907 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5923.077274266886 cutoff:4000 ]",
"[ 11/8 → 3/2 | note:D2 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2026.0015806698216 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 11/8 → 3/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2026.0015806698216 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (11/8 → 5/3) ⇝ 7/4 | gain:0.13777765528071248 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5867.325323737765 cutoff:4000 ]",
"[ (11/8 → 5/3) ⇝ 7/4 | gain:0.13777765528071248 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5867.325323737765 cutoff:4000 ]",
"[ 9/8 ⇜ (17/12 → 3/2) | gain:0.16585458116324744 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5906.1380911341175 cutoff:4000 ]",
"[ 9/8 ⇜ (17/12 → 3/2) | gain:0.16585458116324744 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5906.1380911341175 cutoff:4000 ]",
"[ 3/2 → 13/8 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2057.708031580958 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 3/2 → 13/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2057.708031580958 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 3/2 → 7/4 | gain:0.17374970658501893 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5856.603727730447 cutoff:4000 ]",
"[ 3/2 → 7/4 | gain:0.17374970658501893 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5856.603727730447 cutoff:4000 ]",
"[ 3/2 → 7/4 | s:bd gain:0.7 ]",
"[ (3/2 → 11/6) ⇝ 15/8 | gain:0.08972789051217522 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5845.47833980621 cutoff:4000 ]",
"[ (3/2 → 11/6) ⇝ 15/8 | gain:0.08972789051217522 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5845.47833980621 cutoff:4000 ]",
"[ 3/2 → 2/1 | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2104.801302079497 ]",
"[ 3/2 → 2/1 | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2104.801302079497 ]",
"[ 3/2 → 2/1 | s:sn gain:0.7 ]",
"[ 5/4 ⇜ (19/12 → 13/8) | gain:0.10821620301269062 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5887.549861142967 cutoff:4000 ]",
"[ 5/4 ⇜ (19/12 → 13/8) | gain:0.10821620301269062 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5887.549861142967 cutoff:4000 ]",
"[ (13/8 → 23/12) ⇝ 2/1 | gain:0.11402475157686406 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5822.02388217981 cutoff:4000 ]",
"[ (13/8 → 23/12) ⇝ 2/1 | gain:0.11402475157686406 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5822.02388217981 cutoff:4000 ]",
"[ (13/8 → 2/1) ⇝ 17/8 | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2135.8582993222344 ]",
"[ (13/8 → 2/1) ⇝ 17/8 | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2135.8582993222344 ]",
"[ 11/8 ⇜ (5/3 → 7/4) | gain:0.13777765528071248 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5867.325323737765 cutoff:4000 ]",
"[ 11/8 ⇜ (5/3 → 7/4) | gain:0.13777765528071248 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5867.325323737765 cutoff:4000 ]",
"[ 7/4 → 15/8 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2120.3652183367367 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 7/4 → 15/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2120.3652183367367 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 7/4 → 2/1 | gain:0.14366058218580086 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5809.698831278217 cutoff:4000 ]",
"[ 7/4 → 2/1 | gain:0.14366058218580086 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5809.698831278217 cutoff:4000 ]",
"[ 7/4 → 2/1 | s:hh3 gain:0.7 ]",
"[ (7/4 → 2/1) ⇝ 17/8 | gain:0.07411986998714647 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5796.978025372246 cutoff:4000 ]",
"[ (7/4 → 2/1) ⇝ 17/8 | gain:0.07411986998714647 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5796.978025372246 cutoff:4000 ]",
"[ (7/4 → 2/1) ⇝ 9/4 | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2166.622633692871 ]",
"[ (7/4 → 2/1) ⇝ 9/4 | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2166.622633692871 ]",
"[ 3/2 ⇜ (11/6 → 15/8) | gain:0.08972789051217522 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5845.47833980621 cutoff:4000 ]",
"[ 3/2 ⇜ (11/6 → 15/8) | gain:0.08972789051217522 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5845.47833980621 cutoff:4000 ]",
"[ 15/8 → 2/1 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2151.2782118349805 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 15/8 → 2/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2151.2782118349805 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (15/8 → 2/1) ⇝ 9/4 | gain:0.09401455409698445 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5770.357934562703 cutoff:4000 ]",
"[ (15/8 → 2/1) ⇝ 9/4 | gain:0.09401455409698445 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5770.357934562703 cutoff:4000 ]",
"[ (15/8 → 2/1) ⇝ 19/8 | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2197.0757739067362 ]",
"[ (15/8 → 2/1) ⇝ 19/8 | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2197.0757739067362 ]",
"[ 13/8 ⇜ (23/12 → 2/1) | gain:0.11402475157686406 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5822.02388217981 cutoff:4000 ]",
"[ 13/8 ⇜ (23/12 → 2/1) | gain:0.11402475157686406 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5822.02388217981 cutoff:4000 ]",
"[ 7/4 ⇜ (2/1 → 25/12) ⇝ 17/8 | gain:0.07411986998714647 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5796.978025372246 cutoff:4000 ]",
"[ 7/4 ⇜ (2/1 → 25/12) ⇝ 17/8 | gain:0.07411986998714647 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5796.978025372246 cutoff:4000 ]",
"[ 13/8 ⇜ (2/1 → 17/8) | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2135.8582993222344 ]",
"[ 13/8 ⇜ (2/1 → 17/8) | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2135.8582993222344 ]",
"[ 15/8 ⇜ (2/1 → 13/6) ⇝ 9/4 | gain:0.09401455409698445 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5770.357934562703 cutoff:4000 ]",
"[ 15/8 ⇜ (2/1 → 13/6) ⇝ 9/4 | gain:0.09401455409698445 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5770.357934562703 cutoff:4000 ]",
"[ 7/4 ⇜ (2/1 → 9/4) | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2166.622633692871 ]",
"[ 7/4 ⇜ (2/1 → 9/4) | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2166.622633692871 ]",
"[ 2/1 → 9/4 | gain:0.11833922971344701 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5756.463210874651 cutoff:4000 ]",
"[ 2/1 → 9/4 | gain:0.11833922971344701 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5756.463210874651 cutoff:4000 ]",
"[ 2/1 → 9/4 | s:bd gain:0.7 ]",
"[ (2/1 → 7/3) ⇝ 19/8 | gain:0.06099882456242525 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5742.18185383172 cutoff:4000 ]",
"[ (2/1 → 7/3) ⇝ 19/8 | gain:0.06099882456242525 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5742.18185383172 cutoff:4000 ]",
"[ 15/8 ⇜ (2/1 → 19/8) | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2197.0757739067362 ]",
"[ 15/8 ⇜ (2/1 → 19/8) | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2197.0757739067362 ]",
"[ 7/4 ⇜ (25/12 → 17/8) | gain:0.07411986998714647 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5796.978025372246 cutoff:4000 ]",
"[ 7/4 ⇜ (25/12 → 17/8) | gain:0.07411986998714647 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5796.978025372246 cutoff:4000 ]",
"[ 17/8 → 9/4 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2212.17990613181 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 17/8 → 9/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2212.17990613181 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (17/8 → 29/12) ⇝ 5/2 | gain:0.07722803431084992 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5712.469093657604 cutoff:4000 ]",
"[ (17/8 → 29/12) ⇝ 5/2 | gain:0.07722803431084992 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5712.469093657604 cutoff:4000 ]",
"[ 15/8 ⇜ (13/6 → 9/4) | gain:0.09401455409698445 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5770.357934562703 cutoff:4000 ]",
"[ 15/8 ⇜ (13/6 → 9/4) | gain:0.09401455409698445 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5770.357934562703 cutoff:4000 ]",
"[ 9/4 → 5/2 | gain:0.09711940526986938 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5697.042781654914 cutoff:4000 ]",
"[ 9/4 → 5/2 | gain:0.09711940526986938 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5697.042781654914 cutoff:4000 ]",
"[ 9/4 → 5/2 | s:hh3 gain:0.7 ]",
"[ (9/4 → 31/12) ⇝ 21/8 | gain:0.05001458841027654 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5681.240017681994 cutoff:4000 ]",
"[ (9/4 → 31/12) ⇝ 21/8 | gain:0.05001458841027654 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5681.240017681994 cutoff:4000 ]",
"[ 2/1 ⇜ (7/3 → 19/8) | gain:0.06099882456242525 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5742.18185383172 cutoff:4000 ]",
"[ 2/1 ⇜ (7/3 → 19/8) | gain:0.06099882456242525 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5742.18185383172 cutoff:4000 ]",
"[ 19/8 → 5/2 | note:D2 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2271.727259793624 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 19/8 → 5/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2271.727259793624 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (19/8 → 8/3) ⇝ 11/4 | gain:0.06320447612884668 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5648.516028753632 cutoff:4000 ]",
"[ (19/8 → 8/3) ⇝ 11/4 | gain:0.06320447612884668 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5648.516028753632 cutoff:4000 ]",
"[ 17/8 ⇜ (29/12 → 5/2) | gain:0.07722803431084992 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5712.469093657604 cutoff:4000 ]",
"[ 17/8 ⇜ (29/12 → 5/2) | gain:0.07722803431084992 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5712.469093657604 cutoff:4000 ]",
"[ 5/2 → 21/8 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2300.948092306816 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 5/2 → 21/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2300.948092306816 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 5/2 → 11/4 | gain:0.0794106090487894 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5631.60041088523 cutoff:4000 ]",
"[ 5/2 → 11/4 | gain:0.0794106090487894 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5631.60041088523 cutoff:4000 ]",
"[ 5/2 → 11/4 | s:bd gain:0.7 ]",
"[ (5/2 → 17/6) ⇝ 23/8 | gain:0.04085727749307612 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5614.319554259933 cutoff:4000 ]",
"[ (5/2 → 17/6) ⇝ 23/8 | gain:0.04085727749307612 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5614.319554259933 cutoff:4000 ]",
"[ 5/2 → 3/1 | s:sn gain:0.7 ]",
"[ 9/4 ⇜ (31/12 → 21/8) | gain:0.05001458841027654 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5681.240017681994 cutoff:4000 ]",
"[ 9/4 ⇜ (31/12 → 21/8) | gain:0.05001458841027654 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5681.240017681994 cutoff:4000 ]",
"[ (21/8 → 35/12) ⇝ 3/1 | gain:0.051537412445127495 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5578.674030756363 cutoff:4000 ]",
"[ (21/8 → 35/12) ⇝ 3/1 | gain:0.051537412445127495 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5578.674030756363 cutoff:4000 ]",
"[ 19/8 ⇜ (8/3 → 11/4) | gain:0.06320447612884668 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5648.516028753632 cutoff:4000 ]",
"[ 19/8 ⇜ (8/3 → 11/4) | gain:0.06320447612884668 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5648.516028753632 cutoff:4000 ]",
"[ 11/4 → 23/8 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2358.1960716159333 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 11/4 → 23/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2358.1960716159333 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 11/4 → 3/1 | gain:0.06469267544862903 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5560.31547155504 cutoff:4000 ]",
"[ 11/4 → 3/1 | gain:0.06469267544862903 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5560.31547155504 cutoff:4000 ]",
"[ 11/4 → 3/1 | s:hh3 gain:0.7 ]",
"[ (11/4 → 37/12) ⇝ 25/8 | gain:0.033254339487292464 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5541.603887904197 cutoff:4000 ]",
"[ (11/4 → 37/12) ⇝ 25/8 | gain:0.033254339487292464 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5541.603887904197 cutoff:4000 ]",
"[ 5/2 ⇜ (17/6 → 23/8) | gain:0.04085727749307612 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5614.319554259933 cutoff:4000 ]",
"[ 5/2 ⇜ (17/6 → 23/8) | gain:0.04085727749307612 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5614.319554259933 cutoff:4000 ]",
"[ 23/8 → 3/1 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2386.1887343697626 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 23/8 → 3/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2386.1887343697626 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (23/8 → 19/6) ⇝ 13/4 | gain:0.041870446443995187 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5503.134531727652 cutoff:4000 ]",
"[ (23/8 → 19/6) ⇝ 13/4 | gain:0.041870446443995187 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5503.134531727652 cutoff:4000 ]",
"[ 21/8 ⇜ (35/12 → 3/1) | gain:0.051537412445127495 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5578.674030756363 cutoff:4000 ]",
"[ 21/8 ⇜ (35/12 → 3/1) | gain:0.051537412445127495 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5578.674030756363 cutoff:4000 ]",
"[ 3/1 → 13/4 | gain:0.05251021778611238 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5483.383350728088 cutoff:4000 ]",
"[ 3/1 → 13/4 | gain:0.05251021778611238 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5483.383350728088 cutoff:4000 ]",
"[ 3/1 → 13/4 | s:bd gain:0.7 ]",
"[ (3/1 → 10/3) ⇝ 27/8 | gain:0.026967531141465956 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5463.2923272018625 cutoff:4000 ]",
"[ (3/1 → 10/3) ⇝ 27/8 | gain:0.026967531141465956 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5463.2923272018625 cutoff:4000 ]",
"[ 11/4 ⇜ (37/12 → 25/8) | gain:0.033254339487292464 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5541.603887904197 cutoff:4000 ]",
"[ 11/4 ⇜ (37/12 → 25/8) | gain:0.033254339487292464 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5541.603887904197 cutoff:4000 ]",
"[ 25/8 → 13/4 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2440.8271075661924 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 25/8 → 13/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2440.8271075661924 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (25/8 → 41/12) ⇝ 7/2 | gain:0.0338929965297769 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5422.104580183649 cutoff:4000 ]",
"[ (25/8 → 41/12) ⇝ 7/2 | gain:0.0338929965297769 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5422.104580183649 cutoff:4000 ]",
"[ 23/8 ⇜ (19/6 → 13/4) | gain:0.041870446443995187 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5503.134531727652 cutoff:4000 ]",
"[ 23/8 ⇜ (19/6 → 13/4) | gain:0.041870446443995187 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5503.134531727652 cutoff:4000 ]",
"[ 13/4 → 7/2 | gain:0.04246699250713177 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5401.014914000078 cutoff:4000 ]",
"[ 13/4 → 7/2 | gain:0.04246699250713177 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5401.014914000078 cutoff:4000 ]",
"[ 13/4 → 7/2 | s:hh3 gain:0.7 ]",
"[ (13/4 → 43/12) ⇝ 29/8 | gain:0.021789864126373813 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5379.599518697443 cutoff:4000 ]",
"[ (13/4 → 43/12) ⇝ 29/8 | gain:0.021789864126373813 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5379.599518697443 cutoff:4000 ]",
"[ 3/1 ⇜ (10/3 → 27/8) | gain:0.026967531141465956 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5463.2923272018625 cutoff:4000 ]",
"[ 3/1 ⇜ (10/3 → 27/8) | gain:0.026967531141465956 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5463.2923272018625 cutoff:4000 ]",
"[ 27/8 → 7/2 | note:D2 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2493.5603089922215 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 27/8 → 7/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2493.5603089922215 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (27/8 → 11/3) ⇝ 15/4 | gain:0.02733603378769718 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5335.806273589214 cutoff:4000 ]",
"[ (27/8 → 11/3) ⇝ 15/4 | gain:0.02733603378769718 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5335.806273589214 cutoff:4000 ]",
"[ 25/8 ⇜ (41/12 → 7/2) | gain:0.0338929965297769 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5422.104580183649 cutoff:4000 ]",
"[ 25/8 ⇜ (41/12 → 7/2) | gain:0.0338929965297769 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5422.104580183649 cutoff:4000 ]",
"[ 7/2 → 29/8 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2519.1725829012184 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 7/2 → 29/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2519.1725829012184 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 7/2 → 15/4 | gain:0.034220278760810484 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5313.435927530719 cutoff:4000 ]",
"[ 7/2 → 15/4 | gain:0.034220278760810484 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5313.435927530719 cutoff:4000 ]",
"[ 7/2 → 15/4 | s:bd gain:0.7 ]",
"[ (7/2 → 23/6) ⇝ 31/8 | gain:0.017542573009485987 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5290.754858561636 cutoff:4000 ]",
"[ (7/2 → 23/6) ⇝ 31/8 | gain:0.017542573009485987 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5290.754858561636 cutoff:4000 ]",
"[ 7/2 → 4/1 | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2556.604589043475 ]",
"[ 7/2 → 4/1 | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2556.604589043475 ]",
"[ 7/2 → 4/1 | s:sn gain:0.7 ]",
"[ 13/4 ⇜ (43/12 → 29/8) | gain:0.021789864126373813 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5379.599518697443 cutoff:4000 ]",
"[ 13/4 ⇜ (43/12 → 29/8) | gain:0.021789864126373813 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5379.599518697443 cutoff:4000 ]",
"[ (29/8 → 47/12) ⇝ 4/1 | gain:0.02196788874761195 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5244.4761496042 cutoff:4000 ]",
"[ (29/8 → 47/12) ⇝ 4/1 | gain:0.02196788874761195 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5244.4761496042 cutoff:4000 ]",
"[ (29/8 → 4/1) ⇝ 33/8 | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2580.8797353950404 ]",
"[ (29/8 → 4/1) ⇝ 33/8 | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2580.8797353950404 ]",
"[ 27/8 ⇜ (11/3 → 15/4) | gain:0.02733603378769718 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5335.806273589214 cutoff:4000 ]",
"[ 27/8 ⇜ (11/3 → 15/4) | gain:0.02733603378769718 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5335.806273589214 cutoff:4000 ]",
"[ 15/4 → 31/8 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2568.811347023862 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 15/4 → 31/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2568.811347023862 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 15/4 → 4/1 | gain:0.027475374351507095 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5220.886439234386 cutoff:4000 ]",
"[ 15/4 → 4/1 | gain:0.027475374351507095 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5220.886439234386 cutoff:4000 ]",
"[ 15/4 → 4/1 | s:hh3 gain:0.7 ]",
"[ (15/4 → 4/1) ⇝ 33/8 | gain:0.01407215930427397 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5197.0018638323545 cutoff:4000 ]",
"[ (15/4 → 4/1) ⇝ 33/8 | gain:0.01407215930427397 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5197.0018638323545 cutoff:4000 ]",
"[ (15/4 → 4/1) ⇝ 17/4 | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2604.594154601839 ]",
"[ (15/4 → 4/1) ⇝ 17/4 | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2604.594154601839 ]",
"[ 7/2 ⇜ (23/6 → 31/8) | gain:0.017542573009485987 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5290.754858561636 cutoff:4000 ]",
"[ 7/2 ⇜ (23/6 → 31/8) | gain:0.017542573009485987 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5290.754858561636 cutoff:4000 ]",
"[ 31/8 → 4/1 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2592.8079367021132 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 31/8 → 4/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2592.8079367021132 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 31/8 → 4/1 | s:bd gain:0.7 ]",
"[ (31/8 → 4/1) ⇝ 17/4 | gain:0.01759019913034246 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5148.3645377501725 cutoff:4000 ]",
"[ (31/8 → 4/1) ⇝ 17/4 | gain:0.01759019913034246 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5148.3645377501725 cutoff:4000 ]",
"[ (31/8 → 4/1) ⇝ 35/8 | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2627.7335619844803 ]",
"[ (31/8 → 4/1) ⇝ 35/8 | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2627.7335619844803 ]",
"[ 29/8 ⇜ (47/12 → 4/1) | gain:0.02196788874761195 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5244.4761496042 cutoff:4000 ]",
"[ 29/8 ⇜ (47/12 → 4/1) | gain:0.02196788874761195 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5244.4761496042 cutoff:4000 ]",
"[ 15/4 ⇜ (4/1 → 49/12) ⇝ 33/8 | gain:0.01407215930427397 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5197.0018638323545 cutoff:4000 ]",
"[ 15/4 ⇜ (4/1 → 49/12) ⇝ 33/8 | gain:0.01407215930427397 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5197.0018638323545 cutoff:4000 ]",
"[ 29/8 ⇜ (4/1 → 33/8) | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2580.8797353950404 ]",
"[ 29/8 ⇜ (4/1 → 33/8) | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2580.8797353950404 ]",
"[ 31/8 ⇜ (4/1 → 25/6) ⇝ 17/4 | gain:0.01759019913034246 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5148.3645377501725 cutoff:4000 ]",
"[ 31/8 ⇜ (4/1 → 25/6) ⇝ 17/4 | gain:0.01759019913034246 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5148.3645377501725 cutoff:4000 ]",
"[ 15/4 ⇜ (4/1 → 17/4) | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2604.594154601839 ]",
"[ 15/4 ⇜ (4/1 → 17/4) | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2604.594154601839 ]",
"[ 4/1 → 17/4 | gain:0.02198029948120568 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5123.62012082546 cutoff:4000 ]",
"[ 4/1 → 17/4 | gain:0.02198029948120568 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5123.62012082546 cutoff:4000 ]",
"[ 4/1 → 17/4 | s:bd gain:0.7 ]",
"[ (4/1 → 13/3) ⇝ 35/8 | gain:0.011247559038777319 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5098.597504951462 cutoff:4000 ]",
"[ (4/1 → 13/3) ⇝ 35/8 | gain:0.011247559038777319 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5098.597504951462 cutoff:4000 ]",
"[ 31/8 ⇜ (4/1 → 35/8) | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2627.7335619844803 ]",
"[ 31/8 ⇜ (4/1 → 35/8) | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2627.7335619844803 ]",
"[ 15/4 ⇜ (49/12 → 33/8) | gain:0.01407215930427397 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5197.0018638323545 cutoff:4000 ]",
"[ 15/4 ⇜ (49/12 → 33/8) | gain:0.01407215930427397 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5197.0018638323545 cutoff:4000 ]",
"[ 33/8 → 17/4 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2639.083266757757 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 33/8 → 17/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2639.083266757757 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (33/8 → 53/12) ⇝ 9/2 | gain:0.01403405840758879 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5047.734873274585 cutoff:4000 ]",
"[ (33/8 → 53/12) ⇝ 9/2 | gain:0.01403405840758879 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5047.734873274585 cutoff:4000 ]",
"[ 31/8 ⇜ (25/6 → 17/4) | gain:0.01759019913034246 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5148.3645377501725 cutoff:4000 ]",
"[ 31/8 ⇜ (25/6 → 17/4) | gain:0.01759019913034246 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5148.3645377501725 cutoff:4000 ]",
"[ 17/4 → 9/2 | gain:0.01752078272553497 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5021.903572521802 cutoff:4000 ]",
"[ 17/4 → 9/2 | gain:0.01752078272553497 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5021.903572521802 cutoff:4000 ]",
"[ 17/4 → 9/2 | s:hh3 gain:0.7 ]",
"[ (17/4 → 55/12) ⇝ 37/8 | gain:0.008957471551552614 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4995.811501426648 cutoff:4000 ]",
"[ (17/4 → 55/12) ⇝ 37/8 | gain:0.008957471551552614 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4995.811501426648 cutoff:4000 ]",
"[ 4/1 ⇜ (13/3 → 35/8) | gain:0.011247559038777319 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5098.597504951462 cutoff:4000 ]",
"[ 4/1 ⇜ (13/3 → 35/8) | gain:0.011247559038777319 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5098.597504951462 cutoff:4000 ]",
"[ 35/8 → 9/2 | note:D2 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2682.97580859032 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 35/8 → 9/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2682.97580859032 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (35/8 → 14/3) ⇝ 19/4 | gain:0.011156410432703394 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4942.862975093085 cutoff:4000 ]",
"[ (35/8 → 14/3) ⇝ 19/4 | gain:0.011156410432703394 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4942.862975093085 cutoff:4000 ]",
"[ 33/8 ⇜ (53/12 → 9/2) | gain:0.01403405840758879 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5047.734873274585 cutoff:4000 ]",
"[ 33/8 ⇜ (53/12 → 9/2) | gain:0.01403405840758879 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5047.734873274585 cutoff:4000 ]",
"[ 9/2 → 37/8 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2703.995258572327 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 9/2 → 37/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2703.995258572327 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 9/2 → 19/4 | gain:0.013915584104736941 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4916.015592312082 cutoff:4000 ]",
"[ 9/2 → 19/4 | gain:0.013915584104736941 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4916.015592312082 cutoff:4000 ]",
"[ 9/2 → 19/4 | s:bd gain:0.7 ]",
"[ (9/2 → 29/6) ⇝ 39/8 | gain:0.007107876545841471 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4888.925582549005 cutoff:4000 ]",
"[ (9/2 → 29/6) ⇝ 39/8 | gain:0.007107876545841471 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4888.925582549005 cutoff:4000 ]",
"[ 9/2 → 5/1 | s:sn gain:0.7 ]",
"[ 17/4 ⇜ (55/12 → 37/8) | gain:0.008957471551552614 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4995.811501426648 cutoff:4000 ]",
"[ 17/4 ⇜ (55/12 → 37/8) | gain:0.008957471551552614 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4995.811501426648 cutoff:4000 ]",
"[ (37/8 → 59/12) ⇝ 5/1 | gain:0.008836720604435567 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4834.036289789029 cutoff:4000 ]",
"[ (37/8 → 59/12) ⇝ 5/1 | gain:0.008836720604435567 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4834.036289789029 cutoff:4000 ]",
"[ 35/8 ⇜ (14/3 → 19/4) | gain:0.011156410432703394 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4942.862975093085 cutoff:4000 ]",
"[ 35/8 ⇜ (14/3 → 19/4) | gain:0.011156410432703394 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4942.862975093085 cutoff:4000 ]",
"[ 19/4 → 39/8 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2744.1172176410028 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 19/4 → 39/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2744.1172176410028 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 19/4 → 5/1 | gain:0.011012190825058119 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4806.246411789873 cutoff:4000 ]",
"[ 19/4 → 5/1 | gain:0.011012190825058119 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4806.246411789873 cutoff:4000 ]",
"[ 19/4 → 5/1 | s:hh3 gain:0.7 ]",
"[ (19/4 → 61/12) ⇝ 41/8 | gain:0.005619756192058716 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4778.23271519263 cutoff:4000 ]",
"[ (19/4 → 61/12) ⇝ 41/8 | gain:0.005619756192058716 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4778.23271519263 cutoff:4000 ]",
"[ 9/2 ⇜ (29/6 → 39/8) | gain:0.007107876545841471 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4888.925582549005 cutoff:4000 ]",
"[ 9/2 ⇜ (29/6 → 39/8) | gain:0.007107876545841471 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4888.925582549005 cutoff:4000 ]",
"[ 39/8 → 5/1 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2763.195558759784 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 39/8 → 5/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2763.195558759784 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (39/8 → 31/6) ⇝ 21/4 | gain:0.006973940456445439 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4721.553103742387 cutoff:4000 ]",
"[ (39/8 → 31/6) ⇝ 21/4 | gain:0.006973940456445439 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4721.553103742387 cutoff:4000 ]",
"[ 37/8 ⇜ (59/12 → 5/1) | gain:0.008836720604435567 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4834.036289789029 cutoff:4000 ]",
"[ 37/8 ⇜ (59/12 → 5/1) | gain:0.008836720604435567 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4834.036289789029 cutoff:4000 ]",
"[ 5/1 → 21/4 | gain:0.008682903916956372 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4692.8969006490215 cutoff:4000 ]",
"[ 5/1 → 21/4 | gain:0.008682903916956372 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4692.8969006490215 cutoff:4000 ]",
"[ 5/1 → 21/4 | s:bd gain:0.7 ]",
"[ (5/1 → 16/3) ⇝ 43/8 | gain:0.004427030019445723 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4664.036300812779 cutoff:4000 ]",
"[ (5/1 → 16/3) ⇝ 43/8 | gain:0.004427030019445723 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4664.036300812779 cutoff:4000 ]",
"[ 19/4 ⇜ (61/12 → 41/8) | gain:0.005619756192058716 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4778.23271519263 cutoff:4000 ]",
"[ 19/4 ⇜ (61/12 → 41/8) | gain:0.005619756192058716 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4778.23271519263 cutoff:4000 ]",
"[ 41/8 → 21/4 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2799.329510692108 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 41/8 → 21/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2799.329510692108 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (41/8 → 65/12) ⇝ 11/2 | gain:0.005483770957386215 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4605.721725547503 cutoff:4000 ]",
"[ (41/8 → 65/12) ⇝ 11/2 | gain:0.005483770957386215 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4605.721725547503 cutoff:4000 ]",
"[ 39/8 ⇜ (31/6 → 21/4) | gain:0.006973940456445439 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4721.553103742387 cutoff:4000 ]",
"[ 39/8 ⇜ (31/6 → 21/4) | gain:0.006973940456445439 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4721.553103742387 cutoff:4000 ]",
"[ 21/4 → 11/2 | gain:0.006821319376399847 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4576.2777420207385 cutoff:4000 ]",
"[ 21/4 → 11/2 | gain:0.006821319376399847 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4576.2777420207385 cutoff:4000 ]",
"[ 21/4 → 11/2 | s:hh3 gain:0.7 ]",
"[ (21/4 → 67/12) ⇝ 45/8 | gain:0.00347470282155788 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4546.64934384357 cutoff:4000 ]",
"[ (21/4 → 67/12) ⇝ 45/8 | gain:0.00347470282155788 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4546.64934384357 cutoff:4000 ]",
"[ 5/1 ⇜ (16/3 → 43/8) | gain:0.004427030019445723 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4664.036300812779 cutoff:4000 ]",
"[ 5/1 ⇜ (16/3 → 43/8) | gain:0.004427030019445723 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4664.036300812779 cutoff:4000 ]",
"[ 43/8 → 11/2 | note:D2 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2832.694627163799 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 43/8 → 11/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2832.694627163799 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (43/8 → 17/3) ⇝ 23/4 | gain:0.004296220430900771 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4486.859640960669 cutoff:4000 ]",
"[ (43/8 → 17/3) ⇝ 23/4 | gain:0.004296220430900771 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4486.859640960669 cutoff:4000 ]",
"[ 41/8 ⇜ (65/12 → 11/2) | gain:0.005483770957386215 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4605.721725547503 cutoff:4000 ]",
"[ 41/8 ⇜ (65/12 → 11/2) | gain:0.005483770957386215 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4605.721725547503 cutoff:4000 ]",
"[ 11/2 → 45/8 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2848.313487543853 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 11/2 → 45/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2848.313487543853 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 11/2 → 23/4 | gain:0.005339195768845559 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4456.708580912725 cutoff:4000 ]",
"[ 11/2 → 23/4 | gain:0.005339195768845559 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4456.708580912725 cutoff:4000 ]",
"[ 11/2 → 23/4 | s:bd gain:0.7 ]",
"[ (11/2 → 35/6) ⇝ 47/8 | gain:0.0027172198948820303 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4426.39359377459 cutoff:4000 ]",
"[ (11/2 → 35/6) ⇝ 47/8 | gain:0.0027172198948820303 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4426.39359377459 cutoff:4000 ]",
"[ 11/2 → 6/1 | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2870.3855457166487 ]",
"[ 11/2 → 6/1 | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2870.3855457166487 ]",
"[ 11/2 → 6/1 | s:sn gain:0.7 ]",
"[ 21/4 ⇜ (67/12 → 45/8) | gain:0.00347470282155788 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4546.64934384357 cutoff:4000 ]",
"[ 21/4 ⇜ (67/12 → 45/8) | gain:0.00347470282155788 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4546.64934384357 cutoff:4000 ]",
"[ (45/8 → 71/12) ⇝ 6/1 | gain:0.0033534458443527444 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4365.292642693734 cutoff:4000 ]",
"[ (45/8 → 71/12) ⇝ 6/1 | gain:0.0033534458443527444 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4365.292642693734 cutoff:4000 ]",
"[ (45/8 → 6/1) ⇝ 49/8 | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2884.183170199766 ]",
"[ (45/8 → 6/1) ⇝ 49/8 | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2884.183170199766 ]",
"[ 43/8 ⇜ (17/3 → 23/4) | gain:0.004296220430900771 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4486.859640960669 cutoff:4000 ]",
"[ 43/8 ⇜ (17/3 → 23/4) | gain:0.004296220430900771 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4486.859640960669 cutoff:4000 ]",
"[ 23/4 → 47/8 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2877.376777172205 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 23/4 → 47/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2877.376777172205 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 23/4 → 6/1 | gain:0.0041636914909436865 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4334.517148084427 cutoff:4000 ]",
"[ 23/4 → 6/1 | gain:0.0041636914909436865 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4334.517148084427 cutoff:4000 ]",
"[ 23/4 → 6/1 | s:hh3 gain:0.7 ]",
"[ (23/4 → 6/1) ⇝ 49/8 | gain:0.0021170195539929144 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4303.598663257904 cutoff:4000 ]",
"[ (23/4 → 6/1) ⇝ 49/8 | gain:0.0021170195539929144 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4303.598663257904 cutoff:4000 ]",
"[ (23/4 → 6/1) ⇝ 25/4 | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2897.237368890237 ]",
"[ (23/4 → 6/1) ⇝ 25/4 | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2897.237368890237 ]",
"[ 11/2 ⇜ (35/6 → 47/8) | gain:0.0027172198948820303 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4426.39359377459 cutoff:4000 ]",
"[ 11/2 ⇜ (35/6 → 47/8) | gain:0.0027172198948820303 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4426.39359377459 cutoff:4000 ]",
"[ 47/8 → 6/1 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2890.803699781578 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 47/8 → 6/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2890.803699781578 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (47/8 → 6/1) ⇝ 25/4 | gain:0.002607861084803616 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4241.3539374389275 cutoff:4000 ]",
"[ (47/8 → 6/1) ⇝ 25/4 | gain:0.002607861084803616 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4241.3539374389275 cutoff:4000 ]",
"[ (47/8 → 6/1) ⇝ 51/8 | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2909.5402784268977 ]",
"[ (47/8 → 6/1) ⇝ 51/8 | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2909.5402784268977 ]",
"[ 45/8 ⇜ (71/12 → 6/1) | gain:0.0033534458443527444 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4365.292642693734 cutoff:4000 ]",
"[ 45/8 ⇜ (71/12 → 6/1) | gain:0.0033534458443527444 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4365.292642693734 cutoff:4000 ]",
"[ 23/4 ⇜ (6/1 → 73/12) ⇝ 49/8 | gain:0.0021170195539929144 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4303.598663257904 cutoff:4000 ]",
"[ 23/4 ⇜ (6/1 → 73/12) ⇝ 49/8 | gain:0.0021170195539929144 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4303.598663257904 cutoff:4000 ]",
"[ 45/8 ⇜ (6/1 → 49/8) | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2884.183170199766 ]",
"[ 45/8 ⇜ (6/1 → 49/8) | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2884.183170199766 ]",
"[ 47/8 ⇜ (6/1 → 37/6) ⇝ 25/4 | gain:0.002607861084803616 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4241.3539374389275 cutoff:4000 ]",
"[ 47/8 ⇜ (6/1 → 37/6) ⇝ 25/4 | gain:0.002607861084803616 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4241.3539374389275 cutoff:4000 ]",
"[ 23/4 ⇜ (6/1 → 25/4) | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2897.237368890237 ]",
"[ 23/4 ⇜ (6/1 → 25/4) | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2897.237368890237 ]",
"[ 6/1 → 25/4 | gain:0.0032349487219990097 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4210.038361759807 cutoff:4000 ]",
"[ 6/1 → 25/4 | gain:0.0032349487219990097 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4210.038361759807 cutoff:4000 ]",
"[ 6/1 → 25/4 | s:bd gain:0.7 ]",
"[ (6/1 → 19/3) ⇝ 51/8 | gain:0.0016432698518802527 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4178.601124662687 cutoff:4000 ]",
"[ (6/1 → 19/3) ⇝ 51/8 | gain:0.0016432698518802527 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4178.601124662687 cutoff:4000 ]",
"[ 47/8 ⇜ (6/1 → 51/8) | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2909.5402784268977 ]",
"[ 47/8 ⇜ (6/1 → 51/8) | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2909.5402784268977 ]",
"[ 23/4 ⇜ (73/12 → 49/8) | gain:0.0021170195539929144 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4303.598663257904 cutoff:4000 ]",
"[ 23/4 ⇜ (73/12 → 49/8) | gain:0.0021170195539929144 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4303.598663257904 cutoff:4000 ]",
"[ 49/8 → 25/4 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2915.4076660819765 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 49/8 → 25/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2915.4076660819765 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (49/8 → 77/12) ⇝ 13/2 | gain:0.002020492471376867 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4115.383232572483 cutoff:4000 ]",
"[ (49/8 → 77/12) ⇝ 13/2 | gain:0.002020492471376867 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4115.383232572483 cutoff:4000 ]",
"[ 47/8 ⇜ (37/6 → 25/4) | gain:0.002607861084803616 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4241.3539374389275 cutoff:4000 ]",
"[ 47/8 ⇜ (37/6 → 25/4) | gain:0.002607861084803616 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4241.3539374389275 cutoff:4000 ]",
"[ 25/4 → 13/2 | gain:0.0025039971642624803 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4083.6134096397636 cutoff:4000 ]",
"[ 25/4 → 13/2 | gain:0.0025039971642624803 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4083.6134096397636 cutoff:4000 ]",
"[ 25/4 → 13/2 | s:hh3 gain:0.7 ]",
"[ (25/4 → 79/12) ⇝ 53/8 | gain:0.0012707745730195417 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4051.743587553753 cutoff:4000 ]",
"[ (25/4 → 79/12) ⇝ 53/8 | gain:0.0012707745730195417 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4051.743587553753 cutoff:4000 ]",
"[ 6/1 ⇜ (19/3 → 51/8) | gain:0.0016432698518802527 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4178.601124662687 cutoff:4000 ]",
"[ 6/1 ⇜ (19/3 → 51/8) | gain:0.0016432698518802527 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4178.601124662687 cutoff:4000 ]",
"[ 51/8 → 13/2 | note:D2 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2936.9631544781614 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 51/8 → 13/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2936.9631544781614 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (51/8 → 20/3) ⇝ 27/4 | gain:0.0015595598450028928 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3987.7258050403216 cutoff:4000 ]",
"[ (51/8 → 20/3) ⇝ 27/4 | gain:0.0015595598450028928 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3987.7258050403216 cutoff:4000 ]",
"[ 49/8 ⇜ (77/12 → 13/2) | gain:0.002020492471376867 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4115.383232572483 cutoff:4000 ]",
"[ 49/8 ⇜ (77/12 → 13/2) | gain:0.002020492471376867 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4115.383232572483 cutoff:4000 ]",
"[ 13/2 → 53/8 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2946.5812012110136 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 13/2 → 53/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2946.5812012110136 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 13/2 → 27/4 | gain:0.001930948569883525 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3955.588813730369 cutoff:4000 ]",
"[ 13/2 → 27/4 | gain:0.001930948569883525 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3955.588813730369 cutoff:4000 ]",
"[ 13/2 → 27/4 | s:bd gain:0.7 ]",
"[ (13/2 → 41/6) ⇝ 55/8 | gain:0.0009790326438946302 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3923.373759622562 cutoff:4000 ]",
"[ (13/2 → 41/6) ⇝ 55/8 | gain:0.0009790326438946302 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3923.373759622562 cutoff:4000 ]",
"[ 13/2 → 7/1 | s:sn gain:0.7 ]",
"[ 25/4 ⇜ (79/12 → 53/8) | gain:0.0012707745730195417 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4051.743587553753 cutoff:4000 ]",
"[ 25/4 ⇜ (79/12 → 53/8) | gain:0.0012707745730195417 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4051.743587553753 cutoff:4000 ]",
"[ (53/8 → 83/12) ⇝ 7/1 | gain:0.0011992608333914556 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3858.7315549779487 cutoff:4000 ]",
"[ (53/8 → 83/12) ⇝ 7/1 | gain:0.0011992608333914556 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3858.7315549779487 cutoff:4000 ]",
"[ 51/8 ⇜ (20/3 → 27/4) | gain:0.0015595598450028928 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3987.7258050403216 cutoff:4000 ]",
"[ 51/8 ⇜ (20/3 → 27/4) | gain:0.0015595598450028928 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3987.7258050403216 cutoff:4000 ]",
"[ 27/4 → 55/8 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2963.468935477506 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 27/4 → 55/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2963.468935477506 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 27/4 → 7/1 | gain:0.001483452397136718 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3826.315480550129 cutoff:4000 ]",
"[ 27/4 → 7/1 | gain:0.001483452397136718 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3826.315480550129 cutoff:4000 ]",
"[ 27/4 → 7/1 | s:hh3 gain:0.7 ]",
"[ (27/4 → 85/12) ⇝ 57/8 | gain:0.0007514349161098732 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3793.8434936445938 cutoff:4000 ]",
"[ (27/4 → 85/12) ⇝ 57/8 | gain:0.0007514349161098732 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3793.8434936445938 cutoff:4000 ]",
"[ 13/2 ⇜ (41/6 → 55/8) | gain:0.0009790326438946302 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3923.373759622562 cutoff:4000 ]",
"[ 13/2 ⇜ (41/6 → 55/8) | gain:0.0009790326438946302 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3923.373759622562 cutoff:4000 ]",
"[ 55/8 → 7/1 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2970.728450471497 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 55/8 → 7/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2970.728450471497 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (55/8 → 43/6) ⇝ 29/4 | gain:0.0009187360380160062 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3728.7540466585065 cutoff:4000 ]",
"[ (55/8 → 43/6) ⇝ 29/4 | gain:0.0009187360380160062 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3728.7540466585065 cutoff:4000 ]",
"[ 53/8 ⇜ (83/12 → 7/1) | gain:0.0011992608333914556 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3858.7315549779487 cutoff:4000 ]",
"[ 53/8 ⇜ (83/12 → 7/1) | gain:0.0011992608333914556 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3858.7315549779487 cutoff:4000 ]",
"[ 7/1 → 29/4 | gain:0.0011353833788233256 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3696.147739319613 cutoff:4000 ]",
"[ 7/1 → 29/4 | gain:0.0011353833788233256 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3696.147739319613 cutoff:4000 ]",
"[ 7/1 → 29/4 | s:bd gain:0.7 ]",
"[ (7/1 → 22/3) ⇝ 59/8 | gain:0.0005745826370722221 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3663.507823075358 cutoff:4000 ]",
"[ (7/1 → 22/3) ⇝ 59/8 | gain:0.0005745826370722221 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3663.507823075358 cutoff:4000 ]",
"[ 27/4 ⇜ (85/12 → 57/8) | gain:0.0007514349161098732 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3793.8434936445938 cutoff:4000 ]",
"[ 27/4 ⇜ (85/12 → 57/8) | gain:0.0007514349161098732 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3793.8434936445938 cutoff:4000 ]",
"[ 57/8 → 29/4 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2982.856914513109 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 57/8 → 29/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2982.856914513109 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (57/8 → 89/12) ⇝ 15/2 | gain:0.0007011936914869215 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3598.149539397671 cutoff:4000 ]",
"[ (57/8 → 89/12) ⇝ 15/2 | gain:0.0007011936914869215 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3598.149539397671 cutoff:4000 ]",
"[ 55/8 ⇜ (43/6 → 29/4) | gain:0.0009187360380160062 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3728.7540466585065 cutoff:4000 ]",
"[ 55/8 ⇜ (43/6 → 29/4) | gain:0.0009187360380160062 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3728.7540466585065 cutoff:4000 ]",
"[ 29/4 → 15/2 | gain:0.0008657330171865184 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3565.4423707696824 cutoff:4000 ]",
"[ 29/4 → 15/2 | gain:0.0008657330171865184 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3565.4423707696824 cutoff:4000 ]",
"[ 29/4 → 15/2 | s:hh3 gain:0.7 ]",
"[ (29/4 → 91/12) ⇝ 61/8 | gain:0.00043771267437304546 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3532.7239889283615 cutoff:4000 ]",
"[ (29/4 → 91/12) ⇝ 61/8 | gain:0.00043771267437304546 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3532.7239889283615 cutoff:4000 ]",
"[ 7/1 ⇜ (22/3 → 59/8) | gain:0.0005745826370722221 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3663.507823075358 cutoff:4000 ]",
"[ 7/1 ⇜ (22/3 → 59/8) | gain:0.0005745826370722221 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3663.507823075358 cutoff:4000 ]",
"[ 59/8 → 15/2 | note:D2 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2991.774409503181 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 59/8 → 15/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2991.774409503181 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (59/8 → 23/3) ⇝ 31/4 | gain:0.0005331735858040315 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3467.276011071639 cutoff:4000 ]",
"[ (59/8 → 23/3) ⇝ 31/4 | gain:0.0005331735858040315 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3467.276011071639 cutoff:4000 ]",
"[ 57/8 ⇜ (89/12 → 15/2) | gain:0.0007011936914869215 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3598.149539397671 cutoff:4000 ]",
"[ 57/8 ⇜ (89/12 → 15/2) | gain:0.0007011936914869215 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3598.149539397671 cutoff:4000 ]",
"[ 15/2 → 61/8 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2995.0220264467503 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 15/2 → 61/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2995.0220264467503 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 15/2 → 31/4 | gain:0.0006576787875353331 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3434.557629230318 cutoff:4000 ]",
"[ 15/2 → 31/4 | gain:0.0006576787875353331 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3434.557629230318 cutoff:4000 ]",
"[ 15/2 → 31/4 | s:bd gain:0.7 ]",
"[ (15/2 → 47/6) ⇝ 63/8 | gain:0.0003322155712311059 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3401.8504606023293 cutoff:4000 ]",
"[ (15/2 → 47/6) ⇝ 63/8 | gain:0.0003322155712311059 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3401.8504606023293 cutoff:4000 ]",
"[ 15/2 → 8/1 | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2998.3738658769826 ]",
"[ 15/2 → 8/1 | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2998.3738658769826 ]",
"[ 15/2 → 8/1 | s:sn gain:0.7 ]",
"[ 29/4 ⇜ (91/12 → 61/8) | gain:0.00043771267437304546 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3532.7239889283615 cutoff:4000 ]",
"[ 29/4 ⇜ (91/12 → 61/8) | gain:0.00043771267437304546 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3532.7239889283615 cutoff:4000 ]",
"[ (61/8 → 95/12) ⇝ 8/1 | gain:0.00040393160954279157 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3336.4921769246425 cutoff:4000 ]",
"[ (61/8 → 95/12) ⇝ 8/1 | gain:0.00040393160954279157 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3336.4921769246425 cutoff:4000 ]",
"[ (61/8 → 8/1) ⇝ 65/8 | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2999.5934052398757 ]",
"[ (61/8 → 8/1) ⇝ 65/8 | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2999.5934052398757 ]",
"[ 59/8 ⇜ (23/3 → 31/4) | gain:0.0005331735858040315 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3467.276011071639 cutoff:4000 ]",
"[ 59/8 ⇜ (23/3 → 31/4) | gain:0.0005331735858040315 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3467.276011071639 cutoff:4000 ]",
"[ 31/4 → 63/8 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2999.0852191942718 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 31/4 → 63/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2999.0852191942718 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 31/4 → 8/1 | gain:0.0004978069306625383 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3303.852260680389 cutoff:4000 ]",
"[ 31/4 → 8/1 | gain:0.0004978069306625383 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3303.852260680389 cutoff:4000 ]",
"[ 31/4 → 8/1 | s:hh3 gain:0.7 ]",
"[ (31/4 → 8/1) ⇝ 65/8 | gain:0.0002512336761852884 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3271.2459533414954 cutoff:4000 ]",
"[ (31/4 → 8/1) ⇝ 65/8 | gain:0.0002512336761852884 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3271.2459533414954 cutoff:4000 ]",
"[ (31/4 → 8/1) ⇝ 33/4 | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:3000 ]",
"[ (31/4 → 8/1) ⇝ 33/4 | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:3000 ]",
"[ 15/2 ⇜ (47/6 → 63/8) | gain:0.0003322155712311059 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3401.8504606023293 cutoff:4000 ]",
"[ 15/2 ⇜ (47/6 → 63/8) | gain:0.0003322155712311059 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3401.8504606023293 cutoff:4000 ]",
"[ 63/8 → 8/1 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2999.898347482845 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 63/8 → 8/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2999.898347482845 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 63/8 → 8/1 | s:bd gain:0.7 ]",
"[ (63/8 → 8/1) ⇝ 33/4 | gain:0.0003049279244110808 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3206.156506355406 cutoff:4000 ]",
"[ (63/8 → 8/1) ⇝ 33/4 | gain:0.0003049279244110808 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3206.156506355406 cutoff:4000 ]",
"[ (63/8 → 8/1) ⇝ 67/8 | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2999.5934052398757 ]",
"[ (63/8 → 8/1) ⇝ 67/8 | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2999.5934052398757 ]",
"[ 61/8 ⇜ (95/12 → 8/1) | gain:0.00040393160954279157 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3336.4921769246425 cutoff:4000 ]",
"[ 61/8 ⇜ (95/12 → 8/1) | gain:0.00040393160954279157 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3336.4921769246425 cutoff:4000 ]",
"[ 31/4 ⇜ (8/1 → 97/12) ⇝ 65/8 | gain:0.0002512336761852884 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3271.2459533414954 cutoff:4000 ]",
"[ 31/4 ⇜ (8/1 → 97/12) ⇝ 65/8 | gain:0.0002512336761852884 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3271.2459533414954 cutoff:4000 ]",
"[ 61/8 ⇜ (8/1 → 65/8) | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2999.5934052398757 ]",
"[ 61/8 ⇜ (8/1 → 65/8) | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2999.5934052398757 ]",
"[ 63/8 ⇜ (8/1 → 49/6) ⇝ 33/4 | gain:0.0003049279244110808 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3206.156506355406 cutoff:4000 ]",
"[ 63/8 ⇜ (8/1 → 49/6) ⇝ 33/4 | gain:0.0003049279244110808 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3206.156506355406 cutoff:4000 ]",
"[ 31/4 ⇜ (8/1 → 33/4) | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:3000 ]",
"[ 31/4 ⇜ (8/1 → 33/4) | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:3000 ]",
"[ 8/1 → 33/4 | gain:0.0003754669800233334 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3173.6845194498705 cutoff:4000 ]",
"[ 8/1 → 33/4 | gain:0.0003754669800233334 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3173.6845194498705 cutoff:4000 ]",
"[ 8/1 → 33/4 | s:bd gain:0.7 ]",
"[ (8/1 → 25/3) ⇝ 67/8 | gain:0.2389653154600499 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3141.2684450220513 cutoff:4000 ]",
"[ (8/1 → 25/3) ⇝ 67/8 | gain:0.2389653154600499 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3141.2684450220513 cutoff:4000 ]",
"[ 63/8 ⇜ (8/1 → 67/8) | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2999.5934052398757 ]",
"[ 63/8 ⇜ (8/1 → 67/8) | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2999.5934052398757 ]",
"[ 31/4 ⇜ (97/12 → 65/8) | gain:0.0002512336761852884 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3271.2459533414954 cutoff:4000 ]",
"[ 31/4 ⇜ (97/12 → 65/8) | gain:0.0002512336761852884 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3271.2459533414954 cutoff:4000 ]",
"[ 65/8 → 33/4 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2999.0852191942718 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 65/8 → 33/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2999.0852191942718 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (65/8 → 101/12) ⇝ 17/2 | gain:0.00022940355872926835 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3076.6262403774385 cutoff:4000 ]",
"[ (65/8 → 101/12) ⇝ 17/2 | gain:0.00022940355872926835 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3076.6262403774385 cutoff:4000 ]",
"[ 63/8 ⇜ (49/6 → 33/4) | gain:0.0003049279244110808 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3206.156506355406 cutoff:4000 ]",
"[ 63/8 ⇜ (49/6 → 33/4) | gain:0.0003049279244110808 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3206.156506355406 cutoff:4000 ]",
"[ 33/4 → 17/2 | gain:0.00028223848042460063 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3044.4111862696313 cutoff:4000 ]",
"[ 33/4 → 17/2 | gain:0.00028223848042460063 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3044.4111862696313 cutoff:4000 ]",
"[ 33/4 → 17/2 | s:hh3 gain:0.7 ]",
"[ (33/4 → 103/12) ⇝ 69/8 | gain:0.17948457334876392 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3012.274194959679 cutoff:4000 ]",
"[ (33/4 → 103/12) ⇝ 69/8 | gain:0.17948457334876392 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3012.274194959679 cutoff:4000 ]",
"[ 8/1 ⇜ (25/3 → 67/8) | gain:0.2389653154600499 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3141.2684450220513 cutoff:4000 ]",
"[ 8/1 ⇜ (25/3 → 67/8) | gain:0.2389653154600499 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3141.2684450220513 cutoff:4000 ]",
"[ 67/8 → 17/2 | note:D2 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2995.0220264467503 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 67/8 → 17/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2995.0220264467503 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (67/8 → 26/3) ⇝ 35/4 | gain:0.21713481397646955 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2948.256412446248 cutoff:4000 ]",
"[ (67/8 → 26/3) ⇝ 35/4 | gain:0.21713481397646955 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2948.256412446248 cutoff:4000 ]",
"[ 65/8 ⇜ (101/12 → 17/2) | gain:0.00022940355872926835 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3076.6262403774385 cutoff:4000 ]",
"[ 65/8 ⇜ (101/12 → 17/2) | gain:0.00022940355872926835 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3076.6262403774385 cutoff:4000 ]",
"[ 17/2 → 69/8 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2991.774409503181 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 17/2 → 69/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2991.774409503181 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 17/2 → 35/4 | gain:0.00021149262064247462 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2916.386590360237 cutoff:4000 ]",
"[ 17/2 → 35/4 | gain:0.00021149262064247462 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2916.386590360237 cutoff:4000 ]",
"[ 17/2 → 35/4 | s:bd gain:0.7 ]",
"[ (17/2 → 53/6) ⇝ 71/8 | gain:0.1343955752824098 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2884.6167674275184 cutoff:4000 ]",
"[ (17/2 → 53/6) ⇝ 71/8 | gain:0.1343955752824098 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2884.6167674275184 cutoff:4000 ]",
"[ 17/2 → 9/1 | s:sn gain:0.7 ]",
"[ 33/4 ⇜ (103/12 → 69/8) | gain:0.17948457334876392 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3012.274194959679 cutoff:4000 ]",
"[ 33/4 ⇜ (103/12 → 69/8) | gain:0.17948457334876392 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3012.274194959679 cutoff:4000 ]",
"[ (69/8 → 107/12) ⇝ 9/1 | gain:0.16235819115213307 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2821.398875337315 cutoff:4000 ]",
"[ (69/8 → 107/12) ⇝ 9/1 | gain:0.16235819115213307 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2821.398875337315 cutoff:4000 ]",
"[ 67/8 ⇜ (26/3 → 35/4) | gain:0.21713481397646955 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2948.256412446248 cutoff:4000 ]",
"[ 67/8 ⇜ (26/3 → 35/4) | gain:0.21713481397646955 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2948.256412446248 cutoff:4000 ]",
"[ 35/4 → 71/8 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2982.856914513109 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 35/4 → 71/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2982.856914513109 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 35/4 → 9/1 | gain:0.19946652199116702 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2789.9616382401937 cutoff:4000 ]",
"[ 35/4 → 9/1 | gain:0.19946652199116702 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2789.9616382401937 cutoff:4000 ]",
"[ 35/4 → 9/1 | s:hh3 gain:0.7 ]",
"[ (35/4 → 109/12) ⇝ 73/8 | gain:0.10036006119411293 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2758.6460625610725 cutoff:4000 ]",
"[ (35/4 → 109/12) ⇝ 73/8 | gain:0.10036006119411293 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2758.6460625610725 cutoff:4000 ]",
"[ 17/2 ⇜ (53/6 → 71/8) | gain:0.1343955752824098 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2884.6167674275184 cutoff:4000 ]",
"[ 17/2 ⇜ (53/6 → 71/8) | gain:0.1343955752824098 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2884.6167674275184 cutoff:4000 ]",
"[ 71/8 → 9/1 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2977.1924080321423 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 71/8 → 9/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2977.1924080321423 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (71/8 → 55/6) ⇝ 37/4 | gain:0.12109683385552102 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2696.4013367420957 cutoff:4000 ]",
"[ (71/8 → 55/6) ⇝ 37/4 | gain:0.12109683385552102 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2696.4013367420957 cutoff:4000 ]",
"[ 69/8 ⇜ (107/12 → 9/1) | gain:0.16235819115213307 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2821.398875337315 cutoff:4000 ]",
"[ 69/8 ⇜ (107/12 → 9/1) | gain:0.16235819115213307 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2821.398875337315 cutoff:4000 ]",
"[ 9/1 → 37/4 | gain:0.1486933887883662 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2665.4828519155726 cutoff:4000 ]",
"[ 9/1 → 37/4 | gain:0.1486933887883662 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2665.4828519155726 cutoff:4000 ]",
"[ 9/1 → 37/4 | s:bd gain:0.7 ]",
"[ (9/1 → 28/3) ⇝ 75/8 | gain:0.07477587990602098 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2634.707357306267 cutoff:4000 ]",
"[ (9/1 → 28/3) ⇝ 75/8 | gain:0.07477587990602098 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2634.707357306267 cutoff:4000 ]",
"[ 35/4 ⇜ (109/12 → 73/8) | gain:0.10036006119411293 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2758.6460625610725 cutoff:4000 ]",
"[ 35/4 ⇜ (109/12 → 73/8) | gain:0.10036006119411293 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2758.6460625610725 cutoff:4000 ]",
"[ 73/8 → 37/4 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2963.4689354775064 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 73/8 → 37/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2963.4689354775064 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (73/8 → 113/12) ⇝ 19/2 | gain:0.09014541883675263 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2573.60640622541 cutoff:4000 ]",
"[ (73/8 → 113/12) ⇝ 19/2 | gain:0.09014541883675263 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2573.60640622541 cutoff:4000 ]",
"[ 71/8 ⇜ (55/6 → 37/4) | gain:0.12109683385552102 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2696.4013367420957 cutoff:4000 ]",
"[ 71/8 ⇜ (55/6 → 37/4) | gain:0.12109683385552102 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2696.4013367420957 cutoff:4000 ]",
"[ 37/4 → 19/2 | gain:0.11064613655745076 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2543.291419087276 cutoff:4000 ]",
"[ 37/4 → 19/2 | gain:0.11064613655745076 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2543.291419087276 cutoff:4000 ]",
"[ 37/4 → 19/2 | s:hh3 gain:0.7 ]",
"[ (37/4 → 115/12) ⇝ 77/8 | gain:0.05562379698730943 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2513.140359039332 cutoff:4000 ]",
"[ (37/4 → 115/12) ⇝ 77/8 | gain:0.05562379698730943 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2513.140359039332 cutoff:4000 ]",
"[ 9/1 ⇜ (28/3 → 75/8) | gain:0.07477587990602098 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2634.707357306267 cutoff:4000 ]",
"[ 9/1 ⇜ (28/3 → 75/8) | gain:0.07477587990602098 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2634.707357306267 cutoff:4000 ]",
"[ 75/8 → 19/2 | note:D2 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2946.5812012110136 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 75/8 → 19/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2946.5812012110136 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (75/8 → 29/3) ⇝ 39/4 | gain:0.0670223447192876 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2453.350656156431 cutoff:4000 ]",
"[ (75/8 → 29/3) ⇝ 39/4 | gain:0.0670223447192876 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2453.350656156431 cutoff:4000 ]",
"[ 73/8 ⇜ (113/12 → 19/2) | gain:0.09014541883675263 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2573.60640622541 cutoff:4000 ]",
"[ 73/8 ⇜ (113/12 → 19/2) | gain:0.09014541883675263 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2573.60640622541 cutoff:4000 ]",
"[ 19/2 → 77/8 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2936.9631544781614 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 19/2 → 77/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2936.9631544781614 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 19/2 → 39/4 | gain:0.08225029341498115 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2423.7222579792624 cutoff:4000 ]",
"[ 19/2 → 39/4 | gain:0.08225029341498115 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2423.7222579792624 cutoff:4000 ]",
"[ 19/2 → 39/4 | s:bd gain:0.7 ]",
"[ (19/2 → 59/6) ⇝ 79/8 | gain:0.04134410948782485 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2394.2782744524975 cutoff:4000 ]",
"[ (19/2 → 59/6) ⇝ 79/8 | gain:0.04134410948782485 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2394.2782744524975 cutoff:4000 ]",
"[ 19/2 → 10/1 | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2921.0844879970778 ]",
"[ 19/2 → 10/1 | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2921.0844879970778 ]",
"[ 19/2 → 10/1 | s:sn gain:0.7 ]",
"[ 37/4 ⇜ (115/12 → 77/8) | gain:0.05562379698730943 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2513.140359039332 cutoff:4000 ]",
"[ 37/4 ⇜ (115/12 → 77/8) | gain:0.05562379698730943 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2513.140359039332 cutoff:4000 ]",
"[ (77/8 → 119/12) ⇝ 10/1 | gain:0.04981524842313599 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2335.9636991872226 cutoff:4000 ]",
"[ (77/8 → 119/12) ⇝ 10/1 | gain:0.04981524842313599 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2335.9636991872226 cutoff:4000 ]",
"[ (77/8 → 10/1) ⇝ 81/8 | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2909.5402784268977 ]",
"[ (77/8 → 10/1) ⇝ 81/8 | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2909.5402784268977 ]",
"[ 75/8 ⇜ (29/3 → 39/4) | gain:0.0670223447192876 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2453.350656156431 cutoff:4000 ]",
"[ 75/8 ⇜ (29/3 → 39/4) | gain:0.0670223447192876 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2453.350656156431 cutoff:4000 ]",
"[ 39/4 → 79/8 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2915.4076660819765 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 39/4 → 79/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2915.4076660819765 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 39/4 → 10/1 | gain:0.0611394178141992 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2307.1030993509794 cutoff:4000 ]",
"[ 39/4 → 10/1 | gain:0.0611394178141992 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2307.1030993509794 cutoff:4000 ]",
"[ 39/4 → 10/1 | s:hh3 gain:0.7 ]",
"[ (39/4 → 10/1) ⇝ 81/8 | gain:0.030737730012853577 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2278.446896257612 cutoff:4000 ]",
"[ (39/4 → 10/1) ⇝ 81/8 | gain:0.030737730012853577 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2278.446896257612 cutoff:4000 ]",
"[ (39/4 → 10/1) ⇝ 41/4 | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2897.237368890237 ]",
"[ (39/4 → 10/1) ⇝ 41/4 | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2897.237368890237 ]",
"[ 19/2 ⇜ (59/6 → 79/8) | gain:0.04134410948782485 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2394.2782744524975 cutoff:4000 ]",
"[ 19/2 ⇜ (59/6 → 79/8) | gain:0.04134410948782485 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2394.2782744524975 cutoff:4000 ]",
"[ 79/8 → 10/1 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2903.483208638841 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ 79/8 → 10/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2903.483208638841 lpattack:0.1 lpenv:2 ftype:24db ]",
"[ (79/8 → 10/1) ⇝ 41/4 | gain:0.03705744590301562 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2221.7672848073694 cutoff:4000 ]",
"[ (79/8 → 10/1) ⇝ 41/4 | gain:0.03705744590301562 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2221.7672848073694 cutoff:4000 ]",
"[ (79/8 → 10/1) ⇝ 83/8 | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2884.183170199766 ]",
"[ (79/8 → 10/1) ⇝ 83/8 | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2884.183170199766 ]",
"[ 77/8 ⇜ (119/12 → 10/1) | gain:0.04981524842313599 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2335.9636991872226 cutoff:4000 ]",
"[ 77/8 ⇜ (119/12 → 10/1) | gain:0.04981524842313599 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2335.9636991872226 cutoff:4000 ]",
]
`;
exports[`renders tunes > tune: juxUndTollerei 1`] = `
[
"[ 0/1 → 1/4 | note:c3 s:sawtooth pan:0 cutoff:1188.2154262966046 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]",

View File

@ -222,7 +222,6 @@ export const testCycles = {
randomBells: 24,
waa: 16,
waar: 16,
hyperpop: 10,
festivalOfFingers3: 16,
};

View File

@ -447,58 +447,6 @@ note(
.room(.5)
.lpa(.125).lpenv(-2).v("8:.125").fanchor(.25)`;
export const hyperpop = `// "Hyperpop"
// @license CC BY-NC-SA 4.0 https://creativecommons.org/licenses/by-nc-sa/4.0/
// @by Felix Roos
const lfo = cosine.slow(15);
const lfo2 = sine.slow(16);
const filter1 = x=>x.cutoff(lfo2.range(300,3000));
const filter2 = x=>x.hcutoff(lfo.range(1000,6000)).cutoff(4000)
const scales = cat('D3 major', 'G3 major').slow(8)
samples({
bd: '344/344757_1676145-lq.mp3',
sn: '387/387186_7255534-lq.mp3',
hh: '561/561241_12517458-lq.mp3',
hh2:'44/44944_236326-lq.mp3',
hh3: '44/44944_236326-lq.mp3',
}, 'https://cdn.freesound.org/previews/')
stack(
"-7 0 -7 7".struct("x(5,8,1)").fast(2).sub(7)
.scale(scales)
.note()
.s("sawtooth,square")
.gain(.3).attack(0.01).decay(0.1).sustain(.5)
.apply(filter1)
.lpa(.1).lpenv(2).ftype('24db')
,
n("~@3 [<2 3>,<4 5>]")
.echo(4,1/16,.7)
.scale(scales)
.s('square').gain(.7)
.attack(0.01).decay(0.1).sustain(0)
.apply(filter1),
"6 4 2".add(14)
.superimpose(sub("5"))
.fast(1).euclidLegato(3,8)
.mask("<1 0@7>")
.fast(2).n()
.echo(32, 1/8, .8)
.scale(scales)
.s("sawtooth")
.mul(gain(sine.range(.1,.4).slow(8)))
.attack(.001).decay(.2).sustain(0)
.apply(filter2)
).stack(
stack(
"bd <~@7 [~ bd]>".fast(2),
"~ sn",
"[~ hh3]*2"
).s().fast(2).gain(.7)
).slow(2)`;
export const festivalOfFingers3 = `// "Festival of fingers 3"
// @license CC BY-NC-SA 4.0 https://creativecommons.org/licenses/by-nc-sa/4.0/
// @by Felix Roos