UNPKG

@thi.ng/dsp

Version:

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

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