Files
hyperframes/scripts
Vance IngallsandClaude Opus 5.5 07a126d80f fix(core): preview audio fades play as ramps on the audio clock, so cuts no longer click (#6397)
* fix(core): preview audio fades play as ramps on the audio clock, so cuts no longer click

data-fade-in / data-fade-out were folded into one volume per 50 ms sync tick and applied as
a step (el.volume, or gain.value in the Web Audio transport), so a 20 ms fade never played
and each clip started and stopped at near full level: a click at every cut. The export
applies the fades (ffmpeg afade) and does not click.

The transport now books each clip's fades on a gain of its own when it schedules the
clip, for both decoded buffers and captured media elements: a linear ramp from where the
clip starts sounding up to its fade-in, and down to silence at its end. The sync tick hands
the transport the level without the fade (onElementVolume's new fifth argument, sent only
where a fade applies), so a booked fade is not applied twice. The plain el.volume fallback
keeps its stepped fade.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(core): one doc block on setElementVolume

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(core): keep the comment share where it was

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(core): booked fades hold through pre-roll, follow rate changes, skip unbounded ends

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* chore: raise the producer unpacked budget to the measured size plus 1%

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 06:25:24 +00:00
..