Releases: szeremeta1/Vespertine
Release list
Vespertine 0.6.2
Volume keys that reach your DAC, albums that list each song once, and skipping that never stalls playback.
Improved
- Volume keys, Control Center and the AirPods Max crown reach the device Vespertine plays on, even with exclusive access. macOS never makes a device another app holds exclusively the Mac's sound output, so the keys used to change whatever device macOS picked instead. Playing on AirPods Max, for example, they changed the speakers. While Vespertine holds a device, volume and mute now go to that device, and the sound output takes its level, so each key press steps from where the volume really is. When Vespertine lets the device go, the sound output gets its own volume and mute back.
- The Mac's own speakers and headphone jack always play shared. Exclusive access gains nothing there: they only take float formats, and shared mode still plays bit-perfect (and says so) while no other app is using them. It also kept the volume keys from reaching them. External DACs are unchanged.
- Albums list each song once, in order. A song can be in your library twice: in Imported Music and on a network share, or as two copies of the same edition. It now shows as one row, marked "+ COPY" or with the other copy's format ("+ 16/44.1", "+ MP3"). Playback picks the best copy: lossless first, then channels, sample rate and bit depth, and a local copy before a network one.
- Songs are listed in disc and track order. A song with no disc number counts as disc 1 instead of jumping to the top.
- Vinyl-style positions ("A1") no longer show every track as 0. Missing track numbers are read from file names that can't be misread ("05 Title", "… - 05 - Title"), and a missing disc number from a numbered disc folder ("CD 02").
- Multi-disc album pages number tracks disc·track ("1·10", "2·1"…), so you can see where the next disc begins.
Fixed
- Skipping to a song at another sample rate could stop playback for good, with "Waiting for … to reconnect" while the DAC was still connected. Reconfiguring the DAC several times in quick succession could leave it paused for Vespertine. Vespertine now keeps hold of the DAC between songs and lets each change finish before the next one. If an output ever does refuse to start, Vespertine says so plainly instead of waiting forever.
- Some songs lost their fake hi-res verdict and never got it back, because their stored analysis counted as done. Verdicts are now restored from the stored analysis.
- Songs in network-share folders with characters SMB can't carry (
?,:) got no server analysis. They are now matched by size and date.
Install
Download Vespertine-0.6.2.dmg, or let Vespertine update itself. Requires macOS 26 or later on Apple silicon or Intel. Signed with a Developer ID, notarized and stapled.
Vespertine 0.6.1
Favorites, Spatial Audio for every speaker layout, and no more freezes when you press play.
New
- Favorites. Click the heart beside a song to keep it in Favorites, a new page under Library in the sidebar, newest first, with Play and Shuffle.
- The heart is there while you listen: next to the title in the playback bar, in Now Playing, in the mini player and in the menu bar player. Controls → Add Current Song to Favorites (⌘L) does the same.
- Song lists have a quiet heart column: favorites show a filled heart, and on other songs an outline appears only on the row you point at, select or play. Every song's menu has Add to Favorites too, and you can drop an album on Favorites in the sidebar.
- A heart clicked by mistake comes back with ⌘Z.
- Favorites belong to your library, like play counts and playlists; nothing is written into your files. A favorite stays with its song when the file is moved or renamed.
- Smart playlists can use them: Is Favorite is a new rule ("favorites in 24-bit", for example).
- Dolby Digital in Matroska audio files (
.mka) plays.
Improved
- Spatial Audio places every channel on its own speaker, whatever the layout. Each channel goes to its own speaker in the smallest layout that holds them all, and Now Playing names the layout from its speakers ("3.1", "4.0", "Quad"). Layouts other than the standard ones used to be folded on the way to Apple's spatial renderer:
- 2.1, 3.1 and 4.1 lost their LFE;
- LCRS smeared its centre channels, and wide and height speakers fell into the front pair;
- 7.1 files with WAVE channel masks swapped their side and rear pairs;
- layouts with more than 8 channels had no positions at all.
- Short album tracks stay in your library. Vespertine leaves out files under 45 seconds, so voice prompts and sound effects don't fill your library. That also dropped real album tracks: interludes, intros, hidden-track snippets. A short track tagged as part of an album (album name and track number) is now kept; untagged clips, one-track jingles and voice recordings still aren't. Tracks left out before appear on the next rescan.
Fixed
- Pressing play could freeze the window for seconds. As a song started, macOS reported a change of output device, and Vespertine re-read every device's formats on the main thread while the DAC was still switching. Device reads and volume changes now happen in the background.
- A slow or stalled network share could freeze the window, while Vespertine checked the share or reconnected it. That work now runs in the background with a time limit, as does reading the server's analysis results.
- Some Dolby Digital and Dolby Digital Plus files played with channels in the wrong places (layouts 2/1, 3/0 + LFE and 3/1 + LFE): macOS's decoder moves channels around, drops the LFE or repeats a channel in these three modes. Those files are now decoded with FFmpeg, at full dynamic range; everything else stays with macOS, and the signal path says which decoder is used and why.
- 24-bit TTA files could crash Vespertine. The TTA decoder wrote one byte past the end of its buffer.
Install
Download Vespertine-0.6.1.dmg, or let Vespertine update itself. Requires macOS 26 or later on Apple silicon or Intel. Signed with a Developer ID, notarized and stapled.
Vespertine 0.6.0
Nocturne is now Vespertine.
The same player under a new name. Another open-source music player was already called Nocturne, so this one became Vespertine ("of the evening") before its public launch. The code, the sound and your library are unchanged.
Coming from Nocturne
- Nocturne doesn't update itself to Vespertine. macOS apps can only replace themselves with an app that has the same identity, and Vespertine has a new one (
org.szeremeta.Vespertine). Nocturne 0.5.19 tells you a new version exists and links here; download Vespertine and drag it into Applications. - On first launch Vespertine brings everything over by itself:
- your library, playlists, ratings, play counts, analysis, artwork and settings;
- these are copied from Nocturne's folder as space-free APFS clones, and Nocturne's own files are left exactly as they were;
- music you imported keeps going into ~/Music/Nocturne.
- Once Vespertine opens with your library, you can delete Nocturne.
- If Nocturne is still open, Vespertine asks you to quit it first, so the library isn't copied mid-write.
- macOS asks again for a few permissions because it treats Vespertine as a new app: network volumes, and the keychain item for a saved share password (choose Always Allow).
- A ListenBrainz token has to be entered again in Settings.
- Servers running the share analyzer keep working as they are. Vespertine reads results from
.nocturne/as well as.vespertine/.
New
- Rename sources in the sidebar (right-click → Rename…). Only the sidebar name changes, not the folder. The folder Vespertine imports into is called Imported Music unless you name it.
- How to check that Vespertine is bit-perfect on your own hardware. The guide covers:
- exactly when the BIT-PERFECT badge appears;
- what Vespertine reads back from macOS to decide;
- the tests that compare output sample for sample;
- three checks that don't rely on Vespertine at all.
- Command-line tools are now
vespertine-probe,vespertine-library,vespertine-demoandvespertine-analyze.
Install
Download Vespertine-0.6.0.dmg. Requires macOS 26 or later on Apple silicon or Intel. Signed with a Developer ID, notarized and stapled.
Nocturne 0.5.19
DSD at every rate, format badges, and a crash fix for damaged files.
New
-
Format badges. Now Playing names the format of what's playing: Dolby Atmos, Dolby TrueHD, Dolby Digital Plus, Dolby Digital, DTS-HD Master Audio, DTS, DSD64–DSD512, Hi-Res Lossless or Lossless. Album pages show them too, and the Albums filter has a Dolby & DTS option. They're plain text in Nocturne's own style, not the companies' logos (see Trademarks in the README).
-
Files that can't hold tags (bare
.ac3,.ec3,.dts,.thdstreams) take their title from the file name and their album from the folder, instead of all landing in one "Unknown Album". -
Album pages say broadly where an album lives ("High-Res Music › Pink Floyd") instead of its whole folder path.
-
Albums in several formats say "Mixed · up to 24/96" instead of naming whichever format sorted last.
-
Stereo and surround versions of the same album play the right one automatically. When an album has each song in stereo and in 5.1 (an SACD's two layers, for example), it lists each song once and plays the surround version on a multichannel output or with Spatial Audio on (AirPods), and the stereo one on a stereo DAC or with Spatial Audio off. Switch outputs and the upcoming songs follow. Settings → Playback → Stereo and surround versions can pin it to either.
-
The Now Playing cover makes room. It shrinks to fit so the title, badges and signal path show without scrolling, and grows back on a taller window.
Fixed
- DSD128 and above played nothing, and DSDIFF (
.dff) above DSD64 wouldn't open. All DSD now goes through FFmpeg's DSD reader: DSD64 to DSD512 in DSF and DSDIFF, sent as DoP to DACs that take it at that rate and converted to PCM otherwise. - A damaged Monkey's Audio (APE) file could quit Nocturne when you skipped within it. Errors thrown inside codec libraries are now caught and reported as a file that won't play.
- The spectrum and channel meters work while DSD plays as DoP. They used to go flat, because DoP frames carry DSD bits rather than PCM. They now read the DSD inside each frame (display only; the frames still reach the DAC untouched).
- SACD rips find their cover when the tracks sit in "Multichannel 5.1" and "Stereo" folders and the cover one level up, as they already did for "CD 1" folders.
- Albums spread over several folders play in track order (they're only listed folder by folder when track numbers repeat, as with an SACD's two layers).
- A cover added to an album's folder later now shows up on the next rescan. Tracks without art used to be skipped because the audio files themselves hadn't changed.
- Skipping, choosing another song, seeking, pausing or switching outputs silences the old audio immediately. The old song used to play on from Nocturne's 20–30 s buffer until the new one was ready, which on a busy share could be several seconds.
- Songs on a share start sooner. DTS, TrueHD, Matroska and DSD files were analysed for up to 5 MB before playing, on every start and every output switch; the headers say all that's needed.
- Switching outputs mid-song takes a fraction of a second, even on a busy share. The song's file stays open and simply continues from the same spot on the new output (it used to be opened and analysed again, which took up to half a minute on a loaded server). A new command no longer waits behind the first second of buffering, retrying an output that isn't ready yet (AirPods Max just put back on) doesn't reopen the file, several quick switches restart playback once, and every switch, start and device failure is logged.
- The progress bar starts from zero on the new song. Skipping used to show the previous song's position (and sometimes its title) until the new one had loaded; a seek no longer jumps back before it lands.
- Nocturne no longer updates macOS's Now Playing info several times a second while playing; macOS extrapolates the time itself.
- MusicBrainz Lookup and tag edits work on read-only shares. Nocturne used to copy each file for a backup before discovering it couldn't write it, which on a share full of DSD looked like a hang. Files it can't write now get the changes in its library instead (kept through rescans, revertible), and the editor says so. The lookup shows its progress.
- DSF albums show their year. The tag reader dropped the release and original dates from DSF files' ID3 tags; Nocturne now reads them itself.
- SACD rips with separate "Multichannel" and "Stereo" folders list one layer after the other instead of interleaving tracks with the same numbers.
- Now Playing fits its panel. Long status badges ("SPATIAL · HEAD TRACKED") wrap instead of spilling over the track list, and song lists no longer need a sideways scroll with the inspector open.
- DTS CDs no longer show "1411k". That's the bitrate of the CD audio carrying the DTS stream, not of the DTS stream itself.
- Atmos in TrueHD and DTS:X say what's decoded. Nocturne plays their lossless channel bed; the signal path now says the objects aren't rendered instead of implying they are.
Install
Download Nocturne-0.5.19.dmg, or let Nocturne update itself. Requires macOS 26 or later on Apple silicon or Intel. Signed with a Developer ID, notarized and stapled.
Nocturne 0.5.18
Fixes for DTS CD albums, and MP3 original dates and labels.
Fixed
- The last track of some DTS CD albums wouldn't play ("An internal decoder error occurred."). Its length from the CUE sheet ran a fraction of a millisecond past the end of the file, and the track was refused. CUE tracks are now clamped to the audio that's actually there. (Seen on Brothers in Arms.)
- Album sizes are right for albums stored as one file with a CUE sheet. The file was counted once per track, so a 575 MB disc showed as 5 GB.
- MP3s' original release date and label are read (ID3
TDOR/TORY,TPUBandTXXXfields), so MP3 albums are dated by their original release too.
Install
Download Nocturne-0.5.18.dmg, or let Nocturne update itself. Requires macOS 26 or later on Apple silicon or Intel. Signed with a Developer ID, notarized and stapled.
Nocturne 0.5.17
Dolby Atmos and surround formats, DTS CDs in 5.1, 32-bit integer output, and steady playback from busy servers.
New
- Dolby Atmos. Dolby Digital Plus with Atmos is rendered by macOS's own Atmos renderer on the output you chose, the way Apple Music plays it: head-tracked Spatial Audio on AirPods, height channels on a multichannel output. Settings → Surround formats can instead play its 5.1/7.1 bed through Nocturne's own signal path.
- Dolby Digital and Dolby Digital Plus (
.ac3,.ec3, and Dolby audio in M4A/MP4) play with every channel in its place. - DTS-HD Master Audio, Dolby TrueHD and DTS in
.dts,.dtshd,.thdand Matroska (.mka) files. TrueHD and DTS-HD MA are lossless and can play bit-perfect. For DTS:X and TrueHD Atmos, Nocturne plays the channel bed (the objects need a receiver). - Send Dolby and DTS to an AV receiver. A new per-output switch ("Send Dolby and DTS to a receiver") sends Dolby Digital, Dolby Digital Plus (Atmos included, over HDMI) and DTS CDs untouched, in the standard IEC 61937 format, for a receiver or soundbar to decode. Only turn it on for an output that has one.
- Integer mode. With exclusive access, on DACs that support it (the FiiO K11 does), music that needs no processing goes to the DAC as 32-bit integers with no floating-point step. 32-bit recordings now play bit-perfect too. Settings → Output.
- DTS CDs and DTS-WAV files are decoded to 5.1. These files store a DTS surround bitstream disguised as 16-bit stereo audio. Nocturne used to play that data as-is, which comes out as extremely loud noise. Now it recognizes the DTS stream and decodes it with FFmpeg's DTS decoder (built into Nocturne, verified sample for sample against FFmpeg on a real disc). The files are listed as DTS 5.1, play in surround on multichannel outputs or as Spatial Audio on AirPods, and CUE-split tracks start exactly where they should.
Fixed
- Songs playing from a network share no longer stop for a few seconds mid-track. The cause was the server, not the network. When its disks are busy (downloads, seeding, media-server scans), a single read can wait several seconds, longer than the 5 seconds of audio Nocturne kept in hand. Now:
- Nocturne keeps about 20–30 seconds of audio ahead instead of 5.
- It copies the playing track to your Mac straight away, and as soon as the copy is complete, playback moves to it mid-song. It picks up at the exact sample, so there's nothing to hear, and the rest of the song no longer touches the network. This covers lossless files (FLAC, ALAC, WAV, AIFF and similar) and DSD sent as DoP.
- If a read still stalls long enough to empty the buffer, Nocturne waits until 5 seconds are buffered again before resuming (2 before), so one slow patch doesn't turn into a string of stops.
- A slow but working server is no longer mistaken for a dead connection. Before, two slow answers in a row made Nocturne remount the share, which cut off the song that was playing.
- Albums are dated by their original release. Reissues and remasters carry their own date in the release-date tag, so Back in Black showed as 2003 and Born to Run as 2014. When a file has an original-release-date tag, the album's year and decade now come from it. The release date itself is still kept.
- Covers embedded as a
METADATA_BLOCK_PICTUREcomment now show. Some taggers store FLAC cover art this way. - A cover image in a multi-disc album's main folder is found for the tracks in its
CD 01,Disc 2, … folders. - More spellings of the same genre are grouped together: Hardrock / Hard Rock, Pop/Rock / Pop Rock, Classique / Classica / Classical.
- Re-reading a file that hasn't changed no longer loses its hi-res analysis.
- Raw Dolby and DTS streams, which have no tag format of their own, are added to the library from their file names. Matroska files use their tags.
Install
Download Nocturne-0.5.17.dmg, or let Nocturne update itself. Requires macOS 26 or later on Apple silicon or Intel. Signed with a Developer ID, notarized and stapled.
Nocturne 0.5.13
Moved and renamed music keeps playing, AirPods Max come back to Nocturne on their own, and shuffle and repeat no longer interrupt the music.
Fixed
- Music that was moved or renamed on a share or drive plays again. When a library manager such as Lidarr reorganizes files (for example
Artist - Album [FLAC]/02. Song.flacbecomingArtist/Album (1973)/CD 01/Artist - Album - 02 - Song.flac), Nocturne now recognizes each moved file as the same song. Its playlists, play count, rating, date added and analysis move with it, and the old copy's entry, which could no longer play ("No such file or directory"), goes away. Songs in the play queue are pointed at their new location too. - If a song can't be played because its file is gone, Nocturne rescans that source right away (even while music is playing) instead of waiting for the next scheduled rescan, and tells you what's happening instead of showing a raw file error.
- Taking AirPods Max off and putting them back on no longer moves your music to the FiiO or the Mac's speakers. macOS removes the AirPods as an audio device while they're off your head and adds them back a few seconds after you put them on. The AirPods' "play" command often arrives before that, and Nocturne used to fall back to whatever other output was available, then point the Mac's sound output there too. Now Nocturne never swaps the output you chose for another one. If it isn't there yet, Nocturne waits for it for up to a minute and starts playing the moment it's back, so you no longer need to reselect the AirPods in Control Center or in Nocturne. Pressing pause cancels the wait.
- If the output you chose drops out in the middle of a song (a DAC re-enumerating, AirPods reconnecting), playback continues where it left off once it returns, instead of stopping with "disconnected".
- Pressing Shuffle, Repeat or Repeat One (or adding, removing or reordering songs in the queue) no longer causes a brief dropout. The song that's playing carries on untouched; only the song lined up after it changes.
- Turning on Repeat while the last song in the queue is playing now continues into the repeat as expected.
Install
Download Nocturne-0.5.13.dmg, or let Nocturne update itself. Requires macOS 26 or later on Apple silicon or Intel. Signed with a Developer ID, notarized and stapled.
Nocturne 0.5.10
Changes on your server show up by themselves.
Improved
- Music added to or deleted from a network share appears in Nocturne on its own. Connected shares are rescanned every half hour (only new or changed files are read, and never while you're playing from the share), and right after the server's
nocturne-analyzerun. Before, a share was only rescanned after being offline for a day. File → Rescan Library still does it immediately. - Deleted tracks now disappear from regular playlists too, not just from albums, songs, search and smart playlists. They stay in the playlist and come back if the files are restored.
Install
Download Nocturne-0.5.10.dmg, or let Nocturne update itself. Requires macOS 26 or later on Apple silicon or Intel. Signed with a Developer ID, notarized and stapled.
Nocturne 0.5.9
Network shares reconnect by themselves, and smart playlists match what you type.
Fixed
- Shares that disconnected couldn't reconnect. On current macOS, the place Nocturne mounted shares (inside its Application Support folder) is protected app data, and macOS refused to let Nocturne mount a share there again. The share stayed offline with a misleading "The server didn't accept that name and password". Shares now mount where macOS keeps network volumes (still hidden from the Finder sidebar), and your library follows them automatically.
- Saved share passwords are always found. Nocturne now reads the login keychain, where macOS and Finder keep network passwords, and saves new ones there too.
- Smart playlists with sample rates work. Sample rates are entered in kHz, as they're shown everywhere else ("48", "44.1", "48 kHz"); before, "48" was read as 48 Hz and matched nothing. Rules saved in Hz still work.
- A smart playlist rule that can't be understood no longer disappears. It matches nothing instead, so a "match all" playlist never shows more than you asked for. The rule editor only offers comparisons that make sense for each field, shows a hint for the value, and lets you pick an analysis verdict from a menu.
Improved
- Self-healing connections. Besides reconnecting after sleep, network changes and server restarts, Nocturne notices a share that still looks connected but has stopped answering, and reconnects it by itself.
- Clearer problems. Wrong passwords, missing passwords and macOS permission problems each have their own message. If a password is missing, Enter Password… in the share's right-click menu fixes it in one step. Connection failures are written to the system log with their exact cause.
Install
Download Nocturne-0.5.9.dmg, or let Nocturne update itself. Requires macOS 26 or later on Apple silicon or Intel. Signed with a Developer ID, notarized and stapled.
Nocturne 0.5.7
More reliable server-side analysis results.
Fixed
- Results from a server's analysis are always picked up after the server tidies its index. Nocturne now recognizes a rewritten index by its contents rather than by the file's creation date, which some file servers don't update, so no result is ever skipped.
Install
Download Nocturne-0.5.7.dmg, or let Nocturne update itself. Requires macOS 26 or later on Apple silicon or Intel. Signed with a Developer ID, notarized and stapled.