diff --git a/packages/core/pattern.mjs b/packages/core/pattern.mjs index 4adb9bd6..49caeaf0 100644 --- a/packages/core/pattern.mjs +++ b/packages/core/pattern.mjs @@ -2110,7 +2110,7 @@ export const linger = register( * @example * note(saw.range(40,52).segment(24)) */ -export const {segment, seg} = register(['segment', 'seg'], function (rate, pat) { +export const { segment, seg } = register(['segment', 'seg'], function (rate, pat) { return pat.struct(pure(true)._fast(rate)).setSteps(rate); }); @@ -2498,9 +2498,11 @@ export const bypass = register( * n(irand(8).segment(4)).scale("c:pentatonic").ribbon(1337, 2) * @example * // rhythm generator - * s("bd!16?").ribbon(29,.5)._punchcard() + * s("bd!16?").ribbon(29,.5) */ -export const {ribbon, rib} = register(['ribbon', 'rib'], (offset, cycles, pat) => pat.early(offset).restart(pure(1).slow(cycles))); +export const { ribbon, rib } = register(['ribbon', 'rib'], (offset, cycles, pat) => + pat.early(offset).restart(pure(1).slow(cycles)), +); export const hsla = register('hsla', (h, s, l, a, pat) => { return pat.color(`hsla(${h}turn,${s * 100}%,${l * 100}%,${a})`); diff --git a/packages/core/signal.mjs b/packages/core/signal.mjs index f09c4966..22738ea9 100644 --- a/packages/core/signal.mjs +++ b/packages/core/signal.mjs @@ -528,7 +528,7 @@ export const degradeByWith = register( * @example * s("[hh?0.2]*8") * @example - * s("bd").segment(16).degradeBy(.5).ribbon(16,1)._punchcard() + * s("bd").segment(16).degradeBy(.5).ribbon(16,1) */ export const degradeBy = register( 'degradeBy', diff --git a/test/__snapshots__/examples.test.mjs.snap b/test/__snapshots__/examples.test.mjs.snap index 71a26c81..80ee7344 100644 --- a/test/__snapshots__/examples.test.mjs.snap +++ b/test/__snapshots__/examples.test.mjs.snap @@ -1,5 +1,181 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html +exports[`runs examples > example "" example index 0 1`] = ` +[ + "[ 0/1 → 1/24 | note:40 ]", + "[ 1/24 → 1/12 | note:40.5 ]", + "[ 1/12 → 1/8 | note:41 ]", + "[ 1/8 → 1/6 | note:41.5 ]", + "[ 1/6 → 5/24 | note:42 ]", + "[ 5/24 → 1/4 | note:42.5 ]", + "[ 1/4 → 7/24 | note:43 ]", + "[ 7/24 → 1/3 | note:43.5 ]", + "[ 1/3 → 3/8 | note:44 ]", + "[ 3/8 → 5/12 | note:44.5 ]", + "[ 5/12 → 11/24 | note:45 ]", + "[ 11/24 → 1/2 | note:45.5 ]", + "[ 1/2 → 13/24 | note:46 ]", + "[ 13/24 → 7/12 | note:46.5 ]", + "[ 7/12 → 5/8 | note:47 ]", + "[ 5/8 → 2/3 | note:47.5 ]", + "[ 2/3 → 17/24 | note:48 ]", + "[ 17/24 → 3/4 | note:48.5 ]", + "[ 3/4 → 19/24 | note:49 ]", + "[ 19/24 → 5/6 | note:49.5 ]", + "[ 5/6 → 7/8 | note:50 ]", + "[ 7/8 → 11/12 | note:50.5 ]", + "[ 11/12 → 23/24 | note:51 ]", + "[ 23/24 → 1/1 | note:51.5 ]", + "[ 1/1 → 25/24 | note:40 ]", + "[ 25/24 → 13/12 | note:40.5 ]", + "[ 13/12 → 9/8 | note:41 ]", + "[ 9/8 → 7/6 | note:41.5 ]", + "[ 7/6 → 29/24 | note:42 ]", + "[ 29/24 → 5/4 | note:42.5 ]", + "[ 5/4 → 31/24 | note:43 ]", + "[ 31/24 → 4/3 | note:43.5 ]", + "[ 4/3 → 11/8 | note:44 ]", + "[ 11/8 → 17/12 | note:44.5 ]", + "[ 17/12 → 35/24 | note:45 ]", + "[ 35/24 → 3/2 | note:45.5 ]", + "[ 3/2 → 37/24 | note:46 ]", + "[ 37/24 → 19/12 | note:46.5 ]", + "[ 19/12 → 13/8 | note:47 ]", + "[ 13/8 → 5/3 | note:47.5 ]", + "[ 5/3 → 41/24 | note:48 ]", + "[ 41/24 → 7/4 | note:48.5 ]", + "[ 7/4 → 43/24 | note:49 ]", + "[ 43/24 → 11/6 | note:49.5 ]", + "[ 11/6 → 15/8 | note:50 ]", + "[ 15/8 → 23/12 | note:50.5 ]", + "[ 23/12 → 47/24 | note:51 ]", + "[ 47/24 → 2/1 | note:51.5 ]", + "[ 2/1 → 49/24 | note:40 ]", + "[ 49/24 → 25/12 | note:40.5 ]", + "[ 25/12 → 17/8 | note:41 ]", + "[ 17/8 → 13/6 | note:41.5 ]", + "[ 13/6 → 53/24 | note:42 ]", + "[ 53/24 → 9/4 | note:42.5 ]", + "[ 9/4 → 55/24 | note:43 ]", + "[ 55/24 → 7/3 | note:43.5 ]", + "[ 7/3 → 19/8 | note:44 ]", + "[ 19/8 → 29/12 | note:44.5 ]", + "[ 29/12 → 59/24 | note:45 ]", + "[ 59/24 → 5/2 | note:45.5 ]", + "[ 5/2 → 61/24 | note:46 ]", + "[ 61/24 → 31/12 | note:46.5 ]", + "[ 31/12 → 21/8 | note:47 ]", + "[ 21/8 → 8/3 | note:47.5 ]", + "[ 8/3 → 65/24 | note:48 ]", + "[ 65/24 → 11/4 | note:48.5 ]", + "[ 11/4 → 67/24 | note:49 ]", + "[ 67/24 → 17/6 | note:49.5 ]", + "[ 17/6 → 23/8 | note:50 ]", + "[ 23/8 → 35/12 | note:50.5 ]", + "[ 35/12 → 71/24 | note:51 ]", + "[ 71/24 → 3/1 | note:51.5 ]", + "[ 3/1 → 73/24 | note:40 ]", + "[ 73/24 → 37/12 | note:40.5 ]", + "[ 37/12 → 25/8 | note:41 ]", + "[ 25/8 → 19/6 | note:41.5 ]", + "[ 19/6 → 77/24 | note:42 ]", + "[ 77/24 → 13/4 | note:42.5 ]", + "[ 13/4 → 79/24 | note:43 ]", + "[ 79/24 → 10/3 | note:43.5 ]", + "[ 10/3 → 27/8 | note:44 ]", + "[ 27/8 → 41/12 | note:44.5 ]", + "[ 41/12 → 83/24 | note:45 ]", + "[ 83/24 → 7/2 | note:45.5 ]", + "[ 7/2 → 85/24 | note:46 ]", + "[ 85/24 → 43/12 | note:46.5 ]", + "[ 43/12 → 29/8 | note:47 ]", + "[ 29/8 → 11/3 | note:47.5 ]", + "[ 11/3 → 89/24 | note:48 ]", + "[ 89/24 → 15/4 | note:48.5 ]", + "[ 15/4 → 91/24 | note:49 ]", + "[ 91/24 → 23/6 | note:49.5 ]", + "[ 23/6 → 31/8 | note:50 ]", + "[ 31/8 → 47/12 | note:50.5 ]", + "[ 47/12 → 95/24 | note:51 ]", + "[ 95/24 → 4/1 | note:51.5 ]", +] +`; + +exports[`runs examples > example "" example index 0 2`] = ` +[ + "[ 0/1 → 1/1 | note:d ]", + "[ 1/1 → 2/1 | note:e ]", + "[ 2/1 → 3/1 | note:d ]", + "[ 3/1 → 4/1 | note:e ]", +] +`; + +exports[`runs examples > example "" example index 1 1`] = ` +[ + "[ 0/1 → 1/4 | note:A3 ]", + "[ 1/4 → 1/2 | note:C3 ]", + "[ 1/2 → 3/4 | note:D3 ]", + "[ 3/4 → 1/1 | note:G3 ]", + "[ 1/1 → 5/4 | note:E3 ]", + "[ 5/4 → 3/2 | note:C4 ]", + "[ 3/2 → 7/4 | note:A3 ]", + "[ 7/4 → 2/1 | note:E4 ]", + "[ 2/1 → 9/4 | note:A3 ]", + "[ 9/4 → 5/2 | note:C3 ]", + "[ 5/2 → 11/4 | note:D3 ]", + "[ 11/4 → 3/1 | note:G3 ]", + "[ 3/1 → 13/4 | note:E3 ]", + "[ 13/4 → 7/2 | note:C4 ]", + "[ 7/2 → 15/4 | note:A3 ]", + "[ 15/4 → 4/1 | note:E4 ]", +] +`; + +exports[`runs examples > example "" example index 2 1`] = ` +[ + "[ 1/16 → 1/8 | s:bd ]", + "[ 1/8 → 3/16 | s:bd ]", + "[ 3/16 → 1/4 | s:bd ]", + "[ 1/4 → 5/16 | s:bd ]", + "[ 3/8 → 7/16 | s:bd ]", + "[ 9/16 → 5/8 | s:bd ]", + "[ 5/8 → 11/16 | s:bd ]", + "[ 11/16 → 3/4 | s:bd ]", + "[ 3/4 → 13/16 | s:bd ]", + "[ 7/8 → 15/16 | s:bd ]", + "[ 17/16 → 9/8 | s:bd ]", + "[ 9/8 → 19/16 | s:bd ]", + "[ 19/16 → 5/4 | s:bd ]", + "[ 5/4 → 21/16 | s:bd ]", + "[ 11/8 → 23/16 | s:bd ]", + "[ 25/16 → 13/8 | s:bd ]", + "[ 13/8 → 27/16 | s:bd ]", + "[ 27/16 → 7/4 | s:bd ]", + "[ 7/4 → 29/16 | s:bd ]", + "[ 15/8 → 31/16 | s:bd ]", + "[ 33/16 → 17/8 | s:bd ]", + "[ 17/8 → 35/16 | s:bd ]", + "[ 35/16 → 9/4 | s:bd ]", + "[ 9/4 → 37/16 | s:bd ]", + "[ 19/8 → 39/16 | s:bd ]", + "[ 41/16 → 21/8 | s:bd ]", + "[ 21/8 → 43/16 | s:bd ]", + "[ 43/16 → 11/4 | s:bd ]", + "[ 11/4 → 45/16 | s:bd ]", + "[ 23/8 → 47/16 | s:bd ]", + "[ 49/16 → 25/8 | s:bd ]", + "[ 25/8 → 51/16 | s:bd ]", + "[ 51/16 → 13/4 | s:bd ]", + "[ 13/4 → 53/16 | s:bd ]", + "[ 27/8 → 55/16 | s:bd ]", + "[ 57/16 → 29/8 | s:bd ]", + "[ 29/8 → 59/16 | s:bd ]", + "[ 59/16 → 15/4 | s:bd ]", + "[ 15/4 → 61/16 | s:bd ]", + "[ 31/8 → 63/16 | s:bd ]", +] +`; + exports[`runs examples > example "_euclidRot" example index 0 1`] = ` [ "[ 0/1 → 1/5 | note:c3 ]", @@ -2322,6 +2498,39 @@ exports[`runs examples > example "degradeBy" example index 1 1`] = ` ] `; +exports[`runs examples > example "degradeBy" example index 2 1`] = ` +[ + "[ 1/8 → 3/16 | s:bd ]", + "[ 1/4 → 5/16 | s:bd ]", + "[ 5/16 → 3/8 | s:bd ]", + "[ 1/2 → 9/16 | s:bd ]", + "[ 9/16 → 5/8 | s:bd ]", + "[ 11/16 → 3/4 | s:bd ]", + "[ 15/16 → 1/1 | s:bd ]", + "[ 9/8 → 19/16 | s:bd ]", + "[ 5/4 → 21/16 | s:bd ]", + "[ 21/16 → 11/8 | s:bd ]", + "[ 3/2 → 25/16 | s:bd ]", + "[ 25/16 → 13/8 | s:bd ]", + "[ 27/16 → 7/4 | s:bd ]", + "[ 31/16 → 2/1 | s:bd ]", + "[ 17/8 → 35/16 | s:bd ]", + "[ 9/4 → 37/16 | s:bd ]", + "[ 37/16 → 19/8 | s:bd ]", + "[ 5/2 → 41/16 | s:bd ]", + "[ 41/16 → 21/8 | s:bd ]", + "[ 43/16 → 11/4 | s:bd ]", + "[ 47/16 → 3/1 | s:bd ]", + "[ 25/8 → 51/16 | s:bd ]", + "[ 13/4 → 53/16 | s:bd ]", + "[ 53/16 → 27/8 | s:bd ]", + "[ 7/2 → 57/16 | s:bd ]", + "[ 57/16 → 29/8 | s:bd ]", + "[ 59/16 → 15/4 | s:bd ]", + "[ 63/16 → 4/1 | s:bd ]", +] +`; + exports[`runs examples > example "delay" example index 0 1`] = ` [ "[ 0/1 → 1/2 | s:bd delay:0 ]", @@ -7121,40 +7330,6 @@ exports[`runs examples > example "rev" example index 0 1`] = ` ] `; -exports[`runs examples > example "ribbon" example index 0 1`] = ` -[ - "[ 0/1 → 1/2 | note:d ]", - "[ 1/2 → 1/1 | note:e ]", - "[ 1/1 → 3/2 | note:d ]", - "[ 3/2 → 2/1 | note:e ]", - "[ 2/1 → 5/2 | note:d ]", - "[ 5/2 → 3/1 | note:e ]", - "[ 3/1 → 7/2 | note:d ]", - "[ 7/2 → 4/1 | note:e ]", -] -`; - -exports[`runs examples > example "ribbon" example index 1 1`] = ` -[ - "[ 0/1 → 1/4 | note:G3 ]", - "[ 1/4 → 1/2 | note:C3 ]", - "[ 1/2 → 3/4 | note:D3 ]", - "[ 3/4 → 1/1 | note:F3 ]", - "[ 1/1 → 5/4 | note:Eb3 ]", - "[ 5/4 → 3/2 | note:Ab3 ]", - "[ 3/2 → 7/4 | note:G3 ]", - "[ 7/4 → 2/1 | note:C4 ]", - "[ 2/1 → 9/4 | note:G3 ]", - "[ 9/4 → 5/2 | note:C3 ]", - "[ 5/2 → 11/4 | note:D3 ]", - "[ 11/4 → 3/1 | note:F3 ]", - "[ 3/1 → 13/4 | note:Eb3 ]", - "[ 13/4 → 7/2 | note:Ab3 ]", - "[ 7/2 → 15/4 | note:G3 ]", - "[ 15/4 → 4/1 | note:C4 ]", -] -`; - exports[`runs examples > example "room" example index 0 1`] = ` [ "[ 0/1 → 1/4 | s:bd room:0 ]", @@ -7797,107 +7972,6 @@ but parts might be played more than once, or not at all, per cycle." example ind ] `; -exports[`runs examples > example "segment" example index 0 1`] = ` -[ - "[ 0/1 → 1/24 | note:40 ]", - "[ 1/24 → 1/12 | note:40.5 ]", - "[ 1/12 → 1/8 | note:41 ]", - "[ 1/8 → 1/6 | note:41.5 ]", - "[ 1/6 → 5/24 | note:42 ]", - "[ 5/24 → 1/4 | note:42.5 ]", - "[ 1/4 → 7/24 | note:43 ]", - "[ 7/24 → 1/3 | note:43.5 ]", - "[ 1/3 → 3/8 | note:44 ]", - "[ 3/8 → 5/12 | note:44.5 ]", - "[ 5/12 → 11/24 | note:45 ]", - "[ 11/24 → 1/2 | note:45.5 ]", - "[ 1/2 → 13/24 | note:46 ]", - "[ 13/24 → 7/12 | note:46.5 ]", - "[ 7/12 → 5/8 | note:47 ]", - "[ 5/8 → 2/3 | note:47.5 ]", - "[ 2/3 → 17/24 | note:48 ]", - "[ 17/24 → 3/4 | note:48.5 ]", - "[ 3/4 → 19/24 | note:49 ]", - "[ 19/24 → 5/6 | note:49.5 ]", - "[ 5/6 → 7/8 | note:50 ]", - "[ 7/8 → 11/12 | note:50.5 ]", - "[ 11/12 → 23/24 | note:51 ]", - "[ 23/24 → 1/1 | note:51.5 ]", - "[ 1/1 → 25/24 | note:40 ]", - "[ 25/24 → 13/12 | note:40.5 ]", - "[ 13/12 → 9/8 | note:41 ]", - "[ 9/8 → 7/6 | note:41.5 ]", - "[ 7/6 → 29/24 | note:42 ]", - "[ 29/24 → 5/4 | note:42.5 ]", - "[ 5/4 → 31/24 | note:43 ]", - "[ 31/24 → 4/3 | note:43.5 ]", - "[ 4/3 → 11/8 | note:44 ]", - "[ 11/8 → 17/12 | note:44.5 ]", - "[ 17/12 → 35/24 | note:45 ]", - "[ 35/24 → 3/2 | note:45.5 ]", - "[ 3/2 → 37/24 | note:46 ]", - "[ 37/24 → 19/12 | note:46.5 ]", - "[ 19/12 → 13/8 | note:47 ]", - "[ 13/8 → 5/3 | note:47.5 ]", - "[ 5/3 → 41/24 | note:48 ]", - "[ 41/24 → 7/4 | note:48.5 ]", - "[ 7/4 → 43/24 | note:49 ]", - "[ 43/24 → 11/6 | note:49.5 ]", - "[ 11/6 → 15/8 | note:50 ]", - "[ 15/8 → 23/12 | note:50.5 ]", - "[ 23/12 → 47/24 | note:51 ]", - "[ 47/24 → 2/1 | note:51.5 ]", - "[ 2/1 → 49/24 | note:40 ]", - "[ 49/24 → 25/12 | note:40.5 ]", - "[ 25/12 → 17/8 | note:41 ]", - "[ 17/8 → 13/6 | note:41.5 ]", - "[ 13/6 → 53/24 | note:42 ]", - "[ 53/24 → 9/4 | note:42.5 ]", - "[ 9/4 → 55/24 | note:43 ]", - "[ 55/24 → 7/3 | note:43.5 ]", - "[ 7/3 → 19/8 | note:44 ]", - "[ 19/8 → 29/12 | note:44.5 ]", - "[ 29/12 → 59/24 | note:45 ]", - "[ 59/24 → 5/2 | note:45.5 ]", - "[ 5/2 → 61/24 | note:46 ]", - "[ 61/24 → 31/12 | note:46.5 ]", - "[ 31/12 → 21/8 | note:47 ]", - "[ 21/8 → 8/3 | note:47.5 ]", - "[ 8/3 → 65/24 | note:48 ]", - "[ 65/24 → 11/4 | note:48.5 ]", - "[ 11/4 → 67/24 | note:49 ]", - "[ 67/24 → 17/6 | note:49.5 ]", - "[ 17/6 → 23/8 | note:50 ]", - "[ 23/8 → 35/12 | note:50.5 ]", - "[ 35/12 → 71/24 | note:51 ]", - "[ 71/24 → 3/1 | note:51.5 ]", - "[ 3/1 → 73/24 | note:40 ]", - "[ 73/24 → 37/12 | note:40.5 ]", - "[ 37/12 → 25/8 | note:41 ]", - "[ 25/8 → 19/6 | note:41.5 ]", - "[ 19/6 → 77/24 | note:42 ]", - "[ 77/24 → 13/4 | note:42.5 ]", - "[ 13/4 → 79/24 | note:43 ]", - "[ 79/24 → 10/3 | note:43.5 ]", - "[ 10/3 → 27/8 | note:44 ]", - "[ 27/8 → 41/12 | note:44.5 ]", - "[ 41/12 → 83/24 | note:45 ]", - "[ 83/24 → 7/2 | note:45.5 ]", - "[ 7/2 → 85/24 | note:46 ]", - "[ 85/24 → 43/12 | note:46.5 ]", - "[ 43/12 → 29/8 | note:47 ]", - "[ 29/8 → 11/3 | note:47.5 ]", - "[ 11/3 → 89/24 | note:48 ]", - "[ 89/24 → 15/4 | note:48.5 ]", - "[ 15/4 → 91/24 | note:49 ]", - "[ 91/24 → 23/6 | note:49.5 ]", - "[ 23/6 → 31/8 | note:50 ]", - "[ 31/8 → 47/12 | note:50.5 ]", - "[ 47/12 → 95/24 | note:51 ]", - "[ 95/24 → 4/1 | note:51.5 ]", -] -`; - exports[`runs examples > example "seq" example index 0 1`] = ` [ "[ 0/1 → 1/3 | note:e5 ]",