github Psysonic/psysonic app-v1.56.0-rc.2
Psysonic v1.56.0-rc.2

pre-release3 hours ago

Added

Device Sync can convert files on the server

By @circle3451, PR #1643

  • Device Sync → Format can store tracks as MP3, AAC or Opus with a maximum bitrate instead of the original files; your server converts them while syncing. The format must be enabled in the server's transcoding settings.
  • Copies are replaced in place when the format or bitrate changes, or when the file on the server changes. Devices synced before keep their original files until another format is chosen.

Track subtitles and album versions from Navidrome

By @Psychotoxical, PR #1662

  • A track's subtitle (e.g. "Instrumental") now appears after its title in every track list, and an album's version (e.g. "Deluxe Edition") after the album name — also for libraries synced through Navidrome's own API, which previously showed them only in some places. Existing libraries are updated once in the background.
  • The album page shows the version under the album title when the title does not already include it.

Similar albums on the album page

By @circle3451, PR #1663

  • A Similar albums row below "More by artist" suggests albums that sound alike, found by AudioMuse from a few tracks of the open album. Albums by the same artist are left out.
  • Needs Navidrome 0.62 or newer with the AudioMuse plugin; the row stays hidden on other servers, offline, or when nothing is found.

Play songs from a list on a single or double click

By @Psychotoxical, PR #1668

  • Settings → Input → Mouse chooses whether a song in a list plays on a single click or on a double click, so a stray click no longer replaces what is playing. The play button on a row always plays with one click.
  • Track lists now highlight a row: click it or move with the arrow keys, then press Enter to play it. Holding Ctrl adds more rows to a selection, including the highlighted one, and Escape clears the selection.
  • The Tracks page and search results now follow the same setting; before, songs there only played on a double click.

Device Sync playlists with absolute paths

By @circle3451, PR #1669

  • Device Sync → M3U path style gains Absolute, which writes full file paths into the playlists, for software that does not resolve relative entries. It is available for every layout.
  • Absolute paths include this computer's drive letter or mount point, so the playlists only resolve while the device appears under the same one.

Device Sync moves files instead of downloading them again

By @circle3451, PR #1670

  • When a playlist is reordered or the layout changes, copies already on the device are renamed to their new place instead of being downloaded again.
  • A track removed from a synced playlist, or from a source you remove from Device Sync, is now deleted from the device as well.

Device Sync to a folder on this computer

By @circle3451, PR #1671

  • Device Sync can now sync into an empty folder on the computer's own disk, for example to import the playlists into DJ software. Psysonic asks once before using the folder.
  • Only an empty folder can be chosen, and Psysonic never takes over or deletes files it did not write there.

Sort albums by year

By @circle3451, PR #1672

  • All Albums and Lossless Albums can now be sorted by Year. It starts newest first, and choosing it again switches to oldest first. Albums from the same year are ordered by artist, then title.
  • In the table view, the Year column header does the same: the first click sorts newest first, and each click after that flips the direction.

Browse albums by the moods in your music files

By @Puppies-On-Acid, PR #1675

  • The new Moods page groups the mood tags exposed by your server for individual tracks. Pick a mood to browse its albums, with album counts, library selection and incremental loading for large collections.
  • Existing libraries build the local mood index from cached track metadata after upgrading. The index stays in sync when tracks change and rebuilds after a Navidrome ID migration. No music files or server tags are changed; servers that do not expose track moods have none to browse.

"Because you listened" can use AudioMuse

By @Psychotoxical, PR #1678

  • Settings → Personalisation → Home now lets you choose where the "Because you listened" row finds its albums: Similar artists, as before, or AudioMuse, which suggests albums that sound like the one you listened to. The row is then titled "If you like the sound of …".
  • AudioMuse can only be chosen once a server with Navidrome 0.62 or newer and the AudioMuse plugin is detected. Servers without it keep using similar artists.

Browse by record label

By @circle3451, PR #1682

  • A new Labels entry in the sidebar lists the record labels in your library, A–Z, with a filter box, a letter jump bar and the album count of each label. It covers every server and library you browse, like Genres and Moods. It is hidden by default; turn it on under Settings → Personalisation → Sidebar.
  • Opening a label — from this list or from the label link on an album page — shows exactly the albums tagged with it, loading more as you scroll. After upgrading, the app builds the label index once before opening the library, with progress shown while it works.

Browse individual tracks by mood

By @Puppies-On-Acid, PR #1685

  • Mood detail now has Albums and Tracks tabs. Albums remains the default; Tracks pages through songs carrying that exact mood, using the standard song-list controls.
  • Switching tabs or returning from an album or artist preserves the loaded results and scroll position. Track browsing uses the local library index and does not require a new server endpoint.

Open links in playlist descriptions

By @cucadmuh, PR #1691

  • Web links in a playlist's description are now clickable and open in your browser.

Touchpad gestures: swipe to go back, pinch to zoom covers

By @circle3451, PR #1695

  • Swipe left or right with two fingers on a touchpad to go back or forward, like in a web browser. Sideways scrolling in carousels and lists is not affected, and Settings → Input → Touchpad can turn it off.
  • In the full-size cover view, pinch or use Ctrl/⌘ + scroll to zoom in around the pointer, drag to move around, and double-click to zoom in or back out. With a keyboard, use +/− to zoom, the arrow keys to move around, and 0 to reset.

Shuffle spreads artists and albums over the list

By @Psychotoxical, PR #1698

  • Shuffling no longer leaves the order to pure chance: songs by the same artist, and from the same album, are spread over the whole list, so the same artist rarely plays twice in a row. The next song after the one playing is also by a different artist whenever the list allows it.
  • This applies to the shuffle button and to every shuffle-play action for albums, artists, genres, playlists, favourites and the offline library. Radio, Instant Mix and the infinite queue are unchanged.
  • Settings → Personalisation → Queue Settings → Smart shuffle is on by default; switching it off brings back the purely random order.

See at a glance what is playing

By @Psychotoxical, PR #1700

  • Album and artist cards now show a small marker and an accent ring while one of their songs is playing, wherever it was started from. Playlist cards and the playlists in the sidebar show it while the queue you started from that playlist is playing.
  • On Windows and macOS the marker's bars move while music plays; on Linux, while paused, or with reduced motion turned on in the system, it stays a still icon. Screen readers announce the marked album as now playing.

Private mode

By @Psychotoxical, PR #1701

  • A new mask button in the top bar, left of the server name, turns on private mode. While it is on, nothing you play is shared or recorded: no scrobbles to Last.fm, ListenBrainz and the other Music Network services, no play counts or "last played" on the server, no now playing on the server or on Discord, and no entries in Statistics, Rewind or the play history.
  • Turning it on applies at once, including to the song that is playing; turning it off lets that song count again. Private mode is always off when the app starts.

Sleep timer: stop at the end of the song or album

By @Psychotoxical, PR #1702

  • The sleep timer now offers End of track and End of album next to the durations. Playback pauses just before the end, so the next song never starts; pressing play finishes the last moment and carries on.
  • End of album pauses where the queue moves on to a different album, so it also works on a shuffled queue. The countdown at the play button shows the time left.

Skip a whole album at once

By @Psychotoxical, PR #1703

  • Alt+click (Option+click on macOS) on the next or previous button jumps to the next or previous album in the queue, in the player bar, the fullscreen player and the mini player. Going back first returns to the start of the current album.
  • Settings → Input → Keyboard shortcuts has Next album and Previous album, also as global shortcuts; they are unbound until you set them.

Recently used playlists on top when adding songs

By @Psychotoxical, PR #1705

  • Every Add to playlist menu, for songs, albums, artists, selections and playlists, now shows the three playlists you used last under Recently used, followed by all playlists in alphabetical order. With fewer than six playlists only the alphabetical list is shown.

A hint when the volume is at 0

By @Psychotoxical, PR #1706

  • If you start playback while Psysonic's volume is at 0 — clicking a song, next or previous, play, or a radio station — a short notice tells you the volume is down. It does not repeat for every song the queue moves on to.

The fullscreen player can open on its own

By @Psychotoxical, PR #1710

  • Settings → Appearance → Fullscreen player → Open automatically opens the fullscreen player after 1 to 30 minutes without mouse or keyboard input while a song plays and Psysonic's window is on screen. It is off by default, and it does not open for internet radio.
  • The next mouse movement, click or key press closes it again without triggering anything underneath. Opening the fullscreen player yourself works as before.

Pick up albums and playlists where you left off

By @Psychotoxical, PR #1719

  • When you leave an album or playlist after at least one of its songs played to the end, Psysonic remembers where you stopped. A Resume button next to Play on its page shows the song and time, and continues right there.
  • Continue listening on Home lists these albums and playlists with their progress. Playing a list to its last song clears it; lists started in shuffle or in private mode are not remembered.

Arrange the rows on Home

By @Psychotoxical, PR #1720

  • Settings → Personalisation → Home now lets you drag the rows into the order you want, like the other layout settings on that page. The large banner at the top keeps its place.

Lyrics translations from your server

By @Psychotoxical, PR #1721

  • When the lyrics on your server include a translation, it can show as a smaller line under each lyric line — in the sidebar, the mobile view and the fullscreen player. Turn it on in Settings → Lyrics → Translation, or with the Translation button below the lyrics, which appears only for songs that have one.
  • Needs Navidrome 0.63 or later and lyrics files that carry translations, such as TTML. If there are several, the one in your app language is shown.

Desktop notification when the song changes

By @Psychotoxical, PR #1723

  • Turn on Settings → System → App Behavior → Notifications → Notify on Track Change to get a desktop notification with title, artist, album, length and cover whenever a new song starts, as long as Psysonic is not the window you are looking at. Radio stations announce each new song title, with the station logo if there is one. It is off by default.
  • Skipping quickly through the queue announces only the song that keeps playing, and pausing or resuming never shows one.
  • The Flatpak build cannot show these notifications yet.

Tags for playlists

By @Psychotoxical, PR #1730

  • Right-click a playlist, or a selection of playlists, and use Tags to label it — by mood, occasion or anything else. A playlist can carry several tags.
  • Once a tag exists, the Playlists page shows the tags as chips above the list. Each chip you switch on narrows the list to the playlists that carry all of them; right-click a chip to rename or delete that tag.
  • Tags are saved only in Psysonic on this device, like playlist folders, and are part of the settings backup.

Explicit badges and blurred covers

By @Psychotoxical, PR #1731

  • Songs your server marks as explicit show a small E after their title — in track lists, the queue, the player bar, Now Playing, the fullscreen player, the mini player and the statistics. An album shows it in its header as soon as one of its songs is explicit.
  • Blur explicit covers hides the cover art of those songs behind a soft blur; clicking an album cover still shows it in full. It is off by default; both options are in Settings → Appearance → Visual Options.
  • Works with servers that report explicit tags through OpenSubsonic, such as Navidrome.

Find genres and moods in large catalogs

By @Puppies-On-Acid, PR #1733

  • Genres and Moods now have a search box and popularity or alphabetical sorting. Filtering happens locally, without extra server requests, and pill sizes still reflect popularity.
  • Returning from a detail page restores the search and scroll position; the selected sort is remembered for the current session.

Open Settings with a keyboard shortcut

By @enncoded, PR #1734

  • ⌘, on macOS and Ctrl+, on Windows and Linux open Settings from any view. The shortcut can be changed or cleared under Settings → Input → Keyboard shortcuts.
  • If one of your shortcuts already uses that key combination, it keeps it, and Open settings starts unassigned.

Greek translation

By @stefnto, PR #1737

  • Full Greek (Ελληνικά) UI translation — selectable from the language picker on the Settings and Login screens.
  • Library matching now ignores Greek accents (tonos, dialytika) and the final sigma, so Μάνος, Μανος and ΜΑΝΟΣ resolve to the same entry. The first sync after the update rebuilds the library keys once.

Settings search finds every option

By @Psychotoxical, reported by Fetta on Discord, PR #1747

  • The search in Settings now looks through every option, its choices and hints, not only the section names. For example, sharing or downloads lead to Integrations → Navidrome → Navidrome sharing.
  • Each result names the option that matched; selecting it opens the section and highlights that option.
  • Small typos are forgiven, and English terms work in every UI language.
  • Sections that only appear in Advanced Mode, and the Users tab, show up in the results only when they are available.

Sort an artist's albums by name

By @Psychotoxical, requested by CaptainStormfield on GitHub, PR #1786

  • The sort button on an artist page is now a list: year (newest or oldest first) or name (A–Z or Z–A), still within each release type.
  • Numbers in names sort naturally, so "Live 2" comes before "Live 10".

Hide star ratings

By @Psychotoxical, requested by untitled-operator on GitHub, PR #1787

  • Settings → Library → Ratings → Show star ratings can be turned off when ratings are disabled on your server. The stars disappear from album and artist pages, track lists (including the rating column), context menus, the player bar, the fullscreen player and multi-selection, and the "Highest rated" rows on Statistics and Tracks are hidden.

Fixed

The AppImage starts on Fedora 44 again

By @netherguy4, PR #1348

  • On Fedora 44, including atomic variants such as Bluefin, the AppImage opened an empty window and nothing ever appeared in it. The WebKitGTK copy shipped inside the AppImage cannot start on those systems' newer graphics stack, and it crashed on every launch.
  • The AppImage now launches against your system WebKitGTK whenever one is installed, which is the copy that works there. Systems without one keep using the bundled copy exactly as before, and PSYSONIC_FORCE_BUNDLED_WEBKIT=1 forces the bundled copy back if you ever need it.

Mouse-wheel scrolling resumes after a sideways swipe on track lists

By @strecke, PR #1635

  • On macOS and Linux, scrolling sideways through a track list could leave the mouse wheel unable to scroll the page vertically. Vertical scrolling now works again after the sideways gesture without interrupting horizontal swipes or zoom gestures.

Navidrome smart playlists keep their cover on the Playlists page

By @Psychotoxical, PR #1660

  • Smart playlists created in Navidrome showed their cover briefly on the Playlists page and then switched to a collage of album art from their tracks, hiding custom artwork. They now keep their server cover there, as they already did in the sidebar and on the playlist page.

The queue's shuffle button is an on/off switch

By @Psychotoxical, PR #1661

  • The shuffle button in the queue panel shuffled the whole queue once, including tracks already behind the current one, and there was no way to switch it back off. It now works like the shuffle button in the player bar: only upcoming tracks are reordered, and switching it off restores the original order.

Playlist view shows where you are in the queue

By @Psychotoxical, PR #1661

  • In the queue panel's Playlist view, tracks before the one that is playing are now dimmed, so the current position in the full list is visible at a glance.

Command-line player controls work again

By @cucadmuh, PR #1665

  • Commands such as --player play, pause, and next work again after the shortcut registry moved. Playing a song by ID now starts that song even when it is not already in the queue.

Playlist downloads respect the selected libraries

By @cucadmuh, PR #1667

  • Server playlists no longer appear empty when All libraries or several music folders are selected in the sidebar. Their tracks follow the same library selection as the rest of browsing.
  • Changing the visible library scope no longer removes offline-pinned tracks that are merely hidden from the current view.

AAC internet radio plays in the AppImage

By @Psychotoxical, PR #1679

  • Internet radio stations that stream AAC stopped with a stream error in the AppImage, because the media plugins it ships include no AAC decoder. When the AppImage runs on your system WebKitGTK, it now uses your system's media plugins first, so AAC stations play. Plugins your system lacks still come from the AppImage.

Gapless transitions keep the correct playback speed

By @cucadmuh, PR #1683

  • With Gapless Playback enabled, moving between tracks with different sample rates (such as 44.1 and 48 kHz) could play the next track at the wrong speed. Each track now matches the actual audio output rate before joining the gapless queue, including after an audio-device recovery or Hi-Res realignment. Radio, previews and playback with Gapless Playback off are unchanged.

Seeking works on the first play of a streamed track

By @Psychotoxical, PR #1686

  • Seeking in a track that was streaming for the first time could fail with "streaming seek was not prepared": playback went silent, the position jumped back, and only Stop or another track brought the sound back. Seeks now land where you click, including on the first play.

The AppImage starts under another user or in a sandbox

By @Psychotoxical, PR #1689

  • One of the AppImage's start files could only be run by its owner, so starting the AppImage as another user, for example inside a firejail sandbox, failed with "Permission denied" on systems without WebKitGTK installed. All start files are now executable for every user.

A second Flatpak launch opens the existing player

By @netherguy4, PR #1693

  • Launching the Flatpak again could start another player instead of reaching the existing one. It now uses the single-instance address permitted by the sandbox, also for command-line controls.

More complete Ukrainian translations

By @albedych, PR #1694

  • Missing Ukrainian translations for migrations, moods and Music Network settings are filled in, including the correct plural forms.

Moods include Navidrome's native tags

By @Puppies-On-Acid, PR #1697

  • Mood browsing now recognises track moods supplied through Navidrome's native metadata as well as the standard server fields. Existing cached tracks are included when the mood index is rebuilt.

The Offline Library counts albums with the right plural

By @Psychotoxical, PR #1699

  • The album count on the Offline Library page always used the singular, for example "3 album". It now shows the correct form in every language, including the separate forms that Polish, Romanian, Spanish, French and Italian use for some numbers.

The sleep timer keeps running when the next song starts

By @Psychotoxical, PR #1702

  • With gapless playback off, which is the default, a sleep timer was cancelled as soon as the next song began, so playback never paused. It now runs on across song changes. Pausing, stopping or starting another song yourself still cancels it.

Setting a keyboard shortcut no longer binds the key twice

By @Psychotoxical, PR #1704

  • In Settings → Input, clicking one shortcut field and then another before pressing a key bound that key to both actions. The same happened after clicking a field again to cancel or leaving the page, where the next key could even be swallowed elsewhere in the app. Only the field you clicked last now waits for a key.

Playback resumes after a long pause

By @cucadmuh, PR #1707

  • Pressing Play after a long pause could leave playback silent, as reported on Windows 10. Resume now restores the saved position before starting audio, including when the output device was released while idle.
  • If recovery fails, Psysonic retries once, then stays paused with the saved position instead of silently restarting the track from the beginning. Pause or Stop during loading cancels the pending resume.

Screen readers announce notifications

By @Psychotoxical, PR #1708

  • The short notices at the bottom of the window, such as confirmations, warnings and errors, were never read out by screen readers. They are now announced: notices politely, errors right away.

Mood tags survive unrelated metadata updates

By @Puppies-On-Acid, PR #1712

  • Valid file moods are no longer hidden when an unrelated Navidrome tag snapshot is cached beside them. Explicit mood removal still clears the old value.
  • Existing ambiguous entries are checked against current Navidrome metadata while playback is idle and the server is available; cached values are not guessed while offline.

Bandcamp playback now includes waveform, loudness and BPM analysis

By @cucadmuh, PR #1713

  • Bandcamp tracks now show waveforms, use loudness normalization and provide measured BPM through the same analysis pipeline as Navidrome. The analysis cache and content-change checks work for Bandcamp's MP3 source even though its Subsonic API does not provide an original-file download.
  • Provisional loudness updates while a song downloads are no longer discarded for Bandcamp track IDs containing URL-encoded characters. The existing final loudness correction and BPM detector are unchanged.
  • The verified source is the MP3 exposed by Bandcamp's API, not the artist's uploaded lossless master. Unknown server types retain the standard original-download check.

Seeking after an automatic gapless transition no longer stalls or reloads

By @strecke, PR #1714

  • Seeking in a song that was reached via an automatic gapless transition previously timed out waiting for the predecessor track's streaming seek coordinator, triggering an unnecessary full-track reload that caused a buffering stall and reset the visual playhead to 0:00.
  • The stale streaming seek handle is now cleared on gapless advance, allowing seeks in preloaded successor tracks to execute immediately without buffering delays or UI desync.

Navidrome upgrades no longer get stuck on duplicate local downloads

By @cucadmuh, reported by Toast on Discord, PR #1716

  • Upgrading Navidrome could leave Psysonic stuck on “Migration Failed — Local playback collision” when the same track had local download records under both an older server profile ID and the server address. Migration now combines those records without deleting either downloaded file and preserves their album and playlist pins.
  • The original local download records are kept in a recovery snapshot before migration changes them. Toast confirmed normal operation with the test AppImage.

The Flatpak shows its icon in the taskbar

By @Psychotoxical, reported by Asra on Discord, PR #1718

  • On KDE Plasma, the Flatpak version showed a blank taskbar icon when no other Psysonic package was installed, because the desktop could not match the window to its launcher. The Flatpak launcher now names the window it belongs to, so the Psysonic icon appears.

The app now tells the system which language it is shown in

By @stefnto, PR #1724

  • The page language was always set to German, whatever language Psysonic was shown in. It now follows the selected language, so screen readers can use the matching pronunciation and capitalised text follows the rules of that language, for example Greek capitals without accents.

Device Sync files albums under the album artist on Navidrome

By @Psychotoxical, reported by Fetta on Discord, PR #1726

  • With a Navidrome server, Device Sync put every album into a folder named after the track artist, so tracks with a guest artist or from a compilation ended up in folders of their own. Albums now go under their album artist, as the naming scheme shows.
  • Root cause: Navidrome reports the album artist only in its OpenSubsonic field, which Device Sync did not read.
  • Files already on a device move to the right folder on the next sync instead of being downloaded again.

Device Sync no longer stops at two tracks with the same file name

By @Psychotoxical, PR #1727

  • A multi-disc album with the same title on two discs, or two editions of an album under one name, stopped the whole sync because two tracks would get the same file name. Tracks from disc 2 on are now named with their disc in front (2-01 - Title), and files already on a device are renamed on the next sync.
  • A track whose file name is still taken by another one is skipped, and the sync summary shows how many were skipped.

The Device Sync page works in small windows and reads step by step

By @Psychotoxical, PR #1728

  • In a small window the options filled the page and the lists could not be reached or scrolled. The page now scrolls, and the lists stack under each other when there is little room.
  • The page reads top to bottom: choose the device, adjust the options (folded away, with an example of where files land), pick the music and check what is on the device. A bar at the bottom shows the state and holds the sync button; without a device the page explains how to choose one.

Song and album counts in Device Sync follow the app language

By @Psychotoxical, PR #1729

  • The playlist and artist lists in Device Sync showed their song and album counts in English. They now use the app language; in Polish and Romanian the album count on the Artists page no longer switches to English for counts like 3 either.

The play queue survives a restart with play queue sync turned off

By @Puppies-On-Acid, PR #1732

  • With Settings → Integrations → Navidrome → Play queue sync turned off, Psysonic could bring back an older queue after a restart instead of the one you left. The queue and the current track now come back as you left them.
  • Root cause: the startup check still adopted the server queue, which is no longer updated while sync is off, and the mini player window saved its own outdated copy of the queue over the one from the main window.

More natural Polish filter and connection labels

By @Rextens, PR #1738

  • Polish wording for the genre filter and the external connection label now fits its context.

A new artist image shows up right after uploading it

By @Psychotoxical, reported by roman-redl on GitHub, PR #1740

  • After uploading an image with the camera button on an artist page, the round picture, the header background and the picture under About the artist kept showing the previous image. All three now switch to the new image right away, also when you upload again.
  • Root cause: the upload did not clear the saved copies of the artist's picture, and with Navidrome the round picture loaded an address that stays the same after an upload, so the old image was shown again.

The source picker no longer offers the same library twice

By @Psychotoxical, reported by netherguy4 on GitHub, PR #1741

  • When the server splits one album into two (for example because of a stray track in a sibling folder), the album page offered Available from 2 sources with two identical entries, and choosing the other one showed the same page. Entries from the album's own server and library are now left out, so the button only appears for copies on another server or in another library.

Login tokens no longer appear in logs and error messages

By @Psychotoxical, PR #1742

  • When a request to your server failed, the error text could contain the full request address including the login token, which is enough to sign in as you until the password changes. That text showed up in the terminal output, in some error messages in the app and in the saved sync status. The token is now removed everywhere; the server address stays readable.
  • Sync errors saved by earlier versions are cleaned once when the app starts.

The app stays responsive while the library is busy

By @Psychotoxical, PR #1743

  • While the library held a long write — for example the one-time rebuild of the album list after an update — some library requests waited for it on the app's main thread, and everything else that needs that thread waited with them, for up to about 20 seconds. At startup this could also make part of the window setup time out. These requests now wait in the background.
  • Root cause: these requests were set up to run on the main thread, which keeps them in order but blocks it while they wait. Their order is now kept separately, so starring and unstarring quickly still ends in the right state.

An original and its reissue are two albums again

By @Psychotoxical, reported by netherguy4 on GitHub, PR #1744

  • When one library held two albums with the same artist and title but different years — an original and its remaster, or two self-titled albums — Psysonic showed them as one album with both track lists. They now appear as separate albums with their own pages. Copies on other servers or in other libraries join the release with the same year.
  • Existing libraries are updated once in the background after the update.

Error messages say why a connection failed

By @Psychotoxical, PR #1745

  • When a request to your server failed, error messages and the log only said that sending the request failed. They now include the reason, for example a certificate problem, a server name that does not resolve or a refused connection.
  • When the library cannot connect to a server, the reason is now written to the log. Before, the log only showed later that no connection existed.

Servers connect again when a system proxy is set

By @Psychotoxical, reported by noaccou on GitHub, PR #1749

  • With an HTTP or HTTPS proxy set in the system network settings, the library sync, covers and streaming sent their requests through that proxy — on macOS also for servers listed under Bypass proxy settings for these Hosts & Domains — and failed with "no bound session" or "error sending request". Psysonic no longer uses the system proxy settings, as up to 1.53.
  • Root cause: a dependency update in 1.54.0 made the app read the system proxy settings, but on macOS without the list of hosts to bypass.

Orbit labels in Polish and Romanian are corrected

By @Jah-yee, PR #1758

  • Three Orbit labels in Polish and Romanian had spelling mistakes, and the Polish song menu entry for adding a song to the session read as "add an Orbit session".

Screen readers name the back button in the narrow Now Playing view

By @Psychotoxical, PR #1763

  • In a narrow window, the back button of the Now Playing view was announced as "player.back". It is now read as "Back" in the app language.

Screen readers name two buttons in the Orbit session bar

By @Psychotoxical, PR #1764

  • The host's session settings button had no name for screen readers, and the participants button was read only as its count. They are now announced as "Session settings" and "Participants: 1/10".

The Orbit join dialog explains failures in the app language

By @Psychotoxical, PR #1765

  • When joining a session from Orbit → Join a session failed, the dialog showed an internal English message with the session id, for example "Session abc123 is full (10/10)". It now shows the reason in the app language, as pasting an invite link already did.

The playlist page shows whether the playlist is offline

By @Psychotoxical, PR #1766

  • The offline button on a playlist page always offered Cache playlist offline, also while the playlist was waiting, downloading or already saved, so a saved playlist could not be removed from its page. The button now shows the queue, the download progress and Remove from offline cache as on album pages.

Offline playlists keep tracks they share with an offline album

By @Psychotoxical, PR #1767

  • When a playlist was cached offline while some of its tracks were already saved through an album, those tracks did not count for the playlist: the playlist was not complete, and removing the album from the offline cache deleted them although the playlist still listed them. Tracks already saved now belong to the playlist as well, and only the missing ones are downloaded.

Orbit guests' queue additions reach the host

By @Psychotoxical, PR #1768

  • As a guest in an Orbit session, Add to queue, Play next and Play All only changed your own queue, and the host's next track replaced it, so the tracks were lost. They now go to the host as suggestions, the same way a double-click does. For more than one track Psysonic asks first, then confirms once.

The Live window shows your other devices

By @Psychotoxical, PR #1769

  • Playback on another device or client signed in with the same account did not appear in the Live window unless this Psysonic was playing at the same time. With Navidrome 0.62 or newer it now shows like any other listener. Older servers keep hiding entries of your own account while you are not playing, because they keep showing a stopped track for several minutes.

Orbit search suggestions show only their own confirmation

By @Psychotoxical, PR #1770

  • Adding a song from search as an Orbit guest no longer also says it was added to your own queue. Only the confirmation that it was suggested to the host is shown, including in narrow windows.

The artist photo behind the player can be switched off without fanart.tv

By @Psychotoxical, reported by untitled-operator on GitHub, PR #1784

  • Settings → Integrations → External Artwork Scraper → Backgrounds only appeared with the fanart.tv scraper turned on, although the artist image from your server fills the mainstage hero, the artist page header and the fullscreen player without it. So with the scraper off, there was no way to switch these backgrounds off, and Open Backgrounds in the fullscreen player settings led nowhere. The section is now always there; without the scraper it lists only the server image.
  • The hint in the fullscreen player settings now names the full path to the section.

The system media controls show the right song after quick skips

By @Psychotoxical, PR #1785

  • When two track changes came close together, for example a skip right as a song ended, the media controls of the system (MPRIS on Linux, the Windows media overlay, Now Playing on macOS) could show the previous song while the next one played, until the next track change. Psysonic now drops the update of a song that is no longer playing.

Streaming playback no longer keeps a CPU core busy

By @Psychotoxical, PR #1788

  • Since 1.55, the decoder thread for streamed tracks ran in a tight loop for the whole track and kept one CPU core at nearly 100 %. It now waits while enough audio is buffered; on Windows its load dropped from about 98 % to about 2 % of one core. Local and downloaded files were not affected.

Navidrome migration recovers from reciprocal track aliases

By @cucadmuh, PR #1791

  • After upgrading Navidrome, migration could fail repeatedly when two distinct tracks had stale aliases pointing at each other. They now migrate separately, keeping their listening history, ratings and offline copies, without manual database edits.

Linux playback follows the system output rate

By @cucadmuh, PR #1793

  • With Native Hi-Res Playback off, PipeWire output now uses the system clock instead of an artificial 44.1 kHz default. If the system rate cannot be discovered, Psysonic prefers supported 48 kHz; latency hints follow the actual output rate.

Gapless playback repeats the same song without restarting

By @cucadmuh, PR #1794

  • With gapless playback enabled, repeat-one, a one-song repeat-all queue and consecutive copies of the same song now prepare the next playback in advance instead of pausing to restart. Changing repeat mode also cancels an already prepared successor.

More consistent Greek translations

By @stefnto, PR #1795

  • Greek labels for record labels and their index update now use consistent, shorter wording, with a small correction to the empty mood track list message.

The Nix package starts with newer Mesa drivers

By @cucadmuh, PR #1796

  • On newer NixOS systems, the native flake package could open a blank window because its older glibc could not load the system's Mesa driver. The flake dependencies are refreshed, including glibc, so the reported setup starts normally without system changes or loader overrides.

Security updates for network libraries and development tools

By @cucadmuh, PR #1799

  • Updated network dependencies to include upstream fixes for TLS handling, certificate validation and request redirects. Compatible Vite and test-tooling updates address development-server and dependency security advisories as well.

Don't miss a new psysonic release

NewReleases is sending notifications on new releases.