From 1383af62083b280e3c1c9642dc8333ac5cd0d3fb Mon Sep 17 00:00:00 2001 From: Raphael Forment Date: Sun, 10 Sep 2023 09:42:29 +0200 Subject: [PATCH] documenting filters more + tests --- packages/core/controls.mjs | 139 +++++++- packages/superdough/superdough.mjs | 22 +- test/__snapshots__/examples.test.mjs.snap | 387 ++++++++++++++++++++++ 3 files changed, 526 insertions(+), 22 deletions(-) diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs index 84b7526d..86ec5869 100644 --- a/packages/core/controls.mjs +++ b/packages/core/controls.mjs @@ -379,14 +379,35 @@ const generic_params = [ [['cutoff', 'resonance'], 'ctf', 'lpf', 'lp'], /** - * Sets the filter envelope modulation depth. - * @name fenv - * @param {number | Pattern} modulation depth of the filter envelope between 0 and _n_ + * Sets the lowpass filter envelope modulation depth. + * @name lpenv + * @param {number | Pattern} modulation depth of the lowpass filter envelope between 0 and _n_ + * @synonyms lpe * @example * note("c2 c3").fast(2).sound("sawtooth") - * .cutoff(500).fenv("<1 2 3 4 5 6 7 8>") + * .cutoff(500).lpenv("<1 2 3 4 5 6 7 8>") */ - ['fenv'], + ['lpenv', 'lpe'], + /** + * Sets the highpass filter envelope modulation depth. + * @name hpenv + * @param {number | Pattern} modulation depth of the highpass filter envelope between 0 and _n_ + * @synonyms hpe + * @example + * note("c2 c3").fast(2).sound("sawtooth") + * .hcutoff(500).hpenv("<1 2 3 4 5 6 7 8>") + */ + ['hpenv', 'hpe'], + /** + * Sets the bandpass filter envelope modulation depth. + * @name bpenv + * @param {number | Pattern} modulation depth of the bandpass filter envelope between 0 and _n_ + * @synonyms bpe + * @example + * note("c2 c3").fast(2).sound("sawtooth") + * .bandf(500).bpenv("<1 2 3 4 5 6 7 8>") + */ + ['bpenv', 'bpe'], /** * Sets the attack duration for the lowpass filter envelope. * @name lpattack @@ -395,10 +416,34 @@ const generic_params = [ * @example * note("c3 e3 f3 g3 ab3 bb3") * .sound('square').cutoff(1000) - * .lpattack("<0.05 0.1 0.25 0.5>/2").fenv(1) + * .lpattack("<0.05 0.1 0.25 0.5>/2").ftype('12db') * .release(0.2).attack(0) */ ['lpattack', 'lpa'], + /** + * Sets the attack duration for the highpass filter envelope. + * @name hpattack + * @param {number | Pattern} attack time of the highpass filter envelope + * @synonyms hpa + * @example + * note("c3 e3 f3 g3 ab3 bb3") + * .sound('square').hcutoff(1000) + * .hpattack("<0.05 0.1 0.25 0.5>/2").ftype('12db') + * .release(0.2).attack(0) + */ + ['hpattack', 'hpa'], + /** + * Sets the attack duration for the bandpass filter envelope. + * @name hpattack + * @param {number | Pattern} attack time of the bandpass filter envelope + * @synonyms bpa + * @example + * note("c3 e3 f3 g3 ab3 bb3") + * .sound('square').bandf(1000) + * .bpattack("<0.05 0.1 0.25 0.5>/2").ftype('12db') + * .release(0.2).attack(0) + */ + ['bpattack', 'bpa'], /** * Sets the decay duration for the lowpass filter envelope. * @name lpdecay @@ -409,39 +454,99 @@ const generic_params = [ * note("c3 e3 f3 g3 ab3 bb3") * .sound('square').cutoff(1000) * .lpdecay("<0.05 0.1 0.125>/2") - * .fenv("4").lps(0).lpr(0) + * .ftype("12db").lps(0).lpr(0) */ ['lpdecay', 'lpd'], + /** + * Sets the decay duration for the highpass filter envelope. + * @name hpdecay + * @param {number | Pattern} decay time of the highpass filter envelope + * @synonyms hpd + * @example + * "baba" + * note("c3 e3 f3 g3 ab3 bb3") + * .sound('square').hcutoff(1000) + * .hpdecay("<0.05 0.1 0.125>/2") + * .ftype("12db").hps(0).hpr(0) + */ + ['hpdecay', 'hpd'], + /** + * Sets the decay duration for the bandpass filter envelope. + * @name bpdecay + * @param {number | Pattern} decay time of the bandpass filter envelope + * @synonyms bpd + * @example + * "baba" + * note("c3 e3 f3 g3 ab3 bb3") + * .sound('square').bandf(1000) + * .bpdecay("<0.05 0.1 0.125>/2") + * .ftype("12db").bps(0).bpr(0) + */ + ['bpdecay', 'bpd'], /** * Sets the sustain amplitude for the lowpass filter envelope. * @name lpsustain - * @param {number | Pattern} sustain amplitude of the filter envelope + * @param {number | Pattern} sustain amplitude of the lowpass filter envelope * @synonyms lps * @example * note("c3 e3 f3 g3 ab3 bb3") * .sound('square').cutoff(200) * .lpd(0.1).lpsustain("<0.1 0.5 0.75 1>") - * .fenv("2") + * .ftype("12db") */ ['lpsustain', 'lps'], + /** + * Sets the sustain amplitude for the highpass filter envelope. + * @name lpsustain + * @param {number | Pattern} sustain amplitude of the highpass filter envelope + * @synonyms hps + * @example + * note("c3 e3 f3 g3 ab3 bb3") + * .sound('square').hcutoff(200) + * .hpd(0.1).hpsustain("<0.1 0.5 0.75 1>") + * .ftype("12db") + */ + ['hpsustain', 'hps'], + /** + * Sets the sustain amplitude for the bandpass filter envelope. + * @name lpsustain + * @param {number | Pattern} sustain amplitude of the bandpass filter envelope + * @synonyms bps + * @example + * note("c3 e3 f3 g3 ab3 bb3") + * .sound('square').bandf(200) + * .bpd(0.1).bpsustain("<0.1 0.5 0.75 1>") + * .ftype("12db") + */ + ['bpsustain', 'bps'], /** * Sets the release time for the lowpass filter envelope. * @name lprelease * @param {number | Pattern} release time of the filter envelope * @synonyms lpr * @example - * note("c3 e3 g3 c4").lpr("<0.1 0.25 0.5>").fenv(0.5) + * note("c3 e3 g3 c4").lpr("<0.1 0.25 0.5>").ftype('12db') */ ['lprelease', 'lpr'], - ['hpattack', 'hpa'], - ['hpdecay', 'hpd'], - ['hpsustain', 'hps'], + /** + * Sets the release time for the highpass filter envelope. + * @name lprelease + * @param {number | Pattern} release time of the highpass filter envelope + * @synonyms hpr + * @example + * note("c3 e3 g3 c4").hpr("<0.1 0.25 0.5>").ftype('12db') + */ ['hprelease', 'hpr'], - ['bpattack', 'bpa'], - ['bpdecay', 'bpd'], - ['bpsustain', 'bps'], + /** + * Sets the release time for the bandpass filter envelope. + * @name lprelease + * @param {number | Pattern} release time of the bandpass filter envelope + * @synonyms bpr + * @example + * note("c3 e3 g3 c4").bpr("<0.1 0.25 0.5>").ftype('12db') + */ ['bprelease', 'bpr'], - ['order'], + ['ftype'], /** * Applies the cutoff frequency of the **h**igh-**p**ass **f**ilter. * diff --git a/packages/superdough/superdough.mjs b/packages/superdough/superdough.mjs index fda26277..3afe470e 100644 --- a/packages/superdough/superdough.mjs +++ b/packages/superdough/superdough.mjs @@ -178,7 +178,7 @@ export const superdough = async (value, deadline, hapDuration) => { source, gain = 0.8, // filters - order = '12db', + ftype = '12db', // low pass cutoff, lpenv, @@ -258,9 +258,21 @@ export const superdough = async (value, deadline, hapDuration) => { if (cutoff !== undefined) { let lp = () => - createFilter(ac, 'lowpass', cutoff, resonance, lpattack, lpdecay, lpsustain, lprelease, lpenv, t, t + hapDuration); + createFilter( + ac, + 'lowpass', + cutoff, + resonance, + lpattack, + lpdecay, + lpsustain, + lprelease, + lpenv, + t, + t + hapDuration, + ); chain.push(lp()); - if (order === '24db') { + if (ftype === '24db') { chain.push(lp()); } } @@ -281,7 +293,7 @@ export const superdough = async (value, deadline, hapDuration) => { t + hapDuration, ); chain.push(hp()); - if (order === '24db') { + if (ftype === '24db') { chain.push(hp()); } } @@ -290,7 +302,7 @@ export const superdough = async (value, deadline, hapDuration) => { let bp = () => createFilter(ac, 'bandpass', bandf, bandq, bpattack, bpdecay, bpsustain, bprelease, bpenv, t, t + hapDuration); chain.push(bp()); - if (order === '24db') { + if (ftype === '24db') { chain.push(bp()); } } diff --git a/test/__snapshots__/examples.test.mjs.snap b/test/__snapshots__/examples.test.mjs.snap index 60b39c53..4cb261ae 100644 --- a/test/__snapshots__/examples.test.mjs.snap +++ b/test/__snapshots__/examples.test.mjs.snap @@ -900,6 +900,56 @@ exports[`runs examples > example "begin" example index 0 1`] = ` ] `; +exports[`runs examples > example "bpdecay" example index 0 1`] = ` +[ + "[ 0/1 → 1/6 | note:c3 s:square bandf:1000 bpdecay:0.05 ftype:12db bpsustain:0 bprelease:0 ]", + "[ 1/6 → 1/3 | note:e3 s:square bandf:1000 bpdecay:0.05 ftype:12db bpsustain:0 bprelease:0 ]", + "[ 1/3 → 1/2 | note:f3 s:square bandf:1000 bpdecay:0.05 ftype:12db bpsustain:0 bprelease:0 ]", + "[ 1/2 → 2/3 | note:g3 s:square bandf:1000 bpdecay:0.05 ftype:12db bpsustain:0 bprelease:0 ]", + "[ 2/3 → 5/6 | note:ab3 s:square bandf:1000 bpdecay:0.05 ftype:12db bpsustain:0 bprelease:0 ]", + "[ 5/6 → 1/1 | note:bb3 s:square bandf:1000 bpdecay:0.05 ftype:12db bpsustain:0 bprelease:0 ]", + "[ 1/1 → 7/6 | note:c3 s:square bandf:1000 bpdecay:0.05 ftype:12db bpsustain:0 bprelease:0 ]", + "[ 7/6 → 4/3 | note:e3 s:square bandf:1000 bpdecay:0.05 ftype:12db bpsustain:0 bprelease:0 ]", + "[ 4/3 → 3/2 | note:f3 s:square bandf:1000 bpdecay:0.05 ftype:12db bpsustain:0 bprelease:0 ]", + "[ 3/2 → 5/3 | note:g3 s:square bandf:1000 bpdecay:0.05 ftype:12db bpsustain:0 bprelease:0 ]", + "[ 5/3 → 11/6 | note:ab3 s:square bandf:1000 bpdecay:0.05 ftype:12db bpsustain:0 bprelease:0 ]", + "[ 11/6 → 2/1 | note:bb3 s:square bandf:1000 bpdecay:0.05 ftype:12db bpsustain:0 bprelease:0 ]", + "[ 2/1 → 13/6 | note:c3 s:square bandf:1000 bpdecay:0.1 ftype:12db bpsustain:0 bprelease:0 ]", + "[ 13/6 → 7/3 | note:e3 s:square bandf:1000 bpdecay:0.1 ftype:12db bpsustain:0 bprelease:0 ]", + "[ 7/3 → 5/2 | note:f3 s:square bandf:1000 bpdecay:0.1 ftype:12db bpsustain:0 bprelease:0 ]", + "[ 5/2 → 8/3 | note:g3 s:square bandf:1000 bpdecay:0.1 ftype:12db bpsustain:0 bprelease:0 ]", + "[ 8/3 → 17/6 | note:ab3 s:square bandf:1000 bpdecay:0.1 ftype:12db bpsustain:0 bprelease:0 ]", + "[ 17/6 → 3/1 | note:bb3 s:square bandf:1000 bpdecay:0.1 ftype:12db bpsustain:0 bprelease:0 ]", + "[ 3/1 → 19/6 | note:c3 s:square bandf:1000 bpdecay:0.1 ftype:12db bpsustain:0 bprelease:0 ]", + "[ 19/6 → 10/3 | note:e3 s:square bandf:1000 bpdecay:0.1 ftype:12db bpsustain:0 bprelease:0 ]", + "[ 10/3 → 7/2 | note:f3 s:square bandf:1000 bpdecay:0.1 ftype:12db bpsustain:0 bprelease:0 ]", + "[ 7/2 → 11/3 | note:g3 s:square bandf:1000 bpdecay:0.1 ftype:12db bpsustain:0 bprelease:0 ]", + "[ 11/3 → 23/6 | note:ab3 s:square bandf:1000 bpdecay:0.1 ftype:12db bpsustain:0 bprelease:0 ]", + "[ 23/6 → 4/1 | note:bb3 s:square bandf:1000 bpdecay:0.1 ftype:12db bpsustain:0 bprelease:0 ]", +] +`; + +exports[`runs examples > example "bpenv" example index 0 1`] = ` +[ + "[ 0/1 → 1/4 | note:c2 s:sawtooth bandf:500 bpenv:1 ]", + "[ 1/4 → 1/2 | note:c3 s:sawtooth bandf:500 bpenv:1 ]", + "[ 1/2 → 3/4 | note:c2 s:sawtooth bandf:500 bpenv:1 ]", + "[ 3/4 → 1/1 | note:c3 s:sawtooth bandf:500 bpenv:1 ]", + "[ 1/1 → 5/4 | note:c2 s:sawtooth bandf:500 bpenv:2 ]", + "[ 5/4 → 3/2 | note:c3 s:sawtooth bandf:500 bpenv:2 ]", + "[ 3/2 → 7/4 | note:c2 s:sawtooth bandf:500 bpenv:2 ]", + "[ 7/4 → 2/1 | note:c3 s:sawtooth bandf:500 bpenv:2 ]", + "[ 2/1 → 9/4 | note:c2 s:sawtooth bandf:500 bpenv:3 ]", + "[ 9/4 → 5/2 | note:c3 s:sawtooth bandf:500 bpenv:3 ]", + "[ 5/2 → 11/4 | note:c2 s:sawtooth bandf:500 bpenv:3 ]", + "[ 11/4 → 3/1 | note:c3 s:sawtooth bandf:500 bpenv:3 ]", + "[ 3/1 → 13/4 | note:c2 s:sawtooth bandf:500 bpenv:4 ]", + "[ 13/4 → 7/2 | note:c3 s:sawtooth bandf:500 bpenv:4 ]", + "[ 7/2 → 15/4 | note:c2 s:sawtooth bandf:500 bpenv:4 ]", + "[ 15/4 → 4/1 | note:c3 s:sawtooth bandf:500 bpenv:4 ]", +] +`; + exports[`runs examples > example "bpf" example index 0 1`] = ` [ "[ 0/1 → 1/3 | s:hh bandf:1000 ]", @@ -2050,6 +2100,114 @@ exports[`runs examples > example "gain" example index 0 1`] = ` ] `; +exports[`runs examples > example "hpattack" example index 0 1`] = ` +[ + "[ 0/1 → 1/6 | note:c3 s:square hcutoff:1000 hpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 1/6 → 1/3 | note:e3 s:square hcutoff:1000 hpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 1/3 → 1/2 | note:f3 s:square hcutoff:1000 hpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 1/2 → 2/3 | note:g3 s:square hcutoff:1000 hpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 2/3 → 5/6 | note:ab3 s:square hcutoff:1000 hpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 5/6 → 1/1 | note:bb3 s:square hcutoff:1000 hpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 1/1 → 7/6 | note:c3 s:square hcutoff:1000 hpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 7/6 → 4/3 | note:e3 s:square hcutoff:1000 hpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 4/3 → 3/2 | note:f3 s:square hcutoff:1000 hpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 3/2 → 5/3 | note:g3 s:square hcutoff:1000 hpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 5/3 → 11/6 | note:ab3 s:square hcutoff:1000 hpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 11/6 → 2/1 | note:bb3 s:square hcutoff:1000 hpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 2/1 → 13/6 | note:c3 s:square hcutoff:1000 hpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 13/6 → 7/3 | note:e3 s:square hcutoff:1000 hpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 7/3 → 5/2 | note:f3 s:square hcutoff:1000 hpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 5/2 → 8/3 | note:g3 s:square hcutoff:1000 hpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 8/3 → 17/6 | note:ab3 s:square hcutoff:1000 hpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 17/6 → 3/1 | note:bb3 s:square hcutoff:1000 hpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 3/1 → 19/6 | note:c3 s:square hcutoff:1000 hpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 19/6 → 10/3 | note:e3 s:square hcutoff:1000 hpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 10/3 → 7/2 | note:f3 s:square hcutoff:1000 hpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 7/2 → 11/3 | note:g3 s:square hcutoff:1000 hpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 11/3 → 23/6 | note:ab3 s:square hcutoff:1000 hpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 23/6 → 4/1 | note:bb3 s:square hcutoff:1000 hpattack:0.1 ftype:12db release:0.2 attack:0 ]", +] +`; + +exports[`runs examples > example "hpattack" example index 0 2`] = ` +[ + "[ 0/1 → 1/6 | note:c3 s:square bandf:1000 bpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 1/6 → 1/3 | note:e3 s:square bandf:1000 bpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 1/3 → 1/2 | note:f3 s:square bandf:1000 bpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 1/2 → 2/3 | note:g3 s:square bandf:1000 bpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 2/3 → 5/6 | note:ab3 s:square bandf:1000 bpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 5/6 → 1/1 | note:bb3 s:square bandf:1000 bpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 1/1 → 7/6 | note:c3 s:square bandf:1000 bpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 7/6 → 4/3 | note:e3 s:square bandf:1000 bpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 4/3 → 3/2 | note:f3 s:square bandf:1000 bpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 3/2 → 5/3 | note:g3 s:square bandf:1000 bpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 5/3 → 11/6 | note:ab3 s:square bandf:1000 bpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 11/6 → 2/1 | note:bb3 s:square bandf:1000 bpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 2/1 → 13/6 | note:c3 s:square bandf:1000 bpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 13/6 → 7/3 | note:e3 s:square bandf:1000 bpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 7/3 → 5/2 | note:f3 s:square bandf:1000 bpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 5/2 → 8/3 | note:g3 s:square bandf:1000 bpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 8/3 → 17/6 | note:ab3 s:square bandf:1000 bpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 17/6 → 3/1 | note:bb3 s:square bandf:1000 bpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 3/1 → 19/6 | note:c3 s:square bandf:1000 bpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 19/6 → 10/3 | note:e3 s:square bandf:1000 bpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 10/3 → 7/2 | note:f3 s:square bandf:1000 bpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 7/2 → 11/3 | note:g3 s:square bandf:1000 bpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 11/3 → 23/6 | note:ab3 s:square bandf:1000 bpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 23/6 → 4/1 | note:bb3 s:square bandf:1000 bpattack:0.1 ftype:12db release:0.2 attack:0 ]", +] +`; + +exports[`runs examples > example "hpdecay" example index 0 1`] = ` +[ + "[ 0/1 → 1/6 | note:c3 s:square hcutoff:1000 hpdecay:0.05 ftype:12db hpsustain:0 hprelease:0 ]", + "[ 1/6 → 1/3 | note:e3 s:square hcutoff:1000 hpdecay:0.05 ftype:12db hpsustain:0 hprelease:0 ]", + "[ 1/3 → 1/2 | note:f3 s:square hcutoff:1000 hpdecay:0.05 ftype:12db hpsustain:0 hprelease:0 ]", + "[ 1/2 → 2/3 | note:g3 s:square hcutoff:1000 hpdecay:0.05 ftype:12db hpsustain:0 hprelease:0 ]", + "[ 2/3 → 5/6 | note:ab3 s:square hcutoff:1000 hpdecay:0.05 ftype:12db hpsustain:0 hprelease:0 ]", + "[ 5/6 → 1/1 | note:bb3 s:square hcutoff:1000 hpdecay:0.05 ftype:12db hpsustain:0 hprelease:0 ]", + "[ 1/1 → 7/6 | note:c3 s:square hcutoff:1000 hpdecay:0.05 ftype:12db hpsustain:0 hprelease:0 ]", + "[ 7/6 → 4/3 | note:e3 s:square hcutoff:1000 hpdecay:0.05 ftype:12db hpsustain:0 hprelease:0 ]", + "[ 4/3 → 3/2 | note:f3 s:square hcutoff:1000 hpdecay:0.05 ftype:12db hpsustain:0 hprelease:0 ]", + "[ 3/2 → 5/3 | note:g3 s:square hcutoff:1000 hpdecay:0.05 ftype:12db hpsustain:0 hprelease:0 ]", + "[ 5/3 → 11/6 | note:ab3 s:square hcutoff:1000 hpdecay:0.05 ftype:12db hpsustain:0 hprelease:0 ]", + "[ 11/6 → 2/1 | note:bb3 s:square hcutoff:1000 hpdecay:0.05 ftype:12db hpsustain:0 hprelease:0 ]", + "[ 2/1 → 13/6 | note:c3 s:square hcutoff:1000 hpdecay:0.1 ftype:12db hpsustain:0 hprelease:0 ]", + "[ 13/6 → 7/3 | note:e3 s:square hcutoff:1000 hpdecay:0.1 ftype:12db hpsustain:0 hprelease:0 ]", + "[ 7/3 → 5/2 | note:f3 s:square hcutoff:1000 hpdecay:0.1 ftype:12db hpsustain:0 hprelease:0 ]", + "[ 5/2 → 8/3 | note:g3 s:square hcutoff:1000 hpdecay:0.1 ftype:12db hpsustain:0 hprelease:0 ]", + "[ 8/3 → 17/6 | note:ab3 s:square hcutoff:1000 hpdecay:0.1 ftype:12db hpsustain:0 hprelease:0 ]", + "[ 17/6 → 3/1 | note:bb3 s:square hcutoff:1000 hpdecay:0.1 ftype:12db hpsustain:0 hprelease:0 ]", + "[ 3/1 → 19/6 | note:c3 s:square hcutoff:1000 hpdecay:0.1 ftype:12db hpsustain:0 hprelease:0 ]", + "[ 19/6 → 10/3 | note:e3 s:square hcutoff:1000 hpdecay:0.1 ftype:12db hpsustain:0 hprelease:0 ]", + "[ 10/3 → 7/2 | note:f3 s:square hcutoff:1000 hpdecay:0.1 ftype:12db hpsustain:0 hprelease:0 ]", + "[ 7/2 → 11/3 | note:g3 s:square hcutoff:1000 hpdecay:0.1 ftype:12db hpsustain:0 hprelease:0 ]", + "[ 11/3 → 23/6 | note:ab3 s:square hcutoff:1000 hpdecay:0.1 ftype:12db hpsustain:0 hprelease:0 ]", + "[ 23/6 → 4/1 | note:bb3 s:square hcutoff:1000 hpdecay:0.1 ftype:12db hpsustain:0 hprelease:0 ]", +] +`; + +exports[`runs examples > example "hpenv" example index 0 1`] = ` +[ + "[ 0/1 → 1/4 | note:c2 s:sawtooth hcutoff:500 hpenv:1 ]", + "[ 1/4 → 1/2 | note:c3 s:sawtooth hcutoff:500 hpenv:1 ]", + "[ 1/2 → 3/4 | note:c2 s:sawtooth hcutoff:500 hpenv:1 ]", + "[ 3/4 → 1/1 | note:c3 s:sawtooth hcutoff:500 hpenv:1 ]", + "[ 1/1 → 5/4 | note:c2 s:sawtooth hcutoff:500 hpenv:2 ]", + "[ 5/4 → 3/2 | note:c3 s:sawtooth hcutoff:500 hpenv:2 ]", + "[ 3/2 → 7/4 | note:c2 s:sawtooth hcutoff:500 hpenv:2 ]", + "[ 7/4 → 2/1 | note:c3 s:sawtooth hcutoff:500 hpenv:2 ]", + "[ 2/1 → 9/4 | note:c2 s:sawtooth hcutoff:500 hpenv:3 ]", + "[ 9/4 → 5/2 | note:c3 s:sawtooth hcutoff:500 hpenv:3 ]", + "[ 5/2 → 11/4 | note:c2 s:sawtooth hcutoff:500 hpenv:3 ]", + "[ 11/4 → 3/1 | note:c3 s:sawtooth hcutoff:500 hpenv:3 ]", + "[ 3/1 → 13/4 | note:c2 s:sawtooth hcutoff:500 hpenv:4 ]", + "[ 13/4 → 7/2 | note:c3 s:sawtooth hcutoff:500 hpenv:4 ]", + "[ 7/2 → 15/4 | note:c2 s:sawtooth hcutoff:500 hpenv:4 ]", + "[ 15/4 → 4/1 | note:c3 s:sawtooth hcutoff:500 hpenv:4 ]", +] +`; + exports[`runs examples > example "hpf" example index 0 1`] = ` [ "[ 0/1 → 1/4 | s:hh hcutoff:4000 ]", @@ -2566,6 +2724,85 @@ exports[`runs examples > example "loopAtCps" example index 0 1`] = ` ] `; +exports[`runs examples > example "lpattack" example index 0 1`] = ` +[ + "[ 0/1 → 1/6 | note:c3 s:square cutoff:1000 lpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 1/6 → 1/3 | note:e3 s:square cutoff:1000 lpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 1/3 → 1/2 | note:f3 s:square cutoff:1000 lpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 1/2 → 2/3 | note:g3 s:square cutoff:1000 lpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 2/3 → 5/6 | note:ab3 s:square cutoff:1000 lpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 5/6 → 1/1 | note:bb3 s:square cutoff:1000 lpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 1/1 → 7/6 | note:c3 s:square cutoff:1000 lpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 7/6 → 4/3 | note:e3 s:square cutoff:1000 lpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 4/3 → 3/2 | note:f3 s:square cutoff:1000 lpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 3/2 → 5/3 | note:g3 s:square cutoff:1000 lpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 5/3 → 11/6 | note:ab3 s:square cutoff:1000 lpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 11/6 → 2/1 | note:bb3 s:square cutoff:1000 lpattack:0.05 ftype:12db release:0.2 attack:0 ]", + "[ 2/1 → 13/6 | note:c3 s:square cutoff:1000 lpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 13/6 → 7/3 | note:e3 s:square cutoff:1000 lpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 7/3 → 5/2 | note:f3 s:square cutoff:1000 lpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 5/2 → 8/3 | note:g3 s:square cutoff:1000 lpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 8/3 → 17/6 | note:ab3 s:square cutoff:1000 lpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 17/6 → 3/1 | note:bb3 s:square cutoff:1000 lpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 3/1 → 19/6 | note:c3 s:square cutoff:1000 lpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 19/6 → 10/3 | note:e3 s:square cutoff:1000 lpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 10/3 → 7/2 | note:f3 s:square cutoff:1000 lpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 7/2 → 11/3 | note:g3 s:square cutoff:1000 lpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 11/3 → 23/6 | note:ab3 s:square cutoff:1000 lpattack:0.1 ftype:12db release:0.2 attack:0 ]", + "[ 23/6 → 4/1 | note:bb3 s:square cutoff:1000 lpattack:0.1 ftype:12db release:0.2 attack:0 ]", +] +`; + +exports[`runs examples > example "lpdecay" example index 0 1`] = ` +[ + "[ 0/1 → 1/6 | note:c3 s:square cutoff:1000 lpdecay:0.05 ftype:12db lpsustain:0 lprelease:0 ]", + "[ 1/6 → 1/3 | note:e3 s:square cutoff:1000 lpdecay:0.05 ftype:12db lpsustain:0 lprelease:0 ]", + "[ 1/3 → 1/2 | note:f3 s:square cutoff:1000 lpdecay:0.05 ftype:12db lpsustain:0 lprelease:0 ]", + "[ 1/2 → 2/3 | note:g3 s:square cutoff:1000 lpdecay:0.05 ftype:12db lpsustain:0 lprelease:0 ]", + "[ 2/3 → 5/6 | note:ab3 s:square cutoff:1000 lpdecay:0.05 ftype:12db lpsustain:0 lprelease:0 ]", + "[ 5/6 → 1/1 | note:bb3 s:square cutoff:1000 lpdecay:0.05 ftype:12db lpsustain:0 lprelease:0 ]", + "[ 1/1 → 7/6 | note:c3 s:square cutoff:1000 lpdecay:0.05 ftype:12db lpsustain:0 lprelease:0 ]", + "[ 7/6 → 4/3 | note:e3 s:square cutoff:1000 lpdecay:0.05 ftype:12db lpsustain:0 lprelease:0 ]", + "[ 4/3 → 3/2 | note:f3 s:square cutoff:1000 lpdecay:0.05 ftype:12db lpsustain:0 lprelease:0 ]", + "[ 3/2 → 5/3 | note:g3 s:square cutoff:1000 lpdecay:0.05 ftype:12db lpsustain:0 lprelease:0 ]", + "[ 5/3 → 11/6 | note:ab3 s:square cutoff:1000 lpdecay:0.05 ftype:12db lpsustain:0 lprelease:0 ]", + "[ 11/6 → 2/1 | note:bb3 s:square cutoff:1000 lpdecay:0.05 ftype:12db lpsustain:0 lprelease:0 ]", + "[ 2/1 → 13/6 | note:c3 s:square cutoff:1000 lpdecay:0.1 ftype:12db lpsustain:0 lprelease:0 ]", + "[ 13/6 → 7/3 | note:e3 s:square cutoff:1000 lpdecay:0.1 ftype:12db lpsustain:0 lprelease:0 ]", + "[ 7/3 → 5/2 | note:f3 s:square cutoff:1000 lpdecay:0.1 ftype:12db lpsustain:0 lprelease:0 ]", + "[ 5/2 → 8/3 | note:g3 s:square cutoff:1000 lpdecay:0.1 ftype:12db lpsustain:0 lprelease:0 ]", + "[ 8/3 → 17/6 | note:ab3 s:square cutoff:1000 lpdecay:0.1 ftype:12db lpsustain:0 lprelease:0 ]", + "[ 17/6 → 3/1 | note:bb3 s:square cutoff:1000 lpdecay:0.1 ftype:12db lpsustain:0 lprelease:0 ]", + "[ 3/1 → 19/6 | note:c3 s:square cutoff:1000 lpdecay:0.1 ftype:12db lpsustain:0 lprelease:0 ]", + "[ 19/6 → 10/3 | note:e3 s:square cutoff:1000 lpdecay:0.1 ftype:12db lpsustain:0 lprelease:0 ]", + "[ 10/3 → 7/2 | note:f3 s:square cutoff:1000 lpdecay:0.1 ftype:12db lpsustain:0 lprelease:0 ]", + "[ 7/2 → 11/3 | note:g3 s:square cutoff:1000 lpdecay:0.1 ftype:12db lpsustain:0 lprelease:0 ]", + "[ 11/3 → 23/6 | note:ab3 s:square cutoff:1000 lpdecay:0.1 ftype:12db lpsustain:0 lprelease:0 ]", + "[ 23/6 → 4/1 | note:bb3 s:square cutoff:1000 lpdecay:0.1 ftype:12db lpsustain:0 lprelease:0 ]", +] +`; + +exports[`runs examples > example "lpenv" example index 0 1`] = ` +[ + "[ 0/1 → 1/4 | note:c2 s:sawtooth cutoff:500 lpenv:1 ]", + "[ 1/4 → 1/2 | note:c3 s:sawtooth cutoff:500 lpenv:1 ]", + "[ 1/2 → 3/4 | note:c2 s:sawtooth cutoff:500 lpenv:1 ]", + "[ 3/4 → 1/1 | note:c3 s:sawtooth cutoff:500 lpenv:1 ]", + "[ 1/1 → 5/4 | note:c2 s:sawtooth cutoff:500 lpenv:2 ]", + "[ 5/4 → 3/2 | note:c3 s:sawtooth cutoff:500 lpenv:2 ]", + "[ 3/2 → 7/4 | note:c2 s:sawtooth cutoff:500 lpenv:2 ]", + "[ 7/4 → 2/1 | note:c3 s:sawtooth cutoff:500 lpenv:2 ]", + "[ 2/1 → 9/4 | note:c2 s:sawtooth cutoff:500 lpenv:3 ]", + "[ 9/4 → 5/2 | note:c3 s:sawtooth cutoff:500 lpenv:3 ]", + "[ 5/2 → 11/4 | note:c2 s:sawtooth cutoff:500 lpenv:3 ]", + "[ 11/4 → 3/1 | note:c3 s:sawtooth cutoff:500 lpenv:3 ]", + "[ 3/1 → 13/4 | note:c2 s:sawtooth cutoff:500 lpenv:4 ]", + "[ 13/4 → 7/2 | note:c3 s:sawtooth cutoff:500 lpenv:4 ]", + "[ 7/2 → 15/4 | note:c2 s:sawtooth cutoff:500 lpenv:4 ]", + "[ 15/4 → 4/1 | note:c3 s:sawtooth cutoff:500 lpenv:4 ]", +] +`; + exports[`runs examples > example "lpf" example index 0 1`] = ` [ "[ 0/1 → 1/3 | s:hh cutoff:4000 ]", @@ -2657,6 +2894,156 @@ exports[`runs examples > example "lpq" example index 0 1`] = ` ] `; +exports[`runs examples > example "lprelease" example index 0 1`] = ` +[ + "[ 0/1 → 1/4 | note:c3 lprelease:0.1 ftype:12db ]", + "[ 1/4 → 1/2 | note:e3 lprelease:0.1 ftype:12db ]", + "[ 1/2 → 3/4 | note:g3 lprelease:0.1 ftype:12db ]", + "[ 3/4 → 1/1 | note:c4 lprelease:0.1 ftype:12db ]", + "[ 1/1 → 5/4 | note:c3 lprelease:0.25 ftype:12db ]", + "[ 5/4 → 3/2 | note:e3 lprelease:0.25 ftype:12db ]", + "[ 3/2 → 7/4 | note:g3 lprelease:0.25 ftype:12db ]", + "[ 7/4 → 2/1 | note:c4 lprelease:0.25 ftype:12db ]", + "[ 2/1 → 9/4 | note:c3 lprelease:0.5 ftype:12db ]", + "[ 9/4 → 5/2 | note:e3 lprelease:0.5 ftype:12db ]", + "[ 5/2 → 11/4 | note:g3 lprelease:0.5 ftype:12db ]", + "[ 11/4 → 3/1 | note:c4 lprelease:0.5 ftype:12db ]", + "[ 3/1 → 13/4 | note:c3 lprelease:0.1 ftype:12db ]", + "[ 13/4 → 7/2 | note:e3 lprelease:0.1 ftype:12db ]", + "[ 7/2 → 15/4 | note:g3 lprelease:0.1 ftype:12db ]", + "[ 15/4 → 4/1 | note:c4 lprelease:0.1 ftype:12db ]", +] +`; + +exports[`runs examples > example "lprelease" example index 0 2`] = ` +[ + "[ 0/1 → 1/4 | note:c3 hprelease:0.1 ftype:12db ]", + "[ 1/4 → 1/2 | note:e3 hprelease:0.1 ftype:12db ]", + "[ 1/2 → 3/4 | note:g3 hprelease:0.1 ftype:12db ]", + "[ 3/4 → 1/1 | note:c4 hprelease:0.1 ftype:12db ]", + "[ 1/1 → 5/4 | note:c3 hprelease:0.25 ftype:12db ]", + "[ 5/4 → 3/2 | note:e3 hprelease:0.25 ftype:12db ]", + "[ 3/2 → 7/4 | note:g3 hprelease:0.25 ftype:12db ]", + "[ 7/4 → 2/1 | note:c4 hprelease:0.25 ftype:12db ]", + "[ 2/1 → 9/4 | note:c3 hprelease:0.5 ftype:12db ]", + "[ 9/4 → 5/2 | note:e3 hprelease:0.5 ftype:12db ]", + "[ 5/2 → 11/4 | note:g3 hprelease:0.5 ftype:12db ]", + "[ 11/4 → 3/1 | note:c4 hprelease:0.5 ftype:12db ]", + "[ 3/1 → 13/4 | note:c3 hprelease:0.1 ftype:12db ]", + "[ 13/4 → 7/2 | note:e3 hprelease:0.1 ftype:12db ]", + "[ 7/2 → 15/4 | note:g3 hprelease:0.1 ftype:12db ]", + "[ 15/4 → 4/1 | note:c4 hprelease:0.1 ftype:12db ]", +] +`; + +exports[`runs examples > example "lprelease" example index 0 3`] = ` +[ + "[ 0/1 → 1/4 | note:c3 bprelease:0.1 ftype:12db ]", + "[ 1/4 → 1/2 | note:e3 bprelease:0.1 ftype:12db ]", + "[ 1/2 → 3/4 | note:g3 bprelease:0.1 ftype:12db ]", + "[ 3/4 → 1/1 | note:c4 bprelease:0.1 ftype:12db ]", + "[ 1/1 → 5/4 | note:c3 bprelease:0.25 ftype:12db ]", + "[ 5/4 → 3/2 | note:e3 bprelease:0.25 ftype:12db ]", + "[ 3/2 → 7/4 | note:g3 bprelease:0.25 ftype:12db ]", + "[ 7/4 → 2/1 | note:c4 bprelease:0.25 ftype:12db ]", + "[ 2/1 → 9/4 | note:c3 bprelease:0.5 ftype:12db ]", + "[ 9/4 → 5/2 | note:e3 bprelease:0.5 ftype:12db ]", + "[ 5/2 → 11/4 | note:g3 bprelease:0.5 ftype:12db ]", + "[ 11/4 → 3/1 | note:c4 bprelease:0.5 ftype:12db ]", + "[ 3/1 → 13/4 | note:c3 bprelease:0.1 ftype:12db ]", + "[ 13/4 → 7/2 | note:e3 bprelease:0.1 ftype:12db ]", + "[ 7/2 → 15/4 | note:g3 bprelease:0.1 ftype:12db ]", + "[ 15/4 → 4/1 | note:c4 bprelease:0.1 ftype:12db ]", +] +`; + +exports[`runs examples > example "lpsustain" example index 0 1`] = ` +[ + "[ 0/1 → 1/6 | note:c3 s:square cutoff:200 lpdecay:0.1 lpsustain:0.1 ftype:12db ]", + "[ 1/6 → 1/3 | note:e3 s:square cutoff:200 lpdecay:0.1 lpsustain:0.1 ftype:12db ]", + "[ 1/3 → 1/2 | note:f3 s:square cutoff:200 lpdecay:0.1 lpsustain:0.1 ftype:12db ]", + "[ 1/2 → 2/3 | note:g3 s:square cutoff:200 lpdecay:0.1 lpsustain:0.1 ftype:12db ]", + "[ 2/3 → 5/6 | note:ab3 s:square cutoff:200 lpdecay:0.1 lpsustain:0.1 ftype:12db ]", + "[ 5/6 → 1/1 | note:bb3 s:square cutoff:200 lpdecay:0.1 lpsustain:0.1 ftype:12db ]", + "[ 1/1 → 7/6 | note:c3 s:square cutoff:200 lpdecay:0.1 lpsustain:0.5 ftype:12db ]", + "[ 7/6 → 4/3 | note:e3 s:square cutoff:200 lpdecay:0.1 lpsustain:0.5 ftype:12db ]", + "[ 4/3 → 3/2 | note:f3 s:square cutoff:200 lpdecay:0.1 lpsustain:0.5 ftype:12db ]", + "[ 3/2 → 5/3 | note:g3 s:square cutoff:200 lpdecay:0.1 lpsustain:0.5 ftype:12db ]", + "[ 5/3 → 11/6 | note:ab3 s:square cutoff:200 lpdecay:0.1 lpsustain:0.5 ftype:12db ]", + "[ 11/6 → 2/1 | note:bb3 s:square cutoff:200 lpdecay:0.1 lpsustain:0.5 ftype:12db ]", + "[ 2/1 → 13/6 | note:c3 s:square cutoff:200 lpdecay:0.1 lpsustain:0.75 ftype:12db ]", + "[ 13/6 → 7/3 | note:e3 s:square cutoff:200 lpdecay:0.1 lpsustain:0.75 ftype:12db ]", + "[ 7/3 → 5/2 | note:f3 s:square cutoff:200 lpdecay:0.1 lpsustain:0.75 ftype:12db ]", + "[ 5/2 → 8/3 | note:g3 s:square cutoff:200 lpdecay:0.1 lpsustain:0.75 ftype:12db ]", + "[ 8/3 → 17/6 | note:ab3 s:square cutoff:200 lpdecay:0.1 lpsustain:0.75 ftype:12db ]", + "[ 17/6 → 3/1 | note:bb3 s:square cutoff:200 lpdecay:0.1 lpsustain:0.75 ftype:12db ]", + "[ 3/1 → 19/6 | note:c3 s:square cutoff:200 lpdecay:0.1 lpsustain:1 ftype:12db ]", + "[ 19/6 → 10/3 | note:e3 s:square cutoff:200 lpdecay:0.1 lpsustain:1 ftype:12db ]", + "[ 10/3 → 7/2 | note:f3 s:square cutoff:200 lpdecay:0.1 lpsustain:1 ftype:12db ]", + "[ 7/2 → 11/3 | note:g3 s:square cutoff:200 lpdecay:0.1 lpsustain:1 ftype:12db ]", + "[ 11/3 → 23/6 | note:ab3 s:square cutoff:200 lpdecay:0.1 lpsustain:1 ftype:12db ]", + "[ 23/6 → 4/1 | note:bb3 s:square cutoff:200 lpdecay:0.1 lpsustain:1 ftype:12db ]", +] +`; + +exports[`runs examples > example "lpsustain" example index 0 2`] = ` +[ + "[ 0/1 → 1/6 | note:c3 s:square hcutoff:200 hpdecay:0.1 hpsustain:0.1 ftype:12db ]", + "[ 1/6 → 1/3 | note:e3 s:square hcutoff:200 hpdecay:0.1 hpsustain:0.1 ftype:12db ]", + "[ 1/3 → 1/2 | note:f3 s:square hcutoff:200 hpdecay:0.1 hpsustain:0.1 ftype:12db ]", + "[ 1/2 → 2/3 | note:g3 s:square hcutoff:200 hpdecay:0.1 hpsustain:0.1 ftype:12db ]", + "[ 2/3 → 5/6 | note:ab3 s:square hcutoff:200 hpdecay:0.1 hpsustain:0.1 ftype:12db ]", + "[ 5/6 → 1/1 | note:bb3 s:square hcutoff:200 hpdecay:0.1 hpsustain:0.1 ftype:12db ]", + "[ 1/1 → 7/6 | note:c3 s:square hcutoff:200 hpdecay:0.1 hpsustain:0.5 ftype:12db ]", + "[ 7/6 → 4/3 | note:e3 s:square hcutoff:200 hpdecay:0.1 hpsustain:0.5 ftype:12db ]", + "[ 4/3 → 3/2 | note:f3 s:square hcutoff:200 hpdecay:0.1 hpsustain:0.5 ftype:12db ]", + "[ 3/2 → 5/3 | note:g3 s:square hcutoff:200 hpdecay:0.1 hpsustain:0.5 ftype:12db ]", + "[ 5/3 → 11/6 | note:ab3 s:square hcutoff:200 hpdecay:0.1 hpsustain:0.5 ftype:12db ]", + "[ 11/6 → 2/1 | note:bb3 s:square hcutoff:200 hpdecay:0.1 hpsustain:0.5 ftype:12db ]", + "[ 2/1 → 13/6 | note:c3 s:square hcutoff:200 hpdecay:0.1 hpsustain:0.75 ftype:12db ]", + "[ 13/6 → 7/3 | note:e3 s:square hcutoff:200 hpdecay:0.1 hpsustain:0.75 ftype:12db ]", + "[ 7/3 → 5/2 | note:f3 s:square hcutoff:200 hpdecay:0.1 hpsustain:0.75 ftype:12db ]", + "[ 5/2 → 8/3 | note:g3 s:square hcutoff:200 hpdecay:0.1 hpsustain:0.75 ftype:12db ]", + "[ 8/3 → 17/6 | note:ab3 s:square hcutoff:200 hpdecay:0.1 hpsustain:0.75 ftype:12db ]", + "[ 17/6 → 3/1 | note:bb3 s:square hcutoff:200 hpdecay:0.1 hpsustain:0.75 ftype:12db ]", + "[ 3/1 → 19/6 | note:c3 s:square hcutoff:200 hpdecay:0.1 hpsustain:1 ftype:12db ]", + "[ 19/6 → 10/3 | note:e3 s:square hcutoff:200 hpdecay:0.1 hpsustain:1 ftype:12db ]", + "[ 10/3 → 7/2 | note:f3 s:square hcutoff:200 hpdecay:0.1 hpsustain:1 ftype:12db ]", + "[ 7/2 → 11/3 | note:g3 s:square hcutoff:200 hpdecay:0.1 hpsustain:1 ftype:12db ]", + "[ 11/3 → 23/6 | note:ab3 s:square hcutoff:200 hpdecay:0.1 hpsustain:1 ftype:12db ]", + "[ 23/6 → 4/1 | note:bb3 s:square hcutoff:200 hpdecay:0.1 hpsustain:1 ftype:12db ]", +] +`; + +exports[`runs examples > example "lpsustain" example index 0 3`] = ` +[ + "[ 0/1 → 1/6 | note:c3 s:square bandf:200 bpdecay:0.1 bpsustain:0.1 ftype:12db ]", + "[ 1/6 → 1/3 | note:e3 s:square bandf:200 bpdecay:0.1 bpsustain:0.1 ftype:12db ]", + "[ 1/3 → 1/2 | note:f3 s:square bandf:200 bpdecay:0.1 bpsustain:0.1 ftype:12db ]", + "[ 1/2 → 2/3 | note:g3 s:square bandf:200 bpdecay:0.1 bpsustain:0.1 ftype:12db ]", + "[ 2/3 → 5/6 | note:ab3 s:square bandf:200 bpdecay:0.1 bpsustain:0.1 ftype:12db ]", + "[ 5/6 → 1/1 | note:bb3 s:square bandf:200 bpdecay:0.1 bpsustain:0.1 ftype:12db ]", + "[ 1/1 → 7/6 | note:c3 s:square bandf:200 bpdecay:0.1 bpsustain:0.5 ftype:12db ]", + "[ 7/6 → 4/3 | note:e3 s:square bandf:200 bpdecay:0.1 bpsustain:0.5 ftype:12db ]", + "[ 4/3 → 3/2 | note:f3 s:square bandf:200 bpdecay:0.1 bpsustain:0.5 ftype:12db ]", + "[ 3/2 → 5/3 | note:g3 s:square bandf:200 bpdecay:0.1 bpsustain:0.5 ftype:12db ]", + "[ 5/3 → 11/6 | note:ab3 s:square bandf:200 bpdecay:0.1 bpsustain:0.5 ftype:12db ]", + "[ 11/6 → 2/1 | note:bb3 s:square bandf:200 bpdecay:0.1 bpsustain:0.5 ftype:12db ]", + "[ 2/1 → 13/6 | note:c3 s:square bandf:200 bpdecay:0.1 bpsustain:0.75 ftype:12db ]", + "[ 13/6 → 7/3 | note:e3 s:square bandf:200 bpdecay:0.1 bpsustain:0.75 ftype:12db ]", + "[ 7/3 → 5/2 | note:f3 s:square bandf:200 bpdecay:0.1 bpsustain:0.75 ftype:12db ]", + "[ 5/2 → 8/3 | note:g3 s:square bandf:200 bpdecay:0.1 bpsustain:0.75 ftype:12db ]", + "[ 8/3 → 17/6 | note:ab3 s:square bandf:200 bpdecay:0.1 bpsustain:0.75 ftype:12db ]", + "[ 17/6 → 3/1 | note:bb3 s:square bandf:200 bpdecay:0.1 bpsustain:0.75 ftype:12db ]", + "[ 3/1 → 19/6 | note:c3 s:square bandf:200 bpdecay:0.1 bpsustain:1 ftype:12db ]", + "[ 19/6 → 10/3 | note:e3 s:square bandf:200 bpdecay:0.1 bpsustain:1 ftype:12db ]", + "[ 10/3 → 7/2 | note:f3 s:square bandf:200 bpdecay:0.1 bpsustain:1 ftype:12db ]", + "[ 7/2 → 11/3 | note:g3 s:square bandf:200 bpdecay:0.1 bpsustain:1 ftype:12db ]", + "[ 11/3 → 23/6 | note:ab3 s:square bandf:200 bpdecay:0.1 bpsustain:1 ftype:12db ]", + "[ 23/6 → 4/1 | note:bb3 s:square bandf:200 bpdecay:0.1 bpsustain:1 ftype:12db ]", +] +`; + exports[`runs examples > example "lrate" example index 0 1`] = ` [ "[ 0/1 → 1/1 | n:0 s:supersquare leslie:1 lrate:1 ]",