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.
Files changed (53) hide show
  1. package/Tone/core/context/OnRunning.test.ts +63 -0
  2. package/Tone/core/context/OnRunning.ts +26 -0
  3. package/Tone/core/context/ToneWithContext.test.ts +82 -0
  4. package/Tone/core/context/ToneWithContext.ts +24 -0
  5. package/Tone/core/util/Interface.ts +8 -2
  6. package/Tone/effect/FrequencyShifter.ts +5 -3
  7. package/Tone/effect/LFOStereoEffect.test.ts +85 -0
  8. package/Tone/effect/LFOStereoEffect.ts +136 -0
  9. package/Tone/effect/Phaser.ts +9 -45
  10. package/Tone/effect/PitchShift.ts +8 -5
  11. package/Tone/effect/StereoWidener.ts +12 -2
  12. package/Tone/effect/Tremolo.test.ts +0 -24
  13. package/Tone/effect/Tremolo.ts +13 -80
  14. package/Tone/effect/Vibrato.ts +5 -3
  15. package/Tone/signal/ToneConstantSource.ts +7 -19
  16. package/Tone/signal/WaveShaper.ts +15 -8
  17. package/Tone/version.ts +1 -1
  18. package/build/Tone.js +1 -1
  19. package/build/Tone.js.map +1 -1
  20. package/build/esm/core/context/OnRunning.d.ts +8 -0
  21. package/build/esm/core/context/OnRunning.js +21 -0
  22. package/build/esm/core/context/OnRunning.js.map +1 -0
  23. package/build/esm/core/context/ToneWithContext.d.ts +14 -0
  24. package/build/esm/core/context/ToneWithContext.js +18 -0
  25. package/build/esm/core/context/ToneWithContext.js.map +1 -1
  26. package/build/esm/core/util/Interface.d.ts +2 -2
  27. package/build/esm/core/util/Interface.js.map +1 -1
  28. package/build/esm/effect/FrequencyShifter.js +5 -3
  29. package/build/esm/effect/FrequencyShifter.js.map +1 -1
  30. package/build/esm/effect/LFOStereoEffect.d.ts +53 -0
  31. package/build/esm/effect/LFOStereoEffect.js +96 -0
  32. package/build/esm/effect/LFOStereoEffect.js.map +1 -0
  33. package/build/esm/effect/Phaser.d.ts +3 -16
  34. package/build/esm/effect/Phaser.js +6 -28
  35. package/build/esm/effect/Phaser.js.map +1 -1
  36. package/build/esm/effect/PitchShift.js +7 -5
  37. package/build/esm/effect/PitchShift.js.map +1 -1
  38. package/build/esm/effect/StereoWidener.d.ts +4 -0
  39. package/build/esm/effect/StereoWidener.js +7 -2
  40. package/build/esm/effect/StereoWidener.js.map +1 -1
  41. package/build/esm/effect/Tremolo.d.ts +4 -32
  42. package/build/esm/effect/Tremolo.js +9 -59
  43. package/build/esm/effect/Tremolo.js.map +1 -1
  44. package/build/esm/effect/Vibrato.js +4 -3
  45. package/build/esm/effect/Vibrato.js.map +1 -1
  46. package/build/esm/signal/ToneConstantSource.d.ts +1 -1
  47. package/build/esm/signal/ToneConstantSource.js +16 -27
  48. package/build/esm/signal/ToneConstantSource.js.map +1 -1
  49. package/build/esm/signal/WaveShaper.d.ts +5 -0
  50. package/build/esm/signal/WaveShaper.js +15 -7
  51. package/build/esm/signal/WaveShaper.js.map +1 -1
  52. package/build/esm/version.js +1 -1
  53. 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":"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"}
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: object, property: string | string[]): void;
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: object, property: string | string[]): void;
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,CAAC,MAAc,EAAE,QAA2B;IACnE,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,CAAC,MAAc,EAAE,QAA2B;IACnE,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"}
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
- const now = this.immediate();
67
- this._sine.start(now);
68
- this._cosine.start(now);
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 { StereoEffect, StereoEffectOptions } from "./StereoEffect.js";
4
- export interface PhaserOptions extends StereoEffectOptions {
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 StereoEffect<PhaserOptions> {
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 { LFO } from "../source/oscillator/LFO.js";
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 StereoEffect {
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._lfoL = new LFO({
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
- // start the lfo
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(StereoEffect.getDefaults(), {
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":"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"}
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
- connect(this.context.getConstant(1), this._oneMinusWidth);
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":"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"}
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, Time } from "../core/type/Units.js";
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 { StereoEffect, StereoEffectOptions } from "./StereoEffect.js";
5
- export interface TremoloOptions extends StereoEffectOptions {
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 StereoEffect<TremoloOptions> {
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
  */