echogarden 0.12.2 → 1.0.0

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 (334) hide show
  1. package/README.md +15 -14
  2. package/data/schemas/options.json +398 -111
  3. package/dist/alignment/DTWMfccSequenceAlignment.d.ts +1 -1
  4. package/dist/alignment/DTWMfccSequenceAlignment.js +8 -8
  5. package/dist/alignment/DTWSequenceAlignment.d.ts +1 -1
  6. package/dist/alignment/DTWSequenceAlignment.js +1 -1
  7. package/dist/alignment/DTWSequenceAlignmentWindowed.d.ts +1 -1
  8. package/dist/alignment/DTWSequenceAlignmentWindowed.js +2 -2
  9. package/dist/alignment/LevenshteinSequenceAlignment.d.ts +1 -1
  10. package/dist/alignment/LevenshteinSequenceAlignment.js +1 -1
  11. package/dist/alignment/SpeechAlignment.d.ts +9 -10
  12. package/dist/alignment/SpeechAlignment.js +136 -105
  13. package/dist/alignment/SpeechAlignment.js.map +1 -1
  14. package/dist/api/API.d.ts +13 -12
  15. package/dist/api/API.js +14 -13
  16. package/dist/api/API.js.map +1 -1
  17. package/dist/api/APIOptions.d.ts +5 -4
  18. package/dist/api/Alignment.d.ts +15 -9
  19. package/dist/api/Alignment.js +88 -74
  20. package/dist/api/Alignment.js.map +1 -1
  21. package/dist/api/Common.js +1 -1
  22. package/dist/api/Denoising.d.ts +6 -6
  23. package/dist/api/Denoising.js +23 -23
  24. package/dist/api/Denoising.js.map +1 -1
  25. package/dist/api/LanguageDetection.d.ts +19 -12
  26. package/dist/api/LanguageDetection.js +88 -38
  27. package/dist/api/LanguageDetection.js.map +1 -1
  28. package/dist/api/Recognition.d.ts +16 -6
  29. package/dist/api/Recognition.js +129 -55
  30. package/dist/api/Recognition.js.map +1 -1
  31. package/dist/api/SourceSeparation.d.ts +17 -0
  32. package/dist/api/SourceSeparation.js +61 -0
  33. package/dist/api/SourceSeparation.js.map +1 -0
  34. package/dist/api/Synthesis.d.ts +18 -18
  35. package/dist/api/Synthesis.js +191 -164
  36. package/dist/api/Synthesis.js.map +1 -1
  37. package/dist/api/Translation.d.ts +19 -8
  38. package/dist/api/Translation.js +132 -35
  39. package/dist/api/Translation.js.map +1 -1
  40. package/dist/api/Vad.d.ts +10 -5
  41. package/dist/api/Vad.js +76 -38
  42. package/dist/api/Vad.js.map +1 -1
  43. package/dist/audio/AudioBufferConversion.d.ts +1 -1
  44. package/dist/audio/AudioBufferConversion.js +4 -4
  45. package/dist/audio/AudioPlayer.d.ts +1 -1
  46. package/dist/audio/AudioPlayer.js +26 -26
  47. package/dist/audio/AudioPlayer.js.map +1 -1
  48. package/dist/audio/AudioRecorder.d.ts +1 -1
  49. package/dist/audio/AudioRecorder.js +5 -5
  50. package/dist/audio/AudioUtilities.d.ts +13 -9
  51. package/dist/audio/AudioUtilities.js +86 -24
  52. package/dist/audio/AudioUtilities.js.map +1 -1
  53. package/dist/cli/CLI.d.ts +3 -3
  54. package/dist/cli/CLI.js +271 -162
  55. package/dist/cli/CLI.js.map +1 -1
  56. package/dist/cli/CLIConfigFile.js +8 -8
  57. package/dist/cli/CLILauncher.js +6 -6
  58. package/dist/cli/CLIOptionsSchema.js +2 -2
  59. package/dist/cli/CLIParser.js +5 -5
  60. package/dist/cli/CLIStarter.js +4 -4
  61. package/dist/codecs/FFMpegTranscoder.d.ts +2 -2
  62. package/dist/codecs/FFMpegTranscoder.js +37 -37
  63. package/dist/codecs/FFMpegTranscoder.js.map +1 -1
  64. package/dist/codecs/TIMITCodec.js +5 -5
  65. package/dist/codecs/WaveCodec.d.ts +1 -1
  66. package/dist/codecs/WaveCodec.js +22 -22
  67. package/dist/denoising/RNNoise.d.ts +1 -1
  68. package/dist/denoising/RNNoise.js +9 -9
  69. package/dist/dsp/BiquadFilter.d.ts +3 -2
  70. package/dist/dsp/BiquadFilter.js +18 -11
  71. package/dist/dsp/BiquadFilter.js.map +1 -1
  72. package/dist/dsp/DecayingPeakEstimator.d.ts +16 -0
  73. package/dist/dsp/DecayingPeakEstimator.js +23 -0
  74. package/dist/dsp/DecayingPeakEstimator.js.map +1 -0
  75. package/dist/dsp/FFT.d.ts +8 -4
  76. package/dist/dsp/FFT.js +76 -30
  77. package/dist/dsp/FFT.js.map +1 -1
  78. package/dist/dsp/KWeightingFilter.d.ts +9 -0
  79. package/dist/dsp/KWeightingFilter.js +40 -0
  80. package/dist/dsp/KWeightingFilter.js.map +1 -0
  81. package/dist/dsp/LoudnessEstimator.d.ts +21 -0
  82. package/dist/dsp/LoudnessEstimator.js +47 -0
  83. package/dist/dsp/LoudnessEstimator.js.map +1 -0
  84. package/dist/dsp/MFCC.d.ts +2 -2
  85. package/dist/dsp/MFCC.js +15 -15
  86. package/dist/dsp/MelSpectogram.d.ts +1 -1
  87. package/dist/dsp/MelSpectogram.js +6 -6
  88. package/dist/dsp/Rubberband.d.ts +11 -11
  89. package/dist/dsp/Rubberband.js +27 -27
  90. package/dist/dsp/Sonic.d.ts +1 -1
  91. package/dist/dsp/Sonic.js +3 -3
  92. package/dist/dsp/SpeexResampler.d.ts +1 -1
  93. package/dist/dsp/SpeexResampler.js +2 -2
  94. package/dist/math/VectorMath.d.ts +12 -8
  95. package/dist/math/VectorMath.js +35 -32
  96. package/dist/math/VectorMath.js.map +1 -1
  97. package/dist/nlp/ChineseSegmentation.js +2 -2
  98. package/dist/nlp/CompromiseNLP.js +3 -3
  99. package/dist/nlp/EspeakPhonemizer.js +30 -30
  100. package/dist/nlp/IPA.js +20 -20
  101. package/dist/nlp/JapaneseSegmentation.js +6 -6
  102. package/dist/nlp/Lexicon.d.ts +1 -1
  103. package/dist/nlp/Lexicon.js +7 -7
  104. package/dist/nlp/Segmentation.d.ts +3 -0
  105. package/dist/nlp/Segmentation.js +21 -14
  106. package/dist/nlp/Segmentation.js.map +1 -1
  107. package/dist/nlp/TextNormalizer.js +16 -16
  108. package/dist/recognition/AmazonTranscribeSTT.d.ts +2 -2
  109. package/dist/recognition/AmazonTranscribeSTT.js +13 -14
  110. package/dist/recognition/AmazonTranscribeSTT.js.map +1 -1
  111. package/dist/recognition/AzureCognitiveServicesSTT.js +5 -6
  112. package/dist/recognition/AzureCognitiveServicesSTT.js.map +1 -1
  113. package/dist/recognition/GoogleCloudSTT.d.ts +3 -3
  114. package/dist/recognition/GoogleCloudSTT.js +18 -18
  115. package/dist/recognition/OpenAICloudSTT.d.ts +19 -0
  116. package/dist/recognition/OpenAICloudSTT.js +81 -0
  117. package/dist/recognition/OpenAICloudSTT.js.map +1 -0
  118. package/dist/recognition/SileroSTT.d.ts +2 -2
  119. package/dist/recognition/SileroSTT.js +25 -25
  120. package/dist/recognition/VoskSTT.d.ts +2 -2
  121. package/dist/recognition/VoskSTT.js +8 -8
  122. package/dist/recognition/WhisperCppSTT.d.ts +88 -0
  123. package/dist/recognition/WhisperCppSTT.js +332 -0
  124. package/dist/recognition/WhisperCppSTT.js.map +1 -0
  125. package/dist/recognition/WhisperSTT.d.ts +49 -25
  126. package/dist/recognition/WhisperSTT.js +626 -481
  127. package/dist/recognition/WhisperSTT.js.map +1 -1
  128. package/dist/server/Client.d.ts +1 -1
  129. package/dist/server/Client.js +22 -22
  130. package/dist/server/Server.js +9 -9
  131. package/dist/server/Server.js.map +1 -1
  132. package/dist/server/Worker.d.ts +22 -22
  133. package/dist/server/Worker.js +36 -36
  134. package/dist/server/Worker.js.map +1 -1
  135. package/dist/server/WorkerStarter.js +2 -2
  136. package/dist/source-separation/MDXNetSourceSeparation.d.ts +11 -0
  137. package/dist/source-separation/MDXNetSourceSeparation.js +161 -0
  138. package/dist/source-separation/MDXNetSourceSeparation.js.map +1 -0
  139. package/dist/speech-language-detection/SileroLanguageDetection.d.ts +1 -1
  140. package/dist/speech-language-detection/SileroLanguageDetection.js +7 -7
  141. package/dist/subtitles/Subtitles.d.ts +10 -0
  142. package/dist/subtitles/Subtitles.js +2 -2
  143. package/dist/subtitles/Subtitles.js.map +1 -1
  144. package/dist/synthesis/AwsPollyTTS.d.ts +1 -1
  145. package/dist/synthesis/AwsPollyTTS.js +12 -12
  146. package/dist/synthesis/AzureCognitiveServicesTTS.js +7 -7
  147. package/dist/synthesis/CoquiServerTTS.js +10 -10
  148. package/dist/synthesis/CoquiServerTTS.js.map +1 -1
  149. package/dist/synthesis/ElevenlabsTTS.d.ts +23 -0
  150. package/dist/synthesis/ElevenlabsTTS.js +103 -0
  151. package/dist/synthesis/ElevenlabsTTS.js.map +1 -0
  152. package/dist/synthesis/EspeakTTS.d.ts +6 -5
  153. package/dist/synthesis/EspeakTTS.js +81 -69
  154. package/dist/synthesis/EspeakTTS.js.map +1 -1
  155. package/dist/synthesis/FliteTTS.d.ts +3 -3
  156. package/dist/synthesis/FliteTTS.js +154 -154
  157. package/dist/synthesis/FliteTTS.js.map +1 -1
  158. package/dist/synthesis/GoogleCloudTTS.d.ts +3 -3
  159. package/dist/synthesis/GoogleCloudTTS.js +17 -17
  160. package/dist/synthesis/GoogleCloudTTS.js.map +1 -1
  161. package/dist/synthesis/GoogleTranslateTTS.d.ts +1 -1
  162. package/dist/synthesis/GoogleTranslateTTS.js +103 -103
  163. package/dist/synthesis/MicrosoftEdgeTTS.d.ts +2 -2
  164. package/dist/synthesis/MicrosoftEdgeTTS.js +74 -74
  165. package/dist/synthesis/OpenAICloudTTS.d.ts +13 -0
  166. package/dist/synthesis/OpenAICloudTTS.js +169 -0
  167. package/dist/synthesis/OpenAICloudTTS.js.map +1 -0
  168. package/dist/synthesis/SamTTS.js +3 -3
  169. package/dist/synthesis/SapiTTS.d.ts +3 -3
  170. package/dist/synthesis/SapiTTS.js +26 -26
  171. package/dist/synthesis/StreamlabsPollyTTS.d.ts +2 -2
  172. package/dist/synthesis/StreamlabsPollyTTS.js +27 -27
  173. package/dist/synthesis/SvoxPicoTTS.d.ts +2 -2
  174. package/dist/synthesis/SvoxPicoTTS.js +65 -65
  175. package/dist/synthesis/SvoxPicoTTS.js.map +1 -1
  176. package/dist/synthesis/VitsTTS.d.ts +3 -3
  177. package/dist/synthesis/VitsTTS.js +378 -378
  178. package/dist/synthesis/VitsTTS.js.map +1 -1
  179. package/dist/tests/Test.js +2 -2
  180. package/dist/utilities/Compression.d.ts +5 -0
  181. package/dist/utilities/Compression.js +29 -13
  182. package/dist/utilities/Compression.js.map +1 -1
  183. package/dist/utilities/FileDownloader.d.ts +1 -1
  184. package/dist/utilities/FileDownloader.js +16 -16
  185. package/dist/utilities/FileSystem.js +7 -7
  186. package/dist/utilities/Locale.d.ts +7 -7
  187. package/dist/utilities/Locale.js +15 -15
  188. package/dist/utilities/Logger.js +3 -3
  189. package/dist/utilities/ObjectUtilities.js +19 -19
  190. package/dist/utilities/OpenPromise.js +2 -2
  191. package/dist/utilities/OpenPromise.js.map +1 -1
  192. package/dist/utilities/PackageManager.js +31 -0
  193. package/dist/utilities/PackageManager.js.map +1 -1
  194. package/dist/utilities/PathUtilities.js +8 -8
  195. package/dist/utilities/RandomGenerator.js +2 -2
  196. package/dist/utilities/SmoothEstimator.d.ts +8 -0
  197. package/dist/utilities/SmoothEstimator.js +25 -0
  198. package/dist/utilities/SmoothEstimator.js.map +1 -0
  199. package/dist/utilities/TarballMaker.js +8 -8
  200. package/dist/utilities/Timeline.d.ts +3 -2
  201. package/dist/utilities/Timeline.js +11 -11
  202. package/dist/utilities/Timeline.js.map +1 -1
  203. package/dist/utilities/Timer.js +4 -4
  204. package/dist/utilities/Utilities.d.ts +4 -0
  205. package/dist/utilities/Utilities.js +38 -15
  206. package/dist/utilities/Utilities.js.map +1 -1
  207. package/dist/utilities/WasmMemoryManager.js +7 -7
  208. package/dist/utilities/WebReader.js +23 -23
  209. package/dist/utilities/WikipediaReader.js +2 -2
  210. package/dist/voice-activity-detection/AdaptiveGateVAD.d.ts +28 -0
  211. package/dist/voice-activity-detection/AdaptiveGateVAD.js +138 -0
  212. package/dist/voice-activity-detection/AdaptiveGateVAD.js.map +1 -0
  213. package/dist/voice-activity-detection/SileroVAD.d.ts +1 -1
  214. package/dist/voice-activity-detection/SileroVAD.js +5 -5
  215. package/dist/voice-activity-detection/SileroVAD.js.map +1 -1
  216. package/dist/voice-activity-detection/WebRtcVAD.d.ts +1 -1
  217. package/dist/voice-activity-detection/WebRtcVAD.js +4 -4
  218. package/docs/API.md +29 -11
  219. package/docs/CLI.md +31 -7
  220. package/docs/Contributing.md +38 -0
  221. package/docs/Development.md +93 -19
  222. package/docs/Engines.md +28 -16
  223. package/docs/Licenses.md +4 -1
  224. package/docs/Options.md +158 -78
  225. package/docs/Releases.md +262 -0
  226. package/docs/Server.md +7 -7
  227. package/docs/Tasklist.md +95 -76
  228. package/docs/Technical.md +4 -4
  229. package/package.json +13 -14
  230. package/src/alignment/DTWMfccSequenceAlignment.ts +9 -9
  231. package/src/alignment/DTWSequenceAlignment.ts +2 -2
  232. package/src/alignment/DTWSequenceAlignmentWindowed.ts +3 -3
  233. package/src/alignment/LevenshteinSequenceAlignment.ts +2 -2
  234. package/src/alignment/SpeechAlignment.ts +204 -119
  235. package/src/api/API.ts +14 -13
  236. package/src/api/APIOptions.ts +12 -11
  237. package/src/api/Alignment.ts +147 -90
  238. package/src/api/Common.ts +1 -1
  239. package/src/api/Denoising.ts +28 -28
  240. package/src/api/LanguageDetection.ts +135 -48
  241. package/src/api/Recognition.ts +198 -59
  242. package/src/api/SourceSeparation.ts +99 -0
  243. package/src/api/Synthesis.ts +217 -181
  244. package/src/api/Translation.ts +193 -40
  245. package/src/api/Vad.ts +110 -41
  246. package/src/audio/AudioBufferConversion.ts +4 -4
  247. package/src/audio/AudioPlayer.ts +27 -27
  248. package/src/audio/AudioRecorder.ts +5 -5
  249. package/src/audio/AudioUtilities.ts +107 -24
  250. package/src/cli/CLI.ts +313 -164
  251. package/src/cli/CLIConfigFile.ts +8 -8
  252. package/src/cli/CLILauncher.ts +6 -6
  253. package/src/cli/CLIOptionsSchema.ts +2 -2
  254. package/src/cli/CLIParser.ts +5 -5
  255. package/src/cli/CLIStarter.ts +4 -4
  256. package/src/codecs/FFMpegTranscoder.ts +38 -38
  257. package/src/codecs/TIMITCodec.ts +5 -5
  258. package/src/codecs/WaveCodec.ts +22 -22
  259. package/src/denoising/RNNoise.ts +9 -9
  260. package/src/dsp/BiquadFilter.ts +19 -11
  261. package/src/dsp/DecayingPeakEstimator.ts +35 -0
  262. package/src/dsp/FFT.ts +103 -35
  263. package/src/dsp/KWeightingFilter.ts +43 -0
  264. package/src/dsp/LoudnessEstimator.ts +74 -0
  265. package/src/dsp/MFCC.ts +15 -15
  266. package/src/dsp/MelSpectogram.ts +7 -7
  267. package/src/dsp/Rubberband.ts +38 -38
  268. package/src/dsp/Sonic.ts +4 -4
  269. package/src/dsp/SpeexResampler.ts +2 -2
  270. package/src/math/VectorMath.ts +42 -33
  271. package/src/nlp/ChineseSegmentation.ts +3 -3
  272. package/src/nlp/CompromiseNLP.ts +3 -3
  273. package/src/nlp/EspeakPhonemizer.ts +30 -30
  274. package/src/nlp/IPA.ts +20 -20
  275. package/src/nlp/JapaneseSegmentation.ts +6 -6
  276. package/src/nlp/Lexicon.ts +8 -8
  277. package/src/nlp/Segmentation.ts +23 -14
  278. package/src/nlp/TextNormalizer.ts +16 -16
  279. package/src/recognition/AmazonTranscribeSTT.ts +16 -17
  280. package/src/recognition/AzureCognitiveServicesSTT.ts +8 -6
  281. package/src/recognition/GoogleCloudSTT.ts +21 -21
  282. package/src/recognition/OpenAICloudSTT.ts +142 -0
  283. package/src/recognition/SileroSTT.ts +26 -26
  284. package/src/recognition/VoskSTT.ts +10 -10
  285. package/src/recognition/WhisperCppSTT.ts +555 -0
  286. package/src/recognition/WhisperSTT.ts +760 -507
  287. package/src/server/Client.ts +23 -23
  288. package/src/server/Server.ts +9 -9
  289. package/src/server/Worker.ts +53 -53
  290. package/src/server/WorkerStarter.ts +2 -2
  291. package/src/source-separation/MDXNetSourceSeparation.ts +228 -0
  292. package/src/speech-language-detection/SileroLanguageDetection.ts +8 -8
  293. package/src/subtitles/Subtitles.ts +3 -3
  294. package/src/synthesis/AwsPollyTTS.ts +14 -14
  295. package/src/synthesis/AzureCognitiveServicesTTS.ts +10 -10
  296. package/src/synthesis/CoquiServerTTS.ts +10 -10
  297. package/src/synthesis/ElevenlabsTTS.ts +137 -0
  298. package/src/synthesis/EspeakTTS.ts +90 -71
  299. package/src/synthesis/FliteTTS.ts +157 -157
  300. package/src/synthesis/GoogleCloudTTS.ts +19 -19
  301. package/src/synthesis/GoogleTranslateTTS.ts +104 -104
  302. package/src/synthesis/MicrosoftEdgeTTS.ts +80 -80
  303. package/src/synthesis/OpenAICloudTTS.ts +196 -0
  304. package/src/synthesis/SamTTS.ts +3 -3
  305. package/src/synthesis/SapiTTS.ts +29 -29
  306. package/src/synthesis/StreamlabsPollyTTS.ts +29 -29
  307. package/src/synthesis/SvoxPicoTTS.ts +67 -67
  308. package/src/synthesis/VitsTTS.ts +380 -380
  309. package/src/tests/Test.ts +4 -4
  310. package/src/utilities/Compression.ts +34 -13
  311. package/src/utilities/FileDownloader.ts +19 -19
  312. package/src/utilities/FileSystem.ts +7 -7
  313. package/src/utilities/Locale.ts +22 -22
  314. package/src/utilities/Logger.ts +4 -4
  315. package/src/utilities/ObjectUtilities.ts +19 -19
  316. package/src/utilities/OpenPromise.ts +2 -2
  317. package/src/utilities/PackageManager.ts +40 -0
  318. package/src/utilities/PathUtilities.ts +8 -8
  319. package/src/utilities/RandomGenerator.ts +3 -3
  320. package/src/utilities/SmoothEstimator.ts +35 -0
  321. package/src/utilities/TarballMaker.ts +9 -9
  322. package/src/utilities/Timeline.ts +15 -13
  323. package/src/utilities/Timer.ts +4 -4
  324. package/src/utilities/Utilities.ts +49 -15
  325. package/src/utilities/WasmMemoryManager.ts +7 -7
  326. package/src/utilities/WebReader.ts +23 -23
  327. package/src/utilities/WikipediaReader.ts +2 -2
  328. package/src/voice-activity-detection/AdaptiveGateVAD.ts +202 -0
  329. package/src/voice-activity-detection/SileroVAD.ts +5 -5
  330. package/src/voice-activity-detection/WebRtcVAD.ts +5 -5
  331. package/dist/synthesis/ElevenLabsTTS.d.ts +0 -8
  332. package/dist/synthesis/ElevenLabsTTS.js +0 -82
  333. package/dist/synthesis/ElevenLabsTTS.js.map +0 -1
  334. package/src/synthesis/ElevenLabsTTS.ts +0 -104
@@ -10,27 +10,27 @@ export function encodeWave(rawAudio, bitDepth = 16, sampleFormat = SampleFormat.
10
10
  const formatSubChunk = new WaveFormat(audioChannels.length, sampleRate, bitDepth, sampleFormat, speakerPositionMask);
11
11
  const formatSubChunkBuffer = formatSubChunk.serialize(shouldUseExtensibleFormat);
12
12
  const dataSubChunkBuffer = Buffer.alloc(4 + 4 + audioDataLength);
13
- dataSubChunkBuffer.write("data", 0, "ascii");
13
+ dataSubChunkBuffer.write('data', 0, 'ascii');
14
14
  dataSubChunkBuffer.writeUint32LE(audioDataLength, 4);
15
15
  dataSubChunkBuffer.set(audioBuffer, 8);
16
16
  const riffChunkHeaderBuffer = Buffer.alloc(12);
17
- riffChunkHeaderBuffer.write("RIFF", 0, "ascii");
17
+ riffChunkHeaderBuffer.write('RIFF', 0, 'ascii');
18
18
  riffChunkHeaderBuffer.writeUint32LE(4 + formatSubChunkBuffer.length + dataSubChunkBuffer.length, 4);
19
- riffChunkHeaderBuffer.write("WAVE", 8, "ascii");
19
+ riffChunkHeaderBuffer.write('WAVE', 8, 'ascii');
20
20
  return Buffer.concat([riffChunkHeaderBuffer, formatSubChunkBuffer, dataSubChunkBuffer]);
21
21
  }
22
22
  export function decodeWave(waveData, ignoreTruncatedChunks = false) {
23
23
  let readOffset = 0;
24
- const riffId = waveData.subarray(readOffset, readOffset + 4).toString("ascii");
25
- if (riffId != "RIFF") {
26
- throw new Error("Not a valid wave file. No RIFF id found at offset 0.");
24
+ const riffId = waveData.subarray(readOffset, readOffset + 4).toString('ascii');
25
+ if (riffId != 'RIFF') {
26
+ throw new Error('Not a valid wave file. No RIFF id found at offset 0.');
27
27
  }
28
28
  readOffset += 4;
29
29
  const riffChunkSize = waveData.readUInt32LE(readOffset);
30
30
  readOffset += 4;
31
- const waveId = waveData.subarray(readOffset, readOffset + 4).toString("ascii");
32
- if (waveId != "WAVE") {
33
- throw new Error("Not a valid wave file. No WAVE id found at offset 8.");
31
+ const waveId = waveData.subarray(readOffset, readOffset + 4).toString('ascii');
32
+ if (waveId != 'WAVE') {
33
+ throw new Error('Not a valid wave file. No WAVE id found at offset 8.');
34
34
  }
35
35
  if (riffChunkSize < waveData.length - 8) {
36
36
  throw new Error(`RIFF chunk length ${riffChunkSize} is smaller than the remaining size of the buffer (${waveData.length - 8})`);
@@ -42,19 +42,19 @@ export function decodeWave(waveData, ignoreTruncatedChunks = false) {
42
42
  let formatSubChunkBodyBuffer;
43
43
  const dataBuffers = [];
44
44
  while (true) {
45
- const subChunkIdentifier = waveData.subarray(readOffset, readOffset + 4).toString("ascii");
45
+ const subChunkIdentifier = waveData.subarray(readOffset, readOffset + 4).toString('ascii');
46
46
  readOffset += 4;
47
47
  const subChunkSize = waveData.readUInt32LE(readOffset);
48
48
  readOffset += 4;
49
49
  if (!ignoreTruncatedChunks && subChunkSize > waveData.length - readOffset) {
50
50
  throw new Error(`Encountered a '${subChunkIdentifier}' subchunk with a size of ${subChunkSize} which is greater than the remaining size of the buffer (${waveData.length - readOffset})`);
51
51
  }
52
- if (subChunkIdentifier == "fmt ") {
52
+ if (subChunkIdentifier == 'fmt ') {
53
53
  formatSubChunkBodyBuffer = waveData.subarray(readOffset, readOffset + subChunkSize);
54
54
  }
55
- else if (subChunkIdentifier == "data") {
55
+ else if (subChunkIdentifier == 'data') {
56
56
  if (!formatSubChunkBodyBuffer) {
57
- throw new Error("A data subchunk was encountered before a format subchunk");
57
+ throw new Error('A data subchunk was encountered before a format subchunk');
58
58
  }
59
59
  // If the data chunk is truncated, but truncations are ignored,
60
60
  // it would be read up to the end of the buffer
@@ -70,7 +70,7 @@ export function decodeWave(waveData, ignoreTruncatedChunks = false) {
70
70
  }
71
71
  }
72
72
  if (!formatSubChunkBodyBuffer) {
73
- throw new Error("No format subchunk was found in the wave file");
73
+ throw new Error('No format subchunk was found in the wave file');
74
74
  }
75
75
  const waveFormat = WaveFormat.deserializeFrom(formatSubChunkBodyBuffer);
76
76
  const sampleFormat = waveFormat.sampleFormat;
@@ -116,7 +116,7 @@ class WaveFormat {
116
116
  }
117
117
  const serializedSize = sampleFormatToSerializedSize[sampleFormatId];
118
118
  const result = Buffer.alloc(serializedSize);
119
- result.write("fmt ", 0, "ascii"); // + 4
119
+ result.write('fmt ', 0, 'ascii'); // + 4
120
120
  result.writeUint32LE(serializedSize - 8, 4); // + 4
121
121
  result.writeUint16LE(sampleFormatId, 8); // + 2
122
122
  result.writeUint16LE(this.channelCount, 10); // + 2
@@ -129,7 +129,7 @@ class WaveFormat {
129
129
  result.writeUint16LE(this.bitDepth, 26); // + 2 (valid bits per sample)
130
130
  result.writeUint32LE(this.speakerPositionMask, 28); // + 2 (speaker position mask)
131
131
  if (this.sampleFormat == SampleFormat.PCM || this.sampleFormat == SampleFormat.Float) {
132
- result.set(Buffer.from(this.guid, "hex"), 32);
132
+ result.set(Buffer.from(this.guid, 'hex'), 32);
133
133
  }
134
134
  else {
135
135
  throw new Error(`Extensible format is not supported for sample format ${this.sampleFormat}`);
@@ -148,7 +148,7 @@ class WaveFormat {
148
148
  throw new Error(`Format subchunk specifies a format id of 65534 (extensible) but its body size is ${formatChunkBody.length} bytes, which is smaller than the minimum expected of 40 bytes`);
149
149
  }
150
150
  speakerPositionMask = formatChunkBody.readUint16LE(20);
151
- const guid = formatChunkBody.subarray(24, 40).toString("hex");
151
+ const guid = formatChunkBody.subarray(24, 40).toString('hex');
152
152
  if (guid == sampleFormatToGuid[SampleFormat.PCM]) {
153
153
  sampleFormat = SampleFormat.PCM;
154
154
  }
@@ -188,7 +188,7 @@ class WaveFormat {
188
188
  export var SampleFormat;
189
189
  (function (SampleFormat) {
190
190
  SampleFormat[SampleFormat["PCM"] = 1] = "PCM";
191
- SampleFormat[SampleFormat["Float"] = 2] = "Float";
191
+ SampleFormat[SampleFormat["Float"] = 3] = "Float";
192
192
  SampleFormat[SampleFormat["Alaw"] = 6] = "Alaw";
193
193
  SampleFormat[SampleFormat["Mulaw"] = 7] = "Mulaw";
194
194
  })(SampleFormat || (SampleFormat = {}));
@@ -200,9 +200,9 @@ const sampleFormatToSerializedSize = {
200
200
  65534: 48
201
201
  };
202
202
  const sampleFormatToGuid = {
203
- [SampleFormat.PCM]: "0100000000001000800000aa00389b71",
204
- [SampleFormat.Float]: "0300000000001000800000aa00389b71",
205
- [SampleFormat.Alaw]: "",
206
- [SampleFormat.Mulaw]: "",
203
+ [SampleFormat.PCM]: '0100000000001000800000aa00389b71',
204
+ [SampleFormat.Float]: '0300000000001000800000aa00389b71',
205
+ [SampleFormat.Alaw]: '',
206
+ [SampleFormat.Mulaw]: '',
207
207
  };
208
208
  //# sourceMappingURL=WaveCodec.js.map
@@ -1,4 +1,4 @@
1
- import { RawAudio } from "../audio/AudioUtilities.js";
1
+ import { RawAudio } from '../audio/AudioUtilities.js';
2
2
  export declare function denoiseAudio(rawAudio: RawAudio): Promise<{
3
3
  denoisedRawAudio: RawAudio;
4
4
  frameVadProbabilities: number[];
@@ -1,23 +1,23 @@
1
- import { float32ToInt16Pcm } from "../audio/AudioBufferConversion.js";
2
- import { concatFloat32Arrays } from "../utilities/Utilities.js";
3
- import { WasmMemoryManager } from "../utilities/WasmMemoryManager.js";
4
- import { Logger } from "../utilities/Logger.js";
5
- import { cloneRawAudio } from "../audio/AudioUtilities.js";
1
+ import { float32ToInt16Pcm } from '../audio/AudioBufferConversion.js';
2
+ import { concatFloat32Arrays } from '../utilities/Utilities.js';
3
+ import { WasmMemoryManager } from '../utilities/WasmMemoryManager.js';
4
+ import { Logger } from '../utilities/Logger.js';
5
+ import { cloneRawAudio } from '../audio/AudioUtilities.js';
6
6
  let rnnoiseInstance;
7
7
  export async function denoiseAudio(rawAudio) {
8
8
  const logger = new Logger();
9
9
  if (rawAudio.sampleRate != 48000) {
10
- throw new Error("Sample rate must be 48000");
10
+ throw new Error('Sample rate must be 48000');
11
11
  }
12
12
  if (rawAudio.audioChannels.length != 1) {
13
- throw new Error("Channel count must be 1");
13
+ throw new Error('Channel count must be 1');
14
14
  }
15
15
  if (rawAudio.audioChannels[0].length == 0) {
16
16
  return { denoisedRawAudio: cloneRawAudio(rawAudio), frameVadProbabilities: [] };
17
17
  }
18
- logger.start("Get RNNoise WASM instance");
18
+ logger.start('Get RNNoise WASM instance');
19
19
  const m = await getRnnoiseInstance();
20
- logger.start("Process with RNNoise");
20
+ logger.start('Process with RNNoise');
21
21
  const wasmMemory = new WasmMemoryManager(m);
22
22
  const stateSize = m._rnnoise_get_size();
23
23
  const frameSize = m._rnnoise_get_frame_size();
@@ -18,8 +18,8 @@ export declare class BiquadFilter {
18
18
  private prevOutput1;
19
19
  private prevOutput2;
20
20
  constructor(coefficients: FilterCoefficients);
21
- step(sample: number): number;
22
- apply(samples: Float32Array): void;
21
+ filter(sample: number): number;
22
+ filterSamplesInPlace(samples: Float32Array): void;
23
23
  reset(): void;
24
24
  setCoefficients(coefficients: FilterCoefficients): void;
25
25
  }
@@ -39,3 +39,4 @@ export type FilterCoefficients = {
39
39
  a1: number;
40
40
  a2: number;
41
41
  };
42
+ export declare const emptyBiquadCoefficients: FilterCoefficients;
@@ -10,28 +10,28 @@
10
10
  // MDN documentation:
11
11
  // https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode
12
12
  export function createLowpassFilter(sampleRate, cutoffFrequency, q = 0.7071) {
13
- return createFilter("lowpass", sampleRate, cutoffFrequency, q, 0);
13
+ return createFilter('lowpass', sampleRate, cutoffFrequency, q, 0);
14
14
  }
15
15
  export function createHighpassFilter(sampleRate, cutoffFrequency, q = 0.7071) {
16
- return createFilter("highpass", sampleRate, cutoffFrequency, q, 0);
16
+ return createFilter('highpass', sampleRate, cutoffFrequency, q, 0);
17
17
  }
18
18
  export function createBandpassFilter(sampleRate, centerFrequency, q = 1) {
19
- return createFilter("bandpass", sampleRate, centerFrequency, q, 0);
19
+ return createFilter('bandpass', sampleRate, centerFrequency, q, 0);
20
20
  }
21
21
  export function createLowshelfFilter(sampleRate, midpointFrequency, gain) {
22
- return createFilter("lowshelf", sampleRate, midpointFrequency, 0, gain);
22
+ return createFilter('lowshelf', sampleRate, midpointFrequency, 0, gain);
23
23
  }
24
24
  export function createHighshelfFilter(sampleRate, midpointFrequency, gain) {
25
- return createFilter("highshelf", sampleRate, midpointFrequency, 0, gain);
25
+ return createFilter('highshelf', sampleRate, midpointFrequency, 0, gain);
26
26
  }
27
27
  export function createPeakingFilter(sampleRate, centerFrequency, q = 1, gain = 0) {
28
- return createFilter("peaking", sampleRate, centerFrequency, q, gain);
28
+ return createFilter('peaking', sampleRate, centerFrequency, q, gain);
29
29
  }
30
30
  export function createNotchFilter(sampleRate, centerFrequency, q = 1) {
31
- return createFilter("notch", sampleRate, centerFrequency, q, 0);
31
+ return createFilter('notch', sampleRate, centerFrequency, q, 0);
32
32
  }
33
33
  export function createAllpassFilter(sampleRate, centerFrequency, q = 1) {
34
- return createFilter("allpass", sampleRate, centerFrequency, q, 0);
34
+ return createFilter('allpass', sampleRate, centerFrequency, q, 0);
35
35
  }
36
36
  export function createFilter(filterType, sampleRate, frequency, q, gain) {
37
37
  const coefficients = getFilterCoefficients(filterType, sampleRate, frequency, q, gain);
@@ -50,7 +50,7 @@ export class BiquadFilter {
50
50
  constructor(coefficients) {
51
51
  this.setCoefficients(coefficients);
52
52
  }
53
- step(sample) {
53
+ filter(sample) {
54
54
  const filteredSample = (this.b0 * sample) +
55
55
  (this.b1 * this.prevInput1) +
56
56
  (this.b2 * this.prevInput2) -
@@ -62,9 +62,9 @@ export class BiquadFilter {
62
62
  this.prevOutput1 = filteredSample;
63
63
  return filteredSample;
64
64
  }
65
- apply(samples) {
65
+ filterSamplesInPlace(samples) {
66
66
  for (let i = 0; i < samples.length; i++) {
67
- samples[i] = this.step(samples[i]);
67
+ samples[i] = this.filter(samples[i]);
68
68
  }
69
69
  }
70
70
  reset() {
@@ -410,4 +410,11 @@ export const filterTypeName = {
410
410
  'notch': 'Notch filter',
411
411
  'allpass': 'Allpass filter'
412
412
  };
413
+ export const emptyBiquadCoefficients = {
414
+ b0: 0,
415
+ b1: 0,
416
+ b2: 0,
417
+ a1: 0,
418
+ a2: 0,
419
+ };
413
420
  //# sourceMappingURL=BiquadFilter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BiquadFilter.js","sourceRoot":"","sources":["../../src/dsp/BiquadFilter.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,4HAA4H;AAC5H,EAAE;AACF,uCAAuC;AACvC,4DAA4D;AAC5D,EAAE;AACF,wDAAwD;AACxD,sEAAsE;AACtE,EAAE;AACF,qBAAqB;AACrB,oEAAoE;AAEpE,MAAM,UAAU,mBAAmB,CAAC,UAAkB,EAAE,eAAuB,EAAE,CAAC,GAAG,MAAM;IAC1F,OAAO,YAAY,CAAC,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AAClE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,UAAkB,EAAE,eAAuB,EAAE,CAAC,GAAG,MAAM;IAC3F,OAAO,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AACnE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,UAAkB,EAAE,eAAuB,EAAE,CAAC,GAAG,CAAC;IACtF,OAAO,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AACnE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,UAAkB,EAAE,iBAAyB,EAAE,IAAY;IAC/F,OAAO,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;AACxE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAAkB,EAAE,iBAAyB,EAAE,IAAY;IAChG,OAAO,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;AACzE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,UAAkB,EAAE,eAAuB,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC;IAC/F,OAAO,YAAY,CAAC,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;AACrE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAAkB,EAAE,eAAuB,EAAE,CAAC,GAAG,CAAC;IACnF,OAAO,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AAChE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,UAAkB,EAAE,eAAuB,EAAE,CAAC,GAAG,CAAC;IACrF,OAAO,YAAY,CAAC,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AAClE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,UAAsB,EAAE,UAAkB,EAAE,SAAiB,EAAE,CAAS,EAAE,IAAY;IAClH,MAAM,YAAY,GAAG,qBAAqB,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;IAEtF,OAAO,IAAI,YAAY,CAAC,YAAY,CAAC,CAAA;AACtC,CAAC;AAED,MAAM,OAAO,YAAY;IAChB,EAAE,GAAG,CAAC,CAAA;IACN,EAAE,GAAG,CAAC,CAAA;IACN,EAAE,GAAG,CAAC,CAAA;IACN,EAAE,GAAG,CAAC,CAAA;IACN,EAAE,GAAG,CAAC,CAAA;IAEN,UAAU,GAAG,CAAC,CAAA;IACd,UAAU,GAAG,CAAC,CAAA;IAEd,WAAW,GAAG,CAAC,CAAA;IACf,WAAW,GAAG,CAAC,CAAA;IAEvB,YAAY,YAAgC;QAC3C,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAA;IACnC,CAAC;IAED,IAAI,CAAC,MAAc;QAClB,MAAM,cAAc,GACnB,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC;YAClB,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;YAC3B,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;YAC3B,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;YAC5B,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAA;QAE7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;QACjC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAA;QAExB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QACnC,IAAI,CAAC,WAAW,GAAG,cAAc,CAAA;QAEjC,OAAO,cAAc,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,OAAqB;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;QACnC,CAAC;IACF,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,UAAU,GAAG,CAAC,CAAA;QACnB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAA;QACnB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;QACpB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;IACrB,CAAC;IAED,eAAe,CAAC,YAAgC;QAC/C,IAAI,CAAC,EAAE,GAAG,YAAY,CAAC,EAAE,CAAA;QACzB,IAAI,CAAC,EAAE,GAAG,YAAY,CAAC,EAAE,CAAA;QACzB,IAAI,CAAC,EAAE,GAAG,YAAY,CAAC,EAAE,CAAA;QACzB,IAAI,CAAC,EAAE,GAAG,YAAY,CAAC,EAAE,CAAA;QACzB,IAAI,CAAC,EAAE,GAAG,YAAY,CAAC,EAAE,CAAA;IAC1B,CAAC;CACD;AAED,MAAM,UAAU,qBAAqB,CAAC,UAAsB,EAAE,UAAkB,EAAE,eAAuB,EAAE,CAAS,EAAE,IAAY;IACjI,MAAM,gBAAgB,GAAG,UAAU,GAAG,CAAC,CAAA;IACvC,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,GAAG,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAEjE,OAAO,0BAA0B,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAuB,CAAA;AACxF,CAAC;AAED,kBAAkB;AAClB,MAAM,UAAU,4BAA4B,CAAC,SAAiB,EAAE,CAAS,EAAE,IAAY;IACtF,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IAEd,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACpB,qEAAqE;QACrE,2DAA2D;QAC3D,EAAE,GAAG,CAAC,CAAA;QACN,EAAE,GAAG,CAAC,CAAA;QACN,EAAE,GAAG,CAAC,CAAA;QACN,EAAE,GAAG,CAAC,CAAA;QACN,EAAE,GAAG,CAAC,CAAA;QACN,EAAE,GAAG,CAAC,CAAA;IACP,CAAC;SAAM,CAAC;QACP,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,SAAS,CAAA;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;QAE3B,EAAE,GAAG,IAAI,CAAA;QACT,EAAE,GAAG,CAAC,GAAG,IAAI,CAAA;QACb,EAAE,GAAG,IAAI,CAAA;QACT,EAAE,GAAG,CAAC,GAAG,KAAK,CAAA;QACd,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;QACd,EAAE,GAAG,CAAC,GAAG,KAAK,CAAA;IACf,CAAC;IAED,OAAO,2BAA2B,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;AAC3D,CAAC;AAED,SAAS,6BAA6B,CAAC,SAAiB,EAAE,CAAS,EAAE,IAAY;IAChF,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IAEd,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACpB,kBAAkB;QAClB,EAAE,GAAG,CAAC,CAAA;QACN,EAAE,GAAG,CAAC,CAAA;QACN,EAAE,GAAG,CAAC,CAAA;QACN,EAAE,GAAG,CAAC,CAAA;QACN,EAAE,GAAG,CAAC,CAAA;QACN,EAAE,GAAG,CAAC,CAAA;IACP,CAAC;SAAM,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QAC3B,iEAAiE;QACjE,+DAA+D;QAC/D,uBAAuB;QACvB,EAAE,GAAG,CAAC,CAAA;QACN,EAAE,GAAG,CAAC,CAAA;QACN,EAAE,GAAG,CAAC,CAAA;QACN,EAAE,GAAG,CAAC,CAAA;QACN,EAAE,GAAG,CAAC,CAAA;QACN,EAAE,GAAG,CAAC,CAAA;IACP,CAAC;SAAM,CAAC;QACP,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,SAAS,CAAA;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;QAE3B,EAAE,GAAG,IAAI,CAAA;QACT,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;QACd,EAAE,GAAG,IAAI,CAAA;QACT,EAAE,GAAG,CAAC,GAAG,KAAK,CAAA;QACd,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;QACd,EAAE,GAAG,CAAC,GAAG,KAAK,CAAA;IACf,CAAC;IAED,OAAO,2BAA2B,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;AAC3D,CAAC;AAED,SAAS,6BAA6B,CAAC,SAAiB,EAAE,CAAS,EAAE,IAAY;IAChF,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IAEd,IAAI,YAAgC,CAAA;IAEpC,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,SAAS,CAAA;QAE9B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YACpC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAEtB,EAAE,GAAG,KAAK,CAAA;YACV,EAAE,GAAG,CAAC,CAAA;YACN,EAAE,GAAG,CAAC,KAAK,CAAA;YACX,EAAE,GAAG,CAAC,GAAG,KAAK,CAAA;YACd,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;YACX,EAAE,GAAG,CAAC,GAAG,KAAK,CAAA;YAEd,YAAY,GAAG,2BAA2B,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QACnE,CAAC;aAAM,CAAC;YACP,qEAAqE;YACrE,6DAA6D;YAC7D,iDAAiD;YACjD,YAAY,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAA;QACrD,CAAC;IACF,CAAC;SAAM,CAAC;QACP,6DAA6D;QAC7D,oBAAoB;QACpB,YAAY,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAA;IACrD,CAAC;IAED,OAAO,YAAY,CAAA;AACpB,CAAC;AAED,SAAS,6BAA6B,CAAC,SAAiB,EAAE,CAAS,EAAE,IAAY;IAChF,aAAa;IACb,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IAEd,IAAI,YAAgC,CAAA;IAEpC,MAAM,CAAC,GAAG,CAAC,CAAA;IACX,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;IAEjC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACpB,qCAAqC;QACrC,YAAY,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAA;IACzD,CAAC;SAAM,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QAC3B,kBAAkB;QAClB,YAAY,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAA;IACrD,CAAC;SAAM,CAAC;QACP,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,SAAS,CAAA;QAC9B,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAC7E,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACtB,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;QACnC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QACjB,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QAEjB,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;QAC7B,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAA;QAC5B,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;QAC7B,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAA;QACvB,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAA;QACzB,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAA;QAEvB,YAAY,GAAG,2BAA2B,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IACnE,CAAC;IAED,OAAO,YAAY,CAAA;AACpB,CAAC;AAED,SAAS,8BAA8B,CAAC,SAAiB,EAAE,CAAS,EAAE,IAAY;IACjF,aAAa;IACb,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IAEd,IAAI,YAAgC,CAAA;IAEpC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;IAEjC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACpB,2CAA2C;QAC3C,YAAY,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAA;IACrD,CAAC;SAAM,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,SAAS,CAAA;QAC9B,MAAM,CAAC,GAAG,CAAC,CAAA;QACX,MAAM,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAC3E,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACtB,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;QACnC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QACjB,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QAEjB,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;QAC7B,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAA;QAC7B,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;QAC7B,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAA;QACvB,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAA;QACxB,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAA;QAEvB,YAAY,GAAG,2BAA2B,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IACnE,CAAC;SAAM,CAAC;QACP,gDAAgD;QAChD,YAAY,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAA;IACzD,CAAC;IAED,OAAO,YAAY,CAAA;AACpB,CAAC;AAED,SAAS,4BAA4B,CAAC,SAAiB,EAAE,CAAS,EAAE,IAAY;IAC/E,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IAEd,IAAI,YAAgC,CAAA;IAEpC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;IAEjC,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACX,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,SAAS,CAAA;YAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YACpC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAEtB,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;YAClB,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;YACX,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;YAClB,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;YAClB,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;YACX,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;YAElB,YAAY,GAAG,2BAA2B,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QACnE,CAAC;aAAM,CAAC;YACP,0DAA0D;YAC1D,6DAA6D;YAC7D,kCAAkC;YAClC,YAAY,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAA;QACzD,CAAC;IACF,CAAC;SAAM,CAAC;QACP,2CAA2C;QAC3C,YAAY,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAA;IACrD,CAAC;IAED,OAAO,YAAY,CAAA;AACpB,CAAC;AAED,SAAS,0BAA0B,CAAC,SAAiB,EAAE,CAAS,EAAE,IAAY;IAC7E,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IAEd,IAAI,YAAgC,CAAA;IAEpC,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACX,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,SAAS,CAAA;YAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YACpC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAEtB,EAAE,GAAG,CAAC,CAAA;YACN,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;YACX,EAAE,GAAG,CAAC,CAAA;YACN,EAAE,GAAG,CAAC,GAAG,KAAK,CAAA;YACd,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;YACX,EAAE,GAAG,CAAC,GAAG,KAAK,CAAA;YAEd,YAAY,GAAG,2BAA2B,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QACnE,CAAC;aAAM,CAAC;YACP,+DAA+D;YAC/D,8DAA8D;YAC9D,iBAAiB;YACjB,YAAY,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAA;QACrD,CAAC;IACF,CAAC;SAAM,CAAC;QACP,gDAAgD;QAChD,YAAY,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAA;IACrD,CAAC;IAED,OAAO,YAAY,CAAA;AACpB,CAAC;AAED,SAAS,4BAA4B,CAAC,SAAiB,EAAE,CAAS,EAAE,IAAY;IAC/E,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IACd,IAAI,EAAU,CAAA;IAEd,IAAI,YAAgC,CAAA;IAEpC,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACX,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,SAAS,CAAA;YAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YACpC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAEtB,EAAE,GAAG,CAAC,GAAG,KAAK,CAAA;YACd,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;YACX,EAAE,GAAG,CAAC,GAAG,KAAK,CAAA;YACd,EAAE,GAAG,CAAC,GAAG,KAAK,CAAA;YACd,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;YACX,EAAE,GAAG,CAAC,GAAG,KAAK,CAAA;YAEd,YAAY,GAAG,2BAA2B,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QACnE,CAAC;aAAM,CAAC;YACP,QAAQ;YACR,YAAY,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAA;QACtD,CAAC;IACF,CAAC;SAAM,CAAC;QACP,YAAY,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAA;IACrD,CAAC;IAED,OAAO,YAAY,CAAA;AACpB,CAAC;AAED,SAAS,2BAA2B,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;IAC1G,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,CAAA;IAEpB,OAAO;QACN,EAAE,EAAE,EAAE,GAAG,KAAK;QACd,EAAE,EAAE,EAAE,GAAG,KAAK;QACd,EAAE,EAAE,EAAE,GAAG,KAAK;QACd,EAAE,EAAE,EAAE,GAAG,KAAK;QACd,EAAE,EAAE,EAAE,GAAG,KAAK;KACd,CAAA;AACF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IACnD,MAAM,cAAc,GAAG,CAAC,IAAI,SAAS,CAAA;IACrC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC,CAAA;IAE1D,OAAO,CAAC,CAAA;AACT,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,CAAS;IAC3C,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAE7D,OAAO,SAAS,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,GAAW,EAAE,GAAW,EAAE,GAAW;IAC1D,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AACzC,CAAC;AAED,8EAA8E;AAC9E,6BAA6B;AAC7B,MAAM,0BAA0B,GAAuC;IACtE,SAAS,EAAE,4BAA4B;IACvC,UAAU,EAAE,6BAA6B;IACzC,UAAU,EAAE,6BAA6B;IACzC,UAAU,EAAE,6BAA6B;IACzC,WAAW,EAAE,8BAA8B;IAC3C,SAAS,EAAE,4BAA4B;IACvC,OAAO,EAAE,0BAA0B;IACnC,SAAS,EAAE,4BAA4B;CACvC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAqC;IAC/D,SAAS,EAAE,gBAAgB;IAC3B,UAAU,EAAE,iBAAiB;IAC7B,UAAU,EAAE,iBAAiB;IAC7B,UAAU,EAAE,iBAAiB;IAC7B,WAAW,EAAE,kBAAkB;IAC/B,SAAS,EAAE,gBAAgB;IAC3B,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,gBAAgB;CAC3B,CAAA"}
1
+ {"version":3,"file":"BiquadFilter.js","sourceRoot":"","sources":["../../src/dsp/BiquadFilter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export declare class DecayingPeakEstimator {
2
+ readonly options: DecayingPeakEstimatorOptions;
3
+ readonly ticksPerSecond: number;
4
+ readonly decayPerTick: number;
5
+ currentPeak: number;
6
+ constructor(options: DecayingPeakEstimatorOptions, ticksPerSecond: number);
7
+ readonly process: (value: number) => void;
8
+ private processMaximum;
9
+ private processMinimum;
10
+ }
11
+ export interface DecayingPeakEstimatorOptions {
12
+ kind: DecayingPeakEstimatorKind;
13
+ decayPerSecond: number;
14
+ initialPeak: number;
15
+ }
16
+ export type DecayingPeakEstimatorKind = 'maximum' | 'minimum';
@@ -0,0 +1,23 @@
1
+ export class DecayingPeakEstimator {
2
+ options;
3
+ ticksPerSecond;
4
+ decayPerTick;
5
+ currentPeak;
6
+ constructor(options, ticksPerSecond) {
7
+ this.options = options;
8
+ this.ticksPerSecond = ticksPerSecond;
9
+ this.currentPeak = options.initialPeak;
10
+ this.decayPerTick = this.options.decayPerSecond / this.ticksPerSecond;
11
+ this.process = options.kind === 'maximum' ? this.processMaximum : this.processMinimum;
12
+ }
13
+ process;
14
+ processMaximum(value) {
15
+ this.currentPeak -= this.decayPerTick;
16
+ this.currentPeak = Math.max(value, this.currentPeak);
17
+ }
18
+ processMinimum(value) {
19
+ this.currentPeak += this.decayPerTick;
20
+ this.currentPeak = Math.min(value, this.currentPeak);
21
+ }
22
+ }
23
+ //# sourceMappingURL=DecayingPeakEstimator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DecayingPeakEstimator.js","sourceRoot":"","sources":["../../src/dsp/DecayingPeakEstimator.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,qBAAqB;IAMhB;IACA;IAND,YAAY,CAAQ;IAEpC,WAAW,CAAQ;IAEnB,YACiB,OAAqC,EACrC,cAAsB;QADtB,YAAO,GAAP,OAAO,CAA8B;QACrC,mBAAc,GAAd,cAAc,CAAQ;QAEtC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;QACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAA;QAErE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAA;IACtF,CAAC;IAEe,OAAO,CAAyB;IAExC,cAAc,CAAC,KAAa;QACnC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,CAAA;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IACrD,CAAC;IAEO,cAAc,CAAC,KAAa;QACnC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,CAAA;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IACrD,CAAC;CACD"}
package/dist/dsp/FFT.d.ts CHANGED
@@ -1,9 +1,13 @@
1
- import { RawAudio } from "../audio/AudioUtilities.js";
2
- export declare function stftr(samples: Float32Array, fftOrder: number, windowSize: number, hopLength: number, windowType: WindowType): Promise<Float32Array[]>;
3
- export declare function stiftr(binsForFrames: Float32Array[], fftOrder: number, windowSize: number, hopSize: number, windowType: WindowType, expectedOutputLength: number): Promise<Float32Array>;
1
+ import { RawAudio } from '../audio/AudioUtilities.js';
2
+ import { ComplexNumber } from '../math/VectorMath.js';
3
+ export declare function stftr(samples: Float32Array, fftOrder: number, windowSize: number, hopSize: number, windowType: WindowType): Promise<Float32Array[]>;
4
+ export declare function stiftr(binsForFrames: Float32Array[], fftOrder: number, windowSize: number, hopSize: number, windowType: WindowType, expectedOutputLength?: number): Promise<Float32Array>;
4
5
  export declare function getBinFrequencies(binCount: number, maxFrequency: number): Float32Array;
5
6
  export declare function fftFramesToPowerSpectogram(fftFrames: Float32Array[]): Float32Array[];
6
7
  export declare function fftFrameToPowerSpectrum(fftFrame: Float32Array): Float32Array;
8
+ export declare function binBufferToComplex(bins: Float32Array, extendAndMirror?: boolean): ComplexNumber[];
9
+ export declare function complexToBinBuffer(complexBins: ComplexNumber[]): Float32Array;
7
10
  export declare function getKissFFTInstance(): Promise<any>;
11
+ export declare function getWindowWeights(windowType: WindowType, windowSize: number): Float32Array;
8
12
  export declare function testFFT1(rawAudio: RawAudio): Promise<RawAudio>;
9
- export type WindowType = "hann" | "hamming";
13
+ export type WindowType = 'hann' | 'hamming';
package/dist/dsp/FFT.js CHANGED
@@ -1,12 +1,15 @@
1
- import { concatFloat32Arrays } from "../utilities/Utilities.js";
2
- import { WasmMemoryManager } from "../utilities/WasmMemoryManager.js";
1
+ import { concatFloat32Arrays } from '../utilities/Utilities.js';
2
+ import { WasmMemoryManager } from '../utilities/WasmMemoryManager.js';
3
3
  let kissFFTInstance;
4
- export async function stftr(samples, fftOrder, windowSize, hopLength, windowType) {
4
+ export async function stftr(samples, fftOrder, windowSize, hopSize, windowType) {
5
5
  if (fftOrder % 2 != 0 || windowSize % 2 != 0) {
6
- throw new Error("FFT order and window size must multiples of 2");
6
+ throw new Error('FFT order and window size must multiples of 2');
7
7
  }
8
8
  if (windowSize > fftOrder) {
9
- throw new Error("Window size must be lesser or equal to the FFT order");
9
+ throw new Error('Window size must be lesser or equal to the FFT size');
10
+ }
11
+ if (hopSize > windowSize) {
12
+ throw new Error('Hop size must be lesser or equal to the window size');
10
13
  }
11
14
  const halfWindowSize = windowSize / 2;
12
15
  const padding = new Float32Array(halfWindowSize);
@@ -20,7 +23,7 @@ export async function stftr(samples, fftOrder, windowSize, hopLength, windowType
20
23
  const frameBufferRef = wasmMemory.allocFloat32Array(fftOrder);
21
24
  const binsBufferRef = wasmMemory.allocFloat32Array(fftOrder * 2);
22
25
  const frames = [];
23
- for (let offset = 0; offset < sampleCount; offset += hopLength) {
26
+ for (let offset = 0; offset < sampleCount; offset += hopSize) {
24
27
  const windowSamples = samples.subarray(offset, offset + windowSize);
25
28
  frameBufferRef.clear();
26
29
  const frameBufferView = frameBufferRef.view;
@@ -37,38 +40,52 @@ export async function stftr(samples, fftOrder, windowSize, hopLength, windowType
37
40
  }
38
41
  export async function stiftr(binsForFrames, fftOrder, windowSize, hopSize, windowType, expectedOutputLength) {
39
42
  if (fftOrder % 2 != 0 || windowSize % 2 != 0) {
40
- throw new Error("FFT order and window size must multiples of 2");
43
+ throw new Error('FFT order and window size must multiples of 2');
41
44
  }
42
45
  if (windowSize > fftOrder) {
43
- throw new Error("Window size must be lesser or equal to the FFT order");
46
+ throw new Error('Window size must be lesser or equal to the FFT size');
44
47
  }
45
- const halfWindowSize = windowSize / 2;
46
- if (hopSize != halfWindowSize) {
47
- throw new Error("To perform inverse short-time FFT, hop size must be half the window size");
48
+ if (hopSize > windowSize) {
49
+ throw new Error('Hop size must be lesser or equal to the window size');
48
50
  }
49
- if (windowType != "hann") {
50
- throw new Error("Only Hann window is currently supported for inverse short-time FFT");
51
+ const frameCount = binsForFrames.length;
52
+ const halfWindowSize = windowSize / 2;
53
+ const windowWeights = getWindowWeights(windowType, windowSize);
54
+ const outSampleCount = hopSize * frameCount;
55
+ if (expectedOutputLength == null) {
56
+ expectedOutputLength = outSampleCount;
51
57
  }
58
+ const outSamples = new Float32Array(outSampleCount);
52
59
  const m = await getKissFFTInstance();
53
60
  const wasmMemory = new WasmMemoryManager(m);
54
61
  const statePtr = m._kiss_fftr_alloc(fftOrder, 1, 0, 0);
55
62
  wasmMemory.wrapPointer(statePtr);
56
- const outSamples = new Float32Array(binsForFrames.length * hopSize);
57
63
  const frameBufferRef = wasmMemory.allocFloat32Array(fftOrder);
58
64
  const binsRef = wasmMemory.allocFloat32Array(fftOrder * 2);
59
- for (let frameIndex = 0, writeOffset = 0; frameIndex < binsForFrames.length; frameIndex++, writeOffset += hopSize) {
60
- const bins = binsForFrames[frameIndex];
65
+ const sumOfSquaredWeightsForSample = new Float32Array(outSampleCount);
66
+ for (let frameIndex = 0; frameIndex < frameCount; frameIndex++) {
67
+ const binsForFrame = binsForFrames[frameIndex];
61
68
  binsRef.clear();
62
- binsRef.view.set(bins);
69
+ binsRef.view.set(binsForFrame);
63
70
  frameBufferRef.clear();
64
71
  m._kiss_fftri(statePtr, binsRef.address, frameBufferRef.address);
65
72
  const frameSamples = frameBufferRef.view;
66
- for (let i = 0; i < windowSize; i++) {
67
- outSamples[writeOffset + i] += frameSamples[i];
73
+ const frameStartOffset = frameIndex * hopSize;
74
+ for (let windowOffset = 0; windowOffset < windowSize; windowOffset++) {
75
+ const frameSample = frameSamples[windowOffset];
76
+ const weight = windowWeights[windowOffset];
77
+ const writePosition = frameStartOffset + windowOffset;
78
+ outSamples[writePosition] += frameSample * weight;
79
+ sumOfSquaredWeightsForSample[writePosition] += weight ** 2;
68
80
  }
69
81
  }
70
82
  wasmMemory.freeAll();
71
- return outSamples.subarray(halfWindowSize, halfWindowSize + expectedOutputLength);
83
+ // Divide by sum of weight squares for each samples
84
+ for (let i = 0; i < outSamples.length; i++) {
85
+ outSamples[i] /= sumOfSquaredWeightsForSample[i] + 1e-8;
86
+ }
87
+ const outSamplesTrimmed = outSamples.slice(halfWindowSize, halfWindowSize + expectedOutputLength);
88
+ return outSamplesTrimmed;
72
89
  }
73
90
  export function getBinFrequencies(binCount, maxFrequency) {
74
91
  const binFrequencies = new Float32Array(binCount);
@@ -92,6 +109,35 @@ export function fftFrameToPowerSpectrum(fftFrame) {
92
109
  }
93
110
  return powerSpectrum;
94
111
  }
112
+ export function binBufferToComplex(bins, extendAndMirror = false) {
113
+ const complexBins = [];
114
+ for (let i = 0; i < bins.length; i += 2) {
115
+ complexBins.push({
116
+ real: bins[i],
117
+ imaginary: bins[i + 1]
118
+ });
119
+ }
120
+ if (extendAndMirror) {
121
+ const fftSize = bins.length - 2;
122
+ for (let i = complexBins.length; i < fftSize; i++) {
123
+ const complexBinToMirror = complexBins[fftSize - i];
124
+ complexBins.push({
125
+ real: complexBinToMirror.real,
126
+ imaginary: -complexBinToMirror.imaginary
127
+ });
128
+ }
129
+ }
130
+ return complexBins;
131
+ }
132
+ export function complexToBinBuffer(complexBins) {
133
+ const binBuffer = new Float32Array(complexBins.length * 2);
134
+ for (let i = 0, outIndex = 0; i < complexBins.length; i++) {
135
+ const complexBin = complexBins[i];
136
+ binBuffer[outIndex++] = complexBin.real;
137
+ binBuffer[outIndex++] = complexBin.imaginary;
138
+ }
139
+ return binBuffer;
140
+ }
95
141
  export async function getKissFFTInstance() {
96
142
  if (!kissFFTInstance) {
97
143
  const { default: initializer } = await import('@echogarden/kissfft-wasm');
@@ -99,19 +145,19 @@ export async function getKissFFTInstance() {
99
145
  }
100
146
  return kissFFTInstance;
101
147
  }
102
- function getWindowWeights(windowType, windowSize) {
148
+ export function getWindowWeights(windowType, windowSize) {
103
149
  const weights = new Float32Array(windowSize);
104
- if (windowType == "hann") {
105
- //const innerMultiplier = (2 * Math.PI) / (windowSize - 1)
150
+ const innerFactor = (2 * Math.PI) / (windowSize - 1);
151
+ if (windowType == 'hann') {
106
152
  for (let i = 0; i < windowSize; i++) {
107
- weights[i] = 0.5 * (1 - Math.cos(2 * Math.PI * (i / (windowSize - 1))));
108
- //weights[i] = 0.5 * (1 - Math.cos(innerMultiplier * i))
153
+ //weights[i] = 0.5 * (1 - Math.cos(2 * Math.PI * (i / (windowSize - 1))))
154
+ weights[i] = 0.5 * (1 - Math.cos(innerFactor * i));
109
155
  }
110
156
  }
111
- else if (windowType == "hamming") {
157
+ else if (windowType == 'hamming') {
112
158
  for (let i = 0; i < windowSize; i++) {
113
- weights[i] = 0.54 - (0.46 * Math.cos(2 * Math.PI * (i / (windowSize - 1))));
114
- //weights[i] = 0.54 - (0.46 * Math.cos(i * innerMultiplier))
159
+ //weights[i] = 0.54 - (0.46 * Math.cos(2 * Math.PI * (i / (windowSize - 1))))
160
+ weights[i] = 0.54 - (0.46 * Math.cos(innerFactor * i));
115
161
  }
116
162
  }
117
163
  else {
@@ -120,12 +166,12 @@ function getWindowWeights(windowType, windowSize) {
120
166
  return weights;
121
167
  }
122
168
  export async function testFFT1(rawAudio) {
123
- const { resampleAudioSpeex } = await import("./SpeexResampler.js");
169
+ const { resampleAudioSpeex } = await import('./SpeexResampler.js');
124
170
  const samples = (await resampleAudioSpeex(rawAudio, 16000)).audioChannels[0];
125
171
  const fftOrder = 512;
126
172
  const windowSize = 320;
127
173
  const hopLength = windowSize / 2;
128
- const windowType = "hann";
174
+ const windowType = 'hann';
129
175
  const bins = await stftr(samples, fftOrder, windowSize, hopLength, windowType);
130
176
  const normalizedBins = bins.map(bin => bin.map(x => x / fftOrder));
131
177
  const recoveredSamples = await stiftr(normalizedBins, fftOrder, windowSize, hopLength, windowType, samples.length);
@@ -1 +1 @@
1
- {"version":3,"file":"FFT.js","sourceRoot":"","sources":["../../src/dsp/FFT.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FFT.js","sourceRoot":"","sources":["../../src/dsp/FFT.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { BiquadFilter } from './BiquadFilter.js';
2
+ export declare class KWeightingFilter {
3
+ readonly sampleRate: number;
4
+ readonly useStandard44100Filters: boolean;
5
+ readonly highShelfFilter: BiquadFilter;
6
+ readonly highPassFilter: BiquadFilter;
7
+ constructor(sampleRate: number, useStandard44100Filters?: boolean);
8
+ process(sample: number): number;
9
+ }