From 0ec65c85d34fde68719839874f7121981959382b Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 5 Feb 2023 14:52:01 +0100 Subject: [PATCH] fix examples + snapshots --- packages/core/controls.mjs | 17 +- test/__snapshots__/examples.test.mjs.snap | 284 +++++++++++----------- 2 files changed, 150 insertions(+), 151 deletions(-) diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs index 8166e0f9..901a2ba3 100644 --- a/packages/core/controls.mjs +++ b/packages/core/controls.mjs @@ -277,50 +277,49 @@ const generic_params = [ 'In the style of classic drum-machines, `cut` will stop a playing sample as soon as another samples with in same cutgroup is to be played. An example would be an open hi-hat followed by a closed one, essentially muting the open.', ], /** - * Applies the cutoff frequency of the low-pass filter. + * Applies the cutoff frequency of the **l**ow-**p**ass **f**ilter. * * @name lpf * @param {number | Pattern} frequency audible between 0 and 20000 * @synonyms cutoff * @example - * s("bd sd,hh*3").cutoff("<4000 2000 1000 500 200 100>") + * s("bd sd,hh*3").lpf("<4000 2000 1000 500 200 100>") * */ ['f', 'lpf'], ['f', 'cutoff', 'a pattern of numbers from 0 to 1. Applies the cutoff frequency of the low-pass filter.'], /** - * Applies the cutoff frequency of the high-pass filter. + * Applies the cutoff frequency of the **h**igh-**p**ass **f**ilter. * * @name hpf * @param {number | Pattern} frequency audible between 0 and 20000 * @synonyms hcutoff * @example - * s("bd sd,hh*4").hcutoff("<4000 2000 1000 500 200 100>") + * s("bd sd,hh*4").hpf("<4000 2000 1000 500 200 100>") * */ ['f', 'hpf', ''], ['f', 'hcutoff', ''], /** - * Applies the resonance of the high-pass filter. + * Controls the **h**igh-**p**ass **q**-value. * * @name hpq * @param {number | Pattern} q resonance factor between 0 and 50 * @synonyms hresonance * @example - * s("bd sd,hh*4").hcutoff(2000).hresonance("<0 10 20 30>") + * s("bd sd,hh*4").hpf(2000).hpq("<0 10 20 30>") * */ ['f', 'hresonance', ''], ['f', 'hpq', ''], - // TODO: add hpq synonym /** - * Applies the cutoff frequency of the low-pass filter. + * Controls the **l**ow-**p**ass **q**-value. * * @name lpq * @param {number | Pattern} q resonance factor between 0 and 50 * @synonyms resonance * @example - * s("bd sd,hh*4").cutoff(2000).resonance("<0 10 20 30>") + * s("bd sd,hh*4").lpf(2000).lpq("<0 10 20 30>") * */ ['f', 'lpq'], diff --git a/test/__snapshots__/examples.test.mjs.snap b/test/__snapshots__/examples.test.mjs.snap index 7320576a..148f12cc 100644 --- a/test/__snapshots__/examples.test.mjs.snap +++ b/test/__snapshots__/examples.test.mjs.snap @@ -861,44 +861,6 @@ exports[`runs examples > example "attack" example index 0 1`] = ` ] `; -exports[`runs examples > example "bandf" example index 0 1`] = ` -[ - "[ 0/1 → 1/2 | s:bd bandf:1000 ]", - "[ 1/2 → 1/1 | s:sd bandf:1000 ]", - "[ 0/1 → 1/3 | s:hh bandf:1000 ]", - "[ 1/3 → 2/3 | s:hh bandf:1000 ]", - "[ 2/3 → 1/1 | s:hh bandf:1000 ]", - "[ 1/1 → 3/2 | s:bd bandf:2000 ]", - "[ 3/2 → 2/1 | s:sd bandf:2000 ]", - "[ 1/1 → 4/3 | s:hh bandf:2000 ]", - "[ 4/3 → 5/3 | s:hh bandf:2000 ]", - "[ 5/3 → 2/1 | s:hh bandf:2000 ]", - "[ 2/1 → 5/2 | s:bd bandf:4000 ]", - "[ 5/2 → 3/1 | s:sd bandf:4000 ]", - "[ 2/1 → 7/3 | s:hh bandf:4000 ]", - "[ 7/3 → 8/3 | s:hh bandf:4000 ]", - "[ 8/3 → 3/1 | s:hh bandf:4000 ]", - "[ 3/1 → 7/2 | s:bd bandf:8000 ]", - "[ 7/2 → 4/1 | s:sd bandf:8000 ]", - "[ 3/1 → 10/3 | s:hh bandf:8000 ]", - "[ 10/3 → 11/3 | s:hh bandf:8000 ]", - "[ 11/3 → 4/1 | s:hh bandf:8000 ]", -] -`; - -exports[`runs examples > example "bandq" example index 0 1`] = ` -[ - "[ 0/1 → 1/2 | s:bd bandf:500 bandq:0 ]", - "[ 1/2 → 1/1 | s:sd bandf:500 bandq:0 ]", - "[ 1/1 → 3/2 | s:bd bandf:500 bandq:1 ]", - "[ 3/2 → 2/1 | s:sd bandf:500 bandq:1 ]", - "[ 2/1 → 5/2 | s:bd bandf:500 bandq:2 ]", - "[ 5/2 → 3/1 | s:sd bandf:500 bandq:2 ]", - "[ 3/1 → 7/2 | s:bd bandf:500 bandq:3 ]", - "[ 7/2 → 4/1 | s:sd bandf:500 bandq:3 ]", -] -`; - exports[`runs examples > example "bank" example index 0 1`] = ` [ "[ 0/1 → 1/2 | s:bd bank:RolandTR909 ]", @@ -921,6 +883,44 @@ exports[`runs examples > example "begin" example index 0 1`] = ` ] `; +exports[`runs examples > example "bpf" example index 0 1`] = ` +[ + "[ 0/1 → 1/2 | s:bd bpf:1000 ]", + "[ 1/2 → 1/1 | s:sd bpf:1000 ]", + "[ 0/1 → 1/3 | s:hh bpf:1000 ]", + "[ 1/3 → 2/3 | s:hh bpf:1000 ]", + "[ 2/3 → 1/1 | s:hh bpf:1000 ]", + "[ 1/1 → 3/2 | s:bd bpf:2000 ]", + "[ 3/2 → 2/1 | s:sd bpf:2000 ]", + "[ 1/1 → 4/3 | s:hh bpf:2000 ]", + "[ 4/3 → 5/3 | s:hh bpf:2000 ]", + "[ 5/3 → 2/1 | s:hh bpf:2000 ]", + "[ 2/1 → 5/2 | s:bd bpf:4000 ]", + "[ 5/2 → 3/1 | s:sd bpf:4000 ]", + "[ 2/1 → 7/3 | s:hh bpf:4000 ]", + "[ 7/3 → 8/3 | s:hh bpf:4000 ]", + "[ 8/3 → 3/1 | s:hh bpf:4000 ]", + "[ 3/1 → 7/2 | s:bd bpf:8000 ]", + "[ 7/2 → 4/1 | s:sd bpf:8000 ]", + "[ 3/1 → 10/3 | s:hh bpf:8000 ]", + "[ 10/3 → 11/3 | s:hh bpf:8000 ]", + "[ 11/3 → 4/1 | s:hh bpf:8000 ]", +] +`; + +exports[`runs examples > example "bpq" example index 0 1`] = ` +[ + "[ 0/1 → 1/2 | s:bd bpf:500 bpq:0 ]", + "[ 1/2 → 1/1 | s:sd bpf:500 bpq:0 ]", + "[ 1/1 → 3/2 | s:bd bpf:500 bpq:1 ]", + "[ 3/2 → 2/1 | s:sd bpf:500 bpq:1 ]", + "[ 2/1 → 5/2 | s:bd bpf:500 bpq:2 ]", + "[ 5/2 → 3/1 | s:sd bpf:500 bpq:2 ]", + "[ 3/1 → 7/2 | s:bd bpf:500 bpq:3 ]", + "[ 7/2 → 4/1 | s:sd bpf:500 bpq:3 ]", +] +`; + exports[`runs examples > example "cat" example index 0 1`] = ` [ "[ 0/1 → 1/2 | s:hh ]", @@ -1254,31 +1254,6 @@ exports[`runs examples > example "cut" example index 0 1`] = ` ] `; -exports[`runs examples > example "cutoff" example index 0 1`] = ` -[ - "[ 0/1 → 1/2 | s:bd cutoff:4000 ]", - "[ 1/2 → 1/1 | s:sd cutoff:4000 ]", - "[ 0/1 → 1/3 | s:hh cutoff:4000 ]", - "[ 1/3 → 2/3 | s:hh cutoff:4000 ]", - "[ 2/3 → 1/1 | s:hh cutoff:4000 ]", - "[ 1/1 → 3/2 | s:bd cutoff:2000 ]", - "[ 3/2 → 2/1 | s:sd cutoff:2000 ]", - "[ 1/1 → 4/3 | s:hh cutoff:2000 ]", - "[ 4/3 → 5/3 | s:hh cutoff:2000 ]", - "[ 5/3 → 2/1 | s:hh cutoff:2000 ]", - "[ 2/1 → 5/2 | s:bd cutoff:1000 ]", - "[ 5/2 → 3/1 | s:sd cutoff:1000 ]", - "[ 2/1 → 7/3 | s:hh cutoff:1000 ]", - "[ 7/3 → 8/3 | s:hh cutoff:1000 ]", - "[ 8/3 → 3/1 | s:hh cutoff:1000 ]", - "[ 3/1 → 7/2 | s:bd cutoff:500 ]", - "[ 7/2 → 4/1 | s:sd cutoff:500 ]", - "[ 3/1 → 10/3 | s:hh cutoff:500 ]", - "[ 10/3 → 11/3 | s:hh cutoff:500 ]", - "[ 11/3 → 4/1 | s:hh cutoff:500 ]", -] -`; - exports[`runs examples > example "decay" example index 0 1`] = ` [ "[ 0/1 → 1/2 | note:c3 decay:0.1 sustain:0 ]", @@ -1898,61 +1873,61 @@ exports[`runs examples > example "gain" example index 0 1`] = ` ] `; -exports[`runs examples > example "hcutoff" example index 0 1`] = ` +exports[`runs examples > example "hpf" example index 0 1`] = ` [ - "[ 0/1 → 1/2 | s:bd hcutoff:4000 ]", - "[ 1/2 → 1/1 | s:sd hcutoff:4000 ]", - "[ 0/1 → 1/4 | s:hh hcutoff:4000 ]", - "[ 1/4 → 1/2 | s:hh hcutoff:4000 ]", - "[ 1/2 → 3/4 | s:hh hcutoff:4000 ]", - "[ 3/4 → 1/1 | s:hh hcutoff:4000 ]", - "[ 1/1 → 3/2 | s:bd hcutoff:2000 ]", - "[ 3/2 → 2/1 | s:sd hcutoff:2000 ]", - "[ 1/1 → 5/4 | s:hh hcutoff:2000 ]", - "[ 5/4 → 3/2 | s:hh hcutoff:2000 ]", - "[ 3/2 → 7/4 | s:hh hcutoff:2000 ]", - "[ 7/4 → 2/1 | s:hh hcutoff:2000 ]", - "[ 2/1 → 5/2 | s:bd hcutoff:1000 ]", - "[ 5/2 → 3/1 | s:sd hcutoff:1000 ]", - "[ 2/1 → 9/4 | s:hh hcutoff:1000 ]", - "[ 9/4 → 5/2 | s:hh hcutoff:1000 ]", - "[ 5/2 → 11/4 | s:hh hcutoff:1000 ]", - "[ 11/4 → 3/1 | s:hh hcutoff:1000 ]", - "[ 3/1 → 7/2 | s:bd hcutoff:500 ]", - "[ 7/2 → 4/1 | s:sd hcutoff:500 ]", - "[ 3/1 → 13/4 | s:hh hcutoff:500 ]", - "[ 13/4 → 7/2 | s:hh hcutoff:500 ]", - "[ 7/2 → 15/4 | s:hh hcutoff:500 ]", - "[ 15/4 → 4/1 | s:hh hcutoff:500 ]", + "[ 0/1 → 1/2 | s:bd hpf:4000 ]", + "[ 1/2 → 1/1 | s:sd hpf:4000 ]", + "[ 0/1 → 1/4 | s:hh hpf:4000 ]", + "[ 1/4 → 1/2 | s:hh hpf:4000 ]", + "[ 1/2 → 3/4 | s:hh hpf:4000 ]", + "[ 3/4 → 1/1 | s:hh hpf:4000 ]", + "[ 1/1 → 3/2 | s:bd hpf:2000 ]", + "[ 3/2 → 2/1 | s:sd hpf:2000 ]", + "[ 1/1 → 5/4 | s:hh hpf:2000 ]", + "[ 5/4 → 3/2 | s:hh hpf:2000 ]", + "[ 3/2 → 7/4 | s:hh hpf:2000 ]", + "[ 7/4 → 2/1 | s:hh hpf:2000 ]", + "[ 2/1 → 5/2 | s:bd hpf:1000 ]", + "[ 5/2 → 3/1 | s:sd hpf:1000 ]", + "[ 2/1 → 9/4 | s:hh hpf:1000 ]", + "[ 9/4 → 5/2 | s:hh hpf:1000 ]", + "[ 5/2 → 11/4 | s:hh hpf:1000 ]", + "[ 11/4 → 3/1 | s:hh hpf:1000 ]", + "[ 3/1 → 7/2 | s:bd hpf:500 ]", + "[ 7/2 → 4/1 | s:sd hpf:500 ]", + "[ 3/1 → 13/4 | s:hh hpf:500 ]", + "[ 13/4 → 7/2 | s:hh hpf:500 ]", + "[ 7/2 → 15/4 | s:hh hpf:500 ]", + "[ 15/4 → 4/1 | s:hh hpf:500 ]", ] `; -exports[`runs examples > example "hresonance" example index 0 1`] = ` +exports[`runs examples > example "hpq" example index 0 1`] = ` [ - "[ 0/1 → 1/2 | s:bd hcutoff:2000 hresonance:0 ]", - "[ 1/2 → 1/1 | s:sd hcutoff:2000 hresonance:0 ]", - "[ 0/1 → 1/4 | s:hh hcutoff:2000 hresonance:0 ]", - "[ 1/4 → 1/2 | s:hh hcutoff:2000 hresonance:0 ]", - "[ 1/2 → 3/4 | s:hh hcutoff:2000 hresonance:0 ]", - "[ 3/4 → 1/1 | s:hh hcutoff:2000 hresonance:0 ]", - "[ 1/1 → 3/2 | s:bd hcutoff:2000 hresonance:10 ]", - "[ 3/2 → 2/1 | s:sd hcutoff:2000 hresonance:10 ]", - "[ 1/1 → 5/4 | s:hh hcutoff:2000 hresonance:10 ]", - "[ 5/4 → 3/2 | s:hh hcutoff:2000 hresonance:10 ]", - "[ 3/2 → 7/4 | s:hh hcutoff:2000 hresonance:10 ]", - "[ 7/4 → 2/1 | s:hh hcutoff:2000 hresonance:10 ]", - "[ 2/1 → 5/2 | s:bd hcutoff:2000 hresonance:20 ]", - "[ 5/2 → 3/1 | s:sd hcutoff:2000 hresonance:20 ]", - "[ 2/1 → 9/4 | s:hh hcutoff:2000 hresonance:20 ]", - "[ 9/4 → 5/2 | s:hh hcutoff:2000 hresonance:20 ]", - "[ 5/2 → 11/4 | s:hh hcutoff:2000 hresonance:20 ]", - "[ 11/4 → 3/1 | s:hh hcutoff:2000 hresonance:20 ]", - "[ 3/1 → 7/2 | s:bd hcutoff:2000 hresonance:30 ]", - "[ 7/2 → 4/1 | s:sd hcutoff:2000 hresonance:30 ]", - "[ 3/1 → 13/4 | s:hh hcutoff:2000 hresonance:30 ]", - "[ 13/4 → 7/2 | s:hh hcutoff:2000 hresonance:30 ]", - "[ 7/2 → 15/4 | s:hh hcutoff:2000 hresonance:30 ]", - "[ 15/4 → 4/1 | s:hh hcutoff:2000 hresonance:30 ]", + "[ 0/1 → 1/2 | s:bd hpf:2000 hpq:0 ]", + "[ 1/2 → 1/1 | s:sd hpf:2000 hpq:0 ]", + "[ 0/1 → 1/4 | s:hh hpf:2000 hpq:0 ]", + "[ 1/4 → 1/2 | s:hh hpf:2000 hpq:0 ]", + "[ 1/2 → 3/4 | s:hh hpf:2000 hpq:0 ]", + "[ 3/4 → 1/1 | s:hh hpf:2000 hpq:0 ]", + "[ 1/1 → 3/2 | s:bd hpf:2000 hpq:10 ]", + "[ 3/2 → 2/1 | s:sd hpf:2000 hpq:10 ]", + "[ 1/1 → 5/4 | s:hh hpf:2000 hpq:10 ]", + "[ 5/4 → 3/2 | s:hh hpf:2000 hpq:10 ]", + "[ 3/2 → 7/4 | s:hh hpf:2000 hpq:10 ]", + "[ 7/4 → 2/1 | s:hh hpf:2000 hpq:10 ]", + "[ 2/1 → 5/2 | s:bd hpf:2000 hpq:20 ]", + "[ 5/2 → 3/1 | s:sd hpf:2000 hpq:20 ]", + "[ 2/1 → 9/4 | s:hh hpf:2000 hpq:20 ]", + "[ 9/4 → 5/2 | s:hh hpf:2000 hpq:20 ]", + "[ 5/2 → 11/4 | s:hh hpf:2000 hpq:20 ]", + "[ 11/4 → 3/1 | s:hh hpf:2000 hpq:20 ]", + "[ 3/1 → 7/2 | s:bd hpf:2000 hpq:30 ]", + "[ 7/2 → 4/1 | s:sd hpf:2000 hpq:30 ]", + "[ 3/1 → 13/4 | s:hh hpf:2000 hpq:30 ]", + "[ 13/4 → 7/2 | s:hh hpf:2000 hpq:30 ]", + "[ 7/2 → 15/4 | s:hh hpf:2000 hpq:30 ]", + "[ 15/4 → 4/1 | s:hh hpf:2000 hpq:30 ]", ] `; @@ -2385,6 +2360,60 @@ exports[`runs examples > example "loopAtCps" example index 0 1`] = ` ] `; +exports[`runs examples > example "lpf" example index 0 1`] = ` +[ + "[ 0/1 → 1/2 | s:bd lpf:4000 ]", + "[ 1/2 → 1/1 | s:sd lpf:4000 ]", + "[ 0/1 → 1/3 | s:hh lpf:4000 ]", + "[ 1/3 → 2/3 | s:hh lpf:4000 ]", + "[ 2/3 → 1/1 | s:hh lpf:4000 ]", + "[ 1/1 → 3/2 | s:bd lpf:2000 ]", + "[ 3/2 → 2/1 | s:sd lpf:2000 ]", + "[ 1/1 → 4/3 | s:hh lpf:2000 ]", + "[ 4/3 → 5/3 | s:hh lpf:2000 ]", + "[ 5/3 → 2/1 | s:hh lpf:2000 ]", + "[ 2/1 → 5/2 | s:bd lpf:1000 ]", + "[ 5/2 → 3/1 | s:sd lpf:1000 ]", + "[ 2/1 → 7/3 | s:hh lpf:1000 ]", + "[ 7/3 → 8/3 | s:hh lpf:1000 ]", + "[ 8/3 → 3/1 | s:hh lpf:1000 ]", + "[ 3/1 → 7/2 | s:bd lpf:500 ]", + "[ 7/2 → 4/1 | s:sd lpf:500 ]", + "[ 3/1 → 10/3 | s:hh lpf:500 ]", + "[ 10/3 → 11/3 | s:hh lpf:500 ]", + "[ 11/3 → 4/1 | s:hh lpf:500 ]", +] +`; + +exports[`runs examples > example "lpq" example index 0 1`] = ` +[ + "[ 0/1 → 1/2 | s:bd lpf:2000 lpq:0 ]", + "[ 1/2 → 1/1 | s:sd lpf:2000 lpq:0 ]", + "[ 0/1 → 1/4 | s:hh lpf:2000 lpq:0 ]", + "[ 1/4 → 1/2 | s:hh lpf:2000 lpq:0 ]", + "[ 1/2 → 3/4 | s:hh lpf:2000 lpq:0 ]", + "[ 3/4 → 1/1 | s:hh lpf:2000 lpq:0 ]", + "[ 1/1 → 3/2 | s:bd lpf:2000 lpq:10 ]", + "[ 3/2 → 2/1 | s:sd lpf:2000 lpq:10 ]", + "[ 1/1 → 5/4 | s:hh lpf:2000 lpq:10 ]", + "[ 5/4 → 3/2 | s:hh lpf:2000 lpq:10 ]", + "[ 3/2 → 7/4 | s:hh lpf:2000 lpq:10 ]", + "[ 7/4 → 2/1 | s:hh lpf:2000 lpq:10 ]", + "[ 2/1 → 5/2 | s:bd lpf:2000 lpq:20 ]", + "[ 5/2 → 3/1 | s:sd lpf:2000 lpq:20 ]", + "[ 2/1 → 9/4 | s:hh lpf:2000 lpq:20 ]", + "[ 9/4 → 5/2 | s:hh lpf:2000 lpq:20 ]", + "[ 5/2 → 11/4 | s:hh lpf:2000 lpq:20 ]", + "[ 11/4 → 3/1 | s:hh lpf:2000 lpq:20 ]", + "[ 3/1 → 7/2 | s:bd lpf:2000 lpq:30 ]", + "[ 7/2 → 4/1 | s:sd lpf:2000 lpq:30 ]", + "[ 3/1 → 13/4 | s:hh lpf:2000 lpq:30 ]", + "[ 13/4 → 7/2 | s:hh lpf:2000 lpq:30 ]", + "[ 7/2 → 15/4 | s:hh lpf:2000 lpq:30 ]", + "[ 15/4 → 4/1 | s:hh lpf:2000 lpq:30 ]", +] +`; + exports[`runs examples > example "lrate" example index 0 1`] = ` [ "[ 0/1 → 1/1 | n:0 s:supersquare leslie:1 lrate:1 ]", @@ -3048,35 +3077,6 @@ exports[`runs examples > example "reset" example index 0 1`] = ` ] `; -exports[`runs examples > example "resonance" example index 0 1`] = ` -[ - "[ 0/1 → 1/2 | s:bd cutoff:2000 resonance:0 ]", - "[ 1/2 → 1/1 | s:sd cutoff:2000 resonance:0 ]", - "[ 0/1 → 1/4 | s:hh cutoff:2000 resonance:0 ]", - "[ 1/4 → 1/2 | s:hh cutoff:2000 resonance:0 ]", - "[ 1/2 → 3/4 | s:hh cutoff:2000 resonance:0 ]", - "[ 3/4 → 1/1 | s:hh cutoff:2000 resonance:0 ]", - "[ 1/1 → 3/2 | s:bd cutoff:2000 resonance:10 ]", - "[ 3/2 → 2/1 | s:sd cutoff:2000 resonance:10 ]", - "[ 1/1 → 5/4 | s:hh cutoff:2000 resonance:10 ]", - "[ 5/4 → 3/2 | s:hh cutoff:2000 resonance:10 ]", - "[ 3/2 → 7/4 | s:hh cutoff:2000 resonance:10 ]", - "[ 7/4 → 2/1 | s:hh cutoff:2000 resonance:10 ]", - "[ 2/1 → 5/2 | s:bd cutoff:2000 resonance:20 ]", - "[ 5/2 → 3/1 | s:sd cutoff:2000 resonance:20 ]", - "[ 2/1 → 9/4 | s:hh cutoff:2000 resonance:20 ]", - "[ 9/4 → 5/2 | s:hh cutoff:2000 resonance:20 ]", - "[ 5/2 → 11/4 | s:hh cutoff:2000 resonance:20 ]", - "[ 11/4 → 3/1 | s:hh cutoff:2000 resonance:20 ]", - "[ 3/1 → 7/2 | s:bd cutoff:2000 resonance:30 ]", - "[ 7/2 → 4/1 | s:sd cutoff:2000 resonance:30 ]", - "[ 3/1 → 13/4 | s:hh cutoff:2000 resonance:30 ]", - "[ 13/4 → 7/2 | s:hh cutoff:2000 resonance:30 ]", - "[ 7/2 → 15/4 | s:hh cutoff:2000 resonance:30 ]", - "[ 15/4 → 4/1 | s:hh cutoff:2000 resonance:30 ]", -] -`; - exports[`runs examples > example "restart" example index 0 1`] = ` [ "[ 0/1 → 1/2 | s:bd ]",