MusicBrainz Server update, 2023-02-28

After about three years of development and almost six months of beta testing, here is the new implementation in React of all the relationship editors, including the release relationship editor. During the beta period, a hundred more smaller changes have accumulated; mostly bugfixes, but also some URL handling improvements and a fair number of other pages converted to React.

This is a major step forward in development as it makes the project more open to JavaScript contributors and allows for implementing more refinements.

From an editor point of view, the relationship editing dialog slightly changed visually, but overall the page offers the same features, fixes a large amount of bugs, and has some additional improvements:

  • Better handling of very big releases by not loading all tracks at once
  • Added ability to edit batch-created works before they’re submitted
  • “+” icons to quickly add additional relationships of the same type are now also available on the release relationship editor
  • Now remembering which entity type was selected last in the relationship dialog
  • New type-to-search functionality for the relationship type selector
  • Better internationalization as the layout ordering of fields is based on their dependencies rather than on the English grammar of link phrases.
  • Better seeding of data: easier to script, more reliable, and more available fields
  • Recording-work relationships can now be reordered straight from the release relationship editor
  • Reordering relationships can now also be done by entering the order number rather than using up and down arrows
  • A preview of the relationship (and any changes) is now shown in the add/edit relationship popup

During the beta period, another hundred tickets or so relating to the new editors were reported and addressed. There still are a few tickets reported during the beta that have not yet been resolved, but their drawbacks are outweighed by the benefits of this server update. They are still tracked and will be addressed later on.

A new release of MusicBrainz Docker is also available that matches this update of MusicBrainz Server. See the release notes for update instructions.

Thanks to jesus2099, julian45, and Maxr1998 for having contributed some code. Thanks to kellnerd for working with us to make sure his data seeding scripts worked in the new editors and through that helping us improve script and seeding support. Special thanks to chaban for his thorough dedication at identifying/reporting/detailing issues during these months. Thanks to Admiy, CatQuest, cherryblossom000, chiark, Cyberskull, drsaunde, Eincrou, Griomo, HibiscusKazeneko, johnnyjd, mcboing, mfmeulenbelt, Midness, MXS, otringal, outsidecontext,,, UltimateRiff, vzell, withered.silence, yindesu and zos18 for having reported bugs and suggested improvements. Thanks to 3Johnny, Blu777, dongrimaldo42, homersimpsons, perea and salo.rock for updating the translations. And thanks to all the many others who tested the beta version!

Edit: The changes for MBS-10614 accidentally allowed editors without a confirmed email to vote for a while – this has now been hotfixed.

The git tag is v-2023-03-03-hotfixes.

Continue reading “MusicBrainz Server update, 2023-02-28”

libdiscid 0.6.3 and bindings for D, Rust, Go and Hare

A new version 0.6.3 of libdiscid has been released. libdiscid is a C library that allows applications to easily calculate MusicBrainz and freedb disc IDs from audio CDs. It also can extract MCN and ISRC information.

The main focus for this release has been to provide updated source and binary packages compatible with current systems. But there is also new platform support for the Haiku operating system.

Version 0.6.3 of libdiscid provides the following changes:

  • LIB-66: fix for Debian kFreeBSD
  • Haiku platform support (TOC only)
  • Use discid_feature enum in discid_read_sparse
  • Fixed building with CMake on macOS
  • LIB-68: provide macOS universal2 binaries with support for both x86_64 and arm64
  • LIB-67: Source tarball with updated autotools configuration
  • CMake: Use GNUInstallDirs to determine install location
  • CMake 2.8.12 is now the minimum required version

Being a C library libdiscid is highly portable and can easily be used with various programming languages. Ready-to-use bindings for many languages are available. Since the last release 6 years ago additional bindings for D, Rust, Go and Hare have become available. There is also an alternative .NET implementation of libdiscid written in C#.

More details on libdiscid, information on available language bindings, and downloads of the source code and pre-compiled binaries for macOS and Windows can be found on the libdiscid page. See also the API documentation for details on how to use the library.

ListenBrainz App is now available on the PlayStore!

We have released the ListenBrainz app for Android! Track your music listening habits and connect with other music lovers around the world, with this exciting new app.

A image of an Android phone with some ListenBrainz style bubbles around it

Get the app on the Google PlayStore.

The integration of BrainzPlayer, a powerful music player that can handle songs stored on a user’s device, is one of the app’s most impressive features. Listen to all of your favourite music in one place, without having to switch between different apps or services.

But the app’s functionality doesn’t stop there. ListenBrainz integrates with the Spotify Android SDK, allowing you to stream your favorite songs directly from the popular music streaming service. This provides a seamless listening experience, no matter where music is stored.

Year in Music is another exciting feature. Get a detailed breakdown of your music listening habits over the course of a year. Track what songs have been played the most, what artists have been listened to the most, and even what days and times you and your friends listen to music. Gain insight into your listening habits, and discover new music picked out just for you.

The ListenBrainz app is still new, and we are constantly working to improve it. We are eager to hear feedback from you about what features you would like to see added, what improvements could be made, and any issues you may encounter while using the app. You can send your feedback to us via our forums, IRC, Twitter, or email.

We’ve been accepted to Google’s Summer of Code program 2023!

I’m very pleased to announce that the MetaBrainz Foundation has been accepted into Google’s Summer of Code program for 2023. This amazing project has been incredibly influential for us and our teams, so we’re pleased to be part of it for another round.

Anyone wishing to participate in the program should carefully read the terms for contributors and if you are eligible, go ahead and take a look at our Summer of Code landing page where you can find our project ideas that we listed for this year. Our landing page will tell you what we require of our participants and how to pick up a project.

Good luck to all who are interested in participating!