@fluex/fluexgl-dsp 0.4.0 → 0.4.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/README.md +16 -38
- package/lib/dist/core/classes/AudioClip.d.ts +3 -1
- package/lib/dist/core/classes/AudioClip.d.ts.map +1 -1
- package/lib/dist/core/classes/AudioClip.js +18 -5
- package/lib/dist/core/classes/AudioClipPlayer.d.ts +8 -2
- package/lib/dist/core/classes/AudioClipPlayer.d.ts.map +1 -1
- package/lib/dist/core/classes/AudioClipPlayer.js +48 -1
- package/lib/dist/core/classes/AudioDevice.d.ts +2 -0
- package/lib/dist/core/classes/AudioDevice.d.ts.map +1 -1
- package/lib/dist/core/classes/AudioDevice.js +4 -0
- package/lib/dist/core/classes/Channel.d.ts +10 -2
- package/lib/dist/core/classes/Channel.d.ts.map +1 -1
- package/lib/dist/core/classes/Channel.js +67 -0
- package/lib/dist/core/classes/DpsPipeline.d.ts +1 -1
- package/lib/dist/core/classes/DpsPipeline.d.ts.map +1 -1
- package/lib/dist/core/classes/DpsPipeline.js +7 -3
- package/lib/dist/core/classes/Effector.d.ts +2 -2
- package/lib/dist/core/classes/Effector.d.ts.map +1 -1
- package/lib/dist/core/classes/Effector.js +1 -1
- package/lib/dist/core/classes/Master.d.ts +12 -0
- package/lib/dist/core/classes/Master.d.ts.map +1 -1
- package/lib/dist/core/classes/Master.js +77 -7
- package/lib/dist/effects/classes/Analyser.d.ts +16 -0
- package/lib/dist/effects/classes/Analyser.d.ts.map +1 -0
- package/lib/dist/effects/classes/Analyser.js +62 -0
- package/lib/dist/effects/classes/Chorus.d.ts +4 -3
- package/lib/dist/effects/classes/Chorus.d.ts.map +1 -1
- package/lib/dist/effects/classes/Chorus.js +21 -12
- package/lib/dist/effects/classes/clips/HardClip.d.ts +4 -3
- package/lib/dist/effects/classes/clips/HardClip.d.ts.map +1 -1
- package/lib/dist/effects/classes/clips/HardClip.js +15 -9
- package/lib/dist/effects/classes/clips/SoftClip.d.ts +4 -3
- package/lib/dist/effects/classes/clips/SoftClip.d.ts.map +1 -1
- package/lib/dist/effects/classes/clips/SoftClip.js +15 -9
- package/lib/dist/effects/classes/filters/LowPassFilter.d.ts +4 -3
- package/lib/dist/effects/classes/filters/LowPassFilter.d.ts.map +1 -1
- package/lib/dist/effects/classes/filters/LowPassFilter.js +23 -14
- package/lib/dist/effects/exports.d.ts +1 -0
- package/lib/dist/effects/exports.d.ts.map +1 -1
- package/lib/dist/effects/exports.js +1 -0
- package/lib/dist/index.d.ts +5 -4
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +13 -18
- package/lib/dist/typings.d.ts +13 -11
- package/lib/dist/typings.d.ts.map +1 -1
- package/lib/dist/typings.js +5 -0
- package/lib/dist/utilities/debugger.js +6 -6
- package/lib/dist/utilities/helpers.d.ts +2 -0
- package/lib/dist/utilities/helpers.d.ts.map +1 -1
- package/lib/dist/utilities/helpers.js +35 -12
- package/lib/src/core/classes/AudioClip.ts +23 -7
- package/lib/src/core/classes/AudioClipPlayer.ts +67 -7
- package/lib/src/core/classes/AudioDevice.ts +5 -0
- package/lib/src/core/classes/Channel.ts +97 -4
- package/lib/src/core/classes/DpsPipeline.ts +7 -3
- package/lib/src/core/classes/Effector.ts +3 -2
- package/lib/src/core/classes/Master.ts +98 -11
- package/lib/src/effects/classes/Analyser.ts +84 -0
- package/lib/src/effects/classes/Chorus.ts +22 -13
- package/lib/src/effects/classes/clips/HardClip.ts +17 -10
- package/lib/src/effects/classes/clips/SoftClip.ts +17 -10
- package/lib/src/effects/classes/filters/LowPassFilter.ts +28 -15
- package/lib/src/effects/exports.ts +2 -1
- package/lib/src/index.ts +27 -29
- package/lib/src/typings.ts +14 -14
- package/lib/src/utilities/debugger.ts +6 -6
- package/lib/src/utilities/helpers.ts +38 -14
- package/package.json +1 -1
- package/lib/dist/effects/classes/Filter.d.ts +0 -3
- package/lib/dist/effects/classes/Filter.d.ts.map +0 -1
- package/lib/dist/effects/classes/Filter.js +0 -2
- package/lib/dist/effects/classes/SoftClip.d.ts +0 -10
- package/lib/dist/effects/classes/SoftClip.d.ts.map +0 -1
- package/lib/dist/effects/classes/SoftClip.js +0 -39
- package/lib/dist/test/linkable-channels.d.ts +0 -2
- package/lib/dist/test/linkable-channels.d.ts.map +0 -1
- package/lib/dist/test/linkable-channels.js +0 -16
- package/lib/src/core/functions/rebuild-effect-chain.ts +0 -5
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Effector } from "../../core/exports";
|
|
2
|
+
export class Analyser extends Effector {
|
|
3
|
+
label = "Analyser";
|
|
4
|
+
name = "Analyser";
|
|
5
|
+
analyserNode = null;
|
|
6
|
+
float32ArrayBuffer = new Float32Array();
|
|
7
|
+
uint8ArrayBuffer = new Uint8Array();
|
|
8
|
+
options = {
|
|
9
|
+
fftSize: 32,
|
|
10
|
+
smoothingTimeConstant: 0.8,
|
|
11
|
+
minDecibels: -90,
|
|
12
|
+
maxDecibels: -10,
|
|
13
|
+
};
|
|
14
|
+
constructor(options) {
|
|
15
|
+
super();
|
|
16
|
+
if (options)
|
|
17
|
+
this.SetOptions(options);
|
|
18
|
+
}
|
|
19
|
+
async InitializeOnAttachment(context) {
|
|
20
|
+
this.context = context;
|
|
21
|
+
this.analyserNode = new AnalyserNode(context, this.options);
|
|
22
|
+
this.audioWorkletNode = this.analyserNode;
|
|
23
|
+
this.allocateBuffers();
|
|
24
|
+
}
|
|
25
|
+
SetOptions(options) {
|
|
26
|
+
Object.keys(options).forEach((key) => {
|
|
27
|
+
const value = options[key];
|
|
28
|
+
if (typeof value === "undefined")
|
|
29
|
+
return;
|
|
30
|
+
if (key === "fftSize" && value) {
|
|
31
|
+
const allowed = [32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768];
|
|
32
|
+
if (!allowed.includes(value))
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
this.options[key] = value;
|
|
36
|
+
if (this.analyserNode) {
|
|
37
|
+
this.analyserNode[key] = value;
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
if (options.fftSize && this.analyserNode) {
|
|
41
|
+
this.allocateBuffers();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
GetWaveformFloatData() {
|
|
45
|
+
if (!this.analyserNode)
|
|
46
|
+
return null;
|
|
47
|
+
this.analyserNode.getFloatTimeDomainData(this.float32ArrayBuffer);
|
|
48
|
+
return this.float32ArrayBuffer;
|
|
49
|
+
}
|
|
50
|
+
GetWaveformByteData() {
|
|
51
|
+
if (!this.analyserNode)
|
|
52
|
+
return null;
|
|
53
|
+
this.analyserNode.getByteTimeDomainData(this.uint8ArrayBuffer);
|
|
54
|
+
return this.uint8ArrayBuffer;
|
|
55
|
+
}
|
|
56
|
+
allocateBuffers() {
|
|
57
|
+
if (!this.analyserNode)
|
|
58
|
+
return;
|
|
59
|
+
this.float32ArrayBuffer = new Float32Array(this.analyserNode.fftSize);
|
|
60
|
+
this.uint8ArrayBuffer = new Uint8Array(this.analyserNode.fftSize);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Effector } from "../../core/classes/Effector";
|
|
2
|
-
import { ChorusEffectOptions } from "../../typings";
|
|
2
|
+
import { ChorusEffectOptions, StrictMode } from "../../typings";
|
|
3
3
|
export declare class Chorus extends Effector {
|
|
4
4
|
label: string | null;
|
|
5
5
|
name: string;
|
|
@@ -8,8 +8,9 @@ export declare class Chorus extends Effector {
|
|
|
8
8
|
rateHz: number;
|
|
9
9
|
mix: number;
|
|
10
10
|
feedback: number;
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
strictMode: StrictMode;
|
|
12
|
+
constructor({ baseDelayMs, depthMs, rateHz, mix, feedback, strictMode }: Partial<ChorusEffectOptions>);
|
|
13
|
+
InitializeOnAttachment(context: AudioContext): Promise<void>;
|
|
13
14
|
ReturnOptionsAsObject(): ChorusEffectOptions;
|
|
14
15
|
SetBaseDelayMs(value: number): boolean;
|
|
15
16
|
SetDepthMs(value: number): boolean;
|
|
@@ -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,MAAM,eAAe,CAAC;
|
|
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;gBAExC,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,mBAAmB,CAAC;IAaxF,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlE,qBAAqB,IAAI,mBAAmB;IAW5C,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAMtC,UAAU,CAAC,KAAK,EAAE,MAAM;IAMxB,SAAS,CAAC,KAAK,EAAE,MAAM;IAMvB,MAAM,CAAC,KAAK,EAAE,MAAM;IAMpB,WAAW,CAAC,KAAK,EAAE,MAAM;CAKnC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { SendMessageToWorklet, CreateAudioWorkletNode } from "../../utilities/helpers";
|
|
1
|
+
import { CoerceFiniteNumber, SendMessageToWorklet, CreateAudioWorkletNode } from "../../utilities/helpers";
|
|
2
2
|
import { Effector } from "../../core/classes/Effector";
|
|
3
|
-
import { ChorusMessageCommandId, AudioWorkletProcessorNames } from "../../typings";
|
|
3
|
+
import { ChorusMessageCommandId, AudioWorkletProcessorNames, StrictMode } from "../../typings";
|
|
4
4
|
export class Chorus extends Effector {
|
|
5
5
|
label = "Chorus";
|
|
6
6
|
name = "Chorus";
|
|
@@ -9,17 +9,20 @@ export class Chorus extends Effector {
|
|
|
9
9
|
rateHz = 1.5;
|
|
10
10
|
mix = 0.5;
|
|
11
11
|
feedback = 0.2;
|
|
12
|
-
|
|
12
|
+
strictMode = StrictMode.Disabled;
|
|
13
|
+
constructor({ baseDelayMs, depthMs, rateHz, mix, feedback, strictMode }) {
|
|
13
14
|
super();
|
|
14
|
-
this.baseDelayMs = baseDelayMs
|
|
15
|
-
this.depthMs = depthMs
|
|
16
|
-
this.rateHz = rateHz
|
|
17
|
-
this.mix = mix
|
|
18
|
-
this.feedback = feedback
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
+
this.strictMode = mode === StrictMode.Enabled ? StrictMode.Enabled : StrictMode.Disabled;
|
|
22
|
+
}
|
|
23
|
+
async InitializeOnAttachment(context) {
|
|
24
|
+
this.context = context;
|
|
25
|
+
this.audioWorkletNode = CreateAudioWorkletNode(context, AudioWorkletProcessorNames.Chorus, this.ReturnOptionsAsObject());
|
|
23
26
|
}
|
|
24
27
|
ReturnOptionsAsObject() {
|
|
25
28
|
return {
|
|
@@ -28,25 +31,31 @@ export class Chorus extends Effector {
|
|
|
28
31
|
rateHz: this.rateHz,
|
|
29
32
|
mix: this.mix,
|
|
30
33
|
feedback: this.feedback,
|
|
34
|
+
strictMode: this.strictMode
|
|
31
35
|
};
|
|
32
36
|
}
|
|
33
37
|
SetBaseDelayMs(value) {
|
|
38
|
+
value = Math.max(0, CoerceFiniteNumber(value, this.baseDelayMs));
|
|
34
39
|
this.baseDelayMs = value;
|
|
35
40
|
return SendMessageToWorklet(this.audioWorkletNode, ChorusMessageCommandId.SetBaseDelayMs, value);
|
|
36
41
|
}
|
|
37
42
|
SetDepthMs(value) {
|
|
43
|
+
value = Math.max(0, CoerceFiniteNumber(value, this.depthMs));
|
|
38
44
|
this.depthMs = value;
|
|
39
45
|
return SendMessageToWorklet(this.audioWorkletNode, ChorusMessageCommandId.SetDepthMs, value);
|
|
40
46
|
}
|
|
41
47
|
SetRateHz(value) {
|
|
48
|
+
value = Math.max(0, CoerceFiniteNumber(value, this.rateHz));
|
|
42
49
|
this.rateHz = value;
|
|
43
50
|
return SendMessageToWorklet(this.audioWorkletNode, ChorusMessageCommandId.SetRateHz, value);
|
|
44
51
|
}
|
|
45
52
|
SetMix(value) {
|
|
53
|
+
value = Math.max(0, Math.min(1, CoerceFiniteNumber(value, this.mix)));
|
|
46
54
|
this.mix = value;
|
|
47
55
|
return SendMessageToWorklet(this.audioWorkletNode, ChorusMessageCommandId.SetMix, value);
|
|
48
56
|
}
|
|
49
57
|
SetFeedback(value) {
|
|
58
|
+
value = Math.max(0, Math.min(1, CoerceFiniteNumber(value, this.feedback)));
|
|
50
59
|
this.feedback = value;
|
|
51
60
|
return SendMessageToWorklet(this.audioWorkletNode, ChorusMessageCommandId.SetFeedback, value);
|
|
52
61
|
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { Effector } from "../../../core/classes/Effector";
|
|
2
|
-
import { HardClipOptions } from "../../../typings";
|
|
2
|
+
import { HardClipOptions, StrictMode } from "../../../typings";
|
|
3
3
|
export declare class HardClip extends Effector {
|
|
4
4
|
label: string | null;
|
|
5
5
|
name: string;
|
|
6
6
|
drive: number;
|
|
7
7
|
gain: number;
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
strictMode: StrictMode;
|
|
9
|
+
constructor({ drive, gain, strictMode }: Partial<HardClipOptions>);
|
|
10
|
+
InitializeOnAttachment(context: AudioContext): Promise<void>;
|
|
10
11
|
ReturnOptionsAsObject(): HardClipOptions;
|
|
11
12
|
SetDrive(drive: number): boolean;
|
|
12
13
|
SetGain(gain: number): boolean;
|
|
@@ -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,MAAM,kBAAkB,CAAC;
|
|
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;gBAExC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,eAAe,CAAC;IAUpD,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlE,qBAAqB,IAAI,eAAe;IAQvC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAMjC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAKxC"}
|
|
@@ -1,31 +1,37 @@
|
|
|
1
1
|
import { Effector } from "../../../core/classes/Effector";
|
|
2
|
-
import { CreateAudioWorkletNode, SendMessageToWorklet } from "../../../utilities/helpers";
|
|
3
|
-
import { HardClipMessageCommandId, AudioWorkletProcessorNames } from "../../../typings";
|
|
2
|
+
import { CoerceFiniteNumber, CreateAudioWorkletNode, SendMessageToWorklet } from "../../../utilities/helpers";
|
|
3
|
+
import { HardClipMessageCommandId, AudioWorkletProcessorNames, StrictMode } from "../../../typings";
|
|
4
4
|
export class HardClip extends Effector {
|
|
5
5
|
label = "HardClip";
|
|
6
6
|
name = "HardClip";
|
|
7
7
|
drive = 1;
|
|
8
8
|
gain = 1;
|
|
9
|
-
|
|
9
|
+
strictMode = StrictMode.Disabled;
|
|
10
|
+
constructor({ drive, gain, strictMode }) {
|
|
10
11
|
super();
|
|
11
|
-
this.drive = drive
|
|
12
|
-
this.gain = gain
|
|
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
|
+
this.strictMode = mode === StrictMode.Enabled ? StrictMode.Enabled : StrictMode.Disabled;
|
|
13
16
|
}
|
|
14
|
-
async InitializeOnAttachment(
|
|
15
|
-
this.
|
|
16
|
-
this.audioWorkletNode = CreateAudioWorkletNode(
|
|
17
|
+
async InitializeOnAttachment(context) {
|
|
18
|
+
this.context = context;
|
|
19
|
+
this.audioWorkletNode = CreateAudioWorkletNode(context, AudioWorkletProcessorNames.HardClip, this.ReturnOptionsAsObject());
|
|
17
20
|
}
|
|
18
21
|
ReturnOptionsAsObject() {
|
|
19
22
|
return {
|
|
20
23
|
drive: this.drive,
|
|
21
|
-
gain: this.gain
|
|
24
|
+
gain: this.gain,
|
|
25
|
+
strictMode: this.strictMode
|
|
22
26
|
};
|
|
23
27
|
}
|
|
24
28
|
SetDrive(drive) {
|
|
29
|
+
drive = Math.max(0, CoerceFiniteNumber(drive, this.drive));
|
|
25
30
|
this.drive = drive;
|
|
26
31
|
return SendMessageToWorklet(this.audioWorkletNode, HardClipMessageCommandId.SetDrive, drive);
|
|
27
32
|
}
|
|
28
33
|
SetGain(gain) {
|
|
34
|
+
gain = Math.max(0, CoerceFiniteNumber(gain, this.gain));
|
|
29
35
|
this.gain = gain;
|
|
30
36
|
return SendMessageToWorklet(this.audioWorkletNode, HardClipMessageCommandId.SetGain, gain);
|
|
31
37
|
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { Effector } from "../../../core/classes/Effector";
|
|
2
|
-
import { SoftClipOptions } from "../../../typings";
|
|
2
|
+
import { SoftClipOptions, StrictMode } from "../../../typings";
|
|
3
3
|
export declare class SoftClip extends Effector {
|
|
4
4
|
label: string | null;
|
|
5
5
|
name: string;
|
|
6
6
|
drive: number;
|
|
7
7
|
gain: number;
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
strictMode: StrictMode;
|
|
9
|
+
constructor({ drive, gain, strictMode }: Partial<SoftClipOptions>);
|
|
10
|
+
InitializeOnAttachment(context: AudioContext): Promise<void>;
|
|
10
11
|
ReturnOptionsAsObject(): SoftClipOptions;
|
|
11
12
|
SetDrive(drive: number): boolean;
|
|
12
13
|
SetGain(gain: number): boolean;
|
|
@@ -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,MAAM,kBAAkB,CAAC;
|
|
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;gBAExC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,eAAe,CAAC;IAUpD,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlE,qBAAqB,IAAI,eAAe;IAQxC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAMhC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAKxC"}
|
|
@@ -1,31 +1,37 @@
|
|
|
1
|
-
import { CreateAudioWorkletNode, SendMessageToWorklet } from "../../../utilities/helpers";
|
|
1
|
+
import { CoerceFiniteNumber, CreateAudioWorkletNode, SendMessageToWorklet } from "../../../utilities/helpers";
|
|
2
2
|
import { Effector } from "../../../core/classes/Effector";
|
|
3
|
-
import { AudioWorkletProcessorNames, SoftClipMessageCommandId } from "../../../typings";
|
|
3
|
+
import { AudioWorkletProcessorNames, SoftClipMessageCommandId, StrictMode } from "../../../typings";
|
|
4
4
|
export class SoftClip extends Effector {
|
|
5
5
|
label = "SoftClip";
|
|
6
6
|
name = "SoftClip";
|
|
7
7
|
drive = 1;
|
|
8
8
|
gain = 1;
|
|
9
|
-
|
|
9
|
+
strictMode = StrictMode.Disabled;
|
|
10
|
+
constructor({ drive, gain, strictMode }) {
|
|
10
11
|
super();
|
|
11
|
-
this.drive = drive
|
|
12
|
-
this.gain = gain
|
|
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
|
+
this.strictMode = mode === StrictMode.Enabled ? StrictMode.Enabled : StrictMode.Disabled;
|
|
13
16
|
}
|
|
14
|
-
async InitializeOnAttachment(
|
|
15
|
-
this.
|
|
16
|
-
this.audioWorkletNode = CreateAudioWorkletNode(
|
|
17
|
+
async InitializeOnAttachment(context) {
|
|
18
|
+
this.context = context;
|
|
19
|
+
this.audioWorkletNode = CreateAudioWorkletNode(context, AudioWorkletProcessorNames.SoftClip, this.ReturnOptionsAsObject());
|
|
17
20
|
}
|
|
18
21
|
ReturnOptionsAsObject() {
|
|
19
22
|
return {
|
|
20
23
|
drive: this.drive,
|
|
21
|
-
gain: this.gain
|
|
24
|
+
gain: this.gain,
|
|
25
|
+
strictMode: this.strictMode
|
|
22
26
|
};
|
|
23
27
|
}
|
|
24
28
|
SetDrive(drive) {
|
|
29
|
+
drive = Math.max(0, CoerceFiniteNumber(drive, this.drive));
|
|
25
30
|
this.drive = drive;
|
|
26
31
|
return SendMessageToWorklet(this.audioWorkletNode, SoftClipMessageCommandId.SetDrive, drive);
|
|
27
32
|
}
|
|
28
33
|
SetGain(gain) {
|
|
34
|
+
gain = Math.max(0, CoerceFiniteNumber(gain, this.gain));
|
|
29
35
|
this.gain = gain;
|
|
30
36
|
return SendMessageToWorklet(this.audioWorkletNode, SoftClipMessageCommandId.SetGain, gain);
|
|
31
37
|
}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { Effector } from "../../../core/classes/Effector";
|
|
2
|
-
import { LowPassFilterOptions } from "../../../typings";
|
|
2
|
+
import { LowPassFilterOptions, StrictMode } from "../../../typings";
|
|
3
3
|
export declare class LowPassFilter extends Effector {
|
|
4
4
|
name: string;
|
|
5
5
|
label: string | null;
|
|
6
6
|
cutoff: number;
|
|
7
7
|
q: number;
|
|
8
8
|
minFrequency: number;
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
strictMode: StrictMode;
|
|
10
|
+
constructor({ cutoff, minFrequency, q, strictMode }: Partial<LowPassFilterOptions>);
|
|
11
|
+
InitializeOnAttachment(context: AudioContext): Promise<void>;
|
|
11
12
|
ReturnOptionsAsObject(): LowPassFilterOptions;
|
|
12
13
|
SetCutoff(cutoff?: number): boolean;
|
|
13
14
|
SetMinFrequency(minFrequency?: number): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LowPassFilter.d.ts","sourceRoot":"","sources":["../../../../src/effects/classes/filters/LowPassFilter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAI1D,OAAO,EAAE,oBAAoB,EAA6D,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"LowPassFilter.d.ts","sourceRoot":"","sources":["../../../../src/effects/classes/filters/LowPassFilter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAI1D,OAAO,EAAE,oBAAoB,EAA6D,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE/H,qBAAa,aAAc,SAAQ,QAAQ;IAEhC,IAAI,EAAE,MAAM,CAAmB;IAC/B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAmB;IAEvC,MAAM,EAAE,MAAM,CAAQ;IACtB,CAAC,EAAE,MAAM,CAAO;IAChB,YAAY,EAAE,MAAM,CAAM;IAC1B,UAAU,EAAE,UAAU,CAAuB;gBAExC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAWrE,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlE,qBAAqB,IAAI,oBAAoB;IAS7C,SAAS,CAAC,MAAM,GAAE,MAAa,GAAG,OAAO;IAczC,eAAe,CAAC,YAAY,GAAE,MAAW,GAAG,OAAO;IAWnD,IAAI,CAAC,CAAC,GAAE,MAAY,GAAG,OAAO;CAWxC"}
|
|
@@ -1,45 +1,54 @@
|
|
|
1
1
|
import { Effector } from "../../../core/classes/Effector";
|
|
2
|
-
import { SendMessageToWorklet, CreateAudioWorkletNode } from "../../../utilities/helpers";
|
|
3
|
-
import { LowPassFilterMessageCommandId, AudioWorkletProcessorNames } from "../../../typings";
|
|
2
|
+
import { CoerceFiniteNumber, SendMessageToWorklet, CreateAudioWorkletNode } from "../../../utilities/helpers";
|
|
3
|
+
import { LowPassFilterMessageCommandId, AudioWorkletProcessorNames, StrictMode } from "../../../typings";
|
|
4
4
|
export class LowPassFilter extends Effector {
|
|
5
5
|
name = "LowPassFilter";
|
|
6
6
|
label = "LowPassFilter";
|
|
7
7
|
cutoff = 1000;
|
|
8
8
|
q = 0.7;
|
|
9
9
|
minFrequency = 10;
|
|
10
|
-
|
|
10
|
+
strictMode = StrictMode.Disabled;
|
|
11
|
+
constructor({ cutoff, minFrequency, q, strictMode }) {
|
|
11
12
|
super();
|
|
12
|
-
this.cutoff = cutoff
|
|
13
|
-
this.minFrequency = minFrequency
|
|
14
|
-
this.q = q
|
|
13
|
+
this.cutoff = CoerceFiniteNumber(cutoff, this.cutoff);
|
|
14
|
+
this.minFrequency = CoerceFiniteNumber(minFrequency, this.minFrequency);
|
|
15
|
+
this.q = CoerceFiniteNumber(q, this.q);
|
|
16
|
+
const mode = CoerceFiniteNumber(strictMode, this.strictMode);
|
|
17
|
+
this.strictMode = mode === StrictMode.Enabled ? StrictMode.Enabled : StrictMode.Disabled;
|
|
15
18
|
}
|
|
16
|
-
async InitializeOnAttachment(
|
|
17
|
-
this.
|
|
18
|
-
this.audioWorkletNode = CreateAudioWorkletNode(
|
|
19
|
-
this.registerMessageEventListener(this.audioWorkletNode);
|
|
19
|
+
async InitializeOnAttachment(context) {
|
|
20
|
+
this.context = context;
|
|
21
|
+
this.audioWorkletNode = CreateAudioWorkletNode(context, AudioWorkletProcessorNames.LowPassFilter, this.ReturnOptionsAsObject());
|
|
22
|
+
this.audioWorkletNode && this.registerMessageEventListener(this.audioWorkletNode);
|
|
20
23
|
}
|
|
21
24
|
ReturnOptionsAsObject() {
|
|
22
25
|
return {
|
|
23
26
|
cutoff: this.cutoff,
|
|
24
27
|
minFrequency: this.minFrequency,
|
|
25
|
-
q: this.q
|
|
28
|
+
q: this.q,
|
|
29
|
+
strictMode: this.strictMode
|
|
26
30
|
};
|
|
27
31
|
}
|
|
28
32
|
SetCutoff(cutoff = 1000) {
|
|
29
|
-
if (!this.
|
|
33
|
+
if (!this.context)
|
|
30
34
|
return false;
|
|
31
|
-
|
|
32
|
-
|
|
35
|
+
cutoff = CoerceFiniteNumber(cutoff, this.cutoff);
|
|
36
|
+
cutoff = Math.max(this.minFrequency, cutoff);
|
|
37
|
+
if (cutoff >= this.context.sampleRate)
|
|
38
|
+
cutoff = this.context.sampleRate;
|
|
33
39
|
this.cutoff = cutoff;
|
|
34
40
|
return SendMessageToWorklet(this.audioWorkletNode, LowPassFilterMessageCommandId.SetCutoff, cutoff);
|
|
35
41
|
}
|
|
36
42
|
SetMinFrequency(minFrequency = 10) {
|
|
43
|
+
minFrequency = CoerceFiniteNumber(minFrequency, this.minFrequency);
|
|
37
44
|
if (minFrequency < 10)
|
|
38
45
|
minFrequency = 10;
|
|
39
46
|
this.minFrequency = minFrequency;
|
|
40
47
|
return SendMessageToWorklet(this.audioWorkletNode, LowPassFilterMessageCommandId.SetMinFrequency, minFrequency);
|
|
41
48
|
}
|
|
42
49
|
SetQ(q = 0.7) {
|
|
50
|
+
q = CoerceFiniteNumber(q, this.q);
|
|
51
|
+
q = Math.max(0.0001, q);
|
|
43
52
|
if (q > 4)
|
|
44
53
|
q = 4;
|
|
45
54
|
this.q = q;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../src/effects/exports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAEhF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC"}
|
|
1
|
+
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../src/effects/exports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAEhF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC"}
|
package/lib/dist/index.d.ts
CHANGED
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
* FluexGL Audio
|
|
3
3
|
* A javascript digital audio processor library.
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
6
|
-
export declare const
|
|
7
|
-
export { Chorus, Distortion, Equalizer, Limiter, Saturation, StereoPanner, Compressor, MultibandCompressor, AdvancedDelay, MonoDelay, PingPongDelay, StereoDelay, ChamberReverb, ConvolverReverb, GenericReverb, HallReverb, RoomReverb, SoftClip, LowPassFilter, HardClip } from "./effects/exports";
|
|
5
|
+
import { DspOptions } from "./typings";
|
|
6
|
+
export declare const DSP: DspOptions;
|
|
7
|
+
export { Chorus, Analyser, Distortion, Equalizer, Limiter, Saturation, StereoPanner, Compressor, MultibandCompressor, AdvancedDelay, MonoDelay, PingPongDelay, StereoDelay, ChamberReverb, ConvolverReverb, GenericReverb, HallReverb, RoomReverb, SoftClip, LowPassFilter, HardClip } from "./effects/exports";
|
|
8
8
|
export { AudioDevice, Channel, Effector, Master, AudioClip, DspPipeline, AudioClipPlayer } from "./core/exports";
|
|
9
9
|
export { InitializeDspPipeline, ResolveAudioOutputDevices, ResolveAudioInputDevices, ResolveDefaultAudioInputDevice, ResolveDefaultAudioOutputDevice, LoadAudioSource, LoadAudioSourceFromBlob, LoadWorkletOnAudioDevice, SendMessageToWorklet } from "./utilities/helpers";
|
|
10
10
|
export { SUPPORTED_FILE_TYPES } from "./utilities/constants";
|
|
11
11
|
export { hasInitializedWasm, } from "./utilities/web-assembly";
|
|
12
|
-
export
|
|
12
|
+
export { StrictMode, ProcessorIdentificationCodes, HardClipMessageCommandId, SoftClipMessageCommandId, AudioWorkletProcessorNames, ChorusMessageCommandId, LowPassFilterMessageCommandId } from "./typings";
|
|
13
|
+
export type { DspDebuggerOptions, DspOptions, LoadAudioSourceOptions, AudioSourceData, ChannelOptions, ChannelSpatialization, AudioClipEventMap, AudioClipEvents, AudioClipOnProgressEvent, AudioClipAnalyserProperty, AudioClipAnalyserType, DspPipelineInitializationOptions, DspPipelineInitializationState, ChorusEffectOptions, LowPassFilterOptions, SoftClipOptions, HardClipOptions, EffectorEventMap, IncomingMessageType, IncomingProcessorMessage, ProcessorData, EffectorEvents, } from "./typings";
|
|
13
14
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,eAAO,MAAM,GAAG,EAAE,UAYjB,CAAA;AAED,OAAO,EACH,MAAM,EACN,QAAQ,EACR,UAAU,EACV,SAAS,EACT,OAAO,EACP,UAAU,EACV,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,aAAa,EACb,SAAS,EACT,aAAa,EACb,WAAW,EACX,aAAa,EACb,eAAe,EACf,aAAa,EACb,UAAU,EACV,UAAU,EACV,QAAQ,EACR,aAAa,EACb,QAAQ,EACX,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACH,WAAW,EACX,OAAO,EACP,QAAQ,EACR,MAAM,EACN,SAAS,EACT,WAAW,EACX,eAAe,EAClB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACH,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,8BAA8B,EAC9B,+BAA+B,EAC/B,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,EACvB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACH,oBAAoB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACH,kBAAkB,GACrB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACH,UAAU,EACV,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,EACtB,6BAA6B,EAChC,MAAM,WAAW,CAAC;AAEnB,YAAY,EACR,kBAAkB,EAClB,UAAU,EACV,sBAAsB,EACtB,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,gCAAgC,EAChC,8BAA8B,EAC9B,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,aAAa,EACb,cAAc,GACjB,MAAM,WAAW,CAAC"}
|
package/lib/dist/index.js
CHANGED
|
@@ -2,27 +2,22 @@
|
|
|
2
2
|
* FluexGL Audio
|
|
3
3
|
* A javascript digital audio processor library.
|
|
4
4
|
*/
|
|
5
|
-
export const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
debugger: {
|
|
17
|
-
showErrors: true,
|
|
18
|
-
showInfo: true,
|
|
19
|
-
showWarnings: true,
|
|
20
|
-
breakOnError: true
|
|
21
|
-
}
|
|
5
|
+
export const DSP = {
|
|
6
|
+
maxMasterChannels: 8,
|
|
7
|
+
maxTotalChannels: 128,
|
|
8
|
+
sampleRate: 44000,
|
|
9
|
+
spatialization: "stereo",
|
|
10
|
+
overrideMaxAudioBufferNodes: false,
|
|
11
|
+
debugger: {
|
|
12
|
+
showErrors: true,
|
|
13
|
+
showInfo: true,
|
|
14
|
+
showWarnings: true,
|
|
15
|
+
breakOnError: true
|
|
22
16
|
}
|
|
23
17
|
};
|
|
24
|
-
export { Chorus, Distortion, Equalizer, Limiter, Saturation, StereoPanner, Compressor, MultibandCompressor, AdvancedDelay, MonoDelay, PingPongDelay, StereoDelay, ChamberReverb, ConvolverReverb, GenericReverb, HallReverb, RoomReverb, SoftClip, LowPassFilter, HardClip } from "./effects/exports";
|
|
18
|
+
export { Chorus, Analyser, Distortion, Equalizer, Limiter, Saturation, StereoPanner, Compressor, MultibandCompressor, AdvancedDelay, MonoDelay, PingPongDelay, StereoDelay, ChamberReverb, ConvolverReverb, GenericReverb, HallReverb, RoomReverb, SoftClip, LowPassFilter, HardClip } from "./effects/exports";
|
|
25
19
|
export { AudioDevice, Channel, Effector, Master, AudioClip, DspPipeline, AudioClipPlayer } from "./core/exports";
|
|
26
20
|
export { InitializeDspPipeline, ResolveAudioOutputDevices, ResolveAudioInputDevices, ResolveDefaultAudioInputDevice, ResolveDefaultAudioOutputDevice, LoadAudioSource, LoadAudioSourceFromBlob, LoadWorkletOnAudioDevice, SendMessageToWorklet } from "./utilities/helpers";
|
|
27
21
|
export { SUPPORTED_FILE_TYPES } from "./utilities/constants";
|
|
28
22
|
export { hasInitializedWasm, } from "./utilities/web-assembly";
|
|
23
|
+
export { StrictMode, ProcessorIdentificationCodes, HardClipMessageCommandId, SoftClipMessageCommandId, AudioWorkletProcessorNames, ChorusMessageCommandId, LowPassFilterMessageCommandId } from "./typings";
|
package/lib/dist/typings.d.ts
CHANGED
|
@@ -51,26 +51,23 @@ export declare enum ProcessorIdentificationCodes {
|
|
|
51
51
|
UnknownProcessorName = "UNKNOWN_PROCESSOR_NAME",
|
|
52
52
|
UnknownProcessorCreationDate = "UNKNOWN_PROCESSOR_CREATION_DATE"
|
|
53
53
|
}
|
|
54
|
-
export
|
|
54
|
+
export declare enum StrictMode {
|
|
55
|
+
Disabled = 0,
|
|
56
|
+
Enabled = 1
|
|
57
|
+
}
|
|
58
|
+
export interface DspDebuggerOptions {
|
|
55
59
|
breakOnError: boolean;
|
|
56
60
|
showInfo: boolean;
|
|
57
61
|
showErrors: boolean;
|
|
58
62
|
showWarnings: boolean;
|
|
59
63
|
}
|
|
60
|
-
export interface
|
|
64
|
+
export interface DspOptions {
|
|
61
65
|
maxMasterChannels: number;
|
|
62
66
|
maxTotalChannels: number;
|
|
63
67
|
sampleRate: number;
|
|
64
68
|
spatialization: ChannelSpatialization;
|
|
65
|
-
debugger:
|
|
66
|
-
|
|
67
|
-
export interface FluexGLAudioDescriptor {
|
|
68
|
-
name: string;
|
|
69
|
-
author: string;
|
|
70
|
-
version: string;
|
|
71
|
-
license: string;
|
|
72
|
-
repository: string;
|
|
73
|
-
options: FluexGLAudioOptions;
|
|
69
|
+
debugger: DspDebuggerOptions;
|
|
70
|
+
overrideMaxAudioBufferNodes: boolean;
|
|
74
71
|
}
|
|
75
72
|
export interface LoadAudioSourceOptions {
|
|
76
73
|
allowForeignFileTypes: boolean;
|
|
@@ -99,6 +96,7 @@ export interface AudioClipEventMap {
|
|
|
99
96
|
export interface DspPipelineInitializationOptions {
|
|
100
97
|
pathToWasm: string;
|
|
101
98
|
pathToWorklet: string;
|
|
99
|
+
options?: Partial<DspOptions>;
|
|
102
100
|
}
|
|
103
101
|
export interface DspPipelineInitializationState {
|
|
104
102
|
success: boolean;
|
|
@@ -110,19 +108,23 @@ export interface ChorusEffectOptions {
|
|
|
110
108
|
rateHz: number;
|
|
111
109
|
mix: number;
|
|
112
110
|
feedback: number;
|
|
111
|
+
strictMode: StrictMode;
|
|
113
112
|
}
|
|
114
113
|
export interface LowPassFilterOptions {
|
|
115
114
|
cutoff: number;
|
|
116
115
|
minFrequency: number;
|
|
117
116
|
q: number;
|
|
117
|
+
strictMode: StrictMode;
|
|
118
118
|
}
|
|
119
119
|
export interface SoftClipOptions {
|
|
120
120
|
drive: number;
|
|
121
121
|
gain: number;
|
|
122
|
+
strictMode: StrictMode;
|
|
122
123
|
}
|
|
123
124
|
export interface HardClipOptions {
|
|
124
125
|
drive: number;
|
|
125
126
|
gain: number;
|
|
127
|
+
strictMode: StrictMode;
|
|
126
128
|
}
|
|
127
129
|
export interface EffectorEventMap {
|
|
128
130
|
"incoming-processor-message": (message: IncomingProcessorMessage) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typings.d.ts","sourceRoot":"","sources":["../src/typings.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AACnE,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,MAAM,CAAC;AACnD,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,aAAa,GAAG,aAAa,GAAG,uBAAuB,CAAC;AAC5G,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,mBAAmB,CAAC;AAExF,MAAM,MAAM,eAAe,GAAG;KACzB,CAAC,IAAI,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE;CACzD,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;KACxB,CAAC,IAAI,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE;CACvD,CAAA;AAED,oBAAY,6BAA6B;IACrC,SAAS,IAAA;IACT,eAAe,IAAA;IACf,IAAI,IAAA;CACP;AAED,oBAAY,sBAAsB;IAC9B,cAAc,IAAA;IACd,UAAU,IAAA;IACV,SAAS,IAAA;IACT,MAAM,IAAA;IACN,WAAW,IAAA;CACd;AAED,oBAAY,wBAAwB;IAChC,QAAQ,IAAA;IACR,OAAO,IAAA;CACV;AAED,oBAAY,wBAAwB;IAChC,QAAQ,IAAA;IACR,OAAO,IAAA;CACV;AAED,oBAAY,0BAA0B;IAClC,UAAU,wBAAwB;IAClC,mBAAmB,iCAAiC;IACpD,aAAa,2BAA2B;IACxC,SAAS,uBAAuB;IAChC,aAAa,2BAA2B;IACxC,WAAW,yBAAyB;IACpC,aAAa,2BAA2B;IACxC,cAAc,4BAA4B;IAC1C,cAAc,4BAA4B;IAC1C,WAAW,yBAAyB;IACpC,MAAM,oBAAoB;IAC1B,OAAO,qBAAqB;IAC5B,MAAM,oBAAoB;IAC1B,MAAM,oBAAoB;IAC1B,QAAQ,sBAAsB;IAC9B,QAAQ,sBAAsB;CACjC;AAED,oBAAY,4BAA4B;IACpC,kBAAkB,yBAAyB;IAC3C,oBAAoB,2BAA2B;IAC/C,4BAA4B,oCAAoC;CACnE;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"typings.d.ts","sourceRoot":"","sources":["../src/typings.ts"],"names":[],"mappings":"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"}
|
package/lib/dist/typings.js
CHANGED
|
@@ -47,3 +47,8 @@ export var ProcessorIdentificationCodes;
|
|
|
47
47
|
ProcessorIdentificationCodes["UnknownProcessorName"] = "UNKNOWN_PROCESSOR_NAME";
|
|
48
48
|
ProcessorIdentificationCodes["UnknownProcessorCreationDate"] = "UNKNOWN_PROCESSOR_CREATION_DATE";
|
|
49
49
|
})(ProcessorIdentificationCodes || (ProcessorIdentificationCodes = {}));
|
|
50
|
+
export var StrictMode;
|
|
51
|
+
(function (StrictMode) {
|
|
52
|
+
StrictMode[StrictMode["Disabled"] = 0] = "Disabled";
|
|
53
|
+
StrictMode[StrictMode["Enabled"] = 1] = "Enabled";
|
|
54
|
+
})(StrictMode || (StrictMode = {}));
|