Releases: better-lyrics/tacet
Release list
v1.3.0
What's Changed
- feat: sing-along per song, and the next track on the source ladder by @boidushya in #14
Full Changelog: v1.2.0...v1.3.0
v1.2.0
What's Changed
- feat(settings): let crossfade run without sing-along by @boidushya in #13
Full Changelog: v1.1.2...v1.2.0
v1.1.2
What's Changed
- fix(playback): keep the crossfade cue alive and smooth the handover by @boidushya in #12
Full Changelog: v1.1.1...v1.1.2
v1.1.1
What's Changed
- fix(automix): stop a gapless append silencing the crossfade cue by @boidushya in #11
Full Changelog: v1.1.0...v1.1.1
v1.1.0
What's Changed
- feat(acquisition): acquire a track from a url the page mints itself by @boidushya in #10
Full Changelog: v1.0.1...v1.1.0
v1.0.1
What's Changed
- fix(capture): stop a second track's media being served as the first track's audio by @boidushya in #9
Full Changelog: v1.0.0...v1.0.1
v1.0.0
What's Changed
- feat(automix): crossfade between tracks without waiting for separation by @boidushya in #7
- feat(popup): rebuild around tabs and show what is playing by @boidushya in #8
Full Changelog: v0.4.0...v1.0.0
v0.4.0
What's Changed
- fix(fader): keep the level handle on the pointer while dragging by @boidushya in #5
Full Changelog: v0.3.1...v0.4.0
v0.3.1
What's Changed
- feat(ui): choose whether the fader sits in the dock or the player bar by @boidushya in #4
Full Changelog: v0.3.0...v0.3.1
v0.3.0
Highlights
A half precision model. htdemucs now comes in two precisions and you pick one in the popup. Half is an 83 MB download against Full's 163 MB, sounds pretty much the same, and builds its session about 4x faster (260 ms against 1047 ms). Inference itself is only slightly quicker, 398 ms against 463 ms a segment on Apple metal-3, so take it for the download rather than the separation speed. It measures 32 dB SNR and 0.9997 correlation against the full precision reference. Full stays the default, and switching applies from the next track with no reload.
Worth knowing: a naive fp16 conversion is entirely NaN on WebGPU. ORT's CPU kernels widen to fp32 internally while its WebGPU shaders compute in f16 natively, so reductions crossing 65504 saturate. Three sites in this graph do, one of which corrupts the output without ever producing a NaN. All three are excluded in tooling/convert-fp16.py, and stems are now checked for NaN before they are cached, since the Opus encoder turns them into silence.
No more stuttered starts. A track that already had stems sounded like it started twice. Every transport event rebuilt the buffer sources, and play and playing both fire at a track start, so the stems were torn down and restarted three times in the first two seconds. They now restart only when they have actually drifted from the track.
Separations stopped dying at the model. A separation could fail immediately after the decode with "No separation model URL is configured", killing that track. The offscreen document had to ask the background for the model URL, and a reply that arrived perfectly could still be rejected on shape. It is now handed the model with the settings it already receives, so there is no request to lose, and a missing field degrades instead of failing the run.
The fader clears the player bar. When the control sits in YouTube Music's own player bar rather than the Better Lyrics dock, its tooltip and card overlapped the progress bar. They now sit above it.
What's Changed
- fix(playback): stop rebuilding the stem sources on every transport event by @boidushya in #2
- fix: stop the offscreen document asking for its model URL by @boidushya in #3
New Contributors
- @boidushya made their first contribution in #2
Full Changelog: v0.2.0...v0.3.0