Below follows the full explanation of this 'delimiting scheme'.
If you are in a "tl:dr/yeah, I get it" kinda mood, click HERE to go to the brief version that just explains what to do.This write-up became a lot longer than I anticipated on when I started it, so here is a brief introduction to avoid possible confusion, and prevent anyone wasting time reading all this, and finding out at the end that it is of no interest or advantage to him/her:
The basic idea and objective behind it is that if you make sure the titles of your classical tracks are up to par, following general recommendations on title formatting, then you could avoid the need of additionally maintaining extra tag frames such as 'work' and 'movement'.
It's just a system I designed for my own use, and certainly not to be considered as some general guideline.
Managing classical music in a digital music manager is quite a challenge.
One aspect of that, is that there are not many agreed-on standards on the construction, naming, and handling of classical compositions in regard to sections such as 'movements' 'scenes', acts' etc.
Therefor it is not so easy getting items such as 'work', 'bwv/opus nr.', 'act', 'scene' etc. categorized and displayed in a usable manner.
It's probably close to impossible to get that perfect anyway, since within different classical genres there is ambiguity in "what is a work", an act, a scene, part, movement, segment, etc.
And you will have a hard time finding content providers or tagging software working nicely together filling all necessary tag frames to full satisfaction, without using your own scripts, or do lots of tweaking.
(MusicBrainz/Picard is making progress, but not there quite yet)
Still, you'll want to organize and display your classical library with means available.
The common way to do this is by setting up and maintaining additional tag fields such as 'Work', 'Movement', etc.
But if the full titles of your classical tracks are well-arranged and complete, they will already contain the names of these elements.
Having that makes it possible to avoid the need to additionally maintain such additional tag frames.
This is the idea:
There is some sort of agreement on the structure of classical track titles.
It states that the title should not only contain the name of the particular track, but also the names of the above items in the structure the track is a part of.
So it should include items such as work, cat./opus number, act, movement, segment title, etc.
The general consensus is to use specific delimiters to separate these items.
So you will usually encounter commas, colons and hyphens as delimiters for work,cat./opus: movement-etc.
Those can indeed be very useful, since it makes it possible to dissect the separate items in the title, and use those to populate virtual (or regular) tags in MusicBee.
But a big problem is that these specific proposed delimiters are too common, will often occur more than once in a title, and are often not placed in the correct, or in a consistent position.
As a result, formulas depending on those limiters will often get disappointing results.
To improve on that, for my own setup I have decided a while back already on using some custom delimiters that have very little chance to give conflicts in existing titles.
And it has the intention to trying to avoid the necessity to populate and maintain additional tag frames such as 'work', 'cat.nr.', 'movement'.
Since, if the full title is constructed well, and already contains all that information, it would be somewhat superfluous and double work to additionally maintain those dedicated frames.
Recently I re-evaluated the scheme I was using, and improved some formulas. So I thought this was a good moment to share my efforts.
This 'howto' describes how to set up this 'classical title delimiting scheme' that I currently work with, and is intended for:
- users that are interested in getting a similar setup and would like some guidance. (and probably save a lot of time in figuring out the formulas)
- some brain-storming with other members (and myself...) to possibly get some more ideas, suggestions, improvements.To summarize, the focus of this specific guide is on making it possible to dissect long, well-structured classical track titles, and infer separate manageable virtual tags for MusicBee from them.
Note that to have the benefits of the scheme described in this tutorial, you must be willing and prepared to apply a consistent structure of delimiters to all classical tracks in your library.
If most of your classical tracks currently already have the common delimiters, the 'search and replace' function, and/or the 'additional tagging tools' plugin can make the transition to these custom delimiters not too difficult to do.
If you are unwilling to change the titles using these custom delimiters, you can keep using the common recommended delimiters (comma, colon, hyphen) for your tracks, but then you will have to change the formulas of the virtual tags, by replacing all custom delimiters with the 'common' ones.
But then the end results will vary. (probably a lot)
Or you can just use this tutorial for ideas, testing and inspiration, and create/improve your own structure/workflow.Let's begin:
This is how your classical titles should be constructed to make these formulas work:
Work • Opus· Scene ~ Title
- The work title is followed by a bullet (alt+0149)
- The catalogue nr. (BWV/opus) is followed by a middle dot (alt+0183)
- The Scene (or movement, depending on type of classical work) is followed by a tilde (alt+0126)
So you would have:
Dido and Aeneas • Z. 626· Act II ~ Scene II. "Oft she visits this lone mountain"
Préludes flasques (pour un chien) • I. Voix d'intérieur
---------------------------------------These are the formulas that dissect the full title, and create separate virtual tags for each item:
To create and populate a virtual tag for 'Work'
To create and populate a virtual tag for 'Opus/cat.'
To create and populate a virtual tag for 'Work+Opus/cat.'
To create and populate a virtual tag for 'Act/mov.'
$If($Contains(<Title>,~)="T",$If($Or($Contains(<Title>,•)="T",$Contains(<Title>,·)="T"),$If($And($Contains(<Title>,•)="T",$Contains(<Title>,·)="T"),$Split($Split(<Title>,·,2),~,1),$If($Contains(<Title>,·)="T",$Split($Split(<Title>,"· ",2)," ~",1),$Split($Split(<Title>,"• ",2)," ~",1))),$Split(<Title>," ~",1)),)
To create and populate a virtual tag for 'Scene/title'
$If($Contains(<Title>,§)="T",$Split(<Title>,§,2),$If($Contains(<Title>,~)="T",$Split(<Title>,"~ ",2),$If($Contains(<Title>,·)="T",$Split(<Title>,"· ",2),$If($Contains(<Title>,•)="T",$Split(<Title>,"• ",2),<Title>))))
(I believe they work quite well, but I am open to suggestions if anybody knows shorter or possibly more efficient formulas?)
If all is setup as above, you should be able to get something like this screenshot.
(the titles of the first 8 tracks were designed to check if the formulas work correctly in all possible cases)edit:
To clear up some possible confusion about the screenshot examples:
Not all classical compositions are multi-level, or have catalogue nrs.
Tracks 1-8 from the screenshot above represent such possibilities, and tests and shows if the formulas are able to dissect and infer the correct info in all cases.
With an actual classical work it could then show up like this in MusicBee:
Some additional notes:
You can choose your own, unique names for these virtual tags.
(Using the name 'Work' is not possible, since that's an existing regular tag. But you could use something like 'Work (v)')
The names I chose for 'Act/movement' and 'Scene/title' are subjective choices.
You might as well choose names such as 'part', 'piece' or 'segment'.
There is no absolute right or wrong here. (maybe unless you have only opera's, or only symphonies, etc. in your library)
When you don't require separate fields for both 'work' and 'cat.nr.', just place the • icon after the cat.nr., and don't use the · icon.
There will be tracks/albums, or situations where you don't require much fine-grained separation.
For those cases you can choose not to go in so much detail with the above delimiters, but use only one delimiter that must be placed in-between the 'work-cat.nr.' and the full 'act-scene-title'.
That delimiter must be: §
(alt+0167 section sign)
If these classical titles already have some delimitation, search&replacing the first : in a title, with § might give quick and good results.
This scheme does not make use of the existing 'movement' and 'work' tag frames.
I had some doubts about using them or not, but after a period of experimenting, for now I decided not to.
My reasons for that are:
- the term 'movement' is rather ambiguous. (and sometimes inappropriate; Opera has no 'movements')
- there doesn't seem to be a lot of consensus on how the data in that frame is supposed to be used and handled.
- I wanted to limit the number of needed (non-virtual) tags.
- if 'work', 'scene', 'act' etc. are well defined and delimited in the title, I currently see no need or purpose to additionally populate these specific tags.
(the virtual tags will show them perfectly)
Maybe there should be an additional hierarchical level between/below 'act/movement' and 'title/scene'?
Is anybody using, or requiring more than two levels below 'work'?
(I would prefer to keep it as simple as possible myself, it's already complex enough)
While the 'work' and 'movement' tag frames are not made use of in this scheme, for classical titles (and also 'popular' music works that are constructed from parts) I do activate them in MusicBee, because:
- It will make the movement# tag available.
- It will write the 'SHOW MOVEMENT=1' tag frame that can be used for other displaying purposes relating to classical music.
(to activate these classical tags, click the small 'arrows up/down' icon right behind 'track title:' in the tag editor panel)
I myself use that flag for better displaying and handling of a mixed library containing both popular and classic music.
For example I created virtual tags named:
- 'Album/work' - which shows the album title for popular music, and the 'Work' name for classical works.
- 'Album/work artist' - which shows the album artist for popular music, and the 'composer+conductor+orchestra+main performer' for classical works.
And finally some real world examples:
Dido and Aeneas •
Act II ~
Scene II. "Oft she visits this lone mountain"
combined work/cat.nr. delimiting:
Dido and Aeneas, Z. 626 •
Act II ~
Scene II. "Oft she visits this lone mountain"
a composition that has no cat.nr. and just one level:
Préludes flasques (pour un chien) •
I. Voix d'intérieur
single (quick) delimiting:
Dido and Aeneas, Z. 626: §
Act II,Scene II. "Oft she visits this lone mountain"
For all these examples, thanks to using these custom delimiters (and this scheme), you don't have to worry at all about occurrence and locations of colons, commas, hyphens etc. in the title.
And that is a big advantage, and an important reason for me setting up this scheme, since lots of classical titles 'in the wild' are quite a mess in regards to the use of these common delimiters.
__________________________________________Feel free to give feedback if you see any flaws, or if you have suggestions to improve on this tips&tricks, or the scheme itself in any way.