From 2ba7e4f5401836c70bfc591bc37043e47b71093a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20=C3=81ngel?= Date: Tue, 21 Apr 2026 11:03:38 -0400 Subject: [PATCH 1/2] fix: remove hidden audio gain in renders --- packages/engine/src/config.test.ts | 1 + packages/engine/src/config.ts | 2 +- .../engine/src/services/audioMixer.test.ts | 67 +++++++++++++++++++ packages/engine/src/services/audioMixer.ts | 2 +- .../src/services/renderOrchestrator.test.ts | 2 +- packages/studio/tsconfig.json | 1 + 6 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 packages/engine/src/services/audioMixer.test.ts diff --git a/packages/engine/src/config.test.ts b/packages/engine/src/config.test.ts index ce26ae847..69465d67c 100644 --- a/packages/engine/src/config.test.ts +++ b/packages/engine/src/config.test.ts @@ -29,6 +29,7 @@ describe("resolveConfig", () => { expect(config.quality).toBe("standard"); expect(config.format).toBe("jpeg"); expect(config.jpegQuality).toBe(80); + expect(config.audioGain).toBe(1); expect(config.debug).toBe(false); }); diff --git a/packages/engine/src/config.ts b/packages/engine/src/config.ts index b1c1f01ff..b0ea98d96 100644 --- a/packages/engine/src/config.ts +++ b/packages/engine/src/config.ts @@ -105,7 +105,7 @@ export const DEFAULT_CONFIG: EngineConfig = { hdr: false, hdrAutoDetect: true, - audioGain: 1.35, + audioGain: 1, frameDataUriCacheLimit: 256, playerReadyTimeout: 45_000, diff --git a/packages/engine/src/services/audioMixer.test.ts b/packages/engine/src/services/audioMixer.test.ts new file mode 100644 index 000000000..bdccb005e --- /dev/null +++ b/packages/engine/src/services/audioMixer.test.ts @@ -0,0 +1,67 @@ +import { afterEach, describe, expect, it, vi } from "vitest"; +import { mkdtempSync, rmSync, writeFileSync } from "node:fs"; +import { join } from "node:path"; +import { tmpdir } from "node:os"; + +const { runFfmpegMock } = vi.hoisted(() => ({ + runFfmpegMock: vi.fn(async () => ({ + success: true, + durationMs: 1, + stderr: "", + exitCode: 0, + })), +})); + +vi.mock("../utils/runFfmpeg.js", () => ({ + runFfmpeg: runFfmpegMock, +})); + +import { processCompositionAudio } from "./audioMixer.js"; + +describe("processCompositionAudio", () => { + const tempDirs: string[] = []; + + afterEach(() => { + runFfmpegMock.mockClear(); + for (const dir of tempDirs.splice(0)) { + rmSync(dir, { recursive: true, force: true }); + } + }); + + it("preserves muted tracks and uses unity master gain by default", async () => { + const baseDir = mkdtempSync(join(tmpdir(), "hf-audio-base-")); + const workDir = mkdtempSync(join(tmpdir(), "hf-audio-work-")); + tempDirs.push(baseDir, workDir); + + writeFileSync(join(baseDir, "voice.wav"), "stub"); + + const result = await processCompositionAudio( + [ + { + id: "voice", + src: "voice.wav", + start: 0, + end: 2, + mediaStart: 0, + layer: 0, + volume: 0, + type: "audio", + }, + ], + baseDir, + workDir, + join(baseDir, "out.m4a"), + 2, + ); + + expect(result.success).toBe(true); + expect(runFfmpegMock).toHaveBeenCalledTimes(2); + + const mixArgs = runFfmpegMock.mock.calls[1]?.[0]; + const filterIndex = mixArgs.indexOf("-filter_complex"); + const filter = mixArgs[filterIndex + 1]; + + expect(filter).toContain("volume=0"); + expect(filter).toContain("[mixed]volume=1[out]"); + }); +}); diff --git a/packages/engine/src/services/audioMixer.ts b/packages/engine/src/services/audioMixer.ts index 2a928776f..6875bb567 100644 --- a/packages/engine/src/services/audioMixer.ts +++ b/packages/engine/src/services/audioMixer.ts @@ -396,7 +396,7 @@ export async function processCompositionAudio( end: element.end, mediaStart: element.mediaStart, duration: element.end - element.start, - volume: element.volume || 1.0, + volume: element.volume ?? 1.0, }); } catch (err: unknown) { errors.push(`Error: ${element.id} — ${err instanceof Error ? err.message : String(err)}`); diff --git a/packages/producer/src/services/renderOrchestrator.test.ts b/packages/producer/src/services/renderOrchestrator.test.ts index 6ec80f584..c805fd026 100644 --- a/packages/producer/src/services/renderOrchestrator.test.ts +++ b/packages/producer/src/services/renderOrchestrator.test.ts @@ -203,7 +203,7 @@ describe("applyRenderModeHints", () => { ffmpegEncodeTimeout: 600000, ffmpegProcessTimeout: 300000, ffmpegStreamingTimeout: 600000, - audioGain: 1.35, + audioGain: 1, frameDataUriCacheLimit: 256, playerReadyTimeout: 45000, renderReadyTimeout: 15000, diff --git a/packages/studio/tsconfig.json b/packages/studio/tsconfig.json index f4b2eff2b..2d6dc608f 100644 --- a/packages/studio/tsconfig.json +++ b/packages/studio/tsconfig.json @@ -16,6 +16,7 @@ "declarationMap": true, "sourceMap": true, "outDir": "dist", + "rootDir": "..", "types": ["vite/client"], "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, From 845f0987784885bfc078899438b360bb2454a8f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20=C3=81ngel?= Date: Tue, 21 Apr 2026 14:01:00 -0400 Subject: [PATCH 2/2] test: update silent audio regression baselines --- packages/producer/src/regression-harness.ts | 63 +---- .../src/utils/audioRegression.test.ts | 16 ++ .../producer/src/utils/audioRegression.ts | 79 +++++++ .../font-variant-numeric/output/compiled.html | 94 ++++---- .../font-variant-numeric/output/output.mp4 | 4 +- .../missing-host-comp-id/output/compiled.html | 221 ++++++++---------- .../missing-host-comp-id/output/output.mp4 | 4 +- 7 files changed, 235 insertions(+), 246 deletions(-) create mode 100644 packages/producer/src/utils/audioRegression.test.ts create mode 100644 packages/producer/src/utils/audioRegression.ts diff --git a/packages/producer/src/regression-harness.ts b/packages/producer/src/regression-harness.ts index c559918e2..96662df72 100644 --- a/packages/producer/src/regression-harness.ts +++ b/packages/producer/src/regression-harness.ts @@ -18,6 +18,7 @@ import { createRenderJob, executeRenderJob } from "./services/renderOrchestrator import { compileForRender } from "./services/htmlCompiler.js"; import { validateCompilation } from "./services/compilationTester.js"; import { extractVideoMetadata } from "./utils/ffprobe.js"; +import { buildRmsEnvelope, compareAudioEnvelopes } from "./utils/audioRegression.js"; // ── Types ──────────────────────────────────────────────────────────────────── @@ -348,66 +349,6 @@ function extractMonoPcm16(videoPath: string): Int16Array { } } -function buildRmsEnvelope(samples: Int16Array, windowSize = 2048, hopSize = 1024): number[] { - if (samples.length < windowSize) return []; - const envelope: number[] = []; - for (let start = 0; start + windowSize <= samples.length; start += hopSize) { - let energy = 0; - for (let i = 0; i < windowSize; i += 1) { - const normalized = (samples[start + i] ?? 0) / 32768; - energy += normalized * normalized; - } - envelope.push(Math.sqrt(energy / windowSize)); - } - return envelope; -} - -function correlationAtLag(a: number[], b: number[], lag: number): number { - const startA = Math.max(0, lag); - const startB = Math.max(0, -lag); - const length = Math.min(a.length - startA, b.length - startB); - if (length <= 32) return -1; - - let meanA = 0; - let meanB = 0; - for (let i = 0; i < length; i += 1) { - meanA += a[startA + i] ?? 0; - meanB += b[startB + i] ?? 0; - } - meanA /= length; - meanB /= length; - - let numerator = 0; - let denA = 0; - let denB = 0; - for (let i = 0; i < length; i += 1) { - const da = (a[startA + i] ?? 0) - meanA; - const db = (b[startB + i] ?? 0) - meanB; - numerator += da * db; - denA += da * da; - denB += db * db; - } - if (denA <= 1e-12 || denB <= 1e-12) return -1; - return numerator / Math.sqrt(denA * denB); -} - -function bestEnvelopeCorrelation( - rendered: number[], - snapshot: number[], - maxLagWindows: number, -): { correlation: number; lagWindows: number } { - let best = -1; - let bestLag = 0; - for (let lag = -maxLagWindows; lag <= maxLagWindows; lag += 1) { - const corr = correlationAtLag(rendered, snapshot, lag); - if (corr > best) { - best = corr; - bestLag = lag; - } - } - return { correlation: best, lagWindows: bestLag }; -} - // ── Failure Reporting ──────────────────────────────────────────────────────── function saveFailureDetails( @@ -751,7 +692,7 @@ async function runTestSuite( if (renderedAudio.length > 0 && snapshotAudio.length > 0) { const renderedEnvelope = buildRmsEnvelope(renderedAudio); const snapshotEnvelope = buildRmsEnvelope(snapshotAudio); - const audio = bestEnvelopeCorrelation( + const audio = compareAudioEnvelopes( renderedEnvelope, snapshotEnvelope, suite.meta.maxAudioLagWindows, diff --git a/packages/producer/src/utils/audioRegression.test.ts b/packages/producer/src/utils/audioRegression.test.ts new file mode 100644 index 000000000..ba7c6521e --- /dev/null +++ b/packages/producer/src/utils/audioRegression.test.ts @@ -0,0 +1,16 @@ +import { describe, expect, it } from "vitest"; +import { buildRmsEnvelope, compareAudioEnvelopes } from "./audioRegression.js"; + +describe("compareAudioEnvelopes", () => { + it("treats silent-vs-silent audio as a perfect match", () => { + const silentSamples = new Int16Array(4096); + + const rendered = buildRmsEnvelope(silentSamples); + const snapshot = buildRmsEnvelope(silentSamples); + + expect(compareAudioEnvelopes(rendered, snapshot, 120)).toEqual({ + correlation: 1, + lagWindows: 0, + }); + }); +}); diff --git a/packages/producer/src/utils/audioRegression.ts b/packages/producer/src/utils/audioRegression.ts new file mode 100644 index 000000000..5acc06af8 --- /dev/null +++ b/packages/producer/src/utils/audioRegression.ts @@ -0,0 +1,79 @@ +export function buildRmsEnvelope(samples: Int16Array, windowSize = 2048, hopSize = 1024): number[] { + if (samples.length < windowSize) return []; + const envelope: number[] = []; + for (let start = 0; start + windowSize <= samples.length; start += hopSize) { + let energy = 0; + for (let i = 0; i < windowSize; i += 1) { + const normalized = (samples[start + i] ?? 0) / 32768; + energy += normalized * normalized; + } + envelope.push(Math.sqrt(energy / windowSize)); + } + return envelope; +} + +function correlationAtLag(a: number[], b: number[], lag: number): number { + const startA = Math.max(0, lag); + const startB = Math.max(0, -lag); + const length = Math.min(a.length - startA, b.length - startB); + if (length <= 32) return -1; + + let meanA = 0; + let meanB = 0; + for (let i = 0; i < length; i += 1) { + meanA += a[startA + i] ?? 0; + meanB += b[startB + i] ?? 0; + } + meanA /= length; + meanB /= length; + + let numerator = 0; + let denA = 0; + let denB = 0; + for (let i = 0; i < length; i += 1) { + const da = (a[startA + i] ?? 0) - meanA; + const db = (b[startB + i] ?? 0) - meanB; + numerator += da * db; + denA += da * da; + denB += db * db; + } + if (denA <= 1e-12 || denB <= 1e-12) return -1; + return numerator / Math.sqrt(denA * denB); +} + +function bestEnvelopeCorrelation( + rendered: number[], + snapshot: number[], + maxLagWindows: number, +): { correlation: number; lagWindows: number } { + let best = -1; + let bestLag = 0; + for (let lag = -maxLagWindows; lag <= maxLagWindows; lag += 1) { + const corr = correlationAtLag(rendered, snapshot, lag); + if (corr > best) { + best = corr; + bestLag = lag; + } + } + return { correlation: best, lagWindows: bestLag }; +} + +function isSilentEnvelope(envelope: number[]): boolean { + return envelope.length > 0 && envelope.every((sample) => Math.abs(sample) <= 1e-9); +} + +export function compareAudioEnvelopes( + rendered: number[], + snapshot: number[], + maxLagWindows: number, +): { correlation: number; lagWindows: number } { + if (rendered.length === 0 || snapshot.length === 0) { + return { correlation: 1, lagWindows: 0 }; + } + + if (isSilentEnvelope(rendered) && isSilentEnvelope(snapshot)) { + return { correlation: 1, lagWindows: 0 }; + } + + return bestEnvelopeCorrelation(rendered, snapshot, maxLagWindows); +} diff --git a/packages/producer/tests/font-variant-numeric/output/compiled.html b/packages/producer/tests/font-variant-numeric/output/compiled.html index 3cd931758..c74692232 100644 --- a/packages/producer/tests/font-variant-numeric/output/compiled.html +++ b/packages/producer/tests/font-variant-numeric/output/compiled.html @@ -1,30 +1,40 @@ - + - - - - +@font-face { + font-family: "Space Mono"; + src: url("data:font/woff2;base64,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") format("woff2"); + font-style: normal; + font-weight: 700; + font-display: block; +} + + Font Variant Numeric Test - + - - - + -
+
COUNTER
0000
- +
- - + }); diff --git a/packages/producer/tests/font-variant-numeric/output/output.mp4 b/packages/producer/tests/font-variant-numeric/output/output.mp4 index f9bf90c1a..daec8f466 100644 --- a/packages/producer/tests/font-variant-numeric/output/output.mp4 +++ b/packages/producer/tests/font-variant-numeric/output/output.mp4 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d2e098b9bd60796b15b6945a75bf4b7e9bd0939f806e0501ef59922d9522d0a6 -size 142963 +oid sha256:506ae124493ffc9bfc543eae709106249646069937014ded2d6edbe661ce832a +size 151013 diff --git a/packages/producer/tests/missing-host-comp-id/output/compiled.html b/packages/producer/tests/missing-host-comp-id/output/compiled.html index 87975bb42..3534e7d14 100644 --- a/packages/producer/tests/missing-host-comp-id/output/compiled.html +++ b/packages/producer/tests/missing-host-comp-id/output/compiled.html @@ -1,66 +1,70 @@ - + - - - - +@font-face { + font-family: "Arial"; + src: url("data:font/woff2;base64,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") format("woff2"); + font-style: normal; + font-weight: 900; + font-display: block; +} + + Missing Host Composition Id - - - + -
- -
-
-
Scoped Text Should Stay Styled
-
-
+
+ +
+
Scoped Text Should Stay Styled
+ + + + +
- - +; +(function(){ + var __compId = "scoped-text"; + var __run = function() { + try { + const tl = gsap.timeline({ paused: true }); + tl.to({}, { duration: 3 }); + window.__timelines = window.__timelines || {}; + window.__timelines["scoped-text"] = tl; + } catch (_err) { + console.error("[Compiler] Composition script failed", __compId, _err); + } + }; + if (!__compId) { __run(); return; } + var __selector = '[data-composition-id="' + (__compId + '').replace(/"/g, '\\"') + '"]'; + var __attempt = 0; + var __tryRun = function() { + if (document.querySelector(__selector)) { __run(); return; } + if (++__attempt >= 8) { __run(); return; } + requestAnimationFrame(__tryRun); + }; + __tryRun(); +})() diff --git a/packages/producer/tests/missing-host-comp-id/output/output.mp4 b/packages/producer/tests/missing-host-comp-id/output/output.mp4 index ba51c2ba1..96ccafea3 100644 --- a/packages/producer/tests/missing-host-comp-id/output/output.mp4 +++ b/packages/producer/tests/missing-host-comp-id/output/output.mp4 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7a2e53926e44d66a469e74eee88035987e309786eb44fef17de9f34114de0813 -size 105638 +oid sha256:a84e50ad31694432affb1bffd42bde653514662ccb1dbb8172b0eab2d80147d5 +size 129943