react-native-audio-api 0.13.0 → 0.13.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 (85) hide show
  1. package/android/src/main/cpp/audioapi/CMakeLists.txt +15 -0
  2. package/android/src/main/cpp/audioapi/android/AudioAPIModule.cpp +4 -0
  3. package/android/src/main/cpp/audioapi/android/core/utils/AndroidRotatingFileWriter.cpp +3 -1
  4. package/android/src/main/cpp/audioapi/android/system/NativeFileInfo.cpp +48 -0
  5. package/android/src/main/cpp/audioapi/android/system/NativeFileInfo.hpp +6 -8
  6. package/common/cpp/audioapi/HostObjects/sources/AudioBufferBaseSourceNodeHostObject.cpp +1 -1
  7. package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.cpp +1 -1
  8. package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.h +1 -1
  9. package/common/cpp/audioapi/core/sources/AudioFileSourceNode.h +1 -1
  10. package/common/cpp/audioapi/core/utils/decoding/SeekDecoderDaemon.h +1 -1
  11. package/common/cpp/audioapi/dsp/VectorMath.cpp +81 -1
  12. package/common/cpp/audioapi/dsp/VectorMath.h +9 -0
  13. package/common/cpp/audioapi/{core/utils → dsp}/WsolaTimeStretcher.cpp +23 -16
  14. package/common/cpp/audioapi/{core/utils → dsp}/WsolaTimeStretcher.h +6 -4
  15. package/ios/audioapi/ios/core/utils/IOSRotatingFileWriter.mm +3 -1
  16. package/ios/audioapi/ios/system/AudioEngine.mm +10 -0
  17. package/lib/commonjs/web-core/AudioBufferSourceNode.web.js +7 -1
  18. package/lib/commonjs/web-core/AudioBufferSourceNode.web.js.map +1 -1
  19. package/lib/commonjs/web-core/AudioContext.web.js +2 -4
  20. package/lib/commonjs/web-core/AudioContext.web.js.map +1 -1
  21. package/lib/commonjs/web-core/OfflineAudioContext.web.js +2 -4
  22. package/lib/commonjs/web-core/OfflineAudioContext.web.js.map +1 -1
  23. package/lib/commonjs/web-core/custom/index.js +7 -0
  24. package/lib/commonjs/web-core/custom/index.js.map +1 -1
  25. package/lib/commonjs/web-core/custom/wasm-audio-bufffer-source-node-stretcher/AudioBufferSourceNodeStretcher.js +58 -6
  26. package/lib/commonjs/web-core/custom/wasm-audio-bufffer-source-node-stretcher/AudioBufferSourceNodeStretcher.js.map +1 -1
  27. package/lib/commonjs/web-core/custom/wasm-audio-bufffer-source-node-stretcher/LoadCustomWasm.js +37 -0
  28. package/lib/commonjs/web-core/custom/wasm-audio-bufffer-source-node-stretcher/LoadCustomWasm.js.map +1 -0
  29. package/lib/{module/web-core/custom/wasm-audio-bufffer-source-node-stretcher/signalsmithStretch/SignalsmithStretch.js → commonjs/web-core/custom/wasm-audio-bufffer-source-node-stretcher/signalsmithStretch/SignalsmithStretch.mjs} +1 -1
  30. package/lib/commonjs/web-core/custom/wasm-audio-bufffer-source-node-stretcher/signalsmithStretch/SignalsmithStretch.mjs.map +1 -0
  31. package/lib/commonjs/web-core/utils/AudioBufferSourceNodeStandard.js +8 -2
  32. package/lib/commonjs/web-core/utils/AudioBufferSourceNodeStandard.js.map +1 -1
  33. package/lib/module/web-core/AudioBufferSourceNode.web.js +7 -1
  34. package/lib/module/web-core/AudioBufferSourceNode.web.js.map +1 -1
  35. package/lib/module/web-core/AudioContext.web.js +2 -4
  36. package/lib/module/web-core/AudioContext.web.js.map +1 -1
  37. package/lib/module/web-core/OfflineAudioContext.web.js +2 -4
  38. package/lib/module/web-core/OfflineAudioContext.web.js.map +1 -1
  39. package/lib/module/web-core/custom/index.js +1 -0
  40. package/lib/module/web-core/custom/index.js.map +1 -1
  41. package/lib/module/web-core/custom/wasm-audio-bufffer-source-node-stretcher/AudioBufferSourceNodeStretcher.js +57 -6
  42. package/lib/module/web-core/custom/wasm-audio-bufffer-source-node-stretcher/AudioBufferSourceNodeStretcher.js.map +1 -1
  43. package/lib/module/web-core/custom/wasm-audio-bufffer-source-node-stretcher/LoadCustomWasm.js +33 -0
  44. package/lib/module/web-core/custom/wasm-audio-bufffer-source-node-stretcher/LoadCustomWasm.js.map +1 -0
  45. package/lib/{commonjs/web-core/custom/wasm-audio-bufffer-source-node-stretcher/signalsmithStretch/SignalsmithStretch.js → module/web-core/custom/wasm-audio-bufffer-source-node-stretcher/signalsmithStretch/SignalsmithStretch.mjs} +6 -10
  46. package/lib/module/web-core/custom/wasm-audio-bufffer-source-node-stretcher/signalsmithStretch/SignalsmithStretch.mjs.map +1 -0
  47. package/lib/module/web-core/utils/AudioBufferSourceNodeStandard.js +8 -2
  48. package/lib/module/web-core/utils/AudioBufferSourceNodeStandard.js.map +1 -1
  49. package/lib/typescript/web-core/AudioBufferSourceNode.web.d.ts +2 -0
  50. package/lib/typescript/web-core/AudioBufferSourceNode.web.d.ts.map +1 -1
  51. package/lib/typescript/web-core/AudioContext.web.d.ts +3 -1
  52. package/lib/typescript/web-core/AudioContext.web.d.ts.map +1 -1
  53. package/lib/typescript/web-core/BaseAudioContext.web.d.ts +3 -1
  54. package/lib/typescript/web-core/BaseAudioContext.web.d.ts.map +1 -1
  55. package/lib/typescript/web-core/OfflineAudioContext.web.d.ts +3 -1
  56. package/lib/typescript/web-core/OfflineAudioContext.web.d.ts.map +1 -1
  57. package/lib/typescript/web-core/custom/index.d.ts +1 -0
  58. package/lib/typescript/web-core/custom/index.d.ts.map +1 -1
  59. package/lib/typescript/web-core/custom/wasm-audio-bufffer-source-node-stretcher/AudioBufferSourceNodeStretcher.d.ts +5 -1
  60. package/lib/typescript/web-core/custom/wasm-audio-bufffer-source-node-stretcher/AudioBufferSourceNodeStretcher.d.ts.map +1 -1
  61. package/lib/typescript/web-core/custom/wasm-audio-bufffer-source-node-stretcher/LoadCustomWasm.d.ts +5 -0
  62. package/lib/typescript/web-core/custom/wasm-audio-bufffer-source-node-stretcher/LoadCustomWasm.d.ts.map +1 -0
  63. package/lib/typescript/web-core/types.web.d.ts +3 -1
  64. package/lib/typescript/web-core/types.web.d.ts.map +1 -1
  65. package/lib/typescript/web-core/utils/AudioBufferSourceNodeStandard.d.ts +2 -0
  66. package/lib/typescript/web-core/utils/AudioBufferSourceNodeStandard.d.ts.map +1 -1
  67. package/package.json +1 -1
  68. package/scripts/setup-rn-audio-api-web.js +4 -4
  69. package/src/web-core/AudioBufferSourceNode.web.ts +9 -1
  70. package/src/web-core/AudioContext.web.ts +4 -2
  71. package/src/web-core/BaseAudioContext.web.ts +3 -1
  72. package/src/web-core/OfflineAudioContext.web.ts +4 -2
  73. package/src/web-core/custom/index.ts +1 -0
  74. package/src/web-core/custom/wasm-audio-bufffer-source-node-stretcher/AudioBufferSourceNodeStretcher.ts +72 -12
  75. package/src/web-core/custom/wasm-audio-bufffer-source-node-stretcher/LoadCustomWasm.ts +39 -0
  76. package/src/web-core/types.web.ts +4 -1
  77. package/src/web-core/utils/AudioBufferSourceNodeStandard.ts +12 -2
  78. package/lib/commonjs/web-core/custom/wasm-audio-bufffer-source-node-stretcher/signalsmithStretch/SignalsmithStretch.d.js +0 -6
  79. package/lib/commonjs/web-core/custom/wasm-audio-bufffer-source-node-stretcher/signalsmithStretch/SignalsmithStretch.d.js.map +0 -1
  80. package/lib/commonjs/web-core/custom/wasm-audio-bufffer-source-node-stretcher/signalsmithStretch/SignalsmithStretch.js.map +0 -1
  81. package/lib/module/web-core/custom/wasm-audio-bufffer-source-node-stretcher/signalsmithStretch/SignalsmithStretch.d.js +0 -4
  82. package/lib/module/web-core/custom/wasm-audio-bufffer-source-node-stretcher/signalsmithStretch/SignalsmithStretch.d.js.map +0 -1
  83. package/lib/module/web-core/custom/wasm-audio-bufffer-source-node-stretcher/signalsmithStretch/SignalsmithStretch.js.map +0 -1
  84. package/src/web-core/custom/wasm-audio-bufffer-source-node-stretcher/signalsmithStretch/SignalsmithStretch.d.ts +0 -4
  85. /package/src/web-core/custom/wasm-audio-bufffer-source-node-stretcher/signalsmithStretch/{SignalsmithStretch.js → SignalsmithStretch.mjs} +0 -0
@@ -165,6 +165,21 @@ if (RN_AUDIO_API_FFMPEG_DISABLED)
165
165
  )
166
166
  endif()
167
167
 
168
+ target_compile_definitions(
169
+ react-native-audio-api
170
+ PRIVATE $<$<CONFIG:Debug>:DEBUG>
171
+ )
172
+
173
+ # Forward the SIMD capability detected in the top-level android/CMakeLists.txt so
174
+ # the dsp/ vector math (VectorMath, WsolaTimeStretcher) compiles its NEON/SSE2
175
+ # intrinsic paths instead of the scalar fallback. arm64-v8a always has NEON and
176
+ # x86_64 always has SSE2, so these are safe baselines for their ABIs.
177
+ if(HAVE_ARM_NEON_INTRINSICS)
178
+ target_compile_definitions(react-native-audio-api PRIVATE HAVE_ARM_NEON_INTRINSICS=1)
179
+ elseif(HAVE_X86_SSE2)
180
+ target_compile_definitions(react-native-audio-api PRIVATE HAVE_X86_SSE2=1)
181
+ endif()
182
+
168
183
  if (RN_AUDIO_API_STATIC_EXTERNAL_LIBS_DISABLED)
169
184
  target_compile_definitions(
170
185
  react-native-audio-api
@@ -1,5 +1,6 @@
1
1
  #include <audioapi/android/AudioAPIModule.h>
2
2
  #include <audioapi/android/JniEventPayloadParser.h>
3
+ #include <audioapi/android/system/NativeFileInfo.hpp>
3
4
  #include <memory>
4
5
 
5
6
  namespace audioapi {
@@ -53,6 +54,9 @@ void AudioAPIModule::registerNatives() {
53
54
  }
54
55
 
55
56
  void AudioAPIModule::injectJSIBindings() {
57
+ // cache app directory paths on the attached thread
58
+ NativeFileInfo::warmCache();
59
+
56
60
  #if RN_AUDIO_API_ENABLE_WORKLETS
57
61
  auto uiWorkletRuntime = weakWorkletsModuleProxy_.lock()->getUIWorkletRuntime();
58
62
  #else
@@ -28,7 +28,9 @@ OpenFileResult AndroidRotatingFileWriter::openFile(
28
28
  streamSampleRate_ = streamSampleRate;
29
29
  streamChannelCount_ = streamChannelCount;
30
30
  streamMaxBufferSize_ = streamMaxBufferSizeInFrames;
31
- fileProperties_->fileNamePrefix = !fileNameOverride.empty() ? fileNameOverride : "recording";
31
+ if (!fileNameOverride.empty()) {
32
+ fileProperties_->fileNamePrefix = fileNameOverride + fileProperties_->fileNamePrefix;
33
+ }
32
34
  if (currentWriter_ == nullptr) {
33
35
  currentWriter_ = writerFactory_(fileProperties_);
34
36
  }
@@ -0,0 +1,48 @@
1
+ #include <audioapi/android/system/NativeFileInfo.hpp>
2
+
3
+ #include <atomic>
4
+ #include <string>
5
+
6
+ namespace audioapi {
7
+
8
+ namespace {
9
+
10
+ std::string cachedFilesDir;
11
+ std::string cachedCacheDir;
12
+ std::atomic<bool> cacheReady{false};
13
+
14
+ std::string fetchFilesDirFromJava() {
15
+ static const auto method =
16
+ NativeFileInfo::javaClassStatic()->getStaticMethod<jni::JString()>("getFilesDir");
17
+ return method(NativeFileInfo::javaClassStatic())->toStdString();
18
+ }
19
+
20
+ std::string fetchCacheDirFromJava() {
21
+ static const auto method =
22
+ NativeFileInfo::javaClassStatic()->getStaticMethod<jni::JString()>("getCacheDir");
23
+ return method(NativeFileInfo::javaClassStatic())->toStdString();
24
+ }
25
+
26
+ } // namespace
27
+
28
+ void NativeFileInfo::warmCache() {
29
+ cachedFilesDir = fetchFilesDirFromJava();
30
+ cachedCacheDir = fetchCacheDirFromJava();
31
+ cacheReady.store(true, std::memory_order_release);
32
+ }
33
+
34
+ std::string NativeFileInfo::getFilesDir() {
35
+ if (cacheReady.load(std::memory_order_acquire)) {
36
+ return cachedFilesDir;
37
+ }
38
+ return fetchFilesDirFromJava();
39
+ }
40
+
41
+ std::string NativeFileInfo::getCacheDir() {
42
+ if (cacheReady.load(std::memory_order_acquire)) {
43
+ return cachedCacheDir;
44
+ }
45
+ return fetchCacheDirFromJava();
46
+ }
47
+
48
+ } // namespace audioapi
@@ -7,19 +7,17 @@ namespace audioapi {
7
7
 
8
8
  using namespace facebook;
9
9
 
10
+ /// @brief JNI bridge to Kotlin paths for recorder file output.
11
+ /// @note Call warmCache() from a JNI-attached thread
10
12
  class NativeFileInfo : public jni::JavaClass<NativeFileInfo> {
11
13
  public:
12
14
  static auto constexpr kJavaDescriptor = "Lcom/swmansion/audioapi/system/NativeFileInfo;";
13
15
 
14
- static std::string getFilesDir() {
15
- static const auto method = javaClassStatic()->getStaticMethod<jni::JString()>("getFilesDir");
16
- return method(javaClassStatic())->toStdString();
17
- }
16
+ /// @brief Fetches and caches directory paths via JNI. Must run before recording.
17
+ static void warmCache();
18
18
 
19
- static std::string getCacheDir() {
20
- static const auto method = javaClassStatic()->getStaticMethod<jni::JString()>("getCacheDir");
21
- return method(javaClassStatic())->toStdString();
22
- }
19
+ static std::string getFilesDir();
20
+ static std::string getCacheDir();
23
21
  };
24
22
 
25
23
  } // namespace audioapi
@@ -2,7 +2,7 @@
2
2
  #include <audioapi/HostObjects/sources/AudioBufferBaseSourceNodeHostObject.h>
3
3
  #include <audioapi/core/sources/AudioBufferBaseSourceNode.h>
4
4
  #include <audioapi/core/utils/Constants.h>
5
- #include <audioapi/core/utils/WsolaTimeStretcher.h>
5
+ #include <audioapi/dsp/WsolaTimeStretcher.h>
6
6
  #include <audioapi/types/NodeOptions.h>
7
7
 
8
8
  #include <algorithm>
@@ -5,7 +5,7 @@
5
5
  #include <audioapi/types/NodeOptions.h>
6
6
  #include <audioapi/utils/AudioArray.hpp>
7
7
 
8
- #include <audioapi/core/utils/WsolaTimeStretcher.h>
8
+ #include <audioapi/dsp/WsolaTimeStretcher.h>
9
9
  #include <algorithm>
10
10
  #include <cmath>
11
11
  #include <memory>
@@ -1,7 +1,7 @@
1
1
  #pragma once
2
2
 
3
3
  #include <audioapi/core/sources/AudioScheduledSourceNode.h>
4
- #include <audioapi/core/utils/WsolaTimeStretcher.h>
4
+ #include <audioapi/dsp/WsolaTimeStretcher.h>
5
5
  #include <audioapi/utils/AudioBuffer.hpp>
6
6
  #include <audioapi/utils/events/PositionChangedDispatcher.h>
7
7
 
@@ -2,8 +2,8 @@
2
2
 
3
3
  #include <audioapi/core/AudioNode.h>
4
4
  #include <audioapi/core/sources/AudioScheduledSourceNode.h>
5
- #include <audioapi/core/utils/WsolaTimeStretcher.h>
6
5
  #include <audioapi/core/utils/decoding/SeekDecoderDaemon.h>
6
+ #include <audioapi/dsp/WsolaTimeStretcher.h>
7
7
  #include <audioapi/libs/decoding/IncrementalAudioDecoder.h>
8
8
  #include <audioapi/types/NodeOptions.h>
9
9
  #include <audioapi/utils/events/PositionChangedDispatcher.h>
@@ -1,7 +1,7 @@
1
1
  #pragma once
2
2
 
3
3
  #include <audioapi/core/utils/Constants.h>
4
- #include <audioapi/core/utils/WsolaTimeStretcher.h>
4
+ #include <audioapi/dsp/WsolaTimeStretcher.h>
5
5
  #include <audioapi/libs/decoding/IncrementalAudioDecoder.h>
6
6
  #if !RN_AUDIO_API_FFMPEG_DISABLED
7
7
  #include <audioapi/libs/ffmpeg/FFmpegDecoding.h>
@@ -89,6 +89,21 @@ float maximumMagnitude(const float *inputVector, size_t numberOfElementsToProces
89
89
  return maximumValue;
90
90
  }
91
91
 
92
+ float dotProduct(
93
+ const float *inputVector1,
94
+ const float *inputVector2,
95
+ size_t numberOfElementsToProcess) {
96
+ float result = 0;
97
+ vDSP_dotpr(inputVector1, 1, inputVector2, 1, &result, numberOfElementsToProcess);
98
+ return result;
99
+ }
100
+
101
+ float sumOfSquares(const float *inputVector, size_t numberOfElementsToProcess) {
102
+ float result = 0;
103
+ vDSP_svesq(inputVector, 1, &result, numberOfElementsToProcess);
104
+ return result;
105
+ }
106
+
92
107
  void multiplyByScalarThenAddToOutput(
93
108
  const float *inputVector,
94
109
  float scalar,
@@ -578,7 +593,7 @@ float maximumMagnitude(const float *inputVector, size_t numberOfElementsToProces
578
593
  max = std::max(max, groupMaxP[3]);
579
594
 
580
595
  n = tailFrames;
581
- #elif defined(c)
596
+ #elif defined(HAVE_ARM_NEON_INTRINSICS)
582
597
  size_t tailFrames = n % 4;
583
598
  const float *endP = inputVector + n - tailFrames;
584
599
 
@@ -780,6 +795,71 @@ void interleaveStereo(
780
795
  }
781
796
  }
782
797
 
798
+ float dotProduct(
799
+ const float *inputVector1,
800
+ const float *inputVector2,
801
+ size_t numberOfElementsToProcess) {
802
+ size_t n = numberOfElementsToProcess;
803
+ size_t i = 0;
804
+ float sum = 0.0f;
805
+
806
+ #ifdef HAVE_X86_SSE2
807
+ __m128 acc = _mm_setzero_ps();
808
+ for (; i + 4 <= n; i += 4) {
809
+ __m128 v1 = _mm_loadu_ps(inputVector1 + i);
810
+ __m128 v2 = _mm_loadu_ps(inputVector2 + i);
811
+ acc = _mm_add_ps(acc, _mm_mul_ps(v1, v2));
812
+ }
813
+ float lanes[4];
814
+ _mm_storeu_ps(lanes, acc);
815
+ sum = lanes[0] + lanes[1] + lanes[2] + lanes[3];
816
+ #elif defined(HAVE_ARM_NEON_INTRINSICS)
817
+ float32x4_t acc = vdupq_n_f32(0.0f);
818
+ for (; i + 4 <= n; i += 4) {
819
+ float32x4_t v1 = vld1q_f32(inputVector1 + i);
820
+ float32x4_t v2 = vld1q_f32(inputVector2 + i);
821
+ acc = vmlaq_f32(acc, v1, v2);
822
+ }
823
+ float32x2_t pair = vadd_f32(vget_low_f32(acc), vget_high_f32(acc));
824
+ sum = vget_lane_f32(vpadd_f32(pair, pair), 0);
825
+ #endif
826
+
827
+ for (; i < n; ++i) {
828
+ sum += inputVector1[i] * inputVector2[i];
829
+ }
830
+ return sum;
831
+ }
832
+
833
+ float sumOfSquares(const float *inputVector, size_t numberOfElementsToProcess) {
834
+ size_t n = numberOfElementsToProcess;
835
+ size_t i = 0;
836
+ float sum = 0.0f;
837
+
838
+ #ifdef HAVE_X86_SSE2
839
+ __m128 acc = _mm_setzero_ps();
840
+ for (; i + 4 <= n; i += 4) {
841
+ __m128 v = _mm_loadu_ps(inputVector + i);
842
+ acc = _mm_add_ps(acc, _mm_mul_ps(v, v));
843
+ }
844
+ float lanes[4];
845
+ _mm_storeu_ps(lanes, acc);
846
+ sum = lanes[0] + lanes[1] + lanes[2] + lanes[3];
847
+ #elif defined(HAVE_ARM_NEON_INTRINSICS)
848
+ float32x4_t acc = vdupq_n_f32(0.0f);
849
+ for (; i + 4 <= n; i += 4) {
850
+ float32x4_t v = vld1q_f32(inputVector + i);
851
+ acc = vmlaq_f32(acc, v, v);
852
+ }
853
+ float32x2_t pair = vadd_f32(vget_low_f32(acc), vget_high_f32(acc));
854
+ sum = vget_lane_f32(vpadd_f32(pair, pair), 0);
855
+ #endif
856
+
857
+ for (; i < n; ++i) {
858
+ sum += inputVector[i] * inputVector[i];
859
+ }
860
+ return sum;
861
+ }
862
+
783
863
  #endif
784
864
 
785
865
  } // namespace audioapi::dsp
@@ -67,6 +67,15 @@ void multiply(
67
67
  // Finds the maximum magnitude of a float vector.
68
68
  float maximumMagnitude(const float *inputVector, size_t numberOfElementsToProcess);
69
69
 
70
+ // Returns the dot product of two float vectors (sum of element-wise products).
71
+ float dotProduct(
72
+ const float *inputVector1,
73
+ const float *inputVector2,
74
+ size_t numberOfElementsToProcess);
75
+
76
+ // Returns the sum of squares of a float vector
77
+ float sumOfSquares(const float *inputVector, size_t numberOfElementsToProcess);
78
+
70
79
  void interleaveStereo(
71
80
  const float *inputLeft,
72
81
  const float *inputRight,
@@ -1,5 +1,6 @@
1
1
  #include <audioapi/core/utils/Constants.h>
2
- #include <audioapi/core/utils/WsolaTimeStretcher.h>
2
+ #include <audioapi/dsp/VectorMath.h>
3
+ #include <audioapi/dsp/WsolaTimeStretcher.h>
3
4
 
4
5
  #include <algorithm>
5
6
  #include <cmath>
@@ -56,6 +57,9 @@ void WsolaTimeStretcher::configure(size_t channels, float sampleRate) {
56
57
  targetBlock_.assign(channels_, std::vector<float>(windowSize_, 0.0f));
57
58
  optimalBlock_.assign(channels_, std::vector<float>(windowSize_, 0.0f));
58
59
  targetEnergy_.assign(channels_, 0.0f);
60
+ // Search span covers every candidate offset [0, searchIntervalFrames_) plus a
61
+ // full trailing window, so any candidate slice stays in bounds.
62
+ searchSpan_.assign(channels_, std::vector<float>(searchIntervalFrames_ + windowSize_, 0.0f));
59
63
 
60
64
  reset();
61
65
  }
@@ -266,9 +270,20 @@ bool WsolaTimeStretcher::targetIsWithinSearchRegion() const {
266
270
  targetBlockIndex_ + static_cast<int>(windowSize_) <= searchBlockIndex_ + searchBlockSize;
267
271
  }
268
272
 
273
+ void WsolaTimeStretcher::fillSearchSpan() {
274
+ const size_t spanLength = searchIntervalFrames_ + windowSize_;
275
+ for (size_t channel = 0; channel < channels_; ++channel) {
276
+ auto &span = searchSpan_[channel];
277
+ for (size_t j = 0; j < spanLength; ++j) {
278
+ span[j] = sampleAt(channel, searchBlockIndex_ + static_cast<int>(j));
279
+ }
280
+ }
281
+ }
282
+
269
283
  int WsolaTimeStretcher::findOptimalBlockIndex() {
270
284
  fillBlock(targetBlock_, targetBlockIndex_);
271
285
  computeTargetEnergy();
286
+ fillSearchSpan();
272
287
 
273
288
  const int candidateCount = static_cast<int>(searchIntervalFrames_);
274
289
  if (candidateCount <= 1) {
@@ -322,18 +337,15 @@ int WsolaTimeStretcher::findOptimalBlockIndex() {
322
337
 
323
338
  float WsolaTimeStretcher::similarityAt(int candidateIndex) const {
324
339
  static constexpr float EPSILON = 1e-12f;
340
+ const int offset = candidateIndex - searchBlockIndex_;
325
341
  float score = 0.0f;
326
342
 
327
343
  for (size_t channel = 0; channel < channels_; ++channel) {
328
- float dot = 0.0f;
329
- float candidateEnergy = 0.0f;
330
-
331
- for (size_t frame = 0; frame < windowSize_; frame += SIMILARITY_FRAME_STRIDE) {
332
- const float target = targetBlock_[channel][frame];
333
- const float candidate = sampleAt(channel, candidateIndex + static_cast<int>(frame));
334
- dot += target * candidate;
335
- candidateEnergy += candidate * candidate;
336
- }
344
+ const float *target = targetBlock_[channel].data();
345
+ const float *candidate = searchSpan_[channel].data() + offset;
346
+
347
+ const float dot = dsp::dotProduct(target, candidate, windowSize_);
348
+ const float candidateEnergy = dsp::sumOfSquares(candidate, windowSize_);
337
349
 
338
350
  score += dot / std::sqrt(targetEnergy_[channel] * candidateEnergy + EPSILON);
339
351
  }
@@ -387,12 +399,7 @@ void WsolaTimeStretcher::fillBlock(std::vector<std::vector<float>> &block, int f
387
399
 
388
400
  void WsolaTimeStretcher::computeTargetEnergy() {
389
401
  for (size_t channel = 0; channel < channels_; ++channel) {
390
- float energy = 0.0f;
391
- for (size_t frame = 0; frame < windowSize_; frame += SIMILARITY_FRAME_STRIDE) {
392
- const float value = targetBlock_[channel][frame];
393
- energy += value * value;
394
- }
395
- targetEnergy_[channel] = energy;
402
+ targetEnergy_[channel] = dsp::sumOfSquares(targetBlock_[channel].data(), windowSize_);
396
403
  }
397
404
  }
398
405
 
@@ -48,11 +48,7 @@ class WsolaTimeStretcher {
48
48
  private:
49
49
  static constexpr float OLA_WINDOW_MS = 20.0f;
50
50
  static constexpr float SEARCH_INTERVAL_MS = 30.0f;
51
- // Chromium uses a denser decimated search, but pairs it with SIMD dot products
52
- // and precomputed moving energies. This lighter search keeps iOS route changes
53
- // from overloading the real-time audio callback in the current implementation.
54
51
  static constexpr size_t SEARCH_DECIMATION = 12;
55
- static constexpr size_t SIMILARITY_FRAME_STRIDE = 4;
56
52
  static constexpr size_t QUEUE_COMPACT_THRESHOLD_FRAMES = 4096;
57
53
 
58
54
  size_t channels_{0};
@@ -82,6 +78,11 @@ class WsolaTimeStretcher {
82
78
  std::vector<std::vector<float>> targetBlock_;
83
79
  std::vector<std::vector<float>> optimalBlock_;
84
80
  std::vector<float> targetEnergy_;
81
+ // Contiguous, pitch-resampled copy of the current search region per channel.
82
+ // Materialized once per findOptimalBlockIndex() so every candidate window is a
83
+ // contiguous slice, enabling SIMD cross-correlation instead of per-sample
84
+ // interpolation inside the search loop.
85
+ std::vector<std::vector<float>> searchSpan_;
85
86
 
86
87
  void appendInput(const DSPAudioBuffer &input, size_t inputFrames);
87
88
  size_t availableOutputFrames() const;
@@ -91,6 +92,7 @@ class WsolaTimeStretcher {
91
92
  bool canRunIteration() const;
92
93
  bool targetIsWithinSearchRegion() const;
93
94
  int findOptimalBlockIndex();
95
+ void fillSearchSpan();
94
96
  float similarityAt(int candidateIndex) const;
95
97
  [[nodiscard]] int maxSourceIndexForBlock(int blockStartFrame) const;
96
98
  float sampleAt(size_t channel, int frameIndex) const;
@@ -36,7 +36,9 @@ OpenFileResult IOSRotatingFileWriter::openFile(
36
36
  {
37
37
  streamFormat_ = streamFormat;
38
38
  streamMaxBufferSizeInFrames_ = streamMaxBufferSizeInFrames;
39
- fileProperties_->fileNamePrefix = !fileNameOverride.empty() ? fileNameOverride : "recording";
39
+ if (!fileNameOverride.empty()) {
40
+ fileProperties_->fileNamePrefix = fileNameOverride + fileProperties_->fileNamePrefix;
41
+ }
40
42
  if (currentWriter_ == nullptr) {
41
43
  currentWriter_ = writerFactory_(fileProperties_);
42
44
  }
@@ -25,6 +25,7 @@
25
25
 
26
26
  @interface AudioEngine () {
27
27
  std::mutex _engineLock;
28
+ BOOL _isRebuildingAudioEngine;
28
29
  }
29
30
 
30
31
  @property (nonatomic, strong)
@@ -408,15 +409,24 @@ static AudioEngine *_sharedInstance = nil;
408
409
 
409
410
  - (void)rebuildAudioEngineAndResumeIfNeeded
410
411
  {
412
+ if (_isRebuildingAudioEngine) {
413
+ return;
414
+ }
415
+
416
+ _isRebuildingAudioEngine = YES;
417
+
411
418
  if ([self.audioEngine isRunning]) {
412
419
  [self.audioEngine stop];
413
420
  }
414
421
 
415
422
  [self rebuildAudioEngine];
423
+ self.sessionDeactivationInvalidatedGraph = false;
416
424
 
417
425
  if (self.state == AudioEngineState::AudioEngineStateRunning) {
418
426
  [self startEngine];
419
427
  }
428
+
429
+ _isRebuildingAudioEngine = NO;
420
430
  }
421
431
 
422
432
  - (void)rebuildAudioEngine
@@ -19,9 +19,15 @@ class AudioBufferSourceNode {
19
19
  start(when = 0, offset, duration) {
20
20
  this.node.start(when, offset, duration);
21
21
  }
22
- stop(when = 0) {
22
+ stop(when) {
23
23
  this.node.stop(when);
24
24
  }
25
+ get onEnded() {
26
+ return this.node.onEnded;
27
+ }
28
+ set onEnded(callback) {
29
+ this.node.onEnded = callback;
30
+ }
25
31
  get detune() {
26
32
  return this.node.detune;
27
33
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_custom","require","_utils","AudioBufferSourceNode","constructor","context","options","node","pitchCorrection","AudioBufferSourceNodeStretcher","AudioBufferSourceNodeStandard","connect","destination","disconnect","start","when","offset","duration","stop","detune","playbackRate","buffer","loop","value","loopStart","loopEnd","loopSkip","onLoopEnded","callback","exports","default"],"sourceRoot":"../../../src","sources":["web-core/AudioBufferSourceNode.web.ts"],"mappings":";;;;;;AAMA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEe,MAAME,qBAAqB,CAAC;EAGzCC,WAAWA,CAACC,OAAyB,EAAEC,OAAkC,EAAE;IACzE,IAAI,CAACC,IAAI,GAAGD,OAAO,EAAEE,eAAe,GAChC,IAAIC,sCAA8B,CAACJ,OAAO,EAAEC,OAAO,CAAC,GACpD,IAAII,oCAA6B,CAACL,OAAO,EAAEC,OAAO,CAAC;EACzD;EAEAK,OAAOA,CAACC,WAAmC,EAA0B;IACnE,OAAO,IAAI,CAACL,IAAI,CAACI,OAAO,CAACC,WAAW,CAAC;EACvC;EAEAC,UAAUA,CAACD,WAAoC,EAAQ;IACrD,IAAI,CAACL,IAAI,CAACM,UAAU,CAACD,WAAW,CAAC;EACnC;EAEAE,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAEC,MAAe,EAAEC,QAAiB,EAAQ;IAChE,IAAI,CAACV,IAAI,CAACO,KAAK,CAACC,IAAI,EAAEC,MAAM,EAAEC,QAAQ,CAAC;EACzC;EAEAC,IAAIA,CAACH,IAAY,GAAG,CAAC,EAAQ;IAC3B,IAAI,CAACR,IAAI,CAACW,IAAI,CAACH,IAAI,CAAC;EACtB;EAEA,IAAII,MAAMA,CAAA,EAAe;IACvB,OAAO,IAAI,CAACZ,IAAI,CAACY,MAAM;EACzB;EAEA,IAAIC,YAAYA,CAAA,EAAe;IAC7B,OAAO,IAAI,CAACb,IAAI,CAACa,YAAY;EAC/B;EAEA,IAAIC,MAAMA,CAAA,EAAuB;IAC/B,OAAO,IAAI,CAACd,IAAI,CAACc,MAAM;EACzB;EAEA,IAAIA,MAAMA,CAACA,MAA0B,EAAE;IACrC,IAAI,CAACd,IAAI,CAACc,MAAM,GAAGA,MAAM;EAC3B;EAEA,IAAIC,IAAIA,CAAA,EAAY;IAClB,OAAO,IAAI,CAACf,IAAI,CAACe,IAAI;EACvB;EAEA,IAAIA,IAAIA,CAACC,KAAc,EAAE;IACvB,IAAI,CAAChB,IAAI,CAACe,IAAI,GAAGC,KAAK;EACxB;EAEA,IAAIC,SAASA,CAAA,EAAW;IACtB,OAAO,IAAI,CAACjB,IAAI,CAACiB,SAAS;EAC5B;EAEA,IAAIA,SAASA,CAACD,KAAa,EAAE;IAC3B,IAAI,CAAChB,IAAI,CAACiB,SAAS,GAAGD,KAAK;EAC7B;EAEA,IAAIE,OAAOA,CAAA,EAAW;IACpB,OAAO,IAAI,CAAClB,IAAI,CAACkB,OAAO;EAC1B;EAEA,IAAIA,OAAOA,CAACF,KAAa,EAAE;IACzB,IAAI,CAAChB,IAAI,CAACkB,OAAO,GAAGF,KAAK;EAC3B;EAEA,IAAIG,QAAQA,CAAA,EAAY;IACtB,OAAO,IAAI,CAACnB,IAAI,CAACmB,QAAQ;EAC3B;EAEA,IAAIA,QAAQA,CAACH,KAAc,EAAE;IAC3B,IAAI,CAAChB,IAAI,CAACmB,QAAQ,GAAGH,KAAK;EAC5B;EAEA,IAAII,WAAWA,CAAA,EAA0C;IACvD,OAAO,IAAI,CAACpB,IAAI,CAACoB,WAAW;EAC9B;EAEA,IAAIA,WAAWA,CAACC,QAA0C,EAAE;IAC1D,IAAI,CAACrB,IAAI,CAACoB,WAAW,GAAGC,QAAQ;EAClC;AACF;AAACC,OAAA,CAAAC,OAAA,GAAA3B,qBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_custom","require","_utils","AudioBufferSourceNode","constructor","context","options","node","pitchCorrection","AudioBufferSourceNodeStretcher","AudioBufferSourceNodeStandard","connect","destination","disconnect","start","when","offset","duration","stop","onEnded","callback","detune","playbackRate","buffer","loop","value","loopStart","loopEnd","loopSkip","onLoopEnded","exports","default"],"sourceRoot":"../../../src","sources":["web-core/AudioBufferSourceNode.web.ts"],"mappings":";;;;;;AAMA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEe,MAAME,qBAAqB,CAAC;EAGzCC,WAAWA,CAACC,OAAyB,EAAEC,OAAkC,EAAE;IACzE,IAAI,CAACC,IAAI,GAAGD,OAAO,EAAEE,eAAe,GAChC,IAAIC,sCAA8B,CAACJ,OAAO,EAAEC,OAAO,CAAC,GACpD,IAAII,oCAA6B,CAACL,OAAO,EAAEC,OAAO,CAAC;EACzD;EAEAK,OAAOA,CAACC,WAAmC,EAA0B;IACnE,OAAO,IAAI,CAACL,IAAI,CAACI,OAAO,CAACC,WAAW,CAAC;EACvC;EAEAC,UAAUA,CAACD,WAAoC,EAAQ;IACrD,IAAI,CAACL,IAAI,CAACM,UAAU,CAACD,WAAW,CAAC;EACnC;EAEAE,KAAKA,CAACC,IAAY,GAAG,CAAC,EAAEC,MAAe,EAAEC,QAAiB,EAAQ;IAChE,IAAI,CAACV,IAAI,CAACO,KAAK,CAACC,IAAI,EAAEC,MAAM,EAAEC,QAAQ,CAAC;EACzC;EAEAC,IAAIA,CAACH,IAAa,EAAQ;IACxB,IAAI,CAACR,IAAI,CAACW,IAAI,CAACH,IAAI,CAAC;EACtB;EAEA,IAAII,OAAOA,CAAA,EAAoC;IAC7C,OAAO,IAAI,CAACZ,IAAI,CAACY,OAAO;EAC1B;EAEA,IAAIA,OAAOA,CAACC,QAAyC,EAAE;IACrD,IAAI,CAACb,IAAI,CAACY,OAAO,GAAGC,QAAQ;EAC9B;EAEA,IAAIC,MAAMA,CAAA,EAAe;IACvB,OAAO,IAAI,CAACd,IAAI,CAACc,MAAM;EACzB;EAEA,IAAIC,YAAYA,CAAA,EAAe;IAC7B,OAAO,IAAI,CAACf,IAAI,CAACe,YAAY;EAC/B;EAEA,IAAIC,MAAMA,CAAA,EAAuB;IAC/B,OAAO,IAAI,CAAChB,IAAI,CAACgB,MAAM;EACzB;EAEA,IAAIA,MAAMA,CAACA,MAA0B,EAAE;IACrC,IAAI,CAAChB,IAAI,CAACgB,MAAM,GAAGA,MAAM;EAC3B;EAEA,IAAIC,IAAIA,CAAA,EAAY;IAClB,OAAO,IAAI,CAACjB,IAAI,CAACiB,IAAI;EACvB;EAEA,IAAIA,IAAIA,CAACC,KAAc,EAAE;IACvB,IAAI,CAAClB,IAAI,CAACiB,IAAI,GAAGC,KAAK;EACxB;EAEA,IAAIC,SAASA,CAAA,EAAW;IACtB,OAAO,IAAI,CAACnB,IAAI,CAACmB,SAAS;EAC5B;EAEA,IAAIA,SAASA,CAACD,KAAa,EAAE;IAC3B,IAAI,CAAClB,IAAI,CAACmB,SAAS,GAAGD,KAAK;EAC7B;EAEA,IAAIE,OAAOA,CAAA,EAAW;IACpB,OAAO,IAAI,CAACpB,IAAI,CAACoB,OAAO;EAC1B;EAEA,IAAIA,OAAOA,CAACF,KAAa,EAAE;IACzB,IAAI,CAAClB,IAAI,CAACoB,OAAO,GAAGF,KAAK;EAC3B;EAEA,IAAIG,QAAQA,CAAA,EAAY;IACtB,OAAO,IAAI,CAACrB,IAAI,CAACqB,QAAQ;EAC3B;EAEA,IAAIA,QAAQA,CAACH,KAAc,EAAE;IAC3B,IAAI,CAAClB,IAAI,CAACqB,QAAQ,GAAGH,KAAK;EAC5B;EAEA,IAAII,WAAWA,CAAA,EAA0C;IACvD,OAAO,IAAI,CAACtB,IAAI,CAACsB,WAAW;EAC9B;EAEA,IAAIA,WAAWA,CAACT,QAA0C,EAAE;IAC1D,IAAI,CAACb,IAAI,CAACsB,WAAW,GAAGT,QAAQ;EAClC;AACF;AAACU,OAAA,CAAAC,OAAA,GAAA5B,qBAAA","ignoreList":[]}
@@ -67,10 +67,8 @@ class AudioContext {
67
67
  feedback
68
68
  });
69
69
  }
70
- createBufferSource(pitchCorrection) {
71
- return new _AudioBufferSourceNode.default(this, {
72
- pitchCorrection
73
- });
70
+ createBufferSource(options) {
71
+ return new _AudioBufferSourceNode.default(this, options);
74
72
  }
75
73
  createMediaElementSource(mediaElement) {
76
74
  return new _MediaElementAudioSourceNode.default(this, this.context.createMediaElementSource(mediaElement), mediaElement);
@@ -1 +1 @@
1
- {"version":3,"names":["_errors","require","_AnalyserNode","_interopRequireDefault","_AudioBuffer","_AudioBufferSourceNode","_AudioDestinationNode","_BiquadFilterNode","_ConvolverNode","_DelayNode","_GainNode","_IIRFilterNode","_MediaElementAudioSourceNode","_OscillatorNode","_PeriodicWave","_StereoPannerNode","_ConstantSourceNode","_WaveShaperNode","e","__esModule","default","AudioContext","constructor","options","sampleRate","NotSupportedError","context","window","destination","AudioDestinationNode","currentTime","state","createOscillator","OscillatorNode","createConstantSource","ConstantSourceNode","createGain","GainNode","createDelay","maxDelayTime","DelayNode","createStereoPanner","StereoPannerNode","createBiquadFilter","BiquadFilterNode","createConvolver","ConvolverNode","createIIRFilter","feedforward","feedback","IIRFilterNode","createBufferSource","pitchCorrection","AudioBufferSourceNode","createMediaElementSource","mediaElement","MediaElementAudioSourceNode","createBuffer","numberOfChannels","length","AudioBuffer","createPeriodicWave","real","imag","constraints","InvalidAccessError","PeriodicWave","createAnalyser","AnalyserNode","createWaveShaper","WaveShaperNode","decodeAudioData","source","fetchOptions","ArrayBuffer","decodedData","response","fetch","ok","arrayBuffer","TypeError","close","resume","suspend","exports"],"sourceRoot":"../../../src","sources":["web-core/AudioContext.web.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_errors","require","_AnalyserNode","_interopRequireDefault","_AudioBuffer","_AudioBufferSourceNode","_AudioDestinationNode","_BiquadFilterNode","_ConvolverNode","_DelayNode","_GainNode","_IIRFilterNode","_MediaElementAudioSourceNode","_OscillatorNode","_PeriodicWave","_StereoPannerNode","_ConstantSourceNode","_WaveShaperNode","e","__esModule","default","AudioContext","constructor","options","sampleRate","NotSupportedError","context","window","destination","AudioDestinationNode","currentTime","state","createOscillator","OscillatorNode","createConstantSource","ConstantSourceNode","createGain","GainNode","createDelay","maxDelayTime","DelayNode","createStereoPanner","StereoPannerNode","createBiquadFilter","BiquadFilterNode","createConvolver","ConvolverNode","createIIRFilter","feedforward","feedback","IIRFilterNode","createBufferSource","AudioBufferSourceNode","createMediaElementSource","mediaElement","MediaElementAudioSourceNode","createBuffer","numberOfChannels","length","AudioBuffer","createPeriodicWave","real","imag","constraints","InvalidAccessError","PeriodicWave","createAnalyser","AnalyserNode","createWaveShaper","WaveShaperNode","decodeAudioData","source","fetchOptions","ArrayBuffer","decodedData","response","fetch","ok","arrayBuffer","TypeError","close","resume","suspend","exports"],"sourceRoot":"../../../src","sources":["web-core/AudioContext.web.ts"],"mappings":"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","ignoreList":[]}
@@ -67,10 +67,8 @@ class OfflineAudioContext {
67
67
  feedback
68
68
  });
69
69
  }
70
- createBufferSource(pitchCorrection) {
71
- return new _AudioBufferSourceNode.default(this, {
72
- pitchCorrection
73
- });
70
+ createBufferSource(options) {
71
+ return new _AudioBufferSourceNode.default(this, options);
74
72
  }
75
73
  createBuffer(numberOfChannels, length, sampleRate) {
76
74
  if (numberOfChannels < 1 || numberOfChannels >= 32) {
@@ -1 +1 @@
1
- {"version":3,"names":["_errors","require","_AnalyserNode","_interopRequireDefault","_AudioDestinationNode","_AudioBuffer","_AudioBufferSourceNode","_BiquadFilterNode","_IIRFilterNode","_GainNode","_OscillatorNode","_PeriodicWave","_StereoPannerNode","_ConstantSourceNode","_WaveShaperNode","_ConvolverNode","_DelayNode","e","__esModule","default","OfflineAudioContext","constructor","arg0","arg1","arg2","context","window","NotSupportedError","sampleRate","destination","AudioDestinationNode","currentTime","state","createOscillator","OscillatorNode","createConstantSource","ConstantSourceNode","createGain","GainNode","createDelay","maxDelayTime","DelayNode","createStereoPanner","StereoPannerNode","createBiquadFilter","BiquadFilterNode","createConvolver","ConvolverNode","createIIRFilter","feedforward","feedback","IIRFilterNode","createBufferSource","pitchCorrection","AudioBufferSourceNode","createBuffer","numberOfChannels","length","AudioBuffer","createPeriodicWave","real","imag","constraints","InvalidAccessError","PeriodicWave","createAnalyser","AnalyserNode","createWaveShaper","WaveShaperNode","decodeAudioDataSource","source","arrayBuffer","fetch","then","response","decodeAudioData","startRendering","resume","suspend","suspendTime","exports"],"sourceRoot":"../../../src","sources":["web-core/OfflineAudioContext.web.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_errors","require","_AnalyserNode","_interopRequireDefault","_AudioDestinationNode","_AudioBuffer","_AudioBufferSourceNode","_BiquadFilterNode","_IIRFilterNode","_GainNode","_OscillatorNode","_PeriodicWave","_StereoPannerNode","_ConstantSourceNode","_WaveShaperNode","_ConvolverNode","_DelayNode","e","__esModule","default","OfflineAudioContext","constructor","arg0","arg1","arg2","context","window","NotSupportedError","sampleRate","destination","AudioDestinationNode","currentTime","state","createOscillator","OscillatorNode","createConstantSource","ConstantSourceNode","createGain","GainNode","createDelay","maxDelayTime","DelayNode","createStereoPanner","StereoPannerNode","createBiquadFilter","BiquadFilterNode","createConvolver","ConvolverNode","createIIRFilter","feedforward","feedback","IIRFilterNode","createBufferSource","options","AudioBufferSourceNode","createBuffer","numberOfChannels","length","AudioBuffer","createPeriodicWave","real","imag","constraints","InvalidAccessError","PeriodicWave","createAnalyser","AnalyserNode","createWaveShaper","WaveShaperNode","decodeAudioDataSource","source","arrayBuffer","fetch","then","response","decodeAudioData","startRendering","resume","suspend","suspendTime","exports"],"sourceRoot":"../../../src","sources":["web-core/OfflineAudioContext.web.ts"],"mappings":"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","ignoreList":[]}
@@ -9,6 +9,13 @@ Object.defineProperty(exports, "AudioBufferSourceNodeStretcher", {
9
9
  return _AudioBufferSourceNodeStretcher.default;
10
10
  }
11
11
  });
12
+ Object.defineProperty(exports, "LoadCustomWasm", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _LoadCustomWasm.default;
16
+ }
17
+ });
12
18
  var _AudioBufferSourceNodeStretcher = _interopRequireDefault(require("./wasm-audio-bufffer-source-node-stretcher/AudioBufferSourceNodeStretcher"));
19
+ var _LoadCustomWasm = _interopRequireDefault(require("./wasm-audio-bufffer-source-node-stretcher/LoadCustomWasm"));
13
20
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_AudioBufferSourceNodeStretcher","_interopRequireDefault","require","e","__esModule","default"],"sourceRoot":"../../../../src","sources":["web-core/custom/index.ts"],"mappings":";;;;;;;;;;;AAAA,IAAAA,+BAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAsI,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
1
+ {"version":3,"names":["_AudioBufferSourceNodeStretcher","_interopRequireDefault","require","_LoadCustomWasm","e","__esModule","default"],"sourceRoot":"../../../../src","sources":["web-core/custom/index.ts"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,+BAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,eAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAsG,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}