react-native-audio-api 0.4.13 → 0.5.0-rc.1
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/src/main/java/com/swmansion/audioapi/AudioAPIModule.kt +7 -6
- package/android/src/main/java/com/swmansion/audioapi/AudioAPIPackage.kt +25 -24
- package/common/cpp/audioapi/HostObjects/AnalyserNodeHostObject.h +17 -41
- package/common/cpp/audioapi/HostObjects/AudioBufferHostObject.h +22 -32
- package/common/cpp/audioapi/HostObjects/AudioBufferSourceNodeHostObject.h +2 -17
- package/common/cpp/audioapi/HostObjects/AudioContextHostObject.h +14 -4
- package/common/cpp/audioapi/HostObjects/AudioParamHostObject.h +5 -8
- package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.h +13 -9
- package/common/cpp/audioapi/HostObjects/BiquadFilterNodeHostObject.h +8 -19
- package/common/cpp/audioapi/core/AudioContext.cpp +14 -4
- package/common/cpp/audioapi/core/AudioContext.h +2 -2
- package/common/cpp/audioapi/core/BaseAudioContext.cpp +4 -2
- package/common/cpp/audioapi/core/BaseAudioContext.h +1 -1
- package/common/cpp/audioapi/core/effects/BiquadFilterNode.cpp +5 -6
- package/common/cpp/audioapi/core/effects/BiquadFilterNode.h +4 -3
- package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.cpp +5 -11
- package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.h +3 -31
- package/lib/module/api.js +1 -1
- package/lib/module/api.js.map +1 -1
- package/lib/module/api.web.js +1 -2
- package/lib/module/api.web.js.map +1 -1
- package/lib/module/core/AnalyserNode.js.map +1 -1
- package/lib/module/core/AudioBuffer.js.map +1 -1
- package/lib/module/core/AudioBufferSourceNode.js +0 -6
- package/lib/module/core/AudioBufferSourceNode.js.map +1 -1
- package/lib/module/core/AudioParam.js.map +1 -1
- package/lib/module/core/BaseAudioContext.js +3 -2
- package/lib/module/core/BaseAudioContext.js.map +1 -1
- package/lib/module/core/BiquadFilterNode.js.map +1 -1
- package/lib/module/utils/index.js +6 -0
- package/lib/module/utils/index.js.map +1 -0
- package/lib/module/web-core/AnalyserNode.js +4 -20
- package/lib/module/web-core/AnalyserNode.js.map +1 -1
- package/lib/module/web-core/AudioBuffer.js +2 -6
- package/lib/module/web-core/AudioBuffer.js.map +1 -1
- package/lib/module/web-core/AudioBufferSourceNode.js +161 -21
- package/lib/module/web-core/AudioBufferSourceNode.js.map +1 -1
- package/lib/module/web-core/AudioContext.js +7 -8
- package/lib/module/web-core/AudioContext.js.map +1 -1
- package/lib/module/web-core/AudioParam.js +1 -1
- package/lib/module/web-core/AudioParam.js.map +1 -1
- package/lib/module/web-core/BiquadFilterNode.js +1 -9
- package/lib/module/web-core/BiquadFilterNode.js.map +1 -1
- package/lib/module/web-core/custom/signalsmithStretch/SignalsmithStretch.mjs +2 -2
- package/lib/module/web-core/custom/signalsmithStretch/SignalsmithStretch.mjs.map +1 -1
- package/lib/typescript/api.d.ts +1 -1
- package/lib/typescript/api.d.ts.map +1 -1
- package/lib/typescript/api.web.d.ts +1 -2
- package/lib/typescript/api.web.d.ts.map +1 -1
- package/lib/typescript/core/AnalyserNode.d.ts +4 -4
- package/lib/typescript/core/AnalyserNode.d.ts.map +1 -1
- package/lib/typescript/core/AudioBuffer.d.ts +3 -3
- package/lib/typescript/core/AudioBuffer.d.ts.map +1 -1
- package/lib/typescript/core/AudioBufferSourceNode.d.ts +0 -3
- package/lib/typescript/core/AudioBufferSourceNode.d.ts.map +1 -1
- package/lib/typescript/core/AudioParam.d.ts +1 -1
- package/lib/typescript/core/AudioParam.d.ts.map +1 -1
- package/lib/typescript/core/BaseAudioContext.d.ts +3 -3
- 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/interfaces.d.ts +12 -13
- package/lib/typescript/interfaces.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +3 -1
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/utils/index.d.ts +2 -0
- package/lib/typescript/utils/index.d.ts.map +1 -0
- package/lib/typescript/web-core/AnalyserNode.d.ts +4 -4
- package/lib/typescript/web-core/AnalyserNode.d.ts.map +1 -1
- package/lib/typescript/web-core/AudioBuffer.d.ts +2 -2
- package/lib/typescript/web-core/AudioBuffer.d.ts.map +1 -1
- package/lib/typescript/web-core/AudioBufferSourceNode.d.ts +58 -6
- package/lib/typescript/web-core/AudioBufferSourceNode.d.ts.map +1 -1
- package/lib/typescript/web-core/AudioContext.d.ts +3 -5
- package/lib/typescript/web-core/AudioContext.d.ts.map +1 -1
- package/lib/typescript/web-core/AudioParam.d.ts +1 -1
- package/lib/typescript/web-core/AudioParam.d.ts.map +1 -1
- package/lib/typescript/web-core/BaseAudioContext.d.ts +2 -2
- package/lib/typescript/web-core/BaseAudioContext.d.ts.map +1 -1
- package/lib/typescript/web-core/BiquadFilterNode.d.ts +1 -1
- package/lib/typescript/web-core/BiquadFilterNode.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/api.ts +0 -1
- package/src/api.web.ts +0 -2
- package/src/core/AnalyserNode.ts +4 -4
- package/src/core/AudioBuffer.ts +3 -3
- package/src/core/AudioBufferSourceNode.ts +0 -9
- package/src/core/AudioParam.ts +1 -1
- package/src/core/BaseAudioContext.ts +16 -5
- package/src/core/BiquadFilterNode.ts +3 -3
- package/src/interfaces.ts +14 -16
- package/src/types.ts +3 -1
- package/src/utils/index.ts +3 -0
- package/src/web-core/AnalyserNode.tsx +8 -30
- package/src/web-core/AudioBuffer.tsx +4 -14
- package/src/web-core/AudioBufferSourceNode.tsx +357 -31
- package/src/web-core/AudioContext.tsx +19 -13
- package/src/web-core/AudioParam.tsx +2 -6
- package/src/web-core/BaseAudioContext.tsx +3 -3
- package/src/web-core/BiquadFilterNode.tsx +6 -16
- package/src/web-core/custom/signalsmithStretch/SignalsmithStretch.mjs +4 -3
- package/common/cpp/audioapi/core/types/TimeStretchType.h +0 -7
- package/lib/module/web-core/StretcherNode.js +0 -81
- package/lib/module/web-core/StretcherNode.js.map +0 -1
- package/lib/module/web-core/custom/signalsmithStretch/SignalsmithStretch.js +0 -823
- package/lib/module/web-core/custom/signalsmithStretch/SignalsmithStretch.js.map +0 -1
- package/lib/typescript/web-core/StretcherNode.d.ts +0 -48
- package/lib/typescript/web-core/StretcherNode.d.ts.map +0 -1
- package/src/web-core/StretcherNode.tsx +0 -145
- package/src/web-core/custom/signalsmithStretch/SignalsmithStretch.js +0 -946
|
@@ -10,9 +10,9 @@ export default class AnalyserNode extends AudioNode {
|
|
|
10
10
|
constructor(context: BaseAudioContext, node: globalThis.AnalyserNode);
|
|
11
11
|
get window(): WindowType;
|
|
12
12
|
set window(value: WindowType);
|
|
13
|
-
getByteFrequencyData(array:
|
|
14
|
-
getByteTimeDomainData(array:
|
|
15
|
-
getFloatFrequencyData(array:
|
|
16
|
-
getFloatTimeDomainData(array:
|
|
13
|
+
getByteFrequencyData(array: Uint8Array): void;
|
|
14
|
+
getByteTimeDomainData(array: Uint8Array): void;
|
|
15
|
+
getFloatFrequencyData(array: Float32Array): void;
|
|
16
|
+
getFloatTimeDomainData(array: Float32Array): void;
|
|
17
17
|
}
|
|
18
18
|
//# sourceMappingURL=AnalyserNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnalyserNode.d.ts","sourceRoot":"","sources":["../../../src/web-core/AnalyserNode.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,SAAS;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;gBAElB,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,CAAC,YAAY;IAUpE,IAAW,MAAM,IAAI,UAAU,CAE9B;IAED,IAAW,MAAM,CAAC,KAAK,EAAE,UAAU,EAIlC;IAEM,oBAAoB,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"AnalyserNode.d.ts","sourceRoot":"","sources":["../../../src/web-core/AnalyserNode.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,SAAS;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;gBAElB,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,CAAC,YAAY;IAUpE,IAAW,MAAM,IAAI,UAAU,CAE9B;IAED,IAAW,MAAM,CAAC,KAAK,EAAE,UAAU,EAIlC;IAEM,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAI7C,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAI9C,qBAAqB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAIhD,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;CAGzD"}
|
|
@@ -7,7 +7,7 @@ export default class AudioBuffer {
|
|
|
7
7
|
readonly buffer: globalThis.AudioBuffer;
|
|
8
8
|
constructor(buffer: globalThis.AudioBuffer);
|
|
9
9
|
getChannelData(channel: number): Float32Array;
|
|
10
|
-
copyFromChannel(destination:
|
|
11
|
-
copyToChannel(source:
|
|
10
|
+
copyFromChannel(destination: Float32Array, channelNumber: number, startInChannel?: number): void;
|
|
11
|
+
copyToChannel(source: Float32Array, channelNumber: number, startInChannel?: number): void;
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=AudioBuffer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioBuffer.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioBuffer.tsx"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAElC,gBAAgB;IAChB,SAAgB,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;gBAEnC,MAAM,EAAE,UAAU,CAAC,WAAW;IAQnC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY;IAU7C,eAAe,CACpB,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"AudioBuffer.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioBuffer.tsx"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAElC,gBAAgB;IAChB,SAAgB,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;gBAEnC,MAAM,EAAE,UAAU,CAAC,WAAW;IAQnC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY;IAU7C,eAAe,CACpB,WAAW,EAAE,YAAY,EACzB,aAAa,EAAE,MAAM,EACrB,cAAc,GAAE,MAAU,GACzB,IAAI;IAgBA,aAAa,CAClB,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,MAAM,EACrB,cAAc,GAAE,MAAU,GACzB,IAAI;CAeR"}
|
|
@@ -1,12 +1,64 @@
|
|
|
1
|
-
import AudioScheduledSourceNode from './AudioScheduledSourceNode';
|
|
2
1
|
import AudioParam from './AudioParam';
|
|
3
2
|
import AudioBuffer from './AudioBuffer';
|
|
4
3
|
import BaseAudioContext from './BaseAudioContext';
|
|
5
|
-
import
|
|
6
|
-
|
|
4
|
+
import AudioScheduledSourceNode from './AudioScheduledSourceNode';
|
|
5
|
+
import { globalTag } from './custom/LoadCustomWasm';
|
|
6
|
+
interface ScheduleOptions {
|
|
7
|
+
rate?: number;
|
|
8
|
+
active?: boolean;
|
|
9
|
+
output?: number;
|
|
10
|
+
input?: number;
|
|
11
|
+
semitones?: number;
|
|
12
|
+
loopStart?: number;
|
|
13
|
+
loopEnd?: number;
|
|
14
|
+
}
|
|
15
|
+
interface IStretcherNode extends globalThis.AudioNode {
|
|
16
|
+
channelCount: number;
|
|
17
|
+
channelCountMode: globalThis.ChannelCountMode;
|
|
18
|
+
channelInterpretation: globalThis.ChannelInterpretation;
|
|
19
|
+
context: globalThis.BaseAudioContext;
|
|
20
|
+
numberOfInputs: number;
|
|
21
|
+
numberOfOutputs: number;
|
|
22
|
+
onended: ((this: globalThis.AudioScheduledSourceNode, ev: Event) => unknown) | null;
|
|
23
|
+
addEventListener: (type: string, listener: EventListenerOrEventListenerObject | null, options?: boolean | AddEventListenerOptions | undefined) => void;
|
|
24
|
+
dispatchEvent: (event: Event) => boolean;
|
|
25
|
+
removeEventListener: (type: string, callback: EventListenerOrEventListenerObject | null, options?: boolean | EventListenerOptions | undefined) => void;
|
|
26
|
+
addBuffers(channels: Float32Array[]): void;
|
|
27
|
+
dropBuffers(): void;
|
|
28
|
+
schedule(options: ScheduleOptions): void;
|
|
29
|
+
start(when?: number, offset?: number, duration?: number, rate?: number, semitones?: number): void;
|
|
30
|
+
stop(when?: number): void;
|
|
31
|
+
connect(destination: globalThis.AudioNode, output?: number, input?: number): globalThis.AudioNode;
|
|
32
|
+
connect(destination: globalThis.AudioParam, output?: number): void;
|
|
33
|
+
disconnect(): void;
|
|
34
|
+
disconnect(output: number): void;
|
|
35
|
+
disconnect(destination: globalThis.AudioNode): globalThis.AudioNode;
|
|
36
|
+
disconnect(destination: globalThis.AudioNode, output: number): void;
|
|
37
|
+
disconnect(destination: globalThis.AudioNode, output: number, input: number): void;
|
|
38
|
+
disconnect(destination: globalThis.AudioParam): void;
|
|
39
|
+
disconnect(destination: globalThis.AudioParam, output: number): void;
|
|
40
|
+
}
|
|
41
|
+
type DefaultSource = globalThis.AudioBufferSourceNode;
|
|
42
|
+
type IAudioBufferSourceNode = DefaultSource | IStretcherNode;
|
|
43
|
+
declare global {
|
|
44
|
+
interface Window {
|
|
45
|
+
[globalTag]: (audioContext: globalThis.BaseAudioContext) => Promise<IStretcherNode>;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export default class AudioBufferSourceNode<T extends IAudioBufferSourceNode = DefaultSource> extends AudioScheduledSourceNode {
|
|
49
|
+
private _pitchCorrection;
|
|
7
50
|
readonly playbackRate: AudioParam;
|
|
8
51
|
readonly detune: AudioParam;
|
|
9
|
-
|
|
52
|
+
private _loop;
|
|
53
|
+
private _loopStart;
|
|
54
|
+
private _loopEnd;
|
|
55
|
+
private _buffer;
|
|
56
|
+
constructor(context: BaseAudioContext, node: T, pitchCorrection: boolean);
|
|
57
|
+
private isStretcherNode;
|
|
58
|
+
private asStretcher;
|
|
59
|
+
private asBufferSource;
|
|
60
|
+
setDetune(value: number, when?: number): void;
|
|
61
|
+
setPlaybackRate(value: number, when?: number): void;
|
|
10
62
|
get buffer(): AudioBuffer | null;
|
|
11
63
|
set buffer(buffer: AudioBuffer | null);
|
|
12
64
|
get loop(): boolean;
|
|
@@ -15,8 +67,8 @@ export default class AudioBufferSourceNode extends AudioScheduledSourceNode {
|
|
|
15
67
|
set loopStart(value: number);
|
|
16
68
|
get loopEnd(): number;
|
|
17
69
|
set loopEnd(value: number);
|
|
18
|
-
get timeStretch(): TimeStretchType;
|
|
19
|
-
set timeStretch(value: TimeStretchType);
|
|
20
70
|
start(when?: number, offset?: number, duration?: number): void;
|
|
71
|
+
stop(when?: number): void;
|
|
21
72
|
}
|
|
73
|
+
export {};
|
|
22
74
|
//# sourceMappingURL=AudioBufferSourceNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioBufferSourceNode.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioBufferSourceNode.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AudioBufferSourceNode.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioBufferSourceNode.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ContextState, PeriodicWaveConstraints, AudioContextOptions } from '../types';
|
|
1
|
+
import { ContextState, PeriodicWaveConstraints, AudioContextOptions, AudioBufferSourceNodeOptions } from '../types';
|
|
2
2
|
import BaseAudioContext from './BaseAudioContext';
|
|
3
3
|
import AnalyserNode from './AnalyserNode';
|
|
4
4
|
import AudioDestinationNode from './AudioDestinationNode';
|
|
@@ -9,7 +9,6 @@ import GainNode from './GainNode';
|
|
|
9
9
|
import OscillatorNode from './OscillatorNode';
|
|
10
10
|
import PeriodicWave from './PeriodicWave';
|
|
11
11
|
import StereoPannerNode from './StereoPannerNode';
|
|
12
|
-
import StretcherNode from './StretcherNode';
|
|
13
12
|
export default class AudioContext implements BaseAudioContext {
|
|
14
13
|
readonly context: globalThis.AudioContext;
|
|
15
14
|
readonly destination: AudioDestinationNode;
|
|
@@ -21,11 +20,10 @@ export default class AudioContext implements BaseAudioContext {
|
|
|
21
20
|
createGain(): GainNode;
|
|
22
21
|
createStereoPanner(): StereoPannerNode;
|
|
23
22
|
createBiquadFilter(): BiquadFilterNode;
|
|
24
|
-
createBufferSource(): AudioBufferSourceNode
|
|
23
|
+
createBufferSource(options?: AudioBufferSourceNodeOptions): Promise<AudioBufferSourceNode>;
|
|
25
24
|
createBuffer(numOfChannels: number, length: number, sampleRate: number): AudioBuffer;
|
|
26
|
-
createPeriodicWave(real:
|
|
25
|
+
createPeriodicWave(real: Float32Array, imag: Float32Array, constraints?: PeriodicWaveConstraints): PeriodicWave;
|
|
27
26
|
createAnalyser(): AnalyserNode;
|
|
28
|
-
createStretcher(): Promise<StretcherNode>;
|
|
29
27
|
decodeAudioDataSource(source: string): Promise<AudioBuffer>;
|
|
30
28
|
close(): Promise<void>;
|
|
31
29
|
resume(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioContext.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"AudioContext.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACnB,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAElB,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,gBAAgB;IAC3D,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC;IAE1C,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,OAAO,CAAC,EAAE,mBAAmB;IAazC,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,KAAK,IAAI,YAAY,CAE/B;IAED,gBAAgB,IAAI,cAAc;IAIlC,UAAU,IAAI,QAAQ;IAItB,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,IAAI,gBAAgB;IAIhC,kBAAkB,CACtB,OAAO,CAAC,EAAE,4BAA4B,GACrC,OAAO,CAAC,qBAAqB,CAAC;IAgBjC,YAAY,CACV,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,WAAW;IAwBd,kBAAkB,CAChB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,YAAY,EAClB,WAAW,CAAC,EAAE,uBAAuB,GACpC,YAAY;IAYf,cAAc,IAAI,YAAY;IAIxB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ3D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
|
|
@@ -10,7 +10,7 @@ export default class AudioParam {
|
|
|
10
10
|
linearRampToValueAtTime(value: number, endTime: number): AudioParam;
|
|
11
11
|
exponentialRampToValueAtTime(value: number, endTime: number): AudioParam;
|
|
12
12
|
setTargetAtTime(target: number, startTime: number, timeConstant: number): AudioParam;
|
|
13
|
-
setValueCurveAtTime(values:
|
|
13
|
+
setValueCurveAtTime(values: Float32Array, startTime: number, duration: number): AudioParam;
|
|
14
14
|
cancelScheduledValues(cancelTime: number): AudioParam;
|
|
15
15
|
cancelAndHoldAtTime(cancelTime: number): AudioParam;
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioParam.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioParam.tsx"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;gBAElC,KAAK,EAAE,UAAU,CAAC,UAAU;IAOxC,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAE7B;IAEM,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU;IAY5D,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU;IAYnE,4BAA4B,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,UAAU;IAYN,eAAe,CACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,UAAU;IAkBN,mBAAmB,CACxB,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"AudioParam.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioParam.tsx"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;gBAElC,KAAK,EAAE,UAAU,CAAC,UAAU;IAOxC,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAE7B;IAEM,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU;IAY5D,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU;IAYnE,4BAA4B,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,UAAU;IAYN,eAAe,CACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,UAAU;IAkBN,mBAAmB,CACxB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,UAAU;IAsBN,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU;IAYrD,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU;CAW3D"}
|
|
@@ -18,9 +18,9 @@ export default interface BaseAudioContext {
|
|
|
18
18
|
createGain(): GainNode;
|
|
19
19
|
createStereoPanner(): StereoPannerNode;
|
|
20
20
|
createBiquadFilter(): BiquadFilterNode;
|
|
21
|
-
createBufferSource(): AudioBufferSourceNode
|
|
21
|
+
createBufferSource(): Promise<AudioBufferSourceNode>;
|
|
22
22
|
createBuffer(numOfChannels: number, length: number, sampleRate: number): AudioBuffer;
|
|
23
|
-
createPeriodicWave(real:
|
|
23
|
+
createPeriodicWave(real: Float32Array, imag: Float32Array, constraints?: PeriodicWaveConstraints): PeriodicWave;
|
|
24
24
|
createAnalyser(): AnalyserNode;
|
|
25
25
|
decodeAudioDataSource(source: string): Promise<AudioBuffer>;
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseAudioContext.d.ts","sourceRoot":"","sources":["../../../src/web-core/BaseAudioContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,OAAO,WAAW,gBAAgB;IACvC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,gBAAgB,CAAC;IAE9C,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,IAAI,WAAW,IAAI,MAAM,CAAC;IAC1B,IAAI,KAAK,IAAI,YAAY,CAAC;IAC1B,gBAAgB,IAAI,cAAc,CAAC;IACnC,UAAU,IAAI,QAAQ,CAAC;IACvB,kBAAkB,IAAI,gBAAgB,CAAC;IACvC,kBAAkB,IAAI,gBAAgB,CAAC;IACvC,kBAAkB,IAAI,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseAudioContext.d.ts","sourceRoot":"","sources":["../../../src/web-core/BaseAudioContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,OAAO,WAAW,gBAAgB;IACvC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,gBAAgB,CAAC;IAE9C,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,IAAI,WAAW,IAAI,MAAM,CAAC;IAC1B,IAAI,KAAK,IAAI,YAAY,CAAC;IAC1B,gBAAgB,IAAI,cAAc,CAAC;IACnC,UAAU,IAAI,QAAQ,CAAC;IACvB,kBAAkB,IAAI,gBAAgB,CAAC;IACvC,kBAAkB,IAAI,gBAAgB,CAAC;IACvC,kBAAkB,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACrD,YAAY,CACV,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,WAAW,CAAC;IACf,kBAAkB,CAChB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,YAAY,EAClB,WAAW,CAAC,EAAE,uBAAuB,GACpC,YAAY,CAAC;IAChB,cAAc,IAAI,YAAY,CAAC;IAC/B,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CAC7D"}
|
|
@@ -10,6 +10,6 @@ export default class BiquadFilterNode extends AudioNode {
|
|
|
10
10
|
constructor(context: BaseAudioContext, biquadFilter: globalThis.BiquadFilterNode);
|
|
11
11
|
get type(): BiquadFilterType;
|
|
12
12
|
set type(value: BiquadFilterType);
|
|
13
|
-
getFrequencyResponse(frequencyArray:
|
|
13
|
+
getFrequencyResponse(frequencyArray: Float32Array, magResponseOutput: Float32Array, phaseResponseOutput: Float32Array): void;
|
|
14
14
|
}
|
|
15
15
|
//# sourceMappingURL=BiquadFilterNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BiquadFilterNode.d.ts","sourceRoot":"","sources":["../../../src/web-core/BiquadFilterNode.tsx"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG5C,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,SAAS;IACrD,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;gBAGxB,OAAO,EAAE,gBAAgB,EACzB,YAAY,EAAE,UAAU,CAAC,gBAAgB;IAS3C,IAAW,IAAI,IAAI,gBAAgB,CAElC;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAEtC;IAEM,oBAAoB,CACzB,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"BiquadFilterNode.d.ts","sourceRoot":"","sources":["../../../src/web-core/BiquadFilterNode.tsx"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG5C,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,SAAS;IACrD,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;gBAGxB,OAAO,EAAE,gBAAgB,EACzB,YAAY,EAAE,UAAU,CAAC,gBAAgB;IAS3C,IAAW,IAAI,IAAI,gBAAgB,CAElC;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAEtC;IAEM,oBAAoB,CACzB,cAAc,EAAE,YAAY,EAC5B,iBAAiB,EAAE,YAAY,EAC/B,mBAAmB,EAAE,YAAY;CAiBpC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-audio-api",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0-rc.1",
|
|
4
4
|
"description": "react-native-audio-api provides system for controlling audio in React Native environment compatible with Web Audio API specification",
|
|
5
5
|
"bin": {
|
|
6
6
|
"setup-rn-audio-api-web": "./scripts/setup-rn-audio-api-web.js"
|
|
@@ -87,10 +87,10 @@
|
|
|
87
87
|
"@babel/types": "^7.20.0",
|
|
88
88
|
"@commitlint/config-conventional": "^17.0.2",
|
|
89
89
|
"@evilmartians/lefthook": "^1.5.0",
|
|
90
|
-
"@react-native/babel-preset": "0.
|
|
91
|
-
"@react-native/eslint-config": "^0.
|
|
92
|
-
"@react-native/metro-config": "0.
|
|
93
|
-
"@react-native/typescript-config": "0.
|
|
90
|
+
"@react-native/babel-preset": "0.77.1",
|
|
91
|
+
"@react-native/eslint-config": "^0.77.1",
|
|
92
|
+
"@react-native/metro-config": "0.77.1",
|
|
93
|
+
"@react-native/typescript-config": "0.77.1",
|
|
94
94
|
"@types/babel__core": "^7.20.0",
|
|
95
95
|
"@types/babel__generator": "^7.6.4",
|
|
96
96
|
"@types/babel__traverse": "^7.14.2",
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
"jest": "^29.7.0",
|
|
120
120
|
"prettier": "^3.3.3",
|
|
121
121
|
"react": "18.3.1",
|
|
122
|
-
"react-native": "0.
|
|
122
|
+
"react-native": "0.77.1",
|
|
123
123
|
"react-native-builder-bob": "0.33.1",
|
|
124
124
|
"turbo": "^1.10.7",
|
|
125
125
|
"typescript": "~5.3.0"
|
package/src/api.ts
CHANGED
package/src/api.web.ts
CHANGED
|
@@ -11,7 +11,6 @@ export { default as BiquadFilterNode } from './web-core/BiquadFilterNode';
|
|
|
11
11
|
export { default as GainNode } from './web-core/GainNode';
|
|
12
12
|
export { default as OscillatorNode } from './web-core/OscillatorNode';
|
|
13
13
|
export { default as StereoPannerNode } from './web-core/StereoPannerNode';
|
|
14
|
-
export { default as StretcherNode } from './web-core/StretcherNode';
|
|
15
14
|
|
|
16
15
|
export * from './web-core/custom';
|
|
17
16
|
|
|
@@ -23,7 +22,6 @@ export {
|
|
|
23
22
|
ContextState,
|
|
24
23
|
WindowType,
|
|
25
24
|
PeriodicWaveConstraints,
|
|
26
|
-
TimeStretchType,
|
|
27
25
|
} from './types';
|
|
28
26
|
|
|
29
27
|
export {
|
package/src/core/AnalyserNode.ts
CHANGED
|
@@ -76,19 +76,19 @@ export default class AnalyserNode extends AudioNode {
|
|
|
76
76
|
return (this.node as IAnalyserNode).frequencyBinCount;
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
public getFloatFrequencyData(array:
|
|
79
|
+
public getFloatFrequencyData(array: Float32Array): void {
|
|
80
80
|
(this.node as IAnalyserNode).getFloatFrequencyData(array);
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
public getByteFrequencyData(array:
|
|
83
|
+
public getByteFrequencyData(array: Uint8Array): void {
|
|
84
84
|
(this.node as IAnalyserNode).getByteFrequencyData(array);
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
public getFloatTimeDomainData(array:
|
|
87
|
+
public getFloatTimeDomainData(array: Float32Array): void {
|
|
88
88
|
(this.node as IAnalyserNode).getFloatTimeDomainData(array);
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
public getByteTimeDomainData(array:
|
|
91
|
+
public getByteTimeDomainData(array: Uint8Array): void {
|
|
92
92
|
(this.node as IAnalyserNode).getByteTimeDomainData(array);
|
|
93
93
|
}
|
|
94
94
|
}
|
package/src/core/AudioBuffer.ts
CHANGED
|
@@ -17,7 +17,7 @@ export default class AudioBuffer {
|
|
|
17
17
|
this.numberOfChannels = buffer.numberOfChannels;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
public getChannelData(channel: number):
|
|
20
|
+
public getChannelData(channel: number): Float32Array {
|
|
21
21
|
if (channel < 0 || channel >= this.numberOfChannels) {
|
|
22
22
|
throw new IndexSizeError(
|
|
23
23
|
`The channel number provided (${channel}) is outside the range [0, ${this.numberOfChannels - 1}]`
|
|
@@ -27,7 +27,7 @@ export default class AudioBuffer {
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
public copyFromChannel(
|
|
30
|
-
destination:
|
|
30
|
+
destination: Float32Array,
|
|
31
31
|
channelNumber: number,
|
|
32
32
|
startInChannel: number = 0
|
|
33
33
|
): void {
|
|
@@ -47,7 +47,7 @@ export default class AudioBuffer {
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
public copyToChannel(
|
|
50
|
-
source:
|
|
50
|
+
source: Float32Array,
|
|
51
51
|
channelNumber: number,
|
|
52
52
|
startInChannel: number = 0
|
|
53
53
|
): void {
|
|
@@ -4,7 +4,6 @@ import BaseAudioContext from './BaseAudioContext';
|
|
|
4
4
|
import AudioBuffer from './AudioBuffer';
|
|
5
5
|
import AudioParam from './AudioParam';
|
|
6
6
|
import { InvalidStateError, RangeError } from '../errors';
|
|
7
|
-
import { TimeStretchType } from '../types';
|
|
8
7
|
|
|
9
8
|
export default class AudioBufferSourceNode extends AudioScheduledSourceNode {
|
|
10
9
|
readonly playbackRate: AudioParam;
|
|
@@ -58,14 +57,6 @@ export default class AudioBufferSourceNode extends AudioScheduledSourceNode {
|
|
|
58
57
|
(this.node as IAudioBufferSourceNode).loopEnd = value;
|
|
59
58
|
}
|
|
60
59
|
|
|
61
|
-
public get timeStretch(): TimeStretchType {
|
|
62
|
-
return (this.node as IAudioBufferSourceNode).timeStretch;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
public set timeStretch(value: TimeStretchType) {
|
|
66
|
-
(this.node as IAudioBufferSourceNode).timeStretch = value;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
60
|
public start(when: number = 0, offset: number = 0, duration?: number): void {
|
|
70
61
|
if (when < 0) {
|
|
71
62
|
throw new RangeError(
|
package/src/core/AudioParam.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { IBaseAudioContext } from '../interfaces';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
ContextState,
|
|
4
|
+
PeriodicWaveConstraints,
|
|
5
|
+
AudioBufferSourceNodeOptions,
|
|
6
|
+
} from '../types';
|
|
3
7
|
import AudioDestinationNode from './AudioDestinationNode';
|
|
4
8
|
import OscillatorNode from './OscillatorNode';
|
|
5
9
|
import GainNode from './GainNode';
|
|
@@ -46,8 +50,15 @@ export default class BaseAudioContext {
|
|
|
46
50
|
return new BiquadFilterNode(this, this.context.createBiquadFilter());
|
|
47
51
|
}
|
|
48
52
|
|
|
49
|
-
createBufferSource(
|
|
50
|
-
|
|
53
|
+
createBufferSource(
|
|
54
|
+
options?: AudioBufferSourceNodeOptions
|
|
55
|
+
): AudioBufferSourceNode {
|
|
56
|
+
const pitchCorrection = options?.pitchCorrection ?? false;
|
|
57
|
+
|
|
58
|
+
return new AudioBufferSourceNode(
|
|
59
|
+
this,
|
|
60
|
+
this.context.createBufferSource(pitchCorrection)
|
|
61
|
+
);
|
|
51
62
|
}
|
|
52
63
|
|
|
53
64
|
createBuffer(
|
|
@@ -79,8 +90,8 @@ export default class BaseAudioContext {
|
|
|
79
90
|
}
|
|
80
91
|
|
|
81
92
|
createPeriodicWave(
|
|
82
|
-
real:
|
|
83
|
-
imag:
|
|
93
|
+
real: Float32Array,
|
|
94
|
+
imag: Float32Array,
|
|
84
95
|
constraints?: PeriodicWaveConstraints
|
|
85
96
|
): PeriodicWave {
|
|
86
97
|
if (real.length !== imag.length) {
|
|
@@ -28,9 +28,9 @@ export default class BiquadFilterNode extends AudioNode {
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
public getFrequencyResponse(
|
|
31
|
-
frequencyArray:
|
|
32
|
-
magResponseOutput:
|
|
33
|
-
phaseResponseOutput:
|
|
31
|
+
frequencyArray: Float32Array,
|
|
32
|
+
magResponseOutput: Float32Array,
|
|
33
|
+
phaseResponseOutput: Float32Array
|
|
34
34
|
) {
|
|
35
35
|
if (
|
|
36
36
|
frequencyArray.length !== magResponseOutput.length ||
|
package/src/interfaces.ts
CHANGED
|
@@ -5,7 +5,6 @@ import {
|
|
|
5
5
|
ChannelCountMode,
|
|
6
6
|
ChannelInterpretation,
|
|
7
7
|
WindowType,
|
|
8
|
-
TimeStretchType,
|
|
9
8
|
} from './types';
|
|
10
9
|
|
|
11
10
|
export interface AudioAPIInstaller {
|
|
@@ -22,15 +21,15 @@ export interface IBaseAudioContext {
|
|
|
22
21
|
createGain(): IGainNode;
|
|
23
22
|
createStereoPanner(): IStereoPannerNode;
|
|
24
23
|
createBiquadFilter: () => IBiquadFilterNode;
|
|
25
|
-
createBufferSource: () => IAudioBufferSourceNode;
|
|
24
|
+
createBufferSource: (pitchCorrection: boolean) => IAudioBufferSourceNode;
|
|
26
25
|
createBuffer: (
|
|
27
26
|
channels: number,
|
|
28
27
|
length: number,
|
|
29
28
|
sampleRate: number
|
|
30
29
|
) => IAudioBuffer;
|
|
31
30
|
createPeriodicWave: (
|
|
32
|
-
real:
|
|
33
|
-
imag:
|
|
31
|
+
real: Float32Array,
|
|
32
|
+
imag: Float32Array,
|
|
34
33
|
disableNormalization: boolean
|
|
35
34
|
) => IPeriodicWave;
|
|
36
35
|
createAnalyser: () => IAnalyserNode;
|
|
@@ -71,9 +70,9 @@ export interface IBiquadFilterNode extends IAudioNode {
|
|
|
71
70
|
type: BiquadFilterType;
|
|
72
71
|
|
|
73
72
|
getFrequencyResponse(
|
|
74
|
-
frequencyArray:
|
|
75
|
-
magResponseOutput:
|
|
76
|
-
phaseResponseOutput:
|
|
73
|
+
frequencyArray: Float32Array,
|
|
74
|
+
magResponseOutput: Float32Array,
|
|
75
|
+
phaseResponseOutput: Float32Array
|
|
77
76
|
): void;
|
|
78
77
|
}
|
|
79
78
|
|
|
@@ -100,7 +99,6 @@ export interface IAudioBufferSourceNode extends IAudioScheduledSourceNode {
|
|
|
100
99
|
loopEnd: number;
|
|
101
100
|
detune: IAudioParam;
|
|
102
101
|
playbackRate: IAudioParam;
|
|
103
|
-
timeStretch: TimeStretchType;
|
|
104
102
|
|
|
105
103
|
start: (when?: number, offset?: number, duration?: number) => void;
|
|
106
104
|
}
|
|
@@ -111,14 +109,14 @@ export interface IAudioBuffer {
|
|
|
111
109
|
readonly sampleRate: number;
|
|
112
110
|
readonly numberOfChannels: number;
|
|
113
111
|
|
|
114
|
-
getChannelData(channel: number):
|
|
112
|
+
getChannelData(channel: number): Float32Array;
|
|
115
113
|
copyFromChannel(
|
|
116
|
-
destination:
|
|
114
|
+
destination: Float32Array,
|
|
117
115
|
channelNumber: number,
|
|
118
116
|
startInChannel: number
|
|
119
117
|
): void;
|
|
120
118
|
copyToChannel(
|
|
121
|
-
source:
|
|
119
|
+
source: Float32Array,
|
|
122
120
|
channelNumber: number,
|
|
123
121
|
startInChannel: number
|
|
124
122
|
): void;
|
|
@@ -139,7 +137,7 @@ export interface IAudioParam {
|
|
|
139
137
|
timeConstant: number
|
|
140
138
|
) => void;
|
|
141
139
|
setValueCurveAtTime: (
|
|
142
|
-
values:
|
|
140
|
+
values: Float32Array,
|
|
143
141
|
startTime: number,
|
|
144
142
|
duration: number
|
|
145
143
|
) => void;
|
|
@@ -157,8 +155,8 @@ export interface IAnalyserNode extends IAudioNode {
|
|
|
157
155
|
smoothingTimeConstant: number;
|
|
158
156
|
window: WindowType;
|
|
159
157
|
|
|
160
|
-
getFloatFrequencyData: (array:
|
|
161
|
-
getByteFrequencyData: (array:
|
|
162
|
-
getFloatTimeDomainData: (array:
|
|
163
|
-
getByteTimeDomainData: (array:
|
|
158
|
+
getFloatFrequencyData: (array: Float32Array) => void;
|
|
159
|
+
getByteFrequencyData: (array: Uint8Array) => void;
|
|
160
|
+
getFloatTimeDomainData: (array: Float32Array) => void;
|
|
161
|
+
getByteTimeDomainData: (array: Uint8Array) => void;
|
|
164
162
|
}
|
package/src/types.ts
CHANGED
|
@@ -29,41 +29,19 @@ export default class AnalyserNode extends AudioNode {
|
|
|
29
29
|
);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
public getByteFrequencyData(array:
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
(this.node as globalThis.AnalyserNode).getByteFrequencyData(data);
|
|
36
|
-
|
|
37
|
-
for (let i = 0; i < array.length; i++) {
|
|
38
|
-
array[i] = data[i];
|
|
39
|
-
}
|
|
32
|
+
public getByteFrequencyData(array: Uint8Array): void {
|
|
33
|
+
(this.node as globalThis.AnalyserNode).getByteFrequencyData(array);
|
|
40
34
|
}
|
|
41
35
|
|
|
42
|
-
public getByteTimeDomainData(array:
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
(this.node as globalThis.AnalyserNode).getByteTimeDomainData(data);
|
|
46
|
-
|
|
47
|
-
for (let i = 0; i < array.length; i++) {
|
|
48
|
-
array[i] = data[i];
|
|
49
|
-
}
|
|
36
|
+
public getByteTimeDomainData(array: Uint8Array): void {
|
|
37
|
+
(this.node as globalThis.AnalyserNode).getByteTimeDomainData(array);
|
|
50
38
|
}
|
|
51
39
|
|
|
52
|
-
public getFloatFrequencyData(array:
|
|
53
|
-
|
|
54
|
-
(this.node as globalThis.AnalyserNode).getFloatFrequencyData(data);
|
|
55
|
-
|
|
56
|
-
for (let i = 0; i < array.length; i++) {
|
|
57
|
-
array[i] = data[i];
|
|
58
|
-
}
|
|
40
|
+
public getFloatFrequencyData(array: Float32Array): void {
|
|
41
|
+
(this.node as globalThis.AnalyserNode).getFloatFrequencyData(array);
|
|
59
42
|
}
|
|
60
43
|
|
|
61
|
-
public getFloatTimeDomainData(array:
|
|
62
|
-
|
|
63
|
-
(this.node as globalThis.AnalyserNode).getFloatTimeDomainData(data);
|
|
64
|
-
|
|
65
|
-
for (let i = 0; i < array.length; i++) {
|
|
66
|
-
array[i] = data[i];
|
|
67
|
-
}
|
|
44
|
+
public getFloatTimeDomainData(array: Float32Array): void {
|
|
45
|
+
(this.node as globalThis.AnalyserNode).getFloatTimeDomainData(array);
|
|
68
46
|
}
|
|
69
47
|
}
|
|
@@ -28,7 +28,7 @@ export default class AudioBuffer {
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
public copyFromChannel(
|
|
31
|
-
destination:
|
|
31
|
+
destination: Float32Array,
|
|
32
32
|
channelNumber: number,
|
|
33
33
|
startInChannel: number = 0
|
|
34
34
|
): void {
|
|
@@ -44,17 +44,11 @@ export default class AudioBuffer {
|
|
|
44
44
|
);
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
this.buffer.copyFromChannel(array, channelNumber, startInChannel);
|
|
50
|
-
|
|
51
|
-
for (let i = 0; i < destination.length; i++) {
|
|
52
|
-
destination[i] = array[i];
|
|
53
|
-
}
|
|
47
|
+
this.buffer.copyFromChannel(destination, channelNumber, startInChannel);
|
|
54
48
|
}
|
|
55
49
|
|
|
56
50
|
public copyToChannel(
|
|
57
|
-
source:
|
|
51
|
+
source: Float32Array,
|
|
58
52
|
channelNumber: number,
|
|
59
53
|
startInChannel: number = 0
|
|
60
54
|
): void {
|
|
@@ -70,10 +64,6 @@ export default class AudioBuffer {
|
|
|
70
64
|
);
|
|
71
65
|
}
|
|
72
66
|
|
|
73
|
-
this.buffer.copyToChannel(
|
|
74
|
-
new Float32Array(source),
|
|
75
|
-
channelNumber,
|
|
76
|
-
startInChannel
|
|
77
|
-
);
|
|
67
|
+
this.buffer.copyToChannel(source, channelNumber, startInChannel);
|
|
78
68
|
}
|
|
79
69
|
}
|