Skip to content

Releases: fooyin/fooyin

v0.10.8

21 May 00:10
4bc5913

Choose a tag to compare

New Features

  • Interface
    • Add Now Playing output functionality (#1084, #1194)
    • Add playlist background image options

Improvements

  • Interface
    • Move the Preserve timestamps option to Advanced settings
    • Command Button: Highlight toggleable actions and add checkable states for mute and menu bar actions
    • Playlist: Select the next track after removing or cutting a track (#1177)
    • Add support for custom placeholder artwork
    • Add an option to expand or collapse Library Tree nodes with a single click (#1195)
    • Add Add to current playlist and play if stopped actions for filters, the Library Tree, and the Directory Browser (#1195)
    • Add a playlist context menu action for opening playlist settings
    • Add configuration for the Selection Info properties tab and ReplayGain widget
    • Improve settings page layouts, section headers, and script input fields
    • Add support for compact DSP layout widgets and SoundTouch layout editors
  • Library/Metadata
    • Centralise artwork loading, request ordering, and thumbnail caching in a shared cover repository (#784)
    • Improve ID3v2.3 multivalue tag compatibility, including optional semicolon splitting for compatible fields (#739, #1109, #1129)
    • Add FFmpeg support for TAK files and APEv2 tag and cover art reading (#764, #1129)
  • Media Controls
    • Send embedded track lyrics over MPRIS with xesam:asText (#1192)
  • Scripting
    • Add %_fooyin_version%, %isstopped% and %datetime%

Fixes

  • Audio/Playback
    • Fix DSP manager re-adding removed pending DSPs when applying changes (#1176)
    • Fix playback engine shutdown ordering
    • Fix fade-pause timing (#1183)
    • Fix progress/time listened not being counted when replaying the current track from a stopped state (#1202)
  • Interface
    • Save shortcut changes on Apply/OK instead of shutdown (#1186)
    • Fix themed playback icons after restart (#1174)
    • Refresh playlist controls and highlight icons after palette changes
    • Fix scrobbler toggle icon colours after theme refresh
    • Fix stale Search Controller widget connections after layout edits (#1199)
    • Prevent track selection actions on auto playlists
    • Show Selection Info tooltips when text is elided (#1206)
    • Fix file dimensions in artwork properties tab
    • Prevent the elapsed progress dialog from opening after completion
    • Refresh cover views after artwork cache invalidation (#1211)
  • Library/Metadata
    • Improve artist slash detection when reading metadata (#1181)
    • Fix automatic rating scale detection for custom tags (#1175)
    • Reject non-finite ReplayGain values (#1196)
    • Fix writing of ID3 composer and performer tags (#1207)
    • Fix duplicate ID3 track and disc total fields
    • Fix rating/playback statistics not persisting after library rescans (#1212)
  • Tag Editor
    • Fix changing mixed tags when the selected tracks share the same value
    • Fix doubled spaces in multivalue tag edits (#1210)
  • Playlist
    • Fix Stop after this when playback is stopped (#1182)
    • Fix unique playlist name generation after playlists have been removed (#1180)
    • Fix a potential crash when switching layouts from throttled signal emission during teardown
  • PipeWire
    • Preserve PipeWire volume when recreating streams after sample rate changes (#1178)
    • Stop syncing PipeWire stream volume and mute changes back to fooyin's player volume (#1197)
  • Scripting
    • Fix $ascii accepting Latin1 Supplement characters (#1185, #1188)
    • Fix $replace variadic arguments and empty string handling (#1162)

Build/System

  • CI
    • Drop the Arch Linux CI job now that fooyin is available in Arch Linux extra
  • Translations
    • Update translations and translation sources (#1208, #1209)

Contributors

Translators

Full Changelog: v0.10.7...v0.10.8

v0.10.7

15 May 00:53
1ff14a7

Choose a tag to compare

New Features

  • Quick Tagger
    • Add a Quick Tagger plugin for configurable tagging actions (#836, #1153)
    • Note: The previous rating actions have been depreciated/removed, so shortcuts will need to be reconfigured

Improvements

  • DSP
    • Add View -> Equaliser option when an equaliser DSP is present in a chain
  • Interface
    • Add track selection support to the Queue Viewer (#318)
    • Add Add to Playlist context menu actions to track selections, filters, the Library Tree, and the Directory Browser (#831)
    • Reorganise settings page categories and start categories collapsed by default
    • Show a placeholder for empty settings categories and simplify single-page category display
    • Replace Tab Stack cardinal direction labels with standard directions (#1156)
    • Add a seekbar and WaveBar setting for whether mouse interaction takes focus (#769)
  • Playlist
    • Add settings to ignore playlist files when adding folders and prevent duplicate entries when loading playlists (#1160)
    • Remove the playback queue size limit
  • FileOps
    • Move the single-operation confirmation setting to Advanced settings
  • Lyrics
    • Improve the layout of font and colour settings
  • Scripting
    • Add $isalpha, $isalnum, and $isnum string functions (#982, #1168)
    • Preserve path separators in path variables (#777)
  • Tag Editor
    • Add enabled and multi-value columns to tag editor fields
  • WaveBar
    • Cache supersampled waveform renders
    • Add options to normalise waveforms, use a dB scale, and choose peak display mode

Fixes

  • Audio/Playback
    • Fix Stop After Current follow-up navigation (#1154)
    • Fix queue follow navigation after queued playback
    • Avoid duplicate file size calculations for bounded segments (#1161)
    • Refine CUE handling in external scans
  • Filters
    • Fix filtered All selections using the whole library instead of matching entries (#1151)
  • Interface
    • Fix inline editors accepting changes after pressing Escape (#1170)
    • Fix bottom viewport row selection repaint in tree views
    • Sync widget configuration state after applying
  • Library/Metadata
    • Fix custom rating text tag settings and rating write mappings (#1148, #1150)
  • PipeWire
    • Sync PipeWire volume and mute state with the system mixer (#1147)
  • Scrobbling
    • Make the scrobbling threshold independent of the playcount threshold (#1152)
  • Settings
    • Fix relative positioning of settings categories and category identity across translations
  • VU Meter, WaveBar
    • Always set the active palette for the default highlight colour

Build/System

  • Packaging
    • Target Ubuntu 26.04 and update distro-specific dependencies (#1171)
  • Translations

Contributors

Translators

Full Changelog: v0.10.6...v0.10.7

v0.10.6

11 May 20:49
c894472

Choose a tag to compare

Improvements

  • Filters
  • Interface
    • Add the Tag Editor as a layout widget (#1012)
    • Add filter for searching shortcuts and improve the shortcut editor
    • Add support for selecting built-in theme icons in Command Button widgets
    • Add an unsplit/remove split action for single-child layout widget containers (#1132)
    • Add an Advanced settings page and move technical settings there
    • Move plugin settings pages under the Plugins category
    • Make the layout editing context menu configurable
    • Save and restore settings dialog page state and expanded categories
    • Improve layout editing context menus and menu header appearance
    • Split playlist settings into focused pages
    • Add a separate action for clearing the current playlist
    • Add autocomplete to inline playlist editing (#1136)
  • Library/Metadata
    • Add configurable rating tag read/write handling for text tags and ID3 POPM frames (#370, #786, #1120)
    • Add support for multi-chapter files (#694, #945)
  • Lyrics
    • Support finding local lyrics with directory wildcards
  • Playlist
    • Add setting to load directory when opening a single file (#841)
  • Scripting
    • Add date and time functions: $year, $month, $day_of_month, $date, and $time
    • Add $meta(field,index), $meta_sep, $meta_test, and $meta_num
  • Tag Editor
    • Add support for configuring multivalue separators (#1141)

Fixes

  • Audio/Playback
    • Respect current track seekability in playback controls and WaveBar
    • Handle seek trimming for all formats in the FFmpeg decoder
    • Fix several playback queue issues after session restore (#1130)
    • Fix potential incorrect shuffle order (#1127)
  • Discord
    • Support sandboxed IPC socket locations (#1115)
  • Interface
    • Update the Script Editor track when the selection changes (#1122)
    • Fix playlist header selection deleting tracks
    • Fall back to the default or first playlist when restoring the active playlist fails
    • Fix Library Tree sorting and searching when strings contain scripting syntax (#1117, #1125)
    • Fix Library Tree row height with multiline titles
    • Fix the cursor moving to the first row when adding new rows in extendable tables
  • Library/Metadata
    • Fix swapped Encoding and TagType values
    • Fix FFmpeg tag decoding issues, including semicolon/slash-separated artists and encoder tool info (#1137)
    • Fix missing ReplayGain values evaluating as true in scripts (#1112)
  • Lyrics
    • Fix LRC offset calculation (#1121)
  • Playlist
    • Fix 'Cursor follows playback' when restoring state on startup
  • Scripting
    • Fix NOT parsing for date range queries (#1143)
    • Fall back to literal search when query syntax is invalid (#1125)
    • Fix $rand bounds (#1133)

Build/System

  • Build
    • Add a PFFFT_USE_SIMD CMake option for the PFFFT library (#1110)
  • Translations
    • Mark file extension hint labels translatable (#1108)
    • Update translations and translation sources (#1134, #1135, #1145, #1146)

Contributors

Full Changelog: v0.10.5...v0.10.6

v0.10.5

04 May 00:51
426318e

Choose a tag to compare

Improvements

  • Interface
    • Add support for wildcard artwork directory paths (#1099)
    • Split playlist and queue context-menu actions into separate configurable actions
    • Improve playlist header appearance when artwork is hidden
    • Add a playlist preset menu option for opening the preset settings page
  • Directory Browser
    • Add search support (#1106)
    • Make context menu configurable
  • Library Tree
    • Add support for right-aligned text with <right>
    • Add configurable summary node script
    • Add %trackcount%, %childcount%
  • Scripting
    • Add support for preserving layout whitespace during evaluation

Fixes

  • Audio/Playback
    • Refresh active stream metadata on track updates so ReplayGain changes apply immediately (#1102)
  • Interface
    • Fix editable tab middle-click handling
  • Library/Metadata
    • Prefer ID3v2.4 TDRC over TYER when reading date tags (#787, #1098)
    • Fix autoplaylist refresh and playlist changesets for custom tag changes (#1100)
  • Lyrics
    • Avoid stale editor and widget updates after the edited track changes (#748, #1101)

Build/System

  • Packaging
    • Add zlib as an explicit dependency and Debian packaging dependency
    • Drop Fedora 41 and add 44
  • Plugin API
    • Remove the legacy plugin settings API
  • Translations
    • Update translations and translation sources (#1104, #1105)

Contributors

Full Changelog: v0.10.4...v0.10.5

v0.10.4

02 May 13:23
eb9b1d3

Choose a tag to compare

New Features

  • Interface
    • Add Playlist Manager
    • Add configurable context menu settings with ordering and separators for track, filter, and Library Tree menus (#495)
    • Add inline metadata editing in playlist columns (#684, #846, #1010)
    • Add a Properties dialog sidebar for multi-track editing (#758, #991, #1005)
    • Add a standalone Playback Queue window from the View menu (#1051)
  • Playback
    • Add random track and album skip playback commands (#1054)
  • Tag Editor
    • Add Automatically fill fields tool (#400, #837)

Improvements

  • Audio/Playback
    • Add manual crossfade support when going to the previous track
    • Improve SDL output handling
    • Handle Opus header gain and ReplayGain (#449, #1029)
  • Discord
    • Add Clear on pause option (#811)
  • Filters
    • Speed up icon layout size hints
  • Interface
    • Improve Library Tree performance for large libraries
    • Improve large playlist loading and selection performance (#1053)
    • Add multiline rich text rendering support across playlist, filter, and status widgets
    • Add a copy action to Selection Info (#1072)
    • Add Copy file location and Copy directory path track actions (#496, #1020)
    • Add an option to show all tracks when a search is empty (#848, #1002)
    • Add context menu actions to the Playlist Switcher (#985)
    • Add settings actions to artwork and status widget context menus
    • Add an option for the Status Widget to show current playlist information
    • Add configurable artwork thumbnail grouping (#1082)
    • Split Library Tree and WaveBar settings into tabs to fit smaller displays (#1062)
    • Fix missing updates when inserting rows into hidden views (#983)
  • Library/Metadata
    • Serialise library scan commits and defer completion until changes are applied
    • Normalise track ratings when writing to the database
    • Cache metadata writability checks by extension (#1053)
  • FileOps
    • Add support for extracting archive entries
  • Lyrics
    • Add a Kugou lyrics source and word-by-word lyrics support for NetEase (#1008)
    • Add negative synced-lyrics offset support (#975)
    • Rework lyrics editing and saving across the widget and Properties dialog
    • Add a manual search dialog and additional context actions
  • Playlist
    • Add support for sort scripts in playlist columns
    • Add sorting options to Playlist Organiser (#810)
    • Add left/right display scripting for Playlist Organiser (#1040)
    • Improve playing row colour (#989)
  • Scripting
    • Add %playlist_size% and boolean functions $and, $or, $not, and $xor

Fixes

  • Audio/Playback
    • Avoid restoring playback state on startup when playback is stopped (#980)
    • Preserve shuffle history during next/previous navigation (#1034)
    • Avoid unnecessary DSP chain output reinit on stale format predictions
    • Preserve the restored active playlist track on shutdown
    • Fix paused position synchronisation after seeking to the track start (#1088)
    • Fix fade-in-only pause resume handling (#1085)
    • Handle FFmpeg errors when interleaving planar samples (#1091)
  • Filters
    • Enable plain-text search matching in comment and custom metadata fields (#776, #975)
    • Rewrite grouped filter state handling, refresh row heights after restoring view state, and fix the Show header toggle (#964, #1001, #1004)
    • Fix All selections including non-library tracks (#1066)
    • Refresh widget fonts on runtime font changes
  • Interface
    • Fix X11 desktop icon startup class handling (#959, #975)
    • Fix status bar selection elision and multiline right alignment (#1049)
    • Fix the base theme font not being applied in StatusWidget (#1011)
    • Rename the mislabelled WaveBar remaining-time option (#1017, #1019)
    • Use the hovered tab when renaming tabs in tab stacks (#1063)
    • Restore active playlist artwork in the Cover Widget
    • Restore the saved proxy type in network settings (#1077)
    • Fix Script Display copy shortcut handling (#1078)
    • Improve editable tab right-click and middle-click handling
  • Lyrics
    • Fix rich-text formatting in No lyrics script (#1037)
    • Make synced-lyrics edge centering configurable (#1056)
    • Fix trailing word timings and a crash when saving lyrics with autosave enabled (#1038)
  • Library/Metadata
    • Fix MP4/AAC ReplayGain parsing for gain strings with dB suffixes (#1048, #1050)
    • Prefer FMPS statistics when reading tags (#1068)
    • Improve reading of MPEG files with multiple tag formats (#1090)
  • Notifications
    • Query notification capabilities asynchronously (#1087)
  • Playlist
    • Rework the playlist model around stable entry ids to keep playback, queue, undo, and now-playing state consistent across edits (#1034, #1039)
    • Fix Cursor follows playback during engine-owned automatic transitions
    • Fix stale playlist tracks after FileOps rename and move operations (#1052)
    • Fix range selection when shift-clicking playlist headers (#1067)
    • Fix potential crash when reparenting children during header merges (#1061)
  • Scrobbling
    • Fix Last.fm submission signing and cache recovery for invalid entries (#999)
    • Fix ListenBrainz HTTP 400 failures from cached invalid MBIDs and stop submitting when a service is disabled or unauthenticated (#998, #996)
    • Fix Libre.fm authentication and scrobbling
    • Fix authentication callback handling
  • Scripting
    • Evaluate scripts even with an empty track list
  • Tag Editor
    • Fix copy and paste actions; use cell selection (#1083)
  • VU Meter
    • Fix static layer scaling on high-DPI displays (#1075)

Build/System

  • CI/Release
    • Add macOS .dmg packaging (#579, #1016)
    • Build Windows ARM artifacts (#1028)
    • Add Arch Linux build artifacts
  • Translations
    • Update translations and translation sources (#1095, #1096)
    • Add desktop comment translation (#1097)

Contributors

Full Changelog: v0.10.3...v0.10.4

v0.10.3

02 Apr 20:53
48c34cd

Choose a tag to compare

Improvements

  • Interface
    • Add an option for tab stacks to remember and restore the last selected tab
  • Notifications
    • Add playback controls and a portal fallback to desktop notifications

Fixes

  • Audio/Playback
    • Fix ALSA device disconnection handling regression (#962)
    • Fix prepared-track fallback after format changes, so the next track starts from the
      beginning (#967)
    • Fix duplicate error dialogs for failed track loads
    • Fix playcount incrementing after seeking to the end of the last track
    • Preserve shuffle history on track updates and improve previous-track
      availability (#968)
  • Filters
    • Ignore stale filter population results after resets (#964)
    • Fix poor performance by avoiding eager cover loading in icon mode
  • Interface
    • Fix seek label resizing so WaveBar layouts stay stable (#966)
    • Improve artwork placeholder sizing and avoid repeated synchronous no-cover retries
    • Restore ? grouping and playback markers for metadata-less tracks in Library
      Tree (#958)
    • Fix Library Tree playback tracking for empty group titles
  • Lyrics
    • Preserve lyrics on track updates (#970)
  • Library/Metadata
    • Restrict MP4 artwork support to front covers only (#963)
    • Fix a potential library scan crash caused by extra-tag loading (#958)
  • MPRIS
    • Fix cached album artwork being shown (#968)
  • SoX Resampler
    • Resolve a memory leak

Full Changelog: v0.10.2...v0.10.3

v0.10.2

30 Mar 22:38
4c1c513

Choose a tag to compare

New Features

  • FileOps
    • Add an action and shortcut to delete tracks (#932)
  • Notifications
    • Add track change desktop notifications (#801)
  • Playback
    • Add per-device output profiles and an output selector (#947)

Improvements

  • Build/System
    • Add CMake support for selecting which plugins to build (#941)
  • Interface
    • Add a Playback Statistics section to selection info (#942)
    • Add a new Track Display settings page with configurable full, half, and empty star symbols for %rating_stars% and %rating_stars_padded% (#938)
    • Support extracting artwork for archive tracks
    • Add waveform render supersampling, and increase the max number of samples per channel to 8192 (#897)
  • Library/Metadata
    • Add ReplayGain parsing in FFmpeg, improve ReplayGain string handling, and improve audio bitdepth reporting (#946)
    • Improve library scan completion handling, post summary status messages, and guard sort completions from stale overwrites (#953)
    • Treat CUE PERFORMER as artist when tracks omit it (#940)
  • Playlist
    • Improve Playlist Organiser drag-and-drop handling
  • Scripting
    • Make contains queries accent-insensitive (#957)

Fixes

  • Audio/Playback
    • Fix PipeWire lifecycle issues during output switching and device enumeration
    • Reinitialise playback buffering when BufferLength changes during playback
    • Fix output volume being applied twice after fades (#944)
    • Fix DSP preset save/load after removing DSPs
    • Fix playback queue follow-up using the queued track playlist (#952)
  • Interface
    • Fix exported file naming in save dialogs and avoid portal-backed save target issues (#937)
    • Fix translations for ScriptEditor references and the Interface settings page (#935)
    • Fix seeking in faded areas of synced lyrics
    • Fix leaked ExtendableTableView shortcut actions
    • Fix WaveBar rescaling double counting and RMS calculation
    • Fix stale state in ExpandedTreeView after model resets (#956)
    • Fix artwork cache clearing so playlist thumbnails do not stay cached as no-cover
  • Integration
    • Fix stale MPRIS play/pause capabilities after playback starts (#955)
  • Library/Metadata
    • Ignore empty embedded cover data when loading artwork
  • Playlist
    • Fix mixed playlist/file drops losing standalone tracks
    • Fix right-click selection in Playlist Organiser
  • Tag Editor
    • Fix a crash when opening the tag editor on some systems (#943)
    • Fix ratings for archive and CUE tracks
    • Improve metadata and artwork save failure reporting, and log artwork decode errors (#939)

New Contributors

Full Changelog: v0.10.1...v0.10.2

v0.10.1

27 Mar 23:24
b5a336e

Choose a tag to compare

Fixes

  • Equaliser: Fix build failure on Fedora

Full Changelog: v0.10.0...v0.10.1

v0.10.0

27 Mar 22:41
90b716a

Choose a tag to compare

The next release is here!

This is one of the biggest releases yet, bringing some of the most requested playback features to fooyin. The major additions are DSP support with a built-in DSP suite and a new equaliser, configurable crossfading and fading for track changes and seeking, and Discord Rich Presence integration.

There is even more in terms of improvements too. This includes playback queue persistence, incremental autoplaylist updates, per-widget configuration, new scripting features, richer formatting support across the interface and for more widgets, improved artwork tools, and a long list of playback, metadata, and UI fixes.

A huge thanks to everyone who contributed through code, translations, testing, bug reports, and feedback.

A later, smaller release is already in the works, which will include proper ReplayGain support for Opus, and inline editing of metadata in playlist columns.

Stay tuned!

New Features

  • Discord
    • Add Rich Presence integration (#94, #715)
  • DSP
    • Add DSP plugin support and a built-in DSP suite including Skip Silence, Resampler (FFmpeg), Convert mono to stereo, Reverse stereo channels, Downmix to stereo, and Downmix to mono
    • Add SoundTouch-based DSPs (#866)
    • Add a SoX-based resampler DSP (#880)
  • Lyrics
    • Add configurable edge fading and a per-instance base line font override
  • Equaliser
  • Interface
    • Add per-widget configuration for built-in widgets and supported plugins (#885)
    • Add a new CommandButton widget
    • Add a new Script Display widget (#357, #410, #844, #889)
    • Add support for viewing artwork full size, exporting/extracting artwork, and loading original-size covers (#791, #835)
  • Playback
    • Add configurable fading and crossfading for seek, manual track changes, and automatic track transitions (#123, #403, #884)
  • Playlist
    • Add playback queue persistence between sessions
    • Add CUE support when saving and loading M3U playlists (#700)
    • Rework autoplaylists to support incremental updates (#830, #847, #860, #895)
  • Scripting
    • Add $if3, $get, $put, and $puts
    • Add %createdtime% and store track file creation time when available (#821, #930)
    • Add playlist-based variables to window title scripts (#890)
    • Add richer formatting support across script editing and display tools

Improvements

  • CLI
    • Add seek commands (#760)
  • Directory Browser
    • Add options to show hidden files/directories and symlinks (#850)
  • Engine
    • Complete engine rewrite (#858)
    • Add configurable decode buffer watermarks (#869)
    • Add manual override of output bit depth
  • Interface
    • Add mouse forward/back support for playback controls (#925)
    • Add a local artwork source preference option to choose between embedded artwork and local files (#657)
    • Add rich text/script formatting support to Status Widget, Queue Viewer, Library Tree, Filters, and related displays
    • Split general settings into separate layout and display pages
    • Add conflict detection for shortcuts and validation error handling for settings pages
    • Add configure actions for decoders and tag readers that expose plugin settings
    • Resolve widget colours from the active palette and react better to icon theme/style changes
    • Allow editing default script-based items in widget registries (#879)
    • Add CoverWidget fading options and configuration
    • Add a dedicated Playback > Fading settings page for fade and crossfade options
    • Improve status widget double-click behaviour to jump to current playback context (#808)
    • Reposition playlist tab remove action (#809)
    • Improve seek label sizing to avoid clipped text
    • Improve icon-mode resize performance in tree and filter views
    • Improve supported-extension tooltips for decoders and tag readers
    • Use clearer names for connected-widget actions
    • Make rating stars respect the active style and selection state
    • Move waveform seekbar to the Visualisations menu
    • Show WaveBar cursor while paused
    • Improve WaveBar precision and gradient rendering
    • Add VU meter FPS and legend colour settings, and cache rendering
  • Library/Metadata
    • Add support for embedding webp, bmp, and gif artwork (#855)
    • Handle tags ARTIST and ARTISTS separately (#783)
    • Improve archive entry metadata handling and preserve entry timestamps where available
    • Preserve rating, playcount, and played timestamps on file reload, with settings to control overwrite behaviour
    • Improve metadata read/write handling and tag editing workflows
    • Improve library scanning and batch progress updates (#900)
  • Lyrics
    • Rewrite lyrics list/editor as QListView (#818)
    • Add quick action to update current line and move to the next (#770)
    • Add drag-seek and improve synced lyrics centering
    • Add multi-line highlighting and smoother synced-lyrics behaviour
    • Improve default played/unplayed colours, current line formatting, and word highlighting
    • Apply configured margins and alignment consistently in lyrics views and "no lyrics" display scripts
    • Adjust lyrics panel colours when the theme changes (#875)
    • Always save lyrics when applying editor changes
    • Respect hidden files when searching for local lyrics
    • Seek only on left-click (#870)
  • Playlist
    • Add option to stop playback when queue finishes
    • Add action to remove unavailable tracks from the database
    • Add live evaluation of playback variables in playlists
    • Add external drag support for playlist tracks (#927)
    • Add a separate sort script option for library viewers (#117, #321)
    • Improve Library Tree performance, grouping, sorting, and playback-following behaviour
    • Add a More... option to the playlist sorting menu
    • Add queue actions to Search Playlist results (#888)
  • GME
    • Enable vgm/vgz playback in GME
    • Make fading of non-looping tracks an opt-in setting (#826)
  • Scrobbler
    • Submit cached scrobbles on startup
    • Send "Now Playing" updates at regular intervals (#861)
  • Utilities
    • Add actions to copy log entries and full logs to clipboard
    • Queue log messages to avoid potential main-thread stalls
    • Use a dedicated QCache for cover caching

Fixes

  • Engine
    • Fix DSD playback stutters (#853)
    • Rework live bitrate reporting for more reliable updates (#906)
  • Library/Metadata
    • Preserve inherited metadata when CUE fields are missing and handle trailing album metadata in CUE sheets (#626, #756)
    • Fix CUE source precedence, file matching, and duplicate resolution (#677)
  • Playback
    • Fix several Stop after this edge cases (#923)
    • Fix "Send to playback queue" not starting playback
    • Fix playlist tabs only changing on click (#693, #731)
    • Fix Properties dialog not auto-defaulting to OK (#752)
    • Fix multi-column handling issues (#761)
  • Formats/Decoders
    • Fix a double-free in the FFmpeg ReplayGain scanner backend (#924)
    • Fix FFmpeg misdetecting some FLAC files as MP3 (#696)
    • Reject non-audio inputs earlier in FFmpeg and fix crashes when attempting to index such files
    • Handle invalid audio properties more safely in TagL...
Read more

v0.9.2

21 Sep 21:13
7051852

Choose a tag to compare

Improvements

  • Core: Add option to preserve file timestamps (#660)
  • FileOps
    • Add presets to track selection context menu
    • Remove writable check on directory (#655)
  • GUI/MPRIS: Always load album covers from file (#665)
  • Info Panel
    • Adjust value column size (#342)
    • Add option to toggle horizontal scrollbar (#342)
  • OpenMPT: Add loop count option to settings (#643)
  • Playlist
    • Add actions to remove duplicate and dead tracks (#607)
    • Add setting to control track preload count (#571)
  • Scrobbler: Add support for custom services (#672)
  • Lyrics
    • Add lyrics tab to properties dialog
    • Add forward and rewind buttons for precise timestamp adjustments (#623)
    • Allow removing lyrics
    • Improve layout of editor controls

Fixes

  • Engine
    • Drain audio output before closing (#654)
    • Fix playback of multi-track files (#627)
    • Fix regression with playback restarting on unpause
  • GME/OpenMPT/LibVGM: Fix infinite looping (#668)
  • Library: Fix parsing CUE sheets with multiple files/tracks (#582)
  • Playback
    • Always follow track if option is enabled, regardless of playstate
    • Fix playback switching to queued playlist, even with 'Follow Playback Queue' disabled (#647)
  • Playlist
    • Fix regression with playlist track selection behavior
    • Fix crash when active playlist is deleted (#658)
    • Fix highlighting playing track (#664)
    • Fix stop icon persisting
    • Fix scrolling to current index
    • Fix selection restoration (#666)
    • Limit cursor movement to track rows
  • Scrobbler
    • Fix MusicBrainz token not being saved
    • Fix duration and listened_at types (#676)

Build/System

  • Build: Update to use C++23 (#685)
  • Ubuntu/Debian: Fix package dependencies (#620)

New Contributors

Full Changelog: v0.9.1...v0.9.2