The Picard team is happy to announce that the final version 2.7 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 a completely new naming script editor, scripting improvements and AcousticBrainz submission. See below for the highlights.
New file naming script editor
There is a completely new editor for managing file naming scripts.
This new editor brings a lot of improvements and new functionality:
- You can add multiple file naming scripts and quickly choose among them.
- The script editor can be opened independent of the options as a separate dialog, side by side with the Picard main window.
- Scripts can have additional metadata, such as author, license or description.
- It is possible to export and import scripts to and from YAML files. This makes it easy to share useful scripts with other peoples or store them for backup.
- The inline documentation can be permanently displayed.
- The preview of the changes now uses your actually loaded files instead of relying on hard coded example data.
Easier script editing
The script editor will now provide hover tooltips for functions, variables and Unicode escape sequences (see below), making it easier to understand what the code does without the need of the online documentation.
Also you can now enable automatic word wrapping of long lines.
The scripting language has become more powerful. One new feature of the scripting language is that you can now specify arbitrary Unicode characters by entering
\uXXXX, where XXXX is the hexadecimal code of the character. E.g. you can enter the ellipsis character … with
\u2026. This is especially useful with characters that are either not possible to type with the keyboard or are invisible, e.g. special spaces and control characters.
When you copy and paste code into Picard’s script editor it will even automatically convert control characters into the escape sequence. This makes otherwise hidden control characters visible, thus avoiding unintentional side effects.
The $performer() function now accepts regular expressions by enclosing them in
/.../. E.g. the following expression would give you all performers where the type starts with “guitar”, case insensitive.
The new functions $year(), $month(), $day() and $dateformat() simplify working with date values, $countryname() can convert country codes to country names and $is_multi() allows to detect whether a variable is a multi-value variable. The new variable %_workcomment% provides the disambiguation comment of the work, if available.
More accurate loading time estimation
Picard now shows an estimated remaining time to load the data in the status bar:
This also means the progress indicator in the Windows taskbar or some Linux docks is now more accurate.
Submit releases and recordings to MusicBrainz
The functionality to submit a cluster as a new release to MusicBrainz has been integrated into Picard. Submitting a cluster will open the MusicBrainz release editor in your browser, prefilled with metadata from the clustered files. Likewise a single file can also be submitted, either as a release or standalone-recording.
This functionality has been previously available as a separate plugin “Add cluster as release”. Integrating this feature not only made it easier to use, but also fixed some issues like compatibility with newer versions of Firefox and better metadata submission.
With clustering Picard tries to group your files into files belonging together. Basically it tries to automatically detect which files are from the same release. In Picard 2.7 it is now possible to cluster all newly added files automatically. This behavior can be enabled in the general options.
Clustering has also become faster and does no longer block the UI.
You can now analyze the acoustic features of your tagged and saved files and submit them to AcousticBrainz.
Multiple option profiles
If you frequently need to change Picard options for different type of files you tag, you can now use the new option profiles. An option profile groups certain settings, and you can enable or disable those profiles independently.
Clear existing tags without losing embedded cover art
A long requested feature has been to allow clearing all tags in the file, but keep any embedded cover art. This is now possible an can be enabled in the tag options.
There have been many more improvements and bugfixes. Please see below for a complete list of changes.
Picard 2.7 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.
This release contains code contributions by Bob Swift, Gabriel Ferreira, Laurent Monin, Philipp Wolfer, Sophist, petitminion, Louis Sautier and yogender26.
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.
Below is the complete list of changes since Picard 2.6.4:
- [PICARD-157] – “Translate artist names to this locale where possible” also translates ones already in the correct locale
- [PICARD-1645] – Picard doesn’t respect MusicBrainz server settings for the CD lookup in browser functionality
- [PICARD-2189] – Network cache directory at wrong location on Windows
- [PICARD-2217] – $performer() pattern matches full tag name
- [PICARD-2233] – Composer Sort Order doesn’t use the artist sort name when the “credited as” text is populated
- [PICARD-2236] – Renaming files with “replace non-ascii” treats fullwidth slash U+FF0F as directory separator
- [PICARD-2253] – Tagging script name can be changed to empty string
- [PICARD-2261] – Any tagger script causes multi-line fields to become changed
- [PICARD-2276] – Fix browser integration on Windows if hostname contains non-ASCII characters
- [PICARD-2290] – macOS: System wide dark mode is not respected
- [PICARD-2291] – Portable Picard 2.7.0b1 on Windows can conflict with system wide Qt5 install
- [PICARD-2293] – macOS: 2.7 beta 1 for macOS 10.12+ requires macOS 10.14
- [PICARD-2294] – Incorrect local file cover art regex can lead to exception
- [PICARD-2297] – Loading many files can cause some files to be skipped and not loaded
- [PICARD-2302] – First function in naming script not displaying tooltip
- [PICARD-2307] – Unable to save Vorbis Comments after $delete script with tagname that’s not valid in Vorbis
- [PICARD-2308] – Add cluster as release does not set track artists
- [PICARD-2311] – ID3 cover art types, as used by ID3, ASF, FLAC and Vorbis, are not preserved
- [PICARD-2314] – Hidden variable ~length gets written to MP4 tags
- [PICARD-2318] – Submit AcousticBrainz features enabled on unmatched files
- [PICARD-2321] – “Keep original cover art” for tracks not showing correctly
- [PICARD-2322] – If files are attached to album on load cover art changes are not shown on album level
- [PICARD-2324] – WavPack correction files are identified as duplicates to their WavPack files and renamed
- [PICARD-2320] – macOS: Picard 2.6.4 segfault upon authorization/login prompt
- [PICARD-2328] – Crash on startup with Python 3.10
- [PICARD-2329] – Changing the enabled options doesn’t update the naming script
- [PICARD-2330] – Changes do not show when script editor is closed and re-opened from Options dialog
- [PICARD-2342] – Saving cover images to WMA or MP4 files fails if “clear existing tags” and “keep embedded images” are active
- [PICARD-2346] – ID3v2.3 files show as changed, even if no tags changed and no tag changes are indicated
- [PICARD-2351] – Windows: System language detection broken
- [PICARD-2352] – Log view colors are not restored after a clear
- [PICARD-2353] – Post cluster focus regression
- [PICARD-2361] – Removing files while clustering
- [PICARD-2362] – Added __pycache__ directories make builds unreproducible
- [PICARD-9] – Options profiles / quick presets
- [PICARD-257] – Option to preserve artwork when selecting “clear existing tags”
- [PICARD-1127] – Filename presets
- [PICARD-1734] – Add AcousticBrainz analyzer features
- [PICARD-2165] – Add $is_multi() function to test if a variable is multi-value
- [PICARD-2203] – Integrate add cluster as release functionality into Picard
- [PICARD-2204] – Support unicode escape sequences in tagger scripts
- [PICARD-2213] – Allow naming script import/export as YAML scripting package
- [PICARD-2277] – When translating artist names ignore selected scripts
- [PICARD-2279] – Allow saving AcoustID fingerprint in acoustid_fingerprint tag
- [PICARD-2304] – Add option to show/hide icons in menus
- [PICARD-2231] – Fix packaging Picard on Windows with Python 3.8 or later
- [PICARD-226] – Cluster automatically
- [PICARD-412] – Allow several locales to be selected for “Translate artist names to this locale where possible”
- [PICARD-524] – Ability to have more that one rename script and choose desired
- [PICARD-563] – Pad disc number in default renaming script if more than 9 discs
- [PICARD-1568] – Improve parsing track number and title from filename
- [PICARD-1718] – Display and log crash details
- [PICARD-2150] – Option to show or hide the tag editor
- [PICARD-2151] – Provide functions $year(), $month(), $day()
- [PICARD-2171] – Make guessing title from filename if title is empty optional
- [PICARD-2174] – Optimize metadata view displaying format specific metadata
- [PICARD-2176] – Add column to see if cover art is present
- [PICARD-2178] – Select random sample of loaded files to use as renaming examples
- [PICARD-2179] – Refactor Options > File naming
- [PICARD-2181] – Support Markdown formatting for plugin descriptions
- [PICARD-2184] – Allow fully silent install using the Windows installer
- [PICARD-2198] – Update formats for Tefifon and 5.25″ Floppy Disk
- [PICARD-2201] – Add help button to “Tags from file names” dialog
- [PICARD-2207] – Script editor: Show hover tooltip on Unicode escape sequences and functions
- [PICARD-2215] – Add function $countryname() to get country name from country code
- [PICARD-2218] – $performer() should allow regular expressions
- [PICARD-2220] – Set default file extension for files with empty extension
- [PICARD-2232] – Allow data submission to unofficial server
- [PICARD-2237] – Realistic progress and ETA
- [PICARD-2248] – Lazily initialize the file browser on first display
- [PICARD-2251] – Add ability to import/export tagging scripts
- [PICARD-2263] – Performers without role do not get saved to TMCL (TIPL respectively) frames
- [PICARD-2266] – Add already mapped tags gapless, podcast, podcasturl, show and showsort to list of known tags
- [PICARD-2271] – Allow removing obsolete option settings from configuration INI file
- [PICARD-2273] – Set acoustid_id tag also if AcoustIDs were found, but no recordings are attached
- [PICARD-2278] – Show the path and name of the configuration currently used
- [PICARD-2288] – Add variable %_workcomment% for the work disambiguation comment
- [PICARD-2299] – Extend genre wildcard filtering with “?” and “[…]” matching
- [PICARD-2301] – Slight rewording of ‘CAA’ cover art provider options
- [PICARD-2305] – Restructure user interface options
- [PICARD-2306] – Disable “Convert Unicode Punctuation” option by default
- [PICARD-2325] – Show MusicBrainz login errors
- [PICARD-2327] – macOS: Treat files with hidden attribute as hidden files
- [PICARD-2334] – Have script editor consistently save to configuration
- [PICARD-2339] – Improve clustering performance
- [PICARD-2340] – Use configured name for Various Artists for clusters with unknown artist name
- [PICARD-2344] – Add more settings to option profiles