SuperFLACs

1.0 Introduction

Back at the beginning of January 2021, I wrote a blog post in which I deplored the tendency of classical music to be presented (on CDs, the radio and so on) as a series of 'tracks', rather than as a 'whole composition'. I pointed out back then that 78s didn't come with 'tracks' (though they were short-playing enough probably not to need any!), and that quite a lot of 33⅓ LPs also didn't. Tracks didn't really become a 'thing' until the invention of the CD -and they are totally inappropriate for classical music, anyway.

By this I mean: Beethoven didn't write four separate 'things' he threw together to make a symphony. He wrote a single symphony that happens to be comprised of four distinct, but related, movements. Accordingly, I would want my music collection to have a single 'item' for 'Symphony No. 5'. I might well be cognizant of the fact that it has 'sections' within it with names such as 'Allegro con brio' or 'Andante con moto', whose existence might be acknowledged by some piece of logical metadata; but I certainly wouldn't want to organise my physical music structures around the existence of movements. It's a bit like quarks in physics: they have no separate existence and cannot (should not, in the case of music!) be accessible individually.

Apart from such 'metaphysical' opinions about the nature of classical music (which you might well disagree with!), there are practical matters to deal with, too. Computers store digital music on some sort of disk storage; disks require a file system; most file systems perform better when you present them with a few large files, rather than with lots of small ones. Therefore, turning a 4-track symphony into a single file called 'Symphony No. 5' is better for your file system than making it store 4 separate files, one per movement, on it. In the case of a Handel oratorio, you might even have over 80 or 90 separate 'tracks' on a CD, so there the advantage into storing the work as a single 'work' and not 90 separate sub-works is even more pronounced.

Another practical reason for thinking in this way is that some digital music players cannot do 'gapless playback', where one movement is supposed to play seamlessly after the previous one ends, in attacca style. I discussed this in some detail in an old review, containing audio examples, of Windows media players. If you present such a player with a single FLAC which is comprised of all the music that the four separate tracks on a CD contained, then there are no transitions between different digital files to be managed -and thus even players incapable of doing proper gapless playback now cope just fine, because they've only got a single file to worry about.

It is for these various reasons that Semplice offers you the ability to combine separate per-track FLACs into single per-composition 'SuperFLACs'. The name 'SuperFLAC' is one I kind of cooked up, I'm afraid, and has no real 'validity' outside these pages! Semplice uses the term to mean 'a single large FLAC file that contains concatenated audio from multiple source files, with an embedded cuesheet that describes where each source file began and ended'. Four files, each representing different movements of a symphony, are thus combined into a single file which contains the music for the entire symphony.

Semplice also offers you the chance to split a SuperFLAC back out into its component per-track files. To do this, it simply reads the embedded cuesheet (which describes when each original source file stopped and started) and uses the stop/start times to cut the SuperFLAC up into smaller pieces. A single file containing all the music for an entire symphony can thus be broken out into the four files, each one representing a separate movement, which were on the original source CD.

Finally,if you buy your digital music in the form of FLAC downloads, you may occasionally come across vendors that supply the download in the form of a single giant FLAC, but with an accompanying external cuesheet which describes where each component 'track' stops and starts within the single file. Semplice therefore also has the ability to split a single FLAC out into component tracks based on the contents of an external cuesheet.

All these capabilities are made available under the 'Cuesheet Processing' options in Semplice, accessible by taking menu options 11, 12 or 13 respectively. You do not need to have used any other Semplice menu options (with one exception which I'll describe in Section 2 below, in the comments about the names of SuperFLACs) before using any of these Cuesheet options, but you do need to have launched Semplice from within a folder full of FLAC files in the first place.

2.0 Creating SuperFLACs

I'll explain Semplice's way of creating single-file SuperFLACs with a worked example. Let's start with the contents of the folder you see here:

We see the folder consists of music belonging to a single composition (Tchaikovsky's 6th symphony), and has been ripped from a CD in the form of four separate tracks or movements. Semplice is going to be asked to combine these four individual files into a single SuperFLAC that contains all the music for the symphony in just one file -but with an embedded cuesheet that describes when each movement within the single file stops and starts.

I therefore launch Semplice from within this folder and take menu option 11: Merge tracks into SuperFLAC. The program immediately responds like so:

Semplice begins the merge process by 'cleaning tags' for each of the per-track files. That simply means erasing tags it doesn't recognise as 'canonical' tags, which some vendors include in their downloads (such as the record company name, which is of zero use to anyone, really!) Once that process completes (it doesn't take very long), the program displays the following message:

If you were to investigate the folder contents at this point, you'd see a new FLAC file has been created and its file size will progressively get bigger and bigger, as the SuperFLAC is generated. This process can take a while, if there are lots of files to concatenate and/or if they are high-resolution FLACs, rather than standard CD Audio ones. When the merging process completes, the program will display this message:

It's important to note that merging per-track FLACs into a single-work SuperFLAC is actually a non-destructive process up to this point: the original FLACs still persist on disk at this point and it's perfectly legitimate to answer 'n' at this point (it's the default option, after all). That means you want the originals and the SuperFLAC to both be present on disk, which gives you a chance to listen to both and satisfy yourself that the merge process hasn't screwed with the audio signal in any way. Once you've created a few dozen SuperFLACs, however, I expect you'll be quite comfortable with the idea of deleting the source per-track FLACs at this point (meaning answering 'y').

Before I do that, however, let's just look at what the merge process has done to our files at this point:

The first thing you'll spot is that there are now five FLACs in the folder, not four! The new file is the one with a slightly peculiar name sitting at the top of the file list, with a size of 672.3MB: that's your SuperFLAC. Apart from that file having the word 'superflac' as part of its file name, the file size should be a clue: if you add up the sizes of each of the original per-track FLACs, you get the size of the new SuperFLAC, give or take a bit of rounding. In this case,  2722.6+113.5+131.6+154.7=672.4, which is pretty close to the displayed 672.3MiB.

The specific SuperFLAC's file name you see here, however, is a bit of a problem. It lacks any meaningful data about what work it's supposed to be a FLAC of -and that's because I haven't correctly tagged my source files with meaningful ALBUM tags before attempting the merge. This was the exception I referred to at the end of the introduction to this article.

The point is that Semplice has to give a valid file name to the SuperFLACs it creates and, in order to determine what that file name should be, it relies on the ALBUM tag containing something useful it can use. If the ALBUM tag is blank, Semplice is going to end up creating a SuperFLAC with a mostly blank name, too! Here, for example, is the state of tagging for the four original files I started with:

As you can soon tell, these files don't actually contain any tagging data at all!

So, I'm going to answer 'N' to the question Semplice asked me above about deleting the source files and then I'm going to delete the SuperFLAC it has already created, using my file manager. I'm then going to use Semplice's option 2 to at least assign a composition name to these source FLACs, like so:

This time, you can see the file has a proper ALBUM tag. So now, I'll re-perform the Semplice Option 11 merge process and I'll again stop at the point where Semplice asks me if I'd like to delete the source files:

This time, we again see five FLACs, not four -but now the SuperFLAC is sitting at the end of the file listing. This time, its file name is -correctly- the name of the composition (as derived from the ALBUM tag), plus the '-superflac' suffix we've seen before.

I'll finish things off in Semplice by finally answering 'y'es to the question about wanting to delete the source files:

 

As you can see, the folder now only contains one file, and its size tells you it's the SuperFLAC -but the '-superflac' suffix has been removed from its name. SuperFLACs, therefore, end up being named exactly the same as the ALBUM tag, which is why you must tag your source FLACs with at least the ALBUM name before you can meaningfully create a SuperFLAC from them.

Incidentally, if you explore the tags associated with the SuperFLAC in a tool such as Kid3, you'll see this sort of thing:

Note that the SuperFLAC's TITLE tag has been set to be the same as the ALBUM one. Also note the existence of a tag called CUESHEET: this is the 'embedded cuesheet' I mentioned earlier. If we click on it and select the option to view or Edit it, you'll see this sort of thing:

This is simply a bit of text which tells you where each of the component tracks that are now 'inside' the SuperFLAC begin and end. Track 1 starts at 0, for example and lasts until Track 2 starts at 19:21:21, meaning that we know Track 1 lasts 19-and-a-bit minutes. Track 2 will play until Track 3 starts at 27:19:14, so we know that Track 2 is about 8 minutes long (27-19), and so on. Some media players can use these embedded cuesheets in real time to display 'track data', even though they are actually playing a single FLAC file. Here, for example, is what the Linux DeaDBeef player makes of my new SuperFLAC:

A lot of the metadata is missing here, of course, because it was never supplied for the original files! The fact that 'artist' is unknown, therefore, is not unsurprising. The original files never had per-track TITLE tags either, so the fact that all 'titles' are here displayed merely as the ALBUM tag value should also be no surprise. Had that metadata been supplied before merging the source files, it would be showing up here. The main point to grasp, though, is simply that a single FLAC file can still be interpreted as multiple 'virtual FLAC files' by appropriate music players, provided only that a cuesheet describes the 'contents' of the single FLAC -and that Semplice creates such an embedded cuesheet for you when it goes through the merge process.

3.0 A Better Worked Example!

I thought I'd better show you that if your metadata is correct before you try creating SuperFLACs, you tend to end up with better results 🙂

I'm still working with the same four files as before, but these time, I have tagged them up properly to begin with:

Here, you'll note that proper ARTIST, TITLE, ALBUM, COMMENT and GENRE tags have been applied to the individual, per-track FLACs -and that they've even been tagged with appropriate embedded JPG album art.

So, now let me merge these files once more, using Semplice's Option 11, and delete the source files when prompted:

Once again, I'm using Kid3 to display the CUESHEET tag for the resulting SuperFLAC -and this time, it's got a lot more information in it than before. The tracks have TITLEs; the ARTIST and PERFORMER details are embedded within the cuesheet too. When DeaDBeef plays this SuperFLAC, the results are accordingly much nicer than before, too:

This time, we get to see individual track titles listed, along with the album art, plus proper Artist/Album data. The lesson to learn here is this: though you don't need to take any other Semplice options before creating SuperFLACs, you are strongly advised to correctly tag your source, per-track, FLACs before merging them into a SuperFLAC.

4.0 Splitting SuperFLACs

Having experimented with SuperFLACs, you may decide that you don't particularly like them and wish to reverse the merging process that created them. That's not a problem for Semplice: its Option 12 will read the cuesheet embedded within a SuperFLAC and use the track information it contains to split the parent SuperFLAC into its component per-track equivalents.

Let's start, once more, with this state of affairs:

We start with just the single, 732MB SuperFLAC we created in the previous section (plus a booklet PDF, which makes no difference to anything that's about to follow). If I launch Semplice from within this folder and take menu Option 12, this happens:

That's really the only thing that happens, too! The little spinner will rotate furiously for some minutes. If you are checking the contents of the folder in your file manager as it works, you will see assorted working files  get created from time to time, but otherwise, there's not a lot of indication of what's going on. When Semplice returns to the main menu, however, you know the splitting process has completed and you can view the results in your file manager, like so:

You'll notice that four new FLACs have been created -each one properly named (and tagged, even with album art), and each representing one of the movements of the symphony that were originally merged into the SuperFLAC. You'll also note that the SuperFLAC has not been deleted. Semplice tends to want to do things in a non-destructive manner, so it has created new files for you, but it won't go around deleting anything irreversibly. Having satisfied your ears that the split files are a faithful representation of the symphony, it's up to you to delete the SuperFLAC using standard file manager tools and techniques.

5.0 Splitting with External Cuesheets

Semplice's Option 12 only works on FLACs that contain an embedded cuesheet. You may, however, encounter single-file FLACs supplied by a vendor with an accompanying external cuesheet -basically, a simple text file that sits in the same folder as the FLAC it describes, but as a separate physical file. This is a common situation, for example, when you rip CDs using the Windows Exact Audio Copy program, in its rip to  IMG mode: EAC produces a single-file WAV (which you'd need to convert to a FLAC, using Semplice's Option 15) together with an external cuesheet.

Here, for example, are the results of a recent IMG rip of a CD I did with EAC:

In the background, you can see just two files physically exist: a 'Nicolai Miaskovsky - Symphony No. 6.cue' (the cuesheet) and a 'Nicolai Miaskovsky - Symphony No. 6.wav (the music file). I've also opened the cuesheet in a text editor in the foreground, so you can see it contains all sorts of details about the composer, the album name and so on -but nothing at all about the track titles (because EAC makes it quite hard to add those in when ripping!). Each track has a start time (called an 'Index'), so you can interpret the single WAV into its constituent 'virtual tracks' if needed.

Anyway: Semplice's new job is to split this single WAV out into seperate per-track FLACs, using that external cuesheet. However, it cannot split WAVs, only FLACs -so, before we can split the file, we need to convert it. Taking Option 15 from Semplice's main menu lets us then select first Option 6 (WAV), then Option 1 (FLAC). A few moments of processing later, the file manager shows this:

So now there's a FLAC as well as the WAV: again, we see that Semplice is always careful to be non-destructive, wherever possible. It creates a new FLAC but does not destroy the source WAV: that's a manual job for you to do, using your file manager, when you're ready to commit to doing it!

With a FLAC and a .cue file present in the one folder, it's now possible to take Semplice's Option 13 to split the FLAC:


There's not a lot to look at as the split takes place: the spinner will spin and then eventually Semplice will simply re-display its main menu. That's the cue that the job has finished and that it's time to go check the results in the file manager:

Now we see five new tracks (with bland, anonymous names -because the cuesheet didn't mention track titles. Had it done so, the files would have inherited those titles as their file names). The source WAV and FLAC both persist: they can be deleted by you, manually, when you're ready to do so.

The unnamed per-track FLACs can now be tagged and renamed using Semplice's Options 1 to 9, of course, to turn them into something you'd want to add to your music collection. Once they've been tagged up properly, you could even take Semplice's Option 11 once more to turn them back into a proper single-file SuperFLAC, with embedded cuesheet (though if you've gone to the trouble of splitting an IMG rip, I rather expect you wouldn't want to go back that way again!)

6.0 Conclusion

I hope the above has shown you that there are good technical reasons for minimising the number of music files you store on a file system and that there are good 'ideological' reasons for wanting compositions stored as single units which you have to listen to completely, rather than as separate 'bits' which you can pick-and-choose to listen to. To accommodate the need for turning per-track rips into per-composition single file SuperFLACs, Semplice's Option 11 makes merging FLACs together a painless, non-destructive process. The only definitive requirement before creating SuperFLACs is that your source files are tagged with at least an ALBUM tag: that will be used to name the resulting SuperFLAC.

Semplice also provides the ability to split single-file FLACs back out into per-track FLACs, regardless of whether the single-FLAC's 'descriptor' cuesheet is embedded within itself or is stored as an external file. All file-splitting options are, again, non-destructive.

You may decide never to bother with SuperFLACs and cuesheets, but should you wish to do so, the capabilities are definitely there.


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