react-native-audio-api 0.8.3-nightly-e918179-20251003 → 0.8.3-nightly-ea268f4-20251005

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 (158) hide show
  1. package/common/cpp/audioapi/AudioAPIModuleInstaller.h +31 -14
  2. package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.cpp +74 -4
  3. package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.h +3 -0
  4. package/common/cpp/audioapi/HostObjects/WorkletProcessingNodeHostObject.h +18 -0
  5. package/common/cpp/audioapi/HostObjects/sources/AudioBufferSourceNodeHostObject.cpp +20 -1
  6. package/common/cpp/audioapi/HostObjects/sources/AudioBufferSourceNodeHostObject.h +3 -0
  7. package/common/cpp/audioapi/HostObjects/sources/ConstantSourceNodeHostObject.cpp +19 -0
  8. package/common/cpp/audioapi/HostObjects/sources/ConstantSourceNodeHostObject.h +21 -0
  9. package/common/cpp/audioapi/HostObjects/sources/WorkletSourceNodeHostObject.h +18 -0
  10. package/common/cpp/audioapi/core/AudioContext.cpp +2 -2
  11. package/common/cpp/audioapi/core/AudioContext.h +2 -2
  12. package/common/cpp/audioapi/core/AudioParam.cpp +2 -2
  13. package/common/cpp/audioapi/core/BaseAudioContext.cpp +32 -3
  14. package/common/cpp/audioapi/core/BaseAudioContext.h +9 -4
  15. package/common/cpp/audioapi/core/OfflineAudioContext.cpp +2 -2
  16. package/common/cpp/audioapi/core/OfflineAudioContext.h +2 -2
  17. package/common/cpp/audioapi/core/effects/WorkletNode.cpp +4 -3
  18. package/common/cpp/audioapi/core/effects/WorkletNode.h +4 -3
  19. package/common/cpp/audioapi/core/effects/WorkletProcessingNode.cpp +89 -0
  20. package/common/cpp/audioapi/core/effects/WorkletProcessingNode.h +52 -0
  21. package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.cpp +1 -6
  22. package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.cpp +30 -0
  23. package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.h +6 -0
  24. package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.cpp +1 -6
  25. package/common/cpp/audioapi/core/sources/ConstantSourceNode.cpp +51 -0
  26. package/common/cpp/audioapi/core/sources/ConstantSourceNode.h +26 -0
  27. package/common/cpp/audioapi/core/sources/WorkletSourceNode.cpp +82 -0
  28. package/common/cpp/audioapi/core/sources/WorkletSourceNode.h +47 -0
  29. package/common/cpp/audioapi/core/utils/AudioParamEventQueue.cpp +12 -6
  30. package/common/cpp/audioapi/core/utils/Constants.h +5 -0
  31. package/common/cpp/audioapi/core/utils/worklets/SafeIncludes.h +7 -0
  32. package/common/cpp/audioapi/core/utils/worklets/{UiWorkletsRunner.cpp → WorkletsRunner.cpp} +2 -2
  33. package/common/cpp/audioapi/core/utils/worklets/{UiWorkletsRunner.h → WorkletsRunner.h} +2 -2
  34. package/common/cpp/audioapi/events/AudioEventHandlerRegistry.h +2 -1
  35. package/common/cpp/audioapi/jsi/JsiPromise.cpp +23 -27
  36. package/common/cpp/audioapi/jsi/JsiPromise.h +10 -1
  37. package/common/cpp/audioapi/utils/ThreadPool.hpp +104 -0
  38. package/common/cpp/test/AudioParamTest.cpp +204 -0
  39. package/common/cpp/test/CMakeLists.txt +3 -0
  40. package/common/cpp/test/GainTest.cpp +2 -1
  41. package/common/cpp/test/OscillatorTest.cpp +2 -1
  42. package/ios/audioapi/ios/core/IOSAudioRecorder.h +2 -1
  43. package/lib/commonjs/api.js +27 -0
  44. package/lib/commonjs/api.js.map +1 -1
  45. package/lib/commonjs/api.web.js +8 -0
  46. package/lib/commonjs/api.web.js.map +1 -1
  47. package/lib/commonjs/core/AudioBufferBaseSourceNode.js +7 -7
  48. package/lib/commonjs/core/AudioBufferBaseSourceNode.js.map +1 -1
  49. package/lib/commonjs/core/AudioBufferQueueSourceNode.js +1 -6
  50. package/lib/commonjs/core/AudioBufferQueueSourceNode.js.map +1 -1
  51. package/lib/commonjs/core/AudioBufferSourceNode.js +15 -0
  52. package/lib/commonjs/core/AudioBufferSourceNode.js.map +1 -1
  53. package/lib/commonjs/core/AudioContext.js +10 -1
  54. package/lib/commonjs/core/AudioContext.js.map +1 -1
  55. package/lib/commonjs/core/BaseAudioContext.js +35 -2
  56. package/lib/commonjs/core/BaseAudioContext.js.map +1 -1
  57. package/lib/commonjs/core/ConstantSourceNode.js +17 -0
  58. package/lib/commonjs/core/ConstantSourceNode.js.map +1 -0
  59. package/lib/commonjs/core/OfflineAudioContext.js +11 -2
  60. package/lib/commonjs/core/OfflineAudioContext.js.map +1 -1
  61. package/lib/commonjs/core/WorkletProcessingNode.js +11 -0
  62. package/lib/commonjs/core/WorkletProcessingNode.js.map +1 -0
  63. package/lib/commonjs/core/WorkletSourceNode.js +11 -0
  64. package/lib/commonjs/core/WorkletSourceNode.js.map +1 -0
  65. package/lib/commonjs/utils/index.js.map +1 -1
  66. package/lib/commonjs/web-core/AudioContext.js +4 -0
  67. package/lib/commonjs/web-core/AudioContext.js.map +1 -1
  68. package/lib/commonjs/web-core/ConstantSourceNode.js +17 -0
  69. package/lib/commonjs/web-core/ConstantSourceNode.js.map +1 -0
  70. package/lib/commonjs/web-core/OfflineAudioContext.js +4 -0
  71. package/lib/commonjs/web-core/OfflineAudioContext.js.map +1 -1
  72. package/lib/module/api.js +4 -1
  73. package/lib/module/api.js.map +1 -1
  74. package/lib/module/api.web.js +1 -0
  75. package/lib/module/api.web.js.map +1 -1
  76. package/lib/module/core/AudioBufferBaseSourceNode.js +7 -7
  77. package/lib/module/core/AudioBufferBaseSourceNode.js.map +1 -1
  78. package/lib/module/core/AudioBufferQueueSourceNode.js +1 -6
  79. package/lib/module/core/AudioBufferQueueSourceNode.js.map +1 -1
  80. package/lib/module/core/AudioBufferSourceNode.js +15 -0
  81. package/lib/module/core/AudioBufferSourceNode.js.map +1 -1
  82. package/lib/module/core/AudioContext.js +10 -1
  83. package/lib/module/core/AudioContext.js.map +1 -1
  84. package/lib/module/core/BaseAudioContext.js +35 -2
  85. package/lib/module/core/BaseAudioContext.js.map +1 -1
  86. package/lib/module/core/ConstantSourceNode.js +11 -0
  87. package/lib/module/core/ConstantSourceNode.js.map +1 -0
  88. package/lib/module/core/OfflineAudioContext.js +11 -2
  89. package/lib/module/core/OfflineAudioContext.js.map +1 -1
  90. package/lib/module/core/WorkletProcessingNode.js +5 -0
  91. package/lib/module/core/WorkletProcessingNode.js.map +1 -0
  92. package/lib/module/core/WorkletSourceNode.js +5 -0
  93. package/lib/module/core/WorkletSourceNode.js.map +1 -0
  94. package/lib/module/utils/index.js.map +1 -1
  95. package/lib/module/web-core/AudioContext.js +4 -0
  96. package/lib/module/web-core/AudioContext.js.map +1 -1
  97. package/lib/module/web-core/ConstantSourceNode.js +11 -0
  98. package/lib/module/web-core/ConstantSourceNode.js.map +1 -0
  99. package/lib/module/web-core/OfflineAudioContext.js +4 -0
  100. package/lib/module/web-core/OfflineAudioContext.js.map +1 -1
  101. package/lib/typescript/api.d.ts +6 -3
  102. package/lib/typescript/api.d.ts.map +1 -1
  103. package/lib/typescript/api.web.d.ts +1 -0
  104. package/lib/typescript/api.web.d.ts.map +1 -1
  105. package/lib/typescript/core/AudioBufferBaseSourceNode.d.ts +2 -2
  106. package/lib/typescript/core/AudioBufferBaseSourceNode.d.ts.map +1 -1
  107. package/lib/typescript/core/AudioBufferQueueSourceNode.d.ts +1 -1
  108. package/lib/typescript/core/AudioBufferQueueSourceNode.d.ts.map +1 -1
  109. package/lib/typescript/core/AudioBufferSourceNode.d.ts +4 -0
  110. package/lib/typescript/core/AudioBufferSourceNode.d.ts.map +1 -1
  111. package/lib/typescript/core/AudioContext.d.ts +1 -0
  112. package/lib/typescript/core/AudioContext.d.ts.map +1 -1
  113. package/lib/typescript/core/BaseAudioContext.d.ts +8 -2
  114. package/lib/typescript/core/BaseAudioContext.d.ts.map +1 -1
  115. package/lib/typescript/core/ConstantSourceNode.d.ts +9 -0
  116. package/lib/typescript/core/ConstantSourceNode.d.ts.map +1 -0
  117. package/lib/typescript/core/OfflineAudioContext.d.ts +1 -0
  118. package/lib/typescript/core/OfflineAudioContext.d.ts.map +1 -1
  119. package/lib/typescript/core/WorkletProcessingNode.d.ts +4 -0
  120. package/lib/typescript/core/WorkletProcessingNode.d.ts.map +1 -0
  121. package/lib/typescript/core/WorkletSourceNode.d.ts +4 -0
  122. package/lib/typescript/core/WorkletSourceNode.d.ts.map +1 -0
  123. package/lib/typescript/events/types.d.ts +1 -0
  124. package/lib/typescript/events/types.d.ts.map +1 -1
  125. package/lib/typescript/interfaces.d.ts +16 -2
  126. package/lib/typescript/interfaces.d.ts.map +1 -1
  127. package/lib/typescript/types.d.ts +1 -0
  128. package/lib/typescript/types.d.ts.map +1 -1
  129. package/lib/typescript/utils/index.d.ts +1 -0
  130. package/lib/typescript/utils/index.d.ts.map +1 -1
  131. package/lib/typescript/web-core/AudioContext.d.ts +2 -0
  132. package/lib/typescript/web-core/AudioContext.d.ts.map +1 -1
  133. package/lib/typescript/web-core/BaseAudioContext.d.ts +2 -0
  134. package/lib/typescript/web-core/BaseAudioContext.d.ts.map +1 -1
  135. package/lib/typescript/web-core/ConstantSourceNode.d.ts +8 -0
  136. package/lib/typescript/web-core/ConstantSourceNode.d.ts.map +1 -0
  137. package/lib/typescript/web-core/OfflineAudioContext.d.ts +2 -0
  138. package/lib/typescript/web-core/OfflineAudioContext.d.ts.map +1 -1
  139. package/package.json +1 -1
  140. package/src/api.ts +10 -2
  141. package/src/api.web.ts +1 -0
  142. package/src/core/AudioBufferBaseSourceNode.ts +9 -9
  143. package/src/core/AudioBufferQueueSourceNode.ts +1 -9
  144. package/src/core/AudioBufferSourceNode.ts +28 -0
  145. package/src/core/AudioContext.ts +12 -1
  146. package/src/core/BaseAudioContext.ts +90 -1
  147. package/src/core/ConstantSourceNode.ts +13 -0
  148. package/src/core/OfflineAudioContext.ts +18 -2
  149. package/src/core/WorkletProcessingNode.ts +3 -0
  150. package/src/core/WorkletSourceNode.ts +3 -0
  151. package/src/events/types.ts +1 -0
  152. package/src/interfaces.ts +42 -2
  153. package/src/types.ts +2 -0
  154. package/src/utils/index.ts +3 -0
  155. package/src/web-core/AudioContext.tsx +5 -0
  156. package/src/web-core/BaseAudioContext.tsx +2 -0
  157. package/src/web-core/ConstantSourceNode.tsx +12 -0
  158. package/src/web-core/OfflineAudioContext.tsx +5 -0
@@ -1,14 +1,20 @@
1
1
  import { AudioEventCallback, AudioEventName } from './events/types';
2
2
  import { BiquadFilterType, ChannelCountMode, ChannelInterpretation, ContextState, OscillatorType, WindowType } from './types';
3
- export type ShareableWorkletCallback = (audioBuffers: Array<ArrayBuffer>, channelCount: number) => void;
3
+ export type WorkletNodeCallback = (audioData: Array<ArrayBuffer>, channelCount: number) => void;
4
+ export type WorkletSourceNodeCallback = (audioData: Array<ArrayBuffer>, framesToProcess: number, currentTime: number, startOffset: number) => void;
5
+ export type WorkletProcessingNodeCallback = (inputData: Array<ArrayBuffer>, outputData: Array<ArrayBuffer>, framesToProcess: number, currentTime: number) => void;
6
+ export type ShareableWorkletCallback = WorkletNodeCallback | WorkletSourceNodeCallback | WorkletProcessingNodeCallback;
4
7
  export interface IBaseAudioContext {
5
8
  readonly destination: IAudioDestinationNode;
6
9
  readonly state: ContextState;
7
10
  readonly sampleRate: number;
8
11
  readonly currentTime: number;
9
12
  createRecorderAdapter(): IRecorderAdapterNode;
10
- createWorkletNode(shareableWorklet: ShareableWorkletCallback, bufferLength: number, inputChannelCount: number): IWorkletNode;
13
+ createWorkletSourceNode(shareableWorklet: ShareableWorkletCallback, shouldUseUiRuntime: boolean): IWorkletSourceNode;
14
+ createWorkletNode(shareableWorklet: ShareableWorkletCallback, shouldUseUiRuntime: boolean, bufferLength: number, inputChannelCount: number): IWorkletNode;
15
+ createWorkletProcessingNode(shareableWorklet: ShareableWorkletCallback, shouldUseUiRuntime: boolean): IWorkletProcessingNode;
11
16
  createOscillator(): IOscillatorNode;
17
+ createConstantSource(): IConstantSourceNode;
12
18
  createGain(): IGainNode;
13
19
  createStereoPanner(): IStereoPannerNode;
14
20
  createBiquadFilter: () => IBiquadFilterNode;
@@ -78,6 +84,9 @@ export interface IOscillatorNode extends IAudioScheduledSourceNode {
78
84
  export interface IStreamerNode extends IAudioNode {
79
85
  initialize(streamPath: string): boolean;
80
86
  }
87
+ export interface IConstantSourceNode extends IAudioScheduledSourceNode {
88
+ readonly offset: IAudioParam;
89
+ }
81
90
  export interface IAudioBufferSourceNode extends IAudioBufferBaseSourceNode {
82
91
  buffer: IAudioBuffer | null;
83
92
  loop: boolean;
@@ -86,6 +95,7 @@ export interface IAudioBufferSourceNode extends IAudioBufferBaseSourceNode {
86
95
  loopEnd: number;
87
96
  start: (when?: number, offset?: number, duration?: number) => void;
88
97
  setBuffer: (audioBuffer: IAudioBuffer | null) => void;
98
+ onLoopEnded: string;
89
99
  }
90
100
  export interface IAudioBufferQueueSourceNode extends IAudioBufferBaseSourceNode {
91
101
  dequeueBuffer: (bufferId: number) => void;
@@ -133,6 +143,10 @@ export interface IRecorderAdapterNode extends IAudioNode {
133
143
  }
134
144
  export interface IWorkletNode extends IAudioNode {
135
145
  }
146
+ export interface IWorkletSourceNode extends IAudioScheduledSourceNode {
147
+ }
148
+ export interface IWorkletProcessingNode extends IAudioNode {
149
+ }
136
150
  export interface IAudioRecorder {
137
151
  start: () => void;
138
152
  stop: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ export type ChannelCountMode = 'max' | 'clamped-max' | 'explicit';
2
2
  export type ChannelInterpretation = 'speakers' | 'discrete';
3
3
  export type BiquadFilterType = 'lowpass' | 'highpass' | 'bandpass' | 'lowshelf' | 'highshelf' | 'peaking' | 'notch' | 'allpass';
4
4
  export type ContextState = 'running' | 'closed' | `suspended`;
5
+ export type AudioWorkletRuntime = 'AudioRuntime' | 'UIRuntime';
5
6
  export type OscillatorType = 'sine' | 'square' | 'sawtooth' | 'triangle' | 'custom';
6
7
  export interface PeriodicWaveConstraints {
7
8
  disableNormalization: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,aAAa,GAAG,UAAU,CAAC;AAElE,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,UAAU,CAAC;AAE5D,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,UAAU,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,SAAS,GACT,OAAO,GACP,SAAS,CAAC;AAEd,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE9D,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,QAAQ,GACR,UAAU,GACV,UAAU,GACV,QAAQ,CAAC;AAEb,MAAM,WAAW,uBAAuB;IACtC,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,0BAA0B;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AAE7C,MAAM,WAAW,gCAAgC;IAC/C,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,gBAAgB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,aAAa,GAAG,UAAU,CAAC;AAElE,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,UAAU,CAAC;AAE5D,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,UAAU,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,SAAS,GACT,OAAO,GACP,SAAS,CAAC;AAEd,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE9D,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG,WAAW,CAAC;AAE/D,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,QAAQ,GACR,UAAU,GACV,UAAU,GACV,QAAQ,CAAC;AAEb,MAAM,WAAW,uBAAuB;IACtC,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,0BAA0B;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AAE7C,MAAM,WAAW,gCAAgC;IAC/C,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,gBAAgB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { ShareableWorkletCallback } from '../interfaces';
2
2
  interface SimplifiedWorkletModule {
3
3
  makeShareableCloneRecursive: (workletCallback: ShareableWorkletCallback) => ShareableWorkletCallback;
4
+ createWorkletRuntime: (options?: any) => any;
4
5
  }
5
6
  export declare function clamp(value: number, min: number, max: number): number;
6
7
  export declare let isWorkletsAvailable: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE9D,UAAU,uBAAuB;IAC/B,2BAA2B,EAAE,CAC3B,eAAe,EAAE,wBAAwB,KACtC,wBAAwB,CAAC;CAC/B;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,eAAO,IAAI,mBAAmB,SAAQ,CAAC;AACvC,eAAO,IAAI,cAAc,EAAE,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE9D,UAAU,uBAAuB;IAC/B,2BAA2B,EAAE,CAC3B,eAAe,EAAE,wBAAwB,KACtC,wBAAwB,CAAC;IAG9B,oBAAoB,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC;CAC9C;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,eAAO,IAAI,mBAAmB,SAAQ,CAAC;AACvC,eAAO,IAAI,cAAc,EAAE,uBAAuB,CAAC"}
@@ -9,6 +9,7 @@ import GainNode from './GainNode';
9
9
  import OscillatorNode from './OscillatorNode';
10
10
  import PeriodicWave from './PeriodicWave';
11
11
  import StereoPannerNode from './StereoPannerNode';
12
+ import ConstantSourceNode from './ConstantSourceNode';
12
13
  export default class AudioContext implements BaseAudioContext {
13
14
  readonly context: globalThis.AudioContext;
14
15
  readonly destination: AudioDestinationNode;
@@ -17,6 +18,7 @@ export default class AudioContext implements BaseAudioContext {
17
18
  get currentTime(): number;
18
19
  get state(): ContextState;
19
20
  createOscillator(): OscillatorNode;
21
+ createConstantSource(): ConstantSourceNode;
20
22
  createGain(): GainNode;
21
23
  createStereoPanner(): StereoPannerNode;
22
24
  createBiquadFilter(): BiquadFilterNode;
@@ -1 +1 @@
1
- {"version":3,"file":"AudioContext.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACnB,gCAAgC,EACjC,MAAM,UAAU,CAAC;AAElB,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,gBAAgB;IAC3D,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC;IAE1C,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,OAAO,CAAC,EAAE,mBAAmB,EAAE,cAAc,GAAE,OAAe;IAiB1E,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,KAAK,IAAI,YAAY,CAE/B;IAED,gBAAgB,IAAI,cAAc;IAIlC,UAAU,IAAI,QAAQ;IAItB,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,IAAI,gBAAgB;IAIhC,kBAAkB,CACtB,OAAO,CAAC,EAAE,gCAAgC,GACzC,OAAO,CAAC,qBAAqB,CAAC;IAgBjC,YAAY,CACV,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,WAAW;IAwBd,kBAAkB,CAChB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,YAAY,EAClB,WAAW,CAAC,EAAE,uBAAuB,GACpC,YAAY;IAYf,cAAc,IAAI,YAAY;IAIxB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ3D,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAI/D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
1
+ {"version":3,"file":"AudioContext.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACnB,gCAAgC,EACjC,MAAM,UAAU,CAAC;AAElB,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAGlD,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,gBAAgB;IAC3D,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC;IAE1C,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,OAAO,CAAC,EAAE,mBAAmB,EAAE,cAAc,GAAE,OAAe;IAiB1E,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,KAAK,IAAI,YAAY,CAE/B;IAED,gBAAgB,IAAI,cAAc;IAIlC,oBAAoB,IAAI,kBAAkB;IAI1C,UAAU,IAAI,QAAQ;IAItB,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,IAAI,gBAAgB;IAIhC,kBAAkB,CACtB,OAAO,CAAC,EAAE,gCAAgC,GACzC,OAAO,CAAC,qBAAqB,CAAC;IAgBjC,YAAY,CACV,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,WAAW;IAwBd,kBAAkB,CAChB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,YAAY,EAClB,WAAW,CAAC,EAAE,uBAAuB,GACpC,YAAY;IAYf,cAAc,IAAI,YAAY;IAIxB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ3D,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAI/D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
@@ -8,6 +8,7 @@ import GainNode from './GainNode';
8
8
  import OscillatorNode from './OscillatorNode';
9
9
  import PeriodicWave from './PeriodicWave';
10
10
  import StereoPannerNode from './StereoPannerNode';
11
+ import ConstantSourceNode from './ConstantSourceNode';
11
12
  export default interface BaseAudioContext {
12
13
  readonly context: globalThis.BaseAudioContext;
13
14
  readonly destination: AudioDestinationNode;
@@ -15,6 +16,7 @@ export default interface BaseAudioContext {
15
16
  get currentTime(): number;
16
17
  get state(): ContextState;
17
18
  createOscillator(): OscillatorNode;
19
+ createConstantSource(): ConstantSourceNode;
18
20
  createGain(): GainNode;
19
21
  createStereoPanner(): StereoPannerNode;
20
22
  createBiquadFilter(): BiquadFilterNode;
@@ -1 +1 @@
1
- {"version":3,"file":"BaseAudioContext.d.ts","sourceRoot":"","sources":["../../../src/web-core/BaseAudioContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,OAAO,WAAW,gBAAgB;IACvC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,gBAAgB,CAAC;IAE9C,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,IAAI,WAAW,IAAI,MAAM,CAAC;IAC1B,IAAI,KAAK,IAAI,YAAY,CAAC;IAC1B,gBAAgB,IAAI,cAAc,CAAC;IACnC,UAAU,IAAI,QAAQ,CAAC;IACvB,kBAAkB,IAAI,gBAAgB,CAAC;IACvC,kBAAkB,IAAI,gBAAgB,CAAC;IACvC,kBAAkB,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACrD,YAAY,CACV,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,WAAW,CAAC;IACf,kBAAkB,CAChB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,YAAY,EAClB,WAAW,CAAC,EAAE,uBAAuB,GACpC,YAAY,CAAC;IAChB,cAAc,IAAI,YAAY,CAAC;IAC/B,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5D,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACjE"}
1
+ {"version":3,"file":"BaseAudioContext.d.ts","sourceRoot":"","sources":["../../../src/web-core/BaseAudioContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,MAAM,CAAC,OAAO,WAAW,gBAAgB;IACvC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,gBAAgB,CAAC;IAE9C,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,IAAI,WAAW,IAAI,MAAM,CAAC;IAC1B,IAAI,KAAK,IAAI,YAAY,CAAC;IAC1B,gBAAgB,IAAI,cAAc,CAAC;IACnC,oBAAoB,IAAI,kBAAkB,CAAC;IAC3C,UAAU,IAAI,QAAQ,CAAC;IACvB,kBAAkB,IAAI,gBAAgB,CAAC;IACvC,kBAAkB,IAAI,gBAAgB,CAAC;IACvC,kBAAkB,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACrD,YAAY,CACV,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,WAAW,CAAC;IACf,kBAAkB,CAChB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,YAAY,EAClB,WAAW,CAAC,EAAE,uBAAuB,GACpC,YAAY,CAAC;IAChB,cAAc,IAAI,YAAY,CAAC;IAC/B,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5D,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACjE"}
@@ -0,0 +1,8 @@
1
+ import AudioParam from './AudioParam';
2
+ import AudioScheduledSourceNode from './AudioScheduledSourceNode';
3
+ import BaseAudioContext from './BaseAudioContext';
4
+ export default class ConstantSourceNode extends AudioScheduledSourceNode {
5
+ readonly offset: AudioParam;
6
+ constructor(context: BaseAudioContext, node: globalThis.ConstantSourceNode);
7
+ }
8
+ //# sourceMappingURL=ConstantSourceNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConstantSourceNode.d.ts","sourceRoot":"","sources":["../../../src/web-core/ConstantSourceNode.tsx"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,wBAAwB;IACtE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;gBAEhB,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,CAAC,kBAAkB;CAI3E"}
@@ -9,6 +9,7 @@ import GainNode from './GainNode';
9
9
  import OscillatorNode from './OscillatorNode';
10
10
  import PeriodicWave from './PeriodicWave';
11
11
  import StereoPannerNode from './StereoPannerNode';
12
+ import ConstantSourceNode from './ConstantSourceNode';
12
13
  export default class OfflineAudioContext implements BaseAudioContext {
13
14
  readonly context: globalThis.OfflineAudioContext;
14
15
  readonly destination: AudioDestinationNode;
@@ -18,6 +19,7 @@ export default class OfflineAudioContext implements BaseAudioContext {
18
19
  get currentTime(): number;
19
20
  get state(): ContextState;
20
21
  createOscillator(): OscillatorNode;
22
+ createConstantSource(): ConstantSourceNode;
21
23
  createGain(): GainNode;
22
24
  createStereoPanner(): StereoPannerNode;
23
25
  createBiquadFilter(): BiquadFilterNode;
@@ -1 +1 @@
1
- {"version":3,"file":"OfflineAudioContext.d.ts","sourceRoot":"","sources":["../../../src/web-core/OfflineAudioContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,0BAA0B,EAC1B,gCAAgC,EACjC,MAAM,UAAU,CAAC;AAElB,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,OAAO,OAAO,mBAAoB,YAAW,gBAAgB;IAClE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,mBAAmB,CAAC;IAEjD,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,OAAO,EAAE,0BAA0B;gBACnC,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAsBxE,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,KAAK,IAAI,YAAY,CAE/B;IAED,gBAAgB,IAAI,cAAc;IAIlC,UAAU,IAAI,QAAQ;IAItB,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,IAAI,gBAAgB;IAIhC,kBAAkB,CACtB,OAAO,CAAC,EAAE,gCAAgC,GACzC,OAAO,CAAC,qBAAqB,CAAC;IAgBjC,YAAY,CACV,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,WAAW;IAwBd,kBAAkB,CAChB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,YAAY,EAClB,WAAW,CAAC,EAAE,uBAAuB,GACpC,YAAY;IAYf,cAAc,IAAI,YAAY;IAIxB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ3D,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAI/D,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IAItC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGlD"}
1
+ {"version":3,"file":"OfflineAudioContext.d.ts","sourceRoot":"","sources":["../../../src/web-core/OfflineAudioContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,0BAA0B,EAC1B,gCAAgC,EACjC,MAAM,UAAU,CAAC;AAElB,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAItD,MAAM,CAAC,OAAO,OAAO,mBAAoB,YAAW,gBAAgB;IAClE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,mBAAmB,CAAC;IAEjD,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,OAAO,EAAE,0BAA0B;gBACnC,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAsBxE,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,KAAK,IAAI,YAAY,CAE/B;IAED,gBAAgB,IAAI,cAAc;IAIlC,oBAAoB,IAAI,kBAAkB;IAI1C,UAAU,IAAI,QAAQ;IAItB,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,IAAI,gBAAgB;IAIhC,kBAAkB,CACtB,OAAO,CAAC,EAAE,gCAAgC,GACzC,OAAO,CAAC,qBAAqB,CAAC;IAgBjC,YAAY,CACV,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,WAAW;IAwBd,kBAAkB,CAChB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,YAAY,EAClB,WAAW,CAAC,EAAE,uBAAuB,GACpC,YAAY;IAYf,cAAc,IAAI,YAAY;IAIxB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ3D,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAI/D,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IAItC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGlD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-audio-api",
3
- "version": "0.8.3-nightly-e918179-20251003",
3
+ "version": "0.8.3-nightly-ea268f4-20251005",
4
4
  "description": "react-native-audio-api provides system for controlling audio in React Native environment compatible with Web Audio API specification",
5
5
  "bin": {
6
6
  "setup-rn-audio-api-web": "./scripts/setup-rn-audio-api-web.js"
package/src/api.ts CHANGED
@@ -11,12 +11,16 @@ import type {
11
11
  declare global {
12
12
  var createAudioContext: (
13
13
  sampleRate: number,
14
- initSuspended: boolean
14
+ initSuspended: boolean,
15
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
+ audioWorkletRuntime: any
15
17
  ) => IAudioContext;
16
18
  var createOfflineAudioContext: (
17
19
  numberOfChannels: number,
18
20
  length: number,
19
- sampleRate: number
21
+ sampleRate: number,
22
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
+ audioWorkletRuntime: any
20
24
  ) => IOfflineAudioContext;
21
25
 
22
26
  var createAudioRecorder: (options: AudioRecorderOptions) => IAudioRecorder;
@@ -41,6 +45,8 @@ if (
41
45
  }
42
46
 
43
47
  export { default as WorkletNode } from './core/WorkletNode';
48
+ export { default as WorkletSourceNode } from './core/WorkletSourceNode';
49
+ export { default as WorkletProcessingNode } from './core/WorkletProcessingNode';
44
50
  export { default as RecorderAdapterNode } from './core/RecorderAdapterNode';
45
51
  export { default as AudioBuffer } from './core/AudioBuffer';
46
52
  export { default as AudioBufferSourceNode } from './core/AudioBufferSourceNode';
@@ -59,6 +65,7 @@ export { default as OscillatorNode } from './core/OscillatorNode';
59
65
  export { default as StereoPannerNode } from './core/StereoPannerNode';
60
66
  export { default as AudioRecorder } from './core/AudioRecorder';
61
67
  export { default as StreamerNode } from './core/StreamerNode';
68
+ export { default as ConstantSourceNode } from './core/ConstantSourceNode';
62
69
  export { default as AudioManager } from './system';
63
70
  export { default as useSystemVolume } from './hooks/useSystemVolume';
64
71
 
@@ -70,6 +77,7 @@ export {
70
77
  ContextState,
71
78
  WindowType,
72
79
  PeriodicWaveConstraints,
80
+ AudioWorkletRuntime,
73
81
  } from './types';
74
82
 
75
83
  export {
package/src/api.web.ts CHANGED
@@ -12,6 +12,7 @@ export { default as BiquadFilterNode } from './web-core/BiquadFilterNode';
12
12
  export { default as GainNode } from './web-core/GainNode';
13
13
  export { default as OscillatorNode } from './web-core/OscillatorNode';
14
14
  export { default as StereoPannerNode } from './web-core/StereoPannerNode';
15
+ export { default as ConstantSourceNode } from './web-core/ConstantSourceNode';
15
16
 
16
17
  export * from './web-core/custom';
17
18
 
@@ -8,8 +8,8 @@ import AudioScheduledSourceNode from './AudioScheduledSourceNode';
8
8
  export default class AudioBufferBaseSourceNode extends AudioScheduledSourceNode {
9
9
  readonly playbackRate: AudioParam;
10
10
  readonly detune: AudioParam;
11
- private positionChangedSubscription?: AudioEventSubscription;
12
- private positionChangedCallback?: (event: EventTypeWithValue) => void;
11
+ private onPositionChangedSubscription?: AudioEventSubscription;
12
+ private onPositionChangedCallback?: (event: EventTypeWithValue) => void;
13
13
 
14
14
  constructor(context: BaseAudioContext, node: IAudioBufferBaseSourceNode) {
15
15
  super(context, node);
@@ -21,7 +21,7 @@ export default class AudioBufferBaseSourceNode extends AudioScheduledSourceNode
21
21
  public get onPositionChanged():
22
22
  | ((event: EventTypeWithValue) => void)
23
23
  | undefined {
24
- return this.positionChangedCallback;
24
+ return this.onPositionChangedCallback;
25
25
  }
26
26
 
27
27
  public set onPositionChanged(
@@ -29,19 +29,19 @@ export default class AudioBufferBaseSourceNode extends AudioScheduledSourceNode
29
29
  ) {
30
30
  if (!callback) {
31
31
  (this.node as IAudioBufferBaseSourceNode).onPositionChanged = '0';
32
- this.positionChangedSubscription?.remove();
33
- this.positionChangedSubscription = undefined;
34
- this.positionChangedCallback = undefined;
32
+ this.onPositionChangedSubscription?.remove();
33
+ this.onPositionChangedSubscription = undefined;
34
+ this.onPositionChangedCallback = undefined;
35
35
 
36
36
  return;
37
37
  }
38
38
 
39
- this.positionChangedCallback = callback;
40
- this.positionChangedSubscription =
39
+ this.onPositionChangedCallback = callback;
40
+ this.onPositionChangedSubscription =
41
41
  this.audioEventEmitter.addAudioEventListener('positionChanged', callback);
42
42
 
43
43
  (this.node as IAudioBufferBaseSourceNode).onPositionChanged =
44
- this.positionChangedSubscription.subscriptionId;
44
+ this.onPositionChangedSubscription.subscriptionId;
45
45
  }
46
46
 
47
47
  public get onPositionChangedInterval(): number {
@@ -24,21 +24,13 @@ export default class AudioBufferQueueSourceNode extends AudioBufferBaseSourceNod
24
24
  (this.node as IAudioBufferQueueSourceNode).clearBuffers();
25
25
  }
26
26
 
27
- public override start(when: number = 0, offset?: number): void {
27
+ public override start(when: number = 0): void {
28
28
  if (when < 0) {
29
29
  throw new RangeError(
30
30
  `when must be a finite non-negative number: ${when}`
31
31
  );
32
32
  }
33
33
 
34
- if (offset) {
35
- if (offset < 0) {
36
- throw new RangeError(
37
- `offset must be a finite non-negative number: ${offset}`
38
- );
39
- }
40
- }
41
-
42
34
  (this.node as IAudioBufferQueueSourceNode).start(when);
43
35
  }
44
36
 
@@ -3,8 +3,12 @@ import AudioBufferBaseSourceNode from './AudioBufferBaseSourceNode';
3
3
  import AudioBuffer from './AudioBuffer';
4
4
  import { InvalidStateError, RangeError } from '../errors';
5
5
  import { EventEmptyType } from '../events/types';
6
+ import { AudioEventSubscription } from '../events';
6
7
 
7
8
  export default class AudioBufferSourceNode extends AudioBufferBaseSourceNode {
9
+ private onLoopEndedSubscription?: AudioEventSubscription;
10
+ private onLoopEndedCallback?: (event: EventEmptyType) => void;
11
+
8
12
  public get buffer(): AudioBuffer | null {
9
13
  const buffer = (this.node as IAudioBufferSourceNode).buffer;
10
14
  if (!buffer) {
@@ -90,4 +94,28 @@ export default class AudioBufferSourceNode extends AudioBufferBaseSourceNode {
90
94
  ) {
91
95
  super.onEnded = callback;
92
96
  }
97
+
98
+ public get onLoopEnded(): ((event: EventEmptyType) => void) | undefined {
99
+ return this.onLoopEndedCallback;
100
+ }
101
+
102
+ public set onLoopEnded(callback: ((event: EventEmptyType) => void) | null) {
103
+ if (!callback) {
104
+ (this.node as IAudioBufferSourceNode).onLoopEnded = '0';
105
+ this.onLoopEndedSubscription?.remove();
106
+ this.onLoopEndedSubscription = undefined;
107
+ this.onLoopEndedCallback = undefined;
108
+
109
+ return;
110
+ }
111
+
112
+ this.onLoopEndedCallback = callback;
113
+ this.onLoopEndedSubscription = this.audioEventEmitter.addAudioEventListener(
114
+ 'loopEnded',
115
+ callback
116
+ );
117
+
118
+ (this.node as IAudioBufferSourceNode).onLoopEnded =
119
+ this.onLoopEndedSubscription.subscriptionId;
120
+ }
93
121
  }
@@ -3,8 +3,13 @@ import BaseAudioContext from './BaseAudioContext';
3
3
  import AudioManager from '../system';
4
4
  import { AudioContextOptions } from '../types';
5
5
  import { NotSupportedError } from '../errors';
6
+ import { isWorkletsAvailable, workletsModule } from '../utils';
6
7
 
7
8
  export default class AudioContext extends BaseAudioContext {
9
+ // We need to keep here a reference to this runtime to better manage its lifecycle
10
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
11
+ private _audioRuntime: any = null;
12
+
8
13
  constructor(options?: AudioContextOptions) {
9
14
  if (
10
15
  options &&
@@ -15,13 +20,19 @@ export default class AudioContext extends BaseAudioContext {
15
20
  `The provided sampleRate is not supported: ${options.sampleRate}`
16
21
  );
17
22
  }
23
+ let audioRuntime = null;
24
+ if (isWorkletsAvailable) {
25
+ audioRuntime = workletsModule.createWorkletRuntime('AudioWorkletRuntime');
26
+ }
18
27
 
19
28
  super(
20
29
  global.createAudioContext(
21
30
  options?.sampleRate || AudioManager.getDevicePreferredSampleRate(),
22
- options?.initSuspended || false
31
+ options?.initSuspended || false,
32
+ audioRuntime
23
33
  )
24
34
  );
35
+ this._audioRuntime = audioRuntime;
25
36
  }
26
37
 
27
38
  async close(): Promise<void> {
@@ -4,8 +4,11 @@ import {
4
4
  AudioBufferBaseSourceNodeOptions,
5
5
  ContextState,
6
6
  PeriodicWaveConstraints,
7
+ AudioWorkletRuntime,
7
8
  } from '../types';
8
9
  import { isWorkletsAvailable, workletsModule } from '../utils';
10
+ import WorkletSourceNode from './WorkletSourceNode';
11
+ import WorkletProcessingNode from './WorkletProcessingNode';
9
12
  import AnalyserNode from './AnalyserNode';
10
13
  import AudioBuffer from './AudioBuffer';
11
14
  import AudioBufferQueueSourceNode from './AudioBufferQueueSourceNode';
@@ -19,6 +22,7 @@ import RecorderAdapterNode from './RecorderAdapterNode';
19
22
  import StereoPannerNode from './StereoPannerNode';
20
23
  import StreamerNode from './StreamerNode';
21
24
  import WorkletNode from './WorkletNode';
25
+ import ConstantSourceNode from './ConstantSourceNode';
22
26
 
23
27
  export default class BaseAudioContext {
24
28
  readonly destination: AudioDestinationNode;
@@ -42,7 +46,8 @@ export default class BaseAudioContext {
42
46
  createWorkletNode(
43
47
  callback: (audioData: Array<Float32Array>, channelCount: number) => void,
44
48
  bufferLength: number,
45
- inputChannelCount: number
49
+ inputChannelCount: number,
50
+ workletRuntime: AudioWorkletRuntime = 'AudioRuntime'
46
51
  ): WorkletNode {
47
52
  if (inputChannelCount < 1 || inputChannelCount > 32) {
48
53
  throw new NotSupportedError(
@@ -69,6 +74,7 @@ export default class BaseAudioContext {
69
74
  this,
70
75
  this.context.createWorkletNode(
71
76
  shareableWorklet,
77
+ workletRuntime === 'UIRuntime',
72
78
  bufferLength,
73
79
  inputChannelCount
74
80
  )
@@ -80,6 +86,85 @@ export default class BaseAudioContext {
80
86
  );
81
87
  }
82
88
 
89
+ createWorkletProcessingNode(
90
+ callback: (
91
+ inputData: Array<Float32Array>,
92
+ outputData: Array<Float32Array>,
93
+ framesToProcess: number,
94
+ currentTime: number
95
+ ) => void,
96
+ workletRuntime: AudioWorkletRuntime = 'AudioRuntime'
97
+ ): WorkletProcessingNode {
98
+ if (isWorkletsAvailable) {
99
+ const shareableWorklet = workletsModule.makeShareableCloneRecursive(
100
+ (
101
+ inputBuffers: Array<ArrayBuffer>,
102
+ outputBuffers: Array<ArrayBuffer>,
103
+ framesToProcess: number,
104
+ currentTime: number
105
+ ) => {
106
+ 'worklet';
107
+ const inputData: Array<Float32Array> = inputBuffers.map(
108
+ (buffer) => new Float32Array(buffer, 0, framesToProcess)
109
+ );
110
+ const outputData: Array<Float32Array> = outputBuffers.map(
111
+ (buffer) => new Float32Array(buffer, 0, framesToProcess)
112
+ );
113
+ callback(inputData, outputData, framesToProcess, currentTime);
114
+ }
115
+ );
116
+ return new WorkletProcessingNode(
117
+ this,
118
+ this.context.createWorkletProcessingNode(
119
+ shareableWorklet,
120
+ workletRuntime === 'UIRuntime'
121
+ )
122
+ );
123
+ }
124
+ /// User does not have worklets as a dependency so he cannot use the worklet API.
125
+ throw new Error(
126
+ '[RnAudioApi] Worklets are not available, please install react-native-worklets as a dependency. Refer to documentation for more details.'
127
+ );
128
+ }
129
+
130
+ createWorkletSourceNode(
131
+ callback: (
132
+ audioData: Array<Float32Array>,
133
+ framesToProcess: number,
134
+ currentTime: number,
135
+ startOffset: number
136
+ ) => void,
137
+ workletRuntime: AudioWorkletRuntime = 'AudioRuntime'
138
+ ): WorkletSourceNode {
139
+ if (!isWorkletsAvailable) {
140
+ /// User does not have worklets as a dependency so he cannot use the worklet API.
141
+ throw new Error(
142
+ '[RnAudioApi] Worklets are not available, please install react-native-worklets as a dependency. Refer to documentation for more details.'
143
+ );
144
+ }
145
+ const shareableWorklet = workletsModule.makeShareableCloneRecursive(
146
+ (
147
+ audioBuffers: Array<ArrayBuffer>,
148
+ framesToProcess: number,
149
+ currentTime: number,
150
+ startOffset: number
151
+ ) => {
152
+ 'worklet';
153
+ const floatAudioData: Array<Float32Array> = audioBuffers.map(
154
+ (buffer) => new Float32Array(buffer)
155
+ );
156
+ callback(floatAudioData, framesToProcess, currentTime, startOffset);
157
+ }
158
+ );
159
+ return new WorkletSourceNode(
160
+ this,
161
+ this.context.createWorkletSourceNode(
162
+ shareableWorklet,
163
+ workletRuntime === 'UIRuntime'
164
+ )
165
+ );
166
+ }
167
+
83
168
  createRecorderAdapter(): RecorderAdapterNode {
84
169
  return new RecorderAdapterNode(this, this.context.createRecorderAdapter());
85
170
  }
@@ -92,6 +177,10 @@ export default class BaseAudioContext {
92
177
  return new StreamerNode(this, this.context.createStreamer());
93
178
  }
94
179
 
180
+ createConstantSource(): ConstantSourceNode {
181
+ return new ConstantSourceNode(this, this.context.createConstantSource());
182
+ }
183
+
95
184
  createGain(): GainNode {
96
185
  return new GainNode(this, this.context.createGain());
97
186
  }
@@ -0,0 +1,13 @@
1
+ import { IConstantSourceNode } from '../interfaces';
2
+ import AudioParam from './AudioParam';
3
+ import AudioScheduledSourceNode from './AudioScheduledSourceNode';
4
+ import BaseAudioContext from './BaseAudioContext';
5
+
6
+ export default class ConstantSourceNode extends AudioScheduledSourceNode {
7
+ readonly offset: AudioParam;
8
+
9
+ constructor(context: BaseAudioContext, node: IConstantSourceNode) {
10
+ super(context, node);
11
+ this.offset = new AudioParam(node.offset, context);
12
+ }
13
+ }
@@ -3,12 +3,17 @@ import BaseAudioContext from './BaseAudioContext';
3
3
  import { OfflineAudioContextOptions } from '../types';
4
4
  import { InvalidStateError, NotSupportedError } from '../errors';
5
5
  import AudioBuffer from './AudioBuffer';
6
+ import { isWorkletsAvailable, workletsModule } from '../utils';
6
7
 
7
8
  export default class OfflineAudioContext extends BaseAudioContext {
8
9
  private isSuspended: boolean;
9
10
  private isRendering: boolean;
10
11
  private duration: number;
11
12
 
13
+ // We need to keep here a reference to this runtime to better manage its lifecycle
14
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
15
+ private _audioRuntime: any;
16
+
12
17
  constructor(options: OfflineAudioContextOptions);
13
18
  constructor(numberOfChannels: number, length: number, sampleRate: number);
14
19
  constructor(
@@ -16,10 +21,20 @@ export default class OfflineAudioContext extends BaseAudioContext {
16
21
  arg1?: number,
17
22
  arg2?: number
18
23
  ) {
24
+ let audioRuntime = null;
25
+ if (isWorkletsAvailable) {
26
+ audioRuntime = workletsModule.createWorkletRuntime('AudioWorkletRuntime');
27
+ }
28
+
19
29
  if (typeof arg0 === 'object') {
20
30
  const { numberOfChannels, length, sampleRate } = arg0;
21
31
  super(
22
- global.createOfflineAudioContext(numberOfChannels, length, sampleRate)
32
+ global.createOfflineAudioContext(
33
+ numberOfChannels,
34
+ length,
35
+ sampleRate,
36
+ audioRuntime
37
+ )
23
38
  );
24
39
 
25
40
  this.duration = length / sampleRate;
@@ -28,7 +43,7 @@ export default class OfflineAudioContext extends BaseAudioContext {
28
43
  typeof arg1 === 'number' &&
29
44
  typeof arg2 === 'number'
30
45
  ) {
31
- super(global.createOfflineAudioContext(arg0, arg1, arg2));
46
+ super(global.createOfflineAudioContext(arg0, arg1, arg2, audioRuntime));
32
47
  this.duration = arg1 / arg2;
33
48
  } else {
34
49
  throw new NotSupportedError('Invalid constructor arguments');
@@ -36,6 +51,7 @@ export default class OfflineAudioContext extends BaseAudioContext {
36
51
 
37
52
  this.isSuspended = false;
38
53
  this.isRendering = false;
54
+ this._audioRuntime = audioRuntime;
39
55
  }
40
56
 
41
57
  async resume(): Promise<undefined> {
@@ -0,0 +1,3 @@
1
+ import AudioNode from './AudioNode';
2
+
3
+ export default class WorkletProcessingNode extends AudioNode {}
@@ -0,0 +1,3 @@
1
+ import AudioScheduledSourceNode from './AudioScheduledSourceNode';
2
+
3
+ export default class WorkletSourceNode extends AudioScheduledSourceNode {}
@@ -57,6 +57,7 @@ export interface OnAudioReadyEventType {
57
57
 
58
58
  interface AudioAPIEvents {
59
59
  ended: OnEndedEventType;
60
+ loopEnded: EventEmptyType;
60
61
  audioReady: OnAudioReadyEventType;
61
62
  positionChanged: EventTypeWithValue;
62
63
  audioError: EventEmptyType; // to change