react-native-audio-api 0.6.2-rc.5 → 0.6.2

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 (92) hide show
  1. package/android/src/main/java/com/swmansion/audioapi/system/LockScreenManager.kt +25 -0
  2. package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionCallback.kt +13 -0
  3. package/common/cpp/audioapi/HostObjects/AudioBufferBaseSourceNodeHostObject.h +60 -0
  4. package/common/cpp/audioapi/HostObjects/AudioBufferQueueSourceNodeHostObject.h +5 -67
  5. package/common/cpp/audioapi/HostObjects/AudioBufferSourceNodeHostObject.h +26 -56
  6. package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.h +9 -0
  7. package/common/cpp/audioapi/HostObjects/CustomProcessorNodeHostObject.h +54 -0
  8. package/common/cpp/audioapi/core/BaseAudioContext.cpp +9 -0
  9. package/common/cpp/audioapi/core/BaseAudioContext.h +2 -0
  10. package/common/cpp/audioapi/core/effects/CustomProcessorNode.cpp +173 -0
  11. package/common/cpp/audioapi/core/effects/CustomProcessorNode.h +186 -0
  12. package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.cpp +104 -0
  13. package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.h +54 -0
  14. package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.cpp +12 -129
  15. package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.h +8 -37
  16. package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.cpp +4 -93
  17. package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.h +4 -30
  18. package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.cpp +1 -11
  19. package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.h +2 -3
  20. package/common/cpp/audioapi/core/sources/OscillatorNode.cpp +0 -5
  21. package/common/cpp/audioapi/core/sources/OscillatorNode.h +0 -1
  22. package/common/cpp/audioapi/core/utils/AudioNodeDestructor.cpp +3 -1
  23. package/common/cpp/audioapi/core/utils/AudioNodeManager.cpp +1 -1
  24. package/ios/audioapi/ios/system/AudioEngine.h +1 -0
  25. package/ios/audioapi/ios/system/AudioEngine.mm +14 -3
  26. package/ios/audioapi/ios/system/AudioSessionManager.h +1 -0
  27. package/ios/audioapi/ios/system/AudioSessionManager.mm +10 -0
  28. package/ios/audioapi/ios/system/NotificationManager.mm +2 -4
  29. package/lib/commonjs/api.js +7 -0
  30. package/lib/commonjs/api.js.map +1 -1
  31. package/lib/commonjs/core/AudioBufferBaseSourceNode.js +29 -0
  32. package/lib/commonjs/core/AudioBufferBaseSourceNode.js.map +1 -0
  33. package/lib/commonjs/core/AudioBufferQueueSourceNode.js +5 -22
  34. package/lib/commonjs/core/AudioBufferQueueSourceNode.js.map +1 -1
  35. package/lib/commonjs/core/AudioBufferSourceNode.js +4 -21
  36. package/lib/commonjs/core/AudioBufferSourceNode.js.map +1 -1
  37. package/lib/commonjs/core/AudioScheduledSourceNode.js.map +1 -1
  38. package/lib/commonjs/core/BaseAudioContext.js +4 -0
  39. package/lib/commonjs/core/BaseAudioContext.js.map +1 -1
  40. package/lib/commonjs/core/CustomProcessorNode.js +23 -0
  41. package/lib/commonjs/core/CustomProcessorNode.js.map +1 -0
  42. package/lib/commonjs/web-core/AudioScheduledSourceNode.js +1 -4
  43. package/lib/commonjs/web-core/AudioScheduledSourceNode.js.map +1 -1
  44. package/lib/module/api.js +1 -0
  45. package/lib/module/api.js.map +1 -1
  46. package/lib/module/core/AudioBufferBaseSourceNode.js +23 -0
  47. package/lib/module/core/AudioBufferBaseSourceNode.js.map +1 -0
  48. package/lib/module/core/AudioBufferQueueSourceNode.js +5 -22
  49. package/lib/module/core/AudioBufferQueueSourceNode.js.map +1 -1
  50. package/lib/module/core/AudioBufferSourceNode.js +4 -21
  51. package/lib/module/core/AudioBufferSourceNode.js.map +1 -1
  52. package/lib/module/core/AudioScheduledSourceNode.js.map +1 -1
  53. package/lib/module/core/BaseAudioContext.js +4 -0
  54. package/lib/module/core/BaseAudioContext.js.map +1 -1
  55. package/lib/module/core/CustomProcessorNode.js +17 -0
  56. package/lib/module/core/CustomProcessorNode.js.map +1 -0
  57. package/lib/module/web-core/AudioScheduledSourceNode.js +1 -4
  58. package/lib/module/web-core/AudioScheduledSourceNode.js.map +1 -1
  59. package/lib/typescript/api.d.ts +1 -0
  60. package/lib/typescript/api.d.ts.map +1 -1
  61. package/lib/typescript/core/AudioBufferBaseSourceNode.d.ts +13 -0
  62. package/lib/typescript/core/AudioBufferBaseSourceNode.d.ts.map +1 -0
  63. package/lib/typescript/core/AudioBufferQueueSourceNode.d.ts +3 -12
  64. package/lib/typescript/core/AudioBufferQueueSourceNode.d.ts.map +1 -1
  65. package/lib/typescript/core/AudioBufferSourceNode.d.ts +2 -11
  66. package/lib/typescript/core/AudioBufferSourceNode.d.ts.map +1 -1
  67. package/lib/typescript/core/AudioScheduledSourceNode.d.ts +2 -2
  68. package/lib/typescript/core/AudioScheduledSourceNode.d.ts.map +1 -1
  69. package/lib/typescript/core/BaseAudioContext.d.ts +2 -0
  70. package/lib/typescript/core/BaseAudioContext.d.ts.map +1 -1
  71. package/lib/typescript/core/CustomProcessorNode.d.ts +12 -0
  72. package/lib/typescript/core/CustomProcessorNode.d.ts.map +1 -0
  73. package/lib/typescript/events/types.d.ts +2 -7
  74. package/lib/typescript/events/types.d.ts.map +1 -1
  75. package/lib/typescript/interfaces.d.ts +16 -13
  76. package/lib/typescript/interfaces.d.ts.map +1 -1
  77. package/lib/typescript/types.d.ts +1 -0
  78. package/lib/typescript/types.d.ts.map +1 -1
  79. package/lib/typescript/web-core/AudioScheduledSourceNode.d.ts +2 -1
  80. package/lib/typescript/web-core/AudioScheduledSourceNode.d.ts.map +1 -1
  81. package/package.json +1 -1
  82. package/src/api.ts +1 -0
  83. package/src/core/AudioBufferBaseSourceNode.ts +33 -0
  84. package/src/core/AudioBufferQueueSourceNode.ts +3 -35
  85. package/src/core/AudioBufferSourceNode.ts +10 -33
  86. package/src/core/AudioScheduledSourceNode.ts +2 -2
  87. package/src/core/BaseAudioContext.ts +8 -0
  88. package/src/core/CustomProcessorNode.ts +28 -0
  89. package/src/events/types.ts +2 -8
  90. package/src/interfaces.ts +25 -23
  91. package/src/types.ts +2 -0
  92. package/src/web-core/AudioScheduledSourceNode.tsx +3 -6
@@ -13,26 +13,15 @@ namespace audioapi {
13
13
  AudioBufferSourceNode::AudioBufferSourceNode(
14
14
  BaseAudioContext *context,
15
15
  bool pitchCorrection)
16
- : AudioScheduledSourceNode(context),
16
+ : AudioBufferBaseSourceNode(context),
17
17
  loop_(false),
18
+ loopSkip_(false),
18
19
  loopStart_(0),
19
20
  loopEnd_(0),
20
- pitchCorrection_(pitchCorrection),
21
- vReadIndex_(0.0) {
21
+ pitchCorrection_(pitchCorrection) {
22
22
  buffer_ = std::shared_ptr<AudioBuffer>(nullptr);
23
23
  alignedBus_ = std::shared_ptr<AudioBus>(nullptr);
24
24
 
25
- detuneParam_ = std::make_shared<AudioParam>(
26
- 0.0, MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT, context);
27
- playbackRateParam_ = std::make_shared<AudioParam>(
28
- 1.0, MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT, context);
29
-
30
- playbackRateBus_ = std::make_shared<AudioBus>(
31
- RENDER_QUANTUM_SIZE * 3, channelCount_, context_->getSampleRate());
32
-
33
- stretch_ =
34
- std::make_shared<signalsmith::stretch::SignalsmithStretch<float>>();
35
-
36
25
  isInitialized_ = true;
37
26
  }
38
27
 
@@ -59,15 +48,6 @@ double AudioBufferSourceNode::getLoopEnd() const {
59
48
  return loopEnd_;
60
49
  }
61
50
 
62
- std::shared_ptr<AudioParam> AudioBufferSourceNode::getDetuneParam() const {
63
- return detuneParam_;
64
- }
65
-
66
- std::shared_ptr<AudioParam> AudioBufferSourceNode::getPlaybackRateParam()
67
- const {
68
- return playbackRateParam_;
69
- }
70
-
71
51
  std::shared_ptr<AudioBuffer> AudioBufferSourceNode::getBuffer() const {
72
52
  return buffer_;
73
53
  }
@@ -144,34 +124,6 @@ void AudioBufferSourceNode::disable() {
144
124
  alignedBus_.reset();
145
125
  }
146
126
 
147
- std::mutex &AudioBufferSourceNode::getBufferLock() {
148
- return bufferLock_;
149
- }
150
-
151
- void AudioBufferSourceNode::sendOnPositionChangedEvent() {
152
- if (onPositionChangedTime_ > onPositionChangedInterval_) {
153
- std::unordered_map<std::string, EventValue> body = {
154
- {"value", getStopTime()}};
155
-
156
- context_->audioEventHandlerRegistry_->invokeHandlerWithEventBody(
157
- "positionChanged", onPositionChangedCallbackId_, body);
158
-
159
- onPositionChangedTime_ = 0;
160
- }
161
-
162
- onPositionChangedTime_ += RENDER_QUANTUM_SIZE;
163
- }
164
-
165
- void AudioBufferSourceNode::setOnPositionChangedInterval(int interval) {
166
- onPositionChangedInterval_ = static_cast<int>(
167
- context_->getSampleRate() * static_cast<float>(interval) / 1000);
168
- }
169
-
170
- void AudioBufferSourceNode::setOnPositionChangedCallbackId(
171
- uint64_t callbackId) {
172
- onPositionChangedCallbackId_ = callbackId;
173
- }
174
-
175
127
  void AudioBufferSourceNode::processNode(
176
128
  const std::shared_ptr<AudioBus> &processingBus,
177
129
  int framesToProcess) {
@@ -195,7 +147,7 @@ void AudioBufferSourceNode::processNode(
195
147
  }
196
148
  }
197
149
 
198
- double AudioBufferSourceNode::getStopTime() const {
150
+ double AudioBufferSourceNode::getCurrentPosition() const {
199
151
  return dsp::sampleFrameToTime(
200
152
  static_cast<int>(vReadIndex_), buffer_->getSampleRate());
201
153
  }
@@ -227,47 +179,6 @@ void AudioBufferSourceNode::processWithoutPitchCorrection(
227
179
  }
228
180
  }
229
181
 
230
- void AudioBufferSourceNode::processWithPitchCorrection(
231
- const std::shared_ptr<AudioBus> &processingBus,
232
- int framesToProcess) {
233
- size_t startOffset = 0;
234
- size_t offsetLength = 0;
235
-
236
- auto time = context_->getCurrentTime();
237
- auto playbackRate = std::clamp(
238
- playbackRateParam_->processKRateParam(framesToProcess, time), 0.0f, 3.0f);
239
- auto detune = std::clamp(
240
- detuneParam_->processKRateParam(framesToProcess, time) / 100.0f,
241
- -12.0f,
242
- 12.0f);
243
-
244
- playbackRateBus_->zero();
245
-
246
- auto framesNeededToStretch =
247
- static_cast<int>(playbackRate * static_cast<float>(framesToProcess));
248
-
249
- updatePlaybackInfo(
250
- playbackRateBus_, framesNeededToStretch, startOffset, offsetLength);
251
-
252
- if (playbackRate == 0.0f || (!isPlaying() && !isStopScheduled())) {
253
- processingBus->zero();
254
- return;
255
- }
256
-
257
- processWithoutInterpolation(
258
- playbackRateBus_, startOffset, offsetLength, playbackRate);
259
-
260
- stretch_->process(
261
- playbackRateBus_.get()[0],
262
- framesNeededToStretch,
263
- processingBus.get()[0],
264
- framesToProcess);
265
-
266
- if (detune != 0.0f) {
267
- stretch_->setTransposeSemitones(detune);
268
- }
269
- }
270
-
271
182
  void AudioBufferSourceNode::processWithoutInterpolation(
272
183
  const std::shared_ptr<AudioBus> &processingBus,
273
184
  size_t startOffset,
@@ -1,7 +1,7 @@
1
1
  #pragma once
2
2
 
3
3
  #include <audioapi/core/sources/AudioBuffer.h>
4
- #include <audioapi/core/sources/AudioScheduledSourceNode.h>
4
+ #include <audioapi/core/sources/AudioBufferBaseSourceNode.h>
5
5
  #include <audioapi/libs/signalsmith-stretch/signalsmith-stretch.h>
6
6
 
7
7
  #include <memory>
@@ -14,7 +14,7 @@ namespace audioapi {
14
14
  class AudioBus;
15
15
  class AudioParam;
16
16
 
17
- class AudioBufferSourceNode : public AudioScheduledSourceNode {
17
+ class AudioBufferSourceNode : public AudioBufferBaseSourceNode {
18
18
  public:
19
19
  explicit AudioBufferSourceNode(BaseAudioContext *context, bool pitchCorrection);
20
20
  ~AudioBufferSourceNode() override;
@@ -23,8 +23,6 @@ class AudioBufferSourceNode : public AudioScheduledSourceNode {
23
23
  [[nodiscard]] bool getLoopSkip() const;
24
24
  [[nodiscard]] double getLoopStart() const;
25
25
  [[nodiscard]] double getLoopEnd() const;
26
- [[nodiscard]] std::shared_ptr<AudioParam> getDetuneParam() const;
27
- [[nodiscard]] std::shared_ptr<AudioParam> getPlaybackRateParam() const;
28
26
  [[nodiscard]] std::shared_ptr<AudioBuffer> getBuffer() const;
29
27
 
30
28
  void setLoop(bool loop);
@@ -36,14 +34,9 @@ class AudioBufferSourceNode : public AudioScheduledSourceNode {
36
34
  void start(double when, double offset, double duration = -1);
37
35
  void disable() override;
38
36
 
39
- void setOnPositionChangedCallbackId(uint64_t callbackId);
40
- void setOnPositionChangedInterval(int interval);
41
- void sendOnPositionChangedEvent();
42
-
43
37
  protected:
44
- std::mutex &getBufferLock();
45
38
  void processNode(const std::shared_ptr<AudioBus>& processingBus, int framesToProcess) override;
46
- double getStopTime() const override;
39
+ double getCurrentPosition() const override;
47
40
 
48
41
  private:
49
42
  // Looping related properties
@@ -51,41 +44,22 @@ class AudioBufferSourceNode : public AudioScheduledSourceNode {
51
44
  bool loopSkip_;
52
45
  double loopStart_;
53
46
  double loopEnd_;
54
- std::mutex bufferLock_;
55
47
 
56
48
  // pitch correction
57
49
  bool pitchCorrection_;
58
- std::shared_ptr<signalsmith::stretch::SignalsmithStretch<float>> stretch_;
59
-
60
- // k-rate params
61
- std::shared_ptr<AudioParam> detuneParam_;
62
- std::shared_ptr<AudioParam> playbackRateParam_;
63
-
64
- std::shared_ptr<AudioBus> playbackRateBus_;
65
-
66
- // internal helper
67
- double vReadIndex_;
68
50
 
69
51
  // User provided buffer
70
52
  std::shared_ptr<AudioBuffer> buffer_;
71
53
  std::shared_ptr<AudioBus> alignedBus_;
72
54
 
73
- // positionChanged event props: callbackId, update interval in frames, time since last update in frames
74
- uint64_t onPositionChangedCallbackId_ = 0;
75
- int onPositionChangedInterval_;
76
- int onPositionChangedTime_ = 0;
77
-
78
55
  void processWithoutPitchCorrection(const std::shared_ptr<AudioBus> &processingBus,
79
56
  int framesToProcess);
80
57
 
81
- void processWithPitchCorrection(const std::shared_ptr<AudioBus> &processingBus,
82
- int framesToProcess);
83
-
84
58
  void processWithoutInterpolation(
85
59
  const std::shared_ptr<AudioBus>& processingBus,
86
60
  size_t startOffset,
87
61
  size_t offsetLength,
88
- float playbackRate);
62
+ float playbackRate) override;
89
63
 
90
64
  void processWithInterpolation(
91
65
  const std::shared_ptr<AudioBus>& processingBus,
@@ -143,18 +143,8 @@ void AudioScheduledSourceNode::updatePlaybackInfo(
143
143
  void AudioScheduledSourceNode::disable() {
144
144
  AudioNode::disable();
145
145
 
146
- std::string state = "stopped";
147
-
148
- // if it has not been stopped, it is ended
149
- if (stopTime_ < 0) {
150
- state = "ended";
151
- }
152
-
153
- std::unordered_map<std::string, EventValue> body = {
154
- {"value", getStopTime()}, {"state", state}};
155
-
156
146
  context_->audioEventHandlerRegistry_->invokeHandlerWithEventBody(
157
- "ended", onEndedCallbackId_, body);
147
+ "ended", onEndedCallbackId_, {});
158
148
  }
159
149
 
160
150
  void AudioScheduledSourceNode::handleStopScheduled() {
@@ -39,7 +39,6 @@ class AudioScheduledSourceNode : public AudioNode {
39
39
 
40
40
  void setOnEndedCallbackId(uint64_t callbackId);
41
41
 
42
- virtual double getStopTime() const = 0;
43
42
  void disable() override;
44
43
 
45
44
  protected:
@@ -48,6 +47,8 @@ class AudioScheduledSourceNode : public AudioNode {
48
47
 
49
48
  PlaybackState playbackState_;
50
49
 
50
+ uint64_t onEndedCallbackId_ = 0;
51
+
51
52
  void updatePlaybackInfo(
52
53
  const std::shared_ptr<AudioBus>& processingBus,
53
54
  int framesToProcess,
@@ -55,8 +56,6 @@ class AudioScheduledSourceNode : public AudioNode {
55
56
  size_t &nonSilentFramesToProcess);
56
57
 
57
58
  void handleStopScheduled();
58
-
59
- uint64_t onEndedCallbackId_ = 0;
60
59
  };
61
60
 
62
61
  } // namespace audioapi
@@ -91,9 +91,4 @@ void OscillatorNode::processNode(
91
91
  handleStopScheduled();
92
92
  }
93
93
 
94
- double OscillatorNode::getStopTime() const {
95
- return dsp::sampleFrameToTime(
96
- static_cast<int>(phase_), context_->getSampleRate());
97
- }
98
-
99
94
  } // namespace audioapi
@@ -25,7 +25,6 @@ class OscillatorNode : public AudioScheduledSourceNode {
25
25
 
26
26
  protected:
27
27
  void processNode(const std::shared_ptr<AudioBus>& processingBus, int framesToProcess) override;
28
- double getStopTime() const override;
29
28
 
30
29
  private:
31
30
  std::shared_ptr<AudioParam> frequencyParam_;
@@ -4,7 +4,9 @@
4
4
 
5
5
  namespace audioapi {
6
6
 
7
- AudioNodeDestructor::AudioNodeDestructor() : isExiting_(false) {
7
+ AudioNodeDestructor::AudioNodeDestructor() {
8
+ isExiting_ = false;
9
+ nodesForDeconstruction_.reserve(10);
8
10
  thread_ = std::thread(&AudioNodeDestructor::process, this);
9
11
  }
10
12
 
@@ -98,7 +98,7 @@ void AudioNodeManager::settlePendingConnections() {
98
98
 
99
99
  void AudioNodeManager::cleanupNode(const std::shared_ptr<AudioNode> &node) {
100
100
  nodeDeconstructor_.addNodeForDeconstruction(node);
101
- node.get()->cleanup();
101
+ node->cleanup();
102
102
  }
103
103
 
104
104
  void AudioNodeManager::prepareNodesForDestruction() {
@@ -19,6 +19,7 @@
19
19
  + (instancetype)sharedInstance;
20
20
  - (void)cleanup;
21
21
  - (bool)rebuildAudioEngine;
22
+ - (bool)restartAudioEngine;
22
23
  - (void)startEngine;
23
24
  - (void)stopEngine;
24
25
  - (void)pauseEngine:(NSString *)sourceNodeId;
@@ -59,14 +59,25 @@ static AudioEngine *_sharedInstance = nil;
59
59
  [self.audioEngine connect:sourceNode to:self.audioEngine.mainMixerNode format:format];
60
60
  }
61
61
 
62
- [self.audioEngine attachNode:self.inputNode];
63
- [self.audioEngine connect:self.audioEngine.inputNode to:self.inputNode format:nil];
62
+ if (self.inputNode) {
63
+ [self.audioEngine attachNode:self.inputNode];
64
+ [self.audioEngine connect:self.audioEngine.inputNode to:self.inputNode format:nil];
65
+ }
64
66
 
65
- [self startEngine];
67
+ [self startIfNecessary];
66
68
 
67
69
  return true;
68
70
  }
69
71
 
72
+ - (bool)restartAudioEngine
73
+ {
74
+ if ([self.audioEngine isRunning]) {
75
+ [self.audioEngine stop];
76
+ }
77
+ self.audioEngine = [[AVAudioEngine alloc] init];
78
+ return [self rebuildAudioEngine];
79
+ }
80
+
70
81
  - (void)startEngine
71
82
  {
72
83
  NSLog(@"[AudioEngine] startEngine");
@@ -18,6 +18,7 @@
18
18
  - (instancetype)init;
19
19
  - (void)cleanup;
20
20
  - (bool)configureAudioSession;
21
+ - (bool)reconfigureAudioSession;
21
22
 
22
23
  - (NSNumber *)getDevicePreferredSampleRate;
23
24
  - (void)setAudioSessionOptions:(NSString *)category
@@ -195,6 +195,16 @@
195
195
  return true;
196
196
  }
197
197
 
198
+ - (bool)reconfigureAudioSession
199
+ {
200
+ self.hasDirtySettings = true;
201
+ if (self.isActive) {
202
+ self.isActive = false;
203
+ return [self setActive:true];
204
+ }
205
+ return true;
206
+ }
207
+
198
208
  - (void)requestRecordingPermissions:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject
199
209
  {
200
210
  if (@available(iOS 17, *)) {
@@ -164,10 +164,8 @@ static NSString *VolumeObservationContext = @"VolumeObservationContext";
164
164
  AudioEngine *audioEngine = self.audioAPIModule.audioEngine;
165
165
  AudioSessionManager *audioSessionManager = self.audioAPIModule.audioSessionManager;
166
166
 
167
- [self cleanup];
168
- [audioSessionManager configureAudioSession];
169
- [self configureNotifications];
170
- [audioEngine rebuildAudioEngine];
167
+ [audioSessionManager reconfigureAudioSession];
168
+ [audioEngine restartAudioEngine];
171
169
  }
172
170
 
173
171
  - (void)handleEngineConfigurationChange:(NSNotification *)notification
@@ -105,6 +105,12 @@ Object.defineProperty(exports, "ContextState", {
105
105
  return _types.ContextState;
106
106
  }
107
107
  });
108
+ Object.defineProperty(exports, "CustomProcessorNode", {
109
+ enumerable: true,
110
+ get: function () {
111
+ return _CustomProcessorNode.default;
112
+ }
113
+ });
108
114
  Object.defineProperty(exports, "GainNode", {
109
115
  enumerable: true,
110
116
  get: function () {
@@ -196,6 +202,7 @@ var _AudioParam = _interopRequireDefault(require("./core/AudioParam"));
196
202
  var _AudioScheduledSourceNode = _interopRequireDefault(require("./core/AudioScheduledSourceNode"));
197
203
  var _BaseAudioContext = _interopRequireDefault(require("./core/BaseAudioContext"));
198
204
  var _BiquadFilterNode = _interopRequireDefault(require("./core/BiquadFilterNode"));
205
+ var _CustomProcessorNode = _interopRequireDefault(require("./core/CustomProcessorNode"));
199
206
  var _GainNode = _interopRequireDefault(require("./core/GainNode"));
200
207
  var _OscillatorNode = _interopRequireDefault(require("./core/OscillatorNode"));
201
208
  var _StereoPannerNode = _interopRequireDefault(require("./core/StereoPannerNode"));
@@ -1 +1 @@
1
- {"version":3,"names":["_specs","require","_AudioBuffer","_interopRequireDefault","_AudioBufferSourceNode","_AudioBufferQueueSourceNode","_AudioContext","_OfflineAudioContext","_AudioDestinationNode","_AudioNode","_AnalyserNode","_AudioParam","_AudioScheduledSourceNode","_BaseAudioContext","_BiquadFilterNode","_GainNode","_OscillatorNode","_StereoPannerNode","_AudioRecorder","_system","_useSytemVolume","_types","_errors","e","__esModule","default","global","createAudioContext","createOfflineAudioContext","createAudioRecorder","AudioEventEmitter","NativeAudioAPIModule","Error","install"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AA0CA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,sBAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,2BAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,aAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,oBAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,qBAAA,GAAAL,sBAAA,CAAAF,OAAA;AACA,IAAAQ,UAAA,GAAAN,sBAAA,CAAAF,OAAA;AACA,IAAAS,aAAA,GAAAP,sBAAA,CAAAF,OAAA;AACA,IAAAU,WAAA,GAAAR,sBAAA,CAAAF,OAAA;AACA,IAAAW,yBAAA,GAAAT,sBAAA,CAAAF,OAAA;AACA,IAAAY,iBAAA,GAAAV,sBAAA,CAAAF,OAAA;AACA,IAAAa,iBAAA,GAAAX,sBAAA,CAAAF,OAAA;AACA,IAAAc,SAAA,GAAAZ,sBAAA,CAAAF,OAAA;AACA,IAAAe,eAAA,GAAAb,sBAAA,CAAAF,OAAA;AACA,IAAAgB,iBAAA,GAAAd,sBAAA,CAAAF,OAAA;AACA,IAAAiB,cAAA,GAAAf,sBAAA,CAAAF,OAAA;AACA,IAAAkB,OAAA,GAAAhB,sBAAA,CAAAF,OAAA;AACA,IAAAmB,eAAA,GAAAjB,sBAAA,CAAAF,OAAA;AAEA,IAAAoB,MAAA,GAAApB,OAAA;AAUA,IAAAqB,OAAA,GAAArB,OAAA;AAMkB,SAAAE,uBAAAoB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AApElB;;AAgBA;;AAEA,IACEG,MAAM,CAACC,kBAAkB,IAAI,IAAI,IACjCD,MAAM,CAACE,yBAAyB,IAAI,IAAI,IACxCF,MAAM,CAACG,mBAAmB,IAAI,IAAI,IAClCH,MAAM,CAACI,iBAAiB,IAAI,IAAI,EAChC;EACA,IAAI,CAACC,2BAAoB,EAAE;IACzB,MAAM,IAAIC,KAAK,CACb,iFACF,CAAC;EACH;EAEAD,2BAAoB,CAACE,OAAO,CAAC,CAAC;AAChC","ignoreList":[]}
1
+ {"version":3,"names":["_specs","require","_AudioBuffer","_interopRequireDefault","_AudioBufferSourceNode","_AudioBufferQueueSourceNode","_AudioContext","_OfflineAudioContext","_AudioDestinationNode","_AudioNode","_AnalyserNode","_AudioParam","_AudioScheduledSourceNode","_BaseAudioContext","_BiquadFilterNode","_CustomProcessorNode","_GainNode","_OscillatorNode","_StereoPannerNode","_AudioRecorder","_system","_useSytemVolume","_types","_errors","e","__esModule","default","global","createAudioContext","createOfflineAudioContext","createAudioRecorder","AudioEventEmitter","NativeAudioAPIModule","Error","install"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AA0CA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,sBAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,2BAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,aAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,oBAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,qBAAA,GAAAL,sBAAA,CAAAF,OAAA;AACA,IAAAQ,UAAA,GAAAN,sBAAA,CAAAF,OAAA;AACA,IAAAS,aAAA,GAAAP,sBAAA,CAAAF,OAAA;AACA,IAAAU,WAAA,GAAAR,sBAAA,CAAAF,OAAA;AACA,IAAAW,yBAAA,GAAAT,sBAAA,CAAAF,OAAA;AACA,IAAAY,iBAAA,GAAAV,sBAAA,CAAAF,OAAA;AACA,IAAAa,iBAAA,GAAAX,sBAAA,CAAAF,OAAA;AACA,IAAAc,oBAAA,GAAAZ,sBAAA,CAAAF,OAAA;AACA,IAAAe,SAAA,GAAAb,sBAAA,CAAAF,OAAA;AACA,IAAAgB,eAAA,GAAAd,sBAAA,CAAAF,OAAA;AACA,IAAAiB,iBAAA,GAAAf,sBAAA,CAAAF,OAAA;AACA,IAAAkB,cAAA,GAAAhB,sBAAA,CAAAF,OAAA;AACA,IAAAmB,OAAA,GAAAjB,sBAAA,CAAAF,OAAA;AACA,IAAAoB,eAAA,GAAAlB,sBAAA,CAAAF,OAAA;AAEA,IAAAqB,MAAA,GAAArB,OAAA;AAUA,IAAAsB,OAAA,GAAAtB,OAAA;AAMkB,SAAAE,uBAAAqB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AArElB;;AAgBA;;AAEA,IACEG,MAAM,CAACC,kBAAkB,IAAI,IAAI,IACjCD,MAAM,CAACE,yBAAyB,IAAI,IAAI,IACxCF,MAAM,CAACG,mBAAmB,IAAI,IAAI,IAClCH,MAAM,CAACI,iBAAiB,IAAI,IAAI,EAChC;EACA,IAAI,CAACC,2BAAoB,EAAE;IACzB,MAAM,IAAIC,KAAK,CACb,iFACF,CAAC;EACH;EAEAD,2BAAoB,CAACE,OAAO,CAAC,CAAC;AAChC","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _AudioScheduledSourceNode = _interopRequireDefault(require("./AudioScheduledSourceNode"));
8
+ var _AudioParam = _interopRequireDefault(require("./AudioParam"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ class AudioBufferBaseSourceNode extends _AudioScheduledSourceNode.default {
11
+ constructor(context, node) {
12
+ super(context, node);
13
+ this.detune = new _AudioParam.default(node.detune, context);
14
+ this.playbackRate = new _AudioParam.default(node.playbackRate, context);
15
+ }
16
+
17
+ // eslint-disable-next-line accessor-pairs
18
+ set onPositionChanged(callback) {
19
+ const subscription = this.audioEventEmitter.addAudioEventListener('positionChanged', callback);
20
+ this.node.onPositionChanged = subscription.subscriptionId;
21
+ }
22
+
23
+ // eslint-disable-next-line accessor-pairs
24
+ set onPositionChangedInterval(value) {
25
+ this.node.onPositionChangedInterval = value;
26
+ }
27
+ }
28
+ exports.default = AudioBufferBaseSourceNode;
29
+ //# sourceMappingURL=AudioBufferBaseSourceNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_AudioScheduledSourceNode","_interopRequireDefault","require","_AudioParam","e","__esModule","default","AudioBufferBaseSourceNode","AudioScheduledSourceNode","constructor","context","node","detune","AudioParam","playbackRate","onPositionChanged","callback","subscription","audioEventEmitter","addAudioEventListener","subscriptionId","onPositionChangedInterval","value","exports"],"sourceRoot":"../../../src","sources":["core/AudioBufferBaseSourceNode.ts"],"mappings":";;;;;;AACA,IAAAA,yBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAsC,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGvB,MAAMG,yBAAyB,SAASC,iCAAwB,CAAC;EAI9EC,WAAWA,CAACC,OAAyB,EAAEC,IAAgC,EAAE;IACvE,KAAK,CAACD,OAAO,EAAEC,IAAI,CAAC;IAEpB,IAAI,CAACC,MAAM,GAAG,IAAIC,mBAAU,CAACF,IAAI,CAACC,MAAM,EAAEF,OAAO,CAAC;IAClD,IAAI,CAACI,YAAY,GAAG,IAAID,mBAAU,CAACF,IAAI,CAACG,YAAY,EAAEJ,OAAO,CAAC;EAChE;;EAEA;EACA,IAAWK,iBAAiBA,CAACC,QAA6C,EAAE;IAC1E,MAAMC,YAAY,GAAG,IAAI,CAACC,iBAAiB,CAACC,qBAAqB,CAC/D,iBAAiB,EACjBH,QACF,CAAC;IAEA,IAAI,CAACL,IAAI,CAAgCI,iBAAiB,GACzDE,YAAY,CAACG,cAAc;EAC/B;;EAEA;EACA,IAAWC,yBAAyBA,CAACC,KAAa,EAAE;IACjD,IAAI,CAACX,IAAI,CAAgCU,yBAAyB,GAAGC,KAAK;EAC7E;AACF;AAACC,OAAA,CAAAjB,OAAA,GAAAC,yBAAA","ignoreList":[]}
@@ -4,18 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _AudioScheduledSourceNode = _interopRequireDefault(require("./AudioScheduledSourceNode"));
8
- var _AudioParam = _interopRequireDefault(require("./AudioParam"));
7
+ var _AudioBufferBaseSourceNode = _interopRequireDefault(require("./AudioBufferBaseSourceNode"));
9
8
  var _errors = require("../errors");
10
9
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
- class AudioBufferQueueSourceNode extends _AudioScheduledSourceNode.default {
12
- constructor(context, node) {
13
- super(context, node);
14
- this.detune = new _AudioParam.default(node.detune, context);
15
- this.playbackRate = new _AudioParam.default(node.playbackRate, context);
16
- }
17
- enqueueBuffer(buffer, bufferId = 0, isLastBuffer = false) {
18
- this.node.enqueueBuffer(buffer.buffer, bufferId, isLastBuffer);
10
+ class AudioBufferQueueSourceNode extends _AudioBufferBaseSourceNode.default {
11
+ enqueueBuffer(buffer, isLastBuffer = false) {
12
+ this.node.enqueueBuffer(buffer.buffer, isLastBuffer);
19
13
  }
20
14
  start(when = 0, offset) {
21
15
  if (when < 0) {
@@ -26,7 +20,7 @@ class AudioBufferQueueSourceNode extends _AudioScheduledSourceNode.default {
26
20
  throw new _errors.RangeError(`offset must be a finite non-negative number: ${offset}`);
27
21
  }
28
22
  }
29
- this.node.start(when, offset);
23
+ this.node.start(when);
30
24
  }
31
25
  stop(when = 0) {
32
26
  if (when < 0) {
@@ -37,17 +31,6 @@ class AudioBufferQueueSourceNode extends _AudioScheduledSourceNode.default {
37
31
  pause() {
38
32
  this.node.pause();
39
33
  }
40
-
41
- // eslint-disable-next-line accessor-pairs
42
- set onPositionChanged(callback) {
43
- const subscription = this.audioEventEmitter.addAudioEventListener('positionChanged', callback);
44
- this.node.onPositionChanged = subscription.subscriptionId;
45
- }
46
-
47
- // eslint-disable-next-line accessor-pairs
48
- set onPositionChangedInterval(value) {
49
- this.node.onPositionChangedInterval = value;
50
- }
51
34
  }
52
35
  exports.default = AudioBufferQueueSourceNode;
53
36
  //# sourceMappingURL=AudioBufferQueueSourceNode.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_AudioScheduledSourceNode","_interopRequireDefault","require","_AudioParam","_errors","e","__esModule","default","AudioBufferQueueSourceNode","AudioScheduledSourceNode","constructor","context","node","detune","AudioParam","playbackRate","enqueueBuffer","buffer","bufferId","isLastBuffer","start","when","offset","RangeError","stop","pause","onPositionChanged","callback","subscription","audioEventEmitter","addAudioEventListener","subscriptionId","onPositionChangedInterval","value","exports"],"sourceRoot":"../../../src","sources":["core/AudioBufferQueueSourceNode.ts"],"mappings":";;;;;;AACA,IAAAA,yBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAAuC,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGxB,MAAMG,0BAA0B,SAASC,iCAAwB,CAAC;EAI/EC,WAAWA,CAACC,OAAyB,EAAEC,IAAiC,EAAE;IACxE,KAAK,CAACD,OAAO,EAAEC,IAAI,CAAC;IAEpB,IAAI,CAACC,MAAM,GAAG,IAAIC,mBAAU,CAACF,IAAI,CAACC,MAAM,EAAEF,OAAO,CAAC;IAClD,IAAI,CAACI,YAAY,GAAG,IAAID,mBAAU,CAACF,IAAI,CAACG,YAAY,EAAEJ,OAAO,CAAC;EAChE;EAEOK,aAAaA,CAClBC,MAAmB,EACnBC,QAAgB,GAAG,CAAC,EACpBC,YAAqB,GAAG,KAAK,EACvB;IACL,IAAI,CAACP,IAAI,CAAiCI,aAAa,CACtDC,MAAM,CAACA,MAAM,EACbC,QAAQ,EACRC,YACF,CAAC;EACH;EAEgBC,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAEC,MAAe,EAAQ;IAC7D,IAAID,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIE,kBAAU,CAClB,8CAA8CF,IAAI,EACpD,CAAC;IACH;IAEA,IAAIC,MAAM,EAAE;MACV,IAAIA,MAAM,GAAG,CAAC,EAAE;QACd,MAAM,IAAIC,kBAAU,CAClB,gDAAgDD,MAAM,EACxD,CAAC;MACH;IACF;IAEC,IAAI,CAACV,IAAI,CAAiCQ,KAAK,CAACC,IAAI,EAAEC,MAAM,CAAC;EAChE;EAEgBE,IAAIA,CAACH,IAAY,GAAG,CAAC,EAAQ;IAC3C,IAAIA,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIE,kBAAU,CAClB,8CAA8CF,IAAI,EACpD,CAAC;IACH;IAEC,IAAI,CAACT,IAAI,CAAiCY,IAAI,CAACH,IAAI,CAAC;EACvD;EAEOI,KAAKA,CAAA,EAAS;IAClB,IAAI,CAACb,IAAI,CAAiCa,KAAK,CAAC,CAAC;EACpD;;EAEA;EACA,IAAWC,iBAAiBA,CAACC,QAA6C,EAAE;IAC1E,MAAMC,YAAY,GAAG,IAAI,CAACC,iBAAiB,CAACC,qBAAqB,CAC/D,iBAAiB,EACjBH,QACF,CAAC;IAEA,IAAI,CAACf,IAAI,CAAiCc,iBAAiB,GAC1DE,YAAY,CAACG,cAAc;EAC/B;;EAEA;EACA,IAAWC,yBAAyBA,CAACC,KAAa,EAAE;IACjD,IAAI,CAACrB,IAAI,CAAiCoB,yBAAyB,GAClEC,KAAK;EACT;AACF;AAACC,OAAA,CAAA3B,OAAA,GAAAC,0BAAA","ignoreList":[]}
1
+ {"version":3,"names":["_AudioBufferBaseSourceNode","_interopRequireDefault","require","_errors","e","__esModule","default","AudioBufferQueueSourceNode","AudioBufferBaseSourceNode","enqueueBuffer","buffer","isLastBuffer","node","start","when","offset","RangeError","stop","pause","exports"],"sourceRoot":"../../../src","sources":["core/AudioBufferQueueSourceNode.ts"],"mappings":";;;;;;AACA,IAAAA,0BAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAAuC,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAExB,MAAMG,0BAA0B,SAASC,kCAAyB,CAAC;EACzEC,aAAaA,CAClBC,MAAmB,EACnBC,YAAqB,GAAG,KAAK,EACvB;IACL,IAAI,CAACC,IAAI,CAAiCH,aAAa,CACtDC,MAAM,CAACA,MAAM,EACbC,YACF,CAAC;EACH;EAEgBE,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAEC,MAAe,EAAQ;IAC7D,IAAID,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIE,kBAAU,CAClB,8CAA8CF,IAAI,EACpD,CAAC;IACH;IAEA,IAAIC,MAAM,EAAE;MACV,IAAIA,MAAM,GAAG,CAAC,EAAE;QACd,MAAM,IAAIC,kBAAU,CAClB,gDAAgDD,MAAM,EACxD,CAAC;MACH;IACF;IAEC,IAAI,CAACH,IAAI,CAAiCC,KAAK,CAACC,IAAI,CAAC;EACxD;EAEgBG,IAAIA,CAACH,IAAY,GAAG,CAAC,EAAQ;IAC3C,IAAIA,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIE,kBAAU,CAClB,8CAA8CF,IAAI,EACpD,CAAC;IACH;IAEC,IAAI,CAACF,IAAI,CAAiCK,IAAI,CAACH,IAAI,CAAC;EACvD;EAEOI,KAAKA,CAAA,EAAS;IAClB,IAAI,CAACN,IAAI,CAAiCM,KAAK,CAAC,CAAC;EACpD;AACF;AAACC,OAAA,CAAAb,OAAA,GAAAC,0BAAA","ignoreList":[]}
@@ -4,17 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _AudioScheduledSourceNode = _interopRequireDefault(require("./AudioScheduledSourceNode"));
7
+ var _AudioBufferBaseSourceNode = _interopRequireDefault(require("./AudioBufferBaseSourceNode"));
8
8
  var _AudioBuffer = _interopRequireDefault(require("./AudioBuffer"));
9
- var _AudioParam = _interopRequireDefault(require("./AudioParam"));
10
9
  var _errors = require("../errors");
11
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
- class AudioBufferSourceNode extends _AudioScheduledSourceNode.default {
13
- constructor(context, node) {
14
- super(context, node);
15
- this.detune = new _AudioParam.default(node.detune, context);
16
- this.playbackRate = new _AudioParam.default(node.playbackRate, context);
17
- }
11
+ class AudioBufferSourceNode extends _AudioBufferBaseSourceNode.default {
18
12
  get buffer() {
19
13
  const buffer = this.node.buffer;
20
14
  if (!buffer) {
@@ -24,10 +18,10 @@ class AudioBufferSourceNode extends _AudioScheduledSourceNode.default {
24
18
  }
25
19
  set buffer(buffer) {
26
20
  if (!buffer) {
27
- this.node.buffer = null;
21
+ this.node.setBuffer(this.node, null);
28
22
  return;
29
23
  }
30
- this.node.buffer = buffer.buffer;
24
+ this.node.setBuffer(this.node, buffer.buffer);
31
25
  }
32
26
  get loopSkip() {
33
27
  return this.node.loopSkip;
@@ -69,17 +63,6 @@ class AudioBufferSourceNode extends _AudioScheduledSourceNode.default {
69
63
  this.hasBeenStarted = true;
70
64
  this.node.start(when, offset, duration);
71
65
  }
72
-
73
- // eslint-disable-next-line accessor-pairs
74
- set onPositionChanged(callback) {
75
- const subscription = this.audioEventEmitter.addAudioEventListener('positionChanged', callback);
76
- this.node.onPositionChanged = subscription.subscriptionId;
77
- }
78
-
79
- // eslint-disable-next-line accessor-pairs
80
- set onPositionChangedInterval(value) {
81
- this.node.onPositionChangedInterval = value;
82
- }
83
66
  }
84
67
  exports.default = AudioBufferSourceNode;
85
68
  //# sourceMappingURL=AudioBufferSourceNode.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_AudioScheduledSourceNode","_interopRequireDefault","require","_AudioBuffer","_AudioParam","_errors","e","__esModule","default","AudioBufferSourceNode","AudioScheduledSourceNode","constructor","context","node","detune","AudioParam","playbackRate","buffer","AudioBuffer","loopSkip","value","loop","loopStart","loopEnd","start","when","offset","duration","RangeError","hasBeenStarted","InvalidStateError","onPositionChanged","callback","subscription","audioEventEmitter","addAudioEventListener","subscriptionId","onPositionChangedInterval","exports"],"sourceRoot":"../../../src","sources":["core/AudioBufferSourceNode.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_AudioBufferBaseSourceNode","_interopRequireDefault","require","_AudioBuffer","_errors","e","__esModule","default","AudioBufferSourceNode","AudioBufferBaseSourceNode","buffer","node","AudioBuffer","setBuffer","loopSkip","value","loop","loopStart","loopEnd","start","when","offset","duration","RangeError","hasBeenStarted","InvalidStateError","exports"],"sourceRoot":"../../../src","sources":["core/AudioBufferSourceNode.ts"],"mappings":";;;;;;AACA,IAAAA,0BAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAA0D,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE3C,MAAMG,qBAAqB,SAASC,kCAAyB,CAAC;EAC3E,IAAWC,MAAMA,CAAA,EAAuB;IACtC,MAAMA,MAAM,GAAI,IAAI,CAACC,IAAI,CAA4BD,MAAM;IAC3D,IAAI,CAACA,MAAM,EAAE;MACX,OAAO,IAAI;IACb;IACA,OAAO,IAAIE,oBAAW,CAACF,MAAM,CAAC;EAChC;EAEA,IAAWA,MAAMA,CAACA,MAA0B,EAAE;IAC5C,IAAI,CAACA,MAAM,EAAE;MACV,IAAI,CAACC,IAAI,CAA4BE,SAAS,CAC7C,IAAI,CAACF,IAAI,EACT,IACF,CAAC;MACD;IACF;IAEC,IAAI,CAACA,IAAI,CAA4BE,SAAS,CAC7C,IAAI,CAACF,IAAI,EACTD,MAAM,CAACA,MACT,CAAC;EACH;EAEA,IAAWI,QAAQA,CAAA,EAAY;IAC7B,OAAQ,IAAI,CAACH,IAAI,CAA4BG,QAAQ;EACvD;EAEA,IAAWA,QAAQA,CAACC,KAAc,EAAE;IACjC,IAAI,CAACJ,IAAI,CAA4BG,QAAQ,GAAGC,KAAK;EACxD;EAEA,IAAWC,IAAIA,CAAA,EAAY;IACzB,OAAQ,IAAI,CAACL,IAAI,CAA4BK,IAAI;EACnD;EAEA,IAAWA,IAAIA,CAACD,KAAc,EAAE;IAC7B,IAAI,CAACJ,IAAI,CAA4BK,IAAI,GAAGD,KAAK;EACpD;EAEA,IAAWE,SAASA,CAAA,EAAW;IAC7B,OAAQ,IAAI,CAACN,IAAI,CAA4BM,SAAS;EACxD;EAEA,IAAWA,SAASA,CAACF,KAAa,EAAE;IACjC,IAAI,CAACJ,IAAI,CAA4BM,SAAS,GAAGF,KAAK;EACzD;EAEA,IAAWG,OAAOA,CAAA,EAAW;IAC3B,OAAQ,IAAI,CAACP,IAAI,CAA4BO,OAAO;EACtD;EAEA,IAAWA,OAAOA,CAACH,KAAa,EAAE;IAC/B,IAAI,CAACJ,IAAI,CAA4BO,OAAO,GAAGH,KAAK;EACvD;EAEOI,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAEC,MAAc,GAAG,CAAC,EAAEC,QAAiB,EAAQ;IAC1E,IAAIF,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIG,kBAAU,CAClB,8CAA8CH,IAAI,EACpD,CAAC;IACH;IAEA,IAAIC,MAAM,GAAG,CAAC,EAAE;MACd,MAAM,IAAIE,kBAAU,CAClB,gDAAgDF,MAAM,EACxD,CAAC;IACH;IAEA,IAAIC,QAAQ,IAAIA,QAAQ,GAAG,CAAC,EAAE;MAC5B,MAAM,IAAIC,kBAAU,CAClB,kDAAkDD,QAAQ,EAC5D,CAAC;IACH;IAEA,IAAI,IAAI,CAACE,cAAc,EAAE;MACvB,MAAM,IAAIC,yBAAiB,CAAC,kCAAkC,CAAC;IACjE;IAEA,IAAI,CAACD,cAAc,GAAG,IAAI;IACzB,IAAI,CAACb,IAAI,CAA4BQ,KAAK,CAACC,IAAI,EAAEC,MAAM,EAAEC,QAAQ,CAAC;EACrE;AACF;AAACI,OAAA,CAAAnB,OAAA,GAAAC,qBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_AudioNode","_interopRequireDefault","require","_errors","_events","e","__esModule","default","AudioScheduledSourceNode","AudioNode","hasBeenStarted","audioEventEmitter","AudioEventEmitter","global","start","when","RangeError","InvalidStateError","node","stop","onended","callback","subscription","addAudioEventListener","subscriptionId","exports"],"sourceRoot":"../../../src","sources":["core/AudioScheduledSourceNode.ts"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAA8C,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE/B,MAAMG,wBAAwB,SAASC,kBAAS,CAAC;EACpDC,cAAc,GAAY,KAAK;EACtBC,iBAAiB,GAAG,IAAIC,yBAAiB,CAC1DC,MAAM,CAACD,iBACT,CAAC;EAEME,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAQ;IACnC,IAAIA,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIC,kBAAU,CAClB,8CAA8CD,IAAI,EACpD,CAAC;IACH;IAEA,IAAI,IAAI,CAACL,cAAc,EAAE;MACvB,MAAM,IAAIO,yBAAiB,CAAC,kCAAkC,CAAC;IACjE;IAEA,IAAI,CAACP,cAAc,GAAG,IAAI;IACzB,IAAI,CAACQ,IAAI,CAA+BJ,KAAK,CAACC,IAAI,CAAC;EACtD;EAEOI,IAAIA,CAACJ,IAAY,GAAG,CAAC,EAAQ;IAClC,IAAIA,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIC,kBAAU,CAClB,8CAA8CD,IAAI,EACpD,CAAC;IACH;IAEA,IAAI,CAAC,IAAI,CAACL,cAAc,EAAE;MACxB,MAAM,IAAIO,yBAAiB,CACzB,8CACF,CAAC;IACH;IAEC,IAAI,CAACC,IAAI,CAA+BC,IAAI,CAACJ,IAAI,CAAC;EACrD;;EAEA;EACA,IAAWK,OAAOA,CAACC,QAA2C,EAAE;IAC9D,MAAMC,YAAY,GAAG,IAAI,CAACX,iBAAiB,CAACY,qBAAqB,CAC/D,OAAO,EACPF,QACF,CAAC;IAEA,IAAI,CAACH,IAAI,CAA+BE,OAAO,GAC9CE,YAAY,CAACE,cAAc;EAC/B;AACF;AAACC,OAAA,CAAAlB,OAAA,GAAAC,wBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_AudioNode","_interopRequireDefault","require","_errors","_events","e","__esModule","default","AudioScheduledSourceNode","AudioNode","hasBeenStarted","audioEventEmitter","AudioEventEmitter","global","start","when","RangeError","InvalidStateError","node","stop","onended","callback","subscription","addAudioEventListener","subscriptionId","exports"],"sourceRoot":"../../../src","sources":["core/AudioScheduledSourceNode.ts"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAA8C,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE/B,MAAMG,wBAAwB,SAASC,kBAAS,CAAC;EACpDC,cAAc,GAAY,KAAK;EACtBC,iBAAiB,GAAG,IAAIC,yBAAiB,CAC1DC,MAAM,CAACD,iBACT,CAAC;EAEME,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAQ;IACnC,IAAIA,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIC,kBAAU,CAClB,8CAA8CD,IAAI,EACpD,CAAC;IACH;IAEA,IAAI,IAAI,CAACL,cAAc,EAAE;MACvB,MAAM,IAAIO,yBAAiB,CAAC,kCAAkC,CAAC;IACjE;IAEA,IAAI,CAACP,cAAc,GAAG,IAAI;IACzB,IAAI,CAACQ,IAAI,CAA+BJ,KAAK,CAACC,IAAI,CAAC;EACtD;EAEOI,IAAIA,CAACJ,IAAY,GAAG,CAAC,EAAQ;IAClC,IAAIA,IAAI,GAAG,CAAC,EAAE;MACZ,MAAM,IAAIC,kBAAU,CAClB,8CAA8CD,IAAI,EACpD,CAAC;IACH;IAEA,IAAI,CAAC,IAAI,CAACL,cAAc,EAAE;MACxB,MAAM,IAAIO,yBAAiB,CACzB,8CACF,CAAC;IACH;IAEC,IAAI,CAACC,IAAI,CAA+BC,IAAI,CAACJ,IAAI,CAAC;EACrD;;EAEA;EACA,IAAWK,OAAOA,CAACC,QAAyC,EAAE;IAC5D,MAAMC,YAAY,GAAG,IAAI,CAACX,iBAAiB,CAACY,qBAAqB,CAC/D,OAAO,EACPF,QACF,CAAC;IAEA,IAAI,CAACH,IAAI,CAA+BE,OAAO,GAC9CE,YAAY,CAACE,cAAc;EAC/B;AACF;AAACC,OAAA,CAAAlB,OAAA,GAAAC,wBAAA","ignoreList":[]}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _AudioDestinationNode = _interopRequireDefault(require("./AudioDestinationNode"));
8
8
  var _OscillatorNode = _interopRequireDefault(require("./OscillatorNode"));
9
+ var _CustomProcessorNode = _interopRequireDefault(require("./CustomProcessorNode"));
9
10
  var _GainNode = _interopRequireDefault(require("./GainNode"));
10
11
  var _StereoPannerNode = _interopRequireDefault(require("./StereoPannerNode"));
11
12
  var _BiquadFilterNode = _interopRequireDefault(require("./BiquadFilterNode"));
@@ -31,6 +32,9 @@ class BaseAudioContext {
31
32
  createOscillator() {
32
33
  return new _OscillatorNode.default(this, this.context.createOscillator());
33
34
  }
35
+ createCustomProcessor(identifier) {
36
+ return new _CustomProcessorNode.default(this, this.context.createCustomProcessor(identifier));
37
+ }
34
38
  createGain() {
35
39
  return new _GainNode.default(this, this.context.createGain());
36
40
  }