Archilyzer · Source

archilyzer

Archilyzer
git clone https://archilyzer.pages.dev/source/archilyzer.git
Log | Files | Refs | README | LICENSE

commit 5f42c57ecb7910e5b4eb427371bd86edab88955f
parent d8fc333ddeefd7db919e7eed2c34c233e202ffd6
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Thu,  1 Oct 2026 14:41:35 -0400

plans: the crossfade drift is fixed (d8fc333d), not left

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

Diffstat:
Mplans/deck-posts.md | 14++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/plans/deck-posts.md b/plans/deck-posts.md @@ -261,11 +261,9 @@ Gates on ebe10c84: Found and left: -- **The crossfade concat drifts the sound ahead of the picture, before this branch too.** - Crossfaded segments have audio up to 40 ms shorter than their video (AAC framing), and - `acrossfade` joins the sound by its own lengths while `xfade` uses the picture's. The ferret - cut's audio is 359.901 s against 360.200 s of picture, as in the build made before this branch, so by the last - clip the sound runs 0.3 s early. A `muteFrom` silences the right sound in the clip's own audio, - but in the final it falls up to that drift before the matching picture. Padding each input's - sound to its picture's length (`apad=whole_dur`) before the join would fix it, but that changes - every crossfaded cut's graph. +- **The crossfade concat drifted the sound ahead of the picture — fixed in 6771cfb8.** Encoded + segments' audio is routinely a few to ~20 ms off their video, and `acrossfade` joined the sound + by its own lengths while `xfade` used the picture's: the ferret cut's sound ran 0.3 s early by + the last clip (2.0 s on revision 2, with cards). `xfadeGraph` now pins each input's sound to its + length in the cut (`apad=whole_dur`, `atrim=end`) before the join, so a `muteFrom` lands on its + picture too. Every crossfaded cut's graph changed; `av-sync.test.mjs` holds it with real ffmpeg.