From 3c318917743eb1b9f19f3b510f969084aeed1014 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 12 Apr 2022 17:53:40 +0100 Subject: [PATCH] Add range2 --- packages/core/strudel.mjs | 7 +++++++ packages/core/test/pattern.test.mjs | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/core/strudel.mjs b/packages/core/strudel.mjs index a996ec35..2a66e535 100644 --- a/packages/core/strudel.mjs +++ b/packages/core/strudel.mjs @@ -525,6 +525,11 @@ class Pattern { return this.mul(max-min).add(min); } + // Assumes source pattern of numbers in range -1..1 + range2(min, max) { + return _fromBipolar(this).range(min,max); + } + union(other) { return this._opleft(other, (a) => (b) => Object.assign({}, a, b)); } @@ -1108,6 +1113,7 @@ const mul = curry((a, pat) => pat.mul(a)); const div = curry((a, pat) => pat.div(a)); const union = curry((a, pat) => pat.union(a)); const range = curry((a, b, pat) => pat.range(a,b)); +const range2 = curry((a, b, pat) => pat.range2(a,b)); const every = curry((i, f, pat) => pat.every(i, f)); const when = curry((binary, f, pat) => pat.when(binary, f)); const off = curry((t, f, pat) => pat.off(t, f)); @@ -1266,6 +1272,7 @@ export { div, union, range, + range2, every, when, off, diff --git a/packages/core/test/pattern.test.mjs b/packages/core/test/pattern.test.mjs index 0a1c2d5c..adc5d179 100644 --- a/packages/core/test/pattern.test.mjs +++ b/packages/core/test/pattern.test.mjs @@ -538,10 +538,10 @@ describe('Pattern', function() { ) }) }) - describe("range", () => { - it("Can change the range of a unipolar pattern", () => { + describe("range2", () => { + it("Can change the range of a bipolar pattern", () => { assert.deepStrictEqual( - sequence(0,0.25,0.5,0.75).range(1000,1100).firstCycle(), + sequence(-1,-0.5,0,0.5).range2(1000,1100).firstCycle(), sequence(1000,1025,1050,1075).firstCycle() ) })