mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-10-30 09:16:55 +00:00
* 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>