react-native-audio-api 0.12.0-nightly-0d1a19d-20260120 → 0.12.0-nightly-75589dc-20260121
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/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.cpp +52 -49
- package/common/cpp/audioapi/HostObjects/sources/StreamerNodeHostObject.cpp +6 -0
- package/common/cpp/audioapi/HostObjects/sources/StreamerNodeHostObject.h +1 -0
- package/common/cpp/audioapi/HostObjects/utils/NodeOptions.h +111 -0
- package/common/cpp/audioapi/HostObjects/utils/NodeOptionsParser.h +262 -0
- package/common/cpp/audioapi/core/AudioNode.cpp +13 -6
- package/common/cpp/audioapi/core/AudioNode.h +2 -0
- package/common/cpp/audioapi/core/BaseAudioContext.cpp +42 -44
- package/common/cpp/audioapi/core/BaseAudioContext.h +32 -21
- package/common/cpp/audioapi/core/analysis/AnalyserNode.cpp +8 -6
- package/common/cpp/audioapi/core/analysis/AnalyserNode.h +2 -1
- package/common/cpp/audioapi/core/effects/BiquadFilterNode.cpp +7 -8
- package/common/cpp/audioapi/core/effects/BiquadFilterNode.h +4 -1
- package/common/cpp/audioapi/core/effects/ConvolverNode.cpp +5 -9
- package/common/cpp/audioapi/core/effects/ConvolverNode.h +2 -2
- package/common/cpp/audioapi/core/effects/DelayNode.cpp +5 -4
- package/common/cpp/audioapi/core/effects/DelayNode.h +2 -1
- package/common/cpp/audioapi/core/effects/GainNode.cpp +4 -3
- package/common/cpp/audioapi/core/effects/GainNode.h +2 -1
- package/common/cpp/audioapi/core/effects/IIRFilterNode.cpp +6 -6
- package/common/cpp/audioapi/core/effects/IIRFilterNode.h +3 -2
- package/common/cpp/audioapi/core/effects/StereoPannerNode.cpp +3 -3
- package/common/cpp/audioapi/core/effects/StereoPannerNode.h +4 -1
- package/common/cpp/audioapi/core/effects/WaveShaperNode.cpp +4 -3
- package/common/cpp/audioapi/core/effects/WaveShaperNode.h +4 -1
- package/common/cpp/audioapi/core/sources/AudioBuffer.cpp +3 -2
- package/common/cpp/audioapi/core/sources/AudioBuffer.h +2 -1
- package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.cpp +16 -22
- package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.h +2 -1
- package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.cpp +9 -6
- package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.h +2 -1
- package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.cpp +9 -7
- package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.h +4 -1
- package/common/cpp/audioapi/core/sources/ConstantSourceNode.cpp +5 -8
- package/common/cpp/audioapi/core/sources/ConstantSourceNode.h +4 -1
- package/common/cpp/audioapi/core/sources/OscillatorNode.cpp +21 -16
- package/common/cpp/audioapi/core/sources/OscillatorNode.h +4 -1
- package/common/cpp/audioapi/core/sources/StreamerNode.cpp +4 -2
- package/common/cpp/audioapi/core/sources/StreamerNode.h +11 -1
- package/common/cpp/test/src/ConstantSourceTest.cpp +3 -2
- package/common/cpp/test/src/DelayTest.cpp +12 -5
- package/common/cpp/test/src/GainTest.cpp +3 -2
- package/common/cpp/test/src/IIRFilterTest.cpp +3 -2
- package/common/cpp/test/src/OscillatorTest.cpp +2 -1
- package/common/cpp/test/src/StereoPannerTest.cpp +3 -2
- package/common/cpp/test/src/biquad/BiquadFilterTest.cpp +10 -9
- package/common/cpp/test/src/core/effects/WaveShaperNodeTest.cpp +4 -3
- package/lib/commonjs/api.js +11 -3
- package/lib/commonjs/api.js.map +1 -1
- package/lib/commonjs/api.web.js +4 -10
- package/lib/commonjs/api.web.js.map +1 -1
- package/lib/commonjs/core/AnalyserNode.js +11 -0
- package/lib/commonjs/core/AnalyserNode.js.map +1 -1
- package/lib/commonjs/core/AudioBuffer.js +20 -6
- package/lib/commonjs/core/AudioBuffer.js.map +1 -1
- package/lib/commonjs/core/AudioBufferQueueSourceNode.js +9 -0
- package/lib/commonjs/core/AudioBufferQueueSourceNode.js.map +1 -1
- package/lib/commonjs/core/AudioBufferSourceNode.js +9 -0
- package/lib/commonjs/core/AudioBufferSourceNode.js.map +1 -1
- package/lib/commonjs/core/BaseAudioContext.js +52 -65
- package/lib/commonjs/core/BaseAudioContext.js.map +1 -1
- package/lib/commonjs/core/BiquadFilterNode.js +7 -1
- package/lib/commonjs/core/BiquadFilterNode.js.map +1 -1
- package/lib/commonjs/core/ConstantSourceNode.js +7 -1
- package/lib/commonjs/core/ConstantSourceNode.js.map +1 -1
- package/lib/commonjs/core/ConvolverNode.js +9 -3
- package/lib/commonjs/core/ConvolverNode.js.map +1 -1
- package/lib/commonjs/core/DelayNode.js +7 -1
- package/lib/commonjs/core/DelayNode.js.map +1 -1
- package/lib/commonjs/core/GainNode.js +9 -3
- package/lib/commonjs/core/GainNode.js.map +1 -1
- package/lib/commonjs/core/IIRFilterNode.js +9 -0
- package/lib/commonjs/core/IIRFilterNode.js.map +1 -1
- package/lib/commonjs/core/OscillatorNode.js +10 -1
- package/lib/commonjs/core/OscillatorNode.js.map +1 -1
- package/lib/commonjs/core/PeriodicWave.js +30 -2
- package/lib/commonjs/core/PeriodicWave.js.map +1 -1
- package/lib/commonjs/core/RecorderAdapterNode.js +3 -0
- package/lib/commonjs/core/RecorderAdapterNode.js.map +1 -1
- package/lib/commonjs/core/StereoPannerNode.js +7 -1
- package/lib/commonjs/core/StereoPannerNode.js.map +1 -1
- package/lib/commonjs/core/StreamerNode.js +25 -1
- package/lib/commonjs/core/StreamerNode.js.map +1 -1
- package/lib/commonjs/core/WaveShaperNode.js +12 -0
- package/lib/commonjs/core/WaveShaperNode.js.map +1 -1
- package/lib/commonjs/core/WorkletNode.js +13 -1
- package/lib/commonjs/core/WorkletNode.js.map +1 -1
- package/lib/commonjs/core/WorkletProcessingNode.js +14 -1
- package/lib/commonjs/core/WorkletProcessingNode.js.map +1 -1
- package/lib/commonjs/core/WorkletSourceNode.js +13 -1
- package/lib/commonjs/core/WorkletSourceNode.js.map +1 -1
- package/lib/commonjs/defaults.js +78 -0
- package/lib/commonjs/defaults.js.map +1 -0
- package/lib/commonjs/options-validators.js +40 -0
- package/lib/commonjs/options-validators.js.map +1 -0
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/web-core/AnalyserNode.js +2 -1
- package/lib/commonjs/web-core/AnalyserNode.js.map +1 -1
- package/lib/commonjs/web-core/AudioBuffer.js +14 -6
- package/lib/commonjs/web-core/AudioBuffer.js.map +1 -1
- package/lib/commonjs/web-core/AudioBufferSourceNode.js +276 -89
- package/lib/commonjs/web-core/AudioBufferSourceNode.js.map +1 -1
- package/lib/commonjs/web-core/AudioContext.js +33 -32
- package/lib/commonjs/web-core/AudioContext.js.map +1 -1
- package/lib/commonjs/web-core/AudioNode.js +4 -0
- package/lib/commonjs/web-core/AudioNode.js.map +1 -1
- package/lib/commonjs/web-core/BiquadFilterNode.js +2 -1
- package/lib/commonjs/web-core/BiquadFilterNode.js.map +1 -1
- package/lib/commonjs/web-core/ConstantSourceNode.js +2 -1
- package/lib/commonjs/web-core/ConstantSourceNode.js.map +1 -1
- package/lib/commonjs/web-core/ConvolverNode.js +3 -5
- package/lib/commonjs/web-core/ConvolverNode.js.map +1 -1
- package/lib/commonjs/web-core/DelayNode.js +7 -1
- package/lib/commonjs/web-core/DelayNode.js.map +1 -1
- package/lib/commonjs/web-core/GainNode.js +2 -1
- package/lib/commonjs/web-core/GainNode.js.map +1 -1
- package/lib/commonjs/web-core/IIRFilterNode.js +12 -0
- package/lib/commonjs/web-core/IIRFilterNode.js.map +1 -1
- package/lib/commonjs/web-core/OfflineAudioContext.js +33 -32
- package/lib/commonjs/web-core/OfflineAudioContext.js.map +1 -1
- package/lib/commonjs/web-core/OscillatorNode.js +2 -1
- package/lib/commonjs/web-core/OscillatorNode.js.map +1 -1
- package/lib/commonjs/web-core/PeriodicWave.js +6 -1
- package/lib/commonjs/web-core/PeriodicWave.js.map +1 -1
- package/lib/commonjs/web-core/StereoPannerNode.js +2 -1
- package/lib/commonjs/web-core/StereoPannerNode.js.map +1 -1
- package/lib/module/api.js +2 -1
- package/lib/module/api.js.map +1 -1
- package/lib/module/api.web.js +2 -1
- package/lib/module/api.web.js.map +1 -1
- package/lib/module/core/AnalyserNode.js +11 -0
- package/lib/module/core/AnalyserNode.js.map +1 -1
- package/lib/module/core/AudioBuffer.js +19 -6
- package/lib/module/core/AudioBuffer.js.map +1 -1
- package/lib/module/core/AudioBufferQueueSourceNode.js +9 -0
- package/lib/module/core/AudioBufferQueueSourceNode.js.map +1 -1
- package/lib/module/core/AudioBufferSourceNode.js +9 -0
- package/lib/module/core/AudioBufferSourceNode.js.map +1 -1
- package/lib/module/core/BaseAudioContext.js +52 -65
- package/lib/module/core/BaseAudioContext.js.map +1 -1
- package/lib/module/core/BiquadFilterNode.js +7 -1
- package/lib/module/core/BiquadFilterNode.js.map +1 -1
- package/lib/module/core/ConstantSourceNode.js +7 -1
- package/lib/module/core/ConstantSourceNode.js.map +1 -1
- package/lib/module/core/ConvolverNode.js +9 -3
- package/lib/module/core/ConvolverNode.js.map +1 -1
- package/lib/module/core/DelayNode.js +7 -1
- package/lib/module/core/DelayNode.js.map +1 -1
- package/lib/module/core/GainNode.js +9 -3
- package/lib/module/core/GainNode.js.map +1 -1
- package/lib/module/core/IIRFilterNode.js +9 -0
- package/lib/module/core/IIRFilterNode.js.map +1 -1
- package/lib/module/core/OscillatorNode.js +10 -1
- package/lib/module/core/OscillatorNode.js.map +1 -1
- package/lib/module/core/PeriodicWave.js +29 -2
- package/lib/module/core/PeriodicWave.js.map +1 -1
- package/lib/module/core/RecorderAdapterNode.js +3 -0
- package/lib/module/core/RecorderAdapterNode.js.map +1 -1
- package/lib/module/core/StereoPannerNode.js +7 -1
- package/lib/module/core/StereoPannerNode.js.map +1 -1
- package/lib/module/core/StreamerNode.js +25 -1
- package/lib/module/core/StreamerNode.js.map +1 -1
- package/lib/module/core/WaveShaperNode.js +12 -0
- package/lib/module/core/WaveShaperNode.js.map +1 -1
- package/lib/module/core/WorkletNode.js +13 -1
- package/lib/module/core/WorkletNode.js.map +1 -1
- package/lib/module/core/WorkletProcessingNode.js +14 -1
- package/lib/module/core/WorkletProcessingNode.js.map +1 -1
- package/lib/module/core/WorkletSourceNode.js +13 -1
- package/lib/module/core/WorkletSourceNode.js.map +1 -1
- package/lib/module/defaults.js +74 -0
- package/lib/module/defaults.js.map +1 -0
- package/lib/module/options-validators.js +36 -0
- package/lib/module/options-validators.js.map +1 -0
- package/lib/module/types.js.map +1 -1
- package/lib/module/web-core/AnalyserNode.js +2 -1
- package/lib/module/web-core/AnalyserNode.js.map +1 -1
- package/lib/module/web-core/AudioBuffer.js +13 -6
- package/lib/module/web-core/AudioBuffer.js.map +1 -1
- package/lib/module/web-core/AudioBufferSourceNode.js +277 -90
- package/lib/module/web-core/AudioBufferSourceNode.js.map +1 -1
- package/lib/module/web-core/AudioContext.js +33 -32
- package/lib/module/web-core/AudioContext.js.map +1 -1
- package/lib/module/web-core/AudioNode.js +4 -0
- package/lib/module/web-core/AudioNode.js.map +1 -1
- package/lib/module/web-core/BiquadFilterNode.js +2 -1
- package/lib/module/web-core/BiquadFilterNode.js.map +1 -1
- package/lib/module/web-core/ConstantSourceNode.js +2 -1
- package/lib/module/web-core/ConstantSourceNode.js.map +1 -1
- package/lib/module/web-core/ConvolverNode.js +3 -5
- package/lib/module/web-core/ConvolverNode.js.map +1 -1
- package/lib/module/web-core/DelayNode.js +7 -1
- package/lib/module/web-core/DelayNode.js.map +1 -1
- package/lib/module/web-core/GainNode.js +2 -1
- package/lib/module/web-core/GainNode.js.map +1 -1
- package/lib/module/web-core/IIRFilterNode.js +12 -0
- package/lib/module/web-core/IIRFilterNode.js.map +1 -1
- package/lib/module/web-core/OfflineAudioContext.js +33 -32
- package/lib/module/web-core/OfflineAudioContext.js.map +1 -1
- package/lib/module/web-core/OscillatorNode.js +2 -1
- package/lib/module/web-core/OscillatorNode.js.map +1 -1
- package/lib/module/web-core/PeriodicWave.js +6 -1
- package/lib/module/web-core/PeriodicWave.js.map +1 -1
- package/lib/module/web-core/StereoPannerNode.js +2 -1
- package/lib/module/web-core/StereoPannerNode.js.map +1 -1
- package/lib/typescript/api.d.ts +2 -1
- package/lib/typescript/api.d.ts.map +1 -1
- package/lib/typescript/api.web.d.ts +2 -1
- package/lib/typescript/api.web.d.ts.map +1 -1
- package/lib/typescript/core/AnalyserNode.d.ts +3 -1
- package/lib/typescript/core/AnalyserNode.d.ts.map +1 -1
- package/lib/typescript/core/AudioBuffer.d.ts +3 -0
- package/lib/typescript/core/AudioBuffer.d.ts.map +1 -1
- package/lib/typescript/core/AudioBufferQueueSourceNode.d.ts +3 -0
- package/lib/typescript/core/AudioBufferQueueSourceNode.d.ts.map +1 -1
- package/lib/typescript/core/AudioBufferSourceNode.d.ts +3 -0
- package/lib/typescript/core/AudioBufferSourceNode.d.ts.map +1 -1
- package/lib/typescript/core/BaseAudioContext.d.ts +10 -6
- package/lib/typescript/core/BaseAudioContext.d.ts.map +1 -1
- package/lib/typescript/core/BiquadFilterNode.d.ts +2 -3
- package/lib/typescript/core/BiquadFilterNode.d.ts.map +1 -1
- package/lib/typescript/core/ConstantSourceNode.d.ts +2 -2
- package/lib/typescript/core/ConstantSourceNode.d.ts.map +1 -1
- package/lib/typescript/core/ConvolverNode.d.ts +2 -2
- package/lib/typescript/core/ConvolverNode.d.ts.map +1 -1
- package/lib/typescript/core/DelayNode.d.ts +2 -2
- package/lib/typescript/core/DelayNode.d.ts.map +1 -1
- package/lib/typescript/core/GainNode.d.ts +2 -2
- package/lib/typescript/core/GainNode.d.ts.map +1 -1
- package/lib/typescript/core/IIRFilterNode.d.ts +3 -0
- package/lib/typescript/core/IIRFilterNode.d.ts.map +1 -1
- package/lib/typescript/core/OscillatorNode.d.ts +2 -3
- package/lib/typescript/core/OscillatorNode.d.ts.map +1 -1
- package/lib/typescript/core/PeriodicWave.d.ts +4 -1
- package/lib/typescript/core/PeriodicWave.d.ts.map +1 -1
- package/lib/typescript/core/RecorderAdapterNode.d.ts +2 -0
- package/lib/typescript/core/RecorderAdapterNode.d.ts.map +1 -1
- package/lib/typescript/core/StereoPannerNode.d.ts +2 -2
- package/lib/typescript/core/StereoPannerNode.d.ts.map +1 -1
- package/lib/typescript/core/StreamerNode.d.ts +5 -0
- package/lib/typescript/core/StreamerNode.d.ts.map +1 -1
- package/lib/typescript/core/WaveShaperNode.d.ts +3 -0
- package/lib/typescript/core/WaveShaperNode.d.ts.map +1 -1
- package/lib/typescript/core/WorkletNode.d.ts +3 -0
- package/lib/typescript/core/WorkletNode.d.ts.map +1 -1
- package/lib/typescript/core/WorkletProcessingNode.d.ts +3 -0
- package/lib/typescript/core/WorkletProcessingNode.d.ts.map +1 -1
- package/lib/typescript/core/WorkletSourceNode.d.ts +3 -0
- package/lib/typescript/core/WorkletSourceNode.d.ts.map +1 -1
- package/lib/typescript/defaults.d.ts +16 -0
- package/lib/typescript/defaults.d.ts.map +1 -0
- package/lib/typescript/interfaces.d.ts +16 -15
- package/lib/typescript/interfaces.d.ts.map +1 -1
- package/lib/typescript/options-validators.d.ts +6 -0
- package/lib/typescript/options-validators.d.ts.map +1 -0
- package/lib/typescript/types.d.ts +80 -11
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/web-core/AnalyserNode.d.ts +2 -2
- package/lib/typescript/web-core/AnalyserNode.d.ts.map +1 -1
- package/lib/typescript/web-core/AudioBuffer.d.ts +3 -0
- package/lib/typescript/web-core/AudioBuffer.d.ts.map +1 -1
- package/lib/typescript/web-core/AudioBufferSourceNode.d.ts +24 -15
- package/lib/typescript/web-core/AudioBufferSourceNode.d.ts.map +1 -1
- package/lib/typescript/web-core/AudioContext.d.ts +5 -6
- package/lib/typescript/web-core/AudioContext.d.ts.map +1 -1
- package/lib/typescript/web-core/AudioNode.d.ts +2 -2
- package/lib/typescript/web-core/AudioNode.d.ts.map +1 -1
- package/lib/typescript/web-core/BaseAudioContext.d.ts +3 -3
- package/lib/typescript/web-core/BaseAudioContext.d.ts.map +1 -1
- package/lib/typescript/web-core/BiquadFilterNode.d.ts +2 -2
- package/lib/typescript/web-core/BiquadFilterNode.d.ts.map +1 -1
- package/lib/typescript/web-core/ConstantSourceNode.d.ts +2 -1
- package/lib/typescript/web-core/ConstantSourceNode.d.ts.map +1 -1
- package/lib/typescript/web-core/ConvolverNode.d.ts +2 -1
- package/lib/typescript/web-core/ConvolverNode.d.ts.map +1 -1
- package/lib/typescript/web-core/DelayNode.d.ts +2 -1
- package/lib/typescript/web-core/DelayNode.d.ts.map +1 -1
- package/lib/typescript/web-core/GainNode.d.ts +2 -1
- package/lib/typescript/web-core/GainNode.d.ts.map +1 -1
- package/lib/typescript/web-core/IIRFilterNode.d.ts +3 -0
- package/lib/typescript/web-core/IIRFilterNode.d.ts.map +1 -1
- package/lib/typescript/web-core/OfflineAudioContext.d.ts +5 -6
- package/lib/typescript/web-core/OfflineAudioContext.d.ts.map +1 -1
- package/lib/typescript/web-core/OscillatorNode.d.ts +2 -2
- package/lib/typescript/web-core/OscillatorNode.d.ts.map +1 -1
- package/lib/typescript/web-core/PeriodicWave.d.ts +3 -1
- package/lib/typescript/web-core/PeriodicWave.d.ts.map +1 -1
- package/lib/typescript/web-core/StereoPannerNode.d.ts +2 -1
- package/lib/typescript/web-core/StereoPannerNode.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/api.ts +3 -1
- package/src/api.web.ts +1 -2
- package/src/core/AnalyserNode.ts +16 -1
- package/src/core/AudioBuffer.ts +26 -6
- package/src/core/AudioBufferQueueSourceNode.ts +15 -0
- package/src/core/AudioBufferSourceNode.ts +12 -0
- package/src/core/BaseAudioContext.ts +48 -151
- package/src/core/BiquadFilterNode.ts +9 -2
- package/src/core/ConstantSourceNode.ts +9 -1
- package/src/core/ConvolverNode.ts +11 -3
- package/src/core/DelayNode.ts +5 -2
- package/src/core/GainNode.ts +10 -3
- package/src/core/IIRFilterNode.ts +12 -0
- package/src/core/OscillatorNode.ts +13 -2
- package/src/core/PeriodicWave.ts +36 -2
- package/src/core/RecorderAdapterNode.ts +5 -0
- package/src/core/StereoPannerNode.ts +9 -1
- package/src/core/StreamerNode.ts +29 -1
- package/src/core/WaveShaperNode.ts +17 -0
- package/src/core/WorkletNode.ts +30 -1
- package/src/core/WorkletProcessingNode.ts +39 -1
- package/src/core/WorkletSourceNode.ts +36 -1
- package/src/defaults.ts +100 -0
- package/src/interfaces.ts +37 -24
- package/src/options-validators.ts +66 -0
- package/src/types.ts +96 -12
- package/src/web-core/AnalyserNode.tsx +15 -6
- package/src/web-core/AudioBuffer.tsx +20 -6
- package/src/web-core/AudioBufferSourceNode.tsx +393 -148
- package/src/web-core/AudioContext.tsx +22 -72
- package/src/web-core/AudioNode.tsx +6 -2
- package/src/web-core/BaseAudioContext.tsx +3 -7
- package/src/web-core/BiquadFilterNode.tsx +6 -2
- package/src/web-core/ConstantSourceNode.tsx +3 -1
- package/src/web-core/ConvolverNode.tsx +8 -8
- package/src/web-core/DelayNode.tsx +5 -1
- package/src/web-core/GainNode.tsx +3 -1
- package/src/web-core/IIRFilterNode.tsx +15 -0
- package/src/web-core/OfflineAudioContext.tsx +19 -67
- package/src/web-core/OscillatorNode.tsx +3 -2
- package/src/web-core/PeriodicWave.tsx +11 -1
- package/src/web-core/StereoPannerNode.tsx +9 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#include <audioapi/HostObjects/utils/NodeOptions.h>
|
|
1
2
|
#include <audioapi/core/AudioParam.h>
|
|
2
3
|
#include <audioapi/core/BaseAudioContext.h>
|
|
3
4
|
#include <audioapi/core/sources/AudioBufferBaseSourceNode.h>
|
|
@@ -12,29 +13,22 @@
|
|
|
12
13
|
namespace audioapi {
|
|
13
14
|
AudioBufferBaseSourceNode::AudioBufferBaseSourceNode(
|
|
14
15
|
std::shared_ptr<BaseAudioContext> context,
|
|
15
|
-
|
|
16
|
+
const BaseAudioBufferSourceOptions &options)
|
|
16
17
|
: AudioScheduledSourceNode(context),
|
|
17
|
-
pitchCorrection_(pitchCorrection),
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
std::make_shared<AudioParam>(
|
|
32
|
-
1.0,
|
|
33
|
-
MOST_NEGATIVE_SINGLE_FLOAT,
|
|
34
|
-
MOST_POSITIVE_SINGLE_FLOAT,
|
|
35
|
-
context)),
|
|
36
|
-
vReadIndex_(0.0),
|
|
37
|
-
onPositionChangedInterval_(static_cast<int>(context->getSampleRate() * 0.1f)) {}
|
|
18
|
+
pitchCorrection_(options.pitchCorrection),
|
|
19
|
+
vReadIndex_(0.0) {
|
|
20
|
+
onPositionChangedInterval_ = static_cast<int>(context->getSampleRate() * 0.1);
|
|
21
|
+
|
|
22
|
+
detuneParam_ = std::make_shared<AudioParam>(
|
|
23
|
+
options.detune, MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT, context);
|
|
24
|
+
playbackRateParam_ = std::make_shared<AudioParam>(
|
|
25
|
+
options.playbackRate, MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT, context);
|
|
26
|
+
|
|
27
|
+
playbackRateBus_ =
|
|
28
|
+
std::make_shared<AudioBus>(RENDER_QUANTUM_SIZE * 3, channelCount_, context->getSampleRate());
|
|
29
|
+
|
|
30
|
+
stretch_ = std::make_shared<signalsmith::stretch::SignalsmithStretch<float>>();
|
|
31
|
+
}
|
|
38
32
|
|
|
39
33
|
std::shared_ptr<AudioParam> AudioBufferBaseSourceNode::getDetuneParam() const {
|
|
40
34
|
return detuneParam_;
|
|
@@ -11,12 +11,13 @@ namespace audioapi {
|
|
|
11
11
|
|
|
12
12
|
class AudioBus;
|
|
13
13
|
class AudioParam;
|
|
14
|
+
class BaseAudioBufferSourceOptions;
|
|
14
15
|
|
|
15
16
|
class AudioBufferBaseSourceNode : public AudioScheduledSourceNode {
|
|
16
17
|
public:
|
|
17
18
|
explicit AudioBufferBaseSourceNode(
|
|
18
19
|
std::shared_ptr<BaseAudioContext> context,
|
|
19
|
-
|
|
20
|
+
const BaseAudioBufferSourceOptions &options);
|
|
20
21
|
|
|
21
22
|
[[nodiscard]] std::shared_ptr<AudioParam> getDetuneParam() const;
|
|
22
23
|
[[nodiscard]] std::shared_ptr<AudioParam> getPlaybackRateParam() const;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#include <audioapi/HostObjects/utils/NodeOptions.h>
|
|
1
2
|
#include <audioapi/core/AudioParam.h>
|
|
2
3
|
#include <audioapi/core/BaseAudioContext.h>
|
|
3
4
|
#include <audioapi/core/sources/AudioBufferQueueSourceNode.h>
|
|
@@ -18,19 +19,21 @@
|
|
|
18
19
|
namespace audioapi {
|
|
19
20
|
|
|
20
21
|
AudioBufferQueueSourceNode::AudioBufferQueueSourceNode(
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
: AudioBufferBaseSourceNode(context,
|
|
22
|
+
std::shared_ptr<BaseAudioContext> context,
|
|
23
|
+
const BaseAudioBufferSourceOptions &options)
|
|
24
|
+
: AudioBufferBaseSourceNode(context, options) {
|
|
25
|
+
buffers_ = {};
|
|
24
26
|
stretch_->presetDefault(channelCount_, context->getSampleRate());
|
|
25
27
|
|
|
26
|
-
if (pitchCorrection) {
|
|
28
|
+
if (options.pitchCorrection) {
|
|
27
29
|
// If pitch correction is enabled, add extra frames at the end
|
|
28
30
|
// to compensate for processing latency.
|
|
29
31
|
addExtraTailFrames_ = true;
|
|
30
32
|
|
|
31
33
|
int extraTailFrames = static_cast<int>(stretch_->inputLatency() + stretch_->outputLatency());
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
auto audioBufferOptions = AudioBufferOptions(
|
|
35
|
+
extraTailFrames, static_cast<size_t>(channelCount_), context->getSampleRate());
|
|
36
|
+
tailBuffer_ = std::make_shared<AudioBuffer>(audioBufferOptions);
|
|
34
37
|
|
|
35
38
|
tailBuffer_->bus_->zero();
|
|
36
39
|
}
|
|
@@ -14,12 +14,13 @@ namespace audioapi {
|
|
|
14
14
|
|
|
15
15
|
class AudioBus;
|
|
16
16
|
class AudioParam;
|
|
17
|
+
class BaseAudioBufferSourceOptions;
|
|
17
18
|
|
|
18
19
|
class AudioBufferQueueSourceNode : public AudioBufferBaseSourceNode {
|
|
19
20
|
public:
|
|
20
21
|
explicit AudioBufferQueueSourceNode(
|
|
21
22
|
std::shared_ptr<BaseAudioContext> context,
|
|
22
|
-
|
|
23
|
+
const BaseAudioBufferSourceOptions &options);
|
|
23
24
|
~AudioBufferQueueSourceNode() override;
|
|
24
25
|
|
|
25
26
|
void stop(double when) override;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#include <audioapi/HostObjects/utils/NodeOptions.h>
|
|
1
2
|
#include <audioapi/core/AudioParam.h>
|
|
2
3
|
#include <audioapi/core/BaseAudioContext.h>
|
|
3
4
|
#include <audioapi/core/sources/AudioBufferSourceNode.h>
|
|
@@ -14,14 +15,15 @@ namespace audioapi {
|
|
|
14
15
|
|
|
15
16
|
AudioBufferSourceNode::AudioBufferSourceNode(
|
|
16
17
|
std::shared_ptr<BaseAudioContext> context,
|
|
17
|
-
|
|
18
|
-
: AudioBufferBaseSourceNode(context,
|
|
19
|
-
loop_(
|
|
18
|
+
const AudioBufferSourceOptions &options)
|
|
19
|
+
: AudioBufferBaseSourceNode(context, options),
|
|
20
|
+
loop_(options.loop),
|
|
20
21
|
loopSkip_(false),
|
|
21
|
-
loopStart_(
|
|
22
|
-
loopEnd_(
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
loopStart_(options.loopStart),
|
|
23
|
+
loopEnd_(options.loopEnd) {
|
|
24
|
+
buffer_ = std::shared_ptr<AudioBuffer>(options.buffer);
|
|
25
|
+
alignedBus_ = std::shared_ptr<AudioBus>(nullptr);
|
|
26
|
+
|
|
25
27
|
isInitialized_ = true;
|
|
26
28
|
}
|
|
27
29
|
|
|
@@ -13,10 +13,13 @@ namespace audioapi {
|
|
|
13
13
|
|
|
14
14
|
class AudioBus;
|
|
15
15
|
class AudioParam;
|
|
16
|
+
class AudioBufferSourceOptions;
|
|
16
17
|
|
|
17
18
|
class AudioBufferSourceNode : public AudioBufferBaseSourceNode {
|
|
18
19
|
public:
|
|
19
|
-
explicit AudioBufferSourceNode(
|
|
20
|
+
explicit AudioBufferSourceNode(
|
|
21
|
+
std::shared_ptr<BaseAudioContext> context,
|
|
22
|
+
const AudioBufferSourceOptions &options);
|
|
20
23
|
~AudioBufferSourceNode() override;
|
|
21
24
|
|
|
22
25
|
[[nodiscard]] bool getLoop() const;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#include <audioapi/HostObjects/utils/NodeOptions.h>
|
|
1
2
|
#include <audioapi/core/BaseAudioContext.h>
|
|
2
3
|
#include <audioapi/core/sources/ConstantSourceNode.h>
|
|
3
4
|
#include <audioapi/dsp/AudioUtils.h>
|
|
@@ -6,14 +7,10 @@
|
|
|
6
7
|
#include <memory>
|
|
7
8
|
|
|
8
9
|
namespace audioapi {
|
|
9
|
-
ConstantSourceNode::ConstantSourceNode(std::shared_ptr<BaseAudioContext> context)
|
|
10
|
-
: AudioScheduledSourceNode(context)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
1.0,
|
|
14
|
-
MOST_NEGATIVE_SINGLE_FLOAT,
|
|
15
|
-
MOST_POSITIVE_SINGLE_FLOAT,
|
|
16
|
-
context)) {
|
|
10
|
+
ConstantSourceNode::ConstantSourceNode(std::shared_ptr<BaseAudioContext> context, const ConstantSourceOptions &options)
|
|
11
|
+
: AudioScheduledSourceNode(context) {
|
|
12
|
+
offsetParam_ = std::make_shared<AudioParam>(
|
|
13
|
+
options.offset, MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT, context);
|
|
17
14
|
isInitialized_ = true;
|
|
18
15
|
}
|
|
19
16
|
|
|
@@ -10,10 +10,13 @@
|
|
|
10
10
|
namespace audioapi {
|
|
11
11
|
|
|
12
12
|
class AudioBus;
|
|
13
|
+
class ConstantSourceOptions;
|
|
13
14
|
|
|
14
15
|
class ConstantSourceNode : public AudioScheduledSourceNode {
|
|
15
16
|
public:
|
|
16
|
-
explicit ConstantSourceNode(
|
|
17
|
+
explicit ConstantSourceNode(
|
|
18
|
+
std::shared_ptr<BaseAudioContext> context,
|
|
19
|
+
const ConstantSourceOptions &options);
|
|
17
20
|
|
|
18
21
|
[[nodiscard]] std::shared_ptr<AudioParam> getOffsetParam() const;
|
|
19
22
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#include <audioapi/HostObjects/utils/NodeOptions.h>
|
|
1
2
|
#include <audioapi/core/BaseAudioContext.h>
|
|
2
3
|
#include <audioapi/core/sources/OscillatorNode.h>
|
|
3
4
|
#include <audioapi/dsp/AudioUtils.h>
|
|
@@ -8,23 +9,27 @@
|
|
|
8
9
|
|
|
9
10
|
namespace audioapi {
|
|
10
11
|
|
|
11
|
-
OscillatorNode::OscillatorNode(std::shared_ptr<BaseAudioContext> context)
|
|
12
|
-
: AudioScheduledSourceNode(context)
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
12
|
+
OscillatorNode::OscillatorNode(std::shared_ptr<BaseAudioContext> context, const OscillatorOptions &options)
|
|
13
|
+
: AudioScheduledSourceNode(context) {
|
|
14
|
+
frequencyParam_ = std::make_shared<AudioParam>(
|
|
15
|
+
options.frequency,
|
|
16
|
+
-context->getNyquistFrequency(),
|
|
17
|
+
context->getNyquistFrequency(),
|
|
18
|
+
context);
|
|
19
|
+
detuneParam_ = std::make_shared<AudioParam>(
|
|
20
|
+
options.detune,
|
|
21
|
+
-1200 * LOG2_MOST_POSITIVE_SINGLE_FLOAT,
|
|
22
|
+
1200 * LOG2_MOST_POSITIVE_SINGLE_FLOAT,
|
|
23
|
+
context);
|
|
24
|
+
type_ = options.type;
|
|
25
|
+
if (options.periodicWave) {
|
|
26
|
+
periodicWave_ = options.periodicWave;
|
|
27
|
+
} else {
|
|
28
|
+
periodicWave_ = context->getBasicWaveForm(type_);
|
|
29
|
+
}
|
|
30
|
+
|
|
27
31
|
audioBus_ = std::make_shared<AudioBus>(RENDER_QUANTUM_SIZE, 1, context->getSampleRate());
|
|
32
|
+
|
|
28
33
|
isInitialized_ = true;
|
|
29
34
|
}
|
|
30
35
|
|
|
@@ -13,10 +13,13 @@
|
|
|
13
13
|
namespace audioapi {
|
|
14
14
|
|
|
15
15
|
class AudioBus;
|
|
16
|
+
class OscillatorOptions;
|
|
16
17
|
|
|
17
18
|
class OscillatorNode : public AudioScheduledSourceNode {
|
|
18
19
|
public:
|
|
19
|
-
explicit OscillatorNode(
|
|
20
|
+
explicit OscillatorNode(
|
|
21
|
+
std::shared_ptr<BaseAudioContext> context,
|
|
22
|
+
const OscillatorOptions &options);
|
|
20
23
|
|
|
21
24
|
[[nodiscard]] std::shared_ptr<AudioParam> getFrequencyParam() const;
|
|
22
25
|
[[nodiscard]] std::shared_ptr<AudioParam> getDetuneParam() const;
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* FFmpeg, you must comply with the terms of the LGPL for FFmpeg itself.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
#include <audioapi/HostObjects/utils/NodeOptions.h>
|
|
11
12
|
#include <audioapi/core/BaseAudioContext.h>
|
|
12
13
|
#include <audioapi/core/sources/StreamerNode.h>
|
|
13
14
|
#include <audioapi/core/utils/Locker.h>
|
|
@@ -22,7 +23,7 @@
|
|
|
22
23
|
|
|
23
24
|
namespace audioapi {
|
|
24
25
|
#if !RN_AUDIO_API_FFMPEG_DISABLED
|
|
25
|
-
StreamerNode::StreamerNode(std::shared_ptr<BaseAudioContext> context)
|
|
26
|
+
StreamerNode::StreamerNode(std::shared_ptr<BaseAudioContext> context, const StreamerOptions &options)
|
|
26
27
|
: AudioScheduledSourceNode(context),
|
|
27
28
|
fmtCtx_(nullptr),
|
|
28
29
|
codecCtx_(nullptr),
|
|
@@ -37,7 +38,7 @@ StreamerNode::StreamerNode(std::shared_ptr<BaseAudioContext> context)
|
|
|
37
38
|
maxResampledSamples_(0),
|
|
38
39
|
processedSamples_(0) {}
|
|
39
40
|
#else
|
|
40
|
-
StreamerNode::StreamerNode(std::shared_ptr<BaseAudioContext> context) : AudioScheduledSourceNode(context) {}
|
|
41
|
+
StreamerNode::StreamerNode(std::shared_ptr<BaseAudioContext> context, const StreamerOptions &options) : AudioScheduledSourceNode(context) {}
|
|
41
42
|
#endif // RN_AUDIO_API_FFMPEG_DISABLED
|
|
42
43
|
|
|
43
44
|
StreamerNode::~StreamerNode() {
|
|
@@ -48,6 +49,7 @@ StreamerNode::~StreamerNode() {
|
|
|
48
49
|
|
|
49
50
|
bool StreamerNode::initialize(const std::string &input_url) {
|
|
50
51
|
#if !RN_AUDIO_API_FFMPEG_DISABLED
|
|
52
|
+
streamPath_ = input_url;
|
|
51
53
|
std::shared_ptr<BaseAudioContext> context = context_.lock();
|
|
52
54
|
if (context == nullptr) {
|
|
53
55
|
return false;
|
|
@@ -59,10 +59,11 @@ struct StreamingData {
|
|
|
59
59
|
namespace audioapi {
|
|
60
60
|
|
|
61
61
|
class AudioBus;
|
|
62
|
+
class StreamerOptions;
|
|
62
63
|
|
|
63
64
|
class StreamerNode : public AudioScheduledSourceNode {
|
|
64
65
|
public:
|
|
65
|
-
explicit StreamerNode(std::shared_ptr<BaseAudioContext> context);
|
|
66
|
+
explicit StreamerNode(std::shared_ptr<BaseAudioContext> context, const StreamerOptions &options);
|
|
66
67
|
~StreamerNode() override;
|
|
67
68
|
|
|
68
69
|
/**
|
|
@@ -70,6 +71,14 @@ class StreamerNode : public AudioScheduledSourceNode {
|
|
|
70
71
|
*/
|
|
71
72
|
bool initialize(const std::string &inputUrl);
|
|
72
73
|
|
|
74
|
+
std::string getStreamPath() const {
|
|
75
|
+
#if !RN_AUDIO_API_TEST
|
|
76
|
+
return streamPath_;
|
|
77
|
+
#else
|
|
78
|
+
return "";
|
|
79
|
+
#endif // RN_AUDIO_API_TEST
|
|
80
|
+
}
|
|
81
|
+
|
|
73
82
|
protected:
|
|
74
83
|
std::shared_ptr<AudioBus> processNode(
|
|
75
84
|
const std::shared_ptr<AudioBus> &processingBus,
|
|
@@ -103,6 +112,7 @@ class StreamerNode : public AudioScheduledSourceNode {
|
|
|
103
112
|
STREAMER_NODE_SPSC_OVERFLOW_STRATEGY,
|
|
104
113
|
STREAMER_NODE_SPSC_WAIT_STRATEGY>
|
|
105
114
|
receiver_;
|
|
115
|
+
std::string streamPath_;
|
|
106
116
|
|
|
107
117
|
/**
|
|
108
118
|
* @brief Setting up the resampler
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#include <audioapi/HostObjects/utils/NodeOptions.h>
|
|
1
2
|
#include <audioapi/core/OfflineAudioContext.h>
|
|
2
3
|
#include <audioapi/core/sources/ConstantSourceNode.h>
|
|
3
4
|
#include <audioapi/core/utils/worklets/SafeIncludes.h>
|
|
@@ -26,7 +27,7 @@ class ConstantSourceTest : public ::testing::Test {
|
|
|
26
27
|
class TestableConstantSourceNode : public ConstantSourceNode {
|
|
27
28
|
public:
|
|
28
29
|
explicit TestableConstantSourceNode(std::shared_ptr<BaseAudioContext> context)
|
|
29
|
-
: ConstantSourceNode(context) {}
|
|
30
|
+
: ConstantSourceNode(context, ConstantSourceOptions()) {}
|
|
30
31
|
|
|
31
32
|
void setOffsetParam(float value) {
|
|
32
33
|
getOffsetParam()->setValue(value);
|
|
@@ -40,7 +41,7 @@ class TestableConstantSourceNode : public ConstantSourceNode {
|
|
|
40
41
|
};
|
|
41
42
|
|
|
42
43
|
TEST_F(ConstantSourceTest, ConstantSourceCanBeCreated) {
|
|
43
|
-
auto constantSource = context->createConstantSource();
|
|
44
|
+
auto constantSource = context->createConstantSource(ConstantSourceOptions());
|
|
44
45
|
ASSERT_NE(constantSource, nullptr);
|
|
45
46
|
}
|
|
46
47
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#include <audioapi/HostObjects/utils/NodeOptions.h>
|
|
1
2
|
#include <audioapi/core/OfflineAudioContext.h>
|
|
2
3
|
#include <audioapi/core/effects/DelayNode.h>
|
|
3
4
|
#include <audioapi/core/utils/worklets/SafeIncludes.h>
|
|
@@ -25,7 +26,7 @@ class DelayTest : public ::testing::Test {
|
|
|
25
26
|
|
|
26
27
|
class TestableDelayNode : public DelayNode {
|
|
27
28
|
public:
|
|
28
|
-
explicit TestableDelayNode(std::shared_ptr<BaseAudioContext> context) : DelayNode(context,
|
|
29
|
+
explicit TestableDelayNode(std::shared_ptr<BaseAudioContext> context, const DelayOptions& options) : DelayNode(context, options) {}
|
|
29
30
|
|
|
30
31
|
void setDelayTimeParam(float value) {
|
|
31
32
|
getDelayTimeParam()->setValue(value);
|
|
@@ -39,14 +40,16 @@ class TestableDelayNode : public DelayNode {
|
|
|
39
40
|
};
|
|
40
41
|
|
|
41
42
|
TEST_F(DelayTest, DelayCanBeCreated) {
|
|
42
|
-
auto delay = context->createDelay(
|
|
43
|
+
auto delay = context->createDelay(DelayOptions());
|
|
43
44
|
ASSERT_NE(delay, nullptr);
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
TEST_F(DelayTest, DelayWithZeroDelayOutputsInputSignal) {
|
|
47
48
|
static constexpr float DELAY_TIME = 0.0f;
|
|
48
49
|
static constexpr int FRAMES_TO_PROCESS = 4;
|
|
49
|
-
auto
|
|
50
|
+
auto options = DelayOptions();
|
|
51
|
+
options.maxDelayTime = 1.0f;
|
|
52
|
+
auto delayNode = TestableDelayNode(context, options);
|
|
50
53
|
delayNode.setDelayTimeParam(DELAY_TIME);
|
|
51
54
|
|
|
52
55
|
auto bus = std::make_shared<audioapi::AudioBus>(FRAMES_TO_PROCESS, 1, sampleRate);
|
|
@@ -63,7 +66,9 @@ TEST_F(DelayTest, DelayWithZeroDelayOutputsInputSignal) {
|
|
|
63
66
|
TEST_F(DelayTest, DelayAppliesTimeShiftCorrectly) {
|
|
64
67
|
float DELAY_TIME = (128.0 / context->getSampleRate()) * 0.5;
|
|
65
68
|
static constexpr int FRAMES_TO_PROCESS = 128;
|
|
66
|
-
auto
|
|
69
|
+
auto options = DelayOptions();
|
|
70
|
+
options.maxDelayTime = 1.0f;
|
|
71
|
+
auto delayNode = TestableDelayNode(context, options);
|
|
67
72
|
delayNode.setDelayTimeParam(DELAY_TIME);
|
|
68
73
|
|
|
69
74
|
auto bus = std::make_shared<audioapi::AudioBus>(FRAMES_TO_PROCESS, 1, sampleRate);
|
|
@@ -87,7 +92,9 @@ TEST_F(DelayTest, DelayAppliesTimeShiftCorrectly) {
|
|
|
87
92
|
TEST_F(DelayTest, DelayHandlesTailCorrectly) {
|
|
88
93
|
float DELAY_TIME = (128.0 / context->getSampleRate()) * 0.5;
|
|
89
94
|
static constexpr int FRAMES_TO_PROCESS = 128;
|
|
90
|
-
auto
|
|
95
|
+
auto options = DelayOptions();
|
|
96
|
+
options.maxDelayTime = 1.0f;
|
|
97
|
+
auto delayNode = TestableDelayNode(context, options);
|
|
91
98
|
delayNode.setDelayTimeParam(DELAY_TIME);
|
|
92
99
|
|
|
93
100
|
auto bus = std::make_shared<audioapi::AudioBus>(FRAMES_TO_PROCESS, 1, sampleRate);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#include <audioapi/HostObjects/utils/NodeOptions.h>
|
|
1
2
|
#include <audioapi/core/OfflineAudioContext.h>
|
|
2
3
|
#include <audioapi/core/effects/GainNode.h>
|
|
3
4
|
#include <audioapi/core/utils/worklets/SafeIncludes.h>
|
|
@@ -25,7 +26,7 @@ class GainTest : public ::testing::Test {
|
|
|
25
26
|
|
|
26
27
|
class TestableGainNode : public GainNode {
|
|
27
28
|
public:
|
|
28
|
-
explicit TestableGainNode(std::shared_ptr<BaseAudioContext> context) : GainNode(context) {}
|
|
29
|
+
explicit TestableGainNode(std::shared_ptr<BaseAudioContext> context) : GainNode(context, GainOptions()) {}
|
|
29
30
|
|
|
30
31
|
void setGainParam(float value) {
|
|
31
32
|
getGainParam()->setValue(value);
|
|
@@ -39,7 +40,7 @@ class TestableGainNode : public GainNode {
|
|
|
39
40
|
};
|
|
40
41
|
|
|
41
42
|
TEST_F(GainTest, GainCanBeCreated) {
|
|
42
|
-
auto gain = context->createGain();
|
|
43
|
+
auto gain = context->createGain(GainOptions());
|
|
43
44
|
ASSERT_NE(gain, nullptr);
|
|
44
45
|
}
|
|
45
46
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#include <audioapi/HostObjects/utils/NodeOptions.h>
|
|
1
2
|
#include <audioapi/core/OfflineAudioContext.h>
|
|
2
3
|
#include <audioapi/core/effects/IIRFilterNode.h>
|
|
3
4
|
#include <audioapi/core/utils/worklets/SafeIncludes.h>
|
|
@@ -91,7 +92,7 @@ class IIRFilterTest : public ::testing::Test {
|
|
|
91
92
|
TEST_F(IIRFilterTest, IIRFilterCanBeCreated) {
|
|
92
93
|
const std::vector<float> feedforward = {1.0};
|
|
93
94
|
const std::vector<float> feedback = {1.0};
|
|
94
|
-
auto node = context->createIIRFilter(feedforward, feedback);
|
|
95
|
+
auto node = context->createIIRFilter(IIRFilterOptions(feedforward, feedback));
|
|
95
96
|
ASSERT_NE(node, nullptr);
|
|
96
97
|
}
|
|
97
98
|
|
|
@@ -99,7 +100,7 @@ TEST_F(IIRFilterTest, GetFrequencyResponse) {
|
|
|
99
100
|
const std::vector<float> feedforward = {0.0050662636, 0.0101325272, 0.0050662636};
|
|
100
101
|
const std::vector<float> feedback = {1.0632762845, -1.9797349456, 0.9367237155};
|
|
101
102
|
|
|
102
|
-
auto node = IIRFilterNode(context, feedforward, feedback);
|
|
103
|
+
auto node = IIRFilterNode(context, IIRFilterOptions(feedforward, feedback));
|
|
103
104
|
|
|
104
105
|
float frequency = 1000.0f;
|
|
105
106
|
float normalizedFrequency = frequency / nyquistFrequency;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#include <audioapi/HostObjects/utils/NodeOptions.h>
|
|
1
2
|
#include <audioapi/core/OfflineAudioContext.h>
|
|
2
3
|
#include <audioapi/core/sources/OscillatorNode.h>
|
|
3
4
|
#include <audioapi/core/utils/worklets/SafeIncludes.h>
|
|
@@ -21,6 +22,6 @@ class OscillatorTest : public ::testing::Test {
|
|
|
21
22
|
};
|
|
22
23
|
|
|
23
24
|
TEST_F(OscillatorTest, OscillatorCanBeCreated) {
|
|
24
|
-
auto osc = context->createOscillator();
|
|
25
|
+
auto osc = context->createOscillator(OscillatorOptions());
|
|
25
26
|
ASSERT_NE(osc, nullptr);
|
|
26
27
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#include <audioapi/HostObjects/utils/NodeOptions.h>
|
|
1
2
|
#include <audioapi/core/OfflineAudioContext.h>
|
|
2
3
|
#include <audioapi/core/effects/StereoPannerNode.h>
|
|
3
4
|
#include <audioapi/core/utils/worklets/SafeIncludes.h>
|
|
@@ -26,7 +27,7 @@ class StereoPannerTest : public ::testing::Test {
|
|
|
26
27
|
class TestableStereoPannerNode : public StereoPannerNode {
|
|
27
28
|
public:
|
|
28
29
|
explicit TestableStereoPannerNode(std::shared_ptr<BaseAudioContext> context)
|
|
29
|
-
: StereoPannerNode(context) {}
|
|
30
|
+
: StereoPannerNode(context, StereoPannerOptions()) {}
|
|
30
31
|
|
|
31
32
|
void setPanParam(float value) {
|
|
32
33
|
getPanParam()->setValue(value);
|
|
@@ -40,7 +41,7 @@ class TestableStereoPannerNode : public StereoPannerNode {
|
|
|
40
41
|
};
|
|
41
42
|
|
|
42
43
|
TEST_F(StereoPannerTest, StereoPannerCanBeCreated) {
|
|
43
|
-
auto panner = context->createStereoPanner();
|
|
44
|
+
auto panner = context->createStereoPanner(StereoPannerOptions());
|
|
44
45
|
ASSERT_NE(panner, nullptr);
|
|
45
46
|
}
|
|
46
47
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#include <audioapi/HostObjects/utils/NodeOptions.h>
|
|
1
2
|
#include <test/src/biquad/BiquadFilterChromium.h>
|
|
2
3
|
#include <test/src/biquad/BiquadFilterTest.h>
|
|
3
4
|
#include <memory>
|
|
@@ -16,7 +17,7 @@ void BiquadFilterTest::expectCoefficientsNear(
|
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
void BiquadFilterTest::testLowpass(float frequency, float Q) {
|
|
19
|
-
auto node = BiquadFilterNode(context);
|
|
20
|
+
auto node = BiquadFilterNode(context, BiquadFilterOptions());
|
|
20
21
|
float normalizedFrequency = frequency / nyquistFrequency;
|
|
21
22
|
|
|
22
23
|
node.setLowpassCoefficients(normalizedFrequency, Q);
|
|
@@ -24,7 +25,7 @@ void BiquadFilterTest::testLowpass(float frequency, float Q) {
|
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
void BiquadFilterTest::testHighpass(float frequency, float Q) {
|
|
27
|
-
auto node = BiquadFilterNode(context);
|
|
28
|
+
auto node = BiquadFilterNode(context, BiquadFilterOptions());
|
|
28
29
|
float normalizedFrequency = frequency / nyquistFrequency;
|
|
29
30
|
|
|
30
31
|
node.setHighpassCoefficients(normalizedFrequency, Q);
|
|
@@ -32,7 +33,7 @@ void BiquadFilterTest::testHighpass(float frequency, float Q) {
|
|
|
32
33
|
}
|
|
33
34
|
|
|
34
35
|
void BiquadFilterTest::testBandpass(float frequency, float Q) {
|
|
35
|
-
auto node = BiquadFilterNode(context);
|
|
36
|
+
auto node = BiquadFilterNode(context, BiquadFilterOptions());
|
|
36
37
|
float normalizedFrequency = frequency / nyquistFrequency;
|
|
37
38
|
|
|
38
39
|
node.setBandpassCoefficients(normalizedFrequency, Q);
|
|
@@ -40,7 +41,7 @@ void BiquadFilterTest::testBandpass(float frequency, float Q) {
|
|
|
40
41
|
}
|
|
41
42
|
|
|
42
43
|
void BiquadFilterTest::testNotch(float frequency, float Q) {
|
|
43
|
-
auto node = BiquadFilterNode(context);
|
|
44
|
+
auto node = BiquadFilterNode(context, BiquadFilterOptions());
|
|
44
45
|
float normalizedFrequency = frequency / nyquistFrequency;
|
|
45
46
|
|
|
46
47
|
node.setNotchCoefficients(normalizedFrequency, Q);
|
|
@@ -48,7 +49,7 @@ void BiquadFilterTest::testNotch(float frequency, float Q) {
|
|
|
48
49
|
}
|
|
49
50
|
|
|
50
51
|
void BiquadFilterTest::testAllpass(float frequency, float Q) {
|
|
51
|
-
auto node = BiquadFilterNode(context);
|
|
52
|
+
auto node = BiquadFilterNode(context, BiquadFilterOptions());
|
|
52
53
|
float normalizedFrequency = frequency / nyquistFrequency;
|
|
53
54
|
|
|
54
55
|
node.setAllpassCoefficients(normalizedFrequency, Q);
|
|
@@ -56,7 +57,7 @@ void BiquadFilterTest::testAllpass(float frequency, float Q) {
|
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
void BiquadFilterTest::testPeaking(float frequency, float Q, float gain) {
|
|
59
|
-
auto node = BiquadFilterNode(context);
|
|
60
|
+
auto node = BiquadFilterNode(context, BiquadFilterOptions());
|
|
60
61
|
float normalizedFrequency = frequency / nyquistFrequency;
|
|
61
62
|
|
|
62
63
|
node.setPeakingCoefficients(normalizedFrequency, Q, gain);
|
|
@@ -64,7 +65,7 @@ void BiquadFilterTest::testPeaking(float frequency, float Q, float gain) {
|
|
|
64
65
|
}
|
|
65
66
|
|
|
66
67
|
void BiquadFilterTest::testLowshelf(float frequency, float gain) {
|
|
67
|
-
auto node = BiquadFilterNode(context);
|
|
68
|
+
auto node = BiquadFilterNode(context, BiquadFilterOptions());
|
|
68
69
|
float normalizedFrequency = frequency / nyquistFrequency;
|
|
69
70
|
|
|
70
71
|
node.setLowshelfCoefficients(normalizedFrequency, gain);
|
|
@@ -72,7 +73,7 @@ void BiquadFilterTest::testLowshelf(float frequency, float gain) {
|
|
|
72
73
|
}
|
|
73
74
|
|
|
74
75
|
void BiquadFilterTest::testHighshelf(float frequency, float gain) {
|
|
75
|
-
auto node = BiquadFilterNode(context);
|
|
76
|
+
auto node = BiquadFilterNode(context, BiquadFilterOptions());
|
|
76
77
|
float normalizedFrequency = frequency / nyquistFrequency;
|
|
77
78
|
|
|
78
79
|
node.setHighshelfCoefficients(normalizedFrequency, gain);
|
|
@@ -218,7 +219,7 @@ TEST_P(BiquadFilterGainTest, SetHighshelfCoefficients) {
|
|
|
218
219
|
}
|
|
219
220
|
|
|
220
221
|
TEST_F(BiquadFilterTest, GetFrequencyResponse) {
|
|
221
|
-
auto node = BiquadFilterNode(context);
|
|
222
|
+
auto node = BiquadFilterNode(context, BiquadFilterOptions());
|
|
222
223
|
|
|
223
224
|
float frequency = 1000.0f;
|
|
224
225
|
float Q = 1.0f;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#include <audioapi/HostObjects/utils/NodeOptions.h>
|
|
1
2
|
#include <audioapi/core/OfflineAudioContext.h>
|
|
2
3
|
#include <audioapi/core/effects/WaveShaperNode.h>
|
|
3
4
|
#include <audioapi/core/utils/worklets/SafeIncludes.h>
|
|
@@ -25,7 +26,7 @@ class WaveShaperNodeTest : public ::testing::Test {
|
|
|
25
26
|
class TestableWaveShaperNode : public WaveShaperNode {
|
|
26
27
|
public:
|
|
27
28
|
explicit TestableWaveShaperNode(std::shared_ptr<BaseAudioContext> context)
|
|
28
|
-
: WaveShaperNode(context) {
|
|
29
|
+
: WaveShaperNode(context, WaveShaperOptions()) {
|
|
29
30
|
testCurve_ = std::make_shared<AudioArray>(3);
|
|
30
31
|
auto data = testCurve_->getData();
|
|
31
32
|
data[0] = -2.0f;
|
|
@@ -43,12 +44,12 @@ class TestableWaveShaperNode : public WaveShaperNode {
|
|
|
43
44
|
};
|
|
44
45
|
|
|
45
46
|
TEST_F(WaveShaperNodeTest, WaveShaperNodeCanBeCreated) {
|
|
46
|
-
auto waveShaper = context->createWaveShaper();
|
|
47
|
+
auto waveShaper = context->createWaveShaper(WaveShaperOptions());
|
|
47
48
|
ASSERT_NE(waveShaper, nullptr);
|
|
48
49
|
}
|
|
49
50
|
|
|
50
51
|
TEST_F(WaveShaperNodeTest, NullCanBeAsignedToCurve) {
|
|
51
|
-
auto waveShaper = context->createWaveShaper();
|
|
52
|
+
auto waveShaper = context->createWaveShaper(WaveShaperOptions());
|
|
52
53
|
ASSERT_NO_THROW(waveShaper->setCurve(nullptr));
|
|
53
54
|
ASSERT_EQ(waveShaper->getCurve(), nullptr);
|
|
54
55
|
}
|
package/lib/commonjs/api.js
CHANGED
|
@@ -33,14 +33,15 @@ var _exportNames = {
|
|
|
33
33
|
WorkletProcessingNode: true,
|
|
34
34
|
WorkletSourceNode: true,
|
|
35
35
|
useSystemVolume: true,
|
|
36
|
-
|
|
36
|
+
PeriodicWave: true,
|
|
37
37
|
FilePreset: true,
|
|
38
38
|
PlaybackNotificationManager: true,
|
|
39
39
|
RecordingNotificationManager: true,
|
|
40
40
|
NotificationManager: true,
|
|
41
41
|
PlaybackControlName: true,
|
|
42
42
|
PlaybackNotificationEventName: true,
|
|
43
|
-
PlaybackNotificationInfo: true
|
|
43
|
+
PlaybackNotificationInfo: true,
|
|
44
|
+
AudioManager: true
|
|
44
45
|
};
|
|
45
46
|
Object.defineProperty(exports, "AnalyserNode", {
|
|
46
47
|
enumerable: true,
|
|
@@ -168,6 +169,12 @@ Object.defineProperty(exports, "OscillatorNode", {
|
|
|
168
169
|
return _OscillatorNode.default;
|
|
169
170
|
}
|
|
170
171
|
});
|
|
172
|
+
Object.defineProperty(exports, "PeriodicWave", {
|
|
173
|
+
enumerable: true,
|
|
174
|
+
get: function () {
|
|
175
|
+
return _PeriodicWave.default;
|
|
176
|
+
}
|
|
177
|
+
});
|
|
171
178
|
Object.defineProperty(exports, "PlaybackControlName", {
|
|
172
179
|
enumerable: true,
|
|
173
180
|
get: function () {
|
|
@@ -293,7 +300,7 @@ var _WorkletNode = _interopRequireDefault(require("./core/WorkletNode"));
|
|
|
293
300
|
var _WorkletProcessingNode = _interopRequireDefault(require("./core/WorkletProcessingNode"));
|
|
294
301
|
var _WorkletSourceNode = _interopRequireDefault(require("./core/WorkletSourceNode"));
|
|
295
302
|
var _useSystemVolume = _interopRequireDefault(require("./hooks/useSystemVolume"));
|
|
296
|
-
var
|
|
303
|
+
var _PeriodicWave = _interopRequireDefault(require("./core/PeriodicWave"));
|
|
297
304
|
var _errors = require("./errors");
|
|
298
305
|
Object.keys(_errors).forEach(function (key) {
|
|
299
306
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -332,5 +339,6 @@ Object.keys(_types2).forEach(function (key) {
|
|
|
332
339
|
});
|
|
333
340
|
var _filePresets = _interopRequireDefault(require("./utils/filePresets"));
|
|
334
341
|
var _notification = require("./system/notification");
|
|
342
|
+
var _system = _interopRequireDefault(require("./system"));
|
|
335
343
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
336
344
|
//# sourceMappingURL=api.js.map
|