MusicBrainz Server update, 2021-09-20

We’re back to our usual two-week cycle with a relatively small set of changes, of which the most interesting might be that you can use some extra includes in the MusicBrainz API: release-group-level-rels for release lookups, and recording-level-rels and work-level-rels on release browses. Keep in mind that recording level relationships are still restricted to the same 500 recording limit that applies to very large release lookups, to keep the size of the API responses somewhat sensible – anything over 500 recordings and you’ll need to get the relationships entity by entity.

Additionally, we found an issue where the “make my tags private” setting was not being respected when users tried to navigate straight to a tag page, such as https://musicbrainz.org/user/username/tag/tagname, making it possible to see what the user in question had tagged with tagname even if the tags were meant to be private. This was fixed on both the beta and production servers as soon as we were made aware of it by CatQuest, but we cannot guarantee that it was never used by any too-curious editor who failed to report it before. We apologize for any possible breach of your tag privacy.

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 atj, CatQuest, chaban, Cyberskull, jesus2099, MrClon, mr_maxis and outsidecontext for having reported bugs and suggested improvements. Thanks to mfmeulenbelt and salo.rock for updating the translations. And thanks to all others who tested the beta version!

The git tag is v-2021-09-20.

Fixed Bug

  • [MBS-8820] – An artist with only event rels has a fully blank relationships page
  • [MBS-9454] – URL entities do not always get purged when last entity association is removed
  • [MBS-11717] – Pending artist credit edits warning missing in artist credits reports
  • [MBS-11932] – URL-Work license relationships not excluded from “Report for same URL linked to many entities” report
  • [MBS-11940] – /ws/2/tag return 500 code for invalid requests
  • [MBS-11944] – Place merge button on areas says “Add selected labels for merging”
  • [MBS-11976] – User tag page is not private even when meant to be

Improvement

  • [MBS-6140] – Add “recording-level-rels” (and “work-rels”) support to “Release” browse web service
  • [MBS-8098] – Allow release-group-level-rels in release lookup
  • [MBS-11130] – Clarify it’s not possible to subscribe to VA / [no label]
  • [MBS-11794] – Link to edit searches on statistic page
  • [MBS-11799] – Display “credited as” field in sidebar external links
  • [MBS-11907] – Block vyd.co link aggregator

New Feature

  • [MBS-11819] – Show OAuth authorizations for account admins
  • [MBS-11843] – Add report for “Events with annotations”

React Conversion Task

  • [MBS-11841] – Convert Set Track Lengths edit to React

MusicBrainz Server update, 2021-09-06

Today we’re happy to release yyoung’s work to improve the external links editor; see his detailed blog post for more information. Thanks for your hard work, yyoung!

This release also contains quite a few bug fixes and improvements, given the amount of time since last release. Several fix guess-case issues, and we’ve refactored the guess-case code to be more maintainable in the future. A visible improvement you may notice is that we now display icons next to entity links in relationships to help distinguish different types of entities. (If you’ve been editing on MusicBrainz for a long time, you may remember something similar from the classic, pre-NGS website.)

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 aerozol, angriestchair, Beckfield, bsammon, chaban, CyberSkull, danBLOO, Dibou, Freso, HDS, jesus2099, KRSCuan, mr_maxis, mtrolley, navap, salo.rock, Shepard, yindesu, and yyoung for having reported bugs and suggested improvements. Thanks to Besnik, ffff23, kellnerd, mfmeulenbelt, panos, salo.rock, th1rtyf0ur, V6lur, and yoshi818 for updating the translations. And thanks to all others who tested the beta version!

The git tag is v-2021-09-06.

Fixed Bug

  • [MBS-11793] – Wikipedia abstract is fetched even though URL is ended
  • [MBS-11795] – Text overflow in external link relationship type description tooltip
  • [MBS-11802] – ISE on “Edit relationship type” edit for removed type
  • [MBS-11806] – Relationships for different tracks are wrongly grouped on release bottom credit display
  • [MBS-11812] – Merge queue: Missing whitespace before “New disc title”
  • [MBS-11832] – artist-credit/id page gives TypeError if the id does not exist
  • [MBS-11854] – Guess Case doesn’t properly capitalize after Unicode hyphen U+2010
  • [MBS-11861] – Weird odd/even classes client-side for tablesorted statistics
  • [MBS-11864] – Some DNB links are wrongly marked as invalid
  • [MBS-11922] – pre-NGS release type not shown for compilation
  • [MBS-11933] – /oauth2/token doesn’t validate the code parameter

Improvement

  • [MBS-2221] – Description for how to set a relationship as “in” a date
  • [MBS-2418] – Show “Edit URL” edits in entity edit histories
  • [MBS-2421] – Small icon near recording / work / release / artist / … names to distinguish them
  • [MBS-3774] – Add URL relationship with begin and end dates
  • [MBS-7859] – Hide relationships from original recordings to other/derived versions in release view
  • [MBS-10054] – Better editing/viewing of URL relationships from Artist page
  • [MBS-10910] – Display renamed labels on Overview
  • [MBS-11267] – Show label for cover art pieces when reordering cover art
  • [MBS-11391] – Show changes made to external link when editing URL relationship
  • [MBS-11622] – Clean up Apple Music label URLs
  • [MBS-11650] – Add Tag statistics to profile page
  • [MBS-11680] – Group editing URL relationships by external link
  • [MBS-11693] – Give useful message when rejecting Musixmatch /album links
  • [MBS-11722] – Don’t preselect basic as language proficiency
  • [MBS-11732] – Remove LYRICSnMUSIC from lyrics whitelist
  • [MBS-11733] – Remove WikiaParoles from lyrics whitelist
  • [MBS-11788] – Guess case: Lowercase “official” in ETI
  • [MBS-11796] – Add Internet Archive logo for sidebar
  • [MBS-11797] – Guess case: Lowercase “censored”, “uncensored”, “explicit” in ETI
  • [MBS-11798] – Disallow Instagram /accounts link and other internal links
  • [MBS-11808] – Don’t show entities in tag pages where vote count for tag is lower than 1
  • [MBS-11810] – Merge queue: Rename “disc title” to “medium title”
  • [MBS-11811] – Make Tracklist editing buttons behave consistently on collapsed mediums
  • [MBS-11823] – Don’t insert line breaks inside tag words
  • [MBS-11824] – featured artist reports should look for featured artists without a space
  • [MBS-11825] – Use consistent order for art types when editing vs adding cover art
  • [MBS-11833] – Drop “f.” from the featured artists reports
  • [MBS-11846] – Display release artist on release group view
  • [MBS-11850] – Make footer links more visible
  • [MBS-11862] – Do not show deprecated relationship types with 0 uses in selectors
  • [MBS-11863] – Allow DNB links for works
  • [MBS-11875] – Braille should not be looked for in “Releases with unlikely language/script pairs” in connection to a spoken/written language
  • [MBS-11888] – Automatically set/disable ended when setting an end date in DateRangeFieldset
  • [MBS-11891] – Use HTTPS when linking to Jira
  • [MBS-11912] – Also allow Mainly Norfolk as a lyrics source
  • [MBS-11913] – Auto-select “stream” additionaly to “download” for Jamendo URLs
  • [MBS-11915] – Don’t show area icon if there’s already a flag icon
  • [MBS-11924] – Remove redundant tabs/links/info from deleted editor profiles

New Feature

  • [MBS-9426] – Interface to remove usernames from blocked list
  • [MBS-9902] – Support auto-select/cleanup/validation of more than one relationship type for external links
  • [MBS-11689] – Report: pseudo-releases marked as the original tracklist
  • [MBS-11828] – Add admin interface for checking whether a username is blocked
  • [MBS-11848] – Add report for “Releases with Amazon cover art without any Cover Art Archive images”

React Conversion Task

  • [MBS-11834] – Convert Add Release edit to React
  • [MBS-11835] – Convert Change Wikidoc edit to React
  • [MBS-11836] – Convert Edit Barcodes edit to React
  • [MBS-11837] – Convert Edit Release Label edit to React
  • [MBS-11838] – Convert Edit Release edit to React
  • [MBS-11839] – Convert Remove Relationship Attribute edit to React
  • [MBS-11840] – Convert Reorder Mediums edit to React

Other Task

  • [MBS-11805] – Add flow typing to guess case code
  • [MBS-11856] – Remove reports for releases with cover art relationships
  • [MBS-11928] – Drop consul-template for deployment

Acoustic similarity in AcousticBrainz

We’re pleased to announce that we have just released acoustic similarity in AcousticBrainz. Acoustic similarity is a technique to automatically identify which recordings sound similar to other recordings, using only the recordings themselves, and not any additional metadata. This feature is available via the AcousticBrainz API and the AcousticBrainz website, from any recording page. General documentation on acoustic similarity is available at https://acousticbrainz.readthedocs.io/similarity.html.

This feature is based on work started by Philip Tovstogan at the Music Technology Group, the research group that provides the essentia feature extractor that powers AcousticBrainz. The work was continued by Aidan Lawford-Wickham during Summer of Code 2019. Thanks Philip and Aidan for your work!

From the recording view on AcousticBrainz, you can choose to see similar recordings and choose which similarity metric you want to use. Then, a list of recordings similar to the initial recording will be shown.

These metrics are based on different musical features that the AcousticBrainz feature extractor identifies in the audio file. Some of these features are related to timbral characteristics (generally, what something sounds like), Rhythmic (related to tempo or perceived pulses), or AcousticBrainz’s high-level features (hybrid features that use our machine learning system to identify features such as genre, mood, or instrumentation).

One thing that we can immediately see in these results is that the same recording appears many times. This is because AcousticBrainz stores multiple different submissions for the same MBID, and will sometimes get submissions for the same recording with different MBIDs if the data in MusicBrainz is like this. This is actually really interesting! It shows us that we are successfully identifying that two different submissions in AcousticBrainz as being the same using only acoustic information and no metadata. Using the API you can ask to remove these duplicated MBIDs from the results, and we have some future plans to use MusicBrainz metadata to filter more of these results when needed.

What’s next?

We haven’t yet performed a thorough evaluation of the quality of these similarity results. We’d like people to use them and give us feedback on what they think. In the future we may look at performing some user studies in order to see if some specific features tend to give results that people consider “more” similar than others. AcousticBrainz has a number of additional features in our database, and we’d like to experiment with these to see if they can be used as similarity metrics as well.

The fact that we can identify the same recording as being similar even when the MusicBrainz ID is different is interesting. It could be useful to use this similarity to identify when two recordings could be merged in MusicBrainz.

The data files used for this similarity are stand-alone, and can be used without additional data from AcousticBrainz or MusicBrainz. We’re looking at ways that we can make these data files downloadable so that developers can use them without having to query the AcousticBrainz API. If you think that you might be interested in this, let us know!

GSoC 2021: Pin Recordings and CritiqueBrainz Integration in ListenBrainz

Hi! I am Jason Dao, aka jasondk on IRC. I’m a third year undergrad at University of California, Davis. This past summer, I’ve been working with the MetaBrainz team to add some neat features to the project ListenBrainz.

Continue reading “GSoC 2021: Pin Recordings and CritiqueBrainz Integration in ListenBrainz”

GSoC’21: MusicBrainz Android App: Dawn of Showdown

Greetings, Everyone!

I am Akshat Tiwari (akshaaatt on IRC), an undergraduate student from Delhi Technological University, India.

It has been an exhilarating experience for me, right from submitting a proposal for GSoC to becoming a part of a fantastic community.

The Google Summer of Code 2021 Edition finally comes to an end after the 3-Month long journey. I will be detailing the journey of working towards my summer of code project today. This blog is a summary of all the work done.

Continue reading “GSoC’21: MusicBrainz Android App: Dawn of Showdown”

GSoC 2021: Push the URL relationship editor to the next level

Hello everyone, I’m Yang Yang (aka yyoung), an undergraduate student from Shanghai Jiao Tong University, China. I am honored to be accepted as a student of Google Summer of Code 2021 in MetaBrainz Foundation to work on the improvements of external links editor. I had a good time with the MusicBrainz dev team this summer, and it was a valuable experience for me. This is a final report and overview of my work.

Continue reading “GSoC 2021: Push the URL relationship editor to the next level”

GSoC 2021: Complete Rust binding for the MusicBrainz API

Hi Everyone! I am Ritiek Malhotra (ritiek on IRC) and recently completed my undergraduate degree in Computer Science and Engineering. I participated in Google Summer of Code ’21 and worked on musicbrainz_rs – a library wrapper on the MusicBrainz Web API written for the Rust programming language.

Continue reading “GSoC 2021: Complete Rust binding for the MusicBrainz API”

GSoC 2021: Series Entity for BookBrainz

Hi everyone, I am Akash Gupta, currently pursuing my undergraduate from Kalinga Institute of Industrial Technology. This summer, I participated in Google Summer of Code and developed a new feature — Series Entity— for the project BookBrainz.

I was mentored by Nicolas Pelletier (monkey on IRC) during this period. This post summarizes my contributions to the project and the experiences that I had throughout the summer.

Continue reading “GSoC 2021: Series Entity for BookBrainz”

Welcoming Akshat Tiwari to the MetaBrainz team!

I’m pleased to announce that we are continuing our long tradition of hiring our best Google Summer of Code participants — I’d like to warmly welcome Akshat Tiwari to the MetaBrainz team!

Akshat has been working on our Android App, continuing the work from last summer to improve the app and to add new features. He has been doing great work and demonstrating the fact that he understands user interfaces and has an eye for design as well as coding. This is a rare combination of talents and since we’ve been in dire need for improving the UI/UX for the MusicBrainz web site since forever, this was the time to finally get this project moving seriously.

Akshat has joined us on a trial contract through the end of the year with the goal of creating a new home page for MusicBrainz (and more hopefully) — the current home page is still stuck in the early 2000s and hasn’t evolved as our projects have evolved.

Our hope is to have Akshat become a permanent member of the MusicBrainz team and once the home page is completed, that he will continue on the UI/UX revamp that Chhavi started several years ago.

Welcome to the team Akshat!

MusicBrainz App

Greetings, Everyone!

The MusicBrainz Mobile App developers have been working at full capacity, improving the user experience, incorporating more features and functionalities, while making sure the core purpose of the app remains as promised.

Since its inception in 2010, the MusicBrainz Official App has come a long way. The App currently is highly maintained and has been actively open for contributions. A systematic approach is being followed and updates are being made on a regular basis.

The most important revamp which has been worked on for the past few months is the Tagger feature available in the MusicBrainz Android App.

Functionalities like fetching the local album arts, searching through all your local music files at one go, retrieving the cover art from the server, and heading to the recording directly are some of the key highlights of the upcoming Tagger.

Picard has finally made an official entry to the MusicBrainz App where users can now send their releases to the original Picard desktop app with the click of a button. This has been worked on in collaboration with the Picard team and proper documentation on its usage will be shared soon.

The completely new addition of Listen and Critique showcases the functionalities of ListenBrainz and CritiqueBrainz websites natively from the app. Currently, these will be available as advanced features on the app.

A well-prepared Onboarding and About section will take you through every important detail on the app and make sure you are aware of all the functionalities in the best and optimized way possible.

Proper documentation of every feature is being prepared. The App is finally out in Production, do head to the stores and give it a try!

We are really excited to make the MusicBrainz App as user-friendly as possible for you, while we take care of all the wonder behind it!

Play Store: MusicBrainz – Apps on Google Play

F-Droid: MusicBrainz | F-Droid – Free and Open Source Android App Repository

Github: metabrainz/musicbrainz-android

Thank you!