Classical Extras plugin

Tags: #<Tag:0x00007fde010c7538> #<Tag:0x00007fde010c73f8>


I’ve made some improvements to the UI, in the latest version at, although I’m not sure it addresses the points in this post exactly. The main fix is to allow the UI window to be resized to fit the user’s screen. As regards the small typeface in a couple of places, that does not happen with Windows and I do not have a Mac to test. Some pics might help.


New release v0.8.9 is available here:
I’m hoping that this will be the next official release, subject to a bit of code tidying. I decided to address this issue:

There is now an option on the “advanced” tab - “Do not run Classical Extras for tracks where no pre-existing file is detected (warning tag will be written)”. Picard will still run the other tracks, but there will be no special look-ups and so processing time is much reduced. If other files are dragged onto these tracks later, then a “refresh” is required to get the additional metadata. (NB I still need to update the readme for this).
There are a number of other small improvements and fixes.


On the Tag Mapping page, editing sources is not possible.
You can click on a ‘Source from:’ button, but that doesn’t make editing the field next to it available.
The tag name will remain greyed-out, and the drop down doesn’t work.
Which raises a question: why are these tag names greyed-out by default?
It might suggest to users that mapping rule is not active.

And from another UI point of view, it might be good to have check boxes per line (perhaps next to ‘conditional’) to activate/deactivate a mapping rule?

E.g. if you don’t want arranger>composer, i believe you currently would have to blank 7 pre-filled lines.


The contents of the ‘Help’ tab does no longer fill the available space of the panel.
It’s now a smaller pane within the help pane with it’s own scroll-bar.


Aargh! Do not what happened there. I’ll try and fix it this evening

It’s to stop accidental scrolling of them if using the mouse wheel when in the GUI. It doesn’t seem possible to selectively disable it with QT.

I’d like to improve the GUI in a few ways and this is certainly on the list (along with a re-ordering capability). The constraints are QT Designer and my skill/time!


Hopefully it is fixed - try downloading the zip file again.

That’s a side effect of the ‘improved’ scrollability. On the list to fix, but not seen as a major issue (in any case, I find it easier to use the readme at


Perfect. Thanks!

(some blabla added because a post MUST contain at least 20 characters. Silly)


Only tested it a bit briefly, but it seems to work very well.
You can now scan a folder containing classical tracks that don’t necessarily make-up a complete album or box-set, and (if they already have MusicBrainz id’s?) the process is not slowed down by the plugin looking up data for non-present tracks anymore.

I am only wondering if the wordings ““Do not run Classical Extras for tracks where no pre-existing file is detected” will be explanatory enough for (less-savvy) users that don’t know where all this came from.

Just for my (layman’s) understanding: Is this latest change you made related to indeed checking for non-present files, or does it check for MusicBrainz ID tags in the files already being present?

Assuming the second, my personal workflow now would probably be to first run classical tracks/folders through picard without the plugin active, and then a second time with it activated.

Assuming this currently would indeed be the proposed method for such cases, it would of course be nicer if only one run would suffice.
And perhaps avoiding any additional (possibly confusing) setting necessary to decide on this matter beforehand.
But that might then require some pop-up alert when the plugin encounters such incomplete albums/box-sets?


Good question. Unfortunately I have yet to find a way for a plugin to access the file information in Picard directly. The API is pretty poorly documented and I think mine is the first plugin to actually access tags on existing files - this took some working out and the files are matched by checking the MusicBrainz trackid. So unless the file has a MusicBrainz trackid, Classical Extras will treat it as ‘non-present’. But there is good news…

… all you need to do is refresh. Initially, if you load, say, a folder of tracks without MBIDs which belong to a variety of different releases (but only in part), with the new option is selected, and then cluster/lookup/scan, the plugin will say that there is “no file present” for the matched files. However, if you refresh the releases, the MBIDs will now be in Picard’s cache and the plugin will be able to look them up, while still omitting the additional processing for tracks for which there is no file.
So it is a two-step process if there is no MBID, but there is no need to do two runs without and with the plugin selected.
I hope that is clear. I’ll try and write something for the readme that explains it.


New version 0.9 now available. This is intended to be the next “official” version, but there seem to be some technical issues with the release process.
The new release is, however, available at - just install the in the usual way (download then Options->Plugins->Install plugin).
This release has a number of new features:

  • additional option to clear previous file tags which are not wanted, without interfering with cover art (note that this is intended to address a longstanding Picard issue where ‘clear existing tags’ also clears the artwork).
  • additional option to replace instrument names with as-credited names.
  • instrument names are now saved to hidden variables (instruments, instruments_credited and instruments_all) which can be mapped to file tags as required.
  • sub-option added to the ‘override artist options’ option on the “advanced” tab - to allow tag map details to be included or not in this over-ride.
  • also the “use track relationships” and “use release relationships” options will be automatically enabled on starting Picard / loading the plugin.

As previously, please read the extensive readme and note that there are a lot of tooltips available in the UI.


I’m working on a similar plugin for beets: . It is not as elaborate, it looks only at works and not at performers, but you might be interested.


I am using version .9.

I don’t like having composer in album artist. You can exclude this using picard, but how do I use this using your plugin.


How are you excluding composer in Picard?
BTW, I suggest you use v0.9.1 at rather than 0.9 - for some reason the guys haven’t updated the “available plugins” website.


Sorry - also meant to ask exactly what type of artists you want to appear in album artists?


You are correct. You have this option is Songkong, not Picard.

In album artist, I usually keep the key artist, like the conductor or soloist. I don’t find it helpful to include composer. Is there any way to exclude composer?


You can put anything you like there (within reason). Towards the end of the “readme” there is a section titled “Information on hidden variables”. These include:

_cea_album_soloists : Sub-list of soloist_names who are also album artists
_cea_album_soloists_sort : Sort_names of the above.
_cea_album_conductors : List of conductors whao are also album artists
_cea_album_conductors_sort : Sort_names of the above.
_cea_album_ensembles: Sub-list of ensemble_names who are also album artists
_cea_album_ensembles_sort : Sort_names of the above.
_cea_album_composers : List of composers who are also album artists
_cea_album_composers_sort : Sort_names of the above.

Omit the “_cea_” prefix and put the required variables as sources in the “Tag mapping” options of the plugin (comma separated). Put albumartist as the target. Also enter albumartist as a “Picard-generated tag to blank” at the top of that page.


If you want to have a “pecking order” - say soloist, or conductor if there is no soloist, then use two tag mapping lines with the second one (for conductor) marked as “conditional”.


Thank you for the extremely useful plugin.

Is there a way to exclude Conductor from the Artist field? That information is stored in Conductor field so I don’t feel the need to have it as an Artist as well.


Just exclude conductor from the sources of “artist” in the tag mapping section. If you are having difficulty, post an image of that options tab and I can make a more specific suggestion.


Thanks. This is what my options look like right now.