UNPKG

1.93 kBTypeScriptView Raw
1import { StereoEffect, StereoEffectOptions } from "./StereoEffect.js";
2import { Frequency, NormalRange } from "../core/type/Units.js";
3import { Signal } from "../signal/Signal.js";
4export interface FreeverbOptions extends StereoEffectOptions {
5 dampening: Frequency;
6 roomSize: NormalRange;
7}
8/**
9 * Freeverb is a reverb based on [Freeverb](https://ccrma.stanford.edu/~jos/pasp/Freeverb.html).
10 * Read more on reverb on [Sound On Sound](https://web.archive.org/web/20160404083902/http://www.soundonsound.com:80/sos/feb01/articles/synthsecrets.asp).
11 * Freeverb is now implemented with an AudioWorkletNode which may result on performance degradation on some platforms. Consider using {@link Reverb}.
12 * @example
13 * const freeverb = new Tone.Freeverb().toDestination();
14 * freeverb.dampening = 1000;
15 * // routing synth through the reverb
16 * const synth = new Tone.NoiseSynth().connect(freeverb);
17 * synth.triggerAttackRelease(0.05);
18 * @category Effect
19 */
20export declare class Freeverb extends StereoEffect<FreeverbOptions> {
21 readonly name: string;
22 /**
23 * The roomSize value between 0 and 1. A larger roomSize will result in a longer decay.
24 */
25 readonly roomSize: Signal<"normalRange">;
26 /**
27 * the comb filters
28 */
29 private _combFilters;
30 /**
31 * the allpass filters on the left
32 */
33 private _allpassFiltersL;
34 /**
35 * the allpass filters on the right
36 */
37 private _allpassFiltersR;
38 /**
39 * @param roomSize Correlated to the decay time.
40 * @param dampening The cutoff frequency of a lowpass filter as part of the reverb.
41 */
42 constructor(roomSize?: NormalRange, dampening?: Frequency);
43 constructor(options?: Partial<FreeverbOptions>);
44 static getDefaults(): FreeverbOptions;
45 /**
46 * The amount of dampening of the reverberant signal.
47 */
48 get dampening(): Frequency;
49 set dampening(d: Frequency);
50 dispose(): this;
51}