Strawberry Music Player ======================= ChangeLog 0.7.2: BugFixes: * Fixed installation directory for translations. * Fixed collection sorting for non-ASCII characters. * Fixed closing connected devices on exit. 0.7.1: Bugfixes: * Fixed incorrectly mapped global shortcuts keys "2" and "3". * Fixed Last.fm scrobbling to correctly start array notation for parameters at 0 and not 1. * Fixed sending trackNumber correctly for Last.fm and Libre.fm scrobbling. * Fixed collection search when using special characters in the search query. * Fixed reading and saving MP4 lyrics tag. * Fixed reading ASF comment tag. * Fixed adding playlist songs outside the collection when there are multiple files with the same URL. * Fixed the rescan songs option to work with local songs outside of the collection. * Fixed problems with editing song metadata in the playlists. * Fixed saving and restoring playlist scrollbar position when switching between playlists. * Fixed minor issue in cue parser with date and genre. * (macOS) Fixed gst-libav plugin issue resulting in MP3 not working. Enhancements: * Simplified and improved startup behaviour code. * Adapted all source code to be compatible with Qt 6, and increased required Qt version to 5.8. * Added option to compile with Qt 6 (-DWITH_QT6=ON). * Base warning for show in file browser on unique directories to avoid unneeded warning about opening many files. * Use album artist instead of artist for album repeat mode when available. * Added extra safety for overwriting files for filesystem storages when organizing files. * Remove diacritics in FTS search. * Improved playlist context menu. * Added fatal CMake error for missing protobuf compiler. * Added support for parsing radio streams metadata with tilde in title. * Added CMake option to install translation files. * Increased maximum time step for seeking to 60. * (Unix) Added playback actions to desktop file. * (macOS) Hide behaviour settings that are unavailable on macOS. * (macOS) Fixed compile warnings. * (macOS) Added Sparkle integration to notify on new versions. * (Windows) Added QtSparkle support to notify on new versions. Removed features: * Removed Xine engine support. * Removed broken imobiledevice (iPhone) support. 0.6.13: Bugfixes: * Fixed cut-off text in about dialog. * Fixed increasing play count when stop after track is enabled. * Fixed showing/hiding playing widget when playback is started while window is hidden. * Fixed "Show in file browser" to also work on local songs that are not in the collection. * Fixed "Show in file browser" to work with PCManFM file manager. * Fixed audio analyzer to work with S24LE and F32LE audio formats. * Fixed playlist background image not loading. * Fixed a memory leak when switching between playlists. * Removed use of HTML in systemtray tooltip on KDE, since KDE no longer renders HTML in the systemtray. Enhancements: * Replaced use of C style casts. * Adapted use of C++11 override. * Improved CMake build files. * Added new on startup options to show maximized or minimized. * Builtin TagLib code is updated and improved. * Made most icon sizes configurable in the settings, and increased default sizes for icons. * Improved fancy tabbar to use font sizes from the theme instead of fixed sizes. * Moving the currently playing song to the top when the playlist is manually shuffled. * Added "a taste of Strawbs" background image. * Fixed unit test for testing playlist model. * Added new unit tests for tagreader. 0.6.12: Bugfixes: * Fixed height of about dialog. Enhancements: * Only save settings for pages that actually has been changed. * Replaced use of deprecated Qt functionality as of 5.15. * Made scrobbler show error dialog for all errors when show error dialog option is on. * Dont append disc to album titles for Subsonic and Tidal. * Sort folders added from file view. * Changed default collection grouping to album - disc. 0.6.11: Bugfixes: * Fixed MPRIS missing art url when playing albums with embedded cover. * Fixed updating local non collection songs when manually unsetting cover. * Fixed infinite loop and preceding crash when CSS background-color was set in qt5ct. * Fixed UI freeze when updating the database from a large Subsonic or Tidal collection. * Fixed crash when CD loading fails in devices. * Fixed CD devices showing up with having 0 songs after loading. * Fixed the album cover loading indicator being stuck if no cover providers were available. * Fixed the playing widget not updating artist, album or title after metadata has changed for a song when no album cover was loaded. Enhancements: * Sort songs in collection by song title instead of track if previous grouping is not the album. * Added option to switch on/off automatically searching for album covers to context settings. * Reset last played song when playlist is finished. * Checking content type of received HTTP request for image when receiving album covers. * Added option to scrobbler setting for turning off login error popup. * Made MusicBrainz and Discogs cover providers respect rate limiting. New features: * Added option to show/hide sidebar. * Added settings for selecting album cover and lyrics providers. * Added album covers from Musixmatch and Spotify. * Added lyrics from Genius, Musixmatch and ChartLyrics. 0.6.10: Bugfixes: * Fixed Subsonic album covers not working for albums with non ASCII charcters. * Fixed reading date and genre from individual tracks in CUE sheets. * Fixed resume playback on startup for CUE songs. * Fixed album cover manager not showing complete album titles in the list of album covers. * Fixed save album cover to file saving "no cover" image instead of actual album cover. * Fixed device state text color in devices not being visible when using a dark theme. * Fixed engine and device in context using too large icons when icons were loaded from the system theme. * Fixed "Secure connection setup failed" problem on Windows when playing streams. * Fixed margin for song title text in context. * Fixed UNC paths with non ASCII charcters not working. Enhancements: * Allowing all characters except slash and backslash when organising music unless options to strip characters is checked. * New option in organising music to remove problematic filename characters that removes less characters than the FAT option. * General improvements to the album cover loader and album cover providers code. * Fixed loading album cover images from album directory for songs added to the playlist from outside of the collection. * Made automatic album cover search work for songs outside of the collection and for streams. * Made album cover search work based on artist + title if album title is not present for providers supporting song/track search. * Update art manual in playlist for local files, devices and CDDA to avoid loading covers multiple times. * Made lyrics search work for streams. * Added "add stream" to menu. * Only showing song length in context when available. * Sort album cover search results by score and pick the best 3 first before trying others to improve album cover search speed. * Make scrobbler work for streams. * Added search for lyrics as a seperate option in context. * Made font and font sizes in context configurable. * Splitting artist and song title to the relevant metadata when artist and song title is sent as title seperated by a dash in streams. * Added label to show collection pixmap disk cache used in settings. * Icreased default collection pixmap disk cache to 360. New features: * Added back Tidal streaming support. * Added Qobuz album cover provider. Removed features: * Removed Phonon engine support. Version 0.6.9: BugFixes: * Fixed playlist metadata updating interfering with manual tag editing. * Fixed order of tabs in all windows. * Fixed playlist right click using wrong songs for determining menu options when playlist was filtered. * Fixed possible crashes on playlist right click. * Fixed possible null pointer crash in OSD pretty. * Fixed track and title in playlist not being movable. * Fixed Subsonic support to handle numeric Json values like track and disc both as strings and integers. * Fixed Subsonic compatibility with LMS (Lightweight Music Server). * Disabled "open Audio CD" from menu on Windows where CD support is currently not supported. * Fixed files containing "MAC" being detected as Monkey's Audio. Enhancements: * Improved support for High DPI displays. * Added CMake check for backtrace() to fix compilation with musl libc. * Made album cover in context adjust to width. * Made settings, cover manager, organise dialog and transcode music dialog center on the same display where the mainwindow is located. * Removing empty directories when organizing music. * Made file selection work in "Show file in browser" for Dolphin and Nautilus. * Implemented disk caching of album thumbnails in collection tree. * Use a shorter playlist name when songs are added from file view. * Disabled optical drives in copy to device menu. * Added better error handling for CDDA loading. * Added Polish, Hungarian and Korean translations. Removed features: * Chartlyrics support (Unstable API). * Tidal support (No agreement). * QObuz support (No agreement). Version 0.6.8: * Fixed stuck tabbar and collection GUI with some themes. * Fixed possible crashes related to QProxyStyle. * Fixed a bug where metadata in the playlist was not updated when editing metadata for the current playing track. * Fixed crash when deleting a folder with playlists. * Fixed restoring to correct screen when maximized. * Increased lyrics score if lyrics text is larger than 60 characters to avoid using "no lyrics available" text. * Made context title and summary changeable. * Added option to disable playlist clear button. * Added confirmation dialog before clearing playlists with more than 500 songs. * Added German, French, Italian and Indonesian translations. * Added StartupWMClass to desktop file. * Replaced use of Qt deprecated functionality as of 5.14. * (macOS) Fixed filesystem watcher to correctly pick up changed collection directories. * (Windows) Fixed translations not being included. Version 0.6.7: * Fixed crash when cancelling scrobbler authentication * Fixed "Double clicking a song in the playlist" behaviour setting * Fixed "Pressing Previous in player" behaviour setting * Fixed updating compilations where there are spaces or special characters in filenames * Fixed cases where songs were stuck in "Various Artists" because not all songs in the same compilation was removed from the model before readded with actual artist. * Fixed a bug when importing playlists where metadata was reset * Fixed scrobbler to also scrobble songs without album title * Fixed text for replay gain setting not loading in backend setting * Added back lyrics from Chartlyrics * Added ability to show fullsize cover on double-click in playing widget * Added separator between "unset cover" and "show fullsize" in popup menu * Removed left click on analyzer to popup menu * (Windows) Added killproc executable to terminate running process before uninstalling Version 0.6.6: * Fixed lowercased album artist in playlist column * Fixed compiling with different optional features turned off * Fixed hang in stream discoverer with certain formats * Fixed Subsonic to correctly read disc * Fixed preventing system logoff or shutdown * Fixed correctly updating compilations * Simplified gstreamer pipeline code * Disabled showing analyzer for bit depths not supported by the analyzer * Made stereo balancer independent from equalizer * Added option to prefer album artist when sending scrobbles * Removed lines in settings * Added limit for number of tagreader processes to 2 * Improved system theme icon option to better pick correct icons * Added option to automatically select current playing track * (Windows) Added support for WASAPI Version 0.6.5: * Fixed scrobbler not to send scrobbles multiple times when metadata is updated * Fixed Listenbrainz scrobbler not don't send "various artists" as album artist * Fixed missing cover image in OSD pretty reposition image * Fixed OSD pretty upper left positioning * Fixed OSD pretty positioning on Windows on screens with negative geometry * Fixed appdata file to pass full validation Version 0.6.4: * Added setting for fancy tabbar background color * Added setting to make marking songs unavailable optional * Added lyrics from lyrics.ovh and lololyrics.com * Fixed so that Subsonic verify certificate setting takes affect immediately * Fixed all services to follow redirects * Fixed so that songs with different albums are not treated as duplicates * Fixed SingleApplication to use native system calls on Linux for getting username * Added stream discoverer to gstreamer pipeline to detect stream filetype, samplerate and bit depth * Disabled video in gstreamer pipeline * Fixed ampache compatibility * Fixed lyrics searcher not to try search for lyrics with empty song artist or title * Fixed Qobuz login to send mac address as device manufacturer id on login * Fixed Qobuz invalid signature parameter error when retrieving stream urls * Fixed player not using preloaded stream url causing gapless playback to break * Increased preload gap for gstreamer to make sure gapless playback works better * Fixed setting and resetting temporary metadata for next playlist item * Replaced media buttons with more correct ones * Fixed windows thumbbar * Lowered required Subsonic API version to 1.11.0 * Fixed Subsonic to allow empty artist and album in song replies * Added Russian translations * Fixed some services API urls using http to use https * Fixed restoring to original window size when restoring from system tray * Updated 3rdparty taglib Version 0.6.3: * Fixed crash when using internet services. * Fixed musicbrainz tagfetcher only showing 1 result per song. * Fixed collection watcher to unwatch deleted directories. * Added "album - disc" grouping. Version 0.6.2: * Disabled fatal error for FTS5 cmake test. Version 0.6.1: * Compare artist and album case-insensitive when generating score for album covers. * Fixed broken return value of sendMessage() in SingleApplication causing application to be started twice. * Improved error handling in local redirectserver. * Added new tabs view with search and favorites to Tidal. * Fixed gst_pad_send_event lock in gstreamer pipeline. * Made Xine analyzer optional to fix compilation with newer Xine. * Implemented offset and queue to all Tidal requests. * Added new artist, album and song ids to songs schemas to add/remove favorites. * Improved lyrics searcher. * Fixed disabling fading option in backend settings when volume control is disabled. * Added x-scheme-handler/tidal to desktop file to handle tidal songs and allow OAuth redirect url. * Added love button for scrobblers. * Fixed gapless playback when using url handler. * Fixed enabling/disabling fading options in backend settings. * Added support for Subsonic streaming. * Added support for Qobuz streaming. * Added confirmation box for opening songs in file browser to avoid users accidentally opening too many songs. * Added OSD notification on playback resume option. * Fixed MusicBrainz tag fetcher to respect rate limiting when fetching tags. * Fixed hardcoded systemtray icon. * Added live scanning and option to rescan songs. * Added playlist background image stretch option to zoom image with cutting the height. * Replaced use of QDesktopWidget with QDesktop * Replaced all uses of QSignalMapper with lambda expressions * Fixed collection album covers stuck to old ones when new album covers are fetched * Fixed all Json services to check HttpStatusCodeAttribute in addition to checking network errors * Fixed track change hang * Fixed playlist sorting to ignore articles * Fixed MessageReply crash in tagreader * Fixed MTP support * Fixed possible crashes with libimobiledevice devices * Removed older devicekit udisks backend * Using iconv to replace non-ascii characters when organising files * Fixed IPod support when listed from UDisks2 * Fixed memory leaks when establishing database connections and in database backup. * Fixed dangling database connections when loading collection, playlists and devices. * Fixed closing and deleting backends to free memory and database connections on exit. * Fixed dangling pointers causing crashes when loading new album covers in collection. * Fixed playlist shortcuts being broken because they were hidden in playlist right click menu. * Replaced FTS3 and custom tokenizer with FTS5 with unicode61. * Fixed certain cases where track slider popup was stuck. * Fixed certain cases where the playing widget gets stuck when switching fast between context and other widgets. * Removed ChartLyrics provider (service have been down for a long time). Version 0.5.5: * Fixed Tidal API url Version 0.5.4: * Changed description for offline mode scrobbling for less confusion * Fixed scrobbler to not send "playing now" when in offline mode * Added common RPM spec file for openSUSE, Fedora, RedHat, CentOS and Mageia * Improved cover manager score system * Added Deezer and Tidal cover providers * Added ChartLyrics lyrics provider * Added HTTPS workaround for Last.Fm OAuth to solve redirect https to http (localhost) problems * Added Moodbar * Fixed incorrect desktop file returned by mpris2 * Fixed mpris2 CanPlay * Fixed updating play and skip count properly * Fixed track seeking with mouse wheel * Fixed CDDA tracks being invalidated (greyed) in the playlist * Fixed problems using transcoder when other engines were selected * Improved song loader error handling * Fixed enabling equalizer having no affect * Disable notification art setting when tray icon notification is selected * Applying settings immediately when pressing Apply in settings dialog instead of just saving * Disable scroll over icon to change track setting on non-X11 systems and KDE * Removed nvidia workaround on exit which is no longer needed * Fixed chromaprinter unref buffer crash when using complete tags automatically * Fixed crash on exit using VLC engine when using static taglib caused by tagblib linking collision * Fixed context background to follow base colors instead of always white * Fixed fancy tabbar small sidebar mode width * Added some missing taglib configure checks * Saving geometry, tabbar, playlist column settings on exit only to reduce wear on SSD's and fix sluggish resizing with non-SSD * Fixed and improved snap including upgrading to core18 and adding proper alsa support * Fixed resume playback on startup not working for other than the first playlist Version 0.5.3: * Changed default tagging to albumartist in organise dialog * Removed support for older taglib in tagreader * Made lyrics selectable in context * Added boom and rainbow analyzers * Made it possible to use enter in shortcuts * Replaced "no album cover" image * Capitalized Strawberry in OSD and tooltip * Added artist search to Tidal * Created systray tooltip workaround for KDE * Changed defaults for backend fade setting * Changed backend settings to allow setting device back to automatic when a custom device is active * Hide ALSA options on non-ALSA systems * Showing errors in dialog when editing tags fails * Update database immediately when saving tags were successful * Show Strawberry icon in OSD when stopping track * Added support for translations * Renamed desktop and appdata files to follow freedesktop specifications * No longer allowing X11 shortcuts on Wayland * Fixed handling of UNC paths in gstreamer engine * Added option to disable volume control * Removed Deezer support (SDK discontinued and streams are encrypted) * Added Norwegian and Spanish translations * Added setting to allow automatically saving album covers directly to album directory * Updated mimetypes * Added basic support for system and custom icons * Moved loading of device icons to device model * Added better support for APE tags * Fixed problems identifying song as collection songs when loading playlist files * Fixed problems loading Tidal URLs from playlist files * Added support for saving and restoring geometry in settings, organise and transcoder dialogs * Improved Tidal error handling and automatic login * Improved Tidal search to handle duplicate albums * Notify collection backend about renamed files when organising files * Added more background image options * Removed API Seeds lyrics provider (require payment) * Added group by format * Fixed gstreamer leaks Version 0.5.2: * Added error handling and message for URL handler * Added SingleCoreApplication secondary check * Fixed memory leaks in devices * Fixed more stability issues in devices * Remove remastered from album title when searching for lyrics, covers and scrobbling * Fixed CMake check for X11 headers * Enabled iLister and AFC device * Added saving of album cover to gpod devices * Fixed AAC/MP4 transcoder * Added log to organise error dialog * Added warning when enabling X11 shortcuts on Gnome, Cinnamon or KDE * Fixed transcoder to use filename suffixes to solve issues when copying files to iPods * Added option to copy album cover in organise dialog (filesystem and libgpod devices) * Added raise() to make sure window is on top when strawberry is started twice Version 0.5.1: * Added scrobbler with support for Last.fm, Libre.fm and ListenBrainz * Fixed key up causing playback to reset * New improved last.fm and musicbrainz album cover providers * Removed Qt5Xml and liblastfm dependency * Replaced sha2 with QCryptographicHash * Fixed songs not showing up under devices * Removed qxt dependency * Replaced globalshortcuts backend for X11 and Windows * Made global shortcuts on X11 optional and off by default * Added support for Monkey's Audio * Fixed crashes in devices * Enabled transcoder and organiser in menus * Added transcoder for WavPack * Changed default group by for collection to album artist * Enabled organise without gstreamer * Added cmake USE_BUNDLE option for macOS/Windows * Fixed broken GSD D-Bus shortcuts backend * Fixed broken background image setting * Disabling fading when a ALSA device is selected * Replaced QtSingleApplication with SingleApplication * Fixed scroll over icon to change track feature * Fixed freeze when changing appearance settings * Made text in about dialog selectable * Improved manual pages * Fixed typos * Updated contributors in about * Added debian copyright file * Fixed some compile errors Version 0.4.2: * Updated AppStream data file to newer specifications * Fixed Deezer engine to use quality setting * Removed unneeded dependency Qt5OpenGL * Removed obsolete xine warning and engine reinitialization * Added ALSA as optional component in cmake * Fixed bug in playlist columns setting all visible * Added option to reset playlist columns * Fixed/Improved console logging * Added queue to play next option * (Windows) Corrected uninstalled files on x64 installer * (macOS) Fixed poor performance Version 0.4.1: * Fixed crash in analyzer * Fixed trying to use systray even if the desktop had no systray * Fixed Tidal login loop bug * Added Deezer support * New improved fancy tabwidget * Fixed bug not loading engine settings * Moved queue manager into tabbar for easier access * Fixed crash when changing appearance colors * Improved error handling between player and engine * Added setting to allow continue to the next song in the playlist based on error * Improved Xine engine code * Moved some settings * Updated builtin taglib * Added AppStream data file * Fixed compiling with Qt 5 versions of system QtSingleApplication and Qxt library Version 0.3.3: * Fixed Tidal login Version 0.3.2: * Fixed search error not shown in Tidal search * Added URL handler for Tidal, now retrieving URL's when playing instead of when searching * Fixed bug in pipeline not setting url * Fixed bug setting wrong temporary metadata * Removed device module from windows, since it's not implemented for windows * Added support for both ALSA hw and plughw * Added option to change url stream scheme for Tidal * Added encoding of Tidal token in the source code * Added encoding of Tidal password in the configuration Version 0.3.1: * Added new lyrics provider with lyrics from AudD and API Seeds * New improved context widget with albums and lyrics * Fixed playing and context widget getting stuck in play mode when there was an error * Changed icons for artists in collection, tidal and cover manager * Removed "search" icon from "Search automatically" checkbox (right click) that looked ugly * Removed some unused widgets from the src/widgets directory * Fixed initial size of window and side panel * Fixed saving window size correctly * Added Tidal support * Disabled Amazon cover provider because of revoked API key * Removed broken xine fader * Made chromeprint optional * Added missing names to about dialog * Made xine enabled only for window debug * Removed dead code * Added DSF and DSDIFF/DFF support * Fixed tagreader crash when saving tags to MP3 files * Added support for reading/writing lyrics to tags * Fixed saving tags (APE) for WavPack files Version 0.2.1: * Fixed crash with newer Qt * Fixed setting output/device for Xine and VLC backend * Improved backend settings to better support multiple backends * Fixed track slider for Xine, VLC and Phonon * Fixed compilation on macOS * Fixed device selection on macOS * Added xine on to windows build Version 0.1.6: * Fixed crash on exit caused by NVIDIA driver * Fixed PulseAudio device selection * Improvements to device selection Version 0.1.5: * Makefile fixes for building Version 0.1.4: * Fixed compliation with clang compiler * This release is mainly to get it working on openbsd and freebsd. Version 0.1.3: * Audio file detection by content * Added builtin taglib to 3rdparty to support detecting audio by content instead of just file extension * Removed unneeded qsqlite from 3rdparty * Added sqldrivers\qsqlite.dll for windows build * Replaced incorrect DLL libgstdirectsoundsink.dll (from gst 1.12.4) instead of libgstdirectsound.dll (from gst 1.14.0) for windows build * Fixed git versioning Version 0.1.2: * Fixed playback of WavPack files * Fixed musicbrainz tagfetcher * Use common regex (Song::kCoverRemoveDisc) for removing Disc/CD from album * Remove Disc/CD from album when creating hash for album cover filename * Fixed imobiledevice support compilation * Fixed output device selection on windows * Fixed problems with windows build missing some DLL's, only supplying required gstreamer-plugins now * Removed redundant code Version 0.1.1: * Initial release