diff --git a/packages/core/pattern.mjs b/packages/core/pattern.mjs index 2c1dcfce9..c5b7953c9 100644 --- a/packages/core/pattern.mjs +++ b/packages/core/pattern.mjs @@ -1158,7 +1158,6 @@ const COMPOSERS = { div: [numeralArgs((a, b) => a / b)], mod: [numeralArgs(_mod)], pow: [numeralArgs(Math.pow)], - log2: [numeralArgs(Math.log2)], band: [numeralArgs((a, b) => a & b)], bor: [numeralArgs((a, b) => a | b)], bxor: [numeralArgs((a, b) => a ^ b)], @@ -1864,6 +1863,8 @@ export const floor = register('floor', function (pat) { return pat.asNumber().fmap((v) => Math.floor(v)); }); +export const log2 = register('log2', (pat) => pat.asNumber().fmap((v) => Math.log2(v))); + /** * Assumes a numerical pattern. Returns a new pattern with all values set to * their mathematical ceiling. E.g. `3.2` replaced with `4`, and `-4.2` diff --git a/packages/core/signal.mjs b/packages/core/signal.mjs index 2f9fe4b18..353ce25bf 100644 --- a/packages/core/signal.mjs +++ b/packages/core/signal.mjs @@ -316,7 +316,7 @@ export const run = (n) => saw.range(0, n).round().segment(n); * // "hh".s().struct("1 0 1") */ export const binary = (n) => { - const nBits = reify(n).log2(0).floor().add(1); + const nBits = reify(n).log2().floor().add(1); return binaryN(n, nBits); }; @@ -348,7 +348,7 @@ export const binaryN = (n, nBits = 16) => { * .partials(binaryL(irand(4096).add(1))) */ export const binaryL = (n) => { - const nBits = reify(n).log2(0).floor().add(1); + const nBits = reify(n).log2().floor().add(1); return binaryNL(n, nBits); };