Schema change release: May 13, 2019

It’s been a while since our last schema change release in May 2017. To move forward on some features we’d like to add, we plan to have a Spring 2019 schema change release set for May 13th, 2019. This release should not be disruptive to downstream users, as we plan only to augment the schema with some new tables and columns, and not break any of the existing schema.

Here’s our list of tickets for the Spring 2019 schema change, with descriptions of what’s being changed:

MBS-1658: Add a free text field to collection items. This change will allow users of collections to annotate each item with free text, to hold personalized info about the item (for example, that a release is of a specific pressing, was purchased in 1999 at the Village Discount, or was a gift from your mom). This ticket will add a new TEXT column to editor_collection_release and all other entity-specific editor_collection_* tables. It will not add any new tables or modify any existing columns.

MBS-5387: Mark artist credits as having pending edits when they’re being edited. On an artist’s aliases tab, we provide the ability to directly edit artist credits associated with that artist. However, doing so doesn’t indicate anywhere that the artist credits are being changed (we typically highlight entities with pending edits). To resolve this, we’ll be adding an INTEGER edits_pending column to the artist_credit table. This ticket will not change any existing columns of the artist_credit or artist_credit_name tables.

MBS-5818: Make it possible to have ordered collections. Editor’s collections of entities are automatically ordered by field, for example, releases in collection are ordered by ascending release date. Sometimes, one might want to order collector’s items by other criteria, for example, most wanted releases. This change will enable editors to order collection items by hand if they want to. To do so, an INTEGER position column will be added to the editor_collection_* tables.

MBS-7480: Store cover art image file sizes. Knowing file sizes for cover images and their thumbnails would allow us to better detect when a thumbnail isn’t available, and also allow us to display file sizes to the user before they download an image. To do this, we’ll add four INTEGER columns to the cover_art_archive.cover_art table to store the file sizes in bytes: filesize, thumb_250_filesize, thumb_500_filesize, thumb_1200_filesize.

MBS-9428: Allow multiple users to share one collection. In some cases (like a collection of cleaned up entities several people want to keep an eye on, or a radio station’s collection of vinyl the station owns), it would be quite useful if multiple editors could add (and remove) entries from a collection. This would make cooperation easier and hopefully make community projects (such as the Composer Diversity Database project) easier to start and work on. We’ll add an editor_collection_collaborator table linking collections to the editors allowed to make changes in them (only the collection owner will be able to make changes to the list of allowed collaborators).

MBS-9491: Move hard-coded genres to a database table. We recently added genres to MusicBrainz, but they’re currently stored as an object in the server code. This change will move them to a new table genre (id, gid, name, comment).

MBS-10062: Add aliases for genres. Connected to the previous issue, we need a way to be able to specify “hiphop”, “hip hop” and “hip-hop” are all the same thing, and eventually to store translated versions of genres. This will add a table genre_alias (id, genre, name, locale, edits_pending, last_updated, primary_for_locale).

MBS-9973: Add a date added column for collection items. Editor’s collections have no editing history, thus it doesn’t allow to sort items by date of addition to the collection they belongs to. To allow this, editor_collection_* tables will get a TIMESTAMP added column.

MBS-10052: Add new tables for the event poster archive. This will move us another step toward CAA-84, giving us a place to store event posters, logos, and other related images. The schema change here will be to add a new event_art_archive schema, detailed in the comments in MBS-10052. There will be no change to the existing cover_art_archive schema.

The following tickets will also be included, but only involve adding some missing foreign keys, triggers, and constraints to standalone mirrors; these will not be created and have no effect on replicated mirrors.

MBS-9365: Adds a missing foreign key between the event_meta and event tables.

MBS-9462: Adds some missing l_event_url triggers to delete unused URLs.

MBS-9664: Adds constraints to prevent an entity from linking to itself in a relationship.

If you have any questions, please do leave a comment below or on the linked JIRA tickets!

Picard 2.1.3 released

Picard Team is proud to announce MusicBrainz Picard 2.1.3 is now officially released.

It includes a lot of bug fixes, and few improvements, but no major feature.

Thanks to all developers, translators, testers and users who contributed to this version, and especially Philip Wolfer (phw/outsidecontext).
Here is the complete changelog:

Bug

  • [PICARD-323] – Only the discid of the first disc in a release is written to tags
  • [PICARD-455] – Picard setting cover art height, width and depth to 0 for FLAC files –> breaks libFLAC
  • [PICARD-729] – Tracks get stuck at “[loading track information]” on Bad Gateway errors
  • [PICARD-938] – Need two left-arrow key presses to go from track with file to album
  • [PICARD-1178] – Images tagged with extra types that the user has chosen to ignore should not be shown as ‘modified’
  • [PICARD-1288] – Folskonomy tags / genre fallback on album artists tags not working
  • [PICARD-1422] – Windows: Uninstall 32 bit Picard before upgrade
  • [PICARD-1447] – When releasing a new version, appdata should also be updated
  • [PICARD-1460] – Windows installer does not detect running instance
  • [PICARD-1461] – Crash when running with Spanish language
  • [PICARD-1463] – Picard crashes on startup on Windows
  • [PICARD-1469] – Force close when adding songs to larger albums
  • [PICARD-1471] – Artist searches do not show begin and end area
  • [PICARD-1473] – AcoustId lookup fails if fingerprint already in tags
  • [PICARD-1474] – Windows installer shows outdated version string in file properties
  • [PICARD-1475] – Cover art sources do not support HTTPS
  • [PICARD-1476] – Filled up thread pool prevents metadata box updates
  • [PICARD-1478] – Changing MB server requires a restart
  • [PICARD-1480] – Search line input clear button icon is too small

Task

  • [PICARD-1459] – Remove OptionsPage.info method
  • [PICARD-1472] – macOS code signing on Travis CI fails for xcode7.3 image

Improvement

  • [PICARD-1242] – Consider the number of AcoustID sources for linked recordings
  • [PICARD-1457] – “Check for Update” should be in the Picard menu
  • [PICARD-1458] – “Check for Update” should have an ellipsis at the end
  • [PICARD-1470] – Make warning about Qt locale loading less prominent

As usual, packages will be available from Picard website and from GitHub release pages

Bugs can be reported on Picard bug tracker.

Ensembling: Clapper MiniVersion or idiophones!

The first sub-section of the gigantic “Ensemble this” version is already done:

This started out as a “create clapper-tree” ticket, created after dealing with the clapper ticket during from let’s get serious:

Ticket that inspired/started this

  • [INST-621] – Clapper (done in lets get serious)

Much of the initial part of this mini-version was done during let’s get serious. However, after coming back to it later, it became apparent that a more overarching edit and reorganization of idiophones was needed, so the second phase of this work involved linking existing and creating new idiophone instruments and organizing them.

Many of the tickets in this version were created or improved by students during GCI ’18. Many thanks to our students George Omnet and Jayant Dharwadkar, especially!

MiniVersion Clapper tree

  • [INST-630] – Rearrange idiophone tree (was: Create clapper tree)
    • [INST-751] – Boomwhacker
    • [INST-752] – Krap
    • [INST-608] – Add “shaken idiophone” and “scraped idiophone”
    • [INST-606] – Add concussion and percussion under “struck idiophone”
    • [INST-741] – Rearrange idiophone and percussion tree
    • [INST-732] – Research if shakers and rattles should be different
    • [INST-783] – clapstick
    • [INST-602] – Chinese paiban clapper and guban combo
    • [INST-566] – Arrabel

Thanks in great part to the new How to Add Instruments guide, we now had a framework to better objectively review inclusions of instruments. Following that, these instruments were found to be either not applicable (noisemakers not intended for music as such, rather than musical instruments) or to be too much of a novelty instrument:

Closed as not applicable / Reopen if/when musical use is demonstrated

The improvement of the idiophone section isn’t completely done however! Some more work is needed: moving and/or renaming the “tuned percussion” instrument (which is basically equivalent to the “percussion struck idiophones” in Hornbostel-Sachs already anyway) and (possibly) getting rid of “metallophone” (which is almost a duplicate of tuned percussion in function today, and that in meaning is basically just “idiophones made of metal”), which doesn’t seem necessary anymore.

Gamelan! (Photo by Bachtiar Djanan; used under the Creative Commons Attribution-Share Alike 4.0 International license.)
Gamelan! (Photo by Bachtiar Djanan; used under the Creative Commons Attribution-Share Alike 4.0 International license.)

Next, look forward to veena Gamelan!

Interlude: Ensembling!

Hi everyone! As you might remember, our last post was the end of a series of entries meant to summarize everything that had happened in instrument-land so far. So now that catching up is done, here’s what has happened lately!

This post is rather large, so if you only read one thing about instruments today, make it our new guide for requesting instruments! (More details about this in the last section below.)
Continue reading “Interlude: Ensembling!”

Picard 2.1.2 released

Picard 2.1.2 includes just few changes over Picard 2.1.0, but fixes some annoying bugs, so it is recommended to upgrade:

Bug

  • [PICARD-1382] – macOS packaging script ignores all errors
  • [PICARD-1451] – Redirects of authenticated requests fail with 401 error
  • [PICARD-1454] – Crashes when adding action to toolbar in options

Task

Improvement

  • [PICARD-1450] – Fix language label for zh_CN and zh_TW

As usual, packages will be available from Picard website and from GitHub release pages

Bugs can be reported on Picard bug tracker.

Server update, 2019-01-22

More bugs fixed, that’s our wish for 2019! Additionally, this release comes with usual update of URL handlers and a heap of code being rewritten behind the scenes. Thanks to Jaykin for the patch he wrote during GCI. Thanks to culinko, drsaunde, jesus2099, johnlinp, jrv, outsidecontext, silentbird, thomasboehm, zastai for having reported issues. The git tag is v-2019-01-22.

Sub-task

  • [MBS-9954] – Convert the tag cloud and tag entity list pages to React

Bug

  • [MBS-4469] – Annotation syntax : lists syntax only partly working
  • [MBS-4709] – Can’t use square brackets in annotations
  • [MBS-8978] – Schema does not include id attribute for <packaging> element of a release
  • [MBS-8979] – Schema does not include <cdstub> as top-level subelement of <metadata>
  • [MBS-8980] – Schema says a <cdstub> has a <comment> element, but the webservice returns a <disambiguation> instead.
  • [MBS-9089] – “change all artists on this release that match…” does nothing if you hit “Next” instead of “Done”
  • [MBS-9605] – Tracklist editor badly converts track length over 1 h
  • [MBS-9865] – Release editor’s artist credit recently broken
  • [MBS-9867] – Slave server cannot display page with annotation
  • [MBS-9941] – Some edit pages are missing JS gettext domains in non-English translations
  • [MBS-9957] – Cover art image types not updated properly
  • [MBS-9966] – Event creation on place page does not seed
  • [MBS-9967] – Regression: Subscribers tab in user profile is broken
  • [MBS-9971] – Regression: Sidebar ISNI code is not a link anymore
  • [MBS-9980] – Regression: “Edit User” tab link is shown to own non-admin user

Improvement

  • [MBS-8803] – Document [<entity>:<mbid>|<name>] links in annotation editor page
  • [MBS-9470] – Expose UUID of relationship attribute type
  • [MBS-9838] – Update 22 external link formats from http to https
  • [MBS-9969] – Display external links to lyrics in the sidebar
  • [MBS-9970] – Display links to Anison Generation, B.R.A.H.M.S. (Ircam), and Classical Archives in the sidebar

Picard 2.1 release

MusicBrainz Picard 2.1 is finally here. This version includes a lot of fixes and improvements over previous stable version (2.0.4). It is recommended to upgrade of course.

Most notably, it includes following changes:

  • support for MusicBrainz genres
  • new convenient script functions: $title and $delete
  • new command line option (-P, --no-plugins) allowing to skip plugin loading, which may help when a plugin is crashing Picard at start and to identify if an issue is due to a plugin or the main program
  • improve tags support, better compatibility with other applications, wider range of audio files supported
  • better stability and performance

I’d like to thank all developers, translators, testers and users who contributed to this version, kudos to Philip Wolfer (phw).

Binary packages from OSx and Windows are available from Picard Github releases page and from Picard website.

Here is the complete change log:

  • [PICARD-105] – Picard won’t load non-album tracks from fingerprints
  • [PICARD-421] – Releases in private collections are not shown as being in them
  • [PICARD-518] – Sliders without labels in “Options – Metadata – Preferred Releases”
  • [PICARD-637] – $matchedtracks is broken
  • [PICARD-875] – AIFF does not support any of the compatid3 tags
  • [PICARD-949] – Track can be placed in the incorrect spot on the release after using Scan
  • [PICARD-1013] – False file save error in specific circumstances
  • [PICARD-1060] – Collections menu not displayed correctly anymore
  • [PICARD-1112] – Cannot save tags that were previously deleted from file
  • [PICARD-1133] – Plugins list doesn’t load automatically after setting proxy
  • [PICARD-1162] – Solo vocals are tagged wrong
  • [PICARD-1219] – Picard creating empty ID3 TIPL / TMCL / IPLS frames
  • [PICARD-1245] – Set field “Grouping” doesn’t work as expected
  • [PICARD-1275] – After uninstalling a plugin Picard needs to be restarted for it to be reinstalled
  • [PICARD-1281] – Picard has wrong version string on macOS
  • [PICARD-1320] – Black text on a dark theme
  • [PICARD-1332] – Deleted tags for matched files stay deleted
  • [PICARD-1336] – MP4 reports “bpm” as unsupported tag
  • [PICARD-1339] – Removing unclustered files can be very slow
  • [PICARD-1340] – File info doesn’t display Mono / Stereo in Channels field anymore
  • [PICARD-1341] – Cluster track order misinterprets disc/track numbers
  • [PICARD-1346] – Move additional files fails if multiple patterns match
  • [PICARD-1348] – Keyboard shortcuts broken due to localization
  • [PICARD-1350] – Drag and drop on cover image box does not always work as expected
  • [PICARD-1355] – Setting or unsetting album for non-album tracks does not work
  • [PICARD-1359] – Crash with tagger integration when using DuckDuckGo Privacy Essentials
  • [PICARD-1364] – picard.exe has no version tag
  • [PICARD-1368] – Info messages are not shown on logging level Info
  • [PICARD-1369] – Crash on Python 3.7.0 opening URLs
  • [PICARD-1370] – Windows installer to add “Quick Launch” icon no longer supported on Win10
  • [PICARD-1371] – Windows installer does not warn when installing on 32 bit system
  • [PICARD-1373] – Source distributions are unusable
  • [PICARD-1374] – Picard crashes while typing a regular expression in some cases
  • [PICARD-1375] – Metadata sanitation before move-script execution fails
  • [PICARD-1376] – Error saving Ape files with tag marked for deletion that does not exist
  • [PICARD-1381] – Test results depend on execution order of tests
  • [PICARD-1397] – Do not save tags marked as unsupported
  • [PICARD-1398] – Snap package is missing locale files
  • [PICARD-1405] – Pasting formatted text into scripting window shows formatting
  • [PICARD-1410] – Loading Vorbis file with invalid rating value fails
  • [PICARD-1412] – Deleting tag counts not as important metadata change
  • [PICARD-1414] – Image errors lead to crash in info dialog
  • [PICARD-1415] – Open Containing Folder and Open with MusicPlayer does nothing for UNC paths
  • [PICARD-1418] – Display localized default dialogs and keyboard shortcut hints
  • [PICARD-1420] – Can not save wma file. TypeError: sequence item 0
  • [PICARD-1428] – Removing tags which are only in original file metadata not possible
  • [PICARD-1430] – “Authentication required” dialog does not trigger authentication
  • [PICARD-1431] – Some ID3 frames gets deleted even if the corresponding tags are shown as unchanged
  • [PICARD-1434] – Tag acoustid_id can not be removed or deleted in script
  • [PICARD-1436] – Text extraction of “title” and “label” for translation.
  • [PICARD-1437] – After reload file is being shown as changed
  • [PICARD-1438] – Message box buttons Yes/No aren’t translated
  • [PICARD-1439] – Newline character in cover art naming script causes exception on saving

New Feature

  • [PICARD-490] – Allow tagging AAC/ADTS files with APEv2 tags
  • [PICARD-1043] – Support reading & writing iTunes Classical tags
  • [PICARD-1045] – Check for new version
  • [PICARD-1268] – Support concertmaster recording relationships as performer:concertmaster
  • [PICARD-1273] – Add an option to exclude new cover art type “Raw / Unedited”
  • [PICARD-1319] – Provide cover art metadata to cover image naming script
  • [PICARD-1344] – Add $delete function
  • [PICARD-1352] – Add a command-line option to skip plugin loading
  • [PICARD-1354] – Allow using vocals and instruments as credited
  • [PICARD-1367] – Allow opening searches in browser when using search dialogs
  • [PICARD-1384] – Add AppStream data
  • [PICARD-1386] – Add $title function
  • [PICARD-1395] – Support genres from MusicBrainz
  • [PICARD-1440] – Support loading and renaming Standard MIDI Files (SMF)

Task

  • [PICARD-1333] – Run CI tests agaist oldest supported mutagen
  • [PICARD-1347] – Refactor script.py to avoid code duplication
  • [PICARD-1365] – Allow building with PyQt 5.11 or later
  • [PICARD-1442] – Support new Audio Play secondary type

Sub-task

  • [PICARD-1407] – Save originalalbum / originalartist to ASF/WMA
  • [PICARD-1408] – Save originalalbum / originalartist to APE

Improvement

  • [PICARD-664] – When dragging a recording, show the actual file name instead of the path
  • [PICARD-792] – Package a start menu tile for Windows 10 on the windows version
  • [PICARD-1039] – Use forward delete instead of delete button on macOS
  • [PICARD-1049] – Picard should use TXXX:WORK rather than TXXX:Work
  • [PICARD-1068] – Picard should use MP4 ©wrk for Work rather than generic text field
  • [PICARD-1244] – Refresh list of plugins after uninstalling or installing a local plugin
  • [PICARD-1285] – There is no Close menu item in Picard 2.0 on macOS
  • [PICARD-1313] – Refactor plugin UI
  • [PICARD-1325] – Allow disabling new version update checking for packagers
  • [PICARD-1338] – Picard should be more resilient if it gets invalid responses from servers
  • [PICARD-1358] – Use macOS style widgets in the user interface of the macOS version of Picard
  • [PICARD-1363] – AcoustId submission for matched files is impossible when musicbrainz_recordingid is unset
  • [PICARD-1366] – Show Python version in about
  • [PICARD-1379] – Port astrcmp to new Python C Unicode API
  • [PICARD-1383] – Use MCN / barcode read from disc to improve DiscId lookup
  • [PICARD-1393] – Change the application ID
  • [PICARD-1416] – Should store ID3 Artists field as TXXX:ARTISTS not TXXX:Artists
  • [PICARD-1417] – Only show plugins with compatible API version
  • [PICARD-1424] – Translate AppStream data
  • [PICARD-1425] – Support all movement tags for APE, Vorbis and MP3
  • [PICARD-1426] – Map musicbrainz_originalalbumid and musicbrainz_originalartistid to MP4 and WMA
  • [PICARD-1443] – Sort secondary release types in UI alphabetically

Server update, 2018-12-18

This release features four new reports of data that might need fixing. Pages with the MBID of entities that have been merged are now redirected to use the MBID of the merged entity. This release also includes a significant amount of bug fixes and updates genres list and external link handler. Thanks to coders G30rg3, TheFaR8, PROTechThor (all GCI students!) and dominikh for their contributed patches, and thanks to issue reporters bgstewart, cyberskull, jesus2099, hibiscuskazeneko, michelv, paulakreuzer, salo.rock, suriv, and wcw1966 for their input. The git tag is v-2018-12-18.

Bug

  • [MBS-8311] – Annotation field in the release editor does not mention licenses
  • [MBS-9402] – Empty “Lyrics languages” column in “Merge works” edits
  • [MBS-9859] – Amazon cover art source stats don’t count https URLs
  • [MBS-9863] – License links are ignored if https
  • [MBS-9844] – Cannot cancel removing/revoking application’s access
  • [MBS-9872] – “Ended” flag change not shown in edit relationship page
  • [MBS-9889] – Release page “Found in N user collections” links to incorrect URL
  • [MBS-9892] – Unable to add Australian ASIN
  • [MBS-9895] – Regression: Approving link removals is now harder (auto editors)
  • [MBS-9896] – Release pages throw an internal server error when CritiqueBrainz is down
  • [MBS-9905] – Tipeee language subdomains are not recognised
  • [MBS-9906] – Link to profile when preferences have been saved is broken

New Feature

  • [MBS-3685] – New Report: Releases with label and artist of the same name
  • [MBS-6232] – New Report: Releases with cover art archive images but no front image
  • [MBS-8178] – New Report: Events with sequential numbering that are neither part of a series nor part of a larger event
  • [MBS-9907] – New report: Places without coordinates

Task

  • [MBS-9901] – Normalize Dailymotion URLs to HTTPS
  • [MBS-9930] – Disable CAA images on the homepage for Chrome-based browsers
  • [MBS-9934] – Update blog and JIRA links to metabrainz.org

Improvement

  • [MBS-7192] – Show work types in inline search
  • [MBS-9277] – Handle Mixcloud social network URLs
  • [MBS-9748] – Handle Ko-fi patronage URLs
  • [MBS-9765] – Do not display event dates twice in search results
  • [MBS-9827] – Redirect merged entity MBID pages to new MBID
  • [MBS-9831] – Handle Bandcamp lyrics URLs
  • [MBS-9847] – Show event collections in reverse chronological order by default
  • [MBS-9873] – Handle Discogs composition URLs
  • [MBS-9883] – Show Wikidata: QID rather than just QID on sidebar
  • [MBS-9900] – Add information on requesting instruments/genres to their lists
  • [MBS-9944] – Handle niconico video URLs
  • [MBS-9947] – Allow linking to podcast episode on Spotify and Deezer

Picard 2.1.0dev2 release

Picard team is working hard on the upcoming 2.1.0 version, we decided to release a preliminary version for all to test and to let time for translators to work.

We’ll accept patches that actually fix current features until the final release which is planned in 2 weeks.

Translators can update translations on transifex as usual, strings shouldn’t change (but if we can’t avoid it) anymore until the final release.
It should be noted a new resource picard_appstream was added for the translation of appdata.xml file (PICARD-1424).

This version includes a lot of fixes related mostly to features added in 2.0.x, plus new features related to MusicBrainz changes (like genres support), tag compatibility with other apps, and file formats.

Here is the change log:

Sub-task

  • [PICARD-1407] – Save originalalbum / originalartist to ASF/WMA
  • [PICARD-1408] – Save originalalbum / originalartist to APE

Bug

  • [PICARD-105] – Picard won’t load non-album tracks from fingerprints
  • [PICARD-421] – Releases in private collections are not shown as being in them
  • [PICARD-518] – Sliders without labels in “Options – Metadata – Preferred Releases”
  • [PICARD-637] – $matchedtracks is broken
  • [PICARD-875] – AIFF does not support any of the compatid3 tags
  • [PICARD-949] – Track can be placed in the incorrect spot on the release after using Scan
  • [PICARD-1013] – False file save error in specific circumstances
  • [PICARD-1060] – Collections menu not displayed correctly anymore
  • [PICARD-1112] – Cannot save tags that were previously deleted from file
  • [PICARD-1133] – Plugins list doesn’t load automatically after setting proxy
  • [PICARD-1162] – Solo vocals are tagged wrong
  • [PICARD-1219] – Picard creating empty ID3 TIPL / TMCL / IPLS frames
  • [PICARD-1245] – Set field “Grouping” doesn’t work as expected
  • [PICARD-1275] – After uninstalling a plugin Picard needs to be restarted for it to be reinstalled
  • [PICARD-1281] – Picard has wrong version string on macOS
  • [PICARD-1320] – Black text on a dark theme
  • [PICARD-1332] – Deleted tags for matched files stay deleted
  • [PICARD-1336] – MP4 reports “bpm” as unsupported tag
  • [PICARD-1339] – Removing unclustered files can be very slow
  • [PICARD-1340] – File info doesn’t display Mono / Stereo in Channels field anymore
  • [PICARD-1341] – Cluster track order misinterprets disc/track numbers
  • [PICARD-1346] – Move additional files fails if multiple patterns match
  • [PICARD-1348] – Keyboard shortcuts broken due to localization
  • [PICARD-1350] – Drag and drop on cover image box does not always work as expected
  • [PICARD-1355] – Setting or unsetting album for non-album tracks does not work
  • [PICARD-1359] – Crash with tagger integration when using DuckDuckGo Privacy Essentials
  • [PICARD-1364] – picard.exe has no version tag
  • [PICARD-1368] – Info messages are not shown on logging level Info
  • [PICARD-1369] – Crash on Python 3.7.0 opening URLs
  • [PICARD-1370] – Windows installer to add “Quick Launch” icon no longer supported on Win10
  • [PICARD-1371] – Windows installer does not warn when installing on 32 bit system
  • [PICARD-1373] – Source distributions are unusable
  • [PICARD-1374] – Picard crashes while typing a regular expression in some cases
  • [PICARD-1375] – Metadata sanitation before move-script execution fails
  • [PICARD-1376] – Error saving Ape files with tag marked for deletion that does not exist
  • [PICARD-1381] – Test results depend on execution order of tests
  • [PICARD-1397] – Do not save tags marked as unsupported
  • [PICARD-1398] – Snap package is missing locale files
  • [PICARD-1405] – Pasting formatted text into scripting window shows formatting
  • [PICARD-1410] – Loading Vorbis file with invalid rating value fails
  • [PICARD-1412] – Deleting tag counts not as important metadata change
  • [PICARD-1414] – Image errors lead to crash in info dialog
  • [PICARD-1415] – Open Containing Folder and Open with MusicPlayer does nothing for UNC paths
  • [PICARD-1418] – Display localized default dialogs and keyboard shortcut hints
  • [PICARD-1420] – Can not save wma file. TypeError: sequence item 0
  • [PICARD-1428] – Removing tags which are only in original file metadata not possible
  • [PICARD-1430] – “Authentication required” dialog does not trigger authentication
  • [PICARD-1431] – Some ID3 frames gets deleted even if the corresponding tags are shown as unchanged

New Feature

  • [PICARD-1043] – Support reading & writing iTunes Classical tags
  • [PICARD-1045] – Check for new version
  • [PICARD-1268] – Support concertmaster recording relationships as performer:concertmaster
  • [PICARD-1273] – Add an option to exclude new cover art type “Raw / Unedited”
  • [PICARD-1319] – Provide cover art metadata to cover image naming script
  • [PICARD-1344] – Add $delete function
  • [PICARD-1352] – Add a command-line option to skip plugin loading
  • [PICARD-1354] – Allow using vocals and instruments as credited
  • [PICARD-1367] – Allow opening searches in browser when using search dialogs
  • [PICARD-1384] – Add AppStream data
  • [PICARD-1386] – Add $title function
  • [PICARD-1395] – Support genres from MusicBrainz

Task

  • [PICARD-1333] – Run CI tests against oldest supported mutagen
  • [PICARD-1347] – Refactor script.py to avoid code duplication
  • [PICARD-1365] – Allow building with PyQt 5.11 or later

Improvement

  • [PICARD-664] – When dragging a recording, show the actual file name instead of the path
  • [PICARD-792] – Package a start menu tile for Windows 10 on the windows version
  • [PICARD-1039] – Use forward delete instead of delete button on macOS
  • [PICARD-1049] – Picard should use TXXX:WORK rather than TXXX:Work
  • [PICARD-1068] – Picard should use MP4 ©wrk for Work rather than generic text field
  • [PICARD-1244] – Refresh list of plugins after uninstalling or installing a local plugin
  • [PICARD-1285] – There is no Close menu item in Picard 2.0 on macOS
  • [PICARD-1313] – Refactor plugin UI
  • [PICARD-1325] – Allow disabling new version update checking for packagers
  • [PICARD-1338] – Picard should be more resilient if it gets invalid responses from servers
  • [PICARD-1358] – Use macOS style widgets in the user interface of the macOS version of Picard
  • [PICARD-1363] – AcoustId submission for matched files is impossible when musicbrainz_recordingid is unset
  • [PICARD-1366] – Show Python version in about
  • [PICARD-1379] – Port astrcmp to new Python C Unicode API
  • [PICARD-1383] – Use MCN / barcode read from disc to improve DiscId lookup
  • [PICARD-1393] – Change the application ID
  • [PICARD-1416] – Should store ID3 Artists field as TXXX:ARTISTS not TXXX:Artists
  • [PICARD-1417] – Only show plugins with compatible API version
  • [PICARD-1424] – Translate AppStream data
  • [PICARD-1425] – Support all movement tags for APE, Vorbis and MP3
  • [PICARD-1426] – Map musicbrainz_originalalbumid and musicbrainz_originalartistid to MP4 and WMA

Philip Wolfer (outsidecontext/phw) did (again) a fantastic job on this release. Thanks also to Mineo and all contributors, bug reporters, testers, translators and, of course, users !

We’ll update Picard website soon, in the meantime you can download OSX and Windows packages on GitHub release page.