react-native-audio-api 0.12.0-nightly-0d1a19d-20260120 → 0.12.0-nightly-6993a06-20260122
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 +16 -2
- package/android/src/main/java/com/swmansion/audioapi/system/AudioFocusListener.kt +7 -3
- package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionManager.kt +6 -6
- package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.cpp +52 -49
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferQueueSourceNodeHostObject.cpp +18 -0
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferQueueSourceNodeHostObject.h +4 -0
- 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 +38 -20
- package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.h +9 -1
- package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.cpp +10 -8
- package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.h +5 -2
- 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/audioapi/events/AudioEventHandlerRegistry.h +8 -2
- 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/ios/audioapi/ios/AudioAPIModule.h +2 -2
- package/ios/audioapi/ios/AudioAPIModule.mm +3 -3
- package/ios/audioapi/ios/system/AudioEngine.mm +3 -1
- package/ios/audioapi/ios/system/AudioSessionManager.h +1 -0
- package/ios/audioapi/ios/system/{NotificationManager.h → SystemNotificationManager.h} +1 -1
- package/ios/audioapi/ios/system/{NotificationManager.mm → SystemNotificationManager.mm} +9 -4
- 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 +24 -0
- package/lib/commonjs/core/AudioBufferQueueSourceNode.js.map +1 -1
- package/lib/commonjs/core/AudioBufferSourceNode.js +9 -6
- package/lib/commonjs/core/AudioBufferSourceNode.js.map +1 -1
- package/lib/commonjs/core/AudioScheduledSourceNode.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 -7
- 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/specs/NativeAudioAPIModule.js.map +1 -1
- package/lib/commonjs/specs/NativeAudioAPIModule.web.js.map +1 -1
- package/lib/commonjs/system/AudioManager.js +7 -2
- package/lib/commonjs/system/AudioManager.js.map +1 -1
- 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/AudioScheduledSourceNode.js +4 -2
- package/lib/commonjs/web-core/AudioScheduledSourceNode.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 +24 -0
- package/lib/module/core/AudioBufferQueueSourceNode.js.map +1 -1
- package/lib/module/core/AudioBufferSourceNode.js +9 -6
- package/lib/module/core/AudioBufferSourceNode.js.map +1 -1
- package/lib/module/core/AudioScheduledSourceNode.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 -7
- 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/specs/NativeAudioAPIModule.js.map +1 -1
- package/lib/module/specs/NativeAudioAPIModule.web.js.map +1 -1
- package/lib/module/system/AudioManager.js +7 -2
- package/lib/module/system/AudioManager.js.map +1 -1
- 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/AudioScheduledSourceNode.js +4 -2
- package/lib/module/web-core/AudioScheduledSourceNode.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 +8 -0
- package/lib/typescript/core/AudioBufferQueueSourceNode.d.ts.map +1 -1
- package/lib/typescript/core/AudioBufferSourceNode.d.ts +3 -2
- package/lib/typescript/core/AudioBufferSourceNode.d.ts.map +1 -1
- package/lib/typescript/core/AudioScheduledSourceNode.d.ts +3 -3
- package/lib/typescript/core/AudioScheduledSourceNode.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 -6
- 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/events/types.d.ts +6 -4
- package/lib/typescript/events/types.d.ts.map +1 -1
- package/lib/typescript/interfaces.d.ts +17 -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/specs/NativeAudioAPIModule.d.ts +2 -1
- package/lib/typescript/specs/NativeAudioAPIModule.d.ts.map +1 -1
- package/lib/typescript/specs/NativeAudioAPIModule.web.d.ts +2 -2
- package/lib/typescript/specs/NativeAudioAPIModule.web.d.ts.map +1 -1
- package/lib/typescript/system/AudioManager.d.ts +2 -2
- package/lib/typescript/system/AudioManager.d.ts.map +1 -1
- package/lib/typescript/system/types.d.ts +2 -1
- package/lib/typescript/system/types.d.ts.map +1 -1
- 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/AudioScheduledSourceNode.d.ts +2 -0
- package/lib/typescript/web-core/AudioScheduledSourceNode.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 +46 -0
- package/src/core/AudioBufferSourceNode.ts +12 -10
- package/src/core/AudioScheduledSourceNode.ts +4 -4
- 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 -13
- 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/events/types.ts +6 -4
- package/src/interfaces.ts +40 -24
- package/src/options-validators.ts +66 -0
- package/src/specs/NativeAudioAPIModule.ts +6 -1
- package/src/specs/NativeAudioAPIModule.web.ts +6 -2
- package/src/system/AudioManager.ts +8 -2
- package/src/system/types.ts +7 -1
- 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/AudioScheduledSourceNode.tsx +6 -1
- 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
|
@@ -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
|
|
@@ -62,8 +62,14 @@ class AudioEventHandlerRegistry : public IAudioEventHandlerRegistry {
|
|
|
62
62
|
"volumeChange",
|
|
63
63
|
};
|
|
64
64
|
|
|
65
|
-
static constexpr std::array<std::string_view,
|
|
66
|
-
|
|
65
|
+
static constexpr std::array<std::string_view, 7> AUDIO_API_EVENT_NAMES = {
|
|
66
|
+
"ended",
|
|
67
|
+
"loopEnded",
|
|
68
|
+
"audioReady",
|
|
69
|
+
"positionChanged",
|
|
70
|
+
"bufferEnded",
|
|
71
|
+
"audioError",
|
|
72
|
+
"systemStateChanged"};
|
|
67
73
|
|
|
68
74
|
jsi::Object createEventObject(const std::unordered_map<std::string, EventValue> &body);
|
|
69
75
|
jsi::Object createEventObject(
|
|
@@ -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
|
}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
#import <React/RCTEventEmitter.h>
|
|
10
10
|
|
|
11
11
|
@class AudioEngine;
|
|
12
|
-
@class
|
|
12
|
+
@class SystemNotificationManager;
|
|
13
13
|
@class AudioSessionManager;
|
|
14
14
|
@class NotificationRegistry;
|
|
15
15
|
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
#endif // RCT_NEW_ARCH_ENABLED
|
|
22
22
|
|
|
23
23
|
@property (nonatomic, strong) AudioEngine *audioEngine;
|
|
24
|
-
@property (nonatomic, strong)
|
|
24
|
+
@property (nonatomic, strong) SystemNotificationManager *notificationManager;
|
|
25
25
|
@property (nonatomic, strong) AudioSessionManager *audioSessionManager;
|
|
26
26
|
@property (nonatomic, strong) NotificationRegistry *notificationRegistry;
|
|
27
27
|
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
#import <audioapi/AudioAPIModuleInstaller.h>
|
|
12
12
|
#import <audioapi/ios/system/AudioEngine.h>
|
|
13
13
|
#import <audioapi/ios/system/AudioSessionManager.h>
|
|
14
|
-
#import <audioapi/ios/system/
|
|
14
|
+
#import <audioapi/ios/system/SystemNotificationManager.h>
|
|
15
15
|
#import <audioapi/ios/system/notification/NotificationRegistry.h>
|
|
16
16
|
|
|
17
17
|
#import <audioapi/events/AudioEventHandlerRegistry.h>
|
|
@@ -66,7 +66,7 @@ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(install)
|
|
|
66
66
|
{
|
|
67
67
|
self.audioSessionManager = [[AudioSessionManager alloc] init];
|
|
68
68
|
self.audioEngine = [[AudioEngine alloc] init];
|
|
69
|
-
self.notificationManager = [[
|
|
69
|
+
self.notificationManager = [[SystemNotificationManager alloc] initWithAudioAPIModule:self];
|
|
70
70
|
self.notificationRegistry = [[NotificationRegistry alloc] initWithAudioAPIModule:self];
|
|
71
71
|
|
|
72
72
|
auto jsiRuntime = reinterpret_cast<facebook::jsi::Runtime *>(self.bridge.runtime);
|
|
@@ -163,7 +163,7 @@ RCT_EXPORT_METHOD(
|
|
|
163
163
|
allowHaptics:allowHaptics];
|
|
164
164
|
}
|
|
165
165
|
|
|
166
|
-
RCT_EXPORT_METHOD(observeAudioInterruptions : (BOOL)enabled)
|
|
166
|
+
RCT_EXPORT_METHOD(observeAudioInterruptions : (NSString *)focusType enabled : (BOOL)enabled)
|
|
167
167
|
{
|
|
168
168
|
[self.notificationManager observeAudioInterruptions:enabled];
|
|
169
169
|
}
|
|
@@ -270,8 +270,10 @@ static AudioEngine *_sharedInstance = nil;
|
|
|
270
270
|
[self.audioEngine stop];
|
|
271
271
|
}
|
|
272
272
|
|
|
273
|
-
self.audioEngine = [[AVAudioEngine alloc] init];
|
|
274
273
|
[self rebuildAudioEngine];
|
|
274
|
+
if (self.state == AudioEngineState::AudioEngineStateRunning) {
|
|
275
|
+
[self startEngine];
|
|
276
|
+
}
|
|
275
277
|
}
|
|
276
278
|
|
|
277
279
|
- (void)logAudioEngineState
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#import <audioapi/ios/AudioAPIModule.h>
|
|
2
2
|
#import <audioapi/ios/system/AudioEngine.h>
|
|
3
3
|
#import <audioapi/ios/system/AudioSessionManager.h>
|
|
4
|
-
#import <audioapi/ios/system/
|
|
4
|
+
#import <audioapi/ios/system/SystemNotificationManager.h>
|
|
5
5
|
|
|
6
|
-
@implementation
|
|
6
|
+
@implementation SystemNotificationManager
|
|
7
7
|
|
|
8
|
-
static NSString *NotificationManagerContext = @"
|
|
8
|
+
static NSString *NotificationManagerContext = @"SystemNotificationManagerContext";
|
|
9
9
|
|
|
10
10
|
- (instancetype)initWithAudioAPIModule:(AudioAPIModule *)audioAPIModule
|
|
11
11
|
{
|
|
@@ -216,8 +216,13 @@ static NSString *NotificationManagerContext = @"NotificationManagerContext";
|
|
|
216
216
|
NSLog(
|
|
217
217
|
@"[NotificationManager] Media services have been reset, tearing down and rebuilding everything.");
|
|
218
218
|
AudioEngine *audioEngine = self.audioAPIModule.audioEngine;
|
|
219
|
+
AudioSessionManager *sessionManager = self.audioAPIModule.audioSessionManager;
|
|
219
220
|
|
|
220
|
-
dispatch_async(dispatch_get_main_queue(), ^{
|
|
221
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
222
|
+
[sessionManager markInactive];
|
|
223
|
+
[sessionManager setActive:YES error:nil];
|
|
224
|
+
[audioEngine restartAudioEngine];
|
|
225
|
+
});
|
|
221
226
|
}
|
|
222
227
|
|
|
223
228
|
- (void)handleEngineConfigurationChange:(NSNotification *)notification
|
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
|
package/lib/commonjs/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["require","_AnalyserNode","_interopRequireDefault","_AudioBuffer","_AudioBufferQueueSourceNode","_AudioBufferSourceNode","_AudioContext","_AudioDecoder","_AudioDestinationNode","_AudioNode","_AudioParam","_AudioRecorder","_AudioScheduledSourceNode","_AudioStretcher","_BaseAudioContext","_BiquadFilterNode","_ConstantSourceNode","_ConvolverNode","_DelayNode","_GainNode","_OfflineAudioContext","_OscillatorNode","_RecorderAdapterNode","_StereoPannerNode","_StreamerNode","_WaveShaperNode","_WorkletNode","_WorkletProcessingNode","_WorkletSourceNode","_useSystemVolume","
|
|
1
|
+
{"version":3,"names":["require","_AnalyserNode","_interopRequireDefault","_AudioBuffer","_AudioBufferQueueSourceNode","_AudioBufferSourceNode","_AudioContext","_AudioDecoder","_AudioDestinationNode","_AudioNode","_AudioParam","_AudioRecorder","_AudioScheduledSourceNode","_AudioStretcher","_BaseAudioContext","_BiquadFilterNode","_ConstantSourceNode","_ConvolverNode","_DelayNode","_GainNode","_OfflineAudioContext","_OscillatorNode","_RecorderAdapterNode","_StereoPannerNode","_StreamerNode","_WaveShaperNode","_WorkletNode","_WorkletProcessingNode","_WorkletSourceNode","_useSystemVolume","_PeriodicWave","_errors","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_types","_types2","_filePresets","_notification","_system","e","__esModule","default"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/api.web.js
CHANGED
|
@@ -21,14 +21,13 @@ var _exportNames = {
|
|
|
21
21
|
StereoPannerNode: true,
|
|
22
22
|
ConstantSourceNode: true,
|
|
23
23
|
ConvolverNode: true,
|
|
24
|
+
PeriodicWave: true,
|
|
24
25
|
WaveShaperNode: true,
|
|
25
26
|
OscillatorType: true,
|
|
26
|
-
BiquadFilterType: true,
|
|
27
27
|
ChannelCountMode: true,
|
|
28
28
|
ChannelInterpretation: true,
|
|
29
29
|
ContextState: true,
|
|
30
30
|
WindowType: true,
|
|
31
|
-
PeriodicWaveConstraints: true,
|
|
32
31
|
IOSCategory: true,
|
|
33
32
|
IOSMode: true,
|
|
34
33
|
IOSOption: true,
|
|
@@ -109,12 +108,6 @@ Object.defineProperty(exports, "BiquadFilterNode", {
|
|
|
109
108
|
return _BiquadFilterNode.default;
|
|
110
109
|
}
|
|
111
110
|
});
|
|
112
|
-
Object.defineProperty(exports, "BiquadFilterType", {
|
|
113
|
-
enumerable: true,
|
|
114
|
-
get: function () {
|
|
115
|
-
return _types.BiquadFilterType;
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
111
|
Object.defineProperty(exports, "ChannelCountMode", {
|
|
119
112
|
enumerable: true,
|
|
120
113
|
get: function () {
|
|
@@ -217,10 +210,10 @@ Object.defineProperty(exports, "OscillatorType", {
|
|
|
217
210
|
return _types.OscillatorType;
|
|
218
211
|
}
|
|
219
212
|
});
|
|
220
|
-
Object.defineProperty(exports, "
|
|
213
|
+
Object.defineProperty(exports, "PeriodicWave", {
|
|
221
214
|
enumerable: true,
|
|
222
215
|
get: function () {
|
|
223
|
-
return
|
|
216
|
+
return _PeriodicWave.default;
|
|
224
217
|
}
|
|
225
218
|
});
|
|
226
219
|
Object.defineProperty(exports, "PermissionStatus", {
|
|
@@ -288,6 +281,7 @@ var _OscillatorNode = _interopRequireDefault(require("./web-core/OscillatorNode"
|
|
|
288
281
|
var _StereoPannerNode = _interopRequireDefault(require("./web-core/StereoPannerNode"));
|
|
289
282
|
var _ConstantSourceNode = _interopRequireDefault(require("./web-core/ConstantSourceNode"));
|
|
290
283
|
var _ConvolverNode = _interopRequireDefault(require("./web-core/ConvolverNode"));
|
|
284
|
+
var _PeriodicWave = _interopRequireDefault(require("./web-core/PeriodicWave"));
|
|
291
285
|
var _WaveShaperNode = _interopRequireDefault(require("./web-core/WaveShaperNode"));
|
|
292
286
|
var _custom = require("./web-core/custom");
|
|
293
287
|
Object.keys(_custom).forEach(function (key) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_AudioBuffer","_interopRequireDefault","require","_AudioBufferSourceNode","_AudioContext","_OfflineAudioContext","_AudioDestinationNode","_AudioNode","_AnalyserNode","_AudioParam","_AudioScheduledSourceNode","_BaseAudioContext","_BiquadFilterNode","_DelayNode","_GainNode","_OscillatorNode","_StereoPannerNode","_ConstantSourceNode","_ConvolverNode","_WaveShaperNode","_custom","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_types","_types2","_webSystem","_types3","_errors","e","__esModule","default"],"sourceRoot":"../../src","sources":["api.web.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_AudioBuffer","_interopRequireDefault","require","_AudioBufferSourceNode","_AudioContext","_OfflineAudioContext","_AudioDestinationNode","_AudioNode","_AnalyserNode","_AudioParam","_AudioScheduledSourceNode","_BaseAudioContext","_BiquadFilterNode","_DelayNode","_GainNode","_OscillatorNode","_StereoPannerNode","_ConstantSourceNode","_ConvolverNode","_PeriodicWave","_WaveShaperNode","_custom","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_types","_types2","_webSystem","_types3","_errors","e","__esModule","default"],"sourceRoot":"../../src","sources":["api.web.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,aAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,oBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,qBAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,UAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,aAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,WAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,yBAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,iBAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,iBAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,UAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,SAAA,GAAAb,sBAAA,CAAAC,OAAA;AACA,IAAAa,eAAA,GAAAd,sBAAA,CAAAC,OAAA;AACA,IAAAc,iBAAA,GAAAf,sBAAA,CAAAC,OAAA;AACA,IAAAe,mBAAA,GAAAhB,sBAAA,CAAAC,OAAA;AACA,IAAAgB,cAAA,GAAAjB,sBAAA,CAAAC,OAAA;AACA,IAAAiB,aAAA,GAAAlB,sBAAA,CAAAC,OAAA;AACA,IAAAkB,eAAA,GAAAnB,sBAAA,CAAAC,OAAA;AAEA,IAAAmB,OAAA,GAAAnB,OAAA;AAAAoB,MAAA,CAAAC,IAAA,CAAAF,OAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,OAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,OAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AAEA,IAAAS,MAAA,GAAAhC,OAAA;AAQA,IAAAiC,OAAA,GAAAjC,OAAA;AAQA,IAAAkC,UAAA,GAAAlC,OAAA;AAMA,IAAAmC,OAAA,GAAAnC,OAAA;AAAAoB,MAAA,CAAAC,IAAA,CAAAc,OAAA,EAAAb,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAY,OAAA,CAAAZ,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAI,OAAA,CAAAZ,GAAA;IAAA;EAAA;AAAA;AAEA,IAAAa,OAAA,GAAApC,OAAA;AAMkB,SAAAD,uBAAAsC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
|
|
@@ -4,11 +4,22 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
+
var _defaults = require("../defaults");
|
|
7
8
|
var _errors = require("../errors");
|
|
8
9
|
var _AudioNode = _interopRequireDefault(require("./AudioNode"));
|
|
10
|
+
var _optionsValidators = require("../options-validators");
|
|
9
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
12
|
class AnalyserNode extends _AudioNode.default {
|
|
11
13
|
static allowedFFTSize = [32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768];
|
|
14
|
+
constructor(context, options) {
|
|
15
|
+
const finalOptions = {
|
|
16
|
+
..._defaults.AnalyserOptions,
|
|
17
|
+
...options
|
|
18
|
+
};
|
|
19
|
+
_optionsValidators.AnalyserOptionsValidator.validate(finalOptions);
|
|
20
|
+
const analyserNode = context.context.createAnalyser(finalOptions);
|
|
21
|
+
super(context, analyserNode);
|
|
22
|
+
}
|
|
12
23
|
get fftSize() {
|
|
13
24
|
return this.node.fftSize;
|
|
14
25
|
}
|