tone 15.5.0 → 15.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Tone/core/context/OnRunning.test.ts +63 -0
- package/Tone/core/context/OnRunning.ts +26 -0
- package/Tone/core/context/ToneWithContext.test.ts +82 -0
- package/Tone/core/context/ToneWithContext.ts +24 -0
- package/Tone/core/util/Interface.ts +8 -2
- package/Tone/effect/FrequencyShifter.ts +5 -3
- package/Tone/effect/LFOStereoEffect.test.ts +85 -0
- package/Tone/effect/LFOStereoEffect.ts +136 -0
- package/Tone/effect/Phaser.ts +9 -45
- package/Tone/effect/PitchShift.ts +8 -5
- package/Tone/effect/StereoWidener.ts +12 -2
- package/Tone/effect/Tremolo.test.ts +0 -24
- package/Tone/effect/Tremolo.ts +13 -80
- package/Tone/effect/Vibrato.ts +5 -3
- package/Tone/signal/ToneConstantSource.ts +7 -19
- package/Tone/signal/WaveShaper.ts +15 -8
- package/Tone/version.ts +1 -1
- package/build/Tone.js +1 -1
- package/build/Tone.js.map +1 -1
- package/build/esm/core/context/OnRunning.d.ts +8 -0
- package/build/esm/core/context/OnRunning.js +21 -0
- package/build/esm/core/context/OnRunning.js.map +1 -0
- package/build/esm/core/context/ToneWithContext.d.ts +14 -0
- package/build/esm/core/context/ToneWithContext.js +18 -0
- package/build/esm/core/context/ToneWithContext.js.map +1 -1
- package/build/esm/core/util/Interface.d.ts +2 -2
- package/build/esm/core/util/Interface.js.map +1 -1
- package/build/esm/effect/FrequencyShifter.js +5 -3
- package/build/esm/effect/FrequencyShifter.js.map +1 -1
- package/build/esm/effect/LFOStereoEffect.d.ts +53 -0
- package/build/esm/effect/LFOStereoEffect.js +96 -0
- package/build/esm/effect/LFOStereoEffect.js.map +1 -0
- package/build/esm/effect/Phaser.d.ts +3 -16
- package/build/esm/effect/Phaser.js +6 -28
- package/build/esm/effect/Phaser.js.map +1 -1
- package/build/esm/effect/PitchShift.js +7 -5
- package/build/esm/effect/PitchShift.js.map +1 -1
- package/build/esm/effect/StereoWidener.d.ts +4 -0
- package/build/esm/effect/StereoWidener.js +7 -2
- package/build/esm/effect/StereoWidener.js.map +1 -1
- package/build/esm/effect/Tremolo.d.ts +4 -32
- package/build/esm/effect/Tremolo.js +9 -59
- package/build/esm/effect/Tremolo.js.map +1 -1
- package/build/esm/effect/Vibrato.js +4 -3
- package/build/esm/effect/Vibrato.js.map +1 -1
- package/build/esm/signal/ToneConstantSource.d.ts +1 -1
- package/build/esm/signal/ToneConstantSource.js +16 -27
- package/build/esm/signal/ToneConstantSource.js.map +1 -1
- package/build/esm/signal/WaveShaper.d.ts +5 -0
- package/build/esm/signal/WaveShaper.js +15 -7
- package/build/esm/signal/WaveShaper.js.map +1 -1
- package/build/esm/version.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BaseContext } from "./BaseContext.js";
|
|
2
|
+
/**
|
|
3
|
+
* Invoked when the context is started. The callback is invoked immediately
|
|
4
|
+
* if the context is already started or when the context is an OfflineContext.
|
|
5
|
+
* Returns a function which can be called to remove the listener.
|
|
6
|
+
* @internal Used to trigger certain events when the context has been started.
|
|
7
|
+
*/
|
|
8
|
+
export declare function onContextRunning(context: BaseContext, callback: () => void): () => void;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Invoked when the context is started. The callback is invoked immediately
|
|
3
|
+
* if the context is already started or when the context is an OfflineContext.
|
|
4
|
+
* Returns a function which can be called to remove the listener.
|
|
5
|
+
* @internal Used to trigger certain events when the context has been started.
|
|
6
|
+
*/
|
|
7
|
+
export function onContextRunning(context, callback) {
|
|
8
|
+
const listener = (state) => {
|
|
9
|
+
if (state === "running") {
|
|
10
|
+
callback();
|
|
11
|
+
context.off("statechange", listener);
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
if (context.isOffline || context.state === "running") {
|
|
15
|
+
callback();
|
|
16
|
+
return () => { };
|
|
17
|
+
}
|
|
18
|
+
context.on("statechange", listener);
|
|
19
|
+
return () => context.off("statechange", listener);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=OnRunning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OnRunning.js","sourceRoot":"","sources":["../../../../Tone/core/context/OnRunning.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC/B,OAAoB,EACpB,QAAoB;IAEpB,MAAM,QAAQ,GAAG,CAAC,KAAwB,EAAE,EAAE;QAC7C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,QAAQ,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACtC,CAAC;IACF,CAAC,CAAC;IACF,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACtD,QAAQ,EAAE,CAAC;QACX,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACpC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -103,4 +103,18 @@ export declare abstract class ToneWithContext<Options extends ToneWithContextOpt
|
|
|
103
103
|
* player.autostart = true;
|
|
104
104
|
*/
|
|
105
105
|
set(props: RecursivePartial<Options>): this;
|
|
106
|
+
/**
|
|
107
|
+
* Internal method which removes the onContextRunning callback.
|
|
108
|
+
*/
|
|
109
|
+
private _removeOnContextRunning?;
|
|
110
|
+
/**
|
|
111
|
+
* Internal method which is called the first time the context is resumed.
|
|
112
|
+
* Useful for setting up AudioNodes which should be running as soon
|
|
113
|
+
* as the context is running, but should not be started until then.
|
|
114
|
+
*/
|
|
115
|
+
protected _onContextRunning(callback: () => void): void;
|
|
116
|
+
/**
|
|
117
|
+
* Dispose and disconnect
|
|
118
|
+
*/
|
|
119
|
+
dispose(): this;
|
|
106
120
|
}
|
|
@@ -6,6 +6,7 @@ import { TransportTimeClass } from "../type/TransportTime.js";
|
|
|
6
6
|
import { assertUsedScheduleTime } from "../util/Debug.js";
|
|
7
7
|
import { getDefaultsFromInstance, optionsFromArguments, } from "../util/Defaults.js";
|
|
8
8
|
import { isArray, isBoolean, isDefined, isNumber, isString, isUndef, } from "../util/TypeCheck.js";
|
|
9
|
+
import { onContextRunning } from "./OnRunning.js";
|
|
9
10
|
/**
|
|
10
11
|
* The Base class for all nodes that have an AudioContext.
|
|
11
12
|
*/
|
|
@@ -173,5 +174,22 @@ export class ToneWithContext extends Tone {
|
|
|
173
174
|
});
|
|
174
175
|
return this;
|
|
175
176
|
}
|
|
177
|
+
/**
|
|
178
|
+
* Internal method which is called the first time the context is resumed.
|
|
179
|
+
* Useful for setting up AudioNodes which should be running as soon
|
|
180
|
+
* as the context is running, but should not be started until then.
|
|
181
|
+
*/
|
|
182
|
+
_onContextRunning(callback) {
|
|
183
|
+
this._removeOnContextRunning = onContextRunning(this.context, callback);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Dispose and disconnect
|
|
187
|
+
*/
|
|
188
|
+
dispose() {
|
|
189
|
+
var _a;
|
|
190
|
+
super.dispose();
|
|
191
|
+
(_a = this._removeOnContextRunning) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
192
|
+
return this;
|
|
193
|
+
}
|
|
176
194
|
}
|
|
177
195
|
//# sourceMappingURL=ToneWithContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToneWithContext.js","sourceRoot":"","sources":["../../../../Tone/core/context/ToneWithContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EACN,uBAAuB,EACvB,oBAAoB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACN,OAAO,EACP,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,OAAO,GACP,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"ToneWithContext.js","sourceRoot":"","sources":["../../../../Tone/core/context/ToneWithContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,11 @@ export type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
|
|
|
2
2
|
/**
|
|
3
3
|
* Make the property not writable using `defineProperty`. Internal use only.
|
|
4
4
|
*/
|
|
5
|
-
export declare function readOnly(target:
|
|
5
|
+
export declare function readOnly<T extends object>(target: T, property: keyof T | (keyof T)[]): void;
|
|
6
6
|
/**
|
|
7
7
|
* Make an attribute writeable. Internal use only.
|
|
8
8
|
*/
|
|
9
|
-
export declare function writable(target:
|
|
9
|
+
export declare function writable<T extends object>(target: T, property: keyof T | (keyof T)[]): void;
|
|
10
10
|
export declare const noOp: (...args: any[]) => any;
|
|
11
11
|
/**
|
|
12
12
|
* Recursive Partial taken from here: https://stackoverflow.com/a/51365037
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Interface.js","sourceRoot":"","sources":["../../../../Tone/core/util/Interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAKzC;;GAEG;AACH,MAAM,UAAU,QAAQ,
|
|
1
|
+
{"version":3,"file":"Interface.js","sourceRoot":"","sources":["../../../../Tone/core/util/Interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAKzC;;GAEG;AACH,MAAM,UAAU,QAAQ,CACvB,MAAS,EACT,QAA+B;IAE/B,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACP,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE;YACvC,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,KAAK;SACf,CAAC,CAAC;IACJ,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CACvB,MAAS,EACT,QAA+B;IAE/B,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACP,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE;YACvC,QAAQ,EAAE,IAAI;SACd,CAAC,CAAC;IACJ,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAA4B,GAAG,EAAE;IACjD,qBAAqB;AACtB,CAAC,CAAC"}
|
|
@@ -63,9 +63,11 @@ export class FrequencyShifter extends Effect {
|
|
|
63
63
|
this._negate.connect(this._add.addend);
|
|
64
64
|
this._add.connect(this.effectReturn);
|
|
65
65
|
// start the oscillators at the same time
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
this._onContextRunning(() => {
|
|
67
|
+
const now = this.immediate();
|
|
68
|
+
this._sine.start(now);
|
|
69
|
+
this._cosine.start(now);
|
|
70
|
+
});
|
|
69
71
|
}
|
|
70
72
|
static getDefaults() {
|
|
71
73
|
return Object.assign(Effect.getDefaults(), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrequencyShifter.js","sourceRoot":"","sources":["../../../Tone/effect/FrequencyShifter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"FrequencyShifter.js","sourceRoot":"","sources":["../../../Tone/effect/FrequencyShifter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Frequency, Time } from "../core/type/Units.js";
|
|
2
|
+
import { Signal } from "../signal/Signal.js";
|
|
3
|
+
import { LFO } from "../source/oscillator/LFO.js";
|
|
4
|
+
import { ToneOscillatorType } from "../source/oscillator/OscillatorInterface.js";
|
|
5
|
+
import { StereoEffect, StereoEffectOptions } from "./StereoEffect.js";
|
|
6
|
+
export interface LFOStereoEffectOptions extends StereoEffectOptions {
|
|
7
|
+
frequency: Frequency;
|
|
8
|
+
autostart: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Base class for stereo effects which modulate the incoming signal with an LFO.
|
|
12
|
+
*
|
|
13
|
+
* @category Effect
|
|
14
|
+
*/
|
|
15
|
+
export declare abstract class LFOStereoEffect<Options extends LFOStereoEffectOptions> extends StereoEffect<Options> {
|
|
16
|
+
readonly name: string;
|
|
17
|
+
/**
|
|
18
|
+
* The LFO in the left channel
|
|
19
|
+
*/
|
|
20
|
+
protected _lfoL: LFO;
|
|
21
|
+
/**
|
|
22
|
+
* The LFO in the right channel
|
|
23
|
+
*/
|
|
24
|
+
protected _lfoR: LFO;
|
|
25
|
+
/**
|
|
26
|
+
* The frequency of the tremolo.
|
|
27
|
+
*/
|
|
28
|
+
readonly frequency: Signal<"frequency">;
|
|
29
|
+
constructor(options?: Partial<LFOStereoEffectOptions>);
|
|
30
|
+
static getDefaults(): LFOStereoEffectOptions;
|
|
31
|
+
/**
|
|
32
|
+
* Start the tremolo.
|
|
33
|
+
*/
|
|
34
|
+
start(time?: Time): this;
|
|
35
|
+
/**
|
|
36
|
+
* Stop the tremolo.
|
|
37
|
+
*/
|
|
38
|
+
stop(time?: Time): this;
|
|
39
|
+
/**
|
|
40
|
+
* Sync the effect to the transport.
|
|
41
|
+
*/
|
|
42
|
+
sync(): this;
|
|
43
|
+
/**
|
|
44
|
+
* Unsync the filter from the transport
|
|
45
|
+
*/
|
|
46
|
+
unsync(): this;
|
|
47
|
+
/**
|
|
48
|
+
* The oscillator type.
|
|
49
|
+
*/
|
|
50
|
+
get type(): ToneOscillatorType;
|
|
51
|
+
set type(type: ToneOscillatorType);
|
|
52
|
+
dispose(): this;
|
|
53
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { optionsFromArguments } from "../core/util/Defaults.js";
|
|
2
|
+
import { readOnly } from "../core/util/Interface.js";
|
|
3
|
+
import { Signal } from "../signal/Signal.js";
|
|
4
|
+
import { LFO } from "../source/oscillator/LFO.js";
|
|
5
|
+
import { StereoEffect } from "./StereoEffect.js";
|
|
6
|
+
/**
|
|
7
|
+
* Base class for stereo effects which modulate the incoming signal with an LFO.
|
|
8
|
+
*
|
|
9
|
+
* @category Effect
|
|
10
|
+
*/
|
|
11
|
+
export class LFOStereoEffect extends StereoEffect {
|
|
12
|
+
constructor() {
|
|
13
|
+
const options = optionsFromArguments(LFOStereoEffect.getDefaults(), arguments);
|
|
14
|
+
super(options);
|
|
15
|
+
this.name = "LFOStereoEffect";
|
|
16
|
+
this._lfoL = new LFO({
|
|
17
|
+
context: this.context,
|
|
18
|
+
min: 0,
|
|
19
|
+
max: 1,
|
|
20
|
+
});
|
|
21
|
+
this._lfoR = new LFO({
|
|
22
|
+
context: this.context,
|
|
23
|
+
min: 0,
|
|
24
|
+
max: 1,
|
|
25
|
+
});
|
|
26
|
+
// control the frequency with a single signal
|
|
27
|
+
this.frequency = new Signal({
|
|
28
|
+
context: this.context,
|
|
29
|
+
value: options.frequency,
|
|
30
|
+
units: "frequency",
|
|
31
|
+
});
|
|
32
|
+
this.frequency.fan(this._lfoL.frequency, this._lfoR.frequency);
|
|
33
|
+
readOnly(this, ["frequency"]);
|
|
34
|
+
if (options.autostart) {
|
|
35
|
+
this._onContextRunning(() => this.start(this.immediate()));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
static getDefaults() {
|
|
39
|
+
return Object.assign(StereoEffect.getDefaults(), {
|
|
40
|
+
frequency: 10,
|
|
41
|
+
autostart: false,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Start the tremolo.
|
|
46
|
+
*/
|
|
47
|
+
start(time) {
|
|
48
|
+
this._lfoL.start(time);
|
|
49
|
+
this._lfoR.start(time);
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Stop the tremolo.
|
|
54
|
+
*/
|
|
55
|
+
stop(time) {
|
|
56
|
+
this._lfoL.stop(time);
|
|
57
|
+
this._lfoR.stop(time);
|
|
58
|
+
return this;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Sync the effect to the transport.
|
|
62
|
+
*/
|
|
63
|
+
sync() {
|
|
64
|
+
this._lfoL.sync();
|
|
65
|
+
this._lfoR.sync();
|
|
66
|
+
this.context.transport.syncSignal(this.frequency);
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Unsync the filter from the transport
|
|
71
|
+
*/
|
|
72
|
+
unsync() {
|
|
73
|
+
this._lfoL.unsync();
|
|
74
|
+
this._lfoR.unsync();
|
|
75
|
+
this.context.transport.unsyncSignal(this.frequency);
|
|
76
|
+
return this;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* The oscillator type.
|
|
80
|
+
*/
|
|
81
|
+
get type() {
|
|
82
|
+
return this._lfoL.type;
|
|
83
|
+
}
|
|
84
|
+
set type(type) {
|
|
85
|
+
this._lfoL.type = type;
|
|
86
|
+
this._lfoR.type = type;
|
|
87
|
+
}
|
|
88
|
+
dispose() {
|
|
89
|
+
super.dispose();
|
|
90
|
+
this._lfoL.dispose();
|
|
91
|
+
this._lfoR.dispose();
|
|
92
|
+
this.frequency.dispose();
|
|
93
|
+
return this;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=LFOStereoEffect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LFOStereoEffect.js","sourceRoot":"","sources":["../../../Tone/effect/LFOStereoEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Frequency, Positive } from "../core/type/Units.js";
|
|
2
2
|
import { Signal } from "../signal/Signal.js";
|
|
3
|
-
import {
|
|
4
|
-
export interface PhaserOptions extends
|
|
5
|
-
frequency: Frequency;
|
|
3
|
+
import { LFOStereoEffect, LFOStereoEffectOptions } from "./LFOStereoEffect.js";
|
|
4
|
+
export interface PhaserOptions extends LFOStereoEffectOptions {
|
|
6
5
|
octaves: Positive;
|
|
7
6
|
stages: Positive;
|
|
8
7
|
Q: Positive;
|
|
@@ -23,16 +22,8 @@ export interface PhaserOptions extends StereoEffectOptions {
|
|
|
23
22
|
* synth.triggerAttackRelease("E3", "2n");
|
|
24
23
|
* @category Effect
|
|
25
24
|
*/
|
|
26
|
-
export declare class Phaser extends
|
|
25
|
+
export declare class Phaser extends LFOStereoEffect<PhaserOptions> {
|
|
27
26
|
readonly name: string;
|
|
28
|
-
/**
|
|
29
|
-
* the lfo which controls the frequency on the left side
|
|
30
|
-
*/
|
|
31
|
-
private _lfoL;
|
|
32
|
-
/**
|
|
33
|
-
* the lfo which controls the frequency on the right side
|
|
34
|
-
*/
|
|
35
|
-
private _lfoR;
|
|
36
27
|
/**
|
|
37
28
|
* the base modulation frequency
|
|
38
29
|
*/
|
|
@@ -53,10 +44,6 @@ export declare class Phaser extends StereoEffect<PhaserOptions> {
|
|
|
53
44
|
* the array of filters for the left side
|
|
54
45
|
*/
|
|
55
46
|
private _filtersR;
|
|
56
|
-
/**
|
|
57
|
-
* the frequency of the effect
|
|
58
|
-
*/
|
|
59
|
-
readonly frequency: Signal<"frequency">;
|
|
60
47
|
/**
|
|
61
48
|
* @param frequency The speed of the phasing.
|
|
62
49
|
* @param octaves The octaves of the effect.
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { optionsFromArguments } from "../core/util/Defaults.js";
|
|
2
2
|
import { readOnly } from "../core/util/Interface.js";
|
|
3
3
|
import { Signal } from "../signal/Signal.js";
|
|
4
|
-
import {
|
|
5
|
-
import { StereoEffect } from "./StereoEffect.js";
|
|
4
|
+
import { LFOStereoEffect } from "./LFOStereoEffect.js";
|
|
6
5
|
/**
|
|
7
6
|
* Phaser is a phaser effect. Phasers work by changing the phase
|
|
8
7
|
* of different frequency components of an incoming signal. Read more on
|
|
@@ -18,7 +17,7 @@ import { StereoEffect } from "./StereoEffect.js";
|
|
|
18
17
|
* synth.triggerAttackRelease("E3", "2n");
|
|
19
18
|
* @category Effect
|
|
20
19
|
*/
|
|
21
|
-
export class Phaser extends
|
|
20
|
+
export class Phaser extends LFOStereoEffect {
|
|
22
21
|
constructor() {
|
|
23
22
|
const options = optionsFromArguments(Phaser.getDefaults(), arguments, [
|
|
24
23
|
"frequency",
|
|
@@ -27,19 +26,7 @@ export class Phaser extends StereoEffect {
|
|
|
27
26
|
]);
|
|
28
27
|
super(options);
|
|
29
28
|
this.name = "Phaser";
|
|
30
|
-
this.
|
|
31
|
-
context: this.context,
|
|
32
|
-
frequency: options.frequency,
|
|
33
|
-
min: 0,
|
|
34
|
-
max: 1,
|
|
35
|
-
});
|
|
36
|
-
this._lfoR = new LFO({
|
|
37
|
-
context: this.context,
|
|
38
|
-
frequency: options.frequency,
|
|
39
|
-
min: 0,
|
|
40
|
-
max: 1,
|
|
41
|
-
phase: 180,
|
|
42
|
-
});
|
|
29
|
+
this._lfoR.phase = 180;
|
|
43
30
|
this._baseFrequency = this.toFrequency(options.baseFrequency);
|
|
44
31
|
this._octaves = options.octaves;
|
|
45
32
|
this.Q = new Signal({
|
|
@@ -49,28 +36,22 @@ export class Phaser extends StereoEffect {
|
|
|
49
36
|
});
|
|
50
37
|
this._filtersL = this._makeFilters(options.stages, this._lfoL);
|
|
51
38
|
this._filtersR = this._makeFilters(options.stages, this._lfoR);
|
|
52
|
-
this.frequency = this._lfoL.frequency;
|
|
53
|
-
this.frequency.value = options.frequency;
|
|
54
39
|
// connect them up
|
|
55
40
|
this.connectEffectLeft(...this._filtersL);
|
|
56
41
|
this.connectEffectRight(...this._filtersR);
|
|
57
|
-
// control the frequency with one LFO
|
|
58
|
-
this._lfoL.frequency.connect(this._lfoR.frequency);
|
|
59
42
|
// set the options
|
|
60
43
|
this.baseFrequency = options.baseFrequency;
|
|
61
44
|
this.octaves = options.octaves;
|
|
62
|
-
|
|
63
|
-
this._lfoL.start();
|
|
64
|
-
this._lfoR.start();
|
|
65
|
-
readOnly(this, ["frequency", "Q"]);
|
|
45
|
+
readOnly(this, ["Q"]);
|
|
66
46
|
}
|
|
67
47
|
static getDefaults() {
|
|
68
|
-
return Object.assign(
|
|
48
|
+
return Object.assign(LFOStereoEffect.getDefaults(), {
|
|
69
49
|
frequency: 0.5,
|
|
70
50
|
octaves: 3,
|
|
71
51
|
stages: 10,
|
|
72
52
|
Q: 10,
|
|
73
53
|
baseFrequency: 350,
|
|
54
|
+
autostart: true,
|
|
74
55
|
});
|
|
75
56
|
}
|
|
76
57
|
_makeFilters(stages, connectToFreq) {
|
|
@@ -112,11 +93,8 @@ export class Phaser extends StereoEffect {
|
|
|
112
93
|
dispose() {
|
|
113
94
|
super.dispose();
|
|
114
95
|
this.Q.dispose();
|
|
115
|
-
this._lfoL.dispose();
|
|
116
|
-
this._lfoR.dispose();
|
|
117
96
|
this._filtersL.forEach((f) => f.disconnect());
|
|
118
97
|
this._filtersR.forEach((f) => f.disconnect());
|
|
119
|
-
this.frequency.dispose();
|
|
120
98
|
return this;
|
|
121
99
|
}
|
|
122
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Phaser.js","sourceRoot":"","sources":["../../../Tone/effect/Phaser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"Phaser.js","sourceRoot":"","sources":["../../../Tone/effect/Phaser.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,13 +65,15 @@ export class PitchShift extends FeedbackEffect {
|
|
|
65
65
|
// route the input
|
|
66
66
|
this.effectSend.fan(this._delayA, this._delayB);
|
|
67
67
|
this._crossFade.chain(this._feedbackDelay, this.effectReturn);
|
|
68
|
-
// start the LFOs at the same time
|
|
69
|
-
const now = this.now();
|
|
70
|
-
this._lfoA.start(now);
|
|
71
|
-
this._lfoB.start(now);
|
|
72
|
-
this._crossFadeLFO.start(now);
|
|
73
68
|
// set the initial value
|
|
74
69
|
this.windowSize = this._windowSize;
|
|
70
|
+
// start the LFOs at the same time
|
|
71
|
+
this._onContextRunning(() => {
|
|
72
|
+
const now = this.immediate();
|
|
73
|
+
this._lfoA.start(now);
|
|
74
|
+
this._lfoB.start(now);
|
|
75
|
+
this._crossFadeLFO.start(now);
|
|
76
|
+
});
|
|
75
77
|
}
|
|
76
78
|
static getDefaults() {
|
|
77
79
|
return Object.assign(FeedbackEffect.getDefaults(), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PitchShift.js","sourceRoot":"","sources":["../../../Tone/effect/PitchShift.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PitchShift.js","sourceRoot":"","sources":["../../../Tone/effect/PitchShift.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,10 @@ export declare class StereoWidener extends MidSideEffect<StereoWidenerOptions> {
|
|
|
40
40
|
* Side multiplier
|
|
41
41
|
*/
|
|
42
42
|
private _sideMult;
|
|
43
|
+
/**
|
|
44
|
+
* A constant source to get the value of 1 for the subtract node
|
|
45
|
+
*/
|
|
46
|
+
private _constant;
|
|
43
47
|
/**
|
|
44
48
|
* @param width The stereo width. A width of 0 is mono and 1 is stereo. 0.5 is no change.
|
|
45
49
|
*/
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { connect } from "../core/context/ToneAudioNode.js";
|
|
2
1
|
import { optionsFromArguments } from "../core/util/Defaults.js";
|
|
3
2
|
import { readOnly } from "../core/util/Interface.js";
|
|
4
3
|
import { MidSideEffect, } from "../effect/MidSideEffect.js";
|
|
5
4
|
import { Multiply } from "../signal/Multiply.js";
|
|
6
5
|
import { Signal } from "../signal/Signal.js";
|
|
7
6
|
import { Subtract } from "../signal/Subtract.js";
|
|
7
|
+
import { ToneConstantSource } from "../signal/ToneConstantSource.js";
|
|
8
8
|
/**
|
|
9
9
|
* Applies a width factor to the mid/side separation.
|
|
10
10
|
* 0 is all mid and 1 is all side.
|
|
@@ -39,7 +39,11 @@ export class StereoWidener extends MidSideEffect {
|
|
|
39
39
|
this.connectEffectMid(this._midMult);
|
|
40
40
|
this._oneMinusWidth = new Subtract({ context: this.context });
|
|
41
41
|
this._oneMinusWidth.connect(this._twoTimesWidthMid);
|
|
42
|
-
|
|
42
|
+
this._constant = new ToneConstantSource({
|
|
43
|
+
context: this.context,
|
|
44
|
+
offset: 1,
|
|
45
|
+
}).start();
|
|
46
|
+
this._constant.connect(this._oneMinusWidth);
|
|
43
47
|
this.width.connect(this._oneMinusWidth.subtrahend);
|
|
44
48
|
this._sideMult = new Multiply({ context: this.context });
|
|
45
49
|
this.width.connect(this._twoTimesWidthSide);
|
|
@@ -59,6 +63,7 @@ export class StereoWidener extends MidSideEffect {
|
|
|
59
63
|
this._twoTimesWidthMid.dispose();
|
|
60
64
|
this._twoTimesWidthSide.dispose();
|
|
61
65
|
this._oneMinusWidth.dispose();
|
|
66
|
+
this._constant.dispose();
|
|
62
67
|
return this;
|
|
63
68
|
}
|
|
64
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StereoWidener.js","sourceRoot":"","sources":["../../../Tone/effect/StereoWidener.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"StereoWidener.js","sourceRoot":"","sources":["../../../Tone/effect/StereoWidener.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Degrees, Frequency, NormalRange
|
|
1
|
+
import { Degrees, Frequency, NormalRange } from "../core/type/Units.js";
|
|
2
2
|
import { Signal } from "../signal/Signal.js";
|
|
3
3
|
import { ToneOscillatorType } from "../source/oscillator/OscillatorInterface.js";
|
|
4
|
-
import {
|
|
5
|
-
export interface TremoloOptions extends
|
|
4
|
+
import { LFOStereoEffect, LFOStereoEffectOptions } from "./LFOStereoEffect.js";
|
|
5
|
+
export interface TremoloOptions extends LFOStereoEffectOptions {
|
|
6
6
|
frequency: Frequency;
|
|
7
7
|
type: ToneOscillatorType;
|
|
8
8
|
depth: NormalRange;
|
|
@@ -20,16 +20,8 @@ export interface TremoloOptions extends StereoEffectOptions {
|
|
|
20
20
|
*
|
|
21
21
|
* @category Effect
|
|
22
22
|
*/
|
|
23
|
-
export declare class Tremolo extends
|
|
23
|
+
export declare class Tremolo extends LFOStereoEffect<TremoloOptions> {
|
|
24
24
|
readonly name: string;
|
|
25
|
-
/**
|
|
26
|
-
* The tremolo LFO in the left channel
|
|
27
|
-
*/
|
|
28
|
-
private _lfoL;
|
|
29
|
-
/**
|
|
30
|
-
* The tremolo LFO in the left channel
|
|
31
|
-
*/
|
|
32
|
-
private _lfoR;
|
|
33
25
|
/**
|
|
34
26
|
* Where the gain is multiplied
|
|
35
27
|
*/
|
|
@@ -38,10 +30,6 @@ export declare class Tremolo extends StereoEffect<TremoloOptions> {
|
|
|
38
30
|
* Where the gain is multiplied
|
|
39
31
|
*/
|
|
40
32
|
private _amplitudeR;
|
|
41
|
-
/**
|
|
42
|
-
* The frequency of the tremolo.
|
|
43
|
-
*/
|
|
44
|
-
readonly frequency: Signal<"frequency">;
|
|
45
33
|
/**
|
|
46
34
|
* The depth of the effect. A depth of 0, has no effect
|
|
47
35
|
* on the amplitude, and a depth of 1 makes the amplitude
|
|
@@ -55,22 +43,6 @@ export declare class Tremolo extends StereoEffect<TremoloOptions> {
|
|
|
55
43
|
constructor(frequency?: Frequency, depth?: NormalRange);
|
|
56
44
|
constructor(options?: Partial<TremoloOptions>);
|
|
57
45
|
static getDefaults(): TremoloOptions;
|
|
58
|
-
/**
|
|
59
|
-
* Start the tremolo.
|
|
60
|
-
*/
|
|
61
|
-
start(time?: Time): this;
|
|
62
|
-
/**
|
|
63
|
-
* Stop the tremolo.
|
|
64
|
-
*/
|
|
65
|
-
stop(time?: Time): this;
|
|
66
|
-
/**
|
|
67
|
-
* Sync the effect to the transport.
|
|
68
|
-
*/
|
|
69
|
-
sync(): this;
|
|
70
|
-
/**
|
|
71
|
-
* Unsync the filter from the transport
|
|
72
|
-
*/
|
|
73
|
-
unsync(): this;
|
|
74
46
|
/**
|
|
75
47
|
* The oscillator type.
|
|
76
48
|
*/
|