carta1 1.1.1 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -59,11 +59,11 @@ export function dequantizationStage() {
59
59
  * @param {Array<Int32Array>} frameData.quantizedCoefficients - Quantized coefficient data
60
60
  * @param {Array<number>} frameData.blockModes - Block modes for each band
61
61
  * @returns {Object} Dequantization results
62
- * @returns {Float32Array} returns.coefficients - Reconstructed MDCT coefficients (512 samples)
62
+ * @returns {Float64Array} returns.coefficients - Reconstructed MDCT coefficients (512 samples)
63
63
  * @returns {Array<number>} returns.blockModes - Block modes for each band
64
64
  */
65
65
  return (frameData) => {
66
- const coefficients = new Float32Array(512)
66
+ const coefficients = new Float64Array(512)
67
67
  const {
68
68
  nBfu,
69
69
  scaleFactorIndices,
@@ -123,13 +123,13 @@ export function imdctStage(context) {
123
123
 
124
124
  /**
125
125
  * Inverse transform a single frequency band.
126
- * @param {Float32Array} coeffs
126
+ * @param {Float64Array} coeffs
127
127
  * @param {number} bandIndex
128
128
  * @param {number} blockMode
129
- * @param {Float32Array} overlapBuffer
129
+ * @param {Float64Array} overlapBuffer
130
130
  * @param {Object} bufferPool
131
131
  * @param {Object} config
132
- * @returns {Float32Array}
132
+ * @returns {Float64Array}
133
133
  */
134
134
  function transformBand(
135
135
  coeffs,
@@ -164,13 +164,13 @@ export function imdctStage(context) {
164
164
 
165
165
  /**
166
166
  * Inverse transform using long block.
167
- * @param {Float32Array} coeffs
167
+ * @param {Float64Array} coeffs
168
168
  * @param {number} bandIndex
169
- * @param {Float32Array} overlapBuffer
169
+ * @param {Float64Array} overlapBuffer
170
170
  * @param {Object} bufferPool
171
171
  * @param {Object} config
172
172
  * @param {Object} transformFunc
173
- * @returns {Float32Array}
173
+ * @returns {Float64Array}
174
174
  */
175
175
  function inverseLongBlock(
176
176
  coeffs,
@@ -234,12 +234,12 @@ export function imdctStage(context) {
234
234
 
235
235
  /**
236
236
  * Inverse transform using short blocks.
237
- * @param {Float32Array} coeffs
237
+ * @param {Float64Array} coeffs
238
238
  * @param {number} bandIndex
239
- * @param {Float32Array} overlapBuffer
239
+ * @param {Float64Array} overlapBuffer
240
240
  * @param {Object} bufferPool
241
241
  * @param {Object} config
242
- * @returns {Float32Array}
242
+ * @returns {Float64Array}
243
243
  */
244
244
  function inverseShortBlocks(
245
245
  coeffs,
@@ -308,9 +308,9 @@ export function imdctStage(context) {
308
308
  /**
309
309
  * Transform coefficients back to time domain using inverse MDCT
310
310
  * @param {Object} input - Dequantization results
311
- * @param {Float32Array} input.coefficients - MDCT coefficients (512 samples)
311
+ * @param {Float64Array} input.coefficients - MDCT coefficients (512 samples)
312
312
  * @param {Array<number>} input.blockModes - Block modes for each band
313
- * @returns {Array<Float32Array>} Three reconstructed frequency bands [low, mid, high]
313
+ * @returns {Array<Float64Array>} Three reconstructed frequency bands [low, mid, high]
314
314
  */
315
315
  return (input) => {
316
316
  const { coefficients, blockModes } = input
@@ -354,8 +354,8 @@ export function qmfSynthesisStage(context) {
354
354
 
355
355
  /**
356
356
  * Reconstruct full-spectrum PCM samples from frequency bands
357
- * @param {Array<Float32Array>} bands - Three frequency bands [low, mid, high]
358
- * @returns {Float32Array} Reconstructed PCM samples
357
+ * @param {Array<Float64Array>} bands - Three frequency bands [low, mid, high]
358
+ * @returns {Float64Array} Reconstructed PCM samples
359
359
  */
360
360
  return (bands) => {
361
361
  // Apply high band delay compensation
@@ -62,9 +62,9 @@ export function qmfAnalysisStage(context) {
62
62
 
63
63
  /**
64
64
  * Process PCM samples through QMF analysis
65
- * @param {Float32Array} pcmSamples - Input PCM samples
65
+ * @param {Float64Array} pcmSamples - Input PCM samples
66
66
  * @returns {Object} Analysis result containing frequency bands
67
- * @returns {Array<Float32Array>} returns.bands - Three frequency bands [low, mid, high]
67
+ * @returns {Array<Float64Array>} returns.bands - Three frequency bands [low, mid, high]
68
68
  */
69
69
  return (pcmSamples) => {
70
70
  const stage1 = qmfAnalysis(
@@ -118,9 +118,9 @@ export function blockSelectorStage(context) {
118
118
  /**
119
119
  * Analyze frequency bands and determine block modes
120
120
  * @param {Object} input - QMF analysis results
121
- * @param {Array<Float32Array>} input.bands - Three frequency bands [low, mid, high]
121
+ * @param {Array<Float64Array>} input.bands - Three frequency bands [low, mid, high]
122
122
  * @returns {Object} Block selection results
123
- * @returns {Array<Float32Array>} returns.bands - Original frequency bands
123
+ * @returns {Array<Float64Array>} returns.bands - Original frequency bands
124
124
  * @returns {Array<number>} returns.blockModes - Block modes for each band
125
125
  */
126
126
  return (input) => {
@@ -170,12 +170,12 @@ export function mdctStage(context) {
170
170
 
171
171
  /**
172
172
  * Transform a single frequency band using MDCT.
173
- * @param {Float32Array} samples
173
+ * @param {Float64Array} samples
174
174
  * @param {number} bandIndex
175
175
  * @param {number} blockMode
176
- * @param {Float32Array} overlapBuffer
176
+ * @param {Float64Array} overlapBuffer
177
177
  * @param {Object} bufferPool
178
- * @returns {Float32Array}
178
+ * @returns {Float64Array}
179
179
  */
180
180
  function transformBand(
181
181
  samples,
@@ -210,13 +210,13 @@ export function mdctStage(context) {
210
210
 
211
211
  /**
212
212
  * Transform using long block (better frequency resolution).
213
- * @param {Float32Array} samples
213
+ * @param {Float64Array} samples
214
214
  * @param {number} bandIndex
215
215
  * @param {Object} config
216
216
  * @param {Object} transformFunc
217
- * @param {Float32Array} overlapBuffer
217
+ * @param {Float64Array} overlapBuffer
218
218
  * @param {Object} bufferPool
219
- * @returns {Float32Array}
219
+ * @returns {Float64Array}
220
220
  */
221
221
  function transformLongBlock(
222
222
  samples,
@@ -252,12 +252,12 @@ export function mdctStage(context) {
252
252
 
253
253
  /**
254
254
  * Transform using short blocks (better time resolution for transients).
255
- * @param {Float32Array} samples
255
+ * @param {Float64Array} samples
256
256
  * @param {number} bandIndex
257
257
  * @param {Object} config
258
- * @param {Float32Array} overlapBuffer
258
+ * @param {Float64Array} overlapBuffer
259
259
  * @param {Object} bufferPool
260
- * @returns {Float32Array}
260
+ * @returns {Float64Array}
261
261
  */
262
262
  function transformShortBlocks(
263
263
  samples,
@@ -267,7 +267,7 @@ export function mdctStage(context) {
267
267
  bufferPool
268
268
  ) {
269
269
  const numBlocks = 1 << (config.size === 256 ? 3 : 2) // 8 for band 2, 4 for bands 0-1
270
- const output = new Float32Array(config.size)
270
+ const output = new Float64Array(config.size)
271
271
 
272
272
  for (let block = 0; block < numBlocks; block++) {
273
273
  const blockStart = block * MDCT_SHORT_BLOCK_SIZE
@@ -311,18 +311,18 @@ export function mdctStage(context) {
311
311
  /**
312
312
  * Transform frequency bands using MDCT
313
313
  * @param {Object} input - Block selection results
314
- * @param {Array<Float32Array>} input.bands - Three frequency bands
314
+ * @param {Array<Float64Array>} input.bands - Three frequency bands
315
315
  * @param {Array<number>} input.blockModes - Block modes for each band
316
316
  * @param {any} input.originalFrame - Original frame data (passed through)
317
317
  * @returns {Object} MDCT transform results
318
- * @returns {Array<Float32Array>} returns.bands - Original frequency bands
319
- * @returns {Float32Array} returns.coefficients - MDCT coefficients (512 samples)
318
+ * @returns {Array<Float64Array>} returns.bands - Original frequency bands
319
+ * @returns {Float64Array} returns.coefficients - MDCT coefficients (512 samples)
320
320
  * @returns {Array<number>} returns.blockModes - Block modes
321
321
  * @returns {any} returns.originalFrame - Original frame data
322
322
  */
323
323
  return (input) => {
324
324
  const { bands, blockModes, originalFrame } = input
325
- const coefficients = new Float32Array(512)
325
+ const coefficients = new Float64Array(512)
326
326
 
327
327
  bands.forEach((bandSamples, bandIndex) => {
328
328
  const transformed = transformBand(
@@ -359,7 +359,7 @@ export function quantizationStage() {
359
359
  /**
360
360
  * Perform RDO bit allocation and quantization
361
361
  * @param {Object} input - MDCT transform results
362
- * @param {Float32Array} input.coefficients - MDCT coefficients
362
+ * @param {Float64Array} input.coefficients - MDCT coefficients
363
363
  * @param {Array<number>} input.blockModes - Block modes
364
364
  * @returns {Object} Quantization results ready for bitstream encoding
365
365
  * @returns {number} returns.nBfu - Number of active BFUs
@@ -7,8 +7,8 @@ export class FFT {
7
7
 
8
8
  /**
9
9
  * Perform an in-place forward FFT on complex data.
10
- * @param {Float32Array} real - Real part of the input/output data
11
- * @param {Float32Array} imag - Imaginary part of the input/output data
10
+ * @param {Float64Array} real - Real part of the input/output data
11
+ * @param {Float64Array} imag - Imaginary part of the input/output data
12
12
  */
13
13
  static fft(real, imag) {
14
14
  const n = real.length
@@ -123,8 +123,8 @@ export class FFT {
123
123
  bitRev[i] = (bitRev[i >>> 1] >>> 1) | ((i & 1) << (log2n - 1))
124
124
  }
125
125
  const halfN = n >>> 1
126
- const cosTbl = new Float32Array(halfN)
127
- const sinTbl = new Float32Array(halfN)
126
+ const cosTbl = new Float64Array(halfN)
127
+ const sinTbl = new Float64Array(halfN)
128
128
  const ang = (-2 * Math.PI) / n
129
129
  for (let i = 0; i < halfN; i++) {
130
130
  const a = ang * i
@@ -28,7 +28,7 @@ class MDCTBase {
28
28
  const omega = (2.0 * Math.PI) / size
29
29
  const scaleRoot = Math.sqrt(scale / size)
30
30
 
31
- this.sinCosTable = new Float32Array(this.halfSize)
31
+ this.sinCosTable = new Float64Array(this.halfSize)
32
32
  for (let i = 0; i < this.quarterSize; i++) {
33
33
  const angle = omega * i + alpha
34
34
  this.sinCosTable[i * 2] = scaleRoot * Math.cos(angle)
@@ -47,9 +47,9 @@ export class MDCT extends MDCTBase {
47
47
 
48
48
  /**
49
49
  * Perform forward MDCT transform
50
- * @param {Float32Array} input - Time-domain input samples
50
+ * @param {Float64Array} input - Time-domain input samples
51
51
  * @param {Object} mdctBuffers - Optional work buffers for FFT
52
- * @returns {Float32Array} Frequency-domain MDCT coefficients
52
+ * @returns {Float64Array} Frequency-domain MDCT coefficients
53
53
  */
54
54
  transform(input, mdctBuffers = null) {
55
55
  const buffers =
@@ -107,7 +107,7 @@ export class MDCT extends MDCTBase {
107
107
  FFT.fft(real, imag)
108
108
 
109
109
  // Post-FFT processing
110
- const output = new Float32Array(this.halfSize)
110
+ const output = new Float64Array(this.halfSize)
111
111
  for (let i = 0; i < this.fftSize; i++) {
112
112
  const c = this.sinCosTable[i * 2]
113
113
  const s = this.sinCosTable[i * 2 + 1]
@@ -132,9 +132,9 @@ export class IMDCT extends MDCTBase {
132
132
 
133
133
  /**
134
134
  * Perform inverse MDCT transform
135
- * @param {Float32Array} input - Frequency-domain MDCT coefficients
135
+ * @param {Float64Array} input - Frequency-domain MDCT coefficients
136
136
  * @param {Object} mdctBuffers - Optional work buffers for FFT
137
- * @returns {Float32Array} Time-domain output samples
137
+ * @returns {Float64Array} Time-domain output samples
138
138
  */
139
139
  transform(input, mdctBuffers = null) {
140
140
  const buffers =
@@ -160,19 +160,19 @@ export class IMDCT extends MDCTBase {
160
160
  // Pre-FFT processing
161
161
  for (let i = 0; i < this.fftSize; i++) {
162
162
  const i2 = i * 2
163
- const r = input[i2]
164
- const im = input[this.halfSize - 1 - i2]
163
+ const r = -input[i2]
164
+ const im = -input[this.halfSize - 1 - i2]
165
165
  const c = this.sinCosTable[i2]
166
166
  const s = this.sinCosTable[i2 + 1]
167
167
 
168
- real[i] = -2.0 * (im * s + r * c)
169
- imag[i] = -2.0 * (im * c - r * s)
168
+ real[i] = im * s + r * c
169
+ imag[i] = im * c - r * s
170
170
  }
171
171
 
172
172
  FFT.fft(real, imag)
173
173
 
174
174
  // Post-FFT butterfly
175
- const output = new Float32Array(this.size)
175
+ const output = new Float64Array(this.size)
176
176
 
177
177
  for (let i = 0; i < this.fftSize / 2; i++) {
178
178
  const i2 = i * 2
@@ -216,20 +216,20 @@ export const mdct64 = new MDCT(MDCT_SIZE_SHORT, 0.5)
216
216
  export const mdct256 = new MDCT(MDCT_SIZE_MID, 0.5)
217
217
  export const mdct512 = new MDCT(MDCT_SIZE_LONG, 1.0)
218
218
 
219
- export const imdct64 = new IMDCT(MDCT_SIZE_SHORT, MDCT_SIZE_SHORT * 4)
220
- export const imdct256 = new IMDCT(MDCT_SIZE_MID, MDCT_SIZE_MID * 4)
221
- export const imdct512 = new IMDCT(MDCT_SIZE_LONG, MDCT_SIZE_LONG * 2)
219
+ export const imdct64 = new IMDCT(MDCT_SIZE_SHORT, MDCT_SIZE_SHORT * 8)
220
+ export const imdct256 = new IMDCT(MDCT_SIZE_MID, MDCT_SIZE_MID * 8)
221
+ export const imdct512 = new IMDCT(MDCT_SIZE_LONG, MDCT_SIZE_LONG * 4)
222
222
 
223
223
  /**
224
224
  * Perform overlap-add operation for MDCT reconstruction
225
- * @param {Float32Array} prev - Previous block samples
226
- * @param {Float32Array} curr - Current block samples
227
- * @param {Float32Array} window - Window function coefficients
228
- * @returns {Float32Array} Overlap-added output samples
225
+ * @param {Float64Array} prev - Previous block samples
226
+ * @param {Float64Array} curr - Current block samples
227
+ * @param {Float64Array} window - Window function coefficients
228
+ * @returns {Float64Array} Overlap-added output samples
229
229
  */
230
230
  export function overlapAdd(prev, curr, window) {
231
231
  const size = prev.length
232
- const output = new Float32Array(size * 2)
232
+ const output = new Float64Array(size * 2)
233
233
 
234
234
  for (let i = 0; i < size; i++) {
235
235
  const w1 = window[i]
@@ -11,8 +11,8 @@ import { throwError } from '../utils.js'
11
11
 
12
12
  /**
13
13
  * Perform QMF analysis filtering to split input into low and high frequency bands
14
- * @param {Float32Array} input - Input audio samples
15
- * @param {Float32Array} delayLine - QMF delay line state
14
+ * @param {Float64Array} input - Input audio samples
15
+ * @param {Float64Array} delayLine - QMF delay line state
16
16
  * @param {Object} qmfWorkBuffers - Optional work buffers for processing
17
17
  * @returns {Object} Object containing lowBand, highBand, and newDelay
18
18
  */
@@ -26,8 +26,8 @@ export function qmfAnalysis(input, delayLine, qmfWorkBuffers = null) {
26
26
  workBuffer.set(delayLine)
27
27
  workBuffer.set(input, delayLine.length)
28
28
 
29
- const lowBand = new Float32Array(outputLength)
30
- const highBand = new Float32Array(outputLength)
29
+ const lowBand = new Float64Array(outputLength)
30
+ const highBand = new Float64Array(outputLength)
31
31
 
32
32
  for (let i = 0; i < outputLength; i++) {
33
33
  let evenSum = 0
@@ -51,9 +51,9 @@ export function qmfAnalysis(input, delayLine, qmfWorkBuffers = null) {
51
51
 
52
52
  /**
53
53
  * Perform QMF synthesis filtering to reconstruct audio from low and high frequency bands
54
- * @param {Float32Array} lowBand - Low frequency band samples
55
- * @param {Float32Array} highBand - High frequency band samples
56
- * @param {Float32Array} delayLine - QMF delay line state
54
+ * @param {Float64Array} lowBand - Low frequency band samples
55
+ * @param {Float64Array} highBand - High frequency band samples
56
+ * @param {Float64Array} delayLine - QMF delay line state
57
57
  * @param {Object} qmfWorkBuffers - Optional work buffers for processing
58
58
  * @returns {Object} Object containing output and newDelay
59
59
  */
@@ -82,7 +82,7 @@ export function qmfSynthesis(
82
82
  workBuffer[offset + 1] = 0.5 * (low - high)
83
83
  }
84
84
 
85
- const output = new Float32Array(outputLength)
85
+ const output = new Float64Array(outputLength)
86
86
 
87
87
  // Convolution
88
88
  for (let i = 0; i < subbandLength; i++) {
package/codec/utils.js CHANGED
@@ -33,9 +33,9 @@ export function pipe(context, ...stages) {
33
33
 
34
34
  /**
35
35
  * Pads audio frames and adds flush samples for proper codec delay handling
36
- * @param {AsyncIterable<Float32Array>} iter - Input frame stream
36
+ * @param {AsyncIterable<Float64Array>} iter - Input frame stream
37
37
  * @param {number} [samplesToFlush=CODEC_DELAY] - Number of samples to flush
38
- * @yields {Float32Array} Padded frames with flush samples
38
+ * @yields {Float64Array} Padded frames with flush samples
39
39
  */
40
40
  export async function* withFlushSamples(iter, samplesToFlush = CODEC_DELAY) {
41
41
  let lastFrameLength = SAMPLES_PER_FRAME
@@ -45,27 +45,27 @@ export async function* withFlushSamples(iter, samplesToFlush = CODEC_DELAY) {
45
45
  yield frame
46
46
  } else {
47
47
  // We need to pad
48
- const paddedFrame = new Float32Array(SAMPLES_PER_FRAME)
48
+ const paddedFrame = new Float64Array(SAMPLES_PER_FRAME)
49
49
  paddedFrame.set(frame)
50
50
  yield paddedFrame
51
51
  }
52
52
  }
53
53
  if (SAMPLES_PER_FRAME - lastFrameLength < samplesToFlush) {
54
- yield new Float32Array(SAMPLES_PER_FRAME)
54
+ yield new Float64Array(SAMPLES_PER_FRAME)
55
55
  }
56
56
  }
57
57
 
58
58
  /**
59
59
  * Applies delay compensation to PCM frame stream by dropping initial samples
60
- * @param {AsyncIterable<Float32Array>} pcmFrameStream - Input PCM frame stream
60
+ * @param {AsyncIterable<Float64Array>} pcmFrameStream - Input PCM frame stream
61
61
  * @param {number} [samplesToDrop=CODEC_DELAY] - Number of samples to drop for delay compensation
62
- * @yields {Float32Array} Delay-compensated PCM frames
62
+ * @yields {Float64Array} Delay-compensated PCM frames
63
63
  */
64
64
  export async function* withDelayCompensation(
65
65
  pcmFrameStream,
66
66
  samplesToDrop = CODEC_DELAY
67
67
  ) {
68
- let buffer = new Float32Array(0)
68
+ let buffer = new Float64Array(0)
69
69
  let droppedInitialSamples = false
70
70
 
71
71
  for await (const frame of pcmFrameStream) {
@@ -84,7 +84,7 @@ export async function* withDelayCompensation(
84
84
  }
85
85
 
86
86
  // Concatenate buffer with new frame
87
- const combined = new Float32Array(buffer.length + frame.length)
87
+ const combined = new Float64Array(buffer.length + frame.length)
88
88
  combined.set(buffer)
89
89
  combined.set(frame, buffer.length)
90
90
 
@@ -152,9 +152,9 @@ export function withStereo(monoTransform, ...args) {
152
152
  * Used in both MDCT and IMDCT stages to handle spectral reversal required
153
153
  * by the ATRAC1 format for mid and high frequency bands.
154
154
  *
155
- * @param {Float32Array} spectrum - Input spectrum coefficients
155
+ * @param {Float64Array} spectrum - Input spectrum coefficients
156
156
  * @param {Object} reversalBuffers - Pre-allocated buffers for different spectrum sizes
157
- * @returns {Float32Array} Spectrum with reversed coefficient order
157
+ * @returns {Float64Array} Spectrum with reversed coefficient order
158
158
  */
159
159
  export function reverseSpectrum(spectrum, reversalBuffers) {
160
160
  const reversed = reversalBuffers[spectrum.length]
@@ -177,9 +177,9 @@ export function calculateBandOffset(bandIndex) {
177
177
  /**
178
178
  * Extracts coefficients for a specific frequency band from the full coefficient array
179
179
  *
180
- * @param {Float32Array} coefficients - Full 512-sample coefficient array
180
+ * @param {Float64Array} coefficients - Full 512-sample coefficient array
181
181
  * @param {number} bandIndex - Band index (0=low, 1=mid, 2=high)
182
- * @returns {Float32Array} Subarray containing coefficients for the specified band
182
+ * @returns {Float64Array} Subarray containing coefficients for the specified band
183
183
  */
184
184
  export function extractBandCoefficients(coefficients, bandIndex) {
185
185
  const offsets = [0, 128, 256, 512]
@@ -1 +1 @@
1
- {"version":3,"file":"carta1-worker-interface.min.js","mappings":"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","sources":["webpack://carta1/webpack/bootstrap","webpack://carta1/webpack/runtime/define property getters","webpack://carta1/webpack/runtime/hasOwnProperty shorthand","webpack://carta1/./codec/browser/interface.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/**\n * Carta1 Worker Interface - Client-side API\n *\n * Provides a clean async interface for encoding and decoding ATRAC1 audio\n * using Web Workers for non-blocking operation.\n *\n * Usage:\n * const codec = new Carta1Worker('carta1-worker.min.js')\n * const result = await codec.encode(pcmData, options)\n * codec.terminate()\n *\n * The worker path can be customized to match your deployment:\n * new Carta1Worker('/js/carta1-worker.min.js')\n * new Carta1Worker('https://cdn.example.com/carta1-worker.min.js')\n */\n\nclass Carta1Worker {\n /**\n * Create a new ATRAC1 codec worker\n *\n * @param {string} [workerPath='atrac1-worker.min.js'] - Path to the worker script\n */\n constructor(workerPath = 'carta1-worker.min.js') {\n this.worker = new Worker(workerPath)\n this.nextJobId = 1\n this.jobs = new Map()\n\n // Handle worker responses\n this.worker.onmessage = (e) => {\n const { jobId, error, result } = e.data\n\n if (!jobId) {\n console.warn('Received message without jobId:', e.data)\n return\n }\n\n if (this.jobs.has(jobId)) {\n const { resolve, reject } = this.jobs.get(jobId)\n this.jobs.delete(jobId)\n\n if (error) {\n reject(new Error(error))\n } else if (result) {\n resolve(result)\n } else {\n reject(new Error('Worker returned no result'))\n }\n } else {\n console.warn('Received result for unknown job:', jobId)\n }\n }\n\n // Handle worker errors\n this.worker.onerror = (error) => {\n console.error('Worker crashed:', error)\n // Reject all pending jobs\n for (const [, { reject }] of this.jobs) {\n reject(new Error('Worker crashed: ' + error.message))\n }\n this.jobs.clear()\n }\n }\n\n /**\n * Encode PCM audio to ATRAC1 format\n *\n * @param {Float32Array|Array<Float32Array>} pcmData - PCM audio data\n * - Mono: Float32Array\n * - Stereo: [left, right] Float32Arrays\n * @param {Object} [options={}] - Encoder options\n * @param {number} [options.transientThresholdLow] - Low band transient threshold\n * @param {number} [options.transientThresholdMid] - Mid band transient threshold\n * @param {number} [options.transientThresholdHigh] - High band transient threshold\n * @returns {Promise<Object>} Encoding result\n * @returns {Blob} returns.aeaBlob - ATRAC1 encoded audio blob\n * @returns {Object} returns.shortBlockData - Short block frame indices\n */\n async encode(pcmData, options = {}) {\n const jobId = this.nextJobId++\n return new Promise((resolve, reject) => {\n this.jobs.set(jobId, { resolve, reject })\n try {\n // Ensure plain object for serialization\n const plainOptions = { ...options }\n this.worker.postMessage({\n jobId,\n type: 'encode',\n pcmData,\n options: plainOptions,\n })\n } catch (error) {\n this.jobs.delete(jobId)\n reject(error)\n }\n })\n }\n\n /**\n * Decode ATRAC1 audio to PCM WAV format\n *\n * @param {Object} aea - ATRAC1 audio data\n * @param {Uint8Array} aea.header - AEA file header\n * @param {Array} aea.aeaData - Encoded frame data\n * @param {Object} [aea.info] - Optional metadata\n * @returns {Promise<Object>} Decoding result\n * @returns {Blob} returns.wavBlob - Decoded WAV audio blob\n * @returns {Object} returns.info - Audio metadata (channels, sample rate)\n */\n async decode(aea) {\n const jobId = this.nextJobId++\n return new Promise((resolve, reject) => {\n this.jobs.set(jobId, { resolve, reject })\n try {\n this.worker.postMessage({ jobId, type: 'decode', aea })\n } catch (error) {\n this.jobs.delete(jobId)\n reject(error)\n }\n })\n }\n\n /**\n * Parse AEA file blob to extract metadata and frame data\n *\n * @param {Blob} blob - AEA file blob\n * @returns {Promise<Object>} Parsed AEA data\n * @returns {Uint8Array} returns.header - AEA file header\n * @returns {Array} returns.aeaData - Encoded frame data\n * @returns {Object} returns.info - Metadata (title, channels, frames)\n */\n async parseAeaBlob(blob) {\n const jobId = this.nextJobId++\n return new Promise((resolve, reject) => {\n this.jobs.set(jobId, { resolve, reject })\n try {\n this.worker.postMessage({ jobId, type: 'parseAea', blob })\n } catch (error) {\n this.jobs.delete(jobId)\n reject(error)\n }\n })\n }\n\n /**\n * Get default encoder options metadata\n *\n * @returns {Promise<Object>} Default encoder options\n */\n async getEncoderOptions() {\n const jobId = this.nextJobId++\n return new Promise((resolve, reject) => {\n this.jobs.set(jobId, { resolve, reject })\n try {\n this.worker.postMessage({ jobId, type: 'getEncoderOptions' })\n } catch (error) {\n this.jobs.delete(jobId)\n reject(error)\n }\n })\n }\n\n /**\n * Terminate the worker and clean up resources\n *\n * Call this when done using the codec to free memory\n */\n terminate() {\n if (this.worker) {\n this.worker.terminate()\n this.worker = null\n }\n this.jobs.clear()\n }\n}\n\nexport default Carta1Worker\nexport { Carta1Worker }\n"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","e","t","r","Symbol","n","iterator","toStringTag","i","c","Generator","u","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","configurable","writable","_invoke","ownKeys","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","push","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","_next","_throw","_slicedToArray","Array","isArray","_arrayWithHoles","next","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","toString","slice","constructor","name","from","test","_defineProperties","_typeof","toPrimitive","String","Number","_toPrimitive","Carta1Worker","_this","workerPath","undefined","_classCallCheck","this","worker","Worker","nextJobId","jobs","Map","onmessage","_e$data","data","jobId","error","result","has","_this$jobs$get","reject","Error","console","warn","onerror","_step","_iterator","_n","F","s","_createForOfIteratorHelper","message","err","clear","_encode","_callee","pcmData","options","_this2","_args","_context","set","plainOptions","postMessage","type","_x","_decode","_callee2","aea","_this3","_context2","_x2","_parseAeaBlob","_callee3","blob","_this4","_context3","_x3","_getEncoderOptions","_callee4","_this5","_context4","terminate"],"sourceRoot":""}
1
+ {"version":3,"file":"carta1-worker-interface.min.js","mappings":"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","sources":["webpack://carta1/webpack/bootstrap","webpack://carta1/webpack/runtime/define property getters","webpack://carta1/webpack/runtime/hasOwnProperty shorthand","webpack://carta1/./codec/browser/interface.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/**\n * Carta1 Worker Interface - Client-side API\n *\n * Provides a clean async interface for encoding and decoding ATRAC1 audio\n * using Web Workers for non-blocking operation.\n *\n * Usage:\n * const codec = new Carta1Worker('carta1-worker.min.js')\n * const result = await codec.encode(pcmData, options)\n * codec.terminate()\n *\n * The worker path can be customized to match your deployment:\n * new Carta1Worker('/js/carta1-worker.min.js')\n * new Carta1Worker('https://cdn.example.com/carta1-worker.min.js')\n */\n\nclass Carta1Worker {\n /**\n * Create a new ATRAC1 codec worker\n *\n * @param {string} [workerPath='atrac1-worker.min.js'] - Path to the worker script\n */\n constructor(workerPath = 'carta1-worker.min.js') {\n this.worker = new Worker(workerPath)\n this.nextJobId = 1\n this.jobs = new Map()\n\n // Handle worker responses\n this.worker.onmessage = (e) => {\n const { jobId, error, result } = e.data\n\n if (!jobId) {\n console.warn('Received message without jobId:', e.data)\n return\n }\n\n if (this.jobs.has(jobId)) {\n const { resolve, reject } = this.jobs.get(jobId)\n this.jobs.delete(jobId)\n\n if (error) {\n reject(new Error(error))\n } else if (result) {\n resolve(result)\n } else {\n reject(new Error('Worker returned no result'))\n }\n } else {\n console.warn('Received result for unknown job:', jobId)\n }\n }\n\n // Handle worker errors\n this.worker.onerror = (error) => {\n console.error('Worker crashed:', error)\n // Reject all pending jobs\n for (const [, { reject }] of this.jobs) {\n reject(new Error('Worker crashed: ' + error.message))\n }\n this.jobs.clear()\n }\n }\n\n /**\n * Encode PCM audio to ATRAC1 format\n *\n * @param {Float64Array|Array<Float64Array>} pcmData - PCM audio data\n * - Mono: Float64Array\n * - Stereo: [left, right] Float64Arrays\n * @param {Object} [options={}] - Encoder options\n * @param {number} [options.transientThresholdLow] - Low band transient threshold\n * @param {number} [options.transientThresholdMid] - Mid band transient threshold\n * @param {number} [options.transientThresholdHigh] - High band transient threshold\n * @returns {Promise<Object>} Encoding result\n * @returns {Blob} returns.aeaBlob - ATRAC1 encoded audio blob\n * @returns {Object} returns.shortBlockData - Short block frame indices\n */\n async encode(pcmData, options = {}) {\n const jobId = this.nextJobId++\n return new Promise((resolve, reject) => {\n this.jobs.set(jobId, { resolve, reject })\n try {\n // Ensure plain object for serialization\n const plainOptions = { ...options }\n this.worker.postMessage({\n jobId,\n type: 'encode',\n pcmData,\n options: plainOptions,\n })\n } catch (error) {\n this.jobs.delete(jobId)\n reject(error)\n }\n })\n }\n\n /**\n * Decode ATRAC1 audio to PCM WAV format\n *\n * @param {Object} aea - ATRAC1 audio data\n * @param {Uint8Array} aea.header - AEA file header\n * @param {Array} aea.aeaData - Encoded frame data\n * @param {Object} [aea.info] - Optional metadata\n * @returns {Promise<Object>} Decoding result\n * @returns {Blob} returns.wavBlob - Decoded WAV audio blob\n * @returns {Object} returns.info - Audio metadata (channels, sample rate)\n */\n async decode(aea) {\n const jobId = this.nextJobId++\n return new Promise((resolve, reject) => {\n this.jobs.set(jobId, { resolve, reject })\n try {\n this.worker.postMessage({ jobId, type: 'decode', aea })\n } catch (error) {\n this.jobs.delete(jobId)\n reject(error)\n }\n })\n }\n\n /**\n * Parse AEA file blob to extract metadata and frame data\n *\n * @param {Blob} blob - AEA file blob\n * @returns {Promise<Object>} Parsed AEA data\n * @returns {Uint8Array} returns.header - AEA file header\n * @returns {Array} returns.aeaData - Encoded frame data\n * @returns {Object} returns.info - Metadata (title, channels, frames)\n */\n async parseAeaBlob(blob) {\n const jobId = this.nextJobId++\n return new Promise((resolve, reject) => {\n this.jobs.set(jobId, { resolve, reject })\n try {\n this.worker.postMessage({ jobId, type: 'parseAea', blob })\n } catch (error) {\n this.jobs.delete(jobId)\n reject(error)\n }\n })\n }\n\n /**\n * Get default encoder options metadata\n *\n * @returns {Promise<Object>} Default encoder options\n */\n async getEncoderOptions() {\n const jobId = this.nextJobId++\n return new Promise((resolve, reject) => {\n this.jobs.set(jobId, { resolve, reject })\n try {\n this.worker.postMessage({ jobId, type: 'getEncoderOptions' })\n } catch (error) {\n this.jobs.delete(jobId)\n reject(error)\n }\n })\n }\n\n /**\n * Terminate the worker and clean up resources\n *\n * Call this when done using the codec to free memory\n */\n terminate() {\n if (this.worker) {\n this.worker.terminate()\n this.worker = null\n }\n this.jobs.clear()\n }\n}\n\nexport default Carta1Worker\nexport { Carta1Worker }\n"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","e","t","r","Symbol","n","iterator","toStringTag","i","c","Generator","u","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","configurable","writable","_invoke","ownKeys","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","push","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","_next","_throw","_slicedToArray","Array","isArray","_arrayWithHoles","next","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","toString","slice","constructor","name","from","test","_defineProperties","_typeof","toPrimitive","String","Number","_toPrimitive","Carta1Worker","_this","workerPath","undefined","_classCallCheck","this","worker","Worker","nextJobId","jobs","Map","onmessage","_e$data","data","jobId","error","result","has","_this$jobs$get","reject","Error","console","warn","onerror","_step","_iterator","_n","F","s","_createForOfIteratorHelper","message","err","clear","_encode","_callee","pcmData","options","_this2","_args","_context","set","plainOptions","postMessage","type","_x","_decode","_callee2","aea","_this3","_context2","_x2","_parseAeaBlob","_callee3","blob","_this4","_context3","_x3","_getEncoderOptions","_callee4","_this5","_context4","terminate"],"sourceRoot":""}