react-native-audio-api 0.4.12 → 0.5.0-rc.1

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 (114) hide show
  1. package/android/src/main/java/com/swmansion/audioapi/AudioAPIModule.kt +7 -6
  2. package/android/src/main/java/com/swmansion/audioapi/AudioAPIPackage.kt +25 -24
  3. package/common/cpp/audioapi/HostObjects/AnalyserNodeHostObject.h +17 -41
  4. package/common/cpp/audioapi/HostObjects/AudioBufferHostObject.h +22 -32
  5. package/common/cpp/audioapi/HostObjects/AudioBufferSourceNodeHostObject.h +2 -17
  6. package/common/cpp/audioapi/HostObjects/AudioContextHostObject.h +14 -4
  7. package/common/cpp/audioapi/HostObjects/AudioParamHostObject.h +5 -8
  8. package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.h +13 -9
  9. package/common/cpp/audioapi/HostObjects/BiquadFilterNodeHostObject.h +8 -19
  10. package/common/cpp/audioapi/core/AudioContext.cpp +14 -4
  11. package/common/cpp/audioapi/core/AudioContext.h +2 -2
  12. package/common/cpp/audioapi/core/BaseAudioContext.cpp +4 -2
  13. package/common/cpp/audioapi/core/BaseAudioContext.h +1 -1
  14. package/common/cpp/audioapi/core/effects/BiquadFilterNode.cpp +5 -6
  15. package/common/cpp/audioapi/core/effects/BiquadFilterNode.h +4 -3
  16. package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.cpp +5 -11
  17. package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.h +3 -31
  18. package/lib/module/api.js +1 -1
  19. package/lib/module/api.js.map +1 -1
  20. package/lib/module/api.web.js +1 -2
  21. package/lib/module/api.web.js.map +1 -1
  22. package/lib/module/core/AnalyserNode.js.map +1 -1
  23. package/lib/module/core/AudioBuffer.js.map +1 -1
  24. package/lib/module/core/AudioBufferSourceNode.js +0 -6
  25. package/lib/module/core/AudioBufferSourceNode.js.map +1 -1
  26. package/lib/module/core/AudioParam.js.map +1 -1
  27. package/lib/module/core/BaseAudioContext.js +3 -2
  28. package/lib/module/core/BaseAudioContext.js.map +1 -1
  29. package/lib/module/core/BiquadFilterNode.js.map +1 -1
  30. package/lib/module/utils/index.js +6 -0
  31. package/lib/module/utils/index.js.map +1 -0
  32. package/lib/module/web-core/AnalyserNode.js +4 -20
  33. package/lib/module/web-core/AnalyserNode.js.map +1 -1
  34. package/lib/module/web-core/AudioBuffer.js +2 -6
  35. package/lib/module/web-core/AudioBuffer.js.map +1 -1
  36. package/lib/module/web-core/AudioBufferSourceNode.js +161 -21
  37. package/lib/module/web-core/AudioBufferSourceNode.js.map +1 -1
  38. package/lib/module/web-core/AudioContext.js +7 -8
  39. package/lib/module/web-core/AudioContext.js.map +1 -1
  40. package/lib/module/web-core/AudioParam.js +1 -1
  41. package/lib/module/web-core/AudioParam.js.map +1 -1
  42. package/lib/module/web-core/BiquadFilterNode.js +1 -9
  43. package/lib/module/web-core/BiquadFilterNode.js.map +1 -1
  44. package/lib/module/web-core/custom/signalsmithStretch/README.md +1 -1
  45. package/lib/module/web-core/custom/signalsmithStretch/SignalsmithStretch.mjs +2 -2
  46. package/lib/module/web-core/custom/signalsmithStretch/SignalsmithStretch.mjs.map +1 -1
  47. package/lib/typescript/api.d.ts +1 -1
  48. package/lib/typescript/api.d.ts.map +1 -1
  49. package/lib/typescript/api.web.d.ts +1 -2
  50. package/lib/typescript/api.web.d.ts.map +1 -1
  51. package/lib/typescript/core/AnalyserNode.d.ts +4 -4
  52. package/lib/typescript/core/AnalyserNode.d.ts.map +1 -1
  53. package/lib/typescript/core/AudioBuffer.d.ts +3 -3
  54. package/lib/typescript/core/AudioBuffer.d.ts.map +1 -1
  55. package/lib/typescript/core/AudioBufferSourceNode.d.ts +0 -3
  56. package/lib/typescript/core/AudioBufferSourceNode.d.ts.map +1 -1
  57. package/lib/typescript/core/AudioParam.d.ts +1 -1
  58. package/lib/typescript/core/AudioParam.d.ts.map +1 -1
  59. package/lib/typescript/core/BaseAudioContext.d.ts +3 -3
  60. package/lib/typescript/core/BaseAudioContext.d.ts.map +1 -1
  61. package/lib/typescript/core/BiquadFilterNode.d.ts +1 -1
  62. package/lib/typescript/core/BiquadFilterNode.d.ts.map +1 -1
  63. package/lib/typescript/interfaces.d.ts +12 -13
  64. package/lib/typescript/interfaces.d.ts.map +1 -1
  65. package/lib/typescript/types.d.ts +3 -1
  66. package/lib/typescript/types.d.ts.map +1 -1
  67. package/lib/typescript/utils/index.d.ts +2 -0
  68. package/lib/typescript/utils/index.d.ts.map +1 -0
  69. package/lib/typescript/web-core/AnalyserNode.d.ts +4 -4
  70. package/lib/typescript/web-core/AnalyserNode.d.ts.map +1 -1
  71. package/lib/typescript/web-core/AudioBuffer.d.ts +2 -2
  72. package/lib/typescript/web-core/AudioBuffer.d.ts.map +1 -1
  73. package/lib/typescript/web-core/AudioBufferSourceNode.d.ts +58 -6
  74. package/lib/typescript/web-core/AudioBufferSourceNode.d.ts.map +1 -1
  75. package/lib/typescript/web-core/AudioContext.d.ts +3 -5
  76. package/lib/typescript/web-core/AudioContext.d.ts.map +1 -1
  77. package/lib/typescript/web-core/AudioParam.d.ts +1 -1
  78. package/lib/typescript/web-core/AudioParam.d.ts.map +1 -1
  79. package/lib/typescript/web-core/BaseAudioContext.d.ts +2 -2
  80. package/lib/typescript/web-core/BaseAudioContext.d.ts.map +1 -1
  81. package/lib/typescript/web-core/BiquadFilterNode.d.ts +1 -1
  82. package/lib/typescript/web-core/BiquadFilterNode.d.ts.map +1 -1
  83. package/package.json +8 -8
  84. package/scripts/setup-rn-audio-api-web.js +58 -0
  85. package/src/api.ts +0 -1
  86. package/src/api.web.ts +0 -2
  87. package/src/core/AnalyserNode.ts +4 -4
  88. package/src/core/AudioBuffer.ts +3 -3
  89. package/src/core/AudioBufferSourceNode.ts +0 -9
  90. package/src/core/AudioParam.ts +1 -1
  91. package/src/core/BaseAudioContext.ts +16 -5
  92. package/src/core/BiquadFilterNode.ts +3 -3
  93. package/src/interfaces.ts +14 -16
  94. package/src/types.ts +3 -1
  95. package/src/utils/index.ts +3 -0
  96. package/src/web-core/AnalyserNode.tsx +8 -30
  97. package/src/web-core/AudioBuffer.tsx +4 -14
  98. package/src/web-core/AudioBufferSourceNode.tsx +357 -31
  99. package/src/web-core/AudioContext.tsx +19 -13
  100. package/src/web-core/AudioParam.tsx +2 -6
  101. package/src/web-core/BaseAudioContext.tsx +3 -3
  102. package/src/web-core/BiquadFilterNode.tsx +6 -16
  103. package/src/web-core/custom/signalsmithStretch/README.md +1 -1
  104. package/src/web-core/custom/signalsmithStretch/SignalsmithStretch.mjs +4 -3
  105. package/common/cpp/audioapi/core/types/TimeStretchType.h +0 -7
  106. package/lib/module/web-core/StretcherNode.js +0 -64
  107. package/lib/module/web-core/StretcherNode.js.map +0 -1
  108. package/lib/module/web-core/custom/signalsmithStretch/SignalsmithStretch.js +0 -822
  109. package/lib/module/web-core/custom/signalsmithStretch/SignalsmithStretch.js.map +0 -1
  110. package/lib/typescript/web-core/StretcherNode.d.ts +0 -45
  111. package/lib/typescript/web-core/StretcherNode.d.ts.map +0 -1
  112. package/scripts/setup-custom-wasm.js +0 -104
  113. package/src/web-core/StretcherNode.tsx +0 -125
  114. package/src/web-core/custom/signalsmithStretch/SignalsmithStretch.js +0 -945
@@ -1 +0,0 @@
1
- {"version":3,"names":["SignalsmithStretch","_scriptName","document","currentScript","src","undefined","moduleArg","moduleRtn","Module","readyPromiseResolve","readyPromiseReject","readyPromise","Promise","resolve","reject","ENVIRONMENT_IS_WEB","window","ENVIRONMENT_IS_WORKER","WorkerGlobalScope","ENVIRONMENT_IS_NODE","process","versions","node","type","ENVIRONMENT_IS_SHELL","crypto","globalThis","getRandomValues","array","i","length","Math","random","performance","now","_","Date","moduleOverrides","Object","assign","arguments_","quit_","status","toThrow","scriptDirectory","readAsync","readBinary","f","readbuffer","Uint8Array","data","read","assert","clearTimeout","id","setTimeout","arguments","scriptArgs","quit","ExitStatus","toLog","stack","err","print","console","log","warn","error","printErr","self","location","href","startsWith","slice","replace","lastIndexOf","url","xhr","XMLHttpRequest","open","responseType","send","response","fetch","credentials","ok","arrayBuffer","Error","out","bind","wasmBinary","wasmMemory","ABORT","EXITSTATUS","HEAP8","HEAPU8","HEAP16","HEAPU16","HEAP32","HEAPU32","HEAPF32","HEAP64","HEAPU64","HEAPF64","runtimeInitialized","updateMemoryViews","b","buffer","Int8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array","preRun","initRuntime","wasmExports","preMain","postRun","runDependencies","dependenciesFulfilled","addRunDependency","removeRunDependency","callback","abort","what","e","WebAssembly","RuntimeError","wasmBinaryFile","getBinarySync","file","binary","tryParseAsDataURI","getWasmBinary","binaryFile","instantiateArrayBuffer","imports","instance","instantiate","reason","instantiateAsync","getWasmImports","a","wasmImports","createWasm","receiveInstance","module","exports","receiveInstantiationResult","result","info","name","constructor","message","base64Decode","b64","b1","b2","j","bLength","output","base64ReverseLookup","charCodeAt","isDataURI","filename","dataURIPrefix","__abort_js","getHeapMax","alignMemory","size","alignment","ceil","abortOnCannotGrowMemory","requestedSize","growMemory","pages","byteLength","grow","_emscripten_resize_heap","oldSize","maxHeapSize","cutDown","overGrownHeapSize","min","newSize","max","replacement","initRandomFill","view","randomFill","_random_get","subarray","keepRuntimeAlive","_proc_exit","code","exitJS","implicit","handleException","UTF8Decoder","TextDecoder","UTF8ArrayToString","heapOrArray","idx","maxBytesToRead","NaN","endIdx","endPtr","decode","str","u0","String","fromCharCode","u1","u2","ch","UTF8ToString","ptr","c","___wasm_call_ctors","_setBuffers","_blockSamples","_intervalSamples","_inputLatency","_outputLatency","_reset","_presetDefault","_presetCheaper","_configure","_setTransposeFactor","_setTransposeSemitones","_seek","_process","_flush","_main","callMain","entryFunction","argc","argv","ret","run","doRun","noInitialRun","registerWorkletProcessor","audioNodeKey","WasmProcessor","AudioWorkletProcessor","options","wasmReady","wasmModule","channels","buffersIn","buffersOut","audioBuffers","audioBuffersStart","audioBuffersEnd","timeIntervalSamples","sampleRate","timeIntervalCounter","timeMap","active","input","rate","semitones","loopStart","loopEnd","remoteMethods","configure","config","blockChanged","blockMs","intervalMs","setUpdateInterval","seconds","stop","when","currentTime","schedule","start","offset","duration","obj","outputLatencySeconds","objIn","adjustPrevious","outputTime","latestSegment","pop","push","previous","currentMapSegment","shift","inputTime","port","postMessage","dropBuffers","toSeconds","buffers","flat","map","value","end","transfer","first","endSamples","endSeconds","forEach","addBuffers","sampleBuffers","concat","pendingMessages","onmessage","event","then","numberOfOutputs","outputChannelCount","messageId","method","methodArgCounts","key","tonalityHz","blockSamples","round","intervalSamples","updateBuffers","inputLatencySeconds","bufferLength","lengthBytes","bufferPointer","inputList","outputList","parameters","channel","fill","outputBlockSize","memory","inputs","channelBuffer","set","loopLength","inputSamplesEnd","audioBufferIndex","audioSamples","inputSamples","audioBuffer","startIndex","bufferEnd","count","registerProcessor","promiseKey","Symbol","createNode","audioContext","audioNode","numberOfInputs","AudioWorkletNode","moduleUrl","moduleCode","JSON","stringify","URL","createObjectURL","Blob","audioWorklet","addModule","requestMap","idCounter","timeUpdateCallback","post","remoteMethodKeys","keys","argCount","args","define"],"sourceRoot":"../../../../../src","sources":["web-core/custom/signalsmithStretch/SignalsmithStretch.js"],"mappings":"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","ignoreList":[]}
@@ -1,45 +0,0 @@
1
- import BaseAudioContext from './BaseAudioContext';
2
- import AudioBuffer from './AudioBuffer';
3
- import AudioNode from './AudioNode';
4
- import { globalTag } from './custom/LoadCustomWasm';
5
- interface ScheduleOptions {
6
- rate?: number;
7
- active?: boolean;
8
- outputTime?: number;
9
- semitones?: number;
10
- loopStart?: number;
11
- loopEnd?: number;
12
- }
13
- declare class IStretcherNode {
14
- addBuffers(channels: Float32Array[]): void;
15
- schedule(options: ScheduleOptions): void;
16
- start(when?: number, offset?: number, duration?: number, rate?: number, semitones?: number): void;
17
- stop(when?: number): void;
18
- connect(destination: globalThis.AudioNode): void;
19
- disconnect(destination: globalThis.AudioNode): void;
20
- }
21
- declare global {
22
- interface Window {
23
- [globalTag]: (audioContext: globalThis.BaseAudioContext) => Promise<IStretcherNode>;
24
- }
25
- }
26
- export default class StretcherNode extends AudioNode {
27
- _buffer: AudioBuffer | null;
28
- _playbackRate: number;
29
- _loopStart: number;
30
- _loopEnd: number;
31
- _isPlaying: boolean;
32
- constructor(context: BaseAudioContext, node: IStretcherNode);
33
- get buffer(): AudioBuffer | null;
34
- set buffer(buffer: AudioBuffer);
35
- get playbackRate(): number;
36
- set playbackRate(value: number);
37
- get loopStart(): number;
38
- set loopStart(value: number);
39
- get loopEnd(): number;
40
- set loopEnd(value: number);
41
- start(when?: number, offset?: number, duration?: number, rate?: number, semitones?: number): void;
42
- stop(when?: number): void;
43
- }
44
- export {};
45
- //# sourceMappingURL=StretcherNode.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StretcherNode.d.ts","sourceRoot":"","sources":["../../../src/web-core/StretcherNode.tsx"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,OAAO,OAAO,cAAc;IAC1B,UAAU,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI;IAE1C,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAExC,KAAK,CACH,IAAI,CAAC,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI;IAEP,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAEzB,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,GAAG,IAAI;IAChD,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,GAAG,IAAI;CACpD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,CAAC,SAAS,CAAC,EAAE,CACX,YAAY,EAAE,UAAU,CAAC,gBAAgB,KACtC,OAAO,CAAC,cAAc,CAAC,CAAC;KAC9B;CACF;AAED,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAAS;IAClD,OAAO,EAAE,WAAW,GAAG,IAAI,CAAQ;IAEnC,aAAa,EAAE,MAAM,CAAK;IAC1B,UAAU,EAAE,MAAM,CAAM;IACxB,QAAQ,EAAE,MAAM,CAAM;IACtB,UAAU,UAAS;gBAEP,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,cAAc;IAK3D,IAAW,MAAM,IAAI,WAAW,GAAG,IAAI,CAEtC;IAED,IAAW,MAAM,CAAC,MAAM,EAAE,WAAW,EASpC;IAED,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,IAAW,YAAY,CAAC,KAAK,EAAE,MAAM,EAMpC;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,MAAM,EAIjC;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,IAAW,OAAO,CAAC,KAAK,EAAE,MAAM,EAI/B;IAEM,KAAK,CACV,IAAI,CAAC,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI;IAYA,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;CAIjC"}
@@ -1,104 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- const fs = require('fs');
4
- const path = require('path');
5
-
6
- const args = process.argv.slice(2);
7
-
8
- /**
9
- * Checks if the given app configuration is an Expo project using the Metro bundler for web.
10
- *
11
- * @param {Object} appJson - The app configuration JSON object.
12
- * @returns {boolean} - Returns true if the project is an Expo project using the Metro bundler for web, otherwise false.
13
- */
14
- function isExpoProjectWithExpo(appJson) {
15
- return (
16
- appJson.expo && appJson.expo.web && appJson.expo.web.bundler === 'metro'
17
- );
18
- }
19
-
20
- /**
21
- * Checks if the current project is an Expo project using the Metro bundler.
22
- *
23
- * This function attempts to read the `app.json` file from the current working directory
24
- * to determine if the project is an Expo project. If the project is an Expo project,
25
- * it further checks if the Metro bundler is being used.
26
- *
27
- * @returns {boolean} - Returns `true` if the project is an Expo project using the Metro bundler,
28
- * `false` if it is an Expo project without the Metro bundler, or if no Expo settings are found.
29
- */
30
- function getIsExpoOnMetro() {
31
- try {
32
- const appJsonPath = path.join(process.cwd(), 'app.json');
33
-
34
- console.log(`> Reading Expo settings from (if any):\n ${appJsonPath}\n`);
35
- const appJson = require(appJsonPath);
36
-
37
- const isExpoAndMetro = isExpoProjectWithExpo(appJson);
38
-
39
- if (isExpoAndMetro) {
40
- console.log(`> Expo project with Metro bundler detected\n`);
41
- return true;
42
- } else {
43
- console.log(`> Expo project without Metro bundler detected\n`);
44
- return false;
45
- }
46
- } catch (error) {
47
- console.log(`No Expo settings found\n`);
48
- return false;
49
- }
50
- }
51
-
52
- /**
53
- * Resolves and returns the absolute path to the SignalsmithStretch.mjs file.
54
- *
55
- * @returns {string} The absolute path to the SignalsmithStretch.mjs file.
56
- */
57
- function getInputFilePath() {
58
- return path.resolve(
59
- __dirname,
60
- '../lib/module/web-core/custom/signalsmithStretch/SignalsmithStretch.mjs'
61
- );
62
- }
63
-
64
- /**
65
- * Generates the output file path for the WebAssembly module.
66
- *
67
- * @param {boolean} isExpoAndMetro - A flag indicating whether the environment is Expo and Metro.
68
- * @returns {string} The resolved output file path.
69
- */
70
- function getOutputFilePath(isExpoAndMetro) {
71
- const publicFolder = path.resolve(
72
- args[0] || (isExpoAndMetro ? 'public' : 'web/static/js')
73
- );
74
-
75
- const publicFile = './signalsmithStretch.mjs';
76
- const outputPath = path.join(publicFolder, publicFile);
77
-
78
- console.log(`> Output file path: ${outputPath}\n`);
79
-
80
- return outputPath;
81
- }
82
-
83
- /**
84
- * Copies a file from the input path to the output path.
85
- *
86
- * @param {string} inputPath - The path of the file to be copied.
87
- * @param {string} outputPath - The destination path where the file should be copied.
88
- */
89
- function copyFile(inputPath, outputPath) {
90
- const data = fs.readFileSync(inputPath);
91
- fs.mkdirSync(path.dirname(outputPath), { recursive: true });
92
- fs.writeFileSync(outputPath, data);
93
- }
94
-
95
- (function main() {
96
- const isExpoAndMetro = getIsExpoOnMetro();
97
-
98
- const inputPath = getInputFilePath();
99
- const outputPath = getOutputFilePath(isExpoAndMetro);
100
-
101
- copyFile(inputPath, outputPath);
102
-
103
- console.log(`> WebAssembly module setup complete\n`);
104
- })();
@@ -1,125 +0,0 @@
1
- import BaseAudioContext from './BaseAudioContext';
2
- import AudioBuffer from './AudioBuffer';
3
- import AudioNode from './AudioNode';
4
-
5
- import { globalTag } from './custom/LoadCustomWasm';
6
-
7
- interface ScheduleOptions {
8
- rate?: number;
9
- active?: boolean;
10
- outputTime?: number;
11
- semitones?: number;
12
- loopStart?: number;
13
- loopEnd?: number;
14
- }
15
-
16
- declare class IStretcherNode {
17
- addBuffers(channels: Float32Array[]): void;
18
-
19
- schedule(options: ScheduleOptions): void;
20
-
21
- start(
22
- when?: number,
23
- offset?: number,
24
- duration?: number,
25
- rate?: number,
26
- semitones?: number
27
- ): void;
28
-
29
- stop(when?: number): void;
30
-
31
- connect(destination: globalThis.AudioNode): void;
32
- disconnect(destination: globalThis.AudioNode): void;
33
- }
34
-
35
- declare global {
36
- interface Window {
37
- [globalTag]: (
38
- audioContext: globalThis.BaseAudioContext
39
- ) => Promise<IStretcherNode>;
40
- }
41
- }
42
-
43
- export default class StretcherNode extends AudioNode {
44
- _buffer: AudioBuffer | null = null;
45
-
46
- _playbackRate: number = 1;
47
- _loopStart: number = -1;
48
- _loopEnd: number = -1;
49
- _isPlaying = false;
50
-
51
- constructor(context: BaseAudioContext, node: IStretcherNode) {
52
- super(context, node as unknown as globalThis.AudioNode);
53
- this._buffer = null;
54
- }
55
-
56
- public get buffer(): AudioBuffer | null {
57
- return this._buffer;
58
- }
59
-
60
- public set buffer(buffer: AudioBuffer) {
61
- this._buffer = buffer;
62
- const channelArrays = [];
63
-
64
- for (let i = 0; i < buffer.numberOfChannels; i += 1) {
65
- channelArrays.push(buffer.getChannelData(i));
66
- }
67
-
68
- (this.node as unknown as IStretcherNode).addBuffers(channelArrays);
69
- }
70
-
71
- public get playbackRate(): number {
72
- return this._playbackRate;
73
- }
74
-
75
- public set playbackRate(value: number) {
76
- this._playbackRate = value;
77
-
78
- if (this._isPlaying) {
79
- (this.node as unknown as IStretcherNode).schedule({ rate: value });
80
- }
81
- }
82
-
83
- public get loopStart(): number {
84
- return this._loopStart;
85
- }
86
-
87
- public set loopStart(value: number) {
88
- this._loopStart = value;
89
-
90
- (this.node as unknown as IStretcherNode).schedule({ loopStart: value });
91
- }
92
-
93
- public get loopEnd(): number {
94
- return this._loopEnd;
95
- }
96
-
97
- public set loopEnd(value: number) {
98
- this._loopEnd = value;
99
-
100
- (this.node as unknown as IStretcherNode).schedule({ loopEnd: value });
101
- }
102
-
103
- public start(
104
- when?: number,
105
- offset?: number,
106
- duration?: number,
107
- rate?: number,
108
- semitones?: number
109
- ): void {
110
- this._isPlaying = true;
111
-
112
- (this.node as unknown as IStretcherNode).start(
113
- when,
114
- offset,
115
- duration,
116
- rate,
117
- semitones
118
- );
119
- }
120
-
121
- public stop(when?: number): void {
122
- this._isPlaying = false;
123
- (this.node as unknown as IStretcherNode).stop(when);
124
- }
125
- }