Add range2

This commit is contained in:
alex 2022-04-12 17:53:40 +01:00
parent 0e5dc4f368
commit 3c31891774
2 changed files with 10 additions and 3 deletions

View File

@ -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,

View File

@ -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()
)
})