import { Param } from "../context/Param"; import { Time } from "../type/Units"; import { optionsFromArguments } from "../util/Defaults"; import { readOnly } from "../util/Interface"; import { ToneAudioNode, ToneAudioNodeOptions } from "./ToneAudioNode"; export interface DelayOptions extends ToneAudioNodeOptions { delayTime: Time; maxDelay: Time; } /** * Wrapper around Web Audio's native [DelayNode](http://webaudio.github.io/web-audio-api/#the-delaynode-interface). * @param delayTime The delay applied to the incoming signal. * @param maxDelay The maximum delay time. */ export class Delay extends ToneAudioNode { readonly name = "Delay"; /** * The maximum delay time. This cannot be changed after * the value is passed into the constructor. */ readonly maxDelay: Time; /** * The amount of time the incoming signal is delayed. */ readonly delayTime: Param