You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fast / Balanced / High now means something to both engines: grain size for Punchy, analysis block for Smooth, with each one's accuracy printed under its button.
The player lays out sideways. A short, wide window puts the cover on the left and everything else beside it, instead of squeezing the artwork into a sliver.
The preset browser has drawers. 9,795 presets filed by category or by author, with search, favourites and a back button that walks up a level.
Speed reads in the unit you set it in. Semitones or multipliers, whichever you chose leads and the other follows.
System colors theme: the palette Android builds from your wallpaper, your featured colour and the Contrast setting.
Audio delay for the visualizer. Holds it back by up to half a second so it matches what you hear over Bluetooth.
Add to playlist and Send file in the player's ⋮, replacing three view toggles that were already a tap away.
Changed
The dialogs and the preset browser are real glass. They are drawn inside the window they blur, because a dialog opens its own window and cannot blur the one underneath.
The dock and play button are glass. They blur the artwork and the reactive glow, which now moves through them as it pulses.
Backdrop blur and tint reach the player's own panels, and the frost fades in and out rather than cutting.
Preset rotation is one setting with an Off in it: Off, On a timer, or Each track, replacing two switches that each claimed the job.
Target FPS reaches 240 and actually caps something, with vsync off, which is the case it was always described for.
The visualizer holds the display at its own frame rate while it draws, instead of letting the panel idle down.
Fixed
Pitch moved the tone controls, not the music. The shifter was left out of the audio chain for every track that started at zero, so the buttons wrote a number nothing read.
Pitch playback stopped stuttering. The vocoder did a whole analysis block in one audio callback and almost nothing in the next; the median call did 6.9 µs against an 817 µs mean.
AutoEQ could install no correction at all. A late redesign overwrote the built curve with the empty one it started from, leaving the response flat to six decimal places.
Playlist exports that actually import. Apple Music's UTF-16 came back as gibberish and Spotify's own byte-order mark hid the title column. Apple Music, Spotify, Soundiiz and TuneMyMusic all load now.
Preset rotation stopped resetting itself. The migration read a DataStore key no build has ever written, so everyone got the timer regardless of what they had chosen.
Skipping a track with the visualizer closed no longer moves your preset. The queued change fired the moment you reopened it.
Re-picking a preset the timer had moved past works. The "already showing it" shortcut trusted a cache that goes stale on every internal rotation.
Choosing a preset applies straight away. It was being loaded on a thread with no GL context, so nothing happened until you closed and reopened the visualizer.
The visualizer stops changing speed with the refresh rate. projectM was told a frame rate it was not running at, so presets ran a third fast at 165 Hz and half speed at 55.
The album colour cross-fade no longer stutters the whole app. It recomposed the composition root 120 times a second for the length of every fade.
Three allocations off the audio thread. The pitch processor allocated a direct ByteBuffer per block, about a thousand a minute.
Two data races in native audio. A WSOLA reconfigure could index 8188 of a 2048-entry table, and the visualizer's audio bus could destroy a PCM frame.
Opening the player no longer builds the preset index: 9,795 names through a regex split and three map insertions each, on the composition thread, for listeners who never open the browser.
Scrolling the browser no longer scans 479 authors per row, and favouriting one preset no longer re-filters all 9,795.
The Shuffle/Manual chip no longer paints as on for a moment before flipping to off.
The frame cap measures frames that were drawn rather than frames it decided to draw.
Import dialogs are legible instead of transparent.
The preset browser's search bar is glass cut from the mini player's material.
Removed
Frame Rate and Resolution settings. A display-mode pin is a vote, and it was arguing the app's own panel down against per-app overrides.
Two dead fields and a dead property whose only occurrence was their own declaration.