UNPKG

@thi.ng/colored-noise

Version:

Customizable O(1) ES6 generators for colored noise

17 lines (16 loc) 415 B
import { DEFAULT_OPTS } from "./api.js"; import { preseed, sum } from "./utils.js"; function* red(opts) { const { bins, scale, rnd } = { ...DEFAULT_OPTS, ...opts }; const state = preseed(bins, scale, rnd); const invN = 1 / bins; let acc = sum(state); for (let i = 0; true; ++i >= bins && (i = 0)) { acc -= state[i]; acc += state[i] = rnd.norm(scale); yield acc * invN; } } export { red };