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
|
@@ -2,8 +2,7 @@ import { Gain } from "../core/context/Gain.js";
|
|
|
2
2
|
import { optionsFromArguments } from "../core/util/Defaults.js";
|
|
3
3
|
import { readOnly } from "../core/util/Interface.js";
|
|
4
4
|
import { Signal } from "../signal/Signal.js";
|
|
5
|
-
import {
|
|
6
|
-
import { StereoEffect } from "./StereoEffect.js";
|
|
5
|
+
import { LFOStereoEffect } from "./LFOStereoEffect.js";
|
|
7
6
|
/**
|
|
8
7
|
* Tremolo modulates the amplitude of an incoming signal using an {@link LFO}.
|
|
9
8
|
* The effect is a stereo effect where the modulation phase is inverted in each channel.
|
|
@@ -16,7 +15,7 @@ import { StereoEffect } from "./StereoEffect.js";
|
|
|
16
15
|
*
|
|
17
16
|
* @category Effect
|
|
18
17
|
*/
|
|
19
|
-
export class Tremolo extends
|
|
18
|
+
export class Tremolo extends LFOStereoEffect {
|
|
20
19
|
constructor() {
|
|
21
20
|
const options = optionsFromArguments(Tremolo.getDefaults(), arguments, [
|
|
22
21
|
"frequency",
|
|
@@ -24,25 +23,14 @@ export class Tremolo extends StereoEffect {
|
|
|
24
23
|
]);
|
|
25
24
|
super(options);
|
|
26
25
|
this.name = "Tremolo";
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
this._lfoR = new LFO({
|
|
34
|
-
context: this.context,
|
|
35
|
-
type: options.type,
|
|
36
|
-
min: 1,
|
|
37
|
-
max: 0,
|
|
38
|
-
});
|
|
26
|
+
// invert the lfo min/max so it moves from full gain to 0 gain
|
|
27
|
+
this._lfoL.min = 1;
|
|
28
|
+
this._lfoL.max = 0;
|
|
29
|
+
this._lfoR.min = 1;
|
|
30
|
+
this._lfoR.max = 0;
|
|
31
|
+
this.type = options.type;
|
|
39
32
|
this._amplitudeL = new Gain({ context: this.context });
|
|
40
33
|
this._amplitudeR = new Gain({ context: this.context });
|
|
41
|
-
this.frequency = new Signal({
|
|
42
|
-
context: this.context,
|
|
43
|
-
value: options.frequency,
|
|
44
|
-
units: "frequency",
|
|
45
|
-
});
|
|
46
34
|
this.depth = new Signal({
|
|
47
35
|
context: this.context,
|
|
48
36
|
value: options.depth,
|
|
@@ -53,52 +41,17 @@ export class Tremolo extends StereoEffect {
|
|
|
53
41
|
this.connectEffectRight(this._amplitudeR);
|
|
54
42
|
this._lfoL.connect(this._amplitudeL.gain);
|
|
55
43
|
this._lfoR.connect(this._amplitudeR.gain);
|
|
56
|
-
this.frequency.fan(this._lfoL.frequency, this._lfoR.frequency);
|
|
57
44
|
this.depth.fan(this._lfoR.amplitude, this._lfoL.amplitude);
|
|
58
45
|
this.spread = options.spread;
|
|
59
46
|
}
|
|
60
47
|
static getDefaults() {
|
|
61
|
-
return Object.assign(
|
|
48
|
+
return Object.assign(LFOStereoEffect.getDefaults(), {
|
|
62
49
|
frequency: 10,
|
|
63
50
|
type: "sine",
|
|
64
51
|
depth: 0.5,
|
|
65
52
|
spread: 180,
|
|
66
53
|
});
|
|
67
54
|
}
|
|
68
|
-
/**
|
|
69
|
-
* Start the tremolo.
|
|
70
|
-
*/
|
|
71
|
-
start(time) {
|
|
72
|
-
this._lfoL.start(time);
|
|
73
|
-
this._lfoR.start(time);
|
|
74
|
-
return this;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Stop the tremolo.
|
|
78
|
-
*/
|
|
79
|
-
stop(time) {
|
|
80
|
-
this._lfoL.stop(time);
|
|
81
|
-
this._lfoR.stop(time);
|
|
82
|
-
return this;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Sync the effect to the transport.
|
|
86
|
-
*/
|
|
87
|
-
sync() {
|
|
88
|
-
this._lfoL.sync();
|
|
89
|
-
this._lfoR.sync();
|
|
90
|
-
this.context.transport.syncSignal(this.frequency);
|
|
91
|
-
return this;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Unsync the filter from the transport
|
|
95
|
-
*/
|
|
96
|
-
unsync() {
|
|
97
|
-
this._lfoL.unsync();
|
|
98
|
-
this._lfoR.unsync();
|
|
99
|
-
this.context.transport.unsyncSignal(this.frequency);
|
|
100
|
-
return this;
|
|
101
|
-
}
|
|
102
55
|
/**
|
|
103
56
|
* The oscillator type.
|
|
104
57
|
*/
|
|
@@ -122,11 +75,8 @@ export class Tremolo extends StereoEffect {
|
|
|
122
75
|
}
|
|
123
76
|
dispose() {
|
|
124
77
|
super.dispose();
|
|
125
|
-
this._lfoL.dispose();
|
|
126
|
-
this._lfoR.dispose();
|
|
127
78
|
this._amplitudeL.dispose();
|
|
128
79
|
this._amplitudeR.dispose();
|
|
129
|
-
this.frequency.dispose();
|
|
130
80
|
this.depth.dispose();
|
|
131
81
|
return this;
|
|
132
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tremolo.js","sourceRoot":"","sources":["../../../Tone/effect/Tremolo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAE/C,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":"Tremolo.js","sourceRoot":"","sources":["../../../Tone/effect/Tremolo.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,14 +28,15 @@ export class Vibrato extends Effect {
|
|
|
28
28
|
max: options.maxDelay,
|
|
29
29
|
frequency: options.frequency,
|
|
30
30
|
phase: -90, // offset the phase so the resting position is in the center
|
|
31
|
-
})
|
|
32
|
-
.start()
|
|
33
|
-
.connect(this._delayNode.delayTime);
|
|
31
|
+
}).connect(this._delayNode.delayTime);
|
|
34
32
|
this.frequency = this._lfo.frequency;
|
|
35
33
|
this.depth = this._lfo.amplitude;
|
|
36
34
|
this.depth.value = options.depth;
|
|
37
35
|
readOnly(this, ["frequency", "depth"]);
|
|
38
36
|
this.effectSend.chain(this._delayNode, this.effectReturn);
|
|
37
|
+
this._onContextRunning(() => {
|
|
38
|
+
this._lfo.start();
|
|
39
|
+
});
|
|
39
40
|
}
|
|
40
41
|
static getDefaults() {
|
|
41
42
|
return Object.assign(Effect.getDefaults(), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Vibrato.js","sourceRoot":"","sources":["../../../Tone/effect/Vibrato.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAGjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAElD,OAAO,EAAE,MAAM,EAAiB,MAAM,aAAa,CAAC;AAQpD;;;;GAIG;AACH,MAAM,OAAO,OAAQ,SAAQ,MAAsB;IA4BlD;QACC,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE;YACtE,WAAW;YACX,OAAO;SACP,CAAC,CAAC;QACH,KAAK,CAAC,OAAO,CAAC,CAAC;QAhCP,SAAI,GAAW,SAAS,CAAC;QAkCjC,IAAI,CAAC,UAAU,GAAG,IAAI,KAAK,CAAC;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,OAAO,CAAC,QAAQ;YACrB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,KAAK,EAAE,CAAC,EAAE,EAAE,4DAA4D;SACxE,CAAC
|
|
1
|
+
{"version":3,"file":"Vibrato.js","sourceRoot":"","sources":["../../../Tone/effect/Vibrato.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAGjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAElD,OAAO,EAAE,MAAM,EAAiB,MAAM,aAAa,CAAC;AAQpD;;;;GAIG;AACH,MAAM,OAAO,OAAQ,SAAQ,MAAsB;IA4BlD;QACC,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE;YACtE,WAAW;YACX,OAAO;SACP,CAAC,CAAC;QACH,KAAK,CAAC,OAAO,CAAC,CAAC;QAhCP,SAAI,GAAW,SAAS,CAAC;QAkCjC,IAAI,CAAC,UAAU,GAAG,IAAI,KAAK,CAAC;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,OAAO,CAAC,QAAQ;YACrB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,KAAK,EAAE,CAAC,EAAE,EAAE,4DAA4D;SACxE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QAEjC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QACjC,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAE1D,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,WAAW;QACjB,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE;YAC1C,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC;YACZ,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,MAAe;SACrB,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACvB,CAAC;IACD,IAAI,IAAI,CAAC,IAAI;QACZ,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,OAAO;QACN,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACb,CAAC;CACD"}
|
|
@@ -32,7 +32,7 @@ export declare class ToneConstantSource<TypeName extends UnitName = "number"> ex
|
|
|
32
32
|
/**
|
|
33
33
|
* Once the context is started, kick off source.
|
|
34
34
|
*/
|
|
35
|
-
private
|
|
35
|
+
private _contextStarted;
|
|
36
36
|
/**
|
|
37
37
|
* Start the source node at the given time
|
|
38
38
|
* @param time When to start the source
|
|
@@ -9,40 +9,18 @@ import { OneShotSource, } from "../source/OneShotSource.js";
|
|
|
9
9
|
*/
|
|
10
10
|
export class ToneConstantSource extends OneShotSource {
|
|
11
11
|
constructor() {
|
|
12
|
-
var _a;
|
|
13
12
|
const options = optionsFromArguments(ToneConstantSource.getDefaults(), arguments, ["offset"]);
|
|
14
13
|
super(options);
|
|
15
14
|
this.name = "ToneConstantSource";
|
|
16
|
-
|
|
17
|
-
* Once the context is started, kick off source.
|
|
18
|
-
*/
|
|
19
|
-
this._contextStarted = (state) => {
|
|
20
|
-
if (state !== "running") {
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
this._source = this.context.createConstantSource();
|
|
24
|
-
connect(this._source, this._gainNode);
|
|
25
|
-
this.offset.setParam(this._source.offset);
|
|
26
|
-
if (this.state === "started") {
|
|
27
|
-
this._source.start(0);
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
const isSuspended = !this.context.isOffline && this.context.state !== "running";
|
|
31
|
-
if (!isSuspended) {
|
|
32
|
-
this._source = this.context.createConstantSource();
|
|
33
|
-
connect(this._source, this._gainNode);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
this.context.on("statechange", this._contextStarted);
|
|
37
|
-
}
|
|
15
|
+
this._onContextRunning(() => this._contextStarted());
|
|
38
16
|
this.offset = new Param({
|
|
39
17
|
context: this.context,
|
|
40
18
|
convert: options.convert,
|
|
41
|
-
param:
|
|
19
|
+
param: !this._source
|
|
42
20
|
? // placeholder param until the context is started
|
|
43
21
|
this.context.createGain().gain
|
|
44
|
-
:
|
|
45
|
-
swappable:
|
|
22
|
+
: this._source.offset,
|
|
23
|
+
swappable: !this._source,
|
|
46
24
|
units: options.units,
|
|
47
25
|
value: options.offset,
|
|
48
26
|
minValue: options.minValue,
|
|
@@ -56,6 +34,18 @@ export class ToneConstantSource extends OneShotSource {
|
|
|
56
34
|
units: "number",
|
|
57
35
|
});
|
|
58
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Once the context is started, kick off source.
|
|
39
|
+
*/
|
|
40
|
+
_contextStarted() {
|
|
41
|
+
var _a;
|
|
42
|
+
this._source = this.context.createConstantSource();
|
|
43
|
+
connect(this._source, this._gainNode);
|
|
44
|
+
(_a = this.offset) === null || _a === void 0 ? void 0 : _a.setParam(this._source.offset);
|
|
45
|
+
if (this.state === "started") {
|
|
46
|
+
this._source.start(0);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
59
49
|
/**
|
|
60
50
|
* Start the source node at the given time
|
|
61
51
|
* @param time When to start the source
|
|
@@ -83,7 +73,6 @@ export class ToneConstantSource extends OneShotSource {
|
|
|
83
73
|
}
|
|
84
74
|
(_a = this._source) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
85
75
|
this.offset.dispose();
|
|
86
|
-
this.context.off("statechange", this._contextStarted);
|
|
87
76
|
return this;
|
|
88
77
|
}
|
|
89
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToneConstantSource.js","sourceRoot":"","sources":["../../../Tone/signal/ToneConstantSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAE3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EACN,aAAa,GAEb,MAAM,4BAA4B,CAAC;AAWpC;;;;GAIG;AACH,MAAM,OAAO,kBAEX,SAAQ,aAAkD;IAkB3D
|
|
1
|
+
{"version":3,"file":"ToneConstantSource.js","sourceRoot":"","sources":["../../../Tone/signal/ToneConstantSource.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,6 +47,11 @@ export declare class WaveShaper extends SignalOperator<WaveShaperOptions> {
|
|
|
47
47
|
constructor(mapping?: WaveShaperMapping, length?: number);
|
|
48
48
|
constructor(options?: Partial<WaveShaperOptions>);
|
|
49
49
|
static getDefaults(): WaveShaperOptions;
|
|
50
|
+
/**
|
|
51
|
+
* Set the curve for the first time. This is run only after the audio context is
|
|
52
|
+
* running to avoid any context warnings.
|
|
53
|
+
*/
|
|
54
|
+
private initCurve;
|
|
50
55
|
/**
|
|
51
56
|
* Uses a mapping function to set the value of the curve.
|
|
52
57
|
* @param mapping The function used to define the values.
|
|
@@ -31,19 +31,27 @@ export class WaveShaper extends SignalOperator {
|
|
|
31
31
|
* The output from the waveshaper node
|
|
32
32
|
*/
|
|
33
33
|
this.output = this._shaper;
|
|
34
|
-
|
|
35
|
-
options.mapping
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
else if (isFunction(options.mapping)) {
|
|
39
|
-
this.setMap(options.mapping, options.length);
|
|
40
|
-
}
|
|
34
|
+
this._onContextRunning(() => {
|
|
35
|
+
this.initCurve(options.mapping, options.length);
|
|
36
|
+
});
|
|
41
37
|
}
|
|
42
38
|
static getDefaults() {
|
|
43
39
|
return Object.assign(Signal.getDefaults(), {
|
|
44
40
|
length: 1024,
|
|
45
41
|
});
|
|
46
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Set the curve for the first time. This is run only after the audio context is
|
|
45
|
+
* running to avoid any context warnings.
|
|
46
|
+
*/
|
|
47
|
+
initCurve(mapping, length) {
|
|
48
|
+
if (isArray(mapping) || mapping instanceof Float32Array) {
|
|
49
|
+
this.curve = Float32Array.from(mapping);
|
|
50
|
+
}
|
|
51
|
+
else if (isFunction(mapping)) {
|
|
52
|
+
this.setMap(mapping, length);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
47
55
|
/**
|
|
48
56
|
* Uses a mapping function to set the value of the curve.
|
|
49
57
|
* @param mapping The function used to define the values.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WaveShaper.js","sourceRoot":"","sources":["../../../Tone/signal/WaveShaper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAYrD;;;;;;;;;;GAUG;AACH,MAAM,OAAO,UAAW,SAAQ,cAAiC;IAgChE;QACC,MAAM,OAAO,GAAG,oBAAoB,CACnC,UAAU,CAAC,WAAW,EAAE,EACxB,SAAS,EACT,CAAC,SAAS,EAAE,QAAQ,CAAC,CACrB,CAAC;QACF,KAAK,CAAC,OAAO,CAAC,CAAC;QArCP,SAAI,GAAW,YAAY,CAAC;QAErC;;WAEG;QACK,YAAO,GAAmB,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAElE;;WAEG;QACH,UAAK,GAAG,IAAI,CAAC,OAAO,CAAC;QAErB;;WAEG;QACH,WAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAwBrB,
|
|
1
|
+
{"version":3,"file":"WaveShaper.js","sourceRoot":"","sources":["../../../Tone/signal/WaveShaper.ts"],"names":[],"mappings":"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"}
|
package/build/esm/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = "15.5.
|
|
1
|
+
export const version = "15.5.2";
|
|
2
2
|
//# sourceMappingURL=version.js.map
|