Semplice's Tagging Model

1.0 Introduction

One of the main reasons for Semplice to exist is its ability to 'tag' FLAC files with metadata describing the contents of the music contained within the FLAC. Semplice's first 9 main menu options are all geared to this end: each option allows you to type mostly free-form text describing the exact nature of the music being catalogued. You can specify its composer, the composition name, the performers on this particular recording... and so on.

Technically speaking, we don't 'tag FLACs': we add 'Vorbis Comments to FLACs' instead... but it amounts to the same thing and this guide will refer to 'tags' and 'tagging' henceforth.

There are a lot of equivalent tagging programs already available to achieve this sort of outcome, of course. Semplice's principle differences from those are: (1) it never fetches any metadata from sources on the Internet, because such sources are always wrong and totally useless; and (2) it talks the language of classical, not 'popular', music. Thus it talks of composers and compositions, not artists, albums or 'tracks'. That doesn't mean Semplice can't be used to tag non-classical music: the program makes no moral or artistic judgments about the FLAC files it is presented with! But the 'fit' of the program interface and the language it uses was definitely with classical music listeners in mind.

This emphasis on classical music is also the reason why Semplice cannot and will not tag anything other than FLAC files: it shares this website's philosophy that classical music ought to be listened to in the best possible quality and that, wherever possible, open source software should be used in preference to anything proprietary or platform-specific. Thus, Semplice will not tag MP3s or WMAs, for example.

Semplice is also a child of this website's philosophy on how best to tag classical music -which I'll talk about in more detail below. It will not ever create, for example, a tag for ALBUM ARTIST, because there is simply no equivalent in classical music for 'the guy performing the music on this CD, though he didn't write it or perform it first', which is what that tag is meant to mean in non-classical music circles. All classical music (with the exception of some more contemporary classical music performances) are always performed by the guy who didn't write the music: it tends to be that way when your composers died hundreds of years ago! As another example: this site likes to catalogue a work by its composer -and will store that metadata in the ARTIST tag, because the composer is the primary artist people always have in mind when thinking about classical music. It's Wagner's Götterdämmerung, not Solti's or Böhms; it's Beethoven's Fifth, not Bernstein's... and so on. As I say, I'll discuss this in more detail shortly, but the point to make now is that Semplice's tagging model may not be one you entirely agree with -and, in that case, it's perhaps not the FLAC management tool for you.

One other broad brush feature I'll mention now, too: Semplice's tagging approach is based on a physical ordering of your FLAC files. When it applies the composer tag, for example, it does so to every FLAC it finds in the current folder. When it says 'this is Symphony No. 5', it says that to all the FLACs it can see in the one location. If you've got a folder full of FLACs ripped from a single CD that happened to be of Beethoven's 5th and 1st symphonies, then clearly Semplice's tagging approach is going to be wrong for all the FLACs that are of the first symphony. Only once you've physically separated Symphony No. 1's files from Symphony No. 5's files does Semplice's 'per folder' tagging strategy work properly. Again, this approach may not please people who think 'what came on the CD' is more important than 'Beethoven wrote this, and he also wrote that', but it's entirely consistent with the way this website thinks digital music files should be properly organised.

With such philosophical quandaries introduced, let's get down and dirty with the business of tagging your FLACs with Semplice!

2.0 The Tagging Model

I have explained the technical and logical underpinnings for my view on how best to tag classical music files in several previous articles. First, I explained how we can uniquely distinguish 'this recording of that work' from 'that other recording of the same work'. Something that uniquely distinguishes between two pieces of data is called a 'primary key', and I went into some detail about what I believe the correct primary key for classical music is in this article.

Having established classical music's primary key, I then went on to explain its practical consequences for the way we tag classical musical digital files. With tongue somewhat firmly in cheek, I declared there were seventeen Axioms of Classical Music Tagging here.

I recommend you read both those articles now if you haven't already done so. Everything that follows is based on them! Here, though, is a brief summary that is Semplice-specific and is a distillation of what those two articles set out at length.

2.1 Necessary Tags

Semplice considers that there are only 8 tags which are needed for tagging classical music correctly. These are:


From all these tags, Semplice further believes that, in order to uniquely identify any recording from any other, similar recording, it's necessary to concatenate some of these tags into something called the extended composition name. Essentially this means taking the basic ALBUM tag and adding to it parts of the COMMENT and RECORDING_YEAR tag. Thus, we take 'Symphony No. 5', performed by Leonard Bernstein and recorded in 1983 and create an extended composition name of Symphony No. 5 (Bernstein - 1989). This extended composition name is then written back into the ALBUM tag.

The ARTIST tag is used to store the composer's name. This is because the composer is probably the most important organising idea in classical music: there are five bazillion recordings of Beethoven's fifth symphony... but only one Beethoven, for example. However, there is a very good, practical reason for making ARTIST mean 'Composer' -and that's the fact that nearly every software music player in existence organises its display around the ARTIST tag, whilst very few are even aware that a COMPOSER tag might exist, let alone pay any attention to it as an organising principle if they do spot it.

The GENRE tag is a simple, usually one-word, way of 'chopping up' a composer's output into manageable chunks. Confronted with 1000+ folders of Bach's music, for example, it might be nice to be able to say 'these are cantatas; those are violin concerti; the masses and oratorios are over... there' and so on. More fundamentally, too, it's useful to be able to characterise the type of composition being catalogued, so that you can later search and filter by that 'type'. Instead of saying 'play me some Haydn', wouldn't it be useful to say 'play me a Haydn mass' or 'play me a Haydn symphony'? The assignment of a GENRE tag gives you that future functionality.

The recording year is actually stored in a tag sometimes called DATE and sometimes YEAR (different programs tend to use either term interchangeably). Semplice likes to use DATE, but it still is meant to store only a year in which a specific recording was made.

A good, visual identity for your digital music files is very important in helping you to navigate your way around them, mentally and practically. CDs come with elaborate cover art (mostly: we won't mention the Beauty Farm recordings!) precisely to help establish a strong visual identity for this performance of a work as compared to that one. Semplice therefore wants to embed album art files within the FLACs they are associated with (rather than, say, be left as separate files in the folder, called 'folder.jpg', as Windows tends to want to do, for example). If you point Semplice to a piece of album art to use to tag a FLAC with, it will dynamically resize it to be as big as possible (without being pointlessly huge) and will store it in something called a 'Picture Block' (which can be thought of as an ALBUM_ART tag).

Finally, movements within a composition need to be uniquely identified. The whole thing might be called 'Symphony No. 5', for example, but we need to know this FLAC is the 1st movement called 'Allegro con brio' and that FLAC is actually movement 4, also called 'Allegro con brio'. Since the names of the movements are identical, we need a 'track number' to distinguish them from each other. Thus Semplice will first prompt for a 'starting track number', and then tag each file found within the same folder with numbers starting at that initial number and incrementing in steps of 1 thereafter. The auto-sequence is then stored in the TRACKNUMBER tag.

I've already hinted that the TITLE tag should be used to store the identifying name of each movement in a symphony or other instrumental work, which will usually be a tempo indication. If you're tagging an opera, though, then the TITLE might be the first few words sung at the start of that track. In any event, Semplice will prompt you to supply track titles and you are free to type as much or as little text as you like at that point. Whatever data is stored in the TITLE tag, plus the TRACKNUMBER tag, will become the file's physical file name. Thus, if you've tagged a file that was initially called (say) Track01.flac with TRACKNUMBER=1 and TITLE=Allegro con spirito, Semplice will automatically re-name the file to be 01 - Allegro con spirito.flac. It does this because of Axiom 17: your music collection's logical organisation should match, as much as possible, it's physical structure -not for any reason of blind ideology, but for the very practical reason that software music players will organise things by tags (i.e., the logical data you've supplied) but your operating system's file manager will display things by physical attributes (folder names, file names and so on). Therefore, it's practically useful that what you see in one tool should match up with the way the other tool displays the same stuff.

I will mention at this point that Semplice takes it upon itself to create two further tags, without your explicit input. If you say that a recordings performers were "Leonard Bernstein, New York Philharmonic Orchestra", that will be stored in full in the COMMENT tag -but everything up to the first comma will also be stored in the PERFORMER tag. Thus, in this example, PERFORMER will equal "Leonard Bernstein". This gives you the ability, later on, to ask to play Karajan's recording of The Planets with the Vienna Phil, rather than his recording of the same work with the Berlin Phil, because you can filter on "COMMENT=Vienna, PERFORMER=Karajan". It's otherwise not a terribly useful tag, I think, but Semplice automates its creation anyway.

The second tag Semplice creates without your explicit say-so is the COMPOSER one, by merely copying whatever you supplied as the ARTIST tag there. There is zero practical reason for doing this, but at one point some users of Semplice's precursor programs expressed displeasure with a composer's name going into a tag called ARTIST. Now it's in ARTIST and COMPOSER, for historical hangover reasons!

2.2 Tag Manipulation

Semplice does three special bits of 'tag mangling' with the eight necessary tags, some of which I've already mentioned in passing, but which deserve mentioning again in a bit more detail now.

2.2.1 ALBUM

It is fairly obvious that Option 2 prompts for "Set Composition Name". You will recall, however, that we need to get to an extended composition name, to act as a recording's primary key and that this is comprised of the actual composition name, plus a principal performing artist name, plus the recording year. This is why Option 2 prompts twice:

Here, you see I've typed in the 'correct' composition name as 'Also sprach Zarathustra', but Semplice is not satisfied with that and has gone on to demand I say who the 'principal artist' is, too. The principal artist name you supply at this point could refer to anyone, provided it's sufficient to distinguish between different recordings of the same work. Here, for example, the conductor's name will do the job; for an opera recording, however, you might decide that 'Maria Callas' is more useful in distinguishing between this Aida and Leontyne Price's recording of the same work. On a piano concerto recording, it might be that distinguishing between Richter and Ashkenazy is more important. Whatever name you think makes this recording distinct and unique from all other recordings of the same composition can be typed in at this point.

Anyway: here, I've typed 'Herbert von Karajan', because that's this particular conductor's full name. Semplice actually only pays attention to the last word supplied at this prompt, however. In this case, 'Herbert von' will be discarded and 'Karajan' is the only part that will be retained. You can thus save yourself some typing time by only supplying the last surname of the relevant distinguishing artist. "Callas" rather than "Maria Callas", for example; or "Britten" instead of "Benjamin Britten". You don't have to trim your entries of course: Semplice will do it for you, whether you want it to or not! It's just that you can type less if you bear this 'truncation' behaviour in mind.

Later on, in Option 5, Semplice will ask you to supply a recording year for the work. If you type '1959' there, for example, then it is at this point that Semplice will do its tag mangling! It now knows the work is Also sprach Zarathustra; that the distinguishing artist's name is Karajan; and that the recording year was 1959. It will therefore mangle all three elements together to construct an extended composition name of Also sprach Zarathustra (Karajan - 1959) ...and it will be this version of the composition name which will be stored in the ALBUM tag.


The second bit of tag mangling Semplice does is to create a PERFORMER tag automatically from whatever you supply as an answer to Option 3's 'Set Performer' prompt. Ordinarily, the text you type in at Option 3 will go into the COMMENT tag. However, the first piece of text supplied for the COMMENT tag, up to the first comma, will also be assigned as the PERFORMER tag.

If you typed 'Herbert von Karajan, Wiener Philharmoniker' as the Option 3 text, for example, then COMMENT will be set to "Herbert von Karajan, Wiener Philharmoniker" and PERFORMER will be set to "Herbert von Karajan". Bear this in mind when typing in your Performers entries, therefore: the word order is important, and the most important artist should come first in the comma-separated list of performers. Also make sure your list of performers is comma-separated! If you typed in something like "Herbert von Karajan:Wiener Philharmoniker" then, absent any commas, the entire text entry will be copied into the PERFORMER tag.

You might reasonably wonder what the point of copying part of the same data into two separate tags is. The reason is that it gives you subsequent flexibility when searching for music to play. As an example, recall that Karajan recorded Holst's The Planets with the Berlin Phil and the Vienna Phil. If you only had the COMMENT tag, reading "Herbert von Karajan, Berlin Philharmonic" and "Herbert von Karajan, Vienna Philharmonic", how would you persuade a software music player to pick one recording rather than another? Well, if you could do something like 'play where COMMENT contains Karajan AND where COMMENT contains Vienna', you would be able to do it, without reference to any other tag. But not many music players let you do that sort of multi-selection-within-a-tag trick. So, instead, how about asking to 'play where COMMENT contains Vienna and PERFORMER contains Karajan'? That's two tests, but only a single test is ever applied to each tag. A lot of music players will let you do that.


There is much less functional justification for doing Semplice's third bit of tag mangling! It is simply that in Option 1, you are asked to supply a composer's name -but it is actually stored in the ARTIST tag. It is useful and functional there, in just about every software music player I've ever used. However, Semplice also takes whatever you type in for Option 1 and copies it, verbatim, into the COMPOSER tag.

Some music players expose the COMPOSER tag and make it somewhat useful, though most don't. The fact that even a few do, however, is the justification for Semplice duplicating the ARTIST information there.

2.3 Custom Tags

The 'necessary' tags just described can apparently seem like a bit of a straightjacket to some people. They find no room in them to store information concerning a recording that they care about, such as "recording location", "musical key", "recording engineer" or "record label". Happily, such pieces of 'non-canonical' data can nevertheless be given to Semplice and stored within FLAC files, using Semplice's Custom Tag capabilities.

At the end of Semplice's persistent configuration file, you'll find this default bit of text:

# Comment out any custom tags you don't need.
# ----------------------------------------------------------------------------------------------
#CUSTOMTAG3="Date of acquisition:ACQUIREDATE"
#CUSTOMTAG4="Purchase Price:PRICE"
#CUSTOMTAG6="Musical Key:KEY"
#CUSTOMTAG7="Recording Location:LOCATION"
#CUSTOMTAG8="Recording Label:LABEL"

This tells you that Semplice permits up to eight custom tags to be specified: you can use fewer than that if you prefer, but you can't configure more than that. Any that you try to create after CUSTOMTAG8 will be silently ignored if detected.

Defining a custom tag here consists of specifying two things: a piece of free-form text to act as a prompt to supply some text, followed by a one-word name for how the supplied text should be named as a tag (you can use underscores to create 'virtual' words within the name). You must separate these two parts of the parameter value by a colon. You also need to remove the hash sign (#) at the start of the line to make the new custom tag definition 'active'. Note that the prompt text cannot contain more than 40 characters: it will be truncated to that length if it does.

For example, say I wanted always to be prompted for the name of the author of the CD liner notes (stranger things have been suggested to me in the past!). I would therefore want to set one of my lines in the persistent configuration to something like this:


Now when I go to tag some new music files and take Semplice's main menu Option 7, I'll see this:

The 'Custom Tags' sub-menu now displayed shows an item using the text I put in ahead of the colon in the CUSTOMTAG1 setting. If I now select that option (by typing 1->Enter), I see this:

Again, the prompt text is displayed inside an 'Enter a new...tag for this recording' prompt, and I can then type to my heart's content in yellow underneath that prompt. There is a theoretical limit of 4GB for each tag value, but you'll run out of screen real estate long before you get to that point, of course!

If I press [Enter] here, having first typed the value 'Frederick Smythe', I can then type 'm' to return to the Semplice main menu, and then take Option 10 to display the tag metadata currently embedded in the FLACs in this folder:

It's not the prettiest display of information in the world, but there in blue and black you can see that there's a tag called LINER_NOTES_AUTHOR (i.e., using the second part of the parameter, after the colon) and it's been set to a value of 'Frederick Smythe'. You can see the same information in any other tag display tool you might care to use. I like Kid3 on Linux, and that shows things in a more attractive manner:

Again, the custom tag is clearly visible, as is the value that it has been set to.

Obviously, in this example I've only specified a single custom tag, so the sub-menu under Option 7 was a bit short on selections! But if you specify the entire eight possible custom tags, that sub-menu can end up looking like this:

You are, in fact, limited only by your imagination, your train-spotting-like obsessions with recording trivia, and your willingness to type in lots of text that is unlikely ever to be of practical use!

3.0 Physical v. Logical

I have made the point elsewhere (see Axiom 17) that a digital classical music collection's physical organisation should mirror it's logical organisation. That way, you can view the collection via a software music player's display and see much the same information as if you were to browse it in your operating system's file manager.

The implication of this may not be obvious, however. If you remember, Semplice takes a lot of trouble to construct an extended composition name from three bits of information you supply: the real composition name, the surname of the principal artist on a recording, and the recording year of a particular recording. Hence, we get something like Also sprach Zarathustra (Karajan - 1959) as the extended composition name -and you saw above (Section 2.2.1) that to achieve this, Semplice Option 2 prompts you both for the 'real' composition name and the name of the principal recording artist (sometimes called 'the distinguishing artist' elsewhere on this website).

Well: here's the physical consequence of the idea of an extended composition name: the folder your music files are stored in should have a name that matches the extended composition name. Here's an example of me doing that:

Each folder within the 'Symphonic' folder represents a unique recording of a Havergal Brian symphony -but I don't call the folders 'Symphony No. 1', 'Symphony No. 2' and so on. Rather, it's 'Symphony No. 1 (Brabbins - 2011)' or 'Symphony No. 4 (Leaper - 1992)'... and those folder names are extended composition names!

Semplice won't force this physical organisation on you. There is no law of physics which mandates that if you tag a recording as 'X (Y - Z)' that it must be stored in a folder called 'X (Y - Z)'. But it remains a useful physical organisational principle nonetheless, and I'd urge you to adopt it for yourself.

There is, in fact, a practical benefit to naming your music folders this way, especially if you do so before you start tagging your files with Semplice. If you physical folder name is already correct before you start using Semplice to tag the files contained within it, then you can save yourself some time by pressing Ctrl+Shift+Insert when supplying the composition name in Option 2, rather than having to type out the composition name in full. Let me try to explain with some screenshots!

Here, I've got a file for Also sprach Zarathustra on my Desktop. When I go to tag it using Option 2 (Set a Composition Name), if I try pressing Ctrl+Shift+Insert, I get this:

The current folder name (note the 'You are in' identifier towards the top of the screen) is auto-pasted into the prompt for me... but calling a composition 'Desktop' is clearly a bit daft! How about I create an appropriately-named sub-folder on my desktop instead, and start tagging from there? This is how it now looks:

This time, the 'you are in' prompt says I'm in a sub-folder of my desktop, and the folder name is 'Also sprach Zarathustra (Karajan - 1959)'. If I then take Option 2 and press Ctrl+Shift+Insert, I get my composition name pasted in for me, all at once, and without any further typing on my part. What's more, since the composition name matches the pattern for what Semplice understands as the extended composition name, it won't prompt me for the name of a principal artist when I press [Enter] at this point: it doesn't need to ask about who the principal artist might be, because a name is already there in the extended composition name.

Putting it succinctly, therefore: if you organise your music files into appropriately-named folders before you try tagging them, you can paste in the name of the physical folder for Option 2 and save yourself some typing and being prompted for the distinguishing artist name. Or, even more succinctly: get the physical organisation right first, and the logical tagging will be quicker than it otherwise would be.

NOTE: Please be aware that this Ctrl+Shift+Insert functionality only works if your operating system is using the X Windowing system. If you are using Wayland (which is becoming the default in more and more distros, and in the latest KDE installations I've used), then it won't work properly. Hopefully there will be a fix for this relatively soon, but in the meantime, you'll note that the current folder name is displayed cleanly on the third line of Semplice's display: it is thus still relatively trivial to highlight that with a mouse and then middle-click (or right-click, copy and then right-click paste) to transfer the current folder name into the 'name of the composition' prompt area.

4.0 Checking Your Work

It can sometimes be difficult to remember if you visited every one of the possible tagging options (though Semplice puts a green tick next to each one if it knows you've taken it in the current session, so there's some help available on that score!) It can, however, also be difficult to know if you typed in everything correctly once you took a particular menu option, or whether some silly typo or mis-keying crept into play! At any time, therefore, you can review the state of tagging for a particular folder's FLACs by taking Semplice's Option 10.

That option will display the complete set of tags created so far for every file in a folder, like so:

It's not a particular pretty display of the data, but you can certainly identify quite quickly whether album art has been provided; what the tags for COMPOSER, ARTIST, ALBUM, TITLE, GENRE and so on have been set to.

You can scroll up and down through the list of tags, using the Page Up and Down keys to go in large jumps, or the up and down cursor keys to go line-by-line. If there are multiple FLACs in a folder, you'll see the tags for each one displayed separately, with a double-dash line divider:

Here, you see the end of the tags for file 1 and the start of the tags for file 2. There shouldn't usually be a difference between them (because Semplice always tags entire folders-full of FLACs at a time, with whatever data has been supplied for Options 1 to 9, so it's difficult to see why any one FLAC would differ from any other).

At any point, you tap the letter 'q' to quit out of the tag display and return to the Semplice main menu.

|[Back to Front Page]|[Semplice Tagging Model][All About SuperFLACs]|[Volume Boosting]|[Audio Codec Conversions]|