Picard 2.5 release

Picard 2.5 is now available.

Thanks a lot to everybody who contributed to this release with code, translations, bug reports and general feedback.

What’s new?

This release contains few fixes and improvements over previous beta version. A complete list of changes since the beta release is available below.
New packages can be downloaded from Picard website Downloads section.

As usual, please report any issue through our bug tracker.

Bug

  • [PICARD-214] – Take case insensitive filesystems into account when renaming files
  • [PICARD-1972] – Times missing in bottom panel
  • [PICARD-1973] – Multi-value tags getting flattened when files get matched to tracks
  • [PICARD-1974] – Picard crashes when using the same tag name more than once in “Tags from File Names…”
  • [PICARD-1975] – Tags from file names does not properly set hidden tags
  • [PICARD-1976] – Cover art providers do not handle URLs with query arguments correctly
  • [PICARD-1979] – Comment tag in MP4 not saved correctly
  • [PICARD-1982] – Coverart not saving properly

Improvement

  • [PICARD-1978] – Add keyboard shortcut for Tags From Filenames and allow to place it in toolbar

The whole Picard team would like to thank everyone involved in this project, whether they are developpers, users, translators, documentation contributors.

Since some time the whole Picard documentation is better than ever, thanks, mainly, to the fantastic job rdswift did. With the help of the community we should be able to provide translations for this documentation in upcoming future (tests were done recently). If you want to help, read Contributing page.

You can also discuss new features or usage on our forums.

MusicBrainz Server update, 2020-10-19

Today’s MusicBrainz Server brings a new data report, a continued conversion to React, some bugfixes and small improvements, but also tests refactoring.

Meanwhile, the search server has been updated twice in a row to fix bugs in JSON output mostly with MB Solr 3.2 (release notes) and MB Solr 3.3 (release notes), including the MusicBrainz API breaking change announced last month.

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 amCap1712 for fixing bugs in MB Solr, and to loujine for contributing code with yet a new data report. Thanks to Avamander, bonchiver_, chaban, draconx, eloise_freya, GTF1982, hawke, hibiscuskazeneko, jesus2099, jrv, kellnerd, Kid Devine, Psychoadept, selflessself, and wcw1966 for having reported bugs and suggested improvements. Thanks to kellnerd, mfmeulenbelt, and salorock for updating the translations. And thanks to all others who tested the beta version!

The git tag is v-2020-10-19.

Bug

  • [MBS-10221] – Track Parser not filling in artists
  • [MBS-11149] – Misspelling of the word “misspellings”
  • [MBS-11150] – Add CD-TOC wrongly defaults to last listed artist when none selected
  • [MBS-11156] – Track parser unsets “Various Artists” track artist credits
  • [MBS-11162] – Work type description bubble starts as default even if type is selected
  • [MBS-11174] – Editor profile added entities: Missing Add release edit type 216
  • [MBS-11176] – Heading of the release group section in the external links sidebar has disappeared

Improvement

  • [MBS-5225] – Allow showing tracklists everywhere when attaching/viewing discIDs
  • [MBS-7256] – Add “Expand all mediums” option to the release page
  • [MBS-8725] – Allow mediums to have an unknown tracklist
  • [MBS-11115] – Show detailed information when attaching disc IDs
  • [MBS-11139] – Use HTTPS for display on Library of Congress links
  • [MBS-11163] – Show type descriptions when editing entities
  • [MBS-11165] – Update the VK logo used in the sidebar
  • [MBS-11167] – Normalize vk.com links to HTTPS
  • [MBS-11173] – When deleting users, change their No and Yes votes on pending edits to Abstain

New Feature

  • [MBS-11117] – Report for mediums with very long durations from discID

React Conversion Task

  • [MBS-11141] – Convert Edit Relationship edit to React
  • [MBS-11152] – Convert entity/ratings page to React

Other Task

  • [MBS-11148] – Remove Google Play links from the sidebar

Picard 2.5 Beta 1

Picard 2.5 Beta 1 is now available. This is a pre-release to gather final feedback on the changes before the final 2.5 release.

Thanks a lot to everybody who contributed to this release with code, translations, bug reports and general feedback.

What’s new?

This release fixes some possible crashes, makes Picard able to run on the new macOS 11, provides several small UI improvements, allows using file tags and variables in tagger script, and more. See below for a full list of changes.

Bugfixes

  • [PICARD-1858] – MusicBrainz Picard does not respond on macOS 11 Big Sur Beta
  • [PICARD-1882] – Scripting text not well readable with dark theme on KDE
  • [PICARD-1888] – Returning tracks to cluster uses matched release rather than what’s in the files
  • [PICARD-1932] – Failed AcoustID submission shows as successful
  • [PICARD-1939] – Crash when “Remove” button is hit without picking a file first
  • [PICARD-1941] – Unchanged multi-value tags on tracks show up as changed
  • [PICARD-1954] – Right-clicking on album with “could not load album” message crashes
  • [PICARD-1956] – It is possible to have the same file multiple times inside the same cluster
  • [PICARD-1961] – Capitalization for non-standardized instruments
  • [PICARD-1963] – Possible stack overflow when loading files
  • [PICARD-1964] – Scripting documentation does not support RTL languages
  • [PICARD-1969] – Browser integration port changes without saving options
  • [PICARD-1971] – Tags from file names dialog does not restore window size

New Features

  • [PICARD-259] – Make file-specific variables and metadata available to tagger script
  • [PICARD-534] – Support SOCKS proxy
  • [PICARD-1908] – Allow loading release group URLs / MBIDs
  • [PICARD-1942] – Display tracklist in Info dialog for loaded releases
  • [PICARD-1946] – Map “vocal arranger” rel to arranger tag

Improvements

  • [PICARD-1390] – Apply a network timeout to avoid network requests hanging indefinitely
  • [PICARD-1782] – Allow locking table headers to prevent accidental resorting
  • [PICARD-1879] – When dragging tracks onto a release add those tracks sequentially
  • [PICARD-1906] – Clarify uninstall message in Windows installer
  • [PICARD-1936] – Rename the “Whitelist” cover art provider to “Allowed Cover Art URLs”
  • [PICARD-1937] – Add context menu entry to cover art box to browse for local file
  • [PICARD-1938] – Add context menu option to load files / folders from file browser
  • [PICARD-1951] – Avoid complete hiding of metadata box or file panes
  • [PICARD-1952] – Allow using native Qt styles on Linux
  • [PICARD-1955] – Use built-in search by default for new installs
  • [PICARD-1957] – Load files in file browser on double click
  • [PICARD-1958] – macOS: Offer link to Applications folder in disk image
  • [PICARD-1959] – In disc ID dialog rename “Lookup in Browser” to “Submit disc ID”
  • [PICARD-1960] – Allow adding new items in list editor views using Insert key
  • [PICARD-1965] – Allow opening fingerprinting options in AcoustID missing API key dialog

Tasks

Download

Picard 2.5 beta 1 is available for download from the download page.

Helping out

The easiest way to help us getting a great Picard 2.5 release is using and testing this release candidate. Please report bugs on the Picard issue tracker and provide feedback in the community forums.

Please also help translate Picard. There have been many changes to the user interface and existing translations need to be updated for the final 2.4 release. Translating is easy and can be done online: Head over to MusicBrainz’s translation page on Transifex and click on “Help Translate MusicBrainz”.
Once you have registered an account on Transifex you can start translating. For Picard the primary resource to translate is “picard“, but there is also the “picard_appstream” resource which is used for providing descriptions for various Linux software-center applications.

If you are a software developer you are very welcomed to provide fixes and features. Picard is free software and the source code is available on GitHub. See Developing on the Picard website to get started.

MetaBrainz Projects in the news

During the summit this past weekend we talked about posting more updates to our blog. In the spirit of that, I wanted to share two articles where MusicBrainz and AcousticBrainz were recently mentioned in the news: In July the BBC wrote an article covering research from UC Irvine in California:

They found a significant downturn in the positivity of pop songs. Where 1985 saw upbeat tracks like Wham’s Freedom, 2015 favoured more sombre music by Sam Smith and Adele.
The UC Irvine research team analyzed the publicly available data from AcousticBrainz to arrive at this and several other conclusions.

This wasn’t the first time that our project was used to analyze music trends over time and we’re proud that researchers can carry out this kind of work on our public data. In October Insead Knowledge wrote about the gender gap in the music industry:

We also used song credit information from crowdsourced database MusicBrainz to determine how many women and men worked on the writing, production and performance of each song. . . . At first glance, our overall results appear quite simple. In line with past research on creativity, we find no baseline relationship between the novelty of the songs in our sample and the gender identity of the artists involved. Men and women appear to be equally capable in terms of creativity. But when we controlled for genre and, importantly, the gender composition of artists’ genres, the picture changed. Our methods were guided by an awareness that women in music work in a different context than men do: By a kind of gender-slanted gravitational pull, the music industry drives women into certain genres (e.g. pop) and collaborative networks.
We’ve long known about gender imbalances in the music industry and while we’re happy that people are using our data to demonstrate this, we’re dismayed at most of the findings in this article. What is more concerning is that we have a general impression that our community has a slight bias towards adding more information about music created by women, which means that the overall situation may actually be worse than what one can deduce from our data!

As a reminder, all data in MusicBrainz is contributed by members of the community. If you see any situations where women or minorities are being mis- or underrepresented, we encourage you to add this content to MusicBrainz. And if you get stuck, don’t hesitate to ask for help on the forums.

MusicBrainz Server update, 2020-10-05

As we just returned from the virtual MusicBrainz Summit 20, here comes a mostly maintenance release that fixes a bunch of bugs (among which many are about localization) and provides a few handy improvements. It even features a new report showing releases having the same barcode but currently in different release groups, so if you feel like it, do try and help us look into those!

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

Special thanks to the DistriNet Research Group for making and responsibly sharing a very detailed audit of our OAuth service that has been very helpful with releasing major security improvements in the previous server update!

Thanks to chaban, fabe56, hibiscuskazeneko, humhumxx, jesus2099, lotheric, mfmeulenbelt, nikki, otringal, psychoadept, and wcw1966 for having reported bugs and suggested improvements. Thanks to dimpole, listmycds, mfmeulenbelt, peter9811 for updating the translations. And thanks to all others who tested the beta version!

The git tag is v-2020-10-05.

Bug

  • [MBS-4118] – Date/Number.toLocaleString always uses English
  • [MBS-10956] – Ratings are not loaded in some pages
  • [MBS-11094] – Edit error message appears (and prevents update) unrelated to current edits
  • [MBS-11107] – span.name-variation class is missing on some relationship credits
  • [MBS-11114] – Can’t set track length to 0:00
  • [MBS-11140] – Client side language bundles are not built in production

Improvement

  • [MBS-3116] – Warn when merging works with different ISWCs
  • [MBS-8650] – Accept IPIs with length of 5 characters or longer
  • [MBS-11033] – Update the Apple Music logo used in the sidebar
  • [MBS-11036] – Don’t allow to add new release when moving CD TOC
  • [MBS-11104] – Missing “Credited As” column in Label Relationships tab
  • [MBS-11121] – Update iTunes/Apple Music URL cleanup
  • [MBS-11127] – Don’t return unrelated recording-work relationships within work-level-rels from /ws/2/release
  • [MBS-11136] – Support HTML in admin/attribute descriptions
  • [MBS-11137] – Show basic release info on hover on frontpage’s release additions

New Feature

  • [MBS-6322] – New Report: Releases with identical barcodes in different Release Groups

React Conversion Task

  • [MBS-10991] – Convert user/subscriptions pages to React

MusicBrainz Server update, 2020-09-21

React conversion tasks are conspicuously absent from today’s release, but that’s just because we needed to take some time to get it all working with the recent refactoring. This new server update mainly brings strong security improvements for the OAuth service. It also comes with a fair amount of smaller bugfixes and improvements. The most noticeable of these probably are the added details to the merge recordings’ form and the statistics by entity type on editors’ profile pages.

Announcement for MusicBrainz API users: A small but breaking change will be deployed on October 19th (in one month from now), to fix the JSON formatting of release packaging in search results (SEARCH-579).

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 kellnerd and loujine for contributing code. Thanks to calculator.ftvb, chaban, hibiscuskazeneko, jesus2099, kellnerd, lalinksy, psychoadept, rdswift, and spitzwegerich for having reported bugs and suggested improvements. Thanks to jesus2099, kellnerd, mfmeulenbelt, outsidecontext, and salorock for updating the translations. And thanks to all others who tested the beta version!

The git tag is v-2020-09-21.

Bug

  • [MBS-10880] – Series automatic ordering (without numbers) fails for new release group
  • [MBS-11065] – Smart link blocks affecting legitimate links
  • [MBS-11069] – Diff highlighting not visible for certain display resolutions
  • [MBS-11098] – Big Cartel URLs are denied for labels
  • [MBS-11101] – Series relationships not showing for work series

Improvement

  • [MBS-2768] – Display AcoustIDs, Annotation and any other useful info when merging recordings
  • [MBS-7473] – Adding a new discid: Allow to specify the target by its releaseid
  • [MBS-11017] – Normalize IMSLP URLs to HTTPS and add validation
  • [MBS-11058] – Tighten security of OAuth service
  • [MBS-11061] – Don’t allow MusicBrainz URLs in relationships
  • [MBS-11062] – Link basic how-tos from the front page
  • [MBS-11086] – Add icon for tabs with errors in release editor
  • [MBS-11109] – Block further more smart links
  • [MBS-11119] – Set a Content-Security-Policy header on account/admin related forms

New Feature

  • [MBS-7485] – OAuth token revokation through API
  • [MBS-9769] – Show entities added statistics on editor profile page
  • [MBS-10835] – Disallow creating new accounts with an e-mail already in use
  • [MBS-11097] – Support PKCE (Proof Key for Code Exchange) by OAuth clients

Task

  • [MBS-10921] – Clear editing history of unrelated recording-of relationship edits

MusicBrainz Server update, 2020-09-07

Beyond the restless conversion to React of edits’ display, this new release of MusicBrainz Server features the sidebar display of recordings’ acoustic information automatically computed by AcousticBrainz, and brings a handful of more discreet improvements and fixed bugs.

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 loujine for contributing the code to display AcousticBrainz data. Thanks to chaban, draconx, hawke, scotia, and yindesu for having reported bugs and suggested improvements. Thanks to kellnerd, mfmeulenbelt, salorock, and speardog for updating the translations (de, el, fr, it, nl). And thanks to all others who tested the beta version!

The git tag is v-2020-09-09-hotfixes.

Bug

  • [MBS-11000] – ISE when trying to display “Edit release group” edit
  • [MBS-11039] – Entity present twice in a series with different numbers appears with the same number in the Series page
  • [MBS-11074] – JavaScript is broken in IE11
  • [MBS-11075] – core-js polyfills are included twice in JavaScript bundles
  • [MBS-11076] – Size of data-context attributes used for React hydration bloats page size
  • [MBS-11077] – CritiqueBrainz reviews have disappeared
  • [MBS-11078] – Internal Server Error: undef error – TypeError: Cannot read property ‘names’ of undefined (hotfixed)
  • [MBS-11081] – Pregap info not shown in Add medium edits (hotfixed)
  • [MBS-11085] – Cannot edit 8cm CD release with disc ID (hotfixed)
  • [MBS-11089] – Homepage and blog favicons gone from sidebar (hotfixed)

Improvement

  • [MBS-7409] – Make “cannot attach discid” more obvious when format can’t have discID
  • [MBS-10916] – Show AcousticBrainz info in the Recording sidebar
  • [MBS-10941] – Rename XML Web Service into “MusicBrainz API” (JSON/XML)
  • [MBS-11014] – Provide context to “This relationship already exists” on relationship editor
  • [MBS-11041] – Make ModBot leave a note on autoremoval edits
  • [MBS-11073] – Drop lodash in favor of native JavaScript methods

React Conversion Task

  • [MBS-10972] – Convert Add Instrument edit to React
  • [MBS-10986] – Convert edit error templates to React
  • [MBS-11032] – Convert Add medium edit to React
  • [MBS-11034] – Convert Remove medium edit to React
  • [MBS-11048] – Convert Edit Area edit to React
  • [MBS-11050] – Convert Edit URL edit to React
  • [MBS-11051] – Convert Edit Artist Credit edit to React
  • [MBS-11052] – Convert Edit Relationship Attribute edit to React

Other Task

  • [MBS-11043] – Add offiziellecharts.de to the otherdbs whitelist
  • [MBS-11044] – Drop any references to no longer existing TOBEDELETED edit status

Picard 2.4.4 released

This is another bugfix release for the 2.4 release series of Picard, fixing a couple of issues discovered since Picard 2.4.2 and updating the Spanish and Hebrew translations.

Due to a last minute fix we had both a 2.4.3 and 2.4.4 release today, below is the combined list of changes:

Bugfixes

  • PICARD-1916 – Picard crashes on older releases of macOS due to theming exception
  • PICARD-1918 – Saving files fails if there is no front image and “Save only one front image as separate file” is enabled
  • PICARD-1921 – Windows 10: With dark theme inactive checkboxes cannot be distinguished from active ones
  • PICARD-1928 – After clustering fingerprint icon disappears
  • PICARD-1931 – Regression: “Unmatched Files” do not appear when release was deleted from MB

Improvements

Download

Picard 2.4 is available for download from the download page. For Windows 10 users installing from the Windows Store an update will come automatically as soon as the new release has been approved by Microsoft.

Thanks a lot to all contributors who made this release possible.

GSoC 2020: Spam detection with online learning

Introduction

Hello Everyone!!

I am Rohit Dandamudi, more commonly known as diru1100 in IRC and all other sites. I am currently doing my final year in Computer Science and Engineering at Chaitanya Bharathi Institute of Technology, Hyderabad. This summer, I had the wonderful opportunity to work with MetaBrainz Foundation and it’s my first time participating in GSoC. I worked on the SpamBrainz project under the guidance of yvanzo to make a step forward on eliminating spam in MusicBrainz.

How it started

I started looking for some cool projects to apply for GSoC, eventually, after going through some which were involved in the web development side, I finally got to know about the MetaBrainz Foundation, and it was already pretty late (around 2½ weeks before the proposal deadline), most of my fellow GSoCers were already in good rapport with the community by then. After looking through the project ideas, I wanted to do my project on CritiqueBrainz, but later I found out that it’s not considered for this year. In the end, I liked the concept of SpamBrainz and how it involves a good combination (Deep Learning and Web Development) of technologies. After browsing through the project I understood what I could and tried to make some changes to the codebase and was successfully able to run the model and add some documentation. Finally, I submitted the proposal, which got accepted.

The proposal

My proposal was focused on extending the work done by Leo as part of GSoC 2018. It mainly involved the following:

  • Do the research and implement online learning to:
    • Update the model dynamically as new variations of editor spam accounts appear.
    • Make the model self-sufficient without depending on a particular file or a batch of data.
    • Explore different types of learnings that are applicable to enhance LodBrok and for better performance in production.
  • Complete SpamBrainz API to:
    • Use and update the model with API calls.
    • Connect LodBrok with MusicBrainz Server.
  • Do detailed documentation to make the project more public and involve more contributors

Achievements

LodBrok model improvements

Research for model live update

SpamBrainz API

  • Incorporated the above research in SpamBrainz API, which consists of 2 endpoints, namely:
    • /predict to return classification results by LodBrok for the editor accounts
    • /train to retrain the model with incorrect results sent to SpamNinja respectively
  • After discussing with Leo, I decided to implement the API using Flask and Redis combination. Going with Redis over RabbitMQ for this API is feasible as the API is pretty lightweight and has at most 2 events.
  • Documented the entire API, with internal working, steps to replicate, and images to understand the results obtained.
  • Completed dockerization of SpamBrainz_API for easier integration and testing with MusicBrainz docker.
  • This diagram explains the current workflow of the implemented API:diagram explaining the current workflow of the implemented API

Challenges ahead and future of SpamBrainz

  • The API has to be integrated with MusicBrainz and should undergo more testing with real live data, currently, my focus is on this part.
    • Note: All the work done till now on the model was on dummy data generated by scripts that tend to replicate the real accounts as much as they can be, by taking into account the inputs from Freso, yvanzo, and the analysis done by Leo, without affecting the data privacy policy.
  • To extend online learning to other use cases in MetaBrainz through Transfer Learning and Online Transfer Learning.
  • Also looking forward to writing a research paper about the work done, and eventually publish it in IEEE transactions, as I plan on using SpamBrainz as my final year major project.

Special thanks to…

  • My mentor, YvanZo for being incredibly patient with me, helping me create quality commits, and overall making me a better programmer. Have always learned something new in every interaction with him.
  • LeoVerto, for helping me out whenever stuck and getting me up to date with the project.
  • MetaBrainz Foundation, for creating an open, inclusive, and productive environment to build some amazing stuff.

GSoC 2020: User Collection for BookBrainz

Hi everyone, I am Prabal Singh currently studying in Indian Institute of Technology, Guwahati. This summer I participated in Google Summer of Code and developed a new feature – User Collections – for the project BookBrainz.

I was mentored by Nicolas Pelletier (Mr_Monkey on IRC) during this period. This post summarizes my contributions to the project.

Continue reading “GSoC 2020: User Collection for BookBrainz”