carta1 1.1.8 → 1.1.9

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.
@@ -31,8 +31,35 @@ import {
31
31
  INV_POWER_OF_TWO,
32
32
  SCALE_FACTORS,
33
33
  BFU_AMOUNTS,
34
+ WORD_LENGTH_DELTA_BITS,
35
+ DISTORTION_DELTA_FACTORS,
34
36
  } from '../core/constants.js'
35
37
 
38
+ const biasedScaleFactorCache = new Map()
39
+
40
+ /**
41
+ * Builds and returns a cached table of biased scale factors.
42
+ *
43
+ * @param {number} bias
44
+ * @returns {Float64Array}
45
+ */
46
+ function buildBiasedScaleFactorTable(bias) {
47
+ if (biasedScaleFactorCache.has(bias)) {
48
+ return biasedScaleFactorCache.get(bias)
49
+ }
50
+
51
+ const out = new Float64Array(64)
52
+ if (bias === 1) {
53
+ out.set(SCALE_FACTORS)
54
+ } else {
55
+ for (let i = 0; i < 64; i++) {
56
+ out[i] = Math.pow(SCALE_FACTORS[i], bias)
57
+ }
58
+ }
59
+ biasedScaleFactorCache.set(bias, out)
60
+ return out
61
+ }
62
+
36
63
  /**
37
64
  * Allocate bits by finding the optimal BFU count and distribution using RDO.
38
65
  * This function searches through the valid BFU counts to find the one that
@@ -40,23 +67,23 @@ import {
40
67
  *
41
68
  * @param {Array<Float32Array>} bfuData
42
69
  * @param {Int32Array} bfuSizes
43
- * @param {number} maxBfuCount The maximum BFU index to consider (e.g., from BFU_AMOUNTS)
70
+ * @param {number} maxBfuCount
44
71
  * @param {number} allocationBias
45
72
  * @returns {{bfuCount:number, allocation:Int32Array, scaleFactorIndices:Int32Array}}
46
73
  */
47
74
  export function allocateBits(bfuData, bfuSizes, maxBfuCount, allocationBias) {
48
75
  const allScaleFactorIndices = new Int32Array(maxBfuCount)
49
76
  const zeroBitDistortions = new Float32Array(maxBfuCount)
77
+ const biasedScaleFactors = buildBiasedScaleFactorTable(allocationBias)
50
78
 
51
79
  for (let i = 0; i < maxBfuCount; i++) {
52
80
  const sz = bfuSizes[i] | 0
53
81
  if (sz === 0) continue
54
82
 
55
- const sfi = findScaleFactor(bfuData[i].subarray(0, sz))
83
+ const sfi = findScaleFactor(bfuData[i], sz)
56
84
  allScaleFactorIndices[i] = sfi
57
85
  if (sfi > 0) {
58
- const scaleFactor = SCALE_FACTORS[sfi]
59
- const effectiveScaleFactor = Math.pow(scaleFactor, allocationBias)
86
+ const effectiveScaleFactor = biasedScaleFactors[sfi]
60
87
  zeroBitDistortions[i] = effectiveScaleFactor * 2.0 * sz
61
88
  }
62
89
  }
@@ -78,7 +105,7 @@ export function allocateBits(bfuData, bfuSizes, maxBfuCount, allocationBias) {
78
105
  candidateBfuCount,
79
106
  bfuSizes,
80
107
  availableBits,
81
- allocationBias,
108
+ biasedScaleFactors,
82
109
  allScaleFactorIndices
83
110
  )
84
111
 
@@ -88,7 +115,7 @@ export function allocateBits(bfuData, bfuSizes, maxBfuCount, allocationBias) {
88
115
  bfuSizes,
89
116
  rdoResult.wordLengths,
90
117
  rdoResult.scaleFactorIndices,
91
- allocationBias,
118
+ biasedScaleFactors,
92
119
  zeroBitDistortions
93
120
  )
94
121
 
@@ -118,14 +145,14 @@ export function allocateBits(bfuData, bfuSizes, maxBfuCount, allocationBias) {
118
145
  * Calculates the total distortion for a given allocation.
119
146
  * This includes quantization distortion for coded bands and truncation
120
147
  * distortion for uncoded bands.
121
- * @param {number} activeBfuCount - The number of BFUs that were coded.
122
- * @param {number} maxBfuCount - The total number of BFUs considered.
123
- * @param {Int32Array} bfuSizes - Sizes of each BFU.
124
- * @param {Int32Array} wordLengths - The allocated word length for each active BFU.
125
- * @param {Int32Array} scaleFactorIndices - The scale factor index for each BFU.
126
- * @param {number} allocationBias - The RDO bias factor.
127
- * @param {Float32Array} zeroBitDistortions - Pre-calculated distortion for uncoded bands.
128
- * @returns {number} The total calculated distortion.
148
+ * @param {number} activeBfuCount
149
+ * @param {number} maxBfuCount
150
+ * @param {Int32Array} bfuSizes
151
+ * @param {Int32Array} wordLengths
152
+ * @param {Int32Array} scaleFactorIndices
153
+ * @param {number} biasedScaleFactors
154
+ * @param {Float32Array} zeroBitDistortions
155
+ * @returns {number}
129
156
  */
130
157
  function calculateTotalDistortion(
131
158
  activeBfuCount,
@@ -133,7 +160,7 @@ function calculateTotalDistortion(
133
160
  bfuSizes,
134
161
  wordLengths,
135
162
  scaleFactorIndices,
136
- allocationBias,
163
+ biasedScaleFactors,
137
164
  zeroBitDistortions
138
165
  ) {
139
166
  let totalDistortion = 0.0
@@ -149,8 +176,7 @@ function calculateTotalDistortion(
149
176
  const sfi = scaleFactorIndices[i]
150
177
  if (sfi === 0) continue
151
178
 
152
- const scaleFactor = SCALE_FACTORS[sfi]
153
- const effectiveScaleFactor = Math.pow(scaleFactor, allocationBias)
179
+ const effectiveScaleFactor = biasedScaleFactors[sfi]
154
180
  const distortionFactor = INV_POWER_OF_TWO[bits]
155
181
 
156
182
  totalDistortion += effectiveScaleFactor * distortionFactor * bfuSizes[i]
@@ -170,105 +196,100 @@ function calculateTotalDistortion(
170
196
  * @param {number} activeBfuCount
171
197
  * @param {Int32Array} bfuSizes
172
198
  * @param {number} remainingBits
173
- * @param {number} allocationBias
174
- * @param {Int32Array} allScaleFactorIndices - Pre-calculated SFIs for all potential BFUs.
199
+ * @param {Float64Array} biasedScaleFactors
200
+ * @param {Int32Array} allScaleFactorIndices
175
201
  * @returns {{wordLengths: Int32Array, scaleFactorIndices: Int32Array}}
176
202
  */
177
203
  function distributeBitsRDO(
178
204
  activeBfuCount,
179
205
  bfuSizes,
180
206
  remainingBits,
181
- allocationBias,
207
+ biasedScaleFactors,
182
208
  allScaleFactorIndices
183
209
  ) {
184
- const scaleFactorTable = allScaleFactorIndices
185
210
  const wordLengths = new Int32Array(activeBfuCount)
186
211
 
187
- const heapIndices = []
188
- const heapPriorities = []
189
-
190
- const deltaDistPerCoeff = (bfuIndex, currentWl, nextWl) => {
191
- const sfi = scaleFactorTable[bfuIndex]
192
- const scaleFactor = SCALE_FACTORS[sfi]
193
- if (scaleFactor === 0) return 0
194
-
195
- const effectiveScaleFactor = Math.pow(scaleFactor, allocationBias)
196
-
197
- const bits1 = WORD_LENGTH_BITS[currentWl] | 0
198
- const bits2 = WORD_LENGTH_BITS[nextWl] | 0
199
-
200
- const f1 = bits1 === 0 ? 2.0 : INV_POWER_OF_TWO[bits1]
201
- const f2 = INV_POWER_OF_TWO[bits2]
202
-
203
- return effectiveScaleFactor * (f1 - f2)
204
- }
212
+ const heapIndices = new Int32Array(activeBfuCount)
213
+ const heapPriorities = new Float32Array(activeBfuCount)
214
+ let heapSize = 0
205
215
 
206
216
  for (let bfuIndex = 0; bfuIndex < activeBfuCount; bfuIndex++) {
207
217
  const sz = bfuSizes[bfuIndex] | 0
208
218
  if (sz === 0) continue
209
219
 
210
- const sfi = scaleFactorTable[bfuIndex]
220
+ const sfi = allScaleFactorIndices[bfuIndex]
211
221
  if (sfi === 0) continue
212
222
 
213
- const currentWl = 0
214
- const nextWl = 1
215
- const deltaBits =
216
- (WORD_LENGTH_BITS[nextWl] - WORD_LENGTH_BITS[currentWl]) | 0
223
+ const deltaBits = WORD_LENGTH_DELTA_BITS[0]
217
224
  if (deltaBits <= 0) continue
218
225
 
219
- const ddPerCoeff = deltaDistPerCoeff(bfuIndex, currentWl, nextWl)
220
- heapIndices.push(bfuIndex)
221
- heapPriorities.push(ddPerCoeff / deltaBits)
226
+ const distortionDelta =
227
+ biasedScaleFactors[sfi] * DISTORTION_DELTA_FACTORS[0]
228
+
229
+ heapIndices[heapSize] = bfuIndex
230
+ heapPriorities[heapSize] = distortionDelta / deltaBits
231
+ heapSize++
232
+ }
233
+
234
+ if (heapSize === 0) {
235
+ return { wordLengths, scaleFactorIndices: allScaleFactorIndices }
222
236
  }
223
237
 
224
238
  // Heapify
225
- for (let i = (heapIndices.length >> 1) - 1; i >= 0; i--)
226
- siftDown(heapIndices, heapPriorities, i)
239
+ for (let i = (heapSize >> 1) - 1; i >= 0; i--) {
240
+ siftDown(heapIndices, heapPriorities, i, heapSize)
241
+ }
227
242
 
228
- // Greedy spending
229
- while (remainingBits > 0 && heapIndices.length > 0) {
243
+ // Greedy spending loop
244
+ while (remainingBits > 0 && heapSize > 0) {
230
245
  const bfu = heapIndices[0]
231
246
  const cur = wordLengths[bfu] | 0
232
- const nxt = cur + 1
233
-
234
247
  const sz = bfuSizes[bfu] | 0
235
- const deltaBits = (WORD_LENGTH_BITS[nxt] - WORD_LENGTH_BITS[cur]) | 0
248
+ const deltaBits = WORD_LENGTH_DELTA_BITS[cur]
236
249
  const cost = deltaBits * sz
237
250
 
238
251
  if (cost > remainingBits || cost <= 0) {
239
- popRoot(heapIndices, heapPriorities)
252
+ const last = heapSize - 1
253
+ heapIndices[0] = heapIndices[last]
254
+ heapPriorities[0] = heapPriorities[last]
255
+ heapSize--
256
+ if (heapSize > 0) siftDown(heapIndices, heapPriorities, 0, heapSize)
240
257
  continue
241
258
  }
242
259
 
243
260
  remainingBits -= cost
261
+ const nxt = cur + 1
244
262
  wordLengths[bfu] = nxt
245
263
 
246
- if (nxt < MAX_WORD_LENGTH_INDEX) {
247
- const nxt2 = nxt + 1
248
- const deltaBits2 = (WORD_LENGTH_BITS[nxt2] - WORD_LENGTH_BITS[nxt]) | 0
249
- if (deltaBits2 > 0) {
250
- heapPriorities[0] = deltaDistPerCoeff(bfu, nxt, nxt2) / deltaBits2
251
- siftDown(heapIndices, heapPriorities, 0)
252
- } else {
253
- popRoot(heapIndices, heapPriorities)
254
- }
264
+ const deltaBitsNext = WORD_LENGTH_DELTA_BITS[nxt]
265
+ if (nxt < MAX_WORD_LENGTH_INDEX && deltaBitsNext > 0) {
266
+ const sfi = allScaleFactorIndices[bfu]
267
+ const distortionDelta =
268
+ biasedScaleFactors[sfi] * DISTORTION_DELTA_FACTORS[nxt]
269
+ heapPriorities[0] = distortionDelta / deltaBitsNext
270
+ siftDown(heapIndices, heapPriorities, 0, heapSize)
255
271
  } else {
256
- popRoot(heapIndices, heapPriorities)
272
+ const last = heapSize - 1
273
+ heapIndices[0] = heapIndices[last]
274
+ heapPriorities[0] = heapPriorities[last]
275
+ heapSize--
276
+ if (heapSize > 0) siftDown(heapIndices, heapPriorities, 0, heapSize)
257
277
  }
258
278
  }
259
279
 
260
- return { wordLengths, scaleFactorIndices: scaleFactorTable }
280
+ return { wordLengths, scaleFactorIndices: allScaleFactorIndices }
261
281
  }
262
282
 
263
283
  /**
264
284
  * Find the optimal scale factor index for a set of coefficients.
265
285
  * Same semantics as the original.
266
286
  * @param {Float32Array} coefficients
287
+ * @param {number} length
267
288
  * @returns {number}
268
289
  */
269
- export function findScaleFactor(coefficients) {
290
+ export function findScaleFactor(coefficients, length) {
270
291
  let maxAmplitude = 0.0
271
- for (let i = 0; i < coefficients.length; i++) {
292
+ for (let i = 0; i < length; i++) {
272
293
  const a = Math.abs(coefficients[i])
273
294
  if (a > maxAmplitude) maxAmplitude = a
274
295
  }
@@ -277,25 +298,6 @@ export function findScaleFactor(coefficients) {
277
298
  return Math.max(0, Math.min(63, index))
278
299
  }
279
300
 
280
- /**
281
- * Removes the root element from a max-heap and maintains heap property.
282
- *
283
- * This function efficiently removes the maximum priority element from the heap
284
- * by replacing it with the last element and then restoring the heap property
285
- * through sifting down.
286
- *
287
- * @param {Array<number>} heapIndices
288
- * @param {Array<number>} heapPriorities
289
- */
290
- function popRoot(heapIndices, heapPriorities) {
291
- const last = heapIndices.length - 1
292
- heapIndices[0] = heapIndices[last]
293
- heapPriorities[0] = heapPriorities[last]
294
- heapIndices.pop()
295
- heapPriorities.pop()
296
- if (heapIndices.length) siftDown(heapIndices, heapPriorities, 0)
297
- }
298
-
299
301
  /**
300
302
  * Restores max-heap property by sifting an element down from a given position.
301
303
  *
@@ -304,12 +306,12 @@ function popRoot(heapIndices, heapPriorities) {
304
306
  * with its children and swaps with the larger child until the heap property
305
307
  * is satisfied, or it reaches a leaf position.
306
308
  *
307
- * @param {Array<number>} heapIndices
308
- * @param {Array<number>} heapPriorities
309
+ * @param {Int32Array} heapIndices
310
+ * @param {Float32Array} heapPriorities
309
311
  * @param {number} startIndex
312
+ * @param {number} heapSize
310
313
  */
311
- function siftDown(heapIndices, heapPriorities, startIndex) {
312
- const heapSize = heapIndices.length
314
+ function siftDown(heapIndices, heapPriorities, startIndex, heapSize) {
313
315
  let i = startIndex
314
316
  const idxVal = heapIndices[i]
315
317
  const prVal = heapPriorities[i]
@@ -158,3 +158,22 @@ export const INV_POWER_OF_TWO = (() => {
158
158
  }
159
159
  return table
160
160
  })()
161
+
162
+ export const WORD_LENGTH_DELTA_BITS = (() => {
163
+ const table = new Int32Array(MAX_WORD_LENGTH_INDEX)
164
+ for (let i = 0; i < MAX_WORD_LENGTH_INDEX; i++) {
165
+ table[i] = (WORD_LENGTH_BITS[i + 1] - WORD_LENGTH_BITS[i]) | 0
166
+ }
167
+ return table
168
+ })()
169
+
170
+ export const DISTORTION_DELTA_FACTORS = (() => {
171
+ const table = new Float64Array(MAX_WORD_LENGTH_INDEX)
172
+ table[0] = 2.0 - INV_POWER_OF_TWO[WORD_LENGTH_BITS[1]]
173
+ for (let i = 1; i < MAX_WORD_LENGTH_INDEX; i++) {
174
+ const bits1 = WORD_LENGTH_BITS[i] | 0
175
+ const bits2 = WORD_LENGTH_BITS[i + 1] | 0
176
+ table[i] = INV_POWER_OF_TWO[bits1] - INV_POWER_OF_TWO[bits2]
177
+ }
178
+ return table
179
+ })()
@@ -52,7 +52,7 @@ class EncoderOptions {
52
52
  name: 'Bit allocation bias',
53
53
  description:
54
54
  'Controls how bits are distributed across the frequency spectrum during allocation. Higher values focus more bits on loud spectral components, while lower values spread bits more evenly across frequencies.',
55
- range: [0.5, 3.0],
55
+ range: [0.0, 5.0],
56
56
  step: 0.01,
57
57
  },
58
58
  fixedBlockModes: {
@@ -1,2 +1,2 @@
1
- var e={},r=44100,t=new Uint8Array([0,8,0,0]),n=2048,o=212,a=new Int32Array([8,8,8,8,4,4,4,4,8,8,8,8,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,9,9,9,9,10,10,10,10,12,12,12,12,12,12,12,12,20,20,20,20,20,20,20,20]),i=new Int32Array([20,28,32,36,40,44,48,52]),u=new Int32Array([20,36,52]),f=new Int32Array([0,8,16,24,32,36,40,44,48,56,64,72,80,86,92,98,104,110,116,122,128,134,140,146,152,159,166,173,180,189,198,207,216,226,236,246,256,268,280,292,304,316,328,340,352,372,392,412,432,452,472,492]),c=new Int32Array([0,32,64,96,8,40,72,104,12,44,76,108,20,52,84,116,26,58,90,122,128,160,192,224,134,166,198,230,141,173,205,237,150,182,214,246,256,288,320,352,384,416,448,480,268,300,332,364,396,428,460,492]),l=256,s=512,v=function(){for(var e=new Float64Array(32),r=0;r<32;r++)e[r]=Math.sin((r+.5)*Math.PI/64);return e}(),h=46,y=new Float32Array([-1461907e-11,-9205479e-11,-56157569e-12,.00030117269,.0002422519,-.00085293897,-.0005205574,.0020340169,.00078333891,-.0042153862,-.00075614988,.0078402944,-61169922e-12,-.01344162,.0024626821,.021736089,-.007801671,-.034090221,.01880949,.054326009,-.043596379,-.099384367,.13207909,.46424159]),d=function(){for(var e=new Float32Array(48),r=0;r<24;r++)e[r]=2*y[r],e[47-r]=2*y[r];return e}(),b=function(){for(var e=new Float32Array(24),r=0;r<24;r++)e[r]=d[2*r];return e}(),p=function(){for(var e=new Float32Array(24),r=0;r<24;r++)e[r]=d[2*r+1];return e}(),m=[{size:128,windowStart:48},{size:128,windowStart:48},{size:256,windowStart:112}],w=32,g=32,k=16,S=32767,A=32768,M=new Int32Array([0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]),O=function(){for(var e=new Float64Array(64),r=0;r<64;r++)e[r]=Math.pow(2,r/3-21);return e}(),j=function(){for(var e=M[15],r=new Float64Array(e+1),t=0;t<=e;t++)r[t]=Math.pow(2,-t);return r}();function B(e,r,t,n){if(0!==n){var o=Math.floor(r/8),a=r%8;t&=(1<<n)-1;for(var i=0;i<n&&o<e.length;){var u=8-a,f=Math.min(n-i,u),c=t>>n-i-f&(1<<f)-1,l=(1<<f)-1<<u-f;e[o]=e[o]&~l|c<<u-f,i+=f,o++,a=0}}}function F(e,r,t){if(0===t)return 0;for(var n=Math.floor(r/8),o=r%8,a=0,i=0;i<t&&n<e.length;){var u=8-o,f=Math.min(t-i,u),c=(1<<f)-1;a=a<<f|e[n]>>u-f&c,i+=f,n++,o=0}return a}function P(e,r,t){var n=F(e,r,t);return n>=1<<t-1?n-(1<<t):n}function T(e){return T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},T(e)}function I(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,C(n.key),n)}}function C(e){var r=function(e,r){if("object"!=T(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,r||"default");if("object"!=T(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(e)}(e,"string");return"symbol"==T(r)?r:r+""}function x(e,r){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=function(e,r){if(e){if("string"==typeof e)return z(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?z(e,r):void 0}}(e))||r&&e&&"number"==typeof e.length){t&&(e=t);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,u=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return i=e.done,e},e:function(e){u=!0,a=e},f:function(){try{i||null==t.return||t.return()}finally{if(u)throw a}}}}function z(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function q(e){var r=new Uint8Array(o),t=new DataView(r.buffer),n=i.indexOf(e.nBfu),a=2-e.blockModes[0]<<14|2-e.blockModes[1]<<12|3-e.blockModes[2]<<10|n<<5;t.setUint16(0,a,!1);for(var u=16,f=0;f<e.nBfu;f++)B(r,u,e.wordLengthIndices[f],4),u+=4;for(var c=0;c<e.nBfu;c++)B(r,u,e.scaleFactorIndices[c],6),u+=6;for(var l=0;l<e.nBfu;l++){var s=M[e.wordLengthIndices[l]];if(s>0){var v,h=x(e.quantizedCoefficients[l]);try{for(h.s();!(v=h.n()).done;){var y=v.value;B(r,u,y<0?y+(1<<s):y,s),u+=s}}catch(e){h.e(e)}finally{h.f()}}}return r[209]=0,r[210]=0,r[211]=0,r}function E(e){if(e.length!==o)throw new Error("Frame must be ".concat(o," bytes"));for(var r=new DataView(e.buffer,e.byteOffset,e.byteLength).getUint16(0,!1),t=[2-(r>>14&3),2-(r>>12&3),3-(r>>10&3)],n=i[r>>5&7],u=16,f=new Int32Array(n),c=0;c<n;c++)f[c]=F(e,u,4),u+=4;for(var l=new Int32Array(n),s=0;s<n;s++)l[s]=F(e,u,6),u+=6;for(var v=[],h=0;h<n;h++){var y=M[f[h]],d=a[h],b=new Int32Array(d);if(y>0)for(var p=0;p<d;p++)b[p]=P(e,u,y),u+=y;v.push(b)}return{nBfu:n,scaleFactorIndices:l,wordLengthIndices:f,quantizedCoefficients:v,blockModes:t}}var _=function(){return e=function e(){!function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}(this,e)},o=[{key:"createHeader",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=new Uint8Array(n),i=new DataView(a.buffer);a.set(t,0);var u=(new TextEncoder).encode(e);return a.set(u.subarray(0,Math.min(u.length,255)),4),i.setUint32(260,r,!0),a[264]=o,a}},{key:"parseHeader",value:function(e){if(e.length!==n)throw new Error("Header must be ".concat(n," bytes"));for(var r=0;r<t.length;r++)if(e[r]!==t[r])throw new Error("Invalid AEA file");var o=new DataView(e.buffer,e.byteOffset,e.byteLength),a=e.indexOf(0,4),i=-1===a?256:a-4;return{title:(new TextDecoder).decode(e.subarray(4,4+i)),frameCount:o.getUint32(260,!0),channelCount:e[264]}}}],(r=null)&&I(e.prototype,r),o&&I(e,o),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,r,o}();function D(e){return D="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},D(e)}function U(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,n)}return t}function H(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?U(Object(t),!0).forEach(function(r){L(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):U(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function L(e,r,t){return(r=V(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function W(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,o,a,i,u=[],f=!0,c=!1;try{if(a=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;f=!1}else for(;!(f=(n=a.call(t)).done)&&(u.push(n.value),u.length!==r);f=!0);}catch(e){c=!0,o=e}finally{try{if(!f&&null!=t.return&&(i=t.return(),Object(i)!==i))return}finally{if(c)throw o}}return u}}(e,r)||function(e,r){if(e){if("string"==typeof e)return G(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?G(e,r):void 0}}(e,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function G(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function N(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,V(n.key),n)}}function V(e){var r=function(e,r){if("object"!=D(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,r||"default");if("object"!=D(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(e)}(e,"string");return"symbol"==D(r)?r:r+""}var R=function(){return e=function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}(this,e),this.values={transientThresholdLow:1,transientThresholdMid:1.5,transientThresholdHigh:2,allocationBias:1,fixedBlockModes:null},this.metadata={transientThresholdLow:{default:this.values.transientThresholdLow,name:"Low Band Transient Threshold",description:"Controls the transient detection threshold for the low frequency band (0-5.5kHz). Lower values make detection more sensitive, triggering short blocks more easily. Higher values require stronger transients.",range:[.01,2],step:.01},transientThresholdMid:{default:this.values.transientThresholdMid,name:"Mid Band Transient Threshold",description:"Controls the transient detection threshold for the mid frequency band (5.5-11kHz). Lower values make detection more sensitive, triggering short blocks more easily. Higher values require stronger transients.",range:[.01,3],step:.01},transientThresholdHigh:{default:this.values.transientThresholdHigh,name:"High Band Transient Threshold",description:"Controls the transient detection threshold for the high frequency band (11-22kHz). Lower values make detection more sensitive, triggering short blocks more easily. Higher values require stronger transients.",range:[.01,4],step:.01},allocationBias:{default:this.values.allocationBias,name:"Bit allocation bias",description:"Controls how bits are distributed across the frequency spectrum during allocation. Higher values focus more bits on loud spectral components, while lower values spread bits more evenly across frequencies.",range:[.5,3],step:.01},fixedBlockModes:{default:this.values.fixedBlockModes,name:"Fixed block modes",description:"Override transient detection and use fixed block modes. Format: [low, mid, high] where low/mid can be 0 or 2, high can be 0 or 3. When set, transient detection is skipped.",type:"array"}},r&&this.setOptions(r)},(r=[{key:"setOptions",value:function(e){for(var r=0,t=Object.entries(e);r<t.length;r++){var n=W(t[r],2),o=n[0],a=n[1];o in this.values&&this.setValue(o,a)}}},{key:"setValue",value:function(e,r){if(!(e in this.metadata))throw new Error("Unknown option: ".concat(e));var t=this.metadata[e];if("array"!==t.type){var n=W(t.range,2),o=n[0],a=n[1];if(r<o||r>a)throw new Error("Value for ".concat(e," must be between ").concat(o," and ").concat(a,", got ").concat(r))}this.values[e]=r}},{key:"getValue",value:function(e){if(!(e in this.values))throw new Error("Unknown option: ".concat(e));return this.values[e]}},{key:"transientThresholdLow",get:function(){return this.values.transientThresholdLow}},{key:"transientThresholdMid",get:function(){return this.values.transientThresholdMid}},{key:"transientThresholdHigh",get:function(){return this.values.transientThresholdHigh}},{key:"allocationBias",get:function(){return this.values.allocationBias}},{key:"fixedBlockModes",get:function(){return this.values.fixedBlockModes}},{key:"getMetadata",value:function(e){return this.metadata[e]}},{key:"getAllMetadata",value:function(){return H({},this.metadata)}},{key:"reset",value:function(){for(var e=0,r=Object.entries(this.metadata);e<r.length;e++){var t=W(r[e],2),n=t[0],o=t[1];this.values[n]=o.default}}},{key:"toObject",value:function(){return{values:H({},this.values),metadata:H({},this.metadata)}}}])&&N(e.prototype,r),t&&N(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,r,t}();function $(e){throw new Error(e)}function J(e){for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n<r;n++)t[n-1]=arguments[n];var o=t.map(function(r){return r(e)});return function(e){return o.reduce(function(e,r){return r(e)},e)}}function K(e,r){for(var t=r[e.length],n=0;n<e.length;n++)t[n]=e[e.length-1-n];return t}function Q(e,r){var t,n,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=e.length,i=a>>1,u=null!==(t=null==o||null===(n=o.delay)||void 0===n?void 0:n[a])&&void 0!==t?t:$("qmfAnalysis: qmfWorkBuffers.delay[".concat(a,"] is required"));u.set(r),u.set(e,r.length);for(var f=new Float32Array(i),c=new Float32Array(i),l=0;l<i;l++){for(var s=0,v=0,h=2*l,y=0;y<24;y++)s+=u[h+47-2*y]*b[y],v+=u[h+46-2*y]*p[y];f[l]=s+v,c[l]=s-v}return{lowBand:f,highBand:c,newDelay:u.slice(-46)}}function X(e,r,t){var n,o,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=e.length,u=2*i,f=null!==(n=null==a||null===(o=a.delay)||void 0===o?void 0:o[u])&&void 0!==n?n:$("qmfSynthesis: qmfWorkBuffers.delay[".concat(u,"] is required"));f.set(t);for(var c=0;c<i;c++){var l=e[c],s=r[c],v=h+2*c;f[v]=.5*(l+s),f[v+1]=.5*(l-s)}for(var y=new Float32Array(u),d=0;d<i;d++){for(var m=2*d,w=0,g=0,k=0;k<24;k++){var S=m+2*k;w+=f[S]*b[k],g+=f[S+1]*p[k]}y[2*d]=g,y[2*d+1]=w}return{output:y,newDelay:f.slice(-46)}}function Y(e){return Y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Y(e)}function Z(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,ee(n.key),n)}}function ee(e){var r=function(e,r){if("object"!=Y(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,r||"default");if("object"!=Y(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(e)}(e,"string");return"symbol"==Y(r)?r:r+""}var re=function(){return e=function e(){!function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}(this,e)},t=[{key:"fft",value:function(e,r){var t=e.length;if(1!==t){for(var n=Math.log2(t),o=0;o<t;o++){for(var a=0,i=o,u=0;u<n;u++)a=a<<1|1&i,i>>=1;if(a>o){var f=[e[a],e[o]];e[o]=f[0],e[a]=f[1];var c=[r[a],r[o]];r[o]=c[0],r[a]=c[1]}}for(var l=2;l<=t;l<<=1)for(var s=l>>1,v=-2*Math.PI/l,h=Math.cos(v),y=Math.sin(v),d=0;d<t;d+=l)for(var b=1,p=0,m=0;m<s;m++){var w=d+m,g=w+s,k=e[w],S=r[w],A=e[g],M=r[g],O=A*b-M*p,j=A*p+M*b;e[w]=k+O,r[w]=S+j,e[g]=k-O,r[g]=S-j;var B=b*h-p*y;p=b*y+p*h,b=B}}}}],(r=null)&&Z(e.prototype,r),t&&Z(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,r,t}();function te(e){return te="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},te(e)}function ne(e,r,t){return r=ae(r),function(e,r){if(r&&("object"==te(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,oe()?Reflect.construct(r,t||[],ae(e).constructor):r.apply(e,t))}function oe(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(oe=function(){return!!e})()}function ae(e){return ae=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},ae(e)}function ie(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),r&&ue(e,r)}function ue(e,r){return ue=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,r){return e.__proto__=r,e},ue(e,r)}function fe(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,le(n.key),n)}}function ce(e,r,t){return r&&fe(e.prototype,r),t&&fe(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function le(e){var r=function(e,r){if("object"!=te(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,r||"default");if("object"!=te(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(e)}(e,"string");return"symbol"==te(r)?r:r+""}function se(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}var ve=ce(function e(r,t){se(this,e),this.size=r,this.halfSize=r>>1,this.quarterSize=r>>2,this.fftSize=this.halfSize>>1;var n=2*Math.PI/(8*r),o=2*Math.PI/r,a=Math.sqrt(t/r);this.sinCosTable=new Float64Array(this.halfSize);for(var i=0;i<this.quarterSize;i++){var u=o*i+n;this.sinCosTable[2*i]=a*Math.cos(u),this.sinCosTable[2*i+1]=a*Math.sin(u)}}),he=function(){function e(r,t){return se(this,e),ne(this,e,[r,t])}return ie(e,ve),ce(e,[{key:"transform",value:function(e){var r,t,n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,a=null!==(r=null==o?void 0:o[this.fftSize])&&void 0!==r?r:$("MDCT.transform: mdctBuffers[".concat(this.fftSize,"] is required")),i=null!==(t=null==a?void 0:a.real)&&void 0!==t?t:$("MDCT.transform: mdctBuffers[".concat(this.fftSize,"].real is required")),u=null!==(n=null==a?void 0:a.imag)&&void 0!==n?n:$("MDCT.transform: mdctBuffers[".concat(this.fftSize,"].imag is required")),f=this.quarterSize,c=3*f;i.fill(0),u.fill(0);for(var l=0;l<f;l+=2){var s=c+l,v=f+l,h=f-1-l,y=e[c-1-l]+e[s],d=e[v]-e[h],b=this.sinCosTable[l],p=this.sinCosTable[l+1];i[l>>1]=y*b+d*p,u[l>>1]=d*b-y*p}for(var m=f;m<this.halfSize;m+=2){var w=m>>1,g=m-f,k=f+m,S=5*f-1-m,A=e[c-1-m]-e[g],M=e[k]+e[S],O=this.sinCosTable[m],j=this.sinCosTable[m+1];i[w]=A*O+M*j,u[w]=M*O-A*j}re.fft(i,u);for(var B=new Float32Array(this.halfSize),F=0;F<this.fftSize;F++){var P=this.sinCosTable[2*F],T=this.sinCosTable[2*F+1],I=i[F],C=u[F];B[2*F]=-I*P-C*T,B[this.halfSize-1-2*F]=-I*T+C*P}return B}}])}(),ye=function(){function e(r){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return se(this,e),ne(this,e,[r,t||r])}return ie(e,ve),ce(e,[{key:"transform",value:function(e){var r,t,n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,a=null!==(r=null==o?void 0:o[this.fftSize])&&void 0!==r?r:$("IMDCT.transform: mdctBuffers[".concat(this.fftSize,"] is required")),i=null!==(t=null==a?void 0:a.real)&&void 0!==t?t:$("IMDCT.transform: mdctBuffers[".concat(this.fftSize,"].real is required")),u=null!==(n=null==a?void 0:a.imag)&&void 0!==n?n:$("IMDCT.transform: mdctBuffers[".concat(this.fftSize,"].imag is required")),f=this.quarterSize,c=3*f;i.fill(0),u.fill(0);for(var l=0;l<this.fftSize;l++){var s=2*l,v=-e[s],h=-e[this.halfSize-1-s],y=this.sinCosTable[s],d=this.sinCosTable[s+1];i[l]=h*d+v*y,u[l]=h*y-v*d}re.fft(i,u);for(var b=new Float32Array(this.size),p=0;p<this.fftSize/2;p++){var m=2*p,w=this.sinCosTable[m],g=this.sinCosTable[m+1],k=i[p],S=u[p],A=k*w+S*g,M=k*g-S*w;b[c-1-m]=A,b[c+m]=A,b[f+m]=M,b[f-1-m]=-M}for(var O=this.fftSize/2;O<this.fftSize;O++){var j=2*(O-this.fftSize/2)+f,B=2*O,F=this.sinCosTable[B],P=this.sinCosTable[B+1],T=i[O],I=u[O],C=T*F+I*P,x=T*P-I*F;b[c-1-j]=C,b[j-f]=-C,b[f+j]=x,b[5*f-1-j]=x}return b}}])}(),de=new he(64,.5),be=new he(l,.5),pe=new he(s,1),me=new ye(64,512),we=new ye(l,2048),ge=new ye(s,2048);function ke(e,r,t){for(var n=e.length,o=new Float32Array(2*n),a=0;a<n;a++){var i=t[a],u=t[2*n-1-a],f=e[a],c=r[n-1-a];o[a]=f*u-c*i,o[2*n-1-a]=f*i+c*u}return o}function Se(e,r,t){var n=e.length,o=new Int32Array(n);if(0===t||0===r)return o.fill(0,0,n),o;for(var a=(1<<t-1)-1,i=a/O[r],u=a,f=-a,c=0;c<n;c++){var l=e[c]*i,s=l+(l>=0?.5:-.5)|0;o[c]=s>u?u:s<f?f:s}return o}function Ae(e,r,t){if(0===t||0===r)return new Float32Array(e.length);for(var n=O[r],o=(1<<t-1)-1,a=new Float32Array(e.length),i=0;i<e.length;i++)a[i]=e[i]*n/o;return a}function Me(e,r){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=function(e,r){if(e){if("string"==typeof e)return Oe(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Oe(e,r):void 0}}(e))||r&&e&&"number"==typeof e.length){t&&(e=t);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,u=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return i=e.done,e},e:function(e){u=!0,a=e},f:function(){try{i||null==t.return||t.return()}finally{if(u)throw a}}}}function Oe(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function je(e,r,t,n,o,a,i){for(var u=0,f=0;f<e;f++){var c=0|n[f],l=0|M[c];if(0!==l){var s=o[f];if(0!==s){var v=O[s];u+=Math.pow(v,a)*j[l]*t[f]}}else u+=i[f]}for(var h=e;h<r;h++)u+=i[h];return u}function Be(e,r,t,n,o){for(var a=o,i=new Int32Array(e),u=[],f=[],c=function(e,r,t){var o=a[e],i=O[o];if(0===i)return 0;var u=Math.pow(i,n),f=0|M[r],c=0|M[t];return u*((0===f?2:j[f])-j[c])},l=0;l<e;l++){if(0!==(0|r[l]))if(0!==a[l]){var s=M[1]-M[0]|0;if(!(s<=0)){var v=c(l,0,1);u.push(l),f.push(v/s)}}}for(var h=(u.length>>1)-1;h>=0;h--)Te(u,f,h);for(;t>0&&u.length>0;){var y=u[0],d=0|i[y],b=d+1,p=0|r[y],m=(M[b]-M[d]|0)*p;if(m>t||m<=0)Pe(u,f);else if(t-=m,i[y]=b,b<15){var w=b+1,g=M[w]-M[b]|0;g>0?(f[0]=c(y,b,w)/g,Te(u,f,0)):Pe(u,f)}else Pe(u,f)}return{wordLengths:i,scaleFactorIndices:a}}function Fe(e){for(var r=0,t=0;t<e.length;t++){var n=Math.abs(e[t]);n>r&&(r=n)}if(0===r)return 0;var o=Math.ceil(3*(Math.log2(r)+21));return Math.max(0,Math.min(63,o))}function Pe(e,r){var t=e.length-1;e[0]=e[t],r[0]=r[t],e.pop(),r.pop(),e.length&&Te(e,r,0)}function Te(e,r,t){for(var n=e.length,o=t,a=e[o],i=r[o];;){var u=1+(o<<1),f=u+1,c=o,l=i;if(u<n&&r[u]>l&&(c=u,l=r[u]),f<n&&r[f]>l&&(c=f),c===o)break;e[o]=e[c],r[o]=r[c],o=c}e[o]=a,r[o]=i}function Ie(e){return Ie="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ie(e)}function Ce(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,ze(n.key),n)}}function xe(e,r,t){return r&&Ce(e.prototype,r),t&&Ce(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function ze(e){var r=function(e,r){if("object"!=Ie(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,r||"default");if("object"!=Ie(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(e)}(e,"string");return"symbol"==Ie(r)?r:r+""}var qe=xe(function e(){!function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}(this,e),this.transformBuffers={64:new Float32Array(64),128:new Float32Array(128),256:new Float32Array(256),512:new Float32Array(512)},this.qmfWorkBuffers={delay:{128:new Float32Array(174),256:new Float32Array(302),512:new Float32Array(558)},highBandDelay:{128:new Float32Array(167),256:new Float32Array(295)}},this.qmfDelays={lowBand:new Float32Array(h),midBand:new Float32Array(h),highBand:new Float32Array(39)},this.transientDetection=[new Float32Array(64),new Float32Array(64),new Float32Array(128)],this.mdctBuffers={16:{real:new Float32Array(16),imag:new Float32Array(16)},64:{real:new Float32Array(64),imag:new Float32Array(64)},128:{real:new Float32Array(128),imag:new Float32Array(128)}},this.mdctOverlap=[new Float32Array(32),new Float32Array(32),new Float32Array(32)],this.imdctOverlap=[new Float32Array(256),new Float32Array(256),new Float32Array(512)],this.reversalBuffers={32:new Float32Array(32),128:new Float32Array(128),256:new Float32Array(256)}});function Ee(e,r,t){if(!r)return!1;var n=function(e,r){var t=function(e,r){for(var t=0,n=0,o=0;o<e.length;o++){var a=Math.abs(e[o]),i=a-Math.abs(r[o]);i>0&&(t+=i),n+=a*a}var u=Math.sqrt(n)||1e-6;return t/u}(e,r),n=_e(e),o=_e(r),a=Math.abs(n-o),i=De(e),u=De(r),f=Math.abs(i-u),c=function(e,r){for(var t=0,n=0,o=0;o<e.length;o++)t+=e[o]*e[o],n+=r[o]*r[o];t=Math.max(t,1e-10),n=Math.max(n,1e-10);var a=10*Math.log10(t/n);return Math.max(0,a)}(e,r);return{spectralFlux:t,flatnessChange:a,hfChange:f,energyChange:c}}(e,r),o=function(e){var r=e.spectralFlux,t=e.flatnessChange,n=e.hfChange,o=e.energyChange,a=r,i=Math.sqrt(t),u=Math.log1p(10*n)/Math.log1p(10),f=Math.min(o/30,1);return(a+i+u+f)/4}(n);return o>t}function _e(e){for(var r=0,t=0,n=0,o=0;o<e.length;o++){var a=Math.abs(e[o]);a>1e-10&&(r+=Math.log(a),t+=a,n++)}if(0===n)return 0;var i=Math.exp(r/n),u=t/n;return u>1e-10?i/u:0}function De(e){for(var r=Math.floor(e.length/2),t=0,n=0,o=0;o<r;o++)t+=e[o]*e[o];for(var a=r;a<e.length;a++)n+=e[a]*e[a];var i=t+n;return i>0?n/i:0}function Ue(e){var r,t=null!==(r=null==e?void 0:e.bufferPool)&&void 0!==r?r:$("qmfAnalysisStage: bufferPool is required"),n=t.qmfDelays;return function(e){var r=Q(e,n.lowBand,t.qmfWorkBuffers);n.lowBand=r.newDelay;var o=Q(r.lowBand,n.midBand,t.qmfWorkBuffers);n.midBand=o.newDelay;var a=t.qmfWorkBuffers.highBandDelay[r.highBand.length];a.set(n.highBand),a.set(r.highBand,n.highBand.length);var i=a.slice(0,r.highBand.length);return n.highBand=a.slice(r.highBand.length),{bands:[o.lowBand,o.highBand,i]}}}function He(e){var r,t,n=null!==(r=null==e?void 0:e.bufferPool)&&void 0!==r?r:$("blockSelectorStage: bufferPool is required"),o=null!==(t=null==e?void 0:e.options)&&void 0!==t?t:$("blockSelectorStage: options is required");return function(e){var r,t=e.bands;if(o.fixedBlockModes)r=o.fixedBlockModes;else{var a=[128,128,256];r=t.map(function(e,r){var t=function(e,r){var t=new Float32Array(r),n=new Float32Array(r),o=Math.min(e.length,r);t.set(e.subarray(0,o)),re.fft(t,n);for(var a=new Float32Array(r/2),i=0;i<r/2;i++)a[i]=Math.sqrt(t[i]*t[i]+n[i]*n[i]);return a}(e,a[r]),i=Ee(t,n.transientDetection[r],o.transientThresholdLow);return n.transientDetection[r]=t,i*Math.max(r+1,2)})}return{bands:t,blockModes:r}}}function Le(e){var r,t=null!==(r=null==e?void 0:e.bufferPool)&&void 0!==r?r:$("mdctStage: bufferPool is required"),n=t.mdctOverlap,o=[be,be,pe];function a(e,r,t,n,a){var u=m[r];return 0===t?function(e,r,t,n,o,a){var u=2===r?s:l,f=a.transformBuffers[u];f.fill(0),f.set(o,t.windowStart),i(e,o,t.size),f.set(e,t.windowStart+32);var c=n.transform(f,a.mdctBuffers);r>0&&(c=K(c,a.reversalBuffers));return c}(e,r,u,o[r],n,a):function(e,r,t,n,o){for(var a=1<<(256===t.size?3:2),u=new Float32Array(t.size),f=0;f<a;f++){var c=f*w,l=e.subarray(c,c+w),s=o.transformBuffers[64];s.fill(0),s.set(n,0),i(l,n,w),s.set(l,g);var v=de.transform(s,o.mdctBuffers);r>0&&(v=K(v,o.reversalBuffers)),u.set(v,c)}return u}(e,r,u,n,a)}function i(e,r,t){for(var n=t-g,o=0;o<g;o++){var a=e[n+o];r[o]=v[o]*a,e[n+o]=a*v[31-o]}}return function(e){var r=e.bands,o=e.blockModes,i=e.originalFrame,u=new Float32Array(512);return r.forEach(function(e,r){var i=a(e,r,o[r],n[r],t),f=function(e){return 0===e?0:1===e?128:256}(r);u.set(i,f)}),{bands:r,coefficients:u,blockModes:o,originalFrame:i}}}function We(e){var r,t=null!==(r=null==e?void 0:e.options)&&void 0!==r?r:$("quantizationStage: options is required");return function(e){for(var r=e.coefficients,n=e.blockModes,o=function(e,r){for(var t=[],n=[],o=0,i=0,l=0;l<3;l++){for(var s=o,v=2===l?256:128,h=l<2?u[l]:a.length,y=0===r[l]?f:c;i<h;){var d=a[i],b=y[i]-s,p=b+d,m=new Float32Array(d);if(b>=0&&p<=v)m.set(e.subarray(s+b,s+p));else if(m.fill(0),b<v&&p>0){var w=Math.max(0,b),g=Math.min(v,p);m.set(e.subarray(s+w,s+g),Math.max(0,-b))}t.push(m),n.push(d),i++}o+=v}return{bfuData:t,bfuSizes:n,bfuCount:i}}(r,n),l=o.bfuData,s=o.bfuSizes,v=function(e,r,t,n){for(var o=new Int32Array(t),a=new Float32Array(t),u=0;u<t;u++){var f=0|r[u];if(0!==f){var c=Fe(e[u].subarray(0,f));if(o[u]=c,c>0){var l=O[c],s=Math.pow(l,n);a[u]=2*s*f}}}var v,h=null,y=1/0,d=Me(i);try{for(d.s();!(v=d.n()).done;){var b=v.value;if(!(b>t)){var p=1656-10*b;if(!(p<0)){var m=Be(b,r,p,n,o),w=je(b,t,r,m.wordLengths,m.scaleFactorIndices,n,a);w<y&&(y=w,h={bfuCount:b,allocation:m.wordLengths,scaleFactorIndices:m.scaleFactorIndices})}}}}catch(e){d.e(e)}finally{d.f()}if(!h){var g=i[0];return{bfuCount:g,allocation:new Int32Array(g),scaleFactorIndices:new Int32Array(52)}}return h}(l,s,o.bfuCount,t.allocationBias),h=v.bfuCount,y=v.allocation,d=v.scaleFactorIndices,b=y.slice(0,h),p=d.slice(0,h),m=[],w=0;w<h;w++){var g=l[w].subarray(0,s[w]),k=b[w],S=M[k],A=Se(g,d[w],S);m.push(A)}return{nBfu:h,scaleFactorIndices:p,wordLengthIndices:b,quantizedCoefficients:m,blockModes:n}}}function Ge(){return J({options:arguments.length>0&&void 0!==arguments[0]?arguments[0]:new R,bufferPool:arguments.length>1&&void 0!==arguments[1]?arguments[1]:new qe},Ue,He,Le,We)}function Ne(){return function(e){for(var r=new Float32Array(512),t=e.nBfu,n=e.scaleFactorIndices,o=e.wordLengthIndices,a=e.quantizedCoefficients,i=e.blockModes,l=0;l<t;l++){var s=M[o[l]],v=0;l>=u[0]&&(v=1),l>=u[1]&&(v=2);var h=0===i[v]?f[l]:c[l];if(s>0){var y=Ae(a[l],n[l],s);r.set(y,h)}}return{coefficients:r,blockModes:i}}}function Ve(e){var r,t=null!==(r=null==e?void 0:e.bufferPool)&&void 0!==r?r:$("imdctStage: bufferPool is required"),n=t.imdctOverlap,o=[we,we,ge];function a(e,r,t,n,a,i){return 0===t?function(e,r,t,n,o,a){var i=e;r>0&&(i=K(e,n.reversalBuffers));var u=a.transform(i,n.mdctBuffers),f=u.length/4,c=n.transformBuffers[512];c.fill(0);for(var l=0;l<o.size;l++)c[l]=u[f+l];var s=t.slice(2*o.size-k,2*o.size),h=ke(s.slice(0,k),c.slice(0,k),v);t.set(h,0);for(var y=0;y<k;y++)s[y]=c[k+y];for(var d=2===r?240:112,b=0;b<d;b++)t[32+b]=c[k+b];for(var p=0;p<k;p++)t[2*o.size-k+p]=c[o.size-k+p];return t.slice(0,o.size)}(e,r,n,a,i,o[r]):function(e,r,t,n,o){var a=1<<(256===o.size?3:2),i=n.transformBuffers[512];i.fill(0);for(var u=t.slice(2*o.size-k,2*o.size),f=0,c=0,l=0;l<a;l++){var s=e.slice(c,c+w);r>0&&(s=K(s,n.reversalBuffers));for(var h=me.transform(s,n.mdctBuffers),y=h.length/4,d=0;d<w;d++)i[f+d]=h[y+d];var b=ke(u.slice(0,k),i.slice(f,f+k),v);t.set(b,f);for(var p=0;p<k;p++)u[p]=i[f+k+p];f+=w,c+=w}for(var m=0;m<k;m++)t[2*o.size-k+m]=i[o.size-k+m];return t.slice(0,o.size)}(e,r,n,a,i)}return function(e){var r=e.coefficients,o=e.blockModes;return m.map(function(e,i){var u=function(e,r){var t=[0,128,256,512];return e.subarray(t[r],t[r+1])}(r,i);return a(u,i,o[i],n[i],t,e)})}}function Re(e){var r,t=null!==(r=null==e?void 0:e.bufferPool)&&void 0!==r?r:$("qmfSynthesisStage: bufferPool is required"),n=t.qmfDelays;return function(e){var r=t.qmfWorkBuffers.highBandDelay[e[2].length];r.set(n.highBand),r.set(e[2],n.highBand.length);var o=r.slice(0,2*e[0].length);n.highBand=r.slice(2*e[0].length);var a=X(e[0],e[1],n.midBand,t.qmfWorkBuffers);n.midBand=a.newDelay;var i=X(a.output,o,n.lowBand,t.qmfWorkBuffers);return n.lowBand=i.newDelay,i.output}}function $e(){return J({bufferPool:arguments.length>0&&void 0!==arguments[0]?arguments[0]:new qe},Ne,Ve,Re)}function Je(e){return Je="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Je(e)}function Ke(e,r){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=Ze(e))||r&&e&&"number"==typeof e.length){t&&(e=t);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,u=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return i=e.done,e},e:function(e){u=!0,a=e},f:function(){try{i||null==t.return||t.return()}finally{if(u)throw a}}}}function Qe(e,r,t,n,o,a,i){try{var u=e[a](i),f=u.value}catch(e){return void t(e)}u.done?r(f):Promise.resolve(f).then(n,o)}function Xe(e){return function(){var r=this,t=arguments;return new Promise(function(n,o){var a=e.apply(r,t);function i(e){Qe(a,n,o,i,u,"next",e)}function u(e){Qe(a,n,o,i,u,"throw",e)}i(void 0)})}}function Ye(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,o,a,i,u=[],f=!0,c=!1;try{if(a=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;f=!1}else for(;!(f=(n=a.call(t)).done)&&(u.push(n.value),u.length!==r);f=!0);}catch(e){c=!0,o=e}finally{try{if(!f&&null!=t.return&&(i=t.return(),Object(i)!==i))return}finally{if(c)throw o}}return u}}(e,r)||Ze(e,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ze(e,r){if(e){if("string"==typeof e)return er(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?er(e,r):void 0}}function er(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function rr(e){if(null!=e){var r=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],t=0;if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&t>=e.length&&(e=void 0),{value:e&&e[t++],done:!e}}}}throw new TypeError(Je(e)+" is not iterable")}function tr(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,r,t="function"==typeof Symbol?Symbol:{},n=t.iterator||"@@iterator",o=t.toStringTag||"@@toStringTag";function a(t,n,o,a){var f=n&&n.prototype instanceof u?n:u,c=Object.create(f.prototype);return nr(c,"_invoke",function(t,n,o){var a,u,f,c=0,l=o||[],s=!1,v={p:0,n:0,v:e,a:h,f:h.bind(e,4),d:function(r,t){return a=r,u=0,f=e,v.n=t,i}};function h(t,n){for(u=t,f=n,r=0;!s&&c&&!o&&r<l.length;r++){var o,a=l[r],h=v.p,y=a[2];t>3?(o=y===n)&&(f=a[(u=a[4])?5:(u=3,3)],a[4]=a[5]=e):a[0]<=h&&((o=t<2&&h<a[1])?(u=0,v.v=n,v.n=a[1]):h<y&&(o=t<3||a[0]>n||n>y)&&(a[4]=t,a[5]=n,v.n=y,u=0))}if(o||t>1)return i;throw s=!0,n}return function(o,l,y){if(c>1)throw TypeError("Generator is already running");for(s&&1===l&&h(l,y),u=l,f=y;(r=u<2?e:f)||!s;){a||(u?u<3?(u>1&&(v.n=-1),h(u,f)):v.n=f:v.v=f);try{if(c=2,a){if(u||(o="next"),r=a[o]){if(!(r=r.call(a,f)))throw TypeError("iterator result is not an object");if(!r.done)return r;f=r.value,u<2&&(u=0)}else 1===u&&(r=a.return)&&r.call(a),u<2&&(f=TypeError("The iterator does not provide a '"+o+"' method"),u=1);a=e}else if((r=(s=v.n<0)?f:t.call(n,v))!==i)break}catch(r){a=e,u=1,f=r}finally{c=1}}return{value:r,done:s}}}(t,o,a),!0),c}var i={};function u(){}function f(){}function c(){}r=Object.getPrototypeOf;var l=[][n]?r(r([][n]())):(nr(r={},n,function(){return this}),r),s=c.prototype=u.prototype=Object.create(l);function v(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,nr(e,o,"GeneratorFunction")),e.prototype=Object.create(s),e}return f.prototype=c,nr(s,"constructor",c),nr(c,"constructor",f),f.displayName="GeneratorFunction",nr(c,o,"GeneratorFunction"),nr(s),nr(s,o,"Generator"),nr(s,n,function(){return this}),nr(s,"toString",function(){return"[object Generator]"}),(tr=function(){return{w:a,m:v}})()}function nr(e,r,t,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}nr=function(e,r,t,n){if(r)o?o(e,r,{value:t,enumerable:!n,configurable:!n,writable:!n}):e[r]=t;else{var a=function(r,t){nr(e,r,function(e){return this._invoke(r,t,e)})};a("next",0),a("throw",1),a("return",2)}},nr(e,r,t,n)}function or(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,ar(n.key),n)}}function ar(e){var r=function(e,r){if("object"!=Je(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,r||"default");if("object"!=Je(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(e)}(e,"string");return"symbol"==Je(r)?r:r+""}function ir(e){return function(){return new ur(e.apply(this,arguments))}}function ur(e){var r,t;function n(r,t){try{var a=e[r](t),i=a.value,u=i instanceof lr;Promise.resolve(u?i.v:i).then(function(t){if(u){var f="return"===r?"return":"next";if(!i.k||t.done)return n(f,t);t=e[f](t).value}o(a.done?"return":"normal",t)},function(e){n("throw",e)})}catch(e){o("throw",e)}}function o(e,o){switch(e){case"return":r.resolve({value:o,done:!0});break;case"throw":r.reject(o);break;default:r.resolve({value:o,done:!1})}(r=r.next)?n(r.key,r.arg):t=null}this._invoke=function(e,o){return new Promise(function(a,i){var u={key:e,arg:o,resolve:a,reject:i,next:null};t?t=t.next=u:(r=t=u,n(e,o))})},"function"!=typeof e.return&&(this.return=void 0)}function fr(e){return new lr(e,0)}function cr(e){var r={},t=!1;function n(r,n){return t=!0,n=new Promise(function(t){t(e[r](n))}),{done:!1,value:new lr(n,1)}}return r["undefined"!=typeof Symbol&&Symbol.iterator||"@@iterator"]=function(){return this},r.next=function(e){return t?(t=!1,e):n("next",e)},"function"==typeof e.throw&&(r.throw=function(e){if(t)throw t=!1,e;return n("throw",e)}),"function"==typeof e.return&&(r.return=function(e){return t?(t=!1,e):n("return",e)}),r}function lr(e,r){this.v=e,this.k=r}function sr(e){var r,t,n,o=2;for("undefined"!=typeof Symbol&&(t=Symbol.asyncIterator,n=Symbol.iterator);o--;){if(t&&null!=(r=e[t]))return r.call(e);if(n&&null!=(r=e[n]))return new vr(r.call(e));t="@@asyncIterator",n="@@iterator"}throw new TypeError("Object is not async iterable")}function vr(e){function r(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var r=e.done;return Promise.resolve(e.value).then(function(e){return{value:e,done:r}})}return vr=function(e){this.s=e,this.n=e.next},vr.prototype={s:null,n:null,next:function(){return r(this.n.apply(this.s,arguments))},return:function(e){var t=this.s.return;return void 0===t?Promise.resolve({value:e,done:!0}):r(t.apply(this.s,arguments))},throw:function(e){var t=this.s.return;return void 0===t?Promise.reject(e):r(t.apply(this.s,arguments))}},new vr(e)}ur.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},ur.prototype.next=function(e){return this._invoke("next",e)},ur.prototype.throw=function(e){return this._invoke("throw",e)},ur.prototype.return=function(e){return this._invoke("return",e)};var hr=function(){function e(){!function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}(this,e)}return t=e,a=null,i=[{key:"encodeStream",value:function(r){return ir(function(r){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return tr().m(function n(){var o,a,i,u;return tr().w(function(n){for(;;)switch(n.n){case 0:if(o=t.channelCount,a=void 0===o?1:o,i=t.onProgress,u=t.encoderOptions,1!==a){n.n=2;break}return n.d(rr(cr(sr(e._encodeMonoStream(r,i,u)))),1);case 1:case 3:n.n=5;break;case 2:if(2!==a){n.n=4;break}return n.d(rr(cr(sr(e._encodeStereoStream(r,i,u)))),3);case 4:throw new Error("Unsupported channel count: ".concat(a));case 5:return n.a(2)}},n)})()}).apply(this,arguments)}},{key:"_encodeMonoStream",value:function(e,r,t){return ir(tr().m(function n(){var o,a,i,u,f,c,l,s,v,h,y;return tr().w(function(n){for(;;)switch(n.n){case 0:o=t||new R,a=Ge(o),i=0,u=!1,f=!1,n.p=1,l=sr(e);case 2:return n.n=3,fr(l.next());case 3:if(!(u=!(s=n.v).done)){n.n=6;break}return v=s.value,h=a(v),n.n=4,h;case 4:r&&r(i++);case 5:u=!1,n.n=2;break;case 6:n.n=8;break;case 7:n.p=7,y=n.v,f=!0,c=y;case 8:if(n.p=8,n.p=9,!u||null==l.return){n.n=10;break}return n.n=10,fr(l.return());case 10:if(n.p=10,!f){n.n=11;break}throw c;case 11:return n.f(10);case 12:return n.f(8);case 13:return n.a(2)}},n,null,[[9,,10,12],[1,7,8,13]])}))()}},{key:"_encodeStereoStream",value:function(e,r,t){return ir(tr().m(function n(){var o,a,i,u,f,c,l,s,v,h,y,d,b,p,m;return tr().w(function(n){for(;;)switch(n.n){case 0:o=t||new R,a=Ge(o),i=Ge(o),u=0,f=!1,c=!1,n.p=1,s=sr(e);case 2:return n.n=3,fr(s.next());case 3:if(!(f=!(v=n.v).done)){n.n=7;break}return h=Ye(v.value,2),y=h[0],d=h[1],b=a(y),p=i(d),n.n=4,b;case 4:return n.n=5,p;case 5:r&&r(u++);case 6:f=!1,n.n=2;break;case 7:n.n=9;break;case 8:n.p=8,m=n.v,c=!0,l=m;case 9:if(n.p=9,n.p=10,!f||null==s.return){n.n=11;break}return n.n=11,fr(s.return());case 11:if(n.p=11,!c){n.n=12;break}throw l;case 12:return n.f(11);case 13:return n.f(9);case 14:return n.a(2)}},n,null,[[10,,11,13],[1,8,9,14]])}))()}},{key:"decodeStream",value:function(r){return ir(function(r){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return tr().m(function n(){var o,a,i;return tr().w(function(n){for(;;)switch(n.n){case 0:if(o=t.channelCount,a=void 0===o?1:o,i=t.onProgress,1!==a){n.n=2;break}return n.d(rr(cr(sr(e._decodeMonoStream(r,i)))),1);case 1:case 3:n.n=5;break;case 2:if(2!==a){n.n=4;break}return n.d(rr(cr(sr(e._decodeStereoStream(r,i)))),3);case 4:throw new Error("Unsupported channel count: ".concat(a));case 5:return n.a(2)}},n)})()}).apply(this,arguments)}},{key:"_decodeMonoStream",value:function(e,r){return ir(tr().m(function t(){var n,o,a;return tr().w(function(t){for(;;)switch(t.n){case 0:return n=$e(),o=0,a=function(){var t=ir(tr().m(function t(){var a,i,u,f,c,l,s,v;return tr().w(function(t){for(;;)switch(t.n){case 0:a=!1,i=!1,t.p=1,f=sr(e);case 2:return t.n=3,fr(f.next());case 3:if(!(a=!(c=t.v).done)){t.n=6;break}return l=c.value,s=n(l),t.n=4,s;case 4:r&&r(o++);case 5:a=!1,t.n=2;break;case 6:t.n=8;break;case 7:t.p=7,v=t.v,i=!0,u=v;case 8:if(t.p=8,t.p=9,!a||null==f.return){t.n=10;break}return t.n=10,fr(f.return());case 10:if(t.p=10,!i){t.n=11;break}throw u;case 11:return t.f(10);case 12:return t.f(8);case 13:return t.a(2)}},t,null,[[9,,10,12],[1,7,8,13]])}));return function(){return t.apply(this,arguments)}}(),t.d(rr(cr(sr(a()))),1);case 1:return t.a(2)}},t)}))()}},{key:"_decodeStereoStream",value:function(r,t){return ir(tr().m(function n(){var o,a,i,u;return tr().w(function(n){for(;;)switch(n.n){case 0:return o=$e(),a=$e(),i=0,u=function(){var n=ir(tr().m(function n(){var u,f,c,l,s,v,h,y,d,b,p,m,w,g,k;return tr().w(function(n){for(;;)switch(n.n){case 0:u=null,f=!0,c=!1,l=!1,n.p=1,v=sr(r);case 2:return n.n=3,fr(v.next());case 3:if(!(c=!(h=n.v).done)){n.n=8;break}if(y=h.value,!f){n.n=4;break}u=y,n.n=6;break;case 4:return d=y,b=o(u),p=a(d),n.n=5,[b,p];case 5:t&&t(i++);case 6:f=!f;case 7:c=!1,n.n=2;break;case 8:n.n=10;break;case 9:n.p=9,k=n.v,l=!0,s=k;case 10:if(n.p=10,n.p=11,!c||null==v.return){n.n=12;break}return n.n=12,fr(v.return());case 12:if(n.p=12,!l){n.n=13;break}throw s;case 13:return n.f(12);case 14:return n.f(10);case 15:if(f||!u){n.n=17;break}return m=e._createDummyFrame(),w=o(u),g=a(m),n.n=16,[w,g];case 16:t&&t(i++);case 17:return n.a(2)}},n,null,[[11,,12,14],[1,9,10,15]])}));return function(){return n.apply(this,arguments)}}(),n.d(rr(cr(sr(u()))),1);case 1:return n.a(2)}},n)}))()}},{key:"frameBufferToFrames",value:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:512;return tr().m(function t(){var n,o,a,i,u,f,c,l,s,v,h,y,d,b,p,m;return tr().w(function(t){for(;;)switch(t.n){case 0:if(1!==(n=e.length)){t.n=4;break}o=Ye(e,1),a=o[0],i=0;case 1:if(!(i<a.length)){t.n=3;break}for(u=new Float32Array(r),f=Math.min(i+r,a.length),c=0;c<f-i;c++)u[c]=a[i+c];return t.n=2,u;case 2:i+=r,t.n=1;break;case 3:t.n=9;break;case 4:if(2!==n){t.n=8;break}l=Ye(e,2),s=l[0],v=l[1],h=Math.max(s.length,v.length),y=0;case 5:if(!(y<h)){t.n=7;break}for(d=new Float32Array(r),b=new Float32Array(r),p=Math.min(y+r,h),m=0;m<p-y;m++)d[m]=y+m<s.length?s[y+m]:0,b[m]=y+m<v.length?v[y+m]:0;return t.n=6,[d,b];case 6:y+=r,t.n=5;break;case 7:t.n=9;break;case 8:throw new Error("Unsupported channel count: ".concat(n));case 9:return t.a(2)}},t)})()}},{key:"collectFrames",value:(c=Xe(tr().m(function e(r){var t,n,o,a,i,u,f,c;return tr().w(function(e){for(;;)switch(e.n){case 0:t=[],n=!1,o=!1,e.p=1,i=sr(r);case 2:return e.n=3,i.next();case 3:if(!(n=!(u=e.v).done)){e.n=5;break}f=u.value,t.push(f);case 4:n=!1,e.n=2;break;case 5:e.n=7;break;case 6:e.p=6,c=e.v,o=!0,a=c;case 7:if(e.p=7,e.p=8,!n||null==i.return){e.n=9;break}return e.n=9,i.return();case 9:if(e.p=9,!o){e.n=10;break}throw a;case 10:return e.f(9);case 11:return e.f(7);case 12:return e.a(2,t)}},e,null,[[8,,9,11],[1,6,7,12]])})),function(e){return c.apply(this,arguments)})},{key:"_createDummyFrame",value:function(){return{nBfu:0,blockModes:[0,0,0],scaleFactorIndices:new Int32Array(0),wordLengthIndices:new Int32Array(0),quantizedCoefficients:[]}}},{key:"createAeaBlob",value:(f=Xe(tr().m(function e(r){var t,n,o,a,i,u,f,c,l,s,v,h,y,d,b,p,m,w,g,k,S=arguments;return tr().w(function(e){for(;;)switch(e.n){case 0:n=(t=S.length>1&&void 0!==S[1]?S[1]:{}).title,o=void 0===n?"encoded by atrac1.js":n,a=t.channelCount,i=void 0===a?1:a,u=[],f=!1,c=!1,e.p=1,s=sr(r);case 2:return e.n=3,s.next();case 3:if(!(f=!(v=e.v).done)){e.n=5;break}h=v.value,u.push(q(h));case 4:f=!1,e.n=2;break;case 5:e.n=7;break;case 6:e.p=6,k=e.v,c=!0,l=k;case 7:if(e.p=7,e.p=8,!f||null==s.return){e.n=9;break}return e.n=9,s.return();case 9:if(e.p=9,!c){e.n=10;break}throw l;case 10:return e.f(9);case 11:return e.f(7);case 12:for(y=_.createHeader(o,u.length,i),d=y.length+u.reduce(function(e,r){return e+r.length},0),(b=new Uint8Array(d)).set(y,0),p=y.length,m=0,w=u;m<w.length;m++)g=w[m],b.set(g,p),p+=g.length;return e.a(2,new Blob([b],{type:"application/octet-stream"}))}},e,null,[[8,,9,11],[1,6,7,12]])})),function(e){return f.apply(this,arguments)})},{key:"createWavBlob",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:r,a=Array.isArray(t)?t:[t];if(1===n)return e._createMonoWavBlob(a,o);if(2===n)return e._createStereoWavBlob(a,o);throw new Error("Unsupported channel count: ".concat(n))}},{key:"_createMonoWavBlob",value:function(r,t){var n=r.reduce(function(e,r){return e+r.length},0),o=new ArrayBuffer(44+2*n),a=new DataView(o);e._writeWavHeader(a,n,1,t);var i,u=44,f=Ke(r);try{for(f.s();!(i=f.n()).done;)for(var c=i.value,l=0;l<c.length;l++){var s=Math.max(-1,Math.min(1,c[l]));a.setInt16(u,s<0?s*A:s*S,!0),u+=2}}catch(e){f.e(e)}finally{f.f()}return new Blob([o],{type:"audio/wav"})}},{key:"_createStereoWavBlob",value:function(r,t){var n=r.reduce(function(e,r){var t=Ye(r,2),n=t[0],o=t[1];return e+Math.max(n.length,o.length)},0),o=new ArrayBuffer(44+2*n*2),a=new DataView(o);e._writeWavHeader(a,n,2,t);var i,u=44,f=Ke(r);try{for(f.s();!(i=f.n()).done;)for(var c=Ye(i.value,2),l=c[0],s=c[1],v=Math.max(l.length,s.length),h=0;h<v;h++){var y=h<l.length?l[h]:0,d=h<s.length?s[h]:0,b=Math.max(-1,Math.min(1,y)),p=Math.max(-1,Math.min(1,d));a.setInt16(u,b<0?b*A:b*S,!0),u+=2,a.setInt16(u,p<0?p*A:p*S,!0),u+=2}}catch(e){f.e(e)}finally{f.f()}return new Blob([o],{type:"audio/wav"})}},{key:"_writeWavHeader",value:function(e,r,t,n){var o=n*t*2,a=2*t,i=r*a,u=36+i,f=0,c=function(r,t){for(var n=0;n<t.length;n++)e.setUint8(r+n,t.charCodeAt(n))};c(f,"RIFF"),f+=4,e.setUint32(f,u,!0),c(f+=4,"WAVE"),c(f+=4,"fmt "),f+=4,e.setUint32(f,16,!0),f+=4,e.setUint16(f,1,!0),f+=2,e.setUint16(f,t,!0),f+=2,e.setUint32(f,n,!0),f+=4,e.setUint32(f,o,!0),f+=4,e.setUint16(f,a,!0),f+=2,e.setUint16(f,16,!0),c(f+=2,"data"),f+=4,e.setUint32(f,i,!0)}},{key:"parseAeaBlob",value:(u=Xe(tr().m(function e(r){var t,a,i,u,f,c;return tr().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,r.arrayBuffer();case 1:for(t=e.v,a=new Uint8Array(t.slice(0,n)),i=_.parseHeader(a),u=[],f=n;f<t.byteLength;f+=o)(c=new Uint8Array(t.slice(f,f+o))).length===o&&u.push(c);return e.a(2,{info:i,frameData:u})}},e)})),function(e){return u.apply(this,arguments)})},{key:"deserializedFrameStream",value:tr().m(function e(r){var t,n,o,a;return tr().w(function(e){for(;;)switch(e.n){case 0:t=Ke(r),e.p=1,t.s();case 2:if((n=t.n()).done){e.n=4;break}return o=n.value,e.n=3,E(o);case 3:e.n=2;break;case 4:e.n=6;break;case 5:e.p=5,a=e.v,t.e(a);case 6:return e.p=6,t.f(),e.f(6);case 7:return e.a(2)}},e,null,[[1,5,6,7]])})},{key:"assemblePcmFrames",value:function(e,r){if(1===r){var t,n=e.reduce(function(e,r){return e+r.length},0),o=new Float32Array(n),a=0,i=Ke(e);try{for(i.s();!(t=i.n()).done;){var u=t.value;o.set(u,a),a+=u.length}}catch(e){i.e(e)}finally{i.f()}return o}if(2===r){var f,c=e.reduce(function(e,r){var t=Ye(r,2),n=t[0],o=t[1];return e+Math.max(n.length,o.length)},0),l=new Float32Array(2*c),s=0,v=Ke(e);try{for(v.s();!(f=v.n()).done;)for(var h=Ye(f.value,2),y=h[0],d=h[1],b=Math.max(y.length,d.length),p=0;p<b;p++)l[2*s]=p<y.length?y[p]:0,l[2*s+1]=p<d.length?d[p]:0,s++}catch(e){v.e(e)}finally{v.f()}return l}throw new Error("Unsupported channel count: ".concat(r))}}],a&&or(t.prototype,a),i&&or(t,i),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,a,i,u,f,c}();function yr(e){return yr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},yr(e)}function dr(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,n)}return t}function br(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?dr(Object(t),!0).forEach(function(r){pr(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):dr(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function pr(e,r,t){return(r=function(e){var r=function(e,r){if("object"!=yr(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,r||"default");if("object"!=yr(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(e)}(e,"string");return"symbol"==yr(r)?r:r+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function mr(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,r,t="function"==typeof Symbol?Symbol:{},n=t.iterator||"@@iterator",o=t.toStringTag||"@@toStringTag";function a(t,n,o,a){var f=n&&n.prototype instanceof u?n:u,c=Object.create(f.prototype);return wr(c,"_invoke",function(t,n,o){var a,u,f,c=0,l=o||[],s=!1,v={p:0,n:0,v:e,a:h,f:h.bind(e,4),d:function(r,t){return a=r,u=0,f=e,v.n=t,i}};function h(t,n){for(u=t,f=n,r=0;!s&&c&&!o&&r<l.length;r++){var o,a=l[r],h=v.p,y=a[2];t>3?(o=y===n)&&(f=a[(u=a[4])?5:(u=3,3)],a[4]=a[5]=e):a[0]<=h&&((o=t<2&&h<a[1])?(u=0,v.v=n,v.n=a[1]):h<y&&(o=t<3||a[0]>n||n>y)&&(a[4]=t,a[5]=n,v.n=y,u=0))}if(o||t>1)return i;throw s=!0,n}return function(o,l,y){if(c>1)throw TypeError("Generator is already running");for(s&&1===l&&h(l,y),u=l,f=y;(r=u<2?e:f)||!s;){a||(u?u<3?(u>1&&(v.n=-1),h(u,f)):v.n=f:v.v=f);try{if(c=2,a){if(u||(o="next"),r=a[o]){if(!(r=r.call(a,f)))throw TypeError("iterator result is not an object");if(!r.done)return r;f=r.value,u<2&&(u=0)}else 1===u&&(r=a.return)&&r.call(a),u<2&&(f=TypeError("The iterator does not provide a '"+o+"' method"),u=1);a=e}else if((r=(s=v.n<0)?f:t.call(n,v))!==i)break}catch(r){a=e,u=1,f=r}finally{c=1}}return{value:r,done:s}}}(t,o,a),!0),c}var i={};function u(){}function f(){}function c(){}r=Object.getPrototypeOf;var l=[][n]?r(r([][n]())):(wr(r={},n,function(){return this}),r),s=c.prototype=u.prototype=Object.create(l);function v(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,wr(e,o,"GeneratorFunction")),e.prototype=Object.create(s),e}return f.prototype=c,wr(s,"constructor",c),wr(c,"constructor",f),f.displayName="GeneratorFunction",wr(c,o,"GeneratorFunction"),wr(s),wr(s,o,"Generator"),wr(s,n,function(){return this}),wr(s,"toString",function(){return"[object Generator]"}),(mr=function(){return{w:a,m:v}})()}function wr(e,r,t,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}wr=function(e,r,t,n){if(r)o?o(e,r,{value:t,enumerable:!n,configurable:!n,writable:!n}):e[r]=t;else{var a=function(r,t){wr(e,r,function(e){return this._invoke(r,t,e)})};a("next",0),a("throw",1),a("return",2)}},wr(e,r,t,n)}function gr(e,r,t,n,o,a,i){try{var u=e[a](i),f=u.value}catch(e){return void t(e)}u.done?r(f):Promise.resolve(f).then(n,o)}function kr(e){return function(){var r=this,t=arguments;return new Promise(function(n,o){var a=e.apply(r,t);function i(e){gr(a,n,o,i,u,"next",e)}function u(e){gr(a,n,o,i,u,"throw",e)}i(void 0)})}}function Sr(e,r,t){return Ar.apply(this,arguments)}function Ar(){return(Ar=kr(mr().m(function e(r,t,n){var o,a,i,u,f,c,l;return mr().w(function(e){for(;;)switch(e.n){case 0:return n=null!=n?n:"encoded by carta1",e.p=1,o=hr.frameBufferToFrames(r),a=r.length,i=new R(t),u=hr.encodeStream(o,{channelCount:a,encoderOptions:i}),e.n=2,hr.collectFrames(u);case 2:return f=e.v,e.n=3,hr.createAeaBlob(f,{title:n,channelCount:a});case 3:return c=e.v,e.a(2,{aeaBlob:c});case 4:throw e.p=4,l=e.v,console.error("Worker encode error:",l),l;case 5:return e.a(2)}},e,null,[[1,4]])}))).apply(this,arguments)}function Mr(){return(new R).toObject()}function Or(e){return jr.apply(this,arguments)}function jr(){return(jr=kr(mr().m(function e(t){var n,o,a,i,u,f,c,l,s;return mr().w(function(e){for(;;)switch(e.n){case 0:return n=t.header,o=t.aeaData,(a=t.info)?i=br({sampleRate:r},a):n?(u=_.parseHeader(n),i=br({sampleRate:r},u)):i={channelCount:2,sampleRate:r},f=hr.deserializedFrameStream(o),c=hr.decodeStream(f,{channelCount:i.channelCount}),e.n=1,hr.collectFrames(c);case 1:return l=e.v,s=hr.createWavBlob(l,i.channelCount,i.sampleRate),e.a(2,{wavBlob:s,info:i})}},e)}))).apply(this,arguments)}self.onmessage=function(){var e=kr(mr().m(function e(r){var t,n,o,a,i,u,f,c,l,s,v;return mr().w(function(e){for(;;)switch(e.n){case 0:t=r.data,n=t.jobId,o=t.type,a=t.pcmData,i=t.aea,u=t.options,f=t.title,c=t.blob,e.p=1,s=o,e.n="encode"===s?2:"decode"===s?4:"parseAea"===s?6:"getEncoderOptions"===s?8:9;break;case 2:return e.n=3,Sr(a,u,f);case 3:return l=e.v,e.a(3,10);case 4:return e.n=5,Or(i);case 5:return l=e.v,e.a(3,10);case 6:return e.n=7,hr.parseAeaBlob(c);case 7:return l=e.v,e.a(3,10);case 8:return l=Mr(),e.a(3,10);case 9:throw new Error("Unknown worker message type: ".concat(o));case 10:self.postMessage({jobId:n,result:l}),e.n=12;break;case 11:e.p=11,v=e.v,console.error("Worker error:",v),self.postMessage({jobId:n,error:v.message});case 12:return e.a(2)}},e,null,[[1,11]])}));return function(r){return e.apply(this,arguments)}}();var Br=self;for(var Fr in e)Br[Fr]=e[Fr];e.__esModule&&Object.defineProperty(Br,"__esModule",{value:!0});
1
+ var r={},e=44100,t=new Uint8Array([0,8,0,0]),n=2048,o=212,a=new Int32Array([8,8,8,8,4,4,4,4,8,8,8,8,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,9,9,9,9,10,10,10,10,12,12,12,12,12,12,12,12,20,20,20,20,20,20,20,20]),i=new Int32Array([20,28,32,36,40,44,48,52]),u=new Int32Array([20,36,52]),f=new Int32Array([0,8,16,24,32,36,40,44,48,56,64,72,80,86,92,98,104,110,116,122,128,134,140,146,152,159,166,173,180,189,198,207,216,226,236,246,256,268,280,292,304,316,328,340,352,372,392,412,432,452,472,492]),c=new Int32Array([0,32,64,96,8,40,72,104,12,44,76,108,20,52,84,116,26,58,90,122,128,160,192,224,134,166,198,230,141,173,205,237,150,182,214,246,256,288,320,352,384,416,448,480,268,300,332,364,396,428,460,492]),l=256,s=512,v=function(){for(var r=new Float64Array(32),e=0;e<32;e++)r[e]=Math.sin((e+.5)*Math.PI/64);return r}(),h=46,y=new Float32Array([-1461907e-11,-9205479e-11,-56157569e-12,.00030117269,.0002422519,-.00085293897,-.0005205574,.0020340169,.00078333891,-.0042153862,-.00075614988,.0078402944,-61169922e-12,-.01344162,.0024626821,.021736089,-.007801671,-.034090221,.01880949,.054326009,-.043596379,-.099384367,.13207909,.46424159]),d=function(){for(var r=new Float32Array(48),e=0;e<24;e++)r[e]=2*y[e],r[47-e]=2*y[e];return r}(),b=function(){for(var r=new Float32Array(24),e=0;e<24;e++)r[e]=d[2*e];return r}(),p=function(){for(var r=new Float32Array(24),e=0;e<24;e++)r[e]=d[2*e+1];return r}(),m=[{size:128,windowStart:48},{size:128,windowStart:48},{size:256,windowStart:112}],w=32,g=32,k=16,S=32767,A=32768,O=15,M=new Int32Array([0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]),j=function(){for(var r=new Float64Array(64),e=0;e<64;e++)r[e]=Math.pow(2,e/3-21);return r}(),B=function(){for(var r=M[15],e=new Float64Array(r+1),t=0;t<=r;t++)e[t]=Math.pow(2,-t);return e}(),F=function(){for(var r=new Int32Array(O),e=0;e<O;e++)r[e]=M[e+1]-M[e]|0;return r}(),P=function(){var r=new Float64Array(O);r[0]=2-B[M[1]];for(var e=1;e<O;e++){var t=0|M[e],n=0|M[e+1];r[e]=B[t]-B[n]}return r}();function T(r,e,t,n){if(0!==n){var o=Math.floor(e/8),a=e%8;t&=(1<<n)-1;for(var i=0;i<n&&o<r.length;){var u=8-a,f=Math.min(n-i,u),c=t>>n-i-f&(1<<f)-1,l=(1<<f)-1<<u-f;r[o]=r[o]&~l|c<<u-f,i+=f,o++,a=0}}}function I(r,e,t){if(0===t)return 0;for(var n=Math.floor(e/8),o=e%8,a=0,i=0;i<t&&n<r.length;){var u=8-o,f=Math.min(t-i,u),c=(1<<f)-1;a=a<<f|r[n]>>u-f&c,i+=f,n++,o=0}return a}function C(r,e,t){var n=I(r,e,t);return n>=1<<t-1?n-(1<<t):n}function x(r){return x="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},x(r)}function z(r,e){for(var t=0;t<e.length;t++){var n=e[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(r,q(n.key),n)}}function q(r){var e=function(r,e){if("object"!=x(r)||!r)return r;var t=r[Symbol.toPrimitive];if(void 0!==t){var n=t.call(r,e||"default");if("object"!=x(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(r)}(r,"string");return"symbol"==x(e)?e:e+""}function E(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=function(r,e){if(r){if("string"==typeof r)return _(r,e);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_(r,e):void 0}}(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var n=0,o=function(){};return{s:o,n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,u=!1;return{s:function(){t=t.call(r)},n:function(){var r=t.next();return i=r.done,r},e:function(r){u=!0,a=r},f:function(){try{i||null==t.return||t.return()}finally{if(u)throw a}}}}function _(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,n=Array(e);t<e;t++)n[t]=r[t];return n}function D(r){var e=new Uint8Array(o),t=new DataView(e.buffer),n=i.indexOf(r.nBfu),a=2-r.blockModes[0]<<14|2-r.blockModes[1]<<12|3-r.blockModes[2]<<10|n<<5;t.setUint16(0,a,!1);for(var u=16,f=0;f<r.nBfu;f++)T(e,u,r.wordLengthIndices[f],4),u+=4;for(var c=0;c<r.nBfu;c++)T(e,u,r.scaleFactorIndices[c],6),u+=6;for(var l=0;l<r.nBfu;l++){var s=M[r.wordLengthIndices[l]];if(s>0){var v,h=E(r.quantizedCoefficients[l]);try{for(h.s();!(v=h.n()).done;){var y=v.value;T(e,u,y<0?y+(1<<s):y,s),u+=s}}catch(r){h.e(r)}finally{h.f()}}}return e[209]=0,e[210]=0,e[211]=0,e}function U(r){if(r.length!==o)throw new Error("Frame must be ".concat(o," bytes"));for(var e=new DataView(r.buffer,r.byteOffset,r.byteLength).getUint16(0,!1),t=[2-(e>>14&3),2-(e>>12&3),3-(e>>10&3)],n=i[e>>5&7],u=16,f=new Int32Array(n),c=0;c<n;c++)f[c]=I(r,u,4),u+=4;for(var l=new Int32Array(n),s=0;s<n;s++)l[s]=I(r,u,6),u+=6;for(var v=[],h=0;h<n;h++){var y=M[f[h]],d=a[h],b=new Int32Array(d);if(y>0)for(var p=0;p<d;p++)b[p]=C(r,u,y),u+=y;v.push(b)}return{nBfu:n,scaleFactorIndices:l,wordLengthIndices:f,quantizedCoefficients:v,blockModes:t}}var L=function(){return r=function r(){!function(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r)},o=[{key:"createHeader",value:function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=new Uint8Array(n),i=new DataView(a.buffer);a.set(t,0);var u=(new TextEncoder).encode(r);return a.set(u.subarray(0,Math.min(u.length,255)),4),i.setUint32(260,e,!0),a[264]=o,a}},{key:"parseHeader",value:function(r){if(r.length!==n)throw new Error("Header must be ".concat(n," bytes"));for(var e=0;e<t.length;e++)if(r[e]!==t[e])throw new Error("Invalid AEA file");var o=new DataView(r.buffer,r.byteOffset,r.byteLength),a=r.indexOf(0,4),i=-1===a?256:a-4;return{title:(new TextDecoder).decode(r.subarray(4,4+i)),frameCount:o.getUint32(260,!0),channelCount:r[264]}}}],(e=null)&&z(r.prototype,e),o&&z(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,e,o}();function H(r){return H="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},H(r)}function W(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})),t.push.apply(t,n)}return t}function G(r){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?W(Object(t),!0).forEach(function(e){N(r,e,t[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):W(Object(t)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(t,e))})}return r}function N(r,e,t){return(e=J(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function V(r,e){return function(r){if(Array.isArray(r))return r}(r)||function(r,e){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var n,o,a,i,u=[],f=!0,c=!1;try{if(a=(t=t.call(r)).next,0===e){if(Object(t)!==t)return;f=!1}else for(;!(f=(n=a.call(t)).done)&&(u.push(n.value),u.length!==e);f=!0);}catch(r){c=!0,o=r}finally{try{if(!f&&null!=t.return&&(i=t.return(),Object(i)!==i))return}finally{if(c)throw o}}return u}}(r,e)||function(r,e){if(r){if("string"==typeof r)return R(r,e);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?R(r,e):void 0}}(r,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function R(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,n=Array(e);t<e;t++)n[t]=r[t];return n}function $(r,e){for(var t=0;t<e.length;t++){var n=e[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(r,J(n.key),n)}}function J(r){var e=function(r,e){if("object"!=H(r)||!r)return r;var t=r[Symbol.toPrimitive];if(void 0!==t){var n=t.call(r,e||"default");if("object"!=H(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(r)}(r,"string");return"symbol"==H(e)?e:e+""}var K=function(){return r=function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r),this.values={transientThresholdLow:1,transientThresholdMid:1.5,transientThresholdHigh:2,allocationBias:1,fixedBlockModes:null},this.metadata={transientThresholdLow:{default:this.values.transientThresholdLow,name:"Low Band Transient Threshold",description:"Controls the transient detection threshold for the low frequency band (0-5.5kHz). Lower values make detection more sensitive, triggering short blocks more easily. Higher values require stronger transients.",range:[.01,2],step:.01},transientThresholdMid:{default:this.values.transientThresholdMid,name:"Mid Band Transient Threshold",description:"Controls the transient detection threshold for the mid frequency band (5.5-11kHz). Lower values make detection more sensitive, triggering short blocks more easily. Higher values require stronger transients.",range:[.01,3],step:.01},transientThresholdHigh:{default:this.values.transientThresholdHigh,name:"High Band Transient Threshold",description:"Controls the transient detection threshold for the high frequency band (11-22kHz). Lower values make detection more sensitive, triggering short blocks more easily. Higher values require stronger transients.",range:[.01,4],step:.01},allocationBias:{default:this.values.allocationBias,name:"Bit allocation bias",description:"Controls how bits are distributed across the frequency spectrum during allocation. Higher values focus more bits on loud spectral components, while lower values spread bits more evenly across frequencies.",range:[0,5],step:.01},fixedBlockModes:{default:this.values.fixedBlockModes,name:"Fixed block modes",description:"Override transient detection and use fixed block modes. Format: [low, mid, high] where low/mid can be 0 or 2, high can be 0 or 3. When set, transient detection is skipped.",type:"array"}},e&&this.setOptions(e)},(e=[{key:"setOptions",value:function(r){for(var e=0,t=Object.entries(r);e<t.length;e++){var n=V(t[e],2),o=n[0],a=n[1];o in this.values&&this.setValue(o,a)}}},{key:"setValue",value:function(r,e){if(!(r in this.metadata))throw new Error("Unknown option: ".concat(r));var t=this.metadata[r];if("array"!==t.type){var n=V(t.range,2),o=n[0],a=n[1];if(e<o||e>a)throw new Error("Value for ".concat(r," must be between ").concat(o," and ").concat(a,", got ").concat(e))}this.values[r]=e}},{key:"getValue",value:function(r){if(!(r in this.values))throw new Error("Unknown option: ".concat(r));return this.values[r]}},{key:"transientThresholdLow",get:function(){return this.values.transientThresholdLow}},{key:"transientThresholdMid",get:function(){return this.values.transientThresholdMid}},{key:"transientThresholdHigh",get:function(){return this.values.transientThresholdHigh}},{key:"allocationBias",get:function(){return this.values.allocationBias}},{key:"fixedBlockModes",get:function(){return this.values.fixedBlockModes}},{key:"getMetadata",value:function(r){return this.metadata[r]}},{key:"getAllMetadata",value:function(){return G({},this.metadata)}},{key:"reset",value:function(){for(var r=0,e=Object.entries(this.metadata);r<e.length;r++){var t=V(e[r],2),n=t[0],o=t[1];this.values[n]=o.default}}},{key:"toObject",value:function(){return{values:G({},this.values),metadata:G({},this.metadata)}}}])&&$(r.prototype,e),t&&$(r,t),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,e,t}();function Q(r){throw new Error(r)}function X(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),n=1;n<e;n++)t[n-1]=arguments[n];var o=t.map(function(e){return e(r)});return function(r){return o.reduce(function(r,e){return e(r)},r)}}function Y(r,e){for(var t=e[r.length],n=0;n<r.length;n++)t[n]=r[r.length-1-n];return t}function Z(r,e){var t,n,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=r.length,i=a>>1,u=null!==(t=null==o||null===(n=o.delay)||void 0===n?void 0:n[a])&&void 0!==t?t:Q("qmfAnalysis: qmfWorkBuffers.delay[".concat(a,"] is required"));u.set(e),u.set(r,e.length);for(var f=new Float32Array(i),c=new Float32Array(i),l=0;l<i;l++){for(var s=0,v=0,h=2*l,y=0;y<24;y++)s+=u[h+47-2*y]*b[y],v+=u[h+46-2*y]*p[y];f[l]=s+v,c[l]=s-v}return{lowBand:f,highBand:c,newDelay:u.slice(-46)}}function rr(r,e,t){var n,o,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=r.length,u=2*i,f=null!==(n=null==a||null===(o=a.delay)||void 0===o?void 0:o[u])&&void 0!==n?n:Q("qmfSynthesis: qmfWorkBuffers.delay[".concat(u,"] is required"));f.set(t);for(var c=0;c<i;c++){var l=r[c],s=e[c],v=h+2*c;f[v]=.5*(l+s),f[v+1]=.5*(l-s)}for(var y=new Float32Array(u),d=0;d<i;d++){for(var m=2*d,w=0,g=0,k=0;k<24;k++){var S=m+2*k;w+=f[S]*b[k],g+=f[S+1]*p[k]}y[2*d]=g,y[2*d+1]=w}return{output:y,newDelay:f.slice(-46)}}function er(r){return er="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},er(r)}function tr(r,e){for(var t=0;t<e.length;t++){var n=e[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(r,nr(n.key),n)}}function nr(r){var e=function(r,e){if("object"!=er(r)||!r)return r;var t=r[Symbol.toPrimitive];if(void 0!==t){var n=t.call(r,e||"default");if("object"!=er(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(r)}(r,"string");return"symbol"==er(e)?e:e+""}var or=function(){return r=function r(){!function(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r)},t=[{key:"fft",value:function(r,e){var t=r.length;if(1!==t){for(var n=Math.log2(t),o=0;o<t;o++){for(var a=0,i=o,u=0;u<n;u++)a=a<<1|1&i,i>>=1;if(a>o){var f=[r[a],r[o]];r[o]=f[0],r[a]=f[1];var c=[e[a],e[o]];e[o]=c[0],e[a]=c[1]}}for(var l=2;l<=t;l<<=1)for(var s=l>>1,v=-2*Math.PI/l,h=Math.cos(v),y=Math.sin(v),d=0;d<t;d+=l)for(var b=1,p=0,m=0;m<s;m++){var w=d+m,g=w+s,k=r[w],S=e[w],A=r[g],O=e[g],M=A*b-O*p,j=A*p+O*b;r[w]=k+M,e[w]=S+j,r[g]=k-M,e[g]=S-j;var B=b*h-p*y;p=b*y+p*h,b=B}}}}],(e=null)&&tr(r.prototype,e),t&&tr(r,t),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,e,t}();function ar(r){return ar="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},ar(r)}function ir(r,e,t){return e=fr(e),function(r,e){if(e&&("object"==ar(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(r){if(void 0===r)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return r}(r)}(r,ur()?Reflect.construct(e,t||[],fr(r).constructor):e.apply(r,t))}function ur(){try{var r=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(r){}return(ur=function(){return!!r})()}function fr(r){return fr=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},fr(r)}function cr(r,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),Object.defineProperty(r,"prototype",{writable:!1}),e&&lr(r,e)}function lr(r,e){return lr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,e){return r.__proto__=e,r},lr(r,e)}function sr(r,e){for(var t=0;t<e.length;t++){var n=e[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(r,hr(n.key),n)}}function vr(r,e,t){return e&&sr(r.prototype,e),t&&sr(r,t),Object.defineProperty(r,"prototype",{writable:!1}),r}function hr(r){var e=function(r,e){if("object"!=ar(r)||!r)return r;var t=r[Symbol.toPrimitive];if(void 0!==t){var n=t.call(r,e||"default");if("object"!=ar(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(r)}(r,"string");return"symbol"==ar(e)?e:e+""}function yr(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}var dr=vr(function r(e,t){yr(this,r),this.size=e,this.halfSize=e>>1,this.quarterSize=e>>2,this.fftSize=this.halfSize>>1;var n=2*Math.PI/(8*e),o=2*Math.PI/e,a=Math.sqrt(t/e);this.sinCosTable=new Float64Array(this.halfSize);for(var i=0;i<this.quarterSize;i++){var u=o*i+n;this.sinCosTable[2*i]=a*Math.cos(u),this.sinCosTable[2*i+1]=a*Math.sin(u)}}),br=function(){function r(e,t){return yr(this,r),ir(this,r,[e,t])}return cr(r,dr),vr(r,[{key:"transform",value:function(r){var e,t,n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,a=null!==(e=null==o?void 0:o[this.fftSize])&&void 0!==e?e:Q("MDCT.transform: mdctBuffers[".concat(this.fftSize,"] is required")),i=null!==(t=null==a?void 0:a.real)&&void 0!==t?t:Q("MDCT.transform: mdctBuffers[".concat(this.fftSize,"].real is required")),u=null!==(n=null==a?void 0:a.imag)&&void 0!==n?n:Q("MDCT.transform: mdctBuffers[".concat(this.fftSize,"].imag is required")),f=this.quarterSize,c=3*f;i.fill(0),u.fill(0);for(var l=0;l<f;l+=2){var s=c+l,v=f+l,h=f-1-l,y=r[c-1-l]+r[s],d=r[v]-r[h],b=this.sinCosTable[l],p=this.sinCosTable[l+1];i[l>>1]=y*b+d*p,u[l>>1]=d*b-y*p}for(var m=f;m<this.halfSize;m+=2){var w=m>>1,g=m-f,k=f+m,S=5*f-1-m,A=r[c-1-m]-r[g],O=r[k]+r[S],M=this.sinCosTable[m],j=this.sinCosTable[m+1];i[w]=A*M+O*j,u[w]=O*M-A*j}or.fft(i,u);for(var B=new Float32Array(this.halfSize),F=0;F<this.fftSize;F++){var P=this.sinCosTable[2*F],T=this.sinCosTable[2*F+1],I=i[F],C=u[F];B[2*F]=-I*P-C*T,B[this.halfSize-1-2*F]=-I*T+C*P}return B}}])}(),pr=function(){function r(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return yr(this,r),ir(this,r,[e,t||e])}return cr(r,dr),vr(r,[{key:"transform",value:function(r){var e,t,n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,a=null!==(e=null==o?void 0:o[this.fftSize])&&void 0!==e?e:Q("IMDCT.transform: mdctBuffers[".concat(this.fftSize,"] is required")),i=null!==(t=null==a?void 0:a.real)&&void 0!==t?t:Q("IMDCT.transform: mdctBuffers[".concat(this.fftSize,"].real is required")),u=null!==(n=null==a?void 0:a.imag)&&void 0!==n?n:Q("IMDCT.transform: mdctBuffers[".concat(this.fftSize,"].imag is required")),f=this.quarterSize,c=3*f;i.fill(0),u.fill(0);for(var l=0;l<this.fftSize;l++){var s=2*l,v=-r[s],h=-r[this.halfSize-1-s],y=this.sinCosTable[s],d=this.sinCosTable[s+1];i[l]=h*d+v*y,u[l]=h*y-v*d}or.fft(i,u);for(var b=new Float32Array(this.size),p=0;p<this.fftSize/2;p++){var m=2*p,w=this.sinCosTable[m],g=this.sinCosTable[m+1],k=i[p],S=u[p],A=k*w+S*g,O=k*g-S*w;b[c-1-m]=A,b[c+m]=A,b[f+m]=O,b[f-1-m]=-O}for(var M=this.fftSize/2;M<this.fftSize;M++){var j=2*(M-this.fftSize/2)+f,B=2*M,F=this.sinCosTable[B],P=this.sinCosTable[B+1],T=i[M],I=u[M],C=T*F+I*P,x=T*P-I*F;b[c-1-j]=C,b[j-f]=-C,b[f+j]=x,b[5*f-1-j]=x}return b}}])}(),mr=new br(64,.5),wr=new br(l,.5),gr=new br(s,1),kr=new pr(64,512),Sr=new pr(l,2048),Ar=new pr(s,2048);function Or(r,e,t){for(var n=r.length,o=new Float32Array(2*n),a=0;a<n;a++){var i=t[a],u=t[2*n-1-a],f=r[a],c=e[n-1-a];o[a]=f*u-c*i,o[2*n-1-a]=f*i+c*u}return o}function Mr(r,e,t){var n=r.length,o=new Int32Array(n);if(0===t||0===e)return o.fill(0,0,n),o;for(var a=(1<<t-1)-1,i=a/j[e],u=a,f=-a,c=0;c<n;c++){var l=r[c]*i,s=l+(l>=0?.5:-.5)|0;o[c]=s>u?u:s<f?f:s}return o}function jr(r,e,t){if(0===t||0===e)return new Float32Array(r.length);for(var n=j[e],o=(1<<t-1)-1,a=new Float32Array(r.length),i=0;i<r.length;i++)a[i]=r[i]*n/o;return a}function Br(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=function(r,e){if(r){if("string"==typeof r)return Fr(r,e);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Fr(r,e):void 0}}(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var n=0,o=function(){};return{s:o,n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,u=!1;return{s:function(){t=t.call(r)},n:function(){var r=t.next();return i=r.done,r},e:function(r){u=!0,a=r},f:function(){try{i||null==t.return||t.return()}finally{if(u)throw a}}}}function Fr(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,n=Array(e);t<e;t++)n[t]=r[t];return n}var Pr=new Map;function Tr(r,e,t,n){for(var o=new Int32Array(t),a=new Float32Array(t),u=function(r){if(Pr.has(r))return Pr.get(r);var e=new Float64Array(64);if(1===r)e.set(j);else for(var t=0;t<64;t++)e[t]=Math.pow(j[t],r);return Pr.set(r,e),e}(n),f=0;f<t;f++){var c=0|e[f];if(0!==c){var l=xr(r[f],c);if(o[f]=l,l>0){var s=u[l];a[f]=2*s*c}}}var v,h=null,y=1/0,d=Br(i);try{for(d.s();!(v=d.n()).done;){var b=v.value;if(!(b>t)){var p=1656-10*b;if(!(p<0)){var m=Cr(b,e,p,u,o),w=Ir(b,t,e,m.wordLengths,m.scaleFactorIndices,u,a);w<y&&(y=w,h={bfuCount:b,allocation:m.wordLengths,scaleFactorIndices:m.scaleFactorIndices})}}}}catch(r){d.e(r)}finally{d.f()}if(!h){var g=i[0];return{bfuCount:g,allocation:new Int32Array(g),scaleFactorIndices:new Int32Array(52)}}return h}function Ir(r,e,t,n,o,a,i){for(var u=0,f=0;f<r;f++){var c=0|n[f],l=0|M[c];if(0!==l){var s=o[f];if(0!==s)u+=a[s]*B[l]*t[f]}else u+=i[f]}for(var v=r;v<e;v++)u+=i[v];return u}function Cr(r,e,t,n,o){for(var a=new Int32Array(r),i=new Int32Array(r),u=new Float32Array(r),f=0,c=0;c<r;c++){if(0!==(0|e[c])){var l=o[c];if(0!==l){var s=F[0];if(!(s<=0)){var v=n[l]*P[0];i[f]=c,u[f]=v/s,f++}}}}if(0===f)return{wordLengths:a,scaleFactorIndices:o};for(var h=(f>>1)-1;h>=0;h--)zr(i,u,h,f);for(;t>0&&f>0;){var y=i[0],d=0|a[y],b=0|e[y],p=F[d]*b;if(p>t||p<=0){var m=f-1;i[0]=i[m],u[0]=u[m],--f>0&&zr(i,u,0,f)}else{t-=p;var w=d+1;a[y]=w;var g=F[w];if(w<O&&g>0){var k=n[o[y]]*P[w];u[0]=k/g,zr(i,u,0,f)}else{var S=f-1;i[0]=i[S],u[0]=u[S],--f>0&&zr(i,u,0,f)}}}return{wordLengths:a,scaleFactorIndices:o}}function xr(r,e){for(var t=0,n=0;n<e;n++){var o=Math.abs(r[n]);o>t&&(t=o)}if(0===t)return 0;var a=Math.ceil(3*(Math.log2(t)+21));return Math.max(0,Math.min(63,a))}function zr(r,e,t,n){for(var o=t,a=r[o],i=e[o];;){var u=1+(o<<1),f=u+1,c=o,l=i;if(u<n&&e[u]>l&&(c=u,l=e[u]),f<n&&e[f]>l&&(c=f),c===o)break;r[o]=r[c],e[o]=e[c],o=c}r[o]=a,e[o]=i}function qr(r){return qr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},qr(r)}function Er(r,e){for(var t=0;t<e.length;t++){var n=e[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(r,Dr(n.key),n)}}function _r(r,e,t){return e&&Er(r.prototype,e),t&&Er(r,t),Object.defineProperty(r,"prototype",{writable:!1}),r}function Dr(r){var e=function(r,e){if("object"!=qr(r)||!r)return r;var t=r[Symbol.toPrimitive];if(void 0!==t){var n=t.call(r,e||"default");if("object"!=qr(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(r)}(r,"string");return"symbol"==qr(e)?e:e+""}var Ur=_r(function r(){!function(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r),this.transformBuffers={64:new Float32Array(64),128:new Float32Array(128),256:new Float32Array(256),512:new Float32Array(512)},this.qmfWorkBuffers={delay:{128:new Float32Array(174),256:new Float32Array(302),512:new Float32Array(558)},highBandDelay:{128:new Float32Array(167),256:new Float32Array(295)}},this.qmfDelays={lowBand:new Float32Array(h),midBand:new Float32Array(h),highBand:new Float32Array(39)},this.transientDetection=[new Float32Array(64),new Float32Array(64),new Float32Array(128)],this.mdctBuffers={16:{real:new Float32Array(16),imag:new Float32Array(16)},64:{real:new Float32Array(64),imag:new Float32Array(64)},128:{real:new Float32Array(128),imag:new Float32Array(128)}},this.mdctOverlap=[new Float32Array(32),new Float32Array(32),new Float32Array(32)],this.imdctOverlap=[new Float32Array(256),new Float32Array(256),new Float32Array(512)],this.reversalBuffers={32:new Float32Array(32),128:new Float32Array(128),256:new Float32Array(256)}});function Lr(r,e,t){if(!e)return!1;var n=function(r,e){var t=function(r,e){for(var t=0,n=0,o=0;o<r.length;o++){var a=Math.abs(r[o]),i=a-Math.abs(e[o]);i>0&&(t+=i),n+=a*a}var u=Math.sqrt(n)||1e-6;return t/u}(r,e),n=Hr(r),o=Hr(e),a=Math.abs(n-o),i=Wr(r),u=Wr(e),f=Math.abs(i-u),c=function(r,e){for(var t=0,n=0,o=0;o<r.length;o++)t+=r[o]*r[o],n+=e[o]*e[o];t=Math.max(t,1e-10),n=Math.max(n,1e-10);var a=10*Math.log10(t/n);return Math.max(0,a)}(r,e);return{spectralFlux:t,flatnessChange:a,hfChange:f,energyChange:c}}(r,e),o=function(r){var e=r.spectralFlux,t=r.flatnessChange,n=r.hfChange,o=r.energyChange,a=e,i=Math.sqrt(t),u=Math.log1p(10*n)/Math.log1p(10),f=Math.min(o/30,1);return(a+i+u+f)/4}(n);return o>t}function Hr(r){for(var e=0,t=0,n=0,o=0;o<r.length;o++){var a=Math.abs(r[o]);a>1e-10&&(e+=Math.log(a),t+=a,n++)}if(0===n)return 0;var i=Math.exp(e/n),u=t/n;return u>1e-10?i/u:0}function Wr(r){for(var e=Math.floor(r.length/2),t=0,n=0,o=0;o<e;o++)t+=r[o]*r[o];for(var a=e;a<r.length;a++)n+=r[a]*r[a];var i=t+n;return i>0?n/i:0}function Gr(r){var e,t=null!==(e=null==r?void 0:r.bufferPool)&&void 0!==e?e:Q("qmfAnalysisStage: bufferPool is required"),n=t.qmfDelays;return function(r){var e=Z(r,n.lowBand,t.qmfWorkBuffers);n.lowBand=e.newDelay;var o=Z(e.lowBand,n.midBand,t.qmfWorkBuffers);n.midBand=o.newDelay;var a=t.qmfWorkBuffers.highBandDelay[e.highBand.length];a.set(n.highBand),a.set(e.highBand,n.highBand.length);var i=a.slice(0,e.highBand.length);return n.highBand=a.slice(e.highBand.length),{bands:[o.lowBand,o.highBand,i]}}}function Nr(r){var e,t,n=null!==(e=null==r?void 0:r.bufferPool)&&void 0!==e?e:Q("blockSelectorStage: bufferPool is required"),o=null!==(t=null==r?void 0:r.options)&&void 0!==t?t:Q("blockSelectorStage: options is required");return function(r){var e,t=r.bands;if(o.fixedBlockModes)e=o.fixedBlockModes;else{var a=[128,128,256];e=t.map(function(r,e){var t=function(r,e){var t=new Float32Array(e),n=new Float32Array(e),o=Math.min(r.length,e);t.set(r.subarray(0,o)),or.fft(t,n);for(var a=new Float32Array(e/2),i=0;i<e/2;i++)a[i]=Math.sqrt(t[i]*t[i]+n[i]*n[i]);return a}(r,a[e]),i=Lr(t,n.transientDetection[e],o.transientThresholdLow);return n.transientDetection[e]=t,i*Math.max(e+1,2)})}return{bands:t,blockModes:e}}}function Vr(r){var e,t=null!==(e=null==r?void 0:r.bufferPool)&&void 0!==e?e:Q("mdctStage: bufferPool is required"),n=t.mdctOverlap,o=[wr,wr,gr];function a(r,e,t,n,a){var u=m[e];return 0===t?function(r,e,t,n,o,a){var u=2===e?s:l,f=a.transformBuffers[u];f.fill(0),f.set(o,t.windowStart),i(r,o,t.size),f.set(r,t.windowStart+32);var c=n.transform(f,a.mdctBuffers);e>0&&(c=Y(c,a.reversalBuffers));return c}(r,e,u,o[e],n,a):function(r,e,t,n,o){for(var a=1<<(256===t.size?3:2),u=new Float32Array(t.size),f=0;f<a;f++){var c=f*w,l=r.subarray(c,c+w),s=o.transformBuffers[64];s.fill(0),s.set(n,0),i(l,n,w),s.set(l,g);var v=mr.transform(s,o.mdctBuffers);e>0&&(v=Y(v,o.reversalBuffers)),u.set(v,c)}return u}(r,e,u,n,a)}function i(r,e,t){for(var n=t-g,o=0;o<g;o++){var a=r[n+o];e[o]=v[o]*a,r[n+o]=a*v[31-o]}}return function(r){var e=r.bands,o=r.blockModes,i=r.originalFrame,u=new Float32Array(512);return e.forEach(function(r,e){var i=a(r,e,o[e],n[e],t),f=function(r){return 0===r?0:1===r?128:256}(e);u.set(i,f)}),{bands:e,coefficients:u,blockModes:o,originalFrame:i}}}function Rr(r){var e,t=null!==(e=null==r?void 0:r.options)&&void 0!==e?e:Q("quantizationStage: options is required");return function(r){for(var e=r.coefficients,n=r.blockModes,o=function(r,e){for(var t=[],n=[],o=0,i=0,l=0;l<3;l++){for(var s=o,v=2===l?256:128,h=l<2?u[l]:a.length,y=0===e[l]?f:c;i<h;){var d=a[i],b=y[i]-s,p=b+d,m=new Float32Array(d);if(b>=0&&p<=v)m.set(r.subarray(s+b,s+p));else if(m.fill(0),b<v&&p>0){var w=Math.max(0,b),g=Math.min(v,p);m.set(r.subarray(s+w,s+g),Math.max(0,-b))}t.push(m),n.push(d),i++}o+=v}return{bfuData:t,bfuSizes:n,bfuCount:i}}(e,n),i=o.bfuData,l=o.bfuSizes,s=Tr(i,l,o.bfuCount,t.allocationBias),v=s.bfuCount,h=s.allocation,y=s.scaleFactorIndices,d=h.slice(0,v),b=y.slice(0,v),p=[],m=0;m<v;m++){var w=i[m].subarray(0,l[m]),g=d[m],k=M[g],S=Mr(w,y[m],k);p.push(S)}return{nBfu:v,scaleFactorIndices:b,wordLengthIndices:d,quantizedCoefficients:p,blockModes:n}}}function $r(){return X({options:arguments.length>0&&void 0!==arguments[0]?arguments[0]:new K,bufferPool:arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Ur},Gr,Nr,Vr,Rr)}function Jr(){return function(r){for(var e=new Float32Array(512),t=r.nBfu,n=r.scaleFactorIndices,o=r.wordLengthIndices,a=r.quantizedCoefficients,i=r.blockModes,l=0;l<t;l++){var s=M[o[l]],v=0;l>=u[0]&&(v=1),l>=u[1]&&(v=2);var h=0===i[v]?f[l]:c[l];if(s>0){var y=jr(a[l],n[l],s);e.set(y,h)}}return{coefficients:e,blockModes:i}}}function Kr(r){var e,t=null!==(e=null==r?void 0:r.bufferPool)&&void 0!==e?e:Q("imdctStage: bufferPool is required"),n=t.imdctOverlap,o=[Sr,Sr,Ar];function a(r,e,t,n,a,i){return 0===t?function(r,e,t,n,o,a){var i=r;e>0&&(i=Y(r,n.reversalBuffers));var u=a.transform(i,n.mdctBuffers),f=u.length/4,c=n.transformBuffers[512];c.fill(0);for(var l=0;l<o.size;l++)c[l]=u[f+l];var s=t.slice(2*o.size-k,2*o.size),h=Or(s.slice(0,k),c.slice(0,k),v);t.set(h,0);for(var y=0;y<k;y++)s[y]=c[k+y];for(var d=2===e?240:112,b=0;b<d;b++)t[32+b]=c[k+b];for(var p=0;p<k;p++)t[2*o.size-k+p]=c[o.size-k+p];return t.slice(0,o.size)}(r,e,n,a,i,o[e]):function(r,e,t,n,o){var a=1<<(256===o.size?3:2),i=n.transformBuffers[512];i.fill(0);for(var u=t.slice(2*o.size-k,2*o.size),f=0,c=0,l=0;l<a;l++){var s=r.slice(c,c+w);e>0&&(s=Y(s,n.reversalBuffers));for(var h=kr.transform(s,n.mdctBuffers),y=h.length/4,d=0;d<w;d++)i[f+d]=h[y+d];var b=Or(u.slice(0,k),i.slice(f,f+k),v);t.set(b,f);for(var p=0;p<k;p++)u[p]=i[f+k+p];f+=w,c+=w}for(var m=0;m<k;m++)t[2*o.size-k+m]=i[o.size-k+m];return t.slice(0,o.size)}(r,e,n,a,i)}return function(r){var e=r.coefficients,o=r.blockModes;return m.map(function(r,i){var u=function(r,e){var t=[0,128,256,512];return r.subarray(t[e],t[e+1])}(e,i);return a(u,i,o[i],n[i],t,r)})}}function Qr(r){var e,t=null!==(e=null==r?void 0:r.bufferPool)&&void 0!==e?e:Q("qmfSynthesisStage: bufferPool is required"),n=t.qmfDelays;return function(r){var e=t.qmfWorkBuffers.highBandDelay[r[2].length];e.set(n.highBand),e.set(r[2],n.highBand.length);var o=e.slice(0,2*r[0].length);n.highBand=e.slice(2*r[0].length);var a=rr(r[0],r[1],n.midBand,t.qmfWorkBuffers);n.midBand=a.newDelay;var i=rr(a.output,o,n.lowBand,t.qmfWorkBuffers);return n.lowBand=i.newDelay,i.output}}function Xr(){return X({bufferPool:arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Ur},Jr,Kr,Qr)}function Yr(r){return Yr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Yr(r)}function Zr(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=ne(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var n=0,o=function(){};return{s:o,n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,u=!1;return{s:function(){t=t.call(r)},n:function(){var r=t.next();return i=r.done,r},e:function(r){u=!0,a=r},f:function(){try{i||null==t.return||t.return()}finally{if(u)throw a}}}}function re(r,e,t,n,o,a,i){try{var u=r[a](i),f=u.value}catch(r){return void t(r)}u.done?e(f):Promise.resolve(f).then(n,o)}function ee(r){return function(){var e=this,t=arguments;return new Promise(function(n,o){var a=r.apply(e,t);function i(r){re(a,n,o,i,u,"next",r)}function u(r){re(a,n,o,i,u,"throw",r)}i(void 0)})}}function te(r,e){return function(r){if(Array.isArray(r))return r}(r)||function(r,e){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var n,o,a,i,u=[],f=!0,c=!1;try{if(a=(t=t.call(r)).next,0===e){if(Object(t)!==t)return;f=!1}else for(;!(f=(n=a.call(t)).done)&&(u.push(n.value),u.length!==e);f=!0);}catch(r){c=!0,o=r}finally{try{if(!f&&null!=t.return&&(i=t.return(),Object(i)!==i))return}finally{if(c)throw o}}return u}}(r,e)||ne(r,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ne(r,e){if(r){if("string"==typeof r)return oe(r,e);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?oe(r,e):void 0}}function oe(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,n=Array(e);t<e;t++)n[t]=r[t];return n}function ae(r){if(null!=r){var e=r["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],t=0;if(e)return e.call(r);if("function"==typeof r.next)return r;if(!isNaN(r.length))return{next:function(){return r&&t>=r.length&&(r=void 0),{value:r&&r[t++],done:!r}}}}throw new TypeError(Yr(r)+" is not iterable")}function ie(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var r,e,t="function"==typeof Symbol?Symbol:{},n=t.iterator||"@@iterator",o=t.toStringTag||"@@toStringTag";function a(t,n,o,a){var f=n&&n.prototype instanceof u?n:u,c=Object.create(f.prototype);return ue(c,"_invoke",function(t,n,o){var a,u,f,c=0,l=o||[],s=!1,v={p:0,n:0,v:r,a:h,f:h.bind(r,4),d:function(e,t){return a=e,u=0,f=r,v.n=t,i}};function h(t,n){for(u=t,f=n,e=0;!s&&c&&!o&&e<l.length;e++){var o,a=l[e],h=v.p,y=a[2];t>3?(o=y===n)&&(f=a[(u=a[4])?5:(u=3,3)],a[4]=a[5]=r):a[0]<=h&&((o=t<2&&h<a[1])?(u=0,v.v=n,v.n=a[1]):h<y&&(o=t<3||a[0]>n||n>y)&&(a[4]=t,a[5]=n,v.n=y,u=0))}if(o||t>1)return i;throw s=!0,n}return function(o,l,y){if(c>1)throw TypeError("Generator is already running");for(s&&1===l&&h(l,y),u=l,f=y;(e=u<2?r:f)||!s;){a||(u?u<3?(u>1&&(v.n=-1),h(u,f)):v.n=f:v.v=f);try{if(c=2,a){if(u||(o="next"),e=a[o]){if(!(e=e.call(a,f)))throw TypeError("iterator result is not an object");if(!e.done)return e;f=e.value,u<2&&(u=0)}else 1===u&&(e=a.return)&&e.call(a),u<2&&(f=TypeError("The iterator does not provide a '"+o+"' method"),u=1);a=r}else if((e=(s=v.n<0)?f:t.call(n,v))!==i)break}catch(e){a=r,u=1,f=e}finally{c=1}}return{value:e,done:s}}}(t,o,a),!0),c}var i={};function u(){}function f(){}function c(){}e=Object.getPrototypeOf;var l=[][n]?e(e([][n]())):(ue(e={},n,function(){return this}),e),s=c.prototype=u.prototype=Object.create(l);function v(r){return Object.setPrototypeOf?Object.setPrototypeOf(r,c):(r.__proto__=c,ue(r,o,"GeneratorFunction")),r.prototype=Object.create(s),r}return f.prototype=c,ue(s,"constructor",c),ue(c,"constructor",f),f.displayName="GeneratorFunction",ue(c,o,"GeneratorFunction"),ue(s),ue(s,o,"Generator"),ue(s,n,function(){return this}),ue(s,"toString",function(){return"[object Generator]"}),(ie=function(){return{w:a,m:v}})()}function ue(r,e,t,n){var o=Object.defineProperty;try{o({},"",{})}catch(r){o=0}ue=function(r,e,t,n){if(e)o?o(r,e,{value:t,enumerable:!n,configurable:!n,writable:!n}):r[e]=t;else{var a=function(e,t){ue(r,e,function(r){return this._invoke(e,t,r)})};a("next",0),a("throw",1),a("return",2)}},ue(r,e,t,n)}function fe(r,e){for(var t=0;t<e.length;t++){var n=e[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(r,ce(n.key),n)}}function ce(r){var e=function(r,e){if("object"!=Yr(r)||!r)return r;var t=r[Symbol.toPrimitive];if(void 0!==t){var n=t.call(r,e||"default");if("object"!=Yr(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(r)}(r,"string");return"symbol"==Yr(e)?e:e+""}function le(r){return function(){return new se(r.apply(this,arguments))}}function se(r){var e,t;function n(e,t){try{var a=r[e](t),i=a.value,u=i instanceof ye;Promise.resolve(u?i.v:i).then(function(t){if(u){var f="return"===e?"return":"next";if(!i.k||t.done)return n(f,t);t=r[f](t).value}o(a.done?"return":"normal",t)},function(r){n("throw",r)})}catch(r){o("throw",r)}}function o(r,o){switch(r){case"return":e.resolve({value:o,done:!0});break;case"throw":e.reject(o);break;default:e.resolve({value:o,done:!1})}(e=e.next)?n(e.key,e.arg):t=null}this._invoke=function(r,o){return new Promise(function(a,i){var u={key:r,arg:o,resolve:a,reject:i,next:null};t?t=t.next=u:(e=t=u,n(r,o))})},"function"!=typeof r.return&&(this.return=void 0)}function ve(r){return new ye(r,0)}function he(r){var e={},t=!1;function n(e,n){return t=!0,n=new Promise(function(t){t(r[e](n))}),{done:!1,value:new ye(n,1)}}return e["undefined"!=typeof Symbol&&Symbol.iterator||"@@iterator"]=function(){return this},e.next=function(r){return t?(t=!1,r):n("next",r)},"function"==typeof r.throw&&(e.throw=function(r){if(t)throw t=!1,r;return n("throw",r)}),"function"==typeof r.return&&(e.return=function(r){return t?(t=!1,r):n("return",r)}),e}function ye(r,e){this.v=r,this.k=e}function de(r){var e,t,n,o=2;for("undefined"!=typeof Symbol&&(t=Symbol.asyncIterator,n=Symbol.iterator);o--;){if(t&&null!=(e=r[t]))return e.call(r);if(n&&null!=(e=r[n]))return new be(e.call(r));t="@@asyncIterator",n="@@iterator"}throw new TypeError("Object is not async iterable")}function be(r){function e(r){if(Object(r)!==r)return Promise.reject(new TypeError(r+" is not an object."));var e=r.done;return Promise.resolve(r.value).then(function(r){return{value:r,done:e}})}return be=function(r){this.s=r,this.n=r.next},be.prototype={s:null,n:null,next:function(){return e(this.n.apply(this.s,arguments))},return:function(r){var t=this.s.return;return void 0===t?Promise.resolve({value:r,done:!0}):e(t.apply(this.s,arguments))},throw:function(r){var t=this.s.return;return void 0===t?Promise.reject(r):e(t.apply(this.s,arguments))}},new be(r)}se.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},se.prototype.next=function(r){return this._invoke("next",r)},se.prototype.throw=function(r){return this._invoke("throw",r)},se.prototype.return=function(r){return this._invoke("return",r)};var pe=function(){function r(){!function(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r)}return t=r,a=null,i=[{key:"encodeStream",value:function(e){return le(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return ie().m(function n(){var o,a,i,u;return ie().w(function(n){for(;;)switch(n.n){case 0:if(o=t.channelCount,a=void 0===o?1:o,i=t.onProgress,u=t.encoderOptions,1!==a){n.n=2;break}return n.d(ae(he(de(r._encodeMonoStream(e,i,u)))),1);case 1:case 3:n.n=5;break;case 2:if(2!==a){n.n=4;break}return n.d(ae(he(de(r._encodeStereoStream(e,i,u)))),3);case 4:throw new Error("Unsupported channel count: ".concat(a));case 5:return n.a(2)}},n)})()}).apply(this,arguments)}},{key:"_encodeMonoStream",value:function(r,e,t){return le(ie().m(function n(){var o,a,i,u,f,c,l,s,v,h,y;return ie().w(function(n){for(;;)switch(n.n){case 0:o=t||new K,a=$r(o),i=0,u=!1,f=!1,n.p=1,l=de(r);case 2:return n.n=3,ve(l.next());case 3:if(!(u=!(s=n.v).done)){n.n=6;break}return v=s.value,h=a(v),n.n=4,h;case 4:e&&e(i++);case 5:u=!1,n.n=2;break;case 6:n.n=8;break;case 7:n.p=7,y=n.v,f=!0,c=y;case 8:if(n.p=8,n.p=9,!u||null==l.return){n.n=10;break}return n.n=10,ve(l.return());case 10:if(n.p=10,!f){n.n=11;break}throw c;case 11:return n.f(10);case 12:return n.f(8);case 13:return n.a(2)}},n,null,[[9,,10,12],[1,7,8,13]])}))()}},{key:"_encodeStereoStream",value:function(r,e,t){return le(ie().m(function n(){var o,a,i,u,f,c,l,s,v,h,y,d,b,p,m;return ie().w(function(n){for(;;)switch(n.n){case 0:o=t||new K,a=$r(o),i=$r(o),u=0,f=!1,c=!1,n.p=1,s=de(r);case 2:return n.n=3,ve(s.next());case 3:if(!(f=!(v=n.v).done)){n.n=7;break}return h=te(v.value,2),y=h[0],d=h[1],b=a(y),p=i(d),n.n=4,b;case 4:return n.n=5,p;case 5:e&&e(u++);case 6:f=!1,n.n=2;break;case 7:n.n=9;break;case 8:n.p=8,m=n.v,c=!0,l=m;case 9:if(n.p=9,n.p=10,!f||null==s.return){n.n=11;break}return n.n=11,ve(s.return());case 11:if(n.p=11,!c){n.n=12;break}throw l;case 12:return n.f(11);case 13:return n.f(9);case 14:return n.a(2)}},n,null,[[10,,11,13],[1,8,9,14]])}))()}},{key:"decodeStream",value:function(e){return le(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return ie().m(function n(){var o,a,i;return ie().w(function(n){for(;;)switch(n.n){case 0:if(o=t.channelCount,a=void 0===o?1:o,i=t.onProgress,1!==a){n.n=2;break}return n.d(ae(he(de(r._decodeMonoStream(e,i)))),1);case 1:case 3:n.n=5;break;case 2:if(2!==a){n.n=4;break}return n.d(ae(he(de(r._decodeStereoStream(e,i)))),3);case 4:throw new Error("Unsupported channel count: ".concat(a));case 5:return n.a(2)}},n)})()}).apply(this,arguments)}},{key:"_decodeMonoStream",value:function(r,e){return le(ie().m(function t(){var n,o,a;return ie().w(function(t){for(;;)switch(t.n){case 0:return n=Xr(),o=0,a=function(){var t=le(ie().m(function t(){var a,i,u,f,c,l,s,v;return ie().w(function(t){for(;;)switch(t.n){case 0:a=!1,i=!1,t.p=1,f=de(r);case 2:return t.n=3,ve(f.next());case 3:if(!(a=!(c=t.v).done)){t.n=6;break}return l=c.value,s=n(l),t.n=4,s;case 4:e&&e(o++);case 5:a=!1,t.n=2;break;case 6:t.n=8;break;case 7:t.p=7,v=t.v,i=!0,u=v;case 8:if(t.p=8,t.p=9,!a||null==f.return){t.n=10;break}return t.n=10,ve(f.return());case 10:if(t.p=10,!i){t.n=11;break}throw u;case 11:return t.f(10);case 12:return t.f(8);case 13:return t.a(2)}},t,null,[[9,,10,12],[1,7,8,13]])}));return function(){return t.apply(this,arguments)}}(),t.d(ae(he(de(a()))),1);case 1:return t.a(2)}},t)}))()}},{key:"_decodeStereoStream",value:function(e,t){return le(ie().m(function n(){var o,a,i,u;return ie().w(function(n){for(;;)switch(n.n){case 0:return o=Xr(),a=Xr(),i=0,u=function(){var n=le(ie().m(function n(){var u,f,c,l,s,v,h,y,d,b,p,m,w,g,k;return ie().w(function(n){for(;;)switch(n.n){case 0:u=null,f=!0,c=!1,l=!1,n.p=1,v=de(e);case 2:return n.n=3,ve(v.next());case 3:if(!(c=!(h=n.v).done)){n.n=8;break}if(y=h.value,!f){n.n=4;break}u=y,n.n=6;break;case 4:return d=y,b=o(u),p=a(d),n.n=5,[b,p];case 5:t&&t(i++);case 6:f=!f;case 7:c=!1,n.n=2;break;case 8:n.n=10;break;case 9:n.p=9,k=n.v,l=!0,s=k;case 10:if(n.p=10,n.p=11,!c||null==v.return){n.n=12;break}return n.n=12,ve(v.return());case 12:if(n.p=12,!l){n.n=13;break}throw s;case 13:return n.f(12);case 14:return n.f(10);case 15:if(f||!u){n.n=17;break}return m=r._createDummyFrame(),w=o(u),g=a(m),n.n=16,[w,g];case 16:t&&t(i++);case 17:return n.a(2)}},n,null,[[11,,12,14],[1,9,10,15]])}));return function(){return n.apply(this,arguments)}}(),n.d(ae(he(de(u()))),1);case 1:return n.a(2)}},n)}))()}},{key:"frameBufferToFrames",value:function(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:512;return ie().m(function t(){var n,o,a,i,u,f,c,l,s,v,h,y,d,b,p,m;return ie().w(function(t){for(;;)switch(t.n){case 0:if(1!==(n=r.length)){t.n=4;break}o=te(r,1),a=o[0],i=0;case 1:if(!(i<a.length)){t.n=3;break}for(u=new Float32Array(e),f=Math.min(i+e,a.length),c=0;c<f-i;c++)u[c]=a[i+c];return t.n=2,u;case 2:i+=e,t.n=1;break;case 3:t.n=9;break;case 4:if(2!==n){t.n=8;break}l=te(r,2),s=l[0],v=l[1],h=Math.max(s.length,v.length),y=0;case 5:if(!(y<h)){t.n=7;break}for(d=new Float32Array(e),b=new Float32Array(e),p=Math.min(y+e,h),m=0;m<p-y;m++)d[m]=y+m<s.length?s[y+m]:0,b[m]=y+m<v.length?v[y+m]:0;return t.n=6,[d,b];case 6:y+=e,t.n=5;break;case 7:t.n=9;break;case 8:throw new Error("Unsupported channel count: ".concat(n));case 9:return t.a(2)}},t)})()}},{key:"collectFrames",value:(c=ee(ie().m(function r(e){var t,n,o,a,i,u,f,c;return ie().w(function(r){for(;;)switch(r.n){case 0:t=[],n=!1,o=!1,r.p=1,i=de(e);case 2:return r.n=3,i.next();case 3:if(!(n=!(u=r.v).done)){r.n=5;break}f=u.value,t.push(f);case 4:n=!1,r.n=2;break;case 5:r.n=7;break;case 6:r.p=6,c=r.v,o=!0,a=c;case 7:if(r.p=7,r.p=8,!n||null==i.return){r.n=9;break}return r.n=9,i.return();case 9:if(r.p=9,!o){r.n=10;break}throw a;case 10:return r.f(9);case 11:return r.f(7);case 12:return r.a(2,t)}},r,null,[[8,,9,11],[1,6,7,12]])})),function(r){return c.apply(this,arguments)})},{key:"_createDummyFrame",value:function(){return{nBfu:0,blockModes:[0,0,0],scaleFactorIndices:new Int32Array(0),wordLengthIndices:new Int32Array(0),quantizedCoefficients:[]}}},{key:"createAeaBlob",value:(f=ee(ie().m(function r(e){var t,n,o,a,i,u,f,c,l,s,v,h,y,d,b,p,m,w,g,k,S=arguments;return ie().w(function(r){for(;;)switch(r.n){case 0:n=(t=S.length>1&&void 0!==S[1]?S[1]:{}).title,o=void 0===n?"encoded by atrac1.js":n,a=t.channelCount,i=void 0===a?1:a,u=[],f=!1,c=!1,r.p=1,s=de(e);case 2:return r.n=3,s.next();case 3:if(!(f=!(v=r.v).done)){r.n=5;break}h=v.value,u.push(D(h));case 4:f=!1,r.n=2;break;case 5:r.n=7;break;case 6:r.p=6,k=r.v,c=!0,l=k;case 7:if(r.p=7,r.p=8,!f||null==s.return){r.n=9;break}return r.n=9,s.return();case 9:if(r.p=9,!c){r.n=10;break}throw l;case 10:return r.f(9);case 11:return r.f(7);case 12:for(y=L.createHeader(o,u.length,i),d=y.length+u.reduce(function(r,e){return r+e.length},0),(b=new Uint8Array(d)).set(y,0),p=y.length,m=0,w=u;m<w.length;m++)g=w[m],b.set(g,p),p+=g.length;return r.a(2,new Blob([b],{type:"application/octet-stream"}))}},r,null,[[8,,9,11],[1,6,7,12]])})),function(r){return f.apply(this,arguments)})},{key:"createWavBlob",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e,a=Array.isArray(t)?t:[t];if(1===n)return r._createMonoWavBlob(a,o);if(2===n)return r._createStereoWavBlob(a,o);throw new Error("Unsupported channel count: ".concat(n))}},{key:"_createMonoWavBlob",value:function(e,t){var n=e.reduce(function(r,e){return r+e.length},0),o=new ArrayBuffer(44+2*n),a=new DataView(o);r._writeWavHeader(a,n,1,t);var i,u=44,f=Zr(e);try{for(f.s();!(i=f.n()).done;)for(var c=i.value,l=0;l<c.length;l++){var s=Math.max(-1,Math.min(1,c[l]));a.setInt16(u,s<0?s*A:s*S,!0),u+=2}}catch(r){f.e(r)}finally{f.f()}return new Blob([o],{type:"audio/wav"})}},{key:"_createStereoWavBlob",value:function(e,t){var n=e.reduce(function(r,e){var t=te(e,2),n=t[0],o=t[1];return r+Math.max(n.length,o.length)},0),o=new ArrayBuffer(44+2*n*2),a=new DataView(o);r._writeWavHeader(a,n,2,t);var i,u=44,f=Zr(e);try{for(f.s();!(i=f.n()).done;)for(var c=te(i.value,2),l=c[0],s=c[1],v=Math.max(l.length,s.length),h=0;h<v;h++){var y=h<l.length?l[h]:0,d=h<s.length?s[h]:0,b=Math.max(-1,Math.min(1,y)),p=Math.max(-1,Math.min(1,d));a.setInt16(u,b<0?b*A:b*S,!0),u+=2,a.setInt16(u,p<0?p*A:p*S,!0),u+=2}}catch(r){f.e(r)}finally{f.f()}return new Blob([o],{type:"audio/wav"})}},{key:"_writeWavHeader",value:function(r,e,t,n){var o=n*t*2,a=2*t,i=e*a,u=36+i,f=0,c=function(e,t){for(var n=0;n<t.length;n++)r.setUint8(e+n,t.charCodeAt(n))};c(f,"RIFF"),f+=4,r.setUint32(f,u,!0),c(f+=4,"WAVE"),c(f+=4,"fmt "),f+=4,r.setUint32(f,16,!0),f+=4,r.setUint16(f,1,!0),f+=2,r.setUint16(f,t,!0),f+=2,r.setUint32(f,n,!0),f+=4,r.setUint32(f,o,!0),f+=4,r.setUint16(f,a,!0),f+=2,r.setUint16(f,16,!0),c(f+=2,"data"),f+=4,r.setUint32(f,i,!0)}},{key:"parseAeaBlob",value:(u=ee(ie().m(function r(e){var t,a,i,u,f,c;return ie().w(function(r){for(;;)switch(r.n){case 0:return r.n=1,e.arrayBuffer();case 1:for(t=r.v,a=new Uint8Array(t.slice(0,n)),i=L.parseHeader(a),u=[],f=n;f<t.byteLength;f+=o)(c=new Uint8Array(t.slice(f,f+o))).length===o&&u.push(c);return r.a(2,{info:i,frameData:u})}},r)})),function(r){return u.apply(this,arguments)})},{key:"deserializedFrameStream",value:ie().m(function r(e){var t,n,o,a;return ie().w(function(r){for(;;)switch(r.n){case 0:t=Zr(e),r.p=1,t.s();case 2:if((n=t.n()).done){r.n=4;break}return o=n.value,r.n=3,U(o);case 3:r.n=2;break;case 4:r.n=6;break;case 5:r.p=5,a=r.v,t.e(a);case 6:return r.p=6,t.f(),r.f(6);case 7:return r.a(2)}},r,null,[[1,5,6,7]])})},{key:"assemblePcmFrames",value:function(r,e){if(1===e){var t,n=r.reduce(function(r,e){return r+e.length},0),o=new Float32Array(n),a=0,i=Zr(r);try{for(i.s();!(t=i.n()).done;){var u=t.value;o.set(u,a),a+=u.length}}catch(r){i.e(r)}finally{i.f()}return o}if(2===e){var f,c=r.reduce(function(r,e){var t=te(e,2),n=t[0],o=t[1];return r+Math.max(n.length,o.length)},0),l=new Float32Array(2*c),s=0,v=Zr(r);try{for(v.s();!(f=v.n()).done;)for(var h=te(f.value,2),y=h[0],d=h[1],b=Math.max(y.length,d.length),p=0;p<b;p++)l[2*s]=p<y.length?y[p]:0,l[2*s+1]=p<d.length?d[p]:0,s++}catch(r){v.e(r)}finally{v.f()}return l}throw new Error("Unsupported channel count: ".concat(e))}}],a&&fe(t.prototype,a),i&&fe(t,i),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,a,i,u,f,c}();function me(r){return me="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},me(r)}function we(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})),t.push.apply(t,n)}return t}function ge(r){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?we(Object(t),!0).forEach(function(e){ke(r,e,t[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):we(Object(t)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(t,e))})}return r}function ke(r,e,t){return(e=function(r){var e=function(r,e){if("object"!=me(r)||!r)return r;var t=r[Symbol.toPrimitive];if(void 0!==t){var n=t.call(r,e||"default");if("object"!=me(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(r)}(r,"string");return"symbol"==me(e)?e:e+""}(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function Se(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var r,e,t="function"==typeof Symbol?Symbol:{},n=t.iterator||"@@iterator",o=t.toStringTag||"@@toStringTag";function a(t,n,o,a){var f=n&&n.prototype instanceof u?n:u,c=Object.create(f.prototype);return Ae(c,"_invoke",function(t,n,o){var a,u,f,c=0,l=o||[],s=!1,v={p:0,n:0,v:r,a:h,f:h.bind(r,4),d:function(e,t){return a=e,u=0,f=r,v.n=t,i}};function h(t,n){for(u=t,f=n,e=0;!s&&c&&!o&&e<l.length;e++){var o,a=l[e],h=v.p,y=a[2];t>3?(o=y===n)&&(f=a[(u=a[4])?5:(u=3,3)],a[4]=a[5]=r):a[0]<=h&&((o=t<2&&h<a[1])?(u=0,v.v=n,v.n=a[1]):h<y&&(o=t<3||a[0]>n||n>y)&&(a[4]=t,a[5]=n,v.n=y,u=0))}if(o||t>1)return i;throw s=!0,n}return function(o,l,y){if(c>1)throw TypeError("Generator is already running");for(s&&1===l&&h(l,y),u=l,f=y;(e=u<2?r:f)||!s;){a||(u?u<3?(u>1&&(v.n=-1),h(u,f)):v.n=f:v.v=f);try{if(c=2,a){if(u||(o="next"),e=a[o]){if(!(e=e.call(a,f)))throw TypeError("iterator result is not an object");if(!e.done)return e;f=e.value,u<2&&(u=0)}else 1===u&&(e=a.return)&&e.call(a),u<2&&(f=TypeError("The iterator does not provide a '"+o+"' method"),u=1);a=r}else if((e=(s=v.n<0)?f:t.call(n,v))!==i)break}catch(e){a=r,u=1,f=e}finally{c=1}}return{value:e,done:s}}}(t,o,a),!0),c}var i={};function u(){}function f(){}function c(){}e=Object.getPrototypeOf;var l=[][n]?e(e([][n]())):(Ae(e={},n,function(){return this}),e),s=c.prototype=u.prototype=Object.create(l);function v(r){return Object.setPrototypeOf?Object.setPrototypeOf(r,c):(r.__proto__=c,Ae(r,o,"GeneratorFunction")),r.prototype=Object.create(s),r}return f.prototype=c,Ae(s,"constructor",c),Ae(c,"constructor",f),f.displayName="GeneratorFunction",Ae(c,o,"GeneratorFunction"),Ae(s),Ae(s,o,"Generator"),Ae(s,n,function(){return this}),Ae(s,"toString",function(){return"[object Generator]"}),(Se=function(){return{w:a,m:v}})()}function Ae(r,e,t,n){var o=Object.defineProperty;try{o({},"",{})}catch(r){o=0}Ae=function(r,e,t,n){if(e)o?o(r,e,{value:t,enumerable:!n,configurable:!n,writable:!n}):r[e]=t;else{var a=function(e,t){Ae(r,e,function(r){return this._invoke(e,t,r)})};a("next",0),a("throw",1),a("return",2)}},Ae(r,e,t,n)}function Oe(r,e,t,n,o,a,i){try{var u=r[a](i),f=u.value}catch(r){return void t(r)}u.done?e(f):Promise.resolve(f).then(n,o)}function Me(r){return function(){var e=this,t=arguments;return new Promise(function(n,o){var a=r.apply(e,t);function i(r){Oe(a,n,o,i,u,"next",r)}function u(r){Oe(a,n,o,i,u,"throw",r)}i(void 0)})}}function je(r,e,t){return Be.apply(this,arguments)}function Be(){return(Be=Me(Se().m(function r(e,t,n){var o,a,i,u,f,c,l;return Se().w(function(r){for(;;)switch(r.n){case 0:return n=null!=n?n:"encoded by carta1",r.p=1,o=pe.frameBufferToFrames(e),a=e.length,i=new K(t),u=pe.encodeStream(o,{channelCount:a,encoderOptions:i}),r.n=2,pe.collectFrames(u);case 2:return f=r.v,r.n=3,pe.createAeaBlob(f,{title:n,channelCount:a});case 3:return c=r.v,r.a(2,{aeaBlob:c});case 4:throw r.p=4,l=r.v,console.error("Worker encode error:",l),l;case 5:return r.a(2)}},r,null,[[1,4]])}))).apply(this,arguments)}function Fe(){return(new K).toObject()}function Pe(r){return Te.apply(this,arguments)}function Te(){return(Te=Me(Se().m(function r(t){var n,o,a,i,u,f,c,l,s;return Se().w(function(r){for(;;)switch(r.n){case 0:return n=t.header,o=t.aeaData,(a=t.info)?i=ge({sampleRate:e},a):n?(u=L.parseHeader(n),i=ge({sampleRate:e},u)):i={channelCount:2,sampleRate:e},f=pe.deserializedFrameStream(o),c=pe.decodeStream(f,{channelCount:i.channelCount}),r.n=1,pe.collectFrames(c);case 1:return l=r.v,s=pe.createWavBlob(l,i.channelCount,i.sampleRate),r.a(2,{wavBlob:s,info:i})}},r)}))).apply(this,arguments)}self.onmessage=function(){var r=Me(Se().m(function r(e){var t,n,o,a,i,u,f,c,l,s,v;return Se().w(function(r){for(;;)switch(r.n){case 0:t=e.data,n=t.jobId,o=t.type,a=t.pcmData,i=t.aea,u=t.options,f=t.title,c=t.blob,r.p=1,s=o,r.n="encode"===s?2:"decode"===s?4:"parseAea"===s?6:"getEncoderOptions"===s?8:9;break;case 2:return r.n=3,je(a,u,f);case 3:return l=r.v,r.a(3,10);case 4:return r.n=5,Pe(i);case 5:return l=r.v,r.a(3,10);case 6:return r.n=7,pe.parseAeaBlob(c);case 7:return l=r.v,r.a(3,10);case 8:return l=Fe(),r.a(3,10);case 9:throw new Error("Unknown worker message type: ".concat(o));case 10:self.postMessage({jobId:n,result:l}),r.n=12;break;case 11:r.p=11,v=r.v,console.error("Worker error:",v),self.postMessage({jobId:n,error:v.message});case 12:return r.a(2)}},r,null,[[1,11]])}));return function(e){return r.apply(this,arguments)}}();var Ie=self;for(var Ce in r)Ie[Ce]=r[Ce];r.__esModule&&Object.defineProperty(Ie,"__esModule",{value:!0});
2
2
  //# sourceMappingURL=carta1-worker.min.js.map