Official MusicBrainz cross-platform music tagger Picard 1.4 is now out, containing many fixes and new features!
The last time we put out a stable release was more than 2 years ago, so a lot of changes have made it into this new release. If you’re in a hurry and just want to try it out, the downloads are available from the Picard website.
2 years is a long time for software, and Picard has been the subject of a couple of Google Summer of Code projects and plenty of developments required by changes in dependencies and the MusicBrainz project itself. Overall, the changes would be too numerous to list. If you’re curious to read it all, a complete list of changes can be seen on the website. Here are at least a few of the highlights: Continue reading
Starting with this release, PostgreSQL 9.5 is now our minimum supported version. In order to import any future data sets, you will need to upgrade your installation to version 9.5.
Due to unforeseen problems with the Live Data Feed (AKA replication), users with slave databases will be required to first import a fresh data dump into their new 9.5 installation. We apologize that this is the case, but even had this stream not been broken, doing a clean import is faster and easier than doing the migration. For details on what happened during this rather lengthy schema change release, stay tuned for a post mortem blog post that covers the details.
If you have a non-replicated standalone database, you can use pg_upgrade and run ./upgrade.sh directly, but for simplicity we strongly recommend importing the latest data dump. Thus, we will only provide instructions for a clean import:
- Make sure you have PostgreSQL 9.5 installed, and your database settings in lib/DBDefs.pm are updated to point to the 9.5 installation if you currently have an older version of postgres running. If you already have postgres 9.5 and want to replace the existing database there, you’ll need to drop it first (using dropdb or from within psql). Be careful that you’re not dropping any important data if this is a standalone database that you’ve made changes to.
- Take down the web server running MusicBrainz, if you’re running a web server.
- Turn off cron jobs if you are automatically updating the database via cron jobs.
- Switch to the new code with
git fetch origin followed by
git checkout v-2016-05-23-schema-change-v2
cpanm --installdeps --notest . to ensure your perl-based dependencies are up to date. Note the dot at the end.
DB_SCHEMA_SEQUENCE to 23 in
- Download the latest data dumps. If you don’t need historical edit data, excluding the edit dump will speed up your import significantly.
- Initialize a new database from the data dumps downloaded in step 7. Detailed instructions for doing this are located in INSTALL.md in the musicbrainz-server repository; if your data dumps are in /tmp, the command should simply be something like
./admin/InitDb.pl --createdb --import /tmp/mbdump*.tar.bz2.
- After the import has finished, turn cron jobs back on, if applicable.
- Restart the MusicBrainz web server, as well as memcached, if applicable.
We would like to thank bitmap, Gentlecat, zas, chirlu, reosarevok, gcilou for contributing directly to the release and we’d also like to thank all of the people who helped test, debug or otherwise offer support in this quite difficult release. Thank you!
And finally, here’s the list of changes you can expect in the upgrade:
- [MBS-6406] – Admins can’t change email addresses
- [MBS-8288] – Missing indexes for inverse lookup on *_gid_redirect tables
- [MBS-8669] – Primary key for place table missing on old slaves
- [MBS-8906] – Release pages ISE if CB doesn’t return JSON from its API for whatever reason
- [MBS-8928] – If you submit the release editor without being logged in, it displays “[object Object]” as an error mesage
- [MBS-8943] – Some pages do not respect DB_READ_ONLY setting
- [MBS-1873] – Fix vote tallies for edits
- [MBS-3887] – Duplicate artist and label names not being checked against alias
- [MBS-8287] – Log deleted entities that were in a subscribed collection
- [MBS-8433] – Work attributes don’t have a uuid
- [MBS-8716] – Store the edit data in a JSONB column
- [MBS-8717] – Move the edit data to a separate table
- [MBS-8838] – Add gids to all *_type* tables
- [MBS-8873] – Convert and unify artist credit editors to React
- [MBS-8909] – Add logos to IMDb and VGMdb links in the sidebar
- [MBS-8939] – Update the Instagram logo used in the sidebar
- [MBS-8940] – Let banner message editors dismiss the banner only temporarily
- [MBS-8656] – Bring edit table indexes back into sync
- [MBS-8719] – Stop materializing of edit and vote counts
- [MBS-8720] – Add a materialized view of edit note recipients
- [MBS-8727] – Prevent duplicate votes
- [MBS-8800] – Create the earthdistance extension and add a geodetic index for place coordinates
- [MBS-8804] – Add BRIN indexes for timestamp columns
- [MBS-8897] – add new entity icons
- [MBS-8938] – Schema changes to support alternative tracklists
Our next schema change version will be released on Monday, 18 May, 2015 around 10am PDT/1pm EDT/17:00 UTC/18:00 BST/19:00 CEST. We expect that MusicBrainz will be unavailable for 15 – 30 minutes during this time. We will put up the downtime notification on the site and tweet from @musicbrainz right before the release.
Since we’re total slackers, we still haven’t set up our backup database server since it suffered a hardware failure. This means that we won’t be able to put the site into read-only mode and will require us to do a full downtime. Hopefully for our next schema change we’ll have tackled our backlog of sysadmin duties and will have a backup DB server to make the release easier.
Sorry for any trouble this may cause you.
P.S. Look for another blog post on Sunday for details on where to get your access tokens for the Live Data Feed.
Picard 1.3.2 is now available on the Picard download page. This again is only a small maintenance release which mainly updates the OS X build to fix crashes some users experienced with Picard 1.3.1. Here is the complete list of fixes:
- [PICARD-681] Fixed tags from filename dialog not opening on new installations
- [PICARD-682] Picard 1.3.1 crashes on OSX on start
For Ubuntu users we have also finally updated our stable PPA.
This is a maintenance release, mostly bug fixes. All users are encouraged to upgrade.
Binary packages are available at http://picard.musicbrainz.org/downloads/
- [PICARD-273] – Picard should use the correct Accept header when talking to web services.
- [PICARD-589] – Picard refuses to load files if any path component happens to be hidden
- [PICARD-642] – ConfigUpgradeError: Error during config upgrade from version 0.0.0dev0 to 1.0.0final0
- [PICARD-649] – Windows installer sets working directory to %PROGRAMFILES%\MusicBrainz Picard\locale
- [PICARD-655] – Last.fm plus tooltip help elements are all messed up
- [PICARD-661] – Regression: Tagger script for cover art filename does not work anymore
- [PICARD-662] – Retrieving collections causes AttributeError: release_list
- [PICARD-663] – Artist name makes it impossible to save
- [PICARD-658] – Support the new pregap and data tracks
- [PICARD-659] – Set the originalyear tag when loading a release
- [PICARD-665] – Web service calls to ports 80 and 443 do not need explicit port specification. 443 should be automatically made https.
Version 1.3 of Picard has been released today, with some notable features and bug fixes.
This release has few visible changes, but overall performance and stability were much improved. A lot of minor annoying issues were fixed. Cover art code was reworked, and notably one can now enable fallback on release group cover art if no cover art exists for a specific release.
Logging was improved, user can now enable debug mode from About →View Error/Debug Log, it may help to see what is going on if needed, passwords and sensible information were hidden from the log, so user can now safely post his log to get help.
To report any issue concerning this release, please use our bug tracker. As usual you can also get help on forum or on IRC (freenode, #musicbrainz).
Special thanks to Sophist, Wieland Hoffmann, Michael Wiencek, Johannes Dewender, Lukáš Lalinský, Frederik “Freso” S. Olesen, and the whole MusicBrainz Team.
Many thanks to all users, developers, bug reporters and translators. Code contributions since 1.2 are visible on Github Contributors graph.
Unfortunately the OAuth support patch (PICARD-305) didn’t make it in this release.
Picard 1.3 can be downloaded on the Picard’s website.
Be aware that downgrading from 1.3 to 1.2 may lead to configuration compatibility issues, better save your configuration before installing 1.3 if you intent to go back to 1.2.
Among changes since 1.2:
- The “About” window now displays the versions of libraries used by Picard
- Picard now correctly handles matching of MP3 files saved in ID3v2.3 tags (which is the version that Microsoft Windows and iTunes both use).
Note: You may need to re-save your tags once to get them to match in future.
- A sort tags plugin is now provided as tag data is no longer displayed sorted by default.
- A new tag, musicbrainz_releasetrackid, containing the MusicBrainz Track MBID introduced in the May 2013 schema change release, is now written to files.
- Add %_recordingtitle% (PICARD-515)
- Fix plugin install bugs (PICARD-444)
- Fix Options → File naming examples to handle primary/secondary release types (PICARD-516)
- A new advanced option is available to permanently set the starting directory for the file browser and “Add files/folder” buttons.
- Requests to Musicbrainz against your own account e.g. for collections are now handled through SSL (PICARD-337)
- Refresh of Albums using Ctrl-R and selection of Other Releases are now more responsive during batch lookups.
- Main window is now emitting a “selection_updated” signal, plugin api version bumps to 1.3.0
- Append system information to user-agent string
- Compilation tag/variable functionality (for tagging & file naming) has been split into two:
– %compilation% is now aligned with iTunes, and set only for Various Artists type compilations
– %_multiartist% variable now indicates whether this release has tracks by multiple artists
(in order to prepend the artist name to the filename as shown in the default file naming script)
- autodetect the CD drive on Mac OS X (PICARD-123)
- Ignore directories and files while indexing when show_hidden_files option is set to False (PICARD-528)
- Add ignore_regex option which allows one to ignore matching paths, can be set in Options → Advanced (PICARD-528)
- Added an “artists” multi-value tag to track metadata, based on the one in Jaikoz, which contains the individual artist names from the artist credit. Also useful in scripts (joining phrases like ‘feat:’ are omitted) and plugins.
- Added “_artists_sort“, “_albumartists“, “_albumartists_sort” variables for scripts and plugins.
- Made Picard use the country names also used on the MusicBrainz website (PICARD-205)
- New setup.py command `get_po_files` (Retrieve po files from transifex)
- New setup.py command `regen_pot_file` (Regenerate po/picard.pot)
- New Work tag (which for Classical music is often different from the track title) saved as ID3 TOAL tag.
- New Composer Sort Order tag (variable %composersort%).
- Improve the Other Releases list to prioritise and separate releases which match the correct number of tracks and your Options → Metadata → Prefered Releases settings for Country and Format.
- New %_absolutetracknumber% variable numbering tracks sequentially regardless of disc structure (so you can numbers tracks on multi-disc releases without a disc number)
- Support dropping image directly from Google image results to cover art box
- Add %_musicbrainz_tracknumber% to hold track # as shown on MusicBrainz release web-page e.g. vinyl/cassette style A1, A2, B1, B2
- Show the ID3 version of the file in the Info… dialog (Ctrl-I) (PICARD-218)
- Fixed a bug where Picard crashed if a MP3 file had malformed TRCK or TPOS tags (PICARD-112)
- Add –files option to setup.py build_ui, used to force .ui to .py regeneration (PICARD-566)
- New setup.py command `update_constants` (Regenerate countries.py and attributes.py)
- Made Picard use release groups, medium formats and cover art types also used on the MusicBrainz website
- Use MusicBrainz Server translations for release groups, medium formats and cover art types
- Add checkbox to toggle debug at runtime in log/debug view dialog
- Add a plugin to add Artist Official Homepage relationships to the website tag (ID3 WOAR tag)
- Add integrated functions $eq_any, $ne_all, $eq_all, $ne_any, $swapprefix and $delprefix.
- Add %_performance_attributes%, containing performance attributes for the work e.g. live, cover, medley etc.
- Use $inmulti in file naming scripts i.e. …$if($inmulti(%_performance_attributes%,medley), (Medley),)
- Add optional `priority` parameter to `register_album_metadata_processor()` and `register_track_metadata_processor()`
Default priority is `PluginPriority.NORMAL`, plugins registered with `PluginPriority.HIGH` will be run first, plugins registered with `PluginPriority.LOW` will run last
- Add Standardise Performers plugin to convert e.g. Performer [piano and guitar] into
Performer [piano] and Performer [guitar].
- Add support for release group cover art fallback (PICARD-418, PICARD-53)
- Add a clear button to search box
- Honour preferred release formats when matching AcoustIds (PICARD-631)
- Prevent ZeroDivisionError in some rare cases (PICARD-630)
Picard team decided to release a new stable version of Picard before the end of the summer.
To help us, advanced users, translators and developers are encouraged to:
Exact release date is not yet known, and features aren’t yet frozen, but the only important change we’ll try to get in before final release is OAuth support (PICARD-305), we still accept minor patches until feature freeze is announced.
Since Picard is now using some translation resources from MusicBrainz project, translators should make sure following resources are up-to-date:
A simplified list of changes made since 1.2 can be read there.
Be aware that downgrading from 1.3 to 1.2 may lead to configuration compatibility issues, better save your configuration before using 1.3 branch if you intent to go back to 1.2.