fooyin 0.9.2

fooyin is a music player built around customisation. It provides a variety of widgets to help you manage and play your local collection. It's highly extensible with a plugin system and includes FooScript, a scripting language for advanced configuration of widgets. A layout editing mode enables the entire user interface to be customised, starting from a blank slate or a preset layout.

Tags audio music player cpp qt
License GNU GPLv3
State initial

Recent Releases

0.9.222 Sep 2025 03:15 minor bugfix: Improvements: Core: Add option to preserve file timestamps. FileOps. - Add presets to track selection context menu. - Remove writable check on directory. GUI: Use helper for saving/restoring state in MainWindow. GUI/MPRIS: Always load album covers from file. Info Panel. - Adjust value column size. - Add option to toggle horizontal scrollbar. OpenMPT: Add loop count option to settings. Playlist. - Add actions to remove duplicate and dead tracks. - Add setting to control track preload count. Scrobbler: Add support for custom services. Lyrics. - Add lyrics tab to properties dialog. - Add forward and rewind buttons for precise timestamp adjustments. - Allow removing lyrics. - Improve layout of editor controls. : Engine. - Drain audio output before closing. - playback of multi-track files. - regression with playback restarting on unpause. GME/OpenMPT/LibVGM: infinite looping. Library: parsing CUE sheets with multiple files/tracks. Playback. - Always follow track if option is enabled, regardless of playstate. - playback switching to queued playlist, even with 'Follow Playback Queue' disabled. Playlist. - regression with playlist track selection behavior. - crash when active playlist is deleted. - highlighting playing track. - stop icon persisting. - scrolling to current index. - selection restoration. - Limit cursor movement to track rows. Scrobbler. - MusicBrainz token not being saved. - duration and listened_at types. ### Build/System. Build: Update to use C++23. Ubuntu/Debian: package dependencies.
0.9.121 Aug 2025 03:15 minor bugfix: : Engine: silent playback in some cases. Engine: Resolve crash when playing tracks in archives. Directory Browser: scrolling to top on playback. Directory Browser: restoring directory on startup in tree mode. Scrobbler: layout of settings page. Seekbar: display of labels in some instances. Status Bar: evaluation of playing script when active playlist tracks change. WaveBar: Resolve crash when seeking.
0.9.017 Aug 2025 03:15 major bugfix: New Features: Artwork. - Support changing embedded artwork. - Support downloading and saving artwork. Lyrics. - Support finding, saving, and editing lyrics. Playlist. - Add autoplaylist functionality. Improvements: Artwork. - CoverWidget: Always show individual track covers. - Settings: Display disk cache usage and add button to clear. Engine. - Handle file changes during playback. - Make VBR update interval configurable. - Start playback on next/previous if stopped. - Add support for audio/x-flac mime type. Interface. - Add setting to toggle main menu bar. - LibraryTree: Align click actions with browser page. - LibraryTree: Improve selection playlist behaviour. - Selection Info: Include library name if track is in library. - Settings: Add buttons to open config and share directories. Playback. - Add Follow playback queue option. Playlist. - Add ` list_index ` variable. - Add queue/play next actions. - Automatically load rest of playlist when ready. - Optimise updating track data by limiting column updates. - Perform searches by filtering the current playlist. - Use alternating row colours in icon mode. ReplayGain Scanner. - Support changing scanner backend. Scripting. - Add ` playlist_elapsed `, ` playlist_duration `. - Add ` round`, ` strstr` and friends. - Add filesize_natural . - Add `LIMIT` keyword and `*` alias for `ALL`. - Add sorting shorthand `S+`/`S-` and improve sort expression evaluation. - Add number arg to ` crlf` to support multiple line breaks in one call. Scrobbler. - Add filtering options. - Add libre.fm service. : Engine. - duration of CUE tracks on initial read. - gain calculation with gapless playback enabled. - gapless playback with ReplayGain enabled. - playback of last track in CUE. - playback restarting when stopping with fade out. - seek interrupting fade-in. - silence between CUE albums. - playback of MP2. Interface. - ExpandedTreeView: crash with bottom captions in icon mode
0.8.111 Nov 2024 23:55 minor bugfix: ### Improvements * LibraryScanner: Use a more detailed dialog that displays elapsed and estimated time * LibraryScanner: Show per-file progress for archive and playlist scans * RGScanner: Add dialog for removing RG info * WaveBar: Use elapsed and estimated time dialog for generating waveforms ### Fixes * Engine: Fix playback of WavPack * RGScanner: Wait to close results dialog until files have been updated * Settings: Fix reordering of decoders and tagreaders