What is Semplice?

1.0 Introduction

Semplice version 1 was publicly released on August 31st 2022 and aims to be a comprehensive set of utilities with which to manage a FLAC-based digitial classical music collection. It allows you to tag your music, to merge it and split it, convert it to and from lots of different audio codecs, and to volume-boost it when necessary.

As such, Semplice replaces previous separate pieces of software, which will no longer be under active development and whose continued use is therefore deprecated.

Specifically, the FLAC-tagging features of Semplice are an improved version of what the CCDT ("Classical CD Tagging") program provided. The file merging and splitting capabilities of Semplice were similarly provided in the past by the standalone CAO program ("Composition-at-Once"). Non-distorting volume boosting was also previously available using the MAXV script. Finally, conversion between different audio codecs was previously available using the AUAC ("Absolutely Baching Universal Audio Converter") script. Semplice therefore simplifies the situation: what was previously available using five different products is now available by using just one.

Hence, indeed, the new product's name: semplice is music-speak for "in a simple, straightforward manner". The name, therefore, hopefully makes a lot of sense. The use of raccoons as the product 'icon' is perhaps less obvious, particularly since raccoons are masters of mischief and can hardly be said to be simple, plain and straightforward! I have no excuse except that, admittedly having never actually met a raccoon in real life, I nevertheless can't resist them and find them utterly adorable. I hope you'll find Semplice equally adorable and irresistible to use when trying to manage your digital classical music collection! 🙂 </flimsy-excuse-for-cute-raccoon-images>

2.0 Tagging

Semplice acquires all the tagging skills previously deployed by CCDT (and anywhere on this site I make mention of CCDT, you can drop in Semplice's tagging capabilities as a practically one-for-one replacement). In particular, this means that Semplice follows the tagging guidelines advocated on this website in my 'Axioms of Classical Tagging' article.

Specifically, this means that when you ask to 'set the composer', you'll actually be writing data into the ARTIST tag; when you ask to 'Set the performers', you'll be filling the COMMENT tag with data; and so on. In a nutshell, with program prompts on the left and actual tag names on the right, Semplice adopts this tagging strategy:

  • Composer = ARTIST
  • Composition = ALBUM
  • Performers = COMMENT
  • Genre = GENRE
  • Recording Year = DATE
  • Track Numbers = TRACKNUMBER
  • Track-specific Titles = TITLE

Album Art is unique, in that it is written into a special type of "Vorbis Comment" tag, called a Picture Block. In this way, Semplice ensures album art is embedded within a FLAC file, rather than being kept external to it and only associated with it by its physical location within the same folder.

I should mention, also, that Semplice introduces an ability CCDT never had: to define up to eight 'custom tags', where you get to define what the tag is and what it means. You can, for example, declare Custom Tag 1 to be "General Notes:NOTES"; then a menu will give you an option to enter 'General Notes' and whatever text you type in at that point will be stored in a tag named NOTES. You could similarly declare Custom Tag 2 to be "Musical Key:KEY", and subsequently be prompted to enter a 'Musical Key', with the value supplied being stored in a tag called KEY.

Such custom tags are entirely orthogonal to the Axioms of Classical Tagging: the intent is to let you wax lyrical, without much practical effect! In other words, you are storing data inside your FLACs that hardly any music-playing software known to Mankind will display, use or even be aware of its existence. At least "non-canonical" metadata now has a place to be stored, though!

3.0 Cuesheet Processing

Some music playback software cannot do proper 'gapless' playback. That is, when one track should move, attacca, straight into the next, such players tend to add an audible pause (or worse, an audible click!). The obvious way to get around such a playback limitation is to change your music-playing software! Gapless playback is really a solved problem these days and there simply is no excuse for software that doesn't do it correctly.

The alternative way to work around the problem, however, is to merge all the separate 'tracks' that make up the recording of a complete work into a single file. Then there are no separate, physical tracks to worry about transitioning between in the first place.

Then we come to a philosophical nicety: regardless of the issues of gapless playback, should digital classical music have separate 'tracks' in the first place? Beethoven didn't write Allegro con brioAndante, Allegro, Allegro as four separate pieces or 'tracks'; he wrote Symphony No. 5, and whilst that is certainly comprised of four distinct movements, no one movement should be considered in isolation from the others, nor be ripped from the context of being played alongside the others. There is a case to be made, in fact, that 'tracks' in classical music only really go back to the invention of the CD (and were intended, even so, mainly for the navigation within non-classical music CDs).

It's primarily for such quasi-philosophical reasons that I long ago gave up storing 4 files in a folder called 'Symphony No. 5' and simply "joined" or concatenated the four files ripped from the relevant CD back into a single file, which I term a 'superFLAC'. Within a superFLAC, an embedded cuesheet will describe where each original 'track' started and stopped, along with that track's title. Here, for example, is a FLAC file sitting on my hard disk:

It's a single FLAC that's 166MB big. It claims to be an entire symphony (which it is), but where are all the individual movements of which a symphony is usually comprised? Well, let's open this file up inside a graphical utility (kid3) that can display metadata for a FLAC:

We see the usual assortment of tags associated with a FLAC: a TITLE, an ARTIST, an ALBUM and so on. Here, though, we also see one called CUESHEET. If we click that and ask to Edit it, we see this:

And here we see that there are four movements within this one file: Track 1 starts at the 0th second; Track 2 starts 13 minutes and 44-and-a-bit seconds after that; Track 3 starts 21 minutes and 17 seconds... and so on. The complete description of how to think of this one, physical FLAC file as being comprised of multiple, separate 'source' files is contained within this cuesheet, which is 'embedded' within the FLAC file it describes.

A lot of music playing software knows how to interpret an embedded cuesheet. Here is DeadBeef, a slightly badly-named, but otherwise excellent Linux music player, handling this single FLAC file:

You can look at those separately-listed track titles and see how they have been extracted from the embedded cuesheet I showed you earlier. If you are good at maths, you can also see how those start times contained within the cuesheet have become track durations displayed by DeadBeef: if track 2 starts at the ~13'44'' mark, what must the duration of track 1 have been? Well... that one's not so tricky: maybe 13'44'' or so?! Indeed, DeadBeef shows track 1 having a duration of 13:45 (close enough!). If track 3 starts at 21'17'', with track 2 having started at 13'44'', how long must track 2 have been? Well, 21'17''-13'44'' is 7 minutes, 27 seconds, give or take: DeadBeef shows track 2 with a duration of 7'33'', which is again, close enough. And so on.

The point here is to show you that combining separate physical FLAC files into one 'superFLAC' is non-destructive. The combining process produces an embedded cuesheet which can be used to calculate the per-track characteristics if needed in future.

Semplice is thus able to combine per-track FLACs into per-composition, single-file, superFLACS; but it can also reverse the process, using a cuesheet (either an embedded one or one that has been kept external to the superFLAC itself, as a standalone .cue file) to split a superFLAC back out into it separate per-track FLACs. I personally have needed to reverse the 'track amalgamation' functionality provided by Semplice, but it is perhaps reassuring to know it's there if it is ever required.

This functionality was previously available using the Composition-At-Once (CAO) program. Semplice has not fundamentally altered that functionality at all, but merely adopted it wholesale.

4.0 Audio Processing

4.1 Volume Boosting

Most computer, phone and tablet digital audio uses 'Pulse Code Modulation' or PCM to represent an analogue audio signal in digital form. SACDs ('Super Audio CDs' invented in 1999 and intended as a high-fidelity replacement for the standard audio CD) use "Pulse Density Modulation" (trademarked as 'DSD' or Direct Stream Digital). They are fundamentally very different ways of representing an analogue music signal in digital form -and converting between them is not easy, conceptually or practically. Specifically, the volume of a DSD-encoded signal can, when translated to PCM, peak well above +3dB (decibels) which, in PCM-land, would result in significant audio distortion and 'clipping'.

As a result, most SACDs are mastered with a peak volume level artificially reduced to around 6dB below what an equivalent PCM-mastered audio signal would be -and this results in significantly quieter playback volumes unless you hand-crank up your audio system's volume knob. However, at the point you play a ripped SACD FLAC file on your PC, phone or tablet, you're entirely back into the world of PCM -and it's thus perfectly OK to artificially boost the audio volume in that audio file by around 6dB to get it back to the maximum loudness it would have been produced at, had its entire audio mastering been done in the PCM domain in the first place.

This is what Semplice's Boost volume option does. It analyses all audio files in a folder and finds each one's peak loudness. If a file is significantly quieter than it could safely be, Semplice will offer to boost the volume of the files in that folder by an amount that would take it close to the loudest, non-clipped, non-distorted volume it can be. Importantly, all files within the folder are then boosted by the same amount, so that their relative volumes, each to each other, do not change. Only the absolute volume of the complete set of files is boosted.

By way of example, let's consider four files in a folder. Each is analyzed to have a peak volume (measured in 'negative decibels', where 0 is the loudest a signal can be without distorting) as follows:

  • 01 - Allegro con brio measured at -7.2dB
  • 02 - Andante measured at -13.5dB
  • 03 - Allegro measured at -4.9dB
  • 04 - Allegro measured at -3.8dB

The track with the loudest peak volume is track 4, measured at -3.8dB. If we were to boost that track's volume by 3.3dB, we would take that track's peak volume to -0.5dB (which is as loud as Semplice ever takes a file, just so that the last possibility of introducing clipping or distortion is avoided). We could then apply the same 3.3dB boost to all the other tracks, resulting in peak volumes for the other tracks of -3.9dB, -10.2dB and -1.6dB. Notice that this still leaves track 2 significantly quieter than any other track, and track 3 significantly louder than track 1: again, the relative loudness of each of the tracks as compared to each other hasn't changed, but the absolute volume levels have been boosted by as much as track 4 could take.

In theory, this sort of volume boosting should only ever really be needed for FLACs that have been produced as rips from an SACD, as previously explained. In practice, it turns out to be more useful than that, because CD manufacturers tend to master an entire CD at an 'overall acceptable' loudness value, that then becomes inappropriate if you rip separate works from that one CD (as you should!). A CD that contains both Beethoven's Symphony No. 1 and Symphony No. 5, for example, may have an overall loudness calculated to make listening to the entire CD in one sitting 'acceptable': you don't want a jarring volume shift between the quaintly classical Symphony No. 1 and the dramatic notes of Fate opening the far more roiling and nerve-wracking Symphony No. 5, after all. But if one rips Symphony No. 1 as one 'composition' and Symphony No. 5 as a completely separate composition, then there's no reason at all to have both symphonies playing back with the one 'overall' degree of loudness. Typically in such a situation, I will find the CD has been mastered so that the loud Symphony No. 5 doesn't distort, leaving Symphony No. 1 very quiet -and that can be corrected by getting Semplice to boost Symphony No. 1's volume a little, even though all the music came from a perfectly standard, non-SACD, CD.

Obviously, Semplice's volume-boosting capabilities are 'destructive' in the sense that, by applying a volume boost to a file, you're changing that file, irreversibly. This is why volume boosting is not something to indulge in lightly! I often don't boost unless a significant boost is available: anything less than 2 or 3dB, for example, and I tend not to apply a boost. This is why Semplice will analyze each file it finds in a folder and report to you what possible volume adjustment's it's found -and give you the chance to either apply an adjustment or back out, without having changed anything. It's also why Semplice will ask if you want to delete the original files before going ahead and doing so: by answering 'no' at that point, the originals and the volume-boosted files are both left present in the folder and you can listen to either set at will, until you're happy that the volume boost has done no harm but has, rather, improved matters. You can then delete the originals or the volume-boosted files at your leisure later, by hand.

Semplice's volume-boosting functionality was previously available in the Volume Maximiser (MAXV) script.

4.2 Audio format conversions

Semplice take's its cue from this website's general philosophy, that the "correct" audio format in which to store digital classical music is FLAC, the 'free lossless audio codec'. Tagging can only be applied to FLACs, for example; volume boosting and per-track combining into superFLACs can also only apply to FLACs. But what if the website you purchased a recording from only happens to supply the music as WAVs or APEs (two other lossless formats)? What if you are going for a long drive and wish to pack a lot of music onto a micro-SD card you can plug into your car's audio system: and that audio system only plays MP3s?

For such reasons, Semplice offers the ability to convert between multiple audio formats at will.

As input formats, Semplice can handle the generally-standard FLAC, ALAC, APE, MP3, Ogg, WMA, and WAV formats, plus the special ISO and DSF formats that only apply to files that have been ripped from SACDs.

As output formats, Semplice can handle standard, high-resolution and extreme-high-resolution FLACs, along with ALAC, MP3, Ogg, WMA and WAVs.

You'll note, therefore, that Semplice can only write six formats, but can read nine of them. It makes no sense to write ISOs or DSFs, so their loss as write formats is of no great matter. Semplice's inability to output to APE is perhaps more unfortunate, in that APE is quite a common format and shares FLAC's lossless-ness, so it's more than suitable for classical music. It is, however, an inevitable consequence of APE's closed-source and somewhat proprietary nature: their website, for example, only has software that runs on Windows, so the fact that Semplice can even read APE on a Linux or macOS platform is a bit of a minor miracle!

Please note that Semplice does not protect you from making really daft conversions! If you insist on converting MP3 (a lossy format) into Ogg (another lossy format), Semplice won't stop you -even though compounding audio signal losses is a recipe for a really bad-sounding final result 🙂

When you convert an audio file into a new format, Semplice will give you the option of deleting the source files -but it's up to you whether you take this option, or preserve both sets of files, input and output, on disk, to be sorted out later.

Semplice derives all its audio-converting capabilites from the previous Absolutely Baching Universal Audio Converter (AUAC). However, its ability to read and write ALAC files is entirely new.

4.3 Play Folder Contents

Semplice is not a music player, only a music-file-manager. But once you've tagged things, converted audio formats, combined FLACs into a superFLAC and maybe added a volume boost, you may well want to hear your music before declaring your management activities complete!

Semplice can, therefore, invoke Giocoso, if it's installed, to play the contents of whatever folder-full of music it's been working on.

Giocoso is invoked in Direct Play Mode, meaning that no source database is involved, though the plays can be recorded in a destination database, if one exists and is specified. See the full Giocoso documentation for further details on how Giocoso can be obtained, is installed and works.


[Back to Front Page]