@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.
Files changed (138) hide show
  1. package/README.md +87 -0
  2. package/lib/dist/console-codes.d.ts +14 -0
  3. package/lib/dist/console-codes.d.ts.map +1 -0
  4. package/lib/dist/console-codes.js +16 -0
  5. package/lib/dist/core/classes/AudioClip.d.ts +67 -0
  6. package/lib/dist/core/classes/AudioClip.d.ts.map +1 -0
  7. package/lib/dist/core/classes/AudioClip.js +410 -0
  8. package/lib/dist/core/classes/AudioDevice.d.ts +13 -0
  9. package/lib/dist/core/classes/AudioDevice.d.ts.map +1 -0
  10. package/lib/dist/core/classes/AudioDevice.js +30 -0
  11. package/lib/dist/core/classes/Channel.d.ts +30 -0
  12. package/lib/dist/core/classes/Channel.d.ts.map +1 -0
  13. package/lib/dist/core/classes/Channel.js +144 -0
  14. package/lib/dist/core/classes/DpsPipeline.d.ts +60 -0
  15. package/lib/dist/core/classes/DpsPipeline.d.ts.map +1 -0
  16. package/lib/dist/core/classes/DpsPipeline.js +115 -0
  17. package/lib/dist/core/classes/Effector.d.ts +8 -0
  18. package/lib/dist/core/classes/Effector.d.ts.map +1 -0
  19. package/lib/dist/core/classes/Effector.js +7 -0
  20. package/lib/dist/core/classes/Master.d.ts +12 -0
  21. package/lib/dist/core/classes/Master.d.ts.map +1 -0
  22. package/lib/dist/core/classes/Master.js +35 -0
  23. package/lib/dist/core/exports.d.ts +7 -0
  24. package/lib/dist/core/exports.d.ts.map +1 -0
  25. package/lib/dist/core/exports.js +6 -0
  26. package/lib/dist/effects/classes/Chorus.d.ts +19 -0
  27. package/lib/dist/effects/classes/Chorus.d.ts.map +1 -0
  28. package/lib/dist/effects/classes/Chorus.js +83 -0
  29. package/lib/dist/effects/classes/Distortion.d.ts +3 -0
  30. package/lib/dist/effects/classes/Distortion.d.ts.map +1 -0
  31. package/lib/dist/effects/classes/Distortion.js +2 -0
  32. package/lib/dist/effects/classes/Equalizer.d.ts +3 -0
  33. package/lib/dist/effects/classes/Equalizer.d.ts.map +1 -0
  34. package/lib/dist/effects/classes/Equalizer.js +2 -0
  35. package/lib/dist/effects/classes/Filter.d.ts +3 -0
  36. package/lib/dist/effects/classes/Filter.d.ts.map +1 -0
  37. package/lib/dist/effects/classes/Filter.js +2 -0
  38. package/lib/dist/effects/classes/Limiter.d.ts +3 -0
  39. package/lib/dist/effects/classes/Limiter.d.ts.map +1 -0
  40. package/lib/dist/effects/classes/Limiter.js +2 -0
  41. package/lib/dist/effects/classes/Saturation.d.ts +3 -0
  42. package/lib/dist/effects/classes/Saturation.d.ts.map +1 -0
  43. package/lib/dist/effects/classes/Saturation.js +2 -0
  44. package/lib/dist/effects/classes/SoftClip.d.ts +8 -0
  45. package/lib/dist/effects/classes/SoftClip.d.ts.map +1 -0
  46. package/lib/dist/effects/classes/SoftClip.js +37 -0
  47. package/lib/dist/effects/classes/StereoPanner.d.ts +3 -0
  48. package/lib/dist/effects/classes/StereoPanner.d.ts.map +1 -0
  49. package/lib/dist/effects/classes/StereoPanner.js +2 -0
  50. package/lib/dist/effects/classes/compressors/Compressor.d.ts +3 -0
  51. package/lib/dist/effects/classes/compressors/Compressor.d.ts.map +1 -0
  52. package/lib/dist/effects/classes/compressors/Compressor.js +2 -0
  53. package/lib/dist/effects/classes/compressors/MultibandCompressor.d.ts +3 -0
  54. package/lib/dist/effects/classes/compressors/MultibandCompressor.d.ts.map +1 -0
  55. package/lib/dist/effects/classes/compressors/MultibandCompressor.js +2 -0
  56. package/lib/dist/effects/classes/delays/AdvancedDelay.d.ts +3 -0
  57. package/lib/dist/effects/classes/delays/AdvancedDelay.d.ts.map +1 -0
  58. package/lib/dist/effects/classes/delays/AdvancedDelay.js +2 -0
  59. package/lib/dist/effects/classes/delays/MonoDelay.d.ts +3 -0
  60. package/lib/dist/effects/classes/delays/MonoDelay.d.ts.map +1 -0
  61. package/lib/dist/effects/classes/delays/MonoDelay.js +2 -0
  62. package/lib/dist/effects/classes/delays/PingPongDelay.d.ts +3 -0
  63. package/lib/dist/effects/classes/delays/PingPongDelay.d.ts.map +1 -0
  64. package/lib/dist/effects/classes/delays/PingPongDelay.js +2 -0
  65. package/lib/dist/effects/classes/delays/StereoDelay.d.ts +3 -0
  66. package/lib/dist/effects/classes/delays/StereoDelay.d.ts.map +1 -0
  67. package/lib/dist/effects/classes/delays/StereoDelay.js +2 -0
  68. package/lib/dist/effects/classes/reverbs/ChamberReverb.d.ts +3 -0
  69. package/lib/dist/effects/classes/reverbs/ChamberReverb.d.ts.map +1 -0
  70. package/lib/dist/effects/classes/reverbs/ChamberReverb.js +2 -0
  71. package/lib/dist/effects/classes/reverbs/ConvolverReverb.d.ts +3 -0
  72. package/lib/dist/effects/classes/reverbs/ConvolverReverb.d.ts.map +1 -0
  73. package/lib/dist/effects/classes/reverbs/ConvolverReverb.js +2 -0
  74. package/lib/dist/effects/classes/reverbs/GenericReverb.d.ts +3 -0
  75. package/lib/dist/effects/classes/reverbs/GenericReverb.d.ts.map +1 -0
  76. package/lib/dist/effects/classes/reverbs/GenericReverb.js +2 -0
  77. package/lib/dist/effects/classes/reverbs/HallReverb.d.ts +3 -0
  78. package/lib/dist/effects/classes/reverbs/HallReverb.d.ts.map +1 -0
  79. package/lib/dist/effects/classes/reverbs/HallReverb.js +2 -0
  80. package/lib/dist/effects/classes/reverbs/RoomReverb.d.ts +3 -0
  81. package/lib/dist/effects/classes/reverbs/RoomReverb.d.ts.map +1 -0
  82. package/lib/dist/effects/classes/reverbs/RoomReverb.js +2 -0
  83. package/lib/dist/effects/exports.d.ts +20 -0
  84. package/lib/dist/effects/exports.d.ts.map +1 -0
  85. package/lib/dist/effects/exports.js +19 -0
  86. package/lib/dist/index.d.ts +13 -0
  87. package/lib/dist/index.d.ts.map +1 -0
  88. package/lib/dist/index.js +28 -0
  89. package/lib/dist/typings.d.ts +67 -0
  90. package/lib/dist/typings.d.ts.map +1 -0
  91. package/lib/dist/typings.js +1 -0
  92. package/lib/dist/utilities/constants.d.ts +2 -0
  93. package/lib/dist/utilities/constants.d.ts.map +1 -0
  94. package/lib/dist/utilities/constants.js +9 -0
  95. package/lib/dist/utilities/debugger.d.ts +8 -0
  96. package/lib/dist/utilities/debugger.d.ts.map +1 -0
  97. package/lib/dist/utilities/debugger.js +49 -0
  98. package/lib/dist/utilities/helpers.d.ts +41 -0
  99. package/lib/dist/utilities/helpers.d.ts.map +1 -0
  100. package/lib/dist/utilities/helpers.js +148 -0
  101. package/lib/dist/utilities/web-assembly.d.ts +4 -0
  102. package/lib/dist/utilities/web-assembly.d.ts.map +1 -0
  103. package/lib/dist/utilities/web-assembly.js +12 -0
  104. package/lib/src/console-codes.ts +16 -0
  105. package/lib/src/core/classes/AudioClip.ts +545 -0
  106. package/lib/src/core/classes/AudioDevice.ts +39 -0
  107. package/lib/src/core/classes/Channel.ts +199 -0
  108. package/lib/src/core/classes/DpsPipeline.ts +153 -0
  109. package/lib/src/core/classes/Effector.ts +11 -0
  110. package/lib/src/core/classes/Master.ts +50 -0
  111. package/lib/src/core/exports.ts +6 -0
  112. package/lib/src/effects/classes/Chorus.ts +109 -0
  113. package/lib/src/effects/classes/Distortion.ts +1 -0
  114. package/lib/src/effects/classes/Equalizer.ts +1 -0
  115. package/lib/src/effects/classes/Filter.ts +1 -0
  116. package/lib/src/effects/classes/Limiter.ts +1 -0
  117. package/lib/src/effects/classes/Saturation.ts +1 -0
  118. package/lib/src/effects/classes/SoftClip.ts +42 -0
  119. package/lib/src/effects/classes/StereoPanner.ts +1 -0
  120. package/lib/src/effects/classes/compressors/Compressor.ts +1 -0
  121. package/lib/src/effects/classes/compressors/MultibandCompressor.ts +1 -0
  122. package/lib/src/effects/classes/delays/AdvancedDelay.ts +1 -0
  123. package/lib/src/effects/classes/delays/MonoDelay.ts +1 -0
  124. package/lib/src/effects/classes/delays/PingPongDelay.ts +1 -0
  125. package/lib/src/effects/classes/delays/StereoDelay.ts +1 -0
  126. package/lib/src/effects/classes/reverbs/ChamberReverb.ts +1 -0
  127. package/lib/src/effects/classes/reverbs/ConvolverReverb.ts +1 -0
  128. package/lib/src/effects/classes/reverbs/GenericReverb.ts +1 -0
  129. package/lib/src/effects/classes/reverbs/HallReverb.ts +1 -0
  130. package/lib/src/effects/classes/reverbs/RoomReverb.ts +1 -0
  131. package/lib/src/effects/exports.ts +22 -0
  132. package/lib/src/index.ts +93 -0
  133. package/lib/src/typings.ts +79 -0
  134. package/lib/src/utilities/constants.ts +9 -0
  135. package/lib/src/utilities/debugger.ts +66 -0
  136. package/lib/src/utilities/helpers.ts +215 -0
  137. package/lib/src/utilities/web-assembly.ts +14 -0
  138. 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,3 @@
1
+ export declare class StereoPanner {
2
+ }
3
+ //# sourceMappingURL=StereoPanner.d.ts.map
@@ -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,2 @@
1
+ export class StereoPanner {
2
+ }
@@ -0,0 +1,3 @@
1
+ export declare class Compressor {
2
+ }
3
+ //# sourceMappingURL=Compressor.d.ts.map
@@ -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,2 @@
1
+ export class Compressor {
2
+ }
@@ -0,0 +1,3 @@
1
+ export declare class MultibandCompressor {
2
+ }
3
+ //# sourceMappingURL=MultibandCompressor.d.ts.map
@@ -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,2 @@
1
+ export class MultibandCompressor {
2
+ }
@@ -0,0 +1,3 @@
1
+ export declare class AdvancedDelay {
2
+ }
3
+ //# sourceMappingURL=AdvancedDelay.d.ts.map
@@ -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,2 @@
1
+ export class AdvancedDelay {
2
+ }
@@ -0,0 +1,3 @@
1
+ export declare class MonoDelay {
2
+ }
3
+ //# sourceMappingURL=MonoDelay.d.ts.map
@@ -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,2 @@
1
+ export class MonoDelay {
2
+ }
@@ -0,0 +1,3 @@
1
+ export declare class PingPongDelay {
2
+ }
3
+ //# sourceMappingURL=PingPongDelay.d.ts.map
@@ -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,2 @@
1
+ export class PingPongDelay {
2
+ }
@@ -0,0 +1,3 @@
1
+ export declare class StereoDelay {
2
+ }
3
+ //# sourceMappingURL=StereoDelay.d.ts.map
@@ -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,2 @@
1
+ export class StereoDelay {
2
+ }
@@ -0,0 +1,3 @@
1
+ export declare class ChamberReverb {
2
+ }
3
+ //# sourceMappingURL=ChamberReverb.d.ts.map
@@ -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,2 @@
1
+ export class ChamberReverb {
2
+ }
@@ -0,0 +1,3 @@
1
+ export declare class ConvolverReverb {
2
+ }
3
+ //# sourceMappingURL=ConvolverReverb.d.ts.map
@@ -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,2 @@
1
+ export class ConvolverReverb {
2
+ }
@@ -0,0 +1,3 @@
1
+ export declare class GenericReverb {
2
+ }
3
+ //# sourceMappingURL=GenericReverb.d.ts.map
@@ -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,2 @@
1
+ export class GenericReverb {
2
+ }
@@ -0,0 +1,3 @@
1
+ export declare class HallReverb {
2
+ }
3
+ //# sourceMappingURL=HallReverb.d.ts.map
@@ -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,2 @@
1
+ export class HallReverb {
2
+ }
@@ -0,0 +1,3 @@
1
+ export declare class RoomReverb {
2
+ }
3
+ //# sourceMappingURL=RoomReverb.d.ts.map
@@ -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,2 @@
1
+ export class RoomReverb {
2
+ }
@@ -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,2 @@
1
+ export declare const SUPPORTED_FILE_TYPES: string[];
2
+ //# sourceMappingURL=constants.d.ts.map
@@ -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,9 @@
1
+ export const SUPPORTED_FILE_TYPES = [
2
+ "audio/aac",
3
+ "audio/mp3",
4
+ "audio/mpeg",
5
+ "audio/ogg",
6
+ "audio/wav",
7
+ "audio/wave",
8
+ "audio/webm"
9
+ ];
@@ -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"}