@thi.ng/dsp
Version:
Composable signal generators, oscillators, filters, FFT, spectrum, windowing & related DSP utils
27 lines (26 loc) • 639 B
JavaScript
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
};