react-native-audio-api 0.4.8-rc2 → 0.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/build.gradle +25 -2
- package/android/src/main/cpp/core/AudioDecoder.cpp +10 -1
- package/android/src/main/cpp/core/AudioPlayer.cpp +6 -3
- package/common/cpp/core/AnalyserNode.cpp +2 -6
- package/common/cpp/core/AudioBuffer.cpp +1 -1
- package/common/cpp/core/AudioBufferSourceNode.cpp +26 -16
- package/common/cpp/core/AudioBus.cpp +105 -13
- package/common/cpp/core/AudioBus.h +6 -4
- package/common/cpp/core/AudioContext.cpp +4 -3
- package/common/cpp/core/AudioContext.h +4 -4
- package/common/cpp/core/AudioDestinationNode.cpp +2 -3
- package/common/cpp/core/AudioNode.cpp +78 -58
- package/common/cpp/core/AudioNode.h +10 -1
- package/common/cpp/core/AudioNodeManager.cpp +13 -1
- package/common/cpp/core/AudioNodeManager.h +2 -0
- package/common/cpp/core/AudioScheduledSourceNode.cpp +5 -1
- package/common/cpp/core/BaseAudioContext.cpp +4 -1
- package/common/cpp/core/BaseAudioContext.h +4 -2
- package/common/cpp/core/StereoPannerNode.cpp +9 -12
- package/ios/core/AudioDecoder.mm +10 -1
- package/ios/core/AudioPlayer.m +23 -23
- package/ios/core/IOSAudioPlayer.mm +3 -3
- package/lib/module/core/AudioBufferSourceNode.js +2 -2
- package/lib/module/core/AudioBufferSourceNode.js.map +1 -1
- package/lib/module/index.js +19 -335
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +18 -0
- package/lib/module/index.web.js.map +1 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/web-core/AnalyserNode.js +48 -0
- package/lib/module/web-core/AnalyserNode.js.map +1 -0
- package/lib/module/web-core/AudioBuffer.js +43 -0
- package/lib/module/web-core/AudioBuffer.js.map +1 -0
- package/lib/module/web-core/AudioBufferSourceNode.js +62 -0
- package/lib/module/web-core/AudioBufferSourceNode.js.map +1 -0
- package/lib/module/web-core/AudioContext.js +69 -0
- package/lib/module/web-core/AudioContext.js.map +1 -0
- package/lib/module/web-core/AudioDestinationNode.js +5 -0
- package/lib/module/web-core/AudioDestinationNode.js.map +1 -0
- package/lib/module/web-core/AudioNode.js +27 -0
- package/lib/module/web-core/AudioNode.js.map +1 -0
- package/lib/module/web-core/AudioParam.js +60 -0
- package/lib/module/web-core/AudioParam.js.map +1 -0
- package/lib/module/web-core/AudioScheduledSourceNode.js +27 -0
- package/lib/module/web-core/AudioScheduledSourceNode.js.map +1 -0
- package/lib/module/web-core/BaseAudioContext.js +2 -0
- package/lib/module/{core/types.js.map → web-core/BaseAudioContext.js.map} +1 -1
- package/lib/module/web-core/BiquadFilterNode.js +35 -0
- package/lib/module/web-core/BiquadFilterNode.js.map +1 -0
- package/lib/module/web-core/GainNode.js +11 -0
- package/lib/module/web-core/GainNode.js.map +1 -0
- package/lib/module/web-core/OscillatorNode.js +25 -0
- package/lib/module/web-core/OscillatorNode.js.map +1 -0
- package/lib/module/web-core/PeriodicWave.js +10 -0
- package/lib/module/web-core/PeriodicWave.js.map +1 -0
- package/lib/module/web-core/StereoPannerNode.js +11 -0
- package/lib/module/web-core/StereoPannerNode.js.map +1 -0
- package/lib/typescript/core/AnalyserNode.d.ts +1 -1
- package/lib/typescript/core/AnalyserNode.d.ts.map +1 -1
- package/lib/typescript/core/AudioNode.d.ts +1 -1
- package/lib/typescript/core/AudioNode.d.ts.map +1 -1
- package/lib/typescript/core/BaseAudioContext.d.ts +1 -1
- package/lib/typescript/core/BaseAudioContext.d.ts.map +1 -1
- package/lib/typescript/core/BiquadFilterNode.d.ts +1 -1
- package/lib/typescript/core/BiquadFilterNode.d.ts.map +1 -1
- package/lib/typescript/core/OscillatorNode.d.ts +1 -1
- package/lib/typescript/core/OscillatorNode.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +15 -126
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/index.web.d.ts +16 -0
- package/lib/typescript/index.web.d.ts.map +1 -0
- package/lib/typescript/interfaces.d.ts +1 -1
- package/lib/typescript/interfaces.d.ts.map +1 -1
- package/lib/typescript/types.d.ts.map +1 -0
- package/lib/typescript/web-core/AnalyserNode.d.ts +18 -0
- package/lib/typescript/web-core/AnalyserNode.d.ts.map +1 -0
- package/lib/typescript/web-core/AudioBuffer.d.ts +13 -0
- package/lib/typescript/web-core/AudioBuffer.d.ts.map +1 -0
- package/lib/typescript/web-core/AudioBufferSourceNode.d.ts +19 -0
- package/lib/typescript/web-core/AudioBufferSourceNode.d.ts.map +1 -0
- package/lib/typescript/web-core/AudioContext.d.ts +30 -0
- package/lib/typescript/web-core/AudioContext.d.ts.map +1 -0
- package/lib/typescript/web-core/AudioDestinationNode.d.ts +4 -0
- package/lib/typescript/web-core/AudioDestinationNode.d.ts.map +1 -0
- package/lib/typescript/web-core/AudioNode.d.ts +15 -0
- package/lib/typescript/web-core/AudioNode.d.ts.map +1 -0
- package/lib/typescript/web-core/AudioParam.d.ts +17 -0
- package/lib/typescript/web-core/AudioParam.d.ts.map +1 -0
- package/lib/typescript/web-core/AudioScheduledSourceNode.d.ts +7 -0
- package/lib/typescript/web-core/AudioScheduledSourceNode.d.ts.map +1 -0
- package/lib/typescript/web-core/BaseAudioContext.d.ts +27 -0
- package/lib/typescript/web-core/BaseAudioContext.d.ts.map +1 -0
- package/lib/typescript/web-core/BiquadFilterNode.d.ts +15 -0
- package/lib/typescript/web-core/BiquadFilterNode.d.ts.map +1 -0
- package/lib/typescript/web-core/GainNode.d.ts +8 -0
- package/lib/typescript/web-core/GainNode.d.ts.map +1 -0
- package/lib/typescript/web-core/OscillatorNode.d.ts +14 -0
- package/lib/typescript/web-core/OscillatorNode.d.ts.map +1 -0
- package/lib/typescript/web-core/PeriodicWave.d.ts +6 -0
- package/lib/typescript/web-core/PeriodicWave.d.ts.map +1 -0
- package/lib/typescript/web-core/StereoPannerNode.d.ts +8 -0
- package/lib/typescript/web-core/StereoPannerNode.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/core/AnalyserNode.ts +1 -1
- package/src/core/AudioBufferSourceNode.ts +2 -2
- package/src/core/AudioNode.ts +1 -1
- package/src/core/BaseAudioContext.ts +1 -1
- package/src/core/BiquadFilterNode.ts +1 -1
- package/src/core/OscillatorNode.ts +1 -1
- package/src/index.ts +30 -568
- package/src/index.web.ts +30 -0
- package/src/interfaces.ts +1 -1
- package/src/web-core/AnalyserNode.tsx +69 -0
- package/src/web-core/AudioBuffer.tsx +79 -0
- package/src/web-core/AudioBufferSourceNode.tsx +94 -0
- package/src/web-core/AudioContext.tsx +114 -0
- package/src/web-core/AudioDestinationNode.tsx +3 -0
- package/src/web-core/AudioNode.tsx +40 -0
- package/src/web-core/AudioParam.tsx +106 -0
- package/src/web-core/AudioScheduledSourceNode.tsx +37 -0
- package/src/web-core/BaseAudioContext.tsx +37 -0
- package/src/web-core/BiquadFilterNode.tsx +62 -0
- package/src/web-core/GainNode.tsx +12 -0
- package/src/web-core/OscillatorNode.tsx +36 -0
- package/src/web-core/PeriodicWave.tsx +8 -0
- package/src/web-core/StereoPannerNode.tsx +12 -0
- package/lib/module/index.native.js +0 -21
- package/lib/module/index.native.js.map +0 -1
- package/lib/typescript/core/types.d.ts.map +0 -1
- package/lib/typescript/index.native.d.ts +0 -15
- package/lib/typescript/index.native.d.ts.map +0 -1
- package/src/index.native.ts +0 -27
- /package/lib/module/{core/types.js → types.js} +0 -0
- /package/lib/typescript/{core/types.d.ts → types.d.ts} +0 -0
- /package/src/{core/types.ts → types.ts} +0 -0
package/lib/module/index.js
CHANGED
|
@@ -1,338 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
copyFromChannel(destination, channelNumber, startInChannel = 0) {
|
|
23
|
-
if (channelNumber < 0 || channelNumber >= this.numberOfChannels) {
|
|
24
|
-
throw new Error(`The channel number provided (${channelNumber}) is outside the range [0, ${this.numberOfChannels - 1}]`);
|
|
25
|
-
}
|
|
26
|
-
if (startInChannel < 0 || startInChannel >= this.length) {
|
|
27
|
-
throw new Error(`The startInChannel number provided (${startInChannel}) is outside the range [0, ${this.length - 1}]`);
|
|
28
|
-
}
|
|
29
|
-
const array = new Float32Array(destination);
|
|
30
|
-
this.buffer.copyFromChannel(array, channelNumber, startInChannel);
|
|
31
|
-
for (let i = 0; i < destination.length; i++) {
|
|
32
|
-
destination[i] = array[i];
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
copyToChannel(source, channelNumber, startInChannel = 0) {
|
|
36
|
-
if (channelNumber < 0 || channelNumber >= this.numberOfChannels) {
|
|
37
|
-
throw new Error(`The channel number provided (${channelNumber}) is outside the range [0, ${this.numberOfChannels - 1}]`);
|
|
38
|
-
}
|
|
39
|
-
if (startInChannel < 0 || startInChannel >= this.length) {
|
|
40
|
-
throw new Error(`The startInChannel number provided (${startInChannel}) is outside the range [0, ${this.length - 1}]`);
|
|
41
|
-
}
|
|
42
|
-
this.buffer.copyToChannel(new Float32Array(source), channelNumber, startInChannel);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
export class AudioNode {
|
|
46
|
-
constructor(context, node) {
|
|
47
|
-
this.context = context;
|
|
48
|
-
this.node = node;
|
|
49
|
-
this.numberOfInputs = this.node.numberOfInputs;
|
|
50
|
-
this.numberOfOutputs = this.node.numberOfOutputs;
|
|
51
|
-
this.channelCount = this.node.channelCount;
|
|
52
|
-
this.channelCountMode = this.node.channelCountMode;
|
|
53
|
-
this.channelInterpretation = this.node.channelInterpretation;
|
|
54
|
-
}
|
|
55
|
-
connect(destination) {
|
|
56
|
-
if (this.context !== destination.context) {
|
|
57
|
-
throw new Error('The AudioNodes are from different BaseAudioContexts');
|
|
58
|
-
}
|
|
59
|
-
this.node.connect(destination.node);
|
|
60
|
-
}
|
|
61
|
-
disconnect(destination) {
|
|
62
|
-
if (destination === undefined) {
|
|
63
|
-
this.node.disconnect();
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
this.node.disconnect(destination.node);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
export class AnalyserNode extends AudioNode {
|
|
70
|
-
constructor(context, node) {
|
|
71
|
-
super(context, node);
|
|
72
|
-
this.fftSize = node.fftSize;
|
|
73
|
-
this.frequencyBinCount = node.frequencyBinCount;
|
|
74
|
-
this.minDecibels = node.minDecibels;
|
|
75
|
-
this.maxDecibels = node.maxDecibels;
|
|
76
|
-
this.smoothingTimeConstant = node.smoothingTimeConstant;
|
|
77
|
-
}
|
|
78
|
-
get window() {
|
|
79
|
-
return 'blackman';
|
|
80
|
-
}
|
|
81
|
-
set window(value) {
|
|
82
|
-
console.log('React Native Audio API: setting window is not supported on web');
|
|
83
|
-
}
|
|
84
|
-
getByteFrequencyData(array) {
|
|
85
|
-
const data = new Uint8Array(array);
|
|
86
|
-
this.node.getByteFrequencyData(data);
|
|
87
|
-
for (let i = 0; i < array.length; i++) {
|
|
88
|
-
array[i] = data[i];
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
getByteTimeDomainData(array) {
|
|
92
|
-
const data = new Uint8Array(array);
|
|
93
|
-
this.node.getByteTimeDomainData(data);
|
|
94
|
-
for (let i = 0; i < array.length; i++) {
|
|
95
|
-
array[i] = data[i];
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
getFloatFrequencyData(array) {
|
|
99
|
-
const data = new Float32Array(array);
|
|
100
|
-
this.node.getFloatFrequencyData(data);
|
|
101
|
-
for (let i = 0; i < array.length; i++) {
|
|
102
|
-
array[i] = data[i];
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
getFloatTimeDomainData(array) {
|
|
106
|
-
const data = new Float32Array(array);
|
|
107
|
-
this.node.getFloatTimeDomainData(data);
|
|
108
|
-
for (let i = 0; i < array.length; i++) {
|
|
109
|
-
array[i] = data[i];
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
export class AudioScheduledSourceNode extends AudioNode {
|
|
114
|
-
hasBeenStarted = false;
|
|
115
|
-
start(when = 0) {
|
|
116
|
-
if (when < 0) {
|
|
117
|
-
throw new RangeError(`Time must be a finite non-negative number: ${when}`);
|
|
118
|
-
}
|
|
119
|
-
if (this.hasBeenStarted) {
|
|
120
|
-
throw new Error('Cannot call start more than once');
|
|
121
|
-
}
|
|
122
|
-
this.hasBeenStarted = true;
|
|
123
|
-
this.node.start(when);
|
|
124
|
-
}
|
|
125
|
-
stop(when = 0) {
|
|
126
|
-
if (when < 0) {
|
|
127
|
-
throw new RangeError(`Time must be a finite non-negative number: ${when}`);
|
|
128
|
-
}
|
|
129
|
-
if (!this.hasBeenStarted) {
|
|
130
|
-
throw new Error('Cannot call stop without calling start first');
|
|
131
|
-
}
|
|
132
|
-
this.node.stop(when);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
export class AudioBufferSourceNode extends AudioScheduledSourceNode {
|
|
136
|
-
constructor(context, node) {
|
|
137
|
-
super(context, node);
|
|
138
|
-
this.detune = new AudioParam(node.detune);
|
|
139
|
-
this.playbackRate = new AudioParam(node.playbackRate);
|
|
140
|
-
}
|
|
141
|
-
get buffer() {
|
|
142
|
-
const buffer = this.node.buffer;
|
|
143
|
-
if (!buffer) {
|
|
144
|
-
return null;
|
|
145
|
-
}
|
|
146
|
-
return new AudioBuffer(buffer);
|
|
147
|
-
}
|
|
148
|
-
set buffer(buffer) {
|
|
149
|
-
if (!buffer) {
|
|
150
|
-
this.node = null;
|
|
151
|
-
return;
|
|
152
|
-
}
|
|
153
|
-
this.node.buffer = buffer.buffer;
|
|
154
|
-
}
|
|
155
|
-
get loop() {
|
|
156
|
-
return this.node.loop;
|
|
157
|
-
}
|
|
158
|
-
set loop(value) {
|
|
159
|
-
this.node.loop = value;
|
|
160
|
-
}
|
|
161
|
-
get loopStart() {
|
|
162
|
-
return this.node.loopStart;
|
|
163
|
-
}
|
|
164
|
-
set loopStart(value) {
|
|
165
|
-
this.node.loopStart = value;
|
|
166
|
-
}
|
|
167
|
-
get loopEnd() {
|
|
168
|
-
return this.node.loopEnd;
|
|
169
|
-
}
|
|
170
|
-
set loopEnd(value) {
|
|
171
|
-
this.node.loopEnd = value;
|
|
172
|
-
}
|
|
173
|
-
start(when, offset, duration) {
|
|
174
|
-
if (when && when < 0) {
|
|
175
|
-
throw new RangeError(`when must be a finite non-negative number: ${when}`);
|
|
176
|
-
}
|
|
177
|
-
if (offset && offset < 0) {
|
|
178
|
-
throw new RangeError(`offset must be a finite non-negative number: ${when}`);
|
|
179
|
-
}
|
|
180
|
-
if (duration && duration < 0) {
|
|
181
|
-
throw new RangeError(`duration must be a finite non-negative number: ${when}`);
|
|
182
|
-
}
|
|
183
|
-
if (this.hasBeenStarted) {
|
|
184
|
-
throw new InvalidStateError('Cannot call start more than once');
|
|
185
|
-
}
|
|
186
|
-
this.hasBeenStarted = true;
|
|
187
|
-
this.node.start(when, offset, duration);
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
export class AudioDestinationNode extends AudioNode {}
|
|
191
|
-
export class AudioParam {
|
|
192
|
-
constructor(param) {
|
|
193
|
-
this.param = param;
|
|
194
|
-
this.defaultValue = param.defaultValue;
|
|
195
|
-
this.minValue = param.minValue;
|
|
196
|
-
this.maxValue = param.maxValue;
|
|
197
|
-
}
|
|
198
|
-
get value() {
|
|
199
|
-
return this.param.value;
|
|
200
|
-
}
|
|
201
|
-
set value(value) {
|
|
202
|
-
this.param.value = value;
|
|
203
|
-
}
|
|
204
|
-
setValueAtTime(value, startTime) {
|
|
205
|
-
this.param.setValueAtTime(value, startTime);
|
|
206
|
-
}
|
|
207
|
-
linearRampToValueAtTime(value, endTime) {
|
|
208
|
-
this.param.linearRampToValueAtTime(value, endTime);
|
|
209
|
-
}
|
|
210
|
-
exponentialRampToValueAtTime(value, endTime) {
|
|
211
|
-
this.param.exponentialRampToValueAtTime(value, endTime);
|
|
212
|
-
}
|
|
213
|
-
setTargetAtTime(target, startTime, timeConstant) {
|
|
214
|
-
this.param.setTargetAtTime(target, startTime, timeConstant);
|
|
215
|
-
}
|
|
216
|
-
setValueCurveAtTime(values, startTime, duration) {
|
|
217
|
-
this.param.setValueCurveAtTime(new Float32Array(values), startTime, duration);
|
|
218
|
-
}
|
|
219
|
-
cancelScheduledValues(startTime) {
|
|
220
|
-
this.param.cancelScheduledValues(startTime);
|
|
221
|
-
}
|
|
222
|
-
cancelAndHoldAtTime(cancelTime) {
|
|
223
|
-
this.param.cancelAndHoldAtTime(cancelTime);
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
export class BiquadFilterNode extends AudioNode {
|
|
227
|
-
constructor(context, biquadFilter) {
|
|
228
|
-
super(context, biquadFilter);
|
|
229
|
-
this.frequency = new AudioParam(biquadFilter.frequency);
|
|
230
|
-
this.detune = new AudioParam(biquadFilter.detune);
|
|
231
|
-
this.Q = new AudioParam(biquadFilter.Q);
|
|
232
|
-
this.gain = new AudioParam(biquadFilter.gain);
|
|
233
|
-
}
|
|
234
|
-
get type() {
|
|
235
|
-
return this.node.type;
|
|
236
|
-
}
|
|
237
|
-
set type(value) {
|
|
238
|
-
this.node.type = value;
|
|
239
|
-
}
|
|
240
|
-
getFrequencyResponse(frequencyArray, magResponseOutput, phaseResponseOutput) {
|
|
241
|
-
if (frequencyArray.length !== magResponseOutput.length || frequencyArray.length !== phaseResponseOutput.length) {
|
|
242
|
-
throw new Error(`The lengths of the arrays are not the same frequencyArray: ${frequencyArray.length}, magResponseOutput: ${magResponseOutput.length}, phaseResponseOutput: ${phaseResponseOutput.length}`);
|
|
243
|
-
}
|
|
244
|
-
const magData = new Float32Array(magResponseOutput);
|
|
245
|
-
const phaseData = new Float32Array(phaseResponseOutput);
|
|
246
|
-
this.node.getFrequencyResponse(new Float32Array(frequencyArray), magData, phaseData);
|
|
247
|
-
for (let i = 0; i < magData.length; i++) {
|
|
248
|
-
magResponseOutput[i] = magData[i];
|
|
249
|
-
}
|
|
250
|
-
for (let i = 0; i < phaseData.length; i++) {
|
|
251
|
-
phaseResponseOutput[i] = phaseData[i];
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
export class PeriodicWave {
|
|
256
|
-
/** @internal */
|
|
257
|
-
|
|
258
|
-
constructor(periodicWave) {
|
|
259
|
-
this.periodicWave = periodicWave;
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
export class OscillatorNode extends AudioScheduledSourceNode {
|
|
263
|
-
constructor(context, node) {
|
|
264
|
-
super(context, node);
|
|
265
|
-
this.detune = new AudioParam(node.detune);
|
|
266
|
-
this.frequency = new AudioParam(node.frequency);
|
|
267
|
-
}
|
|
268
|
-
get type() {
|
|
269
|
-
return this.node.type;
|
|
270
|
-
}
|
|
271
|
-
set type(value) {
|
|
272
|
-
if (value === 'custom') {
|
|
273
|
-
throw new Error("'type' cannot be set directly to 'custom'. Use setPeriodicWave() to create a custom Oscillator type.");
|
|
274
|
-
}
|
|
275
|
-
this.node.type = value;
|
|
276
|
-
}
|
|
277
|
-
setPeriodicWave(wave) {
|
|
278
|
-
this.node.setPeriodicWave(wave.periodicWave);
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
export class GainNode extends AudioNode {
|
|
282
|
-
constructor(context, gain) {
|
|
283
|
-
super(context, gain);
|
|
284
|
-
this.gain = new AudioParam(gain.gain);
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
export class StereoPannerNode extends AudioNode {
|
|
288
|
-
constructor(context, pan) {
|
|
289
|
-
super(context, pan);
|
|
290
|
-
this.pan = new AudioParam(pan.pan);
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
export class AudioContext {
|
|
294
|
-
constructor(_sampleRate) {
|
|
295
|
-
this.context = new window.AudioContext();
|
|
296
|
-
this.sampleRate = this.context.sampleRate;
|
|
297
|
-
this.destination = new AudioDestinationNode(this, this.context.destination);
|
|
298
|
-
}
|
|
299
|
-
get currentTime() {
|
|
300
|
-
return this.context.currentTime;
|
|
301
|
-
}
|
|
302
|
-
get state() {
|
|
303
|
-
return this.context.state;
|
|
304
|
-
}
|
|
305
|
-
createOscillator() {
|
|
306
|
-
return new OscillatorNode(this, this.context.createOscillator());
|
|
307
|
-
}
|
|
308
|
-
createGain() {
|
|
309
|
-
return new GainNode(this, this.context.createGain());
|
|
310
|
-
}
|
|
311
|
-
createStereoPanner() {
|
|
312
|
-
return new StereoPannerNode(this, this.context.createStereoPanner());
|
|
313
|
-
}
|
|
314
|
-
createBiquadFilter() {
|
|
315
|
-
return new BiquadFilterNode(this, this.context.createBiquadFilter());
|
|
316
|
-
}
|
|
317
|
-
createBufferSource() {
|
|
318
|
-
return new AudioBufferSourceNode(this, this.context.createBufferSource());
|
|
319
|
-
}
|
|
320
|
-
createBuffer(numOfChannels, length, sampleRate) {
|
|
321
|
-
return new AudioBuffer(this.context.createBuffer(numOfChannels, length, sampleRate));
|
|
322
|
-
}
|
|
323
|
-
createPeriodicWave(real, imag, constraints) {
|
|
324
|
-
return new PeriodicWave(this.context.createPeriodicWave(real, imag, constraints));
|
|
325
|
-
}
|
|
326
|
-
createAnalyser() {
|
|
327
|
-
return new AnalyserNode(this, this.context.createAnalyser());
|
|
328
|
-
}
|
|
329
|
-
async decodeAudioDataSource(source) {
|
|
330
|
-
const arrayBuffer = await fetch(source).then(response => response.arrayBuffer());
|
|
331
|
-
return new AudioBuffer(await this.context.decodeAudioData(arrayBuffer));
|
|
332
|
-
}
|
|
333
|
-
async close() {
|
|
334
|
-
await this.context.close();
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
export { ContextState, OscillatorType, BiquadFilterType, ChannelCountMode, ChannelInterpretation } from "./core/types.js";
|
|
3
|
+
import { installModule } from "./specs/install.js";
|
|
4
|
+
if (global.__AudioAPIInstaller == null) {
|
|
5
|
+
installModule();
|
|
6
|
+
}
|
|
7
|
+
export { default as AudioBuffer } from "./core/AudioBuffer.js";
|
|
8
|
+
export { default as AudioBufferSourceNode } from "./core/AudioBufferSourceNode.js";
|
|
9
|
+
export { default as AudioContext } from "./core/AudioContext.js";
|
|
10
|
+
export { default as AudioDestinationNode } from "./core/AudioDestinationNode.js";
|
|
11
|
+
export { default as AudioNode } from "./core/AudioNode.js";
|
|
12
|
+
export { default as AnalyserNode } from "./core/AnalyserNode.js";
|
|
13
|
+
export { default as AudioParam } from "./core/AudioParam.js";
|
|
14
|
+
export { default as AudioScheduledSourceNode } from "./core/AudioScheduledSourceNode.js";
|
|
15
|
+
export { default as BaseAudioContext } from "./core/BaseAudioContext.js";
|
|
16
|
+
export { default as BiquadFilterNode } from "./core/BiquadFilterNode.js";
|
|
17
|
+
export { default as GainNode } from "./core/GainNode.js";
|
|
18
|
+
export { default as OscillatorNode } from "./core/OscillatorNode.js";
|
|
19
|
+
export { default as StereoPannerNode } from "./core/StereoPannerNode.js";
|
|
20
|
+
export { OscillatorType, BiquadFilterType, ChannelCountMode, ChannelInterpretation, ContextState, WindowType, PeriodicWaveConstraints } from "./types.js";
|
|
21
|
+
export { IndexSizeError, InvalidAccessError, InvalidStateError, RangeError } from "./errors/index.js";
|
|
338
22
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["InvalidStateError","AudioBuffer","constructor","buffer","length","duration","sampleRate","numberOfChannels","getChannelData","channel","Error","Array","from","copyFromChannel","destination","channelNumber","startInChannel","array","Float32Array","i","copyToChannel","source","AudioNode","context","node","numberOfInputs","numberOfOutputs","channelCount","channelCountMode","channelInterpretation","connect","disconnect","undefined","AnalyserNode","fftSize","frequencyBinCount","minDecibels","maxDecibels","smoothingTimeConstant","window","value","console","log","getByteFrequencyData","data","Uint8Array","getByteTimeDomainData","getFloatFrequencyData","getFloatTimeDomainData","AudioScheduledSourceNode","hasBeenStarted","start","when","RangeError","stop","AudioBufferSourceNode","detune","AudioParam","playbackRate","loop","loopStart","loopEnd","offset","AudioDestinationNode","param","defaultValue","minValue","maxValue","setValueAtTime","startTime","linearRampToValueAtTime","endTime","exponentialRampToValueAtTime","setTargetAtTime","target","timeConstant","setValueCurveAtTime","values","cancelScheduledValues","cancelAndHoldAtTime","cancelTime","BiquadFilterNode","biquadFilter","frequency","Q","gain","type","getFrequencyResponse","frequencyArray","magResponseOutput","phaseResponseOutput","magData","phaseData","PeriodicWave","periodicWave","OscillatorNode","setPeriodicWave","wave","GainNode","StereoPannerNode","pan","AudioContext","_sampleRate","currentTime","state","createOscillator","createGain","createStereoPanner","createBiquadFilter","createBufferSource","createBuffer","numOfChannels","createPeriodicWave","real","imag","constraints","createAnalyser","decodeAudioDataSource","arrayBuffer","fetch","then","response","decodeAudioData","close","ContextState","OscillatorType","BiquadFilterType","ChannelCountMode","ChannelInterpretation"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["installModule","global","__AudioAPIInstaller","default","AudioBuffer","AudioBufferSourceNode","AudioContext","AudioDestinationNode","AudioNode","AnalyserNode","AudioParam","AudioScheduledSourceNode","BaseAudioContext","BiquadFilterNode","GainNode","OscillatorNode","StereoPannerNode","OscillatorType","BiquadFilterType","ChannelCountMode","ChannelInterpretation","ContextState","WindowType","PeriodicWaveConstraints","IndexSizeError","InvalidAccessError","InvalidStateError","RangeError"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,oBAAiB;AAE/C,IAAIC,MAAM,CAACC,mBAAmB,IAAI,IAAI,EAAE;EACtCF,aAAa,CAAC,CAAC;AACjB;AAEA,SAASG,OAAO,IAAIC,WAAW,QAAQ,uBAAoB;AAC3D,SAASD,OAAO,IAAIE,qBAAqB,QAAQ,iCAA8B;AAC/E,SAASF,OAAO,IAAIG,YAAY,QAAQ,wBAAqB;AAC7D,SAASH,OAAO,IAAII,oBAAoB,QAAQ,gCAA6B;AAC7E,SAASJ,OAAO,IAAIK,SAAS,QAAQ,qBAAkB;AACvD,SAASL,OAAO,IAAIM,YAAY,QAAQ,wBAAqB;AAC7D,SAASN,OAAO,IAAIO,UAAU,QAAQ,sBAAmB;AACzD,SAASP,OAAO,IAAIQ,wBAAwB,QAAQ,oCAAiC;AACrF,SAASR,OAAO,IAAIS,gBAAgB,QAAQ,4BAAyB;AACrE,SAAST,OAAO,IAAIU,gBAAgB,QAAQ,4BAAyB;AACrE,SAASV,OAAO,IAAIW,QAAQ,QAAQ,oBAAiB;AACrD,SAASX,OAAO,IAAIY,cAAc,QAAQ,0BAAuB;AACjE,SAASZ,OAAO,IAAIa,gBAAgB,QAAQ,4BAAyB;AAErE,SACEC,cAAc,EACdC,gBAAgB,EAChBC,gBAAgB,EAChBC,qBAAqB,EACrBC,YAAY,EACZC,UAAU,EACVC,uBAAuB,QAClB,YAAS;AAEhB,SACEC,cAAc,EACdC,kBAAkB,EAClBC,iBAAiB,EACjBC,UAAU,QACL,mBAAU","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export { default as AudioBuffer } from "./web-core/AudioBuffer.js";
|
|
4
|
+
export { default as AudioBufferSourceNode } from "./web-core/AudioBufferSourceNode.js";
|
|
5
|
+
export { default as AudioContext } from "./web-core/AudioContext.js";
|
|
6
|
+
export { default as AudioDestinationNode } from "./web-core/AudioDestinationNode.js";
|
|
7
|
+
export { default as AudioNode } from "./web-core/AudioNode.js";
|
|
8
|
+
export { default as AnalyserNode } from "./web-core/AnalyserNode.js";
|
|
9
|
+
export { default as AudioParam } from "./web-core/AudioParam.js";
|
|
10
|
+
export { default as AudioScheduledSourceNode } from "./web-core/AudioScheduledSourceNode.js";
|
|
11
|
+
export { default as BaseAudioContext } from "./web-core/BaseAudioContext.js";
|
|
12
|
+
export { default as BiquadFilterNode } from "./web-core/BiquadFilterNode.js";
|
|
13
|
+
export { default as GainNode } from "./web-core/GainNode.js";
|
|
14
|
+
export { default as OscillatorNode } from "./web-core/OscillatorNode.js";
|
|
15
|
+
export { default as StereoPannerNode } from "./web-core/StereoPannerNode.js";
|
|
16
|
+
export { OscillatorType, BiquadFilterType, ChannelCountMode, ChannelInterpretation, ContextState, WindowType, PeriodicWaveConstraints } from "./types.js";
|
|
17
|
+
export { IndexSizeError, InvalidAccessError, InvalidStateError, RangeError } from "./errors/index.js";
|
|
18
|
+
//# sourceMappingURL=index.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["default","AudioBuffer","AudioBufferSourceNode","AudioContext","AudioDestinationNode","AudioNode","AnalyserNode","AudioParam","AudioScheduledSourceNode","BaseAudioContext","BiquadFilterNode","GainNode","OscillatorNode","StereoPannerNode","OscillatorType","BiquadFilterType","ChannelCountMode","ChannelInterpretation","ContextState","WindowType","PeriodicWaveConstraints","IndexSizeError","InvalidAccessError","InvalidStateError","RangeError"],"sourceRoot":"../../src","sources":["index.web.ts"],"mappings":";;AAAA,SAASA,OAAO,IAAIC,WAAW,QAAQ,2BAAwB;AAC/D,SAASD,OAAO,IAAIE,qBAAqB,QAAQ,qCAAkC;AACnF,SAASF,OAAO,IAAIG,YAAY,QAAQ,4BAAyB;AACjE,SAASH,OAAO,IAAII,oBAAoB,QAAQ,oCAAiC;AACjF,SAASJ,OAAO,IAAIK,SAAS,QAAQ,yBAAsB;AAC3D,SAASL,OAAO,IAAIM,YAAY,QAAQ,4BAAyB;AACjE,SAASN,OAAO,IAAIO,UAAU,QAAQ,0BAAuB;AAC7D,SAASP,OAAO,IAAIQ,wBAAwB,QAAQ,wCAAqC;AACzF,SAASR,OAAO,IAAIS,gBAAgB,QAAQ,gCAA6B;AACzE,SAAST,OAAO,IAAIU,gBAAgB,QAAQ,gCAA6B;AACzE,SAASV,OAAO,IAAIW,QAAQ,QAAQ,wBAAqB;AACzD,SAASX,OAAO,IAAIY,cAAc,QAAQ,8BAA2B;AACrE,SAASZ,OAAO,IAAIa,gBAAgB,QAAQ,gCAA6B;AAEzE,SACEC,cAAc,EACdC,gBAAgB,EAChBC,gBAAgB,EAChBC,qBAAqB,EACrBC,YAAY,EACZC,UAAU,EACVC,uBAAuB,QAClB,YAAS;AAEhB,SACEC,cAAc,EACdC,kBAAkB,EAClBC,iBAAiB,EACjBC,UAAU,QACL,mBAAU","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import AudioNode from "./AudioNode.js";
|
|
4
|
+
export default class AnalyserNode extends AudioNode {
|
|
5
|
+
constructor(context, node) {
|
|
6
|
+
super(context, node);
|
|
7
|
+
this.fftSize = node.fftSize;
|
|
8
|
+
this.frequencyBinCount = node.frequencyBinCount;
|
|
9
|
+
this.minDecibels = node.minDecibels;
|
|
10
|
+
this.maxDecibels = node.maxDecibels;
|
|
11
|
+
this.smoothingTimeConstant = node.smoothingTimeConstant;
|
|
12
|
+
}
|
|
13
|
+
get window() {
|
|
14
|
+
return 'blackman';
|
|
15
|
+
}
|
|
16
|
+
set window(value) {
|
|
17
|
+
console.log('React Native Audio API: setting window is not supported on web');
|
|
18
|
+
}
|
|
19
|
+
getByteFrequencyData(array) {
|
|
20
|
+
const data = new Uint8Array(array);
|
|
21
|
+
this.node.getByteFrequencyData(data);
|
|
22
|
+
for (let i = 0; i < array.length; i++) {
|
|
23
|
+
array[i] = data[i];
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
getByteTimeDomainData(array) {
|
|
27
|
+
const data = new Uint8Array(array);
|
|
28
|
+
this.node.getByteTimeDomainData(data);
|
|
29
|
+
for (let i = 0; i < array.length; i++) {
|
|
30
|
+
array[i] = data[i];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
getFloatFrequencyData(array) {
|
|
34
|
+
const data = new Float32Array(array);
|
|
35
|
+
this.node.getFloatFrequencyData(data);
|
|
36
|
+
for (let i = 0; i < array.length; i++) {
|
|
37
|
+
array[i] = data[i];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
getFloatTimeDomainData(array) {
|
|
41
|
+
const data = new Float32Array(array);
|
|
42
|
+
this.node.getFloatTimeDomainData(data);
|
|
43
|
+
for (let i = 0; i < array.length; i++) {
|
|
44
|
+
array[i] = data[i];
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=AnalyserNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AudioNode","AnalyserNode","constructor","context","node","fftSize","frequencyBinCount","minDecibels","maxDecibels","smoothingTimeConstant","window","value","console","log","getByteFrequencyData","array","data","Uint8Array","i","length","getByteTimeDomainData","getFloatFrequencyData","Float32Array","getFloatTimeDomainData"],"sourceRoot":"../../../src","sources":["web-core/AnalyserNode.tsx"],"mappings":";;AAAA,OAAOA,SAAS,MAAM,gBAAa;AAInC,eAAe,MAAMC,YAAY,SAASD,SAAS,CAAC;EAOlDE,WAAWA,CAACC,OAAyB,EAAEC,IAA6B,EAAE;IACpE,KAAK,CAACD,OAAO,EAAEC,IAAI,CAAC;IAEpB,IAAI,CAACC,OAAO,GAAGD,IAAI,CAACC,OAAO;IAC3B,IAAI,CAACC,iBAAiB,GAAGF,IAAI,CAACE,iBAAiB;IAC/C,IAAI,CAACC,WAAW,GAAGH,IAAI,CAACG,WAAW;IACnC,IAAI,CAACC,WAAW,GAAGJ,IAAI,CAACI,WAAW;IACnC,IAAI,CAACC,qBAAqB,GAAGL,IAAI,CAACK,qBAAqB;EACzD;EAEA,IAAWC,MAAMA,CAAA,EAAe;IAC9B,OAAO,UAAU;EACnB;EAEA,IAAWA,MAAMA,CAACC,KAAiB,EAAE;IACnCC,OAAO,CAACC,GAAG,CACT,gEACF,CAAC;EACH;EAEOC,oBAAoBA,CAACC,KAAe,EAAQ;IACjD,MAAMC,IAAI,GAAG,IAAIC,UAAU,CAACF,KAAK,CAAC;IAEjC,IAAI,CAACX,IAAI,CAA6BU,oBAAoB,CAACE,IAAI,CAAC;IAEjE,KAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,KAAK,CAACI,MAAM,EAAED,CAAC,EAAE,EAAE;MACrCH,KAAK,CAACG,CAAC,CAAC,GAAGF,IAAI,CAACE,CAAC,CAAC;IACpB;EACF;EAEOE,qBAAqBA,CAACL,KAAe,EAAQ;IAClD,MAAMC,IAAI,GAAG,IAAIC,UAAU,CAACF,KAAK,CAAC;IAEjC,IAAI,CAACX,IAAI,CAA6BgB,qBAAqB,CAACJ,IAAI,CAAC;IAElE,KAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,KAAK,CAACI,MAAM,EAAED,CAAC,EAAE,EAAE;MACrCH,KAAK,CAACG,CAAC,CAAC,GAAGF,IAAI,CAACE,CAAC,CAAC;IACpB;EACF;EAEOG,qBAAqBA,CAACN,KAAe,EAAQ;IAClD,MAAMC,IAAI,GAAG,IAAIM,YAAY,CAACP,KAAK,CAAC;IACnC,IAAI,CAACX,IAAI,CAA6BiB,qBAAqB,CAACL,IAAI,CAAC;IAElE,KAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,KAAK,CAACI,MAAM,EAAED,CAAC,EAAE,EAAE;MACrCH,KAAK,CAACG,CAAC,CAAC,GAAGF,IAAI,CAACE,CAAC,CAAC;IACpB;EACF;EAEOK,sBAAsBA,CAACR,KAAe,EAAQ;IACnD,MAAMC,IAAI,GAAG,IAAIM,YAAY,CAACP,KAAK,CAAC;IACnC,IAAI,CAACX,IAAI,CAA6BmB,sBAAsB,CAACP,IAAI,CAAC;IAEnE,KAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,KAAK,CAACI,MAAM,EAAED,CAAC,EAAE,EAAE;MACrCH,KAAK,CAACG,CAAC,CAAC,GAAGF,IAAI,CAACE,CAAC,CAAC;IACpB;EACF;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { IndexSizeError } from "../errors/index.js";
|
|
4
|
+
export default class AudioBuffer {
|
|
5
|
+
/** @internal */
|
|
6
|
+
|
|
7
|
+
constructor(buffer) {
|
|
8
|
+
this.buffer = buffer;
|
|
9
|
+
this.length = buffer.length;
|
|
10
|
+
this.duration = buffer.duration;
|
|
11
|
+
this.sampleRate = buffer.sampleRate;
|
|
12
|
+
this.numberOfChannels = buffer.numberOfChannels;
|
|
13
|
+
}
|
|
14
|
+
getChannelData(channel) {
|
|
15
|
+
if (channel < 0 || channel >= this.numberOfChannels) {
|
|
16
|
+
throw new IndexSizeError(`The channel number provided (${channel}) is outside the range [0, ${this.numberOfChannels - 1}]`);
|
|
17
|
+
}
|
|
18
|
+
return Array.from(this.buffer.getChannelData(channel));
|
|
19
|
+
}
|
|
20
|
+
copyFromChannel(destination, channelNumber, startInChannel = 0) {
|
|
21
|
+
if (channelNumber < 0 || channelNumber >= this.numberOfChannels) {
|
|
22
|
+
throw new IndexSizeError(`The channel number provided (${channelNumber}) is outside the range [0, ${this.numberOfChannels - 1}]`);
|
|
23
|
+
}
|
|
24
|
+
if (startInChannel < 0 || startInChannel >= this.length) {
|
|
25
|
+
throw new IndexSizeError(`The startInChannel number provided (${startInChannel}) is outside the range [0, ${this.length - 1}]`);
|
|
26
|
+
}
|
|
27
|
+
const array = new Float32Array(destination);
|
|
28
|
+
this.buffer.copyFromChannel(array, channelNumber, startInChannel);
|
|
29
|
+
for (let i = 0; i < destination.length; i++) {
|
|
30
|
+
destination[i] = array[i];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
copyToChannel(source, channelNumber, startInChannel = 0) {
|
|
34
|
+
if (channelNumber < 0 || channelNumber >= this.numberOfChannels) {
|
|
35
|
+
throw new IndexSizeError(`The channel number provided (${channelNumber}) is outside the range [0, ${this.numberOfChannels - 1}]`);
|
|
36
|
+
}
|
|
37
|
+
if (startInChannel < 0 || startInChannel >= this.length) {
|
|
38
|
+
throw new IndexSizeError(`The startInChannel number provided (${startInChannel}) is outside the range [0, ${this.length - 1}]`);
|
|
39
|
+
}
|
|
40
|
+
this.buffer.copyToChannel(new Float32Array(source), channelNumber, startInChannel);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=AudioBuffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["IndexSizeError","AudioBuffer","constructor","buffer","length","duration","sampleRate","numberOfChannels","getChannelData","channel","Array","from","copyFromChannel","destination","channelNumber","startInChannel","array","Float32Array","i","copyToChannel","source"],"sourceRoot":"../../../src","sources":["web-core/AudioBuffer.tsx"],"mappings":";;AAAA,SAASA,cAAc,QAAQ,oBAAW;AAE1C,eAAe,MAAMC,WAAW,CAAC;EAM/B;;EAGAC,WAAWA,CAACC,MAA8B,EAAE;IAC1C,IAAI,CAACA,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;IAC3B,IAAI,CAACC,QAAQ,GAAGF,MAAM,CAACE,QAAQ;IAC/B,IAAI,CAACC,UAAU,GAAGH,MAAM,CAACG,UAAU;IACnC,IAAI,CAACC,gBAAgB,GAAGJ,MAAM,CAACI,gBAAgB;EACjD;EAEOC,cAAcA,CAACC,OAAe,EAAY;IAC/C,IAAIA,OAAO,GAAG,CAAC,IAAIA,OAAO,IAAI,IAAI,CAACF,gBAAgB,EAAE;MACnD,MAAM,IAAIP,cAAc,CACtB,gCAAgCS,OAAO,8BAA8B,IAAI,CAACF,gBAAgB,GAAG,CAAC,GAChG,CAAC;IACH;IAEA,OAAOG,KAAK,CAACC,IAAI,CAAC,IAAI,CAACR,MAAM,CAACK,cAAc,CAACC,OAAO,CAAC,CAAC;EACxD;EAEOG,eAAeA,CACpBC,WAAqB,EACrBC,aAAqB,EACrBC,cAAsB,GAAG,CAAC,EACpB;IACN,IAAID,aAAa,GAAG,CAAC,IAAIA,aAAa,IAAI,IAAI,CAACP,gBAAgB,EAAE;MAC/D,MAAM,IAAIP,cAAc,CACtB,gCAAgCc,aAAa,8BAA8B,IAAI,CAACP,gBAAgB,GAAG,CAAC,GACtG,CAAC;IACH;IAEA,IAAIQ,cAAc,GAAG,CAAC,IAAIA,cAAc,IAAI,IAAI,CAACX,MAAM,EAAE;MACvD,MAAM,IAAIJ,cAAc,CACtB,uCAAuCe,cAAc,8BAA8B,IAAI,CAACX,MAAM,GAAG,CAAC,GACpG,CAAC;IACH;IAEA,MAAMY,KAAK,GAAG,IAAIC,YAAY,CAACJ,WAAW,CAAC;IAE3C,IAAI,CAACV,MAAM,CAACS,eAAe,CAACI,KAAK,EAAEF,aAAa,EAAEC,cAAc,CAAC;IAEjE,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,WAAW,CAACT,MAAM,EAAEc,CAAC,EAAE,EAAE;MAC3CL,WAAW,CAACK,CAAC,CAAC,GAAGF,KAAK,CAACE,CAAC,CAAC;IAC3B;EACF;EAEOC,aAAaA,CAClBC,MAAgB,EAChBN,aAAqB,EACrBC,cAAsB,GAAG,CAAC,EACpB;IACN,IAAID,aAAa,GAAG,CAAC,IAAIA,aAAa,IAAI,IAAI,CAACP,gBAAgB,EAAE;MAC/D,MAAM,IAAIP,cAAc,CACtB,gCAAgCc,aAAa,8BAA8B,IAAI,CAACP,gBAAgB,GAAG,CAAC,GACtG,CAAC;IACH;IAEA,IAAIQ,cAAc,GAAG,CAAC,IAAIA,cAAc,IAAI,IAAI,CAACX,MAAM,EAAE;MACvD,MAAM,IAAIJ,cAAc,CACtB,uCAAuCe,cAAc,8BAA8B,IAAI,CAACX,MAAM,GAAG,CAAC,GACpG,CAAC;IACH;IAEA,IAAI,CAACD,MAAM,CAACgB,aAAa,CACvB,IAAIF,YAAY,CAACG,MAAM,CAAC,EACxBN,aAAa,EACbC,cACF,CAAC;EACH;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import AudioScheduledSourceNode from "./AudioScheduledSourceNode.js";
|
|
4
|
+
import AudioParam from "./AudioParam.js";
|
|
5
|
+
import AudioBuffer from "./AudioBuffer.js";
|
|
6
|
+
import { InvalidStateError, RangeError } from "../errors/index.js";
|
|
7
|
+
export default class AudioBufferSourceNode extends AudioScheduledSourceNode {
|
|
8
|
+
constructor(context, node) {
|
|
9
|
+
super(context, node);
|
|
10
|
+
this.detune = new AudioParam(node.detune);
|
|
11
|
+
this.playbackRate = new AudioParam(node.playbackRate);
|
|
12
|
+
}
|
|
13
|
+
get buffer() {
|
|
14
|
+
const buffer = this.node.buffer;
|
|
15
|
+
if (!buffer) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
return new AudioBuffer(buffer);
|
|
19
|
+
}
|
|
20
|
+
set buffer(buffer) {
|
|
21
|
+
if (!buffer) {
|
|
22
|
+
this.node = null;
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
this.node.buffer = buffer.buffer;
|
|
26
|
+
}
|
|
27
|
+
get loop() {
|
|
28
|
+
return this.node.loop;
|
|
29
|
+
}
|
|
30
|
+
set loop(value) {
|
|
31
|
+
this.node.loop = value;
|
|
32
|
+
}
|
|
33
|
+
get loopStart() {
|
|
34
|
+
return this.node.loopStart;
|
|
35
|
+
}
|
|
36
|
+
set loopStart(value) {
|
|
37
|
+
this.node.loopStart = value;
|
|
38
|
+
}
|
|
39
|
+
get loopEnd() {
|
|
40
|
+
return this.node.loopEnd;
|
|
41
|
+
}
|
|
42
|
+
set loopEnd(value) {
|
|
43
|
+
this.node.loopEnd = value;
|
|
44
|
+
}
|
|
45
|
+
start(when, offset, duration) {
|
|
46
|
+
if (when && when < 0) {
|
|
47
|
+
throw new RangeError(`when must be a finite non-negative number: ${when}`);
|
|
48
|
+
}
|
|
49
|
+
if (offset && offset < 0) {
|
|
50
|
+
throw new RangeError(`offset must be a finite non-negative number: ${offset}`);
|
|
51
|
+
}
|
|
52
|
+
if (duration && duration < 0) {
|
|
53
|
+
throw new RangeError(`duration must be a finite non-negative number: ${duration}`);
|
|
54
|
+
}
|
|
55
|
+
if (this.hasBeenStarted) {
|
|
56
|
+
throw new InvalidStateError('Cannot call start more than once');
|
|
57
|
+
}
|
|
58
|
+
this.hasBeenStarted = true;
|
|
59
|
+
this.node.start(when, offset, duration);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=AudioBufferSourceNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AudioScheduledSourceNode","AudioParam","AudioBuffer","InvalidStateError","RangeError","AudioBufferSourceNode","constructor","context","node","detune","playbackRate","buffer","loop","value","loopStart","loopEnd","start","when","offset","duration","hasBeenStarted"],"sourceRoot":"../../../src","sources":["web-core/AudioBufferSourceNode.tsx"],"mappings":";;AAAA,OAAOA,wBAAwB,MAAM,+BAA4B;AACjE,OAAOC,UAAU,MAAM,iBAAc;AACrC,OAAOC,WAAW,MAAM,kBAAe;AACvC,SAASC,iBAAiB,EAAEC,UAAU,QAAQ,oBAAW;AAGzD,eAAe,MAAMC,qBAAqB,SAASL,wBAAwB,CAAC;EAI1EM,WAAWA,CACTC,OAAyB,EACzBC,IAAsC,EACtC;IACA,KAAK,CAACD,OAAO,EAAEC,IAAI,CAAC;IAEpB,IAAI,CAACC,MAAM,GAAG,IAAIR,UAAU,CAACO,IAAI,CAACC,MAAM,CAAC;IACzC,IAAI,CAACC,YAAY,GAAG,IAAIT,UAAU,CAACO,IAAI,CAACE,YAAY,CAAC;EACvD;EAEA,IAAWC,MAAMA,CAAA,EAAuB;IACtC,MAAMA,MAAM,GAAI,IAAI,CAACH,IAAI,CAAsCG,MAAM;IAErE,IAAI,CAACA,MAAM,EAAE;MACX,OAAO,IAAI;IACb;IAEA,OAAO,IAAIT,WAAW,CAACS,MAAM,CAAC;EAChC;EAEA,IAAWA,MAAMA,CAACA,MAA0B,EAAE;IAC5C,IAAI,CAACA,MAAM,EAAE;MACV,IAAI,CAACH,IAAI,GAA+C,IAAI;MAC7D;IACF;IAEC,IAAI,CAACA,IAAI,CAAsCG,MAAM,GAAGA,MAAM,CAACA,MAAM;EACxE;EAEA,IAAWC,IAAIA,CAAA,EAAY;IACzB,OAAQ,IAAI,CAACJ,IAAI,CAAsCI,IAAI;EAC7D;EAEA,IAAWA,IAAIA,CAACC,KAAc,EAAE;IAC7B,IAAI,CAACL,IAAI,CAAsCI,IAAI,GAAGC,KAAK;EAC9D;EAEA,IAAWC,SAASA,CAAA,EAAW;IAC7B,OAAQ,IAAI,CAACN,IAAI,CAAsCM,SAAS;EAClE;EAEA,IAAWA,SAASA,CAACD,KAAa,EAAE;IACjC,IAAI,CAACL,IAAI,CAAsCM,SAAS,GAAGD,KAAK;EACnE;EAEA,IAAWE,OAAOA,CAAA,EAAW;IAC3B,OAAQ,IAAI,CAACP,IAAI,CAAsCO,OAAO;EAChE;EAEA,IAAWA,OAAOA,CAACF,KAAa,EAAE;IAC/B,IAAI,CAACL,IAAI,CAAsCO,OAAO,GAAGF,KAAK;EACjE;EAEOG,KAAKA,CAACC,IAAa,EAAEC,MAAe,EAAEC,QAAiB,EAAQ;IACpE,IAAIF,IAAI,IAAIA,IAAI,GAAG,CAAC,EAAE;MACpB,MAAM,IAAIb,UAAU,CAClB,8CAA8Ca,IAAI,EACpD,CAAC;IACH;IAEA,IAAIC,MAAM,IAAIA,MAAM,GAAG,CAAC,EAAE;MACxB,MAAM,IAAId,UAAU,CAClB,gDAAgDc,MAAM,EACxD,CAAC;IACH;IAEA,IAAIC,QAAQ,IAAIA,QAAQ,GAAG,CAAC,EAAE;MAC5B,MAAM,IAAIf,UAAU,CAClB,kDAAkDe,QAAQ,EAC5D,CAAC;IACH;IAEA,IAAI,IAAI,CAACC,cAAc,EAAE;MACvB,MAAM,IAAIjB,iBAAiB,CAAC,kCAAkC,CAAC;IACjE;IAEA,IAAI,CAACiB,cAAc,GAAG,IAAI;IACzB,IAAI,CAACZ,IAAI,CAAsCQ,KAAK,CACnDC,IAAI,EACJC,MAAM,EACNC,QACF,CAAC;EACH;AACF","ignoreList":[]}
|