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.
Homepage
Download
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
|