diff --git a/.eslintignore b/.eslintignore index 13e635f3..58d3643d 100644 --- a/.eslintignore +++ b/.eslintignore @@ -18,4 +18,5 @@ vite.config.js **/*.json **/dev-dist **/dist -/src-tauri/target/**/* \ No newline at end of file +/src-tauri/target/**/* +reverbGen.mjs \ No newline at end of file diff --git a/.github/workflows/tauri.yml b/.github/workflows/tauri.yml index 39ec34ca..07fd91be 100644 --- a/.github/workflows/tauri.yml +++ b/.github/workflows/tauri.yml @@ -42,7 +42,7 @@ jobs: if: matrix.platform == 'ubuntu-latest' run: | sudo apt-get update - sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf + sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf libasound2-dev - name: Install app dependencies from lockfile and build web run: pnpm install diff --git a/packages/codemirror/index.mjs b/packages/codemirror/index.mjs index bf7ce971..c847c32c 100644 --- a/packages/codemirror/index.mjs +++ b/packages/codemirror/index.mjs @@ -1,3 +1,4 @@ export * from './codemirror.mjs'; export * from './highlight.mjs'; export * from './flash.mjs'; +export * from './slider.mjs'; diff --git a/packages/codemirror/package.json b/packages/codemirror/package.json index 0e32fef6..4e443648 100644 --- a/packages/codemirror/package.json +++ b/packages/codemirror/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/codemirror", - "version": "0.8.4", + "version": "0.9.0", "description": "Codemirror Extensions for Strudel", "main": "index.mjs", "publishConfig": { diff --git a/packages/codemirror/slider.mjs b/packages/codemirror/slider.mjs new file mode 100644 index 00000000..519e5610 --- /dev/null +++ b/packages/codemirror/slider.mjs @@ -0,0 +1,135 @@ +import { ref, pure } from '@strudel.cycles/core'; +import { WidgetType, ViewPlugin, Decoration } from '@codemirror/view'; +import { StateEffect, StateField } from '@codemirror/state'; + +export let sliderValues = {}; +const getSliderID = (from) => `slider_${from}`; + +export class SliderWidget extends WidgetType { + constructor(value, min, max, from, to, step, view) { + super(); + this.value = value; + this.min = min; + this.max = max; + this.from = from; + this.originalFrom = from; + this.to = to; + this.step = step; + this.view = view; + } + + eq() { + return false; + } + + toDOM() { + let wrap = document.createElement('span'); + wrap.setAttribute('aria-hidden', 'true'); + wrap.className = 'cm-slider'; // inline-flex items-center + let slider = wrap.appendChild(document.createElement('input')); + slider.type = 'range'; + slider.min = this.min; + slider.max = this.max; + slider.step = this.step ?? (this.max - this.min) / 1000; + slider.originalValue = this.value; + // to make sure the code stays in sync, let's save the original value + // becuase .value automatically clamps values so it'll desync with the code + slider.value = slider.originalValue; + slider.from = this.from; + slider.originalFrom = this.originalFrom; + slider.to = this.to; + slider.style = 'width:64px;margin-right:4px;transform:translateY(4px)'; + this.slider = slider; + slider.addEventListener('input', (e) => { + const next = e.target.value; + let insert = next; + //let insert = next.toFixed(2); + const to = slider.from + slider.originalValue.length; + let change = { from: slider.from, to, insert }; + slider.originalValue = insert; + slider.value = insert; + this.view.dispatch({ changes: change }); + const id = getSliderID(slider.originalFrom); // matches id generated in transpiler + window.postMessage({ type: 'cm-slider', value: Number(next), id }); + }); + return wrap; + } + + ignoreEvent(e) { + return true; + } +} + +export const setWidgets = StateEffect.define(); + +export const updateWidgets = (view, widgets) => { + view.dispatch({ effects: setWidgets.of(widgets) }); +}; + +function getWidgets(widgetConfigs, view) { + return widgetConfigs.map(({ from, to, value, min, max, step }) => { + return Decoration.widget({ + widget: new SliderWidget(value, min, max, from, to, step, view), + side: 0, + }).range(from /* , to */); + }); +} + +export const sliderPlugin = ViewPlugin.fromClass( + class { + decorations; //: DecorationSet + + constructor(view /* : EditorView */) { + this.decorations = Decoration.set([]); + } + + update(update /* : ViewUpdate */) { + update.transactions.forEach((tr) => { + if (tr.docChanged) { + this.decorations = this.decorations.map(tr.changes); + const iterator = this.decorations.iter(); + while (iterator.value) { + // when the widgets are moved, we need to tell the dom node the current position + // this is important because the updateSliderValue function has to work with the dom node + if (iterator.value?.widget?.slider) { + iterator.value.widget.slider.from = iterator.from; + iterator.value.widget.slider.to = iterator.to; + } + iterator.next(); + } + } + for (let e of tr.effects) { + if (e.is(setWidgets)) { + this.decorations = Decoration.set(getWidgets(e.value, update.view)); + } + } + }); + } + }, + { + decorations: (v) => v.decorations, + }, +); + +export let slider = (value) => { + console.warn('slider will only work when the transpiler is used... passing value as is'); + return pure(value); +}; +// function transpiled from slider = (value, min, max) +export let sliderWithID = (id, value, min, max) => { + sliderValues[id] = value; // sync state at eval time (code -> state) + return ref(() => sliderValues[id]); // use state at query time +}; +// update state when sliders are moved +if (typeof window !== 'undefined') { + window.addEventListener('message', (e) => { + if (e.data.type === 'cm-slider') { + if (sliderValues[e.data.id] !== undefined) { + // update state when slider is moved + sliderValues[e.data.id] = e.data.value; + } else { + console.warn(`slider with id "${e.data.id}" is not registered. Only ${Object.keys(sliderValues)}`); + } + } + }); +} diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs index 71f58427..8841b4bc 100644 --- a/packages/core/controls.mjs +++ b/packages/core/controls.mjs @@ -86,6 +86,16 @@ const generic_params = [ * */ ['gain'], + /** + * Gain applied after all effects have been processed. + * + * @name postgain + * @example + * s("bd sd,hh*4") + * .compressor("-20:20:10:.002:.02").postgain(1.5) + * + */ + ['postgain'], /** * Like {@link gain}, but linear. * @@ -299,16 +309,52 @@ const generic_params = [ */ ['end'], /** - * Loops the sample (from `begin` to `end`) the specified number of times. + * Loops the sample. * Note that the tempo of the loop is not synced with the cycle tempo. + * To change the loop region, use loopBegin / loopEnd. * * @name loop - * @param {number | Pattern} times How often the sample is looped + * @param {number | Pattern} on If 1, the sample is looped * @example - * s("bd").loop("<1 2 3 4>").osc() + * s("casio").loop(1) * */ ['loop'], + /** + * Begin to loop at a specific point in the sample (inbetween `begin` and `end`). + * Note that the loop point must be inbetween `begin` and `end`, and before `loopEnd`! + * Note: Samples starting with wt_ will automatically loop! (wt = wavetable) + * + * @name loopBegin + * @param {number | Pattern} time between 0 and 1, where 1 is the length of the sample + * @synonyms loopb + * @example + * s("space").loop(1) + * .loopBegin("<0 .125 .25>").scope() + */ + ['loopBegin', 'loopb'], + /** + * + * End the looping section at a specific point in the sample (inbetween `begin` and `end`). + * Note that the loop point must be inbetween `begin` and `end`, and after `loopBegin`! + * + * @name loopEnd + * @param {number | Pattern} time between 0 and 1, where 1 is the length of the sample + * @synonyms loope + * @example + * s("space").loop(1) + * .loopEnd("<1 .75 .5 .25>").scope() + */ + ['loopEnd', 'loope'], + /** + * bit crusher effect. + * + * @name crush + * @param {number | Pattern} depth between 1 (for drastic reduction in bit-depth) to 16 (for barely no reduction). + * @example + * s(",hh*3").fast(2).crush("<16 8 7 6 5 4 3 2>") + * + */ // TODO: currently duplicated with "native" legato // TODO: superdirt legato will do more: https://youtu.be/dQPmE1WaD1k?t=419 /** @@ -323,15 +369,6 @@ const generic_params = [ */ // ['legato'], // ['clhatdecay'], - /** - * bit crusher effect. - * - * @name crush - * @param {number | Pattern} depth between 1 (for drastic reduction in bit-depth) to 16 (for barely no reduction). - * @example - * s(",hh*3").fast(2).crush("<16 8 7 6 5 4 3 2>") - * - */ ['crush'], /** * fake-resampling for lowering the sample rate. Caution: This effect seems to only work in chromium based browsers @@ -343,7 +380,6 @@ const generic_params = [ * */ ['coarse'], - /** * choose the channel the pattern is sent to in superdirt * @@ -377,6 +413,227 @@ const generic_params = [ * */ [['cutoff', 'resonance'], 'ctf', 'lpf', 'lp'], + + /** + * Sets the lowpass filter envelope modulation depth. + * @name lpenv + * @param {number | Pattern} modulation depth of the lowpass filter envelope between 0 and _n_ + * @synonyms lpe + * @example + * note("") + * .sound('sawtooth') + * .lpf(500) + * .lpa(.5) + * .lpenv("<4 2 1 0 -1 -2 -4>/4") + */ + ['lpenv', 'lpe'], + /** + * Sets the highpass filter envelope modulation depth. + * @name hpenv + * @param {number | Pattern} modulation depth of the highpass filter envelope between 0 and _n_ + * @synonyms hpe + * @example + * note("") + * .sound('sawtooth') + * .hpf(500) + * .hpa(.5) + * .hpenv("<4 2 1 0 -1 -2 -4>/4") + */ + ['hpenv', 'hpe'], + /** + * Sets the bandpass filter envelope modulation depth. + * @name bpenv + * @param {number | Pattern} modulation depth of the bandpass filter envelope between 0 and _n_ + * @synonyms bpe + * @example + * note("") + * .sound('sawtooth') + * .bpf(500) + * .bpa(.5) + * .bpenv("<4 2 1 0 -1 -2 -4>/4") + */ + ['bpenv', 'bpe'], + /** + * Sets the attack duration for the lowpass filter envelope. + * @name lpattack + * @param {number | Pattern} attack time of the filter envelope + * @synonyms lpa + * @example + * note("") + * .sound('sawtooth') + * .lpf(500) + * .lpa("<.5 .25 .1 .01>/4") + * .lpenv(4) + */ + ['lpattack', 'lpa'], + /** + * Sets the attack duration for the highpass filter envelope. + * @name hpattack + * @param {number | Pattern} attack time of the highpass filter envelope + * @synonyms hpa + * @example + * note("") + * .sound('sawtooth') + * .hpf(500) + * .hpa("<.5 .25 .1 .01>/4") + * .hpenv(4) + */ + ['hpattack', 'hpa'], + /** + * Sets the attack duration for the bandpass filter envelope. + * @name bpattack + * @param {number | Pattern} attack time of the bandpass filter envelope + * @synonyms bpa + * @example + * note("") + * .sound('sawtooth') + * .bpf(500) + * .bpa("<.5 .25 .1 .01>/4") + * .bpenv(4) + */ + ['bpattack', 'bpa'], + /** + * Sets the decay duration for the lowpass filter envelope. + * @name lpdecay + * @param {number | Pattern} decay time of the filter envelope + * @synonyms lpd + * @example + * note("") + * .sound('sawtooth') + * .lpf(500) + * .lpd("<.5 .25 .1 0>/4") + * .lps(0.2) + * .lpenv(4) + */ + ['lpdecay', 'lpd'], + /** + * Sets the decay duration for the highpass filter envelope. + * @name hpdecay + * @param {number | Pattern} decay time of the highpass filter envelope + * @synonyms hpd + * @example + * note("") + * .sound('sawtooth') + * .hpf(500) + * .hpd("<.5 .25 .1 0>/4") + * .hps(0.2) + * .hpenv(4) + */ + ['hpdecay', 'hpd'], + /** + * Sets the decay duration for the bandpass filter envelope. + * @name bpdecay + * @param {number | Pattern} decay time of the bandpass filter envelope + * @synonyms bpd + * @example + * note("") + * .sound('sawtooth') + * .bpf(500) + * .bpd("<.5 .25 .1 0>/4") + * .bps(0.2) + * .bpenv(4) + */ + ['bpdecay', 'bpd'], + /** + * Sets the sustain amplitude for the lowpass filter envelope. + * @name lpsustain + * @param {number | Pattern} sustain amplitude of the lowpass filter envelope + * @synonyms lps + * @example + * note("") + * .sound('sawtooth') + * .lpf(500) + * .lpd(.5) + * .lps("<0 .25 .5 1>/4") + * .lpenv(4) + */ + ['lpsustain', 'lps'], + /** + * Sets the sustain amplitude for the highpass filter envelope. + * @name hpsustain + * @param {number | Pattern} sustain amplitude of the highpass filter envelope + * @synonyms hps + * @example + * note("") + * .sound('sawtooth') + * .hpf(500) + * .hpd(.5) + * .hps("<0 .25 .5 1>/4") + * .hpenv(4) + */ + ['hpsustain', 'hps'], + /** + * Sets the sustain amplitude for the bandpass filter envelope. + * @name bpsustain + * @param {number | Pattern} sustain amplitude of the bandpass filter envelope + * @synonyms bps + * @example + * note("") + * .sound('sawtooth') + * .bpf(500) + * .bpd(.5) + * .bps("<0 .25 .5 1>/4") + * .bpenv(4) + */ + ['bpsustain', 'bps'], + /** + * Sets the release time for the lowpass filter envelope. + * @name lprelease + * @param {number | Pattern} release time of the filter envelope + * @synonyms lpr + * @example + * note("") + * .sound('sawtooth') + * .clip(.5) + * .lpf(500) + * .lpenv(4) + * .lpr("<.5 .25 .1 0>/4") + * .release(.5) + */ + ['lprelease', 'lpr'], + /** + * Sets the release time for the highpass filter envelope. + * @name hprelease + * @param {number | Pattern} release time of the highpass filter envelope + * @synonyms hpr + * @example + * note("") + * .sound('sawtooth') + * .clip(.5) + * .hpf(500) + * .hpenv(4) + * .hpr("<.5 .25 .1 0>/4") + * .release(.5) + */ + ['hprelease', 'hpr'], + /** + * Sets the release time for the bandpass filter envelope. + * @name bprelease + * @param {number | Pattern} release time of the bandpass filter envelope + * @synonyms bpr + * @example + * note("") + * .sound('sawtooth') + * .clip(.5) + * .bpf(500) + * .bpenv(4) + * .bpr("<.5 .25 .1 0>/4") + * .release(.5) + */ + ['bprelease', 'bpr'], + /** + * Sets the filter type. The 24db filter is more aggressive. More types might be added in the future. + * @name ftype + * @param {number | Pattern} type 12db (default) or 24db + * @example + * note("") + * .sound('sawtooth') + * .lpf(500) + * .bpenv(4) + * .ftype("<12db 24db>") + */ + ['ftype'], + ['fanchor'], /** * Applies the cutoff frequency of the **h**igh-**p**ass **f**ilter. * @@ -393,6 +650,45 @@ const generic_params = [ */ // currently an alias of 'hcutoff' https://github.com/tidalcycles/strudel/issues/496 // ['hpf'], + /** + * Applies a vibrato to the frequency of the oscillator. + * + * @name vib + * @synonyms vibrato, v + * @param {number | Pattern} frequency of the vibrato in hertz + * @example + * note("a") + * .vib("<.5 1 2 4 8 16>") + * @example + * // change the modulation depth with ":" + * note("a") + * .vib("<.5 1 2 4 8 16>:12") + */ + [['vib', 'vibmod'], 'vibrato', 'v'], + /** + * Adds pink noise to the mix + * + * @name noise + * @param {number | Pattern} wet wet amount + * @example + * sound("/2") + */ + ['noise'], + /** + * Sets the vibrato depth in semitones. Only has an effect if `vibrato` | `vib` | `v` is is also set + * + * @name vibmod + * @synonyms vmod + * @param {number | Pattern} depth of vibrato (in semitones) + * @example + * note("a").vib(4) + * .vibmod("<.25 .5 1 2 12>") + * @example + * // change the vibrato frequency with ":" + * note("a") + * .vibmod("<.25 .5 1 2 12>:8") + */ + [['vibmod', 'vib'], 'vmod'], [['hcutoff', 'hresonance'], 'hpf', 'hp'], /** * Controls the **h**igh-**p**ass **q**-value. @@ -693,20 +989,73 @@ const generic_params = [ * */ [['room', 'size']], + /** + * Reverb lowpass starting frequency (in hertz). + * When this property is changed, the reverb will be recaculated, so only change this sparsely.. + * + * @name roomlp + * @synonyms rlp + * @param {number} frequency between 0 and 20000hz + * @example + * s("bd sd").room(0.5).rlp(10000) + * @example + * s("bd sd").room(0.5).rlp(5000) + */ + ['roomlp', 'rlp'], + /** + * Reverb lowpass frequency at -60dB (in hertz). + * When this property is changed, the reverb will be recaculated, so only change this sparsely.. + * + * @name roomdim + * @synonyms rdim + * @param {number} frequency between 0 and 20000hz + * @example + * s("bd sd").room(0.5).rlp(10000).rdim(8000) + * @example + * s("bd sd").room(0.5).rlp(5000).rdim(400) + * + */ + ['roomdim', 'rdim'], + /** + * Reverb fade time (in seconds). + * When this property is changed, the reverb will be recaculated, so only change this sparsely.. + * + * @name roomfade + * @synonyms rfade + * @param {number} seconds for the reverb to fade + * @example + * s("bd sd").room(0.5).rlp(10000).rfade(0.5) + * @example + * s("bd sd").room(0.5).rlp(5000).rfade(4) + * + */ + ['roomfade', 'rfade'], + /** + * Sets the sample to use as an impulse response for the reverb. * * @name iresponse + * @param {string | Pattern} sample to use as an impulse response + * @synonyms ir + * @example + * s("bd sd").room(.8).ir("") + * + */ + [['ir', 'i'], 'iresponse'], /** * Sets the room size of the reverb, see {@link room}. + * When this property is changed, the reverb will be recaculated, so only change this sparsely.. * * @name roomsize * @param {number | Pattern} size between 0 and 10 - * @synonyms size, sz + * @synonyms rsize, sz, size * @example - * s("bd sd").room(.8).roomsize("<0 1 2 4 8>") + * s("bd sd").room(.8).rsize(1) + * @example + * s("bd sd").room(.8).rsize(4) * */ // TODO: find out why : // s("bd sd").room(.8).roomsize("<0 .2 .4 .6 .8 [1,0]>").osc() // .. does not work. Is it because room is only one effect? - ['size', 'sz', 'roomsize'], + ['roomsize', 'size', 'sz', 'rsize'], // ['sagogo'], // ['sclap'], // ['sclaves'], @@ -721,6 +1070,21 @@ const generic_params = [ * */ ['shape'], + /** + * Dynamics Compressor. The params are `compressor("threshold:ratio:knee:attack:release")` + * More info [here](https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode?retiredLocale=de#instance_properties) + * + * @name compressor + * @example + * s("bd sd,hh*4") + * .compressor("-20:20:10:.002:.02") + * + */ + [['compressor', 'compressorRatio', 'compressorKnee', 'compressorAttack', 'compressorRelease']], + ['compressorKnee'], + ['compressorRatio'], + ['compressorAttack'], + ['compressorRelease'], /** * Changes the speed of sample playback, i.e. a cheap way of changing pitch. * @@ -876,7 +1240,7 @@ const generic_params = [ ['pitchJump'], ['pitchJumpTime'], ['lfo', 'repeatTime'], - ['noise'], + ['znoise'], // noise on the frequency or as bubo calls it "frequency fog" :) ['zmod'], ['zcrush'], // like crush but scaled differently ['zdelay'], diff --git a/packages/core/examples/vite-vanilla-repl-cm6/README.md b/packages/core/examples/vite-vanilla-repl-cm6/README.md index 70d18e09..4d99d4e6 100644 --- a/packages/core/examples/vite-vanilla-repl-cm6/README.md +++ b/packages/core/examples/vite-vanilla-repl-cm6/README.md @@ -3,6 +3,6 @@ This folder demonstrates how to set up a strudel repl using vite and vanilla JS + codemirror. Run it using: ```sh -npm i -npm run dev +pnpm i +pnpm dev ``` diff --git a/packages/core/package.json b/packages/core/package.json index 16581904..8fd57242 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@strudel.cycles/core", - "version": "0.8.2", + "version": "0.9.0", "description": "Port of Tidal Cycles to JavaScript", "main": "index.mjs", "type": "module", diff --git a/packages/core/pattern.mjs b/packages/core/pattern.mjs index 7e694f49..598280bc 100644 --- a/packages/core/pattern.mjs +++ b/packages/core/pattern.mjs @@ -2273,14 +2273,14 @@ export const slice = register( false, // turns off auto-patternification ); -/* +/** * Works the same as slice, but changes the playback speed of each slice to match the duration of its step. * @name splice - * @memberof Pattern - * @returns Pattern * @example * await samples('github:tidalcycles/Dirt-Samples/master') - * s("breaks165").splice(8, "0 1 [2 3 0]@2 3 0@2 7").hurry(0.65) + * s("breaks165") + * .splice(8, "0 1 [2 3 0]@2 3 0@2 7") + * .hurry(0.65) */ export const splice = register( @@ -2307,9 +2307,16 @@ export const { loopAt, loopat } = register(['loopAt', 'loopat'], function (facto return _loopAt(factor, pat, 1); }); -// this function will be redefined in repl.mjs to use the correct cps value. +// the fit function will be redefined in repl.mjs to use the correct cps value. // It is still here to work in cases where repl.mjs is not used - +/** + * Makes the sample fit its event duration. Good for rhythmical loops like drum breaks. + * Similar to loopAt. + * @name fit + * @example + * samples({ rhodes: 'https://cdn.freesound.org/previews/132/132051_316502-lq.mp3' }) + * s("rhodes/4").fit() + */ export const fit = register('fit', (pat) => pat.withHap((hap) => hap.withValue((v) => ({ @@ -2336,3 +2343,9 @@ export const fit = register('fit', (pat) => export const { loopAtCps, loopatcps } = register(['loopAtCps', 'loopatcps'], function (factor, cps, pat) { return _loopAt(factor, pat, cps); }); + +/** exposes a custom value at query time. basically allows mutating state without evaluation */ +export const ref = (accessor) => + pure(1) + .withValue(() => reify(accessor())) + .innerJoin(); diff --git a/packages/core/signal.mjs b/packages/core/signal.mjs index d0db0be9..d1408809 100644 --- a/packages/core/signal.mjs +++ b/packages/core/signal.mjs @@ -160,7 +160,11 @@ export const __chooseWith = (pat, xs) => { if (xs.length == 0) { return silence; } - return pat.range(0, xs.length).fmap((i) => xs[Math.floor(i)]); + + return pat.range(0, xs.length).fmap((i) => { + const key = Math.min(Math.max(Math.floor(i), 0), xs.length - 1); + return xs[key]; + }); }; /** * Choose from the list of values (or patterns of values) using the given @@ -168,6 +172,8 @@ export const __chooseWith = (pat, xs) => { * @param {Pattern} pat * @param {*} xs * @returns {Pattern} + * @example + * note("c2 g2!2 d2 f1").s(chooseWith(sine.fast(2), ["sawtooth", "triangle", "bd:6"])) */ export const chooseWith = (pat, xs) => { return __chooseWith(pat, xs).outerJoin(); diff --git a/packages/csound/package.json b/packages/csound/package.json index e15cfeaf..a0d21b9f 100644 --- a/packages/csound/package.json +++ b/packages/csound/package.json @@ -1,6 +1,6 @@ { "name": "@strudel.cycles/csound", - "version": "0.8.0", + "version": "0.9.0", "description": "csound bindings for strudel", "main": "index.mjs", "publishConfig": { diff --git a/packages/desktopbridge/package.json b/packages/desktopbridge/package.json index c2acba9e..d750a82b 100644 --- a/packages/desktopbridge/package.json +++ b/packages/desktopbridge/package.json @@ -1,6 +1,7 @@ { "name": "@strudel/desktopbridge", "version": "0.1.0", + "private": true, "description": "tools/shims for communicating between the JS and Tauri (Rust) sides of the Studel desktop app", "main": "index.mjs", "type": "module", diff --git a/packages/midi/midi.mjs b/packages/midi/midi.mjs index 98509b46..ab59c2e4 100644 --- a/packages/midi/midi.mjs +++ b/packages/midi/midi.mjs @@ -5,7 +5,7 @@ This program is free software: you can redistribute it and/or modify it under th */ import * as _WebMidi from 'webmidi'; -import { Pattern, isPattern, logger } from '@strudel.cycles/core'; +import { Pattern, isPattern, logger, ref } from '@strudel.cycles/core'; import { noteToMidi } from '@strudel.cycles/core'; import { Note } from 'webmidi'; // if you use WebMidi from outside of this package, make sure to import that instance: @@ -15,8 +15,8 @@ function supportsMidi() { return typeof navigator.requestMIDIAccess === 'function'; } -function getMidiDeviceNamesString(outputs) { - return outputs.map((o) => `'${o.name}'`).join(' | '); +function getMidiDeviceNamesString(devices) { + return devices.map((o) => `'${o.name}'`).join(' | '); } export function enableWebMidi(options = {}) { @@ -52,30 +52,41 @@ export function enableWebMidi(options = {}) { }); }); } -// const outputByName = (name: string) => WebMidi.getOutputByName(name); -const outputByName = (name) => WebMidi.getOutputByName(name); -// output?: string | number, outputs: typeof WebMidi.outputs -function getDevice(output, outputs) { - if (!outputs.length) { +function getDevice(indexOrName, devices) { + if (!devices.length) { throw new Error(`🔌 No MIDI devices found. Connect a device or enable IAC Driver.`); } - if (typeof output === 'number') { - return outputs[output]; + if (typeof indexOrName === 'number') { + return devices[indexOrName]; } - if (typeof output === 'string') { - return outputByName(output); + const byName = (name) => devices.find((output) => output.name.includes(name)); + if (typeof indexOrName === 'string') { + return byName(indexOrName); } // attempt to default to first IAC device if none is specified - const IACOutput = outputs.find((output) => output.name.includes('IAC')); - const device = IACOutput ?? outputs[0]; + const IACOutput = byName('IAC'); + const device = IACOutput ?? devices[0]; if (!device) { throw new Error( - `🔌 MIDI device '${output ? output : ''}' not found. Use one of ${getMidiDeviceNamesString(WebMidi.outputs)}`, + `🔌 MIDI device '${device ? device : ''}' not found. Use one of ${getMidiDeviceNamesString(devices)}`, ); } - return IACOutput ?? outputs[0]; + return IACOutput ?? devices[0]; +} + +// send start/stop messages to outputs when repl starts/stops +if (typeof window !== 'undefined') { + window.addEventListener('message', (e) => { + if (!WebMidi?.enabled) { + return; + } + if (e.data === 'strudel-stop') { + WebMidi.outputs.forEach((output) => output.sendStop()); + } + // cannot start here, since we have no timing info, see sendStart below + }); } Pattern.prototype.midi = function (output) { @@ -103,6 +114,7 @@ Pattern.prototype.midi = function (output) { return this.onTrigger((time, hap, currentTime, cps) => { if (!WebMidi.enabled) { + console.log('not enabled'); return; } const device = getDevice(output, WebMidi.outputs); @@ -113,7 +125,7 @@ Pattern.prototype.midi = function (output) { const timeOffsetString = `+${offset}`; // destructure value - const { note, nrpnn, nrpv, ccn, ccv, midichan = 1 } = hap.value; + const { note, nrpnn, nrpv, ccn, ccv, midichan = 1, midicmd } = hap.value; const velocity = hap.context?.velocity ?? 0.9; // TODO: refactor velocity // note off messages will often a few ms arrive late, try to prevent glitching by subtracting from the duration length @@ -125,7 +137,7 @@ Pattern.prototype.midi = function (output) { time: timeOffsetString, }); } - if (ccv && ccn) { + if (ccv !== undefined && ccn !== undefined) { if (typeof ccv !== 'number' || ccv < 0 || ccv > 1) { throw new Error('expected ccv to be a number between 0 and 1'); } @@ -135,5 +147,46 @@ Pattern.prototype.midi = function (output) { const scaled = Math.round(ccv * 127); device.sendControlChange(ccn, scaled, midichan, { time: timeOffsetString }); } + if (hap.whole.begin + 0 === 0) { + // we need to start here because we have the timing info + device.sendStart({ time: timeOffsetString }); + } + if (['clock', 'midiClock'].includes(midicmd)) { + device.sendClock({ time: timeOffsetString }); + } else if (['start'].includes(midicmd)) { + device.sendStart({ time: timeOffsetString }); + } else if (['stop'].includes(midicmd)) { + device.sendStop({ time: timeOffsetString }); + } else if (['continue'].includes(midicmd)) { + device.sendContinue({ time: timeOffsetString }); + } }); }; + +let listeners = {}; +const refs = {}; + +export async function midin(input) { + const initial = await enableWebMidi(); // only returns on first init + const device = getDevice(input, WebMidi.inputs); + + if (initial) { + const otherInputs = WebMidi.inputs.filter((o) => o.name !== device.name); + logger( + `Midi enabled! Using "${device.name}". ${ + otherInputs?.length ? `Also available: ${getMidiDeviceNamesString(otherInputs)}` : '' + }`, + ); + refs[input] = {}; + } + const cc = (cc) => ref(() => refs[input][cc] || 0); + + listeners[input] && device.removeListener('midimessage', listeners[input]); + listeners[input] = (e) => { + const cc = e.dataBytes[0]; + const v = e.dataBytes[1]; + refs[input] && (refs[input][cc] = v / 127); + }; + device.addListener('midimessage', listeners[input]); + return cc; +} diff --git a/packages/midi/package.json b/packages/midi/package.json index 42679804..e13887e2 100644 --- a/packages/midi/package.json +++ b/packages/midi/package.json @@ -1,6 +1,6 @@ { "name": "@strudel.cycles/midi", - "version": "0.8.0", + "version": "0.9.0", "description": "Midi API for strudel", "main": "index.mjs", "publishConfig": { diff --git a/packages/mini/krill-parser.js b/packages/mini/krill-parser.js index e85e3363..7831087b 100644 --- a/packages/mini/krill-parser.js +++ b/packages/mini/krill-parser.js @@ -200,20 +200,21 @@ function peg$parse(input, options) { var peg$c23 = "*"; var peg$c24 = "?"; var peg$c25 = ":"; - var peg$c26 = "struct"; - var peg$c27 = "target"; - var peg$c28 = "euclid"; - var peg$c29 = "slow"; - var peg$c30 = "rotL"; - var peg$c31 = "rotR"; - var peg$c32 = "fast"; - var peg$c33 = "scale"; - var peg$c34 = "//"; - var peg$c35 = "cat"; - var peg$c36 = "$"; - var peg$c37 = "setcps"; - var peg$c38 = "setbpm"; - var peg$c39 = "hush"; + var peg$c26 = ".."; + var peg$c27 = "struct"; + var peg$c28 = "target"; + var peg$c29 = "euclid"; + var peg$c30 = "slow"; + var peg$c31 = "rotL"; + var peg$c32 = "rotR"; + var peg$c33 = "fast"; + var peg$c34 = "scale"; + var peg$c35 = "//"; + var peg$c36 = "cat"; + var peg$c37 = "$"; + var peg$c38 = "setcps"; + var peg$c39 = "setbpm"; + var peg$c40 = "hush"; var peg$r0 = /^[1-9]/; var peg$r1 = /^[eE]/; @@ -255,64 +256,67 @@ function peg$parse(input, options) { var peg$e30 = peg$literalExpectation("*", false); var peg$e31 = peg$literalExpectation("?", false); var peg$e32 = peg$literalExpectation(":", false); - var peg$e33 = peg$literalExpectation("struct", false); - var peg$e34 = peg$literalExpectation("target", false); - var peg$e35 = peg$literalExpectation("euclid", false); - var peg$e36 = peg$literalExpectation("slow", false); - var peg$e37 = peg$literalExpectation("rotL", false); - var peg$e38 = peg$literalExpectation("rotR", false); - var peg$e39 = peg$literalExpectation("fast", false); - var peg$e40 = peg$literalExpectation("scale", false); - var peg$e41 = peg$literalExpectation("//", false); - var peg$e42 = peg$classExpectation(["\n"], true, false); - var peg$e43 = peg$literalExpectation("cat", false); - var peg$e44 = peg$literalExpectation("$", false); - var peg$e45 = peg$literalExpectation("setcps", false); - var peg$e46 = peg$literalExpectation("setbpm", false); - var peg$e47 = peg$literalExpectation("hush", false); + var peg$e33 = peg$literalExpectation("..", false); + var peg$e34 = peg$literalExpectation("struct", false); + var peg$e35 = peg$literalExpectation("target", false); + var peg$e36 = peg$literalExpectation("euclid", false); + var peg$e37 = peg$literalExpectation("slow", false); + var peg$e38 = peg$literalExpectation("rotL", false); + var peg$e39 = peg$literalExpectation("rotR", false); + var peg$e40 = peg$literalExpectation("fast", false); + var peg$e41 = peg$literalExpectation("scale", false); + var peg$e42 = peg$literalExpectation("//", false); + var peg$e43 = peg$classExpectation(["\n"], true, false); + var peg$e44 = peg$literalExpectation("cat", false); + var peg$e45 = peg$literalExpectation("$", false); + var peg$e46 = peg$literalExpectation("setcps", false); + var peg$e47 = peg$literalExpectation("setbpm", false); + var peg$e48 = peg$literalExpectation("hush", false); var peg$f0 = function() { return parseFloat(text()); }; - var peg$f1 = function(chars) { return new AtomStub(chars.join("")) }; - var peg$f2 = function(s) { return s }; - var peg$f3 = function(s, stepsPerCycle) { s.arguments_.stepsPerCycle = stepsPerCycle ; return s; }; - var peg$f4 = function(a) { return a }; - var peg$f5 = function(s) { s.arguments_.alignment = 'slowcat'; return s; }; - var peg$f6 = function(a) { return x => x.options_['weight'] = a }; - var peg$f7 = function(a) { return x => x.options_['reps'] = a }; - var peg$f8 = function(p, s, r) { return x => x.options_['ops'].push({ type_: "bjorklund", arguments_ :{ pulse: p, step:s, rotation:r }}) }; - var peg$f9 = function(a) { return x => x.options_['ops'].push({ type_: "stretch", arguments_ :{ amount:a, type: 'slow' }}) }; - var peg$f10 = function(a) { return x => x.options_['ops'].push({ type_: "stretch", arguments_ :{ amount:a, type: 'fast' }}) }; - var peg$f11 = function(a) { return x => x.options_['ops'].push({ type_: "degradeBy", arguments_ :{ amount:a, seed: seed++ } }) }; - var peg$f12 = function(s) { return x => x.options_['ops'].push({ type_: "tail", arguments_ :{ element:s } }) }; - var peg$f13 = function(s, ops) { const result = new ElementStub(s, {ops: [], weight: 1, reps: 1}); + var peg$f1 = function() { return parseInt(text()); }; + var peg$f2 = function(chars) { return new AtomStub(chars.join("")) }; + var peg$f3 = function(s) { return s }; + var peg$f4 = function(s, stepsPerCycle) { s.arguments_.stepsPerCycle = stepsPerCycle ; return s; }; + var peg$f5 = function(a) { return a }; + var peg$f6 = function(s) { s.arguments_.alignment = 'slowcat'; return s; }; + var peg$f7 = function(a) { return x => x.options_['weight'] = a }; + var peg$f8 = function(a) { return x => x.options_['reps'] = a }; + var peg$f9 = function(p, s, r) { return x => x.options_['ops'].push({ type_: "bjorklund", arguments_ :{ pulse: p, step:s, rotation:r }}) }; + var peg$f10 = function(a) { return x => x.options_['ops'].push({ type_: "stretch", arguments_ :{ amount:a, type: 'slow' }}) }; + var peg$f11 = function(a) { return x => x.options_['ops'].push({ type_: "stretch", arguments_ :{ amount:a, type: 'fast' }}) }; + var peg$f12 = function(a) { return x => x.options_['ops'].push({ type_: "degradeBy", arguments_ :{ amount:a, seed: seed++ } }) }; + var peg$f13 = function(s) { return x => x.options_['ops'].push({ type_: "tail", arguments_ :{ element:s } }) }; + var peg$f14 = function(s) { return x => x.options_['ops'].push({ type_: "range", arguments_ :{ element:s } }) }; + var peg$f15 = function(s, ops) { const result = new ElementStub(s, {ops: [], weight: 1, reps: 1}); for (const op of ops) { op(result); } return result; }; - var peg$f14 = function(s) { return new PatternStub(s, 'fastcat'); }; - var peg$f15 = function(tail) { return { alignment: 'stack', list: tail }; }; - var peg$f16 = function(tail) { return { alignment: 'rand', list: tail, seed: seed++ }; }; - var peg$f17 = function(head, tail) { if (tail && tail.list.length > 0) { return new PatternStub([head, ...tail.list], tail.alignment, tail.seed); } else { return head; } }; - var peg$f18 = function(head, tail) { return new PatternStub(tail ? [head, ...tail.list] : [head], 'polymeter'); }; - var peg$f19 = function(sc) { return sc; }; - var peg$f20 = function(s) { return { name: "struct", args: { mini:s }}}; - var peg$f21 = function(s) { return { name: "target", args : { name:s}}}; - var peg$f22 = function(p, s, r) { return { name: "bjorklund", args :{ pulse: p, step:parseInt(s) }}}; - var peg$f23 = function(a) { return { name: "stretch", args :{ amount: a}}}; - var peg$f24 = function(a) { return { name: "shift", args :{ amount: "-"+a}}}; - var peg$f25 = function(a) { return { name: "shift", args :{ amount: a}}}; - var peg$f26 = function(a) { return { name: "stretch", args :{ amount: "1/"+a}}}; - var peg$f27 = function(s) { return { name: "scale", args :{ scale: s.join("")}}}; - var peg$f28 = function(s, v) { return v}; - var peg$f29 = function(s, ss) { ss.unshift(s); return new PatternStub(ss, 'slowcat'); }; - var peg$f30 = function(sg) {return sg}; - var peg$f31 = function(o, soc) { return new OperatorStub(o.name,o.args,soc)}; - var peg$f32 = function(sc) { return sc }; - var peg$f33 = function(c) { return c }; - var peg$f34 = function(v) { return new CommandStub("setcps", { value: v})}; - var peg$f35 = function(v) { return new CommandStub("setcps", { value: (v/120/2)})}; - var peg$f36 = function() { return new CommandStub("hush")}; + var peg$f16 = function(s) { return new PatternStub(s, 'fastcat'); }; + var peg$f17 = function(tail) { return { alignment: 'stack', list: tail }; }; + var peg$f18 = function(tail) { return { alignment: 'rand', list: tail, seed: seed++ }; }; + var peg$f19 = function(head, tail) { if (tail && tail.list.length > 0) { return new PatternStub([head, ...tail.list], tail.alignment, tail.seed); } else { return head; } }; + var peg$f20 = function(head, tail) { return new PatternStub(tail ? [head, ...tail.list] : [head], 'polymeter'); }; + var peg$f21 = function(sc) { return sc; }; + var peg$f22 = function(s) { return { name: "struct", args: { mini:s }}}; + var peg$f23 = function(s) { return { name: "target", args : { name:s}}}; + var peg$f24 = function(p, s, r) { return { name: "bjorklund", args :{ pulse: p, step:parseInt(s) }}}; + var peg$f25 = function(a) { return { name: "stretch", args :{ amount: a}}}; + var peg$f26 = function(a) { return { name: "shift", args :{ amount: "-"+a}}}; + var peg$f27 = function(a) { return { name: "shift", args :{ amount: a}}}; + var peg$f28 = function(a) { return { name: "stretch", args :{ amount: "1/"+a}}}; + var peg$f29 = function(s) { return { name: "scale", args :{ scale: s.join("")}}}; + var peg$f30 = function(s, v) { return v}; + var peg$f31 = function(s, ss) { ss.unshift(s); return new PatternStub(ss, 'slowcat'); }; + var peg$f32 = function(sg) {return sg}; + var peg$f33 = function(o, soc) { return new OperatorStub(o.name,o.args,soc)}; + var peg$f34 = function(sc) { return sc }; + var peg$f35 = function(c) { return c }; + var peg$f36 = function(v) { return new CommandStub("setcps", { value: v})}; + var peg$f37 = function(v) { return new CommandStub("setcps", { value: (v/120/2)})}; + var peg$f38 = function() { return new CommandStub("hush")}; var peg$currPos = 0; var peg$savedPos = 0; var peg$posDetailsCache = [{ line: 1, column: 1 }]; @@ -651,6 +655,26 @@ function peg$parse(input, options) { return s0; } + function peg$parseintneg() { + var s0, s1, s2; + + s0 = peg$currPos; + s1 = peg$parseminus(); + if (s1 === peg$FAILED) { + s1 = null; + } + s2 = peg$parseint(); + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s0 = peg$f1(); + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + function peg$parseminus() { var s0; @@ -884,7 +908,7 @@ function peg$parse(input, options) { if (s2 !== peg$FAILED) { s3 = peg$parsews(); peg$savedPos = s0; - s0 = peg$f1(s2); + s0 = peg$f2(s2); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -920,7 +944,7 @@ function peg$parse(input, options) { if (s6 !== peg$FAILED) { s7 = peg$parsews(); peg$savedPos = s0; - s0 = peg$f2(s4); + s0 = peg$f3(s4); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -968,7 +992,7 @@ function peg$parse(input, options) { } s8 = peg$parsews(); peg$savedPos = s0; - s0 = peg$f3(s4, s7); + s0 = peg$f4(s4, s7); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -1000,7 +1024,7 @@ function peg$parse(input, options) { s2 = peg$parseslice(); if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f4(s2); + s0 = peg$f5(s2); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -1040,7 +1064,7 @@ function peg$parse(input, options) { if (s6 !== peg$FAILED) { s7 = peg$parsews(); peg$savedPos = s0; - s0 = peg$f5(s4); + s0 = peg$f6(s4); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -1090,6 +1114,9 @@ function peg$parse(input, options) { s0 = peg$parseop_degrade(); if (s0 === peg$FAILED) { s0 = peg$parseop_tail(); + if (s0 === peg$FAILED) { + s0 = peg$parseop_range(); + } } } } @@ -1115,7 +1142,7 @@ function peg$parse(input, options) { s2 = peg$parsenumber(); if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f6(s2); + s0 = peg$f7(s2); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -1143,7 +1170,7 @@ function peg$parse(input, options) { s2 = peg$parsenumber(); if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f7(s2); + s0 = peg$f8(s2); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -1197,7 +1224,7 @@ function peg$parse(input, options) { } if (s13 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f8(s3, s7, s11); + s0 = peg$f9(s3, s7, s11); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -1237,7 +1264,7 @@ function peg$parse(input, options) { s2 = peg$parseslice(); if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f9(s2); + s0 = peg$f10(s2); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -1265,7 +1292,7 @@ function peg$parse(input, options) { s2 = peg$parseslice(); if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f10(s2); + s0 = peg$f11(s2); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -1295,7 +1322,7 @@ function peg$parse(input, options) { s2 = null; } peg$savedPos = s0; - s0 = peg$f11(s2); + s0 = peg$f12(s2); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -1319,7 +1346,35 @@ function peg$parse(input, options) { s2 = peg$parseslice(); if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f12(s2); + s0 = peg$f13(s2); + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseop_range() { + var s0, s1, s2; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c26) { + s1 = peg$c26; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e33); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parseslice(); + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s0 = peg$f14(s2); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -1345,7 +1400,7 @@ function peg$parse(input, options) { s3 = peg$parseslice_op(); } peg$savedPos = s0; - s0 = peg$f13(s1, s2); + s0 = peg$f15(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -1370,7 +1425,7 @@ function peg$parse(input, options) { } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f14(s1); + s1 = peg$f16(s1); } s0 = s1; @@ -1419,7 +1474,7 @@ function peg$parse(input, options) { } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f15(s1); + s1 = peg$f17(s1); } s0 = s1; @@ -1468,7 +1523,7 @@ function peg$parse(input, options) { } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f16(s1); + s1 = peg$f18(s1); } s0 = s1; @@ -1489,7 +1544,7 @@ function peg$parse(input, options) { s2 = null; } peg$savedPos = s0; - s0 = peg$f17(s1, s2); + s0 = peg$f19(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -1509,7 +1564,7 @@ function peg$parse(input, options) { s2 = null; } peg$savedPos = s0; - s0 = peg$f18(s1, s2); + s0 = peg$f20(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -1532,7 +1587,7 @@ function peg$parse(input, options) { s6 = peg$parsequote(); if (s6 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f19(s4); + s0 = peg$f21(s4); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -1582,19 +1637,19 @@ function peg$parse(input, options) { var s0, s1, s2, s3; s0 = peg$currPos; - if (input.substr(peg$currPos, 6) === peg$c26) { - s1 = peg$c26; + if (input.substr(peg$currPos, 6) === peg$c27) { + s1 = peg$c27; peg$currPos += 6; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e33); } + if (peg$silentFails === 0) { peg$fail(peg$e34); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); s3 = peg$parsemini_or_operator(); if (s3 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f20(s3); + s0 = peg$f22(s3); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -1611,12 +1666,12 @@ function peg$parse(input, options) { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; - if (input.substr(peg$currPos, 6) === peg$c27) { - s1 = peg$c27; + if (input.substr(peg$currPos, 6) === peg$c28) { + s1 = peg$c28; peg$currPos += 6; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e34); } + if (peg$silentFails === 0) { peg$fail(peg$e35); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); @@ -1627,7 +1682,7 @@ function peg$parse(input, options) { s5 = peg$parsequote(); if (s5 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f21(s4); + s0 = peg$f23(s4); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -1652,12 +1707,12 @@ function peg$parse(input, options) { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; - if (input.substr(peg$currPos, 6) === peg$c28) { - s1 = peg$c28; + if (input.substr(peg$currPos, 6) === peg$c29) { + s1 = peg$c29; peg$currPos += 6; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e35); } + if (peg$silentFails === 0) { peg$fail(peg$e36); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); @@ -1672,7 +1727,7 @@ function peg$parse(input, options) { s7 = null; } peg$savedPos = s0; - s0 = peg$f22(s3, s5, s7); + s0 = peg$f24(s3, s5, s7); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -1692,35 +1747,6 @@ function peg$parse(input, options) { function peg$parseslow() { var s0, s1, s2, s3; - s0 = peg$currPos; - if (input.substr(peg$currPos, 4) === peg$c29) { - s1 = peg$c29; - peg$currPos += 4; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e36); } - } - if (s1 !== peg$FAILED) { - s2 = peg$parsews(); - s3 = peg$parsenumber(); - if (s3 !== peg$FAILED) { - peg$savedPos = s0; - s0 = peg$f23(s3); - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - return s0; - } - - function peg$parserotL() { - var s0, s1, s2, s3; - s0 = peg$currPos; if (input.substr(peg$currPos, 4) === peg$c30) { s1 = peg$c30; @@ -1729,35 +1755,6 @@ function peg$parse(input, options) { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e37); } } - if (s1 !== peg$FAILED) { - s2 = peg$parsews(); - s3 = peg$parsenumber(); - if (s3 !== peg$FAILED) { - peg$savedPos = s0; - s0 = peg$f24(s3); - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - return s0; - } - - function peg$parserotR() { - var s0, s1, s2, s3; - - s0 = peg$currPos; - if (input.substr(peg$currPos, 4) === peg$c31) { - s1 = peg$c31; - peg$currPos += 4; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e38); } - } if (s1 !== peg$FAILED) { s2 = peg$parsews(); s3 = peg$parsenumber(); @@ -1776,16 +1773,16 @@ function peg$parse(input, options) { return s0; } - function peg$parsefast() { + function peg$parserotL() { var s0, s1, s2, s3; s0 = peg$currPos; - if (input.substr(peg$currPos, 4) === peg$c32) { - s1 = peg$c32; + if (input.substr(peg$currPos, 4) === peg$c31) { + s1 = peg$c31; peg$currPos += 4; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e39); } + if (peg$silentFails === 0) { peg$fail(peg$e38); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); @@ -1805,16 +1802,74 @@ function peg$parse(input, options) { return s0; } + function peg$parserotR() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 4) === peg$c32) { + s1 = peg$c32; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e39); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parsews(); + s3 = peg$parsenumber(); + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s0 = peg$f27(s3); + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parsefast() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 4) === peg$c33) { + s1 = peg$c33; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e40); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parsews(); + s3 = peg$parsenumber(); + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s0 = peg$f28(s3); + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + function peg$parsescale() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; - if (input.substr(peg$currPos, 5) === peg$c33) { - s1 = peg$c33; + if (input.substr(peg$currPos, 5) === peg$c34) { + s1 = peg$c34; peg$currPos += 5; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e40); } + if (peg$silentFails === 0) { peg$fail(peg$e41); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); @@ -1834,7 +1889,7 @@ function peg$parse(input, options) { s5 = peg$parsequote(); if (s5 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f27(s4); + s0 = peg$f29(s4); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -1859,12 +1914,12 @@ function peg$parse(input, options) { var s0, s1, s2, s3; s0 = peg$currPos; - if (input.substr(peg$currPos, 2) === peg$c34) { - s1 = peg$c34; + if (input.substr(peg$currPos, 2) === peg$c35) { + s1 = peg$c35; peg$currPos += 2; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e41); } + if (peg$silentFails === 0) { peg$fail(peg$e42); } } if (s1 !== peg$FAILED) { s2 = []; @@ -1873,7 +1928,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e42); } + if (peg$silentFails === 0) { peg$fail(peg$e43); } } while (s3 !== peg$FAILED) { s2.push(s3); @@ -1882,7 +1937,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e42); } + if (peg$silentFails === 0) { peg$fail(peg$e43); } } } s1 = [s1, s2]; @@ -1899,12 +1954,12 @@ function peg$parse(input, options) { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; s0 = peg$currPos; - if (input.substr(peg$currPos, 3) === peg$c35) { - s1 = peg$c35; + if (input.substr(peg$currPos, 3) === peg$c36) { + s1 = peg$c36; peg$currPos += 3; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e43); } + if (peg$silentFails === 0) { peg$fail(peg$e44); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); @@ -1926,7 +1981,7 @@ function peg$parse(input, options) { s9 = peg$parsemini_or_operator(); if (s9 !== peg$FAILED) { peg$savedPos = s7; - s7 = peg$f28(s5, s9); + s7 = peg$f30(s5, s9); } else { peg$currPos = s7; s7 = peg$FAILED; @@ -1943,7 +1998,7 @@ function peg$parse(input, options) { s9 = peg$parsemini_or_operator(); if (s9 !== peg$FAILED) { peg$savedPos = s7; - s7 = peg$f28(s5, s9); + s7 = peg$f30(s5, s9); } else { peg$currPos = s7; s7 = peg$FAILED; @@ -1963,7 +2018,7 @@ function peg$parse(input, options) { } if (s8 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f29(s5, s6); + s0 = peg$f31(s5, s6); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -2009,7 +2064,7 @@ function peg$parse(input, options) { s4 = peg$parsecomment(); } peg$savedPos = s0; - s0 = peg$f30(s1); + s0 = peg$f32(s1); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -2020,18 +2075,18 @@ function peg$parse(input, options) { if (s1 !== peg$FAILED) { s2 = peg$parsews(); if (input.charCodeAt(peg$currPos) === 36) { - s3 = peg$c36; + s3 = peg$c37; peg$currPos++; } else { s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e44); } + if (peg$silentFails === 0) { peg$fail(peg$e45); } } if (s3 !== peg$FAILED) { s4 = peg$parsews(); s5 = peg$parsemini_or_operator(); if (s5 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f31(s1, s5); + s0 = peg$f33(s1, s5); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -2056,7 +2111,7 @@ function peg$parse(input, options) { s1 = peg$parsemini_or_operator(); if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f32(s1); + s1 = peg$f34(s1); } s0 = s1; if (s0 === peg$FAILED) { @@ -2089,7 +2144,7 @@ function peg$parse(input, options) { if (s2 !== peg$FAILED) { s3 = peg$parsews(); peg$savedPos = s0; - s0 = peg$f33(s2); + s0 = peg$f35(s2); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -2102,19 +2157,19 @@ function peg$parse(input, options) { var s0, s1, s2, s3; s0 = peg$currPos; - if (input.substr(peg$currPos, 6) === peg$c37) { - s1 = peg$c37; + if (input.substr(peg$currPos, 6) === peg$c38) { + s1 = peg$c38; peg$currPos += 6; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e45); } + if (peg$silentFails === 0) { peg$fail(peg$e46); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); s3 = peg$parsenumber(); if (s3 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f34(s3); + s0 = peg$f36(s3); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -2131,19 +2186,19 @@ function peg$parse(input, options) { var s0, s1, s2, s3; s0 = peg$currPos; - if (input.substr(peg$currPos, 6) === peg$c38) { - s1 = peg$c38; + if (input.substr(peg$currPos, 6) === peg$c39) { + s1 = peg$c39; peg$currPos += 6; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e46); } + if (peg$silentFails === 0) { peg$fail(peg$e47); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); s3 = peg$parsenumber(); if (s3 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f35(s3); + s0 = peg$f37(s3); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -2160,16 +2215,16 @@ function peg$parse(input, options) { var s0, s1; s0 = peg$currPos; - if (input.substr(peg$currPos, 4) === peg$c39) { - s1 = peg$c39; + if (input.substr(peg$currPos, 4) === peg$c40) { + s1 = peg$c40; peg$currPos += 4; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e47); } + if (peg$silentFails === 0) { peg$fail(peg$e48); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f36(); + s1 = peg$f38(); } s0 = s1; diff --git a/packages/mini/krill.pegjs b/packages/mini/krill.pegjs index 72b453be..f52743bf 100644 --- a/packages/mini/krill.pegjs +++ b/packages/mini/krill.pegjs @@ -79,6 +79,9 @@ frac int = zero / (digit1_9 DIGIT*) +intneg + = minus? int { return parseInt(text()); } + minus = "-" @@ -123,7 +126,7 @@ slice = step / sub_cycle / polymeter / slow_sequence // slice modifier affects the timing/size of a slice (e.g. [a b c]@3) // at this point, we assume we can represent them as regular sequence operators -slice_op = op_weight / op_bjorklund / op_slow / op_fast / op_replicate / op_degrade / op_tail +slice_op = op_weight / op_bjorklund / op_slow / op_fast / op_replicate / op_degrade / op_tail / op_range op_weight = "@" a:number { return x => x.options_['weight'] = a } @@ -146,6 +149,9 @@ op_degrade = "?"a:number? op_tail = ":" s:slice { return x => x.options_['ops'].push({ type_: "tail", arguments_ :{ element:s } }) } +op_range = ".." s:slice + { return x => x.options_['ops'].push({ type_: "range", arguments_ :{ element:s } }) } + // a slice with an modifier applied i.e [bd@4 sd@3]@2 hh] slice_with_ops = s:slice ops:slice_op* { const result = new ElementStub(s, {ops: [], weight: 1, reps: 1}); diff --git a/packages/mini/mini.mjs b/packages/mini/mini.mjs index 3321e7bc..8e6b844f 100644 --- a/packages/mini/mini.mjs +++ b/packages/mini/mini.mjs @@ -45,6 +45,17 @@ const applyOptions = (parent, enter) => (pat, i) => { pat = pat.fmap((a) => (b) => Array.isArray(a) ? [...a, b] : [a, b]).appLeft(friend); break; } + case 'range': { + const friend = enter(op.arguments_.element); + pat = strudel.reify(pat); + const arrayRange = (start, stop, step = 1) => + Array.from({ length: Math.abs(stop - start) / step + 1 }, (value, index) => + start < stop ? start + index * step : start - index * step, + ); + let range = (apat, bpat) => apat.squeezeBind((a) => bpat.bind((b) => strudel.fastcat(...arrayRange(a, b)))); + pat = range(pat, friend); + break; + } default: { console.warn(`operator "${op.type_}" not implemented`); } diff --git a/packages/mini/package.json b/packages/mini/package.json index 16bd724c..29ba3e83 100644 --- a/packages/mini/package.json +++ b/packages/mini/package.json @@ -1,6 +1,6 @@ { "name": "@strudel.cycles/mini", - "version": "0.8.2", + "version": "0.9.0", "description": "Mini notation for strudel", "main": "index.mjs", "type": "module", diff --git a/packages/mini/test/mini.test.mjs b/packages/mini/test/mini.test.mjs index 0c7f381e..6d9ac367 100644 --- a/packages/mini/test/mini.test.mjs +++ b/packages/mini/test/mini.test.mjs @@ -184,6 +184,12 @@ describe('mini', () => { it('supports lists', () => { expect(minV('a:b c:d:[e:f] g')).toEqual([['a', 'b'], ['c', 'd', ['e', 'f']], 'g']); }); + it('supports ranges', () => { + expect(minV('0 .. 4')).toEqual([0, 1, 2, 3, 4]); + }); + it('supports patterned ranges', () => { + expect(minS('[<0 1> .. <2 4>]*2')).toEqual(minS('[0 1 2] [1 2 3 4]')); + }); }); describe('getLeafLocation', () => { diff --git a/packages/osc/package.json b/packages/osc/package.json index af2c9954..dd61c3a7 100644 --- a/packages/osc/package.json +++ b/packages/osc/package.json @@ -1,6 +1,6 @@ { "name": "@strudel.cycles/osc", - "version": "0.8.0", + "version": "0.9.0", "description": "OSC messaging for strudel", "main": "osc.mjs", "publishConfig": { diff --git a/packages/react/package.json b/packages/react/package.json index 51916049..deef95d8 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@strudel.cycles/react", - "version": "0.8.0", + "version": "0.9.0", "description": "React components for strudel", "main": "src/index.js", "publishConfig": { diff --git a/packages/react/src/components/CodeMirror6.jsx b/packages/react/src/components/CodeMirror6.jsx index 0f1b2274..a5af5312 100644 --- a/packages/react/src/components/CodeMirror6.jsx +++ b/packages/react/src/components/CodeMirror6.jsx @@ -15,10 +15,11 @@ import { updateMiniLocations, } from '@strudel/codemirror'; import './style.css'; +import { sliderPlugin } from '@strudel/codemirror/slider.mjs'; export { flash, highlightMiniLocations, updateMiniLocations }; -const staticExtensions = [javascript(), flashField, highlightExtension]; +const staticExtensions = [javascript(), flashField, highlightExtension, sliderPlugin]; export default function CodeMirror({ value, diff --git a/packages/react/src/hooks/useWidgets.mjs b/packages/react/src/hooks/useWidgets.mjs new file mode 100644 index 00000000..e7ca136a --- /dev/null +++ b/packages/react/src/hooks/useWidgets.mjs @@ -0,0 +1,13 @@ +import { useEffect, useState } from 'react'; +import { updateWidgets } from '@strudel/codemirror'; + +// i know this is ugly.. in the future, repl needs to run without react +export function useWidgets(view) { + const [widgets, setWidgets] = useState([]); + useEffect(() => { + if (view) { + updateWidgets(view, widgets); + } + }, [view, widgets]); + return { widgets, setWidgets }; +} diff --git a/packages/serial/package.json b/packages/serial/package.json index 09a3267a..c25c806a 100644 --- a/packages/serial/package.json +++ b/packages/serial/package.json @@ -1,6 +1,6 @@ { "name": "@strudel.cycles/serial", - "version": "0.8.0", + "version": "0.9.0", "description": "Webserial API for strudel", "main": "serial.mjs", "publishConfig": { diff --git a/packages/soundfonts/package.json b/packages/soundfonts/package.json index 1f7b70e6..c4bf1032 100644 --- a/packages/soundfonts/package.json +++ b/packages/soundfonts/package.json @@ -1,6 +1,6 @@ { "name": "@strudel.cycles/soundfonts", - "version": "0.8.2", + "version": "0.9.0", "description": "Soundsfont support for strudel", "main": "index.mjs", "publishConfig": { diff --git a/packages/superdough/dspworklet.mjs b/packages/superdough/dspworklet.mjs new file mode 100644 index 00000000..deff485a --- /dev/null +++ b/packages/superdough/dspworklet.mjs @@ -0,0 +1,79 @@ +import { getAudioContext } from './superdough.mjs'; + +let worklet; +export async function dspWorklet(ac, code) { + const name = `dsp-worklet-${Date.now()}`; + const workletCode = `${code} +let __q = []; // trigger queue +class MyProcessor extends AudioWorkletProcessor { + constructor() { + super(); + this.t = 0; + this.stopped = false; + this.port.onmessage = (e) => { + if(e.data==='stop') { + this.stopped = true; + } else if(e.data?.dough) { + __q.push(e.data) + } else { + msg?.(e.data) + } + }; + } + process(inputs, outputs, parameters) { + const output = outputs[0]; + if(__q.length) { + for(let i=0;i<__q.length;++i) { + const deadline = __q[i].time-currentTime; + if(deadline<=0) { + trigger(__q[i].dough) + __q.splice(i,1) + } + } + } + for (let i = 0; i < output[0].length; i++) { + const out = dsp(this.t / sampleRate); + output.forEach((channel) => { + channel[i] = out; + }); + this.t++; + } + return !this.stopped; + } +} +registerProcessor('${name}', MyProcessor); +`; + const base64String = btoa(workletCode); + const dataURL = `data:text/javascript;base64,${base64String}`; + await ac.audioWorklet.addModule(dataURL); + const node = new AudioWorkletNode(ac, name); + const stop = () => node.port.postMessage('stop'); + return { node, stop }; +} +const stop = () => { + if (worklet) { + worklet?.stop(); + worklet?.node?.disconnect(); + } +}; + +if (typeof window !== 'undefined') { + window.addEventListener('message', (e) => { + if (e.data === 'strudel-stop') { + stop(); + } else if (e.data?.dough) { + worklet?.node.port.postMessage(e.data); + } + }); +} + +export const dough = async (code) => { + const ac = getAudioContext(); + stop(); + worklet = await dspWorklet(ac, code); + worklet.node.connect(ac.destination); +}; + +export function doughTrigger(t, hap, currentTime, duration, cps) { + window.postMessage({ time: t, dough: hap.value, currentTime, duration, cps }); +} diff --git a/packages/superdough/helpers.mjs b/packages/superdough/helpers.mjs index 07e2b121..d87ea94d 100644 --- a/packages/superdough/helpers.mjs +++ b/packages/superdough/helpers.mjs @@ -1,4 +1,5 @@ import { getAudioContext } from './superdough.mjs'; +import { clamp } from './util.mjs'; export function gainNode(value) { const node = getAudioContext().createGain(); @@ -66,10 +67,81 @@ export const getADSR = (attack, decay, sustain, release, velocity, begin, end) = return gainNode; }; -export const getFilter = (type, frequency, Q) => { - const filter = getAudioContext().createBiquadFilter(); - filter.type = type; - filter.frequency.value = frequency; - filter.Q.value = Q; - return filter; +export const getParamADSR = (param, attack, decay, sustain, release, min, max, begin, end) => { + const range = max - min; + const peak = min + range; + const sustainLevel = min + sustain * range; + param.setValueAtTime(min, begin); + param.linearRampToValueAtTime(peak, begin + attack); + param.linearRampToValueAtTime(sustainLevel, begin + attack + decay); + param.setValueAtTime(sustainLevel, end); + param.linearRampToValueAtTime(min, end + Math.max(release, 0.1)); }; + +export function getCompressor(ac, threshold, ratio, knee, attack, release) { + const options = { + threshold: threshold ?? -3, + ratio: ratio ?? 10, + knee: knee ?? 10, + attack: attack ?? 0.005, + release: release ?? 0.05, + }; + return new DynamicsCompressorNode(ac, options); +} + +export function createFilter( + context, + type, + frequency, + Q, + attack, + decay, + sustain, + release, + fenv, + start, + end, + fanchor = 0.5, +) { + const filter = context.createBiquadFilter(); + filter.type = type; + filter.Q.value = Q; + filter.frequency.value = frequency; + + // Apply ADSR to filter frequency + if (!isNaN(fenv) && fenv !== 0) { + const offset = fenv * fanchor; + + const min = clamp(2 ** -offset * frequency, 0, 20000); + const max = clamp(2 ** (fenv - offset) * frequency, 0, 20000); + + // console.log('min', min, 'max', max); + + getParamADSR(filter.frequency, attack, decay, sustain, release, min, max, start, end); + return filter; + } + + return filter; +} + +// stays 1 until .5, then fades out +let wetfade = (d) => (d < 0.5 ? 1 : 1 - (d - 0.5) / 0.5); + +// mix together dry and wet nodes. 0 = only dry 1 = only wet +// still not too sure about how this could be used more generally... +export function drywet(dry, wet, wetAmount = 0) { + const ac = getAudioContext(); + if (!wetAmount) { + return dry; + } + let dry_gain = ac.createGain(); + let wet_gain = ac.createGain(); + dry.connect(dry_gain); + wet.connect(wet_gain); + dry_gain.gain.value = wetfade(wetAmount); + wet_gain.gain.value = wetfade(1 - wetAmount); + let mix = ac.createGain(); + dry_gain.connect(mix); + wet_gain.connect(mix); + return mix; +} diff --git a/packages/superdough/index.mjs b/packages/superdough/index.mjs index e5d4498b..3247c5b4 100644 --- a/packages/superdough/index.mjs +++ b/packages/superdough/index.mjs @@ -10,3 +10,4 @@ export * from './helpers.mjs'; export * from './synth.mjs'; export * from './zzfx.mjs'; export * from './logger.mjs'; +export * from './dspworklet.mjs'; diff --git a/packages/superdough/noise.mjs b/packages/superdough/noise.mjs new file mode 100644 index 00000000..2c8c1d4a --- /dev/null +++ b/packages/superdough/noise.mjs @@ -0,0 +1,63 @@ +import { drywet } from './helpers.mjs'; +import { getAudioContext } from './superdough.mjs'; + +let noiseCache = {}; + +// lazy generates noise buffers and keeps them forever +function getNoiseBuffer(type) { + const ac = getAudioContext(); + if (noiseCache[type]) { + return noiseCache[type]; + } + const bufferSize = 2 * ac.sampleRate; + const noiseBuffer = ac.createBuffer(1, bufferSize, ac.sampleRate); + const output = noiseBuffer.getChannelData(0); + let lastOut = 0; + let b0, b1, b2, b3, b4, b5, b6; + b0 = b1 = b2 = b3 = b4 = b5 = b6 = 0.0; + + for (let i = 0; i < bufferSize; i++) { + if (type === 'white') { + output[i] = Math.random() * 2 - 1; + } else if (type === 'brown') { + let white = Math.random() * 2 - 1; + output[i] = (lastOut + 0.02 * white) / 1.02; + lastOut = output[i]; + } else if (type === 'pink') { + let white = Math.random() * 2 - 1; + b0 = 0.99886 * b0 + white * 0.0555179; + b1 = 0.99332 * b1 + white * 0.0750759; + b2 = 0.969 * b2 + white * 0.153852; + b3 = 0.8665 * b3 + white * 0.3104856; + b4 = 0.55 * b4 + white * 0.5329522; + b5 = -0.7616 * b5 - white * 0.016898; + output[i] = b0 + b1 + b2 + b3 + b4 + b5 + b6 + white * 0.5362; + output[i] *= 0.11; + b6 = white * 0.115926; + } + } + noiseCache[type] = noiseBuffer; + return noiseBuffer; +} + +// expects one of noises as type +export function getNoiseOscillator(type = 'white', t) { + const ac = getAudioContext(); + const o = ac.createBufferSource(); + o.buffer = getNoiseBuffer(type); + o.loop = true; + o.start(t); + return { + node: o, + stop: (time) => o.stop(time), + }; +} + +export function getNoiseMix(inputNode, wet, t) { + const noiseOscillator = getNoiseOscillator('pink', t); + const noiseMix = drywet(inputNode, noiseOscillator.node, wet); + return { + node: noiseMix, + stop: (time) => noiseOscillator?.stop(time), + }; +} diff --git a/packages/superdough/package.json b/packages/superdough/package.json index bab58658..0f862c03 100644 --- a/packages/superdough/package.json +++ b/packages/superdough/package.json @@ -1,6 +1,6 @@ { "name": "superdough", - "version": "0.9.6", + "version": "0.9.10", "description": "simple web audio synth and sampler intended for live coding. inspired by superdirt and webdirt.", "main": "index.mjs", "type": "module", diff --git a/packages/superdough/reverb.mjs b/packages/superdough/reverb.mjs index e6d31f6a..0f638ca8 100644 --- a/packages/superdough/reverb.mjs +++ b/packages/superdough/reverb.mjs @@ -1,23 +1,47 @@ +import reverbGen from './reverbGen.mjs'; + if (typeof AudioContext !== 'undefined') { - AudioContext.prototype.impulseResponse = function (duration, channels = 1) { - const length = this.sampleRate * duration; - const impulse = this.createBuffer(channels, length, this.sampleRate); - const IR = impulse.getChannelData(0); - for (let i = 0; i < length; i++) IR[i] = (2 * Math.random() - 1) * Math.pow(1 - i / length, duration); - return impulse; + AudioContext.prototype.adjustLength = function (duration, buffer) { + const newLength = buffer.sampleRate * duration; + const newBuffer = this.createBuffer(buffer.numberOfChannels, buffer.length, buffer.sampleRate); + for (let channel = 0; channel < buffer.numberOfChannels; channel++) { + let oldData = buffer.getChannelData(channel); + let newData = newBuffer.getChannelData(channel); + + for (let i = 0; i < newLength; i++) { + newData[i] = oldData[i] || 0; + } + } + return newBuffer; }; - AudioContext.prototype.createReverb = function (duration) { + AudioContext.prototype.createReverb = function (duration, fade, lp, dim, ir) { const convolver = this.createConvolver(); - convolver.setDuration = (d) => { - convolver.buffer = this.impulseResponse(d); - convolver.duration = duration; - return convolver; + convolver.generate = (d = 2, fade = 0.1, lp = 15000, dim = 1000, ir) => { + convolver.duration = d; + convolver.fade = fade; + convolver.lp = lp; + convolver.dim = dim; + convolver.ir = ir; + if (ir) { + convolver.buffer = this.adjustLength(d, ir); + } else { + reverbGen.generateReverb( + { + audioContext: this, + numChannels: 2, + decayTime: d, + fadeInTime: fade, + lpFreqStart: lp, + lpFreqEnd: dim, + }, + (buffer) => { + convolver.buffer = buffer; + }, + ); + } }; - convolver.setDuration(duration); + convolver.generate(duration, fade, lp, dim, ir); return convolver; }; } - -// TODO: make the reverb more exciting -// check out https://blog.gskinner.com/archives/2019/02/reverb-web-audio-api.html diff --git a/packages/superdough/reverbGen.mjs b/packages/superdough/reverbGen.mjs new file mode 100644 index 00000000..d2533cae --- /dev/null +++ b/packages/superdough/reverbGen.mjs @@ -0,0 +1,130 @@ +// Copyright 2014 Alan deLespinasse +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +var reverbGen = {}; + +/** Generates a reverb impulse response. + + @param {!Object} params TODO: Document the properties. + @param {!function(!AudioBuffer)} callback Function to call when + the impulse response has been generated. The impulse response + is passed to this function as its parameter. May be called + immediately within the current execution context, or later. */ +reverbGen.generateReverb = function (params, callback) { + var audioContext = params.audioContext || new AudioContext(); + var sampleRate = audioContext.sampleRate; + var numChannels = params.numChannels || 2; + // params.decayTime is the -60dB fade time. We let it go 50% longer to get to -90dB. + var totalTime = params.decayTime * 1.5; + var decaySampleFrames = Math.round(params.decayTime * sampleRate); + var numSampleFrames = Math.round(totalTime * sampleRate); + var fadeInSampleFrames = Math.round((params.fadeInTime || 0) * sampleRate); + // 60dB is a factor of 1 million in power, or 1000 in amplitude. + var decayBase = Math.pow(1 / 1000, 1 / decaySampleFrames); + var reverbIR = audioContext.createBuffer(numChannels, numSampleFrames, sampleRate); + for (var i = 0; i < numChannels; i++) { + var chan = reverbIR.getChannelData(i); + for (var j = 0; j < numSampleFrames; j++) { + chan[j] = randomSample() * Math.pow(decayBase, j); + } + for (var j = 0; j < fadeInSampleFrames; j++) { + chan[j] *= j / fadeInSampleFrames; + } + } + + applyGradualLowpass(reverbIR, params.lpFreqStart || 0, params.lpFreqEnd || 0, params.decayTime, callback); +}; + +/** Creates a canvas element showing a graph of the given data. + + + @param {!Float32Array} data An array of numbers, or a Float32Array. + @param {number} width Width in pixels of the canvas. + @param {number} height Height in pixels of the canvas. + @param {number} min Minimum value of data for the graph (lower edge). + @param {number} max Maximum value of data in the graph (upper edge). + @return {!CanvasElement} The generated canvas element. */ +reverbGen.generateGraph = function (data, width, height, min, max) { + var canvas = document.createElement('canvas'); + canvas.width = width; + canvas.height = height; + var gc = canvas.getContext('2d'); + gc.fillStyle = '#000'; + gc.fillRect(0, 0, canvas.width, canvas.height); + gc.fillStyle = '#fff'; + var xscale = width / data.length; + var yscale = height / (max - min); + for (var i = 0; i < data.length; i++) { + gc.fillRect(i * xscale, height - (data[i] - min) * yscale, 1, 1); + } + return canvas; +}; + +/** Applies a constantly changing lowpass filter to the given sound. + + @private + @param {!AudioBuffer} input + @param {number} lpFreqStart + @param {number} lpFreqEnd + @param {number} lpFreqEndAt + @param {!function(!AudioBuffer)} callback May be called + immediately within the current execution context, or later.*/ +var applyGradualLowpass = function (input, lpFreqStart, lpFreqEnd, lpFreqEndAt, callback) { + if (lpFreqStart == 0) { + callback(input); + return; + } + var channelData = getAllChannelData(input); + var context = new OfflineAudioContext(input.numberOfChannels, channelData[0].length, input.sampleRate); + var player = context.createBufferSource(); + player.buffer = input; + var filter = context.createBiquadFilter(); + + lpFreqStart = Math.min(lpFreqStart, input.sampleRate / 2); + lpFreqEnd = Math.min(lpFreqEnd, input.sampleRate / 2); + + filter.type = 'lowpass'; + filter.Q.value = 0.0001; + filter.frequency.setValueAtTime(lpFreqStart, 0); + filter.frequency.linearRampToValueAtTime(lpFreqEnd, lpFreqEndAt); + + player.connect(filter); + filter.connect(context.destination); + player.start(); + context.oncomplete = function (event) { + callback(event.renderedBuffer); + }; + context.startRendering(); + + window.filterNode = filter; +}; + +/** @private + @param {!AudioBuffer} buffer + @return {!Array.} An array containing the Float32Array of each channel's samples. */ +var getAllChannelData = function (buffer) { + var channels = []; + for (var i = 0; i < buffer.numberOfChannels; i++) { + channels[i] = buffer.getChannelData(i); + } + return channels; +}; + +/** @private + @return {number} A random number from -1 to 1. */ +var randomSample = function () { + return Math.random() * 2 - 1; +}; + +export default reverbGen; diff --git a/packages/superdough/sampler.mjs b/packages/superdough/sampler.mjs index 02e5eada..a7e9c3a3 100644 --- a/packages/superdough/sampler.mjs +++ b/packages/superdough/sampler.mjs @@ -64,6 +64,7 @@ export const getSampleBufferSource = async (s, n, note, speed, freq, bank, resol export const loadBuffer = (url, ac, s, n = 0) => { const label = s ? `sound "${s}:${n}"` : 'sample'; + url = url.replace('#', '%23'); if (!loadCache[url]) { logger(`[sampler] load ${label}..`, 'load-sample', { url }); const timestamp = Date.now(); @@ -196,7 +197,7 @@ export const samples = async (sampleMap, baseUrl = sampleMap._base || '', option const cutGroups = []; export async function onTriggerSample(t, value, onended, bank, resolveUrl) { - const { + let { s, freq, unit, @@ -207,7 +208,9 @@ export async function onTriggerSample(t, value, onended, bank, resolveUrl) { n = 0, note, speed = 1, // sample playback speed + loopBegin = 0, begin = 0, + loopEnd = 1, end = 1, } = value; // load sample @@ -215,6 +218,7 @@ export async function onTriggerSample(t, value, onended, bank, resolveUrl) { // no playback return; } + loop = s.startsWith('wt_') ? 1 : value.loop; const ac = getAudioContext(); // destructure adsr here, because the default should be different for synths and samples const { attack = 0.001, decay = 0.001, sustain = 1, release = 0.001 } = value; @@ -242,19 +246,12 @@ export async function onTriggerSample(t, value, onended, bank, resolveUrl) { // rather than the current playback rate, so even if the sound is playing at twice its normal speed, // the midway point through a 10-second audio buffer is still 5." const offset = begin * bufferSource.buffer.duration; - bufferSource.start(time, offset); - const bufferDuration = bufferSource.buffer.duration / bufferSource.playbackRate.value; - /*if (loop) { - // TODO: idea for loopBegin / loopEnd - // if one of [loopBegin,loopEnd] is <= 1, interpret it as normlized - // if [loopBegin,loopEnd] is bigger >= 1, interpret it as sample number - // this will simplify perfectly looping things, while still keeping the normalized option - // the only drawback is that looping between samples 0 and 1 is not possible (which is not real use case) + if (loop) { bufferSource.loop = true; - bufferSource.loopStart = offset; - bufferSource.loopEnd = offset + duration; - duration = loop * duration; - }*/ + bufferSource.loopStart = loopBegin * bufferSource.buffer.duration - offset; + bufferSource.loopEnd = loopEnd * bufferSource.buffer.duration - offset; + } + bufferSource.start(time, offset); const { node: envelope, stop: releaseEnvelope } = getEnvelope(attack, decay, sustain, release, 1, t); bufferSource.connect(envelope); const out = ac.createGain(); // we need a separate gain for the cutgroups because firefox... @@ -265,9 +262,10 @@ export async function onTriggerSample(t, value, onended, bank, resolveUrl) { out.disconnect(); onended(); }; - const stop = (endTime, playWholeBuffer = clip === undefined) => { + const stop = (endTime, playWholeBuffer = clip === undefined && loop === undefined) => { let releaseTime = endTime; if (playWholeBuffer) { + const bufferDuration = bufferSource.buffer.duration / bufferSource.playbackRate.value; releaseTime = t + (end - begin) * bufferDuration; } bufferSource.stop(releaseTime + release); diff --git a/packages/superdough/superdough.mjs b/packages/superdough/superdough.mjs index af22355f..e3033afe 100644 --- a/packages/superdough/superdough.mjs +++ b/packages/superdough/superdough.mjs @@ -9,17 +9,21 @@ import './reverb.mjs'; import './vowel.mjs'; import { clamp } from './util.mjs'; import workletsUrl from './worklets.mjs?url'; -import { getFilter, gainNode } from './helpers.mjs'; +import { createFilter, gainNode, getCompressor } from './helpers.mjs'; import { map } from 'nanostores'; import { logger } from './logger.mjs'; +import { loadBuffer } from './sampler.mjs'; export const soundMap = map(); + export function registerSound(key, onTrigger, data = {}) { soundMap.setKey(key, { onTrigger, data }); } + export function getSound(s) { return soundMap.get()[s]; } + export const resetLoadedSounds = () => soundMap.set({}); let audioContext; @@ -46,6 +50,7 @@ export const panic = () => { }; let workletsLoading; + function loadWorklets() { if (workletsLoading) { return workletsLoading; @@ -89,6 +94,7 @@ export async function initAudioOnFirstClick(options) { let delays = {}; const maxfeedback = 0.98; + function getDelay(orbit, delaytime, delayfeedback, t) { if (delayfeedback > maxfeedback) { //logger(`delayfeedback was clamped to ${maxfeedback} to save your ears`); @@ -107,21 +113,36 @@ function getDelay(orbit, delaytime, delayfeedback, t) { } let reverbs = {}; -function getReverb(orbit, duration = 2) { + +let hasChanged = (now, before) => now !== undefined && now !== before; + +function getReverb(orbit, duration, fade, lp, dim, ir) { + // If no reverb has been created for a given orbit, create one if (!reverbs[orbit]) { const ac = getAudioContext(); - const reverb = ac.createReverb(duration); + const reverb = ac.createReverb(duration, fade, lp, dim, ir); reverb.connect(getDestination()); reverbs[orbit] = reverb; } - if (reverbs[orbit].duration !== duration) { - reverbs[orbit] = reverbs[orbit].setDuration(duration); - reverbs[orbit].duration = duration; + if ( + hasChanged(duration, reverbs[orbit].duration) || + hasChanged(fade, reverbs[orbit].fade) || + hasChanged(lp, reverbs[orbit].lp) || + hasChanged(dim, reverbs[orbit].dim) || + reverbs[orbit].ir !== ir + ) { + // only regenerate when something has changed + // avoids endless regeneration on things like + // stack(s("a"), s("b").rsize(8)).room(.5) + // this only works when args may stay undefined until here + // setting default values breaks this + reverbs[orbit].generate(duration, fade, lp, dim, ir); } return reverbs[orbit]; } export let analyser, analyserData /* s = {} */; + export function getAnalyser(/* orbit, */ fftSize = 2048) { if (!analyser /*s [orbit] */) { const analyserNode = getAudioContext().createAnalyser(); @@ -177,14 +198,33 @@ export const superdough = async (value, deadline, hapDuration) => { bank, source, gain = 0.8, + postgain = 1, + // filters + ftype = '12db', + fanchor = 0.5, // low pass cutoff, + lpenv, + lpattack = 0.01, + lpdecay = 0.01, + lpsustain = 1, + lprelease = 0.01, resonance = 1, // high pass + hpenv, hcutoff, + hpattack = 0.01, + hpdecay = 0.01, + hpsustain = 1, + hprelease = 0.01, hresonance = 1, // band pass + bpenv, bandf, + bpattack = 0.01, + bpdecay = 0.01, + bpsustain = 1, + bprelease = 0.01, bandq = 1, // coarse, @@ -197,10 +237,20 @@ export const superdough = async (value, deadline, hapDuration) => { delaytime = 0.25, orbit = 1, room, - size = 2, + roomfade, + roomlp, + roomdim, + roomsize, + ir, + i = 0, velocity = 1, analyze, // analyser wet fft = 8, // fftSize 0 - 10 + compressor: compressorThreshold, + compressorRatio, + compressorKnee, + compressorAttack, + compressorRelease, } = value; gain *= velocity; // legacy fix for velocity let toDisconnect = []; // audio nodes that will be disconnected when the source has ended @@ -229,6 +279,7 @@ export const superdough = async (value, deadline, hapDuration) => { // this can be used for things like speed(0) in the sampler return; } + if (ac.currentTime > t) { logger('[webaudio] skip hap: still loading', ac.currentTime - t); return; @@ -239,17 +290,87 @@ export const superdough = async (value, deadline, hapDuration) => { // gain stage chain.push(gainNode(gain)); - // filters - cutoff !== undefined && chain.push(getFilter('lowpass', cutoff, resonance)); - hcutoff !== undefined && chain.push(getFilter('highpass', hcutoff, hresonance)); - bandf !== undefined && chain.push(getFilter('bandpass', bandf, bandq)); - vowel !== undefined && chain.push(ac.createVowelFilter(vowel)); + if (cutoff !== undefined) { + let lp = () => + createFilter( + ac, + 'lowpass', + cutoff, + resonance, + lpattack, + lpdecay, + lpsustain, + lprelease, + lpenv, + t, + t + hapDuration, + fanchor, + ); + chain.push(lp()); + if (ftype === '24db') { + chain.push(lp()); + } + } + + if (hcutoff !== undefined) { + let hp = () => + createFilter( + ac, + 'highpass', + hcutoff, + hresonance, + hpattack, + hpdecay, + hpsustain, + hprelease, + hpenv, + t, + t + hapDuration, + fanchor, + ); + chain.push(hp()); + if (ftype === '24db') { + chain.push(hp()); + } + } + + if (bandf !== undefined) { + let bp = () => + createFilter( + ac, + 'bandpass', + bandf, + bandq, + bpattack, + bpdecay, + bpsustain, + bprelease, + bpenv, + t, + t + hapDuration, + fanchor, + ); + chain.push(bp()); + if (ftype === '24db') { + chain.push(bp()); + } + } + + if (vowel !== undefined) { + const vowelFilter = ac.createVowelFilter(vowel); + chain.push(vowelFilter); + } // effects coarse !== undefined && chain.push(getWorklet(ac, 'coarse-processor', { coarse })); crush !== undefined && chain.push(getWorklet(ac, 'crush-processor', { crush })); shape !== undefined && chain.push(getWorklet(ac, 'shape-processor', { shape })); + compressorThreshold !== undefined && + chain.push( + getCompressor(ac, compressorThreshold, compressorRatio, compressorKnee, compressorAttack, compressorRelease), + ); + // panning if (pan !== undefined) { const panner = ac.createStereoPanner(); @@ -258,7 +379,7 @@ export const superdough = async (value, deadline, hapDuration) => { } // last gain - const post = gainNode(1); + const post = gainNode(postgain); chain.push(post); post.connect(getDestination()); @@ -270,8 +391,19 @@ export const superdough = async (value, deadline, hapDuration) => { } // reverb let reverbSend; - if (room > 0 && size > 0) { - const reverbNode = getReverb(orbit, size); + if (room > 0) { + let roomIR; + if (ir !== undefined) { + let url; + let sample = getSound(ir); + if (Array.isArray(sample)) { + url = sample.data.samples[i % sample.data.samples.length]; + } else if (typeof sample === 'object') { + url = Object.values(sample.data.samples).flat()[i % Object.values(sample.data.samples).length]; + } + roomIR = await loadBuffer(url, ac, ir, 0); + } + const reverbNode = getReverb(orbit, roomsize, roomfade, roomlp, roomdim, roomIR); reverbSend = effectSend(post, reverbNode, room); } diff --git a/packages/superdough/synth.mjs b/packages/superdough/synth.mjs index a409d990..24d1d5ef 100644 --- a/packages/superdough/synth.mjs +++ b/packages/superdough/synth.mjs @@ -1,6 +1,7 @@ import { midiToFreq, noteToMidi } from './util.mjs'; import { registerSound, getAudioContext } from './superdough.mjs'; import { gainNode, getEnvelope, getExpEnvelope } from './helpers.mjs'; +import { getNoiseMix, getNoiseOscillator } from './noise.mjs'; const mod = (freq, range = 1, type = 'sine') => { const ctx = getAudioContext(); @@ -20,66 +21,26 @@ const fm = (osc, harmonicityRatio, modulationIndex, wave = 'sine') => { return mod(modfreq, modgain, wave); }; +const waveforms = ['sine', 'square', 'triangle', 'sawtooth']; +const noises = ['pink', 'white', 'brown']; + export function registerSynthSounds() { - ['sine', 'square', 'triangle', 'sawtooth'].forEach((wave) => { + [...waveforms, ...noises].forEach((s) => { registerSound( - wave, + s, (t, value, onended) => { // destructure adsr here, because the default should be different for synths and samples - let { - attack = 0.001, - decay = 0.05, - sustain = 0.6, - release = 0.01, - fmh: fmHarmonicity = 1, - fmi: fmModulationIndex, - fmenv: fmEnvelopeType = 'lin', - fmattack: fmAttack, - fmdecay: fmDecay, - fmsustain: fmSustain, - fmrelease: fmRelease, - fmvelocity: fmVelocity, - fmwave: fmWaveform = 'sine', - } = value; - let { n, note, freq } = value; - // with synths, n and note are the same thing - 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); - } - // maybe pull out the above frequency resolution?? (there is also getFrequency but it has no default) - // make oscillator - const { node: o, stop } = getOscillator({ t, s: wave, freq, partials: n }); + let { attack = 0.001, decay = 0.05, sustain = 0.6, release = 0.01 } = value; - // FM + FM envelope - let stopFm, fmEnvelope; - 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 { - fmAttack = fmAttack ?? 0.001; - fmDecay = fmDecay ?? 0.001; - fmSustain = fmSustain ?? 1; - fmRelease = fmRelease ?? 0.001; - fmVelocity = fmVelocity ?? 1; - fmEnvelope = getEnvelope(fmAttack, fmDecay, fmSustain, fmRelease, fmVelocity, t); - if (fmEnvelopeType === 'exp') { - fmEnvelope = getExpEnvelope(fmAttack, fmDecay, fmSustain, fmRelease, fmVelocity, t); - fmEnvelope.node.maxValue = fmModulationIndex * 2; - fmEnvelope.node.minValue = 0.00001; - } - modulator.connect(fmEnvelope.node); - fmEnvelope.node.connect(o.frequency); - } - stopFm = stop; + let sound; + if (waveforms.includes(s)) { + sound = getOscillator(s, t, value); + } else { + sound = getNoiseOscillator(s, t); } + let { node: o, stop, triggerRelease } = sound; + // turn down const g = gainNode(0.3); @@ -95,10 +56,9 @@ export function registerSynthSounds() { node: o.connect(g).connect(envelope), stop: (releaseTime) => { releaseEnvelope(releaseTime); - fmEnvelope?.stop(releaseTime); + triggerRelease?.(releaseTime); let end = releaseTime + release; stop(end); - stopFm?.(end); }, }; }, @@ -137,18 +97,108 @@ export function waveformN(partials, type) { return osc; } -export function getOscillator({ s, freq, t, partials }) { - // make oscillator +// expects one of waveforms as s +export function getOscillator( + s, + t, + { + n: partials, + note, + freq, + vib = 0, + vibmod = 0.5, + noise = 0, + // fm + fmh: fmHarmonicity = 1, + fmi: fmModulationIndex, + fmenv: fmEnvelopeType = 'lin', + fmattack: fmAttack, + fmdecay: fmDecay, + fmsustain: fmSustain, + fmrelease: fmRelease, + fmvelocity: fmVelocity, + fmwave: fmWaveform = 'sine', + }, +) { + let ac = getAudioContext(); let o; + // If no partials are given, use stock waveforms if (!partials || s === 'sine') { o = getAudioContext().createOscillator(); o.type = s || 'triangle'; - } else { + } + // generate custom waveform if partials are given + 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.start(t); - //o.stop(t + duration + release); - const stop = (time) => o.stop(time); - return { node: o, stop }; + + // FM + let stopFm, fmEnvelope; + 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 { + fmAttack = fmAttack ?? 0.001; + fmDecay = fmDecay ?? 0.001; + fmSustain = fmSustain ?? 1; + fmRelease = fmRelease ?? 0.001; + fmVelocity = fmVelocity ?? 1; + fmEnvelope = getEnvelope(fmAttack, fmDecay, fmSustain, fmRelease, fmVelocity, t); + if (fmEnvelopeType === 'exp') { + fmEnvelope = getExpEnvelope(fmAttack, fmDecay, fmSustain, fmRelease, fmVelocity, t); + fmEnvelope.node.maxValue = fmModulationIndex * 2; + fmEnvelope.node.minValue = 0.00001; + } + modulator.connect(fmEnvelope.node); + fmEnvelope.node.connect(o.frequency); + } + stopFm = stop; + } + + // Additional oscillator for vibrato effect + let vibratoOscillator; + if (vib > 0) { + vibratoOscillator = getAudioContext().createOscillator(); + vibratoOscillator.frequency.value = vib; + const gain = getAudioContext().createGain(); + // Vibmod is the amount of vibrato, in semitones + gain.gain.value = vibmod * 100; + vibratoOscillator.connect(gain); + gain.connect(o.detune); + vibratoOscillator.start(t); + } + + let noiseMix; + if (noise) { + noiseMix = getNoiseMix(o, noise, t); + } + + return { + node: noiseMix?.node || o, + stop: (time) => { + vibratoOscillator?.stop(time); + noiseMix?.stop(time); + stopFm?.(time); + o.stop(time); + }, + triggerRelease: (time) => { + fmEnvelope?.stop(time); + }, + }; } diff --git a/packages/superdough/zzfx.mjs b/packages/superdough/zzfx.mjs index da505d74..a6af8260 100644 --- a/packages/superdough/zzfx.mjs +++ b/packages/superdough/zzfx.mjs @@ -20,7 +20,7 @@ export const getZZFX = (value, t) => { pitchJump = 0, pitchJumpTime = 0, lfo = 0, - noise = 0, + znoise = 0, zmod = 0, zcrush = 0, zdelay = 0, @@ -54,7 +54,7 @@ export const getZZFX = (value, t) => { pitchJump, pitchJumpTime, lfo, - noise, + znoise, zmod, zcrush, zdelay, diff --git a/packages/tonal/package.json b/packages/tonal/package.json index d98d565f..bef3c2f0 100644 --- a/packages/tonal/package.json +++ b/packages/tonal/package.json @@ -1,6 +1,6 @@ { "name": "@strudel.cycles/tonal", - "version": "0.8.2", + "version": "0.9.0", "description": "Tonal functions for strudel", "main": "index.mjs", "publishConfig": { diff --git a/packages/tonal/tonal.mjs b/packages/tonal/tonal.mjs index 3fd8a5da..99a11c53 100644 --- a/packages/tonal/tonal.mjs +++ b/packages/tonal/tonal.mjs @@ -150,6 +150,9 @@ export const scale = register('scale', function (scale, pat) { return pat.withHap((hap) => { const isObject = typeof hap.value === 'object'; let note = isObject ? hap.value.n : hap.value; + if (isObject) { + delete hap.value.n; // remove n so it won't cause trouble + } const asNumber = Number(note); if (!isNaN(asNumber)) { // TODO: worth keeping for supporting ':' in (non-mininotation) strings? diff --git a/packages/transpiler/package.json b/packages/transpiler/package.json index 95fbfee7..b546bce2 100644 --- a/packages/transpiler/package.json +++ b/packages/transpiler/package.json @@ -1,6 +1,6 @@ { "name": "@strudel.cycles/transpiler", - "version": "0.8.2", + "version": "0.9.0", "description": "Transpiler for strudel user code. Converts syntactically correct but semantically meaningless JS into evaluatable strudel code.", "main": "index.mjs", "publishConfig": { diff --git a/packages/transpiler/transpiler.mjs b/packages/transpiler/transpiler.mjs index 78aae9f7..256be1d2 100644 --- a/packages/transpiler/transpiler.mjs +++ b/packages/transpiler/transpiler.mjs @@ -5,7 +5,7 @@ import { isNoteWithOctave } from '@strudel.cycles/core'; import { getLeafLocations } from '@strudel.cycles/mini'; export function transpiler(input, options = {}) { - const { wrapAsync = false, addReturn = true, emitMiniLocations = true } = options; + const { wrapAsync = false, addReturn = true, emitMiniLocations = true, emitWidgets = true } = options; let ast = parse(input, { ecmaVersion: 2022, @@ -16,9 +16,9 @@ export function transpiler(input, options = {}) { let miniLocations = []; const collectMiniLocations = (value, node) => { const leafLocs = getLeafLocations(`"${value}"`, node.start); // stimmt! - //const withOffset = leafLocs.map((offsets) => offsets.map((o) => o + node.start)); miniLocations = miniLocations.concat(leafLocs); }; + let widgets = []; walk(ast, { enter(node, parent /* , prop, index */) { @@ -35,6 +35,18 @@ export function transpiler(input, options = {}) { emitMiniLocations && collectMiniLocations(value, node); return this.replace(miniWithLocation(value, node)); } + if (isWidgetFunction(node)) { + emitWidgets && + widgets.push({ + from: node.arguments[0].start, + to: node.arguments[0].end, + value: node.arguments[0].raw, // don't use value! + min: node.arguments[1]?.value ?? 0, + max: node.arguments[2]?.value ?? 1, + step: node.arguments[3]?.value, + }); + return this.replace(widgetWithLocation(node)); + } // TODO: remove pseudo note variables? if (node.type === 'Identifier' && isNoteWithOctave(node.name)) { this.skip(); @@ -64,15 +76,14 @@ export function transpiler(input, options = {}) { if (!emitMiniLocations) { return { output }; } - return { output, miniLocations }; + return { output, miniLocations, widgets }; } function isStringWithDoubleQuotes(node, locations, code) { - const { raw, type } = node; - if (type !== 'Literal') { + if (node.type !== 'Literal') { return false; } - return raw[0] === '"'; + return node.raw[0] === '"'; } function isBackTickString(node, parent) { @@ -94,3 +105,22 @@ function miniWithLocation(value, node) { optional: false, }; } + +// these functions are connected to @strudel/codemirror -> slider.mjs +// maybe someday there will be pluggable transpiler functions, then move this there +function isWidgetFunction(node) { + return node.type === 'CallExpression' && node.callee.name === 'slider'; +} + +function widgetWithLocation(node) { + const id = 'slider_' + node.arguments[0].start; // use loc of first arg for id + // add loc as identifier to first argument + // the sliderWithID function is assumed to be sliderWithID(id, value, min?, max?) + node.arguments.unshift({ + type: 'Literal', + value: id, + raw: id, + }); + node.callee.name = 'sliderWithID'; + return node; +} diff --git a/packages/web/package.json b/packages/web/package.json index 9e866bf1..7e182f40 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/web", - "version": "0.8.3", + "version": "0.9.0", "description": "Easy to setup, opiniated bundle of Strudel for the browser.", "main": "web.mjs", "publishConfig": { diff --git a/packages/webaudio/package.json b/packages/webaudio/package.json index edd53cbd..cebb30f3 100644 --- a/packages/webaudio/package.json +++ b/packages/webaudio/package.json @@ -1,6 +1,6 @@ { "name": "@strudel.cycles/webaudio", - "version": "0.8.2", + "version": "0.9.0", "description": "Web Audio helpers for Strudel", "main": "index.mjs", "type": "module", diff --git a/packages/webaudio/webaudio.mjs b/packages/webaudio/webaudio.mjs index 8b32a90c..fb4a3d7d 100644 --- a/packages/webaudio/webaudio.mjs +++ b/packages/webaudio/webaudio.mjs @@ -5,7 +5,7 @@ This program is free software: you can redistribute it and/or modify it under th */ import * as strudel from '@strudel.cycles/core'; -import { superdough, getAudioContext, setLogger } from 'superdough'; +import { superdough, getAudioContext, setLogger, doughTrigger } from 'superdough'; const { Pattern, logger } = strudel; setLogger(logger); @@ -35,3 +35,7 @@ export function webaudioScheduler(options = {}) { onTrigger: strudel.getTrigger({ defaultOutput, getTime }), }); } + +Pattern.prototype.dough = function () { + return this.onTrigger(doughTrigger, 1); +}; diff --git a/packages/xen/package.json b/packages/xen/package.json index 42ce4805..ef2e04d2 100644 --- a/packages/xen/package.json +++ b/packages/xen/package.json @@ -1,6 +1,6 @@ { "name": "@strudel.cycles/xen", - "version": "0.8.0", + "version": "0.9.0", "description": "Xenharmonic API for strudel", "main": "index.mjs", "publishConfig": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8b48a93f..9f222a20 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -588,6 +588,9 @@ importers: '@strudel.cycles/xen': specifier: workspace:* version: link:../packages/xen + '@strudel/codemirror': + specifier: workspace:* + version: link:../packages/codemirror '@strudel/desktopbridge': specifier: workspace:* version: link:../packages/desktopbridge @@ -1426,6 +1429,7 @@ packages: /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.21.5): resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -1441,6 +1445,7 @@ packages: /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.21.5): resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -1454,6 +1459,7 @@ packages: /@babel/plugin-proposal-class-static-block@7.20.7(@babel/core@7.21.5): resolution: {integrity: sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-static-block instead. peerDependencies: '@babel/core': ^7.12.0 dependencies: @@ -1468,6 +1474,7 @@ packages: /@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.21.5): resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -1479,6 +1486,7 @@ packages: /@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@7.21.5): resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -1490,6 +1498,7 @@ packages: /@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.21.5): resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -1501,6 +1510,7 @@ packages: /@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.21.5): resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -1512,6 +1522,7 @@ packages: /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.21.5): resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -1523,6 +1534,7 @@ packages: /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.21.5): resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -1534,6 +1546,7 @@ packages: /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.21.5): resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -1548,6 +1561,7 @@ packages: /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.21.5): resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -1559,6 +1573,7 @@ packages: /@babel/plugin-proposal-optional-chaining@7.20.7(@babel/core@7.21.5): resolution: {integrity: sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -1571,6 +1586,7 @@ packages: /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.21.5): resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -1584,6 +1600,7 @@ packages: /@babel/plugin-proposal-private-property-in-object@7.20.5(@babel/core@7.21.5): resolution: {integrity: sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -1599,6 +1616,7 @@ packages: /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.21.5): resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} engines: {node: '>=4'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: diff --git a/test/__snapshots__/examples.test.mjs.snap b/test/__snapshots__/examples.test.mjs.snap index 60b39c53..ed0249f3 100644 --- a/test/__snapshots__/examples.test.mjs.snap +++ b/test/__snapshots__/examples.test.mjs.snap @@ -900,6 +900,33 @@ exports[`runs examples > example "begin" example index 0 1`] = ` ] `; +exports[`runs examples > example "bpattack" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c2 s:sawtooth bandf:500 bpattack:0.5 bpenv:4 ]", + "[ 1/1 → 2/1 | note:e2 s:sawtooth bandf:500 bpattack:0.5 bpenv:4 ]", + "[ 2/1 → 3/1 | note:f2 s:sawtooth bandf:500 bpattack:0.5 bpenv:4 ]", + "[ 3/1 → 4/1 | note:g2 s:sawtooth bandf:500 bpattack:0.5 bpenv:4 ]", +] +`; + +exports[`runs examples > example "bpdecay" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c2 s:sawtooth bandf:500 bpdecay:0.5 bpsustain:0.2 bpenv:4 ]", + "[ 1/1 → 2/1 | note:e2 s:sawtooth bandf:500 bpdecay:0.5 bpsustain:0.2 bpenv:4 ]", + "[ 2/1 → 3/1 | note:f2 s:sawtooth bandf:500 bpdecay:0.5 bpsustain:0.2 bpenv:4 ]", + "[ 3/1 → 4/1 | note:g2 s:sawtooth bandf:500 bpdecay:0.5 bpsustain:0.2 bpenv:4 ]", +] +`; + +exports[`runs examples > example "bpenv" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c2 s:sawtooth bandf:500 bpattack:0.5 bpenv:4 ]", + "[ 1/1 → 2/1 | note:e2 s:sawtooth bandf:500 bpattack:0.5 bpenv:4 ]", + "[ 2/1 → 3/1 | note:f2 s:sawtooth bandf:500 bpattack:0.5 bpenv:4 ]", + "[ 3/1 → 4/1 | note:g2 s:sawtooth bandf:500 bpattack:0.5 bpenv:4 ]", +] +`; + exports[`runs examples > example "bpf" example index 0 1`] = ` [ "[ 0/1 → 1/3 | s:hh bandf:1000 ]", @@ -938,6 +965,24 @@ exports[`runs examples > example "bpq" example index 0 1`] = ` ] `; +exports[`runs examples > example "bprelease" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c2 s:sawtooth clip:0.5 bandf:500 bpenv:4 bprelease:0.5 release:0.5 ]", + "[ 1/1 → 2/1 | note:e2 s:sawtooth clip:0.5 bandf:500 bpenv:4 bprelease:0.5 release:0.5 ]", + "[ 2/1 → 3/1 | note:f2 s:sawtooth clip:0.5 bandf:500 bpenv:4 bprelease:0.5 release:0.5 ]", + "[ 3/1 → 4/1 | note:g2 s:sawtooth clip:0.5 bandf:500 bpenv:4 bprelease:0.5 release:0.5 ]", +] +`; + +exports[`runs examples > example "bpsustain" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c2 s:sawtooth bandf:500 bpdecay:0.5 bpsustain:0 bpenv:4 ]", + "[ 1/1 → 2/1 | note:e2 s:sawtooth bandf:500 bpdecay:0.5 bpsustain:0 bpenv:4 ]", + "[ 2/1 → 3/1 | note:f2 s:sawtooth bandf:500 bpdecay:0.5 bpsustain:0 bpenv:4 ]", + "[ 3/1 → 4/1 | note:g2 s:sawtooth bandf:500 bpdecay:0.5 bpsustain:0 bpenv:4 ]", +] +`; + exports[`runs examples > example "cat" example index 0 1`] = ` [ "[ 0/1 → 1/2 | s:hh ]", @@ -1026,6 +1071,31 @@ exports[`runs examples > example "chooseCycles" example index 1 1`] = ` ] `; +exports[`runs examples > example "chooseWith" example index 0 1`] = ` +[ + "[ 0/1 → 1/5 | note:c2 s:bd n:6 ]", + "[ 1/5 → 2/5 | note:g2 s:sawtooth ]", + "[ 2/5 → 3/5 | note:g2 s:triangle ]", + "[ 3/5 → 4/5 | note:d2 s:bd n:6 ]", + "[ 4/5 → 1/1 | note:f1 s:sawtooth ]", + "[ 1/1 → 6/5 | note:c2 s:bd n:6 ]", + "[ 6/5 → 7/5 | note:g2 s:sawtooth ]", + "[ 7/5 → 8/5 | note:g2 s:triangle ]", + "[ 8/5 → 9/5 | note:d2 s:bd n:6 ]", + "[ 9/5 → 2/1 | note:f1 s:sawtooth ]", + "[ 2/1 → 11/5 | note:c2 s:bd n:6 ]", + "[ 11/5 → 12/5 | note:g2 s:sawtooth ]", + "[ 12/5 → 13/5 | note:g2 s:triangle ]", + "[ 13/5 → 14/5 | note:d2 s:bd n:6 ]", + "[ 14/5 → 3/1 | note:f1 s:sawtooth ]", + "[ 3/1 → 16/5 | note:c2 s:bd n:6 ]", + "[ 16/5 → 17/5 | note:g2 s:sawtooth ]", + "[ 17/5 → 18/5 | note:g2 s:triangle ]", + "[ 18/5 → 19/5 | note:d2 s:bd n:6 ]", + "[ 19/5 → 4/1 | note:f1 s:sawtooth ]", +] +`; + exports[`runs examples > example "chop" example index 0 1`] = ` [ "[ 0/1 → 1/1 | s:rhodes begin:0.75 end:1 speed:0.25 unit:c ]", @@ -1140,6 +1210,35 @@ exports[`runs examples > example "compress" example index 0 1`] = ` ] `; +exports[`runs examples > example "compressor" example index 0 1`] = ` +[ + "[ 0/1 → 1/4 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 ]", + "[ 0/1 → 1/2 | s:bd compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 ]", + "[ 1/4 → 1/2 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 ]", + "[ 1/2 → 3/4 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 ]", + "[ 1/2 → 1/1 | s:sd compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 ]", + "[ 3/4 → 1/1 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 ]", + "[ 1/1 → 5/4 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 ]", + "[ 1/1 → 3/2 | s:bd compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 ]", + "[ 5/4 → 3/2 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 ]", + "[ 3/2 → 7/4 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 ]", + "[ 3/2 → 2/1 | s:sd compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 ]", + "[ 7/4 → 2/1 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 ]", + "[ 2/1 → 9/4 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 ]", + "[ 2/1 → 5/2 | s:bd compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 ]", + "[ 9/4 → 5/2 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 ]", + "[ 5/2 → 11/4 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 ]", + "[ 5/2 → 3/1 | s:sd compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 ]", + "[ 11/4 → 3/1 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 ]", + "[ 3/1 → 13/4 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 ]", + "[ 3/1 → 7/2 | s:bd compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 ]", + "[ 13/4 → 7/2 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 ]", + "[ 7/2 → 15/4 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 ]", + "[ 7/2 → 4/1 | s:sd compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 ]", + "[ 15/4 → 4/1 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 ]", +] +`; + exports[`runs examples > example "cosine" example index 0 1`] = ` [ "[ 0/1 → 1/8 | note:Eb4 ]", @@ -1783,6 +1882,15 @@ exports[`runs examples > example "firstOf" example index 0 1`] = ` ] `; +exports[`runs examples > example "fit" example index 0 1`] = ` +[ + "[ (0/1 → 1/1) ⇝ 4/1 | s:rhodes speed:0.25 unit:c ]", + "[ 0/1 ⇜ (1/1 → 2/1) ⇝ 4/1 | s:rhodes speed:0.25 unit:c ]", + "[ 0/1 ⇜ (2/1 → 3/1) ⇝ 4/1 | s:rhodes speed:0.25 unit:c ]", + "[ 0/1 ⇜ (3/1 → 4/1) | s:rhodes speed:0.25 unit:c ]", +] +`; + exports[`runs examples > example "floor" example index 0 1`] = ` [ "[ 0/1 → 1/4 | note:42 ]", @@ -2013,6 +2121,15 @@ exports[`runs examples > example "freq" example index 1 1`] = ` ] `; +exports[`runs examples > example "ftype" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c2 s:sawtooth cutoff:500 bpenv:4 ftype:12db ]", + "[ 1/1 → 2/1 | note:e2 s:sawtooth cutoff:500 bpenv:4 ftype:24db ]", + "[ 2/1 → 3/1 | note:f2 s:sawtooth cutoff:500 bpenv:4 ftype:12db ]", + "[ 3/1 → 4/1 | note:g2 s:sawtooth cutoff:500 bpenv:4 ftype:24db ]", +] +`; + exports[`runs examples > example "gain" example index 0 1`] = ` [ "[ 0/1 → 1/8 | s:hh gain:0.4 ]", @@ -2050,6 +2167,33 @@ exports[`runs examples > example "gain" example index 0 1`] = ` ] `; +exports[`runs examples > example "hpattack" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c2 s:sawtooth hcutoff:500 hpattack:0.5 hpenv:4 ]", + "[ 1/1 → 2/1 | note:e2 s:sawtooth hcutoff:500 hpattack:0.5 hpenv:4 ]", + "[ 2/1 → 3/1 | note:f2 s:sawtooth hcutoff:500 hpattack:0.5 hpenv:4 ]", + "[ 3/1 → 4/1 | note:g2 s:sawtooth hcutoff:500 hpattack:0.5 hpenv:4 ]", +] +`; + +exports[`runs examples > example "hpdecay" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c2 s:sawtooth hcutoff:500 hpdecay:0.5 hpsustain:0.2 hpenv:4 ]", + "[ 1/1 → 2/1 | note:e2 s:sawtooth hcutoff:500 hpdecay:0.5 hpsustain:0.2 hpenv:4 ]", + "[ 2/1 → 3/1 | note:f2 s:sawtooth hcutoff:500 hpdecay:0.5 hpsustain:0.2 hpenv:4 ]", + "[ 3/1 → 4/1 | note:g2 s:sawtooth hcutoff:500 hpdecay:0.5 hpsustain:0.2 hpenv:4 ]", +] +`; + +exports[`runs examples > example "hpenv" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c2 s:sawtooth hcutoff:500 hpattack:0.5 hpenv:4 ]", + "[ 1/1 → 2/1 | note:e2 s:sawtooth hcutoff:500 hpattack:0.5 hpenv:4 ]", + "[ 2/1 → 3/1 | note:f2 s:sawtooth hcutoff:500 hpattack:0.5 hpenv:4 ]", + "[ 3/1 → 4/1 | note:g2 s:sawtooth hcutoff:500 hpattack:0.5 hpenv:4 ]", +] +`; + exports[`runs examples > example "hpf" example index 0 1`] = ` [ "[ 0/1 → 1/4 | s:hh hcutoff:4000 ]", @@ -2137,6 +2281,24 @@ exports[`runs examples > example "hpq" example index 0 1`] = ` ] `; +exports[`runs examples > example "hprelease" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c2 s:sawtooth clip:0.5 hcutoff:500 hpenv:4 hprelease:0.5 release:0.5 ]", + "[ 1/1 → 2/1 | note:e2 s:sawtooth clip:0.5 hcutoff:500 hpenv:4 hprelease:0.5 release:0.5 ]", + "[ 2/1 → 3/1 | note:f2 s:sawtooth clip:0.5 hcutoff:500 hpenv:4 hprelease:0.5 release:0.5 ]", + "[ 3/1 → 4/1 | note:g2 s:sawtooth clip:0.5 hcutoff:500 hpenv:4 hprelease:0.5 release:0.5 ]", +] +`; + +exports[`runs examples > example "hpsustain" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c2 s:sawtooth hcutoff:500 hpdecay:0.5 hpsustain:0 hpenv:4 ]", + "[ 1/1 → 2/1 | note:e2 s:sawtooth hcutoff:500 hpdecay:0.5 hpsustain:0 hpenv:4 ]", + "[ 2/1 → 3/1 | note:f2 s:sawtooth hcutoff:500 hpdecay:0.5 hpsustain:0 hpenv:4 ]", + "[ 3/1 → 4/1 | note:g2 s:sawtooth hcutoff:500 hpdecay:0.5 hpsustain:0 hpenv:4 ]", +] +`; + exports[`runs examples > example "hurry" example index 0 1`] = ` [ "[ 0/1 → 3/4 | s:bd speed:1 ]", @@ -2541,10 +2703,10 @@ exports[`runs examples > example "linger" example index 0 1`] = ` exports[`runs examples > example "loop" example index 0 1`] = ` [ - "[ 0/1 → 1/1 | s:bd loop:1 ]", - "[ 1/1 → 2/1 | s:bd loop:2 ]", - "[ 2/1 → 3/1 | s:bd loop:3 ]", - "[ 3/1 → 4/1 | s:bd loop:4 ]", + "[ 0/1 → 1/1 | s:casio loop:1 ]", + "[ 1/1 → 2/1 | s:casio loop:1 ]", + "[ 2/1 → 3/1 | s:casio loop:1 ]", + "[ 3/1 → 4/1 | s:casio loop:1 ]", ] `; @@ -2566,6 +2728,51 @@ exports[`runs examples > example "loopAtCps" example index 0 1`] = ` ] `; +exports[`runs examples > example "loopBegin" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | s:space loop:1 loopBegin:0 analyze:1 ]", + "[ 1/1 → 2/1 | s:space loop:1 loopBegin:0.125 analyze:1 ]", + "[ 2/1 → 3/1 | s:space loop:1 loopBegin:0.25 analyze:1 ]", + "[ 3/1 → 4/1 | s:space loop:1 loopBegin:0 analyze:1 ]", +] +`; + +exports[`runs examples > example "loopEnd" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | s:space loop:1 loopEnd:1 analyze:1 ]", + "[ 1/1 → 2/1 | s:space loop:1 loopEnd:0.75 analyze:1 ]", + "[ 2/1 → 3/1 | s:space loop:1 loopEnd:0.5 analyze:1 ]", + "[ 3/1 → 4/1 | s:space loop:1 loopEnd:0.25 analyze:1 ]", +] +`; + +exports[`runs examples > example "lpattack" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]", + "[ 1/1 → 2/1 | note:e2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]", + "[ 2/1 → 3/1 | note:f2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]", + "[ 3/1 → 4/1 | note:g2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]", +] +`; + +exports[`runs examples > example "lpdecay" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0.2 lpenv:4 ]", + "[ 1/1 → 2/1 | note:e2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0.2 lpenv:4 ]", + "[ 2/1 → 3/1 | note:f2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0.2 lpenv:4 ]", + "[ 3/1 → 4/1 | note:g2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0.2 lpenv:4 ]", +] +`; + +exports[`runs examples > example "lpenv" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]", + "[ 1/1 → 2/1 | note:e2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]", + "[ 2/1 → 3/1 | note:f2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]", + "[ 3/1 → 4/1 | note:g2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]", +] +`; + exports[`runs examples > example "lpf" example index 0 1`] = ` [ "[ 0/1 → 1/3 | s:hh cutoff:4000 ]", @@ -2657,6 +2864,24 @@ exports[`runs examples > example "lpq" example index 0 1`] = ` ] `; +exports[`runs examples > example "lprelease" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c2 s:sawtooth clip:0.5 cutoff:500 lpenv:4 lprelease:0.5 release:0.5 ]", + "[ 1/1 → 2/1 | note:e2 s:sawtooth clip:0.5 cutoff:500 lpenv:4 lprelease:0.5 release:0.5 ]", + "[ 2/1 → 3/1 | note:f2 s:sawtooth clip:0.5 cutoff:500 lpenv:4 lprelease:0.5 release:0.5 ]", + "[ 3/1 → 4/1 | note:g2 s:sawtooth clip:0.5 cutoff:500 lpenv:4 lprelease:0.5 release:0.5 ]", +] +`; + +exports[`runs examples > example "lpsustain" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0 lpenv:4 ]", + "[ 1/1 → 2/1 | note:e2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0 lpenv:4 ]", + "[ 2/1 → 3/1 | note:f2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0 lpenv:4 ]", + "[ 3/1 → 4/1 | note:g2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0 lpenv:4 ]", +] +`; + exports[`runs examples > example "lrate" example index 0 1`] = ` [ "[ 0/1 → 1/1 | n:0 s:supersquare leslie:1 lrate:1 ]", @@ -2788,6 +3013,15 @@ exports[`runs examples > example "never" example index 0 1`] = ` ] `; +exports[`runs examples > example "noise" example index 0 1`] = ` +[ + "[ (0/1 → 1/1) ⇝ 2/1 | s:white ]", + "[ 0/1 ⇜ (1/1 → 2/1) | s:white ]", + "[ (2/1 → 3/1) ⇝ 4/1 | s:pink ]", + "[ 2/1 ⇜ (3/1 → 4/1) | s:pink ]", +] +`; + exports[`runs examples > example "note" example index 0 1`] = ` [ "[ 0/1 → 1/4 | note:c ]", @@ -3113,6 +3347,35 @@ exports[`runs examples > example "polymeterSteps" example index 0 1`] = ` ] `; +exports[`runs examples > example "postgain" example index 0 1`] = ` +[ + "[ 0/1 → 1/4 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]", + "[ 0/1 → 1/2 | s:bd compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]", + "[ 1/4 → 1/2 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]", + "[ 1/2 → 3/4 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]", + "[ 1/2 → 1/1 | s:sd compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]", + "[ 3/4 → 1/1 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]", + "[ 1/1 → 5/4 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]", + "[ 1/1 → 3/2 | s:bd compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]", + "[ 5/4 → 3/2 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]", + "[ 3/2 → 7/4 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]", + "[ 3/2 → 2/1 | s:sd compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]", + "[ 7/4 → 2/1 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]", + "[ 2/1 → 9/4 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]", + "[ 2/1 → 5/2 | s:bd compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]", + "[ 9/4 → 5/2 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]", + "[ 5/2 → 11/4 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]", + "[ 5/2 → 3/1 | s:sd compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]", + "[ 11/4 → 3/1 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]", + "[ 3/1 → 13/4 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]", + "[ 3/1 → 7/2 | s:bd compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]", + "[ 13/4 → 7/2 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]", + "[ 7/2 → 15/4 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]", + "[ 7/2 → 4/1 | s:sd compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]", + "[ 15/4 → 4/1 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]", +] +`; + exports[`runs examples > example "press" example index 0 1`] = ` [ "[ 0/1 → 1/2 | s:hh ]", @@ -3483,16 +3746,107 @@ exports[`runs examples > example "room" example index 1 1`] = ` ] `; +exports[`runs examples > example "roomdim" example index 0 1`] = ` +[ + "[ 0/1 → 1/2 | s:bd room:0.5 roomlp:10000 roomdim:8000 ]", + "[ 1/2 → 1/1 | s:sd room:0.5 roomlp:10000 roomdim:8000 ]", + "[ 1/1 → 3/2 | s:bd room:0.5 roomlp:10000 roomdim:8000 ]", + "[ 3/2 → 2/1 | s:sd room:0.5 roomlp:10000 roomdim:8000 ]", + "[ 2/1 → 5/2 | s:bd room:0.5 roomlp:10000 roomdim:8000 ]", + "[ 5/2 → 3/1 | s:sd room:0.5 roomlp:10000 roomdim:8000 ]", + "[ 3/1 → 7/2 | s:bd room:0.5 roomlp:10000 roomdim:8000 ]", + "[ 7/2 → 4/1 | s:sd room:0.5 roomlp:10000 roomdim:8000 ]", +] +`; + +exports[`runs examples > example "roomdim" example index 1 1`] = ` +[ + "[ 0/1 → 1/2 | s:bd room:0.5 roomlp:5000 roomdim:400 ]", + "[ 1/2 → 1/1 | s:sd room:0.5 roomlp:5000 roomdim:400 ]", + "[ 1/1 → 3/2 | s:bd room:0.5 roomlp:5000 roomdim:400 ]", + "[ 3/2 → 2/1 | s:sd room:0.5 roomlp:5000 roomdim:400 ]", + "[ 2/1 → 5/2 | s:bd room:0.5 roomlp:5000 roomdim:400 ]", + "[ 5/2 → 3/1 | s:sd room:0.5 roomlp:5000 roomdim:400 ]", + "[ 3/1 → 7/2 | s:bd room:0.5 roomlp:5000 roomdim:400 ]", + "[ 7/2 → 4/1 | s:sd room:0.5 roomlp:5000 roomdim:400 ]", +] +`; + +exports[`runs examples > example "roomfade" example index 0 1`] = ` +[ + "[ 0/1 → 1/2 | s:bd room:0.5 roomlp:10000 roomfade:0.5 ]", + "[ 1/2 → 1/1 | s:sd room:0.5 roomlp:10000 roomfade:0.5 ]", + "[ 1/1 → 3/2 | s:bd room:0.5 roomlp:10000 roomfade:0.5 ]", + "[ 3/2 → 2/1 | s:sd room:0.5 roomlp:10000 roomfade:0.5 ]", + "[ 2/1 → 5/2 | s:bd room:0.5 roomlp:10000 roomfade:0.5 ]", + "[ 5/2 → 3/1 | s:sd room:0.5 roomlp:10000 roomfade:0.5 ]", + "[ 3/1 → 7/2 | s:bd room:0.5 roomlp:10000 roomfade:0.5 ]", + "[ 7/2 → 4/1 | s:sd room:0.5 roomlp:10000 roomfade:0.5 ]", +] +`; + +exports[`runs examples > example "roomfade" example index 1 1`] = ` +[ + "[ 0/1 → 1/2 | s:bd room:0.5 roomlp:5000 roomfade:4 ]", + "[ 1/2 → 1/1 | s:sd room:0.5 roomlp:5000 roomfade:4 ]", + "[ 1/1 → 3/2 | s:bd room:0.5 roomlp:5000 roomfade:4 ]", + "[ 3/2 → 2/1 | s:sd room:0.5 roomlp:5000 roomfade:4 ]", + "[ 2/1 → 5/2 | s:bd room:0.5 roomlp:5000 roomfade:4 ]", + "[ 5/2 → 3/1 | s:sd room:0.5 roomlp:5000 roomfade:4 ]", + "[ 3/1 → 7/2 | s:bd room:0.5 roomlp:5000 roomfade:4 ]", + "[ 7/2 → 4/1 | s:sd room:0.5 roomlp:5000 roomfade:4 ]", +] +`; + +exports[`runs examples > example "roomlp" example index 0 1`] = ` +[ + "[ 0/1 → 1/2 | s:bd room:0.5 roomlp:10000 ]", + "[ 1/2 → 1/1 | s:sd room:0.5 roomlp:10000 ]", + "[ 1/1 → 3/2 | s:bd room:0.5 roomlp:10000 ]", + "[ 3/2 → 2/1 | s:sd room:0.5 roomlp:10000 ]", + "[ 2/1 → 5/2 | s:bd room:0.5 roomlp:10000 ]", + "[ 5/2 → 3/1 | s:sd room:0.5 roomlp:10000 ]", + "[ 3/1 → 7/2 | s:bd room:0.5 roomlp:10000 ]", + "[ 7/2 → 4/1 | s:sd room:0.5 roomlp:10000 ]", +] +`; + +exports[`runs examples > example "roomlp" example index 1 1`] = ` +[ + "[ 0/1 → 1/2 | s:bd room:0.5 roomlp:5000 ]", + "[ 1/2 → 1/1 | s:sd room:0.5 roomlp:5000 ]", + "[ 1/1 → 3/2 | s:bd room:0.5 roomlp:5000 ]", + "[ 3/2 → 2/1 | s:sd room:0.5 roomlp:5000 ]", + "[ 2/1 → 5/2 | s:bd room:0.5 roomlp:5000 ]", + "[ 5/2 → 3/1 | s:sd room:0.5 roomlp:5000 ]", + "[ 3/1 → 7/2 | s:bd room:0.5 roomlp:5000 ]", + "[ 7/2 → 4/1 | s:sd room:0.5 roomlp:5000 ]", +] +`; + exports[`runs examples > example "roomsize" example index 0 1`] = ` [ - "[ 0/1 → 1/2 | s:bd room:0.8 size:0 ]", - "[ 1/2 → 1/1 | s:sd room:0.8 size:0 ]", - "[ 1/1 → 3/2 | s:bd room:0.8 size:1 ]", - "[ 3/2 → 2/1 | s:sd room:0.8 size:1 ]", - "[ 2/1 → 5/2 | s:bd room:0.8 size:2 ]", - "[ 5/2 → 3/1 | s:sd room:0.8 size:2 ]", - "[ 3/1 → 7/2 | s:bd room:0.8 size:4 ]", - "[ 7/2 → 4/1 | s:sd room:0.8 size:4 ]", + "[ 0/1 → 1/2 | s:bd room:0.8 roomsize:1 ]", + "[ 1/2 → 1/1 | s:sd room:0.8 roomsize:1 ]", + "[ 1/1 → 3/2 | s:bd room:0.8 roomsize:1 ]", + "[ 3/2 → 2/1 | s:sd room:0.8 roomsize:1 ]", + "[ 2/1 → 5/2 | s:bd room:0.8 roomsize:1 ]", + "[ 5/2 → 3/1 | s:sd room:0.8 roomsize:1 ]", + "[ 3/1 → 7/2 | s:bd room:0.8 roomsize:1 ]", + "[ 7/2 → 4/1 | s:sd room:0.8 roomsize:1 ]", +] +`; + +exports[`runs examples > example "roomsize" example index 1 1`] = ` +[ + "[ 0/1 → 1/2 | s:bd room:0.8 roomsize:4 ]", + "[ 1/2 → 1/1 | s:sd room:0.8 roomsize:4 ]", + "[ 1/1 → 3/2 | s:bd room:0.8 roomsize:4 ]", + "[ 3/2 → 2/1 | s:sd room:0.8 roomsize:4 ]", + "[ 2/1 → 5/2 | s:bd room:0.8 roomsize:4 ]", + "[ 5/2 → 3/1 | s:sd room:0.8 roomsize:4 ]", + "[ 3/1 → 7/2 | s:bd room:0.8 roomsize:4 ]", + "[ 7/2 → 4/1 | s:sd room:0.8 roomsize:4 ]", ] `; @@ -3671,96 +4025,96 @@ exports[`runs examples > example "saw" example index 1 1`] = ` exports[`runs examples > example "scale" example index 0 1`] = ` [ - "[ 0/1 → 1/6 | n:0 note:C3 ]", - "[ 1/6 → 1/3 | n:2 note:E3 ]", - "[ 1/3 → 1/2 | n:4 note:G3 ]", - "[ 1/2 → 2/3 | n:6 note:B3 ]", - "[ 2/3 → 5/6 | n:4 note:G3 ]", - "[ 5/6 → 1/1 | n:2 note:E3 ]", - "[ 1/1 → 7/6 | n:0 note:C3 ]", - "[ 7/6 → 4/3 | n:2 note:E3 ]", - "[ 4/3 → 3/2 | n:4 note:G3 ]", - "[ 3/2 → 5/3 | n:6 note:B3 ]", - "[ 5/3 → 11/6 | n:4 note:G3 ]", - "[ 11/6 → 2/1 | n:2 note:E3 ]", - "[ 2/1 → 13/6 | n:0 note:C3 ]", - "[ 13/6 → 7/3 | n:2 note:E3 ]", - "[ 7/3 → 5/2 | n:4 note:G3 ]", - "[ 5/2 → 8/3 | n:6 note:B3 ]", - "[ 8/3 → 17/6 | n:4 note:G3 ]", - "[ 17/6 → 3/1 | n:2 note:E3 ]", - "[ 3/1 → 19/6 | n:0 note:C3 ]", - "[ 19/6 → 10/3 | n:2 note:E3 ]", - "[ 10/3 → 7/2 | n:4 note:G3 ]", - "[ 7/2 → 11/3 | n:6 note:B3 ]", - "[ 11/3 → 23/6 | n:4 note:G3 ]", - "[ 23/6 → 4/1 | n:2 note:E3 ]", + "[ 0/1 → 1/6 | note:C3 ]", + "[ 1/6 → 1/3 | note:E3 ]", + "[ 1/3 → 1/2 | note:G3 ]", + "[ 1/2 → 2/3 | note:B3 ]", + "[ 2/3 → 5/6 | note:G3 ]", + "[ 5/6 → 1/1 | note:E3 ]", + "[ 1/1 → 7/6 | note:C3 ]", + "[ 7/6 → 4/3 | note:E3 ]", + "[ 4/3 → 3/2 | note:G3 ]", + "[ 3/2 → 5/3 | note:B3 ]", + "[ 5/3 → 11/6 | note:G3 ]", + "[ 11/6 → 2/1 | note:E3 ]", + "[ 2/1 → 13/6 | note:C3 ]", + "[ 13/6 → 7/3 | note:E3 ]", + "[ 7/3 → 5/2 | note:G3 ]", + "[ 5/2 → 8/3 | note:B3 ]", + "[ 8/3 → 17/6 | note:G3 ]", + "[ 17/6 → 3/1 | note:E3 ]", + "[ 3/1 → 19/6 | note:C3 ]", + "[ 19/6 → 10/3 | note:E3 ]", + "[ 10/3 → 7/2 | note:G3 ]", + "[ 7/2 → 11/3 | note:B3 ]", + "[ 11/3 → 23/6 | note:G3 ]", + "[ 23/6 → 4/1 | note:E3 ]", ] `; exports[`runs examples > example "scale" example index 1 1`] = ` [ - "[ 0/1 → 1/4 | n:0 note:C3 s:piano ]", - "[ 0/1 → 1/4 | n:7 note:C4 s:piano ]", - "[ 1/4 → 1/2 | n:4 note:G3 s:piano ]", - "[ 1/2 → 3/4 | n:2 note:E3 s:piano ]", - "[ 1/2 → 3/4 | n:7 note:C4 s:piano ]", - "[ 3/4 → 1/1 | n:4 note:G3 s:piano ]", - "[ 1/1 → 5/4 | n:0 note:C3 s:piano ]", - "[ 1/1 → 5/4 | n:7 note:C4 s:piano ]", - "[ 5/4 → 3/2 | n:4 note:G3 s:piano ]", - "[ 3/2 → 7/4 | n:2 note:E3 s:piano ]", - "[ 3/2 → 7/4 | n:7 note:C4 s:piano ]", - "[ 7/4 → 2/1 | n:4 note:G3 s:piano ]", - "[ 2/1 → 9/4 | n:0 note:C3 s:piano ]", - "[ 2/1 → 9/4 | n:7 note:C4 s:piano ]", - "[ 9/4 → 5/2 | n:4 note:G3 s:piano ]", - "[ 5/2 → 11/4 | n:2 note:Eb3 s:piano ]", - "[ 5/2 → 11/4 | n:7 note:C4 s:piano ]", - "[ 11/4 → 3/1 | n:4 note:G3 s:piano ]", - "[ 3/1 → 13/4 | n:0 note:C3 s:piano ]", - "[ 3/1 → 13/4 | n:7 note:C4 s:piano ]", - "[ 13/4 → 7/2 | n:4 note:G3 s:piano ]", - "[ 7/2 → 15/4 | n:2 note:Eb3 s:piano ]", - "[ 7/2 → 15/4 | n:7 note:C4 s:piano ]", - "[ 15/4 → 4/1 | n:4 note:G3 s:piano ]", + "[ 0/1 → 1/4 | note:C3 s:piano ]", + "[ 0/1 → 1/4 | note:C4 s:piano ]", + "[ 1/4 → 1/2 | note:G3 s:piano ]", + "[ 1/2 → 3/4 | note:E3 s:piano ]", + "[ 1/2 → 3/4 | note:C4 s:piano ]", + "[ 3/4 → 1/1 | note:G3 s:piano ]", + "[ 1/1 → 5/4 | note:C3 s:piano ]", + "[ 1/1 → 5/4 | note:C4 s:piano ]", + "[ 5/4 → 3/2 | note:G3 s:piano ]", + "[ 3/2 → 7/4 | note:E3 s:piano ]", + "[ 3/2 → 7/4 | note:C4 s:piano ]", + "[ 7/4 → 2/1 | note:G3 s:piano ]", + "[ 2/1 → 9/4 | note:C3 s:piano ]", + "[ 2/1 → 9/4 | note:C4 s:piano ]", + "[ 9/4 → 5/2 | note:G3 s:piano ]", + "[ 5/2 → 11/4 | note:Eb3 s:piano ]", + "[ 5/2 → 11/4 | note:C4 s:piano ]", + "[ 11/4 → 3/1 | note:G3 s:piano ]", + "[ 3/1 → 13/4 | note:C3 s:piano ]", + "[ 3/1 → 13/4 | note:C4 s:piano ]", + "[ 13/4 → 7/2 | note:G3 s:piano ]", + "[ 7/2 → 15/4 | note:Eb3 s:piano ]", + "[ 7/2 → 15/4 | note:C4 s:piano ]", + "[ 15/4 → 4/1 | note:G3 s:piano ]", ] `; exports[`runs examples > example "scale" example index 2 1`] = ` [ - "[ 0/1 → 1/8 | n:10 note:C5 s:folkharp ]", - "[ 1/8 → 1/4 | n:2 note:F3 s:folkharp ]", - "[ 1/4 → 3/8 | n:7 note:F4 s:folkharp ]", - "[ 3/8 → 1/2 | n:4 note:A3 s:folkharp ]", - "[ 1/2 → 5/8 | n:2 note:F3 s:folkharp ]", - "[ 5/8 → 3/4 | n:5 note:C4 s:folkharp ]", - "[ 3/4 → 7/8 | n:9 note:A4 s:folkharp ]", - "[ 7/8 → 1/1 | n:8 note:G4 s:folkharp ]", - "[ 1/1 → 9/8 | n:7 note:F4 s:folkharp ]", - "[ 9/8 → 5/4 | n:1 note:D3 s:folkharp ]", - "[ 5/4 → 11/8 | n:1 note:D3 s:folkharp ]", - "[ 11/8 → 3/2 | n:6 note:D4 s:folkharp ]", - "[ 3/2 → 13/8 | n:2 note:F3 s:folkharp ]", - "[ 13/8 → 7/4 | n:4 note:A3 s:folkharp ]", - "[ 7/4 → 15/8 | n:6 note:D4 s:folkharp ]", - "[ 15/8 → 2/1 | n:10 note:C5 s:folkharp ]", - "[ 2/1 → 17/8 | n:4 note:A3 s:folkharp ]", - "[ 17/8 → 9/4 | n:0 note:C3 s:folkharp ]", - "[ 9/4 → 19/8 | n:8 note:G4 s:folkharp ]", - "[ 19/8 → 5/2 | n:2 note:F3 s:folkharp ]", - "[ 5/2 → 21/8 | n:7 note:F4 s:folkharp ]", - "[ 21/8 → 11/4 | n:6 note:D4 s:folkharp ]", - "[ 11/4 → 23/8 | n:11 note:D5 s:folkharp ]", - "[ 23/8 → 3/1 | n:3 note:G3 s:folkharp ]", - "[ 3/1 → 25/8 | n:0 note:C3 s:folkharp ]", - "[ 25/8 → 13/4 | n:11 note:D5 s:folkharp ]", - "[ 13/4 → 27/8 | n:4 note:A3 s:folkharp ]", - "[ 27/8 → 7/2 | n:9 note:A4 s:folkharp ]", - "[ 7/2 → 29/8 | n:10 note:C5 s:folkharp ]", - "[ 29/8 → 15/4 | n:12 note:F5 s:folkharp ]", - "[ 15/4 → 31/8 | n:1 note:D3 s:folkharp ]", - "[ 31/8 → 4/1 | n:4 note:A3 s:folkharp ]", + "[ 0/1 → 1/8 | note:C5 s:folkharp ]", + "[ 1/8 → 1/4 | note:F3 s:folkharp ]", + "[ 1/4 → 3/8 | note:F4 s:folkharp ]", + "[ 3/8 → 1/2 | note:A3 s:folkharp ]", + "[ 1/2 → 5/8 | note:F3 s:folkharp ]", + "[ 5/8 → 3/4 | note:C4 s:folkharp ]", + "[ 3/4 → 7/8 | note:A4 s:folkharp ]", + "[ 7/8 → 1/1 | note:G4 s:folkharp ]", + "[ 1/1 → 9/8 | note:F4 s:folkharp ]", + "[ 9/8 → 5/4 | note:D3 s:folkharp ]", + "[ 5/4 → 11/8 | note:D3 s:folkharp ]", + "[ 11/8 → 3/2 | note:D4 s:folkharp ]", + "[ 3/2 → 13/8 | note:F3 s:folkharp ]", + "[ 13/8 → 7/4 | note:A3 s:folkharp ]", + "[ 7/4 → 15/8 | note:D4 s:folkharp ]", + "[ 15/8 → 2/1 | note:C5 s:folkharp ]", + "[ 2/1 → 17/8 | note:A3 s:folkharp ]", + "[ 17/8 → 9/4 | note:C3 s:folkharp ]", + "[ 9/4 → 19/8 | note:G4 s:folkharp ]", + "[ 19/8 → 5/2 | note:F3 s:folkharp ]", + "[ 5/2 → 21/8 | note:F4 s:folkharp ]", + "[ 21/8 → 11/4 | note:D4 s:folkharp ]", + "[ 11/4 → 23/8 | note:D5 s:folkharp ]", + "[ 23/8 → 3/1 | note:G3 s:folkharp ]", + "[ 3/1 → 25/8 | note:C3 s:folkharp ]", + "[ 25/8 → 13/4 | note:D5 s:folkharp ]", + "[ 13/4 → 27/8 | note:A3 s:folkharp ]", + "[ 27/8 → 7/2 | note:A4 s:folkharp ]", + "[ 7/2 → 29/8 | note:C5 s:folkharp ]", + "[ 29/8 → 15/4 | note:F5 s:folkharp ]", + "[ 15/4 → 31/8 | note:D3 s:folkharp ]", + "[ 31/8 → 4/1 | note:A3 s:folkharp ]", ] `; @@ -4179,6 +4533,36 @@ exports[`runs examples > example "speed" example index 1 1`] = ` ] `; +exports[`runs examples > example "splice" example index 0 1`] = ` +[ + "[ 0/1 → 5/26 | speed:0.65 unit:c begin:0 end:0.125 _slices:8 s:breaks165 ]", + "[ 5/26 → 5/13 | speed:0.65 unit:c begin:0.125 end:0.25 _slices:8 s:breaks165 ]", + "[ 5/13 → 20/39 | speed:0.9750000000000001 unit:c begin:0.25 end:0.375 _slices:8 s:breaks165 ]", + "[ 20/39 → 25/39 | speed:0.9750000000000001 unit:c begin:0.375 end:0.5 _slices:8 s:breaks165 ]", + "[ 25/39 → 10/13 | speed:0.9750000000000001 unit:c begin:0 end:0.125 _slices:8 s:breaks165 ]", + "[ 10/13 → 25/26 | speed:0.65 unit:c begin:0.375 end:0.5 _slices:8 s:breaks165 ]", + "[ (25/26 → 1/1) ⇝ 35/26 | speed:0.325 unit:c begin:0 end:0.125 _slices:8 s:breaks165 ]", + "[ 25/26 ⇜ (1/1 → 35/26) | speed:0.325 unit:c begin:0 end:0.125 _slices:8 s:breaks165 ]", + "[ 35/26 → 20/13 | speed:0.65 unit:c begin:0.875 end:1 _slices:8 s:breaks165 ]", + "[ 20/13 → 45/26 | speed:0.65 unit:c begin:0 end:0.125 _slices:8 s:breaks165 ]", + "[ 45/26 → 25/13 | speed:0.65 unit:c begin:0.125 end:0.25 _slices:8 s:breaks165 ]", + "[ (25/13 → 2/1) ⇝ 80/39 | speed:0.9750000000000001 unit:c begin:0.25 end:0.375 _slices:8 s:breaks165 ]", + "[ 25/13 ⇜ (2/1 → 80/39) | speed:0.9750000000000001 unit:c begin:0.25 end:0.375 _slices:8 s:breaks165 ]", + "[ 80/39 → 85/39 | speed:0.9750000000000001 unit:c begin:0.375 end:0.5 _slices:8 s:breaks165 ]", + "[ 85/39 → 30/13 | speed:0.9750000000000001 unit:c begin:0 end:0.125 _slices:8 s:breaks165 ]", + "[ 30/13 → 5/2 | speed:0.65 unit:c begin:0.375 end:0.5 _slices:8 s:breaks165 ]", + "[ 5/2 → 75/26 | speed:0.325 unit:c begin:0 end:0.125 _slices:8 s:breaks165 ]", + "[ (75/26 → 3/1) ⇝ 40/13 | speed:0.65 unit:c begin:0.875 end:1 _slices:8 s:breaks165 ]", + "[ 75/26 ⇜ (3/1 → 40/13) | speed:0.65 unit:c begin:0.875 end:1 _slices:8 s:breaks165 ]", + "[ 40/13 → 85/26 | speed:0.65 unit:c begin:0 end:0.125 _slices:8 s:breaks165 ]", + "[ 85/26 → 45/13 | speed:0.65 unit:c begin:0.125 end:0.25 _slices:8 s:breaks165 ]", + "[ 45/13 → 140/39 | speed:0.9750000000000001 unit:c begin:0.25 end:0.375 _slices:8 s:breaks165 ]", + "[ 140/39 → 145/39 | speed:0.9750000000000001 unit:c begin:0.375 end:0.5 _slices:8 s:breaks165 ]", + "[ 145/39 → 50/13 | speed:0.9750000000000001 unit:c begin:0 end:0.125 _slices:8 s:breaks165 ]", + "[ (50/13 → 4/1) ⇝ 105/26 | speed:0.65 unit:c begin:0.375 end:0.5 _slices:8 s:breaks165 ]", +] +`; + exports[`runs examples > example "square" example index 0 1`] = ` [ "[ 0/1 → 1/2 | note:C3 ]", @@ -4557,6 +4941,42 @@ exports[`runs examples > example "velocity" example index 0 1`] = ` ] `; +exports[`runs examples > example "vib" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:a vib:0.5 ]", + "[ 1/1 → 2/1 | note:a vib:1 ]", + "[ 2/1 → 3/1 | note:a vib:2 ]", + "[ 3/1 → 4/1 | note:a vib:4 ]", +] +`; + +exports[`runs examples > example "vib" example index 1 1`] = ` +[ + "[ 0/1 → 1/1 | note:a vib:0.5 vibmod:12 ]", + "[ 1/1 → 2/1 | note:a vib:1 vibmod:12 ]", + "[ 2/1 → 3/1 | note:a vib:2 vibmod:12 ]", + "[ 3/1 → 4/1 | note:a vib:4 vibmod:12 ]", +] +`; + +exports[`runs examples > example "vibmod" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:a vib:4 vibmod:0.25 ]", + "[ 1/1 → 2/1 | note:a vib:4 vibmod:0.5 ]", + "[ 2/1 → 3/1 | note:a vib:4 vibmod:1 ]", + "[ 3/1 → 4/1 | note:a vib:4 vibmod:2 ]", +] +`; + +exports[`runs examples > example "vibmod" example index 1 1`] = ` +[ + "[ 0/1 → 1/1 | note:a vibmod:0.25 vib:8 ]", + "[ 1/1 → 2/1 | note:a vibmod:0.5 vib:8 ]", + "[ 2/1 → 3/1 | note:a vibmod:1 vib:8 ]", + "[ 3/1 → 4/1 | note:a vibmod:2 vib:8 ]", +] +`; + exports[`runs examples > example "voicing" example index 0 1`] = ` [ "[ 0/1 → 1/1 | note:E4 ]", diff --git a/test/__snapshots__/tunes.test.mjs.snap b/test/__snapshots__/tunes.test.mjs.snap index 3c072ca2..8d696d75 100644 --- a/test/__snapshots__/tunes.test.mjs.snap +++ b/test/__snapshots__/tunes.test.mjs.snap @@ -3,23 +3,23 @@ exports[`renders tunes > tune: amensister 1`] = ` [ "[ 0/1 → 1/16 | s:breath room:1 shape:0.6 begin:0.9375 end:1 ]", - "[ 0/1 → 1/8 | note:Eb1 s:sawtooth decay:0.1 sustain:0 gain:0.4 cutoff:300.0066107586751 resonance:10 ]", - "[ 0/1 → 1/8 | note:F1 s:sawtooth decay:0.1 sustain:0 gain:0.4 cutoff:300.0066107586751 resonance:10 ]", + "[ 0/1 → 1/8 | note:Eb1 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:300.0066107586751 ]", + "[ 0/1 → 1/8 | note:F1 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:300.0066107586751 ]", "[ 0/1 → 1/4 | n:0 s:amencutup room:0.5 ]", "[ 1/16 → 1/8 | s:breath room:1 shape:0.6 begin:0.875 end:0.9375 ]", "[ 1/8 → 3/16 | s:breath room:1 shape:0.6 begin:0.8125 end:0.875 ]", - "[ 1/8 → 1/4 | note:45 s:sawtooth decay:0.1 sustain:0 gain:0.4 cutoff:300.174310575404 resonance:10 ]", - "[ 1/8 → 1/4 | note:45 s:sawtooth decay:0.1 sustain:0 gain:0.4 cutoff:300.174310575404 resonance:10 ]", + "[ 1/8 → 1/4 | note:45 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:300.174310575404 ]", + "[ 1/8 → 1/4 | note:45 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:300.174310575404 ]", "[ 3/16 → 1/4 | s:breath room:1 shape:0.6 begin:0.75 end:0.8125 ]", "[ 1/4 → 5/16 | s:breath room:1 shape:0.6 begin:0.6875 end:0.75 ]", "[ 1/4 → 3/8 | n:1 speed:2 delay:0.5 s:amencutup room:0.5 ]", - "[ 1/4 → 3/8 | note:A1 s:sawtooth decay:0.1 sustain:0 gain:0.4 cutoff:300.7878869297153 resonance:10 ]", - "[ 1/4 → 3/8 | note:A1 s:sawtooth decay:0.1 sustain:0 gain:0.4 cutoff:300.7878869297153 resonance:10 ]", + "[ 1/4 → 3/8 | note:A1 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:300.7878869297153 ]", + "[ 1/4 → 3/8 | note:A1 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:300.7878869297153 ]", "[ 5/16 → 3/8 | s:breath room:1 shape:0.6 begin:0.625 end:0.6875 ]", "[ 3/8 → 7/16 | s:breath room:1 shape:0.6 begin:0.5625 end:0.625 ]", "[ 3/8 → 1/2 | n:1 s:amencutup room:0.5 ]", - "[ 3/8 → 1/2 | note:F1 s:sawtooth decay:0.1 sustain:0 gain:0.4 cutoff:302.11020572391345 resonance:10 ]", - "[ 3/8 → 1/2 | note:F1 s:sawtooth decay:0.1 sustain:0 gain:0.4 cutoff:302.11020572391345 resonance:10 ]", + "[ 3/8 → 1/2 | note:F1 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:302.11020572391345 ]", + "[ 3/8 → 1/2 | note:F1 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:302.11020572391345 ]", "[ 7/16 → 1/2 | s:breath room:1 shape:0.6 begin:0.5 end:0.5625 ]", "[ 1/2 → 9/16 | s:breath room:1 shape:0.6 begin:0.4375 end:0.5 ]", "[ 1/2 → 3/4 | n:2 s:amencutup room:0.5 ]", @@ -28,13 +28,13 @@ exports[`renders tunes > tune: amensister 1`] = ` "[ 11/16 → 3/4 | s:breath room:1 shape:0.6 begin:0.25 end:0.3125 ]", "[ 3/4 → 13/16 | s:breath room:1 shape:0.6 begin:0.1875 end:0.25 ]", "[ 3/4 → 7/8 | n:3 s:amencutup room:0.5 ]", - "[ 3/4 → 7/8 | note:Bb0 s:sawtooth decay:0.1 sustain:0 gain:0.4 cutoff:312.54769231985796 resonance:10 ]", - "[ 3/4 → 7/8 | note:Bb0 s:sawtooth decay:0.1 sustain:0 gain:0.4 cutoff:312.54769231985796 resonance:10 ]", + "[ 3/4 → 7/8 | note:Bb0 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:312.54769231985796 ]", + "[ 3/4 → 7/8 | note:Bb0 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:312.54769231985796 ]", "[ 13/16 → 7/8 | s:breath room:1 shape:0.6 begin:0.125 end:0.1875 ]", "[ 7/8 → 15/16 | s:breath room:1 shape:0.6 begin:0.0625 end:0.125 ]", "[ 7/8 → 1/1 | n:3 s:amencutup room:0.5 ]", - "[ 7/8 → 1/1 | note:D1 s:sawtooth decay:0.1 sustain:0 gain:0.4 cutoff:318.7927796831686 resonance:10 ]", - "[ 7/8 → 1/1 | note:D1 s:sawtooth decay:0.1 sustain:0 gain:0.4 cutoff:318.7927796831686 resonance:10 ]", + "[ 7/8 → 1/1 | note:D1 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:318.7927796831686 ]", + "[ 7/8 → 1/1 | note:D1 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:318.7927796831686 ]", "[ 15/16 → 1/1 | s:breath room:1 shape:0.6 begin:0 end:0.0625 ]", ] `; @@ -44,8 +44,8 @@ exports[`renders tunes > tune: arpoon 1`] = ` "[ (0/1 → 1/4) ⇝ 1/3 | note:55.000070545713186 clip:2 cutoff:501.2345499807435 resonance:12 gain:0.5 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.48882285676537807 s:piano ]", "[ (0/1 → 1/4) ⇝ 1/3 | note:64.00007054571319 clip:2 cutoff:501.2345499807435 resonance:12 gain:0.5 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.48882285676537807 s:piano ]", "[ 0/1 → 1/2 | s:bd bank:RolandTR909 gain:0.5 ]", - "[ 0/1 → 1/1 | note:33 s:sawtooth clip:1 cutoff:300 ]", - "[ 0/1 → 1/1 | note:33.12 s:sawtooth clip:1 cutoff:300 ]", + "[ 0/1 → 1/1 | note:33 s:sawtooth cutoff:180 lpattack:0.1 lpenv:2 ]", + "[ 0/1 → 1/1 | note:33.12 s:sawtooth cutoff:180 lpattack:0.1 lpenv:2 ]", "[ 0/1 ⇜ (1/4 → 1/3) | note:55.000070545713186 clip:2 cutoff:501.2345499807435 resonance:12 gain:0.8 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.48882285676537807 s:piano ]", "[ 0/1 ⇜ (1/4 → 1/3) | note:64.00007054571319 clip:2 cutoff:501.2345499807435 resonance:12 gain:0.8 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.48882285676537807 s:piano ]", "[ (1/3 → 1/2) ⇝ 2/3 | note:60.00166796373806 clip:2 cutoff:529.1893654159594 resonance:12 gain:0.8 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.5560660171779821 s:piano ]", @@ -323,8 +323,8 @@ exports[`renders tunes > tune: blippyRhodes 1`] = ` [ "[ 0/1 → 1/6 | note:G4 clip:0.3 s:rhodes room:0.5 delay:0.3 delayfeedback:0.4 delaytime:0.08333333333333333 gain:0.5 ]", "[ 0/1 → 1/3 | s:bd ]", - "[ (0/1 → 2/3) ⇝ 4/3 | note:36 gain:0.3 clip:1 s:sawtooth cutoff:600 ]", - "[ (0/1 → 2/3) ⇝ 4/3 | note:36.02 gain:0.3 clip:1 s:sawtooth cutoff:600 ]", + "[ (0/1 → 2/3) ⇝ 4/3 | note:36 gain:0.3 clip:1 cutoff:600 lpattack:0.2 lpenv:-4 s:sawtooth ]", + "[ (0/1 → 2/3) ⇝ 4/3 | note:36.02 gain:0.3 clip:1 cutoff:600 lpattack:0.2 lpenv:-4 s:sawtooth ]", "[ 1/6 → 1/3 | note:G4 clip:0.3 s:rhodes room:0.5 delay:0.3 delayfeedback:0.4 delaytime:0.08333333333333333 gain:0.5 ]", "[ 1/3 → 1/2 | note:B3 clip:0.3 s:rhodes room:0.5 delay:0.3 delayfeedback:0.4 delaytime:0.08333333333333333 gain:0.5 ]", "[ 1/3 → 1/2 | note:E4 clip:0.3 s:rhodes room:0.5 delay:0.3 delayfeedback:0.4 delaytime:0.08333333333333333 gain:0.5 ]", @@ -332,8 +332,8 @@ exports[`renders tunes > tune: blippyRhodes 1`] = ` "[ 1/2 → 2/3 | note:B3 clip:0.3 s:rhodes room:0.5 delay:0.3 delayfeedback:0.4 delaytime:0.08333333333333333 gain:0.5 ]", "[ 1/2 → 2/3 | note:E4 clip:0.3 s:rhodes room:0.5 delay:0.3 delayfeedback:0.4 delaytime:0.08333333333333333 gain:0.5 ]", "[ 2/3 → 5/6 | note:G3 clip:0.3 s:rhodes room:0.5 delay:0.3 delayfeedback:0.4 delaytime:0.08333333333333333 gain:0.5 ]", - "[ 0/1 ⇜ (2/3 → 1/1) ⇝ 4/3 | note:36 gain:0.3 clip:1 s:sawtooth cutoff:600 ]", - "[ 0/1 ⇜ (2/3 → 1/1) ⇝ 4/3 | note:36.02 gain:0.3 clip:1 s:sawtooth cutoff:600 ]", + "[ 0/1 ⇜ (2/3 → 1/1) ⇝ 4/3 | note:36 gain:0.3 clip:1 cutoff:600 lpattack:0.2 lpenv:-4 s:sawtooth ]", + "[ 0/1 ⇜ (2/3 → 1/1) ⇝ 4/3 | note:36.02 gain:0.3 clip:1 cutoff:600 lpattack:0.2 lpenv:-4 s:sawtooth ]", "[ 2/3 → 1/1 | s:sn ]", "[ 5/6 → 1/1 | note:G3 clip:0.3 s:rhodes room:0.5 delay:0.3 delayfeedback:0.4 delaytime:0.08333333333333333 gain:0.5 ]", ] @@ -341,396 +341,396 @@ exports[`renders tunes > tune: blippyRhodes 1`] = ` exports[`renders tunes > tune: bridgeIsOver 1`] = ` [ - "[ -155/52 ⇜ (0/1 → 5/52) | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ -75/26 ⇜ (0/1 → 5/26) | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ -145/52 ⇜ (0/1 → 15/52) | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ -35/13 ⇜ (0/1 → 5/13) | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ -35/13 ⇜ (0/1 → 5/13) | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ -135/52 ⇜ (0/1 → 5/13) ⇝ 25/52 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ -5/2 ⇜ (0/1 → 5/13) ⇝ 15/26 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ -125/52 ⇜ (0/1 → 5/13) ⇝ 35/52 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ -30/13 ⇜ (0/1 → 5/13) ⇝ 10/13 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ -115/52 ⇜ (0/1 → 5/13) ⇝ 45/52 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ -55/26 ⇜ (0/1 → 5/13) ⇝ 25/26 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ -105/52 ⇜ (0/1 → 5/13) ⇝ 55/52 | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ -155/52 ⇜ (0/1 → 5/52) | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ -75/26 ⇜ (0/1 → 5/26) | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ -145/52 ⇜ (0/1 → 15/52) | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ -35/13 ⇜ (0/1 → 5/13) | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ -35/13 ⇜ (0/1 → 5/13) | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ -135/52 ⇜ (0/1 → 5/13) ⇝ 25/52 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ -5/2 ⇜ (0/1 → 5/13) ⇝ 15/26 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ -125/52 ⇜ (0/1 → 5/13) ⇝ 35/52 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ -30/13 ⇜ (0/1 → 5/13) ⇝ 10/13 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ -115/52 ⇜ (0/1 → 5/13) ⇝ 45/52 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ -55/26 ⇜ (0/1 → 5/13) ⇝ 25/26 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ -105/52 ⇜ (0/1 → 5/13) ⇝ 55/52 | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", "[ 0/1 → 5/13 | note:c3 gain:0.8 clip:1 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ -135/52 ⇜ (0/1 → 25/52) | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ -5/2 ⇜ (0/1 → 15/26) | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ -125/52 ⇜ (0/1 → 35/52) | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ -30/13 ⇜ (0/1 → 10/13) | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ -115/52 ⇜ (0/1 → 10/13) ⇝ 45/52 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ -55/26 ⇜ (0/1 → 10/13) ⇝ 25/26 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ -105/52 ⇜ (0/1 → 10/13) ⇝ 55/52 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ -25/13 ⇜ (0/1 → 10/13) ⇝ 15/13 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ -95/52 ⇜ (0/1 → 10/13) ⇝ 5/4 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ -45/26 ⇜ (0/1 → 10/13) ⇝ 35/26 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ -85/52 ⇜ (0/1 → 10/13) ⇝ 75/52 | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (0/1 → 1/1) ⇝ 40/13 | n:0 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ -135/52 ⇜ (0/1 → 25/52) | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ -5/2 ⇜ (0/1 → 15/26) | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ -125/52 ⇜ (0/1 → 35/52) | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ -30/13 ⇜ (0/1 → 10/13) | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ -115/52 ⇜ (0/1 → 10/13) ⇝ 45/52 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ -55/26 ⇜ (0/1 → 10/13) ⇝ 25/26 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ -105/52 ⇜ (0/1 → 10/13) ⇝ 55/52 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ -25/13 ⇜ (0/1 → 10/13) ⇝ 15/13 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ -95/52 ⇜ (0/1 → 10/13) ⇝ 5/4 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ -45/26 ⇜ (0/1 → 10/13) ⇝ 35/26 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ -85/52 ⇜ (0/1 → 10/13) ⇝ 75/52 | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (0/1 → 1/1) ⇝ 40/13 | clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", "[ (0/1 → 1/1) ⇝ 80/13 | s:mad ]", - "[ (5/52 → 1/1) ⇝ 165/52 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ (5/26 → 1/1) ⇝ 85/26 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (15/52 → 1/1) ⇝ 175/52 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ -135/52 ⇜ (5/13 → 25/52) | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ -5/2 ⇜ (5/13 → 15/26) | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ -125/52 ⇜ (5/13 → 35/52) | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ -30/13 ⇜ (5/13 → 10/13) | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (5/52 → 1/1) ⇝ 165/52 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ (5/26 → 1/1) ⇝ 85/26 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (15/52 → 1/1) ⇝ 175/52 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ -135/52 ⇜ (5/13 → 25/52) | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ -5/2 ⇜ (5/13 → 15/26) | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ -125/52 ⇜ (5/13 → 35/52) | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ -30/13 ⇜ (5/13 → 10/13) | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", "[ 5/13 → 10/13 | note:c3 gain:0.8 clip:1 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ -115/52 ⇜ (5/13 → 45/52) | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ -55/26 ⇜ (5/13 → 25/26) | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ -105/52 ⇜ (5/13 → 1/1) ⇝ 55/52 | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (5/13 → 1/1) ⇝ 45/13 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ (5/13 → 1/1) ⇝ 45/13 | n:0 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ (25/52 → 1/1) ⇝ 185/52 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (25/52 → 1/1) ⇝ 185/52 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ (15/26 → 1/1) ⇝ 95/26 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (15/26 → 1/1) ⇝ 95/26 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (35/52 → 1/1) ⇝ 15/4 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (35/52 → 1/1) ⇝ 15/4 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ -115/52 ⇜ (10/13 → 45/52) | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ -55/26 ⇜ (10/13 → 25/26) | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ -115/52 ⇜ (5/13 → 45/52) | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ -55/26 ⇜ (5/13 → 25/26) | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ -105/52 ⇜ (5/13 → 1/1) ⇝ 55/52 | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (5/13 → 1/1) ⇝ 45/13 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ (5/13 → 1/1) ⇝ 45/13 | clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (25/52 → 1/1) ⇝ 185/52 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (25/52 → 1/1) ⇝ 185/52 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ (15/26 → 1/1) ⇝ 95/26 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (15/26 → 1/1) ⇝ 95/26 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (35/52 → 1/1) ⇝ 15/4 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (35/52 → 1/1) ⇝ 15/4 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ -115/52 ⇜ (10/13 → 45/52) | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ -55/26 ⇜ (10/13 → 25/26) | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", "[ 10/13 → 155/156 | note:c3 gain:0.8 clip:1 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ -105/52 ⇜ (10/13 → 1/1) ⇝ 55/52 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ -25/13 ⇜ (10/13 → 1/1) ⇝ 15/13 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ -95/52 ⇜ (10/13 → 1/1) ⇝ 5/4 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ -45/26 ⇜ (10/13 → 1/1) ⇝ 35/26 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ -85/52 ⇜ (10/13 → 1/1) ⇝ 75/52 | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (10/13 → 1/1) ⇝ 50/13 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ (10/13 → 1/1) ⇝ 50/13 | n:0 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ (45/52 → 1/1) ⇝ 205/52 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (45/52 → 1/1) ⇝ 205/52 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ (25/26 → 1/1) ⇝ 105/26 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (25/26 → 1/1) ⇝ 105/26 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ -105/52 ⇜ (10/13 → 1/1) ⇝ 55/52 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ -25/13 ⇜ (10/13 → 1/1) ⇝ 15/13 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ -95/52 ⇜ (10/13 → 1/1) ⇝ 5/4 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ -45/26 ⇜ (10/13 → 1/1) ⇝ 35/26 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ -85/52 ⇜ (10/13 → 1/1) ⇝ 75/52 | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (10/13 → 1/1) ⇝ 50/13 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ (10/13 → 1/1) ⇝ 50/13 | clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (45/52 → 1/1) ⇝ 205/52 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (45/52 → 1/1) ⇝ 205/52 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ (25/26 → 1/1) ⇝ 105/26 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (25/26 → 1/1) ⇝ 105/26 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", "[ (155/156 → 1/1) ⇝ 15/13 | note:bb2 gain:0.8 clip:1 s:piano release:0.1 pan:0.46296296296296297 ]", - "[ -105/52 ⇜ (1/1 → 55/52) | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ -105/52 ⇜ (1/1 → 55/52) | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ -25/13 ⇜ (1/1 → 15/13) | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ -105/52 ⇜ (1/1 → 55/52) | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ -105/52 ⇜ (1/1 → 55/52) | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ -25/13 ⇜ (1/1 → 15/13) | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", "[ 155/156 ⇜ (1/1 → 15/13) | note:bb2 gain:0.8 clip:1 s:piano release:0.1 pan:0.46296296296296297 ]", - "[ -95/52 ⇜ (1/1 → 5/4) | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ -45/26 ⇜ (1/1 → 35/26) | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ -85/52 ⇜ (1/1 → 75/52) | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 0/1 ⇜ (1/1 → 2/1) ⇝ 40/13 | n:0 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ -95/52 ⇜ (1/1 → 5/4) | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ -45/26 ⇜ (1/1 → 35/26) | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ -85/52 ⇜ (1/1 → 75/52) | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 0/1 ⇜ (1/1 → 2/1) ⇝ 40/13 | clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", "[ 0/1 ⇜ (1/1 → 2/1) ⇝ 80/13 | s:mad ]", - "[ 5/52 ⇜ (1/1 → 2/1) ⇝ 165/52 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 5/26 ⇜ (1/1 → 2/1) ⇝ 85/26 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 15/52 ⇜ (1/1 → 2/1) ⇝ 175/52 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 5/13 ⇜ (1/1 → 2/1) ⇝ 45/13 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 5/13 ⇜ (1/1 → 2/1) ⇝ 45/13 | n:0 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 25/52 ⇜ (1/1 → 2/1) ⇝ 185/52 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 25/52 ⇜ (1/1 → 2/1) ⇝ 185/52 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 15/26 ⇜ (1/1 → 2/1) ⇝ 95/26 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/26 ⇜ (1/1 → 2/1) ⇝ 95/26 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 35/52 ⇜ (1/1 → 2/1) ⇝ 15/4 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 35/52 ⇜ (1/1 → 2/1) ⇝ 15/4 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 10/13 ⇜ (1/1 → 2/1) ⇝ 50/13 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 10/13 ⇜ (1/1 → 2/1) ⇝ 50/13 | n:0 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 45/52 ⇜ (1/1 → 2/1) ⇝ 205/52 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 45/52 ⇜ (1/1 → 2/1) ⇝ 205/52 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 25/26 ⇜ (1/1 → 2/1) ⇝ 105/26 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 25/26 ⇜ (1/1 → 2/1) ⇝ 105/26 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (55/52 → 2/1) ⇝ 215/52 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (55/52 → 2/1) ⇝ 215/52 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 5/52 ⇜ (1/1 → 2/1) ⇝ 165/52 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 5/26 ⇜ (1/1 → 2/1) ⇝ 85/26 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 15/52 ⇜ (1/1 → 2/1) ⇝ 175/52 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 5/13 ⇜ (1/1 → 2/1) ⇝ 45/13 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 5/13 ⇜ (1/1 → 2/1) ⇝ 45/13 | clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 25/52 ⇜ (1/1 → 2/1) ⇝ 185/52 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 25/52 ⇜ (1/1 → 2/1) ⇝ 185/52 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 15/26 ⇜ (1/1 → 2/1) ⇝ 95/26 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/26 ⇜ (1/1 → 2/1) ⇝ 95/26 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 35/52 ⇜ (1/1 → 2/1) ⇝ 15/4 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 35/52 ⇜ (1/1 → 2/1) ⇝ 15/4 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 10/13 ⇜ (1/1 → 2/1) ⇝ 50/13 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 10/13 ⇜ (1/1 → 2/1) ⇝ 50/13 | clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 45/52 ⇜ (1/1 → 2/1) ⇝ 205/52 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 45/52 ⇜ (1/1 → 2/1) ⇝ 205/52 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 25/26 ⇜ (1/1 → 2/1) ⇝ 105/26 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 25/26 ⇜ (1/1 → 2/1) ⇝ 105/26 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (55/52 → 2/1) ⇝ 215/52 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (55/52 → 2/1) ⇝ 215/52 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", "[ 15/13 → 20/13 | note:ab2 gain:0.8 clip:1 s:piano release:0.1 pan:0.4537037037037037 ]", - "[ (15/13 → 2/1) ⇝ 55/13 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ (5/4 → 2/1) ⇝ 225/52 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (35/26 → 2/1) ⇝ 115/26 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (75/52 → 2/1) ⇝ 235/52 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (15/13 → 2/1) ⇝ 55/13 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ (5/4 → 2/1) ⇝ 225/52 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (35/26 → 2/1) ⇝ 115/26 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (75/52 → 2/1) ⇝ 235/52 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", "[ 20/13 → 25/13 | note:gb2 gain:0.8 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", "[ (25/13 → 2/1) ⇝ 30/13 | note:gb2 gain:0.8 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", "[ 25/13 ⇜ (2/1 → 30/13) | note:gb2 gain:0.8 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 0/1 ⇜ (2/1 → 3/1) ⇝ 40/13 | n:0 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 0/1 ⇜ (2/1 → 3/1) ⇝ 40/13 | clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", "[ 0/1 ⇜ (2/1 → 3/1) ⇝ 80/13 | s:mad ]", - "[ 5/52 ⇜ (2/1 → 3/1) ⇝ 165/52 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 5/26 ⇜ (2/1 → 3/1) ⇝ 85/26 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 15/52 ⇜ (2/1 → 3/1) ⇝ 175/52 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 5/13 ⇜ (2/1 → 3/1) ⇝ 45/13 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 5/13 ⇜ (2/1 → 3/1) ⇝ 45/13 | n:0 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 25/52 ⇜ (2/1 → 3/1) ⇝ 185/52 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 25/52 ⇜ (2/1 → 3/1) ⇝ 185/52 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 15/26 ⇜ (2/1 → 3/1) ⇝ 95/26 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/26 ⇜ (2/1 → 3/1) ⇝ 95/26 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 35/52 ⇜ (2/1 → 3/1) ⇝ 15/4 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 35/52 ⇜ (2/1 → 3/1) ⇝ 15/4 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 10/13 ⇜ (2/1 → 3/1) ⇝ 50/13 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 10/13 ⇜ (2/1 → 3/1) ⇝ 50/13 | n:0 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 45/52 ⇜ (2/1 → 3/1) ⇝ 205/52 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 45/52 ⇜ (2/1 → 3/1) ⇝ 205/52 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 25/26 ⇜ (2/1 → 3/1) ⇝ 105/26 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 25/26 ⇜ (2/1 → 3/1) ⇝ 105/26 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 55/52 ⇜ (2/1 → 3/1) ⇝ 215/52 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 55/52 ⇜ (2/1 → 3/1) ⇝ 215/52 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 15/13 ⇜ (2/1 → 3/1) ⇝ 55/13 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 5/4 ⇜ (2/1 → 3/1) ⇝ 225/52 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 35/26 ⇜ (2/1 → 3/1) ⇝ 115/26 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 75/52 ⇜ (2/1 → 3/1) ⇝ 235/52 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 5/52 ⇜ (2/1 → 3/1) ⇝ 165/52 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 5/26 ⇜ (2/1 → 3/1) ⇝ 85/26 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 15/52 ⇜ (2/1 → 3/1) ⇝ 175/52 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 5/13 ⇜ (2/1 → 3/1) ⇝ 45/13 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 5/13 ⇜ (2/1 → 3/1) ⇝ 45/13 | clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 25/52 ⇜ (2/1 → 3/1) ⇝ 185/52 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 25/52 ⇜ (2/1 → 3/1) ⇝ 185/52 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 15/26 ⇜ (2/1 → 3/1) ⇝ 95/26 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/26 ⇜ (2/1 → 3/1) ⇝ 95/26 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 35/52 ⇜ (2/1 → 3/1) ⇝ 15/4 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 35/52 ⇜ (2/1 → 3/1) ⇝ 15/4 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 10/13 ⇜ (2/1 → 3/1) ⇝ 50/13 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 10/13 ⇜ (2/1 → 3/1) ⇝ 50/13 | clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 45/52 ⇜ (2/1 → 3/1) ⇝ 205/52 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 45/52 ⇜ (2/1 → 3/1) ⇝ 205/52 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 25/26 ⇜ (2/1 → 3/1) ⇝ 105/26 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 25/26 ⇜ (2/1 → 3/1) ⇝ 105/26 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 55/52 ⇜ (2/1 → 3/1) ⇝ 215/52 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 55/52 ⇜ (2/1 → 3/1) ⇝ 215/52 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 15/13 ⇜ (2/1 → 3/1) ⇝ 55/13 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 5/4 ⇜ (2/1 → 3/1) ⇝ 225/52 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 35/26 ⇜ (2/1 → 3/1) ⇝ 115/26 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 75/52 ⇜ (2/1 → 3/1) ⇝ 235/52 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", "[ 30/13 → 395/156 | note:gb2 gain:0.8 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", "[ 395/156 → 35/13 | note:ab2 gain:0.8 clip:1 s:piano release:0.1 pan:0.4537037037037037 ]", "[ (35/13 → 3/1) ⇝ 40/13 | note:bb2 gain:0.8 clip:1 s:piano release:0.1 pan:0.46296296296296297 ]", - "[ 0/1 ⇜ (3/1 → 40/13) | n:0 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 0/1 ⇜ (3/1 → 40/13) | clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", "[ 0/1 ⇜ (3/1 → 40/13) ⇝ 80/13 | s:mad ]", - "[ 5/52 ⇜ (3/1 → 40/13) ⇝ 165/52 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 5/26 ⇜ (3/1 → 40/13) ⇝ 85/26 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 15/52 ⇜ (3/1 → 40/13) ⇝ 175/52 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 5/13 ⇜ (3/1 → 40/13) ⇝ 45/13 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 5/13 ⇜ (3/1 → 40/13) ⇝ 45/13 | n:0 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 25/52 ⇜ (3/1 → 40/13) ⇝ 185/52 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 25/52 ⇜ (3/1 → 40/13) ⇝ 185/52 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 15/26 ⇜ (3/1 → 40/13) ⇝ 95/26 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/26 ⇜ (3/1 → 40/13) ⇝ 95/26 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 35/52 ⇜ (3/1 → 40/13) ⇝ 15/4 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 35/52 ⇜ (3/1 → 40/13) ⇝ 15/4 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 10/13 ⇜ (3/1 → 40/13) ⇝ 50/13 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 10/13 ⇜ (3/1 → 40/13) ⇝ 50/13 | n:0 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 45/52 ⇜ (3/1 → 40/13) ⇝ 205/52 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 45/52 ⇜ (3/1 → 40/13) ⇝ 205/52 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 25/26 ⇜ (3/1 → 40/13) ⇝ 105/26 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 25/26 ⇜ (3/1 → 40/13) ⇝ 105/26 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 55/52 ⇜ (3/1 → 40/13) ⇝ 215/52 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 55/52 ⇜ (3/1 → 40/13) ⇝ 215/52 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 15/13 ⇜ (3/1 → 40/13) ⇝ 55/13 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 5/4 ⇜ (3/1 → 40/13) ⇝ 225/52 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 35/26 ⇜ (3/1 → 40/13) ⇝ 115/26 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 75/52 ⇜ (3/1 → 40/13) ⇝ 235/52 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 5/52 ⇜ (3/1 → 40/13) ⇝ 165/52 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 5/26 ⇜ (3/1 → 40/13) ⇝ 85/26 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 15/52 ⇜ (3/1 → 40/13) ⇝ 175/52 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 5/13 ⇜ (3/1 → 40/13) ⇝ 45/13 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 5/13 ⇜ (3/1 → 40/13) ⇝ 45/13 | clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 25/52 ⇜ (3/1 → 40/13) ⇝ 185/52 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 25/52 ⇜ (3/1 → 40/13) ⇝ 185/52 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 15/26 ⇜ (3/1 → 40/13) ⇝ 95/26 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/26 ⇜ (3/1 → 40/13) ⇝ 95/26 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 35/52 ⇜ (3/1 → 40/13) ⇝ 15/4 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 35/52 ⇜ (3/1 → 40/13) ⇝ 15/4 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 10/13 ⇜ (3/1 → 40/13) ⇝ 50/13 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 10/13 ⇜ (3/1 → 40/13) ⇝ 50/13 | clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 45/52 ⇜ (3/1 → 40/13) ⇝ 205/52 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 45/52 ⇜ (3/1 → 40/13) ⇝ 205/52 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 25/26 ⇜ (3/1 → 40/13) ⇝ 105/26 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 25/26 ⇜ (3/1 → 40/13) ⇝ 105/26 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 55/52 ⇜ (3/1 → 40/13) ⇝ 215/52 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 55/52 ⇜ (3/1 → 40/13) ⇝ 215/52 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 15/13 ⇜ (3/1 → 40/13) ⇝ 55/13 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 5/4 ⇜ (3/1 → 40/13) ⇝ 225/52 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 35/26 ⇜ (3/1 → 40/13) ⇝ 115/26 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 75/52 ⇜ (3/1 → 40/13) ⇝ 235/52 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", "[ 35/13 ⇜ (3/1 → 40/13) | note:bb2 gain:0.8 clip:1 s:piano release:0.1 pan:0.46296296296296297 ]", - "[ 5/52 ⇜ (40/13 → 165/52) | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 5/26 ⇜ (40/13 → 85/26) | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 15/52 ⇜ (40/13 → 175/52) | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 5/13 ⇜ (40/13 → 45/13) | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 5/13 ⇜ (40/13 → 45/13) | n:0 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 25/52 ⇜ (40/13 → 45/13) ⇝ 185/52 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 15/26 ⇜ (40/13 → 45/13) ⇝ 95/26 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 35/52 ⇜ (40/13 → 45/13) ⇝ 15/4 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 10/13 ⇜ (40/13 → 45/13) ⇝ 50/13 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 45/52 ⇜ (40/13 → 45/13) ⇝ 205/52 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 25/26 ⇜ (40/13 → 45/13) ⇝ 105/26 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 55/52 ⇜ (40/13 → 45/13) ⇝ 215/52 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 5/52 ⇜ (40/13 → 165/52) | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 5/26 ⇜ (40/13 → 85/26) | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 15/52 ⇜ (40/13 → 175/52) | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 5/13 ⇜ (40/13 → 45/13) | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 5/13 ⇜ (40/13 → 45/13) | clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 25/52 ⇜ (40/13 → 45/13) ⇝ 185/52 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 15/26 ⇜ (40/13 → 45/13) ⇝ 95/26 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 35/52 ⇜ (40/13 → 45/13) ⇝ 15/4 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 10/13 ⇜ (40/13 → 45/13) ⇝ 50/13 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 45/52 ⇜ (40/13 → 45/13) ⇝ 205/52 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 25/26 ⇜ (40/13 → 45/13) ⇝ 105/26 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 55/52 ⇜ (40/13 → 45/13) ⇝ 215/52 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", "[ 40/13 → 45/13 | note:c3 gain:0.8 clip:1 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ 25/52 ⇜ (40/13 → 185/52) | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 15/26 ⇜ (40/13 → 95/26) | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 35/52 ⇜ (40/13 → 15/4) | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 10/13 ⇜ (40/13 → 50/13) | n:0 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 45/52 ⇜ (40/13 → 50/13) ⇝ 205/52 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 25/26 ⇜ (40/13 → 50/13) ⇝ 105/26 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 55/52 ⇜ (40/13 → 50/13) ⇝ 215/52 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 15/13 ⇜ (40/13 → 50/13) ⇝ 55/13 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 5/4 ⇜ (40/13 → 50/13) ⇝ 225/52 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 35/26 ⇜ (40/13 → 50/13) ⇝ 115/26 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 75/52 ⇜ (40/13 → 50/13) ⇝ 235/52 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 25/52 ⇜ (40/13 → 185/52) | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 15/26 ⇜ (40/13 → 95/26) | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 35/52 ⇜ (40/13 → 15/4) | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 10/13 ⇜ (40/13 → 50/13) | clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 45/52 ⇜ (40/13 → 50/13) ⇝ 205/52 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 25/26 ⇜ (40/13 → 50/13) ⇝ 105/26 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 55/52 ⇜ (40/13 → 50/13) ⇝ 215/52 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 15/13 ⇜ (40/13 → 50/13) ⇝ 55/13 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 5/4 ⇜ (40/13 → 50/13) ⇝ 225/52 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 35/26 ⇜ (40/13 → 50/13) ⇝ 115/26 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 75/52 ⇜ (40/13 → 50/13) ⇝ 235/52 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", "[ 0/1 ⇜ (40/13 → 4/1) ⇝ 80/13 | s:mad ]", - "[ (40/13 → 4/1) ⇝ 80/13 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ (165/52 → 4/1) ⇝ 25/4 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (85/26 → 4/1) ⇝ 165/26 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ (175/52 → 4/1) ⇝ 335/52 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 25/52 ⇜ (45/13 → 185/52) | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 15/26 ⇜ (45/13 → 95/26) | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 35/52 ⇜ (45/13 → 15/4) | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 10/13 ⇜ (45/13 → 50/13) | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ (40/13 → 4/1) ⇝ 80/13 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ (165/52 → 4/1) ⇝ 25/4 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (85/26 → 4/1) ⇝ 165/26 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ (175/52 → 4/1) ⇝ 335/52 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 25/52 ⇜ (45/13 → 185/52) | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 15/26 ⇜ (45/13 → 95/26) | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 35/52 ⇜ (45/13 → 15/4) | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 10/13 ⇜ (45/13 → 50/13) | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", "[ 45/13 → 50/13 | note:c3 gain:0.8 clip:1 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ 45/52 ⇜ (45/13 → 205/52) | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 25/26 ⇜ (45/13 → 4/1) ⇝ 105/26 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 55/52 ⇜ (45/13 → 4/1) ⇝ 215/52 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (45/13 → 4/1) ⇝ 85/13 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (45/13 → 4/1) ⇝ 85/13 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ (185/52 → 4/1) ⇝ 345/52 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (185/52 → 4/1) ⇝ 345/52 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (95/26 → 4/1) ⇝ 175/26 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (95/26 → 4/1) ⇝ 175/26 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ (15/4 → 4/1) ⇝ 355/52 | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (15/4 → 4/1) ⇝ 355/52 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 45/52 ⇜ (50/13 → 205/52) | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 25/26 ⇜ (50/13 → 4/1) ⇝ 105/26 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 55/52 ⇜ (50/13 → 4/1) ⇝ 215/52 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 15/13 ⇜ (50/13 → 4/1) ⇝ 55/13 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 5/4 ⇜ (50/13 → 4/1) ⇝ 225/52 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 35/26 ⇜ (50/13 → 4/1) ⇝ 115/26 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 75/52 ⇜ (50/13 → 4/1) ⇝ 235/52 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 45/52 ⇜ (45/13 → 205/52) | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 25/26 ⇜ (45/13 → 4/1) ⇝ 105/26 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 55/52 ⇜ (45/13 → 4/1) ⇝ 215/52 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (45/13 → 4/1) ⇝ 85/13 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (45/13 → 4/1) ⇝ 85/13 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ (185/52 → 4/1) ⇝ 345/52 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (185/52 → 4/1) ⇝ 345/52 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (95/26 → 4/1) ⇝ 175/26 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (95/26 → 4/1) ⇝ 175/26 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ (15/4 → 4/1) ⇝ 355/52 | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (15/4 → 4/1) ⇝ 355/52 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 45/52 ⇜ (50/13 → 205/52) | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 25/26 ⇜ (50/13 → 4/1) ⇝ 105/26 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 55/52 ⇜ (50/13 → 4/1) ⇝ 215/52 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 15/13 ⇜ (50/13 → 4/1) ⇝ 55/13 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 5/4 ⇜ (50/13 → 4/1) ⇝ 225/52 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 35/26 ⇜ (50/13 → 4/1) ⇝ 115/26 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 75/52 ⇜ (50/13 → 4/1) ⇝ 235/52 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", "[ (50/13 → 4/1) ⇝ 635/156 | note:c3 gain:0.8 clip:1 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ (50/13 → 4/1) ⇝ 90/13 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (50/13 → 4/1) ⇝ 90/13 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ (205/52 → 4/1) ⇝ 365/52 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (205/52 → 4/1) ⇝ 365/52 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 25/26 ⇜ (4/1 → 105/26) | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 25/26 ⇜ (4/1 → 105/26) | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (50/13 → 4/1) ⇝ 90/13 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (50/13 → 4/1) ⇝ 90/13 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ (205/52 → 4/1) ⇝ 365/52 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (205/52 → 4/1) ⇝ 365/52 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 25/26 ⇜ (4/1 → 105/26) | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 25/26 ⇜ (4/1 → 105/26) | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", "[ 50/13 ⇜ (4/1 → 635/156) | note:c3 gain:0.8 clip:1 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ 55/52 ⇜ (4/1 → 215/52) | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 55/52 ⇜ (4/1 → 215/52) | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 15/13 ⇜ (4/1 → 55/13) | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 5/4 ⇜ (4/1 → 225/52) | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 35/26 ⇜ (4/1 → 115/26) | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 75/52 ⇜ (4/1 → 235/52) | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 55/52 ⇜ (4/1 → 215/52) | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 55/52 ⇜ (4/1 → 215/52) | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 15/13 ⇜ (4/1 → 55/13) | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 5/4 ⇜ (4/1 → 225/52) | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 35/26 ⇜ (4/1 → 115/26) | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 75/52 ⇜ (4/1 → 235/52) | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", "[ 0/1 ⇜ (4/1 → 5/1) ⇝ 80/13 | s:mad ]", - "[ 40/13 ⇜ (4/1 → 5/1) ⇝ 80/13 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 165/52 ⇜ (4/1 → 5/1) ⇝ 25/4 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 85/26 ⇜ (4/1 → 5/1) ⇝ 165/26 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 175/52 ⇜ (4/1 → 5/1) ⇝ 335/52 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 45/13 ⇜ (4/1 → 5/1) ⇝ 85/13 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 45/13 ⇜ (4/1 → 5/1) ⇝ 85/13 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 185/52 ⇜ (4/1 → 5/1) ⇝ 345/52 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 185/52 ⇜ (4/1 → 5/1) ⇝ 345/52 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 95/26 ⇜ (4/1 → 5/1) ⇝ 175/26 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 95/26 ⇜ (4/1 → 5/1) ⇝ 175/26 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 15/4 ⇜ (4/1 → 5/1) ⇝ 355/52 | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 15/4 ⇜ (4/1 → 5/1) ⇝ 355/52 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 50/13 ⇜ (4/1 → 5/1) ⇝ 90/13 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 50/13 ⇜ (4/1 → 5/1) ⇝ 90/13 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 205/52 ⇜ (4/1 → 5/1) ⇝ 365/52 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 205/52 ⇜ (4/1 → 5/1) ⇝ 365/52 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (105/26 → 5/1) ⇝ 185/26 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (105/26 → 5/1) ⇝ 185/26 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 40/13 ⇜ (4/1 → 5/1) ⇝ 80/13 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 165/52 ⇜ (4/1 → 5/1) ⇝ 25/4 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 85/26 ⇜ (4/1 → 5/1) ⇝ 165/26 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 175/52 ⇜ (4/1 → 5/1) ⇝ 335/52 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 45/13 ⇜ (4/1 → 5/1) ⇝ 85/13 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 45/13 ⇜ (4/1 → 5/1) ⇝ 85/13 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 185/52 ⇜ (4/1 → 5/1) ⇝ 345/52 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 185/52 ⇜ (4/1 → 5/1) ⇝ 345/52 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 95/26 ⇜ (4/1 → 5/1) ⇝ 175/26 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 95/26 ⇜ (4/1 → 5/1) ⇝ 175/26 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 15/4 ⇜ (4/1 → 5/1) ⇝ 355/52 | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 15/4 ⇜ (4/1 → 5/1) ⇝ 355/52 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 50/13 ⇜ (4/1 → 5/1) ⇝ 90/13 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 50/13 ⇜ (4/1 → 5/1) ⇝ 90/13 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 205/52 ⇜ (4/1 → 5/1) ⇝ 365/52 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 205/52 ⇜ (4/1 → 5/1) ⇝ 365/52 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (105/26 → 5/1) ⇝ 185/26 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (105/26 → 5/1) ⇝ 185/26 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", "[ 635/156 → 55/13 | note:bb2 gain:0.8 clip:1 s:piano release:0.1 pan:0.46296296296296297 ]", - "[ (215/52 → 5/1) ⇝ 375/52 | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (215/52 → 5/1) ⇝ 375/52 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ (215/52 → 5/1) ⇝ 375/52 | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (215/52 → 5/1) ⇝ 375/52 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", "[ 55/13 → 60/13 | note:ab2 gain:0.8 clip:1 s:piano release:0.1 pan:0.4537037037037037 ]", - "[ (55/13 → 5/1) ⇝ 95/13 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (225/52 → 5/1) ⇝ 385/52 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (115/26 → 5/1) ⇝ 15/2 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (235/52 → 5/1) ⇝ 395/52 | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (55/13 → 5/1) ⇝ 95/13 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (225/52 → 5/1) ⇝ 385/52 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (115/26 → 5/1) ⇝ 15/2 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (235/52 → 5/1) ⇝ 395/52 | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", "[ 60/13 → 5/1 | note:gb2 gain:0.8 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", "[ 5/1 → 70/13 | note:gb2 gain:0.8 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", "[ 0/1 ⇜ (5/1 → 6/1) ⇝ 80/13 | s:mad ]", - "[ 40/13 ⇜ (5/1 → 6/1) ⇝ 80/13 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 165/52 ⇜ (5/1 → 6/1) ⇝ 25/4 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 85/26 ⇜ (5/1 → 6/1) ⇝ 165/26 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 175/52 ⇜ (5/1 → 6/1) ⇝ 335/52 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 45/13 ⇜ (5/1 → 6/1) ⇝ 85/13 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 45/13 ⇜ (5/1 → 6/1) ⇝ 85/13 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 185/52 ⇜ (5/1 → 6/1) ⇝ 345/52 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 185/52 ⇜ (5/1 → 6/1) ⇝ 345/52 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 95/26 ⇜ (5/1 → 6/1) ⇝ 175/26 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 95/26 ⇜ (5/1 → 6/1) ⇝ 175/26 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 15/4 ⇜ (5/1 → 6/1) ⇝ 355/52 | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 15/4 ⇜ (5/1 → 6/1) ⇝ 355/52 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 50/13 ⇜ (5/1 → 6/1) ⇝ 90/13 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 50/13 ⇜ (5/1 → 6/1) ⇝ 90/13 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 205/52 ⇜ (5/1 → 6/1) ⇝ 365/52 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 205/52 ⇜ (5/1 → 6/1) ⇝ 365/52 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 105/26 ⇜ (5/1 → 6/1) ⇝ 185/26 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 105/26 ⇜ (5/1 → 6/1) ⇝ 185/26 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 215/52 ⇜ (5/1 → 6/1) ⇝ 375/52 | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 215/52 ⇜ (5/1 → 6/1) ⇝ 375/52 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 55/13 ⇜ (5/1 → 6/1) ⇝ 95/13 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 225/52 ⇜ (5/1 → 6/1) ⇝ 385/52 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 115/26 ⇜ (5/1 → 6/1) ⇝ 15/2 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 235/52 ⇜ (5/1 → 6/1) ⇝ 395/52 | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 40/13 ⇜ (5/1 → 6/1) ⇝ 80/13 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 165/52 ⇜ (5/1 → 6/1) ⇝ 25/4 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 85/26 ⇜ (5/1 → 6/1) ⇝ 165/26 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 175/52 ⇜ (5/1 → 6/1) ⇝ 335/52 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 45/13 ⇜ (5/1 → 6/1) ⇝ 85/13 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 45/13 ⇜ (5/1 → 6/1) ⇝ 85/13 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 185/52 ⇜ (5/1 → 6/1) ⇝ 345/52 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 185/52 ⇜ (5/1 → 6/1) ⇝ 345/52 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 95/26 ⇜ (5/1 → 6/1) ⇝ 175/26 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 95/26 ⇜ (5/1 → 6/1) ⇝ 175/26 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 15/4 ⇜ (5/1 → 6/1) ⇝ 355/52 | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 15/4 ⇜ (5/1 → 6/1) ⇝ 355/52 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 50/13 ⇜ (5/1 → 6/1) ⇝ 90/13 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 50/13 ⇜ (5/1 → 6/1) ⇝ 90/13 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 205/52 ⇜ (5/1 → 6/1) ⇝ 365/52 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 205/52 ⇜ (5/1 → 6/1) ⇝ 365/52 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 105/26 ⇜ (5/1 → 6/1) ⇝ 185/26 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 105/26 ⇜ (5/1 → 6/1) ⇝ 185/26 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 215/52 ⇜ (5/1 → 6/1) ⇝ 375/52 | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 215/52 ⇜ (5/1 → 6/1) ⇝ 375/52 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 55/13 ⇜ (5/1 → 6/1) ⇝ 95/13 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 225/52 ⇜ (5/1 → 6/1) ⇝ 385/52 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 115/26 ⇜ (5/1 → 6/1) ⇝ 15/2 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 235/52 ⇜ (5/1 → 6/1) ⇝ 395/52 | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", "[ (70/13 → 6/1) ⇝ 80/13 | note:gb2 gain:0.8 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", "[ 0/1 ⇜ (6/1 → 80/13) | s:mad ]", - "[ 40/13 ⇜ (6/1 → 80/13) | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 165/52 ⇜ (6/1 → 80/13) ⇝ 25/4 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 85/26 ⇜ (6/1 → 80/13) ⇝ 165/26 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 175/52 ⇜ (6/1 → 80/13) ⇝ 335/52 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 45/13 ⇜ (6/1 → 80/13) ⇝ 85/13 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 45/13 ⇜ (6/1 → 80/13) ⇝ 85/13 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 185/52 ⇜ (6/1 → 80/13) ⇝ 345/52 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 185/52 ⇜ (6/1 → 80/13) ⇝ 345/52 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 95/26 ⇜ (6/1 → 80/13) ⇝ 175/26 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 95/26 ⇜ (6/1 → 80/13) ⇝ 175/26 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 15/4 ⇜ (6/1 → 80/13) ⇝ 355/52 | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 15/4 ⇜ (6/1 → 80/13) ⇝ 355/52 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 50/13 ⇜ (6/1 → 80/13) ⇝ 90/13 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 50/13 ⇜ (6/1 → 80/13) ⇝ 90/13 | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 205/52 ⇜ (6/1 → 80/13) ⇝ 365/52 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 205/52 ⇜ (6/1 → 80/13) ⇝ 365/52 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 105/26 ⇜ (6/1 → 80/13) ⇝ 185/26 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 105/26 ⇜ (6/1 → 80/13) ⇝ 185/26 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 215/52 ⇜ (6/1 → 80/13) ⇝ 375/52 | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 215/52 ⇜ (6/1 → 80/13) ⇝ 375/52 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 55/13 ⇜ (6/1 → 80/13) ⇝ 95/13 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 225/52 ⇜ (6/1 → 80/13) ⇝ 385/52 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 115/26 ⇜ (6/1 → 80/13) ⇝ 15/2 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 235/52 ⇜ (6/1 → 80/13) ⇝ 395/52 | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 40/13 ⇜ (6/1 → 80/13) | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 165/52 ⇜ (6/1 → 80/13) ⇝ 25/4 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 85/26 ⇜ (6/1 → 80/13) ⇝ 165/26 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 175/52 ⇜ (6/1 → 80/13) ⇝ 335/52 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 45/13 ⇜ (6/1 → 80/13) ⇝ 85/13 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 45/13 ⇜ (6/1 → 80/13) ⇝ 85/13 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 185/52 ⇜ (6/1 → 80/13) ⇝ 345/52 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 185/52 ⇜ (6/1 → 80/13) ⇝ 345/52 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 95/26 ⇜ (6/1 → 80/13) ⇝ 175/26 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 95/26 ⇜ (6/1 → 80/13) ⇝ 175/26 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 15/4 ⇜ (6/1 → 80/13) ⇝ 355/52 | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 15/4 ⇜ (6/1 → 80/13) ⇝ 355/52 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 50/13 ⇜ (6/1 → 80/13) ⇝ 90/13 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 50/13 ⇜ (6/1 → 80/13) ⇝ 90/13 | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 205/52 ⇜ (6/1 → 80/13) ⇝ 365/52 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 205/52 ⇜ (6/1 → 80/13) ⇝ 365/52 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 105/26 ⇜ (6/1 → 80/13) ⇝ 185/26 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 105/26 ⇜ (6/1 → 80/13) ⇝ 185/26 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 215/52 ⇜ (6/1 → 80/13) ⇝ 375/52 | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 215/52 ⇜ (6/1 → 80/13) ⇝ 375/52 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 55/13 ⇜ (6/1 → 80/13) ⇝ 95/13 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 225/52 ⇜ (6/1 → 80/13) ⇝ 385/52 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 115/26 ⇜ (6/1 → 80/13) ⇝ 15/2 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 235/52 ⇜ (6/1 → 80/13) ⇝ 395/52 | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", "[ 70/13 ⇜ (6/1 → 80/13) | note:gb2 gain:0.8 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 165/52 ⇜ (80/13 → 25/4) | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 85/26 ⇜ (80/13 → 165/26) | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 175/52 ⇜ (80/13 → 335/52) | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 45/13 ⇜ (80/13 → 85/13) | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 45/13 ⇜ (80/13 → 85/13) | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 185/52 ⇜ (80/13 → 85/13) ⇝ 345/52 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 95/26 ⇜ (80/13 → 85/13) ⇝ 175/26 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 15/4 ⇜ (80/13 → 85/13) ⇝ 355/52 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 50/13 ⇜ (80/13 → 85/13) ⇝ 90/13 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 205/52 ⇜ (80/13 → 85/13) ⇝ 365/52 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 105/26 ⇜ (80/13 → 85/13) ⇝ 185/26 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 215/52 ⇜ (80/13 → 85/13) ⇝ 375/52 | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 165/52 ⇜ (80/13 → 25/4) | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 85/26 ⇜ (80/13 → 165/26) | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 175/52 ⇜ (80/13 → 335/52) | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 45/13 ⇜ (80/13 → 85/13) | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 45/13 ⇜ (80/13 → 85/13) | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 185/52 ⇜ (80/13 → 85/13) ⇝ 345/52 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 95/26 ⇜ (80/13 → 85/13) ⇝ 175/26 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 15/4 ⇜ (80/13 → 85/13) ⇝ 355/52 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 50/13 ⇜ (80/13 → 85/13) ⇝ 90/13 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 205/52 ⇜ (80/13 → 85/13) ⇝ 365/52 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 105/26 ⇜ (80/13 → 85/13) ⇝ 185/26 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 215/52 ⇜ (80/13 → 85/13) ⇝ 375/52 | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", "[ 80/13 → 85/13 | note:c3 gain:0.8 clip:1 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ 185/52 ⇜ (80/13 → 345/52) | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 95/26 ⇜ (80/13 → 175/26) | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 15/4 ⇜ (80/13 → 355/52) | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 50/13 ⇜ (80/13 → 90/13) | n:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 205/52 ⇜ (80/13 → 90/13) ⇝ 365/52 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 105/26 ⇜ (80/13 → 90/13) ⇝ 185/26 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 215/52 ⇜ (80/13 → 90/13) ⇝ 375/52 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 55/13 ⇜ (80/13 → 90/13) ⇝ 95/13 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 225/52 ⇜ (80/13 → 90/13) ⇝ 385/52 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 115/26 ⇜ (80/13 → 90/13) ⇝ 15/2 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 235/52 ⇜ (80/13 → 90/13) ⇝ 395/52 | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (80/13 → 7/1) ⇝ 120/13 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 185/52 ⇜ (80/13 → 345/52) | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 95/26 ⇜ (80/13 → 175/26) | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 15/4 ⇜ (80/13 → 355/52) | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 50/13 ⇜ (80/13 → 90/13) | clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 205/52 ⇜ (80/13 → 90/13) ⇝ 365/52 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 105/26 ⇜ (80/13 → 90/13) ⇝ 185/26 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 215/52 ⇜ (80/13 → 90/13) ⇝ 375/52 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 55/13 ⇜ (80/13 → 90/13) ⇝ 95/13 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 225/52 ⇜ (80/13 → 90/13) ⇝ 385/52 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 115/26 ⇜ (80/13 → 90/13) ⇝ 15/2 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 235/52 ⇜ (80/13 → 90/13) ⇝ 395/52 | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (80/13 → 7/1) ⇝ 120/13 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", "[ (80/13 → 7/1) ⇝ 160/13 | s:mad ]", - "[ (25/4 → 7/1) ⇝ 485/52 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ (165/26 → 7/1) ⇝ 245/26 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ (335/52 → 7/1) ⇝ 495/52 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 185/52 ⇜ (85/13 → 345/52) | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 95/26 ⇜ (85/13 → 175/26) | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 15/4 ⇜ (85/13 → 355/52) | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 50/13 ⇜ (85/13 → 90/13) | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (25/4 → 7/1) ⇝ 485/52 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ (165/26 → 7/1) ⇝ 245/26 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ (335/52 → 7/1) ⇝ 495/52 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 185/52 ⇜ (85/13 → 345/52) | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 95/26 ⇜ (85/13 → 175/26) | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 15/4 ⇜ (85/13 → 355/52) | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 50/13 ⇜ (85/13 → 90/13) | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", "[ 85/13 → 90/13 | note:c3 gain:0.8 clip:1 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ 205/52 ⇜ (85/13 → 7/1) ⇝ 365/52 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 105/26 ⇜ (85/13 → 7/1) ⇝ 185/26 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 215/52 ⇜ (85/13 → 7/1) ⇝ 375/52 | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (85/13 → 7/1) ⇝ 125/13 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (85/13 → 7/1) ⇝ 125/13 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (345/52 → 7/1) ⇝ 505/52 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (345/52 → 7/1) ⇝ 505/52 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ (175/26 → 7/1) ⇝ 255/26 | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (175/26 → 7/1) ⇝ 255/26 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ (355/52 → 7/1) ⇝ 515/52 | n:9 clip:1 note:F#5 s:piano release:0.1 pan:0.6111111111111112 ]", - "[ (355/52 → 7/1) ⇝ 515/52 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 205/52 ⇜ (90/13 → 7/1) ⇝ 365/52 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 105/26 ⇜ (90/13 → 7/1) ⇝ 185/26 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 215/52 ⇜ (90/13 → 7/1) ⇝ 375/52 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 55/13 ⇜ (90/13 → 7/1) ⇝ 95/13 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 225/52 ⇜ (90/13 → 7/1) ⇝ 385/52 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 115/26 ⇜ (90/13 → 7/1) ⇝ 15/2 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 235/52 ⇜ (90/13 → 7/1) ⇝ 395/52 | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 205/52 ⇜ (85/13 → 7/1) ⇝ 365/52 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 105/26 ⇜ (85/13 → 7/1) ⇝ 185/26 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 215/52 ⇜ (85/13 → 7/1) ⇝ 375/52 | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (85/13 → 7/1) ⇝ 125/13 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (85/13 → 7/1) ⇝ 125/13 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (345/52 → 7/1) ⇝ 505/52 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (345/52 → 7/1) ⇝ 505/52 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ (175/26 → 7/1) ⇝ 255/26 | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (175/26 → 7/1) ⇝ 255/26 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ (355/52 → 7/1) ⇝ 515/52 | clip:1 note:F#5 s:piano release:0.1 pan:0.6111111111111112 ]", + "[ (355/52 → 7/1) ⇝ 515/52 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 205/52 ⇜ (90/13 → 7/1) ⇝ 365/52 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 105/26 ⇜ (90/13 → 7/1) ⇝ 185/26 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 215/52 ⇜ (90/13 → 7/1) ⇝ 375/52 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 55/13 ⇜ (90/13 → 7/1) ⇝ 95/13 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 225/52 ⇜ (90/13 → 7/1) ⇝ 385/52 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 115/26 ⇜ (90/13 → 7/1) ⇝ 15/2 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 235/52 ⇜ (90/13 → 7/1) ⇝ 395/52 | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", "[ (90/13 → 7/1) ⇝ 1115/156 | note:c3 gain:0.8 clip:1 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ (90/13 → 7/1) ⇝ 10/1 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (90/13 → 7/1) ⇝ 10/1 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 205/52 ⇜ (7/1 → 365/52) | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 205/52 ⇜ (7/1 → 365/52) | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 105/26 ⇜ (7/1 → 185/26) | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 105/26 ⇜ (7/1 → 185/26) | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ (90/13 → 7/1) ⇝ 10/1 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (90/13 → 7/1) ⇝ 10/1 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 205/52 ⇜ (7/1 → 365/52) | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 205/52 ⇜ (7/1 → 365/52) | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 105/26 ⇜ (7/1 → 185/26) | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 105/26 ⇜ (7/1 → 185/26) | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", "[ 90/13 ⇜ (7/1 → 1115/156) | note:c3 gain:0.8 clip:1 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ 215/52 ⇜ (7/1 → 375/52) | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 215/52 ⇜ (7/1 → 375/52) | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 55/13 ⇜ (7/1 → 95/13) | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 225/52 ⇜ (7/1 → 385/52) | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 115/26 ⇜ (7/1 → 15/2) | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 235/52 ⇜ (7/1 → 395/52) | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 80/13 ⇜ (7/1 → 8/1) ⇝ 120/13 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 215/52 ⇜ (7/1 → 375/52) | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 215/52 ⇜ (7/1 → 375/52) | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 55/13 ⇜ (7/1 → 95/13) | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 225/52 ⇜ (7/1 → 385/52) | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 115/26 ⇜ (7/1 → 15/2) | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 235/52 ⇜ (7/1 → 395/52) | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 80/13 ⇜ (7/1 → 8/1) ⇝ 120/13 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", "[ 80/13 ⇜ (7/1 → 8/1) ⇝ 160/13 | s:mad ]", - "[ 25/4 ⇜ (7/1 → 8/1) ⇝ 485/52 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 165/26 ⇜ (7/1 → 8/1) ⇝ 245/26 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 335/52 ⇜ (7/1 → 8/1) ⇝ 495/52 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 85/13 ⇜ (7/1 → 8/1) ⇝ 125/13 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 85/13 ⇜ (7/1 → 8/1) ⇝ 125/13 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 345/52 ⇜ (7/1 → 8/1) ⇝ 505/52 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 345/52 ⇜ (7/1 → 8/1) ⇝ 505/52 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 175/26 ⇜ (7/1 → 8/1) ⇝ 255/26 | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 175/26 ⇜ (7/1 → 8/1) ⇝ 255/26 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 355/52 ⇜ (7/1 → 8/1) ⇝ 515/52 | n:9 clip:1 note:F#5 s:piano release:0.1 pan:0.6111111111111112 ]", - "[ 355/52 ⇜ (7/1 → 8/1) ⇝ 515/52 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 90/13 ⇜ (7/1 → 8/1) ⇝ 10/1 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 90/13 ⇜ (7/1 → 8/1) ⇝ 10/1 | n:2 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (365/52 → 8/1) ⇝ 525/52 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (365/52 → 8/1) ⇝ 525/52 | n:3 clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ (185/26 → 8/1) ⇝ 265/26 | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (185/26 → 8/1) ⇝ 265/26 | n:4 clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 25/4 ⇜ (7/1 → 8/1) ⇝ 485/52 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 165/26 ⇜ (7/1 → 8/1) ⇝ 245/26 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 335/52 ⇜ (7/1 → 8/1) ⇝ 495/52 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 85/13 ⇜ (7/1 → 8/1) ⇝ 125/13 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 85/13 ⇜ (7/1 → 8/1) ⇝ 125/13 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 345/52 ⇜ (7/1 → 8/1) ⇝ 505/52 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 345/52 ⇜ (7/1 → 8/1) ⇝ 505/52 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 175/26 ⇜ (7/1 → 8/1) ⇝ 255/26 | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 175/26 ⇜ (7/1 → 8/1) ⇝ 255/26 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 355/52 ⇜ (7/1 → 8/1) ⇝ 515/52 | clip:1 note:F#5 s:piano release:0.1 pan:0.6111111111111112 ]", + "[ 355/52 ⇜ (7/1 → 8/1) ⇝ 515/52 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 90/13 ⇜ (7/1 → 8/1) ⇝ 10/1 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 90/13 ⇜ (7/1 → 8/1) ⇝ 10/1 | clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (365/52 → 8/1) ⇝ 525/52 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (365/52 → 8/1) ⇝ 525/52 | clip:1 note:F#4 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ (185/26 → 8/1) ⇝ 265/26 | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (185/26 → 8/1) ⇝ 265/26 | clip:1 note:G#4 s:piano release:0.1 pan:0.5648148148148149 ]", "[ 1115/156 → 95/13 | note:bb2 gain:0.8 clip:1 s:piano release:0.1 pan:0.46296296296296297 ]", - "[ (375/52 → 8/1) ⇝ 535/52 | n:9 clip:1 note:F#5 s:piano release:0.1 pan:0.6111111111111112 ]", - "[ (375/52 → 8/1) ⇝ 535/52 | n:5 clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (375/52 → 8/1) ⇝ 535/52 | clip:1 note:F#5 s:piano release:0.1 pan:0.6111111111111112 ]", + "[ (375/52 → 8/1) ⇝ 535/52 | clip:1 note:A#4 s:piano release:0.1 pan:0.5740740740740741 ]", "[ 95/13 → 100/13 | note:ab2 gain:0.8 clip:1 s:piano release:0.1 pan:0.4537037037037037 ]", - "[ (95/13 → 8/1) ⇝ 135/13 | n:6 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (385/52 → 8/1) ⇝ 545/52 | n:7 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (15/2 → 8/1) ⇝ 275/26 | n:8 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (395/52 → 8/1) ⇝ 555/52 | n:9 clip:1 note:F#5 s:piano release:0.1 pan:0.6111111111111112 ]", + "[ (95/13 → 8/1) ⇝ 135/13 | clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (385/52 → 8/1) ⇝ 545/52 | clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (15/2 → 8/1) ⇝ 275/26 | clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (395/52 → 8/1) ⇝ 555/52 | clip:1 note:F#5 s:piano release:0.1 pan:0.6111111111111112 ]", "[ (100/13 → 8/1) ⇝ 105/13 | note:gb2 gain:0.8 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", ] `; @@ -1563,394 +1563,394 @@ exports[`renders tunes > tune: dinofunk 1`] = ` exports[`renders tunes > tune: echoPiano 1`] = ` [ - "[ -3/8 ⇜ (0/1 → 1/8) | n:3 note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ -3/8 ⇜ (0/1 → 1/8) | n:9 note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ -3/8 ⇜ (0/1 → 1/8) | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ -1/8 ⇜ (0/1 → 1/8) | n:14 note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ -1/8 ⇜ (0/1 → 1/8) ⇝ 3/8 | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ -1/8 ⇜ (0/1 → 1/8) ⇝ 3/8 | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ -1/4 ⇜ (0/1 → 1/4) | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ -1/4 ⇜ (0/1 → 1/4) | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ -1/4 ⇜ (0/1 → 1/4) | n:3 note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ -1/4 ⇜ (0/1 → 1/4) | n:9 note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (0/1 → 1/4) ⇝ 1/2 | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ (0/1 → 1/4) ⇝ 1/2 | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ -1/8 ⇜ (0/1 → 3/8) | n:3 note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ -1/8 ⇜ (0/1 → 3/8) | n:9 note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 0/1 → 1/2 | n:9 note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 0/1 → 1/1 | n:0 note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ -1/8 ⇜ (1/8 → 3/8) | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ -1/8 ⇜ (1/8 → 3/8) | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (1/8 → 3/8) ⇝ 5/8 | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ (1/8 → 3/8) ⇝ 5/8 | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 1/8 → 5/8 | n:9 note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (1/8 → 1/1) ⇝ 9/8 | n:0 note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 0/1 ⇜ (1/4 → 1/2) | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 0/1 ⇜ (1/4 → 1/2) | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (1/4 → 1/2) ⇝ 3/4 | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 1/4 → 3/4 | n:9 note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (1/4 → 1/1) ⇝ 5/4 | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ (1/4 → 1/1) ⇝ 5/4 | n:0 note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 1/8 ⇜ (3/8 → 5/8) | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 1/8 ⇜ (3/8 → 5/8) | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (3/8 → 5/8) ⇝ 7/8 | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 3/8 → 7/8 | n:9 note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (3/8 → 1/1) ⇝ 11/8 | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ (3/8 → 1/1) ⇝ 11/8 | n:0 note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 1/4 ⇜ (1/2 → 3/4) | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (1/2 → 3/4) ⇝ 1/1 | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (1/2 → 1/1) ⇝ 3/2 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ (1/2 → 1/1) ⇝ 3/2 | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 3/8 ⇜ (5/8 → 7/8) | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (5/8 → 7/8) ⇝ 9/8 | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (5/8 → 1/1) ⇝ 13/8 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ (5/8 → 1/1) ⇝ 13/8 | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 1/2 ⇜ (3/4 → 1/1) | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (3/4 → 1/1) ⇝ 7/4 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (3/4 → 1/1) ⇝ 7/4 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 5/8 ⇜ (7/8 → 1/1) ⇝ 9/8 | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (7/8 → 1/1) ⇝ 15/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (7/8 → 1/1) ⇝ 15/8 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 1/8 ⇜ (1/1 → 9/8) | n:0 note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 3/8 ⇜ (1/1 → 9/8) ⇝ 11/8 | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 5/8 ⇜ (1/1 → 9/8) | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 5/8 ⇜ (1/1 → 9/8) ⇝ 13/8 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 7/8 ⇜ (1/1 → 9/8) ⇝ 15/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 1/4 ⇜ (1/1 → 5/4) | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 1/4 ⇜ (1/1 → 5/4) | n:0 note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 1/2 ⇜ (1/1 → 5/4) ⇝ 3/2 | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 3/4 ⇜ (1/1 → 5/4) ⇝ 7/4 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ (1/1 → 5/4) ⇝ 2/1 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 3/8 ⇜ (1/1 → 11/8) | n:0 note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 5/8 ⇜ (1/1 → 11/8) ⇝ 13/8 | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 7/8 ⇜ (1/1 → 11/8) ⇝ 15/8 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 1/2 ⇜ (1/1 → 3/2) | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 3/4 ⇜ (1/1 → 3/2) ⇝ 7/4 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 1/1 → 2/1 | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 3/8 ⇜ (9/8 → 11/8) | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ (9/8 → 11/8) ⇝ 17/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 5/8 ⇜ (9/8 → 13/8) | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 7/8 ⇜ (9/8 → 13/8) ⇝ 15/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (9/8 → 2/1) ⇝ 17/8 | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 1/2 ⇜ (5/4 → 3/2) | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 3/4 ⇜ (5/4 → 7/4) | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 1/1 ⇜ (5/4 → 7/4) ⇝ 2/1 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (5/4 → 2/1) ⇝ 9/4 | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ (5/4 → 2/1) ⇝ 9/4 | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 5/8 ⇜ (11/8 → 13/8) | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 7/8 ⇜ (11/8 → 15/8) | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 9/8 ⇜ (11/8 → 15/8) ⇝ 17/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (11/8 → 2/1) ⇝ 19/8 | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ (11/8 → 2/1) ⇝ 19/8 | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 3/4 ⇜ (3/2 → 7/4) | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (3/2 → 2/1) ⇝ 5/2 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (3/2 → 2/1) ⇝ 5/2 | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 7/8 ⇜ (13/8 → 15/8) | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (13/8 → 2/1) ⇝ 21/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (13/8 → 2/1) ⇝ 21/8 | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 1/1 ⇜ (7/4 → 2/1) | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (7/4 → 2/1) ⇝ 11/4 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (7/4 → 2/1) ⇝ 11/4 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 9/8 ⇜ (15/8 → 2/1) ⇝ 17/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (15/8 → 2/1) ⇝ 23/8 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (15/8 → 2/1) ⇝ 23/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 9/8 ⇜ (2/1 → 17/8) | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 9/8 ⇜ (2/1 → 17/8) | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 11/8 ⇜ (2/1 → 17/8) ⇝ 19/8 | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 13/8 ⇜ (2/1 → 17/8) ⇝ 21/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 15/8 ⇜ (2/1 → 17/8) ⇝ 23/8 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/4 ⇜ (2/1 → 9/4) | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 5/4 ⇜ (2/1 → 9/4) | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 3/2 ⇜ (2/1 → 9/4) ⇝ 5/2 | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 7/4 ⇜ (2/1 → 9/4) ⇝ 11/4 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 2/1 → 9/4 | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ (2/1 → 9/4) ⇝ 3/1 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 11/8 ⇜ (2/1 → 19/8) | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 13/8 ⇜ (2/1 → 19/8) ⇝ 21/8 | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 15/8 ⇜ (2/1 → 19/8) ⇝ 23/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 3/2 ⇜ (2/1 → 5/2) | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 7/4 ⇜ (2/1 → 5/2) ⇝ 11/4 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 11/8 ⇜ (17/8 → 19/8) | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 17/8 → 19/8 | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ (17/8 → 19/8) ⇝ 25/8 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 13/8 ⇜ (17/8 → 21/8) | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 15/8 ⇜ (17/8 → 21/8) ⇝ 23/8 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 3/2 ⇜ (9/4 → 5/2) | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 9/4 → 5/2 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 9/4 → 5/2 | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 7/4 ⇜ (9/4 → 11/4) | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 2/1 ⇜ (9/4 → 11/4) ⇝ 3/1 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 13/8 ⇜ (19/8 → 21/8) | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 19/8 → 21/8 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 19/8 → 21/8 | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 15/8 ⇜ (19/8 → 23/8) | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 17/8 ⇜ (19/8 → 23/8) ⇝ 25/8 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 7/4 ⇜ (5/2 → 11/4) | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/2 → 11/4 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 5/2 → 11/4 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/2 → 11/4 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 15/8 ⇜ (21/8 → 23/8) | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 21/8 → 23/8 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 21/8 → 23/8 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 21/8 → 23/8 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 2/1 ⇜ (11/4 → 3/1) | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 11/4 → 3/1 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 11/4 → 3/1 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 11/4 → 3/1 | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 11/4 → 3/1 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 11/4 → 3/1 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/8 ⇜ (23/8 → 3/1) ⇝ 25/8 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (23/8 → 3/1) ⇝ 25/8 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ (23/8 → 3/1) ⇝ 25/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (23/8 → 3/1) ⇝ 25/8 | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (23/8 → 3/1) ⇝ 25/8 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ (23/8 → 3/1) ⇝ 25/8 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/8 ⇜ (3/1 → 25/8) | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 23/8 ⇜ (3/1 → 25/8) | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 23/8 ⇜ (3/1 → 25/8) | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 23/8 ⇜ (3/1 → 25/8) | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 23/8 ⇜ (3/1 → 25/8) | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 23/8 ⇜ (3/1 → 25/8) | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 3/1 → 13/4 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 3/1 → 13/4 | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 3/1 → 13/4 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 3/1 → 13/4 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 3/1 → 13/4 | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 3/1 → 7/2 | n:3 note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 25/8 → 27/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 25/8 → 27/8 | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 25/8 → 27/8 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 25/8 → 27/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 25/8 → 27/8 | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 25/8 → 29/8 | n:3 note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 13/4 → 7/2 | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 13/4 → 7/2 | n:14 note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 13/4 → 7/2 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 13/4 → 7/2 | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 13/4 → 15/4 | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 13/4 → 15/4 | n:3 note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 27/8 → 29/8 | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 27/8 → 29/8 | n:14 note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 27/8 → 29/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 27/8 → 29/8 | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 27/8 → 31/8 | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 27/8 → 31/8 | n:3 note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 7/2 → 15/4 | n:14 note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 7/2 → 15/4 | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 7/2 → 15/4 | n:14 note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 7/2 → 4/1 | n:3 note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 7/2 → 4/1 | n:9 note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 7/2 → 4/1 | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/8 → 31/8 | n:14 note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 29/8 → 31/8 | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 29/8 → 31/8 | n:14 note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (29/8 → 4/1) ⇝ 33/8 | n:3 note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ (29/8 → 4/1) ⇝ 33/8 | n:9 note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (29/8 → 4/1) ⇝ 33/8 | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 15/4 → 4/1 | n:14 note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (15/4 → 4/1) ⇝ 17/4 | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ (15/4 → 4/1) ⇝ 17/4 | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (15/4 → 4/1) ⇝ 17/4 | n:3 note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ (15/4 → 4/1) ⇝ 17/4 | n:9 note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (31/8 → 4/1) ⇝ 33/8 | n:14 note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (31/8 → 4/1) ⇝ 35/8 | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ (31/8 → 4/1) ⇝ 35/8 | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (31/8 → 4/1) ⇝ 35/8 | n:3 note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ (31/8 → 4/1) ⇝ 35/8 | n:9 note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 29/8 ⇜ (4/1 → 33/8) | n:3 note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 29/8 ⇜ (4/1 → 33/8) | n:9 note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 29/8 ⇜ (4/1 → 33/8) | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 31/8 ⇜ (4/1 → 33/8) | n:14 note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 31/8 ⇜ (4/1 → 33/8) ⇝ 35/8 | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 31/8 ⇜ (4/1 → 33/8) ⇝ 35/8 | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 15/4 ⇜ (4/1 → 17/4) | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 15/4 ⇜ (4/1 → 17/4) | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 15/4 ⇜ (4/1 → 17/4) | n:3 note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 15/4 ⇜ (4/1 → 17/4) | n:9 note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (4/1 → 17/4) ⇝ 9/2 | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ (4/1 → 17/4) ⇝ 9/2 | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 31/8 ⇜ (4/1 → 35/8) | n:3 note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 31/8 ⇜ (4/1 → 35/8) | n:9 note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 4/1 → 9/2 | n:9 note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 4/1 → 5/1 | n:0 note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 31/8 ⇜ (33/8 → 35/8) | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 31/8 ⇜ (33/8 → 35/8) | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (33/8 → 35/8) ⇝ 37/8 | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ (33/8 → 35/8) ⇝ 37/8 | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 33/8 → 37/8 | n:9 note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (33/8 → 5/1) ⇝ 41/8 | n:0 note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 4/1 ⇜ (17/4 → 9/2) | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 4/1 ⇜ (17/4 → 9/2) | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (17/4 → 9/2) ⇝ 19/4 | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 17/4 → 19/4 | n:9 note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (17/4 → 5/1) ⇝ 21/4 | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ (17/4 → 5/1) ⇝ 21/4 | n:0 note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 33/8 ⇜ (35/8 → 37/8) | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 33/8 ⇜ (35/8 → 37/8) | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (35/8 → 37/8) ⇝ 39/8 | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 35/8 → 39/8 | n:9 note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (35/8 → 5/1) ⇝ 43/8 | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ (35/8 → 5/1) ⇝ 43/8 | n:0 note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 17/4 ⇜ (9/2 → 19/4) | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (9/2 → 19/4) ⇝ 5/1 | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (9/2 → 5/1) ⇝ 11/2 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ (9/2 → 5/1) ⇝ 11/2 | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 35/8 ⇜ (37/8 → 39/8) | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (37/8 → 39/8) ⇝ 41/8 | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (37/8 → 5/1) ⇝ 45/8 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ (37/8 → 5/1) ⇝ 45/8 | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 9/2 ⇜ (19/4 → 5/1) | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (19/4 → 5/1) ⇝ 23/4 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (19/4 → 5/1) ⇝ 23/4 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 37/8 ⇜ (39/8 → 5/1) ⇝ 41/8 | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (39/8 → 5/1) ⇝ 47/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (39/8 → 5/1) ⇝ 47/8 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 33/8 ⇜ (5/1 → 41/8) | n:0 note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 35/8 ⇜ (5/1 → 41/8) ⇝ 43/8 | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 37/8 ⇜ (5/1 → 41/8) | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 37/8 ⇜ (5/1 → 41/8) ⇝ 45/8 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 39/8 ⇜ (5/1 → 41/8) ⇝ 47/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 17/4 ⇜ (5/1 → 21/4) | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 17/4 ⇜ (5/1 → 21/4) | n:0 note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 9/2 ⇜ (5/1 → 21/4) ⇝ 11/2 | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 19/4 ⇜ (5/1 → 21/4) ⇝ 23/4 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ (5/1 → 21/4) ⇝ 6/1 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 35/8 ⇜ (5/1 → 43/8) | n:0 note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 37/8 ⇜ (5/1 → 43/8) ⇝ 45/8 | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 39/8 ⇜ (5/1 → 43/8) ⇝ 47/8 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 9/2 ⇜ (5/1 → 11/2) | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 19/4 ⇜ (5/1 → 11/2) ⇝ 23/4 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 5/1 → 6/1 | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 35/8 ⇜ (41/8 → 43/8) | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ (41/8 → 43/8) ⇝ 49/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 37/8 ⇜ (41/8 → 45/8) | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 39/8 ⇜ (41/8 → 45/8) ⇝ 47/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (41/8 → 6/1) ⇝ 49/8 | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 9/2 ⇜ (21/4 → 11/2) | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 19/4 ⇜ (21/4 → 23/4) | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 5/1 ⇜ (21/4 → 23/4) ⇝ 6/1 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (21/4 → 6/1) ⇝ 25/4 | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ (21/4 → 6/1) ⇝ 25/4 | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 37/8 ⇜ (43/8 → 45/8) | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 39/8 ⇜ (43/8 → 47/8) | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 41/8 ⇜ (43/8 → 47/8) ⇝ 49/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (43/8 → 6/1) ⇝ 51/8 | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ (43/8 → 6/1) ⇝ 51/8 | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 19/4 ⇜ (11/2 → 23/4) | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (11/2 → 6/1) ⇝ 13/2 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (11/2 → 6/1) ⇝ 13/2 | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 39/8 ⇜ (45/8 → 47/8) | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (45/8 → 6/1) ⇝ 53/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (45/8 → 6/1) ⇝ 53/8 | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 5/1 ⇜ (23/4 → 6/1) | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (23/4 → 6/1) ⇝ 27/4 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (23/4 → 6/1) ⇝ 27/4 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 41/8 ⇜ (47/8 → 6/1) ⇝ 49/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (47/8 → 6/1) ⇝ 55/8 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (47/8 → 6/1) ⇝ 55/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 41/8 ⇜ (6/1 → 49/8) | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 41/8 ⇜ (6/1 → 49/8) | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 43/8 ⇜ (6/1 → 49/8) ⇝ 51/8 | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 45/8 ⇜ (6/1 → 49/8) ⇝ 53/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 47/8 ⇜ (6/1 → 49/8) ⇝ 55/8 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 21/4 ⇜ (6/1 → 25/4) | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 21/4 ⇜ (6/1 → 25/4) | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 11/2 ⇜ (6/1 → 25/4) ⇝ 13/2 | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 23/4 ⇜ (6/1 → 25/4) ⇝ 27/4 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 6/1 → 25/4 | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ (6/1 → 25/4) ⇝ 7/1 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 43/8 ⇜ (6/1 → 51/8) | n:2 note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 45/8 ⇜ (6/1 → 51/8) ⇝ 53/8 | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 47/8 ⇜ (6/1 → 51/8) ⇝ 55/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 11/2 ⇜ (6/1 → 13/2) | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 23/4 ⇜ (6/1 → 13/2) ⇝ 27/4 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 43/8 ⇜ (49/8 → 51/8) | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 49/8 → 51/8 | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ (49/8 → 51/8) ⇝ 57/8 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 45/8 ⇜ (49/8 → 53/8) | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 47/8 ⇜ (49/8 → 53/8) ⇝ 55/8 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 11/2 ⇜ (25/4 → 13/2) | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 25/4 → 13/2 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 25/4 → 13/2 | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 23/4 ⇜ (25/4 → 27/4) | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 6/1 ⇜ (25/4 → 27/4) ⇝ 7/1 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 45/8 ⇜ (51/8 → 53/8) | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 51/8 → 53/8 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 51/8 → 53/8 | n:4 note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 47/8 ⇜ (51/8 → 55/8) | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 49/8 ⇜ (51/8 → 55/8) ⇝ 57/8 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 23/4 ⇜ (13/2 → 27/4) | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 13/2 → 27/4 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 13/2 → 27/4 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 13/2 → 27/4 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 47/8 ⇜ (53/8 → 55/8) | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 53/8 → 55/8 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 53/8 → 55/8 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 53/8 → 55/8 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 6/1 ⇜ (27/4 → 7/1) | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 27/4 → 7/1 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 27/4 → 7/1 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 27/4 → 7/1 | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 27/4 → 7/1 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 27/4 → 7/1 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 49/8 ⇜ (55/8 → 7/1) ⇝ 57/8 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (55/8 → 7/1) ⇝ 57/8 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ (55/8 → 7/1) ⇝ 57/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (55/8 → 7/1) ⇝ 57/8 | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (55/8 → 7/1) ⇝ 57/8 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ (55/8 → 7/1) ⇝ 57/8 | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 49/8 ⇜ (7/1 → 57/8) | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 55/8 ⇜ (7/1 → 57/8) | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 55/8 ⇜ (7/1 → 57/8) | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 55/8 ⇜ (7/1 → 57/8) | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 55/8 ⇜ (7/1 → 57/8) | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 55/8 ⇜ (7/1 → 57/8) | n:10 note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 7/1 → 29/4 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 7/1 → 29/4 | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 7/1 → 29/4 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 7/1 → 29/4 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 7/1 → 29/4 | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 7/1 → 15/2 | n:3 note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 57/8 → 59/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 57/8 → 59/8 | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 57/8 → 59/8 | n:6 note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 57/8 → 59/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 57/8 → 59/8 | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 57/8 → 61/8 | n:3 note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 29/4 → 15/2 | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 29/4 → 15/2 | n:14 note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 29/4 → 15/2 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/4 → 15/2 | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 29/4 → 31/4 | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/4 → 31/4 | n:3 note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 59/8 → 61/8 | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 59/8 → 61/8 | n:14 note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 59/8 → 61/8 | n:8 note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 59/8 → 61/8 | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 59/8 → 63/8 | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 59/8 → 63/8 | n:3 note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 15/2 → 31/4 | n:14 note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 15/2 → 31/4 | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 15/2 → 31/4 | n:14 note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 15/2 → 8/1 | n:3 note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 15/2 → 8/1 | n:9 note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 15/2 → 8/1 | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 61/8 → 63/8 | n:14 note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 61/8 → 63/8 | n:12 note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 61/8 → 63/8 | n:14 note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (61/8 → 8/1) ⇝ 65/8 | n:3 note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ (61/8 → 8/1) ⇝ 65/8 | n:9 note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (61/8 → 8/1) ⇝ 65/8 | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 31/4 → 8/1 | n:14 note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (31/4 → 8/1) ⇝ 33/4 | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ (31/4 → 8/1) ⇝ 33/4 | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (31/4 → 8/1) ⇝ 33/4 | n:3 note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ (31/4 → 8/1) ⇝ 33/4 | n:9 note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (63/8 → 8/1) ⇝ 65/8 | n:14 note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (63/8 → 8/1) ⇝ 67/8 | n:5 note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ (63/8 → 8/1) ⇝ 67/8 | n:11 note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (63/8 → 8/1) ⇝ 67/8 | n:3 note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ (63/8 → 8/1) ⇝ 67/8 | n:9 note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ -3/8 ⇜ (0/1 → 1/8) | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ -3/8 ⇜ (0/1 → 1/8) | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ -3/8 ⇜ (0/1 → 1/8) | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ -1/8 ⇜ (0/1 → 1/8) | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ -1/8 ⇜ (0/1 → 1/8) ⇝ 3/8 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ -1/8 ⇜ (0/1 → 1/8) ⇝ 3/8 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ -1/4 ⇜ (0/1 → 1/4) | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ -1/4 ⇜ (0/1 → 1/4) | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ -1/4 ⇜ (0/1 → 1/4) | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ -1/4 ⇜ (0/1 → 1/4) | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (0/1 → 1/4) ⇝ 1/2 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ (0/1 → 1/4) ⇝ 1/2 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ -1/8 ⇜ (0/1 → 3/8) | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ -1/8 ⇜ (0/1 → 3/8) | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 0/1 → 1/2 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 0/1 → 1/1 | note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ -1/8 ⇜ (1/8 → 3/8) | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ -1/8 ⇜ (1/8 → 3/8) | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (1/8 → 3/8) ⇝ 5/8 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ (1/8 → 3/8) ⇝ 5/8 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 1/8 → 5/8 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (1/8 → 1/1) ⇝ 9/8 | note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 0/1 ⇜ (1/4 → 1/2) | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 0/1 ⇜ (1/4 → 1/2) | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (1/4 → 1/2) ⇝ 3/4 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 1/4 → 3/4 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (1/4 → 1/1) ⇝ 5/4 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ (1/4 → 1/1) ⇝ 5/4 | note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 1/8 ⇜ (3/8 → 5/8) | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 1/8 ⇜ (3/8 → 5/8) | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (3/8 → 5/8) ⇝ 7/8 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 3/8 → 7/8 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (3/8 → 1/1) ⇝ 11/8 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ (3/8 → 1/1) ⇝ 11/8 | note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 1/4 ⇜ (1/2 → 3/4) | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (1/2 → 3/4) ⇝ 1/1 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (1/2 → 1/1) ⇝ 3/2 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (1/2 → 1/1) ⇝ 3/2 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 3/8 ⇜ (5/8 → 7/8) | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (5/8 → 7/8) ⇝ 9/8 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (5/8 → 1/1) ⇝ 13/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (5/8 → 1/1) ⇝ 13/8 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 1/2 ⇜ (3/4 → 1/1) | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (3/4 → 1/1) ⇝ 7/4 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (3/4 → 1/1) ⇝ 7/4 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 5/8 ⇜ (7/8 → 1/1) ⇝ 9/8 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (7/8 → 1/1) ⇝ 15/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (7/8 → 1/1) ⇝ 15/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 1/8 ⇜ (1/1 → 9/8) | note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 3/8 ⇜ (1/1 → 9/8) ⇝ 11/8 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 5/8 ⇜ (1/1 → 9/8) | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 5/8 ⇜ (1/1 → 9/8) ⇝ 13/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 7/8 ⇜ (1/1 → 9/8) ⇝ 15/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 1/4 ⇜ (1/1 → 5/4) | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 1/4 ⇜ (1/1 → 5/4) | note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 1/2 ⇜ (1/1 → 5/4) ⇝ 3/2 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 3/4 ⇜ (1/1 → 5/4) ⇝ 7/4 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (1/1 → 5/4) ⇝ 2/1 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 3/8 ⇜ (1/1 → 11/8) | note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 5/8 ⇜ (1/1 → 11/8) ⇝ 13/8 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 7/8 ⇜ (1/1 → 11/8) ⇝ 15/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 1/2 ⇜ (1/1 → 3/2) | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 3/4 ⇜ (1/1 → 3/2) ⇝ 7/4 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 1/1 → 2/1 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 3/8 ⇜ (9/8 → 11/8) | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ (9/8 → 11/8) ⇝ 17/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 5/8 ⇜ (9/8 → 13/8) | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 7/8 ⇜ (9/8 → 13/8) ⇝ 15/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (9/8 → 2/1) ⇝ 17/8 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 1/2 ⇜ (5/4 → 3/2) | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 3/4 ⇜ (5/4 → 7/4) | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 1/1 ⇜ (5/4 → 7/4) ⇝ 2/1 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (5/4 → 2/1) ⇝ 9/4 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ (5/4 → 2/1) ⇝ 9/4 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 5/8 ⇜ (11/8 → 13/8) | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 7/8 ⇜ (11/8 → 15/8) | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 9/8 ⇜ (11/8 → 15/8) ⇝ 17/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (11/8 → 2/1) ⇝ 19/8 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ (11/8 → 2/1) ⇝ 19/8 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 3/4 ⇜ (3/2 → 7/4) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (3/2 → 2/1) ⇝ 5/2 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (3/2 → 2/1) ⇝ 5/2 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 7/8 ⇜ (13/8 → 15/8) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (13/8 → 2/1) ⇝ 21/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (13/8 → 2/1) ⇝ 21/8 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 1/1 ⇜ (7/4 → 2/1) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (7/4 → 2/1) ⇝ 11/4 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (7/4 → 2/1) ⇝ 11/4 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 9/8 ⇜ (15/8 → 2/1) ⇝ 17/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (15/8 → 2/1) ⇝ 23/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (15/8 → 2/1) ⇝ 23/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 9/8 ⇜ (2/1 → 17/8) | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 9/8 ⇜ (2/1 → 17/8) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 11/8 ⇜ (2/1 → 17/8) ⇝ 19/8 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 13/8 ⇜ (2/1 → 17/8) ⇝ 21/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 15/8 ⇜ (2/1 → 17/8) ⇝ 23/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/4 ⇜ (2/1 → 9/4) | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 5/4 ⇜ (2/1 → 9/4) | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 3/2 ⇜ (2/1 → 9/4) ⇝ 5/2 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 7/4 ⇜ (2/1 → 9/4) ⇝ 11/4 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 2/1 → 9/4 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ (2/1 → 9/4) ⇝ 3/1 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 11/8 ⇜ (2/1 → 19/8) | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 13/8 ⇜ (2/1 → 19/8) ⇝ 21/8 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 15/8 ⇜ (2/1 → 19/8) ⇝ 23/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 3/2 ⇜ (2/1 → 5/2) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 7/4 ⇜ (2/1 → 5/2) ⇝ 11/4 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 11/8 ⇜ (17/8 → 19/8) | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 17/8 → 19/8 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ (17/8 → 19/8) ⇝ 25/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 13/8 ⇜ (17/8 → 21/8) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 15/8 ⇜ (17/8 → 21/8) ⇝ 23/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 3/2 ⇜ (9/4 → 5/2) | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 9/4 → 5/2 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 9/4 → 5/2 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 7/4 ⇜ (9/4 → 11/4) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 2/1 ⇜ (9/4 → 11/4) ⇝ 3/1 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 13/8 ⇜ (19/8 → 21/8) | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 19/8 → 21/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 19/8 → 21/8 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 15/8 ⇜ (19/8 → 23/8) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 17/8 ⇜ (19/8 → 23/8) ⇝ 25/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 7/4 ⇜ (5/2 → 11/4) | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/2 → 11/4 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 5/2 → 11/4 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/2 → 11/4 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 15/8 ⇜ (21/8 → 23/8) | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 21/8 → 23/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 21/8 → 23/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 21/8 → 23/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 2/1 ⇜ (11/4 → 3/1) | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 11/4 → 3/1 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 11/4 → 3/1 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 11/4 → 3/1 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 11/4 → 3/1 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 11/4 → 3/1 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/8 ⇜ (23/8 → 3/1) ⇝ 25/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (23/8 → 3/1) ⇝ 25/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (23/8 → 3/1) ⇝ 25/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (23/8 → 3/1) ⇝ 25/8 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (23/8 → 3/1) ⇝ 25/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (23/8 → 3/1) ⇝ 25/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/8 ⇜ (3/1 → 25/8) | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 23/8 ⇜ (3/1 → 25/8) | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 23/8 ⇜ (3/1 → 25/8) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 23/8 ⇜ (3/1 → 25/8) | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 23/8 ⇜ (3/1 → 25/8) | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 23/8 ⇜ (3/1 → 25/8) | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 3/1 → 13/4 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 3/1 → 13/4 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 3/1 → 13/4 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 3/1 → 13/4 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 3/1 → 13/4 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 3/1 → 7/2 | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 25/8 → 27/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 25/8 → 27/8 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 25/8 → 27/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 25/8 → 27/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 25/8 → 27/8 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 25/8 → 29/8 | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 13/4 → 7/2 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 13/4 → 7/2 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 13/4 → 7/2 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 13/4 → 7/2 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 13/4 → 15/4 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 13/4 → 15/4 | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 27/8 → 29/8 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 27/8 → 29/8 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 27/8 → 29/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 27/8 → 29/8 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 27/8 → 31/8 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 27/8 → 31/8 | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 7/2 → 15/4 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 7/2 → 15/4 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 7/2 → 15/4 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 7/2 → 4/1 | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 7/2 → 4/1 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 7/2 → 4/1 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/8 → 31/8 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 29/8 → 31/8 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 29/8 → 31/8 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (29/8 → 4/1) ⇝ 33/8 | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ (29/8 → 4/1) ⇝ 33/8 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (29/8 → 4/1) ⇝ 33/8 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 15/4 → 4/1 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (15/4 → 4/1) ⇝ 17/4 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ (15/4 → 4/1) ⇝ 17/4 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (15/4 → 4/1) ⇝ 17/4 | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ (15/4 → 4/1) ⇝ 17/4 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (31/8 → 4/1) ⇝ 33/8 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (31/8 → 4/1) ⇝ 35/8 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ (31/8 → 4/1) ⇝ 35/8 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (31/8 → 4/1) ⇝ 35/8 | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ (31/8 → 4/1) ⇝ 35/8 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 29/8 ⇜ (4/1 → 33/8) | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 29/8 ⇜ (4/1 → 33/8) | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 29/8 ⇜ (4/1 → 33/8) | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 31/8 ⇜ (4/1 → 33/8) | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 31/8 ⇜ (4/1 → 33/8) ⇝ 35/8 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 31/8 ⇜ (4/1 → 33/8) ⇝ 35/8 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 15/4 ⇜ (4/1 → 17/4) | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 15/4 ⇜ (4/1 → 17/4) | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 15/4 ⇜ (4/1 → 17/4) | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 15/4 ⇜ (4/1 → 17/4) | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (4/1 → 17/4) ⇝ 9/2 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ (4/1 → 17/4) ⇝ 9/2 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 31/8 ⇜ (4/1 → 35/8) | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 31/8 ⇜ (4/1 → 35/8) | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 4/1 → 9/2 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 4/1 → 5/1 | note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 31/8 ⇜ (33/8 → 35/8) | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 31/8 ⇜ (33/8 → 35/8) | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (33/8 → 35/8) ⇝ 37/8 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ (33/8 → 35/8) ⇝ 37/8 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 33/8 → 37/8 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (33/8 → 5/1) ⇝ 41/8 | note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 4/1 ⇜ (17/4 → 9/2) | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 4/1 ⇜ (17/4 → 9/2) | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (17/4 → 9/2) ⇝ 19/4 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 17/4 → 19/4 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (17/4 → 5/1) ⇝ 21/4 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ (17/4 → 5/1) ⇝ 21/4 | note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 33/8 ⇜ (35/8 → 37/8) | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 33/8 ⇜ (35/8 → 37/8) | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (35/8 → 37/8) ⇝ 39/8 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 35/8 → 39/8 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (35/8 → 5/1) ⇝ 43/8 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ (35/8 → 5/1) ⇝ 43/8 | note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 17/4 ⇜ (9/2 → 19/4) | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (9/2 → 19/4) ⇝ 5/1 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (9/2 → 5/1) ⇝ 11/2 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (9/2 → 5/1) ⇝ 11/2 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 35/8 ⇜ (37/8 → 39/8) | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (37/8 → 39/8) ⇝ 41/8 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (37/8 → 5/1) ⇝ 45/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (37/8 → 5/1) ⇝ 45/8 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 9/2 ⇜ (19/4 → 5/1) | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (19/4 → 5/1) ⇝ 23/4 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (19/4 → 5/1) ⇝ 23/4 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 37/8 ⇜ (39/8 → 5/1) ⇝ 41/8 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (39/8 → 5/1) ⇝ 47/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (39/8 → 5/1) ⇝ 47/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 33/8 ⇜ (5/1 → 41/8) | note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 35/8 ⇜ (5/1 → 41/8) ⇝ 43/8 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 37/8 ⇜ (5/1 → 41/8) | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 37/8 ⇜ (5/1 → 41/8) ⇝ 45/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 39/8 ⇜ (5/1 → 41/8) ⇝ 47/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 17/4 ⇜ (5/1 → 21/4) | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 17/4 ⇜ (5/1 → 21/4) | note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 9/2 ⇜ (5/1 → 21/4) ⇝ 11/2 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 19/4 ⇜ (5/1 → 21/4) ⇝ 23/4 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (5/1 → 21/4) ⇝ 6/1 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 35/8 ⇜ (5/1 → 43/8) | note:D3 clip:1 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 37/8 ⇜ (5/1 → 43/8) ⇝ 45/8 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 39/8 ⇜ (5/1 → 43/8) ⇝ 47/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 9/2 ⇜ (5/1 → 11/2) | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 19/4 ⇜ (5/1 → 11/2) ⇝ 23/4 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 5/1 → 6/1 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 35/8 ⇜ (41/8 → 43/8) | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ (41/8 → 43/8) ⇝ 49/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 37/8 ⇜ (41/8 → 45/8) | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 39/8 ⇜ (41/8 → 45/8) ⇝ 47/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (41/8 → 6/1) ⇝ 49/8 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 9/2 ⇜ (21/4 → 11/2) | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 19/4 ⇜ (21/4 → 23/4) | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 5/1 ⇜ (21/4 → 23/4) ⇝ 6/1 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (21/4 → 6/1) ⇝ 25/4 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ (21/4 → 6/1) ⇝ 25/4 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 37/8 ⇜ (43/8 → 45/8) | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 39/8 ⇜ (43/8 → 47/8) | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 41/8 ⇜ (43/8 → 47/8) ⇝ 49/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (43/8 → 6/1) ⇝ 51/8 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ (43/8 → 6/1) ⇝ 51/8 | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 19/4 ⇜ (11/2 → 23/4) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (11/2 → 6/1) ⇝ 13/2 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (11/2 → 6/1) ⇝ 13/2 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 39/8 ⇜ (45/8 → 47/8) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (45/8 → 6/1) ⇝ 53/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (45/8 → 6/1) ⇝ 53/8 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 5/1 ⇜ (23/4 → 6/1) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (23/4 → 6/1) ⇝ 27/4 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (23/4 → 6/1) ⇝ 27/4 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 41/8 ⇜ (47/8 → 6/1) ⇝ 49/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (47/8 → 6/1) ⇝ 55/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (47/8 → 6/1) ⇝ 55/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 41/8 ⇜ (6/1 → 49/8) | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 41/8 ⇜ (6/1 → 49/8) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 43/8 ⇜ (6/1 → 49/8) ⇝ 51/8 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 45/8 ⇜ (6/1 → 49/8) ⇝ 53/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 47/8 ⇜ (6/1 → 49/8) ⇝ 55/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 21/4 ⇜ (6/1 → 25/4) | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 21/4 ⇜ (6/1 → 25/4) | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 11/2 ⇜ (6/1 → 25/4) ⇝ 13/2 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 23/4 ⇜ (6/1 → 25/4) ⇝ 27/4 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 6/1 → 25/4 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ (6/1 → 25/4) ⇝ 7/1 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 43/8 ⇜ (6/1 → 51/8) | note:F3 clip:1 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 45/8 ⇜ (6/1 → 51/8) ⇝ 53/8 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 47/8 ⇜ (6/1 → 51/8) ⇝ 55/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 11/2 ⇜ (6/1 → 13/2) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 23/4 ⇜ (6/1 → 13/2) ⇝ 27/4 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 43/8 ⇜ (49/8 → 51/8) | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 49/8 → 51/8 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ (49/8 → 51/8) ⇝ 57/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 45/8 ⇜ (49/8 → 53/8) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 47/8 ⇜ (49/8 → 53/8) ⇝ 55/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 11/2 ⇜ (25/4 → 13/2) | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 25/4 → 13/2 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 25/4 → 13/2 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 23/4 ⇜ (25/4 → 27/4) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 6/1 ⇜ (25/4 → 27/4) ⇝ 7/1 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 45/8 ⇜ (51/8 → 53/8) | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 51/8 → 53/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 51/8 → 53/8 | note:A3 clip:1 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 47/8 ⇜ (51/8 → 55/8) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 49/8 ⇜ (51/8 → 55/8) ⇝ 57/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 23/4 ⇜ (13/2 → 27/4) | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 13/2 → 27/4 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 13/2 → 27/4 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 13/2 → 27/4 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 47/8 ⇜ (53/8 → 55/8) | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 53/8 → 55/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 53/8 → 55/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 53/8 → 55/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 6/1 ⇜ (27/4 → 7/1) | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 27/4 → 7/1 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 27/4 → 7/1 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 27/4 → 7/1 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 27/4 → 7/1 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 27/4 → 7/1 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 49/8 ⇜ (55/8 → 7/1) ⇝ 57/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (55/8 → 7/1) ⇝ 57/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (55/8 → 7/1) ⇝ 57/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (55/8 → 7/1) ⇝ 57/8 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (55/8 → 7/1) ⇝ 57/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (55/8 → 7/1) ⇝ 57/8 | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 49/8 ⇜ (7/1 → 57/8) | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 55/8 ⇜ (7/1 → 57/8) | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 55/8 ⇜ (7/1 → 57/8) | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 55/8 ⇜ (7/1 → 57/8) | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 55/8 ⇜ (7/1 → 57/8) | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 55/8 ⇜ (7/1 → 57/8) | note:G4 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 7/1 → 29/4 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 7/1 → 29/4 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 7/1 → 29/4 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 7/1 → 29/4 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 7/1 → 29/4 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 7/1 → 15/2 | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 57/8 → 59/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 57/8 → 59/8 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 57/8 → 59/8 | note:C4 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 57/8 → 59/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 57/8 → 59/8 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 57/8 → 61/8 | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 29/4 → 15/2 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 29/4 → 15/2 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 29/4 → 15/2 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/4 → 15/2 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 29/4 → 31/4 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/4 → 31/4 | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 59/8 → 61/8 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 59/8 → 61/8 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 59/8 → 61/8 | note:E4 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 59/8 → 61/8 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 59/8 → 63/8 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 59/8 → 63/8 | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 15/2 → 31/4 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 15/2 → 31/4 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 15/2 → 31/4 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 15/2 → 8/1 | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 15/2 → 8/1 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 15/2 → 8/1 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 61/8 → 63/8 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 61/8 → 63/8 | note:Bb4 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 61/8 → 63/8 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (61/8 → 8/1) ⇝ 65/8 | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ (61/8 → 8/1) ⇝ 65/8 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (61/8 → 8/1) ⇝ 65/8 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 31/4 → 8/1 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (31/4 → 8/1) ⇝ 33/4 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ (31/4 → 8/1) ⇝ 33/4 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (31/4 → 8/1) ⇝ 33/4 | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ (31/4 → 8/1) ⇝ 33/4 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (63/8 → 8/1) ⇝ 65/8 | note:D5 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (63/8 → 8/1) ⇝ 67/8 | note:Bb3 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ (63/8 → 8/1) ⇝ 67/8 | note:A4 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (63/8 → 8/1) ⇝ 67/8 | note:G3 clip:1 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ (63/8 → 8/1) ⇝ 67/8 | note:F4 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", ] `; @@ -6601,710 +6601,710 @@ exports[`renders tunes > tune: festivalOfFingers 1`] = ` exports[`renders tunes > tune: festivalOfFingers3 1`] = ` [ - "[ -1/2 ⇜ (0/1 → 1/6) | n:14 gain:0.25 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ -1/6 ⇜ (0/1 → 1/6) | n:25 clip:1 gain:0.5790943073464694 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ -1/6 ⇜ (0/1 → 1/6) | n:22 clip:1 gain:0.5381966011250106 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ -1/3 ⇜ (0/1 → 1/3) | n:7 gain:0.3333333333333333 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 0/1 → 1/3 | n:22 clip:1 gain:0.6209056926535308 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ 0/1 → 1/3 | n:25 clip:1 gain:0.5790943073464694 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ -3/2 ⇜ (0/1 → 1/2) | n:7 gain:0.5 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ -3/2 ⇜ (0/1 → 1/2) | n:9 gain:0.5 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ -3/2 ⇜ (0/1 → 1/2) | n:13 gain:0.5 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ -1/2 ⇜ (0/1 → 1/2) | n:14 gain:0.5 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ -1/2 ⇜ (0/1 → 1/2) | n:29 gain:0.25 clip:1 note:E7 s:piano release:0.1 pan:0.712962962962963 ]", - "[ -1/6 ⇜ (0/1 → 1/2) | n:0 gain:0.5 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 0/1 → 2/3 | n:-7 gain:1 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", - "[ -1/1 ⇜ (0/1 → 1/1) | n:14 gain:0.3333333333333333 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ -1/1 ⇜ (0/1 → 1/1) | n:16 gain:0.3333333333333333 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ -1/1 ⇜ (0/1 → 1/1) | n:20 gain:0.3333333333333333 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ -1/2 ⇜ (0/1 → 1/1) ⇝ 3/2 | n:21 gain:0.25 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ -1/2 ⇜ (0/1 → 1/1) ⇝ 3/2 | n:23 gain:0.25 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ -1/2 ⇜ (0/1 → 1/1) ⇝ 3/2 | n:27 gain:0.25 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 0/1 → 1/1 | n:8 gain:1 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 0/1 → 1/1 | n:21 gain:0.3333333333333333 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (0/1 → 1/1) ⇝ 2/1 | n:0 gain:1 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ (0/1 → 1/1) ⇝ 2/1 | n:2 gain:1 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ (0/1 → 1/1) ⇝ 2/1 | n:6 gain:1 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 1/6 → 1/2 | n:22 clip:1 gain:0.6209056926535308 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ 1/6 → 1/2 | n:25 clip:1 gain:0.5790943073464694 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 1/6 → 5/6 | n:14 gain:0.25 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 1/3 → 2/3 | n:25 clip:1 gain:0.6618033988749895 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 1/3 → 2/3 | n:22 clip:1 gain:0.6209056926535308 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ 1/3 → 1/1 | n:7 gain:0.3333333333333333 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 1/2 → 5/6 | n:25 clip:1 gain:0.6618033988749895 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 1/2 → 5/6 | n:22 clip:1 gain:0.6209056926535308 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ (1/2 → 1/1) ⇝ 7/6 | n:0 gain:0.5 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ (1/2 → 1/1) ⇝ 3/2 | n:15 gain:0.5 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (1/2 → 1/1) ⇝ 3/2 | n:28 gain:0.25 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ (1/2 → 1/1) ⇝ 5/2 | n:7 gain:0.5 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ (1/2 → 1/1) ⇝ 5/2 | n:9 gain:0.5 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (1/2 → 1/1) ⇝ 5/2 | n:13 gain:0.5 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 2/3 → 1/1 | n:22 clip:1 gain:0.7000000000000001 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ 2/3 → 1/1 | n:25 clip:1 gain:0.6618033988749895 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (2/3 → 1/1) ⇝ 4/3 | n:-7 gain:1 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", - "[ (5/6 → 1/1) ⇝ 7/6 | n:22 clip:1 gain:0.7000000000000001 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ (5/6 → 1/1) ⇝ 7/6 | n:25 clip:1 gain:0.6618033988749895 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (5/6 → 1/1) ⇝ 3/2 | n:14 gain:0.25 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 1/2 ⇜ (1/1 → 7/6) | n:0 gain:0.5 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 5/6 ⇜ (1/1 → 7/6) | n:22 clip:1 gain:0.7000000000000001 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ 5/6 ⇜ (1/1 → 7/6) | n:25 clip:1 gain:0.6618033988749895 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 2/3 ⇜ (1/1 → 4/3) | n:-7 gain:1 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", - "[ 1/1 → 4/3 | n:25 clip:1 gain:0.7338261212717717 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 1/1 → 4/3 | n:22 clip:1 gain:0.7000000000000001 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ -1/2 ⇜ (1/1 → 3/2) | n:21 gain:0.25 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ -1/2 ⇜ (1/1 → 3/2) | n:23 gain:0.25 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ -1/2 ⇜ (1/1 → 3/2) | n:27 gain:0.25 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 1/2 ⇜ (1/1 → 3/2) | n:15 gain:0.5 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 1/2 ⇜ (1/1 → 3/2) | n:28 gain:0.25 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 5/6 ⇜ (1/1 → 3/2) | n:14 gain:0.25 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 1/1 → 5/3 | n:7 gain:0.3333333333333333 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 0/1 ⇜ (1/1 → 2/1) | n:0 gain:1 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 0/1 ⇜ (1/1 → 2/1) | n:2 gain:1 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 0/1 ⇜ (1/1 → 2/1) | n:6 gain:1 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 1/2 ⇜ (1/1 → 2/1) ⇝ 5/2 | n:7 gain:0.5 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 1/2 ⇜ (1/1 → 2/1) ⇝ 5/2 | n:9 gain:0.5 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 1/2 ⇜ (1/1 → 2/1) ⇝ 5/2 | n:13 gain:0.5 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 1/1 → 2/1 | n:7 gain:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 1/1 → 2/1 | n:22 gain:0.3333333333333333 clip:1 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ (1/1 → 2/1) ⇝ 3/1 | n:14 gain:0.3333333333333333 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (1/1 → 2/1) ⇝ 3/1 | n:16 gain:0.3333333333333333 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (1/1 → 2/1) ⇝ 3/1 | n:20 gain:0.3333333333333333 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 7/6 → 3/2 | n:25 clip:1 gain:0.7338261212717717 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 7/6 → 3/2 | n:22 clip:1 gain:0.7000000000000001 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ 7/6 → 11/6 | n:0 gain:0.5 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 4/3 → 5/3 | n:22 clip:1 gain:0.7618033988749895 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ 4/3 → 5/3 | n:25 clip:1 gain:0.7338261212717717 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 4/3 → 2/1 | n:-7 gain:1 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", - "[ 3/2 → 11/6 | n:22 clip:1 gain:0.7618033988749895 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ 3/2 → 11/6 | n:25 clip:1 gain:0.7338261212717717 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (3/2 → 2/1) ⇝ 13/6 | n:14 gain:0.25 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (3/2 → 2/1) ⇝ 5/2 | n:14 gain:0.5 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (3/2 → 2/1) ⇝ 5/2 | n:29 gain:0.25 clip:1 note:E7 s:piano release:0.1 pan:0.712962962962963 ]", - "[ (3/2 → 2/1) ⇝ 7/2 | n:21 gain:0.25 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (3/2 → 2/1) ⇝ 7/2 | n:23 gain:0.25 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ (3/2 → 2/1) ⇝ 7/2 | n:27 gain:0.25 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 5/3 → 2/1 | n:25 clip:1 gain:0.7827090915285202 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 5/3 → 2/1 | n:22 clip:1 gain:0.7618033988749895 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ (5/3 → 2/1) ⇝ 7/3 | n:7 gain:0.3333333333333333 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ (11/6 → 2/1) ⇝ 13/6 | n:25 clip:1 gain:0.7827090915285202 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (11/6 → 2/1) ⇝ 13/6 | n:22 clip:1 gain:0.7618033988749895 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ (11/6 → 2/1) ⇝ 5/2 | n:0 gain:0.5 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 3/2 ⇜ (2/1 → 13/6) | n:14 gain:0.25 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 11/6 ⇜ (2/1 → 13/6) | n:25 clip:1 gain:0.7827090915285202 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 11/6 ⇜ (2/1 → 13/6) | n:22 clip:1 gain:0.7618033988749895 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 5/3 ⇜ (2/1 → 7/3) | n:7 gain:0.3333333333333333 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 2/1 → 7/3 | n:22 clip:1 gain:0.7956295201467611 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 2/1 → 7/3 | n:25 clip:1 gain:0.7827090915285202 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 1/2 ⇜ (2/1 → 5/2) | n:7 gain:0.5 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 1/2 ⇜ (2/1 → 5/2) | n:9 gain:0.5 clip:1 note:B4 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 1/2 ⇜ (2/1 → 5/2) | n:13 gain:0.5 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 3/2 ⇜ (2/1 → 5/2) | n:14 gain:0.5 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 3/2 ⇜ (2/1 → 5/2) | n:29 gain:0.25 clip:1 note:A7 s:piano release:0.1 pan:0.7361111111111112 ]", - "[ 11/6 ⇜ (2/1 → 5/2) | n:0 gain:0.5 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 2/1 → 8/3 | n:-7 gain:1 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 1/1 ⇜ (2/1 → 3/1) | n:14 gain:0.3333333333333333 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 1/1 ⇜ (2/1 → 3/1) | n:16 gain:0.3333333333333333 clip:1 note:B5 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 1/1 ⇜ (2/1 → 3/1) | n:20 gain:0.3333333333333333 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ 3/2 ⇜ (2/1 → 3/1) ⇝ 7/2 | n:21 gain:0.25 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 3/2 ⇜ (2/1 → 3/1) ⇝ 7/2 | n:23 gain:0.25 clip:1 note:B6 s:piano release:0.1 pan:0.6898148148148149 ]", - "[ 3/2 ⇜ (2/1 → 3/1) ⇝ 7/2 | n:27 gain:0.25 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", - "[ 2/1 → 3/1 | n:8 gain:1 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 2/1 → 3/1 | n:21 gain:0.3333333333333333 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (2/1 → 3/1) ⇝ 4/1 | n:0 gain:1 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ (2/1 → 3/1) ⇝ 4/1 | n:2 gain:1 clip:1 note:B3 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ (2/1 → 3/1) ⇝ 4/1 | n:6 gain:1 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 13/6 → 5/2 | n:22 clip:1 gain:0.7956295201467611 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 13/6 → 5/2 | n:25 clip:1 gain:0.7827090915285202 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 13/6 → 17/6 | n:14 gain:0.25 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 7/3 → 8/3 | n:25 clip:1 gain:0.8 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 7/3 → 8/3 | n:22 clip:1 gain:0.7956295201467611 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 7/3 → 3/1 | n:7 gain:0.3333333333333333 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/2 → 17/6 | n:25 clip:1 gain:0.8 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 5/2 → 17/6 | n:22 clip:1 gain:0.7956295201467611 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (5/2 → 3/1) ⇝ 19/6 | n:0 gain:0.5 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ (5/2 → 3/1) ⇝ 7/2 | n:15 gain:0.5 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", - "[ (5/2 → 3/1) ⇝ 7/2 | n:28 gain:0.25 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", - "[ (5/2 → 3/1) ⇝ 9/2 | n:7 gain:0.5 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (5/2 → 3/1) ⇝ 9/2 | n:9 gain:0.5 clip:1 note:B4 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ (5/2 → 3/1) ⇝ 9/2 | n:13 gain:0.5 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 8/3 → 3/1 | n:22 clip:1 gain:0.7956295201467611 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 8/3 → 3/1 | n:25 clip:1 gain:0.8 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ (8/3 → 3/1) ⇝ 10/3 | n:-7 gain:1 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ (17/6 → 3/1) ⇝ 19/6 | n:22 clip:1 gain:0.7956295201467611 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (17/6 → 3/1) ⇝ 19/6 | n:25 clip:1 gain:0.8 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ (17/6 → 3/1) ⇝ 7/2 | n:14 gain:0.25 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 5/2 ⇜ (3/1 → 19/6) | n:0 gain:0.5 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 17/6 ⇜ (3/1 → 19/6) | n:22 clip:1 gain:0.7956295201467611 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 17/6 ⇜ (3/1 → 19/6) | n:25 clip:1 gain:0.8 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 8/3 ⇜ (3/1 → 10/3) | n:-7 gain:1 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 3/1 → 10/3 | n:25 clip:1 gain:0.7827090915285202 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 3/1 → 10/3 | n:22 clip:1 gain:0.7956295201467611 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 3/2 ⇜ (3/1 → 7/2) | n:21 gain:0.25 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 3/2 ⇜ (3/1 → 7/2) | n:23 gain:0.25 clip:1 note:B6 s:piano release:0.1 pan:0.6898148148148149 ]", - "[ 3/2 ⇜ (3/1 → 7/2) | n:27 gain:0.25 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", - "[ 5/2 ⇜ (3/1 → 7/2) | n:15 gain:0.5 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", - "[ 5/2 ⇜ (3/1 → 7/2) | n:28 gain:0.25 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", - "[ 17/6 ⇜ (3/1 → 7/2) | n:14 gain:0.25 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 3/1 → 11/3 | n:7 gain:0.3333333333333333 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 2/1 ⇜ (3/1 → 4/1) | n:0 gain:1 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 2/1 ⇜ (3/1 → 4/1) | n:2 gain:1 clip:1 note:B3 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 2/1 ⇜ (3/1 → 4/1) | n:6 gain:1 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 5/2 ⇜ (3/1 → 4/1) ⇝ 9/2 | n:7 gain:0.5 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/2 ⇜ (3/1 → 4/1) ⇝ 9/2 | n:9 gain:0.5 clip:1 note:B4 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 5/2 ⇜ (3/1 → 4/1) ⇝ 9/2 | n:13 gain:0.5 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 3/1 → 4/1 | n:7 gain:1 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 3/1 → 4/1 | n:22 gain:0.3333333333333333 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (3/1 → 4/1) ⇝ 5/1 | n:14 gain:0.3333333333333333 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (3/1 → 4/1) ⇝ 5/1 | n:16 gain:0.3333333333333333 clip:1 note:B5 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ (3/1 → 4/1) ⇝ 5/1 | n:20 gain:0.3333333333333333 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ 19/6 → 7/2 | n:25 clip:1 gain:0.7827090915285202 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 19/6 → 7/2 | n:22 clip:1 gain:0.7956295201467611 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 19/6 → 23/6 | n:0 gain:0.5 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 10/3 → 11/3 | n:22 clip:1 gain:0.7618033988749895 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 10/3 → 11/3 | n:25 clip:1 gain:0.7827090915285202 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 10/3 → 4/1 | n:-7 gain:1 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 7/2 → 23/6 | n:22 clip:1 gain:0.7618033988749895 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 7/2 → 23/6 | n:25 clip:1 gain:0.7827090915285202 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ (7/2 → 4/1) ⇝ 25/6 | n:14 gain:0.25 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (7/2 → 4/1) ⇝ 9/2 | n:14 gain:0.5 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (7/2 → 4/1) ⇝ 9/2 | n:29 gain:0.25 clip:1 note:A7 s:piano release:0.1 pan:0.7361111111111112 ]", - "[ (7/2 → 4/1) ⇝ 11/2 | n:21 gain:0.25 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (7/2 → 4/1) ⇝ 11/2 | n:23 gain:0.25 clip:1 note:B6 s:piano release:0.1 pan:0.6898148148148149 ]", - "[ (7/2 → 4/1) ⇝ 11/2 | n:27 gain:0.25 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", - "[ 11/3 → 4/1 | n:25 clip:1 gain:0.7338261212717716 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 11/3 → 4/1 | n:22 clip:1 gain:0.7618033988749895 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (11/3 → 4/1) ⇝ 13/3 | n:7 gain:0.3333333333333333 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (23/6 → 4/1) ⇝ 25/6 | n:25 clip:1 gain:0.7338261212717716 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ (23/6 → 4/1) ⇝ 25/6 | n:22 clip:1 gain:0.7618033988749895 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (23/6 → 4/1) ⇝ 9/2 | n:0 gain:0.5 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 7/2 ⇜ (4/1 → 25/6) | n:14 gain:0.25 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 23/6 ⇜ (4/1 → 25/6) | n:25 clip:1 gain:0.7338261212717716 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 23/6 ⇜ (4/1 → 25/6) | n:22 clip:1 gain:0.7618033988749895 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 11/3 ⇜ (4/1 → 13/3) | n:7 gain:0.3333333333333333 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 4/1 → 13/3 | n:22 clip:1 gain:0.7000000000000001 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 4/1 → 13/3 | n:25 clip:1 gain:0.7338261212717716 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 5/2 ⇜ (4/1 → 9/2) | n:7 gain:0.5 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 5/2 ⇜ (4/1 → 9/2) | n:9 gain:0.5 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/2 ⇜ (4/1 → 9/2) | n:13 gain:0.5 clip:1 note:Bb4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 7/2 ⇜ (4/1 → 9/2) | n:14 gain:0.5 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 7/2 ⇜ (4/1 → 9/2) | n:29 gain:0.25 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 23/6 ⇜ (4/1 → 9/2) | n:0 gain:0.5 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ 4/1 → 14/3 | n:-7 gain:1 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 3/1 ⇜ (4/1 → 5/1) | n:14 gain:0.3333333333333333 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 3/1 ⇜ (4/1 → 5/1) | n:16 gain:0.3333333333333333 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 3/1 ⇜ (4/1 → 5/1) | n:20 gain:0.3333333333333333 clip:1 note:Bb5 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 7/2 ⇜ (4/1 → 5/1) ⇝ 11/2 | n:21 gain:0.25 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 7/2 ⇜ (4/1 → 5/1) ⇝ 11/2 | n:23 gain:0.25 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", - "[ 7/2 ⇜ (4/1 → 5/1) ⇝ 11/2 | n:27 gain:0.25 clip:1 note:Bb6 s:piano release:0.1 pan:0.6851851851851851 ]", - "[ 4/1 → 5/1 | n:8 gain:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 4/1 → 5/1 | n:21 gain:0.3333333333333333 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ (4/1 → 5/1) ⇝ 6/1 | n:0 gain:1 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ (4/1 → 5/1) ⇝ 6/1 | n:2 gain:1 clip:1 note:Eb3 s:piano release:0.1 pan:0.4861111111111111 ]", - "[ (4/1 → 5/1) ⇝ 6/1 | n:6 gain:1 clip:1 note:Bb3 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 25/6 → 9/2 | n:22 clip:1 gain:0.7000000000000001 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 25/6 → 9/2 | n:25 clip:1 gain:0.7338261212717716 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 25/6 → 29/6 | n:14 gain:0.25 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 13/3 → 14/3 | n:25 clip:1 gain:0.6618033988749895 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 13/3 → 14/3 | n:22 clip:1 gain:0.7000000000000001 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 13/3 → 5/1 | n:7 gain:0.3333333333333333 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 9/2 → 29/6 | n:25 clip:1 gain:0.6618033988749895 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 9/2 → 29/6 | n:22 clip:1 gain:0.7000000000000001 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (9/2 → 5/1) ⇝ 31/6 | n:0 gain:0.5 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ (9/2 → 5/1) ⇝ 11/2 | n:15 gain:0.5 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (9/2 → 5/1) ⇝ 11/2 | n:28 gain:0.25 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ (9/2 → 5/1) ⇝ 13/2 | n:7 gain:0.5 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ (9/2 → 5/1) ⇝ 13/2 | n:9 gain:0.5 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ (9/2 → 5/1) ⇝ 13/2 | n:13 gain:0.5 clip:1 note:Bb4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 14/3 → 5/1 | n:22 clip:1 gain:0.6209056926535308 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 14/3 → 5/1 | n:25 clip:1 gain:0.6618033988749895 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (14/3 → 5/1) ⇝ 16/3 | n:-7 gain:1 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ (29/6 → 5/1) ⇝ 31/6 | n:22 clip:1 gain:0.6209056926535308 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (29/6 → 5/1) ⇝ 31/6 | n:25 clip:1 gain:0.6618033988749895 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (29/6 → 5/1) ⇝ 11/2 | n:14 gain:0.25 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 9/2 ⇜ (5/1 → 31/6) | n:0 gain:0.5 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ 29/6 ⇜ (5/1 → 31/6) | n:22 clip:1 gain:0.6209056926535308 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 29/6 ⇜ (5/1 → 31/6) | n:25 clip:1 gain:0.6618033988749895 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 14/3 ⇜ (5/1 → 16/3) | n:-7 gain:1 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 5/1 → 16/3 | n:25 clip:1 gain:0.5790943073464694 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 5/1 → 16/3 | n:22 clip:1 gain:0.6209056926535308 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 7/2 ⇜ (5/1 → 11/2) | n:21 gain:0.25 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 7/2 ⇜ (5/1 → 11/2) | n:23 gain:0.25 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", - "[ 7/2 ⇜ (5/1 → 11/2) | n:27 gain:0.25 clip:1 note:Bb6 s:piano release:0.1 pan:0.6851851851851851 ]", - "[ 9/2 ⇜ (5/1 → 11/2) | n:15 gain:0.5 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 9/2 ⇜ (5/1 → 11/2) | n:28 gain:0.25 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 29/6 ⇜ (5/1 → 11/2) | n:14 gain:0.25 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 5/1 → 17/3 | n:7 gain:0.3333333333333333 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 4/1 ⇜ (5/1 → 6/1) | n:0 gain:1 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ 4/1 ⇜ (5/1 → 6/1) | n:2 gain:1 clip:1 note:Eb3 s:piano release:0.1 pan:0.4861111111111111 ]", - "[ 4/1 ⇜ (5/1 → 6/1) | n:6 gain:1 clip:1 note:Bb3 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 9/2 ⇜ (5/1 → 6/1) ⇝ 13/2 | n:7 gain:0.5 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 9/2 ⇜ (5/1 → 6/1) ⇝ 13/2 | n:9 gain:0.5 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 9/2 ⇜ (5/1 → 6/1) ⇝ 13/2 | n:13 gain:0.5 clip:1 note:Bb4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 5/1 → 6/1 | n:7 gain:1 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 5/1 → 6/1 | n:22 gain:0.3333333333333333 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (5/1 → 6/1) ⇝ 7/1 | n:14 gain:0.3333333333333333 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (5/1 → 6/1) ⇝ 7/1 | n:16 gain:0.3333333333333333 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (5/1 → 6/1) ⇝ 7/1 | n:20 gain:0.3333333333333333 clip:1 note:Bb5 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 31/6 → 11/2 | n:25 clip:1 gain:0.5790943073464694 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 31/6 → 11/2 | n:22 clip:1 gain:0.6209056926535308 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 31/6 → 35/6 | n:0 gain:0.5 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ 16/3 → 17/3 | n:22 clip:1 gain:0.5381966011250106 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 16/3 → 17/3 | n:25 clip:1 gain:0.5790943073464694 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 16/3 → 6/1 | n:-7 gain:1 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 11/2 → 35/6 | n:22 clip:1 gain:0.5381966011250106 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 11/2 → 35/6 | n:25 clip:1 gain:0.5790943073464694 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (11/2 → 6/1) ⇝ 37/6 | n:14 gain:0.25 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (11/2 → 6/1) ⇝ 13/2 | n:14 gain:0.5 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (11/2 → 6/1) ⇝ 13/2 | n:29 gain:0.25 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ (11/2 → 6/1) ⇝ 15/2 | n:21 gain:0.25 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ (11/2 → 6/1) ⇝ 15/2 | n:23 gain:0.25 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", - "[ (11/2 → 6/1) ⇝ 15/2 | n:27 gain:0.25 clip:1 note:Bb6 s:piano release:0.1 pan:0.6851851851851851 ]", - "[ 17/3 → 6/1 | n:25 clip:1 gain:0.5 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 17/3 → 6/1 | n:22 clip:1 gain:0.5381966011250106 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (17/3 → 6/1) ⇝ 19/3 | n:7 gain:0.3333333333333333 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ (35/6 → 6/1) ⇝ 37/6 | n:25 clip:1 gain:0.5 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (35/6 → 6/1) ⇝ 37/6 | n:22 clip:1 gain:0.5381966011250106 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (35/6 → 6/1) ⇝ 13/2 | n:0 gain:0.5 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ 11/2 ⇜ (6/1 → 37/6) | n:14 gain:0.25 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 35/6 ⇜ (6/1 → 37/6) | n:25 clip:1 gain:0.5 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 35/6 ⇜ (6/1 → 37/6) | n:22 clip:1 gain:0.5381966011250106 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 17/3 ⇜ (6/1 → 19/3) | n:7 gain:0.3333333333333333 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 6/1 → 19/3 | n:22 clip:1 gain:0.46617387872822835 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 6/1 → 19/3 | n:25 clip:1 gain:0.5 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 9/2 ⇜ (6/1 → 13/2) | n:7 gain:0.5 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 9/2 ⇜ (6/1 → 13/2) | n:9 gain:0.5 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 9/2 ⇜ (6/1 → 13/2) | n:13 gain:0.5 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/2 ⇜ (6/1 → 13/2) | n:14 gain:0.5 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 11/2 ⇜ (6/1 → 13/2) | n:29 gain:0.25 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", - "[ 35/6 ⇜ (6/1 → 13/2) | n:0 gain:0.5 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 6/1 → 20/3 | n:-7 gain:1 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 5/1 ⇜ (6/1 → 7/1) | n:14 gain:0.3333333333333333 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 5/1 ⇜ (6/1 → 7/1) | n:16 gain:0.3333333333333333 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", - "[ 5/1 ⇜ (6/1 → 7/1) | n:20 gain:0.3333333333333333 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", - "[ 11/2 ⇜ (6/1 → 7/1) ⇝ 15/2 | n:21 gain:0.25 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ 11/2 ⇜ (6/1 → 7/1) ⇝ 15/2 | n:23 gain:0.25 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 11/2 ⇜ (6/1 → 7/1) ⇝ 15/2 | n:27 gain:0.25 clip:1 note:Eb7 s:piano release:0.1 pan:0.7083333333333333 ]", - "[ 6/1 → 7/1 | n:8 gain:1 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 6/1 → 7/1 | n:21 gain:0.3333333333333333 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ (6/1 → 7/1) ⇝ 8/1 | n:0 gain:1 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ (6/1 → 7/1) ⇝ 8/1 | n:2 gain:1 clip:1 note:A3 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ (6/1 → 7/1) ⇝ 8/1 | n:6 gain:1 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 37/6 → 13/2 | n:22 clip:1 gain:0.46617387872822835 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 37/6 → 13/2 | n:25 clip:1 gain:0.5 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 37/6 → 41/6 | n:14 gain:0.25 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 19/3 → 20/3 | n:25 clip:1 gain:0.4381966011250106 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 19/3 → 20/3 | n:22 clip:1 gain:0.46617387872822835 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 19/3 → 7/1 | n:7 gain:0.3333333333333333 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 13/2 → 41/6 | n:25 clip:1 gain:0.4381966011250106 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 13/2 → 41/6 | n:22 clip:1 gain:0.46617387872822835 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (13/2 → 7/1) ⇝ 43/6 | n:0 gain:0.5 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ (13/2 → 7/1) ⇝ 15/2 | n:15 gain:0.5 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (13/2 → 7/1) ⇝ 15/2 | n:28 gain:0.25 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", - "[ (13/2 → 7/1) ⇝ 17/2 | n:7 gain:0.5 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (13/2 → 7/1) ⇝ 17/2 | n:9 gain:0.5 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (13/2 → 7/1) ⇝ 17/2 | n:13 gain:0.5 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 20/3 → 7/1 | n:22 clip:1 gain:0.4172909084714798 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 20/3 → 7/1 | n:25 clip:1 gain:0.4381966011250106 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ (20/3 → 7/1) ⇝ 22/3 | n:-7 gain:1 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ (41/6 → 7/1) ⇝ 43/6 | n:22 clip:1 gain:0.4172909084714798 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (41/6 → 7/1) ⇝ 43/6 | n:25 clip:1 gain:0.4381966011250106 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ (41/6 → 7/1) ⇝ 15/2 | n:14 gain:0.25 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 13/2 ⇜ (7/1 → 43/6) | n:0 gain:0.5 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 41/6 ⇜ (7/1 → 43/6) | n:22 clip:1 gain:0.4172909084714798 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 41/6 ⇜ (7/1 → 43/6) | n:25 clip:1 gain:0.4381966011250106 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 20/3 ⇜ (7/1 → 22/3) | n:-7 gain:1 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 7/1 → 22/3 | n:25 clip:1 gain:0.40437047985323893 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 7/1 → 22/3 | n:22 clip:1 gain:0.4172909084714798 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 11/2 ⇜ (7/1 → 15/2) | n:21 gain:0.25 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ 11/2 ⇜ (7/1 → 15/2) | n:23 gain:0.25 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 11/2 ⇜ (7/1 → 15/2) | n:27 gain:0.25 clip:1 note:Eb7 s:piano release:0.1 pan:0.7083333333333333 ]", - "[ 13/2 ⇜ (7/1 → 15/2) | n:15 gain:0.5 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 13/2 ⇜ (7/1 → 15/2) | n:28 gain:0.25 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", - "[ 41/6 ⇜ (7/1 → 15/2) | n:14 gain:0.25 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 7/1 → 23/3 | n:7 gain:0.3333333333333333 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 6/1 ⇜ (7/1 → 8/1) | n:0 gain:1 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 6/1 ⇜ (7/1 → 8/1) | n:2 gain:1 clip:1 note:A3 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 6/1 ⇜ (7/1 → 8/1) | n:6 gain:1 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/2 ⇜ (7/1 → 8/1) ⇝ 17/2 | n:7 gain:0.5 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 13/2 ⇜ (7/1 → 8/1) ⇝ 17/2 | n:9 gain:0.5 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 13/2 ⇜ (7/1 → 8/1) ⇝ 17/2 | n:13 gain:0.5 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 7/1 → 8/1 | n:7 gain:1 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 7/1 → 8/1 | n:22 gain:0.3333333333333333 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (7/1 → 8/1) ⇝ 9/1 | n:14 gain:0.3333333333333333 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (7/1 → 8/1) ⇝ 9/1 | n:16 gain:0.3333333333333333 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", - "[ (7/1 → 8/1) ⇝ 9/1 | n:20 gain:0.3333333333333333 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", - "[ 43/6 → 15/2 | n:25 clip:1 gain:0.40437047985323893 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 43/6 → 15/2 | n:22 clip:1 gain:0.4172909084714798 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 43/6 → 47/6 | n:0 gain:0.5 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 22/3 → 23/3 | n:22 clip:1 gain:0.4 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 22/3 → 23/3 | n:25 clip:1 gain:0.40437047985323893 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 22/3 → 8/1 | n:-7 gain:1 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 15/2 → 47/6 | n:22 clip:1 gain:0.4 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 15/2 → 47/6 | n:25 clip:1 gain:0.40437047985323893 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ (15/2 → 8/1) ⇝ 49/6 | n:14 gain:0.25 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (15/2 → 8/1) ⇝ 17/2 | n:14 gain:0.5 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (15/2 → 8/1) ⇝ 17/2 | n:29 gain:0.25 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", - "[ (15/2 → 8/1) ⇝ 19/2 | n:21 gain:0.25 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ (15/2 → 8/1) ⇝ 19/2 | n:23 gain:0.25 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (15/2 → 8/1) ⇝ 19/2 | n:27 gain:0.25 clip:1 note:Eb7 s:piano release:0.1 pan:0.7083333333333333 ]", - "[ 23/3 → 8/1 | n:25 clip:1 gain:0.40437047985323893 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 23/3 → 8/1 | n:22 clip:1 gain:0.4 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (23/3 → 8/1) ⇝ 25/3 | n:7 gain:0.3333333333333333 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (47/6 → 8/1) ⇝ 49/6 | n:25 clip:1 gain:0.40437047985323893 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ (47/6 → 8/1) ⇝ 49/6 | n:22 clip:1 gain:0.4 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (47/6 → 8/1) ⇝ 17/2 | n:0 gain:0.5 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 15/2 ⇜ (8/1 → 49/6) | n:14 gain:0.25 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 47/6 ⇜ (8/1 → 49/6) | n:25 clip:1 gain:0.40437047985323893 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 47/6 ⇜ (8/1 → 49/6) | n:22 clip:1 gain:0.4 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ 23/3 ⇜ (8/1 → 25/3) | n:7 gain:0.3333333333333333 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 8/1 → 25/3 | n:22 clip:1 gain:0.4172909084714798 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ 8/1 → 25/3 | n:25 clip:1 gain:0.40437047985323893 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 13/2 ⇜ (8/1 → 17/2) | n:7 gain:0.5 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 13/2 ⇜ (8/1 → 17/2) | n:9 gain:0.5 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 13/2 ⇜ (8/1 → 17/2) | n:13 gain:0.5 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/2 ⇜ (8/1 → 17/2) | n:14 gain:0.5 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 15/2 ⇜ (8/1 → 17/2) | n:29 gain:0.25 clip:1 note:E7 s:piano release:0.1 pan:0.712962962962963 ]", - "[ 47/6 ⇜ (8/1 → 17/2) | n:0 gain:0.5 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 8/1 → 26/3 | n:-7 gain:1 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", - "[ 7/1 ⇜ (8/1 → 9/1) | n:14 gain:0.3333333333333333 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 7/1 ⇜ (8/1 → 9/1) | n:16 gain:0.3333333333333333 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 7/1 ⇜ (8/1 → 9/1) | n:20 gain:0.3333333333333333 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 15/2 ⇜ (8/1 → 9/1) ⇝ 19/2 | n:21 gain:0.25 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 15/2 ⇜ (8/1 → 9/1) ⇝ 19/2 | n:23 gain:0.25 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ 15/2 ⇜ (8/1 → 9/1) ⇝ 19/2 | n:27 gain:0.25 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 8/1 → 9/1 | n:8 gain:1 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 8/1 → 9/1 | n:21 gain:0.3333333333333333 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (8/1 → 9/1) ⇝ 10/1 | n:0 gain:1 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ (8/1 → 9/1) ⇝ 10/1 | n:2 gain:1 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ (8/1 → 9/1) ⇝ 10/1 | n:6 gain:1 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 49/6 → 17/2 | n:22 clip:1 gain:0.4172909084714798 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ 49/6 → 17/2 | n:25 clip:1 gain:0.40437047985323893 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 49/6 → 53/6 | n:14 gain:0.25 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 25/3 → 26/3 | n:25 clip:1 gain:0.4381966011250105 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 25/3 → 26/3 | n:22 clip:1 gain:0.4172909084714798 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ 25/3 → 9/1 | n:7 gain:0.3333333333333333 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 17/2 → 53/6 | n:25 clip:1 gain:0.4381966011250105 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 17/2 → 53/6 | n:22 clip:1 gain:0.4172909084714798 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ (17/2 → 9/1) ⇝ 55/6 | n:0 gain:0.5 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ (17/2 → 9/1) ⇝ 19/2 | n:15 gain:0.5 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (17/2 → 9/1) ⇝ 19/2 | n:28 gain:0.25 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ (17/2 → 9/1) ⇝ 21/2 | n:7 gain:0.5 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ (17/2 → 9/1) ⇝ 21/2 | n:9 gain:0.5 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (17/2 → 9/1) ⇝ 21/2 | n:13 gain:0.5 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 26/3 → 9/1 | n:22 clip:1 gain:0.46617387872822824 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ 26/3 → 9/1 | n:25 clip:1 gain:0.4381966011250105 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (26/3 → 9/1) ⇝ 28/3 | n:-7 gain:1 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", - "[ (53/6 → 9/1) ⇝ 55/6 | n:22 clip:1 gain:0.46617387872822824 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ (53/6 → 9/1) ⇝ 55/6 | n:25 clip:1 gain:0.4381966011250105 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (53/6 → 9/1) ⇝ 19/2 | n:14 gain:0.25 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 17/2 ⇜ (9/1 → 55/6) | n:0 gain:0.5 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 53/6 ⇜ (9/1 → 55/6) | n:22 clip:1 gain:0.46617387872822824 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ 53/6 ⇜ (9/1 → 55/6) | n:25 clip:1 gain:0.4381966011250105 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 26/3 ⇜ (9/1 → 28/3) | n:-7 gain:1 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", - "[ 9/1 → 28/3 | n:25 clip:1 gain:0.49999999999999994 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 9/1 → 28/3 | n:22 clip:1 gain:0.46617387872822824 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ 15/2 ⇜ (9/1 → 19/2) | n:21 gain:0.25 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 15/2 ⇜ (9/1 → 19/2) | n:23 gain:0.25 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ 15/2 ⇜ (9/1 → 19/2) | n:27 gain:0.25 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 17/2 ⇜ (9/1 → 19/2) | n:15 gain:0.5 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 17/2 ⇜ (9/1 → 19/2) | n:28 gain:0.25 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 53/6 ⇜ (9/1 → 19/2) | n:14 gain:0.25 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 9/1 → 29/3 | n:7 gain:0.3333333333333333 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 8/1 ⇜ (9/1 → 10/1) | n:0 gain:1 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 8/1 ⇜ (9/1 → 10/1) | n:2 gain:1 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 8/1 ⇜ (9/1 → 10/1) | n:6 gain:1 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 17/2 ⇜ (9/1 → 10/1) ⇝ 21/2 | n:7 gain:0.5 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 17/2 ⇜ (9/1 → 10/1) ⇝ 21/2 | n:9 gain:0.5 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 17/2 ⇜ (9/1 → 10/1) ⇝ 21/2 | n:13 gain:0.5 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 9/1 → 10/1 | n:7 gain:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 9/1 → 10/1 | n:22 gain:0.3333333333333333 clip:1 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ (9/1 → 10/1) ⇝ 11/1 | n:14 gain:0.3333333333333333 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (9/1 → 10/1) ⇝ 11/1 | n:16 gain:0.3333333333333333 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (9/1 → 10/1) ⇝ 11/1 | n:20 gain:0.3333333333333333 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 55/6 → 19/2 | n:25 clip:1 gain:0.49999999999999994 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 55/6 → 19/2 | n:22 clip:1 gain:0.46617387872822824 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ 55/6 → 59/6 | n:0 gain:0.5 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 28/3 → 29/3 | n:22 clip:1 gain:0.5381966011250106 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ 28/3 → 29/3 | n:25 clip:1 gain:0.49999999999999994 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 28/3 → 10/1 | n:-7 gain:1 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", - "[ 19/2 → 59/6 | n:22 clip:1 gain:0.5381966011250106 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ 19/2 → 59/6 | n:25 clip:1 gain:0.49999999999999994 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (19/2 → 10/1) ⇝ 61/6 | n:14 gain:0.25 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (19/2 → 10/1) ⇝ 21/2 | n:14 gain:0.5 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (19/2 → 10/1) ⇝ 21/2 | n:29 gain:0.25 clip:1 note:E7 s:piano release:0.1 pan:0.712962962962963 ]", - "[ (19/2 → 10/1) ⇝ 23/2 | n:21 gain:0.25 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (19/2 → 10/1) ⇝ 23/2 | n:23 gain:0.25 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ (19/2 → 10/1) ⇝ 23/2 | n:27 gain:0.25 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 29/3 → 10/1 | n:25 clip:1 gain:0.5790943073464692 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 29/3 → 10/1 | n:22 clip:1 gain:0.5381966011250106 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ (29/3 → 10/1) ⇝ 31/3 | n:7 gain:0.3333333333333333 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ (59/6 → 10/1) ⇝ 61/6 | n:25 clip:1 gain:0.5790943073464692 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (59/6 → 10/1) ⇝ 61/6 | n:22 clip:1 gain:0.5381966011250106 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ (59/6 → 10/1) ⇝ 21/2 | n:0 gain:0.5 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 19/2 ⇜ (10/1 → 61/6) | n:14 gain:0.25 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 59/6 ⇜ (10/1 → 61/6) | n:25 clip:1 gain:0.5790943073464692 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 59/6 ⇜ (10/1 → 61/6) | n:22 clip:1 gain:0.5381966011250106 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 29/3 ⇜ (10/1 → 31/3) | n:7 gain:0.3333333333333333 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 10/1 → 31/3 | n:22 clip:1 gain:0.6209056926535306 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 10/1 → 31/3 | n:25 clip:1 gain:0.5790943073464692 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 17/2 ⇜ (10/1 → 21/2) | n:7 gain:0.5 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/2 ⇜ (10/1 → 21/2) | n:9 gain:0.5 clip:1 note:B4 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 17/2 ⇜ (10/1 → 21/2) | n:13 gain:0.5 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 19/2 ⇜ (10/1 → 21/2) | n:14 gain:0.5 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 19/2 ⇜ (10/1 → 21/2) | n:29 gain:0.25 clip:1 note:A7 s:piano release:0.1 pan:0.7361111111111112 ]", - "[ 59/6 ⇜ (10/1 → 21/2) | n:0 gain:0.5 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 10/1 → 32/3 | n:-7 gain:1 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 9/1 ⇜ (10/1 → 11/1) | n:14 gain:0.3333333333333333 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 9/1 ⇜ (10/1 → 11/1) | n:16 gain:0.3333333333333333 clip:1 note:B5 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 9/1 ⇜ (10/1 → 11/1) | n:20 gain:0.3333333333333333 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ 19/2 ⇜ (10/1 → 11/1) ⇝ 23/2 | n:21 gain:0.25 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 19/2 ⇜ (10/1 → 11/1) ⇝ 23/2 | n:23 gain:0.25 clip:1 note:B6 s:piano release:0.1 pan:0.6898148148148149 ]", - "[ 19/2 ⇜ (10/1 → 11/1) ⇝ 23/2 | n:27 gain:0.25 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", - "[ 10/1 → 11/1 | n:8 gain:1 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 10/1 → 11/1 | n:21 gain:0.3333333333333333 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (10/1 → 11/1) ⇝ 12/1 | n:0 gain:1 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ (10/1 → 11/1) ⇝ 12/1 | n:2 gain:1 clip:1 note:B3 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ (10/1 → 11/1) ⇝ 12/1 | n:6 gain:1 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 61/6 → 21/2 | n:22 clip:1 gain:0.6209056926535306 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 61/6 → 21/2 | n:25 clip:1 gain:0.5790943073464692 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 61/6 → 65/6 | n:14 gain:0.25 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 31/3 → 32/3 | n:25 clip:1 gain:0.6618033988749894 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 31/3 → 32/3 | n:22 clip:1 gain:0.6209056926535306 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 31/3 → 11/1 | n:7 gain:0.3333333333333333 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 21/2 → 65/6 | n:25 clip:1 gain:0.6618033988749894 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 21/2 → 65/6 | n:22 clip:1 gain:0.6209056926535306 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (21/2 → 11/1) ⇝ 67/6 | n:0 gain:0.5 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ (21/2 → 11/1) ⇝ 23/2 | n:15 gain:0.5 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", - "[ (21/2 → 11/1) ⇝ 23/2 | n:28 gain:0.25 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", - "[ (21/2 → 11/1) ⇝ 25/2 | n:7 gain:0.5 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (21/2 → 11/1) ⇝ 25/2 | n:9 gain:0.5 clip:1 note:B4 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ (21/2 → 11/1) ⇝ 25/2 | n:13 gain:0.5 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 32/3 → 11/1 | n:22 clip:1 gain:0.7 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 32/3 → 11/1 | n:25 clip:1 gain:0.6618033988749894 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ (32/3 → 11/1) ⇝ 34/3 | n:-7 gain:1 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ (65/6 → 11/1) ⇝ 67/6 | n:22 clip:1 gain:0.7 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (65/6 → 11/1) ⇝ 67/6 | n:25 clip:1 gain:0.6618033988749894 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ (65/6 → 11/1) ⇝ 23/2 | n:14 gain:0.25 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 21/2 ⇜ (11/1 → 67/6) | n:0 gain:0.5 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 65/6 ⇜ (11/1 → 67/6) | n:22 clip:1 gain:0.7 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 65/6 ⇜ (11/1 → 67/6) | n:25 clip:1 gain:0.6618033988749894 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 32/3 ⇜ (11/1 → 34/3) | n:-7 gain:1 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 11/1 → 34/3 | n:25 clip:1 gain:0.7338261212717717 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 11/1 → 34/3 | n:22 clip:1 gain:0.7 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 19/2 ⇜ (11/1 → 23/2) | n:21 gain:0.25 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 19/2 ⇜ (11/1 → 23/2) | n:23 gain:0.25 clip:1 note:B6 s:piano release:0.1 pan:0.6898148148148149 ]", - "[ 19/2 ⇜ (11/1 → 23/2) | n:27 gain:0.25 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", - "[ 21/2 ⇜ (11/1 → 23/2) | n:15 gain:0.5 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", - "[ 21/2 ⇜ (11/1 → 23/2) | n:28 gain:0.25 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", - "[ 65/6 ⇜ (11/1 → 23/2) | n:14 gain:0.25 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 11/1 → 35/3 | n:7 gain:0.3333333333333333 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 10/1 ⇜ (11/1 → 12/1) | n:0 gain:1 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 10/1 ⇜ (11/1 → 12/1) | n:2 gain:1 clip:1 note:B3 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 10/1 ⇜ (11/1 → 12/1) | n:6 gain:1 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 21/2 ⇜ (11/1 → 12/1) ⇝ 25/2 | n:7 gain:0.5 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 21/2 ⇜ (11/1 → 12/1) ⇝ 25/2 | n:9 gain:0.5 clip:1 note:B4 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 21/2 ⇜ (11/1 → 12/1) ⇝ 25/2 | n:13 gain:0.5 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 11/1 → 12/1 | n:7 gain:1 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 11/1 → 12/1 | n:22 gain:0.3333333333333333 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (11/1 → 12/1) ⇝ 13/1 | n:14 gain:0.3333333333333333 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (11/1 → 12/1) ⇝ 13/1 | n:16 gain:0.3333333333333333 clip:1 note:B5 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ (11/1 → 12/1) ⇝ 13/1 | n:20 gain:0.3333333333333333 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ 67/6 → 23/2 | n:25 clip:1 gain:0.7338261212717717 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 67/6 → 23/2 | n:22 clip:1 gain:0.7 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 67/6 → 71/6 | n:0 gain:0.5 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 34/3 → 35/3 | n:22 clip:1 gain:0.7618033988749894 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 34/3 → 35/3 | n:25 clip:1 gain:0.7338261212717717 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 34/3 → 12/1 | n:-7 gain:1 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 23/2 → 71/6 | n:22 clip:1 gain:0.7618033988749894 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 23/2 → 71/6 | n:25 clip:1 gain:0.7338261212717717 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ (23/2 → 12/1) ⇝ 73/6 | n:14 gain:0.25 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (23/2 → 12/1) ⇝ 25/2 | n:14 gain:0.5 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (23/2 → 12/1) ⇝ 25/2 | n:29 gain:0.25 clip:1 note:A7 s:piano release:0.1 pan:0.7361111111111112 ]", - "[ (23/2 → 12/1) ⇝ 27/2 | n:21 gain:0.25 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (23/2 → 12/1) ⇝ 27/2 | n:23 gain:0.25 clip:1 note:B6 s:piano release:0.1 pan:0.6898148148148149 ]", - "[ (23/2 → 12/1) ⇝ 27/2 | n:27 gain:0.25 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", - "[ 35/3 → 12/1 | n:25 clip:1 gain:0.7827090915285202 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 35/3 → 12/1 | n:22 clip:1 gain:0.7618033988749894 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (35/3 → 12/1) ⇝ 37/3 | n:7 gain:0.3333333333333333 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (71/6 → 12/1) ⇝ 73/6 | n:25 clip:1 gain:0.7827090915285202 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ (71/6 → 12/1) ⇝ 73/6 | n:22 clip:1 gain:0.7618033988749894 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (71/6 → 12/1) ⇝ 25/2 | n:0 gain:0.5 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 23/2 ⇜ (12/1 → 73/6) | n:14 gain:0.25 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 71/6 ⇜ (12/1 → 73/6) | n:25 clip:1 gain:0.7827090915285202 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 71/6 ⇜ (12/1 → 73/6) | n:22 clip:1 gain:0.7618033988749894 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 35/3 ⇜ (12/1 → 37/3) | n:7 gain:0.3333333333333333 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 12/1 → 37/3 | n:22 clip:1 gain:0.7956295201467611 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 12/1 → 37/3 | n:25 clip:1 gain:0.7827090915285202 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 21/2 ⇜ (12/1 → 25/2) | n:7 gain:0.5 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 21/2 ⇜ (12/1 → 25/2) | n:9 gain:0.5 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 21/2 ⇜ (12/1 → 25/2) | n:13 gain:0.5 clip:1 note:Bb4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 23/2 ⇜ (12/1 → 25/2) | n:14 gain:0.5 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 23/2 ⇜ (12/1 → 25/2) | n:29 gain:0.25 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 71/6 ⇜ (12/1 → 25/2) | n:0 gain:0.5 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ 12/1 → 38/3 | n:-7 gain:1 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 11/1 ⇜ (12/1 → 13/1) | n:14 gain:0.3333333333333333 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 11/1 ⇜ (12/1 → 13/1) | n:16 gain:0.3333333333333333 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/1 ⇜ (12/1 → 13/1) | n:20 gain:0.3333333333333333 clip:1 note:Bb5 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 23/2 ⇜ (12/1 → 13/1) ⇝ 27/2 | n:21 gain:0.25 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 23/2 ⇜ (12/1 → 13/1) ⇝ 27/2 | n:23 gain:0.25 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", - "[ 23/2 ⇜ (12/1 → 13/1) ⇝ 27/2 | n:27 gain:0.25 clip:1 note:Bb6 s:piano release:0.1 pan:0.6851851851851851 ]", - "[ 12/1 → 13/1 | n:8 gain:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 12/1 → 13/1 | n:21 gain:0.3333333333333333 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ (12/1 → 13/1) ⇝ 14/1 | n:0 gain:1 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ (12/1 → 13/1) ⇝ 14/1 | n:2 gain:1 clip:1 note:Eb3 s:piano release:0.1 pan:0.4861111111111111 ]", - "[ (12/1 → 13/1) ⇝ 14/1 | n:6 gain:1 clip:1 note:Bb3 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 73/6 → 25/2 | n:22 clip:1 gain:0.7956295201467611 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 73/6 → 25/2 | n:25 clip:1 gain:0.7827090915285202 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 73/6 → 77/6 | n:14 gain:0.25 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 37/3 → 38/3 | n:25 clip:1 gain:0.8 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 37/3 → 38/3 | n:22 clip:1 gain:0.7956295201467611 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 37/3 → 13/1 | n:7 gain:0.3333333333333333 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 25/2 → 77/6 | n:25 clip:1 gain:0.8 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 25/2 → 77/6 | n:22 clip:1 gain:0.7956295201467611 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (25/2 → 13/1) ⇝ 79/6 | n:0 gain:0.5 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ (25/2 → 13/1) ⇝ 27/2 | n:15 gain:0.5 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (25/2 → 13/1) ⇝ 27/2 | n:28 gain:0.25 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ (25/2 → 13/1) ⇝ 29/2 | n:7 gain:0.5 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ (25/2 → 13/1) ⇝ 29/2 | n:9 gain:0.5 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ (25/2 → 13/1) ⇝ 29/2 | n:13 gain:0.5 clip:1 note:Bb4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 38/3 → 13/1 | n:22 clip:1 gain:0.7956295201467611 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 38/3 → 13/1 | n:25 clip:1 gain:0.8 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (38/3 → 13/1) ⇝ 40/3 | n:-7 gain:1 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ (77/6 → 13/1) ⇝ 79/6 | n:22 clip:1 gain:0.7956295201467611 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (77/6 → 13/1) ⇝ 79/6 | n:25 clip:1 gain:0.8 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (77/6 → 13/1) ⇝ 27/2 | n:14 gain:0.25 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 25/2 ⇜ (13/1 → 79/6) | n:0 gain:0.5 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ 77/6 ⇜ (13/1 → 79/6) | n:22 clip:1 gain:0.7956295201467611 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 77/6 ⇜ (13/1 → 79/6) | n:25 clip:1 gain:0.8 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 38/3 ⇜ (13/1 → 40/3) | n:-7 gain:1 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 13/1 → 40/3 | n:25 clip:1 gain:0.7827090915285202 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 13/1 → 40/3 | n:22 clip:1 gain:0.7956295201467611 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 23/2 ⇜ (13/1 → 27/2) | n:21 gain:0.25 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 23/2 ⇜ (13/1 → 27/2) | n:23 gain:0.25 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", - "[ 23/2 ⇜ (13/1 → 27/2) | n:27 gain:0.25 clip:1 note:Bb6 s:piano release:0.1 pan:0.6851851851851851 ]", - "[ 25/2 ⇜ (13/1 → 27/2) | n:15 gain:0.5 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 25/2 ⇜ (13/1 → 27/2) | n:28 gain:0.25 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 77/6 ⇜ (13/1 → 27/2) | n:14 gain:0.25 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 13/1 → 41/3 | n:7 gain:0.3333333333333333 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 12/1 ⇜ (13/1 → 14/1) | n:0 gain:1 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ 12/1 ⇜ (13/1 → 14/1) | n:2 gain:1 clip:1 note:Eb3 s:piano release:0.1 pan:0.4861111111111111 ]", - "[ 12/1 ⇜ (13/1 → 14/1) | n:6 gain:1 clip:1 note:Bb3 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 25/2 ⇜ (13/1 → 14/1) ⇝ 29/2 | n:7 gain:0.5 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 25/2 ⇜ (13/1 → 14/1) ⇝ 29/2 | n:9 gain:0.5 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 25/2 ⇜ (13/1 → 14/1) ⇝ 29/2 | n:13 gain:0.5 clip:1 note:Bb4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 13/1 → 14/1 | n:7 gain:1 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 13/1 → 14/1 | n:22 gain:0.3333333333333333 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (13/1 → 14/1) ⇝ 15/1 | n:14 gain:0.3333333333333333 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (13/1 → 14/1) ⇝ 15/1 | n:16 gain:0.3333333333333333 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (13/1 → 14/1) ⇝ 15/1 | n:20 gain:0.3333333333333333 clip:1 note:Bb5 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 79/6 → 27/2 | n:25 clip:1 gain:0.7827090915285202 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 79/6 → 27/2 | n:22 clip:1 gain:0.7956295201467611 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 79/6 → 83/6 | n:0 gain:0.5 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ 40/3 → 41/3 | n:22 clip:1 gain:0.7618033988749895 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 40/3 → 41/3 | n:25 clip:1 gain:0.7827090915285202 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 40/3 → 14/1 | n:-7 gain:1 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 27/2 → 83/6 | n:22 clip:1 gain:0.7618033988749895 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 27/2 → 83/6 | n:25 clip:1 gain:0.7827090915285202 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (27/2 → 14/1) ⇝ 85/6 | n:14 gain:0.25 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (27/2 → 14/1) ⇝ 29/2 | n:14 gain:0.5 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (27/2 → 14/1) ⇝ 29/2 | n:29 gain:0.25 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ (27/2 → 14/1) ⇝ 31/2 | n:21 gain:0.25 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ (27/2 → 14/1) ⇝ 31/2 | n:23 gain:0.25 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", - "[ (27/2 → 14/1) ⇝ 31/2 | n:27 gain:0.25 clip:1 note:Bb6 s:piano release:0.1 pan:0.6851851851851851 ]", - "[ 41/3 → 14/1 | n:25 clip:1 gain:0.7338261212717718 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 41/3 → 14/1 | n:22 clip:1 gain:0.7618033988749895 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (41/3 → 14/1) ⇝ 43/3 | n:7 gain:0.3333333333333333 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ (83/6 → 14/1) ⇝ 85/6 | n:25 clip:1 gain:0.7338261212717718 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (83/6 → 14/1) ⇝ 85/6 | n:22 clip:1 gain:0.7618033988749895 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (83/6 → 14/1) ⇝ 29/2 | n:0 gain:0.5 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ 27/2 ⇜ (14/1 → 85/6) | n:14 gain:0.25 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 83/6 ⇜ (14/1 → 85/6) | n:25 clip:1 gain:0.7338261212717718 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 83/6 ⇜ (14/1 → 85/6) | n:22 clip:1 gain:0.7618033988749895 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 41/3 ⇜ (14/1 → 43/3) | n:7 gain:0.3333333333333333 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 14/1 → 43/3 | n:22 clip:1 gain:0.7 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 14/1 → 43/3 | n:25 clip:1 gain:0.7338261212717718 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 25/2 ⇜ (14/1 → 29/2) | n:7 gain:0.5 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 25/2 ⇜ (14/1 → 29/2) | n:9 gain:0.5 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 25/2 ⇜ (14/1 → 29/2) | n:13 gain:0.5 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 27/2 ⇜ (14/1 → 29/2) | n:14 gain:0.5 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 27/2 ⇜ (14/1 → 29/2) | n:29 gain:0.25 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", - "[ 83/6 ⇜ (14/1 → 29/2) | n:0 gain:0.5 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 14/1 → 44/3 | n:-7 gain:1 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 13/1 ⇜ (14/1 → 15/1) | n:14 gain:0.3333333333333333 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 13/1 ⇜ (14/1 → 15/1) | n:16 gain:0.3333333333333333 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", - "[ 13/1 ⇜ (14/1 → 15/1) | n:20 gain:0.3333333333333333 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", - "[ 27/2 ⇜ (14/1 → 15/1) ⇝ 31/2 | n:21 gain:0.25 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ 27/2 ⇜ (14/1 → 15/1) ⇝ 31/2 | n:23 gain:0.25 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 27/2 ⇜ (14/1 → 15/1) ⇝ 31/2 | n:27 gain:0.25 clip:1 note:Eb7 s:piano release:0.1 pan:0.7083333333333333 ]", - "[ 14/1 → 15/1 | n:8 gain:1 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 14/1 → 15/1 | n:21 gain:0.3333333333333333 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ (14/1 → 15/1) ⇝ 16/1 | n:0 gain:1 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ (14/1 → 15/1) ⇝ 16/1 | n:2 gain:1 clip:1 note:A3 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ (14/1 → 15/1) ⇝ 16/1 | n:6 gain:1 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 85/6 → 29/2 | n:22 clip:1 gain:0.7 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 85/6 → 29/2 | n:25 clip:1 gain:0.7338261212717718 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 85/6 → 89/6 | n:14 gain:0.25 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 43/3 → 44/3 | n:25 clip:1 gain:0.6618033988749896 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 43/3 → 44/3 | n:22 clip:1 gain:0.7 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 43/3 → 15/1 | n:7 gain:0.3333333333333333 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 29/2 → 89/6 | n:25 clip:1 gain:0.6618033988749896 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 29/2 → 89/6 | n:22 clip:1 gain:0.7 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (29/2 → 15/1) ⇝ 91/6 | n:0 gain:0.5 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ (29/2 → 15/1) ⇝ 31/2 | n:15 gain:0.5 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (29/2 → 15/1) ⇝ 31/2 | n:28 gain:0.25 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", - "[ (29/2 → 15/1) ⇝ 33/2 | n:7 gain:0.5 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (29/2 → 15/1) ⇝ 33/2 | n:9 gain:0.5 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (29/2 → 15/1) ⇝ 33/2 | n:13 gain:0.5 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 44/3 → 15/1 | n:22 clip:1 gain:0.6209056926535306 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 44/3 → 15/1 | n:25 clip:1 gain:0.6618033988749896 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ (44/3 → 15/1) ⇝ 46/3 | n:-7 gain:1 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ (89/6 → 15/1) ⇝ 91/6 | n:22 clip:1 gain:0.6209056926535306 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (89/6 → 15/1) ⇝ 91/6 | n:25 clip:1 gain:0.6618033988749896 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ (89/6 → 15/1) ⇝ 31/2 | n:14 gain:0.25 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 29/2 ⇜ (15/1 → 91/6) | n:0 gain:0.5 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 89/6 ⇜ (15/1 → 91/6) | n:22 clip:1 gain:0.6209056926535306 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 89/6 ⇜ (15/1 → 91/6) | n:25 clip:1 gain:0.6618033988749896 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 44/3 ⇜ (15/1 → 46/3) | n:-7 gain:1 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 15/1 → 46/3 | n:25 clip:1 gain:0.5790943073464696 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 15/1 → 46/3 | n:22 clip:1 gain:0.6209056926535306 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 27/2 ⇜ (15/1 → 31/2) | n:21 gain:0.25 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ 27/2 ⇜ (15/1 → 31/2) | n:23 gain:0.25 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 27/2 ⇜ (15/1 → 31/2) | n:27 gain:0.25 clip:1 note:Eb7 s:piano release:0.1 pan:0.7083333333333333 ]", - "[ 29/2 ⇜ (15/1 → 31/2) | n:15 gain:0.5 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 29/2 ⇜ (15/1 → 31/2) | n:28 gain:0.25 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", - "[ 89/6 ⇜ (15/1 → 31/2) | n:14 gain:0.25 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 15/1 → 47/3 | n:7 gain:0.3333333333333333 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 14/1 ⇜ (15/1 → 16/1) | n:0 gain:1 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 14/1 ⇜ (15/1 → 16/1) | n:2 gain:1 clip:1 note:A3 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 14/1 ⇜ (15/1 → 16/1) | n:6 gain:1 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/2 ⇜ (15/1 → 16/1) ⇝ 33/2 | n:7 gain:0.5 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 29/2 ⇜ (15/1 → 16/1) ⇝ 33/2 | n:9 gain:0.5 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 29/2 ⇜ (15/1 → 16/1) ⇝ 33/2 | n:13 gain:0.5 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 15/1 → 16/1 | n:7 gain:1 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 15/1 → 16/1 | n:22 gain:0.3333333333333333 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (15/1 → 16/1) ⇝ 17/1 | n:14 gain:0.3333333333333333 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (15/1 → 16/1) ⇝ 17/1 | n:16 gain:0.3333333333333333 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", - "[ (15/1 → 16/1) ⇝ 17/1 | n:20 gain:0.3333333333333333 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", - "[ 91/6 → 31/2 | n:25 clip:1 gain:0.5790943073464696 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 91/6 → 31/2 | n:22 clip:1 gain:0.6209056926535306 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 91/6 → 95/6 | n:0 gain:0.5 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 46/3 → 47/3 | n:22 clip:1 gain:0.5381966011250107 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 46/3 → 47/3 | n:25 clip:1 gain:0.5790943073464696 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 46/3 → 16/1 | n:-7 gain:1 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 31/2 → 95/6 | n:22 clip:1 gain:0.5381966011250107 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 31/2 → 95/6 | n:25 clip:1 gain:0.5790943073464696 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ (31/2 → 16/1) ⇝ 97/6 | n:14 gain:0.25 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (31/2 → 16/1) ⇝ 33/2 | n:14 gain:0.5 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (31/2 → 16/1) ⇝ 33/2 | n:29 gain:0.25 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", - "[ (31/2 → 16/1) ⇝ 35/2 | n:21 gain:0.25 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ (31/2 → 16/1) ⇝ 35/2 | n:23 gain:0.25 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (31/2 → 16/1) ⇝ 35/2 | n:27 gain:0.25 clip:1 note:Eb7 s:piano release:0.1 pan:0.7083333333333333 ]", - "[ 47/3 → 16/1 | n:25 clip:1 gain:0.5000000000000002 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 47/3 → 16/1 | n:22 clip:1 gain:0.5381966011250107 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (47/3 → 16/1) ⇝ 49/3 | n:7 gain:0.3333333333333333 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (95/6 → 16/1) ⇝ 97/6 | n:25 clip:1 gain:0.5000000000000002 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ (95/6 → 16/1) ⇝ 97/6 | n:22 clip:1 gain:0.5381966011250107 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (95/6 → 16/1) ⇝ 33/2 | n:0 gain:0.5 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ -1/2 ⇜ (0/1 → 1/6) | gain:0.25 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ -1/6 ⇜ (0/1 → 1/6) | clip:1 gain:0.5790943073464694 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ -1/6 ⇜ (0/1 → 1/6) | clip:1 gain:0.5381966011250106 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ -1/3 ⇜ (0/1 → 1/3) | gain:0.3333333333333333 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 0/1 → 1/3 | clip:1 gain:0.6209056926535308 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ 0/1 → 1/3 | clip:1 gain:0.5790943073464694 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ -3/2 ⇜ (0/1 → 1/2) | gain:0.5 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ -3/2 ⇜ (0/1 → 1/2) | gain:0.5 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ -3/2 ⇜ (0/1 → 1/2) | gain:0.5 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ -1/2 ⇜ (0/1 → 1/2) | gain:0.5 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ -1/2 ⇜ (0/1 → 1/2) | gain:0.25 clip:1 note:E7 s:piano release:0.1 pan:0.712962962962963 ]", + "[ -1/6 ⇜ (0/1 → 1/2) | gain:0.5 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 0/1 → 2/3 | gain:1 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ -1/1 ⇜ (0/1 → 1/1) | gain:0.3333333333333333 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ -1/1 ⇜ (0/1 → 1/1) | gain:0.3333333333333333 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ -1/1 ⇜ (0/1 → 1/1) | gain:0.3333333333333333 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ -1/2 ⇜ (0/1 → 1/1) ⇝ 3/2 | gain:0.25 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ -1/2 ⇜ (0/1 → 1/1) ⇝ 3/2 | gain:0.25 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ -1/2 ⇜ (0/1 → 1/1) ⇝ 3/2 | gain:0.25 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 0/1 → 1/1 | gain:1 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 0/1 → 1/1 | gain:0.3333333333333333 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ (0/1 → 1/1) ⇝ 2/1 | gain:1 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ (0/1 → 1/1) ⇝ 2/1 | gain:1 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ (0/1 → 1/1) ⇝ 2/1 | gain:1 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 1/6 → 1/2 | clip:1 gain:0.6209056926535308 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ 1/6 → 1/2 | clip:1 gain:0.5790943073464694 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 1/6 → 5/6 | gain:0.25 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 1/3 → 2/3 | clip:1 gain:0.6618033988749895 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 1/3 → 2/3 | clip:1 gain:0.6209056926535308 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ 1/3 → 1/1 | gain:0.3333333333333333 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 1/2 → 5/6 | clip:1 gain:0.6618033988749895 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 1/2 → 5/6 | clip:1 gain:0.6209056926535308 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ (1/2 → 1/1) ⇝ 7/6 | gain:0.5 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ (1/2 → 1/1) ⇝ 3/2 | gain:0.5 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (1/2 → 1/1) ⇝ 3/2 | gain:0.25 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ (1/2 → 1/1) ⇝ 5/2 | gain:0.5 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ (1/2 → 1/1) ⇝ 5/2 | gain:0.5 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (1/2 → 1/1) ⇝ 5/2 | gain:0.5 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 2/3 → 1/1 | clip:1 gain:0.7000000000000001 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ 2/3 → 1/1 | clip:1 gain:0.6618033988749895 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ (2/3 → 1/1) ⇝ 4/3 | gain:1 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ (5/6 → 1/1) ⇝ 7/6 | clip:1 gain:0.7000000000000001 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ (5/6 → 1/1) ⇝ 7/6 | clip:1 gain:0.6618033988749895 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ (5/6 → 1/1) ⇝ 3/2 | gain:0.25 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 1/2 ⇜ (1/1 → 7/6) | gain:0.5 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 5/6 ⇜ (1/1 → 7/6) | clip:1 gain:0.7000000000000001 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ 5/6 ⇜ (1/1 → 7/6) | clip:1 gain:0.6618033988749895 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 2/3 ⇜ (1/1 → 4/3) | gain:1 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ 1/1 → 4/3 | clip:1 gain:0.7338261212717717 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 1/1 → 4/3 | clip:1 gain:0.7000000000000001 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ -1/2 ⇜ (1/1 → 3/2) | gain:0.25 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ -1/2 ⇜ (1/1 → 3/2) | gain:0.25 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ -1/2 ⇜ (1/1 → 3/2) | gain:0.25 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 1/2 ⇜ (1/1 → 3/2) | gain:0.5 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 1/2 ⇜ (1/1 → 3/2) | gain:0.25 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 5/6 ⇜ (1/1 → 3/2) | gain:0.25 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 1/1 → 5/3 | gain:0.3333333333333333 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 0/1 ⇜ (1/1 → 2/1) | gain:1 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 0/1 ⇜ (1/1 → 2/1) | gain:1 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 0/1 ⇜ (1/1 → 2/1) | gain:1 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 1/2 ⇜ (1/1 → 2/1) ⇝ 5/2 | gain:0.5 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 1/2 ⇜ (1/1 → 2/1) ⇝ 5/2 | gain:0.5 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 1/2 ⇜ (1/1 → 2/1) ⇝ 5/2 | gain:0.5 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 1/1 → 2/1 | gain:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 1/1 → 2/1 | gain:0.3333333333333333 clip:1 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ (1/1 → 2/1) ⇝ 3/1 | gain:0.3333333333333333 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (1/1 → 2/1) ⇝ 3/1 | gain:0.3333333333333333 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (1/1 → 2/1) ⇝ 3/1 | gain:0.3333333333333333 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 7/6 → 3/2 | clip:1 gain:0.7338261212717717 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 7/6 → 3/2 | clip:1 gain:0.7000000000000001 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ 7/6 → 11/6 | gain:0.5 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 4/3 → 5/3 | clip:1 gain:0.7618033988749895 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ 4/3 → 5/3 | clip:1 gain:0.7338261212717717 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 4/3 → 2/1 | gain:1 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ 3/2 → 11/6 | clip:1 gain:0.7618033988749895 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ 3/2 → 11/6 | clip:1 gain:0.7338261212717717 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ (3/2 → 2/1) ⇝ 13/6 | gain:0.25 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (3/2 → 2/1) ⇝ 5/2 | gain:0.5 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (3/2 → 2/1) ⇝ 5/2 | gain:0.25 clip:1 note:E7 s:piano release:0.1 pan:0.712962962962963 ]", + "[ (3/2 → 2/1) ⇝ 7/2 | gain:0.25 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ (3/2 → 2/1) ⇝ 7/2 | gain:0.25 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ (3/2 → 2/1) ⇝ 7/2 | gain:0.25 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 5/3 → 2/1 | clip:1 gain:0.7827090915285202 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 5/3 → 2/1 | clip:1 gain:0.7618033988749895 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ (5/3 → 2/1) ⇝ 7/3 | gain:0.3333333333333333 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ (11/6 → 2/1) ⇝ 13/6 | clip:1 gain:0.7827090915285202 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ (11/6 → 2/1) ⇝ 13/6 | clip:1 gain:0.7618033988749895 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ (11/6 → 2/1) ⇝ 5/2 | gain:0.5 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 3/2 ⇜ (2/1 → 13/6) | gain:0.25 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 11/6 ⇜ (2/1 → 13/6) | clip:1 gain:0.7827090915285202 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 11/6 ⇜ (2/1 → 13/6) | clip:1 gain:0.7618033988749895 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 5/3 ⇜ (2/1 → 7/3) | gain:0.3333333333333333 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 2/1 → 7/3 | clip:1 gain:0.7956295201467611 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 2/1 → 7/3 | clip:1 gain:0.7827090915285202 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 1/2 ⇜ (2/1 → 5/2) | gain:0.5 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 1/2 ⇜ (2/1 → 5/2) | gain:0.5 clip:1 note:B4 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 1/2 ⇜ (2/1 → 5/2) | gain:0.5 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 3/2 ⇜ (2/1 → 5/2) | gain:0.5 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 3/2 ⇜ (2/1 → 5/2) | gain:0.25 clip:1 note:A7 s:piano release:0.1 pan:0.7361111111111112 ]", + "[ 11/6 ⇜ (2/1 → 5/2) | gain:0.5 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 2/1 → 8/3 | gain:1 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 1/1 ⇜ (2/1 → 3/1) | gain:0.3333333333333333 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 1/1 ⇜ (2/1 → 3/1) | gain:0.3333333333333333 clip:1 note:B5 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 1/1 ⇜ (2/1 → 3/1) | gain:0.3333333333333333 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ 3/2 ⇜ (2/1 → 3/1) ⇝ 7/2 | gain:0.25 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 3/2 ⇜ (2/1 → 3/1) ⇝ 7/2 | gain:0.25 clip:1 note:B6 s:piano release:0.1 pan:0.6898148148148149 ]", + "[ 3/2 ⇜ (2/1 → 3/1) ⇝ 7/2 | gain:0.25 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", + "[ 2/1 → 3/1 | gain:1 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 2/1 → 3/1 | gain:0.3333333333333333 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (2/1 → 3/1) ⇝ 4/1 | gain:1 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ (2/1 → 3/1) ⇝ 4/1 | gain:1 clip:1 note:B3 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ (2/1 → 3/1) ⇝ 4/1 | gain:1 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 13/6 → 5/2 | clip:1 gain:0.7956295201467611 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 13/6 → 5/2 | clip:1 gain:0.7827090915285202 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 13/6 → 17/6 | gain:0.25 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 7/3 → 8/3 | clip:1 gain:0.8 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 7/3 → 8/3 | clip:1 gain:0.7956295201467611 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 7/3 → 3/1 | gain:0.3333333333333333 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/2 → 17/6 | clip:1 gain:0.8 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 5/2 → 17/6 | clip:1 gain:0.7956295201467611 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ (5/2 → 3/1) ⇝ 19/6 | gain:0.5 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ (5/2 → 3/1) ⇝ 7/2 | gain:0.5 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", + "[ (5/2 → 3/1) ⇝ 7/2 | gain:0.25 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", + "[ (5/2 → 3/1) ⇝ 9/2 | gain:0.5 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (5/2 → 3/1) ⇝ 9/2 | gain:0.5 clip:1 note:B4 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ (5/2 → 3/1) ⇝ 9/2 | gain:0.5 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 8/3 → 3/1 | clip:1 gain:0.7956295201467611 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 8/3 → 3/1 | clip:1 gain:0.8 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ (8/3 → 3/1) ⇝ 10/3 | gain:1 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ (17/6 → 3/1) ⇝ 19/6 | clip:1 gain:0.7956295201467611 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ (17/6 → 3/1) ⇝ 19/6 | clip:1 gain:0.8 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ (17/6 → 3/1) ⇝ 7/2 | gain:0.25 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 5/2 ⇜ (3/1 → 19/6) | gain:0.5 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 17/6 ⇜ (3/1 → 19/6) | clip:1 gain:0.7956295201467611 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 17/6 ⇜ (3/1 → 19/6) | clip:1 gain:0.8 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 8/3 ⇜ (3/1 → 10/3) | gain:1 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 3/1 → 10/3 | clip:1 gain:0.7827090915285202 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 3/1 → 10/3 | clip:1 gain:0.7956295201467611 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 3/2 ⇜ (3/1 → 7/2) | gain:0.25 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 3/2 ⇜ (3/1 → 7/2) | gain:0.25 clip:1 note:B6 s:piano release:0.1 pan:0.6898148148148149 ]", + "[ 3/2 ⇜ (3/1 → 7/2) | gain:0.25 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", + "[ 5/2 ⇜ (3/1 → 7/2) | gain:0.5 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", + "[ 5/2 ⇜ (3/1 → 7/2) | gain:0.25 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", + "[ 17/6 ⇜ (3/1 → 7/2) | gain:0.25 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 3/1 → 11/3 | gain:0.3333333333333333 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 2/1 ⇜ (3/1 → 4/1) | gain:1 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 2/1 ⇜ (3/1 → 4/1) | gain:1 clip:1 note:B3 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 2/1 ⇜ (3/1 → 4/1) | gain:1 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 5/2 ⇜ (3/1 → 4/1) ⇝ 9/2 | gain:0.5 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/2 ⇜ (3/1 → 4/1) ⇝ 9/2 | gain:0.5 clip:1 note:B4 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 5/2 ⇜ (3/1 → 4/1) ⇝ 9/2 | gain:0.5 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 3/1 → 4/1 | gain:1 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 3/1 → 4/1 | gain:0.3333333333333333 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ (3/1 → 4/1) ⇝ 5/1 | gain:0.3333333333333333 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (3/1 → 4/1) ⇝ 5/1 | gain:0.3333333333333333 clip:1 note:B5 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ (3/1 → 4/1) ⇝ 5/1 | gain:0.3333333333333333 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ 19/6 → 7/2 | clip:1 gain:0.7827090915285202 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 19/6 → 7/2 | clip:1 gain:0.7956295201467611 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 19/6 → 23/6 | gain:0.5 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 10/3 → 11/3 | clip:1 gain:0.7618033988749895 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 10/3 → 11/3 | clip:1 gain:0.7827090915285202 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 10/3 → 4/1 | gain:1 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 7/2 → 23/6 | clip:1 gain:0.7618033988749895 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 7/2 → 23/6 | clip:1 gain:0.7827090915285202 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ (7/2 → 4/1) ⇝ 25/6 | gain:0.25 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (7/2 → 4/1) ⇝ 9/2 | gain:0.5 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (7/2 → 4/1) ⇝ 9/2 | gain:0.25 clip:1 note:A7 s:piano release:0.1 pan:0.7361111111111112 ]", + "[ (7/2 → 4/1) ⇝ 11/2 | gain:0.25 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (7/2 → 4/1) ⇝ 11/2 | gain:0.25 clip:1 note:B6 s:piano release:0.1 pan:0.6898148148148149 ]", + "[ (7/2 → 4/1) ⇝ 11/2 | gain:0.25 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", + "[ 11/3 → 4/1 | clip:1 gain:0.7338261212717716 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 11/3 → 4/1 | clip:1 gain:0.7618033988749895 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ (11/3 → 4/1) ⇝ 13/3 | gain:0.3333333333333333 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (23/6 → 4/1) ⇝ 25/6 | clip:1 gain:0.7338261212717716 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ (23/6 → 4/1) ⇝ 25/6 | clip:1 gain:0.7618033988749895 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ (23/6 → 4/1) ⇝ 9/2 | gain:0.5 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 7/2 ⇜ (4/1 → 25/6) | gain:0.25 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 23/6 ⇜ (4/1 → 25/6) | clip:1 gain:0.7338261212717716 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 23/6 ⇜ (4/1 → 25/6) | clip:1 gain:0.7618033988749895 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ 11/3 ⇜ (4/1 → 13/3) | gain:0.3333333333333333 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 4/1 → 13/3 | clip:1 gain:0.7000000000000001 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ 4/1 → 13/3 | clip:1 gain:0.7338261212717716 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 5/2 ⇜ (4/1 → 9/2) | gain:0.5 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 5/2 ⇜ (4/1 → 9/2) | gain:0.5 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/2 ⇜ (4/1 → 9/2) | gain:0.5 clip:1 note:Bb4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 7/2 ⇜ (4/1 → 9/2) | gain:0.5 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 7/2 ⇜ (4/1 → 9/2) | gain:0.25 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 23/6 ⇜ (4/1 → 9/2) | gain:0.5 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ 4/1 → 14/3 | gain:1 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 3/1 ⇜ (4/1 → 5/1) | gain:0.3333333333333333 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 3/1 ⇜ (4/1 → 5/1) | gain:0.3333333333333333 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 3/1 ⇜ (4/1 → 5/1) | gain:0.3333333333333333 clip:1 note:Bb5 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 7/2 ⇜ (4/1 → 5/1) ⇝ 11/2 | gain:0.25 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 7/2 ⇜ (4/1 → 5/1) ⇝ 11/2 | gain:0.25 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", + "[ 7/2 ⇜ (4/1 → 5/1) ⇝ 11/2 | gain:0.25 clip:1 note:Bb6 s:piano release:0.1 pan:0.6851851851851851 ]", + "[ 4/1 → 5/1 | gain:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 4/1 → 5/1 | gain:0.3333333333333333 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ (4/1 → 5/1) ⇝ 6/1 | gain:1 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ (4/1 → 5/1) ⇝ 6/1 | gain:1 clip:1 note:Eb3 s:piano release:0.1 pan:0.4861111111111111 ]", + "[ (4/1 → 5/1) ⇝ 6/1 | gain:1 clip:1 note:Bb3 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 25/6 → 9/2 | clip:1 gain:0.7000000000000001 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ 25/6 → 9/2 | clip:1 gain:0.7338261212717716 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 25/6 → 29/6 | gain:0.25 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 13/3 → 14/3 | clip:1 gain:0.6618033988749895 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 13/3 → 14/3 | clip:1 gain:0.7000000000000001 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ 13/3 → 5/1 | gain:0.3333333333333333 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 9/2 → 29/6 | clip:1 gain:0.6618033988749895 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 9/2 → 29/6 | clip:1 gain:0.7000000000000001 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ (9/2 → 5/1) ⇝ 31/6 | gain:0.5 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ (9/2 → 5/1) ⇝ 11/2 | gain:0.5 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (9/2 → 5/1) ⇝ 11/2 | gain:0.25 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ (9/2 → 5/1) ⇝ 13/2 | gain:0.5 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (9/2 → 5/1) ⇝ 13/2 | gain:0.5 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ (9/2 → 5/1) ⇝ 13/2 | gain:0.5 clip:1 note:Bb4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 14/3 → 5/1 | clip:1 gain:0.6209056926535308 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ 14/3 → 5/1 | clip:1 gain:0.6618033988749895 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (14/3 → 5/1) ⇝ 16/3 | gain:1 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ (29/6 → 5/1) ⇝ 31/6 | clip:1 gain:0.6209056926535308 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ (29/6 → 5/1) ⇝ 31/6 | clip:1 gain:0.6618033988749895 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (29/6 → 5/1) ⇝ 11/2 | gain:0.25 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 9/2 ⇜ (5/1 → 31/6) | gain:0.5 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ 29/6 ⇜ (5/1 → 31/6) | clip:1 gain:0.6209056926535308 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ 29/6 ⇜ (5/1 → 31/6) | clip:1 gain:0.6618033988749895 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 14/3 ⇜ (5/1 → 16/3) | gain:1 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 5/1 → 16/3 | clip:1 gain:0.5790943073464694 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 5/1 → 16/3 | clip:1 gain:0.6209056926535308 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ 7/2 ⇜ (5/1 → 11/2) | gain:0.25 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 7/2 ⇜ (5/1 → 11/2) | gain:0.25 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", + "[ 7/2 ⇜ (5/1 → 11/2) | gain:0.25 clip:1 note:Bb6 s:piano release:0.1 pan:0.6851851851851851 ]", + "[ 9/2 ⇜ (5/1 → 11/2) | gain:0.5 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 9/2 ⇜ (5/1 → 11/2) | gain:0.25 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 29/6 ⇜ (5/1 → 11/2) | gain:0.25 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 5/1 → 17/3 | gain:0.3333333333333333 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 4/1 ⇜ (5/1 → 6/1) | gain:1 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ 4/1 ⇜ (5/1 → 6/1) | gain:1 clip:1 note:Eb3 s:piano release:0.1 pan:0.4861111111111111 ]", + "[ 4/1 ⇜ (5/1 → 6/1) | gain:1 clip:1 note:Bb3 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 9/2 ⇜ (5/1 → 6/1) ⇝ 13/2 | gain:0.5 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 9/2 ⇜ (5/1 → 6/1) ⇝ 13/2 | gain:0.5 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 9/2 ⇜ (5/1 → 6/1) ⇝ 13/2 | gain:0.5 clip:1 note:Bb4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 5/1 → 6/1 | gain:1 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 5/1 → 6/1 | gain:0.3333333333333333 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ (5/1 → 6/1) ⇝ 7/1 | gain:0.3333333333333333 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (5/1 → 6/1) ⇝ 7/1 | gain:0.3333333333333333 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (5/1 → 6/1) ⇝ 7/1 | gain:0.3333333333333333 clip:1 note:Bb5 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 31/6 → 11/2 | clip:1 gain:0.5790943073464694 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 31/6 → 11/2 | clip:1 gain:0.6209056926535308 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ 31/6 → 35/6 | gain:0.5 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ 16/3 → 17/3 | clip:1 gain:0.5381966011250106 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ 16/3 → 17/3 | clip:1 gain:0.5790943073464694 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 16/3 → 6/1 | gain:1 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 11/2 → 35/6 | clip:1 gain:0.5381966011250106 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ 11/2 → 35/6 | clip:1 gain:0.5790943073464694 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (11/2 → 6/1) ⇝ 37/6 | gain:0.25 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (11/2 → 6/1) ⇝ 13/2 | gain:0.5 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (11/2 → 6/1) ⇝ 13/2 | gain:0.25 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ (11/2 → 6/1) ⇝ 15/2 | gain:0.25 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ (11/2 → 6/1) ⇝ 15/2 | gain:0.25 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", + "[ (11/2 → 6/1) ⇝ 15/2 | gain:0.25 clip:1 note:Bb6 s:piano release:0.1 pan:0.6851851851851851 ]", + "[ 17/3 → 6/1 | clip:1 gain:0.5 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 17/3 → 6/1 | clip:1 gain:0.5381966011250106 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ (17/3 → 6/1) ⇝ 19/3 | gain:0.3333333333333333 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (35/6 → 6/1) ⇝ 37/6 | clip:1 gain:0.5 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (35/6 → 6/1) ⇝ 37/6 | clip:1 gain:0.5381966011250106 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ (35/6 → 6/1) ⇝ 13/2 | gain:0.5 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ 11/2 ⇜ (6/1 → 37/6) | gain:0.25 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 35/6 ⇜ (6/1 → 37/6) | clip:1 gain:0.5 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 35/6 ⇜ (6/1 → 37/6) | clip:1 gain:0.5381966011250106 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 17/3 ⇜ (6/1 → 19/3) | gain:0.3333333333333333 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 6/1 → 19/3 | clip:1 gain:0.46617387872822835 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 6/1 → 19/3 | clip:1 gain:0.5 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 9/2 ⇜ (6/1 → 13/2) | gain:0.5 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 9/2 ⇜ (6/1 → 13/2) | gain:0.5 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 9/2 ⇜ (6/1 → 13/2) | gain:0.5 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/2 ⇜ (6/1 → 13/2) | gain:0.5 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 11/2 ⇜ (6/1 → 13/2) | gain:0.25 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", + "[ 35/6 ⇜ (6/1 → 13/2) | gain:0.5 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 6/1 → 20/3 | gain:1 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 5/1 ⇜ (6/1 → 7/1) | gain:0.3333333333333333 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 5/1 ⇜ (6/1 → 7/1) | gain:0.3333333333333333 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", + "[ 5/1 ⇜ (6/1 → 7/1) | gain:0.3333333333333333 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", + "[ 11/2 ⇜ (6/1 → 7/1) ⇝ 15/2 | gain:0.25 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ 11/2 ⇜ (6/1 → 7/1) ⇝ 15/2 | gain:0.25 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 11/2 ⇜ (6/1 → 7/1) ⇝ 15/2 | gain:0.25 clip:1 note:Eb7 s:piano release:0.1 pan:0.7083333333333333 ]", + "[ 6/1 → 7/1 | gain:1 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 6/1 → 7/1 | gain:0.3333333333333333 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ (6/1 → 7/1) ⇝ 8/1 | gain:1 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ (6/1 → 7/1) ⇝ 8/1 | gain:1 clip:1 note:A3 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ (6/1 → 7/1) ⇝ 8/1 | gain:1 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 37/6 → 13/2 | clip:1 gain:0.46617387872822835 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 37/6 → 13/2 | clip:1 gain:0.5 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 37/6 → 41/6 | gain:0.25 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 19/3 → 20/3 | clip:1 gain:0.4381966011250106 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 19/3 → 20/3 | clip:1 gain:0.46617387872822835 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 19/3 → 7/1 | gain:0.3333333333333333 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 13/2 → 41/6 | clip:1 gain:0.4381966011250106 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 13/2 → 41/6 | clip:1 gain:0.46617387872822835 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (13/2 → 7/1) ⇝ 43/6 | gain:0.5 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ (13/2 → 7/1) ⇝ 15/2 | gain:0.5 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (13/2 → 7/1) ⇝ 15/2 | gain:0.25 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", + "[ (13/2 → 7/1) ⇝ 17/2 | gain:0.5 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (13/2 → 7/1) ⇝ 17/2 | gain:0.5 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (13/2 → 7/1) ⇝ 17/2 | gain:0.5 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 20/3 → 7/1 | clip:1 gain:0.4172909084714798 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 20/3 → 7/1 | clip:1 gain:0.4381966011250106 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ (20/3 → 7/1) ⇝ 22/3 | gain:1 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ (41/6 → 7/1) ⇝ 43/6 | clip:1 gain:0.4172909084714798 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (41/6 → 7/1) ⇝ 43/6 | clip:1 gain:0.4381966011250106 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ (41/6 → 7/1) ⇝ 15/2 | gain:0.25 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 13/2 ⇜ (7/1 → 43/6) | gain:0.5 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 41/6 ⇜ (7/1 → 43/6) | clip:1 gain:0.4172909084714798 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 41/6 ⇜ (7/1 → 43/6) | clip:1 gain:0.4381966011250106 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 20/3 ⇜ (7/1 → 22/3) | gain:1 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 7/1 → 22/3 | clip:1 gain:0.40437047985323893 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 7/1 → 22/3 | clip:1 gain:0.4172909084714798 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 11/2 ⇜ (7/1 → 15/2) | gain:0.25 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ 11/2 ⇜ (7/1 → 15/2) | gain:0.25 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 11/2 ⇜ (7/1 → 15/2) | gain:0.25 clip:1 note:Eb7 s:piano release:0.1 pan:0.7083333333333333 ]", + "[ 13/2 ⇜ (7/1 → 15/2) | gain:0.5 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 13/2 ⇜ (7/1 → 15/2) | gain:0.25 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", + "[ 41/6 ⇜ (7/1 → 15/2) | gain:0.25 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 7/1 → 23/3 | gain:0.3333333333333333 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 6/1 ⇜ (7/1 → 8/1) | gain:1 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 6/1 ⇜ (7/1 → 8/1) | gain:1 clip:1 note:A3 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 6/1 ⇜ (7/1 → 8/1) | gain:1 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/2 ⇜ (7/1 → 8/1) ⇝ 17/2 | gain:0.5 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 13/2 ⇜ (7/1 → 8/1) ⇝ 17/2 | gain:0.5 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 13/2 ⇜ (7/1 → 8/1) ⇝ 17/2 | gain:0.5 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 7/1 → 8/1 | gain:1 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 7/1 → 8/1 | gain:0.3333333333333333 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (7/1 → 8/1) ⇝ 9/1 | gain:0.3333333333333333 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (7/1 → 8/1) ⇝ 9/1 | gain:0.3333333333333333 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", + "[ (7/1 → 8/1) ⇝ 9/1 | gain:0.3333333333333333 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", + "[ 43/6 → 15/2 | clip:1 gain:0.40437047985323893 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 43/6 → 15/2 | clip:1 gain:0.4172909084714798 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 43/6 → 47/6 | gain:0.5 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 22/3 → 23/3 | clip:1 gain:0.4 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 22/3 → 23/3 | clip:1 gain:0.40437047985323893 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 22/3 → 8/1 | gain:1 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 15/2 → 47/6 | clip:1 gain:0.4 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 15/2 → 47/6 | clip:1 gain:0.40437047985323893 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ (15/2 → 8/1) ⇝ 49/6 | gain:0.25 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (15/2 → 8/1) ⇝ 17/2 | gain:0.5 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (15/2 → 8/1) ⇝ 17/2 | gain:0.25 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", + "[ (15/2 → 8/1) ⇝ 19/2 | gain:0.25 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ (15/2 → 8/1) ⇝ 19/2 | gain:0.25 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ (15/2 → 8/1) ⇝ 19/2 | gain:0.25 clip:1 note:Eb7 s:piano release:0.1 pan:0.7083333333333333 ]", + "[ 23/3 → 8/1 | clip:1 gain:0.40437047985323893 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 23/3 → 8/1 | clip:1 gain:0.4 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (23/3 → 8/1) ⇝ 25/3 | gain:0.3333333333333333 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (47/6 → 8/1) ⇝ 49/6 | clip:1 gain:0.40437047985323893 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ (47/6 → 8/1) ⇝ 49/6 | clip:1 gain:0.4 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (47/6 → 8/1) ⇝ 17/2 | gain:0.5 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 15/2 ⇜ (8/1 → 49/6) | gain:0.25 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 47/6 ⇜ (8/1 → 49/6) | clip:1 gain:0.40437047985323893 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 47/6 ⇜ (8/1 → 49/6) | clip:1 gain:0.4 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ 23/3 ⇜ (8/1 → 25/3) | gain:0.3333333333333333 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 8/1 → 25/3 | clip:1 gain:0.4172909084714798 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ 8/1 → 25/3 | clip:1 gain:0.40437047985323893 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 13/2 ⇜ (8/1 → 17/2) | gain:0.5 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 13/2 ⇜ (8/1 → 17/2) | gain:0.5 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 13/2 ⇜ (8/1 → 17/2) | gain:0.5 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/2 ⇜ (8/1 → 17/2) | gain:0.5 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 15/2 ⇜ (8/1 → 17/2) | gain:0.25 clip:1 note:E7 s:piano release:0.1 pan:0.712962962962963 ]", + "[ 47/6 ⇜ (8/1 → 17/2) | gain:0.5 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 8/1 → 26/3 | gain:1 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ 7/1 ⇜ (8/1 → 9/1) | gain:0.3333333333333333 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 7/1 ⇜ (8/1 → 9/1) | gain:0.3333333333333333 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 7/1 ⇜ (8/1 → 9/1) | gain:0.3333333333333333 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 15/2 ⇜ (8/1 → 9/1) ⇝ 19/2 | gain:0.25 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ 15/2 ⇜ (8/1 → 9/1) ⇝ 19/2 | gain:0.25 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ 15/2 ⇜ (8/1 → 9/1) ⇝ 19/2 | gain:0.25 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 8/1 → 9/1 | gain:1 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 8/1 → 9/1 | gain:0.3333333333333333 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ (8/1 → 9/1) ⇝ 10/1 | gain:1 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ (8/1 → 9/1) ⇝ 10/1 | gain:1 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ (8/1 → 9/1) ⇝ 10/1 | gain:1 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 49/6 → 17/2 | clip:1 gain:0.4172909084714798 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ 49/6 → 17/2 | clip:1 gain:0.40437047985323893 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 49/6 → 53/6 | gain:0.25 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 25/3 → 26/3 | clip:1 gain:0.4381966011250105 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 25/3 → 26/3 | clip:1 gain:0.4172909084714798 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ 25/3 → 9/1 | gain:0.3333333333333333 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 17/2 → 53/6 | clip:1 gain:0.4381966011250105 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 17/2 → 53/6 | clip:1 gain:0.4172909084714798 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ (17/2 → 9/1) ⇝ 55/6 | gain:0.5 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ (17/2 → 9/1) ⇝ 19/2 | gain:0.5 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (17/2 → 9/1) ⇝ 19/2 | gain:0.25 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ (17/2 → 9/1) ⇝ 21/2 | gain:0.5 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ (17/2 → 9/1) ⇝ 21/2 | gain:0.5 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (17/2 → 9/1) ⇝ 21/2 | gain:0.5 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 26/3 → 9/1 | clip:1 gain:0.46617387872822824 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ 26/3 → 9/1 | clip:1 gain:0.4381966011250105 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ (26/3 → 9/1) ⇝ 28/3 | gain:1 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ (53/6 → 9/1) ⇝ 55/6 | clip:1 gain:0.46617387872822824 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ (53/6 → 9/1) ⇝ 55/6 | clip:1 gain:0.4381966011250105 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ (53/6 → 9/1) ⇝ 19/2 | gain:0.25 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 17/2 ⇜ (9/1 → 55/6) | gain:0.5 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 53/6 ⇜ (9/1 → 55/6) | clip:1 gain:0.46617387872822824 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ 53/6 ⇜ (9/1 → 55/6) | clip:1 gain:0.4381966011250105 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 26/3 ⇜ (9/1 → 28/3) | gain:1 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ 9/1 → 28/3 | clip:1 gain:0.49999999999999994 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 9/1 → 28/3 | clip:1 gain:0.46617387872822824 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ 15/2 ⇜ (9/1 → 19/2) | gain:0.25 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ 15/2 ⇜ (9/1 → 19/2) | gain:0.25 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ 15/2 ⇜ (9/1 → 19/2) | gain:0.25 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 17/2 ⇜ (9/1 → 19/2) | gain:0.5 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 17/2 ⇜ (9/1 → 19/2) | gain:0.25 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 53/6 ⇜ (9/1 → 19/2) | gain:0.25 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 9/1 → 29/3 | gain:0.3333333333333333 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 8/1 ⇜ (9/1 → 10/1) | gain:1 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 8/1 ⇜ (9/1 → 10/1) | gain:1 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 8/1 ⇜ (9/1 → 10/1) | gain:1 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 17/2 ⇜ (9/1 → 10/1) ⇝ 21/2 | gain:0.5 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 17/2 ⇜ (9/1 → 10/1) ⇝ 21/2 | gain:0.5 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 17/2 ⇜ (9/1 → 10/1) ⇝ 21/2 | gain:0.5 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 9/1 → 10/1 | gain:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 9/1 → 10/1 | gain:0.3333333333333333 clip:1 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ (9/1 → 10/1) ⇝ 11/1 | gain:0.3333333333333333 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (9/1 → 10/1) ⇝ 11/1 | gain:0.3333333333333333 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (9/1 → 10/1) ⇝ 11/1 | gain:0.3333333333333333 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 55/6 → 19/2 | clip:1 gain:0.49999999999999994 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 55/6 → 19/2 | clip:1 gain:0.46617387872822824 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ 55/6 → 59/6 | gain:0.5 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 28/3 → 29/3 | clip:1 gain:0.5381966011250106 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ 28/3 → 29/3 | clip:1 gain:0.49999999999999994 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 28/3 → 10/1 | gain:1 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ 19/2 → 59/6 | clip:1 gain:0.5381966011250106 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ 19/2 → 59/6 | clip:1 gain:0.49999999999999994 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ (19/2 → 10/1) ⇝ 61/6 | gain:0.25 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (19/2 → 10/1) ⇝ 21/2 | gain:0.5 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (19/2 → 10/1) ⇝ 21/2 | gain:0.25 clip:1 note:E7 s:piano release:0.1 pan:0.712962962962963 ]", + "[ (19/2 → 10/1) ⇝ 23/2 | gain:0.25 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ (19/2 → 10/1) ⇝ 23/2 | gain:0.25 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ (19/2 → 10/1) ⇝ 23/2 | gain:0.25 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 29/3 → 10/1 | clip:1 gain:0.5790943073464692 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 29/3 → 10/1 | clip:1 gain:0.5381966011250106 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ (29/3 → 10/1) ⇝ 31/3 | gain:0.3333333333333333 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ (59/6 → 10/1) ⇝ 61/6 | clip:1 gain:0.5790943073464692 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ (59/6 → 10/1) ⇝ 61/6 | clip:1 gain:0.5381966011250106 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ (59/6 → 10/1) ⇝ 21/2 | gain:0.5 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 19/2 ⇜ (10/1 → 61/6) | gain:0.25 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 59/6 ⇜ (10/1 → 61/6) | clip:1 gain:0.5790943073464692 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 59/6 ⇜ (10/1 → 61/6) | clip:1 gain:0.5381966011250106 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 29/3 ⇜ (10/1 → 31/3) | gain:0.3333333333333333 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 10/1 → 31/3 | clip:1 gain:0.6209056926535306 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 10/1 → 31/3 | clip:1 gain:0.5790943073464692 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 17/2 ⇜ (10/1 → 21/2) | gain:0.5 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/2 ⇜ (10/1 → 21/2) | gain:0.5 clip:1 note:B4 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 17/2 ⇜ (10/1 → 21/2) | gain:0.5 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 19/2 ⇜ (10/1 → 21/2) | gain:0.5 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 19/2 ⇜ (10/1 → 21/2) | gain:0.25 clip:1 note:A7 s:piano release:0.1 pan:0.7361111111111112 ]", + "[ 59/6 ⇜ (10/1 → 21/2) | gain:0.5 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 10/1 → 32/3 | gain:1 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 9/1 ⇜ (10/1 → 11/1) | gain:0.3333333333333333 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 9/1 ⇜ (10/1 → 11/1) | gain:0.3333333333333333 clip:1 note:B5 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 9/1 ⇜ (10/1 → 11/1) | gain:0.3333333333333333 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ 19/2 ⇜ (10/1 → 11/1) ⇝ 23/2 | gain:0.25 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 19/2 ⇜ (10/1 → 11/1) ⇝ 23/2 | gain:0.25 clip:1 note:B6 s:piano release:0.1 pan:0.6898148148148149 ]", + "[ 19/2 ⇜ (10/1 → 11/1) ⇝ 23/2 | gain:0.25 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", + "[ 10/1 → 11/1 | gain:1 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 10/1 → 11/1 | gain:0.3333333333333333 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (10/1 → 11/1) ⇝ 12/1 | gain:1 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ (10/1 → 11/1) ⇝ 12/1 | gain:1 clip:1 note:B3 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ (10/1 → 11/1) ⇝ 12/1 | gain:1 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 61/6 → 21/2 | clip:1 gain:0.6209056926535306 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 61/6 → 21/2 | clip:1 gain:0.5790943073464692 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 61/6 → 65/6 | gain:0.25 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 31/3 → 32/3 | clip:1 gain:0.6618033988749894 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 31/3 → 32/3 | clip:1 gain:0.6209056926535306 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 31/3 → 11/1 | gain:0.3333333333333333 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 21/2 → 65/6 | clip:1 gain:0.6618033988749894 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 21/2 → 65/6 | clip:1 gain:0.6209056926535306 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ (21/2 → 11/1) ⇝ 67/6 | gain:0.5 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ (21/2 → 11/1) ⇝ 23/2 | gain:0.5 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", + "[ (21/2 → 11/1) ⇝ 23/2 | gain:0.25 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", + "[ (21/2 → 11/1) ⇝ 25/2 | gain:0.5 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (21/2 → 11/1) ⇝ 25/2 | gain:0.5 clip:1 note:B4 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ (21/2 → 11/1) ⇝ 25/2 | gain:0.5 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 32/3 → 11/1 | clip:1 gain:0.7 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 32/3 → 11/1 | clip:1 gain:0.6618033988749894 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ (32/3 → 11/1) ⇝ 34/3 | gain:1 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ (65/6 → 11/1) ⇝ 67/6 | clip:1 gain:0.7 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ (65/6 → 11/1) ⇝ 67/6 | clip:1 gain:0.6618033988749894 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ (65/6 → 11/1) ⇝ 23/2 | gain:0.25 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 21/2 ⇜ (11/1 → 67/6) | gain:0.5 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 65/6 ⇜ (11/1 → 67/6) | clip:1 gain:0.7 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 65/6 ⇜ (11/1 → 67/6) | clip:1 gain:0.6618033988749894 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 32/3 ⇜ (11/1 → 34/3) | gain:1 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 11/1 → 34/3 | clip:1 gain:0.7338261212717717 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 11/1 → 34/3 | clip:1 gain:0.7 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 19/2 ⇜ (11/1 → 23/2) | gain:0.25 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 19/2 ⇜ (11/1 → 23/2) | gain:0.25 clip:1 note:B6 s:piano release:0.1 pan:0.6898148148148149 ]", + "[ 19/2 ⇜ (11/1 → 23/2) | gain:0.25 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", + "[ 21/2 ⇜ (11/1 → 23/2) | gain:0.5 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", + "[ 21/2 ⇜ (11/1 → 23/2) | gain:0.25 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", + "[ 65/6 ⇜ (11/1 → 23/2) | gain:0.25 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 11/1 → 35/3 | gain:0.3333333333333333 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 10/1 ⇜ (11/1 → 12/1) | gain:1 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 10/1 ⇜ (11/1 → 12/1) | gain:1 clip:1 note:B3 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 10/1 ⇜ (11/1 → 12/1) | gain:1 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 21/2 ⇜ (11/1 → 12/1) ⇝ 25/2 | gain:0.5 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 21/2 ⇜ (11/1 → 12/1) ⇝ 25/2 | gain:0.5 clip:1 note:B4 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 21/2 ⇜ (11/1 → 12/1) ⇝ 25/2 | gain:0.5 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 11/1 → 12/1 | gain:1 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 11/1 → 12/1 | gain:0.3333333333333333 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ (11/1 → 12/1) ⇝ 13/1 | gain:0.3333333333333333 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (11/1 → 12/1) ⇝ 13/1 | gain:0.3333333333333333 clip:1 note:B5 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ (11/1 → 12/1) ⇝ 13/1 | gain:0.3333333333333333 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ 67/6 → 23/2 | clip:1 gain:0.7338261212717717 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 67/6 → 23/2 | clip:1 gain:0.7 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 67/6 → 71/6 | gain:0.5 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 34/3 → 35/3 | clip:1 gain:0.7618033988749894 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 34/3 → 35/3 | clip:1 gain:0.7338261212717717 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 34/3 → 12/1 | gain:1 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 23/2 → 71/6 | clip:1 gain:0.7618033988749894 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 23/2 → 71/6 | clip:1 gain:0.7338261212717717 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ (23/2 → 12/1) ⇝ 73/6 | gain:0.25 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (23/2 → 12/1) ⇝ 25/2 | gain:0.5 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (23/2 → 12/1) ⇝ 25/2 | gain:0.25 clip:1 note:A7 s:piano release:0.1 pan:0.7361111111111112 ]", + "[ (23/2 → 12/1) ⇝ 27/2 | gain:0.25 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (23/2 → 12/1) ⇝ 27/2 | gain:0.25 clip:1 note:B6 s:piano release:0.1 pan:0.6898148148148149 ]", + "[ (23/2 → 12/1) ⇝ 27/2 | gain:0.25 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", + "[ 35/3 → 12/1 | clip:1 gain:0.7827090915285202 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 35/3 → 12/1 | clip:1 gain:0.7618033988749894 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ (35/3 → 12/1) ⇝ 37/3 | gain:0.3333333333333333 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (71/6 → 12/1) ⇝ 73/6 | clip:1 gain:0.7827090915285202 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ (71/6 → 12/1) ⇝ 73/6 | clip:1 gain:0.7618033988749894 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ (71/6 → 12/1) ⇝ 25/2 | gain:0.5 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 23/2 ⇜ (12/1 → 73/6) | gain:0.25 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 71/6 ⇜ (12/1 → 73/6) | clip:1 gain:0.7827090915285202 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 71/6 ⇜ (12/1 → 73/6) | clip:1 gain:0.7618033988749894 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ 35/3 ⇜ (12/1 → 37/3) | gain:0.3333333333333333 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 12/1 → 37/3 | clip:1 gain:0.7956295201467611 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ 12/1 → 37/3 | clip:1 gain:0.7827090915285202 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 21/2 ⇜ (12/1 → 25/2) | gain:0.5 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 21/2 ⇜ (12/1 → 25/2) | gain:0.5 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 21/2 ⇜ (12/1 → 25/2) | gain:0.5 clip:1 note:Bb4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 23/2 ⇜ (12/1 → 25/2) | gain:0.5 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 23/2 ⇜ (12/1 → 25/2) | gain:0.25 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 71/6 ⇜ (12/1 → 25/2) | gain:0.5 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ 12/1 → 38/3 | gain:1 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 11/1 ⇜ (12/1 → 13/1) | gain:0.3333333333333333 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 11/1 ⇜ (12/1 → 13/1) | gain:0.3333333333333333 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/1 ⇜ (12/1 → 13/1) | gain:0.3333333333333333 clip:1 note:Bb5 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 23/2 ⇜ (12/1 → 13/1) ⇝ 27/2 | gain:0.25 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 23/2 ⇜ (12/1 → 13/1) ⇝ 27/2 | gain:0.25 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", + "[ 23/2 ⇜ (12/1 → 13/1) ⇝ 27/2 | gain:0.25 clip:1 note:Bb6 s:piano release:0.1 pan:0.6851851851851851 ]", + "[ 12/1 → 13/1 | gain:1 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 12/1 → 13/1 | gain:0.3333333333333333 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ (12/1 → 13/1) ⇝ 14/1 | gain:1 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ (12/1 → 13/1) ⇝ 14/1 | gain:1 clip:1 note:Eb3 s:piano release:0.1 pan:0.4861111111111111 ]", + "[ (12/1 → 13/1) ⇝ 14/1 | gain:1 clip:1 note:Bb3 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 73/6 → 25/2 | clip:1 gain:0.7956295201467611 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ 73/6 → 25/2 | clip:1 gain:0.7827090915285202 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 73/6 → 77/6 | gain:0.25 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 37/3 → 38/3 | clip:1 gain:0.8 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 37/3 → 38/3 | clip:1 gain:0.7956295201467611 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ 37/3 → 13/1 | gain:0.3333333333333333 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 25/2 → 77/6 | clip:1 gain:0.8 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 25/2 → 77/6 | clip:1 gain:0.7956295201467611 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ (25/2 → 13/1) ⇝ 79/6 | gain:0.5 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ (25/2 → 13/1) ⇝ 27/2 | gain:0.5 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (25/2 → 13/1) ⇝ 27/2 | gain:0.25 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ (25/2 → 13/1) ⇝ 29/2 | gain:0.5 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (25/2 → 13/1) ⇝ 29/2 | gain:0.5 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ (25/2 → 13/1) ⇝ 29/2 | gain:0.5 clip:1 note:Bb4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 38/3 → 13/1 | clip:1 gain:0.7956295201467611 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ 38/3 → 13/1 | clip:1 gain:0.8 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (38/3 → 13/1) ⇝ 40/3 | gain:1 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ (77/6 → 13/1) ⇝ 79/6 | clip:1 gain:0.7956295201467611 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ (77/6 → 13/1) ⇝ 79/6 | clip:1 gain:0.8 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (77/6 → 13/1) ⇝ 27/2 | gain:0.25 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 25/2 ⇜ (13/1 → 79/6) | gain:0.5 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ 77/6 ⇜ (13/1 → 79/6) | clip:1 gain:0.7956295201467611 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ 77/6 ⇜ (13/1 → 79/6) | clip:1 gain:0.8 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 38/3 ⇜ (13/1 → 40/3) | gain:1 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 13/1 → 40/3 | clip:1 gain:0.7827090915285202 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 13/1 → 40/3 | clip:1 gain:0.7956295201467611 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ 23/2 ⇜ (13/1 → 27/2) | gain:0.25 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 23/2 ⇜ (13/1 → 27/2) | gain:0.25 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", + "[ 23/2 ⇜ (13/1 → 27/2) | gain:0.25 clip:1 note:Bb6 s:piano release:0.1 pan:0.6851851851851851 ]", + "[ 25/2 ⇜ (13/1 → 27/2) | gain:0.5 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 25/2 ⇜ (13/1 → 27/2) | gain:0.25 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 77/6 ⇜ (13/1 → 27/2) | gain:0.25 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 13/1 → 41/3 | gain:0.3333333333333333 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 12/1 ⇜ (13/1 → 14/1) | gain:1 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ 12/1 ⇜ (13/1 → 14/1) | gain:1 clip:1 note:Eb3 s:piano release:0.1 pan:0.4861111111111111 ]", + "[ 12/1 ⇜ (13/1 → 14/1) | gain:1 clip:1 note:Bb3 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 25/2 ⇜ (13/1 → 14/1) ⇝ 29/2 | gain:0.5 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 25/2 ⇜ (13/1 → 14/1) ⇝ 29/2 | gain:0.5 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 25/2 ⇜ (13/1 → 14/1) ⇝ 29/2 | gain:0.5 clip:1 note:Bb4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 13/1 → 14/1 | gain:1 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 13/1 → 14/1 | gain:0.3333333333333333 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ (13/1 → 14/1) ⇝ 15/1 | gain:0.3333333333333333 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (13/1 → 14/1) ⇝ 15/1 | gain:0.3333333333333333 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (13/1 → 14/1) ⇝ 15/1 | gain:0.3333333333333333 clip:1 note:Bb5 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 79/6 → 27/2 | clip:1 gain:0.7827090915285202 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 79/6 → 27/2 | clip:1 gain:0.7956295201467611 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ 79/6 → 83/6 | gain:0.5 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ 40/3 → 41/3 | clip:1 gain:0.7618033988749895 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ 40/3 → 41/3 | clip:1 gain:0.7827090915285202 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 40/3 → 14/1 | gain:1 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 27/2 → 83/6 | clip:1 gain:0.7618033988749895 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ 27/2 → 83/6 | clip:1 gain:0.7827090915285202 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (27/2 → 14/1) ⇝ 85/6 | gain:0.25 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (27/2 → 14/1) ⇝ 29/2 | gain:0.5 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (27/2 → 14/1) ⇝ 29/2 | gain:0.25 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ (27/2 → 14/1) ⇝ 31/2 | gain:0.25 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ (27/2 → 14/1) ⇝ 31/2 | gain:0.25 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", + "[ (27/2 → 14/1) ⇝ 31/2 | gain:0.25 clip:1 note:Bb6 s:piano release:0.1 pan:0.6851851851851851 ]", + "[ 41/3 → 14/1 | clip:1 gain:0.7338261212717718 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 41/3 → 14/1 | clip:1 gain:0.7618033988749895 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ (41/3 → 14/1) ⇝ 43/3 | gain:0.3333333333333333 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (83/6 → 14/1) ⇝ 85/6 | clip:1 gain:0.7338261212717718 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (83/6 → 14/1) ⇝ 85/6 | clip:1 gain:0.7618033988749895 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ (83/6 → 14/1) ⇝ 29/2 | gain:0.5 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ 27/2 ⇜ (14/1 → 85/6) | gain:0.25 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 83/6 ⇜ (14/1 → 85/6) | clip:1 gain:0.7338261212717718 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 83/6 ⇜ (14/1 → 85/6) | clip:1 gain:0.7618033988749895 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 41/3 ⇜ (14/1 → 43/3) | gain:0.3333333333333333 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 14/1 → 43/3 | clip:1 gain:0.7 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 14/1 → 43/3 | clip:1 gain:0.7338261212717718 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 25/2 ⇜ (14/1 → 29/2) | gain:0.5 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 25/2 ⇜ (14/1 → 29/2) | gain:0.5 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 25/2 ⇜ (14/1 → 29/2) | gain:0.5 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 27/2 ⇜ (14/1 → 29/2) | gain:0.5 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 27/2 ⇜ (14/1 → 29/2) | gain:0.25 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", + "[ 83/6 ⇜ (14/1 → 29/2) | gain:0.5 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 14/1 → 44/3 | gain:1 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 13/1 ⇜ (14/1 → 15/1) | gain:0.3333333333333333 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 13/1 ⇜ (14/1 → 15/1) | gain:0.3333333333333333 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", + "[ 13/1 ⇜ (14/1 → 15/1) | gain:0.3333333333333333 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", + "[ 27/2 ⇜ (14/1 → 15/1) ⇝ 31/2 | gain:0.25 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ 27/2 ⇜ (14/1 → 15/1) ⇝ 31/2 | gain:0.25 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 27/2 ⇜ (14/1 → 15/1) ⇝ 31/2 | gain:0.25 clip:1 note:Eb7 s:piano release:0.1 pan:0.7083333333333333 ]", + "[ 14/1 → 15/1 | gain:1 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 14/1 → 15/1 | gain:0.3333333333333333 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ (14/1 → 15/1) ⇝ 16/1 | gain:1 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ (14/1 → 15/1) ⇝ 16/1 | gain:1 clip:1 note:A3 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ (14/1 → 15/1) ⇝ 16/1 | gain:1 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 85/6 → 29/2 | clip:1 gain:0.7 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 85/6 → 29/2 | clip:1 gain:0.7338261212717718 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 85/6 → 89/6 | gain:0.25 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 43/3 → 44/3 | clip:1 gain:0.6618033988749896 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 43/3 → 44/3 | clip:1 gain:0.7 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 43/3 → 15/1 | gain:0.3333333333333333 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 29/2 → 89/6 | clip:1 gain:0.6618033988749896 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 29/2 → 89/6 | clip:1 gain:0.7 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (29/2 → 15/1) ⇝ 91/6 | gain:0.5 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ (29/2 → 15/1) ⇝ 31/2 | gain:0.5 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (29/2 → 15/1) ⇝ 31/2 | gain:0.25 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", + "[ (29/2 → 15/1) ⇝ 33/2 | gain:0.5 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (29/2 → 15/1) ⇝ 33/2 | gain:0.5 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (29/2 → 15/1) ⇝ 33/2 | gain:0.5 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 44/3 → 15/1 | clip:1 gain:0.6209056926535306 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 44/3 → 15/1 | clip:1 gain:0.6618033988749896 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ (44/3 → 15/1) ⇝ 46/3 | gain:1 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ (89/6 → 15/1) ⇝ 91/6 | clip:1 gain:0.6209056926535306 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (89/6 → 15/1) ⇝ 91/6 | clip:1 gain:0.6618033988749896 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ (89/6 → 15/1) ⇝ 31/2 | gain:0.25 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 29/2 ⇜ (15/1 → 91/6) | gain:0.5 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 89/6 ⇜ (15/1 → 91/6) | clip:1 gain:0.6209056926535306 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 89/6 ⇜ (15/1 → 91/6) | clip:1 gain:0.6618033988749896 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 44/3 ⇜ (15/1 → 46/3) | gain:1 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 15/1 → 46/3 | clip:1 gain:0.5790943073464696 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 15/1 → 46/3 | clip:1 gain:0.6209056926535306 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 27/2 ⇜ (15/1 → 31/2) | gain:0.25 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ 27/2 ⇜ (15/1 → 31/2) | gain:0.25 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 27/2 ⇜ (15/1 → 31/2) | gain:0.25 clip:1 note:Eb7 s:piano release:0.1 pan:0.7083333333333333 ]", + "[ 29/2 ⇜ (15/1 → 31/2) | gain:0.5 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 29/2 ⇜ (15/1 → 31/2) | gain:0.25 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", + "[ 89/6 ⇜ (15/1 → 31/2) | gain:0.25 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 15/1 → 47/3 | gain:0.3333333333333333 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 14/1 ⇜ (15/1 → 16/1) | gain:1 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 14/1 ⇜ (15/1 → 16/1) | gain:1 clip:1 note:A3 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 14/1 ⇜ (15/1 → 16/1) | gain:1 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/2 ⇜ (15/1 → 16/1) ⇝ 33/2 | gain:0.5 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 29/2 ⇜ (15/1 → 16/1) ⇝ 33/2 | gain:0.5 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 29/2 ⇜ (15/1 → 16/1) ⇝ 33/2 | gain:0.5 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 15/1 → 16/1 | gain:1 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 15/1 → 16/1 | gain:0.3333333333333333 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (15/1 → 16/1) ⇝ 17/1 | gain:0.3333333333333333 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (15/1 → 16/1) ⇝ 17/1 | gain:0.3333333333333333 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", + "[ (15/1 → 16/1) ⇝ 17/1 | gain:0.3333333333333333 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", + "[ 91/6 → 31/2 | clip:1 gain:0.5790943073464696 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 91/6 → 31/2 | clip:1 gain:0.6209056926535306 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 91/6 → 95/6 | gain:0.5 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 46/3 → 47/3 | clip:1 gain:0.5381966011250107 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 46/3 → 47/3 | clip:1 gain:0.5790943073464696 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 46/3 → 16/1 | gain:1 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 31/2 → 95/6 | clip:1 gain:0.5381966011250107 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 31/2 → 95/6 | clip:1 gain:0.5790943073464696 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ (31/2 → 16/1) ⇝ 97/6 | gain:0.25 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (31/2 → 16/1) ⇝ 33/2 | gain:0.5 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (31/2 → 16/1) ⇝ 33/2 | gain:0.25 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", + "[ (31/2 → 16/1) ⇝ 35/2 | gain:0.25 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ (31/2 → 16/1) ⇝ 35/2 | gain:0.25 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ (31/2 → 16/1) ⇝ 35/2 | gain:0.25 clip:1 note:Eb7 s:piano release:0.1 pan:0.7083333333333333 ]", + "[ 47/3 → 16/1 | clip:1 gain:0.5000000000000002 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 47/3 → 16/1 | clip:1 gain:0.5381966011250107 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (47/3 → 16/1) ⇝ 49/3 | gain:0.3333333333333333 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (95/6 → 16/1) ⇝ 97/6 | clip:1 gain:0.5000000000000002 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ (95/6 → 16/1) ⇝ 97/6 | clip:1 gain:0.5381966011250107 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (95/6 → 16/1) ⇝ 33/2 | gain:0.5 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", ] `; @@ -7315,20 +7315,20 @@ exports[`renders tunes > tune: flatrave 1`] = ` "[ 0/1 ⇜ (1/8 → 1/4) | s:hh n:1 end:0.02000058072071123 bank:RolandTR909 room:0.5 gain:0.4 ]", "[ 1/8 → 1/4 | s:hh n:1 speed:0.5 delay:0.5 end:0.020001936784171157 bank:RolandTR909 room:0.5 gain:0.4 ]", "[ 1/8 → 1/4 | s:hh n:1 speed:0.5 delay:0.5 end:0.020001936784171157 bank:RolandTR909 room:0.5 gain:0.4 ]", - "[ 1/8 → 1/4 | note:G1 s:sawtooth decay:0.1 sustain:0 ]", + "[ 1/8 → 1/4 | note:G1 s:sawtooth decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 cutoff:800 resonance:8 ]", "[ 1/4 → 3/8 | s:hh n:1 end:0.02000875429921906 bank:RolandTR909 room:0.5 gain:0.4 ]", "[ 1/4 → 3/8 | s:hh n:1 end:0.02000875429921906 bank:RolandTR909 room:0.5 gain:0.4 ]", - "[ 1/4 → 3/8 | note:G1 s:sawtooth decay:0.1 sustain:0 ]", + "[ 1/4 → 3/8 | note:G1 s:sawtooth decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 cutoff:800 resonance:8 ]", "[ 3/8 → 1/2 | s:hh n:1 end:0.020023446730265706 bank:RolandTR909 room:0.5 gain:0.4 ]", - "[ 1/2 → 5/8 | note:G1 s:sawtooth decay:0.1 sustain:0 ]", + "[ 1/2 → 5/8 | note:G1 s:sawtooth decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 cutoff:800 resonance:8 ]", "[ 1/2 → 1/1 | s:bd bank:RolandTR909 ]", "[ 1/2 → 1/1 | s:cp bank:RolandTR909 ]", "[ 1/2 → 1/1 | s:sd bank:RolandTR909 ]", "[ 5/8 → 3/4 | s:hh n:1 end:0.020086608138500644 bank:RolandTR909 room:0.5 gain:0.4 ]", "[ 5/8 → 3/4 | s:hh n:1 end:0.020086608138500644 bank:RolandTR909 room:0.5 gain:0.4 ]", - "[ 5/8 → 3/4 | note:G1 s:sawtooth decay:0.1 sustain:0 ]", + "[ 5/8 → 3/4 | note:G1 s:sawtooth decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 cutoff:800 resonance:8 ]", "[ 3/4 → 7/8 | s:hh n:1 end:0.02013941880355398 bank:RolandTR909 room:0.5 gain:0.4 ]", - "[ 7/8 → 1/1 | note:G1 s:sawtooth decay:0.1 sustain:0 ]", + "[ 7/8 → 1/1 | note:G1 s:sawtooth decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 cutoff:800 resonance:8 ]", ] `; @@ -7571,118 +7571,118 @@ exports[`renders tunes > tune: giantSteps 1`] = ` exports[`renders tunes > tune: goodTimes 1`] = ` [ - "[ 0/1 → 1/4 | n:0 note:52 clip:2 s:piano release:0.1 pan:0.4907407407407407 ]", - "[ 1/4 → 1/2 | n:0 note:40 clip:2 s:piano release:0.1 pan:0.4351851851851852 ]", - "[ 1/2 → 3/4 | n:0 note:52 clip:2 s:piano release:0.1 pan:0.4907407407407407 ]", - "[ 1/2 → 3/4 | n:2 note:55 clip:2 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 1/2 → 3/4 | n:4 note:59 clip:2 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 1/2 → 3/4 | n:0 note:40 clip:2 s:piano release:0.1 pan:0.4351851851851852 ]", - "[ 1/1 → 5/4 | n:2 note:55 clip:2 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 1/1 → 5/4 | n:4 note:59 clip:2 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 1/1 → 5/4 | n:0 note:40 clip:2 s:piano release:0.1 pan:0.4351851851851852 ]", - "[ 5/4 → 3/2 | n:0 note:52 clip:2 s:piano release:0.1 pan:0.4907407407407407 ]", - "[ 5/4 → 3/2 | n:0 note:40 clip:2 s:piano release:0.1 pan:0.4351851851851852 ]", - "[ 7/4 → 2/1 | n:2 note:55 clip:2 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 7/4 → 2/1 | n:4 note:59 clip:2 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 7/4 → 2/1 | n:0 note:40 clip:2 s:piano release:0.1 pan:0.4351851851851852 ]", - "[ 2/1 → 9/4 | n:1 note:54 clip:2 s:piano release:0.1 pan:0.5 ]", - "[ 9/4 → 5/2 | n:4 note:47 clip:2 s:piano release:0.1 pan:0.46759259259259256 ]", - "[ 5/2 → 11/4 | n:1 note:54 clip:2 s:piano release:0.1 pan:0.5 ]", - "[ 5/2 → 11/4 | n:3 note:57 clip:2 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 5/2 → 11/4 | n:5 note:61 clip:2 s:piano release:0.1 pan:0.5324074074074074 ]", - "[ 5/2 → 11/4 | n:4 note:47 clip:2 s:piano release:0.1 pan:0.46759259259259256 ]", - "[ 3/1 → 13/4 | n:3 note:57 clip:2 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 3/1 → 13/4 | n:5 note:61 clip:2 s:piano release:0.1 pan:0.5324074074074074 ]", - "[ 3/1 → 13/4 | n:4 note:47 clip:2 s:piano release:0.1 pan:0.46759259259259256 ]", - "[ 13/4 → 7/2 | n:1 note:54 clip:2 s:piano release:0.1 pan:0.5 ]", - "[ 13/4 → 7/2 | n:4 note:47 clip:2 s:piano release:0.1 pan:0.46759259259259256 ]", - "[ 15/4 → 4/1 | n:3 note:57 clip:2 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 15/4 → 4/1 | n:5 note:61 clip:2 s:piano release:0.1 pan:0.5324074074074074 ]", - "[ 15/4 → 4/1 | n:4 note:47 clip:2 s:piano release:0.1 pan:0.46759259259259256 ]", - "[ 4/1 → 17/4 | n:2 note:55 clip:2 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 17/4 → 9/2 | n:0 note:40 clip:2 s:piano release:0.1 pan:0.4351851851851852 ]", - "[ 9/2 → 19/4 | n:2 note:55 clip:2 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 9/2 → 19/4 | n:4 note:59 clip:2 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 9/2 → 19/4 | n:6 note:62 clip:2 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 9/2 → 19/4 | n:0 note:40 clip:2 s:piano release:0.1 pan:0.4351851851851852 ]", - "[ 5/1 → 21/4 | n:4 note:59 clip:2 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 5/1 → 21/4 | n:6 note:62 clip:2 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 5/1 → 21/4 | n:0 note:40 clip:2 s:piano release:0.1 pan:0.4351851851851852 ]", - "[ 21/4 → 11/2 | n:2 note:55 clip:2 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 21/4 → 11/2 | n:0 note:40 clip:2 s:piano release:0.1 pan:0.4351851851851852 ]", - "[ 23/4 → 6/1 | n:4 note:59 clip:2 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 23/4 → 6/1 | n:6 note:62 clip:2 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 23/4 → 6/1 | n:0 note:40 clip:2 s:piano release:0.1 pan:0.4351851851851852 ]", - "[ 6/1 → 25/4 | n:3 note:57 clip:2 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 25/4 → 13/2 | n:4 note:47 clip:2 s:piano release:0.1 pan:0.46759259259259256 ]", - "[ 13/2 → 27/4 | n:3 note:57 clip:2 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 13/2 → 27/4 | n:5 note:61 clip:2 s:piano release:0.1 pan:0.5324074074074074 ]", - "[ 13/2 → 27/4 | n:7 note:64 clip:2 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 13/2 → 27/4 | n:4 note:47 clip:2 s:piano release:0.1 pan:0.46759259259259256 ]", - "[ 7/1 → 29/4 | n:5 note:61 clip:2 s:piano release:0.1 pan:0.5324074074074074 ]", - "[ 7/1 → 29/4 | n:7 note:64 clip:2 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 7/1 → 29/4 | n:4 note:47 clip:2 s:piano release:0.1 pan:0.46759259259259256 ]", - "[ 29/4 → 15/2 | n:3 note:57 clip:2 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 29/4 → 15/2 | n:4 note:47 clip:2 s:piano release:0.1 pan:0.46759259259259256 ]", - "[ 31/4 → 8/1 | n:5 note:61 clip:2 s:piano release:0.1 pan:0.5324074074074074 ]", - "[ 31/4 → 8/1 | n:7 note:64 clip:2 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 31/4 → 8/1 | n:4 note:47 clip:2 s:piano release:0.1 pan:0.46759259259259256 ]", - "[ 8/1 → 33/4 | n:0 note:50 clip:2 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 33/4 → 17/2 | n:0 note:38 clip:2 s:piano release:0.1 pan:0.42592592592592593 ]", - "[ 17/2 → 35/4 | n:0 note:50 clip:2 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 17/2 → 35/4 | n:2 note:54 clip:2 s:piano release:0.1 pan:0.5 ]", - "[ 17/2 → 35/4 | n:4 note:57 clip:2 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 17/2 → 35/4 | n:0 note:38 clip:2 s:piano release:0.1 pan:0.42592592592592593 ]", - "[ 9/1 → 37/4 | n:2 note:54 clip:2 s:piano release:0.1 pan:0.5 ]", - "[ 9/1 → 37/4 | n:4 note:57 clip:2 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 9/1 → 37/4 | n:0 note:38 clip:2 s:piano release:0.1 pan:0.42592592592592593 ]", - "[ 37/4 → 19/2 | n:0 note:50 clip:2 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 37/4 → 19/2 | n:0 note:38 clip:2 s:piano release:0.1 pan:0.42592592592592593 ]", - "[ 39/4 → 10/1 | n:2 note:54 clip:2 s:piano release:0.1 pan:0.5 ]", - "[ 39/4 → 10/1 | n:4 note:57 clip:2 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 39/4 → 10/1 | n:0 note:38 clip:2 s:piano release:0.1 pan:0.42592592592592593 ]", - "[ 10/1 → 41/4 | n:1 note:52 clip:2 s:piano release:0.1 pan:0.4907407407407407 ]", - "[ 41/4 → 21/2 | n:4 note:45 clip:2 s:piano release:0.1 pan:0.45833333333333337 ]", - "[ 21/2 → 43/4 | n:1 note:52 clip:2 s:piano release:0.1 pan:0.4907407407407407 ]", - "[ 21/2 → 43/4 | n:3 note:55 clip:2 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 21/2 → 43/4 | n:5 note:59 clip:2 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 21/2 → 43/4 | n:4 note:45 clip:2 s:piano release:0.1 pan:0.45833333333333337 ]", - "[ 11/1 → 45/4 | n:3 note:55 clip:2 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 11/1 → 45/4 | n:5 note:59 clip:2 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 11/1 → 45/4 | n:4 note:45 clip:2 s:piano release:0.1 pan:0.45833333333333337 ]", - "[ 45/4 → 23/2 | n:1 note:52 clip:2 s:piano release:0.1 pan:0.4907407407407407 ]", - "[ 45/4 → 23/2 | n:4 note:45 clip:2 s:piano release:0.1 pan:0.45833333333333337 ]", - "[ 47/4 → 12/1 | n:3 note:55 clip:2 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 47/4 → 12/1 | n:5 note:59 clip:2 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 47/4 → 12/1 | n:4 note:45 clip:2 s:piano release:0.1 pan:0.45833333333333337 ]", - "[ 12/1 → 49/4 | n:2 note:54 clip:2 s:piano release:0.1 pan:0.5 ]", - "[ 49/4 → 25/2 | n:0 note:38 clip:2 s:piano release:0.1 pan:0.42592592592592593 ]", - "[ 25/2 → 51/4 | n:2 note:54 clip:2 s:piano release:0.1 pan:0.5 ]", - "[ 25/2 → 51/4 | n:4 note:57 clip:2 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 25/2 → 51/4 | n:6 note:61 clip:2 s:piano release:0.1 pan:0.5324074074074074 ]", - "[ 25/2 → 51/4 | n:0 note:38 clip:2 s:piano release:0.1 pan:0.42592592592592593 ]", - "[ 13/1 → 53/4 | n:4 note:57 clip:2 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 13/1 → 53/4 | n:6 note:61 clip:2 s:piano release:0.1 pan:0.5324074074074074 ]", - "[ 13/1 → 53/4 | n:0 note:38 clip:2 s:piano release:0.1 pan:0.42592592592592593 ]", - "[ 53/4 → 27/2 | n:2 note:54 clip:2 s:piano release:0.1 pan:0.5 ]", - "[ 53/4 → 27/2 | n:0 note:38 clip:2 s:piano release:0.1 pan:0.42592592592592593 ]", - "[ 55/4 → 14/1 | n:4 note:57 clip:2 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 55/4 → 14/1 | n:6 note:61 clip:2 s:piano release:0.1 pan:0.5324074074074074 ]", - "[ 55/4 → 14/1 | n:0 note:38 clip:2 s:piano release:0.1 pan:0.42592592592592593 ]", - "[ 14/1 → 57/4 | n:3 note:55 clip:2 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 57/4 → 29/2 | n:4 note:45 clip:2 s:piano release:0.1 pan:0.45833333333333337 ]", - "[ 29/2 → 59/4 | n:3 note:55 clip:2 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 29/2 → 59/4 | n:5 note:59 clip:2 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 29/2 → 59/4 | n:7 note:62 clip:2 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 29/2 → 59/4 | n:4 note:45 clip:2 s:piano release:0.1 pan:0.45833333333333337 ]", - "[ 15/1 → 61/4 | n:5 note:59 clip:2 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 15/1 → 61/4 | n:7 note:62 clip:2 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 15/1 → 61/4 | n:4 note:45 clip:2 s:piano release:0.1 pan:0.45833333333333337 ]", - "[ 61/4 → 31/2 | n:3 note:55 clip:2 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 61/4 → 31/2 | n:4 note:45 clip:2 s:piano release:0.1 pan:0.45833333333333337 ]", - "[ 63/4 → 16/1 | n:5 note:59 clip:2 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 63/4 → 16/1 | n:7 note:62 clip:2 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 63/4 → 16/1 | n:4 note:45 clip:2 s:piano release:0.1 pan:0.45833333333333337 ]", + "[ 0/1 → 1/4 | note:52 clip:2 s:piano release:0.1 pan:0.4907407407407407 ]", + "[ 1/4 → 1/2 | note:40 clip:2 s:piano release:0.1 pan:0.4351851851851852 ]", + "[ 1/2 → 3/4 | note:52 clip:2 s:piano release:0.1 pan:0.4907407407407407 ]", + "[ 1/2 → 3/4 | note:55 clip:2 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 1/2 → 3/4 | note:59 clip:2 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 1/2 → 3/4 | note:40 clip:2 s:piano release:0.1 pan:0.4351851851851852 ]", + "[ 1/1 → 5/4 | note:55 clip:2 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 1/1 → 5/4 | note:59 clip:2 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 1/1 → 5/4 | note:40 clip:2 s:piano release:0.1 pan:0.4351851851851852 ]", + "[ 5/4 → 3/2 | note:52 clip:2 s:piano release:0.1 pan:0.4907407407407407 ]", + "[ 5/4 → 3/2 | note:40 clip:2 s:piano release:0.1 pan:0.4351851851851852 ]", + "[ 7/4 → 2/1 | note:55 clip:2 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 7/4 → 2/1 | note:59 clip:2 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 7/4 → 2/1 | note:40 clip:2 s:piano release:0.1 pan:0.4351851851851852 ]", + "[ 2/1 → 9/4 | note:54 clip:2 s:piano release:0.1 pan:0.5 ]", + "[ 9/4 → 5/2 | note:47 clip:2 s:piano release:0.1 pan:0.46759259259259256 ]", + "[ 5/2 → 11/4 | note:54 clip:2 s:piano release:0.1 pan:0.5 ]", + "[ 5/2 → 11/4 | note:57 clip:2 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 5/2 → 11/4 | note:61 clip:2 s:piano release:0.1 pan:0.5324074074074074 ]", + "[ 5/2 → 11/4 | note:47 clip:2 s:piano release:0.1 pan:0.46759259259259256 ]", + "[ 3/1 → 13/4 | note:57 clip:2 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 3/1 → 13/4 | note:61 clip:2 s:piano release:0.1 pan:0.5324074074074074 ]", + "[ 3/1 → 13/4 | note:47 clip:2 s:piano release:0.1 pan:0.46759259259259256 ]", + "[ 13/4 → 7/2 | note:54 clip:2 s:piano release:0.1 pan:0.5 ]", + "[ 13/4 → 7/2 | note:47 clip:2 s:piano release:0.1 pan:0.46759259259259256 ]", + "[ 15/4 → 4/1 | note:57 clip:2 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 15/4 → 4/1 | note:61 clip:2 s:piano release:0.1 pan:0.5324074074074074 ]", + "[ 15/4 → 4/1 | note:47 clip:2 s:piano release:0.1 pan:0.46759259259259256 ]", + "[ 4/1 → 17/4 | note:55 clip:2 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 17/4 → 9/2 | note:40 clip:2 s:piano release:0.1 pan:0.4351851851851852 ]", + "[ 9/2 → 19/4 | note:55 clip:2 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 9/2 → 19/4 | note:59 clip:2 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 9/2 → 19/4 | note:62 clip:2 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 9/2 → 19/4 | note:40 clip:2 s:piano release:0.1 pan:0.4351851851851852 ]", + "[ 5/1 → 21/4 | note:59 clip:2 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 5/1 → 21/4 | note:62 clip:2 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 5/1 → 21/4 | note:40 clip:2 s:piano release:0.1 pan:0.4351851851851852 ]", + "[ 21/4 → 11/2 | note:55 clip:2 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 21/4 → 11/2 | note:40 clip:2 s:piano release:0.1 pan:0.4351851851851852 ]", + "[ 23/4 → 6/1 | note:59 clip:2 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 23/4 → 6/1 | note:62 clip:2 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 23/4 → 6/1 | note:40 clip:2 s:piano release:0.1 pan:0.4351851851851852 ]", + "[ 6/1 → 25/4 | note:57 clip:2 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 25/4 → 13/2 | note:47 clip:2 s:piano release:0.1 pan:0.46759259259259256 ]", + "[ 13/2 → 27/4 | note:57 clip:2 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 13/2 → 27/4 | note:61 clip:2 s:piano release:0.1 pan:0.5324074074074074 ]", + "[ 13/2 → 27/4 | note:64 clip:2 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 13/2 → 27/4 | note:47 clip:2 s:piano release:0.1 pan:0.46759259259259256 ]", + "[ 7/1 → 29/4 | note:61 clip:2 s:piano release:0.1 pan:0.5324074074074074 ]", + "[ 7/1 → 29/4 | note:64 clip:2 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 7/1 → 29/4 | note:47 clip:2 s:piano release:0.1 pan:0.46759259259259256 ]", + "[ 29/4 → 15/2 | note:57 clip:2 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 29/4 → 15/2 | note:47 clip:2 s:piano release:0.1 pan:0.46759259259259256 ]", + "[ 31/4 → 8/1 | note:61 clip:2 s:piano release:0.1 pan:0.5324074074074074 ]", + "[ 31/4 → 8/1 | note:64 clip:2 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 31/4 → 8/1 | note:47 clip:2 s:piano release:0.1 pan:0.46759259259259256 ]", + "[ 8/1 → 33/4 | note:50 clip:2 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 33/4 → 17/2 | note:38 clip:2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ 17/2 → 35/4 | note:50 clip:2 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 17/2 → 35/4 | note:54 clip:2 s:piano release:0.1 pan:0.5 ]", + "[ 17/2 → 35/4 | note:57 clip:2 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 17/2 → 35/4 | note:38 clip:2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ 9/1 → 37/4 | note:54 clip:2 s:piano release:0.1 pan:0.5 ]", + "[ 9/1 → 37/4 | note:57 clip:2 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 9/1 → 37/4 | note:38 clip:2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ 37/4 → 19/2 | note:50 clip:2 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 37/4 → 19/2 | note:38 clip:2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ 39/4 → 10/1 | note:54 clip:2 s:piano release:0.1 pan:0.5 ]", + "[ 39/4 → 10/1 | note:57 clip:2 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 39/4 → 10/1 | note:38 clip:2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ 10/1 → 41/4 | note:52 clip:2 s:piano release:0.1 pan:0.4907407407407407 ]", + "[ 41/4 → 21/2 | note:45 clip:2 s:piano release:0.1 pan:0.45833333333333337 ]", + "[ 21/2 → 43/4 | note:52 clip:2 s:piano release:0.1 pan:0.4907407407407407 ]", + "[ 21/2 → 43/4 | note:55 clip:2 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 21/2 → 43/4 | note:59 clip:2 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 21/2 → 43/4 | note:45 clip:2 s:piano release:0.1 pan:0.45833333333333337 ]", + "[ 11/1 → 45/4 | note:55 clip:2 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 11/1 → 45/4 | note:59 clip:2 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 11/1 → 45/4 | note:45 clip:2 s:piano release:0.1 pan:0.45833333333333337 ]", + "[ 45/4 → 23/2 | note:52 clip:2 s:piano release:0.1 pan:0.4907407407407407 ]", + "[ 45/4 → 23/2 | note:45 clip:2 s:piano release:0.1 pan:0.45833333333333337 ]", + "[ 47/4 → 12/1 | note:55 clip:2 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 47/4 → 12/1 | note:59 clip:2 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 47/4 → 12/1 | note:45 clip:2 s:piano release:0.1 pan:0.45833333333333337 ]", + "[ 12/1 → 49/4 | note:54 clip:2 s:piano release:0.1 pan:0.5 ]", + "[ 49/4 → 25/2 | note:38 clip:2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ 25/2 → 51/4 | note:54 clip:2 s:piano release:0.1 pan:0.5 ]", + "[ 25/2 → 51/4 | note:57 clip:2 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 25/2 → 51/4 | note:61 clip:2 s:piano release:0.1 pan:0.5324074074074074 ]", + "[ 25/2 → 51/4 | note:38 clip:2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ 13/1 → 53/4 | note:57 clip:2 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 13/1 → 53/4 | note:61 clip:2 s:piano release:0.1 pan:0.5324074074074074 ]", + "[ 13/1 → 53/4 | note:38 clip:2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ 53/4 → 27/2 | note:54 clip:2 s:piano release:0.1 pan:0.5 ]", + "[ 53/4 → 27/2 | note:38 clip:2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ 55/4 → 14/1 | note:57 clip:2 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 55/4 → 14/1 | note:61 clip:2 s:piano release:0.1 pan:0.5324074074074074 ]", + "[ 55/4 → 14/1 | note:38 clip:2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ 14/1 → 57/4 | note:55 clip:2 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 57/4 → 29/2 | note:45 clip:2 s:piano release:0.1 pan:0.45833333333333337 ]", + "[ 29/2 → 59/4 | note:55 clip:2 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 29/2 → 59/4 | note:59 clip:2 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 29/2 → 59/4 | note:62 clip:2 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 29/2 → 59/4 | note:45 clip:2 s:piano release:0.1 pan:0.45833333333333337 ]", + "[ 15/1 → 61/4 | note:59 clip:2 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 15/1 → 61/4 | note:62 clip:2 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 15/1 → 61/4 | note:45 clip:2 s:piano release:0.1 pan:0.45833333333333337 ]", + "[ 61/4 → 31/2 | note:55 clip:2 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 61/4 → 31/2 | note:45 clip:2 s:piano release:0.1 pan:0.45833333333333337 ]", + "[ 63/4 → 16/1 | note:59 clip:2 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 63/4 → 16/1 | note:62 clip:2 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 63/4 → 16/1 | note:45 clip:2 s:piano release:0.1 pan:0.45833333333333337 ]", ] `; @@ -7722,8 +7722,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ -1/8 ⇜ (0/1 → 3/8) | note:B3 s:square gain:0.7 attack:0.01 decay:0.1 sustain:0 cutoff:1699.6897509708342 ]", "[ -1/4 ⇜ (1/12 → 1/8) | note:A5 s:sawtooth gain:0.2536811842784369 attack:0.001 decay:0.2 sustain:0 hcutoff:5999.785818935017 cutoff:4000 ]", "[ -1/4 ⇜ (1/12 → 1/8) | note:C#5 s:sawtooth gain:0.2536811842784369 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 ]", - "[ 1/8 → 1/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1699.6897509708342 ]", + "[ 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 | note:A5 s:sawtooth gain:0.26836160127988246 attack:0.001 decay:0.2 sustain:0 hcutoff:5994.647308096509 cutoff:4000 ]", "[ (1/8 → 5/12) ⇝ 1/2 | note:C#5 s:sawtooth gain:0.26836160127988246 attack:0.001 decay:0.2 sustain:0 hcutoff:5994.647308096509 cutoff:4000 ]", "[ -1/8 ⇜ (1/6 → 1/4) | note:F#5 s:sawtooth gain:0.2573601511491127 attack:0.001 decay:0.2 sustain:0 hcutoff:5999.143312438893 cutoff:4000 ]", @@ -7735,14 +7735,14 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (1/4 → 7/12) ⇝ 5/8 | note:E5 s:sawtooth gain:0.2756442833140452 attack:0.001 decay:0.2 sustain:0 hcutoff:5989.512318936654 cutoff:4000 ]", "[ 0/1 ⇜ (1/3 → 3/8) | note:A5 s:sawtooth gain:0.26103468453995016 attack:0.001 decay:0.2 sustain:0 hcutoff:5998.072590601808 cutoff:4000 ]", "[ 0/1 ⇜ (1/3 → 3/8) | note:C#5 s:sawtooth gain:0.26103468453995016 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 ]", - "[ 3/8 → 1/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1765.826371664994 ]", + "[ 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 | note:A5 s:sawtooth gain:0.2828651860235305 attack:0.001 decay:0.2 sustain:0 hcutoff:5982.671142387316 cutoff:4000 ]", "[ (3/8 → 2/3) ⇝ 3/4 | note:C#5 s:sawtooth gain:0.2828651860235305 attack:0.001 decay:0.2 sustain:0 hcutoff:5982.671142387316 cutoff:4000 ]", "[ 1/8 ⇜ (5/12 → 1/2) | note:F#5 s:sawtooth gain:0.26836160127988246 attack:0.001 decay:0.2 sustain:0 hcutoff:5994.647308096509 cutoff:4000 ]", "[ 1/8 ⇜ (5/12 → 1/2) | note:A4 s:sawtooth gain:0.26836160127988246 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 ]", - "[ 1/2 → 5/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1798.799979846742 ]", + "[ 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 | note:F#5 s:sawtooth gain:0.28644702698548963 attack:0.001 decay:0.2 sustain:0 hcutoff:5978.612153434527 cutoff:4000 ]", "[ 1/2 → 3/4 | note:A4 s:sawtooth gain:0.28644702698548963 attack:0.001 decay:0.2 sustain:0 hcutoff:5978.612153434527 cutoff:4000 ]", "[ 1/2 → 3/4 | s:bd gain:0.7 ]", @@ -7755,8 +7755,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (5/8 → 11/12) ⇝ 1/1 | note:C#5 s:sawtooth gain:0.29705226105983373 attack:0.001 decay:0.2 sustain:0 hcutoff:5963.890147645195 cutoff:4000 ]", "[ 3/8 ⇜ (2/3 → 3/4) | note:F#5 s:sawtooth gain:0.2828651860235305 attack:0.001 decay:0.2 sustain:0 hcutoff:5982.671142387316 cutoff:4000 ]", "[ 3/8 ⇜ (2/3 → 3/4) | note:A4 s:sawtooth gain:0.2828651860235305 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 ]", - "[ 3/4 → 7/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1864.4584935007128 ]", + "[ 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 | note:F#5 s:sawtooth gain:0.300533478008833 attack:0.001 decay:0.2 sustain:0 hcutoff:5958.137268909887 cutoff:4000 ]", "[ 3/4 → 1/1 | note:A4 s:sawtooth gain:0.300533478008833 attack:0.001 decay:0.2 sustain:0 hcutoff:5958.137268909887 cutoff:4000 ]", "[ 3/4 → 1/1 | s:hh3 gain:0.7 ]", @@ -7764,8 +7764,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (3/4 → 1/1) ⇝ 9/8 | note:E5 s:sawtooth gain:0.30398425548024827 attack:0.001 decay:0.2 sustain:0 hcutoff:5951.963201008076 cutoff:4000 ]", "[ 1/2 ⇜ (5/6 → 7/8) | note:A5 s:sawtooth gain:0.29000691362123476 attack:0.001 decay:0.2 sustain:0 hcutoff:5974.128467049176 cutoff:4000 ]", "[ 1/2 ⇜ (5/6 → 7/8) | note:C#5 s:sawtooth gain:0.29000691362123476 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 ]", - "[ 7/8 → 1/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1897.1038487394403 ]", + "[ 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 → 1/1) ⇝ 5/4 | note:A5 s:sawtooth gain:0.3107861971007485 attack:0.001 decay:0.2 sustain:0 hcutoff:5938.355801271282 cutoff:4000 ]", "[ (7/8 → 1/1) ⇝ 5/4 | note:C#5 s:sawtooth gain:0.3107861971007485 attack:0.001 decay:0.2 sustain:0 hcutoff:5938.355801271282 cutoff:4000 ]", "[ 5/8 ⇜ (11/12 → 1/1) | note:F#5 s:sawtooth gain:0.29705226105983373 attack:0.001 decay:0.2 sustain:0 hcutoff:5963.890147645195 cutoff:4000 ]", @@ -7781,8 +7781,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (1/1 → 4/3) ⇝ 11/8 | note:E5 s:sawtooth gain:0.317441699448191 attack:0.001 decay:0.2 sustain:0 hcutoff:5923.077274266886 cutoff:4000 ]", "[ 3/4 ⇜ (13/12 → 9/8) | note:A5 s:sawtooth gain:0.30398425548024827 attack:0.001 decay:0.2 sustain:0 hcutoff:5951.963201008076 cutoff:4000 ]", "[ 3/4 ⇜ (13/12 → 9/8) | note:C#5 s:sawtooth gain:0.30398425548024827 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 ]", - "[ 9/8 → 5/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1961.928446178906 ]", + "[ 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 | note:A5 s:sawtooth gain:0.3239347288344676 attack:0.001 decay:0.2 sustain:0 hcutoff:5906.1380911341175 cutoff:4000 ]", "[ (9/8 → 17/12) ⇝ 3/2 | note:C#5 s:sawtooth gain:0.3239347288344676 attack:0.001 decay:0.2 sustain:0 hcutoff:5906.1380911341175 cutoff:4000 ]", "[ 7/8 ⇜ (7/6 → 5/4) | note:F#5 s:sawtooth gain:0.3107861971007485 attack:0.001 decay:0.2 sustain:0 hcutoff:5938.355801271282 cutoff:4000 ]", @@ -7794,14 +7794,14 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (5/4 → 19/12) ⇝ 13/8 | note:E5 s:sawtooth gain:0.3302496429830646 attack:0.001 decay:0.2 sustain:0 hcutoff:5887.549861142967 cutoff:4000 ]", "[ 1/1 ⇜ (4/3 → 11/8) | note:A5 s:sawtooth gain:0.317441699448191 attack:0.001 decay:0.2 sustain:0 hcutoff:5923.077274266886 cutoff:4000 ]", "[ 1/1 ⇜ (4/3 → 11/8) | note:C#5 s:sawtooth gain:0.317441699448191 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 ]", - "[ 11/8 → 3/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2026.0015806698216 ]", + "[ 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 | note:A5 s:sawtooth gain:0.3363712287126769 attack:0.001 decay:0.2 sustain:0 hcutoff:5867.325323737765 cutoff:4000 ]", "[ (11/8 → 5/3) ⇝ 7/4 | note:C#5 s:sawtooth gain:0.3363712287126769 attack:0.001 decay:0.2 sustain:0 hcutoff:5867.325323737765 cutoff:4000 ]", "[ 9/8 ⇜ (17/12 → 3/2) | note:F#5 s:sawtooth gain:0.3239347288344676 attack:0.001 decay:0.2 sustain:0 hcutoff:5906.1380911341175 cutoff:4000 ]", "[ 9/8 ⇜ (17/12 → 3/2) | note:A4 s:sawtooth gain:0.3239347288344676 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 ]", - "[ 3/2 → 13/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2057.708031580958 ]", + "[ 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 | note:F#5 s:sawtooth gain:0.339354895673865 attack:0.001 decay:0.2 sustain:0 hcutoff:5856.603727730447 cutoff:4000 ]", "[ 3/2 → 7/4 | note:A4 s:sawtooth gain:0.339354895673865 attack:0.001 decay:0.2 sustain:0 hcutoff:5856.603727730447 cutoff:4000 ]", "[ 3/2 → 7/4 | s:bd gain:0.7 ]", @@ -7818,8 +7818,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (13/8 → 2/1) ⇝ 17/8 | note:A3 s:square gain:0.7 attack:0.01 decay:0.1 sustain:0 cutoff:2120.3652183367367 ]", "[ 11/8 ⇜ (5/3 → 7/4) | note:F#5 s:sawtooth gain:0.3363712287126769 attack:0.001 decay:0.2 sustain:0 hcutoff:5867.325323737765 cutoff:4000 ]", "[ 11/8 ⇜ (5/3 → 7/4) | note:A4 s:sawtooth gain:0.3363712287126769 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 ]", - "[ 7/4 → 15/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2120.3652183367367 ]", + "[ 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 | note:F#5 s:sawtooth gain:0.3507338432270528 attack:0.001 decay:0.2 sustain:0 hcutoff:5809.698831278217 cutoff:4000 ]", "[ 7/4 → 2/1 | note:A4 s:sawtooth gain:0.3507338432270528 attack:0.001 decay:0.2 sustain:0 hcutoff:5809.698831278217 cutoff:4000 ]", "[ 7/4 → 2/1 | s:hh3 gain:0.7 ]", @@ -7829,8 +7829,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (7/4 → 2/1) ⇝ 9/4 | note:A3 s:square gain:0.7 attack:0.01 decay:0.1 sustain:0 cutoff:2135.8582993222344 ]", "[ 3/2 ⇜ (11/6 → 15/8) | note:A5 s:sawtooth gain:0.3422847385870941 attack:0.001 decay:0.2 sustain:0 hcutoff:5845.47833980621 cutoff:4000 ]", "[ 3/2 ⇜ (11/6 → 15/8) | note:C#5 s:sawtooth gain:0.3422847385870941 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 ]", - "[ 15/8 → 2/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2151.2782118349805 ]", + "[ 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 | note:A5 s:sawtooth gain:0.35343108171056004 attack:0.001 decay:0.2 sustain:0 hcutoff:5796.978025372246 cutoff:4000 ]", "[ (15/8 → 2/1) ⇝ 9/4 | note:C#5 s:sawtooth gain:0.35343108171056004 attack:0.001 decay:0.2 sustain:0 hcutoff:5796.978025372246 cutoff:4000 ]", "[ (15/8 → 2/1) ⇝ 19/8 | note:F#3 s:square gain:0.7 attack:0.01 decay:0.1 sustain:0 cutoff:2151.2782118349805 ]", @@ -7854,8 +7854,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ 15/8 ⇜ (2/1 → 19/8) | note:A3 s:square gain:0.7 attack:0.01 decay:0.1 sustain:0 cutoff:2212.17990613181 ]", "[ 7/4 ⇜ (25/12 → 17/8) | note:A5 s:sawtooth gain:0.3586370624427201 attack:0.001 decay:0.2 sustain:0 hcutoff:5770.357934562703 cutoff:4000 ]", "[ 7/4 ⇜ (25/12 → 17/8) | note:C#5 s:sawtooth gain:0.3586370624427201 attack:0.001 decay:0.2 sustain:0 hcutoff:5770.357934562703 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 ]", - "[ 17/8 → 9/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2212.17990613181 ]", + "[ 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 | note:A5 s:sawtooth gain:0.368251964143991 attack:0.001 decay:0.2 sustain:0 hcutoff:5712.469093657604 cutoff:4000 ]", "[ (17/8 → 29/12) ⇝ 5/2 | note:C#5 s:sawtooth gain:0.368251964143991 attack:0.001 decay:0.2 sustain:0 hcutoff:5712.469093657604 cutoff:4000 ]", "[ 15/8 ⇜ (13/6 → 9/4) | note:F#5 s:sawtooth gain:0.36114266880324397 attack:0.001 decay:0.2 sustain:0 hcutoff:5756.463210874651 cutoff:4000 ]", @@ -7867,14 +7867,14 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (9/4 → 31/12) ⇝ 21/8 | note:E5 s:sawtooth gain:0.3726377219727376 attack:0.001 decay:0.2 sustain:0 hcutoff:5681.240017681994 cutoff:4000 ]", "[ 2/1 ⇜ (7/3 → 19/8) | note:A5 s:sawtooth gain:0.3635813269759728 attack:0.001 decay:0.2 sustain:0 hcutoff:5742.18185383172 cutoff:4000 ]", "[ 2/1 ⇜ (7/3 → 19/8) | note:C#5 s:sawtooth gain:0.3635813269759728 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 ]", - "[ 19/8 → 5/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2271.727259793624 ]", + "[ 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 | note:A5 s:sawtooth gain:0.3767280347874561 attack:0.001 decay:0.2 sustain:0 hcutoff:5648.516028753632 cutoff:4000 ]", "[ (19/8 → 8/3) ⇝ 11/4 | note:C#5 s:sawtooth gain:0.3767280347874561 attack:0.001 decay:0.2 sustain:0 hcutoff:5648.516028753632 cutoff:4000 ]", "[ 17/8 ⇜ (29/12 → 5/2) | note:F#5 s:sawtooth gain:0.368251964143991 attack:0.001 decay:0.2 sustain:0 hcutoff:5712.469093657604 cutoff:4000 ]", "[ 17/8 ⇜ (29/12 → 5/2) | note:A4 s:sawtooth gain:0.368251964143991 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 ]", - "[ 5/2 → 21/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2300.948092306816 ]", + "[ 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 | note:F#5 s:sawtooth gain:0.37865929150004085 attack:0.001 decay:0.2 sustain:0 hcutoff:5631.60041088523 cutoff:4000 ]", "[ 5/2 → 11/4 | note:A4 s:sawtooth gain:0.37865929150004085 attack:0.001 decay:0.2 sustain:0 hcutoff:5631.60041088523 cutoff:4000 ]", "[ 5/2 → 11/4 | s:bd gain:0.7 ]", @@ -7887,8 +7887,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (21/8 → 35/12) ⇝ 3/1 | note:C#5 s:sawtooth gain:0.38398364517932737 attack:0.001 decay:0.2 sustain:0 hcutoff:5578.674030756363 cutoff:4000 ]", "[ 19/8 ⇜ (8/3 → 11/4) | note:F#5 s:sawtooth gain:0.3767280347874561 attack:0.001 decay:0.2 sustain:0 hcutoff:5648.516028753632 cutoff:4000 ]", "[ 19/8 ⇜ (8/3 → 11/4) | note:A4 s:sawtooth gain:0.3767280347874561 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 ]", - "[ 11/4 → 23/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2358.1960716159333 ]", + "[ 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 | note:F#5 s:sawtooth gain:0.3855983939685166 attack:0.001 decay:0.2 sustain:0 hcutoff:5560.31547155504 cutoff:4000 ]", "[ 11/4 → 3/1 | note:A4 s:sawtooth gain:0.3855983939685166 attack:0.001 decay:0.2 sustain:0 hcutoff:5560.31547155504 cutoff:4000 ]", "[ 11/4 → 3/1 | s:hh3 gain:0.7 ]", @@ -7896,8 +7896,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (11/4 → 3/1) ⇝ 25/8 | note:E5 s:sawtooth gain:0.3871314633555296 attack:0.001 decay:0.2 sustain:0 hcutoff:5541.603887904197 cutoff:4000 ]", "[ 5/2 ⇜ (17/6 → 23/8) | note:A5 s:sawtooth gain:0.38051304866630675 attack:0.001 decay:0.2 sustain:0 hcutoff:5614.319554259933 cutoff:4000 ]", "[ 5/2 ⇜ (17/6 → 23/8) | note:C#5 s:sawtooth gain:0.38051304866630675 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 ]", - "[ 23/8 → 3/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2386.1887343697626 ]", + "[ 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 → 3/1) ⇝ 13/4 | note:A5 s:sawtooth gain:0.38994891982521085 attack:0.001 decay:0.2 sustain:0 hcutoff:5503.134531727652 cutoff:4000 ]", "[ (23/8 → 3/1) ⇝ 13/4 | note:C#5 s:sawtooth gain:0.38994891982521085 attack:0.001 decay:0.2 sustain:0 hcutoff:5503.134531727652 cutoff:4000 ]", "[ 21/8 ⇜ (35/12 → 3/1) | note:F#5 s:sawtooth gain:0.38398364517932737 attack:0.001 decay:0.2 sustain:0 hcutoff:5578.674030756363 cutoff:4000 ]", @@ -7913,8 +7913,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (3/1 → 10/3) ⇝ 27/8 | note:E5 s:sawtooth gain:0.39242922708895556 attack:0.001 decay:0.2 sustain:0 hcutoff:5463.2923272018625 cutoff:4000 ]", "[ 11/4 ⇜ (37/12 → 25/8) | note:A5 s:sawtooth gain:0.3871314633555296 attack:0.001 decay:0.2 sustain:0 hcutoff:5541.603887904197 cutoff:4000 ]", "[ 11/4 ⇜ (37/12 → 25/8) | note:C#5 s:sawtooth gain:0.3871314633555296 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 ]", - "[ 25/8 → 13/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2440.8271075661924 ]", + "[ 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 | note:A5 s:sawtooth gain:0.394566409869316 attack:0.001 decay:0.2 sustain:0 hcutoff:5422.104580183649 cutoff:4000 ]", "[ (25/8 → 41/12) ⇝ 7/2 | note:C#5 s:sawtooth gain:0.394566409869316 attack:0.001 decay:0.2 sustain:0 hcutoff:5422.104580183649 cutoff:4000 ]", "[ 23/8 ⇜ (19/6 → 13/4) | note:F#5 s:sawtooth gain:0.38994891982521085 attack:0.001 decay:0.2 sustain:0 hcutoff:5503.134531727652 cutoff:4000 ]", @@ -7926,14 +7926,14 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (13/4 → 43/12) ⇝ 29/8 | note:E5 s:sawtooth gain:0.3963553195057793 attack:0.001 decay:0.2 sustain:0 hcutoff:5379.599518697443 cutoff:4000 ]", "[ 3/1 ⇜ (10/3 → 27/8) | note:A5 s:sawtooth gain:0.39242922708895556 attack:0.001 decay:0.2 sustain:0 hcutoff:5463.2923272018625 cutoff:4000 ]", "[ 3/1 ⇜ (10/3 → 27/8) | note:C#5 s:sawtooth gain:0.39242922708895556 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 ]", - "[ 27/8 → 7/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2493.5603089922215 ]", + "[ 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 | note:A5 s:sawtooth gain:0.3977916463583412 attack:0.001 decay:0.2 sustain:0 hcutoff:5335.806273589214 cutoff:4000 ]", "[ (27/8 → 11/3) ⇝ 15/4 | note:C#5 s:sawtooth gain:0.3977916463583412 attack:0.001 decay:0.2 sustain:0 hcutoff:5335.806273589214 cutoff:4000 ]", "[ 25/8 ⇜ (41/12 → 7/2) | note:F#5 s:sawtooth gain:0.394566409869316 attack:0.001 decay:0.2 sustain:0 hcutoff:5422.104580183649 cutoff:4000 ]", "[ 25/8 ⇜ (41/12 → 7/2) | note:A4 s:sawtooth gain:0.394566409869316 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 ]", - "[ 7/2 → 29/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2519.1725829012184 ]", + "[ 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 | note:F#5 s:sawtooth gain:0.3983764764947172 attack:0.001 decay:0.2 sustain:0 hcutoff:5313.435927530719 cutoff:4000 ]", "[ 7/2 → 15/4 | note:A4 s:sawtooth gain:0.3983764764947172 attack:0.001 decay:0.2 sustain:0 hcutoff:5313.435927530719 cutoff:4000 ]", "[ 7/2 → 15/4 | s:bd gain:0.7 ]", @@ -7950,8 +7950,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (29/8 → 4/1) ⇝ 33/8 | note:B3 s:square gain:0.7 attack:0.01 decay:0.1 sustain:0 cutoff:2568.811347023862 ]", "[ 27/8 ⇜ (11/3 → 15/4) | note:F#5 s:sawtooth gain:0.3977916463583412 attack:0.001 decay:0.2 sustain:0 hcutoff:5335.806273589214 cutoff:4000 ]", "[ 27/8 ⇜ (11/3 → 15/4) | note:A4 s:sawtooth gain:0.3977916463583412 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 ]", - "[ 15/4 → 31/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2568.811347023862 ]", + "[ 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 | note:F#5 s:sawtooth gain:0.3998193184307759 attack:0.001 decay:0.2 sustain:0 hcutoff:5220.886439234386 cutoff:4000 ]", "[ 15/4 → 4/1 | note:A4 s:sawtooth gain:0.3998193184307759 attack:0.001 decay:0.2 sustain:0 hcutoff:5220.886439234386 cutoff:4000 ]", "[ 15/4 → 4/1 | s:hh3 gain:0.7 ]", @@ -7961,8 +7961,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (15/4 → 4/1) ⇝ 17/4 | note:B3 s:square gain:0.7 attack:0.01 decay:0.1 sustain:0 cutoff:2580.8797353950404 ]", "[ 7/2 ⇜ (23/6 → 31/8) | note:A5 s:sawtooth gain:0.3988719301898066 attack:0.001 decay:0.2 sustain:0 hcutoff:5290.754858561636 cutoff:4000 ]", "[ 7/2 ⇜ (23/6 → 31/8) | note:C#5 s:sawtooth gain:0.3988719301898066 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 ]", - "[ 31/8 → 4/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2592.8079367021132 ]", + "[ 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 | note:A5 s:sawtooth gain:0.3999548228044306 attack:0.001 decay:0.2 sustain:0 hcutoff:5197.0018638323545 cutoff:4000 ]", "[ (31/8 → 4/1) ⇝ 17/4 | note:C#5 s:sawtooth gain:0.3999548228044306 attack:0.001 decay:0.2 sustain:0 hcutoff:5197.0018638323545 cutoff:4000 ]", @@ -7987,8 +7987,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ 31/8 ⇜ (4/1 → 35/8) | note:B3 s:square gain:0.7 attack:0.01 decay:0.1 sustain:0 cutoff:2639.083266757757 ]", "[ 15/4 ⇜ (49/12 → 33/8) | note:A5 s:sawtooth gain:0.3999548228044306 attack:0.001 decay:0.2 sustain:0 hcutoff:5148.3645377501725 cutoff:4000 ]", "[ 15/4 ⇜ (49/12 → 33/8) | note:C#5 s:sawtooth gain:0.3999548228044306 attack:0.001 decay:0.2 sustain:0 hcutoff:5148.3645377501725 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 ]", - "[ 33/8 → 17/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2639.083266757757 ]", + "[ 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 | note:A5 s:sawtooth gain:0.3988719301898066 attack:0.001 decay:0.2 sustain:0 hcutoff:5047.734873274585 cutoff:4000 ]", "[ (33/8 → 53/12) ⇝ 9/2 | note:C#5 s:sawtooth gain:0.3988719301898066 attack:0.001 decay:0.2 sustain:0 hcutoff:5047.734873274585 cutoff:4000 ]", "[ 31/8 ⇜ (25/6 → 17/4) | note:F#5 s:sawtooth gain:0.3998193184307759 attack:0.001 decay:0.2 sustain:0 hcutoff:5123.62012082546 cutoff:4000 ]", @@ -8000,14 +8000,14 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (17/4 → 55/12) ⇝ 37/8 | note:E5 s:sawtooth gain:0.3977916463583412 attack:0.001 decay:0.2 sustain:0 hcutoff:4995.811501426648 cutoff:4000 ]", "[ 4/1 ⇜ (13/3 → 35/8) | note:A5 s:sawtooth gain:0.3995935685018036 attack:0.001 decay:0.2 sustain:0 hcutoff:5098.597504951462 cutoff:4000 ]", "[ 4/1 ⇜ (13/3 → 35/8) | note:C#5 s:sawtooth gain:0.3995935685018036 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 ]", - "[ 35/8 → 9/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2682.97580859032 ]", + "[ 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 | note:A5 s:sawtooth gain:0.3963553195057793 attack:0.001 decay:0.2 sustain:0 hcutoff:4942.862975093085 cutoff:4000 ]", "[ (35/8 → 14/3) ⇝ 19/4 | note:C#5 s:sawtooth gain:0.3963553195057793 attack:0.001 decay:0.2 sustain:0 hcutoff:4942.862975093085 cutoff:4000 ]", "[ 33/8 ⇜ (53/12 → 9/2) | note:F#5 s:sawtooth gain:0.3988719301898066 attack:0.001 decay:0.2 sustain:0 hcutoff:5047.734873274585 cutoff:4000 ]", "[ 33/8 ⇜ (53/12 → 9/2) | note:A4 s:sawtooth gain:0.3988719301898066 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 ]", - "[ 9/2 → 37/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2703.995258572327 ]", + "[ 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 | note:F#5 s:sawtooth gain:0.3955046879791817 attack:0.001 decay:0.2 sustain:0 hcutoff:4916.015592312082 cutoff:4000 ]", "[ 9/2 → 19/4 | note:A4 s:sawtooth gain:0.3955046879791817 attack:0.001 decay:0.2 sustain:0 hcutoff:4916.015592312082 cutoff:4000 ]", "[ 9/2 → 19/4 | s:bd gain:0.7 ]", @@ -8020,8 +8020,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (37/8 → 59/12) ⇝ 5/1 | note:C#5 s:sawtooth gain:0.39242922708895556 attack:0.001 decay:0.2 sustain:0 hcutoff:4834.036289789029 cutoff:4000 ]", "[ 35/8 ⇜ (14/3 → 19/4) | note:F#5 s:sawtooth gain:0.3963553195057793 attack:0.001 decay:0.2 sustain:0 hcutoff:4942.862975093085 cutoff:4000 ]", "[ 35/8 ⇜ (14/3 → 19/4) | note:A4 s:sawtooth gain:0.3963553195057793 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 ]", - "[ 19/4 → 39/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2744.1172176410028 ]", + "[ 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 | note:F#5 s:sawtooth gain:0.3912316097774532 attack:0.001 decay:0.2 sustain:0 hcutoff:4806.246411789873 cutoff:4000 ]", "[ 19/4 → 5/1 | note:A4 s:sawtooth gain:0.3912316097774532 attack:0.001 decay:0.2 sustain:0 hcutoff:4806.246411789873 cutoff:4000 ]", "[ 19/4 → 5/1 | s:hh3 gain:0.7 ]", @@ -8029,8 +8029,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (19/4 → 5/1) ⇝ 41/8 | note:E5 s:sawtooth gain:0.38994891982521085 attack:0.001 decay:0.2 sustain:0 hcutoff:4778.23271519263 cutoff:4000 ]", "[ 9/2 ⇜ (29/6 → 39/8) | note:A5 s:sawtooth gain:0.394566409869316 attack:0.001 decay:0.2 sustain:0 hcutoff:4888.925582549005 cutoff:4000 ]", "[ 9/2 ⇜ (29/6 → 39/8) | note:C#5 s:sawtooth gain:0.394566409869316 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 ]", - "[ 39/8 → 5/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2763.195558759784 ]", + "[ 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 → 5/1) ⇝ 21/4 | note:A5 s:sawtooth gain:0.3871314633555296 attack:0.001 decay:0.2 sustain:0 hcutoff:4721.553103742387 cutoff:4000 ]", "[ (39/8 → 5/1) ⇝ 21/4 | note:C#5 s:sawtooth gain:0.3871314633555296 attack:0.001 decay:0.2 sustain:0 hcutoff:4721.553103742387 cutoff:4000 ]", "[ 37/8 ⇜ (59/12 → 5/1) | note:F#5 s:sawtooth gain:0.39242922708895556 attack:0.001 decay:0.2 sustain:0 hcutoff:4834.036289789029 cutoff:4000 ]", @@ -8046,8 +8046,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (5/1 → 16/3) ⇝ 43/8 | note:E5 s:sawtooth gain:0.38398364517932737 attack:0.001 decay:0.2 sustain:0 hcutoff:4664.036300812779 cutoff:4000 ]", "[ 19/4 ⇜ (61/12 → 41/8) | note:A5 s:sawtooth gain:0.38994891982521085 attack:0.001 decay:0.2 sustain:0 hcutoff:4778.23271519263 cutoff:4000 ]", "[ 19/4 ⇜ (61/12 → 41/8) | note:C#5 s:sawtooth gain:0.38994891982521085 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 ]", - "[ 41/8 → 21/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2799.329510692108 ]", + "[ 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 | note:A5 s:sawtooth gain:0.38051304866630675 attack:0.001 decay:0.2 sustain:0 hcutoff:4605.721725547503 cutoff:4000 ]", "[ (41/8 → 65/12) ⇝ 11/2 | note:C#5 s:sawtooth gain:0.38051304866630675 attack:0.001 decay:0.2 sustain:0 hcutoff:4605.721725547503 cutoff:4000 ]", "[ 39/8 ⇜ (31/6 → 21/4) | note:F#5 s:sawtooth gain:0.3871314633555296 attack:0.001 decay:0.2 sustain:0 hcutoff:4721.553103742387 cutoff:4000 ]", @@ -8059,14 +8059,14 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (21/4 → 67/12) ⇝ 45/8 | note:E5 s:sawtooth gain:0.3767280347874561 attack:0.001 decay:0.2 sustain:0 hcutoff:4546.64934384357 cutoff:4000 ]", "[ 5/1 ⇜ (16/3 → 43/8) | note:A5 s:sawtooth gain:0.38398364517932737 attack:0.001 decay:0.2 sustain:0 hcutoff:4664.036300812779 cutoff:4000 ]", "[ 5/1 ⇜ (16/3 → 43/8) | note:C#5 s:sawtooth gain:0.38398364517932737 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 ]", - "[ 43/8 → 11/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2832.694627163799 ]", + "[ 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 | note:A5 s:sawtooth gain:0.3726377219727376 attack:0.001 decay:0.2 sustain:0 hcutoff:4486.859640960669 cutoff:4000 ]", "[ (43/8 → 17/3) ⇝ 23/4 | note:C#5 s:sawtooth gain:0.3726377219727376 attack:0.001 decay:0.2 sustain:0 hcutoff:4486.859640960669 cutoff:4000 ]", "[ 41/8 ⇜ (65/12 → 11/2) | note:F#5 s:sawtooth gain:0.38051304866630675 attack:0.001 decay:0.2 sustain:0 hcutoff:4605.721725547503 cutoff:4000 ]", "[ 41/8 ⇜ (65/12 → 11/2) | note:A4 s:sawtooth gain:0.38051304866630675 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 ]", - "[ 11/2 → 45/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2848.313487543853 ]", + "[ 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 | note:F#5 s:sawtooth gain:0.3704811297220968 attack:0.001 decay:0.2 sustain:0 hcutoff:4456.708580912725 cutoff:4000 ]", "[ 11/2 → 23/4 | note:A4 s:sawtooth gain:0.3704811297220968 attack:0.001 decay:0.2 sustain:0 hcutoff:4456.708580912725 cutoff:4000 ]", "[ 11/2 → 23/4 | s:bd gain:0.7 ]", @@ -8083,8 +8083,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (45/8 → 6/1) ⇝ 49/8 | note:A3 s:square gain:0.7 attack:0.01 decay:0.1 sustain:0 cutoff:2877.376777172205 ]", "[ 43/8 ⇜ (17/3 → 23/4) | note:F#5 s:sawtooth gain:0.3726377219727376 attack:0.001 decay:0.2 sustain:0 hcutoff:4486.859640960669 cutoff:4000 ]", "[ 43/8 ⇜ (17/3 → 23/4) | note:A4 s:sawtooth gain:0.3726377219727376 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 ]", - "[ 23/4 → 47/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2877.376777172205 ]", + "[ 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 | note:F#5 s:sawtooth gain:0.36114266880324386 attack:0.001 decay:0.2 sustain:0 hcutoff:4334.517148084427 cutoff:4000 ]", "[ 23/4 → 6/1 | note:A4 s:sawtooth gain:0.36114266880324386 attack:0.001 decay:0.2 sustain:0 hcutoff:4334.517148084427 cutoff:4000 ]", "[ 23/4 → 6/1 | s:hh3 gain:0.7 ]", @@ -8094,8 +8094,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (23/4 → 6/1) ⇝ 25/4 | note:A3 s:square gain:0.7 attack:0.01 decay:0.1 sustain:0 cutoff:2884.183170199766 ]", "[ 11/2 ⇜ (35/6 → 47/8) | note:A5 s:sawtooth gain:0.368251964143991 attack:0.001 decay:0.2 sustain:0 hcutoff:4426.39359377459 cutoff:4000 ]", "[ 11/2 ⇜ (35/6 → 47/8) | note:C#5 s:sawtooth gain:0.368251964143991 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 ]", - "[ 47/8 → 6/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2890.803699781578 ]", + "[ 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 | note:A5 s:sawtooth gain:0.3586370624427201 attack:0.001 decay:0.2 sustain:0 hcutoff:4303.598663257904 cutoff:4000 ]", "[ (47/8 → 6/1) ⇝ 25/4 | note:C#5 s:sawtooth gain:0.3586370624427201 attack:0.001 decay:0.2 sustain:0 hcutoff:4303.598663257904 cutoff:4000 ]", "[ (47/8 → 6/1) ⇝ 51/8 | note:F#3 s:square gain:0.7 attack:0.01 decay:0.1 sustain:0 cutoff:2890.803699781578 ]", @@ -8119,8 +8119,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ 47/8 ⇜ (6/1 → 51/8) | note:A3 s:square gain:0.7 attack:0.01 decay:0.1 sustain:0 cutoff:2915.4076660819765 ]", "[ 23/4 ⇜ (73/12 → 49/8) | note:A5 s:sawtooth gain:0.35343108171056015 attack:0.001 decay:0.2 sustain:0 hcutoff:4241.3539374389275 cutoff:4000 ]", "[ 23/4 ⇜ (73/12 → 49/8) | note:C#5 s:sawtooth gain:0.35343108171056015 attack:0.001 decay:0.2 sustain:0 hcutoff:4241.3539374389275 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 ]", - "[ 49/8 → 25/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2915.4076660819765 ]", + "[ 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 | note:A5 s:sawtooth gain:0.3422847385870941 attack:0.001 decay:0.2 sustain:0 hcutoff:4115.383232572483 cutoff:4000 ]", "[ (49/8 → 77/12) ⇝ 13/2 | note:C#5 s:sawtooth gain:0.3422847385870941 attack:0.001 decay:0.2 sustain:0 hcutoff:4115.383232572483 cutoff:4000 ]", "[ 47/8 ⇜ (37/6 → 25/4) | note:F#5 s:sawtooth gain:0.3507338432270528 attack:0.001 decay:0.2 sustain:0 hcutoff:4210.038361759807 cutoff:4000 ]", @@ -8132,14 +8132,14 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (25/4 → 79/12) ⇝ 53/8 | note:E5 s:sawtooth gain:0.3363712287126769 attack:0.001 decay:0.2 sustain:0 hcutoff:4051.743587553753 cutoff:4000 ]", "[ 6/1 ⇜ (19/3 → 51/8) | note:A5 s:sawtooth gain:0.3479759264430665 attack:0.001 decay:0.2 sustain:0 hcutoff:4178.601124662687 cutoff:4000 ]", "[ 6/1 ⇜ (19/3 → 51/8) | note:C#5 s:sawtooth gain:0.3479759264430665 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 ]", - "[ 51/8 → 13/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2936.9631544781614 ]", + "[ 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 | note:A5 s:sawtooth gain:0.3302496429830646 attack:0.001 decay:0.2 sustain:0 hcutoff:3987.7258050403216 cutoff:4000 ]", "[ (51/8 → 20/3) ⇝ 27/4 | note:C#5 s:sawtooth gain:0.3302496429830646 attack:0.001 decay:0.2 sustain:0 hcutoff:3987.7258050403216 cutoff:4000 ]", "[ 49/8 ⇜ (77/12 → 13/2) | note:F#5 s:sawtooth gain:0.3422847385870941 attack:0.001 decay:0.2 sustain:0 hcutoff:4115.383232572483 cutoff:4000 ]", "[ 49/8 ⇜ (77/12 → 13/2) | note:A4 s:sawtooth gain:0.3422847385870941 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 ]", - "[ 13/2 → 53/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2946.5812012110136 ]", + "[ 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 | note:F#5 s:sawtooth gain:0.3271154116289833 attack:0.001 decay:0.2 sustain:0 hcutoff:3955.588813730369 cutoff:4000 ]", "[ 13/2 → 27/4 | note:A4 s:sawtooth gain:0.3271154116289833 attack:0.001 decay:0.2 sustain:0 hcutoff:3955.588813730369 cutoff:4000 ]", "[ 13/2 → 27/4 | s:bd gain:0.7 ]", @@ -8152,8 +8152,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (53/8 → 83/12) ⇝ 7/1 | note:C#5 s:sawtooth gain:0.3174416994481911 attack:0.001 decay:0.2 sustain:0 hcutoff:3858.7315549779487 cutoff:4000 ]", "[ 51/8 ⇜ (20/3 → 27/4) | note:F#5 s:sawtooth gain:0.3302496429830646 attack:0.001 decay:0.2 sustain:0 hcutoff:3987.7258050403216 cutoff:4000 ]", "[ 51/8 ⇜ (20/3 → 27/4) | note:A4 s:sawtooth gain:0.3302496429830646 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 ]", - "[ 27/4 → 55/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2963.468935477506 ]", + "[ 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 | note:F#5 s:sawtooth gain:0.31413326401454233 attack:0.001 decay:0.2 sustain:0 hcutoff:3826.315480550129 cutoff:4000 ]", "[ 27/4 → 7/1 | note:A4 s:sawtooth gain:0.31413326401454233 attack:0.001 decay:0.2 sustain:0 hcutoff:3826.315480550129 cutoff:4000 ]", "[ 27/4 → 7/1 | s:hh3 gain:0.7 ]", @@ -8161,8 +8161,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (27/4 → 7/1) ⇝ 57/8 | note:E5 s:sawtooth gain:0.3107861971007485 attack:0.001 decay:0.2 sustain:0 hcutoff:3793.8434936445938 cutoff:4000 ]", "[ 13/2 ⇜ (41/6 → 55/8) | note:A5 s:sawtooth gain:0.32393472883446767 attack:0.001 decay:0.2 sustain:0 hcutoff:3923.373759622562 cutoff:4000 ]", "[ 13/2 ⇜ (41/6 → 55/8) | note:C#5 s:sawtooth gain:0.32393472883446767 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 ]", - "[ 55/8 → 7/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2970.728450471497 ]", + "[ 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 → 7/1) ⇝ 29/4 | note:A5 s:sawtooth gain:0.30398425548024827 attack:0.001 decay:0.2 sustain:0 hcutoff:3728.7540466585065 cutoff:4000 ]", "[ (55/8 → 7/1) ⇝ 29/4 | note:C#5 s:sawtooth gain:0.30398425548024827 attack:0.001 decay:0.2 sustain:0 hcutoff:3728.7540466585065 cutoff:4000 ]", "[ 53/8 ⇜ (83/12 → 7/1) | note:F#5 s:sawtooth gain:0.3174416994481911 attack:0.001 decay:0.2 sustain:0 hcutoff:3858.7315549779487 cutoff:4000 ]", @@ -8178,8 +8178,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (7/1 → 22/3) ⇝ 59/8 | note:E5 s:sawtooth gain:0.29705226105983373 attack:0.001 decay:0.2 sustain:0 hcutoff:3663.507823075358 cutoff:4000 ]", "[ 27/4 ⇜ (85/12 → 57/8) | note:A5 s:sawtooth gain:0.3107861971007485 attack:0.001 decay:0.2 sustain:0 hcutoff:3793.8434936445938 cutoff:4000 ]", "[ 27/4 ⇜ (85/12 → 57/8) | note:C#5 s:sawtooth gain:0.3107861971007485 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 ]", - "[ 57/8 → 29/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2982.856914513109 ]", + "[ 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 | note:A5 s:sawtooth gain:0.29000691362123476 attack:0.001 decay:0.2 sustain:0 hcutoff:3598.149539397671 cutoff:4000 ]", "[ (57/8 → 89/12) ⇝ 15/2 | note:C#5 s:sawtooth gain:0.29000691362123476 attack:0.001 decay:0.2 sustain:0 hcutoff:3598.149539397671 cutoff:4000 ]", "[ 55/8 ⇜ (43/6 → 29/4) | note:F#5 s:sawtooth gain:0.30398425548024827 attack:0.001 decay:0.2 sustain:0 hcutoff:3728.7540466585065 cutoff:4000 ]", @@ -8191,14 +8191,14 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (29/4 → 91/12) ⇝ 61/8 | note:E5 s:sawtooth gain:0.28286518602353056 attack:0.001 decay:0.2 sustain:0 hcutoff:3532.7239889283615 cutoff:4000 ]", "[ 7/1 ⇜ (22/3 → 59/8) | note:A5 s:sawtooth gain:0.29705226105983373 attack:0.001 decay:0.2 sustain:0 hcutoff:3663.507823075358 cutoff:4000 ]", "[ 7/1 ⇜ (22/3 → 59/8) | note:C#5 s:sawtooth gain:0.29705226105983373 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 ]", - "[ 59/8 → 15/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2991.774409503181 ]", + "[ 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 | note:A5 s:sawtooth gain:0.2756442833140452 attack:0.001 decay:0.2 sustain:0 hcutoff:3467.276011071639 cutoff:4000 ]", "[ (59/8 → 23/3) ⇝ 31/4 | note:C#5 s:sawtooth gain:0.2756442833140452 attack:0.001 decay:0.2 sustain:0 hcutoff:3467.276011071639 cutoff:4000 ]", "[ 57/8 ⇜ (89/12 → 15/2) | note:F#5 s:sawtooth gain:0.29000691362123476 attack:0.001 decay:0.2 sustain:0 hcutoff:3598.149539397671 cutoff:4000 ]", "[ 57/8 ⇜ (89/12 → 15/2) | note:A4 s:sawtooth gain:0.29000691362123476 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 ]", - "[ 15/2 → 61/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2995.0220264467503 ]", + "[ 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 | note:F#5 s:sawtooth gain:0.2720095711683043 attack:0.001 decay:0.2 sustain:0 hcutoff:3434.557629230318 cutoff:4000 ]", "[ 15/2 → 31/4 | note:A4 s:sawtooth gain:0.2720095711683043 attack:0.001 decay:0.2 sustain:0 hcutoff:3434.557629230318 cutoff:4000 ]", "[ 15/2 → 31/4 | s:bd gain:0.7 ]", @@ -8215,8 +8215,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (61/8 → 8/1) ⇝ 65/8 | note:B3 s:square gain:0.7 attack:0.01 decay:0.1 sustain:0 cutoff:2999.0852191942718 ]", "[ 59/8 ⇜ (23/3 → 31/4) | note:F#5 s:sawtooth gain:0.2756442833140452 attack:0.001 decay:0.2 sustain:0 hcutoff:3467.276011071639 cutoff:4000 ]", "[ 59/8 ⇜ (23/3 → 31/4) | note:A4 s:sawtooth gain:0.2756442833140452 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 ]", - "[ 31/4 → 63/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2999.0852191942718 ]", + "[ 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 | note:F#5 s:sawtooth gain:0.2573601511491127 attack:0.001 decay:0.2 sustain:0 hcutoff:3303.852260680389 cutoff:4000 ]", "[ 31/4 → 8/1 | note:A4 s:sawtooth gain:0.2573601511491127 attack:0.001 decay:0.2 sustain:0 hcutoff:3303.852260680389 cutoff:4000 ]", "[ 31/4 → 8/1 | s:hh3 gain:0.7 ]", @@ -8226,8 +8226,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (31/4 → 8/1) ⇝ 33/4 | note:B3 s:square gain:0.7 attack:0.01 decay:0.1 sustain:0 cutoff:2999.5934052398757 ]", "[ 15/2 ⇜ (47/6 → 63/8) | note:A5 s:sawtooth gain:0.2683616012798825 attack:0.001 decay:0.2 sustain:0 hcutoff:3401.8504606023293 cutoff:4000 ]", "[ 15/2 ⇜ (47/6 → 63/8) | note:C#5 s:sawtooth gain:0.2683616012798825 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 ]", - "[ 63/8 → 8/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2999.898347482845 ]", + "[ 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 | note:A5 s:sawtooth gain:0.2536811842784369 attack:0.001 decay:0.2 sustain:0 hcutoff:3271.2459533414954 cutoff:4000 ]", "[ (63/8 → 8/1) ⇝ 33/4 | note:C#5 s:sawtooth gain:0.2536811842784369 attack:0.001 decay:0.2 sustain:0 hcutoff:3271.2459533414954 cutoff:4000 ]", @@ -8252,8 +8252,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ 63/8 ⇜ (8/1 → 67/8) | note:B3 s:square gain:0.7 attack:0.01 decay:0.1 sustain:0 cutoff:2999.0852191942718 ]", "[ 31/4 ⇜ (97/12 → 65/8) | note:A5 s:sawtooth gain:0.24631881572156322 attack:0.001 decay:0.2 sustain:0 hcutoff:3206.156506355406 cutoff:4000 ]", "[ 31/4 ⇜ (97/12 → 65/8) | note:C#5 s:sawtooth gain:0.24631881572156322 attack:0.001 decay:0.2 sustain:0 hcutoff:3206.156506355406 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 ]", - "[ 65/8 → 33/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2999.0852191942718 ]", + "[ 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 | note:A5 s:sawtooth gain:0.2316383987201176 attack:0.001 decay:0.2 sustain:0 hcutoff:3076.6262403774385 cutoff:4000 ]", "[ (65/8 → 101/12) ⇝ 17/2 | note:C#5 s:sawtooth gain:0.2316383987201176 attack:0.001 decay:0.2 sustain:0 hcutoff:3076.6262403774385 cutoff:4000 ]", "[ 63/8 ⇜ (49/6 → 33/4) | note:F#5 s:sawtooth gain:0.24263984885088735 attack:0.001 decay:0.2 sustain:0 hcutoff:3173.6845194498705 cutoff:4000 ]", @@ -8265,14 +8265,14 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (33/4 → 103/12) ⇝ 69/8 | note:E5 s:sawtooth gain:0.2243557166859549 attack:0.001 decay:0.2 sustain:0 hcutoff:3012.274194959679 cutoff:4000 ]", "[ 8/1 ⇜ (25/3 → 67/8) | note:A5 s:sawtooth gain:0.2389653154600499 attack:0.001 decay:0.2 sustain:0 hcutoff:3141.2684450220513 cutoff:4000 ]", "[ 8/1 ⇜ (25/3 → 67/8) | note:C#5 s:sawtooth gain:0.2389653154600499 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 ]", - "[ 67/8 → 17/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2995.0220264467503 ]", + "[ 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 | note:A5 s:sawtooth gain:0.21713481397646955 attack:0.001 decay:0.2 sustain:0 hcutoff:2948.256412446248 cutoff:4000 ]", "[ (67/8 → 26/3) ⇝ 35/4 | note:C#5 s:sawtooth gain:0.21713481397646955 attack:0.001 decay:0.2 sustain:0 hcutoff:2948.256412446248 cutoff:4000 ]", "[ 65/8 ⇜ (101/12 → 17/2) | note:F#5 s:sawtooth gain:0.2316383987201176 attack:0.001 decay:0.2 sustain:0 hcutoff:3076.6262403774385 cutoff:4000 ]", "[ 65/8 ⇜ (101/12 → 17/2) | note:A4 s:sawtooth gain:0.2316383987201176 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 ]", - "[ 17/2 → 69/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2991.774409503181 ]", + "[ 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 | note:F#5 s:sawtooth gain:0.21355297301451046 attack:0.001 decay:0.2 sustain:0 hcutoff:2916.386590360237 cutoff:4000 ]", "[ 17/2 → 35/4 | note:A4 s:sawtooth gain:0.21355297301451046 attack:0.001 decay:0.2 sustain:0 hcutoff:2916.386590360237 cutoff:4000 ]", "[ 17/2 → 35/4 | s:bd gain:0.7 ]", @@ -8285,8 +8285,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (69/8 → 107/12) ⇝ 9/1 | note:C#5 s:sawtooth gain:0.20294773894016632 attack:0.001 decay:0.2 sustain:0 hcutoff:2821.398875337315 cutoff:4000 ]", "[ 67/8 ⇜ (26/3 → 35/4) | note:F#5 s:sawtooth gain:0.21713481397646955 attack:0.001 decay:0.2 sustain:0 hcutoff:2948.256412446248 cutoff:4000 ]", "[ 67/8 ⇜ (26/3 → 35/4) | note:A4 s:sawtooth gain:0.21713481397646955 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 ]", - "[ 35/4 → 71/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2982.856914513109 ]", + "[ 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 | note:F#5 s:sawtooth gain:0.19946652199116702 attack:0.001 decay:0.2 sustain:0 hcutoff:2789.9616382401937 cutoff:4000 ]", "[ 35/4 → 9/1 | note:A4 s:sawtooth gain:0.19946652199116702 attack:0.001 decay:0.2 sustain:0 hcutoff:2789.9616382401937 cutoff:4000 ]", "[ 35/4 → 9/1 | s:hh3 gain:0.7 ]", @@ -8294,8 +8294,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (35/4 → 9/1) ⇝ 73/8 | note:E5 s:sawtooth gain:0.1960157445197518 attack:0.001 decay:0.2 sustain:0 hcutoff:2758.6460625610725 cutoff:4000 ]", "[ 17/2 ⇜ (53/6 → 71/8) | note:A5 s:sawtooth gain:0.2099930863787653 attack:0.001 decay:0.2 sustain:0 hcutoff:2884.6167674275184 cutoff:4000 ]", "[ 17/2 ⇜ (53/6 → 71/8) | note:C#5 s:sawtooth gain:0.2099930863787653 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 ]", - "[ 71/8 → 9/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2977.1924080321423 ]", + "[ 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 → 9/1) ⇝ 37/4 | note:A5 s:sawtooth gain:0.18921380289925155 attack:0.001 decay:0.2 sustain:0 hcutoff:2696.4013367420957 cutoff:4000 ]", "[ (71/8 → 9/1) ⇝ 37/4 | note:C#5 s:sawtooth gain:0.18921380289925155 attack:0.001 decay:0.2 sustain:0 hcutoff:2696.4013367420957 cutoff:4000 ]", "[ 69/8 ⇜ (107/12 → 9/1) | note:F#5 s:sawtooth gain:0.20294773894016632 attack:0.001 decay:0.2 sustain:0 hcutoff:2821.398875337315 cutoff:4000 ]", @@ -8311,8 +8311,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (9/1 → 28/3) ⇝ 75/8 | note:E5 s:sawtooth gain:0.182558300551809 attack:0.001 decay:0.2 sustain:0 hcutoff:2634.707357306267 cutoff:4000 ]", "[ 35/4 ⇜ (109/12 → 73/8) | note:A5 s:sawtooth gain:0.1960157445197518 attack:0.001 decay:0.2 sustain:0 hcutoff:2758.6460625610725 cutoff:4000 ]", "[ 35/4 ⇜ (109/12 → 73/8) | note:C#5 s:sawtooth gain:0.1960157445197518 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 ]", - "[ 73/8 → 37/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2963.4689354775064 ]", + "[ 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 | note:A5 s:sawtooth gain:0.17606527116553244 attack:0.001 decay:0.2 sustain:0 hcutoff:2573.60640622541 cutoff:4000 ]", "[ (73/8 → 113/12) ⇝ 19/2 | note:C#5 s:sawtooth gain:0.17606527116553244 attack:0.001 decay:0.2 sustain:0 hcutoff:2573.60640622541 cutoff:4000 ]", "[ 71/8 ⇜ (55/6 → 37/4) | note:F#5 s:sawtooth gain:0.18921380289925155 attack:0.001 decay:0.2 sustain:0 hcutoff:2696.4013367420957 cutoff:4000 ]", @@ -8324,14 +8324,14 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (37/4 → 115/12) ⇝ 77/8 | note:E5 s:sawtooth gain:0.16975035701693547 attack:0.001 decay:0.2 sustain:0 hcutoff:2513.140359039332 cutoff:4000 ]", "[ 9/1 ⇜ (28/3 → 75/8) | note:A5 s:sawtooth gain:0.182558300551809 attack:0.001 decay:0.2 sustain:0 hcutoff:2634.707357306267 cutoff:4000 ]", "[ 9/1 ⇜ (28/3 → 75/8) | note:C#5 s:sawtooth gain:0.182558300551809 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 ]", - "[ 75/8 → 19/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2946.5812012110136 ]", + "[ 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 | note:A5 s:sawtooth gain:0.16362877128732323 attack:0.001 decay:0.2 sustain:0 hcutoff:2453.350656156431 cutoff:4000 ]", "[ (75/8 → 29/3) ⇝ 39/4 | note:C#5 s:sawtooth gain:0.16362877128732323 attack:0.001 decay:0.2 sustain:0 hcutoff:2453.350656156431 cutoff:4000 ]", "[ 73/8 ⇜ (113/12 → 19/2) | note:F#5 s:sawtooth gain:0.17606527116553244 attack:0.001 decay:0.2 sustain:0 hcutoff:2573.60640622541 cutoff:4000 ]", "[ 73/8 ⇜ (113/12 → 19/2) | note:A4 s:sawtooth gain:0.17606527116553244 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 ]", - "[ 19/2 → 77/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2936.9631544781614 ]", + "[ 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 | note:F#5 s:sawtooth gain:0.16064510432613502 attack:0.001 decay:0.2 sustain:0 hcutoff:2423.7222579792624 cutoff:4000 ]", "[ 19/2 → 39/4 | note:A4 s:sawtooth gain:0.16064510432613502 attack:0.001 decay:0.2 sustain:0 hcutoff:2423.7222579792624 cutoff:4000 ]", "[ 19/2 → 39/4 | s:bd gain:0.7 ]", @@ -8348,8 +8348,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (77/8 → 10/1) ⇝ 81/8 | note:A3 s:square gain:0.7 attack:0.01 decay:0.1 sustain:0 cutoff:2915.4076660819765 ]", "[ 75/8 ⇜ (29/3 → 39/4) | note:F#5 s:sawtooth gain:0.16362877128732323 attack:0.001 decay:0.2 sustain:0 hcutoff:2453.350656156431 cutoff:4000 ]", "[ 75/8 ⇜ (29/3 → 39/4) | note:A4 s:sawtooth gain:0.16362877128732323 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 ]", - "[ 39/4 → 79/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2915.4076660819765 ]", + "[ 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 | note:F#5 s:sawtooth gain:0.14926615677294724 attack:0.001 decay:0.2 sustain:0 hcutoff:2307.1030993509794 cutoff:4000 ]", "[ 39/4 → 10/1 | note:A4 s:sawtooth gain:0.14926615677294724 attack:0.001 decay:0.2 sustain:0 hcutoff:2307.1030993509794 cutoff:4000 ]", "[ 39/4 → 10/1 | s:hh3 gain:0.7 ]", @@ -8359,8 +8359,8 @@ exports[`renders tunes > tune: hyperpop 1`] = ` "[ (39/4 → 10/1) ⇝ 41/4 | note:A3 s:square gain:0.7 attack:0.01 decay:0.1 sustain:0 cutoff:2909.5402784268977 ]", "[ 19/2 ⇜ (59/6 → 79/8) | note:A5 s:sawtooth gain:0.157715261412906 attack:0.001 decay:0.2 sustain:0 hcutoff:2394.2782744524975 cutoff:4000 ]", "[ 19/2 ⇜ (59/6 → 79/8) | note:C#5 s:sawtooth gain:0.157715261412906 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 ]", - "[ 79/8 → 10/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2903.483208638841 ]", + "[ 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 | note:A5 s:sawtooth gain:0.14656891828944 attack:0.001 decay:0.2 sustain:0 hcutoff:2278.446896257612 cutoff:4000 ]", "[ (79/8 → 10/1) ⇝ 41/4 | note:C#5 s:sawtooth gain:0.14656891828944 attack:0.001 decay:0.2 sustain:0 hcutoff:2278.446896257612 cutoff:4000 ]", "[ (79/8 → 10/1) ⇝ 83/8 | note:F#3 s:square gain:0.7 attack:0.01 decay:0.1 sustain:0 cutoff:2903.483208638841 ]", @@ -8372,16 +8372,16 @@ exports[`renders tunes > tune: hyperpop 1`] = ` exports[`renders tunes > tune: juxUndTollerei 1`] = ` [ - "[ 0/1 → 1/4 | note:bb3 s:sawtooth pan:0 cutoff:1188.2154262966046 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", - "[ 0/1 → 1/4 | note:c3 s:sawtooth pan:1 cutoff:1188.2154262966046 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", - "[ 1/4 → 1/2 | note:g3 s:sawtooth pan:0 cutoff:1361.2562095290161 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", - "[ 1/4 → 1/2 | note:eb3 s:sawtooth pan:1 cutoff:1361.2562095290161 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", - "[ 1/2 → 3/4 | note:eb3 s:sawtooth pan:0 cutoff:1524.257063143398 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", - "[ 1/2 → 3/4 | note:g3 s:sawtooth pan:1 cutoff:1524.257063143398 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", - "[ (101/200 → 1/1) ⇝ 201/200 | note:65 s:triangle pan:0 cutoff:1601.4815730092653 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", - "[ (101/200 → 1/1) ⇝ 201/200 | note:55 s:triangle pan:1 cutoff:1601.4815730092653 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", - "[ 3/4 → 1/1 | note:c3 s:sawtooth pan:0 cutoff:1670.953955747281 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", - "[ 3/4 → 1/1 | note:bb3 s:sawtooth pan:1 cutoff:1670.953955747281 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", + "[ 0/1 → 1/4 | note:bb3 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 ]", + "[ 0/1 → 1/4 | note:c3 s:sawtooth pan:1 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 ]", + "[ 1/4 → 1/2 | note:g3 s:sawtooth pan:0 cutoff:1361.2562095290161 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", + "[ 1/4 → 1/2 | note:eb3 s:sawtooth pan:1 cutoff:1361.2562095290161 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", + "[ 1/2 → 3/4 | note:eb3 s:sawtooth pan:0 cutoff:1524.257063143398 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", + "[ 1/2 → 3/4 | note:g3 s:sawtooth pan:1 cutoff:1524.257063143398 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", + "[ (101/200 → 1/1) ⇝ 201/200 | note:65 s:triangle pan:0 cutoff:1601.4815730092653 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", + "[ (101/200 → 1/1) ⇝ 201/200 | note:55 s:triangle pan:1 cutoff:1601.4815730092653 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", + "[ 3/4 → 1/1 | note:c3 s:sawtooth pan:0 cutoff:1670.953955747281 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", + "[ 3/4 → 1/1 | note:bb3 s:sawtooth pan:1 cutoff:1670.953955747281 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", ] `; @@ -8422,8 +8422,8 @@ exports[`renders tunes > tune: meltingsubmarine 1`] = ` "[ 0/1 → 3/16 | note:93.00057728554401 decay:0.1 sustain:0 s:triangle gain:0.075 ]", "[ 0/1 → 3/16 | note:93.04057728554402 decay:0.1 sustain:0 s:triangle gain:0.075 ]", "[ (0/1 → 1/1) ⇝ 3/2 | s:bd n:5 speed:0.7519542165100574 ]", - "[ (0/1 → 1/1) ⇝ 3/2 | note:33.129885541275144 decay:0.15 sustain:0 s:sawtooth gain:0.4 cutoff:3669.6267869262615 ]", - "[ (0/1 → 1/1) ⇝ 3/2 | note:33.17988554127514 decay:0.15 sustain:0 s:sawtooth gain:0.4 cutoff:3669.6267869262615 ]", + "[ (0/1 → 1/1) ⇝ 3/2 | note:33.129885541275144 decay:0.15 sustain:0 s:sawtooth gain:0.4 cutoff:3669.6267869262615 lpattack:0.1 lpenv:-2 ]", + "[ (0/1 → 1/1) ⇝ 3/2 | note:33.17988554127514 decay:0.15 sustain:0 s:sawtooth gain:0.4 cutoff:3669.6267869262615 lpattack:0.1 lpenv:-2 ]", "[ (0/1 → 1/1) ⇝ 3/2 | note:60.129885541275144 s:sawtooth gain:0.16 cutoff:500 attack:1 ]", "[ (0/1 → 1/1) ⇝ 3/2 | note:60.16988554127514 s:sawtooth gain:0.16 cutoff:500 attack:1 ]", "[ (0/1 → 1/1) ⇝ 3/2 | note:64.12988554127514 s:sawtooth gain:0.16 cutoff:500 attack:1 ]", @@ -8481,21 +8481,6 @@ exports[`renders tunes > tune: orbit 1`] = ` ] `; -exports[`renders tunes > tune: outroMusic 1`] = ` -[ - "[ 0/1 → 1/2 | s:hh speed:0.9036881079621337 n:3 ]", - "[ 0/1 → 3/4 | n:-7 note:C2 s:sawtooth attack:0.05 decay:0.1 sustain:0.7 cutoff:864.536878321087 gain:0.3 ]", - "[ 0/1 → 3/4 | s:bd speed:0.9107561463868479 n:3 ]", - "[ (0/1 → 1/1) ⇝ 3/1 | note:B3 s:gm_epiano1 n:1 attack:0.05 decay:0.1 sustain:0.7 cutoff:1111.7252990603447 gain:0.3 ]", - "[ (0/1 → 1/1) ⇝ 3/1 | note:D4 s:gm_epiano1 n:1 attack:0.05 decay:0.1 sustain:0.7 cutoff:1111.7252990603447 gain:0.3 ]", - "[ (0/1 → 1/1) ⇝ 3/1 | note:E4 s:gm_epiano1 n:1 attack:0.05 decay:0.1 sustain:0.7 cutoff:1111.7252990603447 gain:0.3 ]", - "[ (0/1 → 1/1) ⇝ 3/1 | note:G4 s:gm_epiano1 n:1 attack:0.05 decay:0.1 sustain:0.7 cutoff:1111.7252990603447 gain:0.3 ]", - "[ (0/1 → 1/1) ⇝ 9/2 | n:1 note:C5 s:gm_epiano1 attack:0.05 decay:0.1 sustain:0.7 cutoff:1111.7252990603447 gain:0.3 ]", - "[ 1/2 → 1/1 | s:hh speed:0.9519542165100575 n:3 ]", - "[ (3/4 → 1/1) ⇝ 3/2 | s:sd speed:0.9931522866332672 n:3 ]", -] -`; - exports[`renders tunes > tune: randomBells 1`] = ` [ "[ -9/8 ⇜ (0/1 → 3/8) | note:G4 s:bell gain:0.6 delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", @@ -10180,22 +10165,22 @@ exports[`renders tunes > tune: undergroundPlumber 1`] = ` exports[`renders tunes > tune: waa2 1`] = ` [ - "[ -1/4 ⇜ (0/1 → 1/4) | n:48 clip:1.1738393178344886 s:sawtooth cutoff:3997.892048359052 gain:0.5 room:0.5 ]", - "[ -1/4 ⇜ (0/1 → 1/4) | n:64 clip:1.1738393178344886 s:sawtooth cutoff:3997.892048359052 gain:0.5 room:0.5 ]", - "[ (0/1 → 1/4) ⇝ 1/2 | n:62 clip:1.197659880151613 s:sawtooth cutoff:3991.5732716763446 gain:0.5 room:0.5 ]", - "[ (0/1 → 1/4) ⇝ 1/2 | n:43 clip:1.197659880151613 s:sawtooth cutoff:3991.5732716763446 gain:0.5 room:0.5 ]", - "[ 0/1 ⇜ (1/4 → 1/2) | n:62 clip:1.197659880151613 s:square cutoff:3991.5732716763446 gain:0.5 room:0.5 ]", - "[ 0/1 ⇜ (1/4 → 1/2) | n:43 clip:1.197659880151613 s:square cutoff:3991.5732716763446 gain:0.5 room:0.5 ]", - "[ (1/4 → 1/2) ⇝ 3/4 | n:74 clip:1.2451698046878117 s:square cutoff:3966.3742407056534 gain:0.5 room:0.5 ]", - "[ (1/4 → 1/2) ⇝ 3/4 | n:55 clip:1.2451698046878117 s:square cutoff:3966.3742407056534 gain:0.5 room:0.5 ]", - "[ 1/4 ⇜ (1/2 → 3/4) | n:74 clip:1.2451698046878117 s:sawtooth cutoff:3966.3742407056534 gain:0.5 room:0.5 ]", - "[ 1/4 ⇜ (1/2 → 3/4) | n:55 clip:1.2451698046878117 s:sawtooth cutoff:3966.3742407056534 gain:0.5 room:0.5 ]", - "[ 1/2 → 3/4 | n:50 clip:1.2688217886051745 s:sawtooth cutoff:3947.554693090452 gain:0.5 room:0.5 ]", - "[ (1/2 → 3/4) ⇝ 1/1 | n:69 clip:1.292380289809026 s:sawtooth cutoff:3924.645587531366 gain:0.5 room:0.5 ]", - "[ 1/2 ⇜ (3/4 → 1/1) | n:69 clip:1.292380289809026 s:square cutoff:3924.645587531366 gain:0.5 room:0.5 ]", - "[ 3/4 → 1/1 | n:41 clip:1.315826773713709 s:square cutoff:3897.7021140702864 gain:0.5 room:0.5 ]", - "[ 3/4 → 1/1 | n:62 clip:1.315826773713709 s:square cutoff:3897.7021140702864 gain:0.5 room:0.5 ]", - "[ (3/4 → 1/1) ⇝ 5/4 | n:81 clip:1.315826773713709 s:square cutoff:3897.7021140702864 gain:0.5 room:0.5 ]", + "[ -1/4 ⇜ (0/1 → 1/4) | note:48 clip:1.1738393178344886 s:sawtooth cutoff:3997.892048359052 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ -1/4 ⇜ (0/1 → 1/4) | note:64 clip:1.1738393178344886 s:sawtooth cutoff:3997.892048359052 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ (0/1 → 1/4) ⇝ 1/2 | note:62 clip:1.197659880151613 s:sawtooth cutoff:3991.5732716763446 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ (0/1 → 1/4) ⇝ 1/2 | note:43 clip:1.197659880151613 s:sawtooth cutoff:3991.5732716763446 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ 0/1 ⇜ (1/4 → 1/2) | note:62 clip:1.197659880151613 s:square cutoff:3991.5732716763446 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ 0/1 ⇜ (1/4 → 1/2) | note:43 clip:1.197659880151613 s:square cutoff:3991.5732716763446 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ (1/4 → 1/2) ⇝ 3/4 | note:74 clip:1.2451698046878117 s:square cutoff:3966.3742407056534 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ (1/4 → 1/2) ⇝ 3/4 | note:55 clip:1.2451698046878117 s:square cutoff:3966.3742407056534 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ 1/4 ⇜ (1/2 → 3/4) | note:74 clip:1.2451698046878117 s:sawtooth cutoff:3966.3742407056534 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ 1/4 ⇜ (1/2 → 3/4) | note:55 clip:1.2451698046878117 s:sawtooth cutoff:3966.3742407056534 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ 1/2 → 3/4 | note:50 clip:1.2688217886051745 s:sawtooth cutoff:3947.554693090452 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ (1/2 → 3/4) ⇝ 1/1 | note:69 clip:1.292380289809026 s:sawtooth cutoff:3924.645587531366 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ 1/2 ⇜ (3/4 → 1/1) | note:69 clip:1.292380289809026 s:square cutoff:3924.645587531366 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ 3/4 → 1/1 | note:41 clip:1.315826773713709 s:square cutoff:3897.7021140702864 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ 3/4 → 1/1 | note:62 clip:1.315826773713709 s:square cutoff:3897.7021140702864 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ (3/4 → 1/1) ⇝ 5/4 | note:81 clip:1.315826773713709 s:square cutoff:3897.7021140702864 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", ] `; diff --git a/website/package.json b/website/package.json index 6ac799d3..c8fec20c 100644 --- a/website/package.json +++ b/website/package.json @@ -28,6 +28,7 @@ "@strudel.cycles/mini": "workspace:*", "@strudel.cycles/osc": "workspace:*", "@strudel.cycles/react": "workspace:*", + "@strudel/codemirror": "workspace:*", "@strudel.cycles/serial": "workspace:*", "@strudel.cycles/soundfonts": "workspace:*", "@strudel.cycles/tonal": "workspace:*", diff --git a/website/src/config.ts b/website/src/config.ts index ba9b0666..0d774a5a 100644 --- a/website/src/config.ts +++ b/website/src/config.ts @@ -70,12 +70,10 @@ export const SIDEBAR: Sidebar = { { text: 'MIDI & OSC', link: 'learn/input-output' }, ], More: [ + { text: 'Recipes', link: 'recipes/recipes' }, { text: 'Mini-Notation', link: 'learn/mini-notation' }, - { text: 'Coding syntax', link: 'learn/code' }, { text: 'Offline', link: 'learn/pwa' }, { text: 'Patterns', link: 'technical-manual/patterns' }, - { text: 'Pattern Alignment', link: 'technical-manual/alignment' }, - { text: 'Strudel vs Tidal', link: 'learn/strudel-vs-tidal' }, { text: 'Music metadata', link: 'learn/metadata' }, { text: 'CSound', link: 'learn/csound' }, ], @@ -89,7 +87,13 @@ export const SIDEBAR: Sidebar = { { text: 'Accumulation', link: 'learn/accumulation' }, { text: 'Tonal Functions', link: 'learn/tonal' }, ], - Understand: [{ text: 'Pitch', link: 'understand/pitch' }], + Understand: [ + { text: 'Coding syntax', link: 'learn/code' }, + { text: 'Pitch', link: 'understand/pitch' }, + { text: 'Cycles', link: 'understand/cycles' }, + { text: 'Pattern Alignment', link: 'technical-manual/alignment' }, + { text: 'Strudel vs Tidal', link: 'learn/strudel-vs-tidal' }, + ], Development: [ { text: 'REPL', link: 'technical-manual/repl' }, { text: 'Sounds', link: 'technical-manual/sounds' }, diff --git a/website/src/docs/JsDoc.jsx b/website/src/docs/JsDoc.jsx index 88a775a5..1ba80e0a 100644 --- a/website/src/docs/JsDoc.jsx +++ b/website/src/docs/JsDoc.jsx @@ -12,10 +12,11 @@ export function JsDoc({ name, h = 3, hideDescription, punchcard, canvasHeight }) } const synonyms = getTag('synonyms', item)?.split(', ') || []; const CustomHeading = `h${h}`; - const description = item.description.replaceAll(/\{@link ([a-zA-Z\.]+)?#?([a-zA-Z]*)\}/g, (_, a, b) => { - // console.log(_, 'a', a, 'b', b); - return `${a}${b ? `#${b}` : ''}`; - }); + const description = + item.description?.replaceAll(/\{@link ([a-zA-Z\.]+)?#?([a-zA-Z]*)\}/g, (_, a, b) => { + // console.log(_, 'a', a, 'b', b); + return `${a}${b ? `#${b}` : ''}`; + }) || ''; return ( <> {!!h && {item.longname}} diff --git a/website/src/pages/learn/effects.mdx b/website/src/pages/learn/effects.mdx index 12e57846..fb506aad 100644 --- a/website/src/pages/learn/effects.mdx +++ b/website/src/pages/learn/effects.mdx @@ -49,6 +49,10 @@ Each filter has 2 parameters: +## ftype + + + ## vowel @@ -78,6 +82,58 @@ Strudel uses ADSR envelopes, which are probably the most common way to describe +# Filter Envelope + +Each filter can receive an additional filter envelope controlling the cutoff value dynamically. It uses an ADSR envelope similar to the one used for amplitude. There is an additional parameter to control the depth of the filter modulation: `lpenv`|`hpenv`|`bpenv`. This allows you to play subtle or huge filter modulations just the same by only increasing or decreasing the depth. + +](3,8,<0 1>)".sub(12)) + .s("/64") + .lpf(sine.range(500,3000).slow(16)) + .lpa(0.005) + .lpd(perlin.range(.02,.2)) + .lps(perlin.range(0,.5).slow(3)) + .lpq(sine.range(2,10).slow(32)) + .release(.5) + .lpenv(perlin.range(1,8).slow(2)) + .ftype('24db') + .room(1) + .juxBy(.5,rev) + .sometimes(add(note(12))) + .stack(s("bd*2").bank('RolandTR909')) + .gain(.5)`} +/> + +There is one filter envelope for each filter type and thus one set of envelope filter parameters preceded either by `lp`, `hp` or `bp`: + +- `lpattack`, `lpdecay`, `lpsustain`, `lprelease`, `lpenv`: filter envelope for the lowpass filter. + - alternatively: `lpa`, `lpd`, `lps`, `lpr` and `lpe`. +- `hpattack`, `hpdecay`, `hpsustain`, `hprelease`, `hpenv`: filter envelope for the highpass filter. + - alternatively: `hpa`, `hpd`, `hps`, `hpr` and `hpe`. +- `bpattack`, `bpdecay`, `bpsustain`, `bprelease`, `bpenv`: filter envelope for the bandpass filter. + - alternatively: `bpa`, `bpd`, `bps`, `bpr` and `bpe`. + +## lpattack + + + +## lpdecay + + + +## lpsustain + + + +## lprelease + + + +## lpenv + + + # Dynamics ## gain @@ -88,6 +144,14 @@ Strudel uses ADSR envelopes, which are probably the most common way to describe +## compressor + + + +## postgain + + + # Panning ## jux @@ -127,24 +191,44 @@ global effects use the same chain for all events of the same orbit: -## delay +## Delay + +### delay -## delaytime +### delaytime -## delayfeedback +### delayfeedback -## room +## Reverb + +### room -## roomsize +### roomsize +### roomfade + + + +### roomlp + + + +### roomdim + + + +### iresponse + + + Next, we'll look at strudel's support for [Csound](/learn/csound). diff --git a/website/src/pages/learn/samples.mdx b/website/src/pages/learn/samples.mdx index 9f79e54a..10d8c730 100644 --- a/website/src/pages/learn/samples.mdx +++ b/website/src/pages/learn/samples.mdx @@ -303,6 +303,18 @@ Sampler effects are functions that can be used to change the behaviour of sample +### loop + + + +### loopBegin + + + +### loopEnd + + + ### cut @@ -315,6 +327,10 @@ Sampler effects are functions that can be used to change the behaviour of sample +### fit + + + ### chop @@ -323,6 +339,10 @@ Sampler effects are functions that can be used to change the behaviour of sample +### splice + + + ### speed diff --git a/website/src/pages/learn/synths.mdx b/website/src/pages/learn/synths.mdx index b24726cf..432276ef 100644 --- a/website/src/pages/learn/synths.mdx +++ b/website/src/pages/learn/synths.mdx @@ -23,6 +23,25 @@ The basic waveforms are `sine`, `sawtooth`, `square` and `triangle`, which can b If you don't set a `sound` but a `note` the default value for `sound` is `triangle`! +## Noise + +You can also use noise as a source by setting the waveform to: `white`, `pink` or `brown`. These are different +flavours of noise, here written from hard to soft. + +/2").scope()`} /> + +Here's a more musical example of how to use noise for hihats: + +*8") +.decay(.04).sustain(0).scope()`} +/> + +Some amount of pink noise can also be added to any oscillator by using the `noise` paremeter: + +").scope()`} /> + ### Additive Synthesis To tame the harsh sound of the basic waveforms, we can set the `n` control to limit the overtones of the waveform: @@ -48,6 +67,16 @@ You can also set `n` directly in mini notation with `sound`: Note for tidal users: `n` in tidal is synonymous to `note` for synths only. In strudel, this is not the case, where `n` will always change timbre, be it though different samples or different waveforms. +## Vibrato + +### vib + + + +### vibmod + + + ## FM Synthesis FM Synthesis is a technique that changes the frequency of a basic waveform rapidly to alter the timbre. @@ -78,6 +107,23 @@ You can use fm with any of the above waveforms, although the below examples all +## Wavetable Synthesis + +Strudel can also use the sampler to load custom waveforms as a replacement of the default waveforms used by WebAudio for the base synth. A default set of more than 1000 wavetables is accessible by default (coming from the [AKWF](https://www.adventurekid.se/akrt/waveforms/adventure-kid-waveforms/) set). You can also import/use your own. A wavetable is a one-cycle waveform, which is then repeated to create a sound at the desired frequency. It is a classic but very effective synthesis technique. + +Any sample preceded by the `wt_` prefix will be loaded as a wavetable. This means that the `loop` argument will be set to `1` by defalt. You can scan over the wavetable by using `loopBegin` and `loopEnd` as well. + +") +.n("<1 2 3 4 5 6 7 8 9 10>/2").room(0.5).size(0.9) +.s('wt_flute').velocity(0.25).often(n => n.ply(2)) +.release(0.125).decay("<0.1 0.25 0.3 0.4>").sustain(0) +.cutoff(2000).scope({}).cutoff("<1000 2000 4000>").fast(2)`} +/> + ## ZZFX The "Zuper Zmall Zound Zynth" [ZZFX](https://github.com/KilledByAPixel/ZzFX) is also integrated in strudel. diff --git a/website/src/pages/recipes/recipes.mdx b/website/src/pages/recipes/recipes.mdx new file mode 100644 index 00000000..22617e4b --- /dev/null +++ b/website/src/pages/recipes/recipes.mdx @@ -0,0 +1,312 @@ +--- +title: Recipes +layout: ../../layouts/MainLayout.astro +--- + +import { MiniRepl } from '../../docs/MiniRepl'; + +# Recipes + +This page shows possible ways to achieve common (or not so common) musical goals. +There are often many ways to do a thing and there is no right or wrong. +The fun part is that each representation will give you different impulses when improvising. + +## Arpeggios + +An arpeggio is when the notes of a chord are played in sequence. +We can either write the notes by hand: + + + +...or use scales: + + + +...or chord symbols: + + + +...using off: + + + +## Chopping Breaks + +A sample can be looped and chopped like this: + + + +This fits the break into 8 cycles + chops it in 16 pieces. +The chops are not audible yet, because we're not doing any manipulation. +Let's add randmized doubling + reversing: + + + +If we want to specify the order of samples, we can replace `chop` with `slice`: + +") + .cut(1).rarely(ply(2))`} + punchcard +/> + +If we use `splice` instead of `slice`, the speed adjusts to the duration of the event: + +") + .cut(1).rarely(ply(2))`} + punchcard +/> + +Note that we don't need `fit`, because `splice` will do that by itself. + +## Filter Envelopes + +A minimal filter envelope looks like this: + + d2") + .s("sawtooth") + .lpf(400).lpa(.2).lpenv(4) + .scope()`} +/> + +We can flip the envelope by setting `lpenv` negative + add some resonance `lpq`: + + d2") + .s("sawtooth").lpq(8) + .lpf(400).lpa(.2).lpenv(-4) + .scope()`} +/> + +## Layering Sounds + +We can layer sounds by separating them with ",": + +") +.s("sawtooth, square") // <------ +.scope()`} +/> + +We can control the gain of individual sounds like this: + +") +.s("sawtooth, square:0:.5") // <--- "name:number:gain" +.scope()`} +/> + +For more control over each voice, we can use `layer`: + +").layer( + x=>x.s("sawtooth").vib(4), + x=>x.s("square").add(note(12)) +).scope()`} +/> + +Here, we give the sawtooth a vibrato and the square is moved an octave up. +With `layer`, you can use any pattern method available on each voice, so sky is the limit.. + +## Oscillator Detune + +We can fatten a sound by adding a detuned version to itself: + +") +.add(note("0,.1")) // <------ chorus +.s("sawtooth").scope()`} + punchcard +/> + +Try out different values, or add another voice! + +## Polyrhythms + +Here is a simple example of a polyrhythm: + + + +A polyrhythm is when 2 different tempos happen at the same time. + +## Polymeter + +This is a polymeter: + +,").fast(2)`} punchcard /> + +A polymeter is when 2 different bar lengths play at the same tempo. + +## Phasing + +This is a phasing: + +*[6,6.1]").piano()`} punchcard /> + +Phasing happens when the same sequence plays at slightly different tempos. + +## Running through samples + +Using `run` with `n`, we can rush through a sample bank: + + + +This works great with sample banks that contain similar sounds, like in this case different recordings of a tabla. +Often times, you'll hear the beginning of the phrase not where the pattern begins. +In this case, I hear the beginning at the third sample, which can be accounted for with `early`. + + + +Let's add some randomness: + + + +## Tape Warble + +We can emulate a pitch warbling effect like this: + + + +## Sound Duration + +There are a number of ways to change the sound duration. Using clip: + +/2")`} +/> + +The value of clip is relative to the duration of each event. +We can also create overlaps using release: + +/2")`} +/> + +This will smoothly fade out each sound for the given number of seconds. +We could also make the notes shorter with decay / sustain: + +/2").sustain(0)`} +/> + +For now, there is a limitation where decay values that exceed the event duration may cause little cracks, so use higher numbers with caution.. + +When using samples, we also have `.end` to cut relative to the sample length: + +")`} /> + +Compare that to clip: + +")`} /> + +or decay / sustain + +").sustain(0)`} /> + +## Wavetable Synthesis + +You can loop a sample with `loop` / `loopEnd`: + +").s("bd").loop(1).loopEnd(.05).gain(.2)`} /> + +This allows us to play the first 5% of the bass drum as a synth! +To simplify loading wavetables, any sample that starts with `wt_` will be looped automatically: + + + +Running through different wavetables can also give interesting variations: + + + +...adding a filter envelope + reverb: + + diff --git a/website/src/pages/understand/cycles.mdx b/website/src/pages/understand/cycles.mdx new file mode 100644 index 00000000..a66794be --- /dev/null +++ b/website/src/pages/understand/cycles.mdx @@ -0,0 +1,130 @@ +--- +title: Understanding Cycles +layout: ../../layouts/MainLayout.astro +--- + +import { MiniRepl } from '../../docs/MiniRepl'; +import { PitchSlider } from '../../components/PitchSlider'; +import Box from '@components/Box.astro'; + +# Understanding Cycles + +The concept of cycles is very central to be able to understand how Strudel works. +Strudel's mother language, TidalCycles, even has it in its name. + +## Cycles and BPM + +In most music software, the unit BPM (beats per minute) is used to set the tempo. +Strudel expresses tempo as CPS (cycles per second), with a default of 1CPS: + + + +Here we can hear the 1CPS in action: The kick repeats once per second like a clock. +We could say 1CPS = 1BPS (beats per second) = 60BPM. Let's add another kick: + + + +Now we have 2 kicks per second, but the whole pattern still plays at 1CPS. +In terms of BPM, most musicians would tell you this is playing at 120bpm. +What about this one: + + + +Because the second sound is now a hihat, the tempo feels slower again. +This brings us to an important realization: + + + +Tempo is based on perception. +The choice of sounds also has an impact on the tempo feel. +This is why the same CPS can produce different perceived tempos. + + + +## Setting CPM + +If you're familiar with BPM, you can use the `cpm` method to set the tempo in cycles per minute: + + + +If you want to add more beats per cycle, you might want to divide the cpm: + + + +Or using 2 beats per cycle: + + + + + +To set a specific bpm, use `.cpm(bpm/bpc)` + +- bpm: the target beats per minute +- bpc: the number of perceived beats per cycle + + + +## Cycles and Bars + +Also in most music software, multiple beats form a bar (or measure). +The so called time signature specifies how many beats are in each bar. +In many types of music, it is common to use 4 beats per bar, also known as 4/4 time. +Many music programs use it as a default. + +Strudel does not a have concept of bars or measures, there are only cycles. +How you use them is up to you. Above, we've had this example: + + + +This could be interpreted as 4/4 time with a tempo of 110bpm. +We could write out multiple bars like this: + +\`).cpm(110/4)`} +/> + +Instead of writing out each bar separately, we could express this much shorter: + +>,hh*4").cpm(110/2)`} /> + +Here we can see that thinking in cycles rather than bars simplifies things a lot! +These types of simplifications work because of the repetitive nature of rhythm. +In computational terms, you could say the former notation has a lot of redundancy. + +## Time Signatures + +To get a time signature, just change the number of elements per bar. Here is a rhythm with 7 beats: + + + +or with 5: + +*5")`} /> + +We could also write multiple bars with different time signatures: + +\`).cpm(110*2)`} +/> + +Here we switch between 3/4 and 4/4, keeping the same tempo. + +If we don't specify the length, we get what's called a metric modulation: + +\`).cpm(110/2)`} +/> + +Now the 3 elements get the same time as the 4 elements, which is why the tempo changes. diff --git a/website/src/repl/Repl.jsx b/website/src/repl/Repl.jsx index 173bb455..8fe43c6d 100644 --- a/website/src/repl/Repl.jsx +++ b/website/src/repl/Repl.jsx @@ -22,6 +22,7 @@ import Loader from './Loader'; import { settingPatterns } from '../settings.mjs'; import { code2hash, hash2code } from './helpers.mjs'; import { isTauri } from '../tauri.mjs'; +import { useWidgets } from '@strudel.cycles/react/src/hooks/useWidgets.mjs'; const { latestCode } = settingsMap.get(); @@ -33,25 +34,26 @@ const supabase = createClient( 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InBpZHhkc3hwaGxoempuem1pZnRoIiwicm9sZSI6ImFub24iLCJpYXQiOjE2NTYyMzA1NTYsImV4cCI6MTk3MTgwNjU1Nn0.bqlw7802fsWRnqU5BLYtmXk_k-D1VFmbkHMywWc15NM', ); -const modules = [ +let modules = [ import('@strudel.cycles/core'), import('@strudel.cycles/tonal'), import('@strudel.cycles/mini'), import('@strudel.cycles/xen'), import('@strudel.cycles/webaudio'), + import('@strudel/codemirror'), import('@strudel.cycles/serial'), import('@strudel.cycles/soundfonts'), import('@strudel.cycles/csound'), ]; if (isTauri()) { - modules.concat([ + modules = modules.concat([ import('@strudel/desktopbridge/loggerbridge.mjs'), import('@strudel/desktopbridge/midibridge.mjs'), import('@strudel/desktopbridge/oscbridge.mjs'), ]); } else { - modules.concat([import('@strudel.cycles/midi'), import('@strudel.cycles/osc')]); + modules = modules.concat([import('@strudel.cycles/midi'), import('@strudel.cycles/osc')]); } const modulesLoading = evalScope( @@ -128,7 +130,7 @@ export function Repl({ embedded = false }) { } = useSettings(); const paintOptions = useMemo(() => ({ fontFamily }), [fontFamily]); - + const { setWidgets } = useWidgets(view); const { code, setCode, scheduler, evaluate, activateCode, isDirty, activeCode, pattern, started, stop, error } = useStrudel({ initialCode: '// LOADING...', @@ -142,6 +144,7 @@ export function Repl({ embedded = false }) { }, afterEval: ({ code, meta }) => { setMiniLocations(meta.miniLocations); + setWidgets(meta.widgets); setPending(false); setLatestCode(code); window.location.hash = '#' + code2hash(code); @@ -149,7 +152,14 @@ export function Repl({ embedded = false }) { onEvalError: (err) => { setPending(false); }, - onToggle: (play) => !play && cleanupDraw(false), + onToggle: (play) => { + if (!play) { + cleanupDraw(false); + window.postMessage('strudel-stop'); + } else { + window.postMessage('strudel-start'); + } + }, drawContext, // drawTime: [0, 6], paintOptions, @@ -212,7 +222,7 @@ export function Repl({ embedded = false }) { const handleChangeCode = useCallback( (c) => { setCode(c); - started && logger('[edit] code changed. hit ctrl+enter to update'); + //started && logger('[edit] code changed. hit ctrl+enter to update'); }, [started], ); diff --git a/website/src/repl/tunes.mjs b/website/src/repl/tunes.mjs index dd524283..5f68ee93 100644 --- a/website/src/repl/tunes.mjs +++ b/website/src/repl/tunes.mjs @@ -229,7 +229,9 @@ stack( .add("0,.02") .note().gain(.3) .clip("<1@3 [.3 1]>/2") - .s('sawtooth').cutoff(600).color('#F8E71C'), + .cutoff(600) + .lpa(.2).lpenv(-4) + .s('sawtooth').color('#F8E71C'), ).fast(3/2) //.pianoroll({fold:1})`; @@ -430,7 +432,7 @@ export const waa2 = `// "Waa2" // @license CC BY-NC-SA 4.0 https://creativecommons.org/licenses/by-nc-sa/4.0/ // @by Felix Roos -n( +note( "a4 [a3 c3] a3 c3" .sub("<7 12 5 12>".slow(2)) .off(1/4,x=>x.add(7)) @@ -442,7 +444,7 @@ n( .cutoff(cosine.range(500,4000).slow(16)) .gain(.5) .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/ @@ -468,7 +470,9 @@ stack( .note() .s("sawtooth,square") .gain(.3).attack(0.01).decay(0.1).sustain(.5) - .apply(filter1), + .apply(filter1) + .lpa(.1).lpenv(2).ftype('24db') + , "~@3 [<2 3>,<4 5>]" .echo(4,1/16,.7) .scale(scales) @@ -537,6 +541,7 @@ stack( .s('sawtooth') // waveform .gain(.4) // turn down .cutoff(sine.slow(7).range(300,5000)) // automate cutoff + .lpa(.1).lpenv(-2) //.hush() ,chord(">") .dict('lefthand').voicing() // chords @@ -559,6 +564,7 @@ stack( ) .slow(3/2)`; +/* export const outroMusic = `// "Outro music" // @license CC BY-NC-SA 4.0 https://creativecommons.org/licenses/by-nc-sa/4.0/ // @by Felix Roos @@ -576,8 +582,8 @@ chord("*2").dict('lefthand').anchor("G4").voicing() .s("gm_epiano1:1") .color('steelblue') .stack( - n("<-7 ~@2 [~@2 -7] -9 ~@2 [~@2 -9] -10!2 ~ [~@2 -10] -5 ~ [-3 -2 -10]@2>*2") - .scale('C3 major') + "<-7 ~@2 [~@2 -7] -9 ~@2 [~@2 -9] -10!2 ~ [~@2 -10] -5 ~ [-3 -2 -10]@2>*2" + .scale('C3 major').note() .s('sawtooth').color('brown') ) .attack(0.05).decay(.1).sustain(.7) @@ -589,7 +595,8 @@ chord("*2").dict('lefthand').anchor("G4").voicing() .n(3).color('gray') ).slow(3/2) //.pianoroll({autorange:1,vertical:1,fold:0}) - `; + `; +*/ export const bassFuge = `// "Bass fuge" // @license CC BY-NC-SA 4.0 https://creativecommons.org/licenses/by-nc-sa/4.0/ @@ -772,7 +779,8 @@ stack( .gain("0.4,0.4(5,8,-1)"), note("<0 2 5 3>".scale('G1 minor')).struct("x(5,8,-1)") - .s('sawtooth').decay(.1).sustain(0), + .s('sawtooth').decay(.1).sustain(0) + .lpa(.1).lpenv(-4).lpf(800).lpq(8), note(",Bb3,D3").struct("~ x*2").s('square').clip(1) .cutoff(sine.range(500,4000).slow(16)).resonance(10) @@ -803,14 +811,16 @@ stack( sine.add(saw.slow(4)).range(0,7).segment(8) .superimpose(x=>x.add(.1)) .scale('G0 minor').note() - .s("sawtooth").decay(.1).sustain(0) - .gain(.4).cutoff(perlin.range(300,3000).slow(8)).resonance(10) + .s("sawtooth") + .gain(.4).decay(.1).sustain(0) + .lpa(.1).lpenv(-4).lpq(10) + .cutoff(perlin.range(300,3000).slow(8)) .degradeBy("0 0.1 .5 .1") .rarely(add(note("12"))) , // chord note("Bb3,D4".superimpose(x=>x.add(.2))) - .s('sawtooth').cutoff(1000).struct("<~@3 [~ x]>") + .s('sawtooth').lpf(1000).struct("<~@3 [~ x]>") .decay(.05).sustain(.0).delay(.8).delaytime(.125).room(.8) , // alien @@ -827,8 +837,8 @@ note("c3 eb3 g3 bb3").palindrome() .s('sawtooth') .jux(x=>x.rev().color('green').s('sawtooth')) .off(1/4, x=>x.add(note("<7 12>/2")).slow(2).late(.005).s('triangle')) -//.delay(.5) -.fast(1).cutoff(sine.range(200,2000).slow(8)) +.lpf(sine.range(200,2000).slow(8)) +.lpa(.2).lpenv(-2) .decay(.05).sustain(0) .room(.6) .delay(.5).delaytime(.1).delayfeedback(.4) @@ -907,7 +917,13 @@ n("[0,3] 2 [1,3] 2".fast(3).lastOf(4, fast(2))).clip(2) .delay(.2) .room(.5).pan(sine.range(.3,.6)) .s('piano') - .stack("<!2 F2 [F2 E2]>".add.out("0 -5".fast(2)).add("0,.12").note().s('sawtooth').clip(1).cutoff(300)) + .stack( + "<!2 F2 F2>" + .add.out("0 -5".fast(2)) + .add("0,.12").note() + .s('sawtooth').cutoff(180) + .lpa(.1).lpenv(2) + ) .slow(4) .stack(s("bd*4, [~ [hh hh? hh?]]*2,~ [sd ~ [sd:2? bd?]]").bank('RolandTR909').gain(.5).slow(2)) `;