1 | import { StereoFeedbackEffect, StereoFeedbackEffectOptions } from "../effect/StereoFeedbackEffect.js";
|
2 | import { Degrees, Frequency, Milliseconds, NormalRange, Time } from "../core/type/Units.js";
|
3 | import { ToneOscillatorType } from "../source/oscillator/OscillatorInterface.js";
|
4 | import { Signal } from "../signal/Signal.js";
|
5 | export interface ChorusOptions extends StereoFeedbackEffectOptions {
|
6 | frequency: Frequency;
|
7 | delayTime: Milliseconds;
|
8 | depth: NormalRange;
|
9 | type: ToneOscillatorType;
|
10 | spread: Degrees;
|
11 | }
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 | export declare class Chorus extends StereoFeedbackEffect<ChorusOptions> {
|
26 | readonly name: string;
|
27 | |
28 |
|
29 |
|
30 | private _depth;
|
31 | |
32 |
|
33 |
|
34 | private _delayTime;
|
35 | |
36 |
|
37 |
|
38 | private _lfoL;
|
39 | |
40 |
|
41 |
|
42 | private _lfoR;
|
43 | |
44 |
|
45 |
|
46 | private _delayNodeL;
|
47 | |
48 |
|
49 |
|
50 | private _delayNodeR;
|
51 | |
52 |
|
53 |
|
54 | readonly frequency: Signal<"frequency">;
|
55 | |
56 |
|
57 |
|
58 |
|
59 |
|
60 | constructor(frequency?: Frequency, delayTime?: Milliseconds, depth?: NormalRange);
|
61 | constructor(options?: Partial<ChorusOptions>);
|
62 | static getDefaults(): ChorusOptions;
|
63 | /**
|
64 | * The depth of the effect. A depth of 1 makes the delayTime
|
65 | * modulate between 0 and 2*delayTime (centered around the delayTime).
|
66 | */
|
67 | get depth(): NormalRange;
|
68 | set depth(depth: NormalRange);
|
69 | /**
|
70 | * The delayTime in milliseconds of the chorus. A larger delayTime
|
71 | * will give a more pronounced effect. Nominal range a delayTime
|
72 | * is between 2 and 20ms.
|
73 | */
|
74 | get delayTime(): Milliseconds;
|
75 | set delayTime(delayTime: Milliseconds);
|
76 | /**
|
77 | * The oscillator type of the LFO.
|
78 | */
|
79 | get type(): ToneOscillatorType;
|
80 | set type(type: ToneOscillatorType);
|
81 | /**
|
82 | * Amount of stereo spread. When set to 0, both LFO's will be panned centrally.
|
83 | * When set to 180, LFO's will be panned hard left and right respectively.
|
84 | */
|
85 | get spread(): Degrees;
|
86 | set spread(spread: Degrees);
|
87 | /**
|
88 | * Start the effect.
|
89 | */
|
90 | start(time?: Time): this;
|
91 | /**
|
92 | * Stop the lfo
|
93 | */
|
94 | stop(time?: Time): this;
|
95 | /**
|
96 | * Sync the filter to the transport.
|
97 | * @see {@link LFO.sync}
|
98 | */
|
99 | sync(): this;
|
100 | /**
|
101 | * Unsync the filter from the transport.
|
102 | */
|
103 | unsync(): this;
|
104 | dispose(): this;
|
105 | }
|