codeberg edestcroix/Recordbox v0.11.0

6 hours ago

At long last, v0.11.0 is finally released, bringing with it new features, further refinement of the code, and another round of bug fixing. A significant amount of work on this release was specifically focused on cleaning up the library management code to make future changes easier and to hopefully offer some performance improvements when loading the UI and scanning music files. Improvements to the project infrastructure have also been made leading up to this release, with the introduction of a beta release channel on flathub-beta and a rolling development release built off the current tip of the devel branch to make testing and bug fixing easier.

What Has Changed

Several significant changes are included in this release, including a rework of the database/library internals to improve maintainability and allow for incremental loading of the library, which should prevent UI freezes when loading large libraries; support for displaying and editing synchronized lyrics; and a new layout that is switched to at larger window sizes to more effectively utilize the extra space. Many bugs have been fixed, and many other smaller changes have been made.

Porting to diesel

The database has been ported to use diesel and in the process the database schema has been completely replaced. The new schema is more organized and better represents the actual structure of the music, with proper tables for albums, tracks, etc, rather than constructing the albums at query-time. As a result, the complexity of the database has been reduced and should reduce the amount of incorrectly grouped albums or tracks.

New Parsing

In tandem with the database rework, the library parsing code has also been updated to parse music on a directory-by-directory basis, allowing for more context when parsing tracks. Now, when deciding how to identify primary artists, the parser will consider only tracks in the same directory. Since albums are often stored in their own directories, this can help prevent distinct albums or tracks with similar or identical metadata from being grouped together by mistake in some situations. This additional context is also used to help determine if certain tracks are singles or not.

Now that 0.11.0 is released, I am also planning to write up an explanation of the current parsing strategy of Recordbox, along with the various factors I have considered while working on it and the issues I have run into that I have not yet been able to resolve. This document can then be able to be used by people to either update their metadata to match the assumptions made by Recordbox, (if it is possible) or as a reference point to make suggestions and contribute to a discussion about how to further improve Recordbox's parsing and library management code going forward. Not every issue with how music is organized is fixed yet, and I think the end result for the library management code will turn out much better if I open up the the opportunity for others to help contribute to developing a robust set of requirements and plan for it, rather than continuing to try and do it all myself.

Synchronized Lyrics

Recordbox now has support for displaying and editing synchronized lyrics. It will default to showing synchronized lyrics by default, falling back to plain lyrics if they exist. Both embedded and external synchronized lyrics are supported. When showing synchronized lyrics, the view will automatically scroll to keep the current line in view, and clicking on a line will cause the player to seek to the timestamp associated with it, allowing users to skip directly to specific lyrics in the playing song.

To edit synced lyrics, a new edit dialog specifically for them has been added. The focus of this edit dialog is mostly for making small fixes and adjustments to already-synced lyrics, so fully syncing new lyrics might be a bit awkward, and again this can be improved more going forward. The workflow for adding/editing/synced lyrics could probably also be improved ― and suggestions towards that are welcome ― but is sufficient for now. Rough edges will be smoothed off in subsequent releases.

Tracks in the album view will now also show a label when they have lyrics available which indicates whether they are synchronized or plain lyrics, this feature was contributed by @manan-gup.

The search dialog and search provider for Gnome Shell have both been ported to the nucleo-matcher crate, which is the string matcher developed by and for the helix editor. This has resulted in improved fuzzy-finding and better results overall. Additionally, nucleo provides string normalization when matching which means that accented characters can be matched by their non-accented counterparts. For example, a will match with â. nulceo is also more performant then the previously used crate.

Permission Changes

In this release and future release, Recordbox will only have permission to access the xdg-music directory by default, which is typically the /home/[USER]/Music directory. This directory will be pre-selected by default on the first-start page, and changing it to a directory that Recordbox does not have permission to access will reveal a message explaining how to grant the necessary permissions. There is not currently a way for a flatpak application to permanently request access to a directory in a way that access persists across restarts.

This means that if no music is showing up in the library after updating, and you have set a non-default music location, try checking the filesystem permissions for Recordbox first before opening an issue. If the permissions are correct (or Recordbox is not running as a flatpak) and music is still not appearing, then it is a bug and can be reported.

New Layout

One of the flaws with the newer UI design over the old one is that is is less space-efficient at large window sizes. To address this, a new larger layout has been introduced to take advantage of the additional screen space. When Recordbox's window gets large enough, it will switch from the default layout to this new large layout, which moves the play queue out of the sidebar to below the player view, and adjusts the layout of the player view to fit accordingly.
Screenshot From 2026-03-08 10-41-19

Navigation Change

Since the play queue is not always in the sidebar anymore, the position of the lyrics view and the queue have been swapped so the lyrics page is at position 4. Otherwise the the behavior of the control+4 and control+5 shortcuts are inconsistent with the UI in the large layout, as the control+5 would activate the lyrics view in the 4th position. Now control+4 activates the lyrics view at position 4, and control+5 the play queue at position 5.

Other Changes

  • Additional technical information about the playing stream (bit depth, encoding) has been added to the player view.
  • A new preference has been added to enable notification sending on track changes.
  • The keyboard shortcut dialog has been ported to the new AdwShortcutsDialog
  • Recordbox will now write logs to a file in the xdg-cache directory to make debugging easier.
  • Improvements have been made to the music visualizer to make it more dynamic and visually interesting.
  • Recordbox now uses idle-inhibit instead of suspend-inhibit to prevent the system from suspending/blanking when music is playing.
  • The flatpak runtime and other dependencies have been updated to Gnome 50.

Bugfixes

  • Playback no longer stops unexpectedly when the loop mode is changed in the last few seconds of a song.
  • Long disc subtitles are now properly truncated and no longer overflow the album view
  • Placeholder names for music entries such as [Unknown Album] will now show up correctly when using a non-English language
  • The "Rotate Cover" option in the player view is now correctly disabled on first start.
  • The progress trackers in the play queue no longer disappear for a few seconds before playback advances to the next song.
  • Covers no longer disappear when animations are disabled. (thanks to @subz69)
  • Play queue restoration on startup has been made asynchronous and should be much faster when restoring large queues.

Contributors

A huge thank you to everyone who has contributed fixes, features, translations, bug reports, and suggestions for Recordbox! It's been amazing to see so many people enjoy using Recordbox, and to have people helping to make it better is amazing as well. The list below will not be exhaustive of everyone who has contributed to Recordbox, as I've mostly focused on contributions for 0.11.0, so I also want to explicitly state that I greatly appreciate the contributions of every single person who has been involved in Recordbox up to now, whether that involvement was through contributing code, working on translations, reporting bugs, or making suggestions, and regardless of how small these contributions might have been. Going forward I will be making an effort to actively maintain a list of contributors towards the in-progress release and the issues fixed during a release cycle as they occur so I can be more thorough when including this information in future release notes, and so I can credit people for specific contributions and issues rather than just giving a general summary.

Thank you to:

  • @manan-gup for contributing several fixes and some new features, as well as for helping out with many reported issues and tracking down bugs.
  • @sylfn for improving Recordbox's detection of cover images, and for helping test and spot issues in the 0.11.0 beta releases.
  • @yakushabb for helping to get the translations working properly and for fixing localization-related issues.
  • @subz69 for helping with the 0.11.0 betas by contributing fixes and testing, and finding and fixing some issues I might not have found on my own.
  • @izerotwo for reporting issues and helping test fixes for the database and library parsing in the betas leading up to 0.11.0.
  • @legacychimera247 for all the issues reported and suggestions made which led to many improvements and bugs being fixed.

And thank you as well to everyone who has contributed translations:

  • Chinese (Simplified Han script) - @Outbreak2096
  • Dutch - @Vistaus
  • Estonian - @jrtcdbrg, @anonymous
  • German - @ostfriese4, @twojays, @C0rvus
  • Italian - @Gisk, @legacychimera247, @ormai
  • Portuguese - @shutdown
  • Russian - @canflask
  • Spanish - @josemas, @anonymous
  • Turkish - @yakushabb, @anonymous

Don't miss a new Recordbox release

NewReleases is sending notifications on new releases.