import { Delay } from "../core/context/Delay"; import { Param } from "../core/context/Param"; import { NormalRange, Time } from "../core/type/Units"; import { optionsFromArguments } from "../core/util/Defaults"; import { readOnly } from "../core/util/Interface"; import { FeedbackEffect, FeedbackEffectOptions } from "./FeedbackEffect"; interface FeedbackDelayOptions extends FeedbackEffectOptions { delayTime: Time; maxDelay: Time; } /** * FeedbackDelay is a DelayNode in which part of output signal is fed back into the delay. * * @param delayTime The delay applied to the incoming signal. * @param feedback The amount of the effected signal which is fed back through the delay. * @example * var feedbackDelay = new FeedbackDelay("8n", 0.5).toDestination(); * var tom = new Tone.MembraneSynth({ * "octaves" : 4, * "pitchDecay" : 0.1 * }).connect(feedbackDelay); * tom.triggerAttackRelease("A2","32n"); */ export class FeedbackDelay extends FeedbackEffect { name = "FeedbackDelay"; /** * the delay node */ private _delayNode: Delay; /** * The delayTime of the FeedbackDelay. */ readonly delayTime: Param