@fluex/fluexgl-dsp 0.1.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 +87 -0
- package/lib/dist/console-codes.d.ts +14 -0
- package/lib/dist/console-codes.d.ts.map +1 -0
- package/lib/dist/console-codes.js +16 -0
- package/lib/dist/core/classes/AudioClip.d.ts +67 -0
- package/lib/dist/core/classes/AudioClip.d.ts.map +1 -0
- package/lib/dist/core/classes/AudioClip.js +410 -0
- package/lib/dist/core/classes/AudioDevice.d.ts +13 -0
- package/lib/dist/core/classes/AudioDevice.d.ts.map +1 -0
- package/lib/dist/core/classes/AudioDevice.js +30 -0
- package/lib/dist/core/classes/Channel.d.ts +30 -0
- package/lib/dist/core/classes/Channel.d.ts.map +1 -0
- package/lib/dist/core/classes/Channel.js +144 -0
- package/lib/dist/core/classes/DpsPipeline.d.ts +60 -0
- package/lib/dist/core/classes/DpsPipeline.d.ts.map +1 -0
- package/lib/dist/core/classes/DpsPipeline.js +115 -0
- package/lib/dist/core/classes/Effector.d.ts +8 -0
- package/lib/dist/core/classes/Effector.d.ts.map +1 -0
- package/lib/dist/core/classes/Effector.js +7 -0
- package/lib/dist/core/classes/Master.d.ts +12 -0
- package/lib/dist/core/classes/Master.d.ts.map +1 -0
- package/lib/dist/core/classes/Master.js +35 -0
- package/lib/dist/core/exports.d.ts +7 -0
- package/lib/dist/core/exports.d.ts.map +1 -0
- package/lib/dist/core/exports.js +6 -0
- package/lib/dist/effects/classes/Chorus.d.ts +19 -0
- package/lib/dist/effects/classes/Chorus.d.ts.map +1 -0
- package/lib/dist/effects/classes/Chorus.js +83 -0
- package/lib/dist/effects/classes/Distortion.d.ts +3 -0
- package/lib/dist/effects/classes/Distortion.d.ts.map +1 -0
- package/lib/dist/effects/classes/Distortion.js +2 -0
- package/lib/dist/effects/classes/Equalizer.d.ts +3 -0
- package/lib/dist/effects/classes/Equalizer.d.ts.map +1 -0
- package/lib/dist/effects/classes/Equalizer.js +2 -0
- package/lib/dist/effects/classes/Filter.d.ts +3 -0
- package/lib/dist/effects/classes/Filter.d.ts.map +1 -0
- package/lib/dist/effects/classes/Filter.js +2 -0
- package/lib/dist/effects/classes/Limiter.d.ts +3 -0
- package/lib/dist/effects/classes/Limiter.d.ts.map +1 -0
- package/lib/dist/effects/classes/Limiter.js +2 -0
- package/lib/dist/effects/classes/Saturation.d.ts +3 -0
- package/lib/dist/effects/classes/Saturation.d.ts.map +1 -0
- package/lib/dist/effects/classes/Saturation.js +2 -0
- package/lib/dist/effects/classes/SoftClip.d.ts +8 -0
- package/lib/dist/effects/classes/SoftClip.d.ts.map +1 -0
- package/lib/dist/effects/classes/SoftClip.js +37 -0
- package/lib/dist/effects/classes/StereoPanner.d.ts +3 -0
- package/lib/dist/effects/classes/StereoPanner.d.ts.map +1 -0
- package/lib/dist/effects/classes/StereoPanner.js +2 -0
- package/lib/dist/effects/classes/compressors/Compressor.d.ts +3 -0
- package/lib/dist/effects/classes/compressors/Compressor.d.ts.map +1 -0
- package/lib/dist/effects/classes/compressors/Compressor.js +2 -0
- package/lib/dist/effects/classes/compressors/MultibandCompressor.d.ts +3 -0
- package/lib/dist/effects/classes/compressors/MultibandCompressor.d.ts.map +1 -0
- package/lib/dist/effects/classes/compressors/MultibandCompressor.js +2 -0
- package/lib/dist/effects/classes/delays/AdvancedDelay.d.ts +3 -0
- package/lib/dist/effects/classes/delays/AdvancedDelay.d.ts.map +1 -0
- package/lib/dist/effects/classes/delays/AdvancedDelay.js +2 -0
- package/lib/dist/effects/classes/delays/MonoDelay.d.ts +3 -0
- package/lib/dist/effects/classes/delays/MonoDelay.d.ts.map +1 -0
- package/lib/dist/effects/classes/delays/MonoDelay.js +2 -0
- package/lib/dist/effects/classes/delays/PingPongDelay.d.ts +3 -0
- package/lib/dist/effects/classes/delays/PingPongDelay.d.ts.map +1 -0
- package/lib/dist/effects/classes/delays/PingPongDelay.js +2 -0
- package/lib/dist/effects/classes/delays/StereoDelay.d.ts +3 -0
- package/lib/dist/effects/classes/delays/StereoDelay.d.ts.map +1 -0
- package/lib/dist/effects/classes/delays/StereoDelay.js +2 -0
- package/lib/dist/effects/classes/reverbs/ChamberReverb.d.ts +3 -0
- package/lib/dist/effects/classes/reverbs/ChamberReverb.d.ts.map +1 -0
- package/lib/dist/effects/classes/reverbs/ChamberReverb.js +2 -0
- package/lib/dist/effects/classes/reverbs/ConvolverReverb.d.ts +3 -0
- package/lib/dist/effects/classes/reverbs/ConvolverReverb.d.ts.map +1 -0
- package/lib/dist/effects/classes/reverbs/ConvolverReverb.js +2 -0
- package/lib/dist/effects/classes/reverbs/GenericReverb.d.ts +3 -0
- package/lib/dist/effects/classes/reverbs/GenericReverb.d.ts.map +1 -0
- package/lib/dist/effects/classes/reverbs/GenericReverb.js +2 -0
- package/lib/dist/effects/classes/reverbs/HallReverb.d.ts +3 -0
- package/lib/dist/effects/classes/reverbs/HallReverb.d.ts.map +1 -0
- package/lib/dist/effects/classes/reverbs/HallReverb.js +2 -0
- package/lib/dist/effects/classes/reverbs/RoomReverb.d.ts +3 -0
- package/lib/dist/effects/classes/reverbs/RoomReverb.d.ts.map +1 -0
- package/lib/dist/effects/classes/reverbs/RoomReverb.js +2 -0
- package/lib/dist/effects/exports.d.ts +20 -0
- package/lib/dist/effects/exports.d.ts.map +1 -0
- package/lib/dist/effects/exports.js +19 -0
- package/lib/dist/index.d.ts +13 -0
- package/lib/dist/index.d.ts.map +1 -0
- package/lib/dist/index.js +28 -0
- package/lib/dist/typings.d.ts +67 -0
- package/lib/dist/typings.d.ts.map +1 -0
- package/lib/dist/typings.js +1 -0
- package/lib/dist/utilities/constants.d.ts +2 -0
- package/lib/dist/utilities/constants.d.ts.map +1 -0
- package/lib/dist/utilities/constants.js +9 -0
- package/lib/dist/utilities/debugger.d.ts +8 -0
- package/lib/dist/utilities/debugger.d.ts.map +1 -0
- package/lib/dist/utilities/debugger.js +49 -0
- package/lib/dist/utilities/helpers.d.ts +41 -0
- package/lib/dist/utilities/helpers.d.ts.map +1 -0
- package/lib/dist/utilities/helpers.js +148 -0
- package/lib/dist/utilities/web-assembly.d.ts +4 -0
- package/lib/dist/utilities/web-assembly.d.ts.map +1 -0
- package/lib/dist/utilities/web-assembly.js +12 -0
- package/lib/src/console-codes.ts +16 -0
- package/lib/src/core/classes/AudioClip.ts +545 -0
- package/lib/src/core/classes/AudioDevice.ts +39 -0
- package/lib/src/core/classes/Channel.ts +199 -0
- package/lib/src/core/classes/DpsPipeline.ts +153 -0
- package/lib/src/core/classes/Effector.ts +11 -0
- package/lib/src/core/classes/Master.ts +50 -0
- package/lib/src/core/exports.ts +6 -0
- package/lib/src/effects/classes/Chorus.ts +109 -0
- package/lib/src/effects/classes/Distortion.ts +1 -0
- package/lib/src/effects/classes/Equalizer.ts +1 -0
- package/lib/src/effects/classes/Filter.ts +1 -0
- package/lib/src/effects/classes/Limiter.ts +1 -0
- package/lib/src/effects/classes/Saturation.ts +1 -0
- package/lib/src/effects/classes/SoftClip.ts +42 -0
- package/lib/src/effects/classes/StereoPanner.ts +1 -0
- package/lib/src/effects/classes/compressors/Compressor.ts +1 -0
- package/lib/src/effects/classes/compressors/MultibandCompressor.ts +1 -0
- package/lib/src/effects/classes/delays/AdvancedDelay.ts +1 -0
- package/lib/src/effects/classes/delays/MonoDelay.ts +1 -0
- package/lib/src/effects/classes/delays/PingPongDelay.ts +1 -0
- package/lib/src/effects/classes/delays/StereoDelay.ts +1 -0
- package/lib/src/effects/classes/reverbs/ChamberReverb.ts +1 -0
- package/lib/src/effects/classes/reverbs/ConvolverReverb.ts +1 -0
- package/lib/src/effects/classes/reverbs/GenericReverb.ts +1 -0
- package/lib/src/effects/classes/reverbs/HallReverb.ts +1 -0
- package/lib/src/effects/classes/reverbs/RoomReverb.ts +1 -0
- package/lib/src/effects/exports.ts +22 -0
- package/lib/src/index.ts +93 -0
- package/lib/src/typings.ts +79 -0
- package/lib/src/utilities/constants.ts +9 -0
- package/lib/src/utilities/debugger.ts +66 -0
- package/lib/src/utilities/helpers.ts +215 -0
- package/lib/src/utilities/web-assembly.ts +14 -0
- package/package.json +50 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { compiledWebAssemblyModule } from "../../utilities/web-assembly";
|
|
2
|
+
import { Effector } from "../../core/classes/Effector";
|
|
3
|
+
import { Debug } from "../../utilities/debugger";
|
|
4
|
+
export class SoftClip extends Effector {
|
|
5
|
+
drive;
|
|
6
|
+
constructor(drive = 1) {
|
|
7
|
+
super();
|
|
8
|
+
this.drive = drive;
|
|
9
|
+
}
|
|
10
|
+
async InitializeOnAttachment(parentialContext) {
|
|
11
|
+
if (!compiledWebAssemblyModule)
|
|
12
|
+
return Debug.Error("Could not initialize effector because the nessecary WASM file has not been specified.", [
|
|
13
|
+
`Effector type: SoftClip`
|
|
14
|
+
]);
|
|
15
|
+
this.audioWorkletNode = new AudioWorkletNode(parentialContext, "SoftClipProcessor", {
|
|
16
|
+
numberOfInputs: 1,
|
|
17
|
+
numberOfOutputs: 1,
|
|
18
|
+
outputChannelCount: [2],
|
|
19
|
+
parameterData: {
|
|
20
|
+
drive: this.drive
|
|
21
|
+
},
|
|
22
|
+
processorOptions: {
|
|
23
|
+
module: compiledWebAssemblyModule
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
this.parentialContext = parentialContext;
|
|
27
|
+
}
|
|
28
|
+
SetDrive(drive) {
|
|
29
|
+
if (this.audioWorkletNode)
|
|
30
|
+
this.audioWorkletNode.port.postMessage({
|
|
31
|
+
type: "set-drive",
|
|
32
|
+
value: drive
|
|
33
|
+
});
|
|
34
|
+
this.drive = drive;
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StereoPanner.d.ts","sourceRoot":"","sources":["../../../src/effects/classes/StereoPanner.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAY;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Compressor.d.ts","sourceRoot":"","sources":["../../../../src/effects/classes/compressors/Compressor.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAU;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultibandCompressor.d.ts","sourceRoot":"","sources":["../../../../src/effects/classes/compressors/MultibandCompressor.ts"],"names":[],"mappings":"AAAA,qBAAa,mBAAmB;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdvancedDelay.d.ts","sourceRoot":"","sources":["../../../../src/effects/classes/delays/AdvancedDelay.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAa;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MonoDelay.d.ts","sourceRoot":"","sources":["../../../../src/effects/classes/delays/MonoDelay.ts"],"names":[],"mappings":"AAAA,qBAAa,SAAS;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PingPongDelay.d.ts","sourceRoot":"","sources":["../../../../src/effects/classes/delays/PingPongDelay.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAa;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StereoDelay.d.ts","sourceRoot":"","sources":["../../../../src/effects/classes/delays/StereoDelay.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAW;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChamberReverb.d.ts","sourceRoot":"","sources":["../../../../src/effects/classes/reverbs/ChamberReverb.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAa;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConvolverReverb.d.ts","sourceRoot":"","sources":["../../../../src/effects/classes/reverbs/ConvolverReverb.ts"],"names":[],"mappings":"AAAA,qBAAa,eAAe;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenericReverb.d.ts","sourceRoot":"","sources":["../../../../src/effects/classes/reverbs/GenericReverb.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAa;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HallReverb.d.ts","sourceRoot":"","sources":["../../../../src/effects/classes/reverbs/HallReverb.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAU;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RoomReverb.d.ts","sourceRoot":"","sources":["../../../../src/effects/classes/reverbs/RoomReverb.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAU;CAAG"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export { Chorus } from "./classes/Chorus";
|
|
2
|
+
export { Distortion } from "./classes/Distortion";
|
|
3
|
+
export { Equalizer } from "./classes/Equalizer";
|
|
4
|
+
export { Filter } from "./classes/Filter";
|
|
5
|
+
export { Limiter } from "./classes/Limiter";
|
|
6
|
+
export { Saturation } from "./classes/Saturation";
|
|
7
|
+
export { StereoPanner } from "./classes/StereoPanner";
|
|
8
|
+
export { SoftClip } from "./classes/SoftClip";
|
|
9
|
+
export { Compressor } from "./classes/compressors/Compressor";
|
|
10
|
+
export { MultibandCompressor } from "./classes/compressors/MultibandCompressor";
|
|
11
|
+
export { AdvancedDelay } from "./classes/delays/AdvancedDelay";
|
|
12
|
+
export { MonoDelay } from "./classes/delays/MonoDelay";
|
|
13
|
+
export { PingPongDelay } from "./classes/delays/PingPongDelay";
|
|
14
|
+
export { StereoDelay } from "./classes/delays/StereoDelay";
|
|
15
|
+
export { ChamberReverb } from "./classes/reverbs/ChamberReverb";
|
|
16
|
+
export { ConvolverReverb } from "./classes/reverbs/ConvolverReverb";
|
|
17
|
+
export { GenericReverb } from "./classes/reverbs/GenericReverb";
|
|
18
|
+
export { HallReverb } from "./classes/reverbs/HallReverb";
|
|
19
|
+
export { RoomReverb } from "./classes/reverbs/RoomReverb";
|
|
20
|
+
//# sourceMappingURL=exports.d.ts.map
|
|
@@ -0,0 +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,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,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,oBAAoB,CAAC;AAE9C,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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export { Chorus } from "./classes/Chorus";
|
|
2
|
+
export { Distortion } from "./classes/Distortion";
|
|
3
|
+
export { Equalizer } from "./classes/Equalizer";
|
|
4
|
+
export { Filter } from "./classes/Filter";
|
|
5
|
+
export { Limiter } from "./classes/Limiter";
|
|
6
|
+
export { Saturation } from "./classes/Saturation";
|
|
7
|
+
export { StereoPanner } from "./classes/StereoPanner";
|
|
8
|
+
export { SoftClip } from "./classes/SoftClip";
|
|
9
|
+
export { Compressor } from "./classes/compressors/Compressor";
|
|
10
|
+
export { MultibandCompressor } from "./classes/compressors/MultibandCompressor";
|
|
11
|
+
export { AdvancedDelay } from "./classes/delays/AdvancedDelay";
|
|
12
|
+
export { MonoDelay } from "./classes/delays/MonoDelay";
|
|
13
|
+
export { PingPongDelay } from "./classes/delays/PingPongDelay";
|
|
14
|
+
export { StereoDelay } from "./classes/delays/StereoDelay";
|
|
15
|
+
export { ChamberReverb } from "./classes/reverbs/ChamberReverb";
|
|
16
|
+
export { ConvolverReverb } from "./classes/reverbs/ConvolverReverb";
|
|
17
|
+
export { GenericReverb } from "./classes/reverbs/GenericReverb";
|
|
18
|
+
export { HallReverb } from "./classes/reverbs/HallReverb";
|
|
19
|
+
export { RoomReverb } from "./classes/reverbs/RoomReverb";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FluexGL Audio
|
|
3
|
+
* A javascript digital audio processor library.
|
|
4
|
+
*/
|
|
5
|
+
import { FluexGLAudioDescriptor } from "./typings";
|
|
6
|
+
export declare const FluexGLAudio: FluexGLAudioDescriptor;
|
|
7
|
+
export { Chorus, Distortion, Equalizer, Filter, Limiter, Saturation, StereoPanner, Compressor, MultibandCompressor, AdvancedDelay, MonoDelay, PingPongDelay, StereoDelay, ChamberReverb, ConvolverReverb, GenericReverb, HallReverb, RoomReverb, SoftClip } from "./effects/exports";
|
|
8
|
+
export { AudioDevice, Channel, Effector, Master, AudioClip, DspPipeline } from "./core/exports";
|
|
9
|
+
export { InitializeDspPipeline, ResolveAudioOutputDevices, ResolveAudioInputDevices, ResolveDefaultAudioInputDevice, ResolveDefaultAudioOutputDevice, LoadAudioSource, LoadWorkletOnMasterChannel, } from "./utilities/helpers";
|
|
10
|
+
export { SUPPORTED_FILE_TYPES } from "./utilities/constants";
|
|
11
|
+
export { hasInitializedWasm, } from "./utilities/web-assembly";
|
|
12
|
+
export type { FluexGLAudioDescriptor, FluexGLAudioDebuggerOptions, FluexGLAudioOptions, LoadAudioSourceOptions, AudioSourceData, ChannelOptions, ChannelSpatialization, AudioClipEventMap, AudioClipEvents, AudioClipOnProgressEvent, AudioClipAnalyserProperty, AudioClipAnalyserType, DspPipelineInitializationOptions, DspPipelineInitializationState, ChorusEffectOptions } from "./typings";
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEnD,eAAO,MAAM,YAAY,EAAE,sBAkB1B,CAAA;AAED,OAAO,EACH,MAAM,EACN,UAAU,EACV,SAAS,EACT,MAAM,EACN,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,EACX,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACH,WAAW,EACX,OAAO,EACP,QAAQ,EACR,MAAM,EACN,SAAS,EACT,WAAW,EACd,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACH,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,8BAA8B,EAC9B,+BAA+B,EAC/B,eAAe,EACf,0BAA0B,GAC7B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACH,oBAAoB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACH,kBAAkB,GACrB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACR,sBAAsB,EACtB,2BAA2B,EAC3B,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,gCAAgC,EAChC,8BAA8B,EAC9B,mBAAmB,EACtB,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FluexGL Audio
|
|
3
|
+
* A javascript digital audio processor library.
|
|
4
|
+
*/
|
|
5
|
+
export const FluexGLAudio = {
|
|
6
|
+
name: "FluexGL Audio",
|
|
7
|
+
author: "Rohan Kanhaisingh",
|
|
8
|
+
version: "0.0.2",
|
|
9
|
+
license: "MIT",
|
|
10
|
+
repository: "https://github.com/rohankanhaisingh/FluexGL-Audio",
|
|
11
|
+
options: {
|
|
12
|
+
maxMasterChannels: 8,
|
|
13
|
+
maxTotalChannels: 128,
|
|
14
|
+
sampleRate: 44000,
|
|
15
|
+
spatialization: "stereo",
|
|
16
|
+
debugger: {
|
|
17
|
+
showErrors: true,
|
|
18
|
+
showInfo: true,
|
|
19
|
+
showWarnings: true,
|
|
20
|
+
breakOnError: true
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
export { Chorus, Distortion, Equalizer, Filter, Limiter, Saturation, StereoPanner, Compressor, MultibandCompressor, AdvancedDelay, MonoDelay, PingPongDelay, StereoDelay, ChamberReverb, ConvolverReverb, GenericReverb, HallReverb, RoomReverb, SoftClip } from "./effects/exports";
|
|
25
|
+
export { AudioDevice, Channel, Effector, Master, AudioClip, DspPipeline } from "./core/exports";
|
|
26
|
+
export { InitializeDspPipeline, ResolveAudioOutputDevices, ResolveAudioInputDevices, ResolveDefaultAudioInputDevice, ResolveDefaultAudioOutputDevice, LoadAudioSource, LoadWorkletOnMasterChannel, } from "./utilities/helpers";
|
|
27
|
+
export { SUPPORTED_FILE_TYPES } from "./utilities/constants";
|
|
28
|
+
export { hasInitializedWasm, } from "./utilities/web-assembly";
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export type ChannelSpatialization = "mono" | "stereo" | "surround";
|
|
2
|
+
export type AudioClipAnalyserType = "pre" | "post";
|
|
3
|
+
export type AudioClipAnalyserProperty = "fftSize" | "minDecibels" | "maxDecibels" | "smoothingTimeConstant";
|
|
4
|
+
export type AudioClipEvents = {
|
|
5
|
+
[K in keyof AudioClipEventMap]: AudioClipEventMap[K][];
|
|
6
|
+
};
|
|
7
|
+
export interface FluexGLAudioDebuggerOptions {
|
|
8
|
+
breakOnError: boolean;
|
|
9
|
+
showInfo: boolean;
|
|
10
|
+
showErrors: boolean;
|
|
11
|
+
showWarnings: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface FluexGLAudioOptions {
|
|
14
|
+
maxMasterChannels: number;
|
|
15
|
+
maxTotalChannels: number;
|
|
16
|
+
sampleRate: number;
|
|
17
|
+
spatialization: ChannelSpatialization;
|
|
18
|
+
debugger: FluexGLAudioDebuggerOptions;
|
|
19
|
+
}
|
|
20
|
+
export interface FluexGLAudioDescriptor {
|
|
21
|
+
name: string;
|
|
22
|
+
author: string;
|
|
23
|
+
version: string;
|
|
24
|
+
license: string;
|
|
25
|
+
repository: string;
|
|
26
|
+
options: FluexGLAudioOptions;
|
|
27
|
+
}
|
|
28
|
+
export interface LoadAudioSourceOptions {
|
|
29
|
+
allowForeignFileTypes: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface AudioSourceData {
|
|
32
|
+
arrayBuffer: ArrayBuffer;
|
|
33
|
+
audioBuffer: AudioBuffer;
|
|
34
|
+
id: string;
|
|
35
|
+
timestamp: number;
|
|
36
|
+
}
|
|
37
|
+
export interface ChannelOptions {
|
|
38
|
+
label: string | null;
|
|
39
|
+
maxAudioNodes: number;
|
|
40
|
+
maxEffects: number;
|
|
41
|
+
}
|
|
42
|
+
export interface AudioClipOnProgressEvent {
|
|
43
|
+
startTime: number;
|
|
44
|
+
offset: number;
|
|
45
|
+
current: number;
|
|
46
|
+
contextTimestamp: number;
|
|
47
|
+
formatted: string;
|
|
48
|
+
}
|
|
49
|
+
export interface AudioClipEventMap {
|
|
50
|
+
"progress": (event: AudioClipOnProgressEvent) => void;
|
|
51
|
+
}
|
|
52
|
+
export interface DspPipelineInitializationOptions {
|
|
53
|
+
pathToWasm: string;
|
|
54
|
+
pathToWorklet: string;
|
|
55
|
+
}
|
|
56
|
+
export interface DspPipelineInitializationState {
|
|
57
|
+
success: boolean;
|
|
58
|
+
workletBlobUrl: string;
|
|
59
|
+
}
|
|
60
|
+
export interface ChorusEffectOptions {
|
|
61
|
+
baseDelayMs?: number;
|
|
62
|
+
depthMs?: number;
|
|
63
|
+
rateHz?: number;
|
|
64
|
+
mix?: number;
|
|
65
|
+
feedback?: number;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=typings.d.ts.map
|
|
@@ -0,0 +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;AAEnE,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,MAAM,CAAC;AACnD,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,aAAa,GAAG,aAAa,GAAG,uBAAuB,CAAC;AAE5G,MAAM,MAAM,eAAe,GAAI;KAC1B,CAAC,IAAI,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE;CACzD,CAAA;AAED,MAAM,WAAW,2BAA2B;IACxC,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,qBAAqB,CAAC;IACtC,QAAQ,EAAE,2BAA2B,CAAC;CACzC;AAED,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,mBAAmB,CAAC;CAChC;AAED,MAAM,WAAW,sBAAsB;IACnC,qBAAqB,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAC9B,UAAU,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;CACzD;AAED,MAAM,WAAW,gCAAgC;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,8BAA8B;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utilities/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,EAAE,MAAM,EAQxC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ErrorCodes, WarningCodes } from "../console-codes";
|
|
2
|
+
export declare namespace Debug {
|
|
3
|
+
function Log(message: string, additionalDetails?: string[]): void;
|
|
4
|
+
function Success(message: string, additionalDetails?: string[]): void;
|
|
5
|
+
function Warn(message: string, additionalDetails?: string[], warningCode?: WarningCodes): void;
|
|
6
|
+
function Error(message: string, additionalDetails?: string[], errorCode?: ErrorCodes): void;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=debugger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debugger.d.ts","sourceRoot":"","sources":["../../src/utilities/debugger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAI5D,yBAAiB,KAAK,CAAC;IAEnB,SAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,QAWhE;IAED,SAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,QAWpE;IAED,SAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,EAAE,YAAY,QAW7F;IAED,SAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,UAAU,QAmB1F;CACJ"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { FluexGLAudio } from "../index";
|
|
2
|
+
export var Debug;
|
|
3
|
+
(function (Debug) {
|
|
4
|
+
function Log(message, additionalDetails) {
|
|
5
|
+
if (!FluexGLAudio.options.debugger.showInfo)
|
|
6
|
+
return;
|
|
7
|
+
let outputString = `%c[INFO]: %c${message} %c`;
|
|
8
|
+
additionalDetails && additionalDetails.forEach(function (detail) {
|
|
9
|
+
outputString += `\n\u0009 > ${detail}`;
|
|
10
|
+
});
|
|
11
|
+
return console.log(outputString, "color: white;", "color: gray", "color: gray");
|
|
12
|
+
}
|
|
13
|
+
Debug.Log = Log;
|
|
14
|
+
function Success(message, additionalDetails) {
|
|
15
|
+
if (!FluexGLAudio.options.debugger.showInfo)
|
|
16
|
+
return;
|
|
17
|
+
let outputString = `%c[SUCCESS]: %c${message} %c`;
|
|
18
|
+
additionalDetails && additionalDetails.forEach(function (detail) {
|
|
19
|
+
outputString += `\n\u0009 > ${detail}`;
|
|
20
|
+
});
|
|
21
|
+
return console.log(outputString, "color: lime;", "color: white", "color: gray");
|
|
22
|
+
}
|
|
23
|
+
Debug.Success = Success;
|
|
24
|
+
function Warn(message, additionalDetails, warningCode) {
|
|
25
|
+
if (!FluexGLAudio.options.debugger.showWarnings)
|
|
26
|
+
return;
|
|
27
|
+
let outputString = `%c(${warningCode ? warningCode : "Unknown".toUpperCase()}) %c[WARNING]: %c${message} %c`;
|
|
28
|
+
(additionalDetails && additionalDetails !== null) && additionalDetails.forEach(function (detail) {
|
|
29
|
+
outputString += `\n\u0009 > ${detail}`;
|
|
30
|
+
});
|
|
31
|
+
return console.log(outputString, "color: gray", "color: yellow;", "color: white", "color: white; font-style: italic;");
|
|
32
|
+
}
|
|
33
|
+
Debug.Warn = Warn;
|
|
34
|
+
function Error(message, additionalDetails, errorCode) {
|
|
35
|
+
if (!FluexGLAudio.options.debugger.showErrors)
|
|
36
|
+
return;
|
|
37
|
+
let outputString = `%c(${errorCode ? errorCode : "Unknown".toUpperCase()}) %c[ERROR]: %c${message} %c`;
|
|
38
|
+
(additionalDetails && additionalDetails !== null) && additionalDetails.forEach(function (detail) {
|
|
39
|
+
outputString += `\n\u0009 > ${detail}`;
|
|
40
|
+
});
|
|
41
|
+
console.log(outputString, "color: red", "color: red;", "color: white", "color: white; font-style: italic;");
|
|
42
|
+
if (FluexGLAudio.options.debugger.breakOnError) {
|
|
43
|
+
for (let char of message)
|
|
44
|
+
outputString = outputString.replace("%c", "");
|
|
45
|
+
throw new window.Error(outputString);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
Debug.Error = Error;
|
|
49
|
+
})(Debug || (Debug = {}));
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { AudioDevice } from "../core/classes/AudioDevice";
|
|
2
|
+
import { Master } from "../core/classes/Master";
|
|
3
|
+
import { LoadAudioSourceOptions, AudioSourceData, DspPipelineInitializationOptions, DspPipelineInitializationState } from "../typings";
|
|
4
|
+
/**
|
|
5
|
+
* Initializes the DSP pipeline by requesting audio permissions and initializing the WASM module.
|
|
6
|
+
* Very important to call this function and wait for it to complete before using any audio features.
|
|
7
|
+
*
|
|
8
|
+
* FluexGL DSP cannot be used without calling this function first.
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
export declare function InitializeDspPipeline(options: DspPipelineInitializationOptions): Promise<DspPipelineInitializationState | null>;
|
|
12
|
+
/**
|
|
13
|
+
* Resolves a list of available audio output devices.
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
export declare function ResolveAudioOutputDevices(): Promise<AudioDevice[]>;
|
|
17
|
+
/**
|
|
18
|
+
* Resolves a list of available audio input devices.
|
|
19
|
+
* @returns
|
|
20
|
+
*/
|
|
21
|
+
export declare function ResolveAudioInputDevices(): Promise<AudioDevice[]>;
|
|
22
|
+
/**
|
|
23
|
+
* Resolves the default audio output device.
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
26
|
+
export declare function ResolveDefaultAudioOutputDevice(init: DspPipelineInitializationState): Promise<AudioDevice | null>;
|
|
27
|
+
/**
|
|
28
|
+
* Resolves the default audio input device.
|
|
29
|
+
* @returns
|
|
30
|
+
*/
|
|
31
|
+
export declare function ResolveDefaultAudioInputDevice(init: DspPipelineInitializationState): Promise<AudioDevice | null>;
|
|
32
|
+
/**
|
|
33
|
+
* Loads an audio source from a specified path.
|
|
34
|
+
* @param path
|
|
35
|
+
* @param options
|
|
36
|
+
* @returns
|
|
37
|
+
*/
|
|
38
|
+
export declare function LoadAudioSource(path: string, options?: Partial<LoadAudioSourceOptions>): Promise<AudioSourceData | null>;
|
|
39
|
+
export declare function ConstructProcessorWorklet(code: string): string;
|
|
40
|
+
export declare function LoadWorkletOnMasterChannel(master: Master, workletBlobUrl: string): Promise<boolean>;
|
|
41
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utilities/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAQhD,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,gCAAgC,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAEvI;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,gCAAgC,GAAG,OAAO,CAAC,8BAA8B,GAAG,IAAI,CAAC,CAwCrI;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAUxE;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAUvE;AAED;;;GAGG;AACH,wBAAsB,+BAA+B,CAAC,IAAI,EAAE,8BAA8B,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAmBvH;AAED;;;GAGG;AACH,wBAAsB,8BAA8B,CAAC,IAAI,EAAE,8BAA8B,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAmBtH;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,sBAAsB,CAAoC,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAoChK;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO9D;AAED,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,oBAgBtF"}
|