@hyperframes/engine 0.8.11 → 0.8.13

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.
@@ -21,19 +21,29 @@ interface WavData {
21
21
  samples: Float32Array;
22
22
  sampleRate: number;
23
23
  channels: number;
24
+ /** True when the source was 32-bit float rather than 16-bit PCM. Carried so
25
+ * the output can be written back in the same format — see `writeWav`. */
26
+ float: boolean;
24
27
  }
25
28
  export declare function readWav(path: string): WavData;
26
29
  /**
27
- * Write 16-bit PCM, interleaved, preserving the channel count.
30
+ * Write interleaved samples, preserving the channel count.
28
31
  *
29
- * 16-bit rather than the float32 this used to emit: the very next step in the
30
- * mixer bakes the volume envelope into the samples, and that baker accepts only
31
- * 16-bit PCM. Emitting float meant enabling any effect silently downgraded a
32
- * track's volume automation to the ffmpeg expression path, which is capped at 32
33
- * straight segments — so a curved envelope was quantised and a dense one could
34
- * fall back to rendering at base volume.
32
+ * 16-bit by default rather than the float32 this used to emit: the very next
33
+ * step in the mixer bakes the volume envelope into the samples, and that baker
34
+ * accepted only 16-bit PCM. Emitting float meant enabling any effect silently
35
+ * downgraded a track's volume automation to the ffmpeg expression path, which is
36
+ * capped at 32 straight segments — so a curved envelope was quantised and a
37
+ * dense one could fall back to rendering at base volume.
38
+ *
39
+ * `float` opts back out, for the ONE input that needs it: a group sub-mix. Its
40
+ * members sum at unity, so the sum can legitimately exceed full scale, and the
41
+ * group's fader is applied downstream — clamping here handed that headroom back
42
+ * one step before the thing that was going to reduce it, which is the same bug
43
+ * the float intermediate exists to avoid. Safe now only because the envelope
44
+ * baker reads float too; before that it was not.
35
45
  */
36
- export declare function writeWav(path: string, samples: Float32Array, sampleRate: number, channels?: number): void;
46
+ export declare function writeWav(path: string, samples: Float32Array, sampleRate: number, channels?: number, float?: boolean): void;
37
47
  /**
38
48
  * Run a chain over `inputWav`, writing `outputWav`. Resolves to the path to use
39
49
  * downstream — `outputWav` when the chain did something, `inputWav` untouched
@@ -1 +1 @@
1
- {"version":3,"file":"audioFxRender.d.ts","sourceRoot":"","sources":["../../src/services/audioFxRender.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAI5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAED,UAAU,OAAO;IACf,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAmCD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQ7C;AAuBD;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,MAAM,EAClB,QAAQ,SAAI,GACX,IAAI,CAmCN;AAmFD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IACP,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,QAAQ,CAAC,EAAE;QAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CACzF,GACA,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,CAAC,CAuKnD;AAED,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"audioFxRender.d.ts","sourceRoot":"","sources":["../../src/services/audioFxRender.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAI5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAED,UAAU,OAAO;IACf,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB;8EAC0E;IAC1E,KAAK,EAAE,OAAO,CAAC;CAChB;AAmCD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAa7C;AAuBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,MAAM,EAClB,QAAQ,SAAI,EACZ,KAAK,UAAQ,GACZ,IAAI,CAwCN;AAmFD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IACP,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,QAAQ,CAAC,EAAE;QAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CACzF,GACA,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,CAAC,CA2EnD;AA6HD,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC"}
@@ -62,7 +62,12 @@ export function readWav(path) {
62
62
  const { format, channels, sampleRate, bits, data } = readWavChunks(buf);
63
63
  if (!data)
64
64
  throw new AudioFxRenderError(`WAV has no data chunk: ${path}`);
65
- return { samples: decodeSamples(data, format, bits, path), sampleRate, channels };
65
+ return {
66
+ samples: decodeSamples(data, format, bits, path),
67
+ sampleRate,
68
+ channels,
69
+ float: format === 3 && bits === 32,
70
+ };
66
71
  }
67
72
  /** Interleaved samples as floats, for the two formats the mixer emits upstream. */
68
73
  function decodeSamples(data, format, bits, path) {
@@ -88,33 +93,45 @@ function decodeSamples(data, format, bits, path) {
88
93
  throw new AudioFxRenderError(`Unsupported WAV format ${format}/${bits}-bit: ${path}`);
89
94
  }
90
95
  /**
91
- * Write 16-bit PCM, interleaved, preserving the channel count.
96
+ * Write interleaved samples, preserving the channel count.
92
97
  *
93
- * 16-bit rather than the float32 this used to emit: the very next step in the
94
- * mixer bakes the volume envelope into the samples, and that baker accepts only
95
- * 16-bit PCM. Emitting float meant enabling any effect silently downgraded a
96
- * track's volume automation to the ffmpeg expression path, which is capped at 32
97
- * straight segments — so a curved envelope was quantised and a dense one could
98
- * fall back to rendering at base volume.
98
+ * 16-bit by default rather than the float32 this used to emit: the very next
99
+ * step in the mixer bakes the volume envelope into the samples, and that baker
100
+ * accepted only 16-bit PCM. Emitting float meant enabling any effect silently
101
+ * downgraded a track's volume automation to the ffmpeg expression path, which is
102
+ * capped at 32 straight segments — so a curved envelope was quantised and a
103
+ * dense one could fall back to rendering at base volume.
104
+ *
105
+ * `float` opts back out, for the ONE input that needs it: a group sub-mix. Its
106
+ * members sum at unity, so the sum can legitimately exceed full scale, and the
107
+ * group's fader is applied downstream — clamping here handed that headroom back
108
+ * one step before the thing that was going to reduce it, which is the same bug
109
+ * the float intermediate exists to avoid. Safe now only because the envelope
110
+ * baker reads float too; before that it was not.
99
111
  */
100
- export function writeWav(path, samples, sampleRate, channels = 1) {
112
+ export function writeWav(path, samples, sampleRate, channels = 1, float = false) {
101
113
  const n = samples.length;
102
- const bytes = n * 2;
114
+ const bytesPerSample = float ? 4 : 2;
115
+ const bytes = n * bytesPerSample;
103
116
  const buf = Buffer.alloc(44 + bytes);
104
117
  buf.write("RIFF", 0, "ascii");
105
118
  buf.writeUInt32LE(36 + bytes, 4);
106
119
  buf.write("WAVE", 8, "ascii");
107
120
  buf.write("fmt ", 12, "ascii");
108
121
  buf.writeUInt32LE(16, 16);
109
- buf.writeUInt16LE(1, 20); // WAVE_FORMAT_PCM
122
+ buf.writeUInt16LE(float ? 3 : 1, 20); // IEEE_FLOAT / PCM
110
123
  buf.writeUInt16LE(channels, 22);
111
124
  buf.writeUInt32LE(sampleRate, 24);
112
- buf.writeUInt32LE(sampleRate * channels * 2, 28);
113
- buf.writeUInt16LE(channels * 2, 32);
114
- buf.writeUInt16LE(16, 34);
125
+ buf.writeUInt32LE(sampleRate * channels * bytesPerSample, 28);
126
+ buf.writeUInt16LE(channels * bytesPerSample, 32);
127
+ buf.writeUInt16LE(float ? 32 : 16, 34);
115
128
  buf.write("data", 36, "ascii");
116
129
  buf.writeUInt32LE(bytes, 40);
117
130
  for (let i = 0; i < n; i++) {
131
+ if (float) {
132
+ buf.writeFloatLE(samples[i] ?? 0, 44 + i * 4);
133
+ continue;
134
+ }
118
135
  // Clamp before scaling: a limiter set to 0 dB or a resonant filter can push
119
136
  // past full scale, and wrapping would turn that into a click.
120
137
  const v = Math.max(-1, Math.min(1, samples[i] ?? 0));
@@ -219,7 +236,7 @@ export async function applyAudioFxChain(inputWav, chain, outputWav, options) {
219
236
  if (!existsSync(inputWav)) {
220
237
  throw new AudioFxRenderError(`Audio FX input is missing: ${inputWav}`);
221
238
  }
222
- const { samples, sampleRate, channels } = readWav(inputWav);
239
+ const { samples, sampleRate, channels, float } = readWav(inputWav);
223
240
  const planes = deinterleave(samples, channels);
224
241
  // An empty track has nothing to process — and an OfflineAudioContext of zero
225
242
  // length throws, which is fatal for the WHOLE render rather than this track:
@@ -254,93 +271,21 @@ export async function applyAudioFxChain(inputWav, chain, outputWav, options) {
254
271
  writeFileSync(hostPage, "<!doctype html><meta charset=utf-8><title>audio fx</title>");
255
272
  await page.goto(pathToFileURL(hostPage).href, { waitUntil: "domcontentloaded" });
256
273
  await page.addScriptTag({ content: getAudioFxRuntimeScript() });
257
- // Hand the input over a chunk at a time. The chunks stay separate byte
258
- // arrays page-side rather than being concatenated into one string, so
259
- // neither the frame cap nor V8's string limit sees the whole track.
260
- await page.evaluate((count) => {
261
- window.__HF_FX_IO = {
262
- in: Array.from({ length: count }, () => []),
263
- out: [],
264
- };
265
- }, planes.length);
266
- for (let p = 0; p < planes.length; p += 1) {
267
- const plane = planes[p];
268
- if (!plane)
269
- continue;
270
- const bytes = Buffer.from(plane.buffer, plane.byteOffset, plane.length * 4);
271
- for (let at = 0; at < bytes.length; at += TRANSFER_BYTES) {
272
- await page.evaluate(([index, b64]) => {
273
- const bin = atob(b64);
274
- const chunk = new Uint8Array(bin.length);
275
- for (let i = 0; i < bin.length; i++)
276
- chunk[i] = bin.charCodeAt(i);
277
- window.__HF_FX_IO?.in[index]?.push(chunk);
278
- }, [p, bytes.subarray(at, at + TRANSFER_BYTES).toString("base64")]);
279
- }
280
- }
281
- const outLengths = (await page.evaluate(async ([rate, chainJson, automationJson]) => {
282
- const w = window;
283
- const io = w.__HF_FX_IO;
284
- if (!w.__HF_AUDIO_FX || !io)
285
- throw new Error("audio FX runtime failed to load");
286
- const inPlanes = io.in.map((chunks) => {
287
- const bytes = new Uint8Array(chunks.reduce((n, c) => n + c.length, 0));
288
- let at = 0;
289
- for (const chunk of chunks) {
290
- bytes.set(chunk, at);
291
- at += chunk.length;
292
- }
293
- return new Float32Array(bytes.buffer);
294
- });
295
- // Dropped before the render allocates its own buffers, so the page
296
- // does not hold two copies of the track at once.
297
- io.in = [];
298
- io.out = await w.__HF_AUDIO_FX.render(inPlanes, rate, chainJson, automationJson || undefined);
299
- return io.out.map((plane) => plane.length);
300
- }, [
301
- sampleRate,
302
- JSON.stringify(chain),
303
- options.automation ? serializeAutomation(options.automation) : "",
304
- ]));
305
- const outPlanes = [];
306
- for (let p = 0; p < outLengths.length; p += 1) {
307
- const byteLength = (outLengths[p] ?? 0) * 4;
308
- const parts = [];
309
- for (let at = 0; at < byteLength; at += TRANSFER_BYTES) {
310
- const b64 = (await page.evaluate(([index, offset, limit]) => {
311
- const plane = window.__HF_FX_IO?.out[index];
312
- if (!plane)
313
- return "";
314
- const u8 = new Uint8Array(plane.buffer, plane.byteOffset + offset, Math.min(limit, plane.length * 4 - offset));
315
- let s = "";
316
- const CHUNK = 0x8000;
317
- for (let i = 0; i < u8.length; i += CHUNK) {
318
- // `apply` takes array-likes, so the subarray goes in as it is;
319
- // Array.from boxed every byte of a 32 KiB window for nothing.
320
- s += String.fromCharCode.apply(null, u8.subarray(i, i + CHUNK));
321
- }
322
- return btoa(s);
323
- }, [p, at, TRANSFER_BYTES]));
324
- parts.push(Buffer.from(b64, "base64"));
325
- }
326
- // byteOffset and byteLength matter: Node pools small allocations, so a
327
- // short payload decodes into an 8 KiB pool and a view over the whole
328
- // ArrayBuffer would read kilobytes of unrelated memory at the wrong length.
329
- const buf = Buffer.concat(parts);
330
- outPlanes.push(new Float32Array(buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength)));
331
- }
274
+ await sendPlanesToPage(page, planes);
275
+ const outLengths = await renderPlanesInPage(page, sampleRate, chain, options.automation ? serializeAutomation(options.automation) : "");
276
+ const outPlanes = await readPlanesFromPage(page, outLengths);
332
277
  if (outPlanes.length === 0 || (outPlanes[0]?.length ?? 0) === 0) {
333
278
  throw new AudioFxRenderError(`Audio FX produced no samples for track ${options.trackId}`);
334
279
  }
335
280
  // Null when the keyframes normalise away to nothing — then the mixer's
336
281
  // own paths still own this track's gain, so say so rather than claiming
337
282
  // a bake that never happened.
338
- const gainAt = options.envelope
339
- ? createEnvelopeWalker(options.envelope.keyframes, options.envelope.trackStart, options.envelope.baseVolume)
340
- : null;
283
+ const gainAt = envelopeWalkerFor(options.envelope);
341
284
  if (gainAt)
342
285
  applyEnvelopeToPlanes(outPlanes, sampleRate, gainAt);
343
- writeWav(outputWav, interleave(outPlanes), sampleRate, outPlanes.length);
286
+ // Same format in as out: a float input is a group sub-mix whose headroom
287
+ // must survive to its fader (see writeWav).
288
+ writeWav(outputWav, interleave(outPlanes), sampleRate, outPlanes.length, float);
344
289
  return { path: outputWav, envelopeBaked: gainAt !== null };
345
290
  }
346
291
  finally {
@@ -357,4 +302,97 @@ export async function applyAudioFxChain(inputWav, chain, outputWav, options) {
357
302
  await lease?.release().catch(() => undefined);
358
303
  }
359
304
  }
305
+ /**
306
+ * Hand the input planes to the page a chunk at a time.
307
+ *
308
+ * The chunks stay separate byte arrays page-side rather than being concatenated
309
+ * into one string, so neither the CDP frame cap nor V8's string limit ever sees
310
+ * the whole track.
311
+ */
312
+ async function sendPlanesToPage(page, planes) {
313
+ await page.evaluate((count) => {
314
+ window.__HF_FX_IO = {
315
+ in: Array.from({ length: count }, () => []),
316
+ out: [],
317
+ };
318
+ }, planes.length);
319
+ for (let p = 0; p < planes.length; p += 1) {
320
+ const plane = planes[p];
321
+ if (!plane)
322
+ continue;
323
+ const bytes = Buffer.from(plane.buffer, plane.byteOffset, plane.length * 4);
324
+ for (let at = 0; at < bytes.length; at += TRANSFER_BYTES) {
325
+ await page.evaluate(([index, b64]) => {
326
+ const bin = atob(b64);
327
+ const chunk = new Uint8Array(bin.length);
328
+ for (let i = 0; i < bin.length; i++)
329
+ chunk[i] = bin.charCodeAt(i);
330
+ window.__HF_FX_IO?.in[index]?.push(chunk);
331
+ }, [p, bytes.subarray(at, at + TRANSFER_BYTES).toString("base64")]);
332
+ }
333
+ }
334
+ }
335
+ /** Run the chain in the page and return each output plane's sample count. The
336
+ * samples themselves stay page-side until `readPlanesFromPage` pulls them. */
337
+ async function renderPlanesInPage(page, sampleRate, chain, automationJson) {
338
+ return (await page.evaluate(async ([rate, chainJson, automation]) => {
339
+ const w = window;
340
+ const io = w.__HF_FX_IO;
341
+ if (!w.__HF_AUDIO_FX || !io)
342
+ throw new Error("audio FX runtime failed to load");
343
+ const inPlanes = io.in.map((chunks) => {
344
+ const bytes = new Uint8Array(chunks.reduce((n, c) => n + c.length, 0));
345
+ let at = 0;
346
+ for (const chunk of chunks) {
347
+ bytes.set(chunk, at);
348
+ at += chunk.length;
349
+ }
350
+ return new Float32Array(bytes.buffer);
351
+ });
352
+ // Dropped before the render allocates its own buffers, so the page does
353
+ // not hold two copies of the track at once.
354
+ io.in = [];
355
+ io.out = await w.__HF_AUDIO_FX.render(inPlanes, rate, chainJson, automation || undefined);
356
+ return io.out.map((plane) => plane.length);
357
+ }, [sampleRate, JSON.stringify(chain), automationJson]));
358
+ }
359
+ /** Pull one output plane back over CDP, `TRANSFER_BYTES` at a time. */
360
+ async function readPlaneFromPage(page, index, byteLength) {
361
+ const parts = [];
362
+ for (let at = 0; at < byteLength; at += TRANSFER_BYTES) {
363
+ const b64 = (await page.evaluate(([plane_index, offset, limit]) => {
364
+ const plane = window.__HF_FX_IO?.out[plane_index];
365
+ if (!plane)
366
+ return "";
367
+ const u8 = new Uint8Array(plane.buffer, plane.byteOffset + offset, Math.min(limit, plane.length * 4 - offset));
368
+ let s = "";
369
+ const CHUNK = 0x8000;
370
+ for (let i = 0; i < u8.length; i += CHUNK) {
371
+ // `apply` takes array-likes, so the subarray goes in as it is;
372
+ // Array.from boxed every byte of a 32 KiB window for nothing.
373
+ s += String.fromCharCode.apply(null, u8.subarray(i, i + CHUNK));
374
+ }
375
+ return btoa(s);
376
+ }, [index, at, TRANSFER_BYTES]));
377
+ parts.push(Buffer.from(b64, "base64"));
378
+ }
379
+ // byteOffset and byteLength matter: Node pools small allocations, so a short
380
+ // payload decodes into an 8 KiB pool and a view over the whole ArrayBuffer
381
+ // would read kilobytes of unrelated memory at the wrong length.
382
+ const buf = Buffer.concat(parts);
383
+ return new Float32Array(buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength));
384
+ }
385
+ async function readPlanesFromPage(page, outLengths) {
386
+ const outPlanes = [];
387
+ for (let p = 0; p < outLengths.length; p += 1) {
388
+ outPlanes.push(await readPlaneFromPage(page, p, (outLengths[p] ?? 0) * 4));
389
+ }
390
+ return outPlanes;
391
+ }
392
+ /** The envelope walker for a track that has keyframes, or null when it has none. */
393
+ function envelopeWalkerFor(envelope) {
394
+ if (!envelope)
395
+ return null;
396
+ return createEnvelopeWalker(envelope.keyframes, envelope.trackStart, envelope.baseVolume);
397
+ }
360
398
  //# sourceMappingURL=audioFxRender.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"audioFxRender.js","sourceRoot":"","sources":["../../src/services/audioFxRender.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audioFxRender.js","sourceRoot":"","sources":["../../src/services/audioFxRender.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"audioMixer.d.ts","sourceRoot":"","sources":["../../src/services/audioMixer.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAcH,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAMjE,OAAO,KAAK,EACV,YAAY,EAIZ,SAAS,EACV,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAML,KAAK,gBAAgB,EACtB,MAAM,oCAAoC,CAAC;AAU5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAErE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,oBAAoB,cAAc,CAAC;AA+ThD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE;IAAE,KAAK,EAAE,gBAAgB,EAAE,CAAA;CAAE,EACzC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,mBAAmB,EAAE,GAAG,IAAI,CA+B9B;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAoG/D;AA8aD,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,YAAY,EAAE,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,WAAW,EACpB,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,sBAAsB,GAAG,WAAW,CAAC,CAAC,EAC1E,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,SAAS,CAAC,CAwbpB"}
1
+ {"version":3,"file":"audioMixer.d.ts","sourceRoot":"","sources":["../../src/services/audioMixer.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAcH,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAMjE,OAAO,KAAK,EACV,YAAY,EAIZ,SAAS,EACV,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAML,KAAK,gBAAgB,EACtB,MAAM,oCAAoC,CAAC;AAW5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAErE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAkWhD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE;IAAE,KAAK,EAAE,gBAAgB,EAAE,CAAA;CAAE,EACzC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,mBAAmB,EAAE,GAAG,IAAI,CA+B9B;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAsG/D;AA2dD,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,YAAY,EAAE,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,WAAW,EACpB,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,sBAAsB,GAAG,WAAW,CAAC,CAAC,EAC1E,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,SAAS,CAAC,CAmepB"}
@@ -23,6 +23,7 @@ import { HF_AUDIO_AUTOMATION_ATTR, parseAutomation, resolveAutomation, sampleAut
23
23
  import { chainTailSeconds } from "@hyperframes/core/audio-fx-tail";
24
24
  import { MEDIA_RENDER_ID_ATTR, normalizePlaybackRate, parseStrictFiniteTimingNumber, readMediaStart, } from "@hyperframes/core";
25
25
  import { HF_AUDIO_GROUP_ATTR, resolveAudioGroups } from "@hyperframes/core/audio-groups";
26
+ import { AUDIO_GROUP_RENDER_ID_ATTR } from "@hyperframes/core";
26
27
  import { applyAudioFxChain, AudioFxRenderError } from "./audioFxRender.js";
27
28
  /**
28
29
  * Filename every caller must use for the mixed-audio artifact.
@@ -38,9 +39,42 @@ import { applyAudioFxChain, AudioFxRenderError } from "./audioFxRender.js";
38
39
  * the PNG-sequence sidecar, and all three have to agree.
39
40
  */
40
41
  export const MIXED_AUDIO_FILENAME = "audio.m4a";
42
+ /**
43
+ * The bus key a member belongs to, as `resolveAudioGroups` keys them.
44
+ *
45
+ * The compiler's `data-hf-group-render-id` names one INSTANCE of a bus; the
46
+ * author's `data-audio-group` names it only within its own composition file. A
47
+ * sub-composition declaring a bus and its members, used twice, therefore had
48
+ * both instances' members under one key: one sub-mix for two independent buses,
49
+ * one instance's fader and chain over the other's audio, and — with only the
50
+ * second muted — BOTH instances dropped from the export. Uncompiled documents
51
+ * (the live preview) carry no stamp and read exactly as before.
52
+ */
53
+ function memberGroupKey(el) {
54
+ return el.getAttribute(AUDIO_GROUP_RENDER_ID_ATTR) ?? el.getAttribute(HF_AUDIO_GROUP_ATTR);
55
+ }
41
56
  function clampVolume(volume) {
42
57
  return clampAudioGain(volume);
43
58
  }
59
+ /**
60
+ * An author-controlled id, made safe to put in a filename.
61
+ *
62
+ * `data-audio-group` reaches this file straight from the document — the
63
+ * studio's `GROUP_ID_PATTERN` guards only ids the studio itself mints, and a
64
+ * hand-authored or agent-written one is unvalidated. Interpolated raw it could
65
+ * carry `/` or `..`, and `mkdirSync(recursive)` inside ffmpeg's own path
66
+ * handling would then write outside `workDir`, where `bail()`'s `rmSync` never
67
+ * cleans it up. Everything outside [A-Za-z0-9_-] collapses to `_`, and every
68
+ * result gets a stable positional suffix so distinct ids that sanitize alike
69
+ * cannot share one intermediate file.
70
+ */
71
+ function safePathSegment(id, fallbackIndex) {
72
+ const cleaned = id.replace(/[^A-Za-z0-9_-]/g, "_");
73
+ // Sanitisation is many-to-one (`bed/a` and `bed?a` both become `bed_a`).
74
+ // The stable position keeps every authored group on a distinct temp path
75
+ // even when their readable portions collide.
76
+ return `${cleaned || "group"}-${fallbackIndex}`;
77
+ }
44
78
  function formatFilterNumber(value) {
45
79
  return Number(value.toFixed(6)).toString();
46
80
  }
@@ -378,7 +412,7 @@ export function parseAudioElements(html) {
378
412
  // mute-by-volume-0) — members never enter the sub-mix.
379
413
  const groupsById = new Map(resolveAudioGroups(document).map((group) => [group.id, group]));
380
414
  const memberGroupHidden = (el) => {
381
- const groupId = el.getAttribute(HF_AUDIO_GROUP_ATTR);
415
+ const groupId = memberGroupKey(el);
382
416
  return groupId ? (groupsById.get(groupId)?.hidden ?? false) : false;
383
417
  };
384
418
  // <audio> and <video data-has-audio> tracks differ only in the emitted id
@@ -391,7 +425,7 @@ export function parseAudioElements(html) {
391
425
  const automation = el.getAttribute(HF_AUDIO_AUTOMATION_ATTR);
392
426
  // Audio only in v1 (matches resolveAudioGroups, which only scans
393
427
  // `audio[data-audio-group]`) — a stray attribute on a <video> is inert.
394
- const groupId = type === "audio" ? el.getAttribute(HF_AUDIO_GROUP_ATTR) : null;
428
+ const groupId = type === "audio" ? memberGroupKey(el) : null;
395
429
  const group = groupId ? groupsById.get(groupId) : undefined;
396
430
  return {
397
431
  id,
@@ -421,6 +455,8 @@ export function parseAudioElements(html) {
421
455
  const trackId = (el) => el.getAttribute(MEDIA_RENDER_ID_ATTR) || el.getAttribute("id");
422
456
  for (const el of document.querySelectorAll("audio[id][src]")) {
423
457
  const id = trackId(el);
458
+ // `memberGroupHidden` is the group's own mute: a hidden BUS drops every
459
+ // member from the mix, the same way `isHidden` drops one track.
424
460
  if (!id || !el.getAttribute("src") || isHidden(el) || memberGroupHidden(el))
425
461
  continue;
426
462
  if (isKnownInactiveTimelineWindow(el, resolveStart(el)))
@@ -729,6 +765,14 @@ async function mixAudioTracks(tracks, outputPath, totalDuration, signal, config)
729
765
  : undefined,
730
766
  };
731
767
  }
768
+ /**
769
+ * Verified against the real binary, because the wording is the whole contract:
770
+ * ffmpeg 8.1.1 emits `Error applying option 'X' to filter 'amix': Option not
771
+ * found`, which "option not found" matches. Only pre-4.4 libavfilter's
772
+ * `Option 'normalize' not found` phrasing sits outside the first test — and
773
+ * that build predates `normalize` existing at all, so it would fail for the
774
+ * right reason anyway. A review pass read this as dead and it is not.
775
+ */
732
776
  function groupNormalizeOptionUnsupported(stderr) {
733
777
  return (/normalize/i.test(stderr) &&
734
778
  /(?:unrecognized option|option (?:was )?not found|no option name)/i.test(stderr));
@@ -754,18 +798,26 @@ async function mixGroupMembers(memberTracks, outputPath, totalDuration, signal,
754
798
  const outputDir = dirname(outputPath);
755
799
  if (!existsSync(outputDir))
756
800
  mkdirSync(outputDir, { recursive: true });
757
- const inputFilters = memberTracks.map((track, i) => {
801
+ const buildInputFilters = (ignoreKeyframes) => memberTracks.map((track, i) => {
758
802
  const delayMs = Math.round(track.start * 1000);
759
803
  const trimDuration = track.end - track.start + (track.tailSeconds ?? 0);
760
- const volumeFilter = buildVolumeExpression(track);
761
- return `[${i}:a]atrim=0:${formatFilterNumber(trimDuration)},${volumeFilter},adelay=${delayMs}|${delayMs},apad,atrim=0:${formatFilterNumber(totalDuration)}[a${i}]`;
804
+ const volumeFilter = buildVolumeExpression(track, ignoreKeyframes);
805
+ // Same `asetpts=N/SR/TB` as the master mix above, for the same reason and
806
+ // on the same builds: these are delayed branches padded to length and then
807
+ // amix'd, so without the renumbering a delayed member lands at t=0 and a
808
+ // group of four or more loses its last one.
809
+ return `[${i}:a]atrim=0:${formatFilterNumber(trimDuration)},${volumeFilter},adelay=${delayMs}|${delayMs},apad,asetpts=N/SR/TB,atrim=0:${formatFilterNumber(totalDuration)}[a${i}]`;
762
810
  });
763
811
  const mixInputs = memberTracks.map((_, i) => `[a${i}]`).join("");
764
- const runOnce = async (useNormalize) => {
812
+ const runOnce = async (useNormalize, ignoreKeyframes = false) => {
813
+ const inputFilters = buildInputFilters(ignoreKeyframes);
765
814
  const mixFilter = useNormalize
766
815
  ? `${mixInputs}amix=inputs=${memberTracks.length}:duration=longest:dropout_transition=0:normalize=0[out]`
767
- : // amix's default normalize divides by input count; compensate by THIS
768
- // group's own member count never the render's global track count.
816
+ : // Every member is padded and trimmed to totalDuration above, and
817
+ // dropout_transition=0 keeps all N inputs active for that whole span.
818
+ // amix's default normalize therefore divides by exactly N throughout;
819
+ // compensate by THIS group's own member count — never the render's
820
+ // global track count.
769
821
  `${mixInputs}amix=inputs=${memberTracks.length}:duration=longest:dropout_transition=0[mixed];[mixed]volume=${formatFilterNumber(memberTracks.length)}[out]`;
770
822
  const filterComplex = [...inputFilters, mixFilter].join(";");
771
823
  const scriptDir = mkdtempSync(join(outputDir, ".group-filter-complex-"));
@@ -786,8 +838,15 @@ async function mixGroupMembers(memberTracks, outputPath, totalDuration, signal,
786
838
  scriptPath,
787
839
  "-map",
788
840
  "[out]",
841
+ // Float, not pcm_s16le: `normalize=0` sums the members at unity, so any
842
+ // over-unity sum hard-clipped at ±1 in the intermediate — BEFORE the
843
+ // group's FX chain and its fader ran. Pulling the group down, or the
844
+ // Giant preset's compressor, then operated on distortion. Preview
845
+ // cannot reproduce it (its bus is float), and it only shows up in the
846
+ // export. Both readers downstream take float: `readWav` (format 3) and
847
+ // `applyVolumeEnvelopeToWav`.
789
848
  "-acodec",
790
- "pcm_s16le",
849
+ "pcm_f32le",
791
850
  "-ar",
792
851
  "48000",
793
852
  "-t",
@@ -807,15 +866,31 @@ async function mixGroupMembers(memberTracks, outputPath, totalDuration, signal,
807
866
  rmSync(scriptDir, { recursive: true, force: true });
808
867
  }
809
868
  };
810
- let result = await runOnce(true);
869
+ let useNormalize = true;
870
+ let result = await runOnce(useNormalize);
811
871
  if (!result.success && groupNormalizeOptionUnsupported(result.stderr)) {
812
- result = await runOnce(false);
872
+ useNormalize = false;
873
+ result = await runOnce(useNormalize);
874
+ }
875
+ // The same defence `mixAudioTracks` has, which this forked without: a
876
+ // member's volume automation becomes an ffmpeg `volume` expression whose
877
+ // evaluator limits are build-dependent, so a dense envelope can fail the
878
+ // whole run. Ungrouped, that track degrades to base volume with a warning;
879
+ // grouped, it took the entire composition's audio down with it.
880
+ let degradedAutomation = false;
881
+ const hasAutomation = memberTracks.some((track) => (track.volumeKeyframes?.length ?? 0) > 0);
882
+ if (!result.success && !signal?.aborted && hasAutomation) {
883
+ const retry = await runOnce(useNormalize, true);
884
+ if (retry.success) {
885
+ result = retry;
886
+ degradedAutomation = true;
887
+ }
813
888
  }
814
889
  if (signal?.aborted)
815
890
  return { success: false, error: "Group sub-mix cancelled" };
816
891
  if (!result.success)
817
892
  return { success: false, error: formatFfmpegError(result.exitCode, result.stderr) };
818
- return { success: true };
893
+ return { success: true, degradedAutomation };
819
894
  }
820
895
  export async function processCompositionAudio(elements, baseDir, workDir, outputPath, totalDuration, signal, config, compiledDir) {
821
896
  const startMs = Date.now();
@@ -1107,63 +1182,93 @@ export async function processCompositionAudio(elements, baseDir, workDir, output
1107
1182
  // clock is composition time (offset 0): a group has no `data-start` of its
1108
1183
  // own, and members are already delayed to their composition positions
1109
1184
  // inside the sub-mix, so the group WAV's t=0 IS composition time.
1185
+ const groupsDegradedAutomation = [];
1186
+ let groupIndex = -1;
1110
1187
  for (const [groupId, memberTracks] of groupTracks) {
1188
+ groupIndex += 1;
1111
1189
  const meta = groupMeta.get(groupId);
1112
1190
  if (!meta)
1113
1191
  continue;
1114
- const groupWavPath = join(workDir, `group-${groupId}.wav`);
1115
- const subMix = await mixGroupMembers(memberTracks, groupWavPath, totalDuration, effectiveSignal, config);
1116
- if (!subMix.success) {
1192
+ const pathId = safePathSegment(groupId, groupIndex);
1193
+ const groupWavPath = join(workDir, `group-${pathId}.wav`);
1194
+ // Same contract the per-element loop above gives: a malformed `data-fx-chain`
1195
+ // or `data-automation` on a BUS threw straight out of processCompositionAudio,
1196
+ // bypassing the MixResult/failures[] shape the caller handles and skipping
1197
+ // `bail()`, so the temp dir leaked too. An AudioFxRenderError stays fatal
1198
+ // for the same reason it is fatal per element: shipping the dry signal in
1199
+ // place of a processed one sounds plausible and is not what was authored.
1200
+ try {
1201
+ const subMix = await mixGroupMembers(memberTracks, groupWavPath, totalDuration, effectiveSignal, config);
1202
+ if (!subMix.success) {
1203
+ failures.push({
1204
+ stage: "mix",
1205
+ reason: "ffmpeg_failed",
1206
+ owner: "system",
1207
+ retryable: false,
1208
+ elementId: groupId,
1209
+ detail: boundedDetail(`Group sub-mix failed for group ${groupId}: ${subMix.error ?? "unknown"}`),
1210
+ });
1211
+ continue;
1212
+ }
1213
+ if (subMix.degradedAutomation)
1214
+ groupsDegradedAutomation.push(groupId);
1215
+ // Composition-time automation (offset 0, duration totalDuration) — same
1216
+ // resolve/lane/bake path a member uses, just anchored at the group clock
1217
+ // instead of a clip's own start.
1218
+ const automation = meta.automation
1219
+ ? resolveAutomation(parseAutomation(meta.automation), meta.fxChain ? parseAudioFxChain(meta.fxChain) : undefined)
1220
+ : null;
1221
+ const laneKeyframes = automation ? volumeLaneKeyframes(automation, 0, totalDuration) : null;
1222
+ const envelope = laneKeyframes && laneKeyframes.length > 0
1223
+ ? { keyframes: laneKeyframes, trackStart: 0, baseVolume: meta.volume }
1224
+ : null;
1225
+ let groupSrcPath = groupWavPath;
1226
+ let bakedEnvelope = false;
1227
+ if (meta.fxChain) {
1228
+ const chain = parseAudioFxChain(meta.fxChain);
1229
+ const fxResult = await applyAudioFxChain(groupSrcPath, chain, join(workDir, `group-${pathId}-fx.wav`), {
1230
+ trackId: groupId,
1231
+ signal: effectiveSignal,
1232
+ ...(automation ? { automation } : {}),
1233
+ ...(envelope ? { envelope } : {}),
1234
+ });
1235
+ groupSrcPath = fxResult.path;
1236
+ bakedEnvelope = fxResult.envelopeBaked;
1237
+ }
1238
+ if (envelope && !bakedEnvelope) {
1239
+ bakedEnvelope = applyVolumeEnvelopeToWav(groupSrcPath, envelope.keyframes, envelope.trackStart, envelope.baseVolume);
1240
+ }
1241
+ // `end` is already the render's totalDuration, so the outer mix's own
1242
+ // atrim-to-totalDuration clips this track exactly the same way it would
1243
+ // an ungrouped one whose clip ran to the end of the render — a group's FX
1244
+ // tail gets the same "never past the end of the video" treatment member
1245
+ // tails get, for free, with no separate tailSeconds bookkeeping needed.
1246
+ tracks.push({
1247
+ id: groupId,
1248
+ srcPath: groupSrcPath,
1249
+ start: 0,
1250
+ end: totalDuration,
1251
+ mediaStart: 0,
1252
+ duration: totalDuration,
1253
+ volume: bakedEnvelope ? 1.0 : meta.volume,
1254
+ // Same fallback an ungrouped track gets: when the envelope could not be
1255
+ // baked into the samples, hand the keyframes to the outer mix's volume
1256
+ // expression instead of dropping the group's automation on the floor.
1257
+ ...(bakedEnvelope || !laneKeyframes?.length ? {} : { volumeKeyframes: laneKeyframes }),
1258
+ });
1259
+ }
1260
+ catch (err) {
1261
+ if (err instanceof AudioFxRenderError)
1262
+ throw err;
1117
1263
  failures.push({
1118
1264
  stage: "mix",
1119
- reason: "ffmpeg_failed",
1265
+ reason: "internal",
1120
1266
  owner: "system",
1121
1267
  retryable: false,
1122
1268
  elementId: groupId,
1123
- detail: boundedDetail(`Group sub-mix failed for group ${groupId}: ${subMix.error ?? "unknown"}`),
1269
+ detail: boundedDetail(`Audio processing failed for group ${groupId}: ${err instanceof Error ? err.message : String(err)}`),
1124
1270
  });
1125
- continue;
1126
- }
1127
- // Composition-time automation (offset 0, duration totalDuration) — same
1128
- // resolve/lane/bake path a member uses, just anchored at the group clock
1129
- // instead of a clip's own start.
1130
- const automation = meta.automation
1131
- ? resolveAutomation(parseAutomation(meta.automation), meta.fxChain ? parseAudioFxChain(meta.fxChain) : undefined)
1132
- : null;
1133
- const laneKeyframes = automation ? volumeLaneKeyframes(automation, 0, totalDuration) : null;
1134
- const envelope = laneKeyframes && laneKeyframes.length > 0
1135
- ? { keyframes: laneKeyframes, trackStart: 0, baseVolume: meta.volume }
1136
- : null;
1137
- let groupSrcPath = groupWavPath;
1138
- let bakedEnvelope = false;
1139
- if (meta.fxChain) {
1140
- const chain = parseAudioFxChain(meta.fxChain);
1141
- const fxResult = await applyAudioFxChain(groupSrcPath, chain, join(workDir, `group-${groupId}-fx.wav`), {
1142
- trackId: groupId,
1143
- signal: effectiveSignal,
1144
- ...(automation ? { automation } : {}),
1145
- ...(envelope ? { envelope } : {}),
1146
- });
1147
- groupSrcPath = fxResult.path;
1148
- bakedEnvelope = fxResult.envelopeBaked;
1149
1271
  }
1150
- if (envelope && !bakedEnvelope) {
1151
- bakedEnvelope = applyVolumeEnvelopeToWav(groupSrcPath, envelope.keyframes, envelope.trackStart, envelope.baseVolume);
1152
- }
1153
- // `end` is already the render's totalDuration, so the outer mix's own
1154
- // atrim-to-totalDuration clips this track exactly the same way it would
1155
- // an ungrouped one whose clip ran to the end of the render — a group's FX
1156
- // tail gets the same "never past the end of the video" treatment member
1157
- // tails get, for free, with no separate tailSeconds bookkeeping needed.
1158
- tracks.push({
1159
- id: groupId,
1160
- srcPath: groupSrcPath,
1161
- start: 0,
1162
- end: totalDuration,
1163
- mediaStart: 0,
1164
- duration: totalDuration,
1165
- volume: bakedEnvelope ? 1.0 : meta.volume,
1166
- });
1167
1272
  }
1168
1273
  if (failures.length > 0)
1169
1274
  return bail();
@@ -1174,10 +1279,20 @@ export async function processCompositionAudio(elements, baseDir, workDir, output
1174
1279
  catch {
1175
1280
  /* ignore */
1176
1281
  }
1282
+ // A group whose sub-mix had to drop member automation reports it the same
1283
+ // way mixAudioTracks reports its own degradation: on a SUCCESSFUL result, so
1284
+ // the render ships and the caller can still say what was lost.
1285
+ const degradedNote = groupsDegradedAutomation.length > 0
1286
+ ? `Volume automation exceeded this ffmpeg build's expression limits in group(s) ${groupsDegradedAutomation.join(", ")}; rendered at base volume`
1287
+ : undefined;
1177
1288
  return {
1178
1289
  ...mixResult,
1179
1290
  durationMs: Date.now() - startMs,
1180
- error: mixResult.error,
1291
+ // Both, when both degraded. `mixResult.error ?? degradedNote` reported only
1292
+ // the outer mix and dropped the one that names which GROUPS lost their
1293
+ // members' automation — two different losses, and the operator needs to
1294
+ // hear about the one they can act on.
1295
+ error: [mixResult.error, degradedNote].filter(Boolean).join("; ") || undefined,
1181
1296
  };
1182
1297
  }
1183
1298
  //# sourceMappingURL=audioMixer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"audioMixer.js","sourceRoot":"","sources":["../../src/services/audioMixer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audioMixer.js","sourceRoot":"","sources":["../../src/services/audioMixer.ts"],"names":[],"mappings":"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"}
@@ -29,8 +29,8 @@ export declare function createEnvelopeWalker(keyframes: AudioVolumeKeyframe[], t
29
29
  /**
30
30
  * Multiply a prepared WAV's samples by a time-varying gain envelope in place.
31
31
  *
32
- * @returns `true` if the envelope was applied; `false` if the file isn't the
33
- * expected 16-bit PCM (caller should fall back to the expression path).
32
+ * @returns `true` if the envelope was applied; `false` if the file is neither
33
+ * 16-bit PCM nor 32-bit float (caller should fall back to the expression path).
34
34
  */
35
35
  export declare function applyVolumeEnvelopeToWav(wavPath: string, keyframes: AudioVolumeKeyframe[], trackStart: number, baseVolume: number): boolean;
36
36
  //# sourceMappingURL=audioVolumeEnvelope.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"audioVolumeEnvelope.d.ts","sourceRoot":"","sources":["../../src/services/audioVolumeEnvelope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAoDjE;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,mBAAmB,EAAE,EAChC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,IAAI,CAkBnC;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,mBAAmB,EAAE,EAChC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAqCT"}
1
+ {"version":3,"file":"audioVolumeEnvelope.d.ts","sourceRoot":"","sources":["../../src/services/audioVolumeEnvelope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAuEjE;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,mBAAmB,EAAE,EAChC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,IAAI,CAkBnC;AA+BD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,mBAAmB,EAAE,EAChC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAwBT"}
@@ -19,31 +19,34 @@ import { randomBytes } from "crypto";
19
19
  import { normaliseEnvelope } from "@hyperframes/core/media-volume-envelope";
20
20
  import { riffChunks } from "./wavChunks.js";
21
21
  const PCM_FORMAT = 1; // WAVE_FORMAT_PCM
22
- const SUPPORTED_BITS = 16;
23
- /**
24
- * Locate the `fmt ` and `data` chunks and validate the format we know how to edit.
25
- *
26
- * Scans every chunk rather than assuming an ordering: the loop always advances
27
- * past a chunk's body (using its declared size), so `data` may precede `fmt `
28
- * and trailing chunks (LIST/fact/etc.) are skipped harmlessly. Returns null on
29
- * anything unexpected so the caller falls back to the expression path.
30
- */
31
- function parseWavLayout(buffer) {
32
- if (buffer.length < 12 || buffer.toString("ascii", 0, 4) !== "RIFF")
22
+ const FLOAT_FORMAT = 3; // WAVE_FORMAT_IEEE_FLOAT
23
+ /** The `fmt ` chunk, or null for a format this cannot safely edit in place. */
24
+ function readFmtChunk(buffer, body) {
25
+ const format = buffer.readUInt16LE(body);
26
+ const bits = buffer.readUInt16LE(body + 14);
27
+ const float = format === FLOAT_FORMAT;
28
+ if (!float && format !== PCM_FORMAT)
33
29
  return null;
34
- if (buffer.toString("ascii", 8, 12) !== "WAVE")
30
+ if (bits !== (float ? 32 : 16))
31
+ return null;
32
+ const numChannels = buffer.readUInt16LE(body + 2);
33
+ if (numChannels < 1)
34
+ return null;
35
+ return { numChannels, sampleRate: buffer.readUInt32LE(body + 4), float };
36
+ }
37
+ function isRiffWave(buffer) {
38
+ return (buffer.length >= 12 &&
39
+ buffer.toString("ascii", 0, 4) === "RIFF" &&
40
+ buffer.toString("ascii", 8, 12) === "WAVE");
41
+ }
42
+ function parseWavLayout(buffer) {
43
+ if (!isRiffWave(buffer))
35
44
  return null;
36
45
  let fmt = null;
37
46
  let data = null;
38
47
  for (const { id, body, size } of riffChunks(buffer)) {
39
48
  if (id === "fmt " && body + 16 <= buffer.length) {
40
- if (buffer.readUInt16LE(body) !== PCM_FORMAT)
41
- return null;
42
- fmt = {
43
- numChannels: buffer.readUInt16LE(body + 2),
44
- sampleRate: buffer.readUInt32LE(body + 4),
45
- bitsPerSample: buffer.readUInt16LE(body + 14),
46
- };
49
+ fmt = readFmtChunk(buffer, body);
47
50
  }
48
51
  else if (id === "data") {
49
52
  data = { offset: body, size: Math.min(size, buffer.length - body) };
@@ -51,14 +54,7 @@ function parseWavLayout(buffer) {
51
54
  }
52
55
  if (!fmt || !data)
53
56
  return null;
54
- if (fmt.bitsPerSample !== SUPPORTED_BITS || fmt.numChannels < 1)
55
- return null;
56
- return {
57
- numChannels: fmt.numChannels,
58
- sampleRate: fmt.sampleRate,
59
- dataOffset: data.offset,
60
- dataSize: data.size,
61
- };
57
+ return { ...fmt, dataOffset: data.offset, dataSize: data.size };
62
58
  }
63
59
  /**
64
60
  * A gain lookup that walks forward through the envelope with a segment cursor,
@@ -90,11 +86,34 @@ export function createEnvelopeWalker(keyframes, trackStart, baseVolume) {
90
86
  return a.volume + (b.volume - a.volume) * progress;
91
87
  };
92
88
  }
89
+ /** Every sample scaled by the envelope, in place, in whichever of the two
90
+ * formats the layout reports. Float is NOT clamped: it is the format the group
91
+ * sub-mix writes precisely so an over-unity sum keeps its headroom until
92
+ * something downstream chooses to reduce it. */
93
+ function scaleSamples(buffer, layout, gainAt) {
94
+ const { numChannels, sampleRate, dataOffset, dataSize, float } = layout;
95
+ const bytesPerSample = float ? 4 : 2;
96
+ const frameBytes = numChannels * bytesPerSample;
97
+ const frameCount = Math.floor(dataSize / frameBytes);
98
+ const scaleOne = float
99
+ ? (at, gain) => buffer.writeFloatLE(buffer.readFloatLE(at) * gain, at)
100
+ : (at, gain) => {
101
+ const scaled = Math.round(buffer.readInt16LE(at) * gain);
102
+ buffer.writeInt16LE(scaled < -32768 ? -32768 : scaled > 32767 ? 32767 : scaled, at);
103
+ };
104
+ for (let frame = 0; frame < frameCount; frame += 1) {
105
+ const gain = gainAt(frame / sampleRate);
106
+ const base = dataOffset + frame * frameBytes;
107
+ for (let channel = 0; channel < numChannels; channel += 1) {
108
+ scaleOne(base + channel * bytesPerSample, gain);
109
+ }
110
+ }
111
+ }
93
112
  /**
94
113
  * Multiply a prepared WAV's samples by a time-varying gain envelope in place.
95
114
  *
96
- * @returns `true` if the envelope was applied; `false` if the file isn't the
97
- * expected 16-bit PCM (caller should fall back to the expression path).
115
+ * @returns `true` if the envelope was applied; `false` if the file is neither
116
+ * 16-bit PCM nor 32-bit float (caller should fall back to the expression path).
98
117
  */
99
118
  export function applyVolumeEnvelopeToWav(wavPath, keyframes, trackStart, baseVolume) {
100
119
  const gainAt = createEnvelopeWalker(keyframes, trackStart, baseVolume);
@@ -105,19 +124,7 @@ export function applyVolumeEnvelopeToWav(wavPath, keyframes, trackStart, baseVol
105
124
  const layout = parseWavLayout(buffer);
106
125
  if (!layout)
107
126
  return false;
108
- const { numChannels, sampleRate, dataOffset, dataSize } = layout;
109
- const bytesPerSample = SUPPORTED_BITS / 8;
110
- const frameBytes = numChannels * bytesPerSample;
111
- const frameCount = Math.floor(dataSize / frameBytes);
112
- for (let frame = 0; frame < frameCount; frame += 1) {
113
- const gain = gainAt(frame / sampleRate);
114
- const base = dataOffset + frame * frameBytes;
115
- for (let channel = 0; channel < numChannels; channel += 1) {
116
- const at = base + channel * bytesPerSample;
117
- const scaled = Math.round(buffer.readInt16LE(at) * gain);
118
- buffer.writeInt16LE(scaled < -32768 ? -32768 : scaled > 32767 ? 32767 : scaled, at);
119
- }
120
- }
127
+ scaleSamples(buffer, layout, gainAt);
121
128
  // Write to a uniquely-named sibling then atomically rename over the
122
129
  // original. The random name avoids following a pre-planted symlink at a
123
130
  // predictable path, and the rename means a crash mid-write can't leave a
@@ -1 +1 @@
1
- {"version":3,"file":"audioVolumeEnvelope.js","sourceRoot":"","sources":["../../src/services/audioVolumeEnvelope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audioVolumeEnvelope.js","sourceRoot":"","sources":["../../src/services/audioVolumeEnvelope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,kBAAkB;AACxC,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,yBAAyB;AA4BjD,+EAA+E;AAC/E,SAAS,YAAY,CAAC,MAAc,EAAE,IAAY;IAChD,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,KAAK,YAAY,CAAC;IACtC,IAAI,CAAC,KAAK,IAAI,MAAM,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAClD,IAAI,WAAW,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;AAC3E,CAAC;AAED,SAAS,UAAU,CAAC,MAAc;IAChC,OAAO,CACL,MAAM,CAAC,MAAM,IAAI,EAAE;QACnB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM;QACzC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,MAAM,CAC3C,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,MAAc;IACpC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAErC,IAAI,GAAG,GAAkB,IAAI,CAAC;IAC9B,IAAI,IAAI,GAA4C,IAAI,CAAC;IAEzD,KAAK,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACpD,IAAI,EAAE,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChD,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;aAAM,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;YACzB,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;QACtE,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AAClE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,SAAgC,EAChC,UAAkB,EAClB,UAAkB;IAElB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,OAAO,CAAC,IAAY,EAAU,EAAE;QAC9B,SAAS,CAAC;YACR,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YACnC,IAAI,OAAO,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI;gBAAE,MAAM;YACvE,OAAO,IAAI,CAAC,CAAC;QACf,CAAC;QACD,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;QACrC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;QAC7B,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAClF,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC;AAED;;;iDAGiD;AACjD,SAAS,YAAY,CACnB,MAAc,EACd,MAAiB,EACjB,MAAmC;IAEnC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACxE,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,WAAW,GAAG,cAAc,CAAC;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,KAAK;QACpB,CAAC,CAAC,CAAC,EAAU,EAAE,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;QACtF,CAAC,CAAC,CAAC,EAAU,EAAE,IAAY,EAAE,EAAE;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YACzD,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACtF,CAAC,CAAC;IAEN,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,UAAU,GAAG,KAAK,GAAG,UAAU,CAAC;QAC7C,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;YAC1D,QAAQ,CAAC,IAAI,GAAG,OAAO,GAAG,cAAc,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAe,EACf,SAAgC,EAChC,UAAkB,EAClB,UAAkB;IAElB,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACvE,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE1B,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAErC,oEAAoE;QACpE,wEAAwE;QACxE,yEAAyE;QACzE,wCAAwC;QACxC,MAAM,QAAQ,GAAG,GAAG,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QACpE,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,sEAAsE;QACtE,2EAA2E;QAC3E,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperframes/engine",
3
- "version": "0.8.11",
3
+ "version": "0.8.13",
4
4
  "description": "Seekable web page to video rendering engine (Puppeteer + FFmpeg)",
5
5
  "repository": {
6
6
  "type": "git",
@@ -38,8 +38,8 @@
38
38
  "linkedom": "^0.18.12",
39
39
  "puppeteer": "^25.8.0",
40
40
  "puppeteer-core": "^25.8.0",
41
- "@hyperframes/core": "^0.8.11",
42
- "@hyperframes/parsers": "^0.8.11"
41
+ "@hyperframes/core": "^0.8.13",
42
+ "@hyperframes/parsers": "^0.8.13"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/node": "^25.0.10",