0.21.0 — updates that arrive, 1754 presets, and a desktop you can live on
The release where three things this project believed turned out to be false.
Finding that out was worth more than the features.
Fixed
Updates never actually arrived. The .exe.blockmap was never published, so
electron-updater's differential download has 404'd on every client since
auto-update shipped and every update refetched all 114MB. The install directory
was changeable, which is how an update lands beside the app rather than over
it and leaves you uninstalling by hand. And it checked exactly once, at startup,
on an app people leave running for days that ships most days.
And it never said so. The state lived inside the tray's right-click menu, on
an app whose entire surface is a full-screen overlay — it could download, sit
ready, and the only way to find out was to go looking. There is now a pill while
it downloads and a card with Restart now / Later once there is a decision to
make.
The visual governor was feeding itself. Profiling a real song put resize
at 289ms of self time, for a function that reallocates a WebGL drawing buffer
and should fire a handful of times a session. Its own comment claimed it never
changed faster than once a second; the code only guarded the way up. One long
frame dropped a resolution rung, the reallocation cost another long frame, and
that dropped the next.
The wrong artist was on the mic — 0.20.0's own known issue.
Added
1754 MilkDrop presets, up from 395. The four bundles 0.19.0 shipped were
never the catalogue: butterchurn-presets also ships the corpus they were
compiled from, so 1360 more looks had been sitting in node_modules unused.
They ship as files read on demand, three bundles are deleted, and the installer
grows by almost nothing.
A browser you choose with your eyes. Preset names written by strangers in
2003 tell you nothing about what one looks like, so the browser renders a
preview of each — by the engine itself, cached to disk, and only for cards you
scroll to. Like the ones you want, hide the ones you never want to see again
(hidden ones leave the dice and the beat-synced cycle too), and step through
with the arrow keys, watching rather than reading.
Wallpaper mode. Ctrl+Alt+M cycles to a fourth size that renders behind
the desktop icons rather than over everything — the app becomes something that
is simply on. It stays clickable, which took work: a window parented into the
desktop receives no mouse input from Windows at all.
Per-line artist attribution. One cached pass works out who sings each line
and the named dancer takes the mic. Credited artists and dancers are not the
same list — a registry duo is one credit and two dancers — so the mapping
matches on names and declines rather than guessing.
Kugou as a third synced lyric source, after LRCLIB and NetEase, keyless.
Three beliefs measured out of existence
- The screen-share prompt does not happen. The roadmap called it adoption
blocker #3 and named a native WASAPI addon as the fix — one of only two places
it allowed native code. That was written before the app grew a display-media
handler that auto-approves with no picker. Photographed 1.2s after a real
cursor click: no dialog anywhere, capture already running. Dropped, not
deferred. - The frame dips are not MilkDrop's. They reproduce on the swirl engine and
correlate with startup work, recovering on their own. - The progress-bar throttle was already done, and had been for releases,
while the notes listed it as outstanding.
Known
- Per-line attribution has never made a successful provider call. Both
configured providers are failing here — quota, and a token without the
Inference Providers scope. It starts working with no code change once a key
does. - The installer is 116.6MB; splitting out the ONNX runtime is a module-loading
change that cannot be verified without installing and transcribing a song.
Install
Download LyricOverlay-Setup-0.21.0.exe. If you are on 0.20.0, this is the
first release your copy can fetch differentially rather than whole.