From 2d08b31f9ae64845a8469b440d24c11d6fc12a07 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sat, 8 Jul 2023 16:14:25 +0200 Subject: [PATCH] fix: tests --- packages/core/pattern.mjs | 13 ++++++ test/__snapshots__/examples.test.mjs.snap | 54 +++++++++++++++++++++++ 2 files changed, 67 insertions(+) diff --git a/packages/core/pattern.mjs b/packages/core/pattern.mjs index c2fb78af..f3557a3f 100644 --- a/packages/core/pattern.mjs +++ b/packages/core/pattern.mjs @@ -2306,6 +2306,19 @@ export const { loopAt, loopat } = register(['loopAt', 'loopat'], function (facto return _loopAt(factor, pat, 1); }); +// this function will be redefined in repl.mjs to use the correct cps value. +// It is still here to work in cases where repl.mjs is not used + +export const fit = register('fit', (pat) => + pat.withHap((hap) => + hap.withValue((v) => ({ + ...v, + speed: 1 / hap.whole.duration, + unit: 'c', + })), + ), +); + /** * Makes the sample fit the given number of cycles and cps value, by * changing the speed. Please note that at some point cps will be diff --git a/test/__snapshots__/examples.test.mjs.snap b/test/__snapshots__/examples.test.mjs.snap index 023362dc..ec4153f1 100644 --- a/test/__snapshots__/examples.test.mjs.snap +++ b/test/__snapshots__/examples.test.mjs.snap @@ -3874,6 +3874,60 @@ exports[`runs examples > example "sine" example index 0 1`] = ` ] `; +exports[`runs examples > example "slice" example index 0 1`] = ` +[ + "[ 0/1 → 3/16 | begin:0.875 end:1 _slices:8 s:breaks165 ]", + "[ 3/16 → 3/8 | begin:0.75 end:0.875 _slices:8 s:breaks165 ]", + "[ 3/8 → 9/16 | begin:0.625 end:0.75 _slices:8 s:breaks165 ]", + "[ 9/16 → 21/32 | begin:0 end:0.125 _slices:8 s:breaks165 ]", + "[ 21/32 → 3/4 | begin:0.5 end:0.625 _slices:8 s:breaks165 ]", + "[ 3/4 → 15/16 | begin:0.375 end:0.5 _slices:8 s:breaks165 ]", + "[ (15/16 → 1/1) ⇝ 9/8 | begin:0.25 end:0.375 _slices:8 s:breaks165 ]", + "[ 15/16 ⇜ (1/1 → 9/8) | begin:0.25 end:0.375 _slices:8 s:breaks165 ]", + "[ 9/8 → 21/16 | begin:0.125 end:0.25 _slices:8 s:breaks165 ]", + "[ 21/16 → 3/2 | begin:0 end:0.125 _slices:8 s:breaks165 ]", + "[ 3/2 → 27/16 | begin:0 end:0.125 _slices:8 s:breaks165 ]", + "[ 27/16 → 15/8 | begin:0.125 end:0.25 _slices:8 s:breaks165 ]", + "[ 15/8 → 63/32 | begin:0.25 end:0.375 _slices:8 s:breaks165 ]", + "[ (63/32 → 2/1) ⇝ 33/16 | begin:0.25 end:0.375 _slices:8 s:breaks165 ]", + "[ 63/32 ⇜ (2/1 → 33/16) | begin:0.25 end:0.375 _slices:8 s:breaks165 ]", + "[ 33/16 → 9/4 | begin:0.375 end:0.5 _slices:8 s:breaks165 ]", + "[ 9/4 → 75/32 | begin:0.5 end:0.625 _slices:8 s:breaks165 ]", + "[ 75/32 → 39/16 | begin:0 end:0.125 _slices:8 s:breaks165 ]", + "[ 39/16 → 21/8 | begin:0.625 end:0.75 _slices:8 s:breaks165 ]", + "[ 21/8 → 45/16 | begin:0.75 end:0.875 _slices:8 s:breaks165 ]", + "[ 45/16 → 3/1 | begin:0.875 end:1 _slices:8 s:breaks165 ]", + "[ 3/1 → 51/16 | begin:0 end:0.125 _slices:8 s:breaks165 ]", + "[ 51/16 → 27/8 | begin:0.125 end:0.25 _slices:8 s:breaks165 ]", + "[ 27/8 → 57/16 | begin:0.25 end:0.375 _slices:8 s:breaks165 ]", + "[ 57/16 → 15/4 | begin:0.375 end:0.5 _slices:8 s:breaks165 ]", + "[ 15/4 → 123/32 | begin:0.5 end:0.625 _slices:8 s:breaks165 ]", + "[ 123/32 → 63/16 | begin:0 end:0.125 _slices:8 s:breaks165 ]", + "[ (63/16 → 4/1) ⇝ 33/8 | begin:0.625 end:0.75 _slices:8 s:breaks165 ]", +] +`; + +exports[`runs examples > example "slice" example index 1 1`] = ` +[ + "[ 0/1 → 1/4 | begin:0 end:0.25 _slices:[0 0.25 0.5 0.75] s:breaks125 speed:0.5 unit:c ]", + "[ 1/4 → 1/2 | begin:0.25 end:0.5 _slices:[0 0.25 0.5 0.75] s:breaks125 speed:0.5 unit:c ]", + "[ 1/2 → 3/4 | begin:0.25 end:0.5 _slices:[0 0.25 0.5 0.75] s:breaks125 speed:0.5 unit:c ]", + "[ 3/4 → 1/1 | begin:0.5 end:0.75 _slices:[0 0.25 0.5 0.75] s:breaks125 speed:0.5 unit:c ]", + "[ 1/1 → 5/4 | begin:0 end:0.25 _slices:[0 0.25 0.5 0.75] s:breaks125 speed:0.5 unit:c ]", + "[ 5/4 → 3/2 | begin:0.25 end:0.5 _slices:[0 0.25 0.5 0.75] s:breaks125 speed:0.5 unit:c ]", + "[ 3/2 → 7/4 | begin:0.25 end:0.5 _slices:[0 0.25 0.5 0.75] s:breaks125 speed:0.5 unit:c ]", + "[ 7/4 → 2/1 | begin:0.75 _slices:[0 0.25 0.5 0.75] s:breaks125 speed:0.5 unit:c ]", + "[ 2/1 → 9/4 | begin:0 end:0.25 _slices:[0 0.25 0.5 0.75] s:breaks125 speed:0.5 unit:c ]", + "[ 9/4 → 5/2 | begin:0.25 end:0.5 _slices:[0 0.25 0.5 0.75] s:breaks125 speed:0.5 unit:c ]", + "[ 5/2 → 11/4 | begin:0.25 end:0.5 _slices:[0 0.25 0.5 0.75] s:breaks125 speed:0.5 unit:c ]", + "[ 11/4 → 3/1 | begin:0.5 end:0.75 _slices:[0 0.25 0.5 0.75] s:breaks125 speed:0.5 unit:c ]", + "[ 3/1 → 13/4 | begin:0 end:0.25 _slices:[0 0.25 0.5 0.75] s:breaks125 speed:0.5 unit:c ]", + "[ 13/4 → 7/2 | begin:0.25 end:0.5 _slices:[0 0.25 0.5 0.75] s:breaks125 speed:0.5 unit:c ]", + "[ 7/2 → 15/4 | begin:0.25 end:0.5 _slices:[0 0.25 0.5 0.75] s:breaks125 speed:0.5 unit:c ]", + "[ 15/4 → 4/1 | begin:0.75 _slices:[0 0.25 0.5 0.75] s:breaks125 speed:0.5 unit:c ]", +] +`; + exports[`runs examples > example "slow" example index 0 1`] = ` [ "[ 0/1 → 1/1 | s:bd ]",