UNPKG

1.6 kBTypeScriptView Raw
1import { NormalRange } from "../core/type/Units.js";
2import { StereoEffect, StereoEffectOptions } from "./StereoEffect.js";
3import { Signal } from "../signal/Signal.js";
4export interface JCReverbOptions extends StereoEffectOptions {
5 roomSize: NormalRange;
6}
7/**
8 * JCReverb is a simple [Schroeder Reverberator](https://ccrma.stanford.edu/~jos/pasp/Schroeder_Reverberators.html)
9 * tuned by John Chowning in 1970.
10 * It is made up of three allpass filters and four {@link FeedbackCombFilter}.
11 * JCReverb is now implemented with an AudioWorkletNode which may result on performance degradation on some platforms. Consider using {@link Reverb}.
12 * @example
13 * const reverb = new Tone.JCReverb(0.4).toDestination();
14 * const delay = new Tone.FeedbackDelay(0.5);
15 * // connecting the synth to reverb through delay
16 * const synth = new Tone.DuoSynth().chain(delay, reverb);
17 * synth.triggerAttackRelease("A4", "8n");
18 *
19 * @category Effect
20 */
21export declare class JCReverb extends StereoEffect<JCReverbOptions> {
22 readonly name: string;
23 /**
24 * Room size control values.
25 */
26 readonly roomSize: Signal<"normalRange">;
27 /**
28 * Scale the room size
29 */
30 private _scaleRoomSize;
31 /**
32 * a series of allpass filters
33 */
34 private _allpassFilters;
35 /**
36 * parallel feedback comb filters
37 */
38 private _feedbackCombFilters;
39 /**
40 * @param roomSize Correlated to the decay time.
41 */
42 constructor(roomSize?: NormalRange);
43 constructor(options?: Partial<JCReverbOptions>);
44 static getDefaults(): JCReverbOptions;
45 dispose(): this;
46}