Picard 2.9 released

The Picard team is happy to announce that the final version 2.9 of MusicBrainz Picard is now available for download. MusicBrainz Picard is the official tag editor for the MusicBrainz database and helps you get your music collection sorted and cleaned up with the latest data from MusicBrainz.

This release brings many changes, including single instance mode, new scripting variables, ID3v2.4 by default, new macOS icon and more. More details below.

What’s new?

Single instance mode

The main change coming with this release is limiting Picard to a single instance by default. That means if you open files with Picard they will be loaded to the existing instance instead of launching a new Picard window for each file. This work was done by skelly37 as part of last year’s Google Summer of Code.

If needed the single-instance mode can be disabled using the --stand-alone-instance command line parameter.

Control Picard with command line actions

On top of the single instance mode skelly37 also implemented the ability to run commands inside this running Picard instance from the command line. This allows to some degree to remote control Picard and semi-automate some tasks.

Please note that the goal here is not to make Picard a command line tool. Rather this functionality is meant to be used in combination with the graphical user interface.

Simplified file naming script editor

Multiple user were confused by the script editor dialog, which did not make it easy to change the predefined scripts. That dialog has been reworked. It’s now always possible to edit the shown script. When adding the new script you have the option to either start with an empty script or use one of the existing presets as a starting point.

New user dialog and file saving confirmation

Picard 2.9 will show an information dialog on start, informing the user about Picard’s capability and urging them to work carefully.

When saving files there is also a new confirmation dialog showing the actual actions that will be performed on the selected files.

Both dialogs can be disabled by experienced users. We might also extend the first use dialog in the future and turn it into a setup wizard assisting new users with the basic configuration.

Use Id3v24 by default instead of id3v23

This release Picard changes the default settings to use ID3 v2.4 instead of v2.3. Version 2.4 of the ID3 standard offers much better support for multi-valued tags. In the past we kept the older v2.3 as the default, as even popular software had issues with the newer standard. Since support for ID3 v2.4 has improved in recent years (even Windows 10 / 11 now supports it) and we received more feedback related to problems that could be solved by upgrading to ID3 v2.4 we decided to finally use the newer standard by default.

If you have trouble with ID3 tags in your older software or device try changing the ID3 version back to v2.3 in Picard’s tag options.

This change of the default configuration only affects new installations, existing installations retain the existing configuration setting.

User defined replacement characters for Windows compatibility

If the Windows compatibility mode is enabled, Picard will replace characters that are not supported on Windows file systems. Until now Picard always used an underscore as the replacement. With this release there is a new setting that allows to customize the replacement for each individual character.

Furthermore it is now also possible to define a separate replacement for directory separators (backslash \ on Windows or slash / on other operating systems).

Scripting comparison function can be used with strings

Until now the scripting functions $gt(), $gte(), $lt() and $lte() could only be used to compare integer values, but not to compare strings or floating point numbers. This has now been improved. All those functions accept an additional parameter to specify the type of comparison. The default is still “integer”, but you can also set it to “float” or “text”. For example to compare two date strings one can use the following script:

$lt(2020-01-01,2020-01-02,text)

There are also two new functions $max() and $min() to return the largest or smallest value from a list of values.

New scripting variables

Multiple new scripting variables have been added. %_writersort% and %_lyricistsort% hold the sort names of writer and lyricist. With %_file_created_timestamp% and %_file_modified_timestamp% you can get the creation and modification time of the files as reported by the filesystem.

There is also a full list of additional series related variables like %_release_series% or %_release_seriesid%. For the full list see the documentation about basic tags.

New application icon on macOS

The app icon for macOS has been updated to blend in better with other app icons on modern versions of macOS. In addition to the new look the icon is now also available in larger sizes.

And more…

There have been many more improvements and bug fixes. Please see below for a complete list of changes.

Download

Picard 2.9 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.

Picard is free software and the source code is available on Github.

Acknowledgements

This release contains code contributions by Laurent Monin, Philipp Wolfer, skelly37, Bob Swift, David Kellner, Tushar Rohith, Aerozol and certuna.

Many thanks also to all the translators and everyone who tested the beta releases and provided feedback on the community forums, IRC and the issue tracker.

Get in touch

Please use the MetaBrainz community forums and the ticket system to give feedback, suggest new features or report bugs.

Changelog

Below is the full list of changes since the last stable release 2.8.5. A full list of changes in the individual pre-releases can be found in the changelog.

Bugfixes

  • PICARD-2576 – Options window minimum height does not fit on smaller screens
  • PICARD-2599 – Crash on plugin install / update
  • PICARD-2534 – Vorbis / FLAC: Trailing null char in date tag causes date to be ignored
  • PICARD-2605 – Windows: libssl-1_1-x64.dll missing
  • PICARD-2608 – Application exit waits for outstanding loading request
  • PICARD-2611 – During clustering selection changes are ignored, can lead to users performing actions on unexpected files
  • PICARD-2624 – ValueError writing truncated AIFF / WAVE / DSDIFF files
  • PICARD-2629 – Keyboard shortcut for “Search for similar albums”
  • PICARD-2642 – Submit cluster as release opens on 0.0.0.0 if “Listen only on localhost” is disabled
  • PICARD-2481 – Shorten long country lists in search results
  • PICARD-2651 – Repeated / duplicate log lines on console output
  • PICARD-2660 – RecursionError: maximum recursion depth exceeded while calling a Python object
  • PICARD-2011 – “RuntimeError: dictionary changed size during iteration” in metadatabox
  • PICARD-2685 – Moving files between tracks looses AcoustID fingerprint and ReplayGain tags
  • PICARD-2689 – If the first dragged element is not visible an empty rectangle is shown during drag

New Features

  • PICARD-2471 – Restrict Picard to a single instance, open new files in existing instance
  • PICARD-2519 – Allow passing supported URLs on command line
  • PICARD-2526 – Allow starting processing actions from the command line
  • PICARD-711 – New variables for release group, release, recording and work series
  • PICARD-2617 – Add variables for file creation (_file_created_timestamp) and modification date(time) (_file_modified_timestamp)
  • PICARD-2606 – Add _writersort and _lyricistsort variables

Improvements

  • PICARD-356 – Replace Windows incompatible characters with user defined character
  • PICARD-2486 – Add text-based comparison scripting functions
  • PICARD-2550 – Support dBpoweramp secure ripping log files for disc ID lookup
  • PICARD-2553 – Add option to use underscores instead of spaces in file naming
  • PICARD-2567 – Support fre:ac ripping log for disc ID lookup
  • PICARD-2595 – Customizable replacement character for directory separators
  • PICARD-900 – Use Id3v24 by default instead of id3v23
  • PICARD-1649 – Allow plugins to link to documentation
  • PICARD-1945 – Option to set the number of parallel fpcalc processes
  • PICARD-2535 – Handle null terminated tag values in Vorbis / FLAC tags
  • PICARD-2616 – Support tag releasedate for TDRL / RELEASEDATE (not filled by default, but available for scripting and plugins)
  • PICARD-2620 – New icon for Picard on macOS
  • PICARD-2625 – Improve visibility of creating a new file naming script
  • PICARD-2626 – macOS: add 512px & 1024px icons
  • PICARD-2653 – Update alias locales for updated server list
  • PICARD-2654 – Show error message on rating submission failure due to server error
  • PICARD-2662 – Give better user message with corrupted file
  • PICARD-2671 – Show a first run information dialog
  • PICARD-2676 – Show a file save confirmation dialog
  • PICARD-2679 – “Open folder” does not work on Snap install
  • PICARD-2680 – Modal first use and file save confirmation dialogs

One thought on “Picard 2.9 released”

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.