diff --git a/.eslintignore b/.eslintignore index 13e635f3..92c95c85 100644 --- a/.eslintignore +++ b/.eslintignore @@ -18,4 +18,6 @@ vite.config.js **/*.json **/dev-dist **/dist -/src-tauri/target/**/* \ No newline at end of file +/src-tauri/target/**/* +reverbGen.mjs +hydra.mjs \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7acc619d..467a9391 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,7 +13,7 @@ To get in touch with the contributors, either ## Ask a Question If you have any questions about strudel, make sure you've glanced through the -[docs](https://strudel.tidalcycles.org/learn/) to find out if it answers your question. +[docs](https://strudel.cc/learn/) to find out if it answers your question. If not, use one of the Communication Channels above! Don't be afraid to ask! Your question might be of great value for other people too. @@ -31,7 +31,7 @@ Use one of the Communication Channels listed above. ## Improve the Docs -If you find some weak spots in the [docs](https://strudel.tidalcycles.org/workshop/getting-started/), +If you find some weak spots in the [docs](https://strudel.cc/workshop/getting-started/), you can edit each file directly on github via the "Edit this page" link located in the right sidebar. ## Propose a Feature @@ -83,7 +83,7 @@ Please report any problems you've had with the setup instructions! To make sure the code changes only where it should, we are using prettier to unify the code style. -- You can format all files at once by running `pnpm prettier` from the project root +- You can format all files at once by running `pnpm codeformat` from the project root - Run `pnpm format-check` from the project root to check if all files are well formatted If you use VSCode, you can diff --git a/README.md b/README.md index 0949b687..037a9162 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,8 @@ An experiment in making a [Tidal](https://github.com/tidalcycles/tidal/) using web technologies. This software is slowly stabilising, but please continue to tread carefully. -- Try it here: -- Docs: +- Try it here: +- Docs: - Technical Blog Post: - 1 Year of Strudel Blog Post: diff --git a/my-patterns/README.md b/my-patterns/README.md index 1cec5e57..c8d694ea 100644 --- a/my-patterns/README.md +++ b/my-patterns/README.md @@ -47,7 +47,7 @@ If you want to automatically deploy your site on push, go to `deploy.yml` and ch ## running locally - install dependencies with `npm run setup` -- run dev server with `npm run repl` and open `http://localhost:3000/strudel/swatch/` +- run dev server with `npm run repl` and open `http://localhost:4321/strudel/swatch/` ## tests fail? diff --git a/package.json b/package.json index 292fc94d..36229611 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "bugs": { "url": "https://github.com/tidalcycles/strudel/issues" }, - "homepage": "https://strudel.tidalcycles.org", + "homepage": "https://strudel.cc", "dependencies": { "@strudel.cycles/core": "workspace:*", "@strudel.cycles/mini": "workspace:*", 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/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 6cac6e54..866be4fb 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. * @@ -655,6 +665,15 @@ const generic_params = [ * .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 * @@ -848,7 +867,12 @@ const generic_params = [ * */ ['lsize'], - // label for pianoroll + /** + * Sets the displayed text for an event on the pianoroll + * + * @name label + * @param {string} label text to display + */ ['activeLabel'], [['label', 'activeLabel']], // ['lfo'], @@ -970,20 +994,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'], @@ -998,6 +1075,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. * @@ -1153,7 +1245,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'], @@ -1209,6 +1301,17 @@ generic_params.forEach(([names, ...aliases]) => { controls.createParams = (...names) => names.reduce((acc, name) => Object.assign(acc, { [name]: controls.createParam(name) }), {}); +/** + * ADSR envelope: Combination of Attack, Decay, Sustain, and Release. + * + * @name adsr + * @param {number | Pattern} time attack time in seconds + * @param {number | Pattern} time decay time in seconds + * @param {number | Pattern} gain sustain level (0 to 1) + * @param {number | Pattern} time release time in seconds + * @example + * note("").sound("sawtooth").lpf(600).adsr(".1:.1:.5:.2") + */ controls.adsr = register('adsr', (adsr, pat) => { adsr = !Array.isArray(adsr) ? [adsr] : adsr; const [attack, decay, sustain, release] = adsr; 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/examples/vite-vanilla-repl-cm6/tunes.mjs b/packages/core/examples/vite-vanilla-repl-cm6/tunes.mjs index 242a0d4b..73600019 100644 --- a/packages/core/examples/vite-vanilla-repl-cm6/tunes.mjs +++ b/packages/core/examples/vite-vanilla-repl-cm6/tunes.mjs @@ -1,6 +1,6 @@ export const bumpStreet = `// froos - "22 bump street", licensed with CC BY-NC-SA 4.0 await samples('github:felixroos/samples/main') -await samples('https://strudel.tidalcycles.org/tidal-drum-machines.json', 'github:ritchse/tidal-drum-machines/main/machines/') +await samples('https://strudel.cc/tidal-drum-machines.json', 'github:ritchse/tidal-drum-machines/main/machines/') "<[0,<6 7 9>,13,<17 20 22 26>]!2>/2" // make it 22 edo @@ -34,7 +34,7 @@ await samples('https://strudel.tidalcycles.org/tidal-drum-machines.json', 'githu export const trafficFlam = `// froos - "traffic flam", licensed with CC BY-NC-SA 4.0 await samples('github:felixroos/samples/main') -await samples('https://strudel.tidalcycles.org/tidal-drum-machines.json', 'github:ritchse/tidal-drum-machines/main/machines/') +await samples('https://strudel.cc/tidal-drum-machines.json', 'github:ritchse/tidal-drum-machines/main/machines/') addVoicings('hip', { m11: ['2M 3m 4P 7m'], @@ -70,7 +70,7 @@ export const funk42 = `// froos - how to funk in 42 lines of code // thanks to peach for the transcription: https://www.youtube.com/watch?v=8eiPXvIgda4 await samples('github:felixroos/samples/main') -await samples('https://strudel.tidalcycles.org/tidal-drum-machines.json', 'github:ritchse/tidal-drum-machines/main/machines/') +await samples('https://strudel.cc/tidal-drum-machines.json', 'github:ritchse/tidal-drum-machines/main/machines/') setcps(.5) diff --git a/packages/core/package.json b/packages/core/package.json index 8fd57242..5a626b0c 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -29,7 +29,7 @@ "bugs": { "url": "https://github.com/tidalcycles/strudel/issues" }, - "homepage": "https://strudel.tidalcycles.org", + "homepage": "https://strudel.cc", "dependencies": { "fraction.js": "^4.2.0" }, diff --git a/packages/core/pattern.mjs b/packages/core/pattern.mjs index e3efb427..f30d21c8 100644 --- a/packages/core/pattern.mjs +++ b/packages/core/pattern.mjs @@ -2100,23 +2100,43 @@ export const { iterBack, iterback } = register(['iterBack', 'iterback'], functio return _iter(times, pat, true); }); +/** + * Repeats each cycle the given number of times. + * @name repeatCycles + * @memberof Pattern + * @returns Pattern + * @example + * note(irand(12).add(34)).segment(4).repeatCycles(2).s("gm_acoustic_guitar_nylon") + */ +const _repeatCycles = function (n, pat) { + return slowcat(...Array(n).fill(pat)); +}; + +const { repeatCycles } = register('repeatCycles', _repeatCycles); + /** * Divides a pattern into a given number of parts, then cycles through those parts in turn, applying the given function to each part in turn (one part per cycle). * @name chunk + * @synonyms slowChunk, slowchunk * @memberof Pattern * @returns Pattern * @example * "0 1 2 3".chunk(4, x=>x.add(7)).scale('A minor').note() */ -const _chunk = function (n, func, pat, back = false) { +const _chunk = function (n, func, pat, back = false, fast = false) { const binary = Array(n - 1).fill(false); binary.unshift(true); - const binary_pat = _iter(n, sequence(...binary), back); + // Invert the 'back' because we want to shift the pattern forwards, + // and so time backwards + const binary_pat = _iter(n, sequence(...binary), !back); + if (!fast) { + pat = pat.repeatCycles(n); + } return pat.when(binary_pat, func); }; -export const chunk = register('chunk', function (n, func, pat) { - return _chunk(n, func, pat, false); +const { chunk, slowchunk, slowChunk } = register(['chunk', 'slowchunk', 'slowChunk'], function (n, func, pat) { + return _chunk(n, func, pat, false, false); }); /** @@ -2132,6 +2152,21 @@ export const { chunkBack, chunkback } = register(['chunkBack', 'chunkback'], fun return _chunk(n, func, pat, true); }); +/** + * Like `chunk`, but the cycles of the source pattern aren't repeated + * for each set of chunks. + * @name fastChunk + * @synonyms fastchunk + * @memberof Pattern + * @returns Pattern + * @example + * "<0 8> 1 2 3 4 5 6 7".fastChunk(4, x => x.color('red')).slow(4).scale("C2:major").note() + .s("folkharp") + */ +const { fastchunk, fastChunk } = register(['fastchunk', 'fastChunk'], function (n, func, pat) { + return _chunk(n, func, pat, false, true); +}); + // TODO - redefine elsewhere in terms of mask export const bypass = register('bypass', function (on, pat) { on = Boolean(parseInt(on)); @@ -2156,6 +2191,9 @@ export const duration = register('duration', function (value, pat) { /** * Sets the color of the hap in visualizations like pianoroll or highlighting. + * @name color + * @synonyms colour + * @param {string} color Hexadecimal or CSS color name */ // TODO: move this to controls https://github.com/tidalcycles/strudel/issues/288 export const { color, colour } = register(['color', 'colour'], function (color, pat) { @@ -2217,6 +2255,14 @@ export const chop = register('chop', function (n, pat) { return pat.squeezeBind(func); }); +/** + * Cuts each sample into the given number of parts, triggering progressive portions of each sample at each loop. + * @name striate + * @memberof Pattern + * @returns Pattern + * @example + * s("numbers:0 numbers:1 numbers:2").striate(6).slow(6) + */ export const striate = register('striate', function (n, pat) { const slices = Array.from({ length: n }, (x, i) => i); const slice_objects = slices.map((i) => ({ begin: i / n, end: (i + 1) / n })); @@ -2343,3 +2389,35 @@ 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(); + +let fadeGain = (p) => (p < 0.5 ? 1 : 1 - (p - 0.5) / 0.5); + +/** + * Cross-fades between left and right from 0 to 1: + * - 0 = (full left, no right) + * - .5 = (both equal) + * - 1 = (no left, full right) + * + * @name xfade + * @example + * xfade(s("bd*2"), "<0 .25 .5 .75 1>", s("hh*8")) + */ +export let xfade = (a, pos, b) => { + pos = reify(pos); + a = reify(a); + b = reify(b); + let gaina = pos.fmap((v) => ({ gain: fadeGain(v) })); + let gainb = pos.fmap((v) => ({ gain: fadeGain(1 - v) })); + return stack(a.mul(gaina), b.mul(gainb)); +}; + +// the prototype version is actually flipped so left/right makes sense +Pattern.prototype.xfade = function (pos, b) { + return xfade(this, pos, b); +}; diff --git a/packages/core/pianoroll.mjs b/packages/core/pianoroll.mjs index f3d2c38a..c10460a4 100644 --- a/packages/core/pianoroll.mjs +++ b/packages/core/pianoroll.mjs @@ -56,6 +56,40 @@ Pattern.prototype.pianoroll = function (options = {}) { // this function allows drawing a pianoroll without ties to Pattern.prototype // it will probably replace the above in the future + +/** + * Displays a midi-style piano roll + * + * @name pianoroll + * @param {Object} options Object containing all the optional following parameters as key value pairs: + * @param {integer} cycles number of cycles to be displayed at the same time - defaults to 4 + * @param {number} playhead location of the active notes on the time axis - 0 to 1, defaults to 0.5 + * @param {boolean} vertical displays the roll vertically - 0 by default + * @param {boolean} labels displays labels on individual notes (see the label function) - 0 by default + * @param {boolean} flipTime reverse the direction of the roll - 0 by default + * @param {boolean} flipValues reverse the relative location of notes on the value axis - 0 by default + * @param {number} overscan lookup X cycles outside of the cycles window to display notes in advance - 1 by default + * @param {boolean} hideNegative hide notes with negative time (before starting playing the pattern) - 0 by default + * @param {boolean} smear notes leave a solid trace - 0 by default + * @param {boolean} fold notes takes the full value axis width - 0 by default + * @param {string} active hexadecimal or CSS color of the active notes - defaults to #FFCA28 + * @param {string} inactive hexadecimal or CSS color of the inactive notes - defaults to #7491D2 + * @param {string} background hexadecimal or CSS color of the background - defaults to transparent + * @param {string} playheadColor hexadecimal or CSS color of the line representing the play head - defaults to white + * @param {boolean} fill notes are filled with color (otherwise only the label is displayed) - 0 by default + * @param {boolean} fillActive active notes are filled with color - 0 by default + * @param {boolean} stroke notes are shown with colored borders - 0 by default + * @param {boolean} strokeActive active notes are shown with colored borders - 0 by default + * @param {boolean} hideInactive only active notes are shown - 0 by default + * @param {boolean} colorizeInactive use note color for inactive notes - 1 by default + * @param {string} fontFamily define the font used by notes labels - defaults to 'monospace' + * @param {integer} minMidi minimum note value to display on the value axis - defaults to 10 + * @param {integer} maxMidi maximum note value to display on the value axis - defaults to 90 + * @param {boolean} autorange automatically calculate the minMidi and maxMidi parameters - 0 by default + * + * @example + * note("C2 A2 G2").euclid(5,8).s('piano').clip(1).color('salmon').pianoroll({vertical:1, labels:1}) + */ export function pianoroll({ time, haps, diff --git a/packages/core/repl.mjs b/packages/core/repl.mjs index b6866b87..67e2812d 100644 --- a/packages/core/repl.mjs +++ b/packages/core/repl.mjs @@ -24,6 +24,7 @@ export function repl({ getTime, onToggle, }); + let playPatterns = []; const setPattern = (pattern, autostart = true) => { pattern = editPattern?.(pattern) || pattern; scheduler.setPattern(pattern, autostart); @@ -35,7 +36,11 @@ export function repl({ } try { await beforeEval?.({ code }); + playPatterns = []; let { pattern, meta } = await _evaluate(code, transpiler); + if (playPatterns.length) { + pattern = pattern.stack(...playPatterns); + } logger(`[eval] code updated`); setPattern(pattern, autostart); afterEval?.({ code, pattern, meta }); @@ -57,6 +62,11 @@ export function repl({ return pat.loopAtCps(cycles, scheduler.cps); }); + const play = register('play', (pat) => { + playPatterns.push(pat); + return pat; + }); + const fit = register('fit', (pat) => pat.withHap((hap) => hap.withValue((v) => ({ @@ -70,6 +80,7 @@ export function repl({ evalScope({ loopAt, fit, + play, setCps, setcps: setCps, setCpm, diff --git a/packages/core/signal.mjs b/packages/core/signal.mjs index d0db0be9..f48cc55e 100644 --- a/packages/core/signal.mjs +++ b/packages/core/signal.mjs @@ -7,7 +7,7 @@ This program is free software: you can redistribute it and/or modify it under th import { Hap } from './hap.mjs'; import { Pattern, fastcat, reify, silence, stack, register } from './pattern.mjs'; import Fraction from './fraction.mjs'; -import { id } from './util.mjs'; +import { id, _mod, clamp } from './util.mjs'; export function steady(value) { // A continuous value @@ -155,12 +155,62 @@ export const _irand = (i) => rand.fmap((x) => Math.trunc(x * i)); */ export const irand = (ipat) => reify(ipat).fmap(_irand).innerJoin(); +/** + * pick from the list of values (or patterns of values) via the index using the given + * pattern of integers + * @param {Pattern} pat + * @param {*} xs + * @returns {Pattern} + * @example + * note(pick("<0 1 [2!2] 3>", ["g a", "e f", "f g f g" , "g a c d"])) + */ + +export const pick = (pat, xs) => { + xs = xs.map(reify); + if (xs.length == 0) { + return silence; + } + return pat + .fmap((i) => { + const key = clamp(Math.round(i), 0, xs.length - 1); + return xs[key]; + }) + .innerJoin(); +}; + +/** + * pick from the list of values (or patterns of values) via the index using the given + * pattern of integers. The selected pattern will be compressed to fit the duration of the selecting event + * @param {Pattern} pat + * @param {*} xs + * @returns {Pattern} + * @example + * note(squeeze("<0@2 [1!2] 2>", ["g a", "f g f g" , "g a c d"])) + */ + +export const squeeze = (pat, xs) => { + xs = xs.map(reify); + if (xs.length == 0) { + return silence; + } + return pat + .fmap((i) => { + const key = _mod(Math.round(i), xs.length); + return xs[key]; + }) + .squeezeJoin(); +}; + export const __chooseWith = (pat, xs) => { xs = xs.map(reify); 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 +218,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/core/test/pattern.test.mjs b/packages/core/test/pattern.test.mjs index c8267306..f4a03110 100644 --- a/packages/core/test/pattern.test.mjs +++ b/packages/core/test/pattern.test.mjs @@ -1003,4 +1003,23 @@ describe('Pattern', () => { ); }); }); + describe('chunk', () => { + it('Processes each cycle of the source pattern multiple times, once for each chunk', () => { + expect(sequence(0, 1, 2, 3).slow(2).chunk(2, add(10)).fast(4).firstCycleValues).toStrictEqual([ + 10, 1, 0, 11, 12, 3, 2, 13, + ]); + }); + }); + describe('fastChunk', () => { + it('Unlike chunk, cycles of the source pattern proceed cycle-by-cycle', () => { + expect(sequence(0, 1, 2, 3).slow(2).fastChunk(2, add(10)).fast(4).firstCycleValues).toStrictEqual([ + 10, 1, 2, 13, 10, 1, 2, 13, + ]); + }); + }); + describe('repeatCycles', () => { + it('Repeats each cycle of the source pattern the given number of times', () => { + expect(slowcat(0, 1).repeatCycles(2).fast(6).firstCycleValues).toStrictEqual([0, 0, 1, 1, 0, 0]); + }); + }); }); diff --git a/packages/core/ui.mjs b/packages/core/ui.mjs index 141d3c83..9343e062 100644 --- a/packages/core/ui.mjs +++ b/packages/core/ui.mjs @@ -46,7 +46,5 @@ export const cleanupUi = () => { const container = document.getElementById('code'); if (container) { container.style = ''; - // TODO: find a way to remove that duplication.. - container.className = 'grow flex text-gray-100 relative overflow-auto cursor-text pb-0'; // has to match App.tsx } }; diff --git a/packages/embed/embed.js b/packages/embed/embed.js index dddcd73c..ce2e3b2a 100644 --- a/packages/embed/embed.js +++ b/packages/embed/embed.js @@ -6,7 +6,7 @@ class Strudel extends HTMLElement { setTimeout(() => { const code = (this.innerHTML + '').replace('', '').trim(); const iframe = document.createElement('iframe'); - const src = `https://strudel.tidalcycles.org/#${encodeURIComponent(btoa(code))}`; + const src = `https://strudel.cc/#${encodeURIComponent(btoa(code))}`; // const src = `http://localhost:3000/#${encodeURIComponent(btoa(code))}`; iframe.setAttribute('src', src); iframe.setAttribute('width', '600'); diff --git a/packages/hydra/README.md b/packages/hydra/README.md new file mode 100644 index 00000000..d300bb88 --- /dev/null +++ b/packages/hydra/README.md @@ -0,0 +1,29 @@ +# @strudel/hydra + +This package integrates [hydra-synth](https://www.npmjs.com/package/hydra-synth) into strudel. + +## Usage in Strudel + +This package is imported into strudel by default. To activate Hydra, place this code at the top of your code: + +```js +await initHydra(); +``` + +Then you can use hydra below! + +## Usage via npm + +```sh +npm i @strudel/hydra +``` + +Then add the import to your evalScope: + +```js +import { evalScope } from '@strudel.cycles/core'; + +evalScope( + import('@strudel/hydra') +) +``` diff --git a/packages/hydra/hydra.mjs b/packages/hydra/hydra.mjs new file mode 100644 index 00000000..692e4c14 --- /dev/null +++ b/packages/hydra/hydra.mjs @@ -0,0 +1,15 @@ +import { getDrawContext } from '@strudel.cycles/core'; + +export async function initHydra() { + if (!document.getElementById('hydra-canvas')) { + const { canvas: testCanvas } = getDrawContext(); + await import('https://unpkg.com/hydra-synth'); + const hydraCanvas = testCanvas.cloneNode(true); + hydraCanvas.id = 'hydra-canvas'; + testCanvas.after(hydraCanvas); + new Hydra({ canvas: hydraCanvas, detectAudio: false }); + s0.init({ src: testCanvas }); + } +} + +export const H = (p) => () => p.queryArc(getTime(), getTime())[0].value; diff --git a/packages/hydra/package.json b/packages/hydra/package.json new file mode 100644 index 00000000..981c0d53 --- /dev/null +++ b/packages/hydra/package.json @@ -0,0 +1,43 @@ +{ + "name": "@strudel/hydra", + "version": "0.9.0", + "description": "Hydra integration for strudel", + "main": "hydra.mjs", + "publishConfig": { + "main": "dist/index.js", + "module": "dist/index.mjs" + }, + "scripts": { + "server": "node server.js", + "tidal-sniffer": "node tidal-sniffer.js", + "client": "npx serve -p 4321", + "build-bin": "npx pkg server.js --targets node16-macos-x64,node16-win-x64,node16-linux-x64 --out-path bin", + "build": "vite build", + "prepublishOnly": "npm run build" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/tidalcycles/strudel.git" + }, + "keywords": [ + "tidalcycles", + "strudel", + "pattern", + "livecoding", + "algorave" + ], + "author": "Felix Roos ", + "license": "AGPL-3.0-or-later", + "bugs": { + "url": "https://github.com/tidalcycles/strudel/issues" + }, + "homepage": "https://github.com/tidalcycles/strudel#readme", + "dependencies": { + "@strudel.cycles/core": "workspace:*", + "hydra-synth": "^1.3.29" + }, + "devDependencies": { + "pkg": "^5.8.1", + "vite": "^4.3.3" + } +} diff --git a/packages/hydra/vite.config.js b/packages/hydra/vite.config.js new file mode 100644 index 00000000..9d5114de --- /dev/null +++ b/packages/hydra/vite.config.js @@ -0,0 +1,19 @@ +import { defineConfig } from 'vite'; +import { dependencies } from './package.json'; +import { resolve } from 'path'; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [], + build: { + lib: { + entry: resolve(__dirname, 'hydra.mjs'), + formats: ['es', 'cjs'], + fileName: (ext) => ({ es: 'index.mjs', cjs: 'index.js' }[ext]), + }, + rollupOptions: { + external: [...Object.keys(dependencies)], + }, + target: 'esnext', + }, +}); 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/mini/README.md b/packages/mini/README.md index 3135c286..fce7a045 100644 --- a/packages/mini/README.md +++ b/packages/mini/README.md @@ -32,7 +32,7 @@ yields: ## Mini Notation API -See "Mini Notation" in the [Strudel Tutorial](https://strudel.tidalcycles.org/learn/mini-notation) +See "Mini Notation" in the [Strudel Tutorial](https://strudel.cc/learn/mini-notation) ## Building the Parser @@ -40,5 +40,5 @@ The parser [krill-parser.js] is generated from [krill.pegjs](./krill.pegjs) usin To generate the parser, run ```js -npm build:parser +npm run build:parser ``` diff --git a/packages/mini/krill-parser.js b/packages/mini/krill-parser.js index e85e3363..a91e46b8 100644 --- a/packages/mini/krill-parser.js +++ b/packages/mini/krill-parser.js @@ -200,27 +200,34 @@ 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]/; var peg$r2 = /^[0-9]/; var peg$r3 = /^[ \n\r\t]/; - var peg$r4 = /^[0-9a-zA-Z~]/; + var peg$r4 = /^[0-9~]/; var peg$r5 = /^[^\n]/; + var peg$r6 = /^[a-z\xB5\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137-\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148-\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C-\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA-\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9-\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC-\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF-\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F-\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0-\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB-\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE-\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0560-\u0588\u10D0-\u10FA\u10FD-\u10FF\u13F8-\u13FD\u1C80-\u1C88\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6-\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FC7\u1FD0-\u1FD3\u1FD6-\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6-\u1FF7\u210A\u210E-\u210F\u2113\u212F\u2134\u2139\u213C-\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65-\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73-\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3-\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7AF\uA7B5\uA7B7\uA7B9\uA7FA\uAB30-\uAB5A\uAB60-\uAB65\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A]/; + var peg$r7 = /^[\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5-\u06E6\u07F4-\u07F5\u07FA\u081A\u0824\u0828\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D6A\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u209C\u2C7C-\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D-\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA69C-\uA69D\uA717-\uA71F\uA770\uA788\uA7F8-\uA7F9\uA9CF\uA9E6\uAA70\uAADD\uAAF3-\uAAF4\uAB5C-\uAB5F\uFF70\uFF9E-\uFF9F]/; + var peg$r8 = /^[\xAA\xBA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05EF-\u05F2\u0620-\u063F\u0641-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u09FC\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0-\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60-\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0CF1-\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32-\u0E33\u0E40-\u0E45\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065-\u1066\u106E-\u1070\u1075-\u1081\u108E\u1100-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE-\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5-\u1CF6\u2135-\u2138\u2D30-\u2D67\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A-\uA62B\uA66E\uA6A0-\uA6E5\uA78F\uA7F7\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD-\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9E0-\uA9E4\uA9E7-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADC\uAAE0-\uAAEA\uAAF2\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/; + var peg$r9 = /^[\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC]/; + var peg$r10 = /^[A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178-\u0179\u017B\u017D\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018B\u018E-\u0191\u0193-\u0194\u0196-\u0198\u019C-\u019D\u019F-\u01A0\u01A2\u01A4\u01A6-\u01A7\u01A9\u01AC\u01AE-\u01AF\u01B1-\u01B3\u01B5\u01B7-\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A-\u023B\u023D-\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E-\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9-\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0-\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1C90-\u1CBA\u1CBD-\u1CBF\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E-\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D-\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AE\uA7B0-\uA7B4\uA7B6\uA7B8\uFF21-\uFF3A]/; + var peg$r11 = /^[\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF]/; var peg$e0 = peg$otherExpectation("number"); var peg$e1 = peg$literalExpectation(".", false); @@ -236,83 +243,93 @@ function peg$parse(input, options) { var peg$e11 = peg$literalExpectation("|", false); var peg$e12 = peg$literalExpectation("\"", false); var peg$e13 = peg$literalExpectation("'", false); - var peg$e14 = peg$classExpectation([["0", "9"], ["a", "z"], ["A", "Z"], "~"], false, false); - var peg$e15 = peg$literalExpectation("#", false); - var peg$e16 = peg$literalExpectation("^", false); - var peg$e17 = peg$literalExpectation("_", false); - var peg$e18 = peg$literalExpectation("[", false); - var peg$e19 = peg$literalExpectation("]", false); - var peg$e20 = peg$literalExpectation("{", false); - var peg$e21 = peg$literalExpectation("}", false); - var peg$e22 = peg$literalExpectation("%", false); - var peg$e23 = peg$literalExpectation("<", false); - var peg$e24 = peg$literalExpectation(">", false); - var peg$e25 = peg$literalExpectation("@", false); - var peg$e26 = peg$literalExpectation("!", false); - var peg$e27 = peg$literalExpectation("(", false); - var peg$e28 = peg$literalExpectation(")", false); - var peg$e29 = peg$literalExpectation("/", false); - 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$e14 = peg$otherExpectation("a letter, a number, \"-\", \"#\", \".\", \"^\", \"_\""); + var peg$e15 = peg$classExpectation([["0", "9"], "~"], false, false); + var peg$e16 = peg$literalExpectation("#", false); + var peg$e17 = peg$literalExpectation("^", false); + var peg$e18 = peg$literalExpectation("_", false); + var peg$e19 = peg$literalExpectation("[", false); + var peg$e20 = peg$literalExpectation("]", false); + var peg$e21 = peg$literalExpectation("{", false); + var peg$e22 = peg$literalExpectation("}", false); + var peg$e23 = peg$literalExpectation("%", false); + var peg$e24 = peg$literalExpectation("<", false); + var peg$e25 = peg$literalExpectation(">", false); + var peg$e26 = peg$literalExpectation("@", false); + var peg$e27 = peg$literalExpectation("!", false); + var peg$e28 = peg$literalExpectation("(", false); + var peg$e29 = peg$literalExpectation(")", false); + var peg$e30 = peg$literalExpectation("/", false); + var peg$e31 = peg$literalExpectation("*", false); + var peg$e32 = peg$literalExpectation("?", false); + var peg$e33 = peg$literalExpectation(":", false); + var peg$e34 = peg$literalExpectation("..", false); + var peg$e35 = peg$literalExpectation("struct", false); + var peg$e36 = peg$literalExpectation("target", false); + var peg$e37 = peg$literalExpectation("euclid", false); + var peg$e38 = peg$literalExpectation("slow", false); + var peg$e39 = peg$literalExpectation("rotL", false); + var peg$e40 = peg$literalExpectation("rotR", false); + var peg$e41 = peg$literalExpectation("fast", false); + var peg$e42 = peg$literalExpectation("scale", false); + var peg$e43 = peg$literalExpectation("//", false); + var peg$e44 = peg$classExpectation(["\n"], true, false); + var peg$e45 = peg$literalExpectation("cat", false); + var peg$e46 = peg$literalExpectation("$", false); + var peg$e47 = peg$literalExpectation("setcps", false); + var peg$e48 = peg$literalExpectation("setbpm", false); + var peg$e49 = peg$literalExpectation("hush", false); + var peg$e50 = peg$classExpectation([["a", "z"], "\xB5", ["\xDF", "\xF6"], ["\xF8", "\xFF"], "\u0101", "\u0103", "\u0105", "\u0107", "\u0109", "\u010B", "\u010D", "\u010F", "\u0111", "\u0113", "\u0115", "\u0117", "\u0119", "\u011B", "\u011D", "\u011F", "\u0121", "\u0123", "\u0125", "\u0127", "\u0129", "\u012B", "\u012D", "\u012F", "\u0131", "\u0133", "\u0135", ["\u0137", "\u0138"], "\u013A", "\u013C", "\u013E", "\u0140", "\u0142", "\u0144", "\u0146", ["\u0148", "\u0149"], "\u014B", "\u014D", "\u014F", "\u0151", "\u0153", "\u0155", "\u0157", "\u0159", "\u015B", "\u015D", "\u015F", "\u0161", "\u0163", "\u0165", "\u0167", "\u0169", "\u016B", "\u016D", "\u016F", "\u0171", "\u0173", "\u0175", "\u0177", "\u017A", "\u017C", ["\u017E", "\u0180"], "\u0183", "\u0185", "\u0188", ["\u018C", "\u018D"], "\u0192", "\u0195", ["\u0199", "\u019B"], "\u019E", "\u01A1", "\u01A3", "\u01A5", "\u01A8", ["\u01AA", "\u01AB"], "\u01AD", "\u01B0", "\u01B4", "\u01B6", ["\u01B9", "\u01BA"], ["\u01BD", "\u01BF"], "\u01C6", "\u01C9", "\u01CC", "\u01CE", "\u01D0", "\u01D2", "\u01D4", "\u01D6", "\u01D8", "\u01DA", ["\u01DC", "\u01DD"], "\u01DF", "\u01E1", "\u01E3", "\u01E5", "\u01E7", "\u01E9", "\u01EB", "\u01ED", ["\u01EF", "\u01F0"], "\u01F3", "\u01F5", "\u01F9", "\u01FB", "\u01FD", "\u01FF", "\u0201", "\u0203", "\u0205", "\u0207", "\u0209", "\u020B", "\u020D", "\u020F", "\u0211", "\u0213", "\u0215", "\u0217", "\u0219", "\u021B", "\u021D", "\u021F", "\u0221", "\u0223", "\u0225", "\u0227", "\u0229", "\u022B", "\u022D", "\u022F", "\u0231", ["\u0233", "\u0239"], "\u023C", ["\u023F", "\u0240"], "\u0242", "\u0247", "\u0249", "\u024B", "\u024D", ["\u024F", "\u0293"], ["\u0295", "\u02AF"], "\u0371", "\u0373", "\u0377", ["\u037B", "\u037D"], "\u0390", ["\u03AC", "\u03CE"], ["\u03D0", "\u03D1"], ["\u03D5", "\u03D7"], "\u03D9", "\u03DB", "\u03DD", "\u03DF", "\u03E1", "\u03E3", "\u03E5", "\u03E7", "\u03E9", "\u03EB", "\u03ED", ["\u03EF", "\u03F3"], "\u03F5", "\u03F8", ["\u03FB", "\u03FC"], ["\u0430", "\u045F"], "\u0461", "\u0463", "\u0465", "\u0467", "\u0469", "\u046B", "\u046D", "\u046F", "\u0471", "\u0473", "\u0475", "\u0477", "\u0479", "\u047B", "\u047D", "\u047F", "\u0481", "\u048B", "\u048D", "\u048F", "\u0491", "\u0493", "\u0495", "\u0497", "\u0499", "\u049B", "\u049D", "\u049F", "\u04A1", "\u04A3", "\u04A5", "\u04A7", "\u04A9", "\u04AB", "\u04AD", "\u04AF", "\u04B1", "\u04B3", "\u04B5", "\u04B7", "\u04B9", "\u04BB", "\u04BD", "\u04BF", "\u04C2", "\u04C4", "\u04C6", "\u04C8", "\u04CA", "\u04CC", ["\u04CE", "\u04CF"], "\u04D1", "\u04D3", "\u04D5", "\u04D7", "\u04D9", "\u04DB", "\u04DD", "\u04DF", "\u04E1", "\u04E3", "\u04E5", "\u04E7", "\u04E9", "\u04EB", "\u04ED", "\u04EF", "\u04F1", "\u04F3", "\u04F5", "\u04F7", "\u04F9", "\u04FB", "\u04FD", "\u04FF", "\u0501", "\u0503", "\u0505", "\u0507", "\u0509", "\u050B", "\u050D", "\u050F", "\u0511", "\u0513", "\u0515", "\u0517", "\u0519", "\u051B", "\u051D", "\u051F", "\u0521", "\u0523", "\u0525", "\u0527", "\u0529", "\u052B", "\u052D", "\u052F", ["\u0560", "\u0588"], ["\u10D0", "\u10FA"], ["\u10FD", "\u10FF"], ["\u13F8", "\u13FD"], ["\u1C80", "\u1C88"], ["\u1D00", "\u1D2B"], ["\u1D6B", "\u1D77"], ["\u1D79", "\u1D9A"], "\u1E01", "\u1E03", "\u1E05", "\u1E07", "\u1E09", "\u1E0B", "\u1E0D", "\u1E0F", "\u1E11", "\u1E13", "\u1E15", "\u1E17", "\u1E19", "\u1E1B", "\u1E1D", "\u1E1F", "\u1E21", "\u1E23", "\u1E25", "\u1E27", "\u1E29", "\u1E2B", "\u1E2D", "\u1E2F", "\u1E31", "\u1E33", "\u1E35", "\u1E37", "\u1E39", "\u1E3B", "\u1E3D", "\u1E3F", "\u1E41", "\u1E43", "\u1E45", "\u1E47", "\u1E49", "\u1E4B", "\u1E4D", "\u1E4F", "\u1E51", "\u1E53", "\u1E55", "\u1E57", "\u1E59", "\u1E5B", "\u1E5D", "\u1E5F", "\u1E61", "\u1E63", "\u1E65", "\u1E67", "\u1E69", "\u1E6B", "\u1E6D", "\u1E6F", "\u1E71", "\u1E73", "\u1E75", "\u1E77", "\u1E79", "\u1E7B", "\u1E7D", "\u1E7F", "\u1E81", "\u1E83", "\u1E85", "\u1E87", "\u1E89", "\u1E8B", "\u1E8D", "\u1E8F", "\u1E91", "\u1E93", ["\u1E95", "\u1E9D"], "\u1E9F", "\u1EA1", "\u1EA3", "\u1EA5", "\u1EA7", "\u1EA9", "\u1EAB", "\u1EAD", "\u1EAF", "\u1EB1", "\u1EB3", "\u1EB5", "\u1EB7", "\u1EB9", "\u1EBB", "\u1EBD", "\u1EBF", "\u1EC1", "\u1EC3", "\u1EC5", "\u1EC7", "\u1EC9", "\u1ECB", "\u1ECD", "\u1ECF", "\u1ED1", "\u1ED3", "\u1ED5", "\u1ED7", "\u1ED9", "\u1EDB", "\u1EDD", "\u1EDF", "\u1EE1", "\u1EE3", "\u1EE5", "\u1EE7", "\u1EE9", "\u1EEB", "\u1EED", "\u1EEF", "\u1EF1", "\u1EF3", "\u1EF5", "\u1EF7", "\u1EF9", "\u1EFB", "\u1EFD", ["\u1EFF", "\u1F07"], ["\u1F10", "\u1F15"], ["\u1F20", "\u1F27"], ["\u1F30", "\u1F37"], ["\u1F40", "\u1F45"], ["\u1F50", "\u1F57"], ["\u1F60", "\u1F67"], ["\u1F70", "\u1F7D"], ["\u1F80", "\u1F87"], ["\u1F90", "\u1F97"], ["\u1FA0", "\u1FA7"], ["\u1FB0", "\u1FB4"], ["\u1FB6", "\u1FB7"], "\u1FBE", ["\u1FC2", "\u1FC4"], ["\u1FC6", "\u1FC7"], ["\u1FD0", "\u1FD3"], ["\u1FD6", "\u1FD7"], ["\u1FE0", "\u1FE7"], ["\u1FF2", "\u1FF4"], ["\u1FF6", "\u1FF7"], "\u210A", ["\u210E", "\u210F"], "\u2113", "\u212F", "\u2134", "\u2139", ["\u213C", "\u213D"], ["\u2146", "\u2149"], "\u214E", "\u2184", ["\u2C30", "\u2C5E"], "\u2C61", ["\u2C65", "\u2C66"], "\u2C68", "\u2C6A", "\u2C6C", "\u2C71", ["\u2C73", "\u2C74"], ["\u2C76", "\u2C7B"], "\u2C81", "\u2C83", "\u2C85", "\u2C87", "\u2C89", "\u2C8B", "\u2C8D", "\u2C8F", "\u2C91", "\u2C93", "\u2C95", "\u2C97", "\u2C99", "\u2C9B", "\u2C9D", "\u2C9F", "\u2CA1", "\u2CA3", "\u2CA5", "\u2CA7", "\u2CA9", "\u2CAB", "\u2CAD", "\u2CAF", "\u2CB1", "\u2CB3", "\u2CB5", "\u2CB7", "\u2CB9", "\u2CBB", "\u2CBD", "\u2CBF", "\u2CC1", "\u2CC3", "\u2CC5", "\u2CC7", "\u2CC9", "\u2CCB", "\u2CCD", "\u2CCF", "\u2CD1", "\u2CD3", "\u2CD5", "\u2CD7", "\u2CD9", "\u2CDB", "\u2CDD", "\u2CDF", "\u2CE1", ["\u2CE3", "\u2CE4"], "\u2CEC", "\u2CEE", "\u2CF3", ["\u2D00", "\u2D25"], "\u2D27", "\u2D2D", "\uA641", "\uA643", "\uA645", "\uA647", "\uA649", "\uA64B", "\uA64D", "\uA64F", "\uA651", "\uA653", "\uA655", "\uA657", "\uA659", "\uA65B", "\uA65D", "\uA65F", "\uA661", "\uA663", "\uA665", "\uA667", "\uA669", "\uA66B", "\uA66D", "\uA681", "\uA683", "\uA685", "\uA687", "\uA689", "\uA68B", "\uA68D", "\uA68F", "\uA691", "\uA693", "\uA695", "\uA697", "\uA699", "\uA69B", "\uA723", "\uA725", "\uA727", "\uA729", "\uA72B", "\uA72D", ["\uA72F", "\uA731"], "\uA733", "\uA735", "\uA737", "\uA739", "\uA73B", "\uA73D", "\uA73F", "\uA741", "\uA743", "\uA745", "\uA747", "\uA749", "\uA74B", "\uA74D", "\uA74F", "\uA751", "\uA753", "\uA755", "\uA757", "\uA759", "\uA75B", "\uA75D", "\uA75F", "\uA761", "\uA763", "\uA765", "\uA767", "\uA769", "\uA76B", "\uA76D", "\uA76F", ["\uA771", "\uA778"], "\uA77A", "\uA77C", "\uA77F", "\uA781", "\uA783", "\uA785", "\uA787", "\uA78C", "\uA78E", "\uA791", ["\uA793", "\uA795"], "\uA797", "\uA799", "\uA79B", "\uA79D", "\uA79F", "\uA7A1", "\uA7A3", "\uA7A5", "\uA7A7", "\uA7A9", "\uA7AF", "\uA7B5", "\uA7B7", "\uA7B9", "\uA7FA", ["\uAB30", "\uAB5A"], ["\uAB60", "\uAB65"], ["\uAB70", "\uABBF"], ["\uFB00", "\uFB06"], ["\uFB13", "\uFB17"], ["\uFF41", "\uFF5A"]], false, false); + var peg$e51 = peg$classExpectation([["\u02B0", "\u02C1"], ["\u02C6", "\u02D1"], ["\u02E0", "\u02E4"], "\u02EC", "\u02EE", "\u0374", "\u037A", "\u0559", "\u0640", ["\u06E5", "\u06E6"], ["\u07F4", "\u07F5"], "\u07FA", "\u081A", "\u0824", "\u0828", "\u0971", "\u0E46", "\u0EC6", "\u10FC", "\u17D7", "\u1843", "\u1AA7", ["\u1C78", "\u1C7D"], ["\u1D2C", "\u1D6A"], "\u1D78", ["\u1D9B", "\u1DBF"], "\u2071", "\u207F", ["\u2090", "\u209C"], ["\u2C7C", "\u2C7D"], "\u2D6F", "\u2E2F", "\u3005", ["\u3031", "\u3035"], "\u303B", ["\u309D", "\u309E"], ["\u30FC", "\u30FE"], "\uA015", ["\uA4F8", "\uA4FD"], "\uA60C", "\uA67F", ["\uA69C", "\uA69D"], ["\uA717", "\uA71F"], "\uA770", "\uA788", ["\uA7F8", "\uA7F9"], "\uA9CF", "\uA9E6", "\uAA70", "\uAADD", ["\uAAF3", "\uAAF4"], ["\uAB5C", "\uAB5F"], "\uFF70", ["\uFF9E", "\uFF9F"]], false, false); + var peg$e52 = peg$classExpectation(["\xAA", "\xBA", "\u01BB", ["\u01C0", "\u01C3"], "\u0294", ["\u05D0", "\u05EA"], ["\u05EF", "\u05F2"], ["\u0620", "\u063F"], ["\u0641", "\u064A"], ["\u066E", "\u066F"], ["\u0671", "\u06D3"], "\u06D5", ["\u06EE", "\u06EF"], ["\u06FA", "\u06FC"], "\u06FF", "\u0710", ["\u0712", "\u072F"], ["\u074D", "\u07A5"], "\u07B1", ["\u07CA", "\u07EA"], ["\u0800", "\u0815"], ["\u0840", "\u0858"], ["\u0860", "\u086A"], ["\u08A0", "\u08B4"], ["\u08B6", "\u08BD"], ["\u0904", "\u0939"], "\u093D", "\u0950", ["\u0958", "\u0961"], ["\u0972", "\u0980"], ["\u0985", "\u098C"], ["\u098F", "\u0990"], ["\u0993", "\u09A8"], ["\u09AA", "\u09B0"], "\u09B2", ["\u09B6", "\u09B9"], "\u09BD", "\u09CE", ["\u09DC", "\u09DD"], ["\u09DF", "\u09E1"], ["\u09F0", "\u09F1"], "\u09FC", ["\u0A05", "\u0A0A"], ["\u0A0F", "\u0A10"], ["\u0A13", "\u0A28"], ["\u0A2A", "\u0A30"], ["\u0A32", "\u0A33"], ["\u0A35", "\u0A36"], ["\u0A38", "\u0A39"], ["\u0A59", "\u0A5C"], "\u0A5E", ["\u0A72", "\u0A74"], ["\u0A85", "\u0A8D"], ["\u0A8F", "\u0A91"], ["\u0A93", "\u0AA8"], ["\u0AAA", "\u0AB0"], ["\u0AB2", "\u0AB3"], ["\u0AB5", "\u0AB9"], "\u0ABD", "\u0AD0", ["\u0AE0", "\u0AE1"], "\u0AF9", ["\u0B05", "\u0B0C"], ["\u0B0F", "\u0B10"], ["\u0B13", "\u0B28"], ["\u0B2A", "\u0B30"], ["\u0B32", "\u0B33"], ["\u0B35", "\u0B39"], "\u0B3D", ["\u0B5C", "\u0B5D"], ["\u0B5F", "\u0B61"], "\u0B71", "\u0B83", ["\u0B85", "\u0B8A"], ["\u0B8E", "\u0B90"], ["\u0B92", "\u0B95"], ["\u0B99", "\u0B9A"], "\u0B9C", ["\u0B9E", "\u0B9F"], ["\u0BA3", "\u0BA4"], ["\u0BA8", "\u0BAA"], ["\u0BAE", "\u0BB9"], "\u0BD0", ["\u0C05", "\u0C0C"], ["\u0C0E", "\u0C10"], ["\u0C12", "\u0C28"], ["\u0C2A", "\u0C39"], "\u0C3D", ["\u0C58", "\u0C5A"], ["\u0C60", "\u0C61"], "\u0C80", ["\u0C85", "\u0C8C"], ["\u0C8E", "\u0C90"], ["\u0C92", "\u0CA8"], ["\u0CAA", "\u0CB3"], ["\u0CB5", "\u0CB9"], "\u0CBD", "\u0CDE", ["\u0CE0", "\u0CE1"], ["\u0CF1", "\u0CF2"], ["\u0D05", "\u0D0C"], ["\u0D0E", "\u0D10"], ["\u0D12", "\u0D3A"], "\u0D3D", "\u0D4E", ["\u0D54", "\u0D56"], ["\u0D5F", "\u0D61"], ["\u0D7A", "\u0D7F"], ["\u0D85", "\u0D96"], ["\u0D9A", "\u0DB1"], ["\u0DB3", "\u0DBB"], "\u0DBD", ["\u0DC0", "\u0DC6"], ["\u0E01", "\u0E30"], ["\u0E32", "\u0E33"], ["\u0E40", "\u0E45"], ["\u0E81", "\u0E82"], "\u0E84", ["\u0E87", "\u0E88"], "\u0E8A", "\u0E8D", ["\u0E94", "\u0E97"], ["\u0E99", "\u0E9F"], ["\u0EA1", "\u0EA3"], "\u0EA5", "\u0EA7", ["\u0EAA", "\u0EAB"], ["\u0EAD", "\u0EB0"], ["\u0EB2", "\u0EB3"], "\u0EBD", ["\u0EC0", "\u0EC4"], ["\u0EDC", "\u0EDF"], "\u0F00", ["\u0F40", "\u0F47"], ["\u0F49", "\u0F6C"], ["\u0F88", "\u0F8C"], ["\u1000", "\u102A"], "\u103F", ["\u1050", "\u1055"], ["\u105A", "\u105D"], "\u1061", ["\u1065", "\u1066"], ["\u106E", "\u1070"], ["\u1075", "\u1081"], "\u108E", ["\u1100", "\u1248"], ["\u124A", "\u124D"], ["\u1250", "\u1256"], "\u1258", ["\u125A", "\u125D"], ["\u1260", "\u1288"], ["\u128A", "\u128D"], ["\u1290", "\u12B0"], ["\u12B2", "\u12B5"], ["\u12B8", "\u12BE"], "\u12C0", ["\u12C2", "\u12C5"], ["\u12C8", "\u12D6"], ["\u12D8", "\u1310"], ["\u1312", "\u1315"], ["\u1318", "\u135A"], ["\u1380", "\u138F"], ["\u1401", "\u166C"], ["\u166F", "\u167F"], ["\u1681", "\u169A"], ["\u16A0", "\u16EA"], ["\u16F1", "\u16F8"], ["\u1700", "\u170C"], ["\u170E", "\u1711"], ["\u1720", "\u1731"], ["\u1740", "\u1751"], ["\u1760", "\u176C"], ["\u176E", "\u1770"], ["\u1780", "\u17B3"], "\u17DC", ["\u1820", "\u1842"], ["\u1844", "\u1878"], ["\u1880", "\u1884"], ["\u1887", "\u18A8"], "\u18AA", ["\u18B0", "\u18F5"], ["\u1900", "\u191E"], ["\u1950", "\u196D"], ["\u1970", "\u1974"], ["\u1980", "\u19AB"], ["\u19B0", "\u19C9"], ["\u1A00", "\u1A16"], ["\u1A20", "\u1A54"], ["\u1B05", "\u1B33"], ["\u1B45", "\u1B4B"], ["\u1B83", "\u1BA0"], ["\u1BAE", "\u1BAF"], ["\u1BBA", "\u1BE5"], ["\u1C00", "\u1C23"], ["\u1C4D", "\u1C4F"], ["\u1C5A", "\u1C77"], ["\u1CE9", "\u1CEC"], ["\u1CEE", "\u1CF1"], ["\u1CF5", "\u1CF6"], ["\u2135", "\u2138"], ["\u2D30", "\u2D67"], ["\u2D80", "\u2D96"], ["\u2DA0", "\u2DA6"], ["\u2DA8", "\u2DAE"], ["\u2DB0", "\u2DB6"], ["\u2DB8", "\u2DBE"], ["\u2DC0", "\u2DC6"], ["\u2DC8", "\u2DCE"], ["\u2DD0", "\u2DD6"], ["\u2DD8", "\u2DDE"], "\u3006", "\u303C", ["\u3041", "\u3096"], "\u309F", ["\u30A1", "\u30FA"], "\u30FF", ["\u3105", "\u312F"], ["\u3131", "\u318E"], ["\u31A0", "\u31BA"], ["\u31F0", "\u31FF"], ["\u3400", "\u4DB5"], ["\u4E00", "\u9FEF"], ["\uA000", "\uA014"], ["\uA016", "\uA48C"], ["\uA4D0", "\uA4F7"], ["\uA500", "\uA60B"], ["\uA610", "\uA61F"], ["\uA62A", "\uA62B"], "\uA66E", ["\uA6A0", "\uA6E5"], "\uA78F", "\uA7F7", ["\uA7FB", "\uA801"], ["\uA803", "\uA805"], ["\uA807", "\uA80A"], ["\uA80C", "\uA822"], ["\uA840", "\uA873"], ["\uA882", "\uA8B3"], ["\uA8F2", "\uA8F7"], "\uA8FB", ["\uA8FD", "\uA8FE"], ["\uA90A", "\uA925"], ["\uA930", "\uA946"], ["\uA960", "\uA97C"], ["\uA984", "\uA9B2"], ["\uA9E0", "\uA9E4"], ["\uA9E7", "\uA9EF"], ["\uA9FA", "\uA9FE"], ["\uAA00", "\uAA28"], ["\uAA40", "\uAA42"], ["\uAA44", "\uAA4B"], ["\uAA60", "\uAA6F"], ["\uAA71", "\uAA76"], "\uAA7A", ["\uAA7E", "\uAAAF"], "\uAAB1", ["\uAAB5", "\uAAB6"], ["\uAAB9", "\uAABD"], "\uAAC0", "\uAAC2", ["\uAADB", "\uAADC"], ["\uAAE0", "\uAAEA"], "\uAAF2", ["\uAB01", "\uAB06"], ["\uAB09", "\uAB0E"], ["\uAB11", "\uAB16"], ["\uAB20", "\uAB26"], ["\uAB28", "\uAB2E"], ["\uABC0", "\uABE2"], ["\uAC00", "\uD7A3"], ["\uD7B0", "\uD7C6"], ["\uD7CB", "\uD7FB"], ["\uF900", "\uFA6D"], ["\uFA70", "\uFAD9"], "\uFB1D", ["\uFB1F", "\uFB28"], ["\uFB2A", "\uFB36"], ["\uFB38", "\uFB3C"], "\uFB3E", ["\uFB40", "\uFB41"], ["\uFB43", "\uFB44"], ["\uFB46", "\uFBB1"], ["\uFBD3", "\uFD3D"], ["\uFD50", "\uFD8F"], ["\uFD92", "\uFDC7"], ["\uFDF0", "\uFDFB"], ["\uFE70", "\uFE74"], ["\uFE76", "\uFEFC"], ["\uFF66", "\uFF6F"], ["\uFF71", "\uFF9D"], ["\uFFA0", "\uFFBE"], ["\uFFC2", "\uFFC7"], ["\uFFCA", "\uFFCF"], ["\uFFD2", "\uFFD7"], ["\uFFDA", "\uFFDC"]], false, false); + var peg$e53 = peg$classExpectation(["\u01C5", "\u01C8", "\u01CB", "\u01F2", ["\u1F88", "\u1F8F"], ["\u1F98", "\u1F9F"], ["\u1FA8", "\u1FAF"], "\u1FBC", "\u1FCC", "\u1FFC"], false, false); + var peg$e54 = peg$classExpectation([["A", "Z"], ["\xC0", "\xD6"], ["\xD8", "\xDE"], "\u0100", "\u0102", "\u0104", "\u0106", "\u0108", "\u010A", "\u010C", "\u010E", "\u0110", "\u0112", "\u0114", "\u0116", "\u0118", "\u011A", "\u011C", "\u011E", "\u0120", "\u0122", "\u0124", "\u0126", "\u0128", "\u012A", "\u012C", "\u012E", "\u0130", "\u0132", "\u0134", "\u0136", "\u0139", "\u013B", "\u013D", "\u013F", "\u0141", "\u0143", "\u0145", "\u0147", "\u014A", "\u014C", "\u014E", "\u0150", "\u0152", "\u0154", "\u0156", "\u0158", "\u015A", "\u015C", "\u015E", "\u0160", "\u0162", "\u0164", "\u0166", "\u0168", "\u016A", "\u016C", "\u016E", "\u0170", "\u0172", "\u0174", "\u0176", ["\u0178", "\u0179"], "\u017B", "\u017D", ["\u0181", "\u0182"], "\u0184", ["\u0186", "\u0187"], ["\u0189", "\u018B"], ["\u018E", "\u0191"], ["\u0193", "\u0194"], ["\u0196", "\u0198"], ["\u019C", "\u019D"], ["\u019F", "\u01A0"], "\u01A2", "\u01A4", ["\u01A6", "\u01A7"], "\u01A9", "\u01AC", ["\u01AE", "\u01AF"], ["\u01B1", "\u01B3"], "\u01B5", ["\u01B7", "\u01B8"], "\u01BC", "\u01C4", "\u01C7", "\u01CA", "\u01CD", "\u01CF", "\u01D1", "\u01D3", "\u01D5", "\u01D7", "\u01D9", "\u01DB", "\u01DE", "\u01E0", "\u01E2", "\u01E4", "\u01E6", "\u01E8", "\u01EA", "\u01EC", "\u01EE", "\u01F1", "\u01F4", ["\u01F6", "\u01F8"], "\u01FA", "\u01FC", "\u01FE", "\u0200", "\u0202", "\u0204", "\u0206", "\u0208", "\u020A", "\u020C", "\u020E", "\u0210", "\u0212", "\u0214", "\u0216", "\u0218", "\u021A", "\u021C", "\u021E", "\u0220", "\u0222", "\u0224", "\u0226", "\u0228", "\u022A", "\u022C", "\u022E", "\u0230", "\u0232", ["\u023A", "\u023B"], ["\u023D", "\u023E"], "\u0241", ["\u0243", "\u0246"], "\u0248", "\u024A", "\u024C", "\u024E", "\u0370", "\u0372", "\u0376", "\u037F", "\u0386", ["\u0388", "\u038A"], "\u038C", ["\u038E", "\u038F"], ["\u0391", "\u03A1"], ["\u03A3", "\u03AB"], "\u03CF", ["\u03D2", "\u03D4"], "\u03D8", "\u03DA", "\u03DC", "\u03DE", "\u03E0", "\u03E2", "\u03E4", "\u03E6", "\u03E8", "\u03EA", "\u03EC", "\u03EE", "\u03F4", "\u03F7", ["\u03F9", "\u03FA"], ["\u03FD", "\u042F"], "\u0460", "\u0462", "\u0464", "\u0466", "\u0468", "\u046A", "\u046C", "\u046E", "\u0470", "\u0472", "\u0474", "\u0476", "\u0478", "\u047A", "\u047C", "\u047E", "\u0480", "\u048A", "\u048C", "\u048E", "\u0490", "\u0492", "\u0494", "\u0496", "\u0498", "\u049A", "\u049C", "\u049E", "\u04A0", "\u04A2", "\u04A4", "\u04A6", "\u04A8", "\u04AA", "\u04AC", "\u04AE", "\u04B0", "\u04B2", "\u04B4", "\u04B6", "\u04B8", "\u04BA", "\u04BC", "\u04BE", ["\u04C0", "\u04C1"], "\u04C3", "\u04C5", "\u04C7", "\u04C9", "\u04CB", "\u04CD", "\u04D0", "\u04D2", "\u04D4", "\u04D6", "\u04D8", "\u04DA", "\u04DC", "\u04DE", "\u04E0", "\u04E2", "\u04E4", "\u04E6", "\u04E8", "\u04EA", "\u04EC", "\u04EE", "\u04F0", "\u04F2", "\u04F4", "\u04F6", "\u04F8", "\u04FA", "\u04FC", "\u04FE", "\u0500", "\u0502", "\u0504", "\u0506", "\u0508", "\u050A", "\u050C", "\u050E", "\u0510", "\u0512", "\u0514", "\u0516", "\u0518", "\u051A", "\u051C", "\u051E", "\u0520", "\u0522", "\u0524", "\u0526", "\u0528", "\u052A", "\u052C", "\u052E", ["\u0531", "\u0556"], ["\u10A0", "\u10C5"], "\u10C7", "\u10CD", ["\u13A0", "\u13F5"], ["\u1C90", "\u1CBA"], ["\u1CBD", "\u1CBF"], "\u1E00", "\u1E02", "\u1E04", "\u1E06", "\u1E08", "\u1E0A", "\u1E0C", "\u1E0E", "\u1E10", "\u1E12", "\u1E14", "\u1E16", "\u1E18", "\u1E1A", "\u1E1C", "\u1E1E", "\u1E20", "\u1E22", "\u1E24", "\u1E26", "\u1E28", "\u1E2A", "\u1E2C", "\u1E2E", "\u1E30", "\u1E32", "\u1E34", "\u1E36", "\u1E38", "\u1E3A", "\u1E3C", "\u1E3E", "\u1E40", "\u1E42", "\u1E44", "\u1E46", "\u1E48", "\u1E4A", "\u1E4C", "\u1E4E", "\u1E50", "\u1E52", "\u1E54", "\u1E56", "\u1E58", "\u1E5A", "\u1E5C", "\u1E5E", "\u1E60", "\u1E62", "\u1E64", "\u1E66", "\u1E68", "\u1E6A", "\u1E6C", "\u1E6E", "\u1E70", "\u1E72", "\u1E74", "\u1E76", "\u1E78", "\u1E7A", "\u1E7C", "\u1E7E", "\u1E80", "\u1E82", "\u1E84", "\u1E86", "\u1E88", "\u1E8A", "\u1E8C", "\u1E8E", "\u1E90", "\u1E92", "\u1E94", "\u1E9E", "\u1EA0", "\u1EA2", "\u1EA4", "\u1EA6", "\u1EA8", "\u1EAA", "\u1EAC", "\u1EAE", "\u1EB0", "\u1EB2", "\u1EB4", "\u1EB6", "\u1EB8", "\u1EBA", "\u1EBC", "\u1EBE", "\u1EC0", "\u1EC2", "\u1EC4", "\u1EC6", "\u1EC8", "\u1ECA", "\u1ECC", "\u1ECE", "\u1ED0", "\u1ED2", "\u1ED4", "\u1ED6", "\u1ED8", "\u1EDA", "\u1EDC", "\u1EDE", "\u1EE0", "\u1EE2", "\u1EE4", "\u1EE6", "\u1EE8", "\u1EEA", "\u1EEC", "\u1EEE", "\u1EF0", "\u1EF2", "\u1EF4", "\u1EF6", "\u1EF8", "\u1EFA", "\u1EFC", "\u1EFE", ["\u1F08", "\u1F0F"], ["\u1F18", "\u1F1D"], ["\u1F28", "\u1F2F"], ["\u1F38", "\u1F3F"], ["\u1F48", "\u1F4D"], "\u1F59", "\u1F5B", "\u1F5D", "\u1F5F", ["\u1F68", "\u1F6F"], ["\u1FB8", "\u1FBB"], ["\u1FC8", "\u1FCB"], ["\u1FD8", "\u1FDB"], ["\u1FE8", "\u1FEC"], ["\u1FF8", "\u1FFB"], "\u2102", "\u2107", ["\u210B", "\u210D"], ["\u2110", "\u2112"], "\u2115", ["\u2119", "\u211D"], "\u2124", "\u2126", "\u2128", ["\u212A", "\u212D"], ["\u2130", "\u2133"], ["\u213E", "\u213F"], "\u2145", "\u2183", ["\u2C00", "\u2C2E"], "\u2C60", ["\u2C62", "\u2C64"], "\u2C67", "\u2C69", "\u2C6B", ["\u2C6D", "\u2C70"], "\u2C72", "\u2C75", ["\u2C7E", "\u2C80"], "\u2C82", "\u2C84", "\u2C86", "\u2C88", "\u2C8A", "\u2C8C", "\u2C8E", "\u2C90", "\u2C92", "\u2C94", "\u2C96", "\u2C98", "\u2C9A", "\u2C9C", "\u2C9E", "\u2CA0", "\u2CA2", "\u2CA4", "\u2CA6", "\u2CA8", "\u2CAA", "\u2CAC", "\u2CAE", "\u2CB0", "\u2CB2", "\u2CB4", "\u2CB6", "\u2CB8", "\u2CBA", "\u2CBC", "\u2CBE", "\u2CC0", "\u2CC2", "\u2CC4", "\u2CC6", "\u2CC8", "\u2CCA", "\u2CCC", "\u2CCE", "\u2CD0", "\u2CD2", "\u2CD4", "\u2CD6", "\u2CD8", "\u2CDA", "\u2CDC", "\u2CDE", "\u2CE0", "\u2CE2", "\u2CEB", "\u2CED", "\u2CF2", "\uA640", "\uA642", "\uA644", "\uA646", "\uA648", "\uA64A", "\uA64C", "\uA64E", "\uA650", "\uA652", "\uA654", "\uA656", "\uA658", "\uA65A", "\uA65C", "\uA65E", "\uA660", "\uA662", "\uA664", "\uA666", "\uA668", "\uA66A", "\uA66C", "\uA680", "\uA682", "\uA684", "\uA686", "\uA688", "\uA68A", "\uA68C", "\uA68E", "\uA690", "\uA692", "\uA694", "\uA696", "\uA698", "\uA69A", "\uA722", "\uA724", "\uA726", "\uA728", "\uA72A", "\uA72C", "\uA72E", "\uA732", "\uA734", "\uA736", "\uA738", "\uA73A", "\uA73C", "\uA73E", "\uA740", "\uA742", "\uA744", "\uA746", "\uA748", "\uA74A", "\uA74C", "\uA74E", "\uA750", "\uA752", "\uA754", "\uA756", "\uA758", "\uA75A", "\uA75C", "\uA75E", "\uA760", "\uA762", "\uA764", "\uA766", "\uA768", "\uA76A", "\uA76C", "\uA76E", "\uA779", "\uA77B", ["\uA77D", "\uA77E"], "\uA780", "\uA782", "\uA784", "\uA786", "\uA78B", "\uA78D", "\uA790", "\uA792", "\uA796", "\uA798", "\uA79A", "\uA79C", "\uA79E", "\uA7A0", "\uA7A2", "\uA7A4", "\uA7A6", "\uA7A8", ["\uA7AA", "\uA7AE"], ["\uA7B0", "\uA7B4"], "\uA7B6", "\uA7B8", ["\uFF21", "\uFF3A"]], false, false); + var peg$e55 = peg$classExpectation([["\u16EE", "\u16F0"], ["\u2160", "\u2182"], ["\u2185", "\u2188"], "\u3007", ["\u3021", "\u3029"], ["\u3038", "\u303A"], ["\uA6E6", "\uA6EF"]], false, 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 +668,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; @@ -808,60 +845,69 @@ function peg$parse(input, options) { } function peg$parsestep_char() { - var s0; + var s0, s1; - if (peg$r4.test(input.charAt(peg$currPos))) { - s0 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e14); } - } + peg$silentFails++; + s0 = peg$parseunicode_letter(); if (s0 === peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 45) { - s0 = peg$c1; + if (peg$r4.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e4); } + if (peg$silentFails === 0) { peg$fail(peg$e15); } } if (s0 === peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 35) { - s0 = peg$c8; + if (input.charCodeAt(peg$currPos) === 45) { + s0 = peg$c1; peg$currPos++; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e15); } + if (peg$silentFails === 0) { peg$fail(peg$e4); } } if (s0 === peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 46) { - s0 = peg$c0; + if (input.charCodeAt(peg$currPos) === 35) { + s0 = peg$c8; peg$currPos++; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e1); } + if (peg$silentFails === 0) { peg$fail(peg$e16); } } if (s0 === peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 94) { - s0 = peg$c9; + if (input.charCodeAt(peg$currPos) === 46) { + s0 = peg$c0; peg$currPos++; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e16); } + if (peg$silentFails === 0) { peg$fail(peg$e1); } } if (s0 === peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 95) { - s0 = peg$c10; + if (input.charCodeAt(peg$currPos) === 94) { + s0 = peg$c9; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e17); } } + if (s0 === peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 95) { + s0 = peg$c10; + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e18); } + } + } } } } } } + peg$silentFails--; + if (s0 === peg$FAILED) { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e14); } + } return s0; } @@ -884,7 +930,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; @@ -903,7 +949,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e18); } + if (peg$silentFails === 0) { peg$fail(peg$e19); } } if (s2 !== peg$FAILED) { s3 = peg$parsews(); @@ -915,12 +961,12 @@ function peg$parse(input, options) { peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e19); } + if (peg$silentFails === 0) { peg$fail(peg$e20); } } 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; @@ -947,7 +993,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e20); } + if (peg$silentFails === 0) { peg$fail(peg$e21); } } if (s2 !== peg$FAILED) { s3 = peg$parsews(); @@ -959,7 +1005,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e21); } + if (peg$silentFails === 0) { peg$fail(peg$e22); } } if (s6 !== peg$FAILED) { s7 = peg$parsepolymeter_steps(); @@ -968,7 +1014,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; @@ -994,13 +1040,13 @@ function peg$parse(input, options) { peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e22); } + if (peg$silentFails === 0) { peg$fail(peg$e23); } } if (s1 !== peg$FAILED) { 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; @@ -1023,7 +1069,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e23); } + if (peg$silentFails === 0) { peg$fail(peg$e24); } } if (s2 !== peg$FAILED) { s3 = peg$parsews(); @@ -1035,12 +1081,12 @@ function peg$parse(input, options) { peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e24); } + if (peg$silentFails === 0) { peg$fail(peg$e25); } } 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 +1136,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(); + } } } } @@ -1107,34 +1156,6 @@ function peg$parse(input, options) { if (input.charCodeAt(peg$currPos) === 64) { s1 = peg$c18; peg$currPos++; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e25); } - } - if (s1 !== peg$FAILED) { - s2 = peg$parsenumber(); - if (s2 !== peg$FAILED) { - peg$savedPos = s0; - s0 = peg$f6(s2); - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - return s0; - } - - function peg$parseop_replicate() { - var s0, s1, s2; - - s0 = peg$currPos; - if (input.charCodeAt(peg$currPos) === 33) { - s1 = peg$c19; - peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e26); } @@ -1156,6 +1177,34 @@ function peg$parse(input, options) { return s0; } + function peg$parseop_replicate() { + var s0, s1, s2; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 33) { + s1 = peg$c19; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e27); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parsenumber(); + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s0 = peg$f8(s2); + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + function peg$parseop_bjorklund() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13; @@ -1165,7 +1214,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e27); } + if (peg$silentFails === 0) { peg$fail(peg$e28); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); @@ -1193,11 +1242,11 @@ function peg$parse(input, options) { peg$currPos++; } else { s13 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e28); } + if (peg$silentFails === 0) { peg$fail(peg$e29); } } 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; @@ -1231,13 +1280,13 @@ function peg$parse(input, options) { peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e29); } + if (peg$silentFails === 0) { peg$fail(peg$e30); } } if (s1 !== peg$FAILED) { 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; @@ -1259,13 +1308,13 @@ function peg$parse(input, options) { peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e30); } + if (peg$silentFails === 0) { peg$fail(peg$e31); } } if (s1 !== peg$FAILED) { 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; @@ -1287,7 +1336,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e31); } + if (peg$silentFails === 0) { peg$fail(peg$e32); } } if (s1 !== peg$FAILED) { s2 = peg$parsenumber(); @@ -1295,7 +1344,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; @@ -1313,13 +1362,41 @@ function peg$parse(input, options) { peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e32); } + if (peg$silentFails === 0) { peg$fail(peg$e33); } } if (s1 !== peg$FAILED) { 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$e34); } + } + 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 +1422,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 +1447,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 +1496,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 +1545,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 +1566,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 +1586,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 +1609,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 +1659,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$e35); } } 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 +1688,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$e36); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); @@ -1627,7 +1704,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 +1729,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$e37); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); @@ -1672,7 +1749,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,68 +1769,10 @@ 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; peg$currPos += 4; - } else { - 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); } @@ -1776,12 +1795,12 @@ 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; @@ -1805,16 +1824,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$e40); } + } + 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$e41); } + } + 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$e42); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); @@ -1834,7 +1911,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 +1936,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$e43); } } if (s1 !== peg$FAILED) { s2 = []; @@ -1873,7 +1950,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$e44); } } while (s3 !== peg$FAILED) { s2.push(s3); @@ -1882,7 +1959,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$e44); } } } s1 = [s1, s2]; @@ -1899,12 +1976,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$e45); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); @@ -1913,7 +1990,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e18); } + if (peg$silentFails === 0) { peg$fail(peg$e19); } } if (s3 !== peg$FAILED) { s4 = peg$parsews(); @@ -1926,7 +2003,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 +2020,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; @@ -1959,11 +2036,11 @@ function peg$parse(input, options) { peg$currPos++; } else { s8 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e19); } + if (peg$silentFails === 0) { peg$fail(peg$e20); } } 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 +2086,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 +2097,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$e46); } } 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 +2133,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 +2166,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 +2179,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$e47); } } 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 +2208,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$e48); } } 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 +2237,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$e49); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f36(); + s1 = peg$f38(); } s0 = s1; @@ -2187,6 +2264,113 @@ function peg$parse(input, options) { return s0; } + function peg$parseunicode_letter() { + var s0; + + s0 = peg$parseLu(); + if (s0 === peg$FAILED) { + s0 = peg$parseLl(); + if (s0 === peg$FAILED) { + s0 = peg$parseLt(); + if (s0 === peg$FAILED) { + s0 = peg$parseLm(); + if (s0 === peg$FAILED) { + s0 = peg$parseLo(); + if (s0 === peg$FAILED) { + s0 = peg$parseNl(); + } + } + } + } + } + + return s0; + } + + function peg$parseLl() { + var s0; + + if (peg$r6.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e50); } + } + + return s0; + } + + function peg$parseLm() { + var s0; + + if (peg$r7.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e51); } + } + + return s0; + } + + function peg$parseLo() { + var s0; + + if (peg$r8.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e52); } + } + + return s0; + } + + function peg$parseLt() { + var s0; + + if (peg$r9.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e53); } + } + + return s0; + } + + function peg$parseLu() { + var s0; + + if (peg$r10.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e54); } + } + + return s0; + } + + function peg$parseNl() { + var s0; + + if (peg$r11.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e55); } + } + + return s0; + } + var AtomStub = function(source) { diff --git a/packages/mini/krill.pegjs b/packages/mini/krill.pegjs index 72b453be..448d291e 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 = "-" @@ -100,7 +103,8 @@ quote = '"' / "'" // ------------------ steps and cycles --------------------------- // single step definition (e.g bd) -step_char = [0-9a-zA-Z~] / "-" / "#" / "." / "^" / "_" +step_char "a letter, a number, \"-\", \"#\", \".\", \"^\", \"_\"" = + unicode_letter / [0-9~] / "-" / "#" / "." / "^" / "_" step = ws chars:step_char+ ws { return new AtomStub(chars.join("")) } // define a sub cycle e.g. [1 2, 3 [4]] @@ -123,7 +127,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 +150,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}); @@ -259,3 +266,25 @@ hush = "hush" // ---------------------- statements ---------------------------- statement = mini_definition / command + +// ---------------------- unicode ---------------------------- + +unicode_letter = Lu / Ll / Lt / Lm / Lo / Nl + +// Letter, Lowercase +Ll = [\u0061-\u007A\u00B5\u00DF-\u00F6\u00F8-\u00FF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137-\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148-\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C-\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA-\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9-\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC-\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF-\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F-\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0-\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB-\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE-\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0560-\u0588\u10D0-\u10FA\u10FD-\u10FF\u13F8-\u13FD\u1C80-\u1C88\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6-\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FC7\u1FD0-\u1FD3\u1FD6-\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6-\u1FF7\u210A\u210E-\u210F\u2113\u212F\u2134\u2139\u213C-\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65-\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73-\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3-\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7AF\uA7B5\uA7B7\uA7B9\uA7FA\uAB30-\uAB5A\uAB60-\uAB65\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A] + +// Letter, Modifier +Lm = [\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5-\u06E6\u07F4-\u07F5\u07FA\u081A\u0824\u0828\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D6A\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u209C\u2C7C-\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D-\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA69C-\uA69D\uA717-\uA71F\uA770\uA788\uA7F8-\uA7F9\uA9CF\uA9E6\uAA70\uAADD\uAAF3-\uAAF4\uAB5C-\uAB5F\uFF70\uFF9E-\uFF9F] + +// Letter, Other +Lo = [\u00AA\u00BA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05EF-\u05F2\u0620-\u063F\u0641-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u09FC\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0-\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60-\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0CF1-\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32-\u0E33\u0E40-\u0E45\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065-\u1066\u106E-\u1070\u1075-\u1081\u108E\u1100-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE-\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5-\u1CF6\u2135-\u2138\u2D30-\u2D67\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A-\uA62B\uA66E\uA6A0-\uA6E5\uA78F\uA7F7\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD-\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9E0-\uA9E4\uA9E7-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADC\uAAE0-\uAAEA\uAAF2\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC] + +// Letter, Titlecase +Lt = [\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC] + +// Letter, Uppercase +Lu = [\u0041-\u005A\u00C0-\u00D6\u00D8-\u00DE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178-\u0179\u017B\u017D\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018B\u018E-\u0191\u0193-\u0194\u0196-\u0198\u019C-\u019D\u019F-\u01A0\u01A2\u01A4\u01A6-\u01A7\u01A9\u01AC\u01AE-\u01AF\u01B1-\u01B3\u01B5\u01B7-\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A-\u023B\u023D-\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E-\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9-\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0-\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1C90-\u1CBA\u1CBD-\u1CBF\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E-\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D-\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AE\uA7B0-\uA7B4\uA7B6\uA7B8\uFF21-\uFF3A] + +// Number, Letter +Nl = [\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF] \ No newline at end of file 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/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/README.md b/packages/osc/README.md index cab6d629..824d79a4 100644 --- a/packages/osc/README.md +++ b/packages/osc/README.md @@ -34,6 +34,6 @@ Now open the REPL and type: s(" hh").osc() ``` -or just [click here](https://strudel.tidalcycles.org/#cygiPGJkIHNkPiBoaCIpLm9zYygp)... +or just [click here](https://strudel.cc/#cygiPGJkIHNkPiBoaCIpLm9zYygp)... -You can read more about [how to use Superdirt with Strudel the Tutorial](https://strudel.tidalcycles.org/learn/input-output/#superdirt-api) +You can read more about [how to use Superdirt with Strudel the Tutorial](https://strudel.cc/learn/input-output/#superdirt-api) diff --git a/packages/osc/osc.mjs b/packages/osc/osc.mjs index 586da8e3..f77f0ac5 100644 --- a/packages/osc/osc.mjs +++ b/packages/osc/osc.mjs @@ -37,7 +37,7 @@ function connect() { /** * * Sends each hap as an OSC message, which can be picked up by SuperCollider or any other OSC-enabled software. - * For more info, read [MIDI & OSC in the docs](https://strudel.tidalcycles.org/learn/input-output) + * For more info, read [MIDI & OSC in the docs](https://strudel.cc/learn/input-output) * * @name osc * @memberof Pattern diff --git a/packages/react/README.md b/packages/react/README.md index f65f48b0..4b55adbb 100644 --- a/packages/react/README.md +++ b/packages/react/README.md @@ -21,12 +21,12 @@ import { samples, initAudioOnFirstClick } from '@strudel.cycles/webaudio'; async function prebake() { await samples( - 'https://strudel.tidalcycles.org/tidal-drum-machines.json', + 'https://strudel.cc/tidal-drum-machines.json', 'github:ritchse/tidal-drum-machines/main/machines/' ); await samples( - 'https://strudel.tidalcycles.org/EmuSP12.json', - 'https://strudel.tidalcycles.org/EmuSP12/' + 'https://strudel.cc/EmuSP12.json', + 'https://strudel.cc/EmuSP12/' ); } diff --git a/packages/react/package.json b/packages/react/package.json index deef95d8..df017d91 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -33,12 +33,17 @@ "homepage": "https://github.com/tidalcycles/strudel#readme", "dependencies": { "@codemirror/autocomplete": "^6.6.0", + "@codemirror/commands": "^6.0.0", "@codemirror/lang-javascript": "^6.1.7", + "@codemirror/language": "^6.0.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/search": "^6.0.0", "@codemirror/state": "^6.2.0", "@codemirror/view": "^6.10.0", "@lezer/highlight": "^1.1.4", "@replit/codemirror-emacs": "^6.0.1", "@replit/codemirror-vim": "^6.0.14", + "@replit/codemirror-vscode-keymap": "^6.0.2", "@strudel.cycles/core": "workspace:*", "@strudel.cycles/transpiler": "workspace:*", "@strudel.cycles/webaudio": "workspace:*", diff --git a/packages/react/src/components/Autocomplete.jsx b/packages/react/src/components/Autocomplete.jsx index 7ec81d2d..677baa6e 100644 --- a/packages/react/src/components/Autocomplete.jsx +++ b/packages/react/src/components/Autocomplete.jsx @@ -26,7 +26,6 @@ export function Autocomplete({ doc }) {
 {
-                console.log('ola!');
                 navigator.clipboard.writeText(example);
                 e.stopPropagation();
               }}
diff --git a/packages/react/src/components/CodeMirror6.jsx b/packages/react/src/components/CodeMirror6.jsx
index 0f1b2274..667cd7e6 100644
--- a/packages/react/src/components/CodeMirror6.jsx
+++ b/packages/react/src/components/CodeMirror6.jsx
@@ -1,12 +1,15 @@
 import { autocompletion } from '@codemirror/autocomplete';
+import { Prec } from '@codemirror/state';
 import { javascript, javascriptLanguage } from '@codemirror/lang-javascript';
-import { EditorView } from '@codemirror/view';
+import { ViewPlugin, EditorView, keymap } from '@codemirror/view';
 import { emacs } from '@replit/codemirror-emacs';
 import { vim } from '@replit/codemirror-vim';
+import { vscodeKeymap } from '@replit/codemirror-vscode-keymap';
 import _CodeMirror from '@uiw/react-codemirror';
 import React, { useCallback, useMemo } from 'react';
 import strudelTheme from '../themes/strudel-theme';
 import { strudelAutocomplete } from './Autocomplete';
+import { strudelTooltip } from './Tooltip';
 import {
   highlightExtension,
   flashField,
@@ -15,10 +18,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,
@@ -30,6 +34,7 @@ export default function CodeMirror({
   keybindings,
   isLineNumbersDisplayed,
   isAutoCompletionEnabled,
+  isTooltipEnabled,
   isLineWrappingEnabled,
   fontSize = 18,
   fontFamily = 'monospace',
@@ -60,11 +65,25 @@ export default function CodeMirror({
     [onSelectionChange],
   );
 
+  const vscodePlugin = ViewPlugin.fromClass(
+    class {
+      constructor(view) {}
+    },
+    {
+      provide: (plugin) => {
+        return Prec.highest(keymap.of([...vscodeKeymap]));
+      },
+    },
+  );
+
+  const vscodeExtension = (options) => [vscodePlugin].concat(options ?? []);
+
   const extensions = useMemo(() => {
     let _extensions = [...staticExtensions];
     let bindings = {
       vim,
       emacs,
+      vscode: vscodeExtension,
     };
 
     if (bindings[keybindings]) {
@@ -77,12 +96,18 @@ export default function CodeMirror({
       _extensions.push(autocompletion({ override: [] }));
     }
 
+    if (isTooltipEnabled) {
+      _extensions.push(strudelTooltip);
+    }
+
+    _extensions.push([keymap.of({})]);
+
     if (isLineWrappingEnabled) {
       _extensions.push(EditorView.lineWrapping);
     }
 
     return _extensions;
-  }, [keybindings, isAutoCompletionEnabled, isLineWrappingEnabled]);
+  }, [keybindings, isAutoCompletionEnabled, isTooltipEnabled, isLineWrappingEnabled]);
 
   const basicSetup = useMemo(() => ({ lineNumbers: isLineNumbersDisplayed }), [isLineNumbersDisplayed]);
 
diff --git a/packages/react/src/components/Tooltip.jsx b/packages/react/src/components/Tooltip.jsx
new file mode 100644
index 00000000..a443c123
--- /dev/null
+++ b/packages/react/src/components/Tooltip.jsx
@@ -0,0 +1,69 @@
+import { createRoot } from 'react-dom/client';
+import { hoverTooltip } from '@codemirror/view';
+import jsdoc from '../../../../doc.json';
+import { Autocomplete } from './Autocomplete';
+
+const getDocLabel = (doc) => doc.name || doc.longname;
+
+let ctrlDown = false;
+
+// Record Control key event to trigger or block the tooltip depending on the state
+window.addEventListener(
+  'keyup',
+  function (e) {
+    if (e.key == 'Control') {
+      ctrlDown = false;
+    }
+  },
+  true,
+);
+
+window.addEventListener(
+  'keydown',
+  function (e) {
+    if (e.key == 'Control') {
+      ctrlDown = true;
+    }
+  },
+  true,
+);
+
+export const strudelTooltip = hoverTooltip(
+  (view, pos, side) => {
+    // Word selection from CodeMirror Hover Tooltip example https://codemirror.net/examples/tooltip/#hover-tooltips
+    let { from, to, text } = view.state.doc.lineAt(pos);
+    let start = pos,
+      end = pos;
+    while (start > from && /\w/.test(text[start - from - 1])) {
+      start--;
+    }
+    while (end < to && /\w/.test(text[end - from])) {
+      end++;
+    }
+    if ((start == pos && side < 0) || (end == pos && side > 0)) {
+      return null;
+    }
+    let word = text.slice(start - from, end - from);
+    // Get entry from Strudel documentation
+    let entry = jsdoc.docs.filter((doc) => getDocLabel(doc) === word)[0];
+    if (!entry) {
+      return null;
+    }
+    if (!ctrlDown) {
+      return null;
+    }
+    return {
+      pos: start,
+      end,
+      above: false,
+      arrow: true,
+      create(view) {
+        let dom = document.createElement('div');
+        dom.className = 'strudel-tooltip';
+        createRoot(dom).render();
+        return { dom };
+      },
+    };
+  },
+  { hoverTime: 10 },
+);
diff --git a/packages/react/src/components/style.css b/packages/react/src/components/style.css
index d61c6619..6336bba3 100644
--- a/packages/react/src/components/style.css
+++ b/packages/react/src/components/style.css
@@ -28,3 +28,7 @@
 footer {
   z-index: 0 !important;
 }
+
+.strudel-tooltip {
+  padding: 5px;
+}
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/superdough/README.md b/packages/superdough/README.md
index ac46f69e..c5950dbf 100644
--- a/packages/superdough/README.md
+++ b/packages/superdough/README.md
@@ -1,7 +1,7 @@
 # superdough
 
 superdough is a simple web audio sampler and synth, intended for live coding.
-It is the default output of [strudel](https://strudel.tidalcycles.org/).
+It is the default output of [strudel](https://strudel.cc/).
 This package has no ties to strudel and can be used to quickly bake your own music system on the web.
 
 ## Install
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 32ca0bb2..d87ea94d 100644
--- a/packages/superdough/helpers.mjs
+++ b/packages/superdough/helpers.mjs
@@ -78,6 +78,17 @@ export const getParamADSR = (param, attack, decay, sustain, release, min, max, b
   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,
@@ -112,3 +123,25 @@ export function createFilter(
 
   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 69ba6f8c..0f862c03 100644
--- a/packages/superdough/package.json
+++ b/packages/superdough/package.json
@@ -1,6 +1,6 @@
 {
   "name": "superdough",
-  "version": "0.9.8",
+  "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 365d397c..ed73eeb8 100644
--- a/packages/superdough/sampler.mjs
+++ b/packages/superdough/sampler.mjs
@@ -76,6 +76,7 @@ export const getSampleBufferSource = async (s, n, note, speed, freq, vib, vibmod
 
 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();
@@ -158,7 +159,12 @@ function getSamplesPrefixHandler(url) {
  *  sd: '808sd/SD0010.WAV'
  *  }, 'https://raw.githubusercontent.com/tidalcycles/Dirt-Samples/master/');
  * s("[bd ~]*2, [~ hh]*2, ~ sd")
- *
+ * @example
+ * samples('shabda:noise,chimp:2')
+ * s("noise ")
+ * @example
+ * samples('shabda/speech/fr-FR/f:chocolat')
+ * s("chocolat*4")
  */
 
 export const samples = async (sampleMap, baseUrl = sampleMap._base || '', options = {}) => {
@@ -168,11 +174,34 @@ export const samples = async (sampleMap, baseUrl = sampleMap._base || '', option
     if (handler) {
       return handler(sampleMap);
     }
+    if (sampleMap.startsWith('bubo:')) {
+      const [_, repo] = sampleMap.split(':');
+      sampleMap = `github:Bubobubobubobubo/dough-${repo}`;
+    }
     if (sampleMap.startsWith('github:')) {
       let [_, path] = sampleMap.split('github:');
       path = path.endsWith('/') ? path.slice(0, -1) : path;
+      if (path.split('/').length === 2) {
+        // assume main as default branch if none set
+        path += '/main';
+      }
       sampleMap = `https://raw.githubusercontent.com/${path}/strudel.json`;
     }
+    if (sampleMap.startsWith('shabda:')) {
+      let [_, path] = sampleMap.split('shabda:');
+      sampleMap = `https://shabda.ndre.gr/${path}.json?strudel=1`;
+    }
+    if (sampleMap.startsWith('shabda/speech')) {
+      let [_, path] = sampleMap.split('shabda/speech');
+      path = path.startsWith('/') ? path.substring(1) : path;
+      let [params, words] = path.split(':');
+      let gender = 'f';
+      let language = 'en-GB';
+      if (params) {
+        [language, gender] = params.split('/');
+      }
+      sampleMap = `https://shabda.ndre.gr/speech/${words}.json?gender=${gender}&language=${language}&strudel=1'`;
+    }
     if (typeof fetch !== 'function') {
       // not a browser
       return;
diff --git a/packages/superdough/superdough.mjs b/packages/superdough/superdough.mjs
index 289e8d97..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 { createFilter, 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,6 +198,7 @@ export const superdough = async (value, deadline, hapDuration) => {
     bank,
     source,
     gain = 0.8,
+    postgain = 1,
     // filters
     ftype = '12db',
     fanchor = 0.5,
@@ -215,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
@@ -247,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;
@@ -333,6 +366,11 @@ export const superdough = async (value, deadline, hapDuration) => {
   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();
@@ -341,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());
 
@@ -353,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 633d0113..dafc2e7c 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,75 +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',
-          vib = 0,
-          vibmod = 0.5,
-        } = 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,
-          vib,
-          vibmod,
-          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);
 
@@ -104,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);
           },
         };
       },
@@ -122,13 +73,13 @@ export function waveformN(partials, type) {
   const ac = getAudioContext();
   const osc = ac.createOscillator();
 
-  const amplitudes = {
-    sawtooth: (n) => 1 / n,
-    square: (n) => (n % 2 === 0 ? 0 : 1 / n),
-    triangle: (n) => (n % 2 === 0 ? 0 : 1 / (n * n)),
+  const terms = {
+    sawtooth: (n) => [0, -1 / n],
+    square: (n) => [0, n % 2 === 0 ? 0 : 1 / n],
+    triangle: (n) => [n % 2 === 0 ? 0 : 1 / (n * n), 0],
   };
 
-  if (!amplitudes[type]) {
+  if (!terms[type]) {
     throw new Error(`unknown wave type ${type}`);
   }
 
@@ -136,8 +87,9 @@ export function waveformN(partials, type) {
   imag[0] = 0;
   let n = 1;
   while (n <= partials) {
-    real[n] = amplitudes[type](n);
-    imag[n] = 0;
+    const [r, i] = terms[type](n);
+    real[n] = r;
+    imag[n] = i;
     n++;
   }
 
@@ -146,36 +98,108 @@ export function waveformN(partials, type) {
   return osc;
 }
 
-export function getOscillator({ s, freq, t, vib, vibmod, partials }) {
-  // Make oscillator with partial count
+// 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);
 
+  // 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 vibrato_oscillator;
+  let vibratoOscillator;
   if (vib > 0) {
-    vibrato_oscillator = getAudioContext().createOscillator();
-    vibrato_oscillator.frequency.value = vib;
+    vibratoOscillator = getAudioContext().createOscillator();
+    vibratoOscillator.frequency.value = vib;
     const gain = getAudioContext().createGain();
     // Vibmod is the amount of vibrato, in semitones
     gain.gain.value = vibmod * 100;
-    vibrato_oscillator.connect(gain);
+    vibratoOscillator.connect(gain);
     gain.connect(o.detune);
-    vibrato_oscillator.start(t);
+    vibratoOscillator.start(t);
+  }
+
+  let noiseMix;
+  if (noise) {
+    noiseMix = getNoiseMix(o, noise, t);
   }
 
   return {
-    node: o,
+    node: noiseMix?.node || o,
     stop: (time) => {
-      vibrato_oscillator?.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/README.md b/packages/tonal/README.md
index 1825346b..0bb344fd 100644
--- a/packages/tonal/README.md
+++ b/packages/tonal/README.md
@@ -31,4 +31,4 @@ yields:
 
 ## Tonal API
 
-See "Tonal API" in the [Strudel Tutorial](https://strudel.tidalcycles.org/learn/tonal)
+See "Tonal API" in the [Strudel Tutorial](https://strudel.cc/learn/tonal)
diff --git a/packages/tonal/tonal.mjs b/packages/tonal/tonal.mjs
index 3fd8a5da..3b6fe41e 100644
--- a/packages/tonal/tonal.mjs
+++ b/packages/tonal/tonal.mjs
@@ -7,6 +7,19 @@ This program is free software: you can redistribute it and/or modify it under th
 import { Note, Interval, Scale } from '@tonaljs/tonal';
 import { register, _mod } from '@strudel.cycles/core';
 
+const octavesInterval = (octaves) => (octaves <= 0 ? -1 : 1) + octaves * 7 + 'P';
+
+function scaleStep(step, scale) {
+  scale = scale.replaceAll(':', ' ');
+  step = Math.ceil(step);
+  const { intervals, tonic } = Scale.get(scale);
+  const { pc, oct = 3 } = Note.get(tonic);
+  const octaveOffset = Math.floor(step / intervals.length);
+  const scaleStep = _mod(step, intervals.length);
+  const interval = Interval.add(intervals[scaleStep], octavesInterval(octaveOffset));
+  return Note.transpose(pc + oct, interval);
+}
+
 // transpose note inside scale by offset steps
 // function scaleOffset(scale: string, offset: number, note: string) {
 function scaleOffset(scale, offset, note) {
@@ -150,13 +163,12 @@ 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?
-      scale = scale.replaceAll(':', ' ');
-      let [tonic, scaleName] = Scale.tokenize(scale);
-      const { pc, oct = 3 } = Note.get(tonic);
-      note = scaleOffset(pc + ' ' + scaleName, asNumber, pc + oct);
+      note = scaleStep(asNumber, scale);
     }
     return hap.withValue(() => (isObject ? { ...hap.value, note } : note)).setContext({ ...hap.context, scale });
   });
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/README.md b/packages/web/README.md
index f1ed2bbc..8189b34e 100644
--- a/packages/web/README.md
+++ b/packages/web/README.md
@@ -51,7 +51,7 @@ document.getElementById('play').addEventListener('click',
 )
 ```
 
-You can learn [more about the `samples` function here](https://strudel.tidalcycles.org/learn/samples#loading-custom-samples).
+You can learn [more about the `samples` function here](https://strudel.cc/learn/samples#loading-custom-samples).
 
 ### Evaluating Code
 
@@ -72,7 +72,7 @@ document.getElementById('play').addEventListener('stop',
 
 ### Double vs Single Quotes
 
-There is a tiny difference between the [Strudel REPL](https://strudel.tidalcycles.org/) and `@strudel/web`.
+There is a tiny difference between the [Strudel REPL](https://strudel.cc/) and `@strudel/web`.
 In the REPL you can use 'single quotes' for regular JS strings and "double quotes" for mini notation patterns.
 In `@strudel/web`, it does not matter which types of quotes you're using.
 There will probably be an escapte hatch for that in the future.
diff --git a/packages/web/examples/repl-example/index.html b/packages/web/examples/repl-example/index.html
index 12003e4b..ad404e7e 100644
--- a/packages/web/examples/repl-example/index.html
+++ b/packages/web/examples/repl-example/index.html
@@ -2,7 +2,7 @@
 
   
     
-    
+    
     
     @strudel/web REPL Example
   
diff --git a/packages/webaudio/README.md b/packages/webaudio/README.md
index 3eb64593..8f974a25 100644
--- a/packages/webaudio/README.md
+++ b/packages/webaudio/README.md
@@ -33,4 +33,4 @@ document.getElementById("stop").addEventListener("click", () => scheduler.stop()
 
 [Play with the example codesandbox](https://codesandbox.io/s/amazing-dawn-gclfwg?file=/src/index.js).
 
-Read more in the docs about [samples](https://strudel.tidalcycles.org/learn/samples/), [synths](https://strudel.tidalcycles.org/learn/synths/) and [effects](https://strudel.tidalcycles.org/learn/effects/).
+Read more in the docs about [samples](https://strudel.cc/learn/samples/), [synths](https://strudel.cc/learn/synths/) and [effects](https://strudel.cc/learn/effects/).
diff --git a/packages/webaudio/scope.mjs b/packages/webaudio/scope.mjs
index cfde80ce..1affd262 100644
--- a/packages/webaudio/scope.mjs
+++ b/packages/webaudio/scope.mjs
@@ -3,7 +3,7 @@ import { analyser, getAnalyzerData } from 'superdough';
 
 export function drawTimeScope(
   analyser,
-  { align = true, color = 'white', thickness = 3, scale = 0.25, pos = 0.75, next = 1, trigger = 0 } = {},
+  { align = true, color = 'white', thickness = 3, scale = 0.25, pos = 0.75, trigger = 0 } = {},
 ) {
   const ctx = getDrawContext();
   const dataArray = getAnalyzerData('time');
@@ -22,10 +22,9 @@ export function drawTimeScope(
 
   const sliceWidth = (canvas.width * 1.0) / bufferSize;
   let x = 0;
-
   for (let i = triggerIndex; i < bufferSize; i++) {
     const v = dataArray[i] + 1;
-    const y = (scale * (v - 1) + pos) * canvas.height;
+    const y = (pos - scale * (v - 1)) * canvas.height;
 
     if (i === 0) {
       ctx.moveTo(x, y);
@@ -71,6 +70,18 @@ function clearScreen(smear = 0, smearRGB = `0,0,0`) {
   }
 }
 
+/**
+ * Renders an oscilloscope for the frequency domain of the audio signal.
+ * @name fscope
+ * @param {string} color line color as hex or color name. defaults to white.
+ * @param {number} scale scales the y-axis. Defaults to 0.25
+ * @param {number} pos y-position relative to screen height. 0 = top, 1 = bottom of screen
+ * @param {number} lean y-axis alignment where 0 = top and 1 = bottom
+ * @param {number} min min value
+ * @param {number} max max value
+ * @example
+ * s("sawtooth").fscope()
+ */
 Pattern.prototype.fscope = function (config = {}) {
   return this.analyze(1).draw(() => {
     clearScreen(config.smear);
@@ -78,6 +89,20 @@ Pattern.prototype.fscope = function (config = {}) {
   });
 };
 
+/**
+ * Renders an oscilloscope for the time domain of the audio signal.
+ * @name scope
+ * @synonyms tscope
+ * @param {object} config optional config with options:
+ * @param {boolean} align if 1, the scope will be aligned to the first zero crossing. defaults to 1
+ * @param {string} color line color as hex or color name. defaults to white.
+ * @param {number} thickness line thickness. defaults to 3
+ * @param {number} scale scales the y-axis. Defaults to 0.25
+ * @param {number} pos y-position relative to screen height. 0 = top, 1 = bottom of screen
+ * @param {number} trigger amplitude value that is used to align the scope. defaults to 0.
+ * @example
+ * s("sawtooth").scope()
+ */
 Pattern.prototype.tscope = function (config = {}) {
   return this.analyze(1).draw(() => {
     clearScreen(config.smear);
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/paper/demo-preprocessed.md b/paper/demo-preprocessed.md
index c7b316f6..e22823d9 100644
--- a/paper/demo-preprocessed.md
+++ b/paper/demo-preprocessed.md
@@ -199,7 +199,7 @@ interfaces.
 
 # Links
 
-The Strudel REPL is available at ,
+The Strudel REPL is available at ,
 including an interactive tutorial. The repository is at
 , all the code is open source
 under the GPL-3.0 License.
diff --git a/paper/demo.md b/paper/demo.md
index 9e3e5237..23fe2775 100644
--- a/paper/demo.md
+++ b/paper/demo.md
@@ -127,7 +127,7 @@ For the future, it is planned to integrate alternative sound engines such as Gli
 
 # Links
 
-The Strudel REPL is available at , including an interactive tutorial.
+The Strudel REPL is available at , including an interactive tutorial.
 The repository is at , all the code is open source under the GPL-3.0 License.
 
 # Acknowledgments
diff --git a/paper/iclc2023.html b/paper/iclc2023.html
index d2f1fb77..a83e075a 100644
--- a/paper/iclc2023.html
+++ b/paper/iclc2023.html
@@ -717,8 +717,8 @@ fun ahead.

11 Links

The Strudel REPL is available at https://strudel.tidalcycles.org, including an +href="https://strudel.cc" +class="uri">https://strudel.cc, including an interactive tutorial. The repository is at https://github.com/tidalcycles/strudel, all the code is diff --git a/paper/iclc2023.md b/paper/iclc2023.md index ac744bb5..3afb2782 100644 --- a/paper/iclc2023.md +++ b/paper/iclc2023.md @@ -450,7 +450,7 @@ While Haskell's type system makes it a great language for the ongoing developmen # Links -The Strudel REPL is available at , including an interactive tutorial. +The Strudel REPL is available at , including an interactive tutorial. The repository is at , all the code is open source under the AGPL-3.0 License. # Acknowledgments diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8b48a93f..98f6441f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -95,7 +95,7 @@ importers: devDependencies: vite: specifier: ^4.3.3 - version: 4.3.3(@types/node@18.16.3) + version: 4.3.3 packages/core: dependencies: @@ -105,7 +105,7 @@ importers: devDependencies: vite: specifier: ^4.3.3 - version: 4.3.3(@types/node@18.16.3) + version: 4.3.3 vitest: specifier: ^0.33.0 version: 0.33.0(@vitest/ui@0.28.0) @@ -130,7 +130,7 @@ importers: devDependencies: vite: specifier: ^4.3.3 - version: 4.3.3(@types/node@18.16.3) + version: 4.3.3 packages/core/examples/vite-vanilla-repl-cm6: dependencies: @@ -158,7 +158,7 @@ importers: devDependencies: vite: specifier: ^4.3.2 - version: 4.3.3(@types/node@18.16.3) + version: 4.3.3 packages/csound: dependencies: @@ -174,7 +174,7 @@ importers: devDependencies: vite: specifier: ^4.3.3 - version: 4.3.3(@types/node@18.16.3) + version: 4.3.3 packages/desktopbridge: dependencies: @@ -187,6 +187,22 @@ importers: packages/embed: {} + packages/hydra: + dependencies: + '@strudel.cycles/core': + specifier: workspace:* + version: link:../core + hydra-synth: + specifier: ^1.3.29 + version: 1.3.29 + devDependencies: + pkg: + specifier: ^5.8.1 + version: 5.8.1 + vite: + specifier: ^4.3.3 + version: 4.4.5(@types/node@18.16.3) + packages/midi: dependencies: '@strudel.cycles/core': @@ -201,7 +217,7 @@ importers: devDependencies: vite: specifier: ^4.3.3 - version: 4.3.3(@types/node@18.16.3) + version: 4.3.3 packages/mini: dependencies: @@ -214,7 +230,7 @@ importers: version: 3.0.2 vite: specifier: ^4.3.3 - version: 4.3.3(@types/node@18.16.3) + version: 4.3.3 vitest: specifier: ^0.33.0 version: 0.33.0(@vitest/ui@0.28.0) @@ -233,16 +249,28 @@ importers: version: 5.8.1 vite: specifier: ^4.3.3 - version: 4.3.3(@types/node@18.16.3) + version: 4.3.3 packages/react: dependencies: '@codemirror/autocomplete': specifier: ^6.6.0 version: 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2) + '@codemirror/commands': + specifier: ^6.0.0 + version: 6.2.4 '@codemirror/lang-javascript': specifier: ^6.1.7 version: 6.1.7 + '@codemirror/language': + specifier: ^6.0.0 + version: 6.6.0 + '@codemirror/lint': + specifier: ^6.0.0 + version: 6.1.0 + '@codemirror/search': + specifier: ^6.0.0 + version: 6.2.3 '@codemirror/state': specifier: ^6.2.0 version: 6.2.0 @@ -258,6 +286,9 @@ importers: '@replit/codemirror-vim': specifier: ^6.0.14 version: 6.0.14(@codemirror/commands@6.2.4)(@codemirror/language@6.6.0)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) + '@replit/codemirror-vscode-keymap': + specifier: ^6.0.2 + version: 6.0.2(@codemirror/autocomplete@6.6.0)(@codemirror/commands@6.2.4)(@codemirror/language@6.6.0)(@codemirror/lint@6.1.0)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) '@strudel.cycles/core': specifier: workspace:* version: link:../core @@ -306,7 +337,7 @@ importers: version: 3.3.2 vite: specifier: ^4.3.3 - version: 4.3.3(@types/node@18.16.3) + version: 4.3.3 packages/react/examples/nano-repl: dependencies: @@ -361,7 +392,7 @@ importers: version: 3.3.2 vite: specifier: ^4.3.3 - version: 4.3.3(@types/node@18.16.3) + version: 4.3.3 packages/serial: dependencies: @@ -371,7 +402,7 @@ importers: devDependencies: vite: specifier: ^4.3.3 - version: 4.3.3(@types/node@18.16.3) + version: 4.3.3 packages/soundfonts: dependencies: @@ -393,7 +424,7 @@ importers: version: 3.3.1 vite: specifier: ^4.3.3 - version: 4.3.3(@types/node@18.16.3) + version: 4.3.3 packages/superdough: dependencies: @@ -403,7 +434,7 @@ importers: devDependencies: vite: specifier: ^4.3.3 - version: 4.3.3(@types/node@18.16.3) + version: 4.3.3 packages/superdough/example: dependencies: @@ -432,7 +463,7 @@ importers: devDependencies: vite: specifier: ^4.3.3 - version: 4.3.3(@types/node@18.16.3) + version: 4.3.3 vitest: specifier: ^0.33.0 version: 0.33.0(@vitest/ui@0.28.0) @@ -457,7 +488,7 @@ importers: devDependencies: vite: specifier: ^4.3.3 - version: 4.3.3(@types/node@18.16.3) + version: 4.3.3 vitest: specifier: ^0.33.0 version: 0.33.0(@vitest/ui@0.28.0) @@ -482,7 +513,7 @@ importers: devDependencies: vite: specifier: ^4.3.3 - version: 4.3.3(@types/node@18.16.3) + version: 4.3.3 packages/web/examples/repl-example: dependencies: @@ -492,7 +523,7 @@ importers: devDependencies: vite: specifier: ^4.3.2 - version: 4.3.3(@types/node@18.16.3) + version: 4.3.3 packages/webaudio: dependencies: @@ -505,7 +536,7 @@ importers: devDependencies: vite: specifier: ^4.3.3 - version: 4.3.3(@types/node@18.16.3) + version: 4.3.3 packages/xen: dependencies: @@ -515,7 +546,7 @@ importers: devDependencies: vite: specifier: ^4.3.3 - version: 4.3.3(@types/node@18.16.3) + version: 4.3.3 vitest: specifier: ^0.33.0 version: 0.33.0(@vitest/ui@0.28.0) @@ -526,14 +557,14 @@ importers: specifier: ^4.17.0 version: 4.17.0 '@astrojs/mdx': - specifier: ^0.19.0 - version: 0.19.0(astro@2.3.2)(rollup@3.28.0) + specifier: ^1.1.3 + version: 1.1.3(astro@3.4.2) '@astrojs/react': - specifier: ^2.1.1 - version: 2.1.1(@types/react-dom@18.2.1)(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0) + specifier: ^3.0.4 + version: 3.0.4(@types/react-dom@18.2.1)(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0)(vite@4.5.0) '@astrojs/tailwind': - specifier: ^3.1.1 - version: 3.1.1(astro@2.3.2)(tailwindcss@3.3.2) + specifier: ^5.0.2 + version: 5.0.2(astro@3.4.2)(tailwindcss@3.3.2) '@docsearch/css': specifier: ^3.3.4 version: 3.3.4 @@ -588,9 +619,15 @@ 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 + '@strudel/hydra': + specifier: workspace:* + version: link:../packages/hydra '@supabase/supabase-js': specifier: ^2.21.0 version: 2.21.0 @@ -616,8 +653,8 @@ importers: specifier: ^4.19.16 version: 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0) astro: - specifier: ^2.3.2 - version: 2.3.2(@types/node@18.16.3) + specifier: ^3.4.2 + version: 3.4.2(@types/node@18.16.3)(typescript@4.9.4) canvas: specifier: ^2.11.2 version: 2.11.2 @@ -656,17 +693,17 @@ importers: version: 3.3.2 devDependencies: '@vite-pwa/astro': - specifier: ^0.0.5 - version: 0.0.5(astro@2.3.2)(vite-plugin-pwa@0.14.7) + specifier: ^0.1.4 + version: 0.1.4(astro@3.4.2)(vite-plugin-pwa@0.16.5) html-escaper: specifier: ^3.0.3 version: 3.0.3 vite-plugin-pwa: - specifier: ^0.14.7 - version: 0.14.7(vite@4.4.5)(workbox-build@6.5.4)(workbox-window@6.5.4) + specifier: ^0.16.5 + version: 0.16.5(vite@4.5.0)(workbox-build@7.0.0)(workbox-window@7.0.0) workbox-window: - specifier: ^6.5.4 - version: 6.5.4 + specifier: ^7.0.0 + version: 7.0.0 packages: @@ -839,146 +876,116 @@ packages: leven: 3.1.0 dev: true - /@astrojs/compiler@0.31.4: - resolution: {integrity: sha512-6bBFeDTtPOn4jZaiD3p0f05MEGQL9pw2Zbfj546oFETNmjJFWO3nzHz6/m+P53calknCvyVzZ5YhoBLIvzn5iw==} + /@astrojs/compiler@2.2.1: + resolution: {integrity: sha512-NJ1lWKzMkyEjE3W5NpPNAVot4/PLF5om/P6ekxNu3iLS05CaYFTcp7WpYMjdCC252b7wkNVAs45FNkVQ+RHW/g==} - /@astrojs/compiler@1.3.2: - resolution: {integrity: sha512-W/2Mdsq75ruK31dPVlXLdvAoknYDcm6+zXiFToSzQWI7wZqqR+51XTFgx90ojYbefk7z4VOJSVtZBz2pA82F5A==} + /@astrojs/internal-helpers@0.2.1: + resolution: {integrity: sha512-06DD2ZnItMwUnH81LBLco3tWjcZ1lGU9rLCCBaeUCGYe9cI0wKyY2W3kDyoW1I6GmcWgt1fu+D1CTvz+FIKf8A==} - /@astrojs/language-server@0.28.3: - resolution: {integrity: sha512-fPovAX/X46eE2w03jNRMpQ7W9m2mAvNt4Ay65lD9wl1Z5vIQYxlg7Enp9qP225muTr4jSVB5QiLumFJmZMAaVA==} - hasBin: true - dependencies: - '@vscode/emmet-helper': 2.8.6 - events: 3.3.0 - prettier: 2.8.8 - prettier-plugin-astro: 0.7.2 - source-map: 0.7.4 - vscode-css-languageservice: 6.2.3 - vscode-html-languageservice: 5.0.4 - vscode-languageserver: 8.0.2 - vscode-languageserver-protocol: 3.17.2 - vscode-languageserver-textdocument: 1.0.8 - vscode-languageserver-types: 3.17.2 - vscode-uri: 3.0.7 - - /@astrojs/markdown-remark@2.1.4(astro@2.3.2): - resolution: {integrity: sha512-z5diCcFo2xkBAJ11KySAIKpZZkULZmzUvWsZ2VWIOrR6QrEgEfVl5jTpgPSedx4m+xUPuemlUviOotGB7ItNsQ==} + /@astrojs/markdown-remark@3.3.0(astro@3.4.2): + resolution: {integrity: sha512-ezFzEiZygc/ASe2Eul9v1yrTbNGqSbR348UGNXQ4Dtkx8MYRwfiBfmPm6VnEdfIGkW+bi5qIUReKfc7mPVUkIg==} peerDependencies: - astro: ^2.3.0 + astro: ^3.3.0 dependencies: - '@astrojs/prism': 2.1.1 - astro: 2.3.2(@types/node@18.16.3) - github-slugger: 1.5.0 - import-meta-resolve: 2.2.1 + '@astrojs/prism': 3.0.0 + astro: 3.4.2(@types/node@18.16.3)(typescript@4.9.4) + github-slugger: 2.0.0 + import-meta-resolve: 3.0.0 + mdast-util-definitions: 6.0.0 rehype-raw: 6.1.1 - rehype-stringify: 9.0.3 + rehype-stringify: 9.0.4 remark-gfm: 3.0.1 - remark-parse: 10.0.1 + remark-parse: 10.0.2 remark-rehype: 10.1.0 remark-smartypants: 2.0.0 - shiki: 0.11.1 + shikiji: 0.6.10 unified: 10.1.2 unist-util-visit: 4.1.2 - vfile: 5.3.6 + vfile: 5.3.7 transitivePeerDependencies: - supports-color - /@astrojs/mdx@0.19.0(astro@2.3.2)(rollup@3.28.0): - resolution: {integrity: sha512-McFpMV+npinIEKnY5t9hsdzLd76g78GgIRUPxem2OeXPNB8xr2pNS28GeU0+6Pn5STnB+sgcyyeqXLgzauOlMQ==} - engines: {node: '>=16.12.0'} + /@astrojs/mdx@1.1.3(astro@3.4.2): + resolution: {integrity: sha512-5U5l6bCmywF2IOO8T7oIeStrRB16cxlGCz02U2akpEkLw93dmn5QcHjr4Cwem0bSKROEjYqZ7DxN8t8YAAV2qA==} + engines: {node: '>=18.14.1'} + peerDependencies: + astro: ^3.3.4 dependencies: - '@astrojs/markdown-remark': 2.1.4(astro@2.3.2) - '@astrojs/prism': 2.1.1 + '@astrojs/markdown-remark': 3.3.0(astro@3.4.2) '@mdx-js/mdx': 2.3.0 - '@mdx-js/rollup': 2.3.0(rollup@3.28.0) - acorn: 8.8.2 - es-module-lexer: 1.2.1 + acorn: 8.10.0 + astro: 3.4.2(@types/node@18.16.3)(typescript@4.9.4) + es-module-lexer: 1.3.1 estree-util-visit: 1.2.1 - github-slugger: 1.5.0 + github-slugger: 2.0.0 gray-matter: 4.0.3 + hast-util-to-html: 8.0.4 kleur: 4.1.5 rehype-raw: 6.1.1 - remark-frontmatter: 4.0.1 remark-gfm: 3.0.1 remark-smartypants: 2.0.0 - shiki: 0.11.1 source-map: 0.7.4 unist-util-visit: 4.1.2 - vfile: 5.3.6 + vfile: 5.3.7 transitivePeerDependencies: - - astro - - rollup - supports-color dev: false - /@astrojs/prism@2.1.1: - resolution: {integrity: sha512-Gnwnlb1lGJzCQEg89r4/WqgfCGPNFC7Kuh2D/k289Cbdi/2PD7Lrdstz86y1itDvcb2ijiRqjqWnJ5rsfu/QOA==} - engines: {node: '>=16.12.0'} + /@astrojs/prism@3.0.0: + resolution: {integrity: sha512-g61lZupWq1bYbcBnYZqdjndShr/J3l/oFobBKPA3+qMat146zce3nz2kdO4giGbhYDt4gYdhmoBz0vZJ4sIurQ==} + engines: {node: '>=18.14.1'} dependencies: prismjs: 1.29.0 - /@astrojs/react@2.1.1(@types/react-dom@18.2.1)(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-nIcDFnn5H4FKGoSBYXZr95RIQvpcTNRcVV1hvUQifO0F5hQsgb0PVyk6TG4JWxiPGY4Jt4MVQb5JaaDQHlHu4w==} - engines: {node: '>=16.12.0'} + /@astrojs/react@3.0.4(@types/react-dom@18.2.1)(@types/react@18.2.0)(react-dom@18.2.0)(react@18.2.0)(vite@4.5.0): + resolution: {integrity: sha512-v+qltrm5nfqqm8C5ymYDBxrGlvNouRr+iCLcUWvNX65abVz8GzUqquhPQjmCTDXphn1Qc558Uxzc4s79l02skw==} + engines: {node: '>=18.14.1'} peerDependencies: '@types/react': ^17.0.50 || ^18.0.21 '@types/react-dom': ^17.0.17 || ^18.0.6 react: ^17.0.2 || ^18.0.0 react-dom: ^17.0.2 || ^18.0.0 dependencies: - '@babel/core': 7.20.12 - '@babel/plugin-transform-react-jsx': 7.20.13(@babel/core@7.20.12) '@types/react': 18.2.0 '@types/react-dom': 18.2.1 + '@vitejs/plugin-react': 4.1.0(vite@4.5.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + ultrahtml: 1.5.2 transitivePeerDependencies: - supports-color + - vite dev: false - /@astrojs/tailwind@3.1.1(astro@2.3.2)(tailwindcss@3.3.2): - resolution: {integrity: sha512-Wx/ZtVnmtfqHWGVzvUEYZm8rufVKVgDIef0q6fzwUxoT1EpTTwBkTbpnzooogewMLOh2eTscasGe3Ih2HC1wVA==} + /@astrojs/tailwind@5.0.2(astro@3.4.2)(tailwindcss@3.3.2): + resolution: {integrity: sha512-oXqeqmBlkQmsltrsU9nEWeXOtrZIAHW8dcmX7BCdrjzPnU6dPwWzAwhddNQ9ihKiWwsLnlbwQZIo2CDigcZlIA==} peerDependencies: - astro: ^2.1.3 + astro: ^3.2.4 tailwindcss: ^3.0.24 dependencies: - '@proload/core': 0.3.3 - astro: 2.3.2(@types/node@18.16.3) - autoprefixer: 10.4.14(postcss@8.4.23) - postcss: 8.4.23 - postcss-load-config: 4.0.1(postcss@8.4.23) + astro: 3.4.2(@types/node@18.16.3)(typescript@4.9.4) + autoprefixer: 10.4.16(postcss@8.4.31) + postcss: 8.4.31 + postcss-load-config: 4.0.1(postcss@8.4.31) tailwindcss: 3.3.2 transitivePeerDependencies: - ts-node dev: false - /@astrojs/telemetry@2.1.0: - resolution: {integrity: sha512-P3gXNNOkRJM8zpnasNoi5kXp3LnFt0smlOSUXhkynfJpTJMIDrcMbKpNORN0OYbqpKt9JPdgRN7nsnGWpbH1ww==} - engines: {node: '>=16.12.0'} + /@astrojs/telemetry@3.0.4: + resolution: {integrity: sha512-A+0c7k/Xy293xx6odsYZuXiaHO0PL+bnDoXOc47sGDF5ffIKdKQGRPFl2NMlCF4L0NqN4Ynbgnaip+pPF0s7pQ==} + engines: {node: '>=18.14.1'} dependencies: - ci-info: 3.7.1 + ci-info: 3.9.0 debug: 4.3.4 dlv: 1.1.3 dset: 3.1.2 is-docker: 3.0.0 - is-wsl: 2.2.0 - undici: 5.22.0 + is-wsl: 3.1.0 which-pm-runs: 1.1.0 transitivePeerDependencies: - supports-color - /@astrojs/webapi@2.1.0: - resolution: {integrity: sha512-sbF44s/uU33jAdefzKzXZaENPeXR0sR3ptLs+1xp9xf5zIBhedH2AfaFB5qTEv9q5udUVoKxubZGT3G1nWs6rA==} - dependencies: - undici: 5.20.0 - - /@babel/code-frame@7.18.6: - resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.18.6 - /@babel/code-frame@7.21.4: resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} engines: {node: '>=6.9.0'} @@ -986,36 +993,21 @@ packages: '@babel/highlight': 7.18.6 dev: true - /@babel/compat-data@7.20.14: - resolution: {integrity: sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==} + /@babel/code-frame@7.22.13: + resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.22.20 + chalk: 2.4.2 /@babel/compat-data@7.21.5: resolution: {integrity: sha512-M+XAiQ7GzQ3FDPf0KOLkugzptnIypt0X0ma0wmlTKPR3IchgNFdx2JXxZdvd18JY5s7QkaFD/qyX0dsMpog/Ug==} engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.20.12: - resolution: {integrity: sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==} + /@babel/compat-data@7.23.2: + resolution: {integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==} engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.2.0 - '@babel/code-frame': 7.18.6 - '@babel/generator': 7.20.14 - '@babel/helper-compilation-targets': 7.20.7(@babel/core@7.20.12) - '@babel/helper-module-transforms': 7.20.11 - '@babel/helpers': 7.20.13 - '@babel/parser': 7.20.13 - '@babel/template': 7.20.7 - '@babel/traverse': 7.20.13 - '@babel/types': 7.20.7 - convert-source-map: 1.9.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color /@babel/core@7.21.5: resolution: {integrity: sha512-9M398B/QH5DlfCOTKDZT1ozXr0x8uBEeFd+dJraGUZGiaNpGCDVGCc14hZexsMblw3XxltJ+6kSvogp9J+5a9g==} @@ -1040,6 +1032,28 @@ packages: - supports-color dev: true + /@babel/core@7.23.2: + resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.0 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/helpers': 7.23.2 + '@babel/parser': 7.23.0 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + /@babel/generator@7.18.2: resolution: {integrity: sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==} engines: {node: '>=6.9.0'} @@ -1049,14 +1063,6 @@ packages: jsesc: 2.5.2 dev: true - /@babel/generator@7.20.14: - resolution: {integrity: sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.7 - '@jridgewell/gen-mapping': 0.3.2 - jsesc: 2.5.2 - /@babel/generator@7.21.5: resolution: {integrity: sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==} engines: {node: '>=6.9.0'} @@ -1067,33 +1073,29 @@ packages: jsesc: 2.5.2 dev: true - /@babel/helper-annotate-as-pure@7.18.6: - resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} + /@babel/generator@7.23.0: + resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.7 + '@babel/types': 7.23.0 + '@jridgewell/gen-mapping': 0.3.2 + '@jridgewell/trace-mapping': 0.3.17 + jsesc: 2.5.2 + + /@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 /@babel/helper-builder-binary-assignment-operator-visitor@7.18.9: resolution: {integrity: sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-explode-assignable-expression': 7.18.6 - '@babel/types': 7.21.5 + '@babel/types': 7.23.0 dev: true - /@babel/helper-compilation-targets@7.20.7(@babel/core@7.20.12): - resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/compat-data': 7.20.14 - '@babel/core': 7.20.12 - '@babel/helper-validator-option': 7.18.6 - browserslist: 4.21.4 - lru-cache: 5.1.1 - semver: 6.3.0 - /@babel/helper-compilation-targets@7.21.5(@babel/core@7.21.5): resolution: {integrity: sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==} engines: {node: '>=6.9.0'} @@ -1103,80 +1105,83 @@ packages: '@babel/compat-data': 7.21.5 '@babel/core': 7.21.5 '@babel/helper-validator-option': 7.21.0 - browserslist: 4.21.4 + browserslist: 4.21.5 lru-cache: 5.1.1 semver: 6.3.0 dev: true - /@babel/helper-create-class-features-plugin@7.20.12(@babel/core@7.21.5): + /@babel/helper-compilation-targets@7.22.15: + resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.23.2 + '@babel/helper-validator-option': 7.22.15 + browserslist: 4.22.1 + lru-cache: 5.1.1 + semver: 6.3.1 + + /@babel/helper-create-class-features-plugin@7.20.12(@babel/core@7.23.2): resolution: {integrity: sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-environment-visitor': 7.21.5 - '@babel/helper-function-name': 7.21.0 + '@babel/core': 7.23.2 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.20.7 '@babel/helper-optimise-call-expression': 7.18.6 '@babel/helper-replace-supers': 7.20.7 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-split-export-declaration': 7.22.6 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-create-regexp-features-plugin@7.20.5(@babel/core@7.21.5): + /@babel/helper-create-regexp-features-plugin@7.20.5(@babel/core@7.23.2): resolution: {integrity: sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/core': 7.23.2 + '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.2.2 dev: true - /@babel/helper-define-polyfill-provider@0.3.3(@babel/core@7.21.5): + /@babel/helper-define-polyfill-provider@0.3.3(@babel/core@7.23.2): resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} peerDependencies: '@babel/core': ^7.4.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4 lodash.debounce: 4.0.8 - resolve: 1.22.2 - semver: 6.3.0 + resolve: 1.22.8 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-environment-visitor@7.18.9: - resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} - engines: {node: '>=6.9.0'} - /@babel/helper-environment-visitor@7.21.5: resolution: {integrity: sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==} engines: {node: '>=6.9.0'} dev: true + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + /@babel/helper-explode-assignable-expression@7.18.6: resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.23.0 dev: true - /@babel/helper-function-name@7.19.0: - resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.20.7 - '@babel/types': 7.20.7 - /@babel/helper-function-name@7.21.0: resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} engines: {node: '>=6.9.0'} @@ -1185,24 +1190,32 @@ packages: '@babel/types': 7.21.5 dev: true - /@babel/helper-hoist-variables@7.18.6: - resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.7 + '@babel/template': 7.22.15 + '@babel/types': 7.23.0 - /@babel/helper-member-expression-to-functions@7.20.7: - resolution: {integrity: sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==} + /@babel/helper-hoist-variables@7.18.6: + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.21.5 dev: true - /@babel/helper-module-imports@7.18.6: - resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.7 + '@babel/types': 7.23.0 + + /@babel/helper-member-expression-to-functions@7.20.7: + resolution: {integrity: sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true /@babel/helper-module-imports@7.21.4: resolution: {integrity: sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==} @@ -1211,20 +1224,11 @@ packages: '@babel/types': 7.21.5 dev: true - /@babel/helper-module-transforms@7.20.11: - resolution: {integrity: sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==} + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-module-imports': 7.18.6 - '@babel/helper-simple-access': 7.20.2 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/helper-validator-identifier': 7.19.1 - '@babel/template': 7.20.7 - '@babel/traverse': 7.20.13 - '@babel/types': 7.20.7 - transitivePeerDependencies: - - supports-color + '@babel/types': 7.23.0 /@babel/helper-module-transforms@7.21.5: resolution: {integrity: sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==} @@ -1242,28 +1246,46 @@ packages: - supports-color dev: true + /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2): + resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + /@babel/helper-optimise-call-expression@7.18.6: resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.23.0 dev: true /@babel/helper-plugin-utils@7.20.2: resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} engines: {node: '>=6.9.0'} + dev: true - /@babel/helper-remap-async-to-generator@7.18.9(@babel/core@7.21.5): + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + engines: {node: '>=6.9.0'} + + /@babel/helper-remap-async-to-generator@7.18.9(@babel/core@7.23.2): resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-environment-visitor': 7.21.5 + '@babel/core': 7.23.2 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.20.5 - '@babel/types': 7.21.5 + '@babel/types': 7.23.0 transitivePeerDependencies: - supports-color dev: true @@ -1272,22 +1294,16 @@ packages: resolution: {integrity: sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-environment-visitor': 7.21.5 + '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.20.7 '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/template': 7.20.7 - '@babel/traverse': 7.21.5 - '@babel/types': 7.21.5 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-simple-access@7.20.2: - resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.7 - /@babel/helper-simple-access@7.21.5: resolution: {integrity: sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==} engines: {node: '>=6.9.0'} @@ -1295,34 +1311,51 @@ packages: '@babel/types': 7.21.5 dev: true + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + /@babel/helper-skip-transparent-expression-wrappers@7.20.0: resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.23.0 dev: true /@babel/helper-split-export-declaration@7.18.6: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.7 + '@babel/types': 7.21.5 + dev: true + + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 /@babel/helper-string-parser@7.19.4: resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-string-parser@7.21.5: resolution: {integrity: sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==} engines: {node: '>=6.9.0'} - dev: true + + /@babel/helper-string-parser@7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + engines: {node: '>=6.9.0'} /@babel/helper-validator-identifier@7.19.1: resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option@7.18.6: - resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} /@babel/helper-validator-option@7.21.0: @@ -1330,28 +1363,22 @@ packages: engines: {node: '>=6.9.0'} dev: true + /@babel/helper-validator-option@7.22.15: + resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} + engines: {node: '>=6.9.0'} + /@babel/helper-wrap-function@7.20.5: resolution: {integrity: sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-function-name': 7.21.0 - '@babel/template': 7.20.7 - '@babel/traverse': 7.21.5 - '@babel/types': 7.21.5 + '@babel/helper-function-name': 7.23.0 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 transitivePeerDependencies: - supports-color dev: true - /@babel/helpers@7.20.13: - resolution: {integrity: sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.20.7 - '@babel/traverse': 7.20.13 - '@babel/types': 7.20.7 - transitivePeerDependencies: - - supports-color - /@babel/helpers@7.21.5: resolution: {integrity: sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==} engines: {node: '>=6.9.0'} @@ -1363,6 +1390,16 @@ packages: - supports-color dev: true + /@babel/helpers@7.23.2: + resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 + transitivePeerDependencies: + - supports-color + /@babel/highlight@7.18.6: resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} engines: {node: '>=6.9.0'} @@ -1370,6 +1407,15 @@ packages: '@babel/helper-validator-identifier': 7.19.1 chalk: 2.4.2 js-tokens: 4.0.0 + dev: true + + /@babel/highlight@7.22.20: + resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 /@babel/parser@7.18.4: resolution: {integrity: sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==} @@ -1379,19 +1425,13 @@ packages: '@babel/types': 7.21.5 dev: true - /@babel/parser@7.20.13: - resolution: {integrity: sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.20.7 - /@babel/parser@7.21.4: resolution: {integrity: sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==} engines: {node: '>=6.0.0'} hasBin: true dependencies: '@babel/types': 7.20.7 + dev: true /@babel/parser@7.21.5: resolution: {integrity: sha512-J+IxH2IsxV4HbnTrSWgMAQj0UEo61hDA4Ny8h8PCX0MLXiibqHbqIOVneqdocemSBc22VpBKxt4J6FQzy9HarQ==} @@ -1399,628 +1439,641 @@ packages: hasBin: true dependencies: '@babel/types': 7.21.5 - dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6(@babel/core@7.21.5): + /@babel/parser@7.23.0: + resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.0 + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.20.7(@babel/core@7.21.5): + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.20.7(@babel/core@7.23.2): resolution: {integrity: sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/plugin-proposal-optional-chaining': 7.20.7(@babel/core@7.21.5) + '@babel/plugin-proposal-optional-chaining': 7.20.7(@babel/core@7.23.2) dev: true - /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.21.5): + /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.23.2): 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: - '@babel/core': 7.21.5 - '@babel/helper-environment-visitor': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.21.5) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.23.2) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.2) transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.21.5): + /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.23.2): 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: - '@babel/core': 7.21.5 - '@babel/helper-create-class-features-plugin': 7.20.12(@babel/core@7.21.5) - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-create-class-features-plugin': 7.20.12(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-class-static-block@7.20.7(@babel/core@7.21.5): + /@babel/plugin-proposal-class-static-block@7.20.7(@babel/core@7.23.2): 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: - '@babel/core': 7.21.5 - '@babel/helper-create-class-features-plugin': 7.20.12(@babel/core@7.21.5) - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-create-class-features-plugin': 7.20.12(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.2) transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.21.5): + /@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.23.2): 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: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.2) dev: true - /@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@7.21.5): + /@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@7.23.2): 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: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.2) dev: true - /@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.21.5): + /@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.23.2): 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: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.2) dev: true - /@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.21.5): + /@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.23.2): 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: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.2) dev: true - /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.21.5): + /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.23.2): 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: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.2) dev: true - /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.21.5): + /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.23.2): 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: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.2) dev: true - /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.21.5): + /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.23.2): 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: - '@babel/compat-data': 7.21.5 - '@babel/core': 7.21.5 - '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.21.5) - '@babel/plugin-transform-parameters': 7.20.7(@babel/core@7.21.5) + '@babel/compat-data': 7.23.2 + '@babel/core': 7.23.2 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-transform-parameters': 7.20.7(@babel/core@7.23.2) dev: true - /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.21.5): + /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.23.2): 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: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.2) dev: true - /@babel/plugin-proposal-optional-chaining@7.20.7(@babel/core@7.21.5): + /@babel/plugin-proposal-optional-chaining@7.20.7(@babel/core@7.23.2): 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: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.2) dev: true - /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.21.5): + /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.23.2): 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: - '@babel/core': 7.21.5 - '@babel/helper-create-class-features-plugin': 7.20.12(@babel/core@7.21.5) - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-create-class-features-plugin': 7.20.12(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-private-property-in-object@7.20.5(@babel/core@7.21.5): + /@babel/plugin-proposal-private-property-in-object@7.20.5(@babel/core@7.23.2): 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: - '@babel/core': 7.21.5 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-create-class-features-plugin': 7.20.12(@babel/core@7.21.5) - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.20.12(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.2) transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.21.5): + /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.23.2): 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: - '@babel/core': 7.21.5 - '@babel/helper-create-regexp-features-plugin': 7.20.5(@babel/core@7.21.5) - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-create-regexp-features-plugin': 7.20.5(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.21.5): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.2): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.21.5): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.2): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.21.5): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.2): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.21.5): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.21.5): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions@7.20.0(@babel/core@7.21.5): + /@babel/plugin-syntax-import-assertions@7.20.0(@babel/core@7.23.2): resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.21.5): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx@7.18.6(@babel/core@7.20.12): - resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.21.5): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.2): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.21.5): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.21.5): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.2): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.21.5): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.21.5): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.21.5): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.21.5): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.2): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.21.5): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.2): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-arrow-functions@7.20.7(@babel/core@7.21.5): + /@babel/plugin-transform-arrow-functions@7.20.7(@babel/core@7.23.2): resolution: {integrity: sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-async-to-generator@7.20.7(@babel/core@7.21.5): + /@babel/plugin-transform-async-to-generator@7.20.7(@babel/core@7.23.2): resolution: {integrity: sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-module-imports': 7.21.4 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.23.2) transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-block-scoping@7.20.15(@babel/core@7.21.5): + /@babel/plugin-transform-block-scoping@7.20.15(@babel/core@7.23.2): resolution: {integrity: sha512-Vv4DMZ6MiNOhu/LdaZsT/bsLRxgL94d269Mv4R/9sp6+Mp++X/JqypZYypJXLlM4mlL352/Egzbzr98iABH1CA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-classes@7.20.7(@babel/core@7.21.5): + /@babel/plugin-transform-classes@7.20.7(@babel/core@7.23.2): resolution: {integrity: sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) - '@babel/helper-environment-visitor': 7.21.5 - '@babel/helper-function-name': 7.21.0 + '@babel/core': 7.23.2 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-replace-supers': 7.20.7 - '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-computed-properties@7.20.7(@babel/core@7.21.5): + /@babel/plugin-transform-computed-properties@7.20.7(@babel/core@7.23.2): resolution: {integrity: sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/template': 7.20.7 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/template': 7.22.15 dev: true - /@babel/plugin-transform-destructuring@7.20.7(@babel/core@7.21.5): + /@babel/plugin-transform-destructuring@7.20.7(@babel/core@7.23.2): resolution: {integrity: sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-create-regexp-features-plugin': 7.20.5(@babel/core@7.21.5) - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-create-regexp-features-plugin': 7.20.5(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-duplicate-keys@7.18.9(@babel/core@7.21.5): + /@babel/plugin-transform-duplicate-keys@7.18.9(@babel/core@7.23.2): resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-exponentiation-operator@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-exponentiation-operator@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 + '@babel/core': 7.23.2 '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.9 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-for-of@7.18.8(@babel/core@7.21.5): + /@babel/plugin-transform-for-of@7.18.8(@babel/core@7.23.2): resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-function-name@7.18.9(@babel/core@7.21.5): + /@babel/plugin-transform-function-name@7.18.9(@babel/core@7.23.2): resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) - '@babel/helper-function-name': 7.21.0 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-literals@7.18.9(@babel/core@7.21.5): + /@babel/plugin-transform-literals@7.18.9(@babel/core@7.23.2): resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-member-expression-literals@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-member-expression-literals@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-amd@7.20.11(@babel/core@7.21.5): + /@babel/plugin-transform-modules-amd@7.20.11(@babel/core@7.23.2): resolution: {integrity: sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-module-transforms': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.23.2 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.20.11(@babel/core@7.21.5): + /@babel/plugin-transform-modules-commonjs@7.20.11(@babel/core@7.23.2): resolution: {integrity: sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-module-transforms': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-simple-access': 7.21.5 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.23.2 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-systemjs@7.20.11(@babel/core@7.21.5): + /@babel/plugin-transform-modules-systemjs@7.20.11(@babel/core@7.23.2): resolution: {integrity: sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-module-transforms': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-validator-identifier': 7.19.1 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.23.2 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/plugin-transform-modules-umd@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-modules-umd@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-module-transforms': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.23.2 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.20.5(@babel/core@7.21.5): + /@babel/plugin-transform-named-capturing-groups-regex@7.20.5(@babel/core@7.23.2): resolution: {integrity: sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-create-regexp-features-plugin': 7.20.5(@babel/core@7.21.5) - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-create-regexp-features-plugin': 7.20.5(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-new-target@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-new-target@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-object-super@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-object-super@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-replace-supers': 7.20.7 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-parameters@7.20.7(@babel/core@7.21.5): + /@babel/plugin-transform-parameters@7.20.7(@babel/core@7.23.2): resolution: {integrity: sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true /@babel/plugin-transform-react-jsx-self@7.21.0(@babel/core@7.21.5): @@ -2033,6 +2086,16 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true + /@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + /@babel/plugin-transform-react-jsx-source@7.19.6(@babel/core@7.21.5): resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==} engines: {node: '>=6.9.0'} @@ -2043,208 +2106,218 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-react-jsx@7.20.13(@babel/core@7.20.12): - resolution: {integrity: sha512-MmTZx/bkUrfJhhYAYt3Urjm+h8DQGrPrnKQ94jLo7NLuOU+T89a7IByhKmrb8SKhrIYIQ0FN0CHMbnFRen4qNw==} + /@babel/plugin-transform-react-jsx-source@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-module-imports': 7.18.6 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.20.12) - '@babel/types': 7.20.7 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: false - /@babel/plugin-transform-regenerator@7.20.5(@babel/core@7.21.5): + /@babel/plugin-transform-react-jsx@7.22.15(@babel/core@7.23.2): + resolution: {integrity: sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.2) + '@babel/types': 7.23.0 + + /@babel/plugin-transform-regenerator@7.20.5(@babel/core@7.23.2): resolution: {integrity: sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 regenerator-transform: 0.15.1 dev: true - /@babel/plugin-transform-reserved-words@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-reserved-words@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-spread@7.20.7(@babel/core@7.21.5): + /@babel/plugin-transform-spread@7.20.7(@babel/core@7.23.2): resolution: {integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 dev: true - /@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals@7.18.9(@babel/core@7.21.5): + /@babel/plugin-transform-template-literals@7.18.9(@babel/core@7.23.2): resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol@7.18.9(@babel/core@7.21.5): + /@babel/plugin-transform-typeof-symbol@7.18.9(@babel/core@7.23.2): resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-escapes@7.18.10(@babel/core@7.21.5): + /@babel/plugin-transform-unicode-escapes@7.18.10(@babel/core@7.23.2): resolution: {integrity: sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-regex@7.18.6(@babel/core@7.21.5): + /@babel/plugin-transform-unicode-regex@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-create-regexp-features-plugin': 7.20.5(@babel/core@7.21.5) - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.23.2 + '@babel/helper-create-regexp-features-plugin': 7.20.5(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/preset-env@7.20.2(@babel/core@7.21.5): + /@babel/preset-env@7.20.2(@babel/core@7.23.2): resolution: {integrity: sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.21.5 - '@babel/core': 7.21.5 - '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-validator-option': 7.21.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-proposal-class-static-block': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-proposal-dynamic-import': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-proposal-export-namespace-from': 7.18.9(@babel/core@7.21.5) - '@babel/plugin-proposal-json-strings': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-proposal-optional-chaining': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-proposal-private-property-in-object': 7.20.5(@babel/core@7.21.5) - '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.21.5) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.21.5) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.21.5) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.21.5) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.21.5) - '@babel/plugin-syntax-import-assertions': 7.20.0(@babel/core@7.21.5) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.21.5) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.21.5) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.21.5) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.21.5) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.21.5) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.21.5) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.21.5) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.21.5) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.21.5) - '@babel/plugin-transform-arrow-functions': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-transform-async-to-generator': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-transform-block-scoped-functions': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-block-scoping': 7.20.15(@babel/core@7.21.5) - '@babel/plugin-transform-classes': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-transform-computed-properties': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-transform-destructuring': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-duplicate-keys': 7.18.9(@babel/core@7.21.5) - '@babel/plugin-transform-exponentiation-operator': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-for-of': 7.18.8(@babel/core@7.21.5) - '@babel/plugin-transform-function-name': 7.18.9(@babel/core@7.21.5) - '@babel/plugin-transform-literals': 7.18.9(@babel/core@7.21.5) - '@babel/plugin-transform-member-expression-literals': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-modules-amd': 7.20.11(@babel/core@7.21.5) - '@babel/plugin-transform-modules-commonjs': 7.20.11(@babel/core@7.21.5) - '@babel/plugin-transform-modules-systemjs': 7.20.11(@babel/core@7.21.5) - '@babel/plugin-transform-modules-umd': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5(@babel/core@7.21.5) - '@babel/plugin-transform-new-target': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-object-super': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-parameters': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-transform-property-literals': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-regenerator': 7.20.5(@babel/core@7.21.5) - '@babel/plugin-transform-reserved-words': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-shorthand-properties': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-spread': 7.20.7(@babel/core@7.21.5) - '@babel/plugin-transform-sticky-regex': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-template-literals': 7.18.9(@babel/core@7.21.5) - '@babel/plugin-transform-typeof-symbol': 7.18.9(@babel/core@7.21.5) - '@babel/plugin-transform-unicode-escapes': 7.18.10(@babel/core@7.21.5) - '@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.21.5) - '@babel/preset-modules': 0.1.5(@babel/core@7.21.5) - '@babel/types': 7.21.5 - babel-plugin-polyfill-corejs2: 0.3.3(@babel/core@7.21.5) - babel-plugin-polyfill-corejs3: 0.6.0(@babel/core@7.21.5) - babel-plugin-polyfill-regenerator: 0.4.1(@babel/core@7.21.5) + '@babel/compat-data': 7.23.2 + '@babel/core': 7.23.2 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.22.15 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-proposal-class-static-block': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-proposal-dynamic-import': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-proposal-export-namespace-from': 7.18.9(@babel/core@7.23.2) + '@babel/plugin-proposal-json-strings': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-proposal-optional-chaining': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-proposal-private-property-in-object': 7.20.5(@babel/core@7.23.2) + '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.2) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.2) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.2) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-import-assertions': 7.20.0(@babel/core@7.23.2) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.2) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.2) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.2) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.2) + '@babel/plugin-transform-arrow-functions': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-transform-async-to-generator': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-transform-block-scoped-functions': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-block-scoping': 7.20.15(@babel/core@7.23.2) + '@babel/plugin-transform-classes': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-transform-computed-properties': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-transform-destructuring': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-duplicate-keys': 7.18.9(@babel/core@7.23.2) + '@babel/plugin-transform-exponentiation-operator': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-for-of': 7.18.8(@babel/core@7.23.2) + '@babel/plugin-transform-function-name': 7.18.9(@babel/core@7.23.2) + '@babel/plugin-transform-literals': 7.18.9(@babel/core@7.23.2) + '@babel/plugin-transform-member-expression-literals': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-modules-amd': 7.20.11(@babel/core@7.23.2) + '@babel/plugin-transform-modules-commonjs': 7.20.11(@babel/core@7.23.2) + '@babel/plugin-transform-modules-systemjs': 7.20.11(@babel/core@7.23.2) + '@babel/plugin-transform-modules-umd': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5(@babel/core@7.23.2) + '@babel/plugin-transform-new-target': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-object-super': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-parameters': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-transform-property-literals': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-regenerator': 7.20.5(@babel/core@7.23.2) + '@babel/plugin-transform-reserved-words': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-shorthand-properties': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-spread': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-transform-sticky-regex': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-template-literals': 7.18.9(@babel/core@7.23.2) + '@babel/plugin-transform-typeof-symbol': 7.18.9(@babel/core@7.23.2) + '@babel/plugin-transform-unicode-escapes': 7.18.10(@babel/core@7.23.2) + '@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.23.2) + '@babel/preset-modules': 0.1.5(@babel/core@7.23.2) + '@babel/types': 7.23.0 + babel-plugin-polyfill-corejs2: 0.3.3(@babel/core@7.23.2) + babel-plugin-polyfill-corejs3: 0.6.0(@babel/core@7.23.2) + babel-plugin-polyfill-regenerator: 0.4.1(@babel/core@7.23.2) core-js-compat: 3.27.2 - semver: 6.3.0 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules@0.1.5(@babel/core@7.21.5): + /@babel/preset-modules@0.1.5(@babel/core@7.23.2): resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.21.5) - '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.21.5) - '@babel/types': 7.21.5 + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.23.2) + '@babel/types': 7.23.0 esutils: 2.0.3 dev: true @@ -2258,26 +2331,18 @@ packages: resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.18.6 - '@babel/parser': 7.21.4 - '@babel/types': 7.20.7 + '@babel/code-frame': 7.21.4 + '@babel/parser': 7.21.5 + '@babel/types': 7.21.5 + dev: true - /@babel/traverse@7.20.13: - resolution: {integrity: sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==} + /@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.18.6 - '@babel/generator': 7.20.14 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.19.0 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.21.4 - '@babel/types': 7.20.7 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + '@babel/code-frame': 7.22.13 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 /@babel/traverse@7.21.5: resolution: {integrity: sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==} @@ -2297,6 +2362,23 @@ packages: - supports-color dev: true + /@babel/traverse@7.23.2: + resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + /@babel/types@7.19.0: resolution: {integrity: sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==} engines: {node: '>=6.9.0'} @@ -2313,6 +2395,7 @@ packages: '@babel/helper-string-parser': 7.19.4 '@babel/helper-validator-identifier': 7.19.1 to-fast-properties: 2.0.0 + dev: true /@babel/types@7.21.5: resolution: {integrity: sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==} @@ -2321,7 +2404,14 @@ packages: '@babel/helper-string-parser': 7.21.5 '@babel/helper-validator-identifier': 7.19.1 to-fast-properties: 2.0.0 - dev: true + + /@babel/types@7.23.0: + resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 /@codemirror/autocomplete@6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2): resolution: {integrity: sha512-SjbgWSwNKbyQOiVXtG8DXG2z29zTbmzpGccxMqakVo+vqK8fx3Ai0Ee7is3JqX6dxJOoK0GfP3LfeUK53Ltv7w==} @@ -2454,19 +2544,6 @@ packages: - '@algolia/client-search' dev: false - /@emmetio/abbreviation@2.2.3: - resolution: {integrity: sha512-87pltuCPt99aL+y9xS6GPZ+Wmmyhll2WXH73gG/xpGcQ84DRnptBsI2r0BeIQ0EB/SQTOe2ANPqFqj3Rj5FOGA==} - dependencies: - '@emmetio/scanner': 1.0.0 - - /@emmetio/css-abbreviation@2.1.4: - resolution: {integrity: sha512-qk9L60Y+uRtM5CPbB0y+QNl/1XKE09mSO+AhhSauIfr2YOx/ta3NJw2d8RtCFxgzHeRqFRr8jgyzThbu+MZ4Uw==} - dependencies: - '@emmetio/scanner': 1.0.0 - - /@emmetio/scanner@1.0.0: - resolution: {integrity: sha512-8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA==} - /@esbuild/android-arm64@0.17.18: resolution: {integrity: sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==} engines: {node: '>=12'} @@ -2484,6 +2561,14 @@ packages: requiresBuild: true optional: true + /@esbuild/android-arm64@0.19.5: + resolution: {integrity: sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + /@esbuild/android-arm@0.17.18: resolution: {integrity: sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==} engines: {node: '>=12'} @@ -2501,6 +2586,14 @@ packages: requiresBuild: true optional: true + /@esbuild/android-arm@0.19.5: + resolution: {integrity: sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + /@esbuild/android-x64@0.17.18: resolution: {integrity: sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==} engines: {node: '>=12'} @@ -2518,6 +2611,14 @@ packages: requiresBuild: true optional: true + /@esbuild/android-x64@0.19.5: + resolution: {integrity: sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + optional: true + /@esbuild/darwin-arm64@0.17.18: resolution: {integrity: sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==} engines: {node: '>=12'} @@ -2535,6 +2636,14 @@ packages: requiresBuild: true optional: true + /@esbuild/darwin-arm64@0.19.5: + resolution: {integrity: sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + /@esbuild/darwin-x64@0.17.18: resolution: {integrity: sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==} engines: {node: '>=12'} @@ -2552,6 +2661,14 @@ packages: requiresBuild: true optional: true + /@esbuild/darwin-x64@0.19.5: + resolution: {integrity: sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + /@esbuild/freebsd-arm64@0.17.18: resolution: {integrity: sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==} engines: {node: '>=12'} @@ -2569,6 +2686,14 @@ packages: requiresBuild: true optional: true + /@esbuild/freebsd-arm64@0.19.5: + resolution: {integrity: sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + optional: true + /@esbuild/freebsd-x64@0.17.18: resolution: {integrity: sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==} engines: {node: '>=12'} @@ -2586,6 +2711,14 @@ packages: requiresBuild: true optional: true + /@esbuild/freebsd-x64@0.19.5: + resolution: {integrity: sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + optional: true + /@esbuild/linux-arm64@0.17.18: resolution: {integrity: sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==} engines: {node: '>=12'} @@ -2603,6 +2736,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-arm64@0.19.5: + resolution: {integrity: sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-arm@0.17.18: resolution: {integrity: sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==} engines: {node: '>=12'} @@ -2620,6 +2761,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-arm@0.19.5: + resolution: {integrity: sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-ia32@0.17.18: resolution: {integrity: sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==} engines: {node: '>=12'} @@ -2637,6 +2786,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-ia32@0.19.5: + resolution: {integrity: sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-loong64@0.17.18: resolution: {integrity: sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==} engines: {node: '>=12'} @@ -2654,6 +2811,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-loong64@0.19.5: + resolution: {integrity: sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-mips64el@0.17.18: resolution: {integrity: sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==} engines: {node: '>=12'} @@ -2671,6 +2836,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-mips64el@0.19.5: + resolution: {integrity: sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-ppc64@0.17.18: resolution: {integrity: sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==} engines: {node: '>=12'} @@ -2688,6 +2861,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-ppc64@0.19.5: + resolution: {integrity: sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-riscv64@0.17.18: resolution: {integrity: sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==} engines: {node: '>=12'} @@ -2705,6 +2886,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-riscv64@0.19.5: + resolution: {integrity: sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-s390x@0.17.18: resolution: {integrity: sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==} engines: {node: '>=12'} @@ -2722,6 +2911,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-s390x@0.19.5: + resolution: {integrity: sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-x64@0.17.18: resolution: {integrity: sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==} engines: {node: '>=12'} @@ -2739,6 +2936,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-x64@0.19.5: + resolution: {integrity: sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/netbsd-x64@0.17.18: resolution: {integrity: sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==} engines: {node: '>=12'} @@ -2756,6 +2961,14 @@ packages: requiresBuild: true optional: true + /@esbuild/netbsd-x64@0.19.5: + resolution: {integrity: sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + optional: true + /@esbuild/openbsd-x64@0.17.18: resolution: {integrity: sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==} engines: {node: '>=12'} @@ -2773,6 +2986,14 @@ packages: requiresBuild: true optional: true + /@esbuild/openbsd-x64@0.19.5: + resolution: {integrity: sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + optional: true + /@esbuild/sunos-x64@0.17.18: resolution: {integrity: sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==} engines: {node: '>=12'} @@ -2790,6 +3011,14 @@ packages: requiresBuild: true optional: true + /@esbuild/sunos-x64@0.19.5: + resolution: {integrity: sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + optional: true + /@esbuild/win32-arm64@0.17.18: resolution: {integrity: sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==} engines: {node: '>=12'} @@ -2807,6 +3036,14 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-arm64@0.19.5: + resolution: {integrity: sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + /@esbuild/win32-ia32@0.17.18: resolution: {integrity: sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==} engines: {node: '>=12'} @@ -2824,6 +3061,14 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-ia32@0.19.5: + resolution: {integrity: sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + /@esbuild/win32-x64@0.17.18: resolution: {integrity: sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==} engines: {node: '>=12'} @@ -2841,6 +3086,14 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-x64@0.19.5: + resolution: {integrity: sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + /@eslint-community/eslint-utils@4.4.0(eslint@8.39.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2943,14 +3196,14 @@ packages: engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/sourcemap-codec': 1.4.15 /@jridgewell/gen-mapping@0.3.2: resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.17 /@jridgewell/resolve-uri@3.1.0: @@ -2973,7 +3226,6 @@ packages: /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: true /@jridgewell/trace-mapping@0.3.17: resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} @@ -3116,9 +3368,6 @@ packages: '@lezer/common': 1.0.2 dev: false - /@ljharb/has-package-exports-patterns@0.0.2: - resolution: {integrity: sha512-4/RWEeXDO6bocPONheFe6gX/oQdP/bEpv0oL4HqjPP5DCenBSt0mHgahppY49N0CpsaqffdwPq+TlX9CYOq2Dw==} - /@mapbox/node-pre-gyp@1.0.10: resolution: {integrity: sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==} hasBin: true @@ -3155,21 +3404,7 @@ packages: unist-util-position-from-estree: 1.1.2 unist-util-stringify-position: 3.0.3 unist-util-visit: 4.1.2 - vfile: 5.3.6 - transitivePeerDependencies: - - supports-color - dev: false - - /@mdx-js/rollup@2.3.0(rollup@3.28.0): - resolution: {integrity: sha512-wLvRfJS/M4UmdqTd+WoaySEE7q4BIejYf1xAHXYvtT1du/1Tl/z2450Gg2+Hu7fh05KwRRiehiTP9Yc/Dtn0fA==} - peerDependencies: - rollup: '>=2' - dependencies: - '@mdx-js/mdx': 2.3.0 - '@rollup/pluginutils': 5.0.2(rollup@3.28.0) - rollup: 3.28.0 - source-map: 0.7.4 - vfile: 5.3.6 + vfile: 5.3.7 transitivePeerDependencies: - supports-color dev: false @@ -3708,28 +3943,10 @@ packages: dev: true optional: true - /@pkgr/utils@2.3.1: - resolution: {integrity: sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - dependencies: - cross-spawn: 7.0.3 - is-glob: 4.0.3 - open: 8.4.0 - picocolors: 1.0.0 - tiny-glob: 0.2.9 - tslib: 2.5.0 - /@polka/url@1.0.0-next.21: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true - /@proload/core@0.3.3: - resolution: {integrity: sha512-7dAFWsIK84C90AMl24+N/ProHKm4iw0akcnoKjRvbfHifJZBLhaDsDus1QJmhG12lXj4e/uB/8mB/0aduCW+NQ==} - dependencies: - deepmerge: 4.2.2 - escalade: 3.1.1 - dev: false - /@replit/codemirror-emacs@6.0.1(@codemirror/autocomplete@6.6.0)(@codemirror/commands@6.2.4)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): resolution: {integrity: sha512-2WYkODZGH1QVAXWuOxTMCwktkoZyv/BjYdJi2A5w4fRrmOQFuIACzb6pO9dgU3J+Pm2naeiX2C8veZr/3/r6AA==} peerDependencies: @@ -3762,7 +3979,27 @@ packages: '@codemirror/view': 6.10.0 dev: false - /@rollup/plugin-babel@5.3.1(@babel/core@7.21.5)(rollup@2.79.1): + /@replit/codemirror-vscode-keymap@6.0.2(@codemirror/autocomplete@6.6.0)(@codemirror/commands@6.2.4)(@codemirror/language@6.6.0)(@codemirror/lint@6.1.0)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0): + resolution: {integrity: sha512-j45qTwGxzpsv82lMD/NreGDORFKSctMDVkGRopaP+OrzSzv+pXDQuU3LnFvKpasyjVT0lf+PKG1v2DSCn/vxxg==} + peerDependencies: + '@codemirror/autocomplete': ^6.0.0 + '@codemirror/commands': ^6.0.0 + '@codemirror/language': ^6.0.0 + '@codemirror/lint': ^6.0.0 + '@codemirror/search': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + dependencies: + '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2) + '@codemirror/commands': 6.2.4 + '@codemirror/language': 6.6.0 + '@codemirror/lint': 6.1.0 + '@codemirror/search': 6.2.3 + '@codemirror/state': 6.2.0 + '@codemirror/view': 6.10.0 + dev: false + + /@rollup/plugin-babel@5.3.1(@babel/core@7.23.2)(rollup@2.79.1): resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -3773,8 +4010,8 @@ packages: '@types/babel__core': optional: true dependencies: - '@babel/core': 7.21.5 - '@babel/helper-module-imports': 7.21.4 + '@babel/core': 7.23.2 + '@babel/helper-module-imports': 7.22.15 '@rollup/pluginutils': 3.1.0(rollup@2.79.1) rollup: 2.79.1 dev: true @@ -3790,7 +4027,7 @@ packages: builtin-modules: 3.3.0 deepmerge: 4.2.2 is-module: 1.0.0 - resolve: 1.22.2 + resolve: 1.22.8 rollup: 2.79.1 dev: true @@ -3804,20 +4041,6 @@ packages: rollup: 2.79.1 dev: true - /@rollup/plugin-replace@5.0.2(rollup@3.12.0): - resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.12.0) - magic-string: 0.27.0 - rollup: 3.12.0 - dev: true - /@rollup/pluginutils@3.1.0(rollup@2.79.1): resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} engines: {node: '>= 8.0.0'} @@ -3830,36 +4053,6 @@ packages: rollup: 2.79.1 dev: true - /@rollup/pluginutils@5.0.2(rollup@3.12.0): - resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@types/estree': 1.0.0 - estree-walker: 2.0.2 - picomatch: 2.3.1 - rollup: 3.12.0 - dev: true - - /@rollup/pluginutils@5.0.2(rollup@3.28.0): - resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@types/estree': 1.0.0 - estree-walker: 2.0.2 - picomatch: 2.3.1 - rollup: 3.28.0 - dev: false - /@sigstore/protobuf-specs@0.1.0: resolution: {integrity: sha512-a31EnjuIDSX8IXBUib3cYLDRlPMU36AWX4xS8ysLaNu4ZzUesDiPt83pgrW2X1YLMe5L2HbDyaKK5BrL4cNKaQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -4256,11 +4449,11 @@ packages: '@types/estree': 1.0.0 dev: false - /@types/babel__core@7.20.0: - resolution: {integrity: sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==} + /@types/babel__core@7.20.3: + resolution: {integrity: sha512-54fjTSeSHwfan8AyHWrKbfBWiEUrNTZsUwPTDSNaaP1QDQIZbeNUg3a59E9D+375MzUw/x1vx2/0F5LBz+AeYA==} dependencies: - '@babel/parser': 7.21.4 - '@babel/types': 7.20.7 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 '@types/babel__traverse': 7.18.3 @@ -4268,18 +4461,18 @@ packages: /@types/babel__generator@7.6.4: resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} dependencies: - '@babel/types': 7.20.7 + '@babel/types': 7.23.0 /@types/babel__template@7.4.1: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: - '@babel/parser': 7.21.4 - '@babel/types': 7.20.7 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 /@types/babel__traverse@7.18.3: resolution: {integrity: sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==} dependencies: - '@babel/types': 7.20.7 + '@babel/types': 7.23.0 /@types/chai-subset@1.3.3: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} @@ -4318,12 +4511,14 @@ packages: dependencies: '@types/unist': 2.0.6 + /@types/hast@3.0.2: + resolution: {integrity: sha512-B5hZHgHsXvfCoO3xgNJvBnX7N8p86TqQeGKXcokW4XXi+qY4vxxPSFYofytvVmpFxzPv7oxDQzjg5Un5m2/xiw==} + dependencies: + '@types/unist': 3.0.1 + /@types/json5@0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - /@types/json5@0.0.30: - resolution: {integrity: sha512-sqm9g7mHlPY/43fcSNrCYfOeX9zkTTK+euO5E6+CVijSMm5tTjkVdwdqRkY3ljjIAf8679vps5jKUoJBCLsMDA==} - /@types/linkify-it@3.0.2: resolution: {integrity: sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==} dev: true @@ -4340,6 +4535,11 @@ packages: dependencies: '@types/unist': 2.0.6 + /@types/mdast@4.0.2: + resolution: {integrity: sha512-tYR83EignvhYO9iU3kDg8V28M0jqyh9zzp5GV+EO+AYnyUl3P5ltkTeJuTiFZQFz670FSb3EwT/6LQdX+UdKfw==} + dependencies: + '@types/unist': 3.0.1 + /@types/mdurl@1.0.2: resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==} dev: true @@ -4362,7 +4562,7 @@ packages: /@types/nlcst@1.0.0: resolution: {integrity: sha512-3TGCfOcy8R8mMQ4CNSNOe3PG66HttvjcLzCoOpvXvDtfWOTi+uT/rxeOKm/qEwbM4SNe1O/PjdiBK2YcTjU4OQ==} dependencies: - '@types/unist': 2.0.6 + '@types/unist': 3.0.1 /@types/node@18.16.3: resolution: {integrity: sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==} @@ -4403,9 +4603,6 @@ packages: '@types/node': 18.16.3 dev: true - /@types/resolve@1.20.2: - resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - /@types/scheduler@0.16.2: resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} @@ -4416,6 +4613,9 @@ packages: /@types/unist@2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} + /@types/unist@3.0.1: + resolution: {integrity: sha512-ue/hDUpPjC85m+PM9OQDMZr3LywT+CT6mPsQq8OJtCLiERkGRcQUFvu9XASF5XWqyZFXbf15lvb3JFJ4dRLWPg==} + /@types/webmidi@2.0.6: resolution: {integrity: sha512-sfS0A5IryqmBrUpcGPipEPeFdpqmZzP6b6lZFxHKgz5n2Vhzh4yJ5P2TvoDUhDjqJyv0Y25ng0Qodgo2Vu08ug==} dev: false @@ -4426,9 +4626,6 @@ packages: '@types/node': 18.16.3 dev: false - /@types/yargs-parser@21.0.0: - resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} - /@typescript-eslint/types@5.49.0: resolution: {integrity: sha512-7If46kusG+sSnEpu0yOz2xFv5nRz158nzEXnJFCGVEHWnuzolXKwrH5Bsf9zsNlOQkyZuk0BZKKoJQI+1JPBBg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4785,14 +4982,17 @@ packages: - '@codemirror/search' dev: false - /@vite-pwa/astro@0.0.5(astro@2.3.2)(vite-plugin-pwa@0.14.7): - resolution: {integrity: sha512-QCFHh7aF2dLwrUBtGi3gpQ7J5X4l9tWX8znqT36yaCsnFg1KtQ5HWhhxD3z/ecdemmlscntTdMqpW+cIf1zeuA==} + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + + /@vite-pwa/astro@0.1.4(astro@3.4.2)(vite-plugin-pwa@0.16.5): + resolution: {integrity: sha512-OmpaMmF9ogxI/YeUFNS0VDhaoPWvoVdRg0iEiQVz4oIQ+AdEjKNx7h0Xbz9p10/tA8EPX+/ugBMUT0xERMAuyQ==} peerDependencies: - astro: ^1.6.0 || ^2.0.0 - vite-plugin-pwa: ^0.14.0 + astro: ^1.6.0 || ^2.0.0 || ^3.0.0 + vite-plugin-pwa: '>=0.16.5 <1' dependencies: - astro: 2.3.2(@types/node@18.16.3) - vite-plugin-pwa: 0.14.7(vite@4.4.5)(workbox-build@6.5.4)(workbox-window@6.5.4) + astro: 3.4.2(@types/node@18.16.3)(typescript@4.9.4) + vite-plugin-pwa: 0.16.5(vite@4.5.0)(workbox-build@7.0.0)(workbox-window@7.0.0) dev: true /@vitejs/plugin-react@4.0.0(vite@4.3.3): @@ -4805,11 +5005,27 @@ packages: '@babel/plugin-transform-react-jsx-self': 7.21.0(@babel/core@7.21.5) '@babel/plugin-transform-react-jsx-source': 7.19.6(@babel/core@7.21.5) react-refresh: 0.14.0 - vite: 4.3.3(@types/node@18.16.3) + vite: 4.3.3 transitivePeerDependencies: - supports-color dev: true + /@vitejs/plugin-react@4.1.0(vite@4.5.0): + resolution: {integrity: sha512-rM0SqazU9iqPUraQ2JlIvReeaxOoRj6n+PzB1C0cBzIbd8qP336nC39/R9yPi3wVcah7E7j/kdU1uCUqMEU4OQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.23.2) + '@types/babel__core': 7.20.3 + react-refresh: 0.14.0 + vite: 4.5.0(@types/node@18.16.3) + transitivePeerDependencies: + - supports-color + dev: false + /@vitest/expect@0.33.0: resolution: {integrity: sha512-sVNf+Gla3mhTCxNJx+wJLDPp/WcstOe0Ksqz4Vec51MmgMth/ia0MGFEkIZmVGeTL5HtjYR4Wl/ZxBxBXZJTzQ==} dependencies: @@ -4858,18 +5074,6 @@ packages: pretty-format: 29.6.1 dev: true - /@vscode/emmet-helper@2.8.6: - resolution: {integrity: sha512-IIB8jbiKy37zN8bAIHx59YmnIelY78CGHtThnibD/d3tQOKRY83bYVi9blwmZVUZh6l9nfkYH3tvReaiNxY9EQ==} - dependencies: - emmet: 2.3.6 - jsonc-parser: 2.3.1 - vscode-languageserver-textdocument: 1.0.8 - vscode-languageserver-types: 3.17.2 - vscode-uri: 2.1.2 - - /@vscode/l10n@0.0.11: - resolution: {integrity: sha512-ukOMWnCg1tCvT7WnDfsUKQOFDQGsyR5tNgRpwmqi+5/vzU3ghdDXzvIM4IOPdSb3OeSsBNvmSL8nxIVOqi2WXA==} - /@yarnpkg/lockfile@1.1.0: resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} dev: true @@ -4912,6 +5116,14 @@ packages: event-target-shim: 5.0.1 dev: true + /acorn-jsx@5.3.2(acorn@8.10.0): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.10.0 + dev: false + /acorn-jsx@5.3.2(acorn@8.8.2): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -4928,7 +5140,6 @@ packages: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} hasBin: true - dev: true /acorn@8.8.2: resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} @@ -5215,69 +5426,71 @@ packages: hasBin: true dev: false - /astro@2.3.2(@types/node@18.16.3): - resolution: {integrity: sha512-8nv7KG3LpKRh1/2fpOkfXvhvzgYKPYrwztnvjdASaUCT1E9j8Vdsagc11b8M+IbLkR8HwDAn/qDV4KvB3AW9nQ==} - engines: {node: '>=16.12.0', npm: '>=6.14.0'} + /astro@3.4.2(@types/node@18.16.3)(typescript@4.9.4): + resolution: {integrity: sha512-t+EjGXvmr8/x/3punIC7aGHwaseRYV4uWVaEcffUXFpGRv6z7UNffQwjyyuPjWbDj2pOPquKhQE1GnfK0V4ZNw==} + engines: {node: '>=18.14.1', npm: '>=6.14.0'} hasBin: true - peerDependencies: - sharp: ^0.31.3 - peerDependenciesMeta: - sharp: - optional: true dependencies: - '@astrojs/compiler': 1.3.2 - '@astrojs/language-server': 0.28.3 - '@astrojs/markdown-remark': 2.1.4(astro@2.3.2) - '@astrojs/telemetry': 2.1.0 - '@astrojs/webapi': 2.1.0 - '@babel/core': 7.20.12 - '@babel/generator': 7.20.14 - '@babel/parser': 7.21.4 - '@babel/plugin-transform-react-jsx': 7.20.13(@babel/core@7.20.12) - '@babel/traverse': 7.20.13 - '@babel/types': 7.20.7 - '@types/babel__core': 7.20.0 - '@types/yargs-parser': 21.0.0 - acorn: 8.8.2 - boxen: 6.2.1 + '@astrojs/compiler': 2.2.1 + '@astrojs/internal-helpers': 0.2.1 + '@astrojs/markdown-remark': 3.3.0(astro@3.4.2) + '@astrojs/telemetry': 3.0.4 + '@babel/core': 7.23.2 + '@babel/generator': 7.23.0 + '@babel/parser': 7.23.0 + '@babel/plugin-transform-react-jsx': 7.22.15(@babel/core@7.23.2) + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 + '@types/babel__core': 7.20.3 + acorn: 8.10.0 + boxen: 7.1.1 chokidar: 3.5.3 - ci-info: 3.7.1 + ci-info: 3.9.0 + clsx: 2.0.0 common-ancestor-path: 1.0.1 cookie: 0.5.0 debug: 4.3.4 - deepmerge-ts: 4.2.2 - devalue: 4.2.2 + deterministic-object-hash: 1.3.1 + devalue: 4.3.2 diff: 5.1.0 - es-module-lexer: 1.1.0 + es-module-lexer: 1.3.1 + esbuild: 0.19.5 estree-walker: 3.0.3 - execa: 6.1.0 - fast-glob: 3.2.12 + execa: 8.0.1 + fast-glob: 3.3.1 github-slugger: 2.0.0 gray-matter: 4.0.3 html-escaper: 3.0.3 + http-cache-semantics: 4.1.1 + js-yaml: 4.1.0 kleur: 4.1.5 - magic-string: 0.27.0 + magic-string: 0.30.5 + mdast-util-to-hast: 12.3.0 mime: 3.0.0 - ora: 6.1.2 + ora: 7.0.1 + p-limit: 4.0.0 + p-queue: 7.4.1 path-to-regexp: 6.2.1 - preferred-pm: 3.0.3 + preferred-pm: 3.1.2 + probe-image-size: 7.2.3 prompts: 2.4.2 rehype: 12.0.1 - semver: 7.3.8 + resolve: 1.22.8 + semver: 7.5.4 server-destroy: 1.0.1 - shiki: 0.11.1 - slash: 4.0.0 - string-width: 5.1.2 - strip-ansi: 7.0.1 - supports-esm: 1.0.0 - tsconfig-resolver: 3.0.1 - typescript: 4.9.4 + shikiji: 0.6.10 + string-width: 6.1.0 + strip-ansi: 7.1.0 + tsconfck: 3.0.0(typescript@4.9.4) unist-util-visit: 4.1.2 - vfile: 5.3.6 - vite: 4.4.5(@types/node@18.16.3) - vitefu: 0.2.4(vite@4.4.5) + vfile: 5.3.7 + vite: 4.5.0(@types/node@18.16.3) + vitefu: 0.2.4(vite@4.5.0) + which-pm: 2.1.1 yargs-parser: 21.1.1 - zod: 3.21.4 + zod: 3.22.4 + optionalDependencies: + sharp: 0.32.6 transitivePeerDependencies: - '@types/node' - less @@ -5287,6 +5500,7 @@ packages: - sugarss - supports-color - terser + - typescript /async@3.2.4: resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} @@ -5323,6 +5537,23 @@ packages: picocolors: 1.0.0 postcss: 8.4.23 postcss-value-parser: 4.2.0 + dev: true + + /autoprefixer@10.4.16(postcss@8.4.31): + resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.22.1 + caniuse-lite: 1.0.30001559 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false /available-typed-arrays@1.0.5: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} @@ -5339,38 +5570,46 @@ packages: - debug dev: true - /babel-plugin-polyfill-corejs2@0.3.3(@babel/core@7.21.5): + /b4a@1.6.4: + resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} + optional: true + + /babel-plugin-add-module-exports@0.2.1: + resolution: {integrity: sha512-3AN/9V/rKuv90NG65m4tTHsI04XrCKsWbztIcW7a8H5iIN7WlvWucRtVV0V/rT4QvtA11n5Vmp20fLwfMWqp6g==} + dev: false + + /babel-plugin-polyfill-corejs2@0.3.3(@babel/core@7.23.2): resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.21.5 - '@babel/core': 7.21.5 - '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.21.5) - semver: 6.3.0 + '@babel/compat-data': 7.23.2 + '@babel/core': 7.23.2 + '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.23.2) + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.6.0(@babel/core@7.21.5): + /babel-plugin-polyfill-corejs3@0.6.0(@babel/core@7.23.2): resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.23.2) core-js-compat: 3.27.2 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.4.1(@babel/core@7.21.5): + /babel-plugin-polyfill-regenerator@0.4.1(@babel/core@7.23.2): resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.5 - '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.23.2) transitivePeerDependencies: - supports-color dev: true @@ -5408,7 +5647,6 @@ packages: buffer: 5.7.1 inherits: 2.0.4 readable-stream: 3.6.0 - dev: true /bl@5.1.0: resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} @@ -5421,13 +5659,13 @@ packages: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} dev: true - /boxen@6.2.1: - resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /boxen@7.1.1: + resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} + engines: {node: '>=14.16'} dependencies: ansi-align: 3.0.1 - camelcase: 6.3.0 - chalk: 4.1.2 + camelcase: 7.0.1 + chalk: 5.2.0 cli-boxes: 3.0.0 string-width: 5.1.2 type-fest: 2.19.0 @@ -5452,16 +5690,6 @@ packages: dependencies: fill-range: 7.0.1 - /browserslist@4.21.4: - resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001449 - electron-to-chromium: 1.4.284 - node-releases: 2.0.8 - update-browserslist-db: 1.0.10(browserslist@4.21.4) - /browserslist@4.21.5: resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -5471,17 +5699,41 @@ packages: electron-to-chromium: 1.4.284 node-releases: 2.0.8 update-browserslist-db: 1.0.10(browserslist@4.21.5) + dev: true + + /browserslist@4.22.1: + resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001559 + electron-to-chromium: 1.4.574 + node-releases: 2.0.13 + update-browserslist-db: 1.0.13(browserslist@4.22.1) + + /buffer-alloc-unsafe@1.1.0: + resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} + dev: false + + /buffer-alloc@1.2.0: + resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} + dependencies: + buffer-alloc-unsafe: 1.1.0 + buffer-fill: 1.0.0 + dev: false + + /buffer-fill@1.0.0: + resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} + dev: false /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - dev: true /buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - dev: true /buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} @@ -5511,12 +5763,6 @@ packages: dependencies: semver: 7.3.8 - /busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} - dependencies: - streamsearch: 1.1.0 - /byte-size@7.0.0: resolution: {integrity: sha512-NNiBxKgxybMBtWdmvx7ZITJi4ZG+CYUgwOSZTfqB1qogkRHrhbQE/R2r5Fh94X+InN5MCYz6SvB/ejHMj/HbsQ==} engines: {node: '>=10'} @@ -5612,15 +5858,16 @@ packages: engines: {node: '>=6'} dev: true - /camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - - /caniuse-lite@1.0.30001449: - resolution: {integrity: sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw==} + /camelcase@7.0.1: + resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} + engines: {node: '>=14.16'} /caniuse-lite@1.0.30001481: resolution: {integrity: sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==} + dev: true + + /caniuse-lite@1.0.30001559: + resolution: {integrity: sha512-cPiMKZgqgkg5LY3/ntGeLFUpi6tzddBNS58A4tnTgQw1zON7u2sZMU7SzOeVH4tj20++9ggL+V6FDOFMTaFFYA==} /canvas@2.11.2: resolution: {integrity: sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==} @@ -5684,6 +5931,10 @@ packages: resolution: {integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + /character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} @@ -5727,7 +5978,6 @@ packages: /chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - dev: true /chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} @@ -5737,8 +5987,8 @@ packages: resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} dev: true - /ci-info@3.7.1: - resolution: {integrity: sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==} + /ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} /claviature@0.1.0: @@ -5775,6 +6025,11 @@ packages: /cli-spinners@2.7.0: resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==} engines: {node: '>=6'} + dev: true + + /cli-spinners@2.9.1: + resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==} + engines: {node: '>=6'} /cli-width@3.0.0: resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} @@ -5823,6 +6078,7 @@ packages: /clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} + dev: true /clone@2.1.2: resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} @@ -5837,6 +6093,10 @@ packages: readable-stream: 2.3.7 dev: false + /clsx@2.0.0: + resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} + engines: {node: '>=6'} + /cmd-shim@5.0.0: resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -5892,10 +6152,25 @@ packages: /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + /color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + optional: true + /color-support@1.1.3: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} hasBin: true + /color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + optional: true + /columnify@1.6.0: resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} engines: {node: '>=8.0.0'} @@ -6102,6 +6377,10 @@ packages: /convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + dev: true + + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} /cookie@0.5.0: resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} @@ -6110,7 +6389,7 @@ packages: /core-js-compat@3.27.2: resolution: {integrity: sha512-welaYuF7ZtbYKGrIy7y3eb40d37rG1FvzEOfe7hSLd2iD6duMDqUhRfSvCGyC46HhR6Y8JXXdZ2lnRUMkPBpvg==} dependencies: - browserslist: 4.21.5 + browserslist: 4.22.1 dev: true /core-util-is@1.0.3: @@ -6181,6 +6460,11 @@ packages: resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} dev: true + /dct@0.1.0: + resolution: {integrity: sha512-/uUtEniuMq1aUxvLAoDtAduyl12oM1zhA/le2f83UFN/9+4KDHXFB6znEfoj5SDDLiTpUTr26NpxC7t8IFOYhQ==} + engines: {node: '>=0.12.0'} + dev: false + /debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -6190,7 +6474,6 @@ packages: optional: true dependencies: ms: 2.0.0 - dev: false /debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} @@ -6201,7 +6484,6 @@ packages: optional: true dependencies: ms: 2.1.3 - dev: true /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} @@ -6243,7 +6525,6 @@ packages: engines: {node: '>=10'} dependencies: mimic-response: 3.1.0 - dev: true /dedent@0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} @@ -6259,27 +6540,25 @@ packages: /deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} - dev: true /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - /deepmerge-ts@4.2.2: - resolution: {integrity: sha512-Ka3Kb21tiWjvQvS9U+1Dx+aqFAHsdTnMdYptLTmC2VAmDFMugWMY1e15aTODstipmCun8iNuqeSfcx6rsUUk0Q==} - engines: {node: '>=12.4.0'} - /deepmerge@4.2.2: resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} engines: {node: '>=0.10.0'} + dev: true /defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: clone: 1.0.4 + dev: true /define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} + dev: true /define-properties@1.1.4: resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} @@ -6347,6 +6626,11 @@ packages: resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==} engines: {node: '>=8'} + /detect-libc@2.0.2: + resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} + engines: {node: '>=8'} + optional: true + /detective-amd@4.0.1: resolution: {integrity: sha512-bDo22IYbJ8yzALB0Ow5CQLtyhU1BpDksLB9dsWHI9Eh0N3OQR6aQqhjPsNDd69ncYwRfL1sTo7OA9T3VRVSe2Q==} engines: {node: '>=12'} @@ -6426,8 +6710,16 @@ packages: - supports-color dev: false - /devalue@4.2.2: - resolution: {integrity: sha512-Pkwd8qrI9O20VJ14fBNHu+on99toTNZFbgWRpZbC0zbDXpnE2WHYcrC1fHhMsF/3Ee+2yaW7vEujAT7fCYgqrA==} + /deterministic-object-hash@1.3.1: + resolution: {integrity: sha512-kQDIieBUreEgY+akq0N7o4FzZCr27dPG1xr3wq267vPwDlSXQ3UMcBXHqTGUBaM/5WDS1jwTYjxRhUzHeuiAvw==} + + /devalue@4.3.2: + resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} + + /devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + dependencies: + dequal: 2.0.3 /didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} @@ -6527,12 +6819,13 @@ packages: /electron-to-chromium@1.4.284: resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} + dev: true - /emmet@2.3.6: - resolution: {integrity: sha512-pLS4PBPDdxuUAmw7Me7+TcHbykTsBKN/S9XJbUOMFQrNv9MoshzyMFK/R57JBm94/6HSL4vHnDeEmxlC82NQ4A==} - dependencies: - '@emmetio/abbreviation': 2.2.3 - '@emmetio/css-abbreviation': 2.1.4 + /electron-to-chromium@1.4.574: + resolution: {integrity: sha512-bg1m8L0n02xRzx4LsTTMbBPiUd9yIR+74iPtS/Ao65CuXvhVZHP0ym1kSdDG3yHFDXqHQQBKujlN1AQ8qZnyFg==} + + /emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -6552,7 +6845,6 @@ packages: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: once: 1.4.0 - dev: true /enhanced-resolve@5.12.0: resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==} @@ -6573,6 +6865,10 @@ packages: resolution: {integrity: sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==} dev: true + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + /env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -6633,12 +6929,8 @@ packages: which-typed-array: 1.1.9 dev: true - /es-module-lexer@1.1.0: - resolution: {integrity: sha512-fJg+1tiyEeS8figV+fPcPpm8WqJEflG3yPU0NOm5xMvrNkuiy7HzX/Ljng4Y0hAoiw4/3hQTCFYw+ub8+a2pRA==} - - /es-module-lexer@1.2.1: - resolution: {integrity: sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==} - dev: false + /es-module-lexer@1.3.1: + resolution: {integrity: sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==} /es-set-tostringtag@2.0.1: resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} @@ -6748,6 +7040,35 @@ packages: '@esbuild/win32-ia32': 0.18.20 '@esbuild/win32-x64': 0.18.20 + /esbuild@0.19.5: + resolution: {integrity: sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.19.5 + '@esbuild/android-arm64': 0.19.5 + '@esbuild/android-x64': 0.19.5 + '@esbuild/darwin-arm64': 0.19.5 + '@esbuild/darwin-x64': 0.19.5 + '@esbuild/freebsd-arm64': 0.19.5 + '@esbuild/freebsd-x64': 0.19.5 + '@esbuild/linux-arm': 0.19.5 + '@esbuild/linux-arm64': 0.19.5 + '@esbuild/linux-ia32': 0.19.5 + '@esbuild/linux-loong64': 0.19.5 + '@esbuild/linux-mips64el': 0.19.5 + '@esbuild/linux-ppc64': 0.19.5 + '@esbuild/linux-riscv64': 0.19.5 + '@esbuild/linux-s390x': 0.19.5 + '@esbuild/linux-x64': 0.19.5 + '@esbuild/netbsd-x64': 0.19.5 + '@esbuild/openbsd-x64': 0.19.5 + '@esbuild/sunos-x64': 0.19.5 + '@esbuild/win32-arm64': 0.19.5 + '@esbuild/win32-ia32': 0.19.5 + '@esbuild/win32-x64': 0.19.5 + /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -7044,9 +7365,6 @@ packages: resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} dev: true - /estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - /estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: @@ -7064,9 +7382,18 @@ packages: /eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + /eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + /events@1.1.1: + resolution: {integrity: sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==} + engines: {node: '>=0.4.x'} + dev: false + /events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} + dev: true /execa@5.0.0: resolution: {integrity: sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==} @@ -7098,24 +7425,23 @@ packages: strip-final-newline: 2.0.0 dev: true - /execa@6.1.0: - resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} dependencies: cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 3.0.1 + get-stream: 8.0.1 + human-signals: 5.0.0 is-stream: 3.0.0 merge-stream: 2.0.0 npm-run-path: 5.1.0 onetime: 6.0.0 - signal-exit: 3.0.7 + signal-exit: 4.1.0 strip-final-newline: 3.0.0 /expand-template@2.0.3: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} - dev: true /ext@1.7.0: resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} @@ -7144,6 +7470,10 @@ packages: /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + /fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + optional: true + /fast-glob@3.2.12: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} engines: {node: '>=8.6.0'} @@ -7165,6 +7495,16 @@ packages: micromatch: 4.0.5 dev: true + /fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -7176,12 +7516,6 @@ packages: dependencies: reusify: 1.0.4 - /fault@2.0.1: - resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} - dependencies: - format: 0.2.2 - dev: false - /fetch-blob@3.2.0: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} @@ -7190,6 +7524,12 @@ packages: web-streams-polyfill: 3.2.1 dev: true + /fftjs@0.0.4: + resolution: {integrity: sha512-nIWxQyth1LVD6NH8a+YZUv+McjzbOY6dMe4wv6Pq5cGfP+c8Rd1T8Dsd50DCWlNgzSqA3y9lOkpD6dZD3qHa1A==} + dependencies: + babel-plugin-add-module-exports: 0.2.1 + dev: false + /figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} @@ -7332,11 +7672,6 @@ packages: mime-types: 2.1.35 dev: true - /format@0.2.2: - resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} - engines: {node: '>=0.4.x'} - dev: false - /formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} @@ -7347,6 +7682,10 @@ packages: /fraction.js@4.2.0: resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} + /fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + dev: false + /from2@2.3.0: resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} dependencies: @@ -7356,7 +7695,6 @@ packages: /fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - dev: true /fs-extra@11.1.1: resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} @@ -7408,6 +7746,9 @@ packages: /function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + /function.prototype.name@1.1.5: resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} engines: {node: '>= 0.4'} @@ -7520,6 +7861,11 @@ packages: /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} + dev: true + + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} @@ -7579,10 +7925,6 @@ packages: /github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} - dev: true - - /github-slugger@1.5.0: - resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} /github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} @@ -7680,23 +8022,17 @@ packages: define-properties: 1.1.4 dev: true - /globalyzer@0.1.0: - resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} - /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.2.12 + fast-glob: 3.3.1 ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 - /globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - /gonzales-pe@4.3.0: resolution: {integrity: sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==} engines: {node: '>=0.6.0'} @@ -7804,11 +8140,6 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - /has-package-exports@1.3.0: - resolution: {integrity: sha512-e9OeXPQnmPhYoJ63lXC4wWe34TxEGZDZ3OQX9XRqp2VwsfLl3bQBy7VehLnd34g3ef8CmYlBLGqEMKXuz8YazQ==} - dependencies: - '@ljharb/has-package-exports-patterns': 0.0.2 - /has-property-descriptors@1.0.0: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: @@ -7841,6 +8172,12 @@ packages: dependencies: function-bind: 1.1.1 + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + /hast-util-from-parse5@7.1.1: resolution: {integrity: sha512-R6PoNcUs89ZxLJmMWsVbwSWuz95/9OriyQZ3e2ybwqGsRXzhA6gv49rgGmQvLbZuSNDv9fCg7vV7gXUsvtUFaA==} dependencies: @@ -7848,10 +8185,22 @@ packages: '@types/unist': 2.0.6 hastscript: 7.2.0 property-information: 6.2.0 - vfile: 5.3.6 + vfile: 5.3.7 vfile-location: 4.0.1 web-namespaces: 2.0.1 + /hast-util-from-parse5@8.0.1: + resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} + dependencies: + '@types/hast': 3.0.2 + '@types/unist': 3.0.1 + devlop: 1.1.0 + hastscript: 8.0.0 + property-information: 6.2.0 + vfile: 6.0.1 + vfile-location: 5.0.2 + web-namespaces: 2.0.1 + /hast-util-has-property@1.0.4: resolution: {integrity: sha512-ghHup2voGfgFoHMGnaLHOjbYFACKrRh9KFttdCzMCbFoBMJXiNi2+XTrPP8+q6cDJM/RSqlCfVWrjp1H201rZg==} dev: false @@ -7878,6 +8227,11 @@ packages: dependencies: '@types/hast': 2.3.4 + /hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + dependencies: + '@types/hast': 3.0.2 + /hast-util-raw@7.2.3: resolution: {integrity: sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==} dependencies: @@ -7889,7 +8243,24 @@ packages: parse5: 6.0.1 unist-util-position: 4.0.4 unist-util-visit: 4.1.2 - vfile: 5.3.6 + vfile: 5.3.7 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + /hast-util-raw@9.0.1: + resolution: {integrity: sha512-5m1gmba658Q+lO5uqL5YNGQWeh1MYWZbZmWrM5lncdcuiXuo5E2HT/CIOp0rLF8ksfSwiCVJ3twlgVRyTGThGA==} + dependencies: + '@types/hast': 3.0.2 + '@types/unist': 3.0.1 + '@ungap/structured-clone': 1.2.0 + hast-util-from-parse5: 8.0.1 + hast-util-to-parse5: 8.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.0.2 + parse5: 7.1.2 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.1 web-namespaces: 2.0.1 zwitch: 2.0.4 @@ -7930,6 +8301,22 @@ packages: stringify-entities: 4.0.3 zwitch: 2.0.4 + /hast-util-to-html@9.0.0: + resolution: {integrity: sha512-IVGhNgg7vANuUA2XKrT6sOIIPgaYZnmLx3l/CCOAK0PtgfoHrZwX7jCSYyFxHTrGmC6S9q8aQQekjp4JPZF+cw==} + dependencies: + '@types/hast': 3.0.2 + '@types/unist': 3.0.1 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-raw: 9.0.1 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.0.2 + property-information: 6.2.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.3 + zwitch: 2.0.4 + /hast-util-to-parse5@7.1.0: resolution: {integrity: sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==} dependencies: @@ -7940,6 +8327,17 @@ packages: web-namespaces: 2.0.1 zwitch: 2.0.4 + /hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + dependencies: + '@types/hast': 3.0.2 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 6.2.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + /hast-util-to-string@2.0.0: resolution: {integrity: sha512-02AQ3vLhuH3FisaMM+i/9sm4OXGSq1UhOOCpTLLQtHdL3tZt7qil69r8M8iDkZYyC0HCFylcYoP+8IO7ddta1A==} dependencies: @@ -7949,6 +8347,11 @@ packages: /hast-util-whitespace@2.0.1: resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} + /hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + dependencies: + '@types/hast': 3.0.2 + /hastscript@7.2.0: resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==} dependencies: @@ -7958,6 +8361,15 @@ packages: property-information: 6.2.0 space-separated-tokens: 2.0.2 + /hastscript@8.0.0: + resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + dependencies: + '@types/hast': 3.0.2 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 6.2.0 + space-separated-tokens: 2.0.2 + /hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true @@ -7996,9 +8408,11 @@ packages: /html-void-elements@2.0.1: resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} + /html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + /http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - dev: true /http-proxy-agent@5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} @@ -8025,9 +8439,9 @@ packages: engines: {node: '>=10.17.0'} dev: true - /human-signals@3.0.1: - resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} - engines: {node: '>=12.20.0'} + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} /humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} @@ -8035,12 +8449,21 @@ packages: ms: 2.1.3 dev: true + /hydra-synth@1.3.29: + resolution: {integrity: sha512-KK1wMGpo9AuVivvD9SP7ukPS7T/rMaYA7XMlnRF3oFbTw9u4l4aVTyexG+KmCd5XDD/4GulR1jVzySZlAuGPCw==} + dependencies: + meyda: 5.6.2 + raf-loop: 1.1.3 + regl: 1.7.0 + transitivePeerDependencies: + - supports-color + dev: false + /iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 - dev: true /iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} @@ -8092,8 +8515,8 @@ packages: resolve-cwd: 3.0.0 dev: true - /import-meta-resolve@2.2.1: - resolution: {integrity: sha512-C6lLL7EJPY44kBvA80gq4uMsVFw5x3oSKfuMl1cuZ2RkI5+UJqQXgn+6hlUew0y4ig7Ypt4CObAAIzU53Nfpuw==} + /import-meta-resolve@3.0.0: + resolution: {integrity: sha512-4IwhLhNNA8yy445rPjD/lWh++7hMDOml2eHtd58eG7h+qK3EryMuuRbsHGPikCoAgIkkDnckKfWSk2iDla/ejg==} /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} @@ -8119,7 +8542,6 @@ packages: /ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: true /init-package-json@3.0.2: resolution: {integrity: sha512-YhlQPEjNFqlGdzrBfDNRLhvoSgX7iQRgSxgsNknRQ9ITXFT7UMfVMWhBTOh2Y+25lRnGrv5Xz8yZwQ3ACR6T3A==} @@ -8226,7 +8648,6 @@ packages: /is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - dev: false /is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} @@ -8269,6 +8690,11 @@ packages: dependencies: has: 1.0.3 + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + dependencies: + hasown: 2.0.0 + /is-core-module@2.9.0: resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==} dependencies: @@ -8289,6 +8715,7 @@ packages: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} hasBin: true + dev: true /is-docker@3.0.0: resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} @@ -8323,6 +8750,13 @@ packages: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} dev: false + /is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + dependencies: + is-docker: 3.0.0 + /is-interactive@1.0.0: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} @@ -8508,6 +8942,17 @@ packages: engines: {node: '>=8'} dependencies: is-docker: 2.2.1 + dev: true + + /is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + dependencies: + is-inside-container: 1.0.0 + + /isarray@0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} + dev: false /isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} @@ -8706,11 +9151,9 @@ packages: engines: {node: '>=6'} hasBin: true - /jsonc-parser@2.3.1: - resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} - /jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} @@ -9032,7 +9475,7 @@ packages: resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} engines: {node: '>=12'} dependencies: - chalk: 5.2.0 + chalk: 5.3.0 is-unicode-supported: 1.3.0 /longest-streak@3.1.0: @@ -9077,12 +9520,6 @@ packages: sourcemap-codec: 1.4.8 dev: true - /magic-string@0.27.0: - resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.14 - /magic-string@0.30.1: resolution: {integrity: sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==} engines: {node: '>=12'} @@ -9090,6 +9527,12 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true + /magic-string@0.30.5: + resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + /make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -9205,6 +9648,13 @@ packages: '@types/unist': 2.0.6 unist-util-visit: 4.1.2 + /mdast-util-definitions@6.0.0: + resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} + dependencies: + '@types/mdast': 4.0.2 + '@types/unist': 3.0.1 + unist-util-visit: 5.0.0 + /mdast-util-find-and-replace@2.2.2: resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==} dependencies: @@ -9231,14 +9681,6 @@ packages: transitivePeerDependencies: - supports-color - /mdast-util-frontmatter@1.0.1: - resolution: {integrity: sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==} - dependencies: - '@types/mdast': 3.0.10 - mdast-util-to-markdown: 1.5.0 - micromark-extension-frontmatter: 1.0.0 - dev: false - /mdast-util-gfm-autolink-literal@1.0.2: resolution: {integrity: sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg==} dependencies: @@ -9344,19 +9786,30 @@ packages: '@types/mdast': 3.0.10 unist-util-is: 5.2.0 - /mdast-util-to-hast@12.2.6: - resolution: {integrity: sha512-Kfo1JNUsi6r6CI7ZOJ6yt/IEKMjMK4nNjQ8C+yc8YBbIlDSp9dmj0zY90ryiu6Vy4CVGv0zi1H4ZoIaYVV8cwA==} + /mdast-util-to-hast@12.3.0: + resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} dependencies: '@types/hast': 2.3.4 '@types/mdast': 3.0.10 mdast-util-definitions: 5.1.2 micromark-util-sanitize-uri: 1.1.0 trim-lines: 3.0.1 - unist-builder: 3.0.1 unist-util-generated: 2.0.1 unist-util-position: 4.0.4 unist-util-visit: 4.1.2 + /mdast-util-to-hast@13.0.2: + resolution: {integrity: sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==} + dependencies: + '@types/hast': 3.0.2 + '@types/mdast': 4.0.2 + '@ungap/structured-clone': 1.2.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + /mdast-util-to-markdown@1.5.0: resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} dependencies: @@ -9414,6 +9867,18 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} + /meyda@5.6.2: + resolution: {integrity: sha512-FSHo8XDdmhIDeBJ2nht9WYRj0VIQ8wbzcfken0YIHUuuxVMnpDcvzVfXyY2m6YkA7q6ypzKROUNV4yoXG0uogQ==} + hasBin: true + dependencies: + dct: 0.1.0 + fftjs: 0.0.4 + node-getopt: 0.3.2 + wav: 1.0.2 + transitivePeerDependencies: + - supports-color + dev: false + /micromark-core-commonmark@1.0.6: resolution: {integrity: sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==} dependencies: @@ -9434,14 +9899,6 @@ packages: micromark-util-types: 1.0.2 uvu: 0.5.6 - /micromark-extension-frontmatter@1.0.0: - resolution: {integrity: sha512-EXjmRnupoX6yYuUJSQhrQ9ggK0iQtQlpi6xeJzVD5xscyAI+giqco5fdymayZhJMbIFecjnE2yz85S9NzIgQpg==} - dependencies: - fault: 2.0.1 - micromark-util-character: 1.1.0 - micromark-util-symbol: 1.0.1 - dev: false - /micromark-extension-gfm-autolink-literal@1.0.3: resolution: {integrity: sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==} dependencies: @@ -9556,8 +10013,8 @@ packages: /micromark-extension-mdxjs@1.0.0: resolution: {integrity: sha512-TZZRZgeHvtgm+IhtgC2+uDMR7h8eTKF0QUX9YsgoL9+bADBpBY6SiLvWqnBlLbCEevITmTqmEuY3FoxMKVs1rQ==} dependencies: - acorn: 8.8.2 - acorn-jsx: 5.3.2(acorn@8.8.2) + acorn: 8.10.0 + acorn-jsx: 5.3.2(acorn@8.10.0) micromark-extension-mdx-expression: 1.0.4 micromark-extension-mdx-jsx: 1.0.3 micromark-extension-mdx-md: 1.0.0 @@ -9623,6 +10080,12 @@ packages: micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 + /micromark-util-character@2.0.1: + resolution: {integrity: sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==} + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + /micromark-util-chunked@1.0.0: resolution: {integrity: sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==} dependencies: @@ -9657,6 +10120,9 @@ packages: /micromark-util-encode@1.0.1: resolution: {integrity: sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==} + /micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + /micromark-util-events-to-acorn@1.2.1: resolution: {integrity: sha512-mkg3BaWlw6ZTkQORrKVBW4o9ICXPxLtGz51vml5mQpKFdo9vqIX68CAx5JhTOdjQyAHH7JFmm4rh8toSPQZUmg==} dependencies: @@ -9689,6 +10155,13 @@ packages: micromark-util-encode: 1.0.1 micromark-util-symbol: 1.0.1 + /micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + dependencies: + micromark-util-character: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 + /micromark-util-subtokenize@1.0.2: resolution: {integrity: sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==} dependencies: @@ -9700,9 +10173,15 @@ packages: /micromark-util-symbol@1.0.1: resolution: {integrity: sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==} + /micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + /micromark-util-types@1.0.2: resolution: {integrity: sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==} + /micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + /micromark@3.1.0: resolution: {integrity: sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==} dependencies: @@ -9765,7 +10244,6 @@ packages: /mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} - dev: true /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} @@ -9923,7 +10401,6 @@ packages: /mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - dev: true /mkdirp-infer-owner@2.0.0: resolution: {integrity: sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==} @@ -10000,14 +10477,12 @@ packages: /ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - dev: false /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} /ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - dev: true /multimatch@5.0.0: resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} @@ -10059,11 +10534,21 @@ packages: /napi-build-utils@1.0.2: resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} - dev: true /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + /needle@2.9.1: + resolution: {integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==} + engines: {node: '>= 4.4.x'} + hasBin: true + dependencies: + debug: 3.2.7 + iconv-lite: 0.4.24 + sax: 1.3.0 + transitivePeerDependencies: + - supports-color + /negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -10087,12 +10572,15 @@ packages: engines: {node: '>=10'} dependencies: semver: 7.3.8 - dev: true /node-addon-api@3.2.1: resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} dev: true + /node-addon-api@6.1.0: + resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} + optional: true + /node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} @@ -10129,6 +10617,11 @@ packages: formdata-polyfill: 4.0.10 dev: true + /node-getopt@0.3.2: + resolution: {integrity: sha512-yqkmYrMbK1wPrfz7mgeYvA4tBperLg9FQ4S3Sau3nSAkpOA0x0zC8nQ1siBwozy1f4SE8vq2n1WKv99r+PCa1Q==} + engines: {node: '>= 0.6.0'} + dev: false + /node-gyp-build@4.6.0: resolution: {integrity: sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==} hasBin: true @@ -10153,21 +10646,25 @@ packages: - supports-color dev: true + /node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + /node-releases@2.0.8: resolution: {integrity: sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==} + dev: true /node-source-walk@4.3.0: resolution: {integrity: sha512-8Q1hXew6ETzqKRAs3jjLioSxNfT1cx74ooiF8RlAONwVMcfq+UdzLC2eB5qcPldUxaE5w3ytLkrmV1TGddhZTA==} engines: {node: '>=6.0'} dependencies: - '@babel/parser': 7.21.4 + '@babel/parser': 7.21.5 dev: false /node-source-walk@5.0.0: resolution: {integrity: sha512-58APXoMXpmmU+oVBJFajhTCoD8d/OGtngnVAWzIo2A8yn0IXwBzvIVIsTzoie/SrA37u+1hnpNz2HMWx/VIqlw==} engines: {node: '>=12'} dependencies: - '@babel/parser': 7.20.13 + '@babel/parser': 7.21.5 dev: false /nopt@5.0.0: @@ -10572,6 +11069,7 @@ packages: define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 + dev: true /optionator@0.8.3: resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} @@ -10611,19 +11109,19 @@ packages: wcwidth: 1.0.1 dev: true - /ora@6.1.2: - resolution: {integrity: sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /ora@7.0.1: + resolution: {integrity: sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==} + engines: {node: '>=16'} dependencies: - bl: 5.1.0 - chalk: 5.2.0 + chalk: 5.3.0 cli-cursor: 4.0.0 - cli-spinners: 2.7.0 + cli-spinners: 2.9.1 is-interactive: 2.0.0 is-unicode-supported: 1.3.0 log-symbols: 5.1.0 - strip-ansi: 7.0.1 - wcwidth: 1.0.1 + stdin-discarder: 0.1.0 + string-width: 6.1.0 + strip-ansi: 7.1.0 /os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} @@ -10673,7 +11171,6 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: yocto-queue: 1.0.0 - dev: true /p-locate@2.0.0: resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} @@ -10719,6 +11216,13 @@ packages: p-timeout: 3.2.0 dev: true + /p-queue@7.4.1: + resolution: {integrity: sha512-vRpMXmIkYF2/1hLBKisKeVYJZ8S2tZ0zEAmIJgdVKP2nq0nh4qCdf8bgw+ZgKrkh71AOCaqzwbJJk1WtdcF3VA==} + engines: {node: '>=12'} + dependencies: + eventemitter3: 5.0.1 + p-timeout: 5.1.0 + /p-reduce@2.1.0: resolution: {integrity: sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==} engines: {node: '>=8'} @@ -10731,6 +11235,10 @@ packages: p-finally: 1.0.0 dev: true + /p-timeout@5.1.0: + resolution: {integrity: sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==} + engines: {node: '>=12'} + /p-try@1.0.0: resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} engines: {node: '>=4'} @@ -10874,6 +11382,11 @@ packages: /parse5@6.0.1: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + dependencies: + entities: 4.5.0 + /path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} dev: false @@ -10945,6 +11458,10 @@ packages: source-map-generator: 0.8.0 dev: true + /performance-now@2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + dev: false + /periscopic@3.1.0: resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} dependencies: @@ -11077,6 +11594,23 @@ packages: postcss: 8.4.23 yaml: 2.2.2 + /postcss-load-config@4.0.1(postcss@8.4.31): + resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.0.6 + postcss: 8.4.31 + yaml: 2.2.2 + dev: false + /postcss-nested@6.0.1(postcss@8.4.23): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} @@ -11131,6 +11665,15 @@ packages: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 + dev: true + + /postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 /prebuild-install@7.1.1: resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} @@ -11149,7 +11692,6 @@ packages: simple-get: 4.0.1 tar-fs: 2.1.1 tunnel-agent: 0.6.0 - dev: true /precinct@9.0.1: resolution: {integrity: sha512-hVNS6JvfvlZ64B3ezKeGAcVhIuOvuAiSVzagHX/+KjVPkYWoCNkfyMgCl1bjDtAFQSlzi95NcS9ykUWrl1L1vA==} @@ -11172,8 +11714,8 @@ packages: - supports-color dev: false - /preferred-pm@3.0.3: - resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} + /preferred-pm@3.1.2: + resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==} engines: {node: '>=10'} dependencies: find-up: 5.0.0 @@ -11190,27 +11732,19 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - /prettier-plugin-astro@0.7.2: - resolution: {integrity: sha512-mmifnkG160BtC727gqoimoxnZT/dwr8ASxpoGGl6EHevhfblSOeu+pwH1LAm5Qu1MynizktztFujHHaijLCkww==} - engines: {node: ^14.15.0 || >=16.0.0, pnpm: '>=7.14.0'} - dependencies: - '@astrojs/compiler': 0.31.4 - prettier: 2.8.8 - sass-formatter: 0.7.5 - synckit: 0.8.5 - /prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} hasBin: true + dev: true /pretty-bytes@5.6.0: resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} engines: {node: '>=6'} dev: true - /pretty-bytes@6.1.0: - resolution: {integrity: sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ==} + /pretty-bytes@6.1.1: + resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} engines: {node: ^14.13.1 || >=16.0.0} dev: true @@ -11236,6 +11770,15 @@ packages: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} engines: {node: '>=6'} + /probe-image-size@7.2.3: + resolution: {integrity: sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w==} + dependencies: + lodash.merge: 4.6.2 + needle: 2.9.1 + stream-parser: 0.3.1 + transitivePeerDependencies: + - supports-color + /proc-log@2.0.1: resolution: {integrity: sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -11317,7 +11860,6 @@ packages: dependencies: end-of-stream: 1.4.4 once: 1.4.0 - dev: true /punycode@2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} @@ -11331,6 +11873,10 @@ packages: /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + /queue-tick@1.0.1: + resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + optional: true + /quick-lru@4.0.1: resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} engines: {node: '>=8'} @@ -11340,6 +11886,21 @@ packages: resolution: {integrity: sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==} dev: false + /raf-loop@1.1.3: + resolution: {integrity: sha512-fcIuuIdjbD6OB0IFw4d+cjqdrzDorKkIpwOiSnfU4Tht5PTFiJutR8hnCOGslYqZDyIzwpF5WnwbnTTuo9uUUA==} + dependencies: + events: 1.1.1 + inherits: 2.0.4 + raf: 3.4.1 + right-now: 1.0.0 + dev: false + + /raf@3.4.1: + resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==} + dependencies: + performance-now: 2.1.0 + dev: false + /rambda@7.4.0: resolution: {integrity: sha512-A9hihu7dUTLOUCM+I8E61V4kRXnN4DwYeK0DwCBydC1MqNI1PidyAtbtpsJlBBzK4icSctEcCQ1bGcLpBuETUQ==} dev: false @@ -11358,7 +11919,6 @@ packages: ini: 1.3.8 minimist: 1.2.7 strip-json-comments: 2.0.1 - dev: true /react-dom@18.2.0(react@18.2.0): resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} @@ -11386,7 +11946,6 @@ packages: /react-refresh@0.14.0: resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} engines: {node: '>=0.10.0'} - dev: true /react@18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} @@ -11488,6 +12047,15 @@ packages: mute-stream: 0.0.8 dev: true + /readable-stream@1.1.14: + resolution: {integrity: sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 0.0.1 + string_decoder: 0.10.31 + dev: false + /readable-stream@2.3.7: resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} dependencies: @@ -11617,6 +12185,10 @@ packages: jsesc: 0.5.0 dev: true + /regl@1.7.0: + resolution: {integrity: sha512-bEAtp/qrtKucxXSJkD4ebopFZYP0q1+3Vb2WECWv/T8yQEgKxDxJ7ztO285tAMaYZVR6mM1GgI6CCn8FROtL1w==} + dev: false + /rehype-autolink-headings@6.1.1: resolution: {integrity: sha512-NMYzZIsHM3sA14nC5rAFuUPIOfg+DFmf9EY1YMhaNlB7+3kK/ZlE6kqPfuxr1tsJ1XWkTrMtMoyHosU70d35mA==} dependencies: @@ -11656,8 +12228,8 @@ packages: unist-util-visit: 4.1.2 dev: false - /rehype-stringify@9.0.3: - resolution: {integrity: sha512-kWiZ1bgyWlgOxpqD5HnxShKAdXtb2IUljn3hQAhySeak6IOQPPt6DeGnsIh4ixm7yKJWzm8TXFuC/lPfcWHJqw==} + /rehype-stringify@9.0.4: + resolution: {integrity: sha512-Uk5xu1YKdqobe5XpSskwPvo1XeHUUucWEQSl8hTrXt5selvca1e8K1EZ37E6YoZ4BT8BCqCdVfQW7OfHfthtVQ==} dependencies: '@types/hast': 2.3.4 hast-util-to-html: 8.0.4 @@ -11676,18 +12248,9 @@ packages: dependencies: '@types/hast': 2.3.4 rehype-parse: 8.0.4 - rehype-stringify: 9.0.3 + rehype-stringify: 9.0.4 unified: 10.1.2 - /remark-frontmatter@4.0.1: - resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==} - dependencies: - '@types/mdast': 3.0.10 - mdast-util-frontmatter: 1.0.1 - micromark-extension-frontmatter: 1.0.0 - unified: 10.1.2 - dev: false - /remark-gfm@3.0.1: resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} dependencies: @@ -11715,13 +12278,23 @@ packages: unified: 10.1.2 transitivePeerDependencies: - supports-color + dev: false + + /remark-parse@10.0.2: + resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} + dependencies: + '@types/mdast': 3.0.10 + mdast-util-from-markdown: 1.3.0 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color /remark-rehype@10.1.0: resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} dependencies: '@types/hast': 2.3.4 '@types/mdast': 3.0.10 - mdast-util-to-hast: 12.2.6 + mdast-util-to-hast: 12.3.0 unified: 10.1.2 /remark-smartypants@2.0.0: @@ -11816,6 +12389,14 @@ packages: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + /restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} @@ -11871,6 +12452,10 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + /right-now@1.0.0: + resolution: {integrity: sha512-DA8+YS+sMIVpbsuKgy+Z67L9Lxb1p05mNxRpDPNksPDEFir4vmBlUtuN9jkTGn9YMMdlBuK7XQgFiz6ws+yhSg==} + dev: false + /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true @@ -11891,7 +12476,7 @@ packages: peerDependencies: rollup: ^2.0.0 dependencies: - '@babel/code-frame': 7.21.4 + '@babel/code-frame': 7.22.13 jest-worker: 26.6.2 rollup: 2.79.1 serialize-javascript: 4.0.0 @@ -11922,14 +12507,6 @@ packages: fsevents: 2.3.2 dev: true - /rollup@3.12.0: - resolution: {integrity: sha512-4MZ8kA2HNYahIjz63rzrMMRvDqQDeS9LoriJvMuV0V6zIGysP36e9t4yObUfwdT9h/szXoHQideICftcdZklWg==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true - optionalDependencies: - fsevents: 2.3.2 - dev: true - /rollup@3.21.0: resolution: {integrity: sha512-ANPhVcyeHvYdQMUyCbczy33nbLzI7RzrBje4uvNiTDJGIMtlKoOStmympwr9OtS1LZxiDmE2wvxHyVhoLtf1KQ==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} @@ -11961,9 +12538,6 @@ packages: tslib: 2.5.0 dev: true - /s.color@0.0.15: - resolution: {integrity: sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==} - /sade@1.8.1: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} engines: {node: '>=6'} @@ -11986,12 +12560,6 @@ packages: /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - dev: true - - /sass-formatter@0.7.5: - resolution: {integrity: sha512-NKFP8ddjhUYi6A/iD1cEtzkEs91U61kzqe3lY9SVNuvX7LGc88xnEN0mmsWL7Ol//YTi2GL/ol7b9XZ2+hgXuA==} - dependencies: - suf-log: 2.5.3 /sass-lookup@3.0.0: resolution: {integrity: sha512-TTsus8CfFRn1N44bvdEai1no6PqdmDiQUiqW5DlpmtT+tYnIt1tXtDIph5KA1efC+LmioJXSnCtUVpcK9gaKIg==} @@ -12001,6 +12569,9 @@ packages: commander: 2.20.3 dev: false + /sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + /scheduler@0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} dependencies: @@ -12022,6 +12593,10 @@ packages: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + /semver@7.3.4: resolution: {integrity: sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==} engines: {node: '>=10'} @@ -12037,6 +12612,13 @@ packages: dependencies: lru-cache: 6.0.0 + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + /serialize-javascript@4.0.0: resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} dependencies: @@ -12062,6 +12644,21 @@ packages: kind-of: 6.0.3 dev: true + /sharp@0.32.6: + resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==} + engines: {node: '>=14.15.0'} + requiresBuild: true + dependencies: + color: 4.2.3 + detect-libc: 2.0.2 + node-addon-api: 6.1.0 + prebuild-install: 7.1.1 + semver: 7.5.4 + simple-get: 4.0.1 + tar-fs: 3.0.4 + tunnel-agent: 0.6.0 + optional: true + /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -12072,12 +12669,10 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - /shiki@0.11.1: - resolution: {integrity: sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==} + /shikiji@0.6.10: + resolution: {integrity: sha512-WE+A5Y2ntM5hL3iJQujk97qr5Uj7PSIRXpQfrZ6h+JWPXZ8KBEDhFXc4lqNriaRq1WGOVPUT83XMOzmHiH3W8A==} dependencies: - jsonc-parser: 3.2.0 - vscode-oniguruma: 1.7.0 - vscode-textmate: 6.0.0 + hast-util-to-html: 9.0.0 /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} @@ -12099,6 +12694,10 @@ packages: engines: {node: '>=14'} dev: true + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + /sigstore@1.4.0: resolution: {integrity: sha512-N7TRpSbFjY/TrFDg6yGAQSYBrQ5s6qmPiq4pD6fkv1LoyfMsLG0NwZWG2s5q+uttLHgyVyTa0Rogx2P78rN8kQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -12128,7 +12727,12 @@ packages: decompress-response: 6.0.0 once: 1.4.0 simple-concat: 1.0.1 - dev: true + + /simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + dependencies: + is-arrayish: 0.3.2 + optional: true /sirv@2.0.2: resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==} @@ -12146,10 +12750,6 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - /slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} - /smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} @@ -12304,6 +12904,12 @@ packages: resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==} dev: true + /stdin-discarder@0.1.0: + resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + bl: 5.1.0 + /stdopt@2.2.0: resolution: {integrity: sha512-D/p41NgXOkcj1SeGhfXOwv9z1K6EV3sjAUY5aeepVbgEHv7DpKWLTjhjScyzMWAQCAgUQys1mjH0eArm4cjRGw==} dependencies: @@ -12323,14 +12929,24 @@ packages: readable-stream: 2.3.7 dev: true + /stream-parser@0.3.1: + resolution: {integrity: sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==} + dependencies: + debug: 2.6.9 + transitivePeerDependencies: + - supports-color + /stream-via@1.0.4: resolution: {integrity: sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==} engines: {node: '>=0.10.0'} dev: true - /streamsearch@1.1.0: - resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} - engines: {node: '>=10.0.0'} + /streamx@2.15.2: + resolution: {integrity: sha512-b62pAV/aeMjUoRN2C/9F0n+G8AfcJjNC0zw/ZmOHeFsIe4m4GzjVW9m6VHXVjk536NbdU9JRwKMJRfkc+zUFTg==} + dependencies: + fast-fifo: 1.3.2 + queue-tick: 1.0.1 + optional: true /string-width@1.0.2: resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} @@ -12354,7 +12970,15 @@ packages: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 - strip-ansi: 7.0.1 + strip-ansi: 7.1.0 + + /string-width@6.1.0: + resolution: {integrity: sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==} + engines: {node: '>=16'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 10.3.0 + strip-ansi: 7.1.0 /string.prototype.matchall@4.0.8: resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} @@ -12385,6 +13009,10 @@ packages: es-abstract: 1.21.1 dev: true + /string_decoder@0.10.31: + resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} + dev: false + /string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: @@ -12421,8 +13049,8 @@ packages: dependencies: ansi-regex: 5.0.1 - /strip-ansi@7.0.1: - resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 @@ -12438,6 +13066,7 @@ packages: /strip-bom@4.0.0: resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} engines: {node: '>=8'} + dev: true /strip-comments@2.0.1: resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==} @@ -12463,7 +13092,6 @@ packages: /strip-json-comments@2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} - dev: true /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} @@ -12519,11 +13147,6 @@ packages: pirates: 4.0.5 ts-interface-checker: 0.1.13 - /suf-log@2.5.3: - resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==} - dependencies: - s.color: 0.0.15 - /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -12536,22 +13159,10 @@ packages: dependencies: has-flag: 4.0.0 - /supports-esm@1.0.0: - resolution: {integrity: sha512-96Am8CDqUaC0I2+C/swJ0yEvM8ZnGn4unoers/LSdE4umhX7mELzqyLzx3HnZAluq5PXIsGMKqa7NkqaeHMPcg==} - dependencies: - has-package-exports: 1.3.0 - /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /synckit@0.8.5: - resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} - engines: {node: ^14.18.0 || >=16.0.0} - dependencies: - '@pkgr/utils': 2.3.1 - tslib: 2.5.0 - /table-layout@0.4.5: resolution: {integrity: sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==} engines: {node: '>=4.0.0'} @@ -12606,7 +13217,14 @@ packages: mkdirp-classic: 0.5.3 pump: 3.0.0 tar-stream: 2.2.0 - dev: true + + /tar-fs@3.0.4: + resolution: {integrity: sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==} + dependencies: + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 3.1.6 + optional: true /tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} @@ -12617,7 +13235,14 @@ packages: fs-constants: 1.0.0 inherits: 2.0.4 readable-stream: 3.6.0 - dev: true + + /tar-stream@3.1.6: + resolution: {integrity: sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==} + dependencies: + b4a: 1.6.4 + fast-fifo: 1.3.2 + streamx: 2.15.2 + optional: true /tar@6.1.11: resolution: {integrity: sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==} @@ -12752,12 +13377,6 @@ packages: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true - /tiny-glob@0.2.9: - resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} - dependencies: - globalyzer: 0.1.0 - globrex: 0.1.2 - /tinybench@2.5.0: resolution: {integrity: sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==} dev: true @@ -12829,6 +13448,18 @@ packages: /ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + /tsconfck@3.0.0(typescript@4.9.4): + resolution: {integrity: sha512-w3wnsIrJNi7avf4Zb0VjOoodoO0woEqGgZGQm+LHH9przdUI+XDKsWAXwxHA1DaRTjeuZNcregSzr7RaA8zG9A==} + engines: {node: ^18 || >=20} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 4.9.4 + /tsconfig-paths@3.14.1: resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} dependencies: @@ -12846,16 +13477,6 @@ packages: strip-bom: 3.0.0 dev: true - /tsconfig-resolver@3.0.1: - resolution: {integrity: sha512-ZHqlstlQF449v8glscGRXzL6l2dZvASPCdXJRWG4gHEZlUVx2Jtmr+a2zeVG4LCsKhDXKRj5R3h0C/98UcVAQg==} - dependencies: - '@types/json5': 0.0.30 - '@types/resolve': 1.20.2 - json5: 2.2.3 - resolve: 1.22.1 - strip-bom: 4.0.0 - type-fest: 0.13.1 - /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: false @@ -12888,7 +13509,6 @@ packages: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} dependencies: safe-buffer: 5.2.1 - dev: true /type-check@0.3.2: resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} @@ -12908,10 +13528,6 @@ packages: engines: {node: '>=4'} dev: true - /type-fest@0.13.1: - resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} - engines: {node: '>=10'} - /type-fest@0.16.0: resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} engines: {node: '>=10'} @@ -13017,6 +13633,10 @@ packages: dev: true optional: true + /ultrahtml@1.5.2: + resolution: {integrity: sha512-qh4mBffhlkiXwDAOxvSGxhL0QEQsTbnP9BozOK3OYPEGvPvdWzvAUaXNtUSMdNsKDtuyjEbyVUPFZ52SSLhLqw==} + dev: false + /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: @@ -13030,18 +13650,6 @@ packages: resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==} dev: true - /undici@5.20.0: - resolution: {integrity: sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==} - engines: {node: '>=12.18'} - dependencies: - busboy: 1.6.0 - - /undici@5.22.0: - resolution: {integrity: sha512-fR9RXCc+6Dxav4P9VV/sp5w3eFiSdOjJYsbtWfd4s5L5C4ogyuVpdKIVHeW0vV1MloM65/f7W45nR9ZxwVdyiA==} - engines: {node: '>=14.0'} - dependencies: - busboy: 1.6.0 - /unherit@3.0.1: resolution: {integrity: sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==} @@ -13114,11 +13722,6 @@ packages: crypto-random-string: 2.0.0 dev: true - /unist-builder@3.0.1: - resolution: {integrity: sha512-gnpOw7DIpCA0vpr6NqdPvTWnlPTApCTRzr+38E6hCWx3rz/cjo83SsKIlS1Z+L5ttScQ2AwutNnb8+tAvpb6qQ==} - dependencies: - '@types/unist': 2.0.6 - /unist-util-generated@2.0.1: resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==} @@ -13129,6 +13732,11 @@ packages: /unist-util-is@5.2.0: resolution: {integrity: sha512-Glt17jWwZeyqrFqOK0pF1Ded5U3yzJnFr8CG1GMjCWTp9zDo2p+cmD6pWbZU8AgM5WU3IzRv6+rBwhzsGh6hBQ==} + /unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + dependencies: + '@types/unist': 3.0.1 + /unist-util-modify-children@3.1.1: resolution: {integrity: sha512-yXi4Lm+TG5VG+qvokP6tpnk+r1EPwyYL04JWDxLvgvPV40jANh7nm3udk65OOWquvbMDe+PL9+LmkxDpTv/7BA==} dependencies: @@ -13146,6 +13754,11 @@ packages: dependencies: '@types/unist': 2.0.6 + /unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + dependencies: + '@types/unist': 3.0.1 + /unist-util-remove-position@4.0.2: resolution: {integrity: sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==} dependencies: @@ -13158,6 +13771,11 @@ packages: dependencies: '@types/unist': 2.0.6 + /unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + dependencies: + '@types/unist': 3.0.1 + /unist-util-visit-children@2.0.2: resolution: {integrity: sha512-+LWpMFqyUwLGpsQxpumsQ9o9DG2VGLFrpz+rpVXYIEdPy57GSy5HioC0g3bg/8WP9oCLlapQtklOzQ8uLS496Q==} dependencies: @@ -13175,6 +13793,12 @@ packages: '@types/unist': 2.0.6 unist-util-is: 5.2.0 + /unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + dependencies: + '@types/unist': 3.0.1 + unist-util-is: 6.0.0 + /unist-util-visit@1.4.1: resolution: {integrity: sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==} dependencies: @@ -13188,6 +13812,13 @@ packages: unist-util-is: 5.2.0 unist-util-visit-parents: 5.1.3 + /unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + dependencies: + '@types/unist': 3.0.1 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + /universal-user-agent@6.0.0: resolution: {integrity: sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==} dev: true @@ -13211,16 +13842,6 @@ packages: engines: {node: '>=4'} dev: true - /update-browserslist-db@1.0.10(browserslist@4.21.4): - resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.21.4 - escalade: 3.1.1 - picocolors: 1.0.0 - /update-browserslist-db@1.0.10(browserslist@4.21.5): resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} hasBin: true @@ -13230,6 +13851,17 @@ packages: browserslist: 4.21.5 escalade: 3.1.1 picocolors: 1.0.0 + dev: true + + /update-browserslist-db@1.0.13(browserslist@4.22.1): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.1 + escalade: 3.1.1 + picocolors: 1.0.0 /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -13305,7 +13937,13 @@ packages: resolution: {integrity: sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==} dependencies: '@types/unist': 2.0.6 - vfile: 5.3.6 + vfile: 5.3.7 + + /vfile-location@5.0.2: + resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} + dependencies: + '@types/unist': 3.0.1 + vfile: 6.0.1 /vfile-message@3.1.3: resolution: {integrity: sha512-0yaU+rj2gKAyEk12ffdSbBfjnnj+b1zqTBv3OQCTn8yEB02bsPizwdBPrLJjHnK+cU9EMMcUnNv938XcZIkmdA==} @@ -13313,6 +13951,12 @@ packages: '@types/unist': 2.0.6 unist-util-stringify-position: 3.0.3 + /vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + dependencies: + '@types/unist': 3.0.1 + unist-util-stringify-position: 4.0.0 + /vfile@5.3.6: resolution: {integrity: sha512-ADBsmerdGBs2WYckrLBEmuETSPyTD4TuLxTrw0DvjirxW1ra4ZwkbzG8ndsv3Q57smvHxo677MHaQrY9yxH8cA==} dependencies: @@ -13321,6 +13965,21 @@ packages: unist-util-stringify-position: 3.0.3 vfile-message: 3.1.3 + /vfile@5.3.7: + resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} + dependencies: + '@types/unist': 2.0.6 + is-buffer: 2.0.5 + unist-util-stringify-position: 3.0.3 + vfile-message: 3.1.3 + + /vfile@6.0.1: + resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} + dependencies: + '@types/unist': 3.0.1 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + /vinyl-sourcemaps-apply@0.2.1: resolution: {integrity: sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw==} dependencies: @@ -13361,26 +14020,25 @@ packages: - terser dev: true - /vite-plugin-pwa@0.14.7(vite@4.4.5)(workbox-build@6.5.4)(workbox-window@6.5.4): - resolution: {integrity: sha512-dNJaf0fYOWncmjxv9HiSa2xrSjipjff7IkYE5oIUJ2x5HKu3cXgA8LRgzOwTc5MhwyFYRSU0xyN0Phbx3NsQYw==} + /vite-plugin-pwa@0.16.5(vite@4.5.0)(workbox-build@7.0.0)(workbox-window@7.0.0): + resolution: {integrity: sha512-Ahol4dwhMP2UHPQXkllSlXbihOaDFnvBIDPmAxoSZ1EObBUJGP4CMRyCyAVkIHjd6/H+//vH0DM2ON+XxHr81g==} + engines: {node: '>=16.0.0'} peerDependencies: vite: ^3.1.0 || ^4.0.0 - workbox-build: ^6.5.4 - workbox-window: ^6.5.4 + workbox-build: ^7.0.0 + workbox-window: ^7.0.0 dependencies: - '@rollup/plugin-replace': 5.0.2(rollup@3.12.0) debug: 4.3.4 - fast-glob: 3.2.12 - pretty-bytes: 6.1.0 - rollup: 3.12.0 - vite: 4.4.5(@types/node@18.16.3) - workbox-build: 6.5.4 - workbox-window: 6.5.4 + fast-glob: 3.3.1 + pretty-bytes: 6.1.1 + vite: 4.5.0(@types/node@18.16.3) + workbox-build: 7.0.0 + workbox-window: 7.0.0 transitivePeerDependencies: - supports-color dev: true - /vite@4.3.3(@types/node@18.16.3): + /vite@4.3.3: resolution: {integrity: sha512-MwFlLBO4udZXd+VBcezo3u8mC77YQk+ik+fbc0GZWGgzfbPP+8Kf0fldhARqvSYmtIWoAJ5BXPClUbMTlqFxrA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -13405,7 +14063,6 @@ packages: terser: optional: true dependencies: - '@types/node': 18.16.3 esbuild: 0.17.18 postcss: 8.4.23 rollup: 3.21.0 @@ -13447,8 +14104,44 @@ packages: rollup: 3.28.0 optionalDependencies: fsevents: 2.3.2 + dev: true - /vitefu@0.2.4(vite@4.4.5): + /vite@4.5.0(@types/node@18.16.3): + resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 18.16.3 + esbuild: 0.18.20 + postcss: 8.4.31 + rollup: 3.28.0 + optionalDependencies: + fsevents: 2.3.2 + + /vitefu@0.2.4(vite@4.5.0): resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==} peerDependencies: vite: ^3.0.0 || ^4.0.0 @@ -13456,7 +14149,7 @@ packages: vite: optional: true dependencies: - vite: 4.4.5(@types/node@18.16.3) + vite: 4.5.0(@types/node@18.16.3) /vitest@0.33.0(@vitest/ui@0.28.0): resolution: {integrity: sha512-1CxaugJ50xskkQ0e969R/hW47za4YXDUfWJDxip1hwbnhUjYolpfUn2AMOulqG/Dtd9WYAtkHmM/m3yKVrEejQ==} @@ -13511,7 +14204,7 @@ packages: strip-literal: 1.0.1 tinybench: 2.5.0 tinypool: 0.6.0 - vite: 4.3.3(@types/node@18.16.3) + vite: 4.4.5(@types/node@18.16.3) vite-node: 0.33.0(@types/node@18.16.3) why-is-node-running: 2.2.2 transitivePeerDependencies: @@ -13524,56 +14217,6 @@ packages: - terser dev: true - /vscode-css-languageservice@6.2.3: - resolution: {integrity: sha512-EAyhyIVHpEaf+GjtI+tVe7SekdoANfG0aubnspsQwak3Qkimn/97FpAufNyXk636ngW05pjNKAR9zyTCzo6avQ==} - dependencies: - '@vscode/l10n': 0.0.11 - vscode-languageserver-textdocument: 1.0.8 - vscode-languageserver-types: 3.17.2 - vscode-uri: 3.0.7 - - /vscode-html-languageservice@5.0.4: - resolution: {integrity: sha512-tvrySfpglu4B2rQgWGVO/IL+skvU7kBkQotRlxA7ocSyRXOZUd6GA13XHkxo8LPe07KWjeoBlN1aVGqdfTK4xA==} - dependencies: - '@vscode/l10n': 0.0.11 - vscode-languageserver-textdocument: 1.0.8 - vscode-languageserver-types: 3.17.2 - vscode-uri: 3.0.7 - - /vscode-jsonrpc@8.0.2: - resolution: {integrity: sha512-RY7HwI/ydoC1Wwg4gJ3y6LpU9FJRZAUnTYMXthqhFXXu77ErDd/xkREpGuk4MyYkk4a+XDWAMqe0S3KkelYQEQ==} - engines: {node: '>=14.0.0'} - - /vscode-languageserver-protocol@3.17.2: - resolution: {integrity: sha512-8kYisQ3z/SQ2kyjlNeQxbkkTNmVFoQCqkmGrzLH6A9ecPlgTbp3wDTnUNqaUxYr4vlAcloxx8zwy7G5WdguYNg==} - dependencies: - vscode-jsonrpc: 8.0.2 - vscode-languageserver-types: 3.17.2 - - /vscode-languageserver-textdocument@1.0.8: - resolution: {integrity: sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==} - - /vscode-languageserver-types@3.17.2: - resolution: {integrity: sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA==} - - /vscode-languageserver@8.0.2: - resolution: {integrity: sha512-bpEt2ggPxKzsAOZlXmCJ50bV7VrxwCS5BI4+egUmure/oI/t4OlFzi/YNtVvY24A2UDOZAgwFGgnZPwqSJubkA==} - hasBin: true - dependencies: - vscode-languageserver-protocol: 3.17.2 - - /vscode-oniguruma@1.7.0: - resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} - - /vscode-textmate@6.0.0: - resolution: {integrity: sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ==} - - /vscode-uri@2.1.2: - resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} - - /vscode-uri@3.0.7: - resolution: {integrity: sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==} - /w3c-keyname@2.2.6: resolution: {integrity: sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==} dev: false @@ -13592,10 +14235,23 @@ packages: resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==} dev: true + /wav@1.0.2: + resolution: {integrity: sha512-viHtz3cDd/Tcr/HbNqzQCofKdF6kWUymH9LGDdskfWFoIy/HJ+RTihgjEcHfnsy1PO4e9B+y4HwgTwMrByquhg==} + dependencies: + buffer-alloc: 1.2.0 + buffer-from: 1.1.2 + debug: 2.6.9 + readable-stream: 1.1.14 + stream-parser: 0.3.1 + transitivePeerDependencies: + - supports-color + dev: false + /wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: defaults: 1.0.4 + dev: true /web-midi-api@2.2.2: resolution: {integrity: sha512-lQFqcdmzoxLx1833DOC4bavfk9Cp5bjkC5SlZAceqsuUoc2j+fYSbqv45XwJqeECkCUXzB9UQ8wyWr40ppINhw==} @@ -13676,6 +14332,13 @@ packages: load-yaml-file: 0.2.0 path-exists: 4.0.0 + /which-pm@2.1.1: + resolution: {integrity: sha512-xzzxNw2wMaoCWXiGE8IJ9wuPMU+EYhFksjHxrRT8kMT5SnocBPRg69YAMtyV4D12fP582RA+k3P8H9J5EMdIxQ==} + engines: {node: '>=8.15'} + dependencies: + load-yaml-file: 0.2.0 + path-exists: 4.0.0 + /which-typed-array@1.1.9: resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} engines: {node: '>= 0.4'} @@ -13739,28 +14402,28 @@ packages: typical: 2.6.1 dev: true - /workbox-background-sync@6.5.4: - resolution: {integrity: sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==} + /workbox-background-sync@7.0.0: + resolution: {integrity: sha512-S+m1+84gjdueM+jIKZ+I0Lx0BDHkk5Nu6a3kTVxP4fdj3gKouRNmhO8H290ybnJTOPfBDtTMXSQA/QLTvr7PeA==} dependencies: idb: 7.1.1 - workbox-core: 6.5.4 + workbox-core: 7.0.0 dev: true - /workbox-broadcast-update@6.5.4: - resolution: {integrity: sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw==} + /workbox-broadcast-update@7.0.0: + resolution: {integrity: sha512-oUuh4jzZrLySOo0tC0WoKiSg90bVAcnE98uW7F8GFiSOXnhogfNDGZelPJa+6KpGBO5+Qelv04Hqx2UD+BJqNQ==} dependencies: - workbox-core: 6.5.4 + workbox-core: 7.0.0 dev: true - /workbox-build@6.5.4: - resolution: {integrity: sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA==} - engines: {node: '>=10.0.0'} + /workbox-build@7.0.0: + resolution: {integrity: sha512-CttE7WCYW9sZC+nUYhQg3WzzGPr4IHmrPnjKiu3AMXsiNQKx+l4hHl63WTrnicLmKEKHScWDH8xsGBdrYgtBzg==} + engines: {node: '>=16.0.0'} dependencies: '@apideck/better-ajv-errors': 0.3.6(ajv@8.12.0) - '@babel/core': 7.21.5 - '@babel/preset-env': 7.20.2(@babel/core@7.21.5) + '@babel/core': 7.23.2 + '@babel/preset-env': 7.20.2(@babel/core@7.23.2) '@babel/runtime': 7.20.13 - '@rollup/plugin-babel': 5.3.1(@babel/core@7.21.5)(rollup@2.79.1) + '@rollup/plugin-babel': 5.3.1(@babel/core@7.23.2)(rollup@2.79.1) '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1) '@rollup/plugin-replace': 2.4.2(rollup@2.79.1) '@surma/rollup-plugin-off-main-thread': 2.2.3 @@ -13778,111 +14441,111 @@ packages: strip-comments: 2.0.1 tempy: 0.6.0 upath: 1.2.0 - workbox-background-sync: 6.5.4 - workbox-broadcast-update: 6.5.4 - workbox-cacheable-response: 6.5.4 - workbox-core: 6.5.4 - workbox-expiration: 6.5.4 - workbox-google-analytics: 6.5.4 - workbox-navigation-preload: 6.5.4 - workbox-precaching: 6.5.4 - workbox-range-requests: 6.5.4 - workbox-recipes: 6.5.4 - workbox-routing: 6.5.4 - workbox-strategies: 6.5.4 - workbox-streams: 6.5.4 - workbox-sw: 6.5.4 - workbox-window: 6.5.4 + workbox-background-sync: 7.0.0 + workbox-broadcast-update: 7.0.0 + workbox-cacheable-response: 7.0.0 + workbox-core: 7.0.0 + workbox-expiration: 7.0.0 + workbox-google-analytics: 7.0.0 + workbox-navigation-preload: 7.0.0 + workbox-precaching: 7.0.0 + workbox-range-requests: 7.0.0 + workbox-recipes: 7.0.0 + workbox-routing: 7.0.0 + workbox-strategies: 7.0.0 + workbox-streams: 7.0.0 + workbox-sw: 7.0.0 + workbox-window: 7.0.0 transitivePeerDependencies: - '@types/babel__core' - supports-color dev: true - /workbox-cacheable-response@6.5.4: - resolution: {integrity: sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==} + /workbox-cacheable-response@7.0.0: + resolution: {integrity: sha512-0lrtyGHn/LH8kKAJVOQfSu3/80WDc9Ma8ng0p2i/5HuUndGttH+mGMSvOskjOdFImLs2XZIimErp7tSOPmu/6g==} dependencies: - workbox-core: 6.5.4 + workbox-core: 7.0.0 dev: true - /workbox-core@6.5.4: - resolution: {integrity: sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==} + /workbox-core@7.0.0: + resolution: {integrity: sha512-81JkAAZtfVP8darBpfRTovHg8DGAVrKFgHpOArZbdFd78VqHr5Iw65f2guwjE2NlCFbPFDoez3D3/6ZvhI/rwQ==} dev: true - /workbox-expiration@6.5.4: - resolution: {integrity: sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==} + /workbox-expiration@7.0.0: + resolution: {integrity: sha512-MLK+fogW+pC3IWU9SFE+FRStvDVutwJMR5if1g7oBJx3qwmO69BNoJQVaMXq41R0gg3MzxVfwOGKx3i9P6sOLQ==} dependencies: idb: 7.1.1 - workbox-core: 6.5.4 + workbox-core: 7.0.0 dev: true - /workbox-google-analytics@6.5.4: - resolution: {integrity: sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==} + /workbox-google-analytics@7.0.0: + resolution: {integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==} dependencies: - workbox-background-sync: 6.5.4 - workbox-core: 6.5.4 - workbox-routing: 6.5.4 - workbox-strategies: 6.5.4 + workbox-background-sync: 7.0.0 + workbox-core: 7.0.0 + workbox-routing: 7.0.0 + workbox-strategies: 7.0.0 dev: true - /workbox-navigation-preload@6.5.4: - resolution: {integrity: sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng==} + /workbox-navigation-preload@7.0.0: + resolution: {integrity: sha512-juWCSrxo/fiMz3RsvDspeSLGmbgC0U9tKqcUPZBCf35s64wlaLXyn2KdHHXVQrb2cqF7I0Hc9siQalainmnXJA==} dependencies: - workbox-core: 6.5.4 + workbox-core: 7.0.0 dev: true - /workbox-precaching@6.5.4: - resolution: {integrity: sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==} + /workbox-precaching@7.0.0: + resolution: {integrity: sha512-EC0vol623LJqTJo1mkhD9DZmMP604vHqni3EohhQVwhJlTgyKyOkMrZNy5/QHfOby+39xqC01gv4LjOm4HSfnA==} dependencies: - workbox-core: 6.5.4 - workbox-routing: 6.5.4 - workbox-strategies: 6.5.4 + workbox-core: 7.0.0 + workbox-routing: 7.0.0 + workbox-strategies: 7.0.0 dev: true - /workbox-range-requests@6.5.4: - resolution: {integrity: sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg==} + /workbox-range-requests@7.0.0: + resolution: {integrity: sha512-SxAzoVl9j/zRU9OT5+IQs7pbJBOUOlriB8Gn9YMvi38BNZRbM+RvkujHMo8FOe9IWrqqwYgDFBfv6sk76I1yaQ==} dependencies: - workbox-core: 6.5.4 + workbox-core: 7.0.0 dev: true - /workbox-recipes@6.5.4: - resolution: {integrity: sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA==} + /workbox-recipes@7.0.0: + resolution: {integrity: sha512-DntcK9wuG3rYQOONWC0PejxYYIDHyWWZB/ueTbOUDQgefaeIj1kJ7pdP3LZV2lfrj8XXXBWt+JDRSw1lLLOnww==} dependencies: - workbox-cacheable-response: 6.5.4 - workbox-core: 6.5.4 - workbox-expiration: 6.5.4 - workbox-precaching: 6.5.4 - workbox-routing: 6.5.4 - workbox-strategies: 6.5.4 + workbox-cacheable-response: 7.0.0 + workbox-core: 7.0.0 + workbox-expiration: 7.0.0 + workbox-precaching: 7.0.0 + workbox-routing: 7.0.0 + workbox-strategies: 7.0.0 dev: true - /workbox-routing@6.5.4: - resolution: {integrity: sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==} + /workbox-routing@7.0.0: + resolution: {integrity: sha512-8YxLr3xvqidnbVeGyRGkaV4YdlKkn5qZ1LfEePW3dq+ydE73hUUJJuLmGEykW3fMX8x8mNdL0XrWgotcuZjIvA==} dependencies: - workbox-core: 6.5.4 + workbox-core: 7.0.0 dev: true - /workbox-strategies@6.5.4: - resolution: {integrity: sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==} + /workbox-strategies@7.0.0: + resolution: {integrity: sha512-dg3qJU7tR/Gcd/XXOOo7x9QoCI9nk74JopaJaYAQ+ugLi57gPsXycVdBnYbayVj34m6Y8ppPwIuecrzkpBVwbA==} dependencies: - workbox-core: 6.5.4 + workbox-core: 7.0.0 dev: true - /workbox-streams@6.5.4: - resolution: {integrity: sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg==} + /workbox-streams@7.0.0: + resolution: {integrity: sha512-moVsh+5to//l6IERWceYKGiftc+prNnqOp2sgALJJFbnNVpTXzKISlTIsrWY+ogMqt+x1oMazIdHj25kBSq/HQ==} dependencies: - workbox-core: 6.5.4 - workbox-routing: 6.5.4 + workbox-core: 7.0.0 + workbox-routing: 7.0.0 dev: true - /workbox-sw@6.5.4: - resolution: {integrity: sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA==} + /workbox-sw@7.0.0: + resolution: {integrity: sha512-SWfEouQfjRiZ7GNABzHUKUyj8pCoe+RwjfOIajcx6J5mtgKkN+t8UToHnpaJL5UVVOf5YhJh+OHhbVNIHe+LVA==} dev: true - /workbox-window@6.5.4: - resolution: {integrity: sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug==} + /workbox-window@7.0.0: + resolution: {integrity: sha512-j7P/bsAWE/a7sxqTzXo3P2ALb1reTfZdvVp6OJ/uLr/C2kZAMvjeWGm8V4htQhor7DOvYg0sSbFN2+flT5U0qA==} dependencies: '@types/trusted-types': 2.0.2 - workbox-core: 6.5.4 + workbox-core: 7.0.0 dev: true /wrap-ansi@7.0.0: @@ -13900,7 +14563,7 @@ packages: dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 - strip-ansi: 7.0.1 + strip-ansi: 7.1.0 /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -14044,10 +14707,9 @@ packages: /yocto-queue@1.0.0: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} - dev: true - /zod@3.21.4: - resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} + /zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} /zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 38fce20b..d1f74563 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -1727,6 +1727,17 @@ dependencies = [ "objc_exception", ] +[[package]] +name = "objc-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" +dependencies = [ + "block", + "objc", + "objc_id", +] + [[package]] name = "objc_exception" version = "0.1.2" @@ -2190,6 +2201,30 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78" +[[package]] +name = "rfd" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0149778bd99b6959285b0933288206090c50e2327f47a9c463bfdbf45c8823ea" +dependencies = [ + "block", + "dispatch", + "glib-sys", + "gobject-sys", + "gtk-sys", + "js-sys", + "lazy_static", + "log", + "objc", + "objc-foundation", + "objc_id", + "raw-window-handle", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows 0.37.0", +] + [[package]] name = "rosc" version = "0.10.1" @@ -2696,6 +2731,7 @@ dependencies = [ "percent-encoding", "rand 0.8.5", "raw-window-handle", + "rfd", "semver", "serde", "serde_json", @@ -3251,6 +3287,18 @@ dependencies = [ "wasm-bindgen-shared", ] +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "wasm-bindgen-macro" version = "0.2.87" @@ -3406,6 +3454,19 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647" +dependencies = [ + "windows_aarch64_msvc 0.37.0", + "windows_i686_gnu 0.37.0", + "windows_i686_msvc 0.37.0", + "windows_x86_64_gnu 0.37.0", + "windows_x86_64_msvc 0.37.0", +] + [[package]] name = "windows" version = "0.39.0" @@ -3512,6 +3573,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +[[package]] +name = "windows_aarch64_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a" + [[package]] name = "windows_aarch64_msvc" version = "0.39.0" @@ -3530,6 +3597,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +[[package]] +name = "windows_i686_gnu" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1" + [[package]] name = "windows_i686_gnu" version = "0.39.0" @@ -3548,6 +3621,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +[[package]] +name = "windows_i686_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c" + [[package]] name = "windows_i686_msvc" version = "0.39.0" @@ -3566,6 +3645,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +[[package]] +name = "windows_x86_64_gnu" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d" + [[package]] name = "windows_x86_64_gnu" version = "0.39.0" @@ -3596,6 +3681,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +[[package]] +name = "windows_x86_64_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d" + [[package]] name = "windows_x86_64_msvc" version = "0.39.0" diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 35aab489..ece4f6c4 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -17,7 +17,7 @@ tauri-build = { version = "1.4.0", features = [] } [dependencies] serde_json = "1.0" serde = { version = "1.0", features = ["derive"] } -tauri = { version = "1.4.0", features = ["fs-all"] } +tauri = { version = "1.4.0", features = [ "dialog-all", "clipboard-write-text", "fs-all"] } midir = "0.9.1" tokio = { version = "1.29.0", features = ["full"] } rosc = "0.10.1" diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index bbd30e26..f70928ab 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -3,7 +3,7 @@ "build": { "beforeBuildCommand": "npm run build", "beforeDevCommand": "npm run dev", - "devPath": "http://localhost:3000", + "devPath": "http://localhost:4321", "distDir": "../website/dist", "withGlobalTauri": true }, @@ -13,6 +13,12 @@ }, "tauri": { "allowlist": { + "dialog": { + "all": true + }, + "clipboard": { + "writeText": true + }, "all": false, "fs": { "all": true, diff --git a/test/__snapshots__/examples.test.mjs.snap b/test/__snapshots__/examples.test.mjs.snap index e026f9c4..d02acdef 100644 --- a/test/__snapshots__/examples.test.mjs.snap +++ b/test/__snapshots__/examples.test.mjs.snap @@ -633,6 +633,15 @@ exports[`runs examples > example "addVoicings" example index 0 1`] = ` ] `; +exports[`runs examples > example "adsr" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c3 s:sawtooth cutoff:600 ]", + "[ 1/1 → 2/1 | note:bb2 s:sawtooth cutoff:600 ]", + "[ 2/1 → 3/1 | note:f3 s:sawtooth cutoff:600 ]", + "[ 3/1 → 4/1 | note:eb3 s:sawtooth cutoff:600 ]", +] +`; + exports[`runs examples > example "almostAlways" example index 0 1`] = ` [ "[ 0/1 → 1/8 | s:hh speed:0.5 ]", @@ -1071,6 +1080,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 ]", @@ -1081,27 +1115,6 @@ exports[`runs examples > example "chop" example index 0 1`] = ` `; exports[`runs examples > example "chunk" example index 0 1`] = ` -[ - "[ 0/1 → 1/4 | note:A4 ]", - "[ 1/4 → 1/2 | note:B3 ]", - "[ 1/2 → 3/4 | note:C4 ]", - "[ 3/4 → 1/1 | note:D4 ]", - "[ 1/1 → 5/4 | note:A3 ]", - "[ 5/4 → 3/2 | note:B3 ]", - "[ 3/2 → 7/4 | note:C4 ]", - "[ 7/4 → 2/1 | note:D5 ]", - "[ 2/1 → 9/4 | note:A3 ]", - "[ 9/4 → 5/2 | note:B3 ]", - "[ 5/2 → 11/4 | note:C5 ]", - "[ 11/4 → 3/1 | note:D4 ]", - "[ 3/1 → 13/4 | note:A3 ]", - "[ 13/4 → 7/2 | note:B4 ]", - "[ 7/2 → 15/4 | note:C4 ]", - "[ 15/4 → 4/1 | note:D4 ]", -] -`; - -exports[`runs examples > example "chunkBack" example index 0 1`] = ` [ "[ 0/1 → 1/4 | note:A4 ]", "[ 1/4 → 1/2 | note:B3 ]", @@ -1122,6 +1135,27 @@ exports[`runs examples > example "chunkBack" example index 0 1`] = ` ] `; +exports[`runs examples > example "chunkBack" example index 0 1`] = ` +[ + "[ 0/1 → 1/4 | note:A4 ]", + "[ 1/4 → 1/2 | note:B3 ]", + "[ 1/2 → 3/4 | note:C4 ]", + "[ 3/4 → 1/1 | note:D4 ]", + "[ 1/1 → 5/4 | note:A3 ]", + "[ 5/4 → 3/2 | note:B3 ]", + "[ 3/2 → 7/4 | note:C4 ]", + "[ 7/4 → 2/1 | note:D5 ]", + "[ 2/1 → 9/4 | note:A3 ]", + "[ 9/4 → 5/2 | note:B3 ]", + "[ 5/2 → 11/4 | note:C5 ]", + "[ 11/4 → 3/1 | note:D4 ]", + "[ 3/1 → 13/4 | note:A3 ]", + "[ 13/4 → 7/2 | note:B4 ]", + "[ 7/2 → 15/4 | note:C4 ]", + "[ 15/4 → 4/1 | note:D4 ]", +] +`; + exports[`runs examples > example "clip" example index 0 1`] = ` [ "[ 0/1 → 1/4 | note:c s:piano clip:0.5 ]", @@ -1185,6 +1219,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 ]", @@ -1794,6 +1857,19 @@ exports[`runs examples > example "fast" example index 0 1`] = ` ] `; +exports[`runs examples > example "fastChunk" example index 0 1`] = ` +[ + "[ 0/1 → 1/2 | note:C2 s:folkharp ]", + "[ 1/2 → 1/1 | note:D2 s:folkharp ]", + "[ 1/1 → 3/2 | note:E2 s:folkharp ]", + "[ 3/2 → 2/1 | note:F2 s:folkharp ]", + "[ 2/1 → 5/2 | note:G2 s:folkharp ]", + "[ 5/2 → 3/1 | note:A2 s:folkharp ]", + "[ 3/1 → 7/2 | note:B2 s:folkharp ]", + "[ 7/2 → 4/1 | note:C3 s:folkharp ]", +] +`; + exports[`runs examples > example "fastGap" example index 0 1`] = ` [ "[ 0/1 → 1/4 | s:bd ]", @@ -2067,6 +2143,15 @@ exports[`runs examples > example "freq" example index 1 1`] = ` ] `; +exports[`runs examples > example "fscope" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | s:sawtooth analyze:1 ]", + "[ 1/1 → 2/1 | s:sawtooth analyze:1 ]", + "[ 2/1 → 3/1 | s:sawtooth analyze:1 ]", + "[ 3/1 → 4/1 | s:sawtooth analyze:1 ]", +] +`; + exports[`runs examples > example "ftype" example index 0 1`] = ` [ "[ 0/1 → 1/1 | note:c2 s:sawtooth cutoff:500 bpenv:4 ftype:12db ]", @@ -2959,6 +3044,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 ]", @@ -3212,6 +3306,56 @@ exports[`runs examples > example "perlin" example index 0 1`] = ` ] `; +exports[`runs examples > example "pianoroll" example index 0 1`] = ` +[ + "[ 0/1 → 1/8 | note:C2 s:piano clip:1 ]", + "[ (1/4 → 1/3) ⇝ 3/8 | note:C2 s:piano clip:1 ]", + "[ 1/4 ⇜ (1/3 → 3/8) | note:A2 s:piano clip:1 ]", + "[ 3/8 → 1/2 | note:A2 s:piano clip:1 ]", + "[ (5/8 → 2/3) ⇝ 3/4 | note:A2 s:piano clip:1 ]", + "[ 5/8 ⇜ (2/3 → 3/4) | note:G2 s:piano clip:1 ]", + "[ 3/4 → 7/8 | note:G2 s:piano clip:1 ]", + "[ 1/1 → 9/8 | note:C2 s:piano clip:1 ]", + "[ (5/4 → 4/3) ⇝ 11/8 | note:C2 s:piano clip:1 ]", + "[ 5/4 ⇜ (4/3 → 11/8) | note:A2 s:piano clip:1 ]", + "[ 11/8 → 3/2 | note:A2 s:piano clip:1 ]", + "[ (13/8 → 5/3) ⇝ 7/4 | note:A2 s:piano clip:1 ]", + "[ 13/8 ⇜ (5/3 → 7/4) | note:G2 s:piano clip:1 ]", + "[ 7/4 → 15/8 | note:G2 s:piano clip:1 ]", + "[ 2/1 → 17/8 | note:C2 s:piano clip:1 ]", + "[ (9/4 → 7/3) ⇝ 19/8 | note:C2 s:piano clip:1 ]", + "[ 9/4 ⇜ (7/3 → 19/8) | note:A2 s:piano clip:1 ]", + "[ 19/8 → 5/2 | note:A2 s:piano clip:1 ]", + "[ (21/8 → 8/3) ⇝ 11/4 | note:A2 s:piano clip:1 ]", + "[ 21/8 ⇜ (8/3 → 11/4) | note:G2 s:piano clip:1 ]", + "[ 11/4 → 23/8 | note:G2 s:piano clip:1 ]", + "[ 3/1 → 25/8 | note:C2 s:piano clip:1 ]", + "[ (13/4 → 10/3) ⇝ 27/8 | note:C2 s:piano clip:1 ]", + "[ 13/4 ⇜ (10/3 → 27/8) | note:A2 s:piano clip:1 ]", + "[ 27/8 → 7/2 | note:A2 s:piano clip:1 ]", + "[ (29/8 → 11/3) ⇝ 15/4 | note:A2 s:piano clip:1 ]", + "[ 29/8 ⇜ (11/3 → 15/4) | note:G2 s:piano clip:1 ]", + "[ 15/4 → 31/8 | note:G2 s:piano clip:1 ]", +] +`; + +exports[`runs examples > example "pick" example index 0 1`] = ` +[ + "[ 0/1 → 1/2 | note:g ]", + "[ 1/2 → 1/1 | note:a ]", + "[ 1/1 → 3/2 | note:e ]", + "[ 3/2 → 2/1 | note:f ]", + "[ 2/1 → 9/4 | note:f ]", + "[ 9/4 → 5/2 | note:g ]", + "[ 5/2 → 11/4 | note:f ]", + "[ 11/4 → 3/1 | note:g ]", + "[ 3/1 → 13/4 | note:g ]", + "[ 13/4 → 7/2 | note:a ]", + "[ 7/2 → 15/4 | note:c ]", + "[ 15/4 → 4/1 | note:d ]", +] +`; + exports[`runs examples > example "ply" example index 0 1`] = ` [ "[ 0/1 → 1/4 | s:bd ]", @@ -3284,6 +3428,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 ]", @@ -3528,6 +3701,27 @@ exports[`runs examples > example "release" example index 0 1`] = ` ] `; +exports[`runs examples > example "repeatCycles" example index 0 1`] = ` +[ + "[ 0/1 → 1/4 | note:42 s:gm_acoustic_guitar_nylon ]", + "[ 1/4 → 1/2 | note:38 s:gm_acoustic_guitar_nylon ]", + "[ 1/2 → 3/4 | note:35 s:gm_acoustic_guitar_nylon ]", + "[ 3/4 → 1/1 | note:38 s:gm_acoustic_guitar_nylon ]", + "[ 1/1 → 5/4 | note:42 s:gm_acoustic_guitar_nylon ]", + "[ 5/4 → 3/2 | note:38 s:gm_acoustic_guitar_nylon ]", + "[ 3/2 → 7/4 | note:35 s:gm_acoustic_guitar_nylon ]", + "[ 7/4 → 2/1 | note:38 s:gm_acoustic_guitar_nylon ]", + "[ 2/1 → 9/4 | note:42 s:gm_acoustic_guitar_nylon ]", + "[ 9/4 → 5/2 | note:36 s:gm_acoustic_guitar_nylon ]", + "[ 5/2 → 11/4 | note:39 s:gm_acoustic_guitar_nylon ]", + "[ 11/4 → 3/1 | note:41 s:gm_acoustic_guitar_nylon ]", + "[ 3/1 → 13/4 | note:42 s:gm_acoustic_guitar_nylon ]", + "[ 13/4 → 7/2 | note:36 s:gm_acoustic_guitar_nylon ]", + "[ 7/2 → 15/4 | note:39 s:gm_acoustic_guitar_nylon ]", + "[ 15/4 → 4/1 | note:41 s:gm_acoustic_guitar_nylon ]", +] +`; + exports[`runs examples > example "reset" example index 0 1`] = ` [ "[ 0/1 → 1/4 | s:hh ]", @@ -3654,16 +3848,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 ]", ] `; @@ -3798,6 +4083,42 @@ exports[`runs examples > example "samples" example index 1 1`] = ` ] `; +exports[`runs examples > example "samples" example index 2 1`] = ` +[ + "[ 0/1 → 1/2 | s:noise ]", + "[ 1/2 → 3/4 | s:chimp n:0 ]", + "[ 3/4 → 1/1 | s:chimp n:0 ]", + "[ 1/1 → 3/2 | s:noise ]", + "[ 3/2 → 2/1 | s:chimp n:1 ]", + "[ 2/1 → 5/2 | s:noise ]", + "[ 5/2 → 11/4 | s:chimp n:0 ]", + "[ 11/4 → 3/1 | s:chimp n:0 ]", + "[ 3/1 → 7/2 | s:noise ]", + "[ 7/2 → 4/1 | s:chimp n:1 ]", +] +`; + +exports[`runs examples > example "samples" example index 3 1`] = ` +[ + "[ 0/1 → 1/4 | s:chocolat ]", + "[ 1/4 → 1/2 | s:chocolat ]", + "[ 1/2 → 3/4 | s:chocolat ]", + "[ 3/4 → 1/1 | s:chocolat ]", + "[ 1/1 → 5/4 | s:chocolat ]", + "[ 5/4 → 3/2 | s:chocolat ]", + "[ 3/2 → 7/4 | s:chocolat ]", + "[ 7/4 → 2/1 | s:chocolat ]", + "[ 2/1 → 9/4 | s:chocolat ]", + "[ 9/4 → 5/2 | s:chocolat ]", + "[ 5/2 → 11/4 | s:chocolat ]", + "[ 11/4 → 3/1 | s:chocolat ]", + "[ 3/1 → 13/4 | s:chocolat ]", + "[ 13/4 → 7/2 | s:chocolat ]", + "[ 7/2 → 15/4 | s:chocolat ]", + "[ 15/4 → 4/1 | s:chocolat ]", +] +`; + exports[`runs examples > example "saw" example index 0 1`] = ` [ "[ 0/1 → 1/4 | note:c3 clip:0.03125 ]", @@ -3842,96 +4163,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 ]", ] `; @@ -3956,6 +4277,15 @@ exports[`runs examples > example "scaleTranspose" example index 0 1`] = ` ] `; +exports[`runs examples > example "scope" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | s:sawtooth analyze:1 ]", + "[ 1/1 → 2/1 | s:sawtooth analyze:1 ]", + "[ 2/1 → 3/1 | s:sawtooth analyze:1 ]", + "[ 3/1 → 4/1 | s:sawtooth analyze:1 ]", +] +`; + exports[`runs examples > example "segment" example index 0 1`] = ` [ "[ 0/1 → 1/24 | note:40.25 ]", @@ -4393,6 +4723,25 @@ exports[`runs examples > example "square" example index 0 1`] = ` ] `; +exports[`runs examples > example "squeeze" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:g ]", + "[ 1/1 → 2/1 | note:a ]", + "[ 2/1 → 17/8 | note:f ]", + "[ 17/8 → 9/4 | note:g ]", + "[ 9/4 → 19/8 | note:f ]", + "[ 19/8 → 5/2 | note:g ]", + "[ 5/2 → 21/8 | note:f ]", + "[ 21/8 → 11/4 | note:g ]", + "[ 11/4 → 23/8 | note:f ]", + "[ 23/8 → 3/1 | note:g ]", + "[ 3/1 → 13/4 | note:g ]", + "[ 13/4 → 7/2 | note:a ]", + "[ 7/2 → 15/4 | note:c ]", + "[ 15/4 → 4/1 | note:d ]", +] +`; + exports[`runs examples > example "squiz" example index 0 1`] = ` [ "[ 0/1 → 1/4 | squiz:2 s:bd ]", @@ -4464,6 +4813,23 @@ exports[`runs examples > example "stack" example index 0 2`] = ` ] `; +exports[`runs examples > example "striate" example index 0 1`] = ` +[ + "[ 0/1 → 1/3 | s:numbers n:0 begin:0 end:0.16666666666666666 ]", + "[ 1/3 → 2/3 | s:numbers n:1 begin:0 end:0.16666666666666666 ]", + "[ 2/3 → 1/1 | s:numbers n:2 begin:0 end:0.16666666666666666 ]", + "[ 1/1 → 4/3 | s:numbers n:0 begin:0.16666666666666666 end:0.3333333333333333 ]", + "[ 4/3 → 5/3 | s:numbers n:1 begin:0.16666666666666666 end:0.3333333333333333 ]", + "[ 5/3 → 2/1 | s:numbers n:2 begin:0.16666666666666666 end:0.3333333333333333 ]", + "[ 2/1 → 7/3 | s:numbers n:0 begin:0.3333333333333333 end:0.5 ]", + "[ 7/3 → 8/3 | s:numbers n:1 begin:0.3333333333333333 end:0.5 ]", + "[ 8/3 → 3/1 | s:numbers n:2 begin:0.3333333333333333 end:0.5 ]", + "[ 3/1 → 10/3 | s:numbers n:0 begin:0.5 end:0.6666666666666666 ]", + "[ 10/3 → 11/3 | s:numbers n:1 begin:0.5 end:0.6666666666666666 ]", + "[ 11/3 → 4/1 | s:numbers n:2 begin:0.5 end:0.6666666666666666 ]", +] +`; + exports[`runs examples > example "struct" example index 0 1`] = ` [ "[ 0/1 → 1/4 | note:c3 ]", @@ -4920,6 +5286,51 @@ exports[`runs examples > example "withValue" example index 0 1`] = ` ] `; +exports[`runs examples > example "xfade" example index 0 1`] = ` +[ + "[ 0/1 → 1/8 | s:hh gain:0 ]", + "[ 0/1 → 1/2 | s:bd gain:1 ]", + "[ 1/8 → 1/4 | s:hh gain:0 ]", + "[ 1/4 → 3/8 | s:hh gain:0 ]", + "[ 3/8 → 1/2 | s:hh gain:0 ]", + "[ 1/2 → 5/8 | s:hh gain:0 ]", + "[ 1/2 → 1/1 | s:bd gain:1 ]", + "[ 5/8 → 3/4 | s:hh gain:0 ]", + "[ 3/4 → 7/8 | s:hh gain:0 ]", + "[ 7/8 → 1/1 | s:hh gain:0 ]", + "[ 1/1 → 9/8 | s:hh gain:0.5 ]", + "[ 1/1 → 3/2 | s:bd gain:1 ]", + "[ 9/8 → 5/4 | s:hh gain:0.5 ]", + "[ 5/4 → 11/8 | s:hh gain:0.5 ]", + "[ 11/8 → 3/2 | s:hh gain:0.5 ]", + "[ 3/2 → 13/8 | s:hh gain:0.5 ]", + "[ 3/2 → 2/1 | s:bd gain:1 ]", + "[ 13/8 → 7/4 | s:hh gain:0.5 ]", + "[ 7/4 → 15/8 | s:hh gain:0.5 ]", + "[ 15/8 → 2/1 | s:hh gain:0.5 ]", + "[ 2/1 → 17/8 | s:hh gain:1 ]", + "[ 2/1 → 5/2 | s:bd gain:1 ]", + "[ 17/8 → 9/4 | s:hh gain:1 ]", + "[ 9/4 → 19/8 | s:hh gain:1 ]", + "[ 19/8 → 5/2 | s:hh gain:1 ]", + "[ 5/2 → 21/8 | s:hh gain:1 ]", + "[ 5/2 → 3/1 | s:bd gain:1 ]", + "[ 21/8 → 11/4 | s:hh gain:1 ]", + "[ 11/4 → 23/8 | s:hh gain:1 ]", + "[ 23/8 → 3/1 | s:hh gain:1 ]", + "[ 3/1 → 25/8 | s:hh gain:1 ]", + "[ 3/1 → 7/2 | s:bd gain:0.5 ]", + "[ 25/8 → 13/4 | s:hh gain:1 ]", + "[ 13/4 → 27/8 | s:hh gain:1 ]", + "[ 27/8 → 7/2 | s:hh gain:1 ]", + "[ 7/2 → 29/8 | s:hh gain:1 ]", + "[ 7/2 → 4/1 | s:bd gain:0.5 ]", + "[ 29/8 → 15/4 | s:hh gain:1 ]", + "[ 15/4 → 31/8 | s:hh gain:1 ]", + "[ 31/8 → 4/1 | s:hh gain:1 ]", +] +`; + exports[`runs examples > example "zoom" example index 0 1`] = ` [ "[ 0/1 → 1/6 | s:hh ]", diff --git a/test/__snapshots__/shared.test.mjs.snap b/test/__snapshots__/shared.test.mjs.snap index 8740aea6..383bcded 100644 --- a/test/__snapshots__/shared.test.mjs.snap +++ b/test/__snapshots__/shared.test.mjs.snap @@ -1,6 +1,6 @@ // Vitest Snapshot v1 -exports[`renders shared tunes > shared tune 10 https://strudel.tidalcycles.org/?nLsPXvEPTcQF 1`] = ` +exports[`renders shared tunes > shared tune 10 https://strudel.cc/?nLsPXvEPTcQF 1`] = ` [ "0/1 -> 3/2: {\\"s\\":\\"bd\\",\\"speed\\":0.7519542165100574}", "3/4 -> 3/2: {\\"s\\":\\"sd\\",\\"speed\\":0.7931522866332671}", @@ -57,7 +57,7 @@ exports[`renders shared tunes > shared tune 10 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 11 https://strudel.tidalcycles.org/?ac7iGrXwBA_D 1`] = ` +exports[`renders shared tunes > shared tune 11 https://strudel.cc/?ac7iGrXwBA_D 1`] = ` [ "0/1 -> 3/2: {\\"s\\":\\"bd\\",\\"speed\\":0.7519542165100574}", "3/4 -> 3/2: {\\"s\\":\\"sd\\",\\"speed\\":0.7931522866332671}", @@ -114,7 +114,7 @@ exports[`renders shared tunes > shared tune 11 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 12 https://strudel.tidalcycles.org/?0l5OmIwd4Xhc 1`] = ` +exports[`renders shared tunes > shared tune 12 https://strudel.cc/?0l5OmIwd4Xhc 1`] = ` [ "0/1 -> 3/1: {\\"n\\":\\"B3\\",\\"s\\":\\"0040_FluidR3_GM_sf2_file\\",\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.7,\\"cutoff\\":1111.7252990603447,\\"gain\\":0.3}", "0/1 -> 3/1: {\\"n\\":\\"D4\\",\\"s\\":\\"0040_FluidR3_GM_sf2_file\\",\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.7,\\"cutoff\\":1111.7252990603447,\\"gain\\":0.3}", @@ -129,13 +129,13 @@ exports[`renders shared tunes > shared tune 12 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 13 https://strudel.tidalcycles.org/?a5zB31-92Q7M 1`] = ` +exports[`renders shared tunes > shared tune 13 https://strudel.cc/?a5zB31-92Q7M 1`] = ` [ "0/1 -> 1/1: {\\"s\\":\\"bd\\"}", ] `; -exports[`renders shared tunes > shared tune 14 https://strudel.tidalcycles.org/?ZNO6a_vBjz65 1`] = ` +exports[`renders shared tunes > shared tune 14 https://strudel.cc/?ZNO6a_vBjz65 1`] = ` [ "0/1 -> 2/3: F3", "2/3 -> 1/1: Ab3", @@ -155,7 +155,7 @@ exports[`renders shared tunes > shared tune 14 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 15 https://strudel.tidalcycles.org/?8sxdCCcYKcvp 1`] = ` +exports[`renders shared tunes > shared tune 15 https://strudel.cc/?8sxdCCcYKcvp 1`] = ` [ "0/1 -> 1/8: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2206.5338497506646,\\"resonance\\":10,\\"clip\\":1}", "3/8 -> 1/2: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2827.098521493671,\\"resonance\\":10,\\"clip\\":1}", @@ -193,7 +193,7 @@ exports[`renders shared tunes > shared tune 15 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 16 https://strudel.tidalcycles.org/?PIG8q54uhQ5h 1`] = ` +exports[`renders shared tunes > shared tune 16 https://strudel.cc/?PIG8q54uhQ5h 1`] = ` [ "0/1 -> 3/1: {\\"n\\":\\"B3\\",\\"s\\":\\"0040_FluidR3_GM_sf2_file\\",\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.7,\\"cutoff\\":1111.7252990603447,\\"gain\\":0.3}", "0/1 -> 3/1: {\\"n\\":\\"D4\\",\\"s\\":\\"0040_FluidR3_GM_sf2_file\\",\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.7,\\"cutoff\\":1111.7252990603447,\\"gain\\":0.3}", @@ -208,7 +208,7 @@ exports[`renders shared tunes > shared tune 16 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 18 https://strudel.tidalcycles.org/?RyZi9bqqcQku 1`] = ` +exports[`renders shared tunes > shared tune 18 https://strudel.cc/?RyZi9bqqcQku 1`] = ` [ "0/1 -> 4/3: B4", "0/1 -> 1/3: C3", @@ -217,7 +217,7 @@ exports[`renders shared tunes > shared tune 18 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 19 https://strudel.tidalcycles.org/?83h9X6BCipLc 1`] = ` +exports[`renders shared tunes > shared tune 19 https://strudel.cc/?83h9X6BCipLc 1`] = ` [ "0/1 -> 3/4: F4", "0/1 -> 3/4: Bb4", @@ -230,7 +230,7 @@ exports[`renders shared tunes > shared tune 19 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 20 https://strudel.tidalcycles.org/?Ii6-cLJkxdw9 1`] = ` +exports[`renders shared tunes > shared tune 20 https://strudel.cc/?Ii6-cLJkxdw9 1`] = ` [ "0/1 -> 1/10: C3", "0/1 -> 1/10: E3", @@ -249,7 +249,7 @@ exports[`renders shared tunes > shared tune 20 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 21 https://strudel.tidalcycles.org/?-QCLFGNo4Q3J 1`] = ` +exports[`renders shared tunes > shared tune 21 https://strudel.cc/?-QCLFGNo4Q3J 1`] = ` [ "0/1 -> 1/4: {\\"n\\":62,\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000}", "1/2 -> 5/8: {\\"n\\":50,\\"s\\":\\"square\\",\\"cutoff\\":2000}", @@ -263,7 +263,7 @@ exports[`renders shared tunes > shared tune 21 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 22 https://strudel.tidalcycles.org/?vwau_1P_anLs 1`] = ` +exports[`renders shared tunes > shared tune 22 https://strudel.cc/?vwau_1P_anLs 1`] = ` [ "1/8 -> 1/4: {\\"n\\":\\"D1\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1699.6897509708342}", "1/8 -> 1/4: {\\"n\\":\\"D1\\",\\"s\\":\\"square\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1699.6897509708342}", @@ -333,7 +333,7 @@ exports[`renders shared tunes > shared tune 22 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 23 https://strudel.tidalcycles.org/?wVExAEFBUPQB 1`] = ` +exports[`renders shared tunes > shared tune 23 https://strudel.cc/?wVExAEFBUPQB 1`] = ` [ "0/1 -> 1/4: {\\"note\\":\\"F3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.49537037037037035}", "0/1 -> 1/4: {\\"note\\":\\"A3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5138888888888888}", @@ -347,7 +347,7 @@ exports[`renders shared tunes > shared tune 23 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 24 https://strudel.tidalcycles.org/?C8mMgTmvsnue 1`] = ` +exports[`renders shared tunes > shared tune 24 https://strudel.cc/?C8mMgTmvsnue 1`] = ` [ "0/1 -> 1/10: C3", "0/1 -> 1/10: E3", @@ -366,7 +366,7 @@ exports[`renders shared tunes > shared tune 24 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 25 https://strudel.tidalcycles.org/?EeNsQ8hdNZwN 1`] = ` +exports[`renders shared tunes > shared tune 25 https://strudel.cc/?EeNsQ8hdNZwN 1`] = ` [ "0/1 -> 1/10: C3", "0/1 -> 1/10: E3", @@ -385,7 +385,7 @@ exports[`renders shared tunes > shared tune 25 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 26 https://strudel.tidalcycles.org/?AoWRw1oZkytb 1`] = ` +exports[`renders shared tunes > shared tune 26 https://strudel.cc/?AoWRw1oZkytb 1`] = ` [ "0/1 -> 1/2: e5", "1/2 -> 3/4: b4", @@ -397,7 +397,7 @@ exports[`renders shared tunes > shared tune 26 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 27 https://strudel.tidalcycles.org/?UaTcY5YrOahl 1`] = ` +exports[`renders shared tunes > shared tune 27 https://strudel.cc/?UaTcY5YrOahl 1`] = ` [ "-1666666666666667/7500000000000000 -> 2/9: G3", "0/1 -> 4/3: E3", @@ -420,7 +420,7 @@ exports[`renders shared tunes > shared tune 27 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 28 https://strudel.tidalcycles.org/?YPLI4xhBDMpV 1`] = ` +exports[`renders shared tunes > shared tune 28 https://strudel.cc/?YPLI4xhBDMpV 1`] = ` [ "0/1 -> 1/1: bd", "0/1 -> 1/4: hh", @@ -431,7 +431,7 @@ exports[`renders shared tunes > shared tune 28 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 29 https://strudel.tidalcycles.org/?amB31Tm55hnv 1`] = ` +exports[`renders shared tunes > shared tune 29 https://strudel.cc/?amB31Tm55hnv 1`] = ` [ "0/1 -> 1/4: B3", "0/1 -> 1/4: D4", @@ -454,7 +454,7 @@ exports[`renders shared tunes > shared tune 29 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 30 https://strudel.tidalcycles.org/?8OyCVeBYuqru 1`] = ` +exports[`renders shared tunes > shared tune 30 https://strudel.cc/?8OyCVeBYuqru 1`] = ` [ "0/1 -> 4/3: B4", "0/1 -> 1/3: C3", @@ -463,7 +463,7 @@ exports[`renders shared tunes > shared tune 30 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 31 https://strudel.tidalcycles.org/?lzjNrzv5qXL2 1`] = ` +exports[`renders shared tunes > shared tune 31 https://strudel.cc/?lzjNrzv5qXL2 1`] = ` [ "0/1 -> 1/3: bd", "1/3 -> 2/3: hh", @@ -481,7 +481,7 @@ exports[`renders shared tunes > shared tune 31 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 32 https://strudel.tidalcycles.org/?b5ZZnwaI-UuT 1`] = ` +exports[`renders shared tunes > shared tune 32 https://strudel.cc/?b5ZZnwaI-UuT 1`] = ` [ "0/1 -> 7/5: {\\"s\\":\\"bd\\",\\"speed\\":0.7779313247650861}", "7/10 -> 7/5: {\\"s\\":\\"sd\\",\\"speed\\":0.8397284299499006}", @@ -543,7 +543,7 @@ exports[`renders shared tunes > shared tune 32 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 33 https://strudel.tidalcycles.org/?YZksJ_k4TsrS 1`] = ` +exports[`renders shared tunes > shared tune 33 https://strudel.cc/?YZksJ_k4TsrS 1`] = ` [ "0/1 -> 5/8: F#5", "5/8 -> 5/4: D5", @@ -560,7 +560,7 @@ exports[`renders shared tunes > shared tune 33 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 34 https://strudel.tidalcycles.org/?e9-pyQN6vY8E 1`] = ` +exports[`renders shared tunes > shared tune 34 https://strudel.cc/?e9-pyQN6vY8E 1`] = ` [ "0/1 -> 2/1: {\\"note\\":\\"D3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4814814814814815}", "0/1 -> 2/1: {\\"note\\":\\"D3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4814814814814815}", @@ -578,7 +578,7 @@ exports[`renders shared tunes > shared tune 34 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 35 https://strudel.tidalcycles.org/?ar2sdYnjIBLm 1`] = ` +exports[`renders shared tunes > shared tune 35 https://strudel.cc/?ar2sdYnjIBLm 1`] = ` [ "0/1 -> 5/8: F#5", "5/8 -> 5/4: D5", @@ -595,9 +595,9 @@ exports[`renders shared tunes > shared tune 35 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 38 https://strudel.tidalcycles.org/?RDyvc3SOo6kX 1`] = `[]`; +exports[`renders shared tunes > shared tune 38 https://strudel.cc/?RDyvc3SOo6kX 1`] = `[]`; -exports[`renders shared tunes > shared tune 39 https://strudel.tidalcycles.org/?E9HzjWmePz3x 1`] = ` +exports[`renders shared tunes > shared tune 39 https://strudel.cc/?E9HzjWmePz3x 1`] = ` [ "0/1 -> 1/2: c1", "1/2 -> 1/1: c1", @@ -613,7 +613,7 @@ exports[`renders shared tunes > shared tune 39 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 40 https://strudel.tidalcycles.org/?qk6JW1Bmi26s 1`] = ` +exports[`renders shared tunes > shared tune 40 https://strudel.cc/?qk6JW1Bmi26s 1`] = ` [ "0/1 -> 1/1: {\\"n\\":\\"C2\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":500}", "1/2 -> 3/5: {\\"note\\":\\"Bb3\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}", @@ -647,7 +647,7 @@ exports[`renders shared tunes > shared tune 40 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 41 https://strudel.tidalcycles.org/?c59geCmbANy8 1`] = ` +exports[`renders shared tunes > shared tune 41 https://strudel.cc/?c59geCmbANy8 1`] = ` [ "0/1 -> 1/3: C3", "1/3 -> 2/3: E3", @@ -655,7 +655,7 @@ exports[`renders shared tunes > shared tune 41 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 42 https://strudel.tidalcycles.org/?WD53HbM4B3Xf 1`] = ` +exports[`renders shared tunes > shared tune 42 https://strudel.cc/?WD53HbM4B3Xf 1`] = ` [ "0/1 -> 1/3: C3", "1/3 -> 2/3: E3", @@ -675,7 +675,7 @@ exports[`renders shared tunes > shared tune 42 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 43 https://strudel.tidalcycles.org/?g7c_nZZ1fVJS 1`] = ` +exports[`renders shared tunes > shared tune 43 https://strudel.cc/?g7c_nZZ1fVJS 1`] = ` [ "0/1 -> 1/3: C3", "1/3 -> 2/3: E3", @@ -695,7 +695,7 @@ exports[`renders shared tunes > shared tune 43 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 44 https://strudel.tidalcycles.org/?Don6HOPD2Wwc 1`] = ` +exports[`renders shared tunes > shared tune 44 https://strudel.cc/?Don6HOPD2Wwc 1`] = ` [ "0/1 -> 1/3: C3", "1/3 -> 2/3: E3", @@ -750,7 +750,7 @@ exports[`renders shared tunes > shared tune 44 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 45 https://strudel.tidalcycles.org/?T8n8F1Fvew9g 1`] = ` +exports[`renders shared tunes > shared tune 45 https://strudel.cc/?T8n8F1Fvew9g 1`] = ` [ "0/1 -> 1/3: C3", "1/3 -> 2/3: E3", @@ -805,7 +805,7 @@ exports[`renders shared tunes > shared tune 45 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 46 https://strudel.tidalcycles.org/?wj1_oPJEGjUu 1`] = ` +exports[`renders shared tunes > shared tune 46 https://strudel.cc/?wj1_oPJEGjUu 1`] = ` [ "1/2 -> 1/1: a4", "3/4 -> 1/1: a1", @@ -815,7 +815,7 @@ exports[`renders shared tunes > shared tune 46 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 47 https://strudel.tidalcycles.org/?0KNPD8AmV-ms 1`] = ` +exports[`renders shared tunes > shared tune 47 https://strudel.cc/?0KNPD8AmV-ms 1`] = ` [ "0/1 -> 1/3: {\\"note\\":\\"c2\\"}", "0/1 -> 1/3: {\\"note\\":\\"d2\\"}", @@ -827,7 +827,7 @@ exports[`renders shared tunes > shared tune 47 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 48 https://strudel.tidalcycles.org/?Y5DZt5A66Jj- 1`] = ` +exports[`renders shared tunes > shared tune 48 https://strudel.cc/?Y5DZt5A66Jj- 1`] = ` [ "0/1 -> 1/1: F2", "0/1 -> 1/1: F3", @@ -836,7 +836,7 @@ exports[`renders shared tunes > shared tune 48 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 49 https://strudel.tidalcycles.org/?RnD3yO0e31p- 1`] = ` +exports[`renders shared tunes > shared tune 49 https://strudel.cc/?RnD3yO0e31p- 1`] = ` [ "0/1 -> 1/1: F2", "0/1 -> 1/1: F3", @@ -845,7 +845,7 @@ exports[`renders shared tunes > shared tune 49 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 50 https://strudel.tidalcycles.org/?PQfKr5ac-4x0 1`] = ` +exports[`renders shared tunes > shared tune 50 https://strudel.cc/?PQfKr5ac-4x0 1`] = ` [ "0/1 -> 1/2: c1", "1/2 -> 1/1: c1", @@ -861,7 +861,7 @@ exports[`renders shared tunes > shared tune 50 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 51 https://strudel.tidalcycles.org/?qbyqK2VN_6if 1`] = ` +exports[`renders shared tunes > shared tune 51 https://strudel.cc/?qbyqK2VN_6if 1`] = ` [ "0/1 -> 2/1: {\\"note\\":\\"C3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4722222222222222}", "0/1 -> 2/1: {\\"note\\":\\"E3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4907407407407407}", @@ -869,7 +869,7 @@ exports[`renders shared tunes > shared tune 51 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 52 https://strudel.tidalcycles.org/?0H0ym5HypMyj 1`] = ` +exports[`renders shared tunes > shared tune 52 https://strudel.cc/?0H0ym5HypMyj 1`] = ` [ "0/1 -> 1/2: {\\"note\\":\\"D3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4814814814814815}", "1/4 -> 3/4: {\\"note\\":\\"F3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.49537037037037035}", @@ -904,7 +904,7 @@ exports[`renders shared tunes > shared tune 52 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 53 https://strudel.tidalcycles.org/?YAB9YoUpJwaj 1`] = ` +exports[`renders shared tunes > shared tune 53 https://strudel.cc/?YAB9YoUpJwaj 1`] = ` [ "0/1 -> 1/2: c2", "1/2 -> 1/1: g2", @@ -923,7 +923,7 @@ exports[`renders shared tunes > shared tune 53 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 54 https://strudel.tidalcycles.org/?-fdVyijf3Fk0 1`] = ` +exports[`renders shared tunes > shared tune 54 https://strudel.cc/?-fdVyijf3Fk0 1`] = ` [ "0/1 -> 1/2: {\\"note\\":\\"c2\\"}", "1/2 -> 1/1: {\\"note\\":\\"g2\\"}", @@ -942,7 +942,7 @@ exports[`renders shared tunes > shared tune 54 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 55 https://strudel.tidalcycles.org/?ODAzfGV0ZcbI 1`] = ` +exports[`renders shared tunes > shared tune 55 https://strudel.cc/?ODAzfGV0ZcbI 1`] = ` [ "0/1 -> 1/2: Bb2", "0/1 -> 1/2: F3", @@ -966,7 +966,7 @@ exports[`renders shared tunes > shared tune 55 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 56 https://strudel.tidalcycles.org/?86BPLjJUsUlY 1`] = ` +exports[`renders shared tunes > shared tune 56 https://strudel.cc/?86BPLjJUsUlY 1`] = ` [ "0/1 -> 1/2: Bb2", "0/1 -> 1/2: F3", @@ -990,7 +990,7 @@ exports[`renders shared tunes > shared tune 56 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 57 https://strudel.tidalcycles.org/?a6p9WTalyHea 1`] = ` +exports[`renders shared tunes > shared tune 57 https://strudel.cc/?a6p9WTalyHea 1`] = ` [ "0/1 -> 1/2: c1", "1/2 -> 1/1: c1", @@ -1000,7 +1000,7 @@ exports[`renders shared tunes > shared tune 57 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 58 https://strudel.tidalcycles.org/?ciNbEjRKpC5T 1`] = ` +exports[`renders shared tunes > shared tune 58 https://strudel.cc/?ciNbEjRKpC5T 1`] = ` [ "0/1 -> 1/2: c1", "1/2 -> 1/1: c1", @@ -1010,7 +1010,7 @@ exports[`renders shared tunes > shared tune 58 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 59 https://strudel.tidalcycles.org/?pLhCIXogckDD 1`] = ` +exports[`renders shared tunes > shared tune 59 https://strudel.cc/?pLhCIXogckDD 1`] = ` [ "0/1 -> 1/4: B3", "0/1 -> 1/4: D4", @@ -1033,7 +1033,7 @@ exports[`renders shared tunes > shared tune 59 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 60 https://strudel.tidalcycles.org/?hJFGyCmtF36W 1`] = ` +exports[`renders shared tunes > shared tune 60 https://strudel.cc/?hJFGyCmtF36W 1`] = ` [ "0/1 -> 1/4: B3", "0/1 -> 1/4: D4", @@ -1056,7 +1056,7 @@ exports[`renders shared tunes > shared tune 60 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 61 https://strudel.tidalcycles.org/?4HtBUNn4xAAA 1`] = ` +exports[`renders shared tunes > shared tune 61 https://strudel.cc/?4HtBUNn4xAAA 1`] = ` [ "0/1 -> 3053185/4904046: {\\"n\\":62,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3986.9405734726183}", "0/1 -> 3053185/4904046: {\\"n\\":62,\\"s\\":\\"square\\",\\"cutoff\\":3986.9405734726183}", @@ -1088,7 +1088,7 @@ exports[`renders shared tunes > shared tune 61 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 62 https://strudel.tidalcycles.org/?o6VENTMBn_Fo 1`] = ` +exports[`renders shared tunes > shared tune 62 https://strudel.cc/?o6VENTMBn_Fo 1`] = ` [ "0/1 -> 1/5: F#1", "1/5 -> 2/5: F#1", @@ -1099,7 +1099,7 @@ exports[`renders shared tunes > shared tune 62 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 63 https://strudel.tidalcycles.org/?2MtjoYELsyy6 1`] = ` +exports[`renders shared tunes > shared tune 63 https://strudel.cc/?2MtjoYELsyy6 1`] = ` [ "0/1 -> 2867650/6103323: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}", "0/1 -> 2681020/6741463: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}", @@ -1284,7 +1284,7 @@ exports[`renders shared tunes > shared tune 63 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 64 https://strudel.tidalcycles.org/?vJ2KTtZo20cu 1`] = ` +exports[`renders shared tunes > shared tune 64 https://strudel.cc/?vJ2KTtZo20cu 1`] = ` [ "0/1 -> 1/2: Bb2", "0/1 -> 1/2: F3", @@ -1308,7 +1308,7 @@ exports[`renders shared tunes > shared tune 64 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 65 https://strudel.tidalcycles.org/?DhWsebFhaaI9 1`] = ` +exports[`renders shared tunes > shared tune 65 https://strudel.cc/?DhWsebFhaaI9 1`] = ` [ "0/1 -> 1/2: Bb2", "0/1 -> 1/2: F3", @@ -1332,7 +1332,7 @@ exports[`renders shared tunes > shared tune 65 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 66 https://strudel.tidalcycles.org/?TpZLuyJCkYlW 1`] = ` +exports[`renders shared tunes > shared tune 66 https://strudel.cc/?TpZLuyJCkYlW 1`] = ` [ "0/1 -> 1/4: c4", "1/4 -> 1/2: e3", @@ -1341,7 +1341,7 @@ exports[`renders shared tunes > shared tune 66 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 67 https://strudel.tidalcycles.org/?pQKoHsxS2h84 1`] = ` +exports[`renders shared tunes > shared tune 67 https://strudel.cc/?pQKoHsxS2h84 1`] = ` [ "0/1 -> 1/4: {\\"n\\":62,\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000}", "1/2 -> 5/8: {\\"n\\":50,\\"s\\":\\"square\\",\\"cutoff\\":2000}", @@ -1355,7 +1355,7 @@ exports[`renders shared tunes > shared tune 67 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 68 https://strudel.tidalcycles.org/?gL4HMl9q43o6 1`] = ` +exports[`renders shared tunes > shared tune 68 https://strudel.cc/?gL4HMl9q43o6 1`] = ` [ "0/1 -> 1/4: c4", "1/4 -> 1/2: e3", @@ -1364,7 +1364,7 @@ exports[`renders shared tunes > shared tune 68 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 69 https://strudel.tidalcycles.org/?QoKBBsdDBQro 1`] = ` +exports[`renders shared tunes > shared tune 69 https://strudel.cc/?QoKBBsdDBQro 1`] = ` [ "0/1 -> 1/4: c4", "1/4 -> 1/2: e3", @@ -1373,7 +1373,7 @@ exports[`renders shared tunes > shared tune 69 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 70 https://strudel.tidalcycles.org/?TGp3R_6-qmvY 1`] = ` +exports[`renders shared tunes > shared tune 70 https://strudel.cc/?TGp3R_6-qmvY 1`] = ` [ "0/1 -> 1/8: c3", "1/8 -> 1/4: e3", @@ -1383,7 +1383,7 @@ exports[`renders shared tunes > shared tune 70 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 71 https://strudel.tidalcycles.org/?Oais65XPBeAV 1`] = ` +exports[`renders shared tunes > shared tune 71 https://strudel.cc/?Oais65XPBeAV 1`] = ` [ "0/1 -> 1/3: {\\"note\\":\\"c9\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.75}", "1/3 -> 2/3: {\\"note\\":\\"c9\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.75}", @@ -1393,7 +1393,7 @@ exports[`renders shared tunes > shared tune 71 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 72 https://strudel.tidalcycles.org/?ldZPCC8_189H 1`] = ` +exports[`renders shared tunes > shared tune 72 https://strudel.cc/?ldZPCC8_189H 1`] = ` [ "0/1 -> 1/3: {\\"note\\":\\"c9\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.75}", "1/3 -> 2/3: {\\"note\\":\\"c9\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.75}", @@ -1403,19 +1403,19 @@ exports[`renders shared tunes > shared tune 72 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 73 https://strudel.tidalcycles.org/?D--IwyHBNn0a 1`] = `[]`; +exports[`renders shared tunes > shared tune 73 https://strudel.cc/?D--IwyHBNn0a 1`] = `[]`; -exports[`renders shared tunes > shared tune 74 https://strudel.tidalcycles.org/?gRGnC9U7CLgh 1`] = `[]`; +exports[`renders shared tunes > shared tune 74 https://strudel.cc/?gRGnC9U7CLgh 1`] = `[]`; -exports[`renders shared tunes > shared tune 75 https://strudel.tidalcycles.org/?rr1DhAIFVsNf 1`] = `[]`; +exports[`renders shared tunes > shared tune 75 https://strudel.cc/?rr1DhAIFVsNf 1`] = `[]`; -exports[`renders shared tunes > shared tune 76 https://strudel.tidalcycles.org/?AnRyPR-aJRnM 1`] = `[]`; +exports[`renders shared tunes > shared tune 76 https://strudel.cc/?AnRyPR-aJRnM 1`] = `[]`; -exports[`renders shared tunes > shared tune 77 https://strudel.tidalcycles.org/?CpHjU1-jPeGv 1`] = `[]`; +exports[`renders shared tunes > shared tune 77 https://strudel.cc/?CpHjU1-jPeGv 1`] = `[]`; -exports[`renders shared tunes > shared tune 78 https://strudel.tidalcycles.org/?LgsIpYacgnRK 1`] = `[]`; +exports[`renders shared tunes > shared tune 78 https://strudel.cc/?LgsIpYacgnRK 1`] = `[]`; -exports[`renders shared tunes > shared tune 79 https://strudel.tidalcycles.org/?faC6ykfIhu1j 1`] = ` +exports[`renders shared tunes > shared tune 79 https://strudel.cc/?faC6ykfIhu1j 1`] = ` [ "0/1 -> 1/1: F2", "0/1 -> 1/1: F3", @@ -1424,13 +1424,13 @@ exports[`renders shared tunes > shared tune 79 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 80 https://strudel.tidalcycles.org/?5_NKdDWsFCk1 1`] = `[]`; +exports[`renders shared tunes > shared tune 80 https://strudel.cc/?5_NKdDWsFCk1 1`] = `[]`; -exports[`renders shared tunes > shared tune 81 https://strudel.tidalcycles.org/?kH7LV63mXASH 1`] = `[]`; +exports[`renders shared tunes > shared tune 81 https://strudel.cc/?kH7LV63mXASH 1`] = `[]`; -exports[`renders shared tunes > shared tune 82 https://strudel.tidalcycles.org/?l7FO1TzD3yBA 1`] = `[]`; +exports[`renders shared tunes > shared tune 82 https://strudel.cc/?l7FO1TzD3yBA 1`] = `[]`; -exports[`renders shared tunes > shared tune 83 https://strudel.tidalcycles.org/?3hSnOnJz8aPZ 1`] = ` +exports[`renders shared tunes > shared tune 83 https://strudel.cc/?3hSnOnJz8aPZ 1`] = ` [ "0/1 -> 1/10: C3", "0/1 -> 1/10: E3", @@ -1449,7 +1449,7 @@ exports[`renders shared tunes > shared tune 83 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 84 https://strudel.tidalcycles.org/?J3ClL0wQCBr_ 1`] = ` +exports[`renders shared tunes > shared tune 84 https://strudel.cc/?J3ClL0wQCBr_ 1`] = ` [ "0/1 -> 1/8: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2206.5338497506646,\\"resonance\\":10,\\"clip\\":1}", "3/8 -> 1/2: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2827.098521493671,\\"resonance\\":10,\\"clip\\":1}", @@ -1492,7 +1492,7 @@ exports[`renders shared tunes > shared tune 84 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 85 https://strudel.tidalcycles.org/?YC1KlrX1fOyP 1`] = ` +exports[`renders shared tunes > shared tune 85 https://strudel.cc/?YC1KlrX1fOyP 1`] = ` [ "0/1 -> 1/3: {\\"note\\":\\"D3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4814814814814815}", "1/3 -> 1/2: {\\"note\\":\\"Eb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4861111111111111}", @@ -1501,7 +1501,7 @@ exports[`renders shared tunes > shared tune 85 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 86 https://strudel.tidalcycles.org/?YD2MRLffOCRV 1`] = ` +exports[`renders shared tunes > shared tune 86 https://strudel.cc/?YD2MRLffOCRV 1`] = ` [ "1/2 -> 1/1: e4", "1/4 -> 1/2: c3", @@ -1509,7 +1509,7 @@ exports[`renders shared tunes > shared tune 86 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 87 https://strudel.tidalcycles.org/?XxvYG4XK-I5G 1`] = ` +exports[`renders shared tunes > shared tune 87 https://strudel.cc/?XxvYG4XK-I5G 1`] = ` [ "0/1 -> 1/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}", "0/1 -> 1/4: {\\"note\\":\\"B4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5787037037037037}", @@ -1524,7 +1524,7 @@ exports[`renders shared tunes > shared tune 87 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 88 https://strudel.tidalcycles.org/?FHXCltSQwouU 1`] = ` +exports[`renders shared tunes > shared tune 88 https://strudel.cc/?FHXCltSQwouU 1`] = ` [ "0/1 -> 3/4: c3", "3/4 -> 1/1: eb3", @@ -1536,7 +1536,7 @@ exports[`renders shared tunes > shared tune 88 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 89 https://strudel.tidalcycles.org/?Hg6JP2F6ufl1 1`] = ` +exports[`renders shared tunes > shared tune 89 https://strudel.cc/?Hg6JP2F6ufl1 1`] = ` [ "0/1 -> 1/3: c3", "1/3 -> 2/3: e3", @@ -1546,7 +1546,7 @@ exports[`renders shared tunes > shared tune 89 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 90 https://strudel.tidalcycles.org/?lNxLnMcpieR3 1`] = ` +exports[`renders shared tunes > shared tune 90 https://strudel.cc/?lNxLnMcpieR3 1`] = ` [ "0/1 -> 1/3: c3", "1/3 -> 2/3: e3", @@ -1556,7 +1556,7 @@ exports[`renders shared tunes > shared tune 90 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 91 https://strudel.tidalcycles.org/?78PHBhVZovgo 1`] = ` +exports[`renders shared tunes > shared tune 91 https://strudel.cc/?78PHBhVZovgo 1`] = ` [ "0/1 -> 1/4: c3", "1/5 -> 9/20: c3", @@ -1568,7 +1568,7 @@ exports[`renders shared tunes > shared tune 91 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 92 https://strudel.tidalcycles.org/?rXBp8MOz1iNw 1`] = ` +exports[`renders shared tunes > shared tune 92 https://strudel.cc/?rXBp8MOz1iNw 1`] = ` [ "0/1 -> 19/80: e5", "1/2 -> 79/120: d5", @@ -1581,7 +1581,7 @@ exports[`renders shared tunes > shared tune 92 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 93 https://strudel.tidalcycles.org/?bbPVlOzXxAxn 1`] = ` +exports[`renders shared tunes > shared tune 93 https://strudel.cc/?bbPVlOzXxAxn 1`] = ` [ "-3761101961531/150000000000000 -> 2912966012823/50000000000000: F4", "2912966012823/50000000000000 -> 141592653589793/1000000000000000: G4", @@ -1599,7 +1599,7 @@ exports[`renders shared tunes > shared tune 93 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 94 https://strudel.tidalcycles.org/?dZSKPnJiPMAz 1`] = ` +exports[`renders shared tunes > shared tune 94 https://strudel.cc/?dZSKPnJiPMAz 1`] = ` [ "-3761101961531/150000000000000 -> 2912966012823/50000000000000: E3", "2912966012823/50000000000000 -> 141592653589793/1000000000000000: A3", @@ -1617,7 +1617,7 @@ exports[`renders shared tunes > shared tune 94 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 95 https://strudel.tidalcycles.org/?l-zyGmnM6g_q 1`] = ` +exports[`renders shared tunes > shared tune 95 https://strudel.cc/?l-zyGmnM6g_q 1`] = ` [ "0/1 -> 1/8: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2206.5338497506646,\\"resonance\\":10,\\"clip\\":1}", "3/8 -> 1/2: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2827.098521493671,\\"resonance\\":10,\\"clip\\":1}", @@ -1660,7 +1660,7 @@ exports[`renders shared tunes > shared tune 95 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 96 https://strudel.tidalcycles.org/?vEpJhDLHycD8 1`] = ` +exports[`renders shared tunes > shared tune 96 https://strudel.cc/?vEpJhDLHycD8 1`] = ` [ "0/1 -> 3/20: 0", "0/1 -> 3/20: 3", @@ -1679,7 +1679,7 @@ exports[`renders shared tunes > shared tune 96 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 97 https://strudel.tidalcycles.org/?DHUbrEloJxMd 1`] = ` +exports[`renders shared tunes > shared tune 97 https://strudel.cc/?DHUbrEloJxMd 1`] = ` [ "0/1 -> 19/80: {\\"note\\":\\"E4\\"}", "1/2 -> 79/120: {\\"note\\":\\"D4\\"}", @@ -1692,7 +1692,7 @@ exports[`renders shared tunes > shared tune 97 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 98 https://strudel.tidalcycles.org/?-YW3kIKIGR8j 1`] = ` +exports[`renders shared tunes > shared tune 98 https://strudel.cc/?-YW3kIKIGR8j 1`] = ` [ "1/8 -> 1/4: {\\"n\\":\\"D1\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1699.6897509708342}", "1/8 -> 1/4: {\\"n\\":\\"D1\\",\\"s\\":\\"square\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1699.6897509708342}", @@ -1762,7 +1762,7 @@ exports[`renders shared tunes > shared tune 98 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 99 https://strudel.tidalcycles.org/?iw5ossp4Sti1 1`] = ` +exports[`renders shared tunes > shared tune 99 https://strudel.cc/?iw5ossp4Sti1 1`] = ` [ "0/1 -> 3/20: 0", "0/1 -> 3/20: 3", @@ -1781,7 +1781,7 @@ exports[`renders shared tunes > shared tune 99 https://strudel.tidalcycles.org/? ] `; -exports[`renders shared tunes > shared tune 101 https://strudel.tidalcycles.org/?ISMZvMGByNst 1`] = ` +exports[`renders shared tunes > shared tune 101 https://strudel.cc/?ISMZvMGByNst 1`] = ` [ "0/1 -> 1/3: bd", "1/3 -> 2/3: hh", @@ -1799,7 +1799,7 @@ exports[`renders shared tunes > shared tune 101 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 102 https://strudel.tidalcycles.org/?PDjOPOnV3JR6 1`] = ` +exports[`renders shared tunes > shared tune 102 https://strudel.cc/?PDjOPOnV3JR6 1`] = ` [ "0/1 -> 1/2: {\\"note\\":\\"G1\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":1500}", "1/2 -> 1/1: {\\"note\\":\\"G1\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":1500}", @@ -1826,7 +1826,7 @@ exports[`renders shared tunes > shared tune 102 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 103 https://strudel.tidalcycles.org/?u7qAdlwp3Qig 1`] = ` +exports[`renders shared tunes > shared tune 103 https://strudel.cc/?u7qAdlwp3Qig 1`] = ` [ "1/2 -> 1/1: {\\"note\\":\\"F3\\"}", "1/2 -> 1/1: {\\"note\\":\\"C4\\"}", @@ -1845,7 +1845,7 @@ exports[`renders shared tunes > shared tune 103 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 104 https://strudel.tidalcycles.org/?OhjceF8ZvYk8 1`] = ` +exports[`renders shared tunes > shared tune 104 https://strudel.cc/?OhjceF8ZvYk8 1`] = ` [ "1/8 -> 1/4: {\\"n\\":\\"D1\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1699.6897509708342}", "1/8 -> 1/4: {\\"n\\":\\"D1\\",\\"s\\":\\"square\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1699.6897509708342}", @@ -1915,7 +1915,7 @@ exports[`renders shared tunes > shared tune 104 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 105 https://strudel.tidalcycles.org/?4yn-ch_d1hnA 1`] = ` +exports[`renders shared tunes > shared tune 105 https://strudel.cc/?4yn-ch_d1hnA 1`] = ` [ "0/1 -> 1/4: C3", "0/1 -> 1/4: G3", @@ -1931,7 +1931,7 @@ exports[`renders shared tunes > shared tune 105 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 106 https://strudel.tidalcycles.org/?2M1kLwRf6d-Q 1`] = ` +exports[`renders shared tunes > shared tune 106 https://strudel.cc/?2M1kLwRf6d-Q 1`] = ` [ "0/1 -> 1/4: C3", "0/1 -> 1/4: G3", @@ -1947,7 +1947,7 @@ exports[`renders shared tunes > shared tune 106 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 107 https://strudel.tidalcycles.org/?XggCKeAH5uLK 1`] = ` +exports[`renders shared tunes > shared tune 107 https://strudel.cc/?XggCKeAH5uLK 1`] = ` [ "0/1 -> 1/4: C3", "0/1 -> 1/4: G3", @@ -1963,7 +1963,7 @@ exports[`renders shared tunes > shared tune 107 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 108 https://strudel.tidalcycles.org/?BH_o1f7vPxd3 1`] = ` +exports[`renders shared tunes > shared tune 108 https://strudel.cc/?BH_o1f7vPxd3 1`] = ` [ "0/1 -> 3/4: c3", "3/4 -> 1/1: eb3", @@ -1975,7 +1975,7 @@ exports[`renders shared tunes > shared tune 108 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 109 https://strudel.tidalcycles.org/?OdgRkOYpGrgF 1`] = ` +exports[`renders shared tunes > shared tune 109 https://strudel.cc/?OdgRkOYpGrgF 1`] = ` [ "0/1 -> 3/20: 0", "0/1 -> 3/20: 3", @@ -1994,9 +1994,9 @@ exports[`renders shared tunes > shared tune 109 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 110 https://strudel.tidalcycles.org/?Yizg74mNj_6L 1`] = `[]`; +exports[`renders shared tunes > shared tune 110 https://strudel.cc/?Yizg74mNj_6L 1`] = `[]`; -exports[`renders shared tunes > shared tune 113 https://strudel.tidalcycles.org/?X7Vln6QqABL2 1`] = ` +exports[`renders shared tunes > shared tune 113 https://strudel.cc/?X7Vln6QqABL2 1`] = ` [ "0/1 -> 1/3: {\\"value\\":0,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":null}", "1/3 -> 2/3: {\\"value\\":5,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":null}", @@ -2004,7 +2004,7 @@ exports[`renders shared tunes > shared tune 113 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 114 https://strudel.tidalcycles.org/?ILwq_zKFMNN5 1`] = ` +exports[`renders shared tunes > shared tune 114 https://strudel.cc/?ILwq_zKFMNN5 1`] = ` [ "0/1 -> 1/3: bd", "1/3 -> 2/3: hh", @@ -2022,7 +2022,7 @@ exports[`renders shared tunes > shared tune 114 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 115 https://strudel.tidalcycles.org/?CSzelQFTGerr 1`] = ` +exports[`renders shared tunes > shared tune 115 https://strudel.cc/?CSzelQFTGerr 1`] = ` [ "0/1 -> 63/220: f#6", "7/22 -> 133/220: f#6", @@ -2040,7 +2040,7 @@ exports[`renders shared tunes > shared tune 115 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 116 https://strudel.tidalcycles.org/?j5oC-CSjk7Kq 1`] = ` +exports[`renders shared tunes > shared tune 116 https://strudel.cc/?j5oC-CSjk7Kq 1`] = ` [ "0/1 -> 1/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}", "0/1 -> 1/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}", @@ -2055,7 +2055,7 @@ exports[`renders shared tunes > shared tune 116 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 117 https://strudel.tidalcycles.org/?waoDkqtNx0Xe 1`] = ` +exports[`renders shared tunes > shared tune 117 https://strudel.cc/?waoDkqtNx0Xe 1`] = ` [ "0/1 -> 1/2: c1", "1/2 -> 1/1: c1", @@ -2071,7 +2071,7 @@ exports[`renders shared tunes > shared tune 117 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 118 https://strudel.tidalcycles.org/?hHssvZuQ9eU- 1`] = ` +exports[`renders shared tunes > shared tune 118 https://strudel.cc/?hHssvZuQ9eU- 1`] = ` [ "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}", "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}", @@ -2348,9 +2348,9 @@ exports[`renders shared tunes > shared tune 118 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 119 https://strudel.tidalcycles.org/?YjCJ3DhT9u4M 1`] = `[]`; +exports[`renders shared tunes > shared tune 119 https://strudel.cc/?YjCJ3DhT9u4M 1`] = `[]`; -exports[`renders shared tunes > shared tune 121 https://strudel.tidalcycles.org/?wrcmJLYiesgF 1`] = ` +exports[`renders shared tunes > shared tune 121 https://strudel.cc/?wrcmJLYiesgF 1`] = ` [ "0/1 -> 19/80: e5", "1/2 -> 79/120: d5", @@ -2363,7 +2363,7 @@ exports[`renders shared tunes > shared tune 121 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 122 https://strudel.tidalcycles.org/?tiYDzBGIFjYV 1`] = ` +exports[`renders shared tunes > shared tune 122 https://strudel.cc/?tiYDzBGIFjYV 1`] = ` [ "0/1 -> 2/1: {\\"note\\":\\"C3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4722222222222222}", "0/1 -> 2/1: {\\"note\\":\\"E3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4907407407407407}", @@ -2371,7 +2371,7 @@ exports[`renders shared tunes > shared tune 122 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 123 https://strudel.tidalcycles.org/?Y1nz8H0a10CF 1`] = ` +exports[`renders shared tunes > shared tune 123 https://strudel.cc/?Y1nz8H0a10CF 1`] = ` [ "-1666666666666667/7500000000000000 -> 2/9: G3", "0/1 -> 4/3: E3", @@ -2394,7 +2394,7 @@ exports[`renders shared tunes > shared tune 123 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 124 https://strudel.tidalcycles.org/?SZDwdxhme28o 1`] = ` +exports[`renders shared tunes > shared tune 124 https://strudel.cc/?SZDwdxhme28o 1`] = ` [ "11/32 -> 1/2: {\\"n\\":\\"Bb3\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.931367192988896}", "11/32 -> 1/2: {\\"n\\":\\"D4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.931367192988896}", @@ -2448,7 +2448,7 @@ exports[`renders shared tunes > shared tune 124 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 125 https://strudel.tidalcycles.org/?m7Uyh34tQwqi 1`] = ` +exports[`renders shared tunes > shared tune 125 https://strudel.cc/?m7Uyh34tQwqi 1`] = ` [ "11/32 -> 1/2: {\\"n\\":\\"Bb3\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.931367192988896}", "11/32 -> 1/2: {\\"n\\":\\"D4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.931367192988896}", @@ -2502,7 +2502,7 @@ exports[`renders shared tunes > shared tune 125 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 126 https://strudel.tidalcycles.org/?P9d8_AXWM7ef 1`] = ` +exports[`renders shared tunes > shared tune 126 https://strudel.cc/?P9d8_AXWM7ef 1`] = ` [ "0/1 -> 3/4: c3", "3/4 -> 1/1: eb3", @@ -2514,7 +2514,7 @@ exports[`renders shared tunes > shared tune 126 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 127 https://strudel.tidalcycles.org/?FM1koCTLh1IM 1`] = ` +exports[`renders shared tunes > shared tune 127 https://strudel.cc/?FM1koCTLh1IM 1`] = ` [ "0/1 -> 1/10: C3", "0/1 -> 1/10: E3", @@ -2533,7 +2533,7 @@ exports[`renders shared tunes > shared tune 127 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 128 https://strudel.tidalcycles.org/?1SAqiKiVI8r- 1`] = ` +exports[`renders shared tunes > shared tune 128 https://strudel.cc/?1SAqiKiVI8r- 1`] = ` [ "0/1 -> 3/20: 0", "0/1 -> 3/20: 3", @@ -2552,7 +2552,7 @@ exports[`renders shared tunes > shared tune 128 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 129 https://strudel.tidalcycles.org/?Pds79yD4qQKJ 1`] = ` +exports[`renders shared tunes > shared tune 129 https://strudel.cc/?Pds79yD4qQKJ 1`] = ` [ "0/1 -> 1/5: e4", "2/5 -> 3/5: e3", @@ -2560,7 +2560,7 @@ exports[`renders shared tunes > shared tune 129 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 130 https://strudel.tidalcycles.org/?DYJx5C-3NrV7 1`] = ` +exports[`renders shared tunes > shared tune 130 https://strudel.cc/?DYJx5C-3NrV7 1`] = ` [ "0/1 -> 5/26: {\\"note\\":\\"B2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.46759259259259256}", "5/13 -> 15/26: {\\"note\\":\\"B2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.46759259259259256}", @@ -2588,7 +2588,7 @@ exports[`renders shared tunes > shared tune 130 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 131 https://strudel.tidalcycles.org/?9_BPqHIO4rPv 1`] = ` +exports[`renders shared tunes > shared tune 131 https://strudel.cc/?9_BPqHIO4rPv 1`] = ` [ "0/1 -> 27/40: {\\"note\\":\\"Db4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}", "0/1 -> 27/40: {\\"note\\":\\"Ab4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5648148148148149}", @@ -2629,7 +2629,7 @@ exports[`renders shared tunes > shared tune 131 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 132 https://strudel.tidalcycles.org/?FwkQ0EG3Kkwm 1`] = ` +exports[`renders shared tunes > shared tune 132 https://strudel.cc/?FwkQ0EG3Kkwm 1`] = ` [ "0/1 -> 1/2: Bb2", "0/1 -> 1/2: F3", @@ -2653,7 +2653,7 @@ exports[`renders shared tunes > shared tune 132 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 133 https://strudel.tidalcycles.org/?Cb_YrHpHKkJN 1`] = ` +exports[`renders shared tunes > shared tune 133 https://strudel.cc/?Cb_YrHpHKkJN 1`] = ` [ "0/1 -> 1/8: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2206.5338497506646,\\"resonance\\":10,\\"clip\\":1}", "3/8 -> 1/2: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2827.098521493671,\\"resonance\\":10,\\"clip\\":1}", @@ -2696,7 +2696,7 @@ exports[`renders shared tunes > shared tune 133 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 134 https://strudel.tidalcycles.org/?SkqbkK705Olu 1`] = ` +exports[`renders shared tunes > shared tune 134 https://strudel.cc/?SkqbkK705Olu 1`] = ` [ "7/8 -> 1/1: {\\"s\\":\\"hi\\"}", "5/8 -> 3/4: {\\"s\\":\\"lo\\"}", @@ -2706,7 +2706,7 @@ exports[`renders shared tunes > shared tune 134 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 135 https://strudel.tidalcycles.org/?-hyad472v8by 1`] = ` +exports[`renders shared tunes > shared tune 135 https://strudel.cc/?-hyad472v8by 1`] = ` [ "0/1 -> 3/8: {\\"gain\\":1,\\"s\\":\\"lo\\",\\"speed\\":2}", "3/8 -> 3/4: {\\"gain\\":0.5,\\"s\\":\\"lo\\",\\"speed\\":2}", @@ -2715,7 +2715,7 @@ exports[`renders shared tunes > shared tune 135 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 136 https://strudel.tidalcycles.org/?BApYR1gphKJ7 1`] = ` +exports[`renders shared tunes > shared tune 136 https://strudel.cc/?BApYR1gphKJ7 1`] = ` [ "0/1 -> 3/8: {\\"gain\\":1,\\"s\\":\\"lo\\",\\"speed\\":2,\\"release\\":0.2,\\"clip\\":1}", "3/8 -> 3/4: {\\"gain\\":0.5,\\"s\\":\\"lo\\",\\"speed\\":2,\\"release\\":0.2,\\"clip\\":1}", @@ -2724,7 +2724,7 @@ exports[`renders shared tunes > shared tune 136 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 137 https://strudel.tidalcycles.org/?wK1UQcYoYpoD 1`] = ` +exports[`renders shared tunes > shared tune 137 https://strudel.cc/?wK1UQcYoYpoD 1`] = ` [ "0/1 -> 3/16: {\\"gain\\":1,\\"s\\":\\"lo\\",\\"speed\\":1,\\"hcutoff\\":1000,\\"resonance\\":0.2}", "3/16 -> 3/8: {\\"gain\\":0.5,\\"s\\":\\"lo\\",\\"speed\\":1,\\"hcutoff\\":1000,\\"resonance\\":0.2}", @@ -2742,7 +2742,7 @@ exports[`renders shared tunes > shared tune 137 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 138 https://strudel.tidalcycles.org/?lB2HuXEXyTex 1`] = ` +exports[`renders shared tunes > shared tune 138 https://strudel.cc/?lB2HuXEXyTex 1`] = ` [ "0/1 -> 6275565/1452119: A3", "-9/8 -> 20400609/11616952: G4", @@ -2753,13 +2753,13 @@ exports[`renders shared tunes > shared tune 138 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 139 https://strudel.tidalcycles.org/?WUxQVJIu27Nz 1`] = ` +exports[`renders shared tunes > shared tune 139 https://strudel.cc/?WUxQVJIu27Nz 1`] = ` [ "0/1 -> 1/1: {\\"gain\\":1,\\"s\\":\\"lo\\",\\"cps\\":1.1}", ] `; -exports[`renders shared tunes > shared tune 140 https://strudel.tidalcycles.org/?ZQ-ce-Qj-nuP 1`] = ` +exports[`renders shared tunes > shared tune 140 https://strudel.cc/?ZQ-ce-Qj-nuP 1`] = ` [ "0/1 -> 1/2: {\\"note\\":\\"F3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.49537037037037035}", "1/4 -> 3/4: {\\"note\\":\\"F2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4398148148148148}", @@ -2770,7 +2770,7 @@ exports[`renders shared tunes > shared tune 140 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 141 https://strudel.tidalcycles.org/?tBPkuxuje0iY 1`] = ` +exports[`renders shared tunes > shared tune 141 https://strudel.cc/?tBPkuxuje0iY 1`] = ` [ "0/1 -> 1/3: bd", "1/3 -> 2/3: hh", @@ -2788,7 +2788,7 @@ exports[`renders shared tunes > shared tune 141 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 142 https://strudel.tidalcycles.org/?ak6ZpErh0hl1 1`] = ` +exports[`renders shared tunes > shared tune 142 https://strudel.cc/?ak6ZpErh0hl1 1`] = ` [ "0/1 -> 1/8: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2206.5338497506646,\\"resonance\\":10,\\"clip\\":1}", "3/8 -> 1/2: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2827.098521493671,\\"resonance\\":10,\\"clip\\":1}", @@ -2831,7 +2831,7 @@ exports[`renders shared tunes > shared tune 142 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 143 https://strudel.tidalcycles.org/?U9J_c-Insgbc 1`] = ` +exports[`renders shared tunes > shared tune 143 https://strudel.cc/?U9J_c-Insgbc 1`] = ` [ "0/1 -> 63/220: f#6", "7/22 -> 133/220: f#6", @@ -2849,7 +2849,7 @@ exports[`renders shared tunes > shared tune 143 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 144 https://strudel.tidalcycles.org/?y2FS3Xvqv68d 1`] = ` +exports[`renders shared tunes > shared tune 144 https://strudel.cc/?y2FS3Xvqv68d 1`] = ` [ "0/1 -> 63/220: {\\"note\\":\\"f#6\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6666666666666667}", "7/22 -> 133/220: {\\"note\\":\\"f#6\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6666666666666667}", @@ -2867,7 +2867,7 @@ exports[`renders shared tunes > shared tune 144 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 145 https://strudel.tidalcycles.org/?d7-gUjyRbKP9 1`] = ` +exports[`renders shared tunes > shared tune 145 https://strudel.cc/?d7-gUjyRbKP9 1`] = ` [ "0/1 -> 6/25: {\\"note\\":60,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}", "0/1 -> 6/25: {\\"note\\":63,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}", @@ -2881,7 +2881,7 @@ exports[`renders shared tunes > shared tune 145 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 146 https://strudel.tidalcycles.org/?lqXKPxgm_j0a 1`] = ` +exports[`renders shared tunes > shared tune 146 https://strudel.cc/?lqXKPxgm_j0a 1`] = ` [ "-38/5 -> 2/5: db3", "-38/5 -> 2/5: eb3", @@ -2905,7 +2905,7 @@ exports[`renders shared tunes > shared tune 146 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 147 https://strudel.tidalcycles.org/?5obY2LrCcbZI 1`] = ` +exports[`renders shared tunes > shared tune 147 https://strudel.cc/?5obY2LrCcbZI 1`] = ` [ "1/3 -> 59/120: {\\"n\\":\\"c5\\",\\"s\\":\\"Oboe: Reed\\"}", "1/2 -> 49/60: {\\"n\\":\\"d5\\",\\"s\\":\\"Oboe: Reed\\"}", @@ -2919,7 +2919,7 @@ exports[`renders shared tunes > shared tune 147 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 148 https://strudel.tidalcycles.org/?8262D2qsUNtO 1`] = ` +exports[`renders shared tunes > shared tune 148 https://strudel.cc/?8262D2qsUNtO 1`] = ` [ "0/1 -> 1/4: {\\"n\\":\\"c3\\",\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.5,\\"cutoff\\":1275.5812898145155}", "1/4 -> 1/2: {\\"n\\":\\"eb3\\",\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.5,\\"cutoff\\":1600.013209717642}", @@ -2943,7 +2943,7 @@ exports[`renders shared tunes > shared tune 148 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 149 https://strudel.tidalcycles.org/?9PUNz9fqWo2F 1`] = ` +exports[`renders shared tunes > shared tune 149 https://strudel.cc/?9PUNz9fqWo2F 1`] = ` [ "15/41 -> 177/328: {\\"n\\":\\"c5\\",\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.4}", "45/82 -> 147/164: {\\"n\\":\\"d5\\",\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.4}", @@ -2963,7 +2963,7 @@ exports[`renders shared tunes > shared tune 149 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 150 https://strudel.tidalcycles.org/?wkDHhKIUtwY_ 1`] = ` +exports[`renders shared tunes > shared tune 150 https://strudel.cc/?wkDHhKIUtwY_ 1`] = ` [ "0/1 -> 65/12: {\\"n\\":\\"d#5\\",\\"s\\":\\"Piccolo: Pipe\\",\\"gain\\":0.35}", "0/1 -> 65/12: {\\"n\\":56,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.15}", @@ -2983,7 +2983,7 @@ exports[`renders shared tunes > shared tune 150 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 151 https://strudel.tidalcycles.org/?Zj9qfA1PhcDS 1`] = ` +exports[`renders shared tunes > shared tune 151 https://strudel.cc/?Zj9qfA1PhcDS 1`] = ` [ "0/1 -> 65/12: {\\"n\\":\\"d#5\\",\\"s\\":\\"Piccolo: Pipe\\",\\"gain\\":0.35}", "0/1 -> 65/12: {\\"n\\":56,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.15}", @@ -3003,7 +3003,7 @@ exports[`renders shared tunes > shared tune 151 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 152 https://strudel.tidalcycles.org/?p_G-4ZB295BP 1`] = ` +exports[`renders shared tunes > shared tune 152 https://strudel.cc/?p_G-4ZB295BP 1`] = ` [ "0/1 -> 1/8: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2206.5338497506646,\\"resonance\\":10,\\"clip\\":1}", "3/8 -> 1/2: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2827.098521493671,\\"resonance\\":10,\\"clip\\":1}", @@ -3046,7 +3046,7 @@ exports[`renders shared tunes > shared tune 152 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 153 https://strudel.tidalcycles.org/?NWLKF4C7o4EX 1`] = ` +exports[`renders shared tunes > shared tune 153 https://strudel.cc/?NWLKF4C7o4EX 1`] = ` [ "0/1 -> 1/2: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}", "0/1 -> 1/2: {\\"note\\":\\"B4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5787037037037037}", @@ -3061,7 +3061,7 @@ exports[`renders shared tunes > shared tune 153 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 154 https://strudel.tidalcycles.org/?XhNBCyuzIVOD 1`] = ` +exports[`renders shared tunes > shared tune 154 https://strudel.cc/?XhNBCyuzIVOD 1`] = ` [ "0/1 -> 1457/3000: {\\"n\\":\\"c#6\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.18}", "47/90 -> 13771/18000: {\\"n\\":\\"f5\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.18}", @@ -3084,7 +3084,7 @@ exports[`renders shared tunes > shared tune 154 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 155 https://strudel.tidalcycles.org/?AL73np8C7Fe7 1`] = ` +exports[`renders shared tunes > shared tune 155 https://strudel.cc/?AL73np8C7Fe7 1`] = ` [ "0/1 -> 589/1200: {\\"n\\":\\"C#5\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.2}", "19/36 -> 5567/7200: {\\"n\\":\\"F4\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.2}", @@ -3110,7 +3110,7 @@ exports[`renders shared tunes > shared tune 155 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 156 https://strudel.tidalcycles.org/?89gJxIK34OPK 1`] = ` +exports[`renders shared tunes > shared tune 156 https://strudel.cc/?89gJxIK34OPK 1`] = ` [ "0/1 -> 3/2: {\\"s\\":\\"bd\\",\\"speed\\":0.7519542165100574}", "3/4 -> 3/2: {\\"s\\":\\"sd\\",\\"speed\\":0.7931522866332671}", @@ -3167,7 +3167,7 @@ exports[`renders shared tunes > shared tune 156 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 157 https://strudel.tidalcycles.org/?8g4oMFkLYMXZ 1`] = ` +exports[`renders shared tunes > shared tune 157 https://strudel.cc/?8g4oMFkLYMXZ 1`] = ` [ "0/1 -> 1/10: C3", "0/1 -> 1/10: E3", @@ -3186,7 +3186,7 @@ exports[`renders shared tunes > shared tune 157 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 158 https://strudel.tidalcycles.org/?NIQF-VGYdB83 1`] = ` +exports[`renders shared tunes > shared tune 158 https://strudel.cc/?NIQF-VGYdB83 1`] = ` [ "0/1 -> 1/2: c1", "1/2 -> 1/1: c1", @@ -3202,7 +3202,7 @@ exports[`renders shared tunes > shared tune 158 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 159 https://strudel.tidalcycles.org/?KOAtvzaJcmmY 1`] = ` +exports[`renders shared tunes > shared tune 159 https://strudel.cc/?KOAtvzaJcmmY 1`] = ` [ "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}", "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}", @@ -3479,7 +3479,7 @@ exports[`renders shared tunes > shared tune 159 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 160 https://strudel.tidalcycles.org/?pK517-FAktOc 1`] = ` +exports[`renders shared tunes > shared tune 160 https://strudel.cc/?pK517-FAktOc 1`] = ` [ "0/1 -> 4/3: B4", "0/1 -> 1/3: C3", @@ -3488,7 +3488,7 @@ exports[`renders shared tunes > shared tune 160 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 161 https://strudel.tidalcycles.org/?H3BbA0AovtKs 1`] = ` +exports[`renders shared tunes > shared tune 161 https://strudel.cc/?H3BbA0AovtKs 1`] = ` [ "0/1 -> 5/26: {\\"note\\":\\"B2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.46759259259259256}", "5/13 -> 15/26: {\\"note\\":\\"B2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.46759259259259256}", @@ -3516,7 +3516,7 @@ exports[`renders shared tunes > shared tune 161 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 162 https://strudel.tidalcycles.org/?Y9RZADkxt8UL 1`] = ` +exports[`renders shared tunes > shared tune 162 https://strudel.cc/?Y9RZADkxt8UL 1`] = ` [ "0/1 -> 65/12: {\\"n\\":\\"d#5\\",\\"s\\":\\"Piccolo: Pipe\\",\\"gain\\":0.35}", "0/1 -> 65/12: {\\"n\\":56,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.15}", @@ -3536,7 +3536,7 @@ exports[`renders shared tunes > shared tune 162 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 163 https://strudel.tidalcycles.org/?bxwipc2kqreB 1`] = ` +exports[`renders shared tunes > shared tune 163 https://strudel.cc/?bxwipc2kqreB 1`] = ` [ "1/2 -> 1/1: a4", "3/4 -> 1/1: a1", @@ -3546,7 +3546,7 @@ exports[`renders shared tunes > shared tune 163 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 164 https://strudel.tidalcycles.org/?qGimkQi_nszY 1`] = ` +exports[`renders shared tunes > shared tune 164 https://strudel.cc/?qGimkQi_nszY 1`] = ` [ "47/60 -> 6157/6000: {\\"n\\":\\"c#5\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.18}", "47/90 -> 13771/18000: {\\"n\\":\\"d#5\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.18}", @@ -3570,7 +3570,7 @@ exports[`renders shared tunes > shared tune 164 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 165 https://strudel.tidalcycles.org/?DVESSaRggtn_ 1`] = ` +exports[`renders shared tunes > shared tune 165 https://strudel.cc/?DVESSaRggtn_ 1`] = ` [ "0/1 -> 6275565/1452119: A3", "-9/8 -> 20400609/11616952: G4", @@ -3581,7 +3581,7 @@ exports[`renders shared tunes > shared tune 165 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 166 https://strudel.tidalcycles.org/?CHh9ZGJxiWnm 1`] = ` +exports[`renders shared tunes > shared tune 166 https://strudel.cc/?CHh9ZGJxiWnm 1`] = ` [ "1/8 -> 1/4: {\\"n\\":\\"D1\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1699.6897509708342}", "1/8 -> 1/4: {\\"n\\":\\"D1\\",\\"s\\":\\"square\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1699.6897509708342}", @@ -3651,7 +3651,7 @@ exports[`renders shared tunes > shared tune 166 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 167 https://strudel.tidalcycles.org/?7C7fQJ7ENNd3 1`] = ` +exports[`renders shared tunes > shared tune 167 https://strudel.cc/?7C7fQJ7ENNd3 1`] = ` [ "0/1 -> 1/4: {\\"s\\":\\"hh\\"}", "1/4 -> 1/2: {\\"s\\":\\"hh\\"}", @@ -3660,7 +3660,7 @@ exports[`renders shared tunes > shared tune 167 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 168 https://strudel.tidalcycles.org/?VGsjmHzmkMz0 1`] = ` +exports[`renders shared tunes > shared tune 168 https://strudel.cc/?VGsjmHzmkMz0 1`] = ` [ "1/4 -> 1/2: {\\"s\\":\\"bd\\"}", "0/1 -> 1/4: {\\"s\\":\\"hh\\"}", @@ -3669,7 +3669,7 @@ exports[`renders shared tunes > shared tune 168 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 169 https://strudel.tidalcycles.org/?4QSBDxgdgAIr 1`] = ` +exports[`renders shared tunes > shared tune 169 https://strudel.cc/?4QSBDxgdgAIr 1`] = ` [ "1/4 -> 1/2: {\\"s\\":\\"bd\\"}", "0/1 -> 1/12: {\\"s\\":\\"hh\\"}", @@ -3684,7 +3684,7 @@ exports[`renders shared tunes > shared tune 169 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 170 https://strudel.tidalcycles.org/?_1ClWbH9kSKC 1`] = ` +exports[`renders shared tunes > shared tune 170 https://strudel.cc/?_1ClWbH9kSKC 1`] = ` [ "0/1 -> 2/9: {\\"s\\":\\"hh\\"}", "2/9 -> 4/9: {\\"s\\":\\"hh\\"}", @@ -3695,7 +3695,7 @@ exports[`renders shared tunes > shared tune 170 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 171 https://strudel.tidalcycles.org/?nmwsMPG16O1L 1`] = ` +exports[`renders shared tunes > shared tune 171 https://strudel.cc/?nmwsMPG16O1L 1`] = ` [ "0/1 -> 1/4: 83.8125", "3/4 -> 1/1: 82.6875", @@ -3707,7 +3707,7 @@ exports[`renders shared tunes > shared tune 171 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 172 https://strudel.tidalcycles.org/?DBp75NUfSxIn 1`] = ` +exports[`renders shared tunes > shared tune 172 https://strudel.cc/?DBp75NUfSxIn 1`] = ` [ "0/1 -> 1/4: {\\"note\\":57}", "0/1 -> 1/4: {\\"note\\":61}", @@ -3724,7 +3724,7 @@ exports[`renders shared tunes > shared tune 172 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 173 https://strudel.tidalcycles.org/?bdsxEcjr7fkg 1`] = ` +exports[`renders shared tunes > shared tune 173 https://strudel.cc/?bdsxEcjr7fkg 1`] = ` [ "0/1 -> 1/1: {\\"n\\":\\"a1\\",\\"decay\\":0.25,\\"sustain\\":0,\\"s\\":\\"sawtooth\\",\\"gain\\":0.4,\\"vowel\\":\\"a\\"}", "-3/8 -> 1/8: {\\"n\\":52,\\"decay\\":0.25,\\"sustain\\":0,\\"s\\":\\"sawtooth\\",\\"gain\\":0.4,\\"vowel\\":\\"a\\"}", @@ -3733,7 +3733,7 @@ exports[`renders shared tunes > shared tune 173 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 174 https://strudel.tidalcycles.org/?IuUGlGkdiPX- 1`] = ` +exports[`renders shared tunes > shared tune 174 https://strudel.cc/?IuUGlGkdiPX- 1`] = ` [ "1/4 -> 1/2: {\\"s\\":\\"hh\\",\\"coarse\\":16,\\"speed\\":0.7285963821098448}", "3/4 -> 1/1: {\\"s\\":\\"hh\\",\\"coarse\\":16,\\"shape\\":0.8,\\"speed\\":0.80224046928206}", @@ -3746,7 +3746,7 @@ exports[`renders shared tunes > shared tune 174 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 175 https://strudel.tidalcycles.org/?1QH3HPhZ1uad 1`] = ` +exports[`renders shared tunes > shared tune 175 https://strudel.cc/?1QH3HPhZ1uad 1`] = ` [ "0/1 -> 1/2: c1", "1/2 -> 1/1: c1", @@ -3762,7 +3762,7 @@ exports[`renders shared tunes > shared tune 175 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 176 https://strudel.tidalcycles.org/?hxJZG7SS71HP 1`] = ` +exports[`renders shared tunes > shared tune 176 https://strudel.cc/?hxJZG7SS71HP 1`] = ` [ "0/1 -> 1/2: {\\"note\\":\\"F3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.49537037037037035}", "1/4 -> 3/4: {\\"note\\":\\"F2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4398148148148148}", @@ -3773,7 +3773,7 @@ exports[`renders shared tunes > shared tune 176 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 177 https://strudel.tidalcycles.org/?EoVX7HjwHB8r 1`] = ` +exports[`renders shared tunes > shared tune 177 https://strudel.cc/?EoVX7HjwHB8r 1`] = ` [ "0/1 -> 1/2: Bb2", "0/1 -> 1/2: F3", @@ -3797,7 +3797,7 @@ exports[`renders shared tunes > shared tune 177 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 178 https://strudel.tidalcycles.org/?tVIePZOlbUFE 1`] = ` +exports[`renders shared tunes > shared tune 178 https://strudel.cc/?tVIePZOlbUFE 1`] = ` [ "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}", "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}", @@ -4074,7 +4074,7 @@ exports[`renders shared tunes > shared tune 178 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 179 https://strudel.tidalcycles.org/?P_Fi2yRHrXHj 1`] = ` +exports[`renders shared tunes > shared tune 179 https://strudel.cc/?P_Fi2yRHrXHj 1`] = ` [ "0/1 -> 1/8: {\\"freq\\":55.33,\\"s\\":\\"sawtooth\\"}", "0/1 -> 1/8: {\\"freq\\":54.725,\\"s\\":\\"sawtooth\\"}", @@ -4102,7 +4102,7 @@ exports[`renders shared tunes > shared tune 179 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 180 https://strudel.tidalcycles.org/?brh8FpBbbH-- 1`] = ` +exports[`renders shared tunes > shared tune 180 https://strudel.cc/?brh8FpBbbH-- 1`] = ` [ "0/1 -> 1/1: {\\"s\\":\\"bd\\"}", "1/2 -> 1/1: {\\"s\\":\\"sd\\"}", @@ -4115,7 +4115,7 @@ exports[`renders shared tunes > shared tune 180 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 181 https://strudel.tidalcycles.org/?Uw7K4l1pIVUt 1`] = ` +exports[`renders shared tunes > shared tune 181 https://strudel.cc/?Uw7K4l1pIVUt 1`] = ` [ "0/1 -> 1/3: bd", "1/3 -> 2/3: hh", @@ -4133,7 +4133,7 @@ exports[`renders shared tunes > shared tune 181 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 182 https://strudel.tidalcycles.org/?dhBbMccpPgg8 1`] = ` +exports[`renders shared tunes > shared tune 182 https://strudel.cc/?dhBbMccpPgg8 1`] = ` [ "0/1 -> 1/2: A3", "1/2 -> 3/4: D4", @@ -4144,7 +4144,7 @@ exports[`renders shared tunes > shared tune 182 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 183 https://strudel.tidalcycles.org/?U5sIL_DhqTip 1`] = ` +exports[`renders shared tunes > shared tune 183 https://strudel.cc/?U5sIL_DhqTip 1`] = ` [ "-1666666666666667/7500000000000000 -> 2/9: G3", "0/1 -> 4/3: E3", @@ -4167,7 +4167,7 @@ exports[`renders shared tunes > shared tune 183 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 184 https://strudel.tidalcycles.org/?irMD_KH0ICbf 1`] = ` +exports[`renders shared tunes > shared tune 184 https://strudel.cc/?irMD_KH0ICbf 1`] = ` [ "0/1 -> 27/40: {\\"note\\":\\"Db4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}", "0/1 -> 27/40: {\\"note\\":\\"Ab4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5648148148148149}", @@ -4208,13 +4208,13 @@ exports[`renders shared tunes > shared tune 184 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 185 https://strudel.tidalcycles.org/?A6Mqjuhn1Wpr 1`] = `[]`; +exports[`renders shared tunes > shared tune 185 https://strudel.cc/?A6Mqjuhn1Wpr 1`] = `[]`; -exports[`renders shared tunes > shared tune 186 https://strudel.tidalcycles.org/?2-JbRPIoRj7X 1`] = `[]`; +exports[`renders shared tunes > shared tune 186 https://strudel.cc/?2-JbRPIoRj7X 1`] = `[]`; -exports[`renders shared tunes > shared tune 187 https://strudel.tidalcycles.org/?wVDgPVVgbrSK 1`] = `[]`; +exports[`renders shared tunes > shared tune 187 https://strudel.cc/?wVDgPVVgbrSK 1`] = `[]`; -exports[`renders shared tunes > shared tune 188 https://strudel.tidalcycles.org/?z0OoCML7DPQb 1`] = ` +exports[`renders shared tunes > shared tune 188 https://strudel.cc/?z0OoCML7DPQb 1`] = ` [ "0/1 -> 1/1: bd", "0/1 -> 1/4: hh", @@ -4225,7 +4225,7 @@ exports[`renders shared tunes > shared tune 188 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 189 https://strudel.tidalcycles.org/?SWekIFXDlrLE 1`] = ` +exports[`renders shared tunes > shared tune 189 https://strudel.cc/?SWekIFXDlrLE 1`] = ` [ "0/1 -> 1/4: {\\"note\\":\\"e4\\"}", "1/4 -> 1/2: {\\"note\\":\\"c4\\"}", @@ -4244,20 +4244,20 @@ exports[`renders shared tunes > shared tune 189 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 190 https://strudel.tidalcycles.org/?70M98P_ZVSJe 1`] = ` +exports[`renders shared tunes > shared tune 190 https://strudel.cc/?70M98P_ZVSJe 1`] = ` [ "0/1 -> 1/2: {\\"s\\":\\"hh\\",\\"begin\\":0,\\"end\\":0.25}", "1/2 -> 1/1: {\\"s\\":\\"hh\\",\\"begin\\":0.25,\\"end\\":0.5}", ] `; -exports[`renders shared tunes > shared tune 191 https://strudel.tidalcycles.org/?SB-hFm0uROHV 1`] = ` +exports[`renders shared tunes > shared tune 191 https://strudel.cc/?SB-hFm0uROHV 1`] = ` [ "0/1 -> 1/1: {\\"s\\":\\"hh\\"}", ] `; -exports[`renders shared tunes > shared tune 192 https://strudel.tidalcycles.org/?t2KXoS_qssjD 1`] = ` +exports[`renders shared tunes > shared tune 192 https://strudel.cc/?t2KXoS_qssjD 1`] = ` [ "0/1 -> 1/4: {\\"s\\":\\"p\\",\\"begin\\":0,\\"end\\":0.0078125,\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"pan\\":0,\\"shape\\":0.5}", "1/4 -> 1/2: {\\"s\\":\\"p\\",\\"begin\\":0.0078125,\\"end\\":0.015625,\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"pan\\":0,\\"shape\\":0.5}", @@ -4270,7 +4270,7 @@ exports[`renders shared tunes > shared tune 192 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 193 https://strudel.tidalcycles.org/?k0435I3IQEH4 1`] = ` +exports[`renders shared tunes > shared tune 193 https://strudel.cc/?k0435I3IQEH4 1`] = ` [ "0/1 -> 3/4: F3", "3/4 -> 9/8: Ab3", @@ -4290,7 +4290,7 @@ exports[`renders shared tunes > shared tune 193 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 194 https://strudel.tidalcycles.org/?vDsUyH8IUJn6 1`] = ` +exports[`renders shared tunes > shared tune 194 https://strudel.cc/?vDsUyH8IUJn6 1`] = ` [ "0/1 -> 6/1: F3", "0/1 -> 6/1: Ab3", @@ -4299,7 +4299,7 @@ exports[`renders shared tunes > shared tune 194 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 195 https://strudel.tidalcycles.org/?YJ2iESN49BD6 1`] = ` +exports[`renders shared tunes > shared tune 195 https://strudel.cc/?YJ2iESN49BD6 1`] = ` [ "0/1 -> 3/16: {\\"s\\":\\"bd\\",\\"gain\\":0.7}", "3/16 -> 3/8: {\\"s\\":\\"bd\\",\\"gain\\":0.7}", @@ -4331,7 +4331,7 @@ exports[`renders shared tunes > shared tune 195 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 196 https://strudel.tidalcycles.org/?Z6fHLg-51AUc 1`] = ` +exports[`renders shared tunes > shared tune 196 https://strudel.cc/?Z6fHLg-51AUc 1`] = ` [ "0/1 -> 1/4: C3", "0/1 -> 1/4: G3", @@ -4347,7 +4347,7 @@ exports[`renders shared tunes > shared tune 196 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 197 https://strudel.tidalcycles.org/?GW0d4wRtDmED 1`] = ` +exports[`renders shared tunes > shared tune 197 https://strudel.cc/?GW0d4wRtDmED 1`] = ` [ "0/1 -> 1/2: c1", "1/2 -> 1/1: c1", @@ -4359,7 +4359,7 @@ exports[`renders shared tunes > shared tune 197 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 198 https://strudel.tidalcycles.org/?iliL_rgeboIg 1`] = ` +exports[`renders shared tunes > shared tune 198 https://strudel.cc/?iliL_rgeboIg 1`] = ` [ "0/1 -> 1/3: bd", "1/3 -> 2/3: hh", @@ -4377,7 +4377,7 @@ exports[`renders shared tunes > shared tune 198 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 199 https://strudel.tidalcycles.org/?IVv5q7W4BDiN 1`] = ` +exports[`renders shared tunes > shared tune 199 https://strudel.cc/?IVv5q7W4BDiN 1`] = ` [ "0/1 -> 1/32: {\\"note\\":48.07362922971432,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}", "1/32 -> 1/16: {\\"note\\":48.220843337648155,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}", @@ -4414,7 +4414,7 @@ exports[`renders shared tunes > shared tune 199 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 200 https://strudel.tidalcycles.org/?N6kOKngern0Y 1`] = ` +exports[`renders shared tunes > shared tune 200 https://strudel.cc/?N6kOKngern0Y 1`] = ` [ "0/1 -> 1/32: {\\"note\\":56.147247371137475,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}", "1/32 -> 1/16: {\\"note\\":56.441387381598005,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}", @@ -4451,7 +4451,7 @@ exports[`renders shared tunes > shared tune 200 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 201 https://strudel.tidalcycles.org/?wIjKrvTVPfgZ 1`] = ` +exports[`renders shared tunes > shared tune 201 https://strudel.cc/?wIjKrvTVPfgZ 1`] = ` [ "0/1 -> 1/16: {\\"note\\":47.370882377028465,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}", "1/16 -> 1/8: {\\"note\\":47.10302542895079,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}", @@ -4472,7 +4472,7 @@ exports[`renders shared tunes > shared tune 201 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 202 https://strudel.tidalcycles.org/?iqZ-ex573FFd 1`] = ` +exports[`renders shared tunes > shared tune 202 https://strudel.cc/?iqZ-ex573FFd 1`] = ` [ "0/1 -> 4/25: 52", "4/25 -> 8/25: 57", @@ -4484,7 +4484,7 @@ exports[`renders shared tunes > shared tune 202 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 203 https://strudel.tidalcycles.org/?0nlMXAIzgsdw 1`] = ` +exports[`renders shared tunes > shared tune 203 https://strudel.cc/?0nlMXAIzgsdw 1`] = ` [ "4/5 -> 16/15: {\\"note\\":\\"a6\\",\\"s\\":\\"piano\\"}", "0/1 -> 4/5: {\\"note\\":\\"ab5\\",\\"s\\":\\"piano\\"}", @@ -4495,7 +4495,7 @@ exports[`renders shared tunes > shared tune 203 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 204 https://strudel.tidalcycles.org/?-4PvWekokc4W 1`] = ` +exports[`renders shared tunes > shared tune 204 https://strudel.cc/?-4PvWekokc4W 1`] = ` [ "0/1 -> 1/8: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0,\\"end\\":0.0078125,\\"pan\\":0,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.4}", "1/8 -> 1/4: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0,\\"end\\":0.0078125,\\"pan\\":0,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.4}", @@ -4516,14 +4516,14 @@ exports[`renders shared tunes > shared tune 204 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 205 https://strudel.tidalcycles.org/?norqcTA-uOs0 1`] = ` +exports[`renders shared tunes > shared tune 205 https://strudel.cc/?norqcTA-uOs0 1`] = ` [ "0/1 -> 44/75: {\\"note\\":78,\\"s\\":\\"piano\\"}", "44/75 -> 88/75: {\\"note\\":71,\\"s\\":\\"piano\\"}", ] `; -exports[`renders shared tunes > shared tune 206 https://strudel.tidalcycles.org/?WrN_Cv-hQMo0 1`] = ` +exports[`renders shared tunes > shared tune 206 https://strudel.cc/?WrN_Cv-hQMo0 1`] = ` [ "0/1 -> 1/4: {\\"n\\":\\"c3\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":0.9}", "1/4 -> 1/2: {\\"n\\":\\"eb3\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":0.9}", @@ -4532,13 +4532,13 @@ exports[`renders shared tunes > shared tune 206 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 207 https://strudel.tidalcycles.org/?YFbUtVxvA82E 1`] = ` +exports[`renders shared tunes > shared tune 207 https://strudel.cc/?YFbUtVxvA82E 1`] = ` [ "0/1 -> 1/1: {\\"n\\":\\"[object Object][object Object]\\",\\"s\\":\\"sawtooth\\"}", ] `; -exports[`renders shared tunes > shared tune 208 https://strudel.tidalcycles.org/?SHdla152eDum 1`] = ` +exports[`renders shared tunes > shared tune 208 https://strudel.cc/?SHdla152eDum 1`] = ` [ "0/1 -> 3/13: {\\"n\\":\\"c3\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.1,\\"sustain\\":0.4,\\"release\\":1}", "3/13 -> 6/13: {\\"n\\":\\"eb3\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.1,\\"sustain\\":0.4,\\"release\\":1}", @@ -4548,7 +4548,7 @@ exports[`renders shared tunes > shared tune 208 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 209 https://strudel.tidalcycles.org/?Jk_4KtRME5zL 1`] = ` +exports[`renders shared tunes > shared tune 209 https://strudel.cc/?Jk_4KtRME5zL 1`] = ` [ "0/1 -> 1/10: {\\"n\\":\\"c3\\",\\"s\\":\\"sawtooth\\"}", "1/10 -> 1/5: {\\"n\\":\\"eb3\\",\\"s\\":\\"sawtooth\\"}", @@ -4563,7 +4563,7 @@ exports[`renders shared tunes > shared tune 209 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 210 https://strudel.tidalcycles.org/?xHaKTd1kTpCn 1`] = ` +exports[`renders shared tunes > shared tune 210 https://strudel.cc/?xHaKTd1kTpCn 1`] = ` [ "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}", "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":4}", @@ -4685,7 +4685,7 @@ exports[`renders shared tunes > shared tune 210 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 211 https://strudel.tidalcycles.org/?o5LLePbx8kiQ 1`] = ` +exports[`renders shared tunes > shared tune 211 https://strudel.cc/?o5LLePbx8kiQ 1`] = ` [ "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}", "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":4}", @@ -4814,7 +4814,7 @@ exports[`renders shared tunes > shared tune 211 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 212 https://strudel.tidalcycles.org/?QJdSFHrNzFlO 1`] = ` +exports[`renders shared tunes > shared tune 212 https://strudel.cc/?QJdSFHrNzFlO 1`] = ` [ "0/1 -> 1/2: {\\"s\\":\\"bd\\",\\"delay\\":0.5,\\"delaytime\\":0.33,\\"delayfeedback\\":0.6}", "1/2 -> 1/1: {\\"s\\":\\"sd\\",\\"delay\\":0.5,\\"delaytime\\":0.33,\\"delayfeedback\\":0.6}", @@ -4823,7 +4823,7 @@ exports[`renders shared tunes > shared tune 212 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 213 https://strudel.tidalcycles.org/?Nkv2L01eF62W 1`] = ` +exports[`renders shared tunes > shared tune 213 https://strudel.cc/?Nkv2L01eF62W 1`] = ` [ "0/1 -> 1/2: {\\"s\\":\\"bd\\",\\"delay\\":0.5,\\"delaytime\\":0.33,\\"delayfeedback\\":0.6,\\"speed\\":-1}", "1/2 -> 1/1: {\\"s\\":\\"sd\\",\\"delay\\":0.5,\\"delaytime\\":0.33,\\"delayfeedback\\":0.6,\\"speed\\":-1}", @@ -4832,14 +4832,14 @@ exports[`renders shared tunes > shared tune 213 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 214 https://strudel.tidalcycles.org/?fWCYi76JTGuA 1`] = ` +exports[`renders shared tunes > shared tune 214 https://strudel.cc/?fWCYi76JTGuA 1`] = ` [ "0/1 -> 1/2: {\\"s\\":\\"bd\\",\\"delay\\":0,\\"delaytime\\":0.16,\\"delayfeedback\\":0.6,\\"speed\\":-1}", "1/2 -> 1/1: {\\"s\\":\\"sd\\",\\"delay\\":0,\\"delaytime\\":0.16,\\"delayfeedback\\":0.6,\\"speed\\":-1}", ] `; -exports[`renders shared tunes > shared tune 215 https://strudel.tidalcycles.org/?yJ-qOjgrjkMk 1`] = ` +exports[`renders shared tunes > shared tune 215 https://strudel.cc/?yJ-qOjgrjkMk 1`] = ` [ "0/1 -> 1/2: c1", "1/2 -> 1/1: c1", @@ -4851,7 +4851,7 @@ exports[`renders shared tunes > shared tune 215 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 216 https://strudel.tidalcycles.org/?UPVdAQhVNgbc 1`] = ` +exports[`renders shared tunes > shared tune 216 https://strudel.cc/?UPVdAQhVNgbc 1`] = ` [ "0/1 -> 1/6: {\\"note\\":\\"g3\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":4000,\\"crush\\":16}", "1/6 -> 1/3: {\\"note\\":\\"g3\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":4000,\\"crush\\":16}", @@ -4874,7 +4874,7 @@ exports[`renders shared tunes > shared tune 216 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 217 https://strudel.tidalcycles.org/?WDuiXaMhRRx5 1`] = ` +exports[`renders shared tunes > shared tune 217 https://strudel.cc/?WDuiXaMhRRx5 1`] = ` [ "0/1 -> 8/5: {\\"note\\":85,\\"s\\":\\"piano\\",\\"cutoff\\":\\"500\\"}", "0/1 -> 8/5: {\\"note\\":81,\\"s\\":\\"piano\\",\\"cutoff\\":\\"500\\"}", @@ -4886,7 +4886,7 @@ exports[`renders shared tunes > shared tune 217 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 218 https://strudel.tidalcycles.org/?sOP6EO9TO4HO 1`] = ` +exports[`renders shared tunes > shared tune 218 https://strudel.cc/?sOP6EO9TO4HO 1`] = ` [ "0/1 -> 1/1: B3", "0/1 -> 1/1: D4", @@ -4896,7 +4896,7 @@ exports[`renders shared tunes > shared tune 218 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 219 https://strudel.tidalcycles.org/?ddiSv-lz2_cp 1`] = ` +exports[`renders shared tunes > shared tune 219 https://strudel.cc/?ddiSv-lz2_cp 1`] = ` [ "0/1 -> 1/6: {\\"note\\":53,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":507.8125,\\"gain\\":0.9166666666666666}", "0/1 -> 1/6: {\\"note\\":57,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":507.8125,\\"gain\\":0.9166666666666666}", @@ -4949,7 +4949,7 @@ exports[`renders shared tunes > shared tune 219 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 220 https://strudel.tidalcycles.org/?cpVS2-bO1LzP 1`] = ` +exports[`renders shared tunes > shared tune 220 https://strudel.cc/?cpVS2-bO1LzP 1`] = ` [ "0/1 -> 1/6: {\\"note\\":53,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":507.8125,\\"gain\\":0.9166666666666666}", "0/1 -> 1/6: {\\"note\\":57,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":507.8125,\\"gain\\":0.9166666666666666}", @@ -5002,7 +5002,7 @@ exports[`renders shared tunes > shared tune 220 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 221 https://strudel.tidalcycles.org/?IPOyuRRkZaNr 1`] = ` +exports[`renders shared tunes > shared tune 221 https://strudel.cc/?IPOyuRRkZaNr 1`] = ` [ "0/1 -> 3/20: 0", "0/1 -> 3/20: 3", @@ -5021,7 +5021,7 @@ exports[`renders shared tunes > shared tune 221 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 222 https://strudel.tidalcycles.org/?fGbP7VOtCWWU 1`] = ` +exports[`renders shared tunes > shared tune 222 https://strudel.cc/?fGbP7VOtCWWU 1`] = ` [ "0/1 -> 1/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}", "0/1 -> 1/8: {\\"note\\":\\"B4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5787037037037037}", @@ -5056,7 +5056,7 @@ exports[`renders shared tunes > shared tune 222 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 223 https://strudel.tidalcycles.org/?4YKibw76FrRb 1`] = ` +exports[`renders shared tunes > shared tune 223 https://strudel.cc/?4YKibw76FrRb 1`] = ` [ "0/1 -> 1/2: {\\"note\\":\\"G3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5046296296296297}", "0/1 -> 1/2: {\\"note\\":\\"B3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5231481481481481}", @@ -5069,7 +5069,7 @@ exports[`renders shared tunes > shared tune 223 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 224 https://strudel.tidalcycles.org/?7UmR7rJMSvWq 1`] = ` +exports[`renders shared tunes > shared tune 224 https://strudel.cc/?7UmR7rJMSvWq 1`] = ` [ "0/1 -> 1/2: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}", "0/1 -> 1/2: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}", @@ -5079,7 +5079,7 @@ exports[`renders shared tunes > shared tune 224 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 225 https://strudel.tidalcycles.org/?N0a4wkk96WWE 1`] = ` +exports[`renders shared tunes > shared tune 225 https://strudel.cc/?N0a4wkk96WWE 1`] = ` [ "0/1 -> 8/19: {\\"note\\":\\"C5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5833333333333333}", "8/19 -> 16/19: {\\"note\\":\\"f5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6064814814814814}", @@ -5088,7 +5088,7 @@ exports[`renders shared tunes > shared tune 225 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 226 https://strudel.tidalcycles.org/?s8HiRvW_Rngj 1`] = ` +exports[`renders shared tunes > shared tune 226 https://strudel.cc/?s8HiRvW_Rngj 1`] = ` [ "0/1 -> 3053185/4904046: {\\"n\\":62,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3986.9405734726183}", "0/1 -> 3053185/4904046: {\\"n\\":62,\\"s\\":\\"square\\",\\"cutoff\\":3986.9405734726183}", @@ -5120,7 +5120,7 @@ exports[`renders shared tunes > shared tune 226 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 227 https://strudel.tidalcycles.org/?Z1ywkDoR6Tca 1`] = ` +exports[`renders shared tunes > shared tune 227 https://strudel.cc/?Z1ywkDoR6Tca 1`] = ` [ "5833/7200 -> 19/18: {\\"n\\":\\"C#4\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.2}", "437/800 -> 19/24: {\\"n\\":\\"D#4\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.2}", @@ -5149,7 +5149,7 @@ exports[`renders shared tunes > shared tune 227 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 228 https://strudel.tidalcycles.org/?eXyJ5cvdMxIl 1`] = ` +exports[`renders shared tunes > shared tune 228 https://strudel.cc/?eXyJ5cvdMxIl 1`] = ` [ "0/1 -> 1/1: {\\"n\\":69,\\"s\\":\\"Church Organ: Organ\\",\\"gain\\":0.2}", "0/1 -> 1/1: {\\"n\\":72,\\"s\\":\\"Church Organ: Organ\\",\\"gain\\":0.2}", @@ -5165,7 +5165,7 @@ exports[`renders shared tunes > shared tune 228 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 229 https://strudel.tidalcycles.org/?YSgSSFCioxs0 1`] = ` +exports[`renders shared tunes > shared tune 229 https://strudel.cc/?YSgSSFCioxs0 1`] = ` [ "0/1 -> 1/1: {\\"n\\":69,\\"s\\":\\"Church Organ: Organ\\",\\"gain\\":0.2}", "0/1 -> 1/1: {\\"n\\":72,\\"s\\":\\"Church Organ: Organ\\",\\"gain\\":0.2}", @@ -5181,7 +5181,7 @@ exports[`renders shared tunes > shared tune 229 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 230 https://strudel.tidalcycles.org/?lAIAC1TOD3zB 1`] = ` +exports[`renders shared tunes > shared tune 230 https://strudel.cc/?lAIAC1TOD3zB 1`] = ` [ "0/1 -> 1/2: c1", "1/2 -> 1/1: c1", @@ -5193,7 +5193,7 @@ exports[`renders shared tunes > shared tune 230 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 231 https://strudel.tidalcycles.org/?LZ-aTB2xiaZ8 1`] = ` +exports[`renders shared tunes > shared tune 231 https://strudel.cc/?LZ-aTB2xiaZ8 1`] = ` [ "0/1 -> 3053185/4904046: {\\"n\\":62,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3986.9405734726183}", "0/1 -> 3053185/4904046: {\\"n\\":62,\\"s\\":\\"square\\",\\"cutoff\\":3986.9405734726183}", @@ -5225,7 +5225,7 @@ exports[`renders shared tunes > shared tune 231 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 232 https://strudel.tidalcycles.org/?_zhepg-kT6fD 1`] = ` +exports[`renders shared tunes > shared tune 232 https://strudel.cc/?_zhepg-kT6fD 1`] = ` [ "0/1 -> 3/8: {\\"s\\":\\"bd\\",\\"gain\\":0.14}", "3/8 -> 3/4: {\\"s\\":\\"bd\\",\\"gain\\":0.14}", @@ -5256,7 +5256,7 @@ exports[`renders shared tunes > shared tune 232 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 234 https://strudel.tidalcycles.org/?1moEu58ZjMF4 1`] = ` +exports[`renders shared tunes > shared tune 234 https://strudel.cc/?1moEu58ZjMF4 1`] = ` [ "0/1 -> 1/2: {\\"note\\":\\"c2\\",\\"s\\":\\"square\\",\\"attack\\":0.1,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":0.1}", "1/2 -> 1/1: {\\"note\\":\\"eb2\\",\\"s\\":\\"square\\",\\"attack\\":0.1,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":0.1}", @@ -5271,7 +5271,7 @@ exports[`renders shared tunes > shared tune 234 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 235 https://strudel.tidalcycles.org/?1W8nlZAFzi5T 1`] = ` +exports[`renders shared tunes > shared tune 235 https://strudel.cc/?1W8nlZAFzi5T 1`] = ` [ "0/1 -> 1/1: {\\"note\\":\\"c2\\",\\"s\\":\\"square\\",\\"attack\\":0.1,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":0.1}", "0/1 -> 1/2: {\\"s\\":\\"bd\\",\\"crush\\":16}", @@ -5285,7 +5285,7 @@ exports[`renders shared tunes > shared tune 235 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 236 https://strudel.tidalcycles.org/?exwhYw9VYVQz 1`] = ` +exports[`renders shared tunes > shared tune 236 https://strudel.cc/?exwhYw9VYVQz 1`] = ` [ "0/1 -> 1/1: {\\"note\\":\\"c2\\",\\"s\\":\\"square\\",\\"attack\\":0.1,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":0.1}", "0/1 -> 1/2: {\\"s\\":\\"bd\\",\\"crush\\":16}", @@ -5299,7 +5299,7 @@ exports[`renders shared tunes > shared tune 236 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 237 https://strudel.tidalcycles.org/?z4zPoaRLF6Vs 1`] = ` +exports[`renders shared tunes > shared tune 237 https://strudel.cc/?z4zPoaRLF6Vs 1`] = ` [ "0/1 -> 2/5: {\\"note\\":\\"c3\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.2,\\"sustain\\":0.3,\\"release\\":0.1,\\"bandf\\":500,\\"bandq\\":1}", "2/5 -> 4/5: {\\"note\\":\\"c3\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.2,\\"sustain\\":0.3,\\"release\\":0.1,\\"bandf\\":500,\\"bandq\\":1}", @@ -5308,7 +5308,7 @@ exports[`renders shared tunes > shared tune 237 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 238 https://strudel.tidalcycles.org/?VzJokumWaip_ 1`] = ` +exports[`renders shared tunes > shared tune 238 https://strudel.cc/?VzJokumWaip_ 1`] = ` [ "3/4 -> 1/1: {\\"s\\":\\"bd\\"}", "1/2 -> 3/4: {\\"s\\":\\"bd\\"}", @@ -5324,7 +5324,7 @@ exports[`renders shared tunes > shared tune 238 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 239 https://strudel.tidalcycles.org/?gb4pffOZyATk 1`] = ` +exports[`renders shared tunes > shared tune 239 https://strudel.cc/?gb4pffOZyATk 1`] = ` [ "4/5 -> 1/1: {\\"s\\":\\"bd\\",\\"cutoff\\":200,\\"resonance\\":30}", "4/5 -> 1/1: {\\"s\\":\\"bd\\",\\"cutoff\\":100,\\"resonance\\":30}", @@ -5351,7 +5351,7 @@ exports[`renders shared tunes > shared tune 239 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 240 https://strudel.tidalcycles.org/?C6vcsMx8UtjJ 1`] = ` +exports[`renders shared tunes > shared tune 240 https://strudel.cc/?C6vcsMx8UtjJ 1`] = ` [ "0/1 -> 1/8: C2", "1/8 -> 1/4: D2", @@ -5364,7 +5364,7 @@ exports[`renders shared tunes > shared tune 240 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 241 https://strudel.tidalcycles.org/?jyNjgy-bZ0X7 1`] = ` +exports[`renders shared tunes > shared tune 241 https://strudel.cc/?jyNjgy-bZ0X7 1`] = ` [ "0/1 -> 3/16: {\\"s\\":\\"bd\\",\\"gain\\":0.7}", "3/16 -> 3/8: {\\"s\\":\\"bd\\",\\"gain\\":0.7}", @@ -5396,7 +5396,7 @@ exports[`renders shared tunes > shared tune 241 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 242 https://strudel.tidalcycles.org/?MPVT_kG6Yni7 1`] = ` +exports[`renders shared tunes > shared tune 242 https://strudel.cc/?MPVT_kG6Yni7 1`] = ` [ "0/1 -> 2/1: {\\"note\\":\\"c1\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.2,\\"sustain\\":0.3,\\"release\\":0.1,\\"bandf\\":500,\\"bandq\\":1,\\"gain\\":3}", "1/3 -> 1/1: {\\"s\\":\\"bd\\"}", @@ -5404,7 +5404,7 @@ exports[`renders shared tunes > shared tune 242 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 243 https://strudel.tidalcycles.org/?Ul_u7MyAGKXb 1`] = ` +exports[`renders shared tunes > shared tune 243 https://strudel.cc/?Ul_u7MyAGKXb 1`] = ` [ "0/1 -> 1/40: {\\"n\\":62,\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000}", "1/4 -> 21/80: {\\"n\\":51,\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000}", @@ -5429,7 +5429,7 @@ exports[`renders shared tunes > shared tune 243 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 244 https://strudel.tidalcycles.org/?6geTqvPlUvv4 1`] = ` +exports[`renders shared tunes > shared tune 244 https://strudel.cc/?6geTqvPlUvv4 1`] = ` [ "0/1 -> 3/80: {\\"n\\":62,\\"s\\":\\"sine\\",\\"cutoff\\":1500}", "1/4 -> 43/160: {\\"n\\":51,\\"s\\":\\"sine\\",\\"cutoff\\":1500}", @@ -5454,7 +5454,7 @@ exports[`renders shared tunes > shared tune 244 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 245 https://strudel.tidalcycles.org/?5-NpsIAJqGJX 1`] = ` +exports[`renders shared tunes > shared tune 245 https://strudel.cc/?5-NpsIAJqGJX 1`] = ` [ "0/1 -> 3/20: 0", "0/1 -> 3/20: 3", @@ -5473,7 +5473,7 @@ exports[`renders shared tunes > shared tune 245 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 248 https://strudel.tidalcycles.org/?FavmsfMCEJh9 1`] = ` +exports[`renders shared tunes > shared tune 248 https://strudel.cc/?FavmsfMCEJh9 1`] = ` [ "0/1 -> 1/4: {\\"note\\":\\"C3\\"}", "1/4 -> 1/2: {\\"note\\":\\"Eb3\\"}", @@ -5486,7 +5486,7 @@ exports[`renders shared tunes > shared tune 248 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 249 https://strudel.tidalcycles.org/?KEJD5r4Q7zZo 1`] = ` +exports[`renders shared tunes > shared tune 249 https://strudel.cc/?KEJD5r4Q7zZo 1`] = ` [ "0/1 -> 3/4: F4", "0/1 -> 3/4: Bb4", @@ -5499,7 +5499,7 @@ exports[`renders shared tunes > shared tune 249 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 250 https://strudel.tidalcycles.org/?JzQ_9QyLrKhy 1`] = ` +exports[`renders shared tunes > shared tune 250 https://strudel.cc/?JzQ_9QyLrKhy 1`] = ` [ "0/1 -> 1/3: bd", "1/3 -> 2/3: hh", @@ -5517,7 +5517,7 @@ exports[`renders shared tunes > shared tune 250 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 251 https://strudel.tidalcycles.org/?H9-8RjyncjzI 1`] = ` +exports[`renders shared tunes > shared tune 251 https://strudel.cc/?H9-8RjyncjzI 1`] = ` [ "0/1 -> 1/1: B3", "0/1 -> 1/1: D4", @@ -5527,7 +5527,7 @@ exports[`renders shared tunes > shared tune 251 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 252 https://strudel.tidalcycles.org/?CG9iByv5zHY- 1`] = ` +exports[`renders shared tunes > shared tune 252 https://strudel.cc/?CG9iByv5zHY- 1`] = ` [ "0/1 -> 1/3: 48", "1/3 -> 2/3: 51", @@ -5535,7 +5535,7 @@ exports[`renders shared tunes > shared tune 252 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 253 https://strudel.tidalcycles.org/?FgUTcaG_XKGK 1`] = ` +exports[`renders shared tunes > shared tune 253 https://strudel.cc/?FgUTcaG_XKGK 1`] = ` [ "0/1 -> 1/4: 48", "1/4 -> 1/2: 51", @@ -5544,7 +5544,7 @@ exports[`renders shared tunes > shared tune 253 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 254 https://strudel.tidalcycles.org/?CmY3ebvIfYEG 1`] = ` +exports[`renders shared tunes > shared tune 254 https://strudel.cc/?CmY3ebvIfYEG 1`] = ` [ "0/1 -> 1/10: C3", "0/1 -> 1/10: E3", @@ -5563,7 +5563,7 @@ exports[`renders shared tunes > shared tune 254 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 255 https://strudel.tidalcycles.org/?yNx4koGpPrSH 1`] = ` +exports[`renders shared tunes > shared tune 255 https://strudel.cc/?yNx4koGpPrSH 1`] = ` [ "0/1 -> 6275565/1452119: A3", "-9/8 -> 20400609/11616952: G4", @@ -5574,7 +5574,7 @@ exports[`renders shared tunes > shared tune 255 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 256 https://strudel.tidalcycles.org/?oBtcxYrbZlNG 1`] = ` +exports[`renders shared tunes > shared tune 256 https://strudel.cc/?oBtcxYrbZlNG 1`] = ` [ "0/1 -> 1/2: {\\"note\\":\\"D3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4814814814814815}", "1/4 -> 3/4: {\\"note\\":\\"F3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.49537037037037035}", @@ -5609,7 +5609,7 @@ exports[`renders shared tunes > shared tune 256 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 257 https://strudel.tidalcycles.org/?eCz4nyUk3TnN 1`] = ` +exports[`renders shared tunes > shared tune 257 https://strudel.cc/?eCz4nyUk3TnN 1`] = ` [ "0/1 -> 3/1: {\\"n\\":\\"B3\\",\\"s\\":\\"0040_FluidR3_GM_sf2_file\\",\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.7,\\"cutoff\\":1111.7252990603447,\\"gain\\":0.3}", "0/1 -> 3/1: {\\"n\\":\\"D4\\",\\"s\\":\\"0040_FluidR3_GM_sf2_file\\",\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.7,\\"cutoff\\":1111.7252990603447,\\"gain\\":0.3}", @@ -5624,7 +5624,7 @@ exports[`renders shared tunes > shared tune 257 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 259 https://strudel.tidalcycles.org/?J3FcQgOeZ3cV 1`] = ` +exports[`renders shared tunes > shared tune 259 https://strudel.cc/?J3FcQgOeZ3cV 1`] = ` [ "0/1 -> 5/26: {\\"note\\":\\"B2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.46759259259259256}", "5/13 -> 15/26: {\\"note\\":\\"B2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.46759259259259256}", @@ -5652,7 +5652,7 @@ exports[`renders shared tunes > shared tune 259 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 260 https://strudel.tidalcycles.org/?tTlyA1JzHklU 1`] = ` +exports[`renders shared tunes > shared tune 260 https://strudel.cc/?tTlyA1JzHklU 1`] = ` [ "0/1 -> 4/3: B4", "0/1 -> 1/3: C3", @@ -5661,7 +5661,7 @@ exports[`renders shared tunes > shared tune 260 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 261 https://strudel.tidalcycles.org/?hIhmX2R9gtwL 1`] = ` +exports[`renders shared tunes > shared tune 261 https://strudel.cc/?hIhmX2R9gtwL 1`] = ` [ "0/1 -> 1/8: {\\"note\\":\\"c2\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"release\\":0.3,\\"vowel\\":\\"a\\"}", "1/2 -> 5/8: {\\"note\\":\\"c2\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"release\\":0.3,\\"vowel\\":\\"o\\"}", @@ -5686,7 +5686,7 @@ exports[`renders shared tunes > shared tune 261 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 262 https://strudel.tidalcycles.org/?NIL21RJTmuAa 1`] = ` +exports[`renders shared tunes > shared tune 262 https://strudel.cc/?NIL21RJTmuAa 1`] = ` [ "0/1 -> 1/2: Bb2", "0/1 -> 1/2: F3", @@ -5710,7 +5710,7 @@ exports[`renders shared tunes > shared tune 262 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 263 https://strudel.tidalcycles.org/?CGh4oLKu9tOp 1`] = ` +exports[`renders shared tunes > shared tune 263 https://strudel.cc/?CGh4oLKu9tOp 1`] = ` [ "0/1 -> 4/3: B4", "0/1 -> 1/3: C3", @@ -5719,7 +5719,7 @@ exports[`renders shared tunes > shared tune 263 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 264 https://strudel.tidalcycles.org/?N486QfFJ2NvV 1`] = ` +exports[`renders shared tunes > shared tune 264 https://strudel.cc/?N486QfFJ2NvV 1`] = ` [ "0/1 -> 1/8: {\\"freq\\":55.33,\\"s\\":\\"sawtooth\\"}", "0/1 -> 1/8: {\\"freq\\":54.725,\\"s\\":\\"sawtooth\\"}", @@ -5747,7 +5747,7 @@ exports[`renders shared tunes > shared tune 264 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 265 https://strudel.tidalcycles.org/?Njas64Vf03LO 1`] = ` +exports[`renders shared tunes > shared tune 265 https://strudel.cc/?Njas64Vf03LO 1`] = ` [ "0/1 -> 5/11: {\\"note\\":\\"c2\\",\\"s\\":\\"sawtooth\\",\\"vowel\\":\\"a\\",\\"gain\\":1.1882154262966047,\\"delay\\":0.1}", "5/11 -> 15/11: {\\"note\\":\\"eb2\\",\\"s\\":\\"sawtooth\\",\\"vowel\\":\\"a\\",\\"gain\\":1.361256209529016,\\"delay\\":0.1}", @@ -5770,7 +5770,7 @@ exports[`renders shared tunes > shared tune 265 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 266 https://strudel.tidalcycles.org/?-qcqwVsJXv8J 1`] = ` +exports[`renders shared tunes > shared tune 266 https://strudel.cc/?-qcqwVsJXv8J 1`] = ` [ "0/1 -> 1/1: bd", "0/1 -> 1/4: hh", @@ -5781,7 +5781,7 @@ exports[`renders shared tunes > shared tune 266 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 267 https://strudel.tidalcycles.org/?Q2WQMrJVFb46 1`] = ` +exports[`renders shared tunes > shared tune 267 https://strudel.cc/?Q2WQMrJVFb46 1`] = ` [ "0/1 -> 5/11: {\\"note\\":\\"c2\\",\\"s\\":\\"sawtooth\\",\\"vowel\\":\\"a\\",\\"gain\\":0.2000348432426738,\\"delay\\":0.1}", "5/11 -> 15/11: {\\"note\\":\\"eb2\\",\\"s\\":\\"sawtooth\\",\\"vowel\\":\\"a\\",\\"gain\\":0.20089674623394735,\\"delay\\":0.1}", @@ -5805,7 +5805,7 @@ exports[`renders shared tunes > shared tune 267 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 268 https://strudel.tidalcycles.org/?IV4pDyaLUMB0 1`] = ` +exports[`renders shared tunes > shared tune 268 https://strudel.cc/?IV4pDyaLUMB0 1`] = ` [ "0/1 -> 1/2: c1", "1/2 -> 1/1: c1", @@ -5817,7 +5817,7 @@ exports[`renders shared tunes > shared tune 268 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 269 https://strudel.tidalcycles.org/?XQ_uhshhjEYw 1`] = ` +exports[`renders shared tunes > shared tune 269 https://strudel.cc/?XQ_uhshhjEYw 1`] = ` [ "-18/5 -> 2/5: c3", "-18/5 -> 2/5: e3", @@ -5829,7 +5829,7 @@ exports[`renders shared tunes > shared tune 269 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 270 https://strudel.tidalcycles.org/?XDCsI7uPtnav 1`] = ` +exports[`renders shared tunes > shared tune 270 https://strudel.cc/?XDCsI7uPtnav 1`] = ` [ "0/1 -> 2/1: {\\"note\\":\\"C3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4722222222222222}", "0/1 -> 2/1: {\\"note\\":\\"E3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4907407407407407}", @@ -5837,7 +5837,7 @@ exports[`renders shared tunes > shared tune 270 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 271 https://strudel.tidalcycles.org/?2t_PSStoDUhV 1`] = ` +exports[`renders shared tunes > shared tune 271 https://strudel.cc/?2t_PSStoDUhV 1`] = ` [ "0/1 -> 5/11: {\\"note\\":\\"c2\\",\\"s\\":\\"sawtooth\\",\\"vowel\\":\\"a\\",\\"gain\\":0.2000348432426738,\\"delay\\":0.1}", "5/11 -> 15/11: {\\"note\\":\\"eb2\\",\\"s\\":\\"sawtooth\\",\\"vowel\\":\\"a\\",\\"gain\\":0.20089674623394735,\\"delay\\":0.1}", @@ -5859,7 +5859,7 @@ exports[`renders shared tunes > shared tune 271 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 272 https://strudel.tidalcycles.org/?J4419vLymh08 1`] = ` +exports[`renders shared tunes > shared tune 272 https://strudel.cc/?J4419vLymh08 1`] = ` [ "5/6 -> 5/3: {\\"note\\":\\"eb4\\",\\"s\\":\\"piano\\",\\"cutoff\\":1275.348281040755,\\"resonance\\":0,\\"delay\\":0.1}", "0/1 -> 5/6: {\\"value\\":\\"\\",\\"s\\":\\"sawtooth\\",\\"vowel\\":\\"a\\",\\"gain\\":1.8000302424954437,\\"hcutoff\\":800,\\"cutoff\\":770.1250948828399,\\"resonance\\":0,\\"delay\\":0.1}", @@ -5880,7 +5880,7 @@ exports[`renders shared tunes > shared tune 272 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 273 https://strudel.tidalcycles.org/?hGG0rEr1zC3A 1`] = ` +exports[`renders shared tunes > shared tune 273 https://strudel.cc/?hGG0rEr1zC3A 1`] = ` [ "0/1 -> 5/4: {\\"value\\":\\"\\",\\"s\\":\\"sawtooth\\",\\"vowel\\":\\"a\\",\\"gain\\":1.8000302424954437,\\"hcutoff\\":800,\\"cutoff\\":889.6566238254309,\\"resonance\\":0,\\"delay\\":0.1}", "0/1 -> 5/8: {\\"value\\":\\"\\",\\"s\\":\\"sine\\",\\"shape\\":0.31075614638684784,\\"gain\\":0.32689036596711957,\\"cutoff\\":640.2810816708566,\\"resonance\\":0,\\"delay\\":0.1}", @@ -5896,7 +5896,7 @@ exports[`renders shared tunes > shared tune 273 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 274 https://strudel.tidalcycles.org/?ahkvgPdMeapI 1`] = ` +exports[`renders shared tunes > shared tune 274 https://strudel.cc/?ahkvgPdMeapI 1`] = ` [ "0/1 -> 1/2: {\\"note\\":\\"F3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.49537037037037035}", "1/4 -> 3/4: {\\"note\\":\\"F2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4398148148148148}", @@ -5907,7 +5907,7 @@ exports[`renders shared tunes > shared tune 274 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 275 https://strudel.tidalcycles.org/?um_AAxJMJr5U 1`] = ` +exports[`renders shared tunes > shared tune 275 https://strudel.cc/?um_AAxJMJr5U 1`] = ` [ "0/1 -> 1/1: {\\"note\\":\\"c4\\",\\"s\\":\\"piano\\",\\"gain\\":0.5}", "0/1 -> 1/1: {\\"note\\":\\"e4\\",\\"s\\":\\"piano\\",\\"gain\\":0.5}", @@ -5925,7 +5925,7 @@ exports[`renders shared tunes > shared tune 275 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 276 https://strudel.tidalcycles.org/?UxSJbzL1d05O 1`] = ` +exports[`renders shared tunes > shared tune 276 https://strudel.cc/?UxSJbzL1d05O 1`] = ` [ "0/1 -> 5/4: {\\"note\\":\\"c4\\",\\"s\\":\\"piano\\",\\"gain\\":0.5}", "0/1 -> 5/4: {\\"note\\":\\"eb4\\",\\"s\\":\\"piano\\",\\"gain\\":0.5}", @@ -5945,7 +5945,7 @@ exports[`renders shared tunes > shared tune 276 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 277 https://strudel.tidalcycles.org/?90drkbxdBr2- 1`] = ` +exports[`renders shared tunes > shared tune 277 https://strudel.cc/?90drkbxdBr2- 1`] = ` [ "0/1 -> 5/4: {\\"note\\":\\"c4\\",\\"s\\":\\"piano\\",\\"gain\\":0.5}", "0/1 -> 5/4: {\\"note\\":\\"eb4\\",\\"s\\":\\"piano\\",\\"gain\\":0.5}", @@ -5967,7 +5967,7 @@ exports[`renders shared tunes > shared tune 277 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 278 https://strudel.tidalcycles.org/?aGtqNXDNRxdA 1`] = ` +exports[`renders shared tunes > shared tune 278 https://strudel.cc/?aGtqNXDNRxdA 1`] = ` [ "0/1 -> 3/2: {\\"s\\":\\"bd\\",\\"speed\\":0.7519542165100574}", "3/4 -> 3/2: {\\"s\\":\\"sd\\",\\"speed\\":0.7931522866332671}", @@ -6024,7 +6024,7 @@ exports[`renders shared tunes > shared tune 278 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 279 https://strudel.tidalcycles.org/?N3UBBhj_uwxd 1`] = ` +exports[`renders shared tunes > shared tune 279 https://strudel.cc/?N3UBBhj_uwxd 1`] = ` [ "0/1 -> 1/10: C3", "0/1 -> 1/10: E3", @@ -6043,7 +6043,7 @@ exports[`renders shared tunes > shared tune 279 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 280 https://strudel.tidalcycles.org/?wF7a24BViyqU 1`] = ` +exports[`renders shared tunes > shared tune 280 https://strudel.cc/?wF7a24BViyqU 1`] = ` [ "0/1 -> 3/4: F3", "3/4 -> 9/8: Ab3", @@ -6063,7 +6063,7 @@ exports[`renders shared tunes > shared tune 280 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 281 https://strudel.tidalcycles.org/?h87w26zgMJ0L 1`] = ` +exports[`renders shared tunes > shared tune 281 https://strudel.cc/?h87w26zgMJ0L 1`] = ` [ "0/1 -> 5/6: {\\"note\\":\\"c4\\",\\"s\\":\\"piano\\",\\"gain\\":0.5}", "0/1 -> 5/6: {\\"note\\":\\"eb4\\",\\"s\\":\\"piano\\",\\"gain\\":0.5}", @@ -6097,7 +6097,7 @@ exports[`renders shared tunes > shared tune 281 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 282 https://strudel.tidalcycles.org/?fwBxQjt9aVhx 1`] = ` +exports[`renders shared tunes > shared tune 282 https://strudel.cc/?fwBxQjt9aVhx 1`] = ` [ "5833/7200 -> 19/18: {\\"n\\":\\"C#4\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.19}", "437/800 -> 19/24: {\\"n\\":\\"D#4\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.19}", @@ -6126,7 +6126,7 @@ exports[`renders shared tunes > shared tune 282 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 283 https://strudel.tidalcycles.org/?3rnmA7q0g2i- 1`] = ` +exports[`renders shared tunes > shared tune 283 https://strudel.cc/?3rnmA7q0g2i- 1`] = ` [ "0/1 -> 5/8: {\\"note\\":\\"G1\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":200,\\"resonance\\":20,\\"gain\\":0.15,\\"shape\\":0.6,\\"release\\":0.05}", "0/1 -> 5/8: {\\"note\\":31.02,\\"s\\":\\"sawtooth\\",\\"cutoff\\":200,\\"resonance\\":20,\\"gain\\":0.15,\\"shape\\":0.6,\\"release\\":0.05}", @@ -6145,7 +6145,7 @@ exports[`renders shared tunes > shared tune 283 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 284 https://strudel.tidalcycles.org/?w1af5xWyhwNm 1`] = ` +exports[`renders shared tunes > shared tune 284 https://strudel.cc/?w1af5xWyhwNm 1`] = ` [ "0/1 -> 8/1: {\\"s\\":\\"bass\\",\\"speed\\":0.125,\\"unit\\":\\"c\\",\\"clip\\":1}", "0/1 -> 1/2: {\\"s\\":\\"bd\\"}", @@ -6167,7 +6167,7 @@ exports[`renders shared tunes > shared tune 284 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 285 https://strudel.tidalcycles.org/?Ne_BJMKKDCO_ 1`] = ` +exports[`renders shared tunes > shared tune 285 https://strudel.cc/?Ne_BJMKKDCO_ 1`] = ` [ "0/1 -> 5/8: {\\"note\\":\\"G1\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":200,\\"resonance\\":20,\\"gain\\":0.15,\\"shape\\":0.6,\\"release\\":0.05}", "0/1 -> 5/8: {\\"note\\":31.02,\\"s\\":\\"sawtooth\\",\\"cutoff\\":200,\\"resonance\\":20,\\"gain\\":0.15,\\"shape\\":0.6,\\"release\\":0.05}", @@ -6186,7 +6186,7 @@ exports[`renders shared tunes > shared tune 285 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 286 https://strudel.tidalcycles.org/?G2H5FM0Fc94a 1`] = ` +exports[`renders shared tunes > shared tune 286 https://strudel.cc/?G2H5FM0Fc94a 1`] = ` [ "0/1 -> 1/4: {\\"s\\":\\"woodblock:1\\"}", "1/4 -> 3/8: {\\"s\\":\\"woodblock:2\\"}", @@ -6204,7 +6204,7 @@ exports[`renders shared tunes > shared tune 286 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 287 https://strudel.tidalcycles.org/?EPFzAz99hwZW 1`] = ` +exports[`renders shared tunes > shared tune 287 https://strudel.cc/?EPFzAz99hwZW 1`] = ` [ "0/1 -> 1/4: {\\"note\\":48,\\"s\\":\\"ocarina_vib\\",\\"clip\\":1,\\"release\\":0.1,\\"room\\":1,\\"gain\\":0.2}", "1/4 -> 9/32: {\\"note\\":51,\\"s\\":\\"ocarina_vib\\",\\"clip\\":1,\\"release\\":0.1,\\"room\\":1,\\"gain\\":0.2}", @@ -6221,7 +6221,7 @@ exports[`renders shared tunes > shared tune 287 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 288 https://strudel.tidalcycles.org/?DSvgYUzEgx6n 1`] = ` +exports[`renders shared tunes > shared tune 288 https://strudel.cc/?DSvgYUzEgx6n 1`] = ` [ "0/1 -> 1/2: {\\"s\\":\\"bd\\",\\"bank\\":\\"RolandTR909\\"}", "1/2 -> 1/1: {\\"s\\":\\"bd\\",\\"bank\\":\\"RolandTR909\\"}", @@ -6245,14 +6245,14 @@ exports[`renders shared tunes > shared tune 288 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 289 https://strudel.tidalcycles.org/?cRvfurHbl4jo 1`] = ` +exports[`renders shared tunes > shared tune 289 https://strudel.cc/?cRvfurHbl4jo 1`] = ` [ "0/1 -> 1/2: {\\"s\\":\\"bd\\",\\"delay\\":0,\\"delaytime\\":0.33,\\"delayfeedback\\":0.8,\\"speed\\":-1}", "1/2 -> 1/1: {\\"s\\":\\"sd\\",\\"delay\\":0,\\"delaytime\\":0.33,\\"delayfeedback\\":0.8,\\"speed\\":-1}", ] `; -exports[`renders shared tunes > shared tune 290 https://strudel.tidalcycles.org/?DGHGUqRXr5pe 1`] = ` +exports[`renders shared tunes > shared tune 290 https://strudel.cc/?DGHGUqRXr5pe 1`] = ` [ "0/1 -> 1/4: {\\"s\\":\\"jvbass:7\\",\\"cutoff\\":1000,\\"gain\\":0.6740862280130386,\\"room\\":1}", "1/4 -> 1/2: {\\"s\\":\\"jvbass:2\\",\\"cutoff\\":1000,\\"gain\\":0.5605570062994958,\\"room\\":1}", @@ -6274,7 +6274,7 @@ exports[`renders shared tunes > shared tune 290 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 291 https://strudel.tidalcycles.org/?RBaWr8-15Guk 1`] = ` +exports[`renders shared tunes > shared tune 291 https://strudel.cc/?RBaWr8-15Guk 1`] = ` [ "0/1 -> 1/6: {\\"s\\":\\"hh\\",\\"gain\\":0.6339596770703793,\\"room\\":0.6,\\"pan\\":0}", "8/9 -> 17/18: {\\"s\\":\\"jvbass:7\\",\\"cutoff\\":1000,\\"gain\\":0.7514234818518162,\\"room\\":0.6,\\"pan\\":0}", @@ -6289,7 +6289,7 @@ exports[`renders shared tunes > shared tune 291 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 292 https://strudel.tidalcycles.org/?c41h3Z1fwqTB 1`] = ` +exports[`renders shared tunes > shared tune 292 https://strudel.cc/?c41h3Z1fwqTB 1`] = ` [ "0/1 -> 1/6: {\\"s\\":\\"hh\\",\\"gain\\":0.6339596770703793,\\"room\\":0.6,\\"pan\\":0}", "8/9 -> 17/18: {\\"s\\":\\"jvbass:7\\",\\"cutoff\\":1000,\\"gain\\":0.7514234818518162,\\"room\\":0.6,\\"pan\\":0}", @@ -6304,7 +6304,7 @@ exports[`renders shared tunes > shared tune 292 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 293 https://strudel.tidalcycles.org/?lvF3fzHrDbyx 1`] = ` +exports[`renders shared tunes > shared tune 293 https://strudel.cc/?lvF3fzHrDbyx 1`] = ` [ "0/1 -> 1/2: {\\"s\\":\\"bev\\",\\"begin\\":0,\\"end\\":0.015625,\\"pan\\":0,\\"speed\\":0.5,\\"room\\":0.9}", "0/1 -> 1/2: {\\"s\\":\\"bev\\",\\"begin\\":0.046875,\\"end\\":0.0625,\\"pan\\":1,\\"speed\\":0.5,\\"room\\":0.9}", @@ -6317,7 +6317,7 @@ exports[`renders shared tunes > shared tune 293 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 294 https://strudel.tidalcycles.org/?vqqfVtY-n1Z6 1`] = ` +exports[`renders shared tunes > shared tune 294 https://strudel.cc/?vqqfVtY-n1Z6 1`] = ` [ "0/1 -> 1/6: {\\"s\\":\\"hh\\",\\"gain\\":0.6339596770703793,\\"room\\":0.6,\\"pan\\":0}", "8/9 -> 17/18: {\\"s\\":\\"jvbass:7\\",\\"cutoff\\":1000,\\"gain\\":0.7514234818518162,\\"room\\":0.6,\\"pan\\":0}", @@ -6332,7 +6332,7 @@ exports[`renders shared tunes > shared tune 294 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 295 https://strudel.tidalcycles.org/?C7PwKmsYAOJL 1`] = ` +exports[`renders shared tunes > shared tune 295 https://strudel.cc/?C7PwKmsYAOJL 1`] = ` [ "0/1 -> 1/64: {\\"s\\":\\"future:2\\",\\"begin\\":0,\\"end\\":0.0625,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}", "1/64 -> 1/32: {\\"s\\":\\"future:2\\",\\"begin\\":0.0625,\\"end\\":0.125,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}", @@ -6433,7 +6433,7 @@ exports[`renders shared tunes > shared tune 295 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 296 https://strudel.tidalcycles.org/?Z1mqx-eU-KcX 1`] = ` +exports[`renders shared tunes > shared tune 296 https://strudel.cc/?Z1mqx-eU-KcX 1`] = ` [ "0/1 -> 831675/814544: {\\"note\\":\\"D0\\",\\"s\\":\\"bell\\",\\"gain\\":0.6,\\"delay\\":0.2,\\"delaytime\\":0.3333333333333333,\\"delayfeedback\\":0.8}", "3/4 -> 1442583/814544: {\\"note\\":\\"A-1\\",\\"s\\":\\"bell\\",\\"gain\\":0.6,\\"delay\\":0.2,\\"delaytime\\":0.3333333333333333,\\"delayfeedback\\":0.8}", @@ -6448,7 +6448,7 @@ exports[`renders shared tunes > shared tune 296 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 297 https://strudel.tidalcycles.org/?Ypr_TlVFjVV5 1`] = ` +exports[`renders shared tunes > shared tune 297 https://strudel.cc/?Ypr_TlVFjVV5 1`] = ` [ "0/1 -> 1/4: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0,\\"end\\":0.0078125,\\"pan\\":0,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.6}", "1/4 -> 1/2: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0.0078125,\\"end\\":0.015625,\\"pan\\":0,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.6}", @@ -6461,7 +6461,7 @@ exports[`renders shared tunes > shared tune 297 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 298 https://strudel.tidalcycles.org/?5pmvveRR-gKc 1`] = ` +exports[`renders shared tunes > shared tune 298 https://strudel.cc/?5pmvveRR-gKc 1`] = ` [ "0/1 -> 1/1: D3", "0/1 -> 2/1: E3", @@ -6551,7 +6551,7 @@ exports[`renders shared tunes > shared tune 298 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 299 https://strudel.tidalcycles.org/?rGJ0heffHHl4 1`] = ` +exports[`renders shared tunes > shared tune 299 https://strudel.cc/?rGJ0heffHHl4 1`] = ` [ "0/1 -> 1/2: {\\"s\\":\\"bd\\",\\"gain\\":0.8}", "1/2 -> 1/1: {\\"s\\":\\"bd\\",\\"gain\\":0.8}", @@ -6567,7 +6567,7 @@ exports[`renders shared tunes > shared tune 299 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 300 https://strudel.tidalcycles.org/?Z7Nxzf3lmgTN 1`] = ` +exports[`renders shared tunes > shared tune 300 https://strudel.cc/?Z7Nxzf3lmgTN 1`] = ` [ "0/1 -> 8/1: {\\"note\\":\\"e3\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.2,\\"sustain\\":0.3,\\"release\\":0.1,\\"bandf\\":100,\\"bandq\\":1,\\"gain\\":3}", "0/1 -> 8/1: {\\"note\\":\\"b4\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.2,\\"sustain\\":0.3,\\"release\\":0.1,\\"bandf\\":100,\\"bandq\\":1,\\"gain\\":3}", @@ -6582,7 +6582,7 @@ exports[`renders shared tunes > shared tune 300 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 301 https://strudel.tidalcycles.org/?e63x61eOPPvl 1`] = ` +exports[`renders shared tunes > shared tune 301 https://strudel.cc/?e63x61eOPPvl 1`] = ` [ "0/1 -> 8/1: {\\"note\\":\\"e3\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.2,\\"sustain\\":0.3,\\"release\\":0.1,\\"bandf\\":100,\\"bandq\\":1,\\"gain\\":3}", "0/1 -> 8/1: {\\"note\\":\\"b4\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.2,\\"sustain\\":0.3,\\"release\\":0.1,\\"bandf\\":100,\\"bandq\\":1,\\"gain\\":3}", @@ -6591,7 +6591,7 @@ exports[`renders shared tunes > shared tune 301 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 302 https://strudel.tidalcycles.org/?bUd8QxyN4kvJ 1`] = ` +exports[`renders shared tunes > shared tune 302 https://strudel.cc/?bUd8QxyN4kvJ 1`] = ` [ "0/1 -> 1/8: {\\"note\\":\\"g4\\",\\"s\\":\\"xx\\",\\"cutoff\\":2348.1232826650858,\\"room\\":0.8,\\"pan\\":0,\\"gain\\":0.5}", "3/8 -> 1/2: {\\"note\\":\\"g4\\",\\"s\\":\\"xx\\",\\"cutoff\\":2919.6960066389074,\\"room\\":0.8,\\"pan\\":0,\\"gain\\":0.5}", @@ -6624,7 +6624,7 @@ exports[`renders shared tunes > shared tune 302 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 303 https://strudel.tidalcycles.org/?y5PdLktz5gnb 1`] = ` +exports[`renders shared tunes > shared tune 303 https://strudel.cc/?y5PdLktz5gnb 1`] = ` [ "0/1 -> 1/4: {\\"note\\":\\"e3\\",\\"s\\":\\"sawtooth\\",\\"decay\\":0.1,\\"sustain\\":0.1,\\"bandf\\":50,\\"bandq\\":0.5,\\"gain\\":3.8519497029047303}", "1/4 -> 1/2: {\\"note\\":\\"e3\\",\\"s\\":\\"sawtooth\\",\\"decay\\":0.1,\\"sustain\\":0.1,\\"bandf\\":50,\\"bandq\\":0.5,\\"gain\\":2.22836140246614}", @@ -6650,7 +6650,7 @@ exports[`renders shared tunes > shared tune 303 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 304 https://strudel.tidalcycles.org/?BpChMc3nxrYv 1`] = ` +exports[`renders shared tunes > shared tune 304 https://strudel.cc/?BpChMc3nxrYv 1`] = ` [ "0/1 -> 3/2: {\\"s\\":\\"bd\\",\\"speed\\":0.7519542165100574}", "3/4 -> 3/2: {\\"s\\":\\"sd\\",\\"speed\\":0.7931522866332671}", @@ -6707,7 +6707,7 @@ exports[`renders shared tunes > shared tune 304 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 305 https://strudel.tidalcycles.org/?Swuvt887AOe1 1`] = ` +exports[`renders shared tunes > shared tune 305 https://strudel.cc/?Swuvt887AOe1 1`] = ` [ "0/1 -> 3/2: {\\"s\\":\\"bd\\",\\"speed\\":0.7519542165100574}", "3/4 -> 3/2: {\\"s\\":\\"sd\\",\\"speed\\":0.7931522866332671}", @@ -6764,7 +6764,7 @@ exports[`renders shared tunes > shared tune 305 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 306 https://strudel.tidalcycles.org/?UboMuFOnT0hy 1`] = ` +exports[`renders shared tunes > shared tune 306 https://strudel.cc/?UboMuFOnT0hy 1`] = ` [ "0/1 -> 1/3: {\\"s\\":\\"bd\\"}", "1/3 -> 2/3: {\\"s\\":\\"hh\\"}", @@ -6784,7 +6784,7 @@ exports[`renders shared tunes > shared tune 306 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 307 https://strudel.tidalcycles.org/?vYFGpZ6XObVG 1`] = ` +exports[`renders shared tunes > shared tune 307 https://strudel.cc/?vYFGpZ6XObVG 1`] = ` [ "0/1 -> 1/3: {\\"s\\":\\"bd\\"}", "1/3 -> 2/3: {\\"s\\":\\"hh\\"}", @@ -6804,7 +6804,7 @@ exports[`renders shared tunes > shared tune 307 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 308 https://strudel.tidalcycles.org/?TUw_9DfBSsiW 1`] = ` +exports[`renders shared tunes > shared tune 308 https://strudel.cc/?TUw_9DfBSsiW 1`] = ` [ "0/1 -> 2/3: {\\"s\\":\\"bd\\",\\"speed\\":0.7519542165100574}", "1/3 -> 2/3: {\\"s\\":\\"sd\\",\\"speed\\":0.7931522866332671}", @@ -6918,7 +6918,7 @@ exports[`renders shared tunes > shared tune 308 https://strudel.tidalcycles.org/ ] `; -exports[`renders shared tunes > shared tune 309 https://strudel.tidalcycles.org/?ctHqwq-97t6X 1`] = ` +exports[`renders shared tunes > shared tune 309 https://strudel.cc/?ctHqwq-97t6X 1`] = ` [ "0/1 -> 1/2: {\\"s\\":\\"bd\\",\\"delay\\":0.5,\\"delaytime\\":0.33,\\"delayfeedback\\":0.6,\\"speed\\":-1}", "1/2 -> 1/1: {\\"s\\":\\"sd\\",\\"delay\\":0.5,\\"delaytime\\":0.33,\\"delayfeedback\\":0.6,\\"speed\\":-1}", diff --git a/test/__snapshots__/tunes.test.mjs.snap b/test/__snapshots__/tunes.test.mjs.snap index cd89ee3f..8d696d75 100644 --- a/test/__snapshots__/tunes.test.mjs.snap +++ b/test/__snapshots__/tunes.test.mjs.snap @@ -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 ]", ] `; @@ -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 ]", ] `; diff --git a/test/runtime.mjs b/test/runtime.mjs index 618226bb..fc8f4450 100644 --- a/test/runtime.mjs +++ b/test/runtime.mjs @@ -228,5 +228,5 @@ export const testCycles = { festivalOfFingers3: 16, }; -// fixed: https://strudel.tidalcycles.org/?DBp75NUfSxIn (missing .note()) -// bug: https://strudel.tidalcycles.org/?xHaKTd1kTpCn + https://strudel.tidalcycles.org/?o5LLePbx8kiQ +// fixed: https://strudel.cc/?DBp75NUfSxIn (missing .note()) +// bug: https://strudel.cc/?xHaKTd1kTpCn + https://strudel.cc/?o5LLePbx8kiQ diff --git a/test/shared.test.mjs b/test/shared.test.mjs index 229d89df..e3292751 100644 --- a/test/shared.test.mjs +++ b/test/shared.test.mjs @@ -4,7 +4,7 @@ import data from './dbdump.json'; describe('renders shared tunes', async () => { data.forEach(({ id, code, hash }) => { - const url = `https://strudel.tidalcycles.org/?${hash}`; + const url = `https://strudel.cc/?${hash}`; it(`shared tune ${id} ${url}`, async ({ expect }) => { if (code.includes('import(')) { console.log('skip', url); diff --git a/website/README.md b/website/README.md index e8087199..115d6d55 100644 --- a/website/README.md +++ b/website/README.md @@ -1,6 +1,6 @@ # Strudel Website -This is the website for Strudel, deployed at [strudel.tidalcycles.org](https://strudel.tidalcycles.org/). +This is the website for Strudel, deployed at [strudel.cc](https://strudel.cc). It includes the REPL live coding editor and the documentation site. ## Run locally @@ -56,7 +56,7 @@ All commands are run from the root of the project, from a terminal: | Command | Action | | :--------------------- | :----------------------------------------------- | | `npm install` | Installs dependencies | -| `npm run dev` | Starts local dev server at `localhost:3000` | +| `npm run dev` | Starts local dev server at `localhost:4321` | | `npm run build` | Build your production site to `./dist/` | | `npm run preview` | Preview your build locally, before deploying | | `npm run astro ...` | Run CLI commands like `astro add`, `astro check` | diff --git a/website/agpl-header.txt b/website/agpl-header.txt index 7256f033..6fd0c0fc 100644 --- a/website/agpl-header.txt +++ b/website/agpl-header.txt @@ -1,7 +1,7 @@ /* Strudel - javascript-based environment for live coding algorithmic (musical) patterns -https://strudel.tidalcycles.org / https://github.com/tidalcycles/strudel/ +https://strudel.cc / https://github.com/tidalcycles/strudel/ Copyright (C) Strudel contributors https://github.com/tidalcycles/strudel/graphs/contributors diff --git a/website/astro.config.mjs b/website/astro.config.mjs index bd018ddd..f8fceaf7 100644 --- a/website/astro.config.mjs +++ b/website/astro.config.mjs @@ -11,7 +11,7 @@ import tailwind from '@astrojs/tailwind'; import AstroPWA from '@vite-pwa/astro'; // import { visualizer } from 'rollup-plugin-visualizer'; -const site = `https://strudel.tidalcycles.org/`; // root url without a path +const site = `https://strudel.cc/`; // root url without a path const base = '/'; // base path of the strudel site // this rehype plugin converts relative anchor links to absolute ones @@ -50,6 +50,7 @@ export default defineConfig({ mdx(options), tailwind(), AstroPWA({ + experimental: { directoryAndTrailingSlashHandler: true }, registerType: 'autoUpdate', injectRegister: 'auto', workbox: { diff --git a/website/package.json b/website/package.json index 6ac799d3..f5354842 100644 --- a/website/package.json +++ b/website/package.json @@ -13,9 +13,9 @@ }, "dependencies": { "@algolia/client-search": "^4.17.0", - "@astrojs/mdx": "^0.19.0", - "@astrojs/react": "^2.1.1", - "@astrojs/tailwind": "^3.1.1", + "@astrojs/mdx": "^1.1.3", + "@astrojs/react": "^3.0.4", + "@astrojs/tailwind": "^5.0.2", "@docsearch/css": "^3.3.4", "@docsearch/react": "^3.3.4", "@headlessui/react": "^1.7.14", @@ -34,6 +34,8 @@ "@strudel.cycles/transpiler": "workspace:*", "@strudel.cycles/webaudio": "workspace:*", "@strudel.cycles/xen": "workspace:*", + "@strudel/hydra": "workspace:*", + "@strudel/codemirror": "workspace:*", "@strudel/desktopbridge": "workspace:*", "@supabase/supabase-js": "^2.21.0", "@tailwindcss/forms": "^0.5.3", @@ -43,7 +45,7 @@ "@types/react": "^18.2.0", "@types/react-dom": "^18.2.1", "@uiw/codemirror-themes-all": "^4.19.16", - "astro": "^2.3.2", + "astro": "^3.4.2", "canvas": "^2.11.2", "claviature": "^0.1.0", "fraction.js": "^4.2.0", @@ -58,9 +60,9 @@ "tailwindcss": "^3.3.2" }, "devDependencies": { - "@vite-pwa/astro": "^0.0.5", + "@vite-pwa/astro": "^0.1.4", "html-escaper": "^3.0.3", - "vite-plugin-pwa": "^0.14.7", - "workbox-window": "^6.5.4" + "vite-plugin-pwa": "^0.16.5", + "workbox-window": "^7.0.0" } } diff --git a/website/public/CNAME b/website/public/CNAME index 63687b2b..e7c96b4e 100644 --- a/website/public/CNAME +++ b/website/public/CNAME @@ -1 +1 @@ -strudel.tidalcycles.org +strudel.cc \ No newline at end of file diff --git a/website/src/config.ts b/website/src/config.ts index ba9b0666..962bfdb0 100644 --- a/website/src/config.ts +++ b/website/src/config.ts @@ -6,7 +6,7 @@ export const SITE = { export const OPEN_GRAPH = { image: { - src: 'https://strudel.tidalcycles.org/icon.png', + src: 'https://strudel.cc/icon.png', alt: 'Strudel Logo', }, }; @@ -70,14 +70,13 @@ 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' }, + { text: 'Hydra', link: 'learn/hydra' }, ], 'Pattern Functions': [ { text: 'Introduction', link: 'functions/intro' }, @@ -89,7 +88,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/MiniRepl.css b/website/src/docs/MiniRepl.css index 84927a88..c46110b7 100644 --- a/website/src/docs/MiniRepl.css +++ b/website/src/docs/MiniRepl.css @@ -1,26 +1,26 @@ -.cm-activeLine, -.cm-activeLineGutter { +.mini-repl .cm-activeLine, +.mini-repl .cm-activeLineGutter { background-color: transparent !important; } -.cm-theme { +.mini-repl .cm-theme { background-color: var(--background); border: 1px solid var(--lineHighlight); padding: 2px; } -.cm-scroller { +.mini-repl .cm-scroller { font-family: inherit !important; } -.cm-gutters { +.mini-repl .cm-gutters { display: none !important; } -.cm-cursorLayer { +.mini-repl .cm-cursorLayer { animation-name: inherit !important; } -.cm-cursor { +.mini-repl .cm-cursor { border-left: 2px solid currentcolor !important; } diff --git a/website/src/docs/MiniRepl.jsx b/website/src/docs/MiniRepl.jsx index 7c5079a0..4b2fcfa8 100644 --- a/website/src/docs/MiniRepl.jsx +++ b/website/src/docs/MiniRepl.jsx @@ -20,6 +20,7 @@ if (typeof window !== 'undefined') { import('@strudel.cycles/osc'), import('@strudel.cycles/csound'), import('@strudel.cycles/soundfonts'), + import('@strudel/hydra'), ); } @@ -50,7 +51,7 @@ export function MiniRepl({ .catch((err) => console.error(err)); }, []); return Repl ? ( -

+
@@ -42,9 +42,9 @@ lpf = **l**ow **p**ass **f**ilter - Füg noch mehr `lpf` Werte hinzu -- Das pattern in `lpf` ändert nicht den Rhythmus der Bassline +- Das Pattern in `lpf` ändert nicht den Rhythmus der Basslinie -Später sehen wir wie man mit Wellenformen Dinge automatisieren kann. +Später sehen wir, wie man mit Wellenformen Dinge automatisieren kann. @@ -73,7 +73,7 @@ Später sehen wir wie man mit Wellenformen Dinge automatisieren kann. Bei Rhythmen ist die Dynamik (= Veränderungen der Lautstärke) sehr wichtig. -- Entferne `.gain(...)` und achte darauf wie es viel flacher klingt. +- Entferne `.gain(...)` und achte darauf, wie es viel flacher klingt. - Mach es rückgängig (strg+z dann strg+enter) @@ -99,13 +99,13 @@ Lass uns die obigen Beispiele kombinieren: -Versuche die einzelnen Teile innerhalb `stack` zu erkennen, schau dir an wie die Kommas gesetzt sind. +Versuche die einzelnen Teile innerhalb von `stack` zu erkennen. Schau dir an wie die Kommas gesetzt sind. -Die 3 Teile (Drums, Bass, Akkorde) sind genau wie vorher, nur in einem `stack`, getrennt durch Kommas +Die 3 Teile (Drums, Bass, Akkorde) sind genau wie vorher, nur in einem `stack`, getrennt durch Kommas. -**Den Sound formen mit ADSR Hüllkurve** +**Den Sound formen mit ADSR-Hüllkurve** -Versuche herauszufinden was die Zahlen machen. Probier folgendes: +Versuche herauszufinden, was die Zahlen machen. Probier folgendes: - attack: `.5` vs `0` - decay: `.5` vs `0` - sustain: `1` vs `.25` vs `0` - release: `0` vs `.5` vs `1` -Kannst du erraten was die einzelnen Werte machen? +Kannst du erraten, was die einzelnen Werte machen? @@ -142,7 +142,7 @@ Kannst du erraten was die einzelnen Werte machen? -**adsr Kurznotation** +**adsr-Kurznotation** @@ -181,7 +181,7 @@ Was passiert wenn du `.delay(".8:.06:.8")` schreibst? Kannst du erraten was die - a: Lautstärke des Delays - b: Verzögerungszeit -- c: Feedback (je kleiner desto schneller verschwindet das Delay) +- c: Feedback (je kleiner, desto schneller verschwindet das Delay) @@ -203,7 +203,7 @@ Füg auch ein Delay hinzu! -**kleiner dub tune** +**kleiner Dub-Tune** -Füg `.hush()` ans ende eines Patterns im stack... +Füg `.hush()` ans Ende eines Patterns im stack... @@ -258,25 +258,25 @@ Füg `.hush()` ans ende eines Patterns im stack... **fast and slow = schnell und langsam** -Mit `fast` und `slow` kann man das tempo eines patterns außerhalb der Mini-Notation ändern: +Mit `fast` und `slow` kann man das Tempo eines Patterns außerhalb der Mini-Notation ändern: -Ändere den `slow` Wert. Tausche `slow` durch `fast`. +Ändere den `slow`-Wert. Ersetze `slow` durch `fast`. -Was passiert wenn du den Wert automatisierst? z.b. `.fast("<1 [2 4]>")` ? +Was passiert, wenn du den Wert automatisierst? z.b. `.fast("<1 [2 4]>")` ? -Übrigens, innerhalb der Mini-Notation, `fast` ist `*` und `slow` ist `/`. +Übrigens, innerhalb der Mini-Notation: `fast` ist `*` und `slow` ist `/`. ")`} /> ## Automation mit Signalen -Anstatt Werte schrittweise zu automatisieren können wir auch sogenannte Signale benutzen: +Anstatt Werte schrittweise zu automatisieren, können wir auch sogenannte Signale benutzen: @@ -296,7 +296,7 @@ Signale bewegen sich standardmäßig zwischen 0 und 1. Wir können das mit `rang -`range` ist nützlich wenn wir Funktionen mit einem anderen Wertebereich als 0 und 1 automatisieren wollen (z.b. lpf) +`range` ist nützlich wenn wir Funktionen mit einem anderen Wertebereich als 0 und 1 automatisieren wollen (z.b. `lpf`) @@ -322,7 +322,7 @@ Die ganze Automation braucht nun 8 cycle bis sie sich wiederholt. ## Rückblick -| name | example | +| Name | Beispiel | | ----- | -------------------------------------------------------------------------------------------------- | | lpf | ")`} /> | | vowel | ")`} /> | @@ -333,4 +333,4 @@ Die ganze Automation braucht nun 8 cycle bis sie sich wiederholt. | speed | ")`} /> | | range | | -Lass uns nun die für Tidal typischen [Pattern Effekte anschauen](/de/workshop/pattern-effects). +Lass uns nun die für Tidal typischen [Pattern-Effekte anschauen](/de/workshop/pattern-effects). diff --git a/website/src/pages/de/workshop/first-sounds.mdx b/website/src/pages/de/workshop/first-sounds.mdx index fea64cbd..a689add8 100644 --- a/website/src/pages/de/workshop/first-sounds.mdx +++ b/website/src/pages/de/workshop/first-sounds.mdx @@ -277,7 +277,7 @@ Das haben wir bisher gelernt: | Schneller | \* | | | Parallel | , | | -Die mit Apostrophen umgebene Mini-Notation benutzt man normalerweise in eine sogenannten Funktion. +Die mit Apostrophen umgebene Mini-Notation benutzt man normalerweise in einer sogenannten Funktion. Die folgenden Funktionen haben wir bereits gesehen: | Name | Description | Example | diff --git a/website/src/pages/de/workshop/getting-started.mdx b/website/src/pages/de/workshop/getting-started.mdx index c86fa668..5ecc60f2 100644 --- a/website/src/pages/de/workshop/getting-started.mdx +++ b/website/src/pages/de/workshop/getting-started.mdx @@ -22,7 +22,7 @@ in der Muster eine Rolle spielen. Du brauchst keine Erfahrung in JavaScript oder Tidal Cycles um mit Strudel Musik zu machen. Dieser interaktive Workshop leitet dich spielerisch durch die Grundlagen von Strudel. -Der beste Ort um mit Strudel Musik zu machen ist das [Strudel REPL](https://strudel.tidalcycles.org/). +Der beste Ort um mit Strudel Musik zu machen ist das [Strudel REPL](https://strudel.cc/). ## Was kann man mit Strudel machen? @@ -66,7 +66,7 @@ Hier ist ein Beispiel wie Strudel klingen kann: Mehr Beispiele gibt es [hier](/examples). -Du kannst auch im [Strudel REPL](https://strudel.tidalcycles.org/) auf `shuffle` klicken um ein zufälliges Beispiel zu hören. +Du kannst auch im [Strudel REPL](https://strudel.cc/) auf `shuffle` klicken um ein zufälliges Beispiel zu hören. ## Workshop diff --git a/website/src/pages/de/workshop/pattern-effects.mdx b/website/src/pages/de/workshop/pattern-effects.mdx index b701958a..70335881 100644 --- a/website/src/pages/de/workshop/pattern-effects.mdx +++ b/website/src/pages/de/workshop/pattern-effects.mdx @@ -1,5 +1,5 @@ --- -title: Pattern Effekte +title: Pattern-Effekte layout: ../../../layouts/MainLayout.astro --- @@ -7,11 +7,11 @@ import { MiniRepl } from '@src/docs/MiniRepl'; import Box from '@components/Box.astro'; import QA from '@components/QA'; -# Pattern Effekte +# Pattern-Effekte -Bis jetzt sind die meisten Funktionen die wir kennengelernt haben ähnlich wie Funktionen in anderen Musik Programmen: Sequencing von Sounds, Noten und Effekten. +Bis jetzt sind die meisten Funktionen, die wir kennengelernt haben, ähnlich wie Funktionen in anderen Musik Programmen: Sequencing von Sounds, Noten und Effekten. -In diesem Kapitel beschäftigen wir uns mit Funktionen die weniger herkömmlich oder auch enzigartig sind. +In diesem Kapitel beschäftigen wir uns mit Funktionen die weniger herkömmlich oder auch einzigartig sind. **rev = rückwärts abspielen** @@ -21,7 +21,7 @@ In diesem Kapitel beschäftigen wir uns mit Funktionen die weniger herkömmlich -So würde man das ohne jux schreiben: +So würde man das ohne `jux` schreiben: -Lass uns visualisieren was hier passiert: +Lass uns visualisieren, was hier passiert: -Das hat den gleichen Effekt wie: +Das hat den gleichen Effekt, wie: "` -In der notation `x=>x.`, das `x` ist das Pattern das wir bearbeiten. +In der Notation `x=>x.`, ist `x` das Pattern, das wir bearbeiten. -`off` ist auch nützlich für sounds: +`off` ist auch nützlich für Sounds: x.`, das `x` ist das Pattern das wir bearbeiten. .off(1/8, x=>x.speed(1.5).gain(.25))`} /> -| name | description | example | +| Name | Beschreibung | Beispiel | | ---- | --------------------------------- | ---------------------------------------------------------------------------------------------- | | rev | rückwärts | | -| jux | ein stereo-kanal modifizieren | | -| add | addiert zahlen oder noten | ")).scale("C:minor")`} /> | -| ply | multipliziert jedes element x mal | ")`} /> | -| off | verzögert eine modifizierte kopie | x.speed(2))`} /> | +| jux | einen Stereo-Kanal modifizieren | | +| add | addiert Zahlen oder Noten | ")).scale("C:minor")`} /> | +| ply | multipliziert jedes Element x mal | ")`} /> | +| off | verzögert eine modifizierte Kopie | x.speed(2))`} /> | diff --git a/website/src/pages/de/workshop/recap.mdx b/website/src/pages/de/workshop/recap.mdx index db392b8b..c0d577d1 100644 --- a/website/src/pages/de/workshop/recap.mdx +++ b/website/src/pages/de/workshop/recap.mdx @@ -7,19 +7,19 @@ import { MiniRepl } from '../../../docs/MiniRepl'; # Workshop Rückblick -Diese Seite ist eine Auflistung aller im Workshop enthaltenen Funktionen. +Diese Seite ist eine Auflistung aller im Workshop vorgestellten Funktionen. ## Mini Notation -| Concept | Syntax | Example | +| Konzept | Syntax | Beispiel | | --------------------- | -------- | -------------------------------------------------------------------------------- | -| Sequence | space | | -| Sample Nummer | :x | | +| Sequenz | space | | +| Sample-Nummer | :x | | | Pausen | ~ | | -| Unter-Sequences | \[\] | | -| Unter-Unter-Sequences | \[\[\]\] | | +| Unter-Sequenzen | \[\] | | +| Unter-Unter-Sequenzen | \[\[\]\] | | | Schneller | \* | | -| Slow down | \/ | | +| Verlangsamen | \/ | | | Parallel | , | | | Alternieren | \<\> | ")`} /> | | Verlängern | @ | | @@ -27,23 +27,23 @@ Diese Seite ist eine Auflistung aller im Workshop enthaltenen Funktionen. ## Sounds -| Name | Description | Example | +| Name | Beschreibung | Beispiel | | ----- | -------------------------- | ---------------------------------------------------------------------------------- | -| sound | spielt den sound mit namen | | -| bank | wählt die soundbank | | -| n | wählt sample mit nummer | | +| sound | spielt den Sound mit Namen | | +| bank | wählt die Soundbank | | +| n | wählt Sample mit Nummer | | -## Notes +## Noten -| Name | Description | Example | +| Name | Beschreibung | Beispiel | | --------- | ---------------------------------- | -------------------------------------------------------------------------------------------- | -| note | wählt note per zahl oder buchstabe | | -| n + scale | wählt note n in skala | | -| stack | spielt mehrere patterns parallel | | +| note | wählt Note per Zahl oder Buchstabe | | +| n + scale | wählt Note n in Skala | | +| stack | spielt mehrere Patterns parallel | | -## Audio Effekte +## Audio-Effekte -| name | example | +| Name | Beispiele | | ----- | -------------------------------------------------------------------------------------------------- | | lpf | ")`} /> | | vowel | ")`} /> | @@ -54,15 +54,15 @@ Diese Seite ist eine Auflistung aller im Workshop enthaltenen Funktionen. | speed | ")`} /> | | range | | -## Pattern Effects +## Pattern-Effekte -| name | description | example | +| Name | Beschreibung | Beispiel | | ---- | --------------------------------- | ---------------------------------------------------------------------------------------------- | -| cpm | tempo in cycles pro minute | | +| cpm | Tempo in Cycles pro Minute | | | fast | schneller | | | slow | langsamer | | | rev | rückwärts | | -| jux | ein stereo-kanal modifizieren | | -| add | addiert zahlen oder noten | ")).scale("C:minor")`} /> | -| ply | jedes element schneller machen | ")`} /> | -| off | verzögert eine modifizierte kopie | x.speed(2))`} /> | +| jux | einen Stereo-Kanal modifizieren | | +| add | addiert Zahlen oder Noten | ")).scale("C:minor")`} /> | +| ply | jedes Element schneller machen | ")`} /> | +| off | verzögert eine modifizierte Kopie | x.speed(2))`} /> | diff --git a/website/src/pages/learn/conditional-modifiers.mdx b/website/src/pages/learn/conditional-modifiers.mdx index 2bc4b42d..d66b2698 100644 --- a/website/src/pages/learn/conditional-modifiers.mdx +++ b/website/src/pages/learn/conditional-modifiers.mdx @@ -60,4 +60,12 @@ import { JsDoc } from '../../docs/JsDoc'; +## pick + + + +## squeeze + + + After Conditional Modifiers, let's see what [Accumulation Modifiers](/learn/accumulation) have to offer. diff --git a/website/src/pages/learn/effects.mdx b/website/src/pages/learn/effects.mdx index f77ab4c4..b1323a8e 100644 --- a/website/src/pages/learn/effects.mdx +++ b/website/src/pages/learn/effects.mdx @@ -82,6 +82,10 @@ Strudel uses ADSR envelopes, which are probably the most common way to describe +## adsr + + + # 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. @@ -144,6 +148,18 @@ There is one filter envelope for each filter type and thus one set of envelope f +## compressor + + + +## postgain + + + +## xfade + + + # Panning ## jux @@ -183,24 +199,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/getting-started.mdx b/website/src/pages/learn/getting-started.mdx index 3f41c859..29cd6b7d 100644 --- a/website/src/pages/learn/getting-started.mdx +++ b/website/src/pages/learn/getting-started.mdx @@ -10,11 +10,11 @@ import { JsDoc } from '../../docs/JsDoc'; Welcome to the Strudel documentation pages! -These pages will introduce you to [Strudel](https://strudel.tidalcycles.org/), a web-based [live coding](https://github.com/toplap/awesome-livecoding/) environment that implements the [Tidal Cycles](https://tidalcycles.org) algorithmic pattern language. +These pages will introduce you to [Strudel](https://strudel.cc/), a web-based [live coding](https://github.com/toplap/awesome-livecoding/) environment that implements the [Tidal Cycles](https://tidalcycles.org) algorithmic pattern language. # What is Strudel? -[Strudel](https://strudel.tidalcycles.org/) is a version of [Tidal Cycles](https://tidalcycles.org) written in [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript), initiated by [Alex McLean](https://slab.org) and [Felix Roos](https://github.com/felixroos) in 2022. +[Strudel](https://strudel.cc/) is a version of [Tidal Cycles](https://tidalcycles.org) written in [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript), initiated by [Alex McLean](https://slab.org) and [Felix Roos](https://github.com/felixroos) in 2022. Tidal Cycles, also known as Tidal, is a language for [algorithmic pattern](https://algorithmicpattern.org), and though it is most commonly used for [making music](https://tidalcycles.org/docs/showcase), it can be used for any kind of pattern making activity, including [weaving](https://www.youtube.com/watch?v=TfEmEsusXjU). Tidal was first implemented as a library written in the [Haskell](https://www.haskell.org/) functional programming language, and by itself it does not make any sound. @@ -24,7 +24,7 @@ Strudel however runs directly in your web browser, does not require any custom s # Strudel REPL and MiniREPL -The main place to actually make music with Strudel is the [Strudel REPL](https://strudel.tidalcycles.org/) ([what is a REPL?](https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop)), but in these pages you will also encounter interactive "MiniREPLs" where you can listen to and edit Strudel patterns. +The main place to actually make music with Strudel is the [Strudel REPL](https://strudel.cc/) ([what is a REPL?](https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop)), but in these pages you will also encounter interactive "MiniREPLs" where you can listen to and edit Strudel patterns. Try clicking the play icon below: @@ -38,7 +38,7 @@ This interactive tutorial will guide you through the basics of Strudel. # Show me some demos! -To see and hear what Strudel can do, visit the [Strudel REPL](https://strudel.tidalcycles.org/) and click the Shuffle icon in the top menu bar. +To see and hear what Strudel can do, visit the [Strudel REPL](https://strudel.cc/) and click the Shuffle icon in the top menu bar. You can get a feel for Strudel by browsing and editing these examples and clicking the Refresh icon to update. You can also browse through the examples [here](./examples). diff --git a/website/src/pages/learn/hydra.mdx b/website/src/pages/learn/hydra.mdx new file mode 100644 index 00000000..a506e53c --- /dev/null +++ b/website/src/pages/learn/hydra.mdx @@ -0,0 +1,55 @@ +--- +title: Hydra +layout: ../../layouts/MainLayout.astro +--- + +import { MiniRepl } from '../../docs/MiniRepl'; + +# Using Hydra inside Strudel + +You can write [hydra](https://hydra.ojack.xyz/) code in strudel! All you have to do is to call `await initHydra()` at the top: + +,b4]/4").s("sawtooth").vib(2) +.lpf(600).lpa(2).lpenv(6) +`} +/> + +There is a special function `H` that allows you to use a pattern as an input to hydra: + + + +You might now be able to see this properly here: [open in REPL](/#YXdhaXQgaW5pdEh5ZHJhKCkKbGV0IHBhdHRlcm4gPSAiMyA0IDUgWzYgN10qMiIKc2hhcGUoSChwYXR0ZXJuKSkub3V0KG8wKQpuKHBhdHRlcm4pLnNjYWxlKCJBOm1pbm9yIikucGlhbm8oKS5yb29tKDEpIA%3D%3D) diff --git a/website/src/pages/learn/input-output.mdx b/website/src/pages/learn/input-output.mdx index e4c2a63f..de44b4f9 100644 --- a/website/src/pages/learn/input-output.mdx +++ b/website/src/pages/learn/input-output.mdx @@ -71,7 +71,7 @@ Now you're all set! ## Usage 1. Start SuperCollider, either using SuperCollider IDE or by running `sclang` in a terminal -2. Open the [Strudel REPL](https://strudel.tidalcycles.org/#cygiYmQgc2QiKS5vc2MoKQ%3D%3D) +2. Open the [Strudel REPL](https://strudel.cc/#cygiYmQgc2QiKS5vc2MoKQ%3D%3D) ...or test it here: diff --git a/website/src/pages/learn/metadata.mdx b/website/src/pages/learn/metadata.mdx index 27f46921..9ade4447 100644 --- a/website/src/pages/learn/metadata.mdx +++ b/website/src/pages/learn/metadata.mdx @@ -18,7 +18,7 @@ You can optionally add some music metadata in your Strudel code, by using tags i Like other comments, those are ignored by Strudel, but it can be used by other tools to retrieve some information about the music. -It is for instance used by the [swatch tool](https://github.com/tidalcycles/strudel/tree/main/my-patterns) to display pattern titles in the [examples page](https://strudel.tidalcycles.org/examples/). +It is for instance used by the [swatch tool](https://github.com/tidalcycles/strudel/tree/main/my-patterns) to display pattern titles in the [examples page](https://strudel.cc/examples/). ## Alternative syntax diff --git a/website/src/pages/learn/mini-notation.mdx b/website/src/pages/learn/mini-notation.mdx index d0844f45..9f92d428 100644 --- a/website/src/pages/learn/mini-notation.mdx +++ b/website/src/pages/learn/mini-notation.mdx @@ -13,7 +13,7 @@ Just like [Tidal Cycles](https://tidalcycles.org/), Strudel uses a so called "Mi ## Note This page just explains the entirety of the Mini-Notation syntax. -If you are just getting started with Strudel, you can learn the basics of the Mini-Notation in a more practical manner in the [workshop](http://localhost:3000/workshop/first-sounds). +If you are just getting started with Strudel, you can learn the basics of the Mini-Notation in a more practical manner in the [workshop](/workshop/first-sounds). After that, you can come back here if you want to understand every little detail. ## Example diff --git a/website/src/pages/learn/pwa.mdx b/website/src/pages/learn/pwa.mdx index b7514766..a283112d 100644 --- a/website/src/pages/learn/pwa.mdx +++ b/website/src/pages/learn/pwa.mdx @@ -5,7 +5,7 @@ layout: ../../layouts/MainLayout.astro # Using Strudel Offline -You can use Strudel even without a network! When you first visit the [Strudel REPL](strudel.tidalcycles.org/), +You can use Strudel even without a network! When you first visit the [Strudel REPL](https://strudel.cc/), your browser will download the whole web app including documentation. When the download is finished (<1MB), you can visit the website even when offline, getting the downloaded website instead of the online one. @@ -32,7 +32,7 @@ You can view all cached files in your browser. ### Firefox - Open the Developer Tools (`Tools > Web Developer > Web Developer Tools`) -- go to `Storage` tab and expand `Cache Storage > https://strudel.tidalcycles.org`. +- go to `Storage` tab and expand `Cache Storage > https://strudel.cc`. - or go to the `Application` tab and view the latest updates in `Service Workers` ### Chromium based Browsers @@ -57,14 +57,14 @@ without the browser ui. With a chromium based browser: -1. go to the [Strudel REPL](strudel.tidalcycles.org/). +1. go to the [Strudel REPL](https://strudel.cc). 2. on the right of the adress bar, click `install Strudel REPL` 3. the REPL should now run as a standalone chromium app Without a chromium based browser, you can use [nativefier](https://github.com/nativefier/nativefier) to generate a desktop app: 1. make sure you have NodeJS installed -2. run `npx nativefier strudel.tidalcycles.org` +2. run `npx nativefier strudel.cc`
Strudel on Linux @@ -73,13 +73,13 @@ Without a chromium based browser, you can use [nativefier](https://github.com/na ### iOS -1. open to the [Strudel REPL](strudel.tidalcycles.org/) in safari +1. open to the [Strudel REPL](https://strudel.cc/) in safari 2. press the share icon and tab `Add to homescreen` 3. You should now have a strudel app icon that opens the repl in full screen ### Android -1. open to the [Strudel REPL](strudel.tidalcycles.org/) +1. open to the [Strudel REPL](https://strudel.cc/) 2. Tab the install button at the bottom Ok, what are [Patterns](/technical-manual/patterns) all about? diff --git a/website/src/pages/learn/samples.mdx b/website/src/pages/learn/samples.mdx index 10d8c730..dc0989c4 100644 --- a/website/src/pages/learn/samples.mdx +++ b/website/src/pages/learn/samples.mdx @@ -46,7 +46,7 @@ For drum sounds, strudel uses the comprehensive [tidal-drum-machines](https://gi Furthermore, strudel also loads instrument samples from [VCSL](https://github.com/sgossner/VCSL) by default. -To see which sample names are available, open the `sounds` tab in the [REPL](https://strudel.tidalcycles.org/). +To see which sample names are available, open the `sounds` tab in the [REPL](https://strudel.cc/). Note that only the sample maps (mapping names to URLs) are loaded initially, while the audio samples themselves are not loaded until they are actually played. This behaviour of loading things only when they are needed is also called `lazy loading`. @@ -283,7 +283,7 @@ With it, you can enter any sample name(s) to query from [freesound.org](https:// +You can also generate artificial voice samples with any text, in multiple languages. +Note that the language code and the gender parameters are optional and default to `en-GB` and `f` + + + # Sampler Effects Sampler effects are functions that can be used to change the behaviour of sample playback. @@ -335,6 +348,10 @@ Sampler effects are functions that can be used to change the behaviour of sample +### striate + + + ### slice diff --git a/website/src/pages/learn/strudel-vs-tidal.mdx b/website/src/pages/learn/strudel-vs-tidal.mdx index 8f67e779..60f24149 100644 --- a/website/src/pages/learn/strudel-vs-tidal.mdx +++ b/website/src/pages/learn/strudel-vs-tidal.mdx @@ -106,7 +106,7 @@ You can find a [list of available effects here](./learn/effects). ### Sampler -Strudel's sampler supports [a subset](http://127.0.0.1:3000/learn/samples) of Superdirt's sampler. +Strudel's sampler supports [a subset](/learn/samples) of Superdirt's sampler. Also, samples are always loaded from a URL rather than from the disk, although [that might be possible in the future](https://github.com/tidalcycles/strudel/issues/118). ## Evaluation diff --git a/website/src/pages/learn/synths.mdx b/website/src/pages/learn/synths.mdx index 9f21204f..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: diff --git a/website/src/pages/recipes/microrhythms.mdx b/website/src/pages/recipes/microrhythms.mdx index 7b2b2425..107b56fd 100644 --- a/website/src/pages/recipes/microrhythms.mdx +++ b/website/src/pages/recipes/microrhythms.mdx @@ -7,7 +7,7 @@ import { MiniRepl } from '../../docs/MiniRepl'; import { JsDoc } from '../../docs/JsDoc'; import { samples } from '@strudel.cycles/webaudio'; -see https://strudel.tidalcycles.org?zMEo5kowGrFc +see https://strudel.cc/?zMEo5kowGrFc # Microrhythms @@ -73,4 +73,4 @@ This is the second example of the video: s('hh').micro(0, 1/6, 2/5, 2/3, 3/4)`} /> -with bass: https://strudel.tidalcycles.org?sTglgJJCPIeY +with bass: https://strudel.cc/?sTglgJJCPIeY 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/technical-manual/docs.mdx b/website/src/pages/technical-manual/docs.mdx index 9b4732c1..aa18eab4 100644 --- a/website/src/pages/technical-manual/docs.mdx +++ b/website/src/pages/technical-manual/docs.mdx @@ -9,7 +9,7 @@ The docs page is built ontop of astro's [docs site](https://github.com/withastro ## Adding a new Docs Page -1. add a `.mdx` file in a path under `website/src/pages/`, e.g. [website/src/pages/learn/code.mdx](https://raw.githubusercontent.com/tidalcycles/strudel/main/website/src/pages/learn/code.mdx) will be available under https://strudel.tidalcycles.org/learn/code (or locally under `http://localhost:3000/learn/code`) +1. add a `.mdx` file in a path under `website/src/pages/`, e.g. [website/src/pages/learn/code.mdx](https://raw.githubusercontent.com/tidalcycles/strudel/main/website/src/pages/learn/code.mdx) will be available under https://strudel.cc/learn/code (or locally under `http://localhost:4321/learn/code`) 2. make sure to copy the top part of another existing docs page. Adjust the title accordingly 3. To add a link to the sidebar, add a new entry to `SIDEBAR` to [`config.ts`](https://github.com/tidalcycles/strudel/blob/main/website/src/config.ts) diff --git a/website/src/pages/technical-manual/repl.mdx b/website/src/pages/technical-manual/repl.mdx index 7f4ed03d..f336ce36 100644 --- a/website/src/pages/technical-manual/repl.mdx +++ b/website/src/pages/technical-manual/repl.mdx @@ -7,7 +7,7 @@ import { MiniRepl } from '../../docs/MiniRepl'; # REPL -{/* The [REPL](https://strudel.tidalcycles.org/) is the place where all packages come together to form a live coding system. It can also be seen as a reference implementation for users of the library. */} +{/* The [REPL](https://strudel.cc/) is the place where all packages come together to form a live coding system. It can also be seen as a reference implementation for users of the library. */} While Strudel can be used as a library in any JavaScript codebase, its main, reference user interface is the Strudel REPL^[REPL stands for read, evaluate, print/play, loop. It is friendly jargon for an interactive programming interface from computing heritage, usually for a commandline interface but also applied to live coding editors.], which is a browser-based live coding environment. This live code editor is dedicated to manipulating Strudel patterns while they play. The REPL features built-in visual feedback, highlighting which elements in the patterned (mini-notation) sequences are influencing the event that is currently being played. This feedback is designed to support both learning and live use of Strudel. diff --git a/website/src/pages/technical-manual/sounds.mdx b/website/src/pages/technical-manual/sounds.mdx index ede7a426..11078713 100644 --- a/website/src/pages/technical-manual/sounds.mdx +++ b/website/src/pages/technical-manual/sounds.mdx @@ -64,7 +64,7 @@ registerSound( freq(220, 440, 330).s('mysaw'); ``` -You can actually use this code in the [REPL](https://strudel.tidalcycles.org/) and it'll work. +You can actually use this code in the [REPL](https://strudel.cc/) and it'll work. After evaluating the code, you should see `mysaw` in listed in the sounds tab. ## Playing sounds 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/pages/workshop/getting-started.mdx b/website/src/pages/workshop/getting-started.mdx index 66eecdce..410c6da5 100644 --- a/website/src/pages/workshop/getting-started.mdx +++ b/website/src/pages/workshop/getting-started.mdx @@ -18,7 +18,7 @@ With Strudel, you can expressively write dynamic music pieces.
It is an official port of the [Tidal Cycles](https://tidalcycles.org/) pattern language to JavaScript.
You don't need to know JavaScript or Tidal Cycles to make music with Strudel. This interactive tutorial will guide you through the basics of Strudel.
-The best place to actually make music with Strudel is the [Strudel REPL](https://strudel.tidalcycles.org/) +The best place to actually make music with Strudel is the [Strudel REPL](https://strudel.cc/)
@@ -62,7 +62,7 @@ Here is an example of how strudel can sound: .slow(3/2)`} /> -To hear more, go to the [Strudel REPL](https://strudel.tidalcycles.org/) and press shuffle to hear a random example pattern. +To hear more, go to the [Strudel REPL](https://strudel.cc/) and press shuffle to hear a random example pattern. ## Getting Started diff --git a/website/src/repl/Footer.jsx b/website/src/repl/Footer.jsx index e824d43f..62dcbcdf 100644 --- a/website/src/repl/Footer.jsx +++ b/website/src/repl/Footer.jsx @@ -385,6 +385,7 @@ function SettingsTab({ scheduler }) { keybindings, isLineNumbersDisplayed, isAutoCompletionEnabled, + isTooltipEnabled, isLineWrappingEnabled, fontSize, fontFamily, @@ -436,7 +437,7 @@ function SettingsTab({ scheduler }) { settingsMap.setKey('keybindings', keybindings)} - items={{ codemirror: 'Codemirror', vim: 'Vim', emacs: 'Emacs' }} + items={{ codemirror: 'Codemirror', vim: 'Vim', emacs: 'Emacs', vscode: 'VSCode' }} > @@ -457,6 +458,11 @@ function SettingsTab({ scheduler }) { onChange={(cbEvent) => settingsMap.setKey('isAutoCompletionEnabled', cbEvent.target.checked)} value={isAutoCompletionEnabled} /> + settingsMap.setKey('isTooltipEnabled', cbEvent.target.checked)} + value={isTooltipEnabled} + /> settingsMap.setKey('isLineWrappingEnabled', cbEvent.target.checked)} diff --git a/website/src/repl/Reference.jsx b/website/src/repl/Reference.jsx index de52982e..cf6fd5b1 100644 --- a/website/src/repl/Reference.jsx +++ b/website/src/repl/Reference.jsx @@ -3,17 +3,31 @@ const visibleFunctions = jsdocJson.docs .filter(({ name, description }) => name && !name.startsWith('_') && !!description) .sort((a, b) => /* a.meta.filename.localeCompare(b.meta.filename) + */ a.name.localeCompare(b.name)); +const getInnerText = (html) => { + var div = document.createElement('div'); + div.innerHTML = html; + return div.textContent || div.innerText || ''; +}; + export function Reference() { return (
-
+

API Reference

@@ -24,8 +38,14 @@ export function Reference() {

{entry.name}

{/* {entry.meta.filename} */} -

+
    + {entry.params?.map(({ name, type, description }, i) => ( +
  • + {name} : {type.names?.join(' | ')} {description ? <> - {getInnerText(description)} : ''} +
  • + ))} +
{entry.examples?.map((example, j) => (
{example}
))} diff --git a/website/src/repl/Repl.jsx b/website/src/repl/Repl.jsx index 173bb455..41d4a35f 100644 --- a/website/src/repl/Repl.jsx +++ b/website/src/repl/Repl.jsx @@ -22,6 +22,8 @@ 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'; +import { writeText } from '@tauri-apps/api/clipboard'; const { latestCode } = settingsMap.get(); @@ -33,25 +35,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/hydra'), 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( @@ -76,9 +79,9 @@ async function initCode() { const initialUrl = window.location.href; const hash = initialUrl.split('?')[1]?.split('#')?.[0]; const codeParam = window.location.href.split('#')[1] || ''; - // looking like https://strudel.tidalcycles.org/?J01s5i1J0200 (fixed hash length) + // looking like https://strudel.cc/?J01s5i1J0200 (fixed hash length) if (codeParam) { - // looking like https://strudel.tidalcycles.org/#ImMzIGUzIg%3D%3D (hash length depends on code length) + // looking like https://strudel.cc/#ImMzIGUzIg%3D%3D (hash length depends on code length) return hash2code(codeParam); } else if (hash) { return supabase @@ -123,12 +126,14 @@ export function Repl({ embedded = false }) { fontFamily, isLineNumbersDisplayed, isAutoCompletionEnabled, + isTooltipEnabled, isLineWrappingEnabled, panelPosition, + isZen, } = 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 +147,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 +155,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 +225,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], ); @@ -259,7 +272,11 @@ export function Repl({ embedded = false }) { if (!error) { setLastShared(activeCode || code); // copy shareUrl to clipboard - await navigator.clipboard.writeText(shareUrl); + if (isTauri()) { + await writeText(shareUrl); + } else { + await navigator.clipboard.writeText(shareUrl); + } const message = `Link copied to clipboard: ${shareUrl}`; alert(message); // alert(message); @@ -312,13 +329,14 @@ export function Repl({ embedded = false }) { )}
-
+