Root cause of "no voiceover": in audioMixCommand the [voice] label was used both as the sidechaincompress key AND as an amix input. FFmpeg does NOT auto-split a reused label, so the ducking sidechain consumed the voice entirely and the amix reference got no audio -- the narration never made it into any final mix (every render played ducked music with a silent hole where the voice should be). Fix: explicitly `asplit=2[voice_key][voice_mix]` so one copy keys the duck and one copy stays in the mix. Measured: voice window went from ~-30..-53 dB (silent) to ~-16 dB (present, leading the bed). Revert the compensating +8 dB over-boost back to unity; music bed lowered to -14 dB so narration leads cleanly. Also make SFX direction OPTIONAL in the validator (matching the earlier voiceover-optional change) so a clean music+narration edit with no sound effects validates. Regression test added for the asplit. mvn -o verify green (248 tests). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bg76sLc43Wc3j5ZcLkboYR |
||
|---|---|---|
| .claude/skills | ||
| .idea | ||
| dashboards | ||
| docs | ||
| input/source | ||
| output | ||
| src | ||
| tools | ||
| .gitignore | ||
| pom.xml | ||