@fluex/fluexgl-dsp 0.1.3 → 0.2.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 +86 -86
- package/lib/dist/console-codes.d.ts +13 -13
- package/lib/dist/console-codes.js +16 -16
- package/lib/dist/core/classes/AudioClip.d.ts +67 -62
- package/lib/dist/core/classes/AudioClip.d.ts.map +1 -1
- package/lib/dist/core/classes/AudioClip.js +406 -386
- package/lib/dist/core/classes/AudioDevice.d.ts +12 -12
- package/lib/dist/core/classes/AudioDevice.js +30 -30
- package/lib/dist/core/classes/Channel.d.ts +41 -29
- package/lib/dist/core/classes/Channel.d.ts.map +1 -1
- package/lib/dist/core/classes/Channel.js +210 -144
- package/lib/dist/core/classes/DpsPipeline.d.ts +59 -59
- package/lib/dist/core/classes/DpsPipeline.js +115 -115
- package/lib/dist/core/classes/Effector.d.ts +8 -11
- package/lib/dist/core/classes/Effector.d.ts.map +1 -1
- package/lib/dist/core/classes/Effector.js +8 -20
- package/lib/dist/core/classes/Master.d.ts +11 -11
- package/lib/dist/core/classes/Master.js +35 -35
- package/lib/dist/core/exports.d.ts +6 -6
- package/lib/dist/core/exports.js +6 -6
- package/lib/dist/effects/classes/Chorus.d.ts +19 -2
- package/lib/dist/effects/classes/Chorus.d.ts.map +1 -1
- package/lib/dist/effects/classes/Chorus.js +53 -2
- package/lib/dist/effects/classes/Distortion.d.ts +6 -2
- package/lib/dist/effects/classes/Distortion.d.ts.map +1 -1
- package/lib/dist/effects/classes/Distortion.js +9 -2
- package/lib/dist/effects/classes/Equalizer.d.ts +2 -2
- package/lib/dist/effects/classes/Equalizer.js +2 -2
- package/lib/dist/effects/classes/Limiter.d.ts +2 -2
- package/lib/dist/effects/classes/Limiter.js +2 -2
- package/lib/dist/effects/classes/Saturation.d.ts +2 -2
- package/lib/dist/effects/classes/Saturation.d.ts.map +1 -1
- package/lib/dist/effects/classes/Saturation.js +2 -2
- package/lib/dist/effects/classes/SoftClip.d.ts +12 -7
- package/lib/dist/effects/classes/SoftClip.d.ts.map +1 -1
- package/lib/dist/effects/classes/SoftClip.js +54 -38
- package/lib/dist/effects/classes/StereoPanner.d.ts +3 -2
- package/lib/dist/effects/classes/StereoPanner.d.ts.map +1 -1
- package/lib/dist/effects/classes/StereoPanner.js +3 -2
- package/lib/dist/effects/classes/compressors/Compressor.d.ts +2 -2
- package/lib/dist/effects/classes/compressors/Compressor.js +2 -2
- package/lib/dist/effects/classes/compressors/MultibandCompressor.d.ts +2 -2
- package/lib/dist/effects/classes/compressors/MultibandCompressor.js +2 -2
- package/lib/dist/effects/classes/delays/AdvancedDelay.d.ts +2 -2
- package/lib/dist/effects/classes/delays/AdvancedDelay.js +2 -2
- package/lib/dist/effects/classes/delays/MonoDelay.d.ts +2 -2
- package/lib/dist/effects/classes/delays/MonoDelay.js +2 -2
- package/lib/dist/effects/classes/delays/PingPongDelay.d.ts +2 -2
- package/lib/dist/effects/classes/delays/PingPongDelay.js +2 -2
- package/lib/dist/effects/classes/delays/StereoDelay.d.ts +2 -2
- package/lib/dist/effects/classes/delays/StereoDelay.js +2 -2
- package/lib/dist/effects/classes/filters/LowPassFilter.d.ts +14 -0
- package/lib/dist/effects/classes/filters/LowPassFilter.d.ts.map +1 -0
- package/lib/dist/effects/classes/filters/LowPassFilter.js +38 -0
- package/lib/dist/effects/classes/reverbs/ChamberReverb.d.ts +2 -2
- package/lib/dist/effects/classes/reverbs/ChamberReverb.js +2 -2
- package/lib/dist/effects/classes/reverbs/ConvolverReverb.d.ts +2 -2
- package/lib/dist/effects/classes/reverbs/ConvolverReverb.js +2 -2
- package/lib/dist/effects/classes/reverbs/GenericReverb.d.ts +2 -2
- package/lib/dist/effects/classes/reverbs/GenericReverb.js +2 -2
- package/lib/dist/effects/classes/reverbs/HallReverb.d.ts +2 -2
- package/lib/dist/effects/classes/reverbs/HallReverb.js +2 -2
- package/lib/dist/effects/classes/reverbs/RoomReverb.d.ts +2 -2
- package/lib/dist/effects/classes/reverbs/RoomReverb.js +2 -2
- package/lib/dist/effects/exports.d.ts +19 -19
- package/lib/dist/effects/exports.d.ts.map +1 -1
- package/lib/dist/effects/exports.js +19 -19
- package/lib/dist/index.d.ts +12 -12
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +28 -28
- package/lib/dist/typings.d.ts +97 -59
- package/lib/dist/typings.d.ts.map +1 -1
- package/lib/dist/typings.js +30 -1
- package/lib/dist/utilities/constants.d.ts +1 -1
- package/lib/dist/utilities/constants.js +9 -9
- package/lib/dist/utilities/debugger.d.ts +7 -7
- package/lib/dist/utilities/debugger.js +49 -49
- package/lib/dist/utilities/helpers.d.ts +46 -40
- package/lib/dist/utilities/helpers.d.ts.map +1 -1
- package/lib/dist/utilities/helpers.js +186 -143
- package/lib/dist/utilities/web-assembly.d.ts +3 -3
- package/lib/dist/utilities/web-assembly.d.ts.map +1 -1
- package/lib/dist/utilities/web-assembly.js +12 -12
- package/lib/src/console-codes.ts +15 -15
- package/lib/src/core/classes/AudioClip.ts +539 -539
- package/lib/src/core/classes/AudioDevice.ts +38 -38
- package/lib/src/core/classes/Channel.ts +288 -288
- package/lib/src/core/classes/DpsPipeline.ts +152 -152
- package/lib/src/core/classes/Effector.ts +11 -12
- package/lib/src/core/classes/Master.ts +49 -49
- package/lib/src/core/exports.ts +5 -5
- package/lib/src/effects/classes/Chorus.ts +65 -111
- package/lib/src/effects/classes/Distortion.ts +13 -13
- package/lib/src/effects/classes/Saturation.ts +2 -2
- package/lib/src/effects/classes/SoftClip.ts +60 -44
- package/lib/src/effects/classes/StereoPanner.ts +2 -2
- package/lib/src/effects/classes/filters/LowPassFilter.ts +54 -0
- package/lib/src/effects/exports.ts +23 -22
- package/lib/src/index.ts +98 -93
- package/lib/src/typings.ts +113 -78
- package/lib/src/utilities/constants.ts +8 -8
- package/lib/src/utilities/debugger.ts +65 -65
- package/lib/src/utilities/helpers.ts +265 -237
- package/lib/src/utilities/web-assembly.ts +12 -12
- package/package.json +51 -50
- 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/src/effects/classes/Filter.ts +0 -1
package/README.md
CHANGED
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
# 🎚️ FluexGL DSP
|
|
2
|
-
An open-source, web-based DSP library developed alongside FluexGL, with the purpose of creating and manipulating sound in various contexts.
|
|
3
|
-
|
|
4
|
-
This open-source project is part of the Fluex ecosystem and is maintained by Rohan Kanhaisingh, the lead developer of this library.
|
|
5
|
-
|
|
6
|
-
**Note: this project is still under development and may not work yet.**
|
|
7
|
-
|
|
8
|
-
## 🧩 About
|
|
9
|
-
FluexGL DSP is a modern, TypeScript-based Web Audio library for creating and manipulating sound. Inspired by and based on DAW-style workflows, it provides a flexible, object-oriented channel system with master and sub channels.
|
|
10
|
-
|
|
11
|
-
It integrates smoothly with FluexGL, making it ideal for use in games, interactive web experiences, and multimedia projects.
|
|
12
|
-
|
|
13
|
-
## 📦 Installation
|
|
14
|
-
|
|
15
|
-
See down below for more details.
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
$ npm i @fluex/fluexgl-dsp
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## ⚡ Quick start
|
|
22
|
-
|
|
23
|
-
```ts
|
|
24
|
-
import {
|
|
25
|
-
AudioDevice,
|
|
26
|
-
InitializeDspPipeline,
|
|
27
|
-
LoadAudioSource,
|
|
28
|
-
ResolveDefaultAudioOutputDevice,
|
|
29
|
-
Channel,
|
|
30
|
-
AudioSourceData,
|
|
31
|
-
AudioClip
|
|
32
|
-
} from "@fluexgl/dsp";
|
|
33
|
-
|
|
34
|
-
(async function() {
|
|
35
|
-
|
|
36
|
-
// Make sure that FluexGL can access audio devices.
|
|
37
|
-
const hasInitialized = await InitializeDspPipeline();
|
|
38
|
-
|
|
39
|
-
if(!hasInitialized) return null;
|
|
40
|
-
|
|
41
|
-
// Resolves the default audio output device.
|
|
42
|
-
const audioDevice: AudioDevice | null = await ResolveDefaultAudioOutputDevice({
|
|
43
|
-
pathToWasm: "/wasm/fluexgl-dsp-wasm_bg.wasm"
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
if(!audioDevice) return;
|
|
47
|
-
|
|
48
|
-
// Get the master channel from the default audio output device.
|
|
49
|
-
const masterChannel = audioDevice.GetMasterChannel();
|
|
50
|
-
|
|
51
|
-
// Create a new empty channel.
|
|
52
|
-
const channel = new Channel();
|
|
53
|
-
|
|
54
|
-
// Label the channel as 'BackgroundMusic'.
|
|
55
|
-
channel.SetLabel("BackgroundMusic");
|
|
56
|
-
|
|
57
|
-
// Attach the 'BackgroundMusic' channel, to the device's master channel.
|
|
58
|
-
masterChannel.AttachChannel(channel);
|
|
59
|
-
|
|
60
|
-
// Load the data from the audio source.
|
|
61
|
-
const audioSourceData: AudioSourceData | null = await LoadAudioSource("/assets/data/bruh.mp3");
|
|
62
|
-
|
|
63
|
-
if(!audioSourceData) return;
|
|
64
|
-
|
|
65
|
-
// Create a audio node based on the data.
|
|
66
|
-
const audioClip = new AudioClip(audioSourceData);
|
|
67
|
-
|
|
68
|
-
// Attach the audio node to the channel.
|
|
69
|
-
channel.AttachAudioClip(audioClip);
|
|
70
|
-
|
|
71
|
-
// Click event listener on window.
|
|
72
|
-
window.addEventListener("click", function() {
|
|
73
|
-
|
|
74
|
-
// Play the audio clip
|
|
75
|
-
audioClip.Play();
|
|
76
|
-
});
|
|
77
|
-
})();
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
## 💡 Effects, tools and more
|
|
81
|
-
FluexGL DSP provides built-in such as effects, tools, and utilities for advanced web audio processing, such as reverbs, delays, and stereo imaging effects.
|
|
82
|
-
|
|
83
|
-
The library also includes a powerful debugging system that allows developers to inspect and analyze the audio pipeline for easier troubleshooting and optimization.
|
|
84
|
-
|
|
85
|
-
## Web Assembly
|
|
86
|
-
|
|
1
|
+
# 🎚️ FluexGL DSP
|
|
2
|
+
An open-source, web-based DSP library developed alongside FluexGL, with the purpose of creating and manipulating sound in various contexts.
|
|
3
|
+
|
|
4
|
+
This open-source project is part of the Fluex ecosystem and is maintained by Rohan Kanhaisingh, the lead developer of this library.
|
|
5
|
+
|
|
6
|
+
**Note: this project is still under development and may not work yet.**
|
|
7
|
+
|
|
8
|
+
## 🧩 About
|
|
9
|
+
FluexGL DSP is a modern, TypeScript-based Web Audio library for creating and manipulating sound. Inspired by and based on DAW-style workflows, it provides a flexible, object-oriented channel system with master and sub channels.
|
|
10
|
+
|
|
11
|
+
It integrates smoothly with FluexGL, making it ideal for use in games, interactive web experiences, and multimedia projects.
|
|
12
|
+
|
|
13
|
+
## 📦 Installation
|
|
14
|
+
|
|
15
|
+
See down below for more details.
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
$ npm i @fluex/fluexgl-dsp
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## ⚡ Quick start
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
import {
|
|
25
|
+
AudioDevice,
|
|
26
|
+
InitializeDspPipeline,
|
|
27
|
+
LoadAudioSource,
|
|
28
|
+
ResolveDefaultAudioOutputDevice,
|
|
29
|
+
Channel,
|
|
30
|
+
AudioSourceData,
|
|
31
|
+
AudioClip
|
|
32
|
+
} from "@fluexgl/dsp";
|
|
33
|
+
|
|
34
|
+
(async function() {
|
|
35
|
+
|
|
36
|
+
// Make sure that FluexGL can access audio devices.
|
|
37
|
+
const hasInitialized = await InitializeDspPipeline();
|
|
38
|
+
|
|
39
|
+
if(!hasInitialized) return null;
|
|
40
|
+
|
|
41
|
+
// Resolves the default audio output device.
|
|
42
|
+
const audioDevice: AudioDevice | null = await ResolveDefaultAudioOutputDevice({
|
|
43
|
+
pathToWasm: "/wasm/fluexgl-dsp-wasm_bg.wasm"
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
if(!audioDevice) return;
|
|
47
|
+
|
|
48
|
+
// Get the master channel from the default audio output device.
|
|
49
|
+
const masterChannel = audioDevice.GetMasterChannel();
|
|
50
|
+
|
|
51
|
+
// Create a new empty channel.
|
|
52
|
+
const channel = new Channel();
|
|
53
|
+
|
|
54
|
+
// Label the channel as 'BackgroundMusic'.
|
|
55
|
+
channel.SetLabel("BackgroundMusic");
|
|
56
|
+
|
|
57
|
+
// Attach the 'BackgroundMusic' channel, to the device's master channel.
|
|
58
|
+
masterChannel.AttachChannel(channel);
|
|
59
|
+
|
|
60
|
+
// Load the data from the audio source.
|
|
61
|
+
const audioSourceData: AudioSourceData | null = await LoadAudioSource("/assets/data/bruh.mp3");
|
|
62
|
+
|
|
63
|
+
if(!audioSourceData) return;
|
|
64
|
+
|
|
65
|
+
// Create a audio node based on the data.
|
|
66
|
+
const audioClip = new AudioClip(audioSourceData);
|
|
67
|
+
|
|
68
|
+
// Attach the audio node to the channel.
|
|
69
|
+
channel.AttachAudioClip(audioClip);
|
|
70
|
+
|
|
71
|
+
// Click event listener on window.
|
|
72
|
+
window.addEventListener("click", function() {
|
|
73
|
+
|
|
74
|
+
// Play the audio clip
|
|
75
|
+
audioClip.Play();
|
|
76
|
+
});
|
|
77
|
+
})();
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## 💡 Effects, tools and more
|
|
81
|
+
FluexGL DSP provides built-in such as effects, tools, and utilities for advanced web audio processing, such as reverbs, delays, and stereo imaging effects.
|
|
82
|
+
|
|
83
|
+
The library also includes a powerful debugging system that allows developers to inspect and analyze the audio pipeline for easier troubleshooting and optimization.
|
|
84
|
+
|
|
85
|
+
## Web Assembly
|
|
86
|
+
|
|
87
87
|
FluexGL DSP is partially made using Web Assembly, and Rust as programming language. In order to use FluexGL DSP, the wasm source code must be provided when initializing the DSP pipeline. The source code can be found at the [FluexGL DSP WebAssembly Github repository](https://github.com/rohankanhaisingh/FluexGL-DSP-WebAssembly).
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
export declare enum ErrorCodes {
|
|
2
|
-
NO_CONTEXT_PERMISSION = "FLUEXGL@AUDIO_ERROR_0001",
|
|
3
|
-
NO_FILE_TYPE_FOUND = "FLUEXGL@AUDIO_ERROR_0002",
|
|
4
|
-
PATH_TO_FILE_NOT_FOUND = "FLUEXGL@AUDIO_ERROR_0003",
|
|
5
|
-
SAME_MASTER_CHANNEL = "FLUEXGL@AUDIO_ERROR_0004",
|
|
6
|
-
WASM_MODULE_INITIALIZATION_FAILED = "FLUEXGL@AUDIO_ERROR_0005",
|
|
7
|
-
PATH_TO_WASM_FILE_NOT_FOUND = "FLUEXGL@AUDIO_ERROR_0006"
|
|
8
|
-
}
|
|
9
|
-
export declare enum WarningCodes {
|
|
10
|
-
NO_DEFAULT_AUDIO_DEVICE_FOUND = "FLUEXGL@AUDIO_WARNING_0001"
|
|
11
|
-
}
|
|
12
|
-
export declare enum SuccessCodes {
|
|
13
|
-
}
|
|
1
|
+
export declare enum ErrorCodes {
|
|
2
|
+
NO_CONTEXT_PERMISSION = "FLUEXGL@AUDIO_ERROR_0001",
|
|
3
|
+
NO_FILE_TYPE_FOUND = "FLUEXGL@AUDIO_ERROR_0002",
|
|
4
|
+
PATH_TO_FILE_NOT_FOUND = "FLUEXGL@AUDIO_ERROR_0003",
|
|
5
|
+
SAME_MASTER_CHANNEL = "FLUEXGL@AUDIO_ERROR_0004",
|
|
6
|
+
WASM_MODULE_INITIALIZATION_FAILED = "FLUEXGL@AUDIO_ERROR_0005",
|
|
7
|
+
PATH_TO_WASM_FILE_NOT_FOUND = "FLUEXGL@AUDIO_ERROR_0006"
|
|
8
|
+
}
|
|
9
|
+
export declare enum WarningCodes {
|
|
10
|
+
NO_DEFAULT_AUDIO_DEVICE_FOUND = "FLUEXGL@AUDIO_WARNING_0001"
|
|
11
|
+
}
|
|
12
|
+
export declare enum SuccessCodes {
|
|
13
|
+
}
|
|
14
14
|
//# sourceMappingURL=console-codes.d.ts.map
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
export var ErrorCodes;
|
|
2
|
-
(function (ErrorCodes) {
|
|
3
|
-
ErrorCodes["NO_CONTEXT_PERMISSION"] = "FLUEXGL@AUDIO_ERROR_0001";
|
|
4
|
-
ErrorCodes["NO_FILE_TYPE_FOUND"] = "FLUEXGL@AUDIO_ERROR_0002";
|
|
5
|
-
ErrorCodes["PATH_TO_FILE_NOT_FOUND"] = "FLUEXGL@AUDIO_ERROR_0003";
|
|
6
|
-
ErrorCodes["SAME_MASTER_CHANNEL"] = "FLUEXGL@AUDIO_ERROR_0004";
|
|
7
|
-
ErrorCodes["WASM_MODULE_INITIALIZATION_FAILED"] = "FLUEXGL@AUDIO_ERROR_0005";
|
|
8
|
-
ErrorCodes["PATH_TO_WASM_FILE_NOT_FOUND"] = "FLUEXGL@AUDIO_ERROR_0006";
|
|
9
|
-
})(ErrorCodes || (ErrorCodes = {}));
|
|
10
|
-
export var WarningCodes;
|
|
11
|
-
(function (WarningCodes) {
|
|
12
|
-
WarningCodes["NO_DEFAULT_AUDIO_DEVICE_FOUND"] = "FLUEXGL@AUDIO_WARNING_0001";
|
|
13
|
-
})(WarningCodes || (WarningCodes = {}));
|
|
14
|
-
export var SuccessCodes;
|
|
15
|
-
(function (SuccessCodes) {
|
|
16
|
-
})(SuccessCodes || (SuccessCodes = {}));
|
|
1
|
+
export var ErrorCodes;
|
|
2
|
+
(function (ErrorCodes) {
|
|
3
|
+
ErrorCodes["NO_CONTEXT_PERMISSION"] = "FLUEXGL@AUDIO_ERROR_0001";
|
|
4
|
+
ErrorCodes["NO_FILE_TYPE_FOUND"] = "FLUEXGL@AUDIO_ERROR_0002";
|
|
5
|
+
ErrorCodes["PATH_TO_FILE_NOT_FOUND"] = "FLUEXGL@AUDIO_ERROR_0003";
|
|
6
|
+
ErrorCodes["SAME_MASTER_CHANNEL"] = "FLUEXGL@AUDIO_ERROR_0004";
|
|
7
|
+
ErrorCodes["WASM_MODULE_INITIALIZATION_FAILED"] = "FLUEXGL@AUDIO_ERROR_0005";
|
|
8
|
+
ErrorCodes["PATH_TO_WASM_FILE_NOT_FOUND"] = "FLUEXGL@AUDIO_ERROR_0006";
|
|
9
|
+
})(ErrorCodes || (ErrorCodes = {}));
|
|
10
|
+
export var WarningCodes;
|
|
11
|
+
(function (WarningCodes) {
|
|
12
|
+
WarningCodes["NO_DEFAULT_AUDIO_DEVICE_FOUND"] = "FLUEXGL@AUDIO_WARNING_0001";
|
|
13
|
+
})(WarningCodes || (WarningCodes = {}));
|
|
14
|
+
export var SuccessCodes;
|
|
15
|
+
(function (SuccessCodes) {
|
|
16
|
+
})(SuccessCodes || (SuccessCodes = {}));
|
|
@@ -1,63 +1,68 @@
|
|
|
1
|
-
import { AudioClipAnalyserProperty, AudioClipAnalyserType, AudioClipEventMap, AudioSourceData } from "../../typings";
|
|
2
|
-
import { Channel } from "./Channel";
|
|
3
|
-
export declare class AudioClip {
|
|
4
|
-
data: AudioSourceData;
|
|
5
|
-
id: string;
|
|
6
|
-
hasAttachedToChannel: boolean;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
private
|
|
28
|
-
private
|
|
29
|
-
|
|
30
|
-
private
|
|
31
|
-
|
|
32
|
-
private
|
|
33
|
-
private
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
get
|
|
60
|
-
get
|
|
61
|
-
get
|
|
62
|
-
|
|
1
|
+
import { AudioClipAnalyserProperty, AudioClipAnalyserType, AudioClipEventMap, AudioSourceData } from "../../typings";
|
|
2
|
+
import { Channel } from "./Channel";
|
|
3
|
+
export declare class AudioClip {
|
|
4
|
+
data: AudioSourceData;
|
|
5
|
+
id: string;
|
|
6
|
+
hasAttachedToChannel: boolean;
|
|
7
|
+
label: string | null;
|
|
8
|
+
loop: boolean;
|
|
9
|
+
isPlaying: boolean;
|
|
10
|
+
startTime: number;
|
|
11
|
+
offsetAtStart: number;
|
|
12
|
+
progressUpdateSpeed: number;
|
|
13
|
+
gainNode: GainNode | null;
|
|
14
|
+
stereoPannerNode: StereoPannerNode | null;
|
|
15
|
+
parentialAudioContext: AudioContext | null;
|
|
16
|
+
parentialChannel: Channel | null;
|
|
17
|
+
preAnalyser: AnalyserNode | null;
|
|
18
|
+
postAnalyser: AnalyserNode | null;
|
|
19
|
+
preAnalyserEnabled: boolean;
|
|
20
|
+
postAnalyserEnabled: boolean;
|
|
21
|
+
preAnalyserOptions: AnalyserOptions;
|
|
22
|
+
postAnalyserOptions: AnalyserOptions;
|
|
23
|
+
preAnalyserFloatArrayBuffer: Float32Array<ArrayBuffer>;
|
|
24
|
+
postAnalyserFloatArrayBuffer: Float32Array<ArrayBuffer>;
|
|
25
|
+
preAnalyserByteArrayBuffer: Uint8Array<ArrayBuffer>;
|
|
26
|
+
postAnalyserByteArrayBuffer: Uint8Array<ArrayBuffer>;
|
|
27
|
+
private audioBufferSourceNodes;
|
|
28
|
+
private maxAudioBufferSourceNodes;
|
|
29
|
+
private progressInterval;
|
|
30
|
+
private events;
|
|
31
|
+
constructor(data: AudioSourceData);
|
|
32
|
+
private createBufferSource;
|
|
33
|
+
private connectSourcesTo;
|
|
34
|
+
private safeDisconnect;
|
|
35
|
+
private rebuildNodeChain;
|
|
36
|
+
InitializeAudioClipOnAttaching(channel: Channel): AudioClip | null;
|
|
37
|
+
Play(timestamp?: number, offset?: number): AudioClip | null;
|
|
38
|
+
Seek(seconds: number): AudioClip | null;
|
|
39
|
+
Stop(): AudioClip | null;
|
|
40
|
+
SetVolume(volume: number): AudioClip | void;
|
|
41
|
+
SetPanLevel(panLevel: number): AudioClip | void;
|
|
42
|
+
Loop(loop?: boolean): AudioClip;
|
|
43
|
+
SetMaxAudioBufferSourceNodes(value: number): AudioClip;
|
|
44
|
+
DisconnectAllAudioBufferSourceNodes(): boolean;
|
|
45
|
+
AddEventListener<K extends keyof AudioClipEventMap>(event: K, cb: AudioClipEventMap[K]): () => void;
|
|
46
|
+
Once<K extends keyof AudioClipEventMap>(event: K, cb: AudioClipEventMap[K]): () => void;
|
|
47
|
+
RemoveEventListener<K extends keyof AudioClipEventMap>(event: K, cb: AudioClipEventMap[K]): AudioClip;
|
|
48
|
+
ClearEventListeners(event?: keyof AudioClipEventMap): AudioClip;
|
|
49
|
+
GetChannelData(channel?: number): Float32Array;
|
|
50
|
+
EnablePreAnalyser(): boolean;
|
|
51
|
+
DisablePreAnalyser(): boolean;
|
|
52
|
+
EnablePostAnalyser(): boolean;
|
|
53
|
+
DisablePostAnalyser(): boolean;
|
|
54
|
+
SetPreAnalyserOptions(options: AnalyserOptions): void;
|
|
55
|
+
SetPostAnalyserOptions(options: AnalyserOptions): void;
|
|
56
|
+
SetAnalyserOption(analyserType: AudioClipAnalyserType, property: AudioClipAnalyserProperty, value: number): boolean;
|
|
57
|
+
GetWaveformFloatData(analyserType: AudioClipAnalyserType): Float32Array | null;
|
|
58
|
+
GetWaveformByteData(analyserType: AudioClipAnalyserType): Uint8Array | null;
|
|
59
|
+
get currentPlaybackTime(): number;
|
|
60
|
+
get duration(): number;
|
|
61
|
+
get volume(): number;
|
|
62
|
+
get stereoPanning(): number;
|
|
63
|
+
get formattedDuration(): string;
|
|
64
|
+
get sampleRate(): number;
|
|
65
|
+
get numberOfChannels(): number;
|
|
66
|
+
get byteLength(): number;
|
|
67
|
+
}
|
|
63
68
|
//# sourceMappingURL=AudioClip.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioClip.d.ts","sourceRoot":"","sources":["../../../src/core/classes/AudioClip.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,iBAAiB,EAAmB,eAAe,EAAE,MAAM,eAAe,CAAC;AAEtI,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,qBAAa,SAAS;
|
|
1
|
+
{"version":3,"file":"AudioClip.d.ts","sourceRoot":"","sources":["../../../src/core/classes/AudioClip.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,iBAAiB,EAAmB,eAAe,EAAE,MAAM,eAAe,CAAC;AAEtI,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,qBAAa,SAAS;IA2CC,IAAI,EAAE,eAAe;IAzCjC,EAAE,EAAE,MAAM,CAAQ;IAClB,oBAAoB,EAAE,OAAO,CAAS;IACtC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE5B,IAAI,EAAE,OAAO,CAAS;IACtB,SAAS,EAAE,OAAO,CAAS;IAC3B,SAAS,EAAE,MAAM,CAAK;IACtB,aAAa,EAAE,MAAM,CAAK;IAE1B,mBAAmB,EAAE,MAAM,CAAM;IAEjC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAQ;IACjC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAEjD,qBAAqB,EAAE,YAAY,GAAG,IAAI,CAAQ;IAClD,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAQ;IAExC,WAAW,EAAE,YAAY,GAAG,IAAI,CAAQ;IACxC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAQ;IAEzC,kBAAkB,EAAE,OAAO,CAAS;IACpC,mBAAmB,EAAE,OAAO,CAAS;IAErC,kBAAkB,EAAE,eAAe,CAAM;IACzC,mBAAmB,EAAE,eAAe,CAAM;IAE1C,2BAA2B,4BAAsB;IACjD,4BAA4B,4BAAsB;IAElD,0BAA0B,0BAAoB;IAC9C,2BAA2B,0BAAoB;IAEtD,OAAO,CAAC,sBAAsB,CAA+B;IAC7D,OAAO,CAAC,yBAAyB,CAAa;IAE9C,OAAO,CAAC,gBAAgB,CAAoB;IAE5C,OAAO,CAAC,MAAM,CAEb;gBAEkB,IAAI,EAAE,eAAe;IAIxC,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,gBAAgB;IAsCjB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;IAoBlE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAwE3D,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAuBvC,IAAI,IAAI,SAAS,GAAG,IAAI;IA4BxB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAW3C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAc/C,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS;IAU/B,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAUtD,mCAAmC,IAAI,OAAO;IAc9C,gBAAgB,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAOnG,IAAI,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAavF,mBAAmB,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,SAAS;IAarG,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,iBAAiB,GAAG,SAAS;IAW/D,cAAc,CAAC,OAAO,GAAE,MAAU,GAAG,YAAY;IAKjD,iBAAiB,IAAI,OAAO;IAiB5B,kBAAkB;IAMlB,kBAAkB;IAkBlB,mBAAmB;IAMnB,qBAAqB,CAAC,OAAO,EAAE,eAAe;IAY9C,sBAAsB,CAAC,OAAO,EAAE,eAAe;IAY/C,iBAAiB,CAAC,YAAY,EAAE,qBAAqB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,KAAK,EAAE,MAAM;IAyBzG,oBAAoB,CAAC,YAAY,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI;IAa9E,mBAAmB,CAAC,YAAY,EAAE,qBAAqB,GAAG,UAAU,GAAG,IAAI;IAyBlF,IAAW,mBAAmB,IAAI,MAAM,CAIvC;IAED,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,aAAa,IAAI,MAAM,CAEjC;IAED,IAAW,iBAAiB,IAAI,MAAM,CAKrC;IAED,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED,IAAW,gBAAgB,IAAI,MAAM,CAEpC;IAED,IAAW,UAAU,IAAI,MAAM,CAE9B;CACJ"}
|