1 | import { NormalRange } from "../core/type/Units.js";
|
2 | import { StereoEffect, StereoEffectOptions } from "./StereoEffect.js";
|
3 | import { Signal } from "../signal/Signal.js";
|
4 | export 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 | */
|
21 | export 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 | }
|