Repository navigation
Oxidify v0.6.0
Oxidify 0.6.0
The library opens at once and playlists fill in seconds, local playback starts from the first fragment, and two new things to see: Jump, a palette that finds anything in your library as you type, and Your listening, a page of what you actually played.
Fast
- The library opens at once. The playlist list, Liked Songs, and every playlist you have opened before are kept on disk and show the moment the app starts. Spotify's answer replaces them only where something changed: a playlist's rows give way only if its snapshot moved on, Liked Songs stay when the live first page and count match.
- Playlists fill in seconds. A playlist's pages used to come one at a time, each asked for only when you scrolled near the end, and nothing showed until the playlist's own details had answered. The first page now sets off the next four together, pages show in order as they land, rows draw under what the library already knows of the playlist, and the details request no longer downloads a hundred songs it never used. Liked Songs, saved albums, podcasts and album pages load the same way.
- Local playback starts from the first fragment. Free-account playback opened its decoder in a mode that walked the whole file before the first sample, which on YouTube's fragmented audio meant most of the file arriving in serial quarter-megabyte round trips first. It now opens streaming, reads the rest ahead in the background, and starts the moment the headers are in; on a test server answering in 100 ms, a three-minute song's first sound moved from 1.14 seconds and eleven requests to 127 milliseconds and two. Matches are remembered on disk, search results for a week and stream URLs until they expire, so a song played again starts without a lookup; the next track is prefetched as soon as the queue is known and survives a press of Next.
- Lighter all round. Table rows are built once per change of the list rather than on every frame, the sidebar looks each rank up once per sort instead of scanning the recents for every comparison, and the Spotify audio sink sleeps until it is needed instead of polling a hundred times a second.
New
- Jump.
Ctrl+Kopens a palette over the page that finds any song, playlist, album, artist or podcast already in your library as you type, offline and at once, plus a few commands. Enter plays a song or opens anything else,Ctrl+Enterplays a playlist, album or artist whole, the arrows move the choice, and Esc closes it. - Your listening. From the account menu or Jump: time listened, plays, different songs and artists, the songs, artists and albums you played most, a chart of plays by day or by month, and how many days in a row you have listened, by week, month, year or all time. A play is counted once a song has run for half a minute, on this computer, in a file you can clear from the page. Nothing about it is sent anywhere.
Fixed
- Artist names in the player bar were cut in half. The band under the cover was a fixed height that fit the fonts with one point to spare; a scale factor or a fallback face cut the names. The band now comes from the fonts in use, and track rows take the same layout.
- Changing the audio output no longer stops the music. Connecting headphones or switching the default output reopens the output and carries on; only an output that will not open stops playback.
- The playing context's cover offers pause. Cards on Home and the sidebar covers of what is playing show pause and toggle playback instead of starting the context over, personalised playlists included.
- Sorting by album keeps each album in track order, whichever way the albums run, and tells two albums of the same name apart.
- The transport spins while the next track loads on a skip, and a failed load clears it.
- The resume point survives an abrupt end. A new song marks it, and so does playing music every half minute.
- Other devices are polled every thirty seconds, not four, while the window is minimised and nothing plays.
Compatibility
Settings and session files from earlier versions load unchanged. The new files are the library snapshot under the cache directory, the listening history and the alternate audio match memory under the state directory; all three are safe to delete. Free-account alternate playback keeps its routing and its labelling; this update adds no Spotify playback capability to Free accounts.
Downloads
Windows installers and portable ZIPs are available for x64 and ARM64. The macOS DMG contains a universal app for Apple Silicon and Intel. Linux archives are available for x64 and ARM64. checksums.txt lists SHA-256 hashes; the provenance file identifies the source commit and build run.
Automated tests run on Linux, macOS, and Windows, including headless renders of every page, panel and dialog, engine tests for the fragmented-file start, the read-ahead and the prefetch, and tests for the page fan-out, the disk snapshots, the palette's ranking and the listening sums. The interface was exercised on Linux in demo mode; macOS and Windows were compiled and tested by CI, not driven by hand. The playback timings above come from a local test server, not from YouTube; live Spotify-account playback and live loading times were not measured for this release.
Windows SmartScreen or macOS Gatekeeper may warn about an unsigned download. See the installation guide for platform instructions.