UNPKG

@thi.ng/dsp

Version:

Composable signal generators, oscillators, filters, FFT, spectrum, windowing & related DSP utils

27 lines (26 loc) 670 B
import { clamp01 } from "@thi.ng/math/interval"; import { Delay } from "./delay.js"; const filterFeedbackDelay = (n, filter, feedback) => new FilterFeedbackDelay(n, filter, feedback); class FilterFeedbackDelay extends Delay { constructor(n, filter, _feedback = 0.5) { super(n, 0); this.filter = filter; this._feedback = _feedback; this.setFeedback(_feedback); } next(x) { return super.next( x + this.filter.next(this._buf[this._rpos] * this._feedback) ); } feedback() { return this._feedback; } setFeedback(feedback) { this._feedback = clamp01(feedback); } } export { FilterFeedbackDelay, filterFeedbackDelay };