mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-10-30 09:16:55 +00:00
* fix(cli): audio --read starts music where its sound is sustained A run of the bed is split where sound fills less than half of the surrounding 2 s, so a short tone and scattered clicks that bridge into the music no longer pull its start earlier. Sparse stretches are left to effects. * fix(cli): audio --read finds effects in each stem and levels them from the mix A sound ends where the next one starts, so a run of kicks is not one long riser. Effects are searched in the drums and in the bed outside music, each on its own, so a click inside a tone is still found. Each effect's peak is read from the decoded mix in dBFS, and the music reference is taken next to the effect rather than under it, where its own leakage sits. * fix(cli): audio --read measures the recording through each pause Pauses carry the whole recording's level so the read can say what keeps playing while the voice stops. * feat(cli): audio --read prints peaks, what plays in pauses, voice vs music Effect lines print the absolute peak and name the reference of the relative figure; pause lines keep the pause kind and list the effects, music and ambience under them; sentences over music print voice and music loudness and which is louder. Read schema version 4. * fix(cli): audio --read finds bed effects on the whole bed, not a blanked one Blanking the bed wherever music or ambience played made every blanked stretch that ended while sound was still audible look like a sound rising out of silence. Fades and quiet bridges then printed as dings, hits and whooshes. The bed is now searched whole, and each source carries the spans it plays music or ambience in. A sound whose onset-to-peak overlaps one of those spans belongs to it, so it is not an effect. The drums and the bare mix carry no spans. — Jerrai --------- Co-authored-by: Jerrai <jerrai@heygen.com>