mirror of
https://github.com/eliasstepanik/strudel.git
synced 2026-01-11 13:48:40 +00:00
Merge branch 'main' into inline-punchcard
This commit is contained in:
commit
2cc92a2b93
18
README.md
18
README.md
@ -15,25 +15,15 @@ An experiment in making a [Tidal](https://github.com/tidalcycles/tidal/) using w
|
||||
After cloning the project, you can run the REPL locally:
|
||||
|
||||
```bash
|
||||
pnpm run setup
|
||||
pnpm run repl
|
||||
pnpm i
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
## Using Strudel In Your Project
|
||||
|
||||
There are multiple npm packages you can use to use strudel, or only parts of it, in your project:
|
||||
This project is organized into many [packages](./packages), which are also available on [npm](https://www.npmjs.com/search?q=%40strudel).
|
||||
|
||||
- [`core`](./packages/core/): tidal pattern engine
|
||||
- [`mini`](./packages/mini): mini notation parser + core binding
|
||||
- [`transpiler`](./packages/transpiler): user code transpiler
|
||||
- [`webaudio`](./packages/webaudio): webaudio output
|
||||
- [`osc`](./packages/osc): bindings to communicate via OSC
|
||||
- [`midi`](./packages/midi): webmidi bindings
|
||||
- [`serial`](./packages/serial): webserial bindings
|
||||
- [`tonal`](./packages/tonal): tonal functions
|
||||
- ... [and there are more](./packages/)
|
||||
|
||||
Click on the package names to find out more about each one.
|
||||
Read more about how to use these in your own project [here](https://strudel.cc/technical-manual/project-start).
|
||||
|
||||
## Contributing
|
||||
|
||||
|
||||
@ -1,10 +1,9 @@
|
||||
<!doctype html>
|
||||
<script src="https://unpkg.com/@strudel/web@1.0.3"></script>
|
||||
<button id="play">play</button>
|
||||
<button id="stop">stop</button>
|
||||
<script type="module">
|
||||
import { initStrudel } from 'https://cdn.skypack.dev/@strudel/web@0.8.2';
|
||||
|
||||
initStrudel();
|
||||
<script>
|
||||
strudel.initStrudel();
|
||||
document.getElementById('play').addEventListener('click', () => evaluate('note("c a f e").jux(rev)'));
|
||||
document.getElementById('play').addEventListener('stop', () => hush());
|
||||
</script>
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<!doctype html>
|
||||
<script src="https://unpkg.com/@strudel/web@1.0.3"></script>
|
||||
<button id="a">A</button>
|
||||
<button id="b">B</button>
|
||||
<button id="c">C</button>
|
||||
<button id="stop">stop</button>
|
||||
<script type="module">
|
||||
import { initStrudel } from 'https://cdn.skypack.dev/@strudel/web@0.8.2';
|
||||
<script>
|
||||
initStrudel({
|
||||
prebake: () => samples('github:tidalcycles/dirt-samples'),
|
||||
});
|
||||
|
||||
@ -56,7 +56,6 @@
|
||||
"dependency-tree": "^10.0.9",
|
||||
"@tauri-apps/cli": "^1.5.9",
|
||||
"@vitest/ui": "^1.1.0",
|
||||
"canvas": "^2.11.2",
|
||||
"eslint": "^8.56.0",
|
||||
"eslint-plugin-import": "^2.29.1",
|
||||
"events": "^3.3.0",
|
||||
|
||||
@ -895,17 +895,37 @@ export const { delaytime, delayt, dt } = registerControl('delaytime', 'delayt',
|
||||
*/
|
||||
export const { lock } = registerControl('lock');
|
||||
/**
|
||||
* Set detune of oscillators. Works only with some synths, see <a target="_blank" href="https://tidalcycles.org/docs/patternlib/tutorials/synthesizers">tidal doc</a>
|
||||
* Set detune for stacked voices of supported oscillators
|
||||
*
|
||||
* @name detune
|
||||
* @param {number | Pattern} amount between 0 and 1
|
||||
* @param {number | Pattern} amount
|
||||
* @synonyms det
|
||||
* @superdirtOnly
|
||||
* @example
|
||||
* n("0 3 7").s('superzow').octave(3).detune("<0 .25 .5 1 2>").osc()
|
||||
* note("d f a a# a d3").fast(2).s("supersaw").detune("<.1 .2 .5 24.1>")
|
||||
*
|
||||
*/
|
||||
export const { detune, det } = registerControl('detune', 'det');
|
||||
/**
|
||||
* Set number of stacked voices for supported oscillators
|
||||
*
|
||||
* @name unison
|
||||
* @param {number | Pattern} numvoices
|
||||
* @example
|
||||
* note("d f a a# a d3").fast(2).s("supersaw").unison("<1 2 7>")
|
||||
*
|
||||
*/
|
||||
export const { unison } = registerControl('unison');
|
||||
|
||||
/**
|
||||
* Set the stereo pan spread for supported oscillators
|
||||
*
|
||||
* @name spread
|
||||
* @param {number | Pattern} spread between 0 and 1
|
||||
* @example
|
||||
* note("d f a a# a d3").fast(2).s("supersaw").spread("<0 .3 1>")
|
||||
*
|
||||
*/
|
||||
export const { spread } = registerControl('spread');
|
||||
/**
|
||||
* Set dryness of reverb. See `room` and `size` for more information about reverb.
|
||||
*
|
||||
|
||||
@ -2,32 +2,63 @@
|
||||
|
||||
This package contains a embeddable web component for the Strudel REPL.
|
||||
|
||||
## Usage
|
||||
## Usage via Script Tag
|
||||
|
||||
Either install with `npm i @strudel/embed` or just use a cdn to import the script:
|
||||
Use this code in any HTML file:
|
||||
|
||||
```html
|
||||
<script src="https://unpkg.com/@strudel/embed@latest"></script>
|
||||
<strudel-repl>
|
||||
<!--
|
||||
note(`[[e5 [b4 c5] d5 [c5 b4]]
|
||||
[a4 [a4 c5] e5 [d5 c5]]
|
||||
[b4 [~ c5] d5 e5]
|
||||
[c5 a4 a4 ~]
|
||||
[[~ d5] [~ f5] a5 [g5 f5]]
|
||||
[e5 [~ c5] e5 [d5 c5]]
|
||||
[b4 [b4 c5] d5 e5]
|
||||
[c5 a4 a4 ~]],
|
||||
[[e2 e3]*4]
|
||||
[[a2 a3]*4]
|
||||
[[g#2 g#3]*2 [e2 e3]*2]
|
||||
[a2 a3 a2 a3 a2 a3 b1 c2]
|
||||
[[d2 d3]*4]
|
||||
[[c2 c3]*4]
|
||||
[[b1 b2]*2 [e2 e3]*2]
|
||||
[[a1 a2]*4]`).slow(16)
|
||||
-->
|
||||
setcps(1)
|
||||
n("<0 1 2 3 4>*8").scale('G4 minor')
|
||||
.s("gm_lead_6_voice")
|
||||
.clip(sine.range(.2,.8).slow(8))
|
||||
.jux(rev)
|
||||
.room(2)
|
||||
.sometimes(add(note("12")))
|
||||
.lpf(perlin.range(200,20000).slow(4))
|
||||
-->
|
||||
</strudel-repl>
|
||||
```
|
||||
|
||||
Note that the Code is placed inside HTML comments to prevent the browser from treating it as HTML.
|
||||
This will load the strudel website in an iframe, using the code provided within the HTML comments `<!-- -->`.
|
||||
The HTML comments are needed to make sure the browser won't interpret it as HTML.
|
||||
|
||||
Alternatively you can create a REPL from JavaScript like this:
|
||||
|
||||
```html
|
||||
<script src="https://unpkg.com/@strudel/embed@1.0.2"></script>
|
||||
<div id="strudel"></div>
|
||||
<script>
|
||||
let editor = document.createElement('strudel-repl');
|
||||
editor.setAttribute(
|
||||
'code',
|
||||
`setcps(1)
|
||||
n("<0 1 2 3 4>*8").scale('G4 minor')
|
||||
.s("gm_lead_6_voice")
|
||||
.clip(sine.range(.2,.8).slow(8))
|
||||
.jux(rev)
|
||||
.room(2)
|
||||
.sometimes(add(note("12")))
|
||||
.lpf(perlin.range(200,20000).slow(4))`,
|
||||
);
|
||||
document.getElementById('strudel').append(editor);
|
||||
</script>
|
||||
```
|
||||
|
||||
When you're using JSX, you could also use the `code` attribute in your markup:
|
||||
|
||||
```html
|
||||
<script src="https://unpkg.com/@strudel/embed@1.0.2"></script>
|
||||
<strudel-repl code={`
|
||||
setcps(1)
|
||||
n("<0 1 2 3 4>*8").scale('G4 minor')
|
||||
.s("gm_lead_6_voice")
|
||||
.clip(sine.range(.2,.8).slow(8))
|
||||
.jux(rev)
|
||||
.room(2)
|
||||
.sometimes(add(note("12")))
|
||||
.lpf(perlin.range(200,20000).slow(4))
|
||||
`}></strudel-repl>
|
||||
```
|
||||
|
||||
@ -4,7 +4,7 @@ class Strudel extends HTMLElement {
|
||||
}
|
||||
connectedCallback() {
|
||||
setTimeout(() => {
|
||||
const code = (this.innerHTML + '').replace('<!--', '').replace('-->', '').trim();
|
||||
const code = this.getAttribute('code') || (this.innerHTML + '').replace('<!--', '').replace('-->', '').trim();
|
||||
const iframe = document.createElement('iframe');
|
||||
const src = `https://strudel.cc/#${encodeURIComponent(btoa(code))}`;
|
||||
// const src = `http://localhost:3000/#${encodeURIComponent(btoa(code))}`;
|
||||
|
||||
@ -2,4 +2,95 @@
|
||||
|
||||
The Strudel REPL as a web component.
|
||||
|
||||
[Usage example](https://github.com/tidalcycles/strudel/blob/main/examples/buildless/web-component-no-iframe.html)
|
||||
## Add Script Tag
|
||||
|
||||
First place this script tag once in your HTML:
|
||||
|
||||
```html
|
||||
<script src="https://unpkg.com/@strudel/repl@latest"></script>
|
||||
```
|
||||
|
||||
You can also pin the version like this:
|
||||
|
||||
```html
|
||||
<script src="https://unpkg.com/@strudel/repl@1.0.2"></script>
|
||||
```
|
||||
|
||||
This has the advantage that your code will always work, regardless of potential breaking changes in the strudel codebase.
|
||||
See [releases](https://github.com/tidalcycles/strudel/releases) for the latest versions.
|
||||
|
||||
## Use Web Component
|
||||
|
||||
When you've added the script tag, you can use the `strudel-editor` web component:
|
||||
|
||||
```html
|
||||
<strudel-editor>
|
||||
<!--
|
||||
setcps(1)
|
||||
n("<0 1 2 3 4>*8").scale('G4 minor')
|
||||
.s("gm_lead_6_voice")
|
||||
.clip(sine.range(.2,.8).slow(8))
|
||||
.jux(rev)
|
||||
.room(2)
|
||||
.sometimes(add(note("12")))
|
||||
.lpf(perlin.range(200,20000).slow(4))
|
||||
-->
|
||||
</strudel-editor>
|
||||
```
|
||||
|
||||
This will load the Strudel REPL using the code provided within the HTML comments `<!-- -->`.
|
||||
The HTML comments are needed to make sure the browser won't interpret it as HTML.
|
||||
|
||||
Alternatively you can create a REPL from JavaScript like this:
|
||||
|
||||
```html
|
||||
<script src="https://unpkg.com/@strudel/repl@latest"></script>
|
||||
<div id="strudel"></div>
|
||||
<script>
|
||||
const repl = document.createElement('strudel-editor');
|
||||
repl.setAttribute(
|
||||
'code',
|
||||
`setcps(1)
|
||||
n("<0 1 2 3 4>*8").scale('G4 minor')
|
||||
.s("gm_lead_6_voice")
|
||||
.clip(sine.range(.2,.8).slow(8))
|
||||
.jux(rev)
|
||||
.room(2)
|
||||
.sometimes(add(note("12")))
|
||||
.lpf(perlin.range(200,20000).slow(4))`,
|
||||
);
|
||||
document.getElementById('strudel').append(repl);
|
||||
</script>
|
||||
```
|
||||
|
||||
## Interacting with the REPL
|
||||
|
||||
If you get a hold of the `strudel-editor` element, you can interact with the strudel REPL from Javascript:
|
||||
|
||||
```html
|
||||
<script src="https://unpkg.com/@strudel/repl@latest"></script>
|
||||
<strudel-editor id="repl">
|
||||
<!-- ... -->
|
||||
</strudel-editor>
|
||||
<script>
|
||||
const repl = document.getElementById('repl');
|
||||
console.log(repl.editor);
|
||||
</script>
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```html
|
||||
<script src="https://unpkg.com/@strudel/repl@latest"></script>
|
||||
<div id="strudel"></div>
|
||||
<script>
|
||||
const repl = document.createElement('strudel-editor');
|
||||
repl.setAttribute('code', `...`);
|
||||
document.getElementById('strudel').append(repl);
|
||||
console.log(repl.editor);
|
||||
</script>
|
||||
```
|
||||
|
||||
The `.editor` property on the `strudel-editor` web component gives you the instance of [StrudelMirror](https://github.com/tidalcycles/strudel/blob/a46bd9b36ea7d31c9f1d3fca484297c7da86893f/packages/codemirror/codemirror.mjs#L124) that runs the REPL.
|
||||
|
||||
For example, you could use `setCode` to change the code from the outside, `start` / `stop` to toggle playback or `evaluate` to evaluate the code.
|
||||
|
||||
@ -186,3 +186,76 @@ export function getVibratoOscillator(param, value, t) {
|
||||
return vibratoOscillator;
|
||||
}
|
||||
}
|
||||
// ConstantSource inherits AudioScheduledSourceNode, which has scheduling abilities
|
||||
// a bit of a hack, but it works very well :)
|
||||
export function webAudioTimeout(audioContext, onComplete, startTime, stopTime) {
|
||||
const constantNode = audioContext.createConstantSource();
|
||||
constantNode.start(startTime);
|
||||
constantNode.stop(stopTime);
|
||||
constantNode.onended = () => {
|
||||
onComplete();
|
||||
};
|
||||
}
|
||||
const mod = (freq, range = 1, type = 'sine') => {
|
||||
const ctx = getAudioContext();
|
||||
const osc = ctx.createOscillator();
|
||||
osc.type = type;
|
||||
osc.frequency.value = freq;
|
||||
osc.start();
|
||||
const g = new GainNode(ctx, { gain: range });
|
||||
osc.connect(g); // -range, range
|
||||
return { node: g, stop: (t) => osc.stop(t) };
|
||||
};
|
||||
const fm = (frequencyparam, harmonicityRatio, modulationIndex, wave = 'sine') => {
|
||||
const carrfreq = frequencyparam.value;
|
||||
const modfreq = carrfreq * harmonicityRatio;
|
||||
const modgain = modfreq * modulationIndex;
|
||||
return mod(modfreq, modgain, wave);
|
||||
};
|
||||
export function applyFM(param, value, begin) {
|
||||
const {
|
||||
fmh: fmHarmonicity = 1,
|
||||
fmi: fmModulationIndex,
|
||||
fmenv: fmEnvelopeType = 'exp',
|
||||
fmattack: fmAttack,
|
||||
fmdecay: fmDecay,
|
||||
fmsustain: fmSustain,
|
||||
fmrelease: fmRelease,
|
||||
fmvelocity: fmVelocity,
|
||||
fmwave: fmWaveform = 'sine',
|
||||
duration,
|
||||
} = value;
|
||||
let modulator;
|
||||
let stop = () => {};
|
||||
|
||||
if (fmModulationIndex) {
|
||||
const ac = getAudioContext();
|
||||
const envGain = ac.createGain();
|
||||
const fmmod = fm(param, fmHarmonicity, fmModulationIndex, fmWaveform);
|
||||
|
||||
modulator = fmmod.node;
|
||||
stop = fmmod.stop;
|
||||
if (![fmAttack, fmDecay, fmSustain, fmRelease, fmVelocity].find((v) => v !== undefined)) {
|
||||
// no envelope by default
|
||||
modulator.connect(param);
|
||||
} else {
|
||||
const [attack, decay, sustain, release] = getADSRValues([fmAttack, fmDecay, fmSustain, fmRelease]);
|
||||
const holdEnd = begin + duration;
|
||||
getParamADSR(
|
||||
envGain.gain,
|
||||
attack,
|
||||
decay,
|
||||
sustain,
|
||||
release,
|
||||
0,
|
||||
1,
|
||||
begin,
|
||||
holdEnd,
|
||||
fmEnvelopeType === 'exp' ? 'exponential' : 'linear',
|
||||
);
|
||||
modulator.connect(envGain);
|
||||
envGain.connect(param);
|
||||
}
|
||||
}
|
||||
return { stop };
|
||||
}
|
||||
|
||||
@ -50,8 +50,8 @@ function loadWorklets() {
|
||||
return workletsLoading;
|
||||
}
|
||||
|
||||
function getWorklet(ac, processor, params) {
|
||||
const node = new AudioWorkletNode(ac, processor);
|
||||
export function getWorklet(ac, processor, params, config) {
|
||||
const node = new AudioWorkletNode(ac, processor, config);
|
||||
Object.entries(params).forEach(([key, value]) => {
|
||||
node.parameters.get(key).value = value;
|
||||
});
|
||||
|
||||
@ -1,31 +1,138 @@
|
||||
import { midiToFreq, noteToMidi } from './util.mjs';
|
||||
import { registerSound, getAudioContext } from './superdough.mjs';
|
||||
import { gainNode, getADSRValues, getParamADSR, getPitchEnvelope, getVibratoOscillator } from './helpers.mjs';
|
||||
import { clamp, midiToFreq, noteToMidi } from './util.mjs';
|
||||
import { registerSound, getAudioContext, getWorklet } from './superdough.mjs';
|
||||
import {
|
||||
applyFM,
|
||||
gainNode,
|
||||
getADSRValues,
|
||||
getParamADSR,
|
||||
getPitchEnvelope,
|
||||
getVibratoOscillator,
|
||||
webAudioTimeout,
|
||||
} from './helpers.mjs';
|
||||
import { getNoiseMix, getNoiseOscillator } from './noise.mjs';
|
||||
|
||||
const mod = (freq, range = 1, type = 'sine') => {
|
||||
const ctx = getAudioContext();
|
||||
const osc = ctx.createOscillator();
|
||||
osc.type = type;
|
||||
osc.frequency.value = freq;
|
||||
osc.start();
|
||||
const g = new GainNode(ctx, { gain: range });
|
||||
osc.connect(g); // -range, range
|
||||
return { node: g, stop: (t) => osc.stop(t) };
|
||||
const getFrequencyFromValue = (value) => {
|
||||
let { note, freq } = value;
|
||||
note = note || 36;
|
||||
if (typeof note === 'string') {
|
||||
note = noteToMidi(note); // e.g. c3 => 48
|
||||
}
|
||||
// get frequency
|
||||
if (!freq && typeof note === 'number') {
|
||||
freq = midiToFreq(note); // + 48);
|
||||
}
|
||||
|
||||
return Number(freq);
|
||||
};
|
||||
|
||||
const fm = (osc, harmonicityRatio, modulationIndex, wave = 'sine') => {
|
||||
const carrfreq = osc.frequency.value;
|
||||
const modfreq = carrfreq * harmonicityRatio;
|
||||
const modgain = modfreq * modulationIndex;
|
||||
return mod(modfreq, modgain, wave);
|
||||
};
|
||||
|
||||
const waveforms = ['sine', 'square', 'triangle', 'sawtooth'];
|
||||
const waveforms = ['triangle', 'square', 'sawtooth', 'sine'];
|
||||
const noises = ['pink', 'white', 'brown', 'crackle'];
|
||||
|
||||
export function registerSynthSounds() {
|
||||
[...waveforms, ...noises].forEach((s) => {
|
||||
[...waveforms].forEach((s) => {
|
||||
registerSound(
|
||||
s,
|
||||
(t, value, onended) => {
|
||||
const [attack, decay, sustain, release] = getADSRValues(
|
||||
[value.attack, value.decay, value.sustain, value.release],
|
||||
'linear',
|
||||
[0.001, 0.05, 0.6, 0.01],
|
||||
);
|
||||
|
||||
let sound = getOscillator(s, t, value);
|
||||
let { node: o, stop, triggerRelease } = sound;
|
||||
|
||||
// turn down
|
||||
const g = gainNode(0.3);
|
||||
|
||||
const { duration } = value;
|
||||
|
||||
o.onended = () => {
|
||||
o.disconnect();
|
||||
g.disconnect();
|
||||
onended();
|
||||
};
|
||||
|
||||
const envGain = gainNode(1);
|
||||
let node = o.connect(g).connect(envGain);
|
||||
const holdEnd = t + duration;
|
||||
getParamADSR(node.gain, attack, decay, sustain, release, 0, 1, t, holdEnd, 'linear');
|
||||
const envEnd = holdEnd + release + 0.01;
|
||||
triggerRelease?.(envEnd);
|
||||
stop(envEnd);
|
||||
return {
|
||||
node,
|
||||
stop: (releaseTime) => {},
|
||||
};
|
||||
},
|
||||
{ type: 'synth', prebake: true },
|
||||
);
|
||||
});
|
||||
registerSound(
|
||||
'supersaw',
|
||||
(begin, value, onended) => {
|
||||
const ac = getAudioContext();
|
||||
let { duration, n, unison = 5, spread = 0.6, detune } = value;
|
||||
detune = detune ?? n ?? 0.18;
|
||||
const frequency = getFrequencyFromValue(value);
|
||||
|
||||
const [attack, decay, sustain, release] = getADSRValues(
|
||||
[value.attack, value.decay, value.sustain, value.release],
|
||||
'linear',
|
||||
[0.001, 0.05, 0.6, 0.01],
|
||||
);
|
||||
|
||||
const holdend = begin + duration;
|
||||
const end = holdend + release + 0.01;
|
||||
const voices = clamp(unison, 1, 100);
|
||||
let panspread = voices > 1 ? clamp(spread, 0, 1) : 0;
|
||||
let o = getWorklet(
|
||||
ac,
|
||||
'supersaw-oscillator',
|
||||
{
|
||||
frequency,
|
||||
begin,
|
||||
end,
|
||||
freqspread: detune,
|
||||
voices,
|
||||
panspread,
|
||||
},
|
||||
{
|
||||
outputChannelCount: [2],
|
||||
},
|
||||
);
|
||||
|
||||
const gainAdjustment = 1 / Math.sqrt(voices);
|
||||
getPitchEnvelope(o.parameters.get('detune'), value, begin, holdend);
|
||||
const vibratoOscillator = getVibratoOscillator(o.parameters.get('detune'), value, begin);
|
||||
const fm = applyFM(o.parameters.get('frequency'), value, begin);
|
||||
let envGain = gainNode(1);
|
||||
envGain = o.connect(envGain);
|
||||
|
||||
webAudioTimeout(
|
||||
ac,
|
||||
() => {
|
||||
o.disconnect();
|
||||
envGain.disconnect();
|
||||
onended();
|
||||
fm?.stop();
|
||||
vibratoOscillator?.stop();
|
||||
},
|
||||
begin,
|
||||
end,
|
||||
);
|
||||
|
||||
getParamADSR(envGain.gain, attack, decay, sustain, release, 0, 0.3 * gainAdjustment, begin, holdend, 'linear');
|
||||
|
||||
return {
|
||||
node: envGain,
|
||||
stop: (time) => {},
|
||||
};
|
||||
},
|
||||
{ prebake: true, type: 'synth' },
|
||||
);
|
||||
|
||||
[...noises].forEach((s) => {
|
||||
registerSound(
|
||||
s,
|
||||
(t, value, onended) => {
|
||||
@ -36,12 +143,9 @@ export function registerSynthSounds() {
|
||||
);
|
||||
|
||||
let sound;
|
||||
if (waveforms.includes(s)) {
|
||||
sound = getOscillator(s, t, value);
|
||||
} else {
|
||||
let { density } = value;
|
||||
sound = getNoiseOscillator(s, t, density);
|
||||
}
|
||||
|
||||
let { density } = value;
|
||||
sound = getNoiseOscillator(s, t, density);
|
||||
|
||||
let { node: o, stop, triggerRelease } = sound;
|
||||
|
||||
@ -106,24 +210,7 @@ export function waveformN(partials, type) {
|
||||
|
||||
// expects one of waveforms as s
|
||||
export function getOscillator(s, t, value) {
|
||||
let {
|
||||
n: partials,
|
||||
note,
|
||||
freq,
|
||||
noise = 0,
|
||||
// fm
|
||||
fmh: fmHarmonicity = 1,
|
||||
fmi: fmModulationIndex,
|
||||
fmenv: fmEnvelopeType = 'exp',
|
||||
fmattack: fmAttack,
|
||||
fmdecay: fmDecay,
|
||||
fmsustain: fmSustain,
|
||||
fmrelease: fmRelease,
|
||||
fmvelocity: fmVelocity,
|
||||
fmwave: fmWaveform = 'sine',
|
||||
duration,
|
||||
} = value;
|
||||
let ac = getAudioContext();
|
||||
let { n: partials, duration, noise = 0 } = value;
|
||||
let o;
|
||||
// If no partials are given, use stock waveforms
|
||||
if (!partials || s === 'sine') {
|
||||
@ -134,55 +221,15 @@ export function getOscillator(s, t, value) {
|
||||
else {
|
||||
o = waveformN(partials, s);
|
||||
}
|
||||
|
||||
// get frequency from note...
|
||||
note = note || 36;
|
||||
if (typeof note === 'string') {
|
||||
note = noteToMidi(note); // e.g. c3 => 48
|
||||
}
|
||||
// get frequency
|
||||
if (!freq && typeof note === 'number') {
|
||||
freq = midiToFreq(note); // + 48);
|
||||
}
|
||||
|
||||
// set frequency
|
||||
o.frequency.value = Number(freq);
|
||||
o.frequency.value = getFrequencyFromValue(value);
|
||||
o.start(t);
|
||||
|
||||
// FM
|
||||
let stopFm;
|
||||
let envGain = ac.createGain();
|
||||
if (fmModulationIndex) {
|
||||
const { node: modulator, stop } = fm(o, fmHarmonicity, fmModulationIndex, fmWaveform);
|
||||
if (![fmAttack, fmDecay, fmSustain, fmRelease, fmVelocity].find((v) => v !== undefined)) {
|
||||
// no envelope by default
|
||||
modulator.connect(o.frequency);
|
||||
} else {
|
||||
const [attack, decay, sustain, release] = getADSRValues([fmAttack, fmDecay, fmSustain, fmRelease]);
|
||||
const holdEnd = t + duration;
|
||||
getParamADSR(
|
||||
envGain.gain,
|
||||
attack,
|
||||
decay,
|
||||
sustain,
|
||||
release,
|
||||
0,
|
||||
1,
|
||||
t,
|
||||
holdEnd,
|
||||
fmEnvelopeType === 'exp' ? 'exponential' : 'linear',
|
||||
);
|
||||
modulator.connect(envGain);
|
||||
envGain.connect(o.frequency);
|
||||
}
|
||||
stopFm = stop;
|
||||
}
|
||||
|
||||
// Additional oscillator for vibrato effect
|
||||
let vibratoOscillator = getVibratoOscillator(o.detune, value, t);
|
||||
|
||||
// pitch envelope
|
||||
getPitchEnvelope(o.detune, value, t, t + duration);
|
||||
const fmModulator = applyFM(o.frequency, value, t);
|
||||
|
||||
let noiseMix;
|
||||
if (noise) {
|
||||
@ -192,9 +239,9 @@ export function getOscillator(s, t, value) {
|
||||
return {
|
||||
node: noiseMix?.node || o,
|
||||
stop: (time) => {
|
||||
fmModulator.stop(time);
|
||||
vibratoOscillator?.stop(time);
|
||||
noiseMix?.stop(time);
|
||||
stopFm?.(time);
|
||||
o.stop(time);
|
||||
},
|
||||
triggerRelease: (time) => {
|
||||
|
||||
@ -129,3 +129,148 @@ class DistortProcessor extends AudioWorkletProcessor {
|
||||
}
|
||||
}
|
||||
registerProcessor('distort-processor', DistortProcessor);
|
||||
|
||||
// adjust waveshape to remove frequencies above nyquist to prevent aliasing
|
||||
// referenced from https://www.kvraudio.com/forum/viewtopic.php?t=375517
|
||||
const polyBlep = (phase, dt) => {
|
||||
// 0 <= phase < 1
|
||||
if (phase < dt) {
|
||||
phase /= dt;
|
||||
// 2 * (phase - phase^2/2 - 0.5)
|
||||
return phase + phase - phase * phase - 1;
|
||||
}
|
||||
|
||||
// -1 < phase < 0
|
||||
else if (phase > 1 - dt) {
|
||||
phase = (phase - 1) / dt;
|
||||
// 2 * (phase^2/2 + phase + 0.5)
|
||||
return phase * phase + phase + phase + 1;
|
||||
}
|
||||
|
||||
// 0 otherwise
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
|
||||
const saw = (phase, dt) => {
|
||||
const v = 2 * phase - 1;
|
||||
return v - polyBlep(phase, dt);
|
||||
};
|
||||
|
||||
function lerp(a, b, n) {
|
||||
return n * (b - a) + a;
|
||||
}
|
||||
|
||||
function getUnisonDetune(unison, detune, voiceIndex) {
|
||||
if (unison < 2) {
|
||||
return 0;
|
||||
}
|
||||
return lerp(-detune * 0.5, detune * 0.5, voiceIndex / (unison - 1));
|
||||
}
|
||||
class SuperSawOscillatorProcessor extends AudioWorkletProcessor {
|
||||
constructor() {
|
||||
super();
|
||||
this.phase = [];
|
||||
}
|
||||
static get parameterDescriptors() {
|
||||
return [
|
||||
{
|
||||
name: 'begin',
|
||||
defaultValue: 0,
|
||||
max: Number.POSITIVE_INFINITY,
|
||||
min: 0,
|
||||
},
|
||||
|
||||
{
|
||||
name: 'end',
|
||||
defaultValue: 0,
|
||||
max: Number.POSITIVE_INFINITY,
|
||||
min: 0,
|
||||
},
|
||||
|
||||
{
|
||||
name: 'frequency',
|
||||
defaultValue: 440,
|
||||
min: Number.EPSILON,
|
||||
},
|
||||
|
||||
{
|
||||
name: 'panspread',
|
||||
defaultValue: 0.4,
|
||||
min: 0,
|
||||
max: 1,
|
||||
},
|
||||
{
|
||||
name: 'freqspread',
|
||||
defaultValue: 0.2,
|
||||
min: 0,
|
||||
},
|
||||
{
|
||||
name: 'detune',
|
||||
defaultValue: 0,
|
||||
min: 0,
|
||||
},
|
||||
|
||||
{
|
||||
name: 'voices',
|
||||
defaultValue: 5,
|
||||
min: 1,
|
||||
},
|
||||
];
|
||||
}
|
||||
process(input, outputs, params) {
|
||||
// eslint-disable-next-line no-undef
|
||||
if (currentTime <= params.begin[0]) {
|
||||
return true;
|
||||
}
|
||||
// eslint-disable-next-line no-undef
|
||||
if (currentTime >= params.end[0]) {
|
||||
// this.port.postMessage({ type: 'onended' });
|
||||
return false;
|
||||
}
|
||||
let frequency = params.frequency[0];
|
||||
//apply detune in cents
|
||||
frequency = frequency * Math.pow(2, params.detune[0] / 1200);
|
||||
|
||||
const output = outputs[0];
|
||||
const voices = params.voices[0];
|
||||
const freqspread = params.freqspread[0];
|
||||
const panspread = params.panspread[0] * 0.5 + 0.5;
|
||||
const gain1 = Math.sqrt(1 - panspread);
|
||||
const gain2 = Math.sqrt(panspread);
|
||||
|
||||
for (let n = 0; n < voices; n++) {
|
||||
const isOdd = (n & 1) == 1;
|
||||
|
||||
//applies unison "spread" detune in semitones
|
||||
const freq = frequency * Math.pow(2, getUnisonDetune(voices, freqspread, n) / 12);
|
||||
let gainL = gain1;
|
||||
let gainR = gain2;
|
||||
// invert right and left gain
|
||||
if (isOdd) {
|
||||
gainL = gain2;
|
||||
gainR = gain1;
|
||||
}
|
||||
// eslint-disable-next-line no-undef
|
||||
const dt = freq / sampleRate;
|
||||
|
||||
for (let i = 0; i < output[0].length; i++) {
|
||||
this.phase[n] = this.phase[n] ?? Math.random();
|
||||
const v = saw(this.phase[n], dt);
|
||||
|
||||
output[0][i] = output[0][i] + v * gainL;
|
||||
output[1][i] = output[1][i] + v * gainR;
|
||||
|
||||
this.phase[n] += dt;
|
||||
|
||||
if (this.phase[n] > 1.0) {
|
||||
this.phase[n] = this.phase[n] - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
registerProcessor('supersaw-oscillator', SuperSawOscillatorProcessor);
|
||||
|
||||
@ -186,18 +186,35 @@ export const scale = register('scale', function (scale, pat) {
|
||||
// legacy..
|
||||
return pure(step);
|
||||
}
|
||||
const asNumber = Number(step);
|
||||
let asNumber = Number(step);
|
||||
let semitones = 0;
|
||||
if (isNaN(asNumber)) {
|
||||
logger(`[tonal] invalid scale step "${step}", expected number`, 'error');
|
||||
return silence;
|
||||
step = String(step);
|
||||
if (!/^[-+]?\d+(#*|b*){1}$/.test(step)) {
|
||||
logger(
|
||||
`[tonal] invalid scale step "${step}", expected number or integer with optional # b suffixes`,
|
||||
'error',
|
||||
);
|
||||
return silence;
|
||||
}
|
||||
const isharp = step.indexOf('#');
|
||||
if (isharp >= 0) {
|
||||
asNumber = Number(step.substring(0, isharp));
|
||||
semitones = step.length - isharp;
|
||||
} else {
|
||||
const iflat = step.indexOf('b');
|
||||
asNumber = Number(step.substring(0, iflat));
|
||||
semitones = iflat - step.length;
|
||||
}
|
||||
}
|
||||
try {
|
||||
let note;
|
||||
if (value.anchor) {
|
||||
if (isObject && value.anchor) {
|
||||
note = stepInNamedScale(asNumber, scale, value.anchor);
|
||||
} else {
|
||||
note = scaleStep(asNumber, scale);
|
||||
}
|
||||
if (semitones != 0) note = Note.transpose(note, Interval.fromSemitones(semitones));
|
||||
value = pure(isObject ? { ...value, note } : note);
|
||||
} catch (err) {
|
||||
logger(`[tonal] ${err.message}`, 'error');
|
||||
|
||||
@ -7,20 +7,17 @@ This package provides an easy to use bundle of multiple strudel packages for the
|
||||
Save this code as a `.html` file and double click it:
|
||||
|
||||
```html
|
||||
<!DOCTYPE html>
|
||||
<!doctype html>
|
||||
<script src="https://unpkg.com/@strudel/web@1.0.3"></script>
|
||||
<button id="play">play</button>
|
||||
<button id="stop">stop</button>
|
||||
<script type="module">
|
||||
import { initStrudel } from 'https://cdn.skypack.dev/@strudel/web@0.8.2';
|
||||
|
||||
<script>
|
||||
initStrudel();
|
||||
document.getElementById('play').addEventListener('click', () => note('<c a f e>(3,8)').play());
|
||||
document.getElementById('play').addEventListener('click', () => note('<c a f e>(3,8)').jux(rev).play());
|
||||
document.getElementById('stop').addEventListener('click', () => hush());
|
||||
</script>
|
||||
```
|
||||
|
||||
With the help of [skypack](https://www.skypack.dev/), you don't need a bundler nor a server.
|
||||
|
||||
As soon as you call `initStrudel()`, all strudel functions are made available.
|
||||
In this case, we are using the `note` function to create a pattern.
|
||||
To actually play the pattern, you have to append `.play()` to the end.
|
||||
@ -79,4 +76,4 @@ There will probably be an escapte hatch for that in the future.
|
||||
|
||||
## More Examples
|
||||
|
||||
Check out the examples folder for more examples, both using plain html and vite!
|
||||
Check out the examples folder for more examples, both using plain html and vite!
|
||||
|
||||
@ -37,10 +37,10 @@
|
||||
"@strudel/mini": "workspace:*",
|
||||
"@strudel/tonal": "workspace:*",
|
||||
"@strudel/transpiler": "workspace:*",
|
||||
"@strudel/webaudio": "workspace:*",
|
||||
"@rollup/plugin-replace": "^5.0.5"
|
||||
"@strudel/webaudio": "workspace:*"
|
||||
},
|
||||
"devDependencies": {
|
||||
"vite": "^5.0.10"
|
||||
"vite": "^5.0.10",
|
||||
"@rollup/plugin-replace": "^5.0.5"
|
||||
}
|
||||
}
|
||||
|
||||
201
pnpm-lock.yaml
generated
201
pnpm-lock.yaml
generated
@ -33,9 +33,6 @@ importers:
|
||||
'@vitest/ui':
|
||||
specifier: ^1.1.0
|
||||
version: 1.1.0(vitest@1.1.0)
|
||||
canvas:
|
||||
specifier: ^2.11.2
|
||||
version: 2.11.2
|
||||
dependency-tree:
|
||||
specifier: ^10.0.9
|
||||
version: 10.0.9
|
||||
@ -452,9 +449,6 @@ importers:
|
||||
|
||||
packages/web:
|
||||
dependencies:
|
||||
'@rollup/plugin-replace':
|
||||
specifier: ^5.0.5
|
||||
version: 5.0.5
|
||||
'@strudel/core':
|
||||
specifier: workspace:*
|
||||
version: link:../core
|
||||
@ -471,6 +465,9 @@ importers:
|
||||
specifier: workspace:*
|
||||
version: link:../webaudio
|
||||
devDependencies:
|
||||
'@rollup/plugin-replace':
|
||||
specifier: ^5.0.5
|
||||
version: 5.0.5
|
||||
vite:
|
||||
specifier: ^5.0.10
|
||||
version: 5.0.10
|
||||
@ -520,7 +517,7 @@ importers:
|
||||
version: 0.4.4(astro@4.0.8)
|
||||
'@astrojs/mdx':
|
||||
specifier: ^2.0.3
|
||||
version: 2.0.3(astro@4.0.8)
|
||||
version: 2.2.1(astro@4.0.8)
|
||||
'@astrojs/react':
|
||||
specifier: ^3.0.9
|
||||
version: 3.0.9(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0)(vite@5.0.11)
|
||||
@ -575,9 +572,6 @@ importers:
|
||||
'@strudel/osc':
|
||||
specifier: workspace:*
|
||||
version: link:../packages/osc
|
||||
'@strudel/repl':
|
||||
specifier: workspace:*
|
||||
version: link:../packages/repl
|
||||
'@strudel/serial':
|
||||
specifier: workspace:*
|
||||
version: link:../packages/serial
|
||||
@ -620,9 +614,6 @@ importers:
|
||||
astro:
|
||||
specifier: ^4.0.8
|
||||
version: 4.0.8(@types/node@20.10.6)(typescript@5.3.3)
|
||||
canvas:
|
||||
specifier: ^2.11.2
|
||||
version: 2.11.2
|
||||
claviature:
|
||||
specifier: ^0.1.0
|
||||
version: 0.1.0
|
||||
@ -878,13 +869,38 @@ packages:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
/@astrojs/mdx@2.0.3(astro@4.0.8):
|
||||
resolution: {integrity: sha512-wFjQX5CihU5B4UAQNwc2R48ph0flpc6/yvDCFANE0agtgI2+BaVcAjuW0EhGOQCZ65dQDqnFKE0lvGs7EADYpg==}
|
||||
/@astrojs/markdown-remark@4.3.1:
|
||||
resolution: {integrity: sha512-eJFi600tkRjTFiwzY9oD8AgCgB7gFqyWCKWuZ33dATVBgLiROD+zlMZ8STZzU7+ZALvmiUAun/K7umTmP5YfVQ==}
|
||||
dependencies:
|
||||
'@astrojs/prism': 3.0.0
|
||||
github-slugger: 2.0.0
|
||||
hast-util-from-html: 2.0.1
|
||||
hast-util-to-text: 4.0.0
|
||||
import-meta-resolve: 4.0.0
|
||||
mdast-util-definitions: 6.0.0
|
||||
rehype-raw: 7.0.0
|
||||
rehype-stringify: 10.0.0
|
||||
remark-gfm: 4.0.0
|
||||
remark-parse: 11.0.0
|
||||
remark-rehype: 11.0.0
|
||||
remark-smartypants: 2.0.0
|
||||
shiki: 1.2.0
|
||||
unified: 11.0.4
|
||||
unist-util-remove-position: 5.0.0
|
||||
unist-util-visit: 5.0.0
|
||||
unist-util-visit-parents: 6.0.1
|
||||
vfile: 6.0.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@astrojs/mdx@2.2.1(astro@4.0.8):
|
||||
resolution: {integrity: sha512-bSr/AkvGieD9Pc5ZzMnAk7IHnw0vyt/aOujuYUmYT+NHiWahAUy/+ywNNMhTMmea0irdMYnBVC1AEKMQ/oXxow==}
|
||||
engines: {node: '>=18.14.1'}
|
||||
peerDependencies:
|
||||
astro: ^4.0.0
|
||||
dependencies:
|
||||
'@astrojs/markdown-remark': 4.0.1
|
||||
'@astrojs/markdown-remark': 4.3.1
|
||||
'@mdx-js/mdx': 3.0.0
|
||||
acorn: 8.11.3
|
||||
astro: 4.0.8(@types/node@20.10.6)(typescript@5.3.3)
|
||||
@ -3206,23 +3222,6 @@ packages:
|
||||
'@lezer/common': 1.2.0
|
||||
dev: false
|
||||
|
||||
/@mapbox/node-pre-gyp@1.0.10:
|
||||
resolution: {integrity: sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
detect-libc: 2.0.1
|
||||
https-proxy-agent: 5.0.1
|
||||
make-dir: 3.1.0
|
||||
node-fetch: 2.6.8
|
||||
nopt: 5.0.0
|
||||
npmlog: 5.0.1
|
||||
rimraf: 3.0.2
|
||||
semver: 7.3.8
|
||||
tar: 6.1.13
|
||||
transitivePeerDependencies:
|
||||
- encoding
|
||||
- supports-color
|
||||
|
||||
/@mdx-js/mdx@3.0.0:
|
||||
resolution: {integrity: sha512-Icm0TBKBLYqroYbNW3BPnzMGn+7mwpQOK310aZ7+fkCtiU3aqv2cdcX+nd0Ydo3wI5Rx8bX2Z2QmGb/XcAClCw==}
|
||||
dependencies:
|
||||
@ -3742,6 +3741,7 @@ packages:
|
||||
dependencies:
|
||||
'@rollup/pluginutils': 5.1.0
|
||||
magic-string: 0.30.5
|
||||
dev: true
|
||||
|
||||
/@rollup/pluginutils@3.1.0(rollup@2.79.1):
|
||||
resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==}
|
||||
@ -3767,6 +3767,7 @@ packages:
|
||||
'@types/estree': 1.0.0
|
||||
estree-walker: 2.0.2
|
||||
picomatch: 2.3.1
|
||||
dev: true
|
||||
|
||||
/@rollup/rollup-android-arm-eabi@4.9.2:
|
||||
resolution: {integrity: sha512-RKzxFxBHq9ysZ83fn8Iduv3A283K7zPPYuhL/z9CQuyFrjwpErJx0h4aeb/bnJ+q29GRLgJpY66ceQ/Wcsn3wA==}
|
||||
@ -3859,6 +3860,10 @@ packages:
|
||||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/@shikijs/core@1.2.0:
|
||||
resolution: {integrity: sha512-OlFvx+nyr5C8zpcMBnSGir0YPD6K11uYhouqhNmm1qLiis4GA7SsGtu07r9gKS9omks8RtQqHrJL4S+lqWK01A==}
|
||||
dev: false
|
||||
|
||||
/@sigstore/bundle@2.1.0:
|
||||
resolution: {integrity: sha512-89uOo6yh/oxaU8AeOUnVrTdVMcGk9Q1hJa7Hkvalc6G3Z3CupWk4Xe9djSgJm9fMkH69s0P0cVHUoKSOemLdng==}
|
||||
engines: {node: ^16.14.0 || >=18.0.0}
|
||||
@ -4993,9 +4998,6 @@ packages:
|
||||
through: 2.3.8
|
||||
dev: true
|
||||
|
||||
/abbrev@1.1.1:
|
||||
resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
|
||||
|
||||
/abbrev@2.0.0:
|
||||
resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==}
|
||||
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
|
||||
@ -5029,6 +5031,7 @@ packages:
|
||||
debug: 4.3.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/agent-base@7.1.0:
|
||||
resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==}
|
||||
@ -5121,6 +5124,7 @@ packages:
|
||||
/ansi-regex@2.1.1:
|
||||
resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/ansi-regex@5.0.1:
|
||||
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
|
||||
@ -5168,13 +5172,7 @@ packages:
|
||||
|
||||
/aproba@2.0.0:
|
||||
resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
|
||||
|
||||
/are-we-there-yet@2.0.0:
|
||||
resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==}
|
||||
engines: {node: '>=10'}
|
||||
dependencies:
|
||||
delegates: 1.0.0
|
||||
readable-stream: 3.6.0
|
||||
dev: true
|
||||
|
||||
/are-we-there-yet@3.0.1:
|
||||
resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==}
|
||||
@ -5751,18 +5749,6 @@ packages:
|
||||
/caniuse-lite@1.0.30001572:
|
||||
resolution: {integrity: sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==}
|
||||
|
||||
/canvas@2.11.2:
|
||||
resolution: {integrity: sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==}
|
||||
engines: {node: '>=6'}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
'@mapbox/node-pre-gyp': 1.0.10
|
||||
nan: 2.17.0
|
||||
simple-get: 3.1.1
|
||||
transitivePeerDependencies:
|
||||
- encoding
|
||||
- supports-color
|
||||
|
||||
/catharsis@0.9.0:
|
||||
resolution: {integrity: sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==}
|
||||
engines: {node: '>= 10'}
|
||||
@ -5863,6 +5849,7 @@ packages:
|
||||
/chownr@2.0.0:
|
||||
resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
|
||||
engines: {node: '>=10'}
|
||||
dev: true
|
||||
|
||||
/ci-info@3.9.0:
|
||||
resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
|
||||
@ -5981,6 +5968,7 @@ packages:
|
||||
/code-point-at@1.1.0:
|
||||
resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/collapse-white-space@2.1.0:
|
||||
resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==}
|
||||
@ -6021,6 +6009,7 @@ packages:
|
||||
/color-support@1.1.3:
|
||||
resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/color@4.2.3:
|
||||
resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
|
||||
@ -6138,6 +6127,7 @@ packages:
|
||||
|
||||
/console-control-strings@1.1.0:
|
||||
resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
|
||||
dev: true
|
||||
|
||||
/conventional-changelog-angular@7.0.0:
|
||||
resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==}
|
||||
@ -6372,12 +6362,6 @@ packages:
|
||||
dependencies:
|
||||
character-entities: 2.0.2
|
||||
|
||||
/decompress-response@4.2.1:
|
||||
resolution: {integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
mimic-response: 2.1.0
|
||||
|
||||
/decompress-response@6.0.0:
|
||||
resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
|
||||
engines: {node: '>=10'}
|
||||
@ -6445,6 +6429,7 @@ packages:
|
||||
|
||||
/delegates@1.0.0:
|
||||
resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
|
||||
dev: true
|
||||
|
||||
/depd@1.1.2:
|
||||
resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
|
||||
@ -6480,6 +6465,7 @@ packages:
|
||||
/detect-libc@2.0.1:
|
||||
resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==}
|
||||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/detect-libc@2.0.2:
|
||||
resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
|
||||
@ -7168,6 +7154,7 @@ packages:
|
||||
|
||||
/estree-walker@2.0.2:
|
||||
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
|
||||
dev: true
|
||||
|
||||
/estree-walker@3.0.3:
|
||||
resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
|
||||
@ -7483,6 +7470,7 @@ packages:
|
||||
engines: {node: '>= 8'}
|
||||
dependencies:
|
||||
minipass: 3.3.6
|
||||
dev: true
|
||||
|
||||
/fs-minipass@3.0.2:
|
||||
resolution: {integrity: sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==}
|
||||
@ -7526,20 +7514,6 @@ packages:
|
||||
resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
|
||||
dev: true
|
||||
|
||||
/gauge@3.0.2:
|
||||
resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==}
|
||||
engines: {node: '>=10'}
|
||||
dependencies:
|
||||
aproba: 2.0.0
|
||||
color-support: 1.1.3
|
||||
console-control-strings: 1.1.0
|
||||
has-unicode: 2.0.1
|
||||
object-assign: 4.1.1
|
||||
signal-exit: 3.0.7
|
||||
string-width: 4.2.3
|
||||
strip-ansi: 6.0.1
|
||||
wide-align: 1.1.5
|
||||
|
||||
/gauge@4.0.4:
|
||||
resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==}
|
||||
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
|
||||
@ -7937,6 +7911,7 @@ packages:
|
||||
|
||||
/has-unicode@2.0.1:
|
||||
resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
|
||||
dev: true
|
||||
|
||||
/has@1.0.3:
|
||||
resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
|
||||
@ -8088,6 +8063,15 @@ packages:
|
||||
'@types/hast': 3.0.2
|
||||
dev: false
|
||||
|
||||
/hast-util-to-text@4.0.0:
|
||||
resolution: {integrity: sha512-EWiE1FSArNBPUo1cKWtzqgnuRQwEeQbQtnFJRYV1hb1BWDgrAlBU0ExptvZMM/KSA82cDpm2sFGf3Dmc5Mza3w==}
|
||||
dependencies:
|
||||
'@types/hast': 3.0.2
|
||||
'@types/unist': 3.0.1
|
||||
hast-util-is-element: 3.0.0
|
||||
unist-util-find-after: 5.0.0
|
||||
dev: false
|
||||
|
||||
/hast-util-whitespace@3.0.0:
|
||||
resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
|
||||
dependencies:
|
||||
@ -8172,6 +8156,7 @@ packages:
|
||||
debug: 4.3.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/https-proxy-agent@7.0.2:
|
||||
resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==}
|
||||
@ -8465,6 +8450,7 @@ packages:
|
||||
engines: {node: '>=0.10.0'}
|
||||
dependencies:
|
||||
number-is-nan: 1.0.1
|
||||
dev: true
|
||||
|
||||
/is-fullwidth-code-point@3.0.0:
|
||||
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
|
||||
@ -9299,12 +9285,6 @@ packages:
|
||||
semver: 5.7.1
|
||||
dev: true
|
||||
|
||||
/make-dir@3.1.0:
|
||||
resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
semver: 6.3.0
|
||||
|
||||
/make-dir@4.0.0:
|
||||
resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
|
||||
engines: {node: '>=10'}
|
||||
@ -9979,10 +9959,6 @@ packages:
|
||||
resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
/mimic-response@2.1.0:
|
||||
resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
/mimic-response@3.1.0:
|
||||
resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
|
||||
engines: {node: '>=10'}
|
||||
@ -10114,12 +10090,14 @@ packages:
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
yallist: 4.0.0
|
||||
dev: true
|
||||
|
||||
/minipass@4.0.0:
|
||||
resolution: {integrity: sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
yallist: 4.0.0
|
||||
dev: true
|
||||
|
||||
/minipass@4.2.8:
|
||||
resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==}
|
||||
@ -10142,6 +10120,7 @@ packages:
|
||||
dependencies:
|
||||
minipass: 3.3.6
|
||||
yallist: 4.0.0
|
||||
dev: true
|
||||
|
||||
/mkdirp-classic@0.5.3:
|
||||
resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
|
||||
@ -10155,6 +10134,7 @@ packages:
|
||||
resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
|
||||
engines: {node: '>=10'}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/mlly@1.4.0:
|
||||
resolution: {integrity: sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg==}
|
||||
@ -10248,9 +10228,6 @@ packages:
|
||||
thenify-all: 1.6.0
|
||||
dev: false
|
||||
|
||||
/nan@2.17.0:
|
||||
resolution: {integrity: sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==}
|
||||
|
||||
/nanoid@3.3.7:
|
||||
resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
|
||||
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
|
||||
@ -10333,6 +10310,7 @@ packages:
|
||||
optional: true
|
||||
dependencies:
|
||||
whatwg-url: 5.0.0
|
||||
dev: true
|
||||
|
||||
/node-fetch@3.3.2:
|
||||
resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==}
|
||||
@ -10385,13 +10363,6 @@ packages:
|
||||
'@babel/parser': 7.23.6
|
||||
dev: true
|
||||
|
||||
/nopt@5.0.0:
|
||||
resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
|
||||
engines: {node: '>=6'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
abbrev: 1.1.1
|
||||
|
||||
/nopt@7.1.0:
|
||||
resolution: {integrity: sha512-ZFPLe9Iu0tnx7oWhFxAo4s7QTn8+NNDDxYNaKLjE7Dp0tbakQ3M1QhQzsnzXHQBTUO3K9BmwaxnyO8Ayn2I95Q==}
|
||||
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
|
||||
@ -10578,14 +10549,6 @@ packages:
|
||||
dependencies:
|
||||
path-key: 4.0.0
|
||||
|
||||
/npmlog@5.0.1:
|
||||
resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
|
||||
dependencies:
|
||||
are-we-there-yet: 2.0.0
|
||||
console-control-strings: 1.1.0
|
||||
gauge: 3.0.2
|
||||
set-blocking: 2.0.0
|
||||
|
||||
/npmlog@6.0.2:
|
||||
resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==}
|
||||
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
|
||||
@ -10599,6 +10562,7 @@ packages:
|
||||
/number-is-nan@1.0.1:
|
||||
resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/nx@17.2.8:
|
||||
resolution: {integrity: sha512-rM5zXbuXLEuqQqcjVjClyvHwRJwt+NVImR2A6KFNG40Z60HP6X12wAxxeLHF5kXXTDRU0PFhf/yACibrpbPrAw==}
|
||||
@ -10665,6 +10629,7 @@ packages:
|
||||
/object-assign@4.1.1:
|
||||
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/object-get@2.1.1:
|
||||
resolution: {integrity: sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==}
|
||||
@ -12151,10 +12116,6 @@ packages:
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/semver@6.3.0:
|
||||
resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
|
||||
hasBin: true
|
||||
|
||||
/semver@6.3.1:
|
||||
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
|
||||
hasBin: true
|
||||
@ -12192,6 +12153,7 @@ packages:
|
||||
|
||||
/set-blocking@2.0.0:
|
||||
resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
|
||||
dev: true
|
||||
|
||||
/set-function-length@1.1.1:
|
||||
resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==}
|
||||
@ -12264,6 +12226,12 @@ packages:
|
||||
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
/shiki@1.2.0:
|
||||
resolution: {integrity: sha512-xLhiTMOIUXCv5DqJ4I70GgQCtdlzsTqFLZWcMHHG3TAieBUbvEGthdrlPDlX4mL/Wszx9C6rEcxU6kMlg4YlxA==}
|
||||
dependencies:
|
||||
'@shikijs/core': 1.2.0
|
||||
dev: false
|
||||
|
||||
/shikiji@0.6.13:
|
||||
resolution: {integrity: sha512-4T7X39csvhT0p7GDnq9vysWddf2b6BeioiN3Ymhnt3xcy9tXmDcnsEFVxX18Z4YcQgEE/w48dLJ4pPPUcG9KkA==}
|
||||
dependencies:
|
||||
@ -12315,13 +12283,7 @@ packages:
|
||||
|
||||
/simple-concat@1.0.1:
|
||||
resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==}
|
||||
|
||||
/simple-get@3.1.1:
|
||||
resolution: {integrity: sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==}
|
||||
dependencies:
|
||||
decompress-response: 4.2.1
|
||||
once: 1.4.0
|
||||
simple-concat: 1.0.1
|
||||
dev: true
|
||||
|
||||
/simple-get@4.0.1:
|
||||
resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==}
|
||||
@ -12567,6 +12529,7 @@ packages:
|
||||
code-point-at: 1.1.0
|
||||
is-fullwidth-code-point: 1.0.0
|
||||
strip-ansi: 3.0.1
|
||||
dev: true
|
||||
|
||||
/string-width@4.2.3:
|
||||
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
|
||||
@ -12673,6 +12636,7 @@ packages:
|
||||
engines: {node: '>=0.10.0'}
|
||||
dependencies:
|
||||
ansi-regex: 2.1.1
|
||||
dev: true
|
||||
|
||||
/strip-ansi@6.0.1:
|
||||
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
|
||||
@ -12896,6 +12860,7 @@ packages:
|
||||
minizlib: 2.1.2
|
||||
mkdirp: 1.0.4
|
||||
yallist: 4.0.0
|
||||
dev: true
|
||||
|
||||
/temp-dir@1.0.0:
|
||||
resolution: {integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==}
|
||||
@ -13358,6 +13323,13 @@ packages:
|
||||
crypto-random-string: 2.0.0
|
||||
dev: true
|
||||
|
||||
/unist-util-find-after@5.0.0:
|
||||
resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==}
|
||||
dependencies:
|
||||
'@types/unist': 3.0.1
|
||||
unist-util-is: 6.0.0
|
||||
dev: false
|
||||
|
||||
/unist-util-is@3.0.0:
|
||||
resolution: {integrity: sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==}
|
||||
dev: false
|
||||
@ -13894,6 +13866,7 @@ packages:
|
||||
resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
|
||||
dependencies:
|
||||
string-width: 1.0.2
|
||||
dev: true
|
||||
|
||||
/widest-line@4.0.1:
|
||||
resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==}
|
||||
|
||||
@ -1939,18 +1939,54 @@ exports[`runs examples > example "delaytime" example index 0 1`] = `
|
||||
|
||||
exports[`runs examples > example "detune" example index 0 1`] = `
|
||||
[
|
||||
"[ 0/1 → 1/3 | n:0 s:superzow octave:3 detune:0 ]",
|
||||
"[ 1/3 → 2/3 | n:3 s:superzow octave:3 detune:0 ]",
|
||||
"[ 2/3 → 1/1 | n:7 s:superzow octave:3 detune:0 ]",
|
||||
"[ 1/1 → 4/3 | n:0 s:superzow octave:3 detune:0.25 ]",
|
||||
"[ 4/3 → 5/3 | n:3 s:superzow octave:3 detune:0.25 ]",
|
||||
"[ 5/3 → 2/1 | n:7 s:superzow octave:3 detune:0.25 ]",
|
||||
"[ 2/1 → 7/3 | n:0 s:superzow octave:3 detune:0.5 ]",
|
||||
"[ 7/3 → 8/3 | n:3 s:superzow octave:3 detune:0.5 ]",
|
||||
"[ 8/3 → 3/1 | n:7 s:superzow octave:3 detune:0.5 ]",
|
||||
"[ 3/1 → 10/3 | n:0 s:superzow octave:3 detune:1 ]",
|
||||
"[ 10/3 → 11/3 | n:3 s:superzow octave:3 detune:1 ]",
|
||||
"[ 11/3 → 4/1 | n:7 s:superzow octave:3 detune:1 ]",
|
||||
"[ 0/1 → 1/12 | note:d s:supersaw detune:0.1 ]",
|
||||
"[ 1/12 → 1/6 | note:f s:supersaw detune:0.1 ]",
|
||||
"[ 1/6 → 1/4 | note:a s:supersaw detune:0.1 ]",
|
||||
"[ 1/4 → 1/3 | note:a# s:supersaw detune:0.1 ]",
|
||||
"[ 1/3 → 5/12 | note:a s:supersaw detune:0.1 ]",
|
||||
"[ 5/12 → 1/2 | note:d3 s:supersaw detune:0.1 ]",
|
||||
"[ 1/2 → 7/12 | note:d s:supersaw detune:0.1 ]",
|
||||
"[ 7/12 → 2/3 | note:f s:supersaw detune:0.1 ]",
|
||||
"[ 2/3 → 3/4 | note:a s:supersaw detune:0.1 ]",
|
||||
"[ 3/4 → 5/6 | note:a# s:supersaw detune:0.1 ]",
|
||||
"[ 5/6 → 11/12 | note:a s:supersaw detune:0.1 ]",
|
||||
"[ 11/12 → 1/1 | note:d3 s:supersaw detune:0.1 ]",
|
||||
"[ 1/1 → 13/12 | note:d s:supersaw detune:0.2 ]",
|
||||
"[ 13/12 → 7/6 | note:f s:supersaw detune:0.2 ]",
|
||||
"[ 7/6 → 5/4 | note:a s:supersaw detune:0.2 ]",
|
||||
"[ 5/4 → 4/3 | note:a# s:supersaw detune:0.2 ]",
|
||||
"[ 4/3 → 17/12 | note:a s:supersaw detune:0.2 ]",
|
||||
"[ 17/12 → 3/2 | note:d3 s:supersaw detune:0.2 ]",
|
||||
"[ 3/2 → 19/12 | note:d s:supersaw detune:0.2 ]",
|
||||
"[ 19/12 → 5/3 | note:f s:supersaw detune:0.2 ]",
|
||||
"[ 5/3 → 7/4 | note:a s:supersaw detune:0.2 ]",
|
||||
"[ 7/4 → 11/6 | note:a# s:supersaw detune:0.2 ]",
|
||||
"[ 11/6 → 23/12 | note:a s:supersaw detune:0.2 ]",
|
||||
"[ 23/12 → 2/1 | note:d3 s:supersaw detune:0.2 ]",
|
||||
"[ 2/1 → 25/12 | note:d s:supersaw detune:0.5 ]",
|
||||
"[ 25/12 → 13/6 | note:f s:supersaw detune:0.5 ]",
|
||||
"[ 13/6 → 9/4 | note:a s:supersaw detune:0.5 ]",
|
||||
"[ 9/4 → 7/3 | note:a# s:supersaw detune:0.5 ]",
|
||||
"[ 7/3 → 29/12 | note:a s:supersaw detune:0.5 ]",
|
||||
"[ 29/12 → 5/2 | note:d3 s:supersaw detune:0.5 ]",
|
||||
"[ 5/2 → 31/12 | note:d s:supersaw detune:0.5 ]",
|
||||
"[ 31/12 → 8/3 | note:f s:supersaw detune:0.5 ]",
|
||||
"[ 8/3 → 11/4 | note:a s:supersaw detune:0.5 ]",
|
||||
"[ 11/4 → 17/6 | note:a# s:supersaw detune:0.5 ]",
|
||||
"[ 17/6 → 35/12 | note:a s:supersaw detune:0.5 ]",
|
||||
"[ 35/12 → 3/1 | note:d3 s:supersaw detune:0.5 ]",
|
||||
"[ 3/1 → 37/12 | note:d s:supersaw detune:24.1 ]",
|
||||
"[ 37/12 → 19/6 | note:f s:supersaw detune:24.1 ]",
|
||||
"[ 19/6 → 13/4 | note:a s:supersaw detune:24.1 ]",
|
||||
"[ 13/4 → 10/3 | note:a# s:supersaw detune:24.1 ]",
|
||||
"[ 10/3 → 41/12 | note:a s:supersaw detune:24.1 ]",
|
||||
"[ 41/12 → 7/2 | note:d3 s:supersaw detune:24.1 ]",
|
||||
"[ 7/2 → 43/12 | note:d s:supersaw detune:24.1 ]",
|
||||
"[ 43/12 → 11/3 | note:f s:supersaw detune:24.1 ]",
|
||||
"[ 11/3 → 15/4 | note:a s:supersaw detune:24.1 ]",
|
||||
"[ 15/4 → 23/6 | note:a# s:supersaw detune:24.1 ]",
|
||||
"[ 23/6 → 47/12 | note:a s:supersaw detune:24.1 ]",
|
||||
"[ 47/12 → 4/1 | note:d3 s:supersaw detune:24.1 ]",
|
||||
]
|
||||
`;
|
||||
|
||||
@ -6806,6 +6842,59 @@ exports[`runs examples > example "splice" example index 0 1`] = `
|
||||
]
|
||||
`;
|
||||
|
||||
exports[`runs examples > example "spread" example index 0 1`] = `
|
||||
[
|
||||
"[ 0/1 → 1/12 | note:d s:supersaw spread:0 ]",
|
||||
"[ 1/12 → 1/6 | note:f s:supersaw spread:0 ]",
|
||||
"[ 1/6 → 1/4 | note:a s:supersaw spread:0 ]",
|
||||
"[ 1/4 → 1/3 | note:a# s:supersaw spread:0 ]",
|
||||
"[ 1/3 → 5/12 | note:a s:supersaw spread:0 ]",
|
||||
"[ 5/12 → 1/2 | note:d3 s:supersaw spread:0 ]",
|
||||
"[ 1/2 → 7/12 | note:d s:supersaw spread:0 ]",
|
||||
"[ 7/12 → 2/3 | note:f s:supersaw spread:0 ]",
|
||||
"[ 2/3 → 3/4 | note:a s:supersaw spread:0 ]",
|
||||
"[ 3/4 → 5/6 | note:a# s:supersaw spread:0 ]",
|
||||
"[ 5/6 → 11/12 | note:a s:supersaw spread:0 ]",
|
||||
"[ 11/12 → 1/1 | note:d3 s:supersaw spread:0 ]",
|
||||
"[ 1/1 → 13/12 | note:d s:supersaw spread:0.3 ]",
|
||||
"[ 13/12 → 7/6 | note:f s:supersaw spread:0.3 ]",
|
||||
"[ 7/6 → 5/4 | note:a s:supersaw spread:0.3 ]",
|
||||
"[ 5/4 → 4/3 | note:a# s:supersaw spread:0.3 ]",
|
||||
"[ 4/3 → 17/12 | note:a s:supersaw spread:0.3 ]",
|
||||
"[ 17/12 → 3/2 | note:d3 s:supersaw spread:0.3 ]",
|
||||
"[ 3/2 → 19/12 | note:d s:supersaw spread:0.3 ]",
|
||||
"[ 19/12 → 5/3 | note:f s:supersaw spread:0.3 ]",
|
||||
"[ 5/3 → 7/4 | note:a s:supersaw spread:0.3 ]",
|
||||
"[ 7/4 → 11/6 | note:a# s:supersaw spread:0.3 ]",
|
||||
"[ 11/6 → 23/12 | note:a s:supersaw spread:0.3 ]",
|
||||
"[ 23/12 → 2/1 | note:d3 s:supersaw spread:0.3 ]",
|
||||
"[ 2/1 → 25/12 | note:d s:supersaw spread:1 ]",
|
||||
"[ 25/12 → 13/6 | note:f s:supersaw spread:1 ]",
|
||||
"[ 13/6 → 9/4 | note:a s:supersaw spread:1 ]",
|
||||
"[ 9/4 → 7/3 | note:a# s:supersaw spread:1 ]",
|
||||
"[ 7/3 → 29/12 | note:a s:supersaw spread:1 ]",
|
||||
"[ 29/12 → 5/2 | note:d3 s:supersaw spread:1 ]",
|
||||
"[ 5/2 → 31/12 | note:d s:supersaw spread:1 ]",
|
||||
"[ 31/12 → 8/3 | note:f s:supersaw spread:1 ]",
|
||||
"[ 8/3 → 11/4 | note:a s:supersaw spread:1 ]",
|
||||
"[ 11/4 → 17/6 | note:a# s:supersaw spread:1 ]",
|
||||
"[ 17/6 → 35/12 | note:a s:supersaw spread:1 ]",
|
||||
"[ 35/12 → 3/1 | note:d3 s:supersaw spread:1 ]",
|
||||
"[ 3/1 → 37/12 | note:d s:supersaw spread:0 ]",
|
||||
"[ 37/12 → 19/6 | note:f s:supersaw spread:0 ]",
|
||||
"[ 19/6 → 13/4 | note:a s:supersaw spread:0 ]",
|
||||
"[ 13/4 → 10/3 | note:a# s:supersaw spread:0 ]",
|
||||
"[ 10/3 → 41/12 | note:a s:supersaw spread:0 ]",
|
||||
"[ 41/12 → 7/2 | note:d3 s:supersaw spread:0 ]",
|
||||
"[ 7/2 → 43/12 | note:d s:supersaw spread:0 ]",
|
||||
"[ 43/12 → 11/3 | note:f s:supersaw spread:0 ]",
|
||||
"[ 11/3 → 15/4 | note:a s:supersaw spread:0 ]",
|
||||
"[ 15/4 → 23/6 | note:a# s:supersaw spread:0 ]",
|
||||
"[ 23/6 → 47/12 | note:a s:supersaw spread:0 ]",
|
||||
"[ 47/12 → 4/1 | note:d3 s:supersaw spread:0 ]",
|
||||
]
|
||||
`;
|
||||
|
||||
exports[`runs examples > example "square" example index 0 1`] = `
|
||||
[
|
||||
"[ 0/1 → 1/4 | note:C3 ]",
|
||||
@ -7267,6 +7356,59 @@ exports[`runs examples > example "undegradeBy" example index 0 1`] = `
|
||||
]
|
||||
`;
|
||||
|
||||
exports[`runs examples > example "unison" example index 0 1`] = `
|
||||
[
|
||||
"[ 0/1 → 1/12 | note:d s:supersaw unison:1 ]",
|
||||
"[ 1/12 → 1/6 | note:f s:supersaw unison:1 ]",
|
||||
"[ 1/6 → 1/4 | note:a s:supersaw unison:1 ]",
|
||||
"[ 1/4 → 1/3 | note:a# s:supersaw unison:1 ]",
|
||||
"[ 1/3 → 5/12 | note:a s:supersaw unison:1 ]",
|
||||
"[ 5/12 → 1/2 | note:d3 s:supersaw unison:1 ]",
|
||||
"[ 1/2 → 7/12 | note:d s:supersaw unison:1 ]",
|
||||
"[ 7/12 → 2/3 | note:f s:supersaw unison:1 ]",
|
||||
"[ 2/3 → 3/4 | note:a s:supersaw unison:1 ]",
|
||||
"[ 3/4 → 5/6 | note:a# s:supersaw unison:1 ]",
|
||||
"[ 5/6 → 11/12 | note:a s:supersaw unison:1 ]",
|
||||
"[ 11/12 → 1/1 | note:d3 s:supersaw unison:1 ]",
|
||||
"[ 1/1 → 13/12 | note:d s:supersaw unison:2 ]",
|
||||
"[ 13/12 → 7/6 | note:f s:supersaw unison:2 ]",
|
||||
"[ 7/6 → 5/4 | note:a s:supersaw unison:2 ]",
|
||||
"[ 5/4 → 4/3 | note:a# s:supersaw unison:2 ]",
|
||||
"[ 4/3 → 17/12 | note:a s:supersaw unison:2 ]",
|
||||
"[ 17/12 → 3/2 | note:d3 s:supersaw unison:2 ]",
|
||||
"[ 3/2 → 19/12 | note:d s:supersaw unison:2 ]",
|
||||
"[ 19/12 → 5/3 | note:f s:supersaw unison:2 ]",
|
||||
"[ 5/3 → 7/4 | note:a s:supersaw unison:2 ]",
|
||||
"[ 7/4 → 11/6 | note:a# s:supersaw unison:2 ]",
|
||||
"[ 11/6 → 23/12 | note:a s:supersaw unison:2 ]",
|
||||
"[ 23/12 → 2/1 | note:d3 s:supersaw unison:2 ]",
|
||||
"[ 2/1 → 25/12 | note:d s:supersaw unison:7 ]",
|
||||
"[ 25/12 → 13/6 | note:f s:supersaw unison:7 ]",
|
||||
"[ 13/6 → 9/4 | note:a s:supersaw unison:7 ]",
|
||||
"[ 9/4 → 7/3 | note:a# s:supersaw unison:7 ]",
|
||||
"[ 7/3 → 29/12 | note:a s:supersaw unison:7 ]",
|
||||
"[ 29/12 → 5/2 | note:d3 s:supersaw unison:7 ]",
|
||||
"[ 5/2 → 31/12 | note:d s:supersaw unison:7 ]",
|
||||
"[ 31/12 → 8/3 | note:f s:supersaw unison:7 ]",
|
||||
"[ 8/3 → 11/4 | note:a s:supersaw unison:7 ]",
|
||||
"[ 11/4 → 17/6 | note:a# s:supersaw unison:7 ]",
|
||||
"[ 17/6 → 35/12 | note:a s:supersaw unison:7 ]",
|
||||
"[ 35/12 → 3/1 | note:d3 s:supersaw unison:7 ]",
|
||||
"[ 3/1 → 37/12 | note:d s:supersaw unison:1 ]",
|
||||
"[ 37/12 → 19/6 | note:f s:supersaw unison:1 ]",
|
||||
"[ 19/6 → 13/4 | note:a s:supersaw unison:1 ]",
|
||||
"[ 13/4 → 10/3 | note:a# s:supersaw unison:1 ]",
|
||||
"[ 10/3 → 41/12 | note:a s:supersaw unison:1 ]",
|
||||
"[ 41/12 → 7/2 | note:d3 s:supersaw unison:1 ]",
|
||||
"[ 7/2 → 43/12 | note:d s:supersaw unison:1 ]",
|
||||
"[ 43/12 → 11/3 | note:f s:supersaw unison:1 ]",
|
||||
"[ 11/3 → 15/4 | note:a s:supersaw unison:1 ]",
|
||||
"[ 15/4 → 23/6 | note:a# s:supersaw unison:1 ]",
|
||||
"[ 23/6 → 47/12 | note:a s:supersaw unison:1 ]",
|
||||
"[ 47/12 → 4/1 | note:d3 s:supersaw unison:1 ]",
|
||||
]
|
||||
`;
|
||||
|
||||
exports[`runs examples > example "unit" example index 0 1`] = `
|
||||
[
|
||||
"[ 0/1 → 1/4 | speed:1 s:bd unit:c ]",
|
||||
|
||||
@ -7208,653 +7208,6 @@ exports[`renders tunes > tune: holyflute 1`] = `
|
||||
]
|
||||
`;
|
||||
|
||||
exports[`renders tunes > tune: hyperpop 1`] = `
|
||||
[
|
||||
"[ -1/4 ⇜ (0/1 → 1/12) ⇝ 1/8 | gain:0.00024394233952886464 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5999.785818935017 cutoff:4000 ]",
|
||||
"[ -1/4 ⇜ (0/1 → 1/12) ⇝ 1/8 | gain:0.00024394233952886464 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5999.785818935017 cutoff:4000 ]",
|
||||
"[ -3/8 ⇜ (0/1 → 1/8) | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:1616.8693414940683 ]",
|
||||
"[ -3/8 ⇜ (0/1 → 1/8) | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:1616.8693414940683 ]",
|
||||
"[ -1/8 ⇜ (0/1 → 1/6) ⇝ 1/4 | gain:0.00031404209523161047 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5999.785818935017 cutoff:4000 ]",
|
||||
"[ -1/8 ⇜ (0/1 → 1/6) ⇝ 1/4 | gain:0.00031404209523161047 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5999.785818935017 cutoff:4000 ]",
|
||||
"[ -1/4 ⇜ (0/1 → 1/4) | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:1650 ]",
|
||||
"[ -1/4 ⇜ (0/1 → 1/4) | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:1650 ]",
|
||||
"[ 0/1 → 1/4 | gain:0.00039824554453003064 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5999.143312438893 cutoff:4000 ]",
|
||||
"[ 0/1 → 1/4 | gain:0.00039824554453003064 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5999.143312438893 cutoff:4000 ]",
|
||||
"[ 0/1 → 1/4 | s:bd gain:0.7 ]",
|
||||
"[ (0/1 → 1/3) ⇝ 3/8 | gain:0.26103468453995016 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5998.072590601808 cutoff:4000 ]",
|
||||
"[ (0/1 → 1/3) ⇝ 3/8 | gain:0.26103468453995016 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5998.072590601808 cutoff:4000 ]",
|
||||
"[ -1/8 ⇜ (0/1 → 3/8) | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:1683.1306585059317 ]",
|
||||
"[ -1/8 ⇜ (0/1 → 3/8) | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:1683.1306585059317 ]",
|
||||
"[ -1/4 ⇜ (1/12 → 1/8) | gain:0.00024394233952886464 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5999.785818935017 cutoff:4000 ]",
|
||||
"[ -1/4 ⇜ (1/12 → 1/8) | gain:0.00024394233952886464 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5999.785818935017 cutoff:4000 ]",
|
||||
"[ 1/8 → 1/4 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1699.6897509708342 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 1/8 → 1/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1699.6897509708342 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (1/8 → 5/12) ⇝ 1/2 | gain:0.0002657724569848846 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5994.647308096509 cutoff:4000 ]",
|
||||
"[ (1/8 → 5/12) ⇝ 1/2 | gain:0.0002657724569848846 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5994.647308096509 cutoff:4000 ]",
|
||||
"[ -1/8 ⇜ (1/6 → 1/4) | gain:0.00031404209523161047 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5999.785818935017 cutoff:4000 ]",
|
||||
"[ -1/8 ⇜ (1/6 → 1/4) | gain:0.00031404209523161047 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5999.785818935017 cutoff:4000 ]",
|
||||
"[ 1/4 → 1/2 | gain:0.0003367315392180906 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5992.29333433282 cutoff:4000 ]",
|
||||
"[ 1/4 → 1/2 | gain:0.0003367315392180906 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5992.29333433282 cutoff:4000 ]",
|
||||
"[ 1/4 → 1/2 | s:hh3 gain:0.7 ]",
|
||||
"[ (1/4 → 7/12) ⇝ 5/8 | gain:0.2205154266512362 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5989.512318936654 cutoff:4000 ]",
|
||||
"[ (1/4 → 7/12) ⇝ 5/8 | gain:0.2205154266512362 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5989.512318936654 cutoff:4000 ]",
|
||||
"[ 0/1 ⇜ (1/3 → 3/8) | gain:0.26103468453995016 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5998.072590601808 cutoff:4000 ]",
|
||||
"[ 0/1 ⇜ (1/3 → 3/8) | gain:0.26103468453995016 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5998.072590601808 cutoff:4000 ]",
|
||||
"[ 3/8 → 1/2 | note:D2 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1765.826371664994 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 3/8 → 1/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1765.826371664994 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (3/8 → 2/3) ⇝ 3/4 | gain:0.2828651860235305 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5982.671142387316 cutoff:4000 ]",
|
||||
"[ (3/8 → 2/3) ⇝ 3/4 | gain:0.2828651860235305 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5982.671142387316 cutoff:4000 ]",
|
||||
"[ 1/8 ⇜ (5/12 → 1/2) | gain:0.0002657724569848846 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5994.647308096509 cutoff:4000 ]",
|
||||
"[ 1/8 ⇜ (5/12 → 1/2) | gain:0.0002657724569848846 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5994.647308096509 cutoff:4000 ]",
|
||||
"[ 1/2 → 5/8 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1798.799979846742 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 1/2 → 5/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1798.799979846742 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 1/2 → 3/4 | gain:0.0002836833950716784 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5978.612153434527 cutoff:4000 ]",
|
||||
"[ 1/2 → 3/4 | gain:0.0002836833950716784 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5978.612153434527 cutoff:4000 ]",
|
||||
"[ 1/2 → 3/4 | s:bd gain:0.7 ]",
|
||||
"[ (1/2 → 5/6) ⇝ 7/8 | gain:0.18560442471759028 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5974.128467049176 cutoff:4000 ]",
|
||||
"[ (1/2 → 5/6) ⇝ 7/8 | gain:0.18560442471759028 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5974.128467049176 cutoff:4000 ]",
|
||||
"[ 1/2 → 1/1 | s:sn gain:0.7 ]",
|
||||
"[ 1/4 ⇜ (7/12 → 5/8) | gain:0.2205154266512362 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5989.512318936654 cutoff:4000 ]",
|
||||
"[ 1/4 ⇜ (7/12 → 5/8) | gain:0.2205154266512362 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5989.512318936654 cutoff:4000 ]",
|
||||
"[ (5/8 → 11/12) ⇝ 1/1 | gain:0.237641808847867 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5963.890147645195 cutoff:4000 ]",
|
||||
"[ (5/8 → 11/12) ⇝ 1/1 | gain:0.237641808847867 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5963.890147645195 cutoff:4000 ]",
|
||||
"[ 3/8 ⇜ (2/3 → 3/4) | gain:0.2828651860235305 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5982.671142387316 cutoff:4000 ]",
|
||||
"[ 3/8 ⇜ (2/3 → 3/4) | gain:0.2828651860235305 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5982.671142387316 cutoff:4000 ]",
|
||||
"[ 3/4 → 7/8 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1864.4584935007128 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 3/4 → 7/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1864.4584935007128 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 3/4 → 1/1 | gain:0.300533478008833 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5958.137268909887 cutoff:4000 ]",
|
||||
"[ 3/4 → 1/1 | gain:0.300533478008833 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5958.137268909887 cutoff:4000 ]",
|
||||
"[ 3/4 → 1/1 | s:hh3 gain:0.7 ]",
|
||||
"[ (3/4 → 13/12) ⇝ 9/8 | gain:0.15563993880588714 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5951.963201008076 cutoff:4000 ]",
|
||||
"[ (3/4 → 13/12) ⇝ 9/8 | gain:0.15563993880588714 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5951.963201008076 cutoff:4000 ]",
|
||||
"[ 1/2 ⇜ (5/6 → 7/8) | gain:0.18560442471759028 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5974.128467049176 cutoff:4000 ]",
|
||||
"[ 1/2 ⇜ (5/6 → 7/8) | gain:0.18560442471759028 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5974.128467049176 cutoff:4000 ]",
|
||||
"[ 7/8 → 1/1 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1897.1038487394403 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 7/8 → 1/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1897.1038487394403 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (7/8 → 7/6) ⇝ 5/4 | gain:0.1989031661444791 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5938.355801271282 cutoff:4000 ]",
|
||||
"[ (7/8 → 7/6) ⇝ 5/4 | gain:0.1989031661444791 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5938.355801271282 cutoff:4000 ]",
|
||||
"[ 5/8 ⇜ (11/12 → 1/1) | gain:0.237641808847867 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5963.890147645195 cutoff:4000 ]",
|
||||
"[ 5/8 ⇜ (11/12 → 1/1) | gain:0.237641808847867 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5963.890147645195 cutoff:4000 ]",
|
||||
"[ 1/1 → 5/4 | gain:0.2513066112116339 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5930.924800994192 cutoff:4000 ]",
|
||||
"[ 1/1 → 5/4 | gain:0.2513066112116339 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5930.924800994192 cutoff:4000 ]",
|
||||
"[ 1/1 → 5/4 | s:bd gain:0.7 ]",
|
||||
"[ (1/1 → 4/3) ⇝ 11/8 | gain:0.13002412009397907 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5923.077274266886 cutoff:4000 ]",
|
||||
"[ (1/1 → 4/3) ⇝ 11/8 | gain:0.13002412009397907 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5923.077274266886 cutoff:4000 ]",
|
||||
"[ 3/4 ⇜ (13/12 → 9/8) | gain:0.15563993880588714 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5951.963201008076 cutoff:4000 ]",
|
||||
"[ 3/4 ⇜ (13/12 → 9/8) | gain:0.15563993880588714 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5951.963201008076 cutoff:4000 ]",
|
||||
"[ 9/8 → 5/4 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1961.928446178906 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 9/8 → 5/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:1961.928446178906 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (9/8 → 17/12) ⇝ 3/2 | gain:0.16585458116324744 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5906.1380911341175 cutoff:4000 ]",
|
||||
"[ (9/8 → 17/12) ⇝ 3/2 | gain:0.16585458116324744 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5906.1380911341175 cutoff:4000 ]",
|
||||
"[ 7/8 ⇜ (7/6 → 5/4) | gain:0.1989031661444791 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5938.355801271282 cutoff:4000 ]",
|
||||
"[ 7/8 ⇜ (7/6 → 5/4) | gain:0.1989031661444791 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5938.355801271282 cutoff:4000 ]",
|
||||
"[ 5/4 → 3/2 | gain:0.20935386344254933 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5897.049337170482 cutoff:4000 ]",
|
||||
"[ 5/4 → 3/2 | gain:0.20935386344254933 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5897.049337170482 cutoff:4000 ]",
|
||||
"[ 5/4 → 3/2 | s:hh3 gain:0.7 ]",
|
||||
"[ (5/4 → 19/12) ⇝ 13/8 | gain:0.10821620301269062 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5887.549861142967 cutoff:4000 ]",
|
||||
"[ (5/4 → 19/12) ⇝ 13/8 | gain:0.10821620301269062 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5887.549861142967 cutoff:4000 ]",
|
||||
"[ 1/1 ⇜ (4/3 → 11/8) | gain:0.13002412009397907 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5923.077274266886 cutoff:4000 ]",
|
||||
"[ 1/1 ⇜ (4/3 → 11/8) | gain:0.13002412009397907 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5923.077274266886 cutoff:4000 ]",
|
||||
"[ 11/8 → 3/2 | note:D2 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2026.0015806698216 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 11/8 → 3/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2026.0015806698216 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (11/8 → 5/3) ⇝ 7/4 | gain:0.13777765528071248 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5867.325323737765 cutoff:4000 ]",
|
||||
"[ (11/8 → 5/3) ⇝ 7/4 | gain:0.13777765528071248 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5867.325323737765 cutoff:4000 ]",
|
||||
"[ 9/8 ⇜ (17/12 → 3/2) | gain:0.16585458116324744 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5906.1380911341175 cutoff:4000 ]",
|
||||
"[ 9/8 ⇜ (17/12 → 3/2) | gain:0.16585458116324744 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5906.1380911341175 cutoff:4000 ]",
|
||||
"[ 3/2 → 13/8 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2057.708031580958 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 3/2 → 13/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2057.708031580958 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 3/2 → 7/4 | gain:0.17374970658501893 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5856.603727730447 cutoff:4000 ]",
|
||||
"[ 3/2 → 7/4 | gain:0.17374970658501893 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5856.603727730447 cutoff:4000 ]",
|
||||
"[ 3/2 → 7/4 | s:bd gain:0.7 ]",
|
||||
"[ (3/2 → 11/6) ⇝ 15/8 | gain:0.08972789051217522 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5845.47833980621 cutoff:4000 ]",
|
||||
"[ (3/2 → 11/6) ⇝ 15/8 | gain:0.08972789051217522 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5845.47833980621 cutoff:4000 ]",
|
||||
"[ 3/2 → 2/1 | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2104.801302079497 ]",
|
||||
"[ 3/2 → 2/1 | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2104.801302079497 ]",
|
||||
"[ 3/2 → 2/1 | s:sn gain:0.7 ]",
|
||||
"[ 5/4 ⇜ (19/12 → 13/8) | gain:0.10821620301269062 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5887.549861142967 cutoff:4000 ]",
|
||||
"[ 5/4 ⇜ (19/12 → 13/8) | gain:0.10821620301269062 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5887.549861142967 cutoff:4000 ]",
|
||||
"[ (13/8 → 23/12) ⇝ 2/1 | gain:0.11402475157686406 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5822.02388217981 cutoff:4000 ]",
|
||||
"[ (13/8 → 23/12) ⇝ 2/1 | gain:0.11402475157686406 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5822.02388217981 cutoff:4000 ]",
|
||||
"[ (13/8 → 2/1) ⇝ 17/8 | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2135.8582993222344 ]",
|
||||
"[ (13/8 → 2/1) ⇝ 17/8 | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2135.8582993222344 ]",
|
||||
"[ 11/8 ⇜ (5/3 → 7/4) | gain:0.13777765528071248 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5867.325323737765 cutoff:4000 ]",
|
||||
"[ 11/8 ⇜ (5/3 → 7/4) | gain:0.13777765528071248 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5867.325323737765 cutoff:4000 ]",
|
||||
"[ 7/4 → 15/8 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2120.3652183367367 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 7/4 → 15/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2120.3652183367367 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 7/4 → 2/1 | gain:0.14366058218580086 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5809.698831278217 cutoff:4000 ]",
|
||||
"[ 7/4 → 2/1 | gain:0.14366058218580086 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5809.698831278217 cutoff:4000 ]",
|
||||
"[ 7/4 → 2/1 | s:hh3 gain:0.7 ]",
|
||||
"[ (7/4 → 2/1) ⇝ 17/8 | gain:0.07411986998714647 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5796.978025372246 cutoff:4000 ]",
|
||||
"[ (7/4 → 2/1) ⇝ 17/8 | gain:0.07411986998714647 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5796.978025372246 cutoff:4000 ]",
|
||||
"[ (7/4 → 2/1) ⇝ 9/4 | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2166.622633692871 ]",
|
||||
"[ (7/4 → 2/1) ⇝ 9/4 | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2166.622633692871 ]",
|
||||
"[ 3/2 ⇜ (11/6 → 15/8) | gain:0.08972789051217522 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5845.47833980621 cutoff:4000 ]",
|
||||
"[ 3/2 ⇜ (11/6 → 15/8) | gain:0.08972789051217522 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5845.47833980621 cutoff:4000 ]",
|
||||
"[ 15/8 → 2/1 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2151.2782118349805 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 15/8 → 2/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2151.2782118349805 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (15/8 → 2/1) ⇝ 9/4 | gain:0.09401455409698445 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5770.357934562703 cutoff:4000 ]",
|
||||
"[ (15/8 → 2/1) ⇝ 9/4 | gain:0.09401455409698445 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5770.357934562703 cutoff:4000 ]",
|
||||
"[ (15/8 → 2/1) ⇝ 19/8 | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2197.0757739067362 ]",
|
||||
"[ (15/8 → 2/1) ⇝ 19/8 | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2197.0757739067362 ]",
|
||||
"[ 13/8 ⇜ (23/12 → 2/1) | gain:0.11402475157686406 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5822.02388217981 cutoff:4000 ]",
|
||||
"[ 13/8 ⇜ (23/12 → 2/1) | gain:0.11402475157686406 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5822.02388217981 cutoff:4000 ]",
|
||||
"[ 7/4 ⇜ (2/1 → 25/12) ⇝ 17/8 | gain:0.07411986998714647 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5796.978025372246 cutoff:4000 ]",
|
||||
"[ 7/4 ⇜ (2/1 → 25/12) ⇝ 17/8 | gain:0.07411986998714647 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5796.978025372246 cutoff:4000 ]",
|
||||
"[ 13/8 ⇜ (2/1 → 17/8) | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2135.8582993222344 ]",
|
||||
"[ 13/8 ⇜ (2/1 → 17/8) | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2135.8582993222344 ]",
|
||||
"[ 15/8 ⇜ (2/1 → 13/6) ⇝ 9/4 | gain:0.09401455409698445 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5770.357934562703 cutoff:4000 ]",
|
||||
"[ 15/8 ⇜ (2/1 → 13/6) ⇝ 9/4 | gain:0.09401455409698445 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5770.357934562703 cutoff:4000 ]",
|
||||
"[ 7/4 ⇜ (2/1 → 9/4) | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2166.622633692871 ]",
|
||||
"[ 7/4 ⇜ (2/1 → 9/4) | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2166.622633692871 ]",
|
||||
"[ 2/1 → 9/4 | gain:0.11833922971344701 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5756.463210874651 cutoff:4000 ]",
|
||||
"[ 2/1 → 9/4 | gain:0.11833922971344701 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5756.463210874651 cutoff:4000 ]",
|
||||
"[ 2/1 → 9/4 | s:bd gain:0.7 ]",
|
||||
"[ (2/1 → 7/3) ⇝ 19/8 | gain:0.06099882456242525 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5742.18185383172 cutoff:4000 ]",
|
||||
"[ (2/1 → 7/3) ⇝ 19/8 | gain:0.06099882456242525 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5742.18185383172 cutoff:4000 ]",
|
||||
"[ 15/8 ⇜ (2/1 → 19/8) | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2197.0757739067362 ]",
|
||||
"[ 15/8 ⇜ (2/1 → 19/8) | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2197.0757739067362 ]",
|
||||
"[ 7/4 ⇜ (25/12 → 17/8) | gain:0.07411986998714647 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5796.978025372246 cutoff:4000 ]",
|
||||
"[ 7/4 ⇜ (25/12 → 17/8) | gain:0.07411986998714647 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5796.978025372246 cutoff:4000 ]",
|
||||
"[ 17/8 → 9/4 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2212.17990613181 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 17/8 → 9/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2212.17990613181 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (17/8 → 29/12) ⇝ 5/2 | gain:0.07722803431084992 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5712.469093657604 cutoff:4000 ]",
|
||||
"[ (17/8 → 29/12) ⇝ 5/2 | gain:0.07722803431084992 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5712.469093657604 cutoff:4000 ]",
|
||||
"[ 15/8 ⇜ (13/6 → 9/4) | gain:0.09401455409698445 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5770.357934562703 cutoff:4000 ]",
|
||||
"[ 15/8 ⇜ (13/6 → 9/4) | gain:0.09401455409698445 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5770.357934562703 cutoff:4000 ]",
|
||||
"[ 9/4 → 5/2 | gain:0.09711940526986938 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5697.042781654914 cutoff:4000 ]",
|
||||
"[ 9/4 → 5/2 | gain:0.09711940526986938 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5697.042781654914 cutoff:4000 ]",
|
||||
"[ 9/4 → 5/2 | s:hh3 gain:0.7 ]",
|
||||
"[ (9/4 → 31/12) ⇝ 21/8 | gain:0.05001458841027654 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5681.240017681994 cutoff:4000 ]",
|
||||
"[ (9/4 → 31/12) ⇝ 21/8 | gain:0.05001458841027654 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5681.240017681994 cutoff:4000 ]",
|
||||
"[ 2/1 ⇜ (7/3 → 19/8) | gain:0.06099882456242525 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5742.18185383172 cutoff:4000 ]",
|
||||
"[ 2/1 ⇜ (7/3 → 19/8) | gain:0.06099882456242525 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5742.18185383172 cutoff:4000 ]",
|
||||
"[ 19/8 → 5/2 | note:D2 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2271.727259793624 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 19/8 → 5/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2271.727259793624 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (19/8 → 8/3) ⇝ 11/4 | gain:0.06320447612884668 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5648.516028753632 cutoff:4000 ]",
|
||||
"[ (19/8 → 8/3) ⇝ 11/4 | gain:0.06320447612884668 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5648.516028753632 cutoff:4000 ]",
|
||||
"[ 17/8 ⇜ (29/12 → 5/2) | gain:0.07722803431084992 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5712.469093657604 cutoff:4000 ]",
|
||||
"[ 17/8 ⇜ (29/12 → 5/2) | gain:0.07722803431084992 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5712.469093657604 cutoff:4000 ]",
|
||||
"[ 5/2 → 21/8 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2300.948092306816 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 5/2 → 21/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2300.948092306816 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 5/2 → 11/4 | gain:0.0794106090487894 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5631.60041088523 cutoff:4000 ]",
|
||||
"[ 5/2 → 11/4 | gain:0.0794106090487894 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5631.60041088523 cutoff:4000 ]",
|
||||
"[ 5/2 → 11/4 | s:bd gain:0.7 ]",
|
||||
"[ (5/2 → 17/6) ⇝ 23/8 | gain:0.04085727749307612 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5614.319554259933 cutoff:4000 ]",
|
||||
"[ (5/2 → 17/6) ⇝ 23/8 | gain:0.04085727749307612 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5614.319554259933 cutoff:4000 ]",
|
||||
"[ 5/2 → 3/1 | s:sn gain:0.7 ]",
|
||||
"[ 9/4 ⇜ (31/12 → 21/8) | gain:0.05001458841027654 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5681.240017681994 cutoff:4000 ]",
|
||||
"[ 9/4 ⇜ (31/12 → 21/8) | gain:0.05001458841027654 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5681.240017681994 cutoff:4000 ]",
|
||||
"[ (21/8 → 35/12) ⇝ 3/1 | gain:0.051537412445127495 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5578.674030756363 cutoff:4000 ]",
|
||||
"[ (21/8 → 35/12) ⇝ 3/1 | gain:0.051537412445127495 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5578.674030756363 cutoff:4000 ]",
|
||||
"[ 19/8 ⇜ (8/3 → 11/4) | gain:0.06320447612884668 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5648.516028753632 cutoff:4000 ]",
|
||||
"[ 19/8 ⇜ (8/3 → 11/4) | gain:0.06320447612884668 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5648.516028753632 cutoff:4000 ]",
|
||||
"[ 11/4 → 23/8 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2358.1960716159333 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 11/4 → 23/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2358.1960716159333 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 11/4 → 3/1 | gain:0.06469267544862903 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5560.31547155504 cutoff:4000 ]",
|
||||
"[ 11/4 → 3/1 | gain:0.06469267544862903 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5560.31547155504 cutoff:4000 ]",
|
||||
"[ 11/4 → 3/1 | s:hh3 gain:0.7 ]",
|
||||
"[ (11/4 → 37/12) ⇝ 25/8 | gain:0.033254339487292464 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5541.603887904197 cutoff:4000 ]",
|
||||
"[ (11/4 → 37/12) ⇝ 25/8 | gain:0.033254339487292464 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5541.603887904197 cutoff:4000 ]",
|
||||
"[ 5/2 ⇜ (17/6 → 23/8) | gain:0.04085727749307612 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5614.319554259933 cutoff:4000 ]",
|
||||
"[ 5/2 ⇜ (17/6 → 23/8) | gain:0.04085727749307612 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5614.319554259933 cutoff:4000 ]",
|
||||
"[ 23/8 → 3/1 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2386.1887343697626 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 23/8 → 3/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2386.1887343697626 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (23/8 → 19/6) ⇝ 13/4 | gain:0.041870446443995187 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5503.134531727652 cutoff:4000 ]",
|
||||
"[ (23/8 → 19/6) ⇝ 13/4 | gain:0.041870446443995187 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5503.134531727652 cutoff:4000 ]",
|
||||
"[ 21/8 ⇜ (35/12 → 3/1) | gain:0.051537412445127495 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5578.674030756363 cutoff:4000 ]",
|
||||
"[ 21/8 ⇜ (35/12 → 3/1) | gain:0.051537412445127495 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5578.674030756363 cutoff:4000 ]",
|
||||
"[ 3/1 → 13/4 | gain:0.05251021778611238 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5483.383350728088 cutoff:4000 ]",
|
||||
"[ 3/1 → 13/4 | gain:0.05251021778611238 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5483.383350728088 cutoff:4000 ]",
|
||||
"[ 3/1 → 13/4 | s:bd gain:0.7 ]",
|
||||
"[ (3/1 → 10/3) ⇝ 27/8 | gain:0.026967531141465956 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5463.2923272018625 cutoff:4000 ]",
|
||||
"[ (3/1 → 10/3) ⇝ 27/8 | gain:0.026967531141465956 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5463.2923272018625 cutoff:4000 ]",
|
||||
"[ 11/4 ⇜ (37/12 → 25/8) | gain:0.033254339487292464 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5541.603887904197 cutoff:4000 ]",
|
||||
"[ 11/4 ⇜ (37/12 → 25/8) | gain:0.033254339487292464 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5541.603887904197 cutoff:4000 ]",
|
||||
"[ 25/8 → 13/4 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2440.8271075661924 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 25/8 → 13/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2440.8271075661924 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (25/8 → 41/12) ⇝ 7/2 | gain:0.0338929965297769 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5422.104580183649 cutoff:4000 ]",
|
||||
"[ (25/8 → 41/12) ⇝ 7/2 | gain:0.0338929965297769 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5422.104580183649 cutoff:4000 ]",
|
||||
"[ 23/8 ⇜ (19/6 → 13/4) | gain:0.041870446443995187 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5503.134531727652 cutoff:4000 ]",
|
||||
"[ 23/8 ⇜ (19/6 → 13/4) | gain:0.041870446443995187 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5503.134531727652 cutoff:4000 ]",
|
||||
"[ 13/4 → 7/2 | gain:0.04246699250713177 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5401.014914000078 cutoff:4000 ]",
|
||||
"[ 13/4 → 7/2 | gain:0.04246699250713177 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5401.014914000078 cutoff:4000 ]",
|
||||
"[ 13/4 → 7/2 | s:hh3 gain:0.7 ]",
|
||||
"[ (13/4 → 43/12) ⇝ 29/8 | gain:0.021789864126373813 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5379.599518697443 cutoff:4000 ]",
|
||||
"[ (13/4 → 43/12) ⇝ 29/8 | gain:0.021789864126373813 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5379.599518697443 cutoff:4000 ]",
|
||||
"[ 3/1 ⇜ (10/3 → 27/8) | gain:0.026967531141465956 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5463.2923272018625 cutoff:4000 ]",
|
||||
"[ 3/1 ⇜ (10/3 → 27/8) | gain:0.026967531141465956 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5463.2923272018625 cutoff:4000 ]",
|
||||
"[ 27/8 → 7/2 | note:D2 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2493.5603089922215 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 27/8 → 7/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2493.5603089922215 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (27/8 → 11/3) ⇝ 15/4 | gain:0.02733603378769718 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5335.806273589214 cutoff:4000 ]",
|
||||
"[ (27/8 → 11/3) ⇝ 15/4 | gain:0.02733603378769718 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5335.806273589214 cutoff:4000 ]",
|
||||
"[ 25/8 ⇜ (41/12 → 7/2) | gain:0.0338929965297769 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5422.104580183649 cutoff:4000 ]",
|
||||
"[ 25/8 ⇜ (41/12 → 7/2) | gain:0.0338929965297769 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5422.104580183649 cutoff:4000 ]",
|
||||
"[ 7/2 → 29/8 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2519.1725829012184 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 7/2 → 29/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2519.1725829012184 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 7/2 → 15/4 | gain:0.034220278760810484 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5313.435927530719 cutoff:4000 ]",
|
||||
"[ 7/2 → 15/4 | gain:0.034220278760810484 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5313.435927530719 cutoff:4000 ]",
|
||||
"[ 7/2 → 15/4 | s:bd gain:0.7 ]",
|
||||
"[ (7/2 → 23/6) ⇝ 31/8 | gain:0.017542573009485987 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5290.754858561636 cutoff:4000 ]",
|
||||
"[ (7/2 → 23/6) ⇝ 31/8 | gain:0.017542573009485987 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5290.754858561636 cutoff:4000 ]",
|
||||
"[ 7/2 → 4/1 | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2556.604589043475 ]",
|
||||
"[ 7/2 → 4/1 | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2556.604589043475 ]",
|
||||
"[ 7/2 → 4/1 | s:sn gain:0.7 ]",
|
||||
"[ 13/4 ⇜ (43/12 → 29/8) | gain:0.021789864126373813 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5379.599518697443 cutoff:4000 ]",
|
||||
"[ 13/4 ⇜ (43/12 → 29/8) | gain:0.021789864126373813 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5379.599518697443 cutoff:4000 ]",
|
||||
"[ (29/8 → 47/12) ⇝ 4/1 | gain:0.02196788874761195 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5244.4761496042 cutoff:4000 ]",
|
||||
"[ (29/8 → 47/12) ⇝ 4/1 | gain:0.02196788874761195 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5244.4761496042 cutoff:4000 ]",
|
||||
"[ (29/8 → 4/1) ⇝ 33/8 | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2580.8797353950404 ]",
|
||||
"[ (29/8 → 4/1) ⇝ 33/8 | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2580.8797353950404 ]",
|
||||
"[ 27/8 ⇜ (11/3 → 15/4) | gain:0.02733603378769718 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5335.806273589214 cutoff:4000 ]",
|
||||
"[ 27/8 ⇜ (11/3 → 15/4) | gain:0.02733603378769718 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5335.806273589214 cutoff:4000 ]",
|
||||
"[ 15/4 → 31/8 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2568.811347023862 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 15/4 → 31/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2568.811347023862 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 15/4 → 4/1 | gain:0.027475374351507095 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5220.886439234386 cutoff:4000 ]",
|
||||
"[ 15/4 → 4/1 | gain:0.027475374351507095 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5220.886439234386 cutoff:4000 ]",
|
||||
"[ 15/4 → 4/1 | s:hh3 gain:0.7 ]",
|
||||
"[ (15/4 → 4/1) ⇝ 33/8 | gain:0.01407215930427397 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5197.0018638323545 cutoff:4000 ]",
|
||||
"[ (15/4 → 4/1) ⇝ 33/8 | gain:0.01407215930427397 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5197.0018638323545 cutoff:4000 ]",
|
||||
"[ (15/4 → 4/1) ⇝ 17/4 | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2604.594154601839 ]",
|
||||
"[ (15/4 → 4/1) ⇝ 17/4 | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2604.594154601839 ]",
|
||||
"[ 7/2 ⇜ (23/6 → 31/8) | gain:0.017542573009485987 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5290.754858561636 cutoff:4000 ]",
|
||||
"[ 7/2 ⇜ (23/6 → 31/8) | gain:0.017542573009485987 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5290.754858561636 cutoff:4000 ]",
|
||||
"[ 31/8 → 4/1 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2592.8079367021132 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 31/8 → 4/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2592.8079367021132 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 31/8 → 4/1 | s:bd gain:0.7 ]",
|
||||
"[ (31/8 → 4/1) ⇝ 17/4 | gain:0.01759019913034246 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5148.3645377501725 cutoff:4000 ]",
|
||||
"[ (31/8 → 4/1) ⇝ 17/4 | gain:0.01759019913034246 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5148.3645377501725 cutoff:4000 ]",
|
||||
"[ (31/8 → 4/1) ⇝ 35/8 | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2627.7335619844803 ]",
|
||||
"[ (31/8 → 4/1) ⇝ 35/8 | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2627.7335619844803 ]",
|
||||
"[ 29/8 ⇜ (47/12 → 4/1) | gain:0.02196788874761195 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5244.4761496042 cutoff:4000 ]",
|
||||
"[ 29/8 ⇜ (47/12 → 4/1) | gain:0.02196788874761195 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5244.4761496042 cutoff:4000 ]",
|
||||
"[ 15/4 ⇜ (4/1 → 49/12) ⇝ 33/8 | gain:0.01407215930427397 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5197.0018638323545 cutoff:4000 ]",
|
||||
"[ 15/4 ⇜ (4/1 → 49/12) ⇝ 33/8 | gain:0.01407215930427397 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5197.0018638323545 cutoff:4000 ]",
|
||||
"[ 29/8 ⇜ (4/1 → 33/8) | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2580.8797353950404 ]",
|
||||
"[ 29/8 ⇜ (4/1 → 33/8) | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2580.8797353950404 ]",
|
||||
"[ 31/8 ⇜ (4/1 → 25/6) ⇝ 17/4 | gain:0.01759019913034246 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5148.3645377501725 cutoff:4000 ]",
|
||||
"[ 31/8 ⇜ (4/1 → 25/6) ⇝ 17/4 | gain:0.01759019913034246 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5148.3645377501725 cutoff:4000 ]",
|
||||
"[ 15/4 ⇜ (4/1 → 17/4) | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2604.594154601839 ]",
|
||||
"[ 15/4 ⇜ (4/1 → 17/4) | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2604.594154601839 ]",
|
||||
"[ 4/1 → 17/4 | gain:0.02198029948120568 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5123.62012082546 cutoff:4000 ]",
|
||||
"[ 4/1 → 17/4 | gain:0.02198029948120568 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5123.62012082546 cutoff:4000 ]",
|
||||
"[ 4/1 → 17/4 | s:bd gain:0.7 ]",
|
||||
"[ (4/1 → 13/3) ⇝ 35/8 | gain:0.011247559038777319 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5098.597504951462 cutoff:4000 ]",
|
||||
"[ (4/1 → 13/3) ⇝ 35/8 | gain:0.011247559038777319 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5098.597504951462 cutoff:4000 ]",
|
||||
"[ 31/8 ⇜ (4/1 → 35/8) | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2627.7335619844803 ]",
|
||||
"[ 31/8 ⇜ (4/1 → 35/8) | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2627.7335619844803 ]",
|
||||
"[ 15/4 ⇜ (49/12 → 33/8) | gain:0.01407215930427397 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5197.0018638323545 cutoff:4000 ]",
|
||||
"[ 15/4 ⇜ (49/12 → 33/8) | gain:0.01407215930427397 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5197.0018638323545 cutoff:4000 ]",
|
||||
"[ 33/8 → 17/4 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2639.083266757757 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 33/8 → 17/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2639.083266757757 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (33/8 → 53/12) ⇝ 9/2 | gain:0.01403405840758879 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5047.734873274585 cutoff:4000 ]",
|
||||
"[ (33/8 → 53/12) ⇝ 9/2 | gain:0.01403405840758879 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5047.734873274585 cutoff:4000 ]",
|
||||
"[ 31/8 ⇜ (25/6 → 17/4) | gain:0.01759019913034246 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5148.3645377501725 cutoff:4000 ]",
|
||||
"[ 31/8 ⇜ (25/6 → 17/4) | gain:0.01759019913034246 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5148.3645377501725 cutoff:4000 ]",
|
||||
"[ 17/4 → 9/2 | gain:0.01752078272553497 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5021.903572521802 cutoff:4000 ]",
|
||||
"[ 17/4 → 9/2 | gain:0.01752078272553497 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5021.903572521802 cutoff:4000 ]",
|
||||
"[ 17/4 → 9/2 | s:hh3 gain:0.7 ]",
|
||||
"[ (17/4 → 55/12) ⇝ 37/8 | gain:0.008957471551552614 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4995.811501426648 cutoff:4000 ]",
|
||||
"[ (17/4 → 55/12) ⇝ 37/8 | gain:0.008957471551552614 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4995.811501426648 cutoff:4000 ]",
|
||||
"[ 4/1 ⇜ (13/3 → 35/8) | gain:0.011247559038777319 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5098.597504951462 cutoff:4000 ]",
|
||||
"[ 4/1 ⇜ (13/3 → 35/8) | gain:0.011247559038777319 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5098.597504951462 cutoff:4000 ]",
|
||||
"[ 35/8 → 9/2 | note:D2 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2682.97580859032 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 35/8 → 9/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2682.97580859032 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (35/8 → 14/3) ⇝ 19/4 | gain:0.011156410432703394 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4942.862975093085 cutoff:4000 ]",
|
||||
"[ (35/8 → 14/3) ⇝ 19/4 | gain:0.011156410432703394 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4942.862975093085 cutoff:4000 ]",
|
||||
"[ 33/8 ⇜ (53/12 → 9/2) | gain:0.01403405840758879 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5047.734873274585 cutoff:4000 ]",
|
||||
"[ 33/8 ⇜ (53/12 → 9/2) | gain:0.01403405840758879 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:5047.734873274585 cutoff:4000 ]",
|
||||
"[ 9/2 → 37/8 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2703.995258572327 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 9/2 → 37/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2703.995258572327 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 9/2 → 19/4 | gain:0.013915584104736941 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4916.015592312082 cutoff:4000 ]",
|
||||
"[ 9/2 → 19/4 | gain:0.013915584104736941 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4916.015592312082 cutoff:4000 ]",
|
||||
"[ 9/2 → 19/4 | s:bd gain:0.7 ]",
|
||||
"[ (9/2 → 29/6) ⇝ 39/8 | gain:0.007107876545841471 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4888.925582549005 cutoff:4000 ]",
|
||||
"[ (9/2 → 29/6) ⇝ 39/8 | gain:0.007107876545841471 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4888.925582549005 cutoff:4000 ]",
|
||||
"[ 9/2 → 5/1 | s:sn gain:0.7 ]",
|
||||
"[ 17/4 ⇜ (55/12 → 37/8) | gain:0.008957471551552614 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4995.811501426648 cutoff:4000 ]",
|
||||
"[ 17/4 ⇜ (55/12 → 37/8) | gain:0.008957471551552614 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4995.811501426648 cutoff:4000 ]",
|
||||
"[ (37/8 → 59/12) ⇝ 5/1 | gain:0.008836720604435567 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4834.036289789029 cutoff:4000 ]",
|
||||
"[ (37/8 → 59/12) ⇝ 5/1 | gain:0.008836720604435567 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4834.036289789029 cutoff:4000 ]",
|
||||
"[ 35/8 ⇜ (14/3 → 19/4) | gain:0.011156410432703394 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4942.862975093085 cutoff:4000 ]",
|
||||
"[ 35/8 ⇜ (14/3 → 19/4) | gain:0.011156410432703394 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4942.862975093085 cutoff:4000 ]",
|
||||
"[ 19/4 → 39/8 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2744.1172176410028 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 19/4 → 39/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2744.1172176410028 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 19/4 → 5/1 | gain:0.011012190825058119 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4806.246411789873 cutoff:4000 ]",
|
||||
"[ 19/4 → 5/1 | gain:0.011012190825058119 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4806.246411789873 cutoff:4000 ]",
|
||||
"[ 19/4 → 5/1 | s:hh3 gain:0.7 ]",
|
||||
"[ (19/4 → 61/12) ⇝ 41/8 | gain:0.005619756192058716 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4778.23271519263 cutoff:4000 ]",
|
||||
"[ (19/4 → 61/12) ⇝ 41/8 | gain:0.005619756192058716 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4778.23271519263 cutoff:4000 ]",
|
||||
"[ 9/2 ⇜ (29/6 → 39/8) | gain:0.007107876545841471 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4888.925582549005 cutoff:4000 ]",
|
||||
"[ 9/2 ⇜ (29/6 → 39/8) | gain:0.007107876545841471 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4888.925582549005 cutoff:4000 ]",
|
||||
"[ 39/8 → 5/1 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2763.195558759784 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 39/8 → 5/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2763.195558759784 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (39/8 → 31/6) ⇝ 21/4 | gain:0.006973940456445439 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4721.553103742387 cutoff:4000 ]",
|
||||
"[ (39/8 → 31/6) ⇝ 21/4 | gain:0.006973940456445439 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4721.553103742387 cutoff:4000 ]",
|
||||
"[ 37/8 ⇜ (59/12 → 5/1) | gain:0.008836720604435567 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4834.036289789029 cutoff:4000 ]",
|
||||
"[ 37/8 ⇜ (59/12 → 5/1) | gain:0.008836720604435567 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4834.036289789029 cutoff:4000 ]",
|
||||
"[ 5/1 → 21/4 | gain:0.008682903916956372 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4692.8969006490215 cutoff:4000 ]",
|
||||
"[ 5/1 → 21/4 | gain:0.008682903916956372 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4692.8969006490215 cutoff:4000 ]",
|
||||
"[ 5/1 → 21/4 | s:bd gain:0.7 ]",
|
||||
"[ (5/1 → 16/3) ⇝ 43/8 | gain:0.004427030019445723 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4664.036300812779 cutoff:4000 ]",
|
||||
"[ (5/1 → 16/3) ⇝ 43/8 | gain:0.004427030019445723 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4664.036300812779 cutoff:4000 ]",
|
||||
"[ 19/4 ⇜ (61/12 → 41/8) | gain:0.005619756192058716 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4778.23271519263 cutoff:4000 ]",
|
||||
"[ 19/4 ⇜ (61/12 → 41/8) | gain:0.005619756192058716 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4778.23271519263 cutoff:4000 ]",
|
||||
"[ 41/8 → 21/4 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2799.329510692108 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 41/8 → 21/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2799.329510692108 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (41/8 → 65/12) ⇝ 11/2 | gain:0.005483770957386215 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4605.721725547503 cutoff:4000 ]",
|
||||
"[ (41/8 → 65/12) ⇝ 11/2 | gain:0.005483770957386215 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4605.721725547503 cutoff:4000 ]",
|
||||
"[ 39/8 ⇜ (31/6 → 21/4) | gain:0.006973940456445439 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4721.553103742387 cutoff:4000 ]",
|
||||
"[ 39/8 ⇜ (31/6 → 21/4) | gain:0.006973940456445439 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4721.553103742387 cutoff:4000 ]",
|
||||
"[ 21/4 → 11/2 | gain:0.006821319376399847 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4576.2777420207385 cutoff:4000 ]",
|
||||
"[ 21/4 → 11/2 | gain:0.006821319376399847 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4576.2777420207385 cutoff:4000 ]",
|
||||
"[ 21/4 → 11/2 | s:hh3 gain:0.7 ]",
|
||||
"[ (21/4 → 67/12) ⇝ 45/8 | gain:0.00347470282155788 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4546.64934384357 cutoff:4000 ]",
|
||||
"[ (21/4 → 67/12) ⇝ 45/8 | gain:0.00347470282155788 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4546.64934384357 cutoff:4000 ]",
|
||||
"[ 5/1 ⇜ (16/3 → 43/8) | gain:0.004427030019445723 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4664.036300812779 cutoff:4000 ]",
|
||||
"[ 5/1 ⇜ (16/3 → 43/8) | gain:0.004427030019445723 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4664.036300812779 cutoff:4000 ]",
|
||||
"[ 43/8 → 11/2 | note:D2 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2832.694627163799 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 43/8 → 11/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2832.694627163799 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (43/8 → 17/3) ⇝ 23/4 | gain:0.004296220430900771 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4486.859640960669 cutoff:4000 ]",
|
||||
"[ (43/8 → 17/3) ⇝ 23/4 | gain:0.004296220430900771 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4486.859640960669 cutoff:4000 ]",
|
||||
"[ 41/8 ⇜ (65/12 → 11/2) | gain:0.005483770957386215 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4605.721725547503 cutoff:4000 ]",
|
||||
"[ 41/8 ⇜ (65/12 → 11/2) | gain:0.005483770957386215 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4605.721725547503 cutoff:4000 ]",
|
||||
"[ 11/2 → 45/8 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2848.313487543853 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 11/2 → 45/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2848.313487543853 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 11/2 → 23/4 | gain:0.005339195768845559 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4456.708580912725 cutoff:4000 ]",
|
||||
"[ 11/2 → 23/4 | gain:0.005339195768845559 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4456.708580912725 cutoff:4000 ]",
|
||||
"[ 11/2 → 23/4 | s:bd gain:0.7 ]",
|
||||
"[ (11/2 → 35/6) ⇝ 47/8 | gain:0.0027172198948820303 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4426.39359377459 cutoff:4000 ]",
|
||||
"[ (11/2 → 35/6) ⇝ 47/8 | gain:0.0027172198948820303 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4426.39359377459 cutoff:4000 ]",
|
||||
"[ 11/2 → 6/1 | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2870.3855457166487 ]",
|
||||
"[ 11/2 → 6/1 | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2870.3855457166487 ]",
|
||||
"[ 11/2 → 6/1 | s:sn gain:0.7 ]",
|
||||
"[ 21/4 ⇜ (67/12 → 45/8) | gain:0.00347470282155788 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4546.64934384357 cutoff:4000 ]",
|
||||
"[ 21/4 ⇜ (67/12 → 45/8) | gain:0.00347470282155788 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4546.64934384357 cutoff:4000 ]",
|
||||
"[ (45/8 → 71/12) ⇝ 6/1 | gain:0.0033534458443527444 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4365.292642693734 cutoff:4000 ]",
|
||||
"[ (45/8 → 71/12) ⇝ 6/1 | gain:0.0033534458443527444 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4365.292642693734 cutoff:4000 ]",
|
||||
"[ (45/8 → 6/1) ⇝ 49/8 | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2884.183170199766 ]",
|
||||
"[ (45/8 → 6/1) ⇝ 49/8 | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2884.183170199766 ]",
|
||||
"[ 43/8 ⇜ (17/3 → 23/4) | gain:0.004296220430900771 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4486.859640960669 cutoff:4000 ]",
|
||||
"[ 43/8 ⇜ (17/3 → 23/4) | gain:0.004296220430900771 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4486.859640960669 cutoff:4000 ]",
|
||||
"[ 23/4 → 47/8 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2877.376777172205 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 23/4 → 47/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2877.376777172205 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 23/4 → 6/1 | gain:0.0041636914909436865 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4334.517148084427 cutoff:4000 ]",
|
||||
"[ 23/4 → 6/1 | gain:0.0041636914909436865 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4334.517148084427 cutoff:4000 ]",
|
||||
"[ 23/4 → 6/1 | s:hh3 gain:0.7 ]",
|
||||
"[ (23/4 → 6/1) ⇝ 49/8 | gain:0.0021170195539929144 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4303.598663257904 cutoff:4000 ]",
|
||||
"[ (23/4 → 6/1) ⇝ 49/8 | gain:0.0021170195539929144 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4303.598663257904 cutoff:4000 ]",
|
||||
"[ (23/4 → 6/1) ⇝ 25/4 | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2897.237368890237 ]",
|
||||
"[ (23/4 → 6/1) ⇝ 25/4 | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2897.237368890237 ]",
|
||||
"[ 11/2 ⇜ (35/6 → 47/8) | gain:0.0027172198948820303 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4426.39359377459 cutoff:4000 ]",
|
||||
"[ 11/2 ⇜ (35/6 → 47/8) | gain:0.0027172198948820303 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4426.39359377459 cutoff:4000 ]",
|
||||
"[ 47/8 → 6/1 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2890.803699781578 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 47/8 → 6/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2890.803699781578 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (47/8 → 6/1) ⇝ 25/4 | gain:0.002607861084803616 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4241.3539374389275 cutoff:4000 ]",
|
||||
"[ (47/8 → 6/1) ⇝ 25/4 | gain:0.002607861084803616 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4241.3539374389275 cutoff:4000 ]",
|
||||
"[ (47/8 → 6/1) ⇝ 51/8 | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2909.5402784268977 ]",
|
||||
"[ (47/8 → 6/1) ⇝ 51/8 | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2909.5402784268977 ]",
|
||||
"[ 45/8 ⇜ (71/12 → 6/1) | gain:0.0033534458443527444 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4365.292642693734 cutoff:4000 ]",
|
||||
"[ 45/8 ⇜ (71/12 → 6/1) | gain:0.0033534458443527444 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4365.292642693734 cutoff:4000 ]",
|
||||
"[ 23/4 ⇜ (6/1 → 73/12) ⇝ 49/8 | gain:0.0021170195539929144 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4303.598663257904 cutoff:4000 ]",
|
||||
"[ 23/4 ⇜ (6/1 → 73/12) ⇝ 49/8 | gain:0.0021170195539929144 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4303.598663257904 cutoff:4000 ]",
|
||||
"[ 45/8 ⇜ (6/1 → 49/8) | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2884.183170199766 ]",
|
||||
"[ 45/8 ⇜ (6/1 → 49/8) | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2884.183170199766 ]",
|
||||
"[ 47/8 ⇜ (6/1 → 37/6) ⇝ 25/4 | gain:0.002607861084803616 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4241.3539374389275 cutoff:4000 ]",
|
||||
"[ 47/8 ⇜ (6/1 → 37/6) ⇝ 25/4 | gain:0.002607861084803616 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4241.3539374389275 cutoff:4000 ]",
|
||||
"[ 23/4 ⇜ (6/1 → 25/4) | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2897.237368890237 ]",
|
||||
"[ 23/4 ⇜ (6/1 → 25/4) | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2897.237368890237 ]",
|
||||
"[ 6/1 → 25/4 | gain:0.0032349487219990097 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4210.038361759807 cutoff:4000 ]",
|
||||
"[ 6/1 → 25/4 | gain:0.0032349487219990097 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4210.038361759807 cutoff:4000 ]",
|
||||
"[ 6/1 → 25/4 | s:bd gain:0.7 ]",
|
||||
"[ (6/1 → 19/3) ⇝ 51/8 | gain:0.0016432698518802527 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4178.601124662687 cutoff:4000 ]",
|
||||
"[ (6/1 → 19/3) ⇝ 51/8 | gain:0.0016432698518802527 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4178.601124662687 cutoff:4000 ]",
|
||||
"[ 47/8 ⇜ (6/1 → 51/8) | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2909.5402784268977 ]",
|
||||
"[ 47/8 ⇜ (6/1 → 51/8) | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2909.5402784268977 ]",
|
||||
"[ 23/4 ⇜ (73/12 → 49/8) | gain:0.0021170195539929144 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4303.598663257904 cutoff:4000 ]",
|
||||
"[ 23/4 ⇜ (73/12 → 49/8) | gain:0.0021170195539929144 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4303.598663257904 cutoff:4000 ]",
|
||||
"[ 49/8 → 25/4 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2915.4076660819765 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 49/8 → 25/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2915.4076660819765 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (49/8 → 77/12) ⇝ 13/2 | gain:0.002020492471376867 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4115.383232572483 cutoff:4000 ]",
|
||||
"[ (49/8 → 77/12) ⇝ 13/2 | gain:0.002020492471376867 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4115.383232572483 cutoff:4000 ]",
|
||||
"[ 47/8 ⇜ (37/6 → 25/4) | gain:0.002607861084803616 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4241.3539374389275 cutoff:4000 ]",
|
||||
"[ 47/8 ⇜ (37/6 → 25/4) | gain:0.002607861084803616 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4241.3539374389275 cutoff:4000 ]",
|
||||
"[ 25/4 → 13/2 | gain:0.0025039971642624803 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4083.6134096397636 cutoff:4000 ]",
|
||||
"[ 25/4 → 13/2 | gain:0.0025039971642624803 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4083.6134096397636 cutoff:4000 ]",
|
||||
"[ 25/4 → 13/2 | s:hh3 gain:0.7 ]",
|
||||
"[ (25/4 → 79/12) ⇝ 53/8 | gain:0.0012707745730195417 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4051.743587553753 cutoff:4000 ]",
|
||||
"[ (25/4 → 79/12) ⇝ 53/8 | gain:0.0012707745730195417 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4051.743587553753 cutoff:4000 ]",
|
||||
"[ 6/1 ⇜ (19/3 → 51/8) | gain:0.0016432698518802527 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4178.601124662687 cutoff:4000 ]",
|
||||
"[ 6/1 ⇜ (19/3 → 51/8) | gain:0.0016432698518802527 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4178.601124662687 cutoff:4000 ]",
|
||||
"[ 51/8 → 13/2 | note:D2 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2936.9631544781614 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 51/8 → 13/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2936.9631544781614 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (51/8 → 20/3) ⇝ 27/4 | gain:0.0015595598450028928 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3987.7258050403216 cutoff:4000 ]",
|
||||
"[ (51/8 → 20/3) ⇝ 27/4 | gain:0.0015595598450028928 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3987.7258050403216 cutoff:4000 ]",
|
||||
"[ 49/8 ⇜ (77/12 → 13/2) | gain:0.002020492471376867 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4115.383232572483 cutoff:4000 ]",
|
||||
"[ 49/8 ⇜ (77/12 → 13/2) | gain:0.002020492471376867 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4115.383232572483 cutoff:4000 ]",
|
||||
"[ 13/2 → 53/8 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2946.5812012110136 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 13/2 → 53/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2946.5812012110136 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 13/2 → 27/4 | gain:0.001930948569883525 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3955.588813730369 cutoff:4000 ]",
|
||||
"[ 13/2 → 27/4 | gain:0.001930948569883525 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3955.588813730369 cutoff:4000 ]",
|
||||
"[ 13/2 → 27/4 | s:bd gain:0.7 ]",
|
||||
"[ (13/2 → 41/6) ⇝ 55/8 | gain:0.0009790326438946302 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3923.373759622562 cutoff:4000 ]",
|
||||
"[ (13/2 → 41/6) ⇝ 55/8 | gain:0.0009790326438946302 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3923.373759622562 cutoff:4000 ]",
|
||||
"[ 13/2 → 7/1 | s:sn gain:0.7 ]",
|
||||
"[ 25/4 ⇜ (79/12 → 53/8) | gain:0.0012707745730195417 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4051.743587553753 cutoff:4000 ]",
|
||||
"[ 25/4 ⇜ (79/12 → 53/8) | gain:0.0012707745730195417 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:4051.743587553753 cutoff:4000 ]",
|
||||
"[ (53/8 → 83/12) ⇝ 7/1 | gain:0.0011992608333914556 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3858.7315549779487 cutoff:4000 ]",
|
||||
"[ (53/8 → 83/12) ⇝ 7/1 | gain:0.0011992608333914556 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3858.7315549779487 cutoff:4000 ]",
|
||||
"[ 51/8 ⇜ (20/3 → 27/4) | gain:0.0015595598450028928 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3987.7258050403216 cutoff:4000 ]",
|
||||
"[ 51/8 ⇜ (20/3 → 27/4) | gain:0.0015595598450028928 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3987.7258050403216 cutoff:4000 ]",
|
||||
"[ 27/4 → 55/8 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2963.468935477506 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 27/4 → 55/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2963.468935477506 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 27/4 → 7/1 | gain:0.001483452397136718 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3826.315480550129 cutoff:4000 ]",
|
||||
"[ 27/4 → 7/1 | gain:0.001483452397136718 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3826.315480550129 cutoff:4000 ]",
|
||||
"[ 27/4 → 7/1 | s:hh3 gain:0.7 ]",
|
||||
"[ (27/4 → 85/12) ⇝ 57/8 | gain:0.0007514349161098732 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3793.8434936445938 cutoff:4000 ]",
|
||||
"[ (27/4 → 85/12) ⇝ 57/8 | gain:0.0007514349161098732 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3793.8434936445938 cutoff:4000 ]",
|
||||
"[ 13/2 ⇜ (41/6 → 55/8) | gain:0.0009790326438946302 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3923.373759622562 cutoff:4000 ]",
|
||||
"[ 13/2 ⇜ (41/6 → 55/8) | gain:0.0009790326438946302 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3923.373759622562 cutoff:4000 ]",
|
||||
"[ 55/8 → 7/1 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2970.728450471497 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 55/8 → 7/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2970.728450471497 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (55/8 → 43/6) ⇝ 29/4 | gain:0.0009187360380160062 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3728.7540466585065 cutoff:4000 ]",
|
||||
"[ (55/8 → 43/6) ⇝ 29/4 | gain:0.0009187360380160062 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3728.7540466585065 cutoff:4000 ]",
|
||||
"[ 53/8 ⇜ (83/12 → 7/1) | gain:0.0011992608333914556 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3858.7315549779487 cutoff:4000 ]",
|
||||
"[ 53/8 ⇜ (83/12 → 7/1) | gain:0.0011992608333914556 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3858.7315549779487 cutoff:4000 ]",
|
||||
"[ 7/1 → 29/4 | gain:0.0011353833788233256 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3696.147739319613 cutoff:4000 ]",
|
||||
"[ 7/1 → 29/4 | gain:0.0011353833788233256 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3696.147739319613 cutoff:4000 ]",
|
||||
"[ 7/1 → 29/4 | s:bd gain:0.7 ]",
|
||||
"[ (7/1 → 22/3) ⇝ 59/8 | gain:0.0005745826370722221 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3663.507823075358 cutoff:4000 ]",
|
||||
"[ (7/1 → 22/3) ⇝ 59/8 | gain:0.0005745826370722221 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3663.507823075358 cutoff:4000 ]",
|
||||
"[ 27/4 ⇜ (85/12 → 57/8) | gain:0.0007514349161098732 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3793.8434936445938 cutoff:4000 ]",
|
||||
"[ 27/4 ⇜ (85/12 → 57/8) | gain:0.0007514349161098732 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3793.8434936445938 cutoff:4000 ]",
|
||||
"[ 57/8 → 29/4 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2982.856914513109 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 57/8 → 29/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2982.856914513109 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (57/8 → 89/12) ⇝ 15/2 | gain:0.0007011936914869215 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3598.149539397671 cutoff:4000 ]",
|
||||
"[ (57/8 → 89/12) ⇝ 15/2 | gain:0.0007011936914869215 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3598.149539397671 cutoff:4000 ]",
|
||||
"[ 55/8 ⇜ (43/6 → 29/4) | gain:0.0009187360380160062 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3728.7540466585065 cutoff:4000 ]",
|
||||
"[ 55/8 ⇜ (43/6 → 29/4) | gain:0.0009187360380160062 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3728.7540466585065 cutoff:4000 ]",
|
||||
"[ 29/4 → 15/2 | gain:0.0008657330171865184 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3565.4423707696824 cutoff:4000 ]",
|
||||
"[ 29/4 → 15/2 | gain:0.0008657330171865184 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3565.4423707696824 cutoff:4000 ]",
|
||||
"[ 29/4 → 15/2 | s:hh3 gain:0.7 ]",
|
||||
"[ (29/4 → 91/12) ⇝ 61/8 | gain:0.00043771267437304546 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3532.7239889283615 cutoff:4000 ]",
|
||||
"[ (29/4 → 91/12) ⇝ 61/8 | gain:0.00043771267437304546 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3532.7239889283615 cutoff:4000 ]",
|
||||
"[ 7/1 ⇜ (22/3 → 59/8) | gain:0.0005745826370722221 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3663.507823075358 cutoff:4000 ]",
|
||||
"[ 7/1 ⇜ (22/3 → 59/8) | gain:0.0005745826370722221 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3663.507823075358 cutoff:4000 ]",
|
||||
"[ 59/8 → 15/2 | note:D2 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2991.774409503181 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 59/8 → 15/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2991.774409503181 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (59/8 → 23/3) ⇝ 31/4 | gain:0.0005331735858040315 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3467.276011071639 cutoff:4000 ]",
|
||||
"[ (59/8 → 23/3) ⇝ 31/4 | gain:0.0005331735858040315 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3467.276011071639 cutoff:4000 ]",
|
||||
"[ 57/8 ⇜ (89/12 → 15/2) | gain:0.0007011936914869215 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3598.149539397671 cutoff:4000 ]",
|
||||
"[ 57/8 ⇜ (89/12 → 15/2) | gain:0.0007011936914869215 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3598.149539397671 cutoff:4000 ]",
|
||||
"[ 15/2 → 61/8 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2995.0220264467503 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 15/2 → 61/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2995.0220264467503 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 15/2 → 31/4 | gain:0.0006576787875353331 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3434.557629230318 cutoff:4000 ]",
|
||||
"[ 15/2 → 31/4 | gain:0.0006576787875353331 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3434.557629230318 cutoff:4000 ]",
|
||||
"[ 15/2 → 31/4 | s:bd gain:0.7 ]",
|
||||
"[ (15/2 → 47/6) ⇝ 63/8 | gain:0.0003322155712311059 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3401.8504606023293 cutoff:4000 ]",
|
||||
"[ (15/2 → 47/6) ⇝ 63/8 | gain:0.0003322155712311059 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3401.8504606023293 cutoff:4000 ]",
|
||||
"[ 15/2 → 8/1 | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2998.3738658769826 ]",
|
||||
"[ 15/2 → 8/1 | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2998.3738658769826 ]",
|
||||
"[ 15/2 → 8/1 | s:sn gain:0.7 ]",
|
||||
"[ 29/4 ⇜ (91/12 → 61/8) | gain:0.00043771267437304546 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3532.7239889283615 cutoff:4000 ]",
|
||||
"[ 29/4 ⇜ (91/12 → 61/8) | gain:0.00043771267437304546 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3532.7239889283615 cutoff:4000 ]",
|
||||
"[ (61/8 → 95/12) ⇝ 8/1 | gain:0.00040393160954279157 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3336.4921769246425 cutoff:4000 ]",
|
||||
"[ (61/8 → 95/12) ⇝ 8/1 | gain:0.00040393160954279157 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3336.4921769246425 cutoff:4000 ]",
|
||||
"[ (61/8 → 8/1) ⇝ 65/8 | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2999.5934052398757 ]",
|
||||
"[ (61/8 → 8/1) ⇝ 65/8 | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2999.5934052398757 ]",
|
||||
"[ 59/8 ⇜ (23/3 → 31/4) | gain:0.0005331735858040315 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3467.276011071639 cutoff:4000 ]",
|
||||
"[ 59/8 ⇜ (23/3 → 31/4) | gain:0.0005331735858040315 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3467.276011071639 cutoff:4000 ]",
|
||||
"[ 31/4 → 63/8 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2999.0852191942718 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 31/4 → 63/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2999.0852191942718 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 31/4 → 8/1 | gain:0.0004978069306625383 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3303.852260680389 cutoff:4000 ]",
|
||||
"[ 31/4 → 8/1 | gain:0.0004978069306625383 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3303.852260680389 cutoff:4000 ]",
|
||||
"[ 31/4 → 8/1 | s:hh3 gain:0.7 ]",
|
||||
"[ (31/4 → 8/1) ⇝ 65/8 | gain:0.0002512336761852884 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3271.2459533414954 cutoff:4000 ]",
|
||||
"[ (31/4 → 8/1) ⇝ 65/8 | gain:0.0002512336761852884 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3271.2459533414954 cutoff:4000 ]",
|
||||
"[ (31/4 → 8/1) ⇝ 33/4 | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:3000 ]",
|
||||
"[ (31/4 → 8/1) ⇝ 33/4 | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:3000 ]",
|
||||
"[ 15/2 ⇜ (47/6 → 63/8) | gain:0.0003322155712311059 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3401.8504606023293 cutoff:4000 ]",
|
||||
"[ 15/2 ⇜ (47/6 → 63/8) | gain:0.0003322155712311059 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3401.8504606023293 cutoff:4000 ]",
|
||||
"[ 63/8 → 8/1 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2999.898347482845 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 63/8 → 8/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2999.898347482845 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 63/8 → 8/1 | s:bd gain:0.7 ]",
|
||||
"[ (63/8 → 8/1) ⇝ 33/4 | gain:0.0003049279244110808 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3206.156506355406 cutoff:4000 ]",
|
||||
"[ (63/8 → 8/1) ⇝ 33/4 | gain:0.0003049279244110808 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3206.156506355406 cutoff:4000 ]",
|
||||
"[ (63/8 → 8/1) ⇝ 67/8 | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2999.5934052398757 ]",
|
||||
"[ (63/8 → 8/1) ⇝ 67/8 | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2999.5934052398757 ]",
|
||||
"[ 61/8 ⇜ (95/12 → 8/1) | gain:0.00040393160954279157 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3336.4921769246425 cutoff:4000 ]",
|
||||
"[ 61/8 ⇜ (95/12 → 8/1) | gain:0.00040393160954279157 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3336.4921769246425 cutoff:4000 ]",
|
||||
"[ 31/4 ⇜ (8/1 → 97/12) ⇝ 65/8 | gain:0.0002512336761852884 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3271.2459533414954 cutoff:4000 ]",
|
||||
"[ 31/4 ⇜ (8/1 → 97/12) ⇝ 65/8 | gain:0.0002512336761852884 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3271.2459533414954 cutoff:4000 ]",
|
||||
"[ 61/8 ⇜ (8/1 → 65/8) | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2999.5934052398757 ]",
|
||||
"[ 61/8 ⇜ (8/1 → 65/8) | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2999.5934052398757 ]",
|
||||
"[ 63/8 ⇜ (8/1 → 49/6) ⇝ 33/4 | gain:0.0003049279244110808 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3206.156506355406 cutoff:4000 ]",
|
||||
"[ 63/8 ⇜ (8/1 → 49/6) ⇝ 33/4 | gain:0.0003049279244110808 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3206.156506355406 cutoff:4000 ]",
|
||||
"[ 31/4 ⇜ (8/1 → 33/4) | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:3000 ]",
|
||||
"[ 31/4 ⇜ (8/1 → 33/4) | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:3000 ]",
|
||||
"[ 8/1 → 33/4 | gain:0.0003754669800233334 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3173.6845194498705 cutoff:4000 ]",
|
||||
"[ 8/1 → 33/4 | gain:0.0003754669800233334 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3173.6845194498705 cutoff:4000 ]",
|
||||
"[ 8/1 → 33/4 | s:bd gain:0.7 ]",
|
||||
"[ (8/1 → 25/3) ⇝ 67/8 | gain:0.2389653154600499 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3141.2684450220513 cutoff:4000 ]",
|
||||
"[ (8/1 → 25/3) ⇝ 67/8 | gain:0.2389653154600499 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3141.2684450220513 cutoff:4000 ]",
|
||||
"[ 63/8 ⇜ (8/1 → 67/8) | gain:0.7 note:G3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2999.5934052398757 ]",
|
||||
"[ 63/8 ⇜ (8/1 → 67/8) | gain:0.7 note:B3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2999.5934052398757 ]",
|
||||
"[ 31/4 ⇜ (97/12 → 65/8) | gain:0.0002512336761852884 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3271.2459533414954 cutoff:4000 ]",
|
||||
"[ 31/4 ⇜ (97/12 → 65/8) | gain:0.0002512336761852884 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3271.2459533414954 cutoff:4000 ]",
|
||||
"[ 65/8 → 33/4 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2999.0852191942718 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 65/8 → 33/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2999.0852191942718 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (65/8 → 101/12) ⇝ 17/2 | gain:0.00022940355872926835 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3076.6262403774385 cutoff:4000 ]",
|
||||
"[ (65/8 → 101/12) ⇝ 17/2 | gain:0.00022940355872926835 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3076.6262403774385 cutoff:4000 ]",
|
||||
"[ 63/8 ⇜ (49/6 → 33/4) | gain:0.0003049279244110808 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3206.156506355406 cutoff:4000 ]",
|
||||
"[ 63/8 ⇜ (49/6 → 33/4) | gain:0.0003049279244110808 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3206.156506355406 cutoff:4000 ]",
|
||||
"[ 33/4 → 17/2 | gain:0.00028223848042460063 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3044.4111862696313 cutoff:4000 ]",
|
||||
"[ 33/4 → 17/2 | gain:0.00028223848042460063 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3044.4111862696313 cutoff:4000 ]",
|
||||
"[ 33/4 → 17/2 | s:hh3 gain:0.7 ]",
|
||||
"[ (33/4 → 103/12) ⇝ 69/8 | gain:0.17948457334876392 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3012.274194959679 cutoff:4000 ]",
|
||||
"[ (33/4 → 103/12) ⇝ 69/8 | gain:0.17948457334876392 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3012.274194959679 cutoff:4000 ]",
|
||||
"[ 8/1 ⇜ (25/3 → 67/8) | gain:0.2389653154600499 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3141.2684450220513 cutoff:4000 ]",
|
||||
"[ 8/1 ⇜ (25/3 → 67/8) | gain:0.2389653154600499 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3141.2684450220513 cutoff:4000 ]",
|
||||
"[ 67/8 → 17/2 | note:D2 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2995.0220264467503 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 67/8 → 17/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2995.0220264467503 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (67/8 → 26/3) ⇝ 35/4 | gain:0.21713481397646955 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2948.256412446248 cutoff:4000 ]",
|
||||
"[ (67/8 → 26/3) ⇝ 35/4 | gain:0.21713481397646955 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2948.256412446248 cutoff:4000 ]",
|
||||
"[ 65/8 ⇜ (101/12 → 17/2) | gain:0.00022940355872926835 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3076.6262403774385 cutoff:4000 ]",
|
||||
"[ 65/8 ⇜ (101/12 → 17/2) | gain:0.00022940355872926835 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3076.6262403774385 cutoff:4000 ]",
|
||||
"[ 17/2 → 69/8 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2991.774409503181 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 17/2 → 69/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2991.774409503181 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 17/2 → 35/4 | gain:0.00021149262064247462 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2916.386590360237 cutoff:4000 ]",
|
||||
"[ 17/2 → 35/4 | gain:0.00021149262064247462 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2916.386590360237 cutoff:4000 ]",
|
||||
"[ 17/2 → 35/4 | s:bd gain:0.7 ]",
|
||||
"[ (17/2 → 53/6) ⇝ 71/8 | gain:0.1343955752824098 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2884.6167674275184 cutoff:4000 ]",
|
||||
"[ (17/2 → 53/6) ⇝ 71/8 | gain:0.1343955752824098 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2884.6167674275184 cutoff:4000 ]",
|
||||
"[ 17/2 → 9/1 | s:sn gain:0.7 ]",
|
||||
"[ 33/4 ⇜ (103/12 → 69/8) | gain:0.17948457334876392 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3012.274194959679 cutoff:4000 ]",
|
||||
"[ 33/4 ⇜ (103/12 → 69/8) | gain:0.17948457334876392 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:3012.274194959679 cutoff:4000 ]",
|
||||
"[ (69/8 → 107/12) ⇝ 9/1 | gain:0.16235819115213307 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2821.398875337315 cutoff:4000 ]",
|
||||
"[ (69/8 → 107/12) ⇝ 9/1 | gain:0.16235819115213307 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2821.398875337315 cutoff:4000 ]",
|
||||
"[ 67/8 ⇜ (26/3 → 35/4) | gain:0.21713481397646955 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2948.256412446248 cutoff:4000 ]",
|
||||
"[ 67/8 ⇜ (26/3 → 35/4) | gain:0.21713481397646955 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2948.256412446248 cutoff:4000 ]",
|
||||
"[ 35/4 → 71/8 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2982.856914513109 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 35/4 → 71/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2982.856914513109 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 35/4 → 9/1 | gain:0.19946652199116702 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2789.9616382401937 cutoff:4000 ]",
|
||||
"[ 35/4 → 9/1 | gain:0.19946652199116702 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2789.9616382401937 cutoff:4000 ]",
|
||||
"[ 35/4 → 9/1 | s:hh3 gain:0.7 ]",
|
||||
"[ (35/4 → 109/12) ⇝ 73/8 | gain:0.10036006119411293 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2758.6460625610725 cutoff:4000 ]",
|
||||
"[ (35/4 → 109/12) ⇝ 73/8 | gain:0.10036006119411293 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2758.6460625610725 cutoff:4000 ]",
|
||||
"[ 17/2 ⇜ (53/6 → 71/8) | gain:0.1343955752824098 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2884.6167674275184 cutoff:4000 ]",
|
||||
"[ 17/2 ⇜ (53/6 → 71/8) | gain:0.1343955752824098 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2884.6167674275184 cutoff:4000 ]",
|
||||
"[ 71/8 → 9/1 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2977.1924080321423 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 71/8 → 9/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2977.1924080321423 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (71/8 → 55/6) ⇝ 37/4 | gain:0.12109683385552102 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2696.4013367420957 cutoff:4000 ]",
|
||||
"[ (71/8 → 55/6) ⇝ 37/4 | gain:0.12109683385552102 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2696.4013367420957 cutoff:4000 ]",
|
||||
"[ 69/8 ⇜ (107/12 → 9/1) | gain:0.16235819115213307 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2821.398875337315 cutoff:4000 ]",
|
||||
"[ 69/8 ⇜ (107/12 → 9/1) | gain:0.16235819115213307 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2821.398875337315 cutoff:4000 ]",
|
||||
"[ 9/1 → 37/4 | gain:0.1486933887883662 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2665.4828519155726 cutoff:4000 ]",
|
||||
"[ 9/1 → 37/4 | gain:0.1486933887883662 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2665.4828519155726 cutoff:4000 ]",
|
||||
"[ 9/1 → 37/4 | s:bd gain:0.7 ]",
|
||||
"[ (9/1 → 28/3) ⇝ 75/8 | gain:0.07477587990602098 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2634.707357306267 cutoff:4000 ]",
|
||||
"[ (9/1 → 28/3) ⇝ 75/8 | gain:0.07477587990602098 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2634.707357306267 cutoff:4000 ]",
|
||||
"[ 35/4 ⇜ (109/12 → 73/8) | gain:0.10036006119411293 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2758.6460625610725 cutoff:4000 ]",
|
||||
"[ 35/4 ⇜ (109/12 → 73/8) | gain:0.10036006119411293 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2758.6460625610725 cutoff:4000 ]",
|
||||
"[ 73/8 → 37/4 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2963.4689354775064 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 73/8 → 37/4 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2963.4689354775064 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (73/8 → 113/12) ⇝ 19/2 | gain:0.09014541883675263 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2573.60640622541 cutoff:4000 ]",
|
||||
"[ (73/8 → 113/12) ⇝ 19/2 | gain:0.09014541883675263 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2573.60640622541 cutoff:4000 ]",
|
||||
"[ 71/8 ⇜ (55/6 → 37/4) | gain:0.12109683385552102 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2696.4013367420957 cutoff:4000 ]",
|
||||
"[ 71/8 ⇜ (55/6 → 37/4) | gain:0.12109683385552102 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2696.4013367420957 cutoff:4000 ]",
|
||||
"[ 37/4 → 19/2 | gain:0.11064613655745076 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2543.291419087276 cutoff:4000 ]",
|
||||
"[ 37/4 → 19/2 | gain:0.11064613655745076 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2543.291419087276 cutoff:4000 ]",
|
||||
"[ 37/4 → 19/2 | s:hh3 gain:0.7 ]",
|
||||
"[ (37/4 → 115/12) ⇝ 77/8 | gain:0.05562379698730943 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2513.140359039332 cutoff:4000 ]",
|
||||
"[ (37/4 → 115/12) ⇝ 77/8 | gain:0.05562379698730943 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2513.140359039332 cutoff:4000 ]",
|
||||
"[ 9/1 ⇜ (28/3 → 75/8) | gain:0.07477587990602098 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2634.707357306267 cutoff:4000 ]",
|
||||
"[ 9/1 ⇜ (28/3 → 75/8) | gain:0.07477587990602098 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2634.707357306267 cutoff:4000 ]",
|
||||
"[ 75/8 → 19/2 | note:D2 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2946.5812012110136 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 75/8 → 19/2 | note:D2 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2946.5812012110136 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (75/8 → 29/3) ⇝ 39/4 | gain:0.0670223447192876 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2453.350656156431 cutoff:4000 ]",
|
||||
"[ (75/8 → 29/3) ⇝ 39/4 | gain:0.0670223447192876 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2453.350656156431 cutoff:4000 ]",
|
||||
"[ 73/8 ⇜ (113/12 → 19/2) | gain:0.09014541883675263 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2573.60640622541 cutoff:4000 ]",
|
||||
"[ 73/8 ⇜ (113/12 → 19/2) | gain:0.09014541883675263 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2573.60640622541 cutoff:4000 ]",
|
||||
"[ 19/2 → 77/8 | note:D1 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2936.9631544781614 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 19/2 → 77/8 | note:D1 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2936.9631544781614 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 19/2 → 39/4 | gain:0.08225029341498115 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2423.7222579792624 cutoff:4000 ]",
|
||||
"[ 19/2 → 39/4 | gain:0.08225029341498115 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2423.7222579792624 cutoff:4000 ]",
|
||||
"[ 19/2 → 39/4 | s:bd gain:0.7 ]",
|
||||
"[ (19/2 → 59/6) ⇝ 79/8 | gain:0.04134410948782485 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2394.2782744524975 cutoff:4000 ]",
|
||||
"[ (19/2 → 59/6) ⇝ 79/8 | gain:0.04134410948782485 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2394.2782744524975 cutoff:4000 ]",
|
||||
"[ 19/2 → 10/1 | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2921.0844879970778 ]",
|
||||
"[ 19/2 → 10/1 | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2921.0844879970778 ]",
|
||||
"[ 19/2 → 10/1 | s:sn gain:0.7 ]",
|
||||
"[ 37/4 ⇜ (115/12 → 77/8) | gain:0.05562379698730943 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2513.140359039332 cutoff:4000 ]",
|
||||
"[ 37/4 ⇜ (115/12 → 77/8) | gain:0.05562379698730943 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2513.140359039332 cutoff:4000 ]",
|
||||
"[ (77/8 → 119/12) ⇝ 10/1 | gain:0.04981524842313599 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2335.9636991872226 cutoff:4000 ]",
|
||||
"[ (77/8 → 119/12) ⇝ 10/1 | gain:0.04981524842313599 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2335.9636991872226 cutoff:4000 ]",
|
||||
"[ (77/8 → 10/1) ⇝ 81/8 | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2909.5402784268977 ]",
|
||||
"[ (77/8 → 10/1) ⇝ 81/8 | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2909.5402784268977 ]",
|
||||
"[ 75/8 ⇜ (29/3 → 39/4) | gain:0.0670223447192876 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2453.350656156431 cutoff:4000 ]",
|
||||
"[ 75/8 ⇜ (29/3 → 39/4) | gain:0.0670223447192876 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2453.350656156431 cutoff:4000 ]",
|
||||
"[ 39/4 → 79/8 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2915.4076660819765 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 39/4 → 79/8 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2915.4076660819765 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 39/4 → 10/1 | gain:0.0611394178141992 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2307.1030993509794 cutoff:4000 ]",
|
||||
"[ 39/4 → 10/1 | gain:0.0611394178141992 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2307.1030993509794 cutoff:4000 ]",
|
||||
"[ 39/4 → 10/1 | s:hh3 gain:0.7 ]",
|
||||
"[ (39/4 → 10/1) ⇝ 81/8 | gain:0.030737730012853577 note:C#6 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2278.446896257612 cutoff:4000 ]",
|
||||
"[ (39/4 → 10/1) ⇝ 81/8 | gain:0.030737730012853577 note:E5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2278.446896257612 cutoff:4000 ]",
|
||||
"[ (39/4 → 10/1) ⇝ 41/4 | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2897.237368890237 ]",
|
||||
"[ (39/4 → 10/1) ⇝ 41/4 | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2897.237368890237 ]",
|
||||
"[ 19/2 ⇜ (59/6 → 79/8) | gain:0.04134410948782485 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2394.2782744524975 cutoff:4000 ]",
|
||||
"[ 19/2 ⇜ (59/6 → 79/8) | gain:0.04134410948782485 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2394.2782744524975 cutoff:4000 ]",
|
||||
"[ 79/8 → 10/1 | note:D3 s:sawtooth gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2903.483208638841 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ 79/8 → 10/1 | note:D3 s:square gain:0.3 attack:0.01 decay:0.1 sustain:0.5 cutoff:2903.483208638841 lpattack:0.1 lpenv:2 ftype:24db ]",
|
||||
"[ (79/8 → 10/1) ⇝ 41/4 | gain:0.03705744590301562 note:A5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2221.7672848073694 cutoff:4000 ]",
|
||||
"[ (79/8 → 10/1) ⇝ 41/4 | gain:0.03705744590301562 note:C#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2221.7672848073694 cutoff:4000 ]",
|
||||
"[ (79/8 → 10/1) ⇝ 83/8 | gain:0.7 note:F#3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2884.183170199766 ]",
|
||||
"[ (79/8 → 10/1) ⇝ 83/8 | gain:0.7 note:A3 s:square attack:0.01 decay:0.1 sustain:0 cutoff:2884.183170199766 ]",
|
||||
"[ 77/8 ⇜ (119/12 → 10/1) | gain:0.04981524842313599 note:F#5 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2335.9636991872226 cutoff:4000 ]",
|
||||
"[ 77/8 ⇜ (119/12 → 10/1) | gain:0.04981524842313599 note:A4 s:sawtooth attack:0.001 decay:0.2 sustain:0 hcutoff:2335.9636991872226 cutoff:4000 ]",
|
||||
]
|
||||
`;
|
||||
|
||||
exports[`renders tunes > tune: juxUndTollerei 1`] = `
|
||||
[
|
||||
"[ 0/1 → 1/4 | note:c3 s:sawtooth pan:0 cutoff:1188.2154262966046 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]",
|
||||
|
||||
@ -222,7 +222,6 @@ export const testCycles = {
|
||||
randomBells: 24,
|
||||
waa: 16,
|
||||
waar: 16,
|
||||
hyperpop: 10,
|
||||
festivalOfFingers3: 16,
|
||||
};
|
||||
|
||||
|
||||
@ -97,7 +97,7 @@ export default defineConfig({
|
||||
enabled: false,
|
||||
},
|
||||
manifest: {
|
||||
includeAssets: ['favicon.ico', 'icons/apple-icon-180.png', 'favicon.svg'],
|
||||
includeAssets: ['favicon.ico', 'icons/apple-icon-180.png'],
|
||||
name: 'Strudel REPL',
|
||||
short_name: 'Strudel',
|
||||
description:
|
||||
|
||||
@ -33,7 +33,6 @@
|
||||
"@strudel/midi": "workspace:*",
|
||||
"@strudel/mini": "workspace:*",
|
||||
"@strudel/osc": "workspace:*",
|
||||
"@strudel/repl": "workspace:*",
|
||||
"@strudel/serial": "workspace:*",
|
||||
"@strudel/soundfonts": "workspace:*",
|
||||
"@strudel/tonal": "workspace:*",
|
||||
@ -48,7 +47,6 @@
|
||||
"@types/react": "^18.2.46",
|
||||
"@types/react-dom": "^18.2.18",
|
||||
"astro": "^4.0.8",
|
||||
"canvas": "^2.11.2",
|
||||
"claviature": "^0.1.0",
|
||||
"date-fns": "^3.2.0",
|
||||
"nanoid": "^5.0.4",
|
||||
|
||||
@ -1,16 +1,17 @@
|
||||
{
|
||||
"bd": ["bd/Bassdrum-01.wav","bd/Bassdrum-02.wav","bd/Bassdrum-03.wav","bd/Bassdrum-04.wav","bd/Bassdrum-05.wav","bd/Bassdrum-06.wav","bd/Bassdrum-07.wav","bd/Bassdrum-08.wav","bd/Bassdrum-09.wav","bd/Bassdrum-10.wav","bd/Bassdrum-11.wav","bd/Bassdrum-12.wav","bd/Bassdrum-13.wav","bd/Bassdrum-14.wav"],
|
||||
"cb": ["cb/Cowbell.wav"],
|
||||
"cp": ["cp/Clap.wav"],
|
||||
"cr": ["cr/Crash.wav"],
|
||||
"hh": ["hh/Hat Closed-01.wav","hh/Hat Closed-02.wav"],
|
||||
"ht": ["ht/Tom H-01.wav","ht/Tom H-02.wav","ht/Tom H-03.wav","ht/Tom H-04.wav","ht/Tom H-05.wav","ht/Tom H-06.wav"],
|
||||
"lt": ["lt/Tom L-01.wav","lt/Tom L-02.wav","lt/Tom L-03.wav","lt/Tom L-04.wav","lt/Tom L-05.wav","lt/Tom L-06.wav"],
|
||||
"misc": ["misc/Metal-01.wav","misc/Metal-02.wav","misc/Metal-03.wav","misc/Scratch.wav","misc/Shot-01.wav","misc/Shot-02.wav","misc/Shot-03.wav"],
|
||||
"mt": ["mt/Tom M-01.wav","mt/Tom M-02.wav","mt/Tom M-03.wav","mt/Tom M-05.wav"],
|
||||
"oh": ["oh/Hhopen1.wav"],
|
||||
"perc": ["perc/Blow1.wav"],
|
||||
"rd": ["rd/Ride.wav"],
|
||||
"rim": ["rim/zRim Shot-01.wav","rim/zRim Shot-02.wav"],
|
||||
"sd": ["sd/Snaredrum-01.wav","sd/Snaredrum-02.wav","sd/Snaredrum-03.wav","sd/Snaredrum-04.wav","sd/Snaredrum-05.wav","sd/Snaredrum-06.wav","sd/Snaredrum-07.wav","sd/Snaredrum-08.wav","sd/Snaredrum-09.wav","sd/Snaredrum-10.wav","sd/Snaredrum-11.wav","sd/Snaredrum-12.wav","sd/Snaredrum-13.wav","sd/Snaredrum-14.wav","sd/Snaredrum-15.wav","sd/Snaredrum-16.wav","sd/Snaredrum-17.wav","sd/Snaredrum-18.wav","sd/Snaredrum-19.wav","sd/Snaredrum-20.wav","sd/Snaredrum-21.wav"]
|
||||
"_base": "https://raw.githubusercontent.com/ritchse/tidal-drum-machines/main/machines/EmuSP12/",
|
||||
"bd": ["emusp12-bd/Bassdrum-01.wav","emusp12-bd/Bassdrum-02.wav","emusp12-bd/Bassdrum-03.wav","emusp12-bd/Bassdrum-04.wav","emusp12-bd/Bassdrum-05.wav","emusp12-bd/Bassdrum-06.wav","emusp12-bd/Bassdrum-07.wav","emusp12-bd/Bassdrum-08.wav","emusp12-bd/Bassdrum-09.wav","emusp12-bd/Bassdrum-10.wav","emusp12-bd/Bassdrum-11.wav","emusp12-bd/Bassdrum-12.wav","emusp12-bd/Bassdrum-13.wav","emusp12-bd/Bassdrum-14.wav"],
|
||||
"cb": ["emusp12-cb/Cowbell.wav"],
|
||||
"cp": ["emusp12-cp/Clap.wav"],
|
||||
"cr": ["emusp12-cr/Crash.wav"],
|
||||
"hh": ["emusp12-hh/Hat Closed-01.wav","emusp12-hh/Hat Closed-02.wav"],
|
||||
"ht": ["emusp12-ht/Tom H-01.wav","emusp12-ht/Tom H-02.wav","emusp12-ht/Tom H-03.wav","emusp12-ht/Tom H-04.wav","emusp12-ht/Tom H-05.wav","emusp12-ht/Tom H-06.wav"],
|
||||
"lt": ["emusp12-lt/Tom L-01.wav","emusp12-lt/Tom L-02.wav","emusp12-lt/Tom L-03.wav","emusp12-lt/Tom L-04.wav","emusp12-lt/Tom L-05.wav","emusp12-lt/Tom L-06.wav"],
|
||||
"misc": ["emusp12-misc/Metal-01.wav","emusp12-misc/Metal-02.wav","emusp12-misc/Metal-03.wav","emusp12-misc/Scratch.wav","emusp12-misc/Shot-01.wav","emusp12-misc/Shot-02.wav","emusp12-misc/Shot-03.wav"],
|
||||
"mt": ["emusp12-mt/Tom M-01.wav","emusp12-mt/Tom M-02.wav","emusp12-mt/Tom M-03.wav","emusp12-mt/Tom M-05.wav"],
|
||||
"oh": ["emusp12-oh/Hhopen1.wav"],
|
||||
"perc": ["emusp12-perc/Blow1.wav"],
|
||||
"rd": ["emusp12-rd/Ride.wav"],
|
||||
"rim": ["emusp12-rim/zRim Shot-01.wav","emusp12-rim/zRim Shot-02.wav"],
|
||||
"sd": ["emusp12-sd/Snaredrum-01.wav","emusp12-sd/Snaredrum-02.wav","emusp12-sd/Snaredrum-03.wav","emusp12-sd/Snaredrum-04.wav","emusp12-sd/Snaredrum-05.wav","emusp12-sd/Snaredrum-06.wav","emusp12-sd/Snaredrum-07.wav","emusp12-sd/Snaredrum-08.wav","emusp12-sd/Snaredrum-09.wav","emusp12-sd/Snaredrum-10.wav","emusp12-sd/Snaredrum-11.wav","emusp12-sd/Snaredrum-12.wav","emusp12-sd/Snaredrum-13.wav","emusp12-sd/Snaredrum-14.wav","emusp12-sd/Snaredrum-15.wav","emusp12-sd/Snaredrum-16.wav","emusp12-sd/Snaredrum-17.wav","emusp12-sd/Snaredrum-18.wav","emusp12-sd/Snaredrum-19.wav","emusp12-sd/Snaredrum-20.wav","emusp12-sd/Snaredrum-21.wav"]
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 731 KiB |
@ -1,13 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 36 36">
|
||||
<path fill="#000" d="M22.25 4h-8.5a1 1 0 0 0-.96.73l-5.54 19.4a.5.5 0 0 0 .62.62l5.05-1.44a2 2 0 0 0 1.38-1.4l3.22-11.66a.5.5 0 0 1 .96 0l3.22 11.67a2 2 0 0 0 1.38 1.39l5.05 1.44a.5.5 0 0 0 .62-.62l-5.54-19.4a1 1 0 0 0-.96-.73Z"/>
|
||||
<path fill="url(#gradient)" d="M18 28a7.63 7.63 0 0 1-5-2c-1.4 2.1-.35 4.35.6 5.55.14.17.41.07.47-.15.44-1.8 2.93-1.22 2.93.6 0 2.28.87 3.4 1.72 3.81.34.16.59-.2.49-.56-.31-1.05-.29-2.46 1.29-3.25 3-1.5 3.17-4.83 2.5-6-.67.67-2.6 2-5 2Z"/>
|
||||
<defs>
|
||||
<linearGradient id="gradient" x1="16" x2="16" y1="32" y2="24" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#000"/>
|
||||
<stop offset="1" stop-color="#000" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<style>
|
||||
@media (prefers-color-scheme:dark){:root{filter:invert(100%)}}
|
||||
</style>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 873 B |
@ -1,4 +1,5 @@
|
||||
{
|
||||
"_base": "https://raw.githubusercontent.com/felixroos/dough-samples/main/piano/",
|
||||
"piano": {
|
||||
"A0": "A0v8.mp3",
|
||||
"C1": "C1v8.mp3",
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user