@fluex/fluexgl-dsp 0.4.7 → 0.4.8
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/README.md +7 -7
- package/lib/dist/console-codes.d.ts +2 -1
- package/lib/dist/console-codes.d.ts.map +1 -1
- package/lib/dist/console-codes.js +1 -0
- package/lib/dist/core/classes/AudioClip.d.ts +26 -17
- package/lib/dist/core/classes/AudioClip.d.ts.map +1 -1
- package/lib/dist/core/classes/AudioClip.js +124 -51
- package/lib/dist/core/classes/AudioClipPlayer.d.ts +8 -8
- package/lib/dist/core/classes/AudioClipPlayer.d.ts.map +1 -1
- package/lib/dist/core/classes/AudioClipPlayer.js +22 -24
- package/lib/dist/core/classes/AudioDevice.d.ts +46 -5
- package/lib/dist/core/classes/AudioDevice.d.ts.map +1 -1
- package/lib/dist/core/classes/AudioDevice.js +47 -6
- package/lib/dist/core/classes/Channel.d.ts +20 -20
- package/lib/dist/core/classes/Channel.d.ts.map +1 -1
- package/lib/dist/core/classes/Channel.js +42 -42
- package/lib/dist/core/classes/DpsPipeline.d.ts +6 -6
- package/lib/dist/core/classes/DpsPipeline.d.ts.map +1 -1
- package/lib/dist/core/classes/DpsPipeline.js +18 -18
- package/lib/dist/core/classes/Effector.d.ts +5 -5
- package/lib/dist/core/classes/Effector.d.ts.map +1 -1
- package/lib/dist/core/classes/Effector.js +8 -8
- package/lib/dist/core/classes/Master.d.ts +6 -6
- package/lib/dist/core/classes/Master.d.ts.map +1 -1
- package/lib/dist/core/classes/Master.js +18 -18
- package/lib/dist/effects/classes/Analyser.d.ts +6 -6
- package/lib/dist/effects/classes/Analyser.d.ts.map +1 -1
- package/lib/dist/effects/classes/Analyser.js +7 -7
- package/lib/dist/effects/classes/Chorus.d.ts +7 -7
- package/lib/dist/effects/classes/Chorus.d.ts.map +1 -1
- package/lib/dist/effects/classes/Chorus.js +25 -25
- package/lib/dist/effects/classes/Distortion.d.ts +1 -1
- package/lib/dist/effects/classes/Distortion.d.ts.map +1 -1
- package/lib/dist/effects/classes/Distortion.js +1 -1
- package/lib/dist/effects/classes/Reverb.d.ts +32 -0
- package/lib/dist/effects/classes/Reverb.d.ts.map +1 -0
- package/lib/dist/effects/classes/Reverb.js +61 -0
- package/lib/dist/effects/classes/clips/HardClip.d.ts +5 -5
- package/lib/dist/effects/classes/clips/HardClip.d.ts.map +1 -1
- package/lib/dist/effects/classes/clips/HardClip.js +14 -14
- package/lib/dist/effects/classes/clips/SoftClip.d.ts +4 -4
- package/lib/dist/effects/classes/clips/SoftClip.d.ts.map +1 -1
- package/lib/dist/effects/classes/clips/SoftClip.js +13 -13
- package/lib/dist/effects/classes/filters/HighPassFilter.d.ts +5 -5
- package/lib/dist/effects/classes/filters/HighPassFilter.d.ts.map +1 -1
- package/lib/dist/effects/classes/filters/HighPassFilter.js +16 -16
- package/lib/dist/effects/classes/filters/LowPassFilter.d.ts +5 -5
- package/lib/dist/effects/classes/filters/LowPassFilter.d.ts.map +1 -1
- package/lib/dist/effects/classes/filters/LowPassFilter.js +17 -17
- package/lib/dist/effects/classes/filters/NotchFilter.d.ts +5 -5
- package/lib/dist/effects/classes/filters/NotchFilter.d.ts.map +1 -1
- package/lib/dist/effects/classes/filters/NotchFilter.js +16 -16
- package/lib/dist/effects/exports.d.ts +1 -5
- package/lib/dist/effects/exports.d.ts.map +1 -1
- package/lib/dist/effects/exports.js +1 -5
- package/lib/dist/index.d.ts +2 -2
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +2 -2
- package/lib/dist/typings.d.ts +11 -0
- package/lib/dist/typings.d.ts.map +1 -1
- package/lib/dist/utilities/debugger.d.ts +4 -4
- package/lib/dist/utilities/debugger.js +8 -8
- package/lib/dist/utilities/helpers.d.ts +13 -13
- package/lib/dist/utilities/helpers.d.ts.map +1 -1
- package/lib/dist/utilities/helpers.js +45 -59
- package/lib/dist/utilities/web-assembly.js +1 -1
- package/lib/src/console-codes.ts +2 -1
- package/lib/src/core/classes/AudioClip.ts +154 -60
- package/lib/src/core/classes/AudioClipPlayer.ts +22 -24
- package/lib/src/core/classes/AudioDevice.ts +49 -6
- package/lib/src/core/classes/Channel.ts +42 -42
- package/lib/src/core/classes/DpsPipeline.ts +19 -19
- package/lib/src/core/classes/Effector.ts +9 -9
- package/lib/src/core/classes/Master.ts +18 -18
- package/lib/src/effects/classes/Analyser.ts +7 -7
- package/lib/src/effects/classes/Chorus.ts +25 -25
- package/lib/src/effects/classes/Distortion.ts +1 -1
- package/lib/src/effects/classes/Reverb.ts +81 -0
- package/lib/src/effects/classes/clips/HardClip.ts +14 -14
- package/lib/src/effects/classes/clips/SoftClip.ts +13 -13
- package/lib/src/effects/classes/filters/HighPassFilter.ts +16 -16
- package/lib/src/effects/classes/filters/LowPassFilter.ts +17 -17
- package/lib/src/effects/classes/filters/NotchFilter.ts +16 -16
- package/lib/src/effects/exports.ts +1 -6
- package/lib/src/index.ts +11 -15
- package/lib/src/typings.ts +13 -0
- package/lib/src/utilities/debugger.ts +4 -4
- package/lib/src/utilities/helpers.ts +47 -60
- package/lib/src/utilities/web-assembly.ts +1 -1
- package/package.json +3 -2
- package/lib/src/effects/classes/reverbs/ChamberReverb.ts +0 -1
- package/lib/src/effects/classes/reverbs/ConvolverReverb.ts +0 -1
- package/lib/src/effects/classes/reverbs/GenericReverb.ts +0 -1
- package/lib/src/effects/classes/reverbs/HallReverb.ts +0 -1
- package/lib/src/effects/classes/reverbs/RoomReverb.ts +0 -1
|
@@ -21,7 +21,7 @@ export class Master {
|
|
|
21
21
|
this.input.connect(this.gainNode);
|
|
22
22
|
this.gainNode.connect(this.analyserNode);
|
|
23
23
|
this.analyserNode.connect(this.context.destination);
|
|
24
|
-
this.audioClipPlayer.
|
|
24
|
+
this.audioClipPlayer.send(this);
|
|
25
25
|
}
|
|
26
26
|
disconnectAudioNodes() {
|
|
27
27
|
if (this.input)
|
|
@@ -52,21 +52,21 @@ export class Master {
|
|
|
52
52
|
this.gainNode.connect(this.analyserNode);
|
|
53
53
|
this.analyserNode.connect(this.context.destination);
|
|
54
54
|
}
|
|
55
|
-
|
|
55
|
+
attachEffect(effect) {
|
|
56
56
|
if (this.effects.includes(effect))
|
|
57
|
-
return Debug.
|
|
58
|
-
"Call .
|
|
57
|
+
return Debug.error("Could not attach the effect because it is already part of this master channel.", [
|
|
58
|
+
"Call .detachEffect([effect Effector]) before attaching the effect."
|
|
59
59
|
], ErrorCodes.EFFECT_ALREADY_ATTACHED);
|
|
60
60
|
if (!this.context)
|
|
61
61
|
return this.rebuildEffectChain();
|
|
62
62
|
this.effects.push(effect);
|
|
63
|
-
effect.
|
|
63
|
+
effect.initializeOnAttachment(this.context);
|
|
64
64
|
this.rebuildEffectChain();
|
|
65
65
|
}
|
|
66
|
-
|
|
66
|
+
detachEffect(effect) {
|
|
67
67
|
if (!this.effects.includes(effect))
|
|
68
|
-
return Debug.
|
|
69
|
-
"Call .
|
|
68
|
+
return Debug.error("Could not detach the effect because it is not part of this master channel.", [
|
|
69
|
+
"Call .attachEffect([effect Effector]) before detaching the effect."
|
|
70
70
|
], ErrorCodes.EFFECT_NOT_FOUND);
|
|
71
71
|
const self = this;
|
|
72
72
|
this.effects.forEach(function (_effect, index) {
|
|
@@ -77,20 +77,20 @@ export class Master {
|
|
|
77
77
|
});
|
|
78
78
|
this.rebuildEffectChain();
|
|
79
79
|
}
|
|
80
|
-
|
|
80
|
+
attachChannel(channel) {
|
|
81
81
|
if (this.channels.includes(channel))
|
|
82
|
-
return Debug.
|
|
83
|
-
"Call .
|
|
82
|
+
return Debug.error("Could not attach the channel because it is already part of this master channel.", [
|
|
83
|
+
"Call .detachChannel([channel Channel]) before attaching the channel."
|
|
84
84
|
], ErrorCodes.CHANNEL_ALREADY_ATTACHED);
|
|
85
85
|
this.channels.push(channel);
|
|
86
86
|
if (channel.output && this.input)
|
|
87
87
|
channel.output.connect(this.input);
|
|
88
88
|
return;
|
|
89
89
|
}
|
|
90
|
-
|
|
90
|
+
detachChannel(channel) {
|
|
91
91
|
if (!this.channels.includes(channel))
|
|
92
|
-
return Debug.
|
|
93
|
-
"Call .
|
|
92
|
+
return Debug.error("Could not detach the channel because it is not part of this master channel.", [
|
|
93
|
+
"Call .attachChannel([channel Channel]) before detaching the channel."
|
|
94
94
|
], ErrorCodes.CHANNEL_NOT_FOUND);
|
|
95
95
|
if (channel.output && this.input)
|
|
96
96
|
channel.output.disconnect(this.input);
|
|
@@ -101,12 +101,12 @@ export class Master {
|
|
|
101
101
|
self.channels.splice(index, 1);
|
|
102
102
|
});
|
|
103
103
|
}
|
|
104
|
-
|
|
104
|
+
hasAudioClipPlayer() {
|
|
105
105
|
return !!this.audioClipPlayer;
|
|
106
106
|
}
|
|
107
|
-
|
|
107
|
+
attachAudioClip(audioClip) {
|
|
108
108
|
if (!this.audioClipPlayer)
|
|
109
|
-
return Debug.
|
|
110
|
-
this.audioClipPlayer.
|
|
109
|
+
return Debug.error("Cannot not link AudioClip to this channel because this channel's AudioClipPlayer is undefined.");
|
|
110
|
+
this.audioClipPlayer.attachAudioClip(audioClip);
|
|
111
111
|
}
|
|
112
112
|
}
|
|
@@ -9,12 +9,12 @@ export declare class Analyser extends Effector {
|
|
|
9
9
|
frequencyUint8ArrayBuffer: Uint8Array<ArrayBuffer>;
|
|
10
10
|
private options;
|
|
11
11
|
constructor(options?: Partial<AnalyserOptions>);
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
initializeOnAttachment(context: AudioContext): Promise<void>;
|
|
13
|
+
setOptions(options: Partial<AnalyserOptions>): void;
|
|
14
|
+
getWaveformFloatData(): Float32Array | null;
|
|
15
|
+
getWaveformByteData(): Uint8Array | null;
|
|
16
|
+
getFrequencyFloatData(): Float32Array | null;
|
|
17
|
+
getFrequencyByteData(): Uint8Array | null;
|
|
18
18
|
private allocateBuffers;
|
|
19
19
|
}
|
|
20
20
|
//# sourceMappingURL=Analyser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Analyser.d.ts","sourceRoot":"","sources":["../../../src/effects/classes/Analyser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAI9C,qBAAa,QAAS,SAAQ,QAAQ;IAE3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAc;IAClC,IAAI,EAAE,MAAM,CAAc;IAE1B,YAAY,EAAE,YAAY,GAAG,IAAI,CAAQ;IAEzC,0BAA0B,4BAAsB;IAChD,wBAAwB,0BAAoB;IAC5C,2BAA2B,4BAAsB;IACjD,yBAAyB,0BAAoB;IAEpD,OAAO,CAAC,OAAO,CAKb;
|
|
1
|
+
{"version":3,"file":"Analyser.d.ts","sourceRoot":"","sources":["../../../src/effects/classes/Analyser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAI9C,qBAAa,QAAS,SAAQ,QAAQ;IAE3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAc;IAClC,IAAI,EAAE,MAAM,CAAc;IAE1B,YAAY,EAAE,YAAY,GAAG,IAAI,CAAQ;IAEzC,0BAA0B,4BAAsB;IAChD,wBAAwB,0BAAoB;IAC5C,2BAA2B,4BAAsB;IACjD,yBAAyB,0BAAoB;IAEpD,OAAO,CAAC,OAAO,CAKb;IAEF,YAAY,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,EAI7C;IAEY,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAOxE;IAEM,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAsBzD;IAEM,oBAAoB,IAAI,YAAY,GAAG,IAAI,CAMjD;IAEM,mBAAmB,IAAI,UAAU,GAAG,IAAI,CAM9C;IAEM,qBAAqB,IAAI,YAAY,GAAG,IAAI,CAMlD;IAEM,oBAAoB,IAAI,UAAU,GAAG,IAAI,CAM/C;IAED,OAAO,CAAC,eAAe;CAS1B"}
|
|
@@ -16,15 +16,15 @@ export class Analyser extends Effector {
|
|
|
16
16
|
constructor(options) {
|
|
17
17
|
super();
|
|
18
18
|
if (options)
|
|
19
|
-
this.
|
|
19
|
+
this.setOptions(options);
|
|
20
20
|
}
|
|
21
|
-
async
|
|
21
|
+
async initializeOnAttachment(context) {
|
|
22
22
|
this.context = context;
|
|
23
23
|
this.analyserNode = new AnalyserNode(context, this.options);
|
|
24
24
|
this.audioWorkletNode = this.analyserNode;
|
|
25
25
|
this.allocateBuffers();
|
|
26
26
|
}
|
|
27
|
-
|
|
27
|
+
setOptions(options) {
|
|
28
28
|
Object.keys(options).forEach((key) => {
|
|
29
29
|
const value = options[key];
|
|
30
30
|
if (typeof value === "undefined")
|
|
@@ -43,25 +43,25 @@ export class Analyser extends Effector {
|
|
|
43
43
|
this.allocateBuffers();
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
-
|
|
46
|
+
getWaveformFloatData() {
|
|
47
47
|
if (!this.analyserNode)
|
|
48
48
|
return null;
|
|
49
49
|
this.analyserNode.getFloatTimeDomainData(this.waveformFloat32ArrayBuffer);
|
|
50
50
|
return this.waveformFloat32ArrayBuffer;
|
|
51
51
|
}
|
|
52
|
-
|
|
52
|
+
getWaveformByteData() {
|
|
53
53
|
if (!this.analyserNode)
|
|
54
54
|
return null;
|
|
55
55
|
this.analyserNode.getByteTimeDomainData(this.waveformUint8ArrayBuffer);
|
|
56
56
|
return this.waveformUint8ArrayBuffer;
|
|
57
57
|
}
|
|
58
|
-
|
|
58
|
+
getFrequencyFloatData() {
|
|
59
59
|
if (!this.analyserNode)
|
|
60
60
|
return null;
|
|
61
61
|
this.analyserNode.getFloatFrequencyData(this.frequencyFloat32ArrayBuffer);
|
|
62
62
|
return this.frequencyFloat32ArrayBuffer;
|
|
63
63
|
}
|
|
64
|
-
|
|
64
|
+
getFrequencyByteData() {
|
|
65
65
|
if (!this.analyserNode)
|
|
66
66
|
return null;
|
|
67
67
|
this.analyserNode.getByteFrequencyData(this.frequencyUint8ArrayBuffer);
|
|
@@ -10,12 +10,12 @@ export declare class Chorus extends Effector {
|
|
|
10
10
|
feedback: number;
|
|
11
11
|
strictMode: StrictMode;
|
|
12
12
|
constructor({ baseDelayMs, depthMs, rateHz, mix, feedback, strictMode }: Partial<ChorusEffectOptions>);
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
13
|
+
initializeOnAttachment(context: AudioContext): Promise<void>;
|
|
14
|
+
returnOptionsAsObject(): ChorusEffectOptions;
|
|
15
|
+
setBaseDelayMs(value: number): boolean;
|
|
16
|
+
setDepthMs(value: number): boolean;
|
|
17
|
+
setRateHz(value: number): boolean;
|
|
18
|
+
setMix(value: number): boolean;
|
|
19
|
+
setFeedback(value: number): boolean;
|
|
20
20
|
}
|
|
21
21
|
//# sourceMappingURL=Chorus.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chorus.d.ts","sourceRoot":"","sources":["../../../src/effects/classes/Chorus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAsD,UAAU,EAAE,MAAM,eAAe,CAAC;AAEpH,qBAAa,MAAO,SAAQ,QAAQ;IAEzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAY;IAChC,IAAI,EAAE,MAAM,CAAY;IAExB,WAAW,EAAE,MAAM,CAAM;IACzB,OAAO,EAAE,MAAM,CAAK;IACpB,MAAM,EAAE,MAAM,CAAO;IACrB,GAAG,EAAE,MAAM,CAAO;IAClB,QAAQ,EAAE,MAAM,CAAO;IACvB,UAAU,EAAE,UAAU,CAAuB;
|
|
1
|
+
{"version":3,"file":"Chorus.d.ts","sourceRoot":"","sources":["../../../src/effects/classes/Chorus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAsD,UAAU,EAAE,MAAM,eAAe,CAAC;AAEpH,qBAAa,MAAO,SAAQ,QAAQ;IAEzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAY;IAChC,IAAI,EAAE,MAAM,CAAY;IAExB,WAAW,EAAE,MAAM,CAAM;IACzB,OAAO,EAAE,MAAM,CAAK;IACpB,MAAM,EAAE,MAAM,CAAO;IACrB,GAAG,EAAE,MAAM,CAAO;IAClB,QAAQ,EAAE,MAAM,CAAO;IACvB,UAAU,EAAE,UAAU,CAAuB;IAEpD,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,mBAAmB,CAAC,EAWpG;IAEY,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAGxE;IAEM,qBAAqB,IAAI,mBAAmB,CASlD;IAEM,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAI5C;IAEM,UAAU,CAAC,KAAK,EAAE,MAAM,WAI9B;IAEM,SAAS,CAAC,KAAK,EAAE,MAAM,WAI7B;IAEM,MAAM,CAAC,KAAK,EAAE,MAAM,WAI1B;IAEM,WAAW,CAAC,KAAK,EAAE,MAAM,WAI/B;CACJ"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { coerceFiniteNumber, sendMessageToWorklet, createAudioWorkletNode } from "../../utilities/helpers";
|
|
2
2
|
import { Effector } from "../../core/classes/Effector";
|
|
3
3
|
import { ChorusMessageCommandId, AudioWorkletProcessorNames, StrictMode } from "../../typings";
|
|
4
4
|
export class Chorus extends Effector {
|
|
@@ -12,19 +12,19 @@ export class Chorus extends Effector {
|
|
|
12
12
|
strictMode = StrictMode.Disabled;
|
|
13
13
|
constructor({ baseDelayMs, depthMs, rateHz, mix, feedback, strictMode }) {
|
|
14
14
|
super();
|
|
15
|
-
this.baseDelayMs = Math.max(0,
|
|
16
|
-
this.depthMs = Math.max(0,
|
|
17
|
-
this.rateHz = Math.max(0,
|
|
18
|
-
this.mix = Math.max(0, Math.min(1,
|
|
19
|
-
this.feedback = Math.max(0, Math.min(1,
|
|
20
|
-
const mode =
|
|
15
|
+
this.baseDelayMs = Math.max(0, coerceFiniteNumber(baseDelayMs, this.baseDelayMs));
|
|
16
|
+
this.depthMs = Math.max(0, coerceFiniteNumber(depthMs, this.depthMs));
|
|
17
|
+
this.rateHz = Math.max(0, coerceFiniteNumber(rateHz, this.rateHz));
|
|
18
|
+
this.mix = Math.max(0, Math.min(1, coerceFiniteNumber(mix, this.mix)));
|
|
19
|
+
this.feedback = Math.max(0, Math.min(1, coerceFiniteNumber(feedback, this.feedback)));
|
|
20
|
+
const mode = coerceFiniteNumber(strictMode, this.strictMode);
|
|
21
21
|
this.strictMode = mode === StrictMode.Enabled ? StrictMode.Enabled : StrictMode.Disabled;
|
|
22
22
|
}
|
|
23
|
-
async
|
|
23
|
+
async initializeOnAttachment(context) {
|
|
24
24
|
this.context = context;
|
|
25
|
-
this.audioWorkletNode =
|
|
25
|
+
this.audioWorkletNode = createAudioWorkletNode(context, AudioWorkletProcessorNames.Chorus, this.returnOptionsAsObject());
|
|
26
26
|
}
|
|
27
|
-
|
|
27
|
+
returnOptionsAsObject() {
|
|
28
28
|
return {
|
|
29
29
|
baseDelayMs: this.baseDelayMs,
|
|
30
30
|
depthMs: this.depthMs,
|
|
@@ -34,29 +34,29 @@ export class Chorus extends Effector {
|
|
|
34
34
|
strictMode: this.strictMode
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
|
-
|
|
38
|
-
value = Math.max(0,
|
|
37
|
+
setBaseDelayMs(value) {
|
|
38
|
+
value = Math.max(0, coerceFiniteNumber(value, this.baseDelayMs));
|
|
39
39
|
this.baseDelayMs = value;
|
|
40
|
-
return
|
|
40
|
+
return sendMessageToWorklet(this.audioWorkletNode, ChorusMessageCommandId.SetBaseDelayMs, value);
|
|
41
41
|
}
|
|
42
|
-
|
|
43
|
-
value = Math.max(0,
|
|
42
|
+
setDepthMs(value) {
|
|
43
|
+
value = Math.max(0, coerceFiniteNumber(value, this.depthMs));
|
|
44
44
|
this.depthMs = value;
|
|
45
|
-
return
|
|
45
|
+
return sendMessageToWorklet(this.audioWorkletNode, ChorusMessageCommandId.SetDepthMs, value);
|
|
46
46
|
}
|
|
47
|
-
|
|
48
|
-
value = Math.max(0,
|
|
47
|
+
setRateHz(value) {
|
|
48
|
+
value = Math.max(0, coerceFiniteNumber(value, this.rateHz));
|
|
49
49
|
this.rateHz = value;
|
|
50
|
-
return
|
|
50
|
+
return sendMessageToWorklet(this.audioWorkletNode, ChorusMessageCommandId.SetRateHz, value);
|
|
51
51
|
}
|
|
52
|
-
|
|
53
|
-
value = Math.max(0, Math.min(1,
|
|
52
|
+
setMix(value) {
|
|
53
|
+
value = Math.max(0, Math.min(1, coerceFiniteNumber(value, this.mix)));
|
|
54
54
|
this.mix = value;
|
|
55
|
-
return
|
|
55
|
+
return sendMessageToWorklet(this.audioWorkletNode, ChorusMessageCommandId.SetMix, value);
|
|
56
56
|
}
|
|
57
|
-
|
|
58
|
-
value = Math.max(0, Math.min(1,
|
|
57
|
+
setFeedback(value) {
|
|
58
|
+
value = Math.max(0, Math.min(1, coerceFiniteNumber(value, this.feedback)));
|
|
59
59
|
this.feedback = value;
|
|
60
|
-
return
|
|
60
|
+
return sendMessageToWorklet(this.audioWorkletNode, ChorusMessageCommandId.SetFeedback, value);
|
|
61
61
|
}
|
|
62
62
|
}
|
|
@@ -2,6 +2,6 @@ import { Effector } from "../../core/classes/Effector";
|
|
|
2
2
|
export declare class Distortion extends Effector {
|
|
3
3
|
name: string;
|
|
4
4
|
constructor();
|
|
5
|
-
|
|
5
|
+
initializeOnAttachment(parentialContext: AudioContext): Promise<void>;
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=Distortion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Distortion.d.ts","sourceRoot":"","sources":["../../../src/effects/classes/Distortion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,qBAAa,UAAW,SAAQ,QAAQ;IAE7B,IAAI,EAAE,MAAM,CAAgB
|
|
1
|
+
{"version":3,"file":"Distortion.d.ts","sourceRoot":"","sources":["../../../src/effects/classes/Distortion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,qBAAa,UAAW,SAAQ,QAAQ;IAE7B,IAAI,EAAE,MAAM,CAAgB;IAEnC,cAEC;IAEY,sBAAsB,CAAC,gBAAgB,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjF;CACJ"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Effector } from "../../core/exports";
|
|
2
|
+
import { StrictMode } from "../../typings";
|
|
3
|
+
export interface ReverbOptions {
|
|
4
|
+
roomSize: number;
|
|
5
|
+
damping: number;
|
|
6
|
+
mix: number;
|
|
7
|
+
stereoSpreadMs: number;
|
|
8
|
+
strictMode: StrictMode;
|
|
9
|
+
}
|
|
10
|
+
export declare enum ReverbMessageCommandId {
|
|
11
|
+
SetRoomSize = 0,
|
|
12
|
+
SetDamping = 1,
|
|
13
|
+
SetMix = 2,
|
|
14
|
+
SetStereoSpreadMs = 3
|
|
15
|
+
}
|
|
16
|
+
export declare class Reverb extends Effector {
|
|
17
|
+
label: string | null;
|
|
18
|
+
name: string;
|
|
19
|
+
roomSize: number;
|
|
20
|
+
damping: number;
|
|
21
|
+
mix: number;
|
|
22
|
+
stereoSpreadMs: number;
|
|
23
|
+
strictMode: StrictMode;
|
|
24
|
+
constructor(options?: Partial<ReverbOptions>);
|
|
25
|
+
initializeOnAttachment(context: AudioContext): Promise<void>;
|
|
26
|
+
returnOptionsAsObject(): ReverbOptions;
|
|
27
|
+
setRoomSize(roomSize: number): boolean;
|
|
28
|
+
setDamping(damping: number): boolean;
|
|
29
|
+
setMix(mix: number): boolean;
|
|
30
|
+
setStereoSpreadMs(stereoSpreadMs: number): boolean;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=Reverb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Reverb.d.ts","sourceRoot":"","sources":["../../../src/effects/classes/Reverb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAA8B,UAAU,EAAE,MAAM,eAAe,CAAC;AAGvE,MAAM,WAAW,aAAa;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;CAC1B;AAED,oBAAY,sBAAsB;IAC9B,WAAW,IAAA;IACX,UAAU,IAAA;IACV,MAAM,IAAA;IACN,iBAAiB,IAAA;CACpB;AAED,qBAAa,MAAO,SAAQ,QAAQ;IAEzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAY;IAChC,IAAI,EAAE,MAAM,CAAY;IAExB,QAAQ,EAAE,MAAM,CAAO;IACvB,OAAO,EAAE,MAAM,CAAO;IACtB,GAAG,EAAE,MAAM,CAAO;IAClB,cAAc,EAAE,MAAM,CAAK;IAC3B,UAAU,EAAE,UAAU,CAAuB;IAEpD,YAAY,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,EAU3C;IAEY,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAGxE;IAEM,qBAAqB,IAAI,aAAa,CAQ5C;IAEM,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAI5C;IAEM,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAI1C;IAEM,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAIlC;IAEM,iBAAiB,CAAC,cAAc,EAAE,MAAM,WAI9C;CACJ"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Effector } from "../../core/exports";
|
|
2
|
+
import { AudioWorkletProcessorNames, StrictMode } from "../../typings";
|
|
3
|
+
import { coerceFiniteNumber, createAudioWorkletNode, sendMessageToWorklet } from "../../utilities/helpers";
|
|
4
|
+
export var ReverbMessageCommandId;
|
|
5
|
+
(function (ReverbMessageCommandId) {
|
|
6
|
+
ReverbMessageCommandId[ReverbMessageCommandId["SetRoomSize"] = 0] = "SetRoomSize";
|
|
7
|
+
ReverbMessageCommandId[ReverbMessageCommandId["SetDamping"] = 1] = "SetDamping";
|
|
8
|
+
ReverbMessageCommandId[ReverbMessageCommandId["SetMix"] = 2] = "SetMix";
|
|
9
|
+
ReverbMessageCommandId[ReverbMessageCommandId["SetStereoSpreadMs"] = 3] = "SetStereoSpreadMs";
|
|
10
|
+
})(ReverbMessageCommandId || (ReverbMessageCommandId = {}));
|
|
11
|
+
export class Reverb extends Effector {
|
|
12
|
+
label = "Reverb";
|
|
13
|
+
name = "Reverb";
|
|
14
|
+
roomSize = 0.3;
|
|
15
|
+
damping = 0.5;
|
|
16
|
+
mix = 0.3;
|
|
17
|
+
stereoSpreadMs = 0;
|
|
18
|
+
strictMode = StrictMode.Disabled;
|
|
19
|
+
constructor(options) {
|
|
20
|
+
super();
|
|
21
|
+
this.roomSize = Math.max(0, coerceFiniteNumber(options?.roomSize ?? this.roomSize, this.roomSize));
|
|
22
|
+
this.damping = Math.max(0, coerceFiniteNumber(options?.damping ?? this.damping, this.damping));
|
|
23
|
+
this.mix = Math.max(0, coerceFiniteNumber(options?.mix ?? this.mix, this.mix));
|
|
24
|
+
this.stereoSpreadMs = Math.max(0, coerceFiniteNumber(options?.stereoSpreadMs ?? this.stereoSpreadMs, this.stereoSpreadMs));
|
|
25
|
+
const mode = coerceFiniteNumber(options?.strictMode ?? this.strictMode, this.strictMode);
|
|
26
|
+
this.strictMode = mode === StrictMode.Enabled ? StrictMode.Enabled : StrictMode.Disabled;
|
|
27
|
+
}
|
|
28
|
+
async initializeOnAttachment(context) {
|
|
29
|
+
this.context = context;
|
|
30
|
+
this.audioWorkletNode = createAudioWorkletNode(context, AudioWorkletProcessorNames.Reverb, this.returnOptionsAsObject());
|
|
31
|
+
}
|
|
32
|
+
returnOptionsAsObject() {
|
|
33
|
+
return {
|
|
34
|
+
roomSize: this.roomSize,
|
|
35
|
+
damping: this.damping,
|
|
36
|
+
mix: this.mix,
|
|
37
|
+
stereoSpreadMs: this.stereoSpreadMs,
|
|
38
|
+
strictMode: this.strictMode
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
setRoomSize(roomSize) {
|
|
42
|
+
roomSize = Math.max(0, coerceFiniteNumber(roomSize ?? this.roomSize, this.roomSize));
|
|
43
|
+
this.roomSize = roomSize;
|
|
44
|
+
return sendMessageToWorklet(this.audioWorkletNode, ReverbMessageCommandId.SetRoomSize, roomSize);
|
|
45
|
+
}
|
|
46
|
+
setDamping(damping) {
|
|
47
|
+
damping = Math.max(0, coerceFiniteNumber(damping ?? this.damping, this.damping));
|
|
48
|
+
this.damping = damping;
|
|
49
|
+
return sendMessageToWorklet(this.audioWorkletNode, ReverbMessageCommandId.SetDamping, damping);
|
|
50
|
+
}
|
|
51
|
+
setMix(mix) {
|
|
52
|
+
mix = Math.max(0, coerceFiniteNumber(mix ?? this.mix, this.mix));
|
|
53
|
+
this.mix = mix;
|
|
54
|
+
return sendMessageToWorklet(this.audioWorkletNode, ReverbMessageCommandId.SetMix, mix);
|
|
55
|
+
}
|
|
56
|
+
setStereoSpreadMs(stereoSpreadMs) {
|
|
57
|
+
stereoSpreadMs = Math.max(0, coerceFiniteNumber(stereoSpreadMs ?? this.stereoSpreadMs, this.stereoSpreadMs));
|
|
58
|
+
this.stereoSpreadMs = stereoSpreadMs;
|
|
59
|
+
return sendMessageToWorklet(this.audioWorkletNode, ReverbMessageCommandId.SetStereoSpreadMs, stereoSpreadMs);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -6,10 +6,10 @@ export declare class HardClip extends Effector {
|
|
|
6
6
|
drive: number;
|
|
7
7
|
gain: number;
|
|
8
8
|
strictMode: StrictMode;
|
|
9
|
-
constructor(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
constructor(options?: HardClipOptions);
|
|
10
|
+
initializeOnAttachment(context: AudioContext): Promise<void>;
|
|
11
|
+
returnOptionsAsObject(): HardClipOptions;
|
|
12
|
+
setDrive(drive: number): boolean;
|
|
13
|
+
setGain(gain: number): boolean;
|
|
14
14
|
}
|
|
15
15
|
//# sourceMappingURL=HardClip.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HardClip.d.ts","sourceRoot":"","sources":["../../../../src/effects/classes/clips/HardClip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE1D,OAAO,EAAwD,eAAe,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAErH,qBAAa,QAAS,SAAQ,QAAQ;IAE3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAc;IAClC,IAAI,EAAE,MAAM,CAAc;IAE1B,KAAK,EAAE,MAAM,CAAK;IAClB,IAAI,EAAE,MAAM,CAAK;IACjB,UAAU,EAAE,UAAU,CAAuB;
|
|
1
|
+
{"version":3,"file":"HardClip.d.ts","sourceRoot":"","sources":["../../../../src/effects/classes/clips/HardClip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE1D,OAAO,EAAwD,eAAe,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAErH,qBAAa,QAAS,SAAQ,QAAQ;IAE3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAc;IAClC,IAAI,EAAE,MAAM,CAAc;IAE1B,KAAK,EAAE,MAAM,CAAK;IAClB,IAAI,EAAE,MAAM,CAAK;IACjB,UAAU,EAAE,UAAU,CAAuB;IAEpD,YAAY,OAAO,CAAC,EAAE,eAAe,EAQpC;IAEY,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAGxE;IAEM,qBAAqB,IAAI,eAAe,CAM9C;IAEO,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAIvC;IAEM,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIpC;CACJ"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Effector } from "../../../core/classes/Effector";
|
|
2
|
-
import {
|
|
2
|
+
import { coerceFiniteNumber, createAudioWorkletNode, sendMessageToWorklet } from "../../../utilities/helpers";
|
|
3
3
|
import { HardClipMessageCommandId, AudioWorkletProcessorNames, StrictMode } from "../../../typings";
|
|
4
4
|
export class HardClip extends Effector {
|
|
5
5
|
label = "HardClip";
|
|
@@ -7,32 +7,32 @@ export class HardClip extends Effector {
|
|
|
7
7
|
drive = 1;
|
|
8
8
|
gain = 1;
|
|
9
9
|
strictMode = StrictMode.Disabled;
|
|
10
|
-
constructor(
|
|
10
|
+
constructor(options) {
|
|
11
11
|
super();
|
|
12
|
-
this.drive = Math.max(0,
|
|
13
|
-
this.gain = Math.max(0,
|
|
14
|
-
const mode =
|
|
12
|
+
this.drive = Math.max(0, coerceFiniteNumber(options?.drive ?? this.drive, this.drive));
|
|
13
|
+
this.gain = Math.max(0, coerceFiniteNumber(options?.gain ?? this.gain, this.gain));
|
|
14
|
+
const mode = coerceFiniteNumber(options?.strictMode ?? this.strictMode, this.strictMode);
|
|
15
15
|
this.strictMode = mode === StrictMode.Enabled ? StrictMode.Enabled : StrictMode.Disabled;
|
|
16
16
|
}
|
|
17
|
-
async
|
|
17
|
+
async initializeOnAttachment(context) {
|
|
18
18
|
this.context = context;
|
|
19
|
-
this.audioWorkletNode =
|
|
19
|
+
this.audioWorkletNode = createAudioWorkletNode(context, AudioWorkletProcessorNames.HardClip, this.returnOptionsAsObject());
|
|
20
20
|
}
|
|
21
|
-
|
|
21
|
+
returnOptionsAsObject() {
|
|
22
22
|
return {
|
|
23
23
|
drive: this.drive,
|
|
24
24
|
gain: this.gain,
|
|
25
25
|
strictMode: this.strictMode
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
|
-
|
|
29
|
-
drive = Math.max(0,
|
|
28
|
+
setDrive(drive) {
|
|
29
|
+
drive = Math.max(0, coerceFiniteNumber(drive, this.drive));
|
|
30
30
|
this.drive = drive;
|
|
31
|
-
return
|
|
31
|
+
return sendMessageToWorklet(this.audioWorkletNode, HardClipMessageCommandId.SetDrive, drive);
|
|
32
32
|
}
|
|
33
|
-
|
|
34
|
-
gain = Math.max(0,
|
|
33
|
+
setGain(gain) {
|
|
34
|
+
gain = Math.max(0, coerceFiniteNumber(gain, this.gain));
|
|
35
35
|
this.gain = gain;
|
|
36
|
-
return
|
|
36
|
+
return sendMessageToWorklet(this.audioWorkletNode, HardClipMessageCommandId.SetGain, gain);
|
|
37
37
|
}
|
|
38
38
|
}
|
|
@@ -7,9 +7,9 @@ export declare class SoftClip extends Effector {
|
|
|
7
7
|
gain: number;
|
|
8
8
|
strictMode: StrictMode;
|
|
9
9
|
constructor({ drive, gain, strictMode }?: Partial<SoftClipOptions>);
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
initializeOnAttachment(context: AudioContext): Promise<void>;
|
|
11
|
+
returnOptionsAsObject(): SoftClipOptions;
|
|
12
|
+
setDrive(drive: number): boolean;
|
|
13
|
+
setGain(gain: number): boolean;
|
|
14
14
|
}
|
|
15
15
|
//# sourceMappingURL=SoftClip.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SoftClip.d.ts","sourceRoot":"","sources":["../../../../src/effects/classes/clips/SoftClip.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAwD,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAErH,qBAAa,QAAS,SAAQ,QAAQ;IAE3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAc;IAClC,IAAI,EAAE,MAAM,CAAc;IAE1B,KAAK,EAAE,MAAM,CAAK;IAClB,IAAI,EAAE,MAAM,CAAK;IACjB,UAAU,EAAE,UAAU,CAAuB;
|
|
1
|
+
{"version":3,"file":"SoftClip.d.ts","sourceRoot":"","sources":["../../../../src/effects/classes/clips/SoftClip.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAwD,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAErH,qBAAa,QAAS,SAAQ,QAAQ;IAE3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAc;IAClC,IAAI,EAAE,MAAM,CAAc;IAE1B,KAAK,EAAE,MAAM,CAAK;IAClB,IAAI,EAAE,MAAM,CAAK;IACjB,UAAU,EAAE,UAAU,CAAuB;IAEpD,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,GAAE,OAAO,CAAC,eAAe,CAAM,EAQrE;IAEY,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAOxE;IAEM,qBAAqB,IAAI,eAAe,CAM9C;IAEM,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAItC;IAEM,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIpC;CACJ"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { coerceFiniteNumber, createAudioWorkletNode, sendMessageToWorklet } from "../../../utilities/helpers";
|
|
2
2
|
import { Effector } from "../../../core/classes/Effector";
|
|
3
3
|
import { AudioWorkletProcessorNames, SoftClipMessageCommandId, StrictMode } from "../../../typings";
|
|
4
4
|
export class SoftClip extends Effector {
|
|
@@ -9,32 +9,32 @@ export class SoftClip extends Effector {
|
|
|
9
9
|
strictMode = StrictMode.Disabled;
|
|
10
10
|
constructor({ drive, gain, strictMode } = {}) {
|
|
11
11
|
super();
|
|
12
|
-
this.drive = Math.max(0,
|
|
13
|
-
this.gain = Math.max(0,
|
|
14
|
-
const mode =
|
|
12
|
+
this.drive = Math.max(0, coerceFiniteNumber(drive, this.drive));
|
|
13
|
+
this.gain = Math.max(0, coerceFiniteNumber(gain, this.gain));
|
|
14
|
+
const mode = coerceFiniteNumber(strictMode, this.strictMode);
|
|
15
15
|
this.strictMode = mode === StrictMode.Enabled ? StrictMode.Enabled : StrictMode.Disabled;
|
|
16
16
|
}
|
|
17
|
-
async
|
|
17
|
+
async initializeOnAttachment(context) {
|
|
18
18
|
if (this.context === null)
|
|
19
19
|
this.context = context;
|
|
20
20
|
if (this.audioWorkletNode === null)
|
|
21
|
-
this.audioWorkletNode =
|
|
21
|
+
this.audioWorkletNode = createAudioWorkletNode(context, AudioWorkletProcessorNames.SoftClip, this.returnOptionsAsObject());
|
|
22
22
|
}
|
|
23
|
-
|
|
23
|
+
returnOptionsAsObject() {
|
|
24
24
|
return {
|
|
25
25
|
drive: this.drive,
|
|
26
26
|
gain: this.gain,
|
|
27
27
|
strictMode: this.strictMode
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
|
-
|
|
31
|
-
drive = Math.max(0,
|
|
30
|
+
setDrive(drive) {
|
|
31
|
+
drive = Math.max(0, coerceFiniteNumber(drive, this.drive));
|
|
32
32
|
this.drive = drive;
|
|
33
|
-
return
|
|
33
|
+
return sendMessageToWorklet(this.audioWorkletNode, SoftClipMessageCommandId.SetDrive, drive);
|
|
34
34
|
}
|
|
35
|
-
|
|
36
|
-
gain = Math.max(0,
|
|
35
|
+
setGain(gain) {
|
|
36
|
+
gain = Math.max(0, coerceFiniteNumber(gain, this.gain));
|
|
37
37
|
this.gain = gain;
|
|
38
|
-
return
|
|
38
|
+
return sendMessageToWorklet(this.audioWorkletNode, SoftClipMessageCommandId.SetGain, gain);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
@@ -9,10 +9,10 @@ export declare class HighPassFilter extends Effector {
|
|
|
9
9
|
maxFrequency: number;
|
|
10
10
|
private contextSampleRate;
|
|
11
11
|
constructor({ cutoff, q, strictMode }?: Partial<HighPassFilterOptions>);
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
initializeOnAttachment(context: AudioContext): Promise<void>;
|
|
13
|
+
returnOptionsAsObject(): HighPassFilterOptions;
|
|
14
|
+
setCutoff(cutoff?: number): boolean;
|
|
15
|
+
setMaxFrequency(maxFrequency?: number): boolean;
|
|
16
|
+
setQ(q?: number): boolean;
|
|
17
17
|
}
|
|
18
18
|
//# sourceMappingURL=HighPassFilter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HighPassFilter.d.ts","sourceRoot":"","sources":["../../../../src/effects/classes/filters/HighPassFilter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAA8D,qBAAqB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGjI,qBAAa,cAAe,SAAQ,QAAQ;IAEjC,IAAI,EAAE,MAAM,CAAoB;IAChC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAoB;IAExC,MAAM,EAAE,MAAM,CAAQ;IACtB,CAAC,EAAE,MAAM,CAAO;IAChB,UAAU,EAAE,UAAU,CAAuB;IAC7C,YAAY,EAAE,MAAM,CAA6B;IAExD,OAAO,CAAC,iBAAiB,CAA+B;
|
|
1
|
+
{"version":3,"file":"HighPassFilter.d.ts","sourceRoot":"","sources":["../../../../src/effects/classes/filters/HighPassFilter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAA8D,qBAAqB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGjI,qBAAa,cAAe,SAAQ,QAAQ;IAEjC,IAAI,EAAE,MAAM,CAAoB;IAChC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAoB;IAExC,MAAM,EAAE,MAAM,CAAQ;IACtB,CAAC,EAAE,MAAM,CAAO;IAChB,UAAU,EAAE,UAAU,CAAuB;IAC7C,YAAY,EAAE,MAAM,CAA6B;IAExD,OAAO,CAAC,iBAAiB,CAA+B;IAExD,YAAY,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,GAAE,OAAO,CAAC,qBAAqB,CAAM,EASzE;IAEY,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAKxE;IAEM,qBAAqB,IAAI,qBAAqB,CAOpD;IAEM,SAAS,CAAC,MAAM,GAAE,MAAa,GAAG,OAAO,CAY/C;IAEM,eAAe,CAAC,YAAY,GAAE,MAA0B,WAS9D;IAEM,IAAI,CAAC,CAAC,GAAE,MAAY,GAAG,OAAO,CAUpC;CACJ"}
|