mirror of
https://github.com/Psychotoxical/psysonic.git
synced 2026-07-21 14:55:43 +00:00
dcec30166a
* fix(audio): frame-align gapless-off track-separation silence The 500 ms silence prepended between tracks when gapless playback is disabled and the previous track ended naturally was built with `Zero<f32>::new(ch, sr).take_duration(500ms)`. Rodio's `TakeDuration` computes its sample count via integer-nanosecond division (`1_000_000_000 / (sr * ch)`), which truncates: at 44.1 kHz / 2 ch this emits 44103 samples = 22051.5 frames, half a frame short. That half-frame leak shifts the next source's L/R parity in the device frame stream. Multiple users have reported the next track playing only on the right channel — exactly when gapless is OFF and the previous track ended naturally (manual skip and album-first-play bypass the silence prepend, which matches the reproducer report). Replace with `SamplesBuffer::new(ch, sr, vec![0; frames * ch])` where `frames = sr / 2`. Frame-aligned by construction, same audible effect. * docs(changelog): add #439 mono-channel fix entry * chore(credits): add #439 to Psychotoxical contributions * docs(changelog): strip @ from non-contributor mention in #435 entry Plain-text 'zunoz on Discord' instead of '@zunoz' so GitHub does not attribute the requester as a contributor on subsequent merges.