react-native-audio-api 0.11.0-nightly-0a987bc-20251120 → 0.11.0-nightly-6dcac64-20251122

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.
Files changed (70) hide show
  1. package/RNAudioAPI.podspec +7 -5
  2. package/android/build.gradle +8 -2
  3. package/android/src/main/cpp/audioapi/android/core/utils/AudioDecoder.cpp +18 -1
  4. package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.cpp +32 -0
  5. package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.h +1 -0
  6. package/common/cpp/audioapi/HostObjects/effects/IIRFilterNodeHostObject.cpp +33 -0
  7. package/common/cpp/audioapi/HostObjects/effects/IIRFilterNodeHostObject.h +20 -0
  8. package/common/cpp/audioapi/HostObjects/sources/StreamerNodeHostObject.cpp +4 -0
  9. package/common/cpp/audioapi/core/BaseAudioContext.cpp +15 -2
  10. package/common/cpp/audioapi/core/BaseAudioContext.h +4 -0
  11. package/common/cpp/audioapi/core/effects/IIRFilterNode.cpp +166 -0
  12. package/common/cpp/audioapi/core/effects/IIRFilterNode.h +75 -0
  13. package/common/cpp/audioapi/core/sources/StreamerNode.h +5 -5
  14. package/common/cpp/audioapi/core/utils/Constants.h +1 -0
  15. package/common/cpp/audioapi/libs/ffmpeg/FFmpegDecoding.cpp +2 -0
  16. package/common/cpp/test/CMakeLists.txt +1 -0
  17. package/common/cpp/test/src/IIRFilterTest.cpp +153 -0
  18. package/ios/audioapi/ios/core/utils/AudioDecoder.mm +12 -0
  19. package/lib/commonjs/core/BaseAudioContext.js +23 -1
  20. package/lib/commonjs/core/BaseAudioContext.js.map +1 -1
  21. package/lib/commonjs/core/IIRFilterNode.js +19 -0
  22. package/lib/commonjs/core/IIRFilterNode.js.map +1 -0
  23. package/lib/commonjs/plugin/withAudioAPI.js +46 -0
  24. package/lib/commonjs/plugin/withAudioAPI.js.map +1 -1
  25. package/lib/commonjs/web-core/AudioContext.js +4 -0
  26. package/lib/commonjs/web-core/AudioContext.js.map +1 -1
  27. package/lib/commonjs/web-core/IIRFilterNode.js +19 -0
  28. package/lib/commonjs/web-core/IIRFilterNode.js.map +1 -0
  29. package/lib/commonjs/web-core/OfflineAudioContext.js +4 -0
  30. package/lib/commonjs/web-core/OfflineAudioContext.js.map +1 -1
  31. package/lib/module/core/BaseAudioContext.js +24 -2
  32. package/lib/module/core/BaseAudioContext.js.map +1 -1
  33. package/lib/module/core/IIRFilterNode.js +13 -0
  34. package/lib/module/core/IIRFilterNode.js.map +1 -0
  35. package/lib/module/plugin/withAudioAPI.js +47 -1
  36. package/lib/module/plugin/withAudioAPI.js.map +1 -1
  37. package/lib/module/web-core/AudioContext.js +4 -0
  38. package/lib/module/web-core/AudioContext.js.map +1 -1
  39. package/lib/module/web-core/IIRFilterNode.js +13 -0
  40. package/lib/module/web-core/IIRFilterNode.js.map +1 -0
  41. package/lib/module/web-core/OfflineAudioContext.js +4 -0
  42. package/lib/module/web-core/OfflineAudioContext.js.map +1 -1
  43. package/lib/typescript/core/BaseAudioContext.d.ts +3 -1
  44. package/lib/typescript/core/BaseAudioContext.d.ts.map +1 -1
  45. package/lib/typescript/core/IIRFilterNode.d.ts +5 -0
  46. package/lib/typescript/core/IIRFilterNode.d.ts.map +1 -0
  47. package/lib/typescript/interfaces.d.ts +5 -1
  48. package/lib/typescript/interfaces.d.ts.map +1 -1
  49. package/lib/typescript/plugin/withAudioAPI.d.ts +1 -0
  50. package/lib/typescript/plugin/withAudioAPI.d.ts.map +1 -1
  51. package/lib/typescript/types.d.ts +4 -0
  52. package/lib/typescript/types.d.ts.map +1 -1
  53. package/lib/typescript/web-core/AudioContext.d.ts +3 -1
  54. package/lib/typescript/web-core/AudioContext.d.ts.map +1 -1
  55. package/lib/typescript/web-core/BaseAudioContext.d.ts +3 -1
  56. package/lib/typescript/web-core/BaseAudioContext.d.ts.map +1 -1
  57. package/lib/typescript/web-core/IIRFilterNode.d.ts +5 -0
  58. package/lib/typescript/web-core/IIRFilterNode.d.ts.map +1 -0
  59. package/lib/typescript/web-core/OfflineAudioContext.d.ts +3 -1
  60. package/lib/typescript/web-core/OfflineAudioContext.d.ts.map +1 -1
  61. package/package.json +1 -1
  62. package/src/core/BaseAudioContext.ts +44 -2
  63. package/src/core/IIRFilterNode.ts +25 -0
  64. package/src/interfaces.ts +13 -1
  65. package/src/plugin/withAudioAPI.ts +61 -0
  66. package/src/types.ts +5 -0
  67. package/src/web-core/AudioContext.tsx +9 -0
  68. package/src/web-core/BaseAudioContext.tsx +7 -1
  69. package/src/web-core/IIRFilterNode.tsx +25 -0
  70. package/src/web-core/OfflineAudioContext.tsx +9 -0
@@ -0,0 +1,153 @@
1
+ #include <audioapi/core/OfflineAudioContext.h>
2
+ #include <audioapi/core/effects/IIRFilterNode.h>
3
+ #include <audioapi/core/utils/worklets/SafeIncludes.h>
4
+ #include <gtest/gtest.h>
5
+ #include <test/src/MockAudioEventHandlerRegistry.h>
6
+ #include <algorithm>
7
+ #include <complex>
8
+ #include <memory>
9
+ #include <numbers>
10
+ #include <vector>
11
+
12
+ using namespace audioapi;
13
+
14
+ class IIRFilterTest : public ::testing::Test {
15
+ protected:
16
+ std::shared_ptr<MockAudioEventHandlerRegistry> eventRegistry;
17
+ std::unique_ptr<OfflineAudioContext> context;
18
+ static constexpr int sampleRate = 44100;
19
+ static constexpr float nyquistFrequency = sampleRate / 2.0f;
20
+ static constexpr float tolerance = 0.0001f;
21
+
22
+ void SetUp() override {
23
+ eventRegistry = std::make_shared<MockAudioEventHandlerRegistry>();
24
+ context = std::make_unique<OfflineAudioContext>(
25
+ 2, 5 * sampleRate, sampleRate, eventRegistry, RuntimeRegistry{});
26
+ }
27
+
28
+ static std::complex<double>
29
+ evaluatePolynomial(std::span<const double> coefficients, std::complex<double> z, int order) {
30
+ // Use Horner's method to evaluate the polynomial P(z) = sum(coef[k]*z^k, k, 0, order);
31
+ std::complex<double> result = 0;
32
+ for (int k = order; k >= 0; --k)
33
+ result = result * z + std::complex<double>(coefficients[k]);
34
+ return result;
35
+ }
36
+
37
+ static void getFrequencyResponseChromium(
38
+ std::vector<float> feedforward,
39
+ std::vector<float> feedback,
40
+ unsigned length,
41
+ std::span<const float> frequency,
42
+ std::span<float> magResponse,
43
+ std::span<float> phaseResponse,
44
+ float nyquistFrequency) {
45
+ assert(!frequency.empty());
46
+ assert(!magResponse.empty());
47
+ assert(!phaseResponse.empty());
48
+
49
+ std::vector<double> m_feedforward(feedforward.begin(), feedforward.end());
50
+ std::vector<double> m_feedback(feedback.begin(), feedback.end());
51
+
52
+ std::vector<float> normalizedFreq(frequency.size());
53
+ for (size_t i = 0; i < frequency.size(); ++i) {
54
+ normalizedFreq[i] = frequency[i] / nyquistFrequency;
55
+ }
56
+
57
+ // Evaluate the z-transform of the filter at the given normalized frequencies
58
+ // from 0 to 1. (One corresponds to the Nyquist frequency.)
59
+ //
60
+ // The z-tranform of the filter is
61
+ //
62
+ // H(z) = sum(b[k]*z^(-k), k, 0, M) / sum(a[k]*z^(-k), k, 0, N);
63
+ //
64
+ // The desired frequency response is H(exp(j*omega)), where omega is in [0,
65
+ // 1).
66
+ //
67
+ // Let P(x) = sum(c[k]*x^k, k, 0, P) be a polynomial of order P. Then each of
68
+ // the sums in H(z) is equivalent to evaluating a polynomial at the point
69
+ // 1/z.
70
+
71
+ for (unsigned k = 0; k < length; ++k) {
72
+ if (normalizedFreq[k] < 0 || normalizedFreq[k] > 1) {
73
+ // Out-of-bounds frequencies should return NaN.
74
+ magResponse[k] = std::nanf("");
75
+ phaseResponse[k] = std::nanf("");
76
+ } else {
77
+ // zRecip = 1/z = exp(-j*frequency)
78
+ double omega = -std::numbers::pi * normalizedFreq[k];
79
+ auto zRecip = std::complex<double>(cos(omega), sin(omega));
80
+
81
+ auto numerator = evaluatePolynomial(m_feedforward, zRecip, m_feedforward.size() - 1);
82
+ auto denominator = evaluatePolynomial(m_feedback, zRecip, m_feedback.size() - 1);
83
+ auto response = numerator / denominator;
84
+ magResponse[k] = static_cast<float>(std::abs(response));
85
+ phaseResponse[k] = static_cast<float>(atan2(imag(response), real(response)));
86
+ }
87
+ }
88
+ }
89
+ };
90
+
91
+ TEST_F(IIRFilterTest, IIRFilterCanBeCreated) {
92
+ const std::vector<float> feedforward = {1.0};
93
+ const std::vector<float> feedback = {1.0};
94
+ auto node = context->createIIRFilter(feedforward, feedback);
95
+ ASSERT_NE(node, nullptr);
96
+ }
97
+
98
+ TEST_F(IIRFilterTest, GetFrequencyResponse) {
99
+ const std::vector<float> feedforward = {0.0050662636, 0.0101325272, 0.0050662636};
100
+ const std::vector<float> feedback = {1.0632762845, -1.9797349456, 0.9367237155};
101
+
102
+ auto node = std::make_shared<IIRFilterNode>(context.get(), feedforward, feedback);
103
+
104
+ float frequency = 1000.0f;
105
+ float normalizedFrequency = frequency / nyquistFrequency;
106
+
107
+ std::vector<float> TestFrequencies = {
108
+ -0.0001f,
109
+ 0.0f,
110
+ 0.0001f,
111
+ 0.25f * nyquistFrequency,
112
+ 0.5f * nyquistFrequency,
113
+ 0.75f * nyquistFrequency,
114
+ nyquistFrequency - 0.0001f,
115
+ nyquistFrequency,
116
+ nyquistFrequency + 0.0001f};
117
+
118
+ std::vector<float> magResponseNode(TestFrequencies.size());
119
+ std::vector<float> phaseResponseNode(TestFrequencies.size());
120
+ std::vector<float> magResponseExpected(TestFrequencies.size());
121
+ std::vector<float> phaseResponseExpected(TestFrequencies.size());
122
+
123
+ node->getFrequencyResponse(
124
+ TestFrequencies.data(),
125
+ magResponseNode.data(),
126
+ phaseResponseNode.data(),
127
+ TestFrequencies.size());
128
+ getFrequencyResponseChromium(
129
+ feedforward,
130
+ feedback,
131
+ TestFrequencies.size(),
132
+ TestFrequencies,
133
+ magResponseExpected,
134
+ phaseResponseExpected,
135
+ nyquistFrequency);
136
+
137
+ for (size_t i = 0; i < TestFrequencies.size(); ++i) {
138
+ float f = TestFrequencies[i];
139
+ if (std::isnan(magResponseExpected[i])) {
140
+ EXPECT_TRUE(std::isnan(magResponseNode[i])) << "Expected NaN at frequency " << f;
141
+ } else {
142
+ EXPECT_NEAR(magResponseNode[i], magResponseExpected[i], tolerance)
143
+ << "Magnitude mismatch at " << f << " Hz";
144
+ }
145
+
146
+ if (std::isnan(phaseResponseExpected[i])) {
147
+ EXPECT_TRUE(std::isnan(phaseResponseNode[i])) << "Expected NaN at frequency " << f;
148
+ } else {
149
+ EXPECT_NEAR(phaseResponseNode[i], phaseResponseExpected[i], tolerance)
150
+ << "Phase mismatch at " << f << " Hz";
151
+ }
152
+ }
153
+ }
@@ -9,7 +9,9 @@
9
9
  #include <audioapi/dsp/VectorMath.h>
10
10
  #include <audioapi/libs/audio-stretch/stretch.h>
11
11
  #include <audioapi/libs/base64/base64.h>
12
+ #if !RN_AUDIO_API_FFMPEG_DISABLED
12
13
  #include <audioapi/libs/ffmpeg/FFmpegDecoding.h>
14
+ #endif // RN_AUDIO_API_FFMPEG_DISABLED
13
15
  #include <audioapi/utils/AudioArray.h>
14
16
  #include <audioapi/utils/AudioBus.h>
15
17
 
@@ -67,12 +69,17 @@ std::shared_ptr<AudioBuffer> AudioDecoder::decodeWithFilePath(
67
69
  float sampleRate)
68
70
  {
69
71
  if (AudioDecoder::pathHasExtension(path, {".mp4", ".m4a", ".aac"})) {
72
+ #if !RN_AUDIO_API_FFMPEG_DISABLED
70
73
  auto buffer = ffmpegdecoder::decodeWithFilePath(path, static_cast<int>(sampleRate));
71
74
  if (buffer == nullptr) {
72
75
  NSLog(@"Failed to decode with FFmpeg: %s", path.c_str());
73
76
  return nullptr;
74
77
  }
75
78
  return buffer;
79
+ #else
80
+ NSLog(@"FFmpeg is disabled, cannot decode file: %s", path.c_str());
81
+ return nullptr;
82
+ #endif // RN_AUDIO_API_FFMPEG_DISABLED
76
83
  }
77
84
  ma_decoder decoder;
78
85
  ma_decoder_config config = ma_decoder_config_init(ma_format_f32, 0, static_cast<int>(sampleRate));
@@ -101,12 +108,17 @@ AudioDecoder::decodeWithMemoryBlock(const void *data, size_t size, float sampleR
101
108
  {
102
109
  const AudioFormat format = AudioDecoder::detectAudioFormat(data, size);
103
110
  if (format == AudioFormat::MP4 || format == AudioFormat::M4A || format == AudioFormat::AAC) {
111
+ #if !RN_AUDIO_API_FFMPEG_DISABLED
104
112
  auto buffer = ffmpegdecoder::decodeWithMemoryBlock(data, size, static_cast<int>(sampleRate));
105
113
  if (buffer == nullptr) {
106
114
  NSLog(@"Failed to decode with FFmpeg");
107
115
  return nullptr;
108
116
  }
109
117
  return buffer;
118
+ #else
119
+ NSLog(@"FFmpeg is disabled, cannot decode memory block");
120
+ return nullptr;
121
+ #endif // RN_AUDIO_API_FFMPEG_DISABLED
110
122
  }
111
123
  ma_decoder decoder;
112
124
  ma_decoder_config config = ma_decoder_config_init(ma_format_f32, 0, static_cast<int>(sampleRate));
@@ -23,6 +23,7 @@ var _RecorderAdapterNode = _interopRequireDefault(require("./RecorderAdapterNode
23
23
  var _StereoPannerNode = _interopRequireDefault(require("./StereoPannerNode"));
24
24
  var _StreamerNode = _interopRequireDefault(require("./StreamerNode"));
25
25
  var _WorkletNode = _interopRequireDefault(require("./WorkletNode"));
26
+ var _IIRFilterNode = _interopRequireDefault(require("./IIRFilterNode"));
26
27
  var _AudioDecoder = require("./AudioDecoder");
27
28
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
28
29
  class BaseAudioContext {
@@ -90,7 +91,11 @@ class BaseAudioContext {
90
91
  return new _OscillatorNode.default(this, this.context.createOscillator());
91
92
  }
92
93
  createStreamer() {
93
- return new _StreamerNode.default(this, this.context.createStreamer());
94
+ const streamer = this.context.createStreamer();
95
+ if (!streamer) {
96
+ throw new _errors.NotSupportedError('StreamerNode requires FFmpeg build');
97
+ }
98
+ return new _StreamerNode.default(this, streamer);
94
99
  }
95
100
  createConstantSource() {
96
101
  return new _ConstantSourceNode.default(this, this.context.createConstantSource());
@@ -104,6 +109,23 @@ class BaseAudioContext {
104
109
  createBiquadFilter() {
105
110
  return new _BiquadFilterNode.default(this, this.context.createBiquadFilter());
106
111
  }
112
+ createIIRFilter(options) {
113
+ const feedforward = options.feedforward;
114
+ const feedback = options.feedback;
115
+ if (feedforward.length < 1 || feedforward.length > 20) {
116
+ throw new _errors.NotSupportedError(`The provided feedforward array has length (${feedforward.length}) outside the range [1, 20]`);
117
+ }
118
+ if (feedback.length < 1 || feedback.length > 20) {
119
+ throw new _errors.NotSupportedError(`The provided feedback array has length (${feedback.length}) outside the range [1, 20]`);
120
+ }
121
+ if (feedforward.every(value => value === 0)) {
122
+ throw new _errors.InvalidStateError(`Feedforward array must contain at least one non-zero value`);
123
+ }
124
+ if (feedback[0] === 0) {
125
+ throw new _errors.InvalidStateError(`First value of feedback array cannot be zero`);
126
+ }
127
+ return new _IIRFilterNode.default(this, this.context.createIIRFilter(feedforward, feedback));
128
+ }
107
129
  createBufferSource(options) {
108
130
  const pitchCorrection = options?.pitchCorrection ?? false;
109
131
  return new _AudioBufferSourceNode.default(this, this.context.createBufferSource(pitchCorrection));
@@ -1 +1 @@
1
- {"version":3,"names":["_errors","require","_utils","_WorkletSourceNode","_interopRequireDefault","_WorkletProcessingNode","_AnalyserNode","_AudioBuffer","_AudioBufferQueueSourceNode","_ConvolverNode","_AudioBufferSourceNode","_AudioDestinationNode","_BiquadFilterNode","_ConstantSourceNode","_GainNode","_OscillatorNode","_PeriodicWave","_RecorderAdapterNode","_StereoPannerNode","_StreamerNode","_WorkletNode","_AudioDecoder","e","__esModule","default","BaseAudioContext","constructor","context","destination","AudioDestinationNode","sampleRate","currentTime","state","decodeAudioData","input","ArrayBuffer","TypeError","decodePCMInBase64","base64String","inputSampleRate","inputChannelCount","isInterleaved","createWorkletNode","callback","bufferLength","workletRuntime","NotSupportedError","assertWorkletsEnabled","shareableWorklet","workletsModule","makeShareableCloneRecursive","audioBuffers","channelCount","floatAudioData","map","buffer","Float32Array","WorkletNode","createWorkletProcessingNode","inputBuffers","outputBuffers","framesToProcess","inputData","outputData","WorkletProcessingNode","createWorkletSourceNode","startOffset","WorkletSourceNode","createRecorderAdapter","RecorderAdapterNode","createOscillator","OscillatorNode","createStreamer","StreamerNode","createConstantSource","ConstantSourceNode","createGain","GainNode","createStereoPanner","StereoPannerNode","createBiquadFilter","BiquadFilterNode","createBufferSource","options","pitchCorrection","AudioBufferSourceNode","createBufferQueueSource","AudioBufferQueueSourceNode","createBuffer","numOfChannels","length","AudioBuffer","createPeriodicWave","real","imag","constraints","InvalidAccessError","disableNormalization","PeriodicWave","createAnalyser","AnalyserNode","createConvolver","numberOfChannels","ConvolverNode","exports"],"sourceRoot":"../../../src","sources":["core/BaseAudioContext.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_errors","require","_utils","_WorkletSourceNode","_interopRequireDefault","_WorkletProcessingNode","_AnalyserNode","_AudioBuffer","_AudioBufferQueueSourceNode","_ConvolverNode","_AudioBufferSourceNode","_AudioDestinationNode","_BiquadFilterNode","_ConstantSourceNode","_GainNode","_OscillatorNode","_PeriodicWave","_RecorderAdapterNode","_StereoPannerNode","_StreamerNode","_WorkletNode","_IIRFilterNode","_AudioDecoder","e","__esModule","default","BaseAudioContext","constructor","context","destination","AudioDestinationNode","sampleRate","currentTime","state","decodeAudioData","input","ArrayBuffer","TypeError","decodePCMInBase64","base64String","inputSampleRate","inputChannelCount","isInterleaved","createWorkletNode","callback","bufferLength","workletRuntime","NotSupportedError","assertWorkletsEnabled","shareableWorklet","workletsModule","makeShareableCloneRecursive","audioBuffers","channelCount","floatAudioData","map","buffer","Float32Array","WorkletNode","createWorkletProcessingNode","inputBuffers","outputBuffers","framesToProcess","inputData","outputData","WorkletProcessingNode","createWorkletSourceNode","startOffset","WorkletSourceNode","createRecorderAdapter","RecorderAdapterNode","createOscillator","OscillatorNode","createStreamer","streamer","StreamerNode","createConstantSource","ConstantSourceNode","createGain","GainNode","createStereoPanner","StereoPannerNode","createBiquadFilter","BiquadFilterNode","createIIRFilter","options","feedforward","feedback","length","every","value","InvalidStateError","IIRFilterNode","createBufferSource","pitchCorrection","AudioBufferSourceNode","createBufferQueueSource","AudioBufferQueueSourceNode","createBuffer","numOfChannels","AudioBuffer","createPeriodicWave","real","imag","constraints","InvalidAccessError","disableNormalization","PeriodicWave","createAnalyser","AnalyserNode","createConvolver","numberOfChannels","ConvolverNode","exports"],"sourceRoot":"../../../src","sources":["core/BaseAudioContext.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAcA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,sBAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,aAAA,GAAAF,sBAAA,CAAAH,OAAA;AACA,IAAAM,YAAA,GAAAH,sBAAA,CAAAH,OAAA;AACA,IAAAO,2BAAA,GAAAJ,sBAAA,CAAAH,OAAA;AACA,IAAAQ,cAAA,GAAAL,sBAAA,CAAAH,OAAA;AACA,IAAAS,sBAAA,GAAAN,sBAAA,CAAAH,OAAA;AACA,IAAAU,qBAAA,GAAAP,sBAAA,CAAAH,OAAA;AACA,IAAAW,iBAAA,GAAAR,sBAAA,CAAAH,OAAA;AACA,IAAAY,mBAAA,GAAAT,sBAAA,CAAAH,OAAA;AACA,IAAAa,SAAA,GAAAV,sBAAA,CAAAH,OAAA;AACA,IAAAc,eAAA,GAAAX,sBAAA,CAAAH,OAAA;AACA,IAAAe,aAAA,GAAAZ,sBAAA,CAAAH,OAAA;AACA,IAAAgB,oBAAA,GAAAb,sBAAA,CAAAH,OAAA;AACA,IAAAiB,iBAAA,GAAAd,sBAAA,CAAAH,OAAA;AACA,IAAAkB,aAAA,GAAAf,sBAAA,CAAAH,OAAA;AACA,IAAAmB,YAAA,GAAAhB,sBAAA,CAAAH,OAAA;AACA,IAAAoB,cAAA,GAAAjB,sBAAA,CAAAH,OAAA;AACA,IAAAqB,aAAA,GAAArB,OAAA;AAAoE,SAAAG,uBAAAmB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAErD,MAAMG,gBAAgB,CAAC;EAKpCC,WAAWA,CAACC,OAA0B,EAAE;IACtC,IAAI,CAACA,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,WAAW,GAAG,IAAIC,6BAAoB,CAAC,IAAI,EAAEF,OAAO,CAACC,WAAW,CAAC;IACtE,IAAI,CAACE,UAAU,GAAGH,OAAO,CAACG,UAAU;EACtC;EAEA,IAAWC,WAAWA,CAAA,EAAW;IAC/B,OAAO,IAAI,CAACJ,OAAO,CAACI,WAAW;EACjC;EAEA,IAAWC,KAAKA,CAAA,EAAiB;IAC/B,OAAO,IAAI,CAACL,OAAO,CAACK,KAAK;EAC3B;EAEA,MAAaC,eAAeA,CAC1BC,KAA2B,EAC3BJ,UAAmB,EACG;IACtB,IAAI,EAAE,OAAOI,KAAK,KAAK,QAAQ,IAAIA,KAAK,YAAYC,WAAW,CAAC,EAAE;MAChE,MAAM,IAAIC,SAAS,CAAC,uCAAuC,CAAC;IAC9D;IACA,OAAO,MAAM,IAAAH,6BAAe,EAACC,KAAK,EAAEJ,UAAU,IAAI,IAAI,CAACA,UAAU,CAAC;EACpE;EAEA,MAAaO,iBAAiBA,CAC5BC,YAAoB,EACpBC,eAAuB,EACvBC,iBAAyB,EACzBC,aAAsB,GAAG,IAAI,EACP;IACtB,OAAO,MAAM,IAAAJ,+BAAiB,EAC5BC,YAAY,EACZC,eAAe,EACfC,iBAAiB,EACjBC,aACF,CAAC;EACH;EAEAC,iBAAiBA,CACfC,QAAwE,EACxEC,YAAoB,EACpBJ,iBAAyB,EACzBK,cAAmC,GAAG,cAAc,EACvC;IACb,IAAIL,iBAAiB,GAAG,CAAC,IAAIA,iBAAiB,GAAG,EAAE,EAAE;MACnD,MAAM,IAAIM,yBAAiB,CACzB,0CAA0CN,iBAAiB,6CAC7D,CAAC;IACH;IACA,IAAII,YAAY,GAAG,CAAC,EAAE;MACpB,MAAM,IAAIE,yBAAiB,CACzB,+BAA+BF,YAAY,0BAC7C,CAAC;IACH;IACA,IAAAG,4BAAqB,EAAC,CAAC;IACvB,MAAMC,gBAAgB,GAAGC,qBAAc,CAACC,2BAA2B,CACjE,CAACC,YAAgC,EAAEC,YAAoB,KAAK;MAC1D,SAAS;;MACT,MAAMC,cAAmC,GAAGF,YAAY,CAACG,GAAG,CACzDC,MAAM,IAAK,IAAIC,YAAY,CAACD,MAAM,CACrC,CAAC;MACDZ,QAAQ,CAACU,cAAc,EAAED,YAAY,CAAC;IACxC,CACF,CAAC;IACD,OAAO,IAAIK,oBAAW,CACpB,IAAI,EACJ,IAAI,CAAC9B,OAAO,CAACe,iBAAiB,CAC5BM,gBAAgB,EAChBH,cAAc,KAAK,WAAW,EAC9BD,YAAY,EACZJ,iBACF,CACF,CAAC;EACH;EAEAkB,2BAA2BA,CACzBf,QAKS,EACTE,cAAmC,GAAG,cAAc,EAC7B;IACvB,IAAAE,4BAAqB,EAAC,CAAC;IACvB,MAAMC,gBAAgB,GAAGC,qBAAc,CAACC,2BAA2B,CACjE,CACES,YAAgC,EAChCC,aAAiC,EACjCC,eAAuB,EACvB9B,WAAmB,KAChB;MACH,SAAS;;MACT,MAAM+B,SAA8B,GAAGH,YAAY,CAACL,GAAG,CACpDC,MAAM,IAAK,IAAIC,YAAY,CAACD,MAAM,EAAE,CAAC,EAAEM,eAAe,CACzD,CAAC;MACD,MAAME,UAA+B,GAAGH,aAAa,CAACN,GAAG,CACtDC,MAAM,IAAK,IAAIC,YAAY,CAACD,MAAM,EAAE,CAAC,EAAEM,eAAe,CACzD,CAAC;MACDlB,QAAQ,CAACmB,SAAS,EAAEC,UAAU,EAAEF,eAAe,EAAE9B,WAAW,CAAC;IAC/D,CACF,CAAC;IACD,OAAO,IAAIiC,8BAAqB,CAC9B,IAAI,EACJ,IAAI,CAACrC,OAAO,CAAC+B,2BAA2B,CACtCV,gBAAgB,EAChBH,cAAc,KAAK,WACrB,CACF,CAAC;EACH;EAEAoB,uBAAuBA,CACrBtB,QAKS,EACTE,cAAmC,GAAG,cAAc,EACjC;IACnB,IAAAE,4BAAqB,EAAC,CAAC;IACvB,MAAMC,gBAAgB,GAAGC,qBAAc,CAACC,2BAA2B,CACjE,CACEC,YAAgC,EAChCU,eAAuB,EACvB9B,WAAmB,EACnBmC,WAAmB,KAChB;MACH,SAAS;;MACT,MAAMb,cAAmC,GAAGF,YAAY,CAACG,GAAG,CACzDC,MAAM,IAAK,IAAIC,YAAY,CAACD,MAAM,CACrC,CAAC;MACDZ,QAAQ,CAACU,cAAc,EAAEQ,eAAe,EAAE9B,WAAW,EAAEmC,WAAW,CAAC;IACrE,CACF,CAAC;IACD,OAAO,IAAIC,0BAAiB,CAC1B,IAAI,EACJ,IAAI,CAACxC,OAAO,CAACsC,uBAAuB,CAClCjB,gBAAgB,EAChBH,cAAc,KAAK,WACrB,CACF,CAAC;EACH;EAEAuB,qBAAqBA,CAAA,EAAwB;IAC3C,OAAO,IAAIC,4BAAmB,CAAC,IAAI,EAAE,IAAI,CAAC1C,OAAO,CAACyC,qBAAqB,CAAC,CAAC,CAAC;EAC5E;EAEAE,gBAAgBA,CAAA,EAAmB;IACjC,OAAO,IAAIC,uBAAc,CAAC,IAAI,EAAE,IAAI,CAAC5C,OAAO,CAAC2C,gBAAgB,CAAC,CAAC,CAAC;EAClE;EAEAE,cAAcA,CAAA,EAAiB;IAC7B,MAAMC,QAAQ,GAAG,IAAI,CAAC9C,OAAO,CAAC6C,cAAc,CAAC,CAAC;IAC9C,IAAI,CAACC,QAAQ,EAAE;MACb,MAAM,IAAI3B,yBAAiB,CAAC,oCAAoC,CAAC;IACnE;IACA,OAAO,IAAI4B,qBAAY,CAAC,IAAI,EAAED,QAAQ,CAAC;EACzC;EAEAE,oBAAoBA,CAAA,EAAuB;IACzC,OAAO,IAAIC,2BAAkB,CAAC,IAAI,EAAE,IAAI,CAACjD,OAAO,CAACgD,oBAAoB,CAAC,CAAC,CAAC;EAC1E;EAEAE,UAAUA,CAAA,EAAa;IACrB,OAAO,IAAIC,iBAAQ,CAAC,IAAI,EAAE,IAAI,CAACnD,OAAO,CAACkD,UAAU,CAAC,CAAC,CAAC;EACtD;EAEAE,kBAAkBA,CAAA,EAAqB;IACrC,OAAO,IAAIC,yBAAgB,CAAC,IAAI,EAAE,IAAI,CAACrD,OAAO,CAACoD,kBAAkB,CAAC,CAAC,CAAC;EACtE;EAEAE,kBAAkBA,CAAA,EAAqB;IACrC,OAAO,IAAIC,yBAAgB,CAAC,IAAI,EAAE,IAAI,CAACvD,OAAO,CAACsD,kBAAkB,CAAC,CAAC,CAAC;EACtE;EAEAE,eAAeA,CAACC,OAA6B,EAAiB;IAC5D,MAAMC,WAAW,GAAGD,OAAO,CAACC,WAAW;IACvC,MAAMC,QAAQ,GAAGF,OAAO,CAACE,QAAQ;IACjC,IAAID,WAAW,CAACE,MAAM,GAAG,CAAC,IAAIF,WAAW,CAACE,MAAM,GAAG,EAAE,EAAE;MACrD,MAAM,IAAIzC,yBAAiB,CACzB,8CAA8CuC,WAAW,CAACE,MAAM,6BAClE,CAAC;IACH;IACA,IAAID,QAAQ,CAACC,MAAM,GAAG,CAAC,IAAID,QAAQ,CAACC,MAAM,GAAG,EAAE,EAAE;MAC/C,MAAM,IAAIzC,yBAAiB,CACzB,2CAA2CwC,QAAQ,CAACC,MAAM,6BAC5D,CAAC;IACH;IAEA,IAAIF,WAAW,CAACG,KAAK,CAAEC,KAAK,IAAKA,KAAK,KAAK,CAAC,CAAC,EAAE;MAC7C,MAAM,IAAIC,yBAAiB,CACzB,4DACF,CAAC;IACH;IAEA,IAAIJ,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;MACrB,MAAM,IAAII,yBAAiB,CACzB,8CACF,CAAC;IACH;IAEA,OAAO,IAAIC,sBAAa,CACtB,IAAI,EACJ,IAAI,CAAChE,OAAO,CAACwD,eAAe,CAACE,WAAW,EAAEC,QAAQ,CACpD,CAAC;EACH;EAEAM,kBAAkBA,CAChBR,OAA0C,EACnB;IACvB,MAAMS,eAAe,GAAGT,OAAO,EAAES,eAAe,IAAI,KAAK;IAEzD,OAAO,IAAIC,8BAAqB,CAC9B,IAAI,EACJ,IAAI,CAACnE,OAAO,CAACiE,kBAAkB,CAACC,eAAe,CACjD,CAAC;EACH;EAEAE,uBAAuBA,CACrBX,OAA0C,EACd;IAC5B,MAAMS,eAAe,GAAGT,OAAO,EAAES,eAAe,IAAI,KAAK;IAEzD,OAAO,IAAIG,mCAA0B,CACnC,IAAI,EACJ,IAAI,CAACrE,OAAO,CAACoE,uBAAuB,CAACF,eAAe,CACtD,CAAC;EACH;EAEAI,YAAYA,CACVC,aAAqB,EACrBX,MAAc,EACdzD,UAAkB,EACL;IACb,IAAIoE,aAAa,GAAG,CAAC,IAAIA,aAAa,IAAI,EAAE,EAAE;MAC5C,MAAM,IAAIpD,yBAAiB,CACzB,oCAAoCoD,aAAa,gCACnD,CAAC;IACH;IAEA,IAAIX,MAAM,IAAI,CAAC,EAAE;MACf,MAAM,IAAIzC,yBAAiB,CACzB,kCAAkCyC,MAAM,kDAC1C,CAAC;IACH;IAEA,IAAIzD,UAAU,GAAG,IAAI,IAAIA,UAAU,GAAG,KAAK,EAAE;MAC3C,MAAM,IAAIgB,yBAAiB,CACzB,6BAA6BhB,UAAU,sCACzC,CAAC;IACH;IAEA,OAAO,IAAIqE,oBAAW,CACpB,IAAI,CAACxE,OAAO,CAACsE,YAAY,CAACC,aAAa,EAAEX,MAAM,EAAEzD,UAAU,CAC7D,CAAC;EACH;EAEAsE,kBAAkBA,CAChBC,IAAkB,EAClBC,IAAkB,EAClBC,WAAqC,EACvB;IACd,IAAIF,IAAI,CAACd,MAAM,KAAKe,IAAI,CAACf,MAAM,EAAE;MAC/B,MAAM,IAAIiB,0BAAkB,CAC1B,4BAA4BH,IAAI,CAACd,MAAM,oBAAoBe,IAAI,CAACf,MAAM,sBACxE,CAAC;IACH;IAEA,MAAMkB,oBAAoB,GAAGF,WAAW,EAAEE,oBAAoB,IAAI,KAAK;IAEvE,OAAO,IAAIC,qBAAY,CACrB,IAAI,CAAC/E,OAAO,CAACyE,kBAAkB,CAACC,IAAI,EAAEC,IAAI,EAAEG,oBAAoB,CAClE,CAAC;EACH;EAEAE,cAAcA,CAAA,EAAiB;IAC7B,OAAO,IAAIC,qBAAY,CAAC,IAAI,EAAE,IAAI,CAACjF,OAAO,CAACgF,cAAc,CAAC,CAAC,CAAC;EAC9D;EAEAE,eAAeA,CAACzB,OAA8B,EAAiB;IAC7D,IAAIA,OAAO,EAAE7B,MAAM,EAAE;MACnB,MAAMuD,gBAAgB,GAAG1B,OAAO,CAAC7B,MAAM,CAACuD,gBAAgB;MACxD,IACEA,gBAAgB,KAAK,CAAC,IACtBA,gBAAgB,KAAK,CAAC,IACtBA,gBAAgB,KAAK,CAAC,EACtB;QACA,MAAM,IAAIhE,yBAAiB,CACzB,oCAAoCgE,gBAAgB,qEACtD,CAAC;MACH;IACF;IACA,MAAMvD,MAAM,GAAG6B,OAAO,EAAE7B,MAAM,IAAI,IAAI;IACtC,MAAMkD,oBAAoB,GAAGrB,OAAO,EAAEqB,oBAAoB,IAAI,KAAK;IACnE,OAAO,IAAIM,sBAAa,CACtB,IAAI,EACJ,IAAI,CAACpF,OAAO,CAACkF,eAAe,CAACtD,MAAM,EAAEA,MAAM,EAAEkD,oBAAoB,CACnE,CAAC;EACH;AACF;AAACO,OAAA,CAAAxF,OAAA,GAAAC,gBAAA","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _errors = require("../errors");
8
+ var _AudioNode = _interopRequireDefault(require("./AudioNode"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ class IIRFilterNode extends _AudioNode.default {
11
+ getFrequencyResponse(frequencyArray, magResponseOutput, phaseResponseOutput) {
12
+ if (frequencyArray.length !== magResponseOutput.length || frequencyArray.length !== phaseResponseOutput.length) {
13
+ throw new _errors.NotSupportedError(`The lengths of the arrays are not the same frequencyArray: ${frequencyArray.length}, magResponseOutput: ${magResponseOutput.length}, phaseResponseOutput: ${phaseResponseOutput.length}`);
14
+ }
15
+ this.node.getFrequencyResponse(frequencyArray, magResponseOutput, phaseResponseOutput);
16
+ }
17
+ }
18
+ exports.default = IIRFilterNode;
19
+ //# sourceMappingURL=IIRFilterNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_errors","require","_AudioNode","_interopRequireDefault","e","__esModule","default","IIRFilterNode","AudioNode","getFrequencyResponse","frequencyArray","magResponseOutput","phaseResponseOutput","length","NotSupportedError","node","exports"],"sourceRoot":"../../../src","sources":["core/IIRFilterNode.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAoC,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAErB,MAAMG,aAAa,SAASC,kBAAS,CAAC;EAC5CC,oBAAoBA,CACzBC,cAA4B,EAC5BC,iBAA+B,EAC/BC,mBAAiC,EACjC;IACA,IACEF,cAAc,CAACG,MAAM,KAAKF,iBAAiB,CAACE,MAAM,IAClDH,cAAc,CAACG,MAAM,KAAKD,mBAAmB,CAACC,MAAM,EACpD;MACA,MAAM,IAAIC,yBAAiB,CACzB,8DAA8DJ,cAAc,CAACG,MAAM,wBAAwBF,iBAAiB,CAACE,MAAM,0BAA0BD,mBAAmB,CAACC,MAAM,EACzL,CAAC;IACH;IACC,IAAI,CAACE,IAAI,CAAoBN,oBAAoB,CAChDC,cAAc,EACdC,iBAAiB,EACjBC,mBACF,CAAC;EACH;AACF;AAACI,OAAA,CAAAV,OAAA,GAAAC,aAAA","ignoreList":[]}
@@ -12,6 +12,7 @@ const withDefaultOptions = options => {
12
12
  androidPermissions: ['android.permission.FOREGROUND_SERVICE', 'android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK'],
13
13
  androidForegroundService: true,
14
14
  androidFSTypes: ['mediaPlayback'],
15
+ disableFFmpeg: false,
15
16
  ...options
16
17
  };
17
18
  };
@@ -56,6 +57,48 @@ const withForegroundService = (config, {
56
57
  return mod;
57
58
  });
58
59
  };
60
+ const withFFmpegConfig = (config, options) => {
61
+ const iosConf = (0, _configPlugins.withPodfile)(config, mod => {
62
+ let contents = mod.modResults.contents;
63
+ const ffmpegRegex = /^.*ENV\['DISABLE_AUDIOAPI_FFMPEG'\].*$/gm;
64
+ const podfileString = options.disableFFmpeg ? `ENV['DISABLE_AUDIOAPI_FFMPEG'] = '1'` : '';
65
+ // No existing setting
66
+ if (contents.search(ffmpegRegex) === -1) {
67
+ if (options.disableFFmpeg) {
68
+ if (contents.endsWith('\n')) {
69
+ contents = `${contents}${podfileString}`;
70
+ } else {
71
+ contents = `${contents}\n${podfileString}`;
72
+ }
73
+ mod.modResults.contents = contents;
74
+ }
75
+ } else {
76
+ // Existing setting found, will replace
77
+ contents = contents.replace(ffmpegRegex, podfileString);
78
+ }
79
+ mod.modResults.contents = contents;
80
+ return mod;
81
+ });
82
+ const finalConf = (0, _configPlugins.withGradleProperties)(iosConf, mod => {
83
+ const gradleProperties = mod.modResults;
84
+ const existingIndex = gradleProperties.findIndex(prop => prop.type === 'property' && prop.key === 'disableAudioapiFFmpeg');
85
+ if (existingIndex !== -1) {
86
+ gradleProperties.splice(existingIndex, 1);
87
+ } else if (!options.disableFFmpeg) {
88
+ // No existing setting and FFmpeg is enabled, do nothing.
89
+ return mod;
90
+ }
91
+ if (options.disableFFmpeg) {
92
+ gradleProperties.push({
93
+ type: 'property',
94
+ key: 'disableAudioapiFFmpeg',
95
+ value: options.disableFFmpeg ? 'true' : 'false'
96
+ });
97
+ }
98
+ return mod;
99
+ });
100
+ return finalConf;
101
+ };
59
102
  const withAudioAPI = (config, optionsIn) => {
60
103
  const options = withDefaultOptions(optionsIn ?? {});
61
104
  if (options.iosBackgroundMode) {
@@ -68,6 +111,9 @@ const withAudioAPI = (config, optionsIn) => {
68
111
  if (options.iosMicrophonePermission) {
69
112
  config = withIosMicrophonePermission(config, options);
70
113
  }
114
+ if (options.disableFFmpeg !== undefined) {
115
+ config = withFFmpegConfig(config, options);
116
+ }
71
117
  return config;
72
118
  };
73
119
  var _default = exports.default = (0, _configPlugins.createRunOncePlugin)(withAudioAPI, pkg.name, pkg.version);
@@ -1 +1 @@
1
- {"version":3,"names":["_configPlugins","require","pkg","withDefaultOptions","options","iosBackgroundMode","androidPermissions","androidForegroundService","androidFSTypes","withBackgroundAudio","config","withInfoPlist","iosConfig","modResults","UIBackgroundModes","Array","from","Set","withIosMicrophonePermission","iosMicrophonePermission","NSMicrophoneUsageDescription","withAndroidPermissions","AndroidConfig","Permissions","withPermissions","withForegroundService","withAndroidManifest","mod","manifest","mainApplication","Manifest","getMainApplicationOrThrow","SFTypes","join","serviceElement","$","intentFilter","service","push","withAudioAPI","optionsIn","_default","exports","default","createRunOncePlugin","name","version"],"sourceRoot":"../../../src","sources":["plugin/withAudioAPI.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_configPlugins","require","pkg","withDefaultOptions","options","iosBackgroundMode","androidPermissions","androidForegroundService","androidFSTypes","disableFFmpeg","withBackgroundAudio","config","withInfoPlist","iosConfig","modResults","UIBackgroundModes","Array","from","Set","withIosMicrophonePermission","iosMicrophonePermission","NSMicrophoneUsageDescription","withAndroidPermissions","AndroidConfig","Permissions","withPermissions","withForegroundService","withAndroidManifest","mod","manifest","mainApplication","Manifest","getMainApplicationOrThrow","SFTypes","join","serviceElement","$","intentFilter","service","push","withFFmpegConfig","iosConf","withPodfile","contents","ffmpegRegex","podfileString","search","endsWith","replace","finalConf","withGradleProperties","gradleProperties","existingIndex","findIndex","prop","type","key","splice","value","withAudioAPI","optionsIn","undefined","_default","exports","default","createRunOncePlugin","name","version"],"sourceRoot":"../../../src","sources":["plugin/withAudioAPI.ts"],"mappings":"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","ignoreList":[]}
@@ -10,6 +10,7 @@ var _AudioDestinationNode = _interopRequireDefault(require("./AudioDestinationNo
10
10
  var _AudioBuffer = _interopRequireDefault(require("./AudioBuffer"));
11
11
  var _AudioBufferSourceNode = _interopRequireDefault(require("./AudioBufferSourceNode"));
12
12
  var _BiquadFilterNode = _interopRequireDefault(require("./BiquadFilterNode"));
13
+ var _IIRFilterNode = _interopRequireDefault(require("./IIRFilterNode"));
13
14
  var _GainNode = _interopRequireDefault(require("./GainNode"));
14
15
  var _OscillatorNode = _interopRequireDefault(require("./OscillatorNode"));
15
16
  var _PeriodicWave = _interopRequireDefault(require("./PeriodicWave"));
@@ -50,6 +51,9 @@ class AudioContext {
50
51
  createBiquadFilter() {
51
52
  return new _BiquadFilterNode.default(this, this.context.createBiquadFilter());
52
53
  }
54
+ createIIRFilter(options) {
55
+ return new _IIRFilterNode.default(this, this.context.createIIRFilter(options.feedforward, options.feedback));
56
+ }
53
57
  createConvolver(options) {
54
58
  if (options?.buffer) {
55
59
  const numberOfChannels = options.buffer.numberOfChannels;
@@ -1 +1 @@
1
- {"version":3,"names":["_errors","require","_AnalyserNode","_interopRequireDefault","_AudioDestinationNode","_AudioBuffer","_AudioBufferSourceNode","_BiquadFilterNode","_GainNode","_OscillatorNode","_PeriodicWave","_StereoPannerNode","_ConvolverNode","_LoadCustomWasm","_ConstantSourceNode","e","__esModule","default","AudioContext","constructor","options","sampleRate","NotSupportedError","context","window","destination","AudioDestinationNode","currentTime","state","createOscillator","OscillatorNode","createConstantSource","ConstantSourceNode","createGain","GainNode","createStereoPanner","StereoPannerNode","createBiquadFilter","BiquadFilterNode","createConvolver","buffer","numberOfChannels","disableNormalization","ConvolverNode","createBufferSource","pitchCorrection","AudioBufferSourceNode","globalWasmPromise","wasmStretch","globalTag","createBuffer","numOfChannels","length","AudioBuffer","createPeriodicWave","real","imag","constraints","InvalidAccessError","PeriodicWave","createAnalyser","AnalyserNode","decodeAudioDataSource","source","arrayBuffer","fetch","then","response","decodeAudioData","close","resume","suspend","exports"],"sourceRoot":"../../../src","sources":["web-core/AudioContext.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_errors","require","_AnalyserNode","_interopRequireDefault","_AudioDestinationNode","_AudioBuffer","_AudioBufferSourceNode","_BiquadFilterNode","_IIRFilterNode","_GainNode","_OscillatorNode","_PeriodicWave","_StereoPannerNode","_ConvolverNode","_LoadCustomWasm","_ConstantSourceNode","e","__esModule","default","AudioContext","constructor","options","sampleRate","NotSupportedError","context","window","destination","AudioDestinationNode","currentTime","state","createOscillator","OscillatorNode","createConstantSource","ConstantSourceNode","createGain","GainNode","createStereoPanner","StereoPannerNode","createBiquadFilter","BiquadFilterNode","createIIRFilter","IIRFilterNode","feedforward","feedback","createConvolver","buffer","numberOfChannels","disableNormalization","ConvolverNode","createBufferSource","pitchCorrection","AudioBufferSourceNode","globalWasmPromise","wasmStretch","globalTag","createBuffer","numOfChannels","length","AudioBuffer","createPeriodicWave","real","imag","constraints","InvalidAccessError","PeriodicWave","createAnalyser","AnalyserNode","decodeAudioDataSource","source","arrayBuffer","fetch","then","response","decodeAudioData","close","resume","suspend","exports"],"sourceRoot":"../../../src","sources":["web-core/AudioContext.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _errors = require("../errors");
8
+ var _AudioNode = _interopRequireDefault(require("./AudioNode"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ class IIRFilterNode extends _AudioNode.default {
11
+ getFrequencyResponse(frequencyArray, magResponseOutput, phaseResponseOutput) {
12
+ if (frequencyArray.length !== magResponseOutput.length || frequencyArray.length !== phaseResponseOutput.length) {
13
+ throw new _errors.NotSupportedError(`The lengths of the arrays are not the same frequencyArray: ${frequencyArray.length}, magResponseOutput: ${magResponseOutput.length}, phaseResponseOutput: ${phaseResponseOutput.length}`);
14
+ }
15
+ this.node.getFrequencyResponse(frequencyArray, magResponseOutput, phaseResponseOutput);
16
+ }
17
+ }
18
+ exports.default = IIRFilterNode;
19
+ //# sourceMappingURL=IIRFilterNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_errors","require","_AudioNode","_interopRequireDefault","e","__esModule","default","IIRFilterNode","AudioNode","getFrequencyResponse","frequencyArray","magResponseOutput","phaseResponseOutput","length","NotSupportedError","node","exports"],"sourceRoot":"../../../src","sources":["web-core/IIRFilterNode.tsx"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAoC,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAErB,MAAMG,aAAa,SAASC,kBAAS,CAAC;EAC5CC,oBAAoBA,CACzBC,cAA4B,EAC5BC,iBAA+B,EAC/BC,mBAAiC,EACjC;IACA,IACEF,cAAc,CAACG,MAAM,KAAKF,iBAAiB,CAACE,MAAM,IAClDH,cAAc,CAACG,MAAM,KAAKD,mBAAmB,CAACC,MAAM,EACpD;MACA,MAAM,IAAIC,yBAAiB,CACzB,8DAA8DJ,cAAc,CAACG,MAAM,wBAAwBF,iBAAiB,CAACE,MAAM,0BAA0BD,mBAAmB,CAACC,MAAM,EACzL,CAAC;IACH;IAEC,IAAI,CAACE,IAAI,CAA8BN,oBAAoB,CAC1DC,cAAc,EACdC,iBAAiB,EACjBC,mBACF,CAAC;EACH;AACF;AAACI,OAAA,CAAAV,OAAA,GAAAC,aAAA","ignoreList":[]}
@@ -10,6 +10,7 @@ var _AudioDestinationNode = _interopRequireDefault(require("./AudioDestinationNo
10
10
  var _AudioBuffer = _interopRequireDefault(require("./AudioBuffer"));
11
11
  var _AudioBufferSourceNode = _interopRequireDefault(require("./AudioBufferSourceNode"));
12
12
  var _BiquadFilterNode = _interopRequireDefault(require("./BiquadFilterNode"));
13
+ var _IIRFilterNode = _interopRequireDefault(require("./IIRFilterNode"));
13
14
  var _GainNode = _interopRequireDefault(require("./GainNode"));
14
15
  var _OscillatorNode = _interopRequireDefault(require("./OscillatorNode"));
15
16
  var _PeriodicWave = _interopRequireDefault(require("./PeriodicWave"));
@@ -51,6 +52,9 @@ class OfflineAudioContext {
51
52
  createBiquadFilter() {
52
53
  return new _BiquadFilterNode.default(this, this.context.createBiquadFilter());
53
54
  }
55
+ createIIRFilter(options) {
56
+ return new _IIRFilterNode.default(this, this.context.createIIRFilter(options.feedforward, options.feedback));
57
+ }
54
58
  createConvolver(options) {
55
59
  if (options?.buffer) {
56
60
  const numberOfChannels = options.buffer.numberOfChannels;
@@ -1 +1 @@
1
- {"version":3,"names":["_errors","require","_AnalyserNode","_interopRequireDefault","_AudioDestinationNode","_AudioBuffer","_AudioBufferSourceNode","_BiquadFilterNode","_GainNode","_OscillatorNode","_PeriodicWave","_StereoPannerNode","_ConstantSourceNode","_LoadCustomWasm","_ConvolverNode","e","__esModule","default","OfflineAudioContext","constructor","arg0","arg1","arg2","context","window","NotSupportedError","sampleRate","destination","AudioDestinationNode","currentTime","state","createOscillator","OscillatorNode","createConstantSource","ConstantSourceNode","createGain","GainNode","createStereoPanner","StereoPannerNode","createBiquadFilter","BiquadFilterNode","createConvolver","options","buffer","numberOfChannels","disableNormalization","ConvolverNode","createBufferSource","pitchCorrection","AudioBufferSourceNode","globalWasmPromise","wasmStretch","globalTag","createBuffer","numOfChannels","length","AudioBuffer","createPeriodicWave","real","imag","constraints","InvalidAccessError","PeriodicWave","createAnalyser","AnalyserNode","decodeAudioDataSource","source","arrayBuffer","fetch","then","response","decodeAudioData","startRendering","resume","suspend","suspendTime","exports"],"sourceRoot":"../../../src","sources":["web-core/OfflineAudioContext.tsx"],"mappings":";;;;;;AAMA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,YAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,sBAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,iBAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,SAAA,GAAAL,sBAAA,CAAAF,OAAA;AACA,IAAAQ,eAAA,GAAAN,sBAAA,CAAAF,OAAA;AACA,IAAAS,aAAA,GAAAP,sBAAA,CAAAF,OAAA;AACA,IAAAU,iBAAA,GAAAR,sBAAA,CAAAF,OAAA;AACA,IAAAW,mBAAA,GAAAT,sBAAA,CAAAF,OAAA;AAEA,IAAAY,eAAA,GAAAZ,OAAA;AACA,IAAAa,cAAA,GAAAX,sBAAA,CAAAF,OAAA;AAA4C,SAAAE,uBAAAY,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAG7B,MAAMG,mBAAmB,CAA6B;EAQnEC,WAAWA,CACTC,IAAyC,EACzCC,IAAa,EACbC,IAAa,EACb;IACA,IAAI,OAAOF,IAAI,KAAK,QAAQ,EAAE;MAC5B,IAAI,CAACG,OAAO,GAAG,IAAIC,MAAM,CAACN,mBAAmB,CAACE,IAAI,CAAC;IACrD,CAAC,MAAM,IACL,OAAOA,IAAI,KAAK,QAAQ,IACxB,OAAOC,IAAI,KAAK,QAAQ,IACxB,OAAOC,IAAI,KAAK,QAAQ,EACxB;MACA,IAAI,CAACC,OAAO,GAAG,IAAIC,MAAM,CAACN,mBAAmB,CAACE,IAAI,EAAEC,IAAI,EAAEC,IAAI,CAAC;IACjE,CAAC,MAAM;MACL,MAAM,IAAIG,yBAAiB,CAAC,+BAA+B,CAAC;IAC9D;IAEA,IAAI,CAACC,UAAU,GAAG,IAAI,CAACH,OAAO,CAACG,UAAU;IACzC,IAAI,CAACC,WAAW,GAAG,IAAIC,6BAAoB,CAAC,IAAI,EAAE,IAAI,CAACL,OAAO,CAACI,WAAW,CAAC;EAC7E;EAEA,IAAWE,WAAWA,CAAA,EAAW;IAC/B,OAAO,IAAI,CAACN,OAAO,CAACM,WAAW;EACjC;EAEA,IAAWC,KAAKA,CAAA,EAAiB;IAC/B,OAAO,IAAI,CAACP,OAAO,CAACO,KAAK;EAC3B;EAEAC,gBAAgBA,CAAA,EAAmB;IACjC,OAAO,IAAIC,uBAAc,CAAC,IAAI,EAAE,IAAI,CAACT,OAAO,CAACQ,gBAAgB,CAAC,CAAC,CAAC;EAClE;EAEAE,oBAAoBA,CAAA,EAAuB;IACzC,OAAO,IAAIC,2BAAkB,CAAC,IAAI,EAAE,IAAI,CAACX,OAAO,CAACU,oBAAoB,CAAC,CAAC,CAAC;EAC1E;EAEAE,UAAUA,CAAA,EAAa;IACrB,OAAO,IAAIC,iBAAQ,CAAC,IAAI,EAAE,IAAI,CAACb,OAAO,CAACY,UAAU,CAAC,CAAC,CAAC;EACtD;EAEAE,kBAAkBA,CAAA,EAAqB;IACrC,OAAO,IAAIC,yBAAgB,CAAC,IAAI,EAAE,IAAI,CAACf,OAAO,CAACc,kBAAkB,CAAC,CAAC,CAAC;EACtE;EAEAE,kBAAkBA,CAAA,EAAqB;IACrC,OAAO,IAAIC,yBAAgB,CAAC,IAAI,EAAE,IAAI,CAACjB,OAAO,CAACgB,kBAAkB,CAAC,CAAC,CAAC;EACtE;EAEAE,eAAeA,CAACC,OAA8B,EAAiB;IAC7D,IAAIA,OAAO,EAAEC,MAAM,EAAE;MACnB,MAAMC,gBAAgB,GAAGF,OAAO,CAACC,MAAM,CAACC,gBAAgB;MACxD,IACEA,gBAAgB,KAAK,CAAC,IACtBA,gBAAgB,KAAK,CAAC,IACtBA,gBAAgB,KAAK,CAAC,EACtB;QACA,MAAM,IAAInB,yBAAiB,CACzB,oCAAoCmB,gBAAgB,qEACtD,CAAC;MACH;IACF;IACA,MAAMD,MAAM,GAAGD,OAAO,EAAEC,MAAM,IAAI,IAAI;IACtC,MAAME,oBAAoB,GAAGH,OAAO,EAAEG,oBAAoB,IAAI,KAAK;IACnE,OAAO,IAAIC,sBAAa,CACtB,IAAI,EACJ,IAAI,CAACvB,OAAO,CAACkB,eAAe,CAAC,CAAC,EAC9BE,MAAM,EACNE,oBACF,CAAC;EACH;EAEA,MAAME,kBAAkBA,CACtBL,OAA0C,EACV;IAChC,IAAI,CAACA,OAAO,IAAI,CAACA,OAAO,CAACM,eAAe,EAAE;MACxC,OAAO,IAAIC,8BAAqB,CAC9B,IAAI,EACJ,IAAI,CAAC1B,OAAO,CAACwB,kBAAkB,CAAC,CAAC,EACjC,KACF,CAAC;IACH;IAEA,MAAMG,iCAAiB;IAEvB,MAAMC,WAAW,GAAG,MAAM3B,MAAM,CAAC4B,yBAAS,CAAC,CAAC,IAAI,CAAC7B,OAAO,CAAC;IAEzD,OAAO,IAAI0B,8BAAqB,CAAC,IAAI,EAAEE,WAAW,EAAE,IAAI,CAAC;EAC3D;EAEAE,YAAYA,CACVC,aAAqB,EACrBC,MAAc,EACd7B,UAAkB,EACL;IACb,IAAI4B,aAAa,GAAG,CAAC,IAAIA,aAAa,IAAI,EAAE,EAAE;MAC5C,MAAM,IAAI7B,yBAAiB,CACzB,oCAAoC6B,aAAa,gCACnD,CAAC;IACH;IAEA,IAAIC,MAAM,IAAI,CAAC,EAAE;MACf,MAAM,IAAI9B,yBAAiB,CACzB,kCAAkC8B,MAAM,kDAC1C,CAAC;IACH;IAEA,IAAI7B,UAAU,GAAG,IAAI,IAAIA,UAAU,GAAG,KAAK,EAAE;MAC3C,MAAM,IAAID,yBAAiB,CACzB,6BAA6BC,UAAU,sCACzC,CAAC;IACH;IAEA,OAAO,IAAI8B,oBAAW,CACpB,IAAI,CAACjC,OAAO,CAAC8B,YAAY,CAACC,aAAa,EAAEC,MAAM,EAAE7B,UAAU,CAC7D,CAAC;EACH;EAEA+B,kBAAkBA,CAChBC,IAAkB,EAClBC,IAAkB,EAClBC,WAAqC,EACvB;IACd,IAAIF,IAAI,CAACH,MAAM,KAAKI,IAAI,CAACJ,MAAM,EAAE;MAC/B,MAAM,IAAIM,0BAAkB,CAC1B,4BAA4BH,IAAI,CAACH,MAAM,oBAAoBI,IAAI,CAACJ,MAAM,sBACxE,CAAC;IACH;IAEA,OAAO,IAAIO,qBAAY,CACrB,IAAI,CAACvC,OAAO,CAACkC,kBAAkB,CAACC,IAAI,EAAEC,IAAI,EAAEC,WAAW,CACzD,CAAC;EACH;EAEAG,cAAcA,CAAA,EAAiB;IAC7B,OAAO,IAAIC,qBAAY,CAAC,IAAI,EAAE,IAAI,CAACzC,OAAO,CAACwC,cAAc,CAAC,CAAC,CAAC;EAC9D;EAEA,MAAME,qBAAqBA,CAACC,MAAc,EAAwB;IAChE,MAAMC,WAAW,GAAG,MAAMC,KAAK,CAACF,MAAM,CAAC,CAACG,IAAI,CAAEC,QAAQ,IACpDA,QAAQ,CAACH,WAAW,CAAC,CACvB,CAAC;IAED,OAAO,IAAI,CAACI,eAAe,CAACJ,WAAW,CAAC;EAC1C;EAEA,MAAMI,eAAeA,CAACJ,WAAwB,EAAwB;IACpE,OAAO,IAAIX,oBAAW,CAAC,MAAM,IAAI,CAACjC,OAAO,CAACgD,eAAe,CAACJ,WAAW,CAAC,CAAC;EACzE;EAEA,MAAMK,cAAcA,CAAA,EAAyB;IAC3C,OAAO,IAAIhB,oBAAW,CAAC,MAAM,IAAI,CAACjC,OAAO,CAACiD,cAAc,CAAC,CAAC,CAAC;EAC7D;EAEA,MAAMC,MAAMA,CAAA,EAAkB;IAC5B,MAAM,IAAI,CAAClD,OAAO,CAACkD,MAAM,CAAC,CAAC;EAC7B;EAEA,MAAMC,OAAOA,CAACC,WAAmB,EAAiB;IAChD,MAAM,IAAI,CAACpD,OAAO,CAACmD,OAAO,CAACC,WAAW,CAAC;EACzC;AACF;AAACC,OAAA,CAAA3D,OAAA,GAAAC,mBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_errors","require","_AnalyserNode","_interopRequireDefault","_AudioDestinationNode","_AudioBuffer","_AudioBufferSourceNode","_BiquadFilterNode","_IIRFilterNode","_GainNode","_OscillatorNode","_PeriodicWave","_StereoPannerNode","_ConstantSourceNode","_LoadCustomWasm","_ConvolverNode","e","__esModule","default","OfflineAudioContext","constructor","arg0","arg1","arg2","context","window","NotSupportedError","sampleRate","destination","AudioDestinationNode","currentTime","state","createOscillator","OscillatorNode","createConstantSource","ConstantSourceNode","createGain","GainNode","createStereoPanner","StereoPannerNode","createBiquadFilter","BiquadFilterNode","createIIRFilter","options","IIRFilterNode","feedforward","feedback","createConvolver","buffer","numberOfChannels","disableNormalization","ConvolverNode","createBufferSource","pitchCorrection","AudioBufferSourceNode","globalWasmPromise","wasmStretch","globalTag","createBuffer","numOfChannels","length","AudioBuffer","createPeriodicWave","real","imag","constraints","InvalidAccessError","PeriodicWave","createAnalyser","AnalyserNode","decodeAudioDataSource","source","arrayBuffer","fetch","then","response","decodeAudioData","startRendering","resume","suspend","suspendTime","exports"],"sourceRoot":"../../../src","sources":["web-core/OfflineAudioContext.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { InvalidAccessError, NotSupportedError } from "../errors/index.js";
3
+ import { InvalidAccessError, InvalidStateError, NotSupportedError } from "../errors/index.js";
4
4
  import { assertWorkletsEnabled, workletsModule } from "../utils/index.js";
5
5
  import WorkletSourceNode from "./WorkletSourceNode.js";
6
6
  import WorkletProcessingNode from "./WorkletProcessingNode.js";
@@ -19,6 +19,7 @@ import RecorderAdapterNode from "./RecorderAdapterNode.js";
19
19
  import StereoPannerNode from "./StereoPannerNode.js";
20
20
  import StreamerNode from "./StreamerNode.js";
21
21
  import WorkletNode from "./WorkletNode.js";
22
+ import IIRFilterNode from "./IIRFilterNode.js";
22
23
  import { decodeAudioData, decodePCMInBase64 } from "./AudioDecoder.js";
23
24
  export default class BaseAudioContext {
24
25
  constructor(context) {
@@ -85,7 +86,11 @@ export default class BaseAudioContext {
85
86
  return new OscillatorNode(this, this.context.createOscillator());
86
87
  }
87
88
  createStreamer() {
88
- return new StreamerNode(this, this.context.createStreamer());
89
+ const streamer = this.context.createStreamer();
90
+ if (!streamer) {
91
+ throw new NotSupportedError('StreamerNode requires FFmpeg build');
92
+ }
93
+ return new StreamerNode(this, streamer);
89
94
  }
90
95
  createConstantSource() {
91
96
  return new ConstantSourceNode(this, this.context.createConstantSource());
@@ -99,6 +104,23 @@ export default class BaseAudioContext {
99
104
  createBiquadFilter() {
100
105
  return new BiquadFilterNode(this, this.context.createBiquadFilter());
101
106
  }
107
+ createIIRFilter(options) {
108
+ const feedforward = options.feedforward;
109
+ const feedback = options.feedback;
110
+ if (feedforward.length < 1 || feedforward.length > 20) {
111
+ throw new NotSupportedError(`The provided feedforward array has length (${feedforward.length}) outside the range [1, 20]`);
112
+ }
113
+ if (feedback.length < 1 || feedback.length > 20) {
114
+ throw new NotSupportedError(`The provided feedback array has length (${feedback.length}) outside the range [1, 20]`);
115
+ }
116
+ if (feedforward.every(value => value === 0)) {
117
+ throw new InvalidStateError(`Feedforward array must contain at least one non-zero value`);
118
+ }
119
+ if (feedback[0] === 0) {
120
+ throw new InvalidStateError(`First value of feedback array cannot be zero`);
121
+ }
122
+ return new IIRFilterNode(this, this.context.createIIRFilter(feedforward, feedback));
123
+ }
102
124
  createBufferSource(options) {
103
125
  const pitchCorrection = options?.pitchCorrection ?? false;
104
126
  return new AudioBufferSourceNode(this, this.context.createBufferSource(pitchCorrection));