Giocoso and your music collection

1.0 Introduction

There are some fairly obvious things that need to be true before you can successfully use Giocoso as a music player, but it's probably a good idea to spell them out anyway!

First and foremost, you must store your digital music files in the lossless FLAC format. Giocoso only plays FLAC and will not (by design!) play APE, WAV, MP3, OGG or any other digital music format. It was designed to play classical music: it takes the view that classical music needs to be listened to in as high quality as possible. Lossless formats are the only way to do that. It’s also a piece of open source software and therefore was designed to play open source audio formats only: the Free, Lossless Audio Codec seemed to invite itself to the party, given the huge clues in its name! I am aware that there are other open source lossless audio codecs out there (such as ALAC): none are as ubiquitous or as cross-platform as FLAC. FLAC, therefore, it must be!

The second major expectation Giocoso has (and the one that's probably harder to get right!) is that your digital music collection must be well-organised, using appropriate and thoughtfully-constructed physical structures and equally coherent logical metadata tagging. It's this requirement I want to spell out in more detail below.

2.0 The Folder is Key

Giocoso actually only ever plays folders, not files! That is, it visits a physical folder on your hard disk (somehow) and plays whatever FLACs it finds in that folder and calls that a single 'play'. Your music collection must therefore be physically broken up into separate folders, where each folder represents a sensible 'unit of play', which you might generally think of as being a composition (or recording of a composition). If you own a CD of Beethoven's 4th and 5th symphonies, for example, then if you rip all of its tracks into a single folder, Giocoso will play eight movements of a hybrid "Symphony4&5", from beginning to end, without significant pause between any of them. It's probably not what Beethoven intended!

For Giocoso to be able to distinguish between the 4th and 5th Symphonies, they need to be ripped into separate folders on disk.

This paradigm also works the other way round, though: when you buy Wagner's Götterdämmerung, it will probably be shipped to you on four physical CDs -but it's actually a single composition. If you rip each CD into its own physical folder on disk, Giocoso will 'see' them as four separate compositions and can choose to play them in any order, as its randomisation engine kicks in: you may well end up listening to Brnnhilde's immolation before the Norns have even opened proceedings! Here, then, musical common sense requires that all four CDs are ripped into a single physical folder, putting the four bits back together and forming one (enormously-long!) whole music-drama.

Putting it as simply as possible, then: Giocoso thinks a folder is a composition. Your digital music collection needs to be ripped and organised with that simple proposition kept always in mind.

3.0 File Numbering and Naming determines play order

Another aspect of your physical music collection is important to get right, too: having visited a folder of FLACs, Giocoso will play them in file name order. This can be an issue unless you structure your file names correctly! For example, Beethoven's Symphony No. 5 has four movements, ordered like so:

  • Allegro con brio
  • Andante con moto
  • Scherzo: Allegro
  • Allegro – Presto

If you ripped them from a CD and gave each track the name of the corresponding movement, Giocoso will play those four files in this order:

  • Allegro – Presto
  • Allegro con brio
  • Andante con moto
  • Scherzo: Allegro

...which means you get the last movement before the first! That's simply because that's how the movement titles (and hence the file names) sort alphabetically. It's also clearly a stupid order in which to play things! That's why Giocoso needs you to have prefixed all your physical file names with a 'track number' to mandate a correct play-order, because in alphabetical sorting, 1 comes before 2 and 2 comes before 3 and so on. If you number your symphony files appropriately, therefore, then 1 - Allegro con brio will sort before 2 - Andante con moto... and all the movements of Beethoven's symphony will be played in the right order!

Now, it's probably true that you tag your music as you rip it with TRACKNUMBER metadata, and that's fine... but Giocoso is paying attention to the physical file name when it sorts things into a play order, not their metadata track number tags. Logical tagging is not enough, therefore: it must 'bleed through' to physical file naming. If your TRACKNUMBER tag is 3, then the physical file name must be "3 - <something>", otherwise the play order will not be correct.

Take note, too, that whilst humans are very good at sorting the numbers 1,2,3,4,5 ... 10,11,12 ... 19,20,21 into the correct sequence, computers are absolutely lousy at doing so! Here's a small example of what I'm talking about:

If these were 25 tracks from an oratorio of some sort, we'd be playing track 10 before track 11 well enough: but we'd also be playing track 19 before track 1! Track 2 doesn't even get a look-in until after the last track has played. The reason for this apparently bonkers sort order is simply that the computer has sorted all things starting with 1 together, then all things starting with 2, before grouping all the 3s together and so on. Within each grouping, file names are sort-of right-justified, resulting in:


...and the blank at the start of the '1.txt' name is being compared to the '1' at the start of the '10.txt' name. Alphabetically, blanks always come last: hence file 1.txt is sorted after the last multi-digit filename that starts with 1.

Which is a long and tedious way of telling you that Giocoso expects your physical file numbering to be done with consistent lengths. If your track numbers within a folder are of inconsistent lengths, the playback sort-order will be wrong. Now, you only need to be consistent within a folder, since it's only a single folder that Giocoso is playing from at any given moment. If you've got a three-movement concerto, for example, then it's fine to use physical track numbers 1, 2 and 3. It's when you've got a 40-track oratorio that you must always remember to use track numbers 01, 02, 03 and so on. For the sake of simplicity, I always number my tracks using consistent two digit track numbers, even when (as in the case of the concerto) it's not strictly needed: but one, consistent approach to everything is easier to get right than remembering different ways of doing things depending on context!

4.0 Giocoso and Tags

Giocoso uses metadata tags stored within a music file to display information about the music it's playing at any time. It also uses it as the basis of selecting which music should get played. When you ask it to play 'Haydn masses, please'... it will need to know which tag tells it the composer name and which the composition type. Store different information in the tags than Giocoso expects and you will not be able to select music correctly... and the playback display will look weird, too!

For the sake of simplicity, here are the tags Giocoso uses and what it expects to find in them:

  • ARTIST = Composer name
  • COMMENT = Performing artists (the conductor, the orchestra, the choir, etc)
  • GENRE = The type of music being played (symphony, choral work, orchestral work, concerto and so on)
  • PERFORMER = The conductor or other principle artist making this recording of a composition different from any other
  • ALBUM = The Extended Composition name (e.g., "Symphony No. 5", plus a recording year and the principal artist). So, for example, 'Symphony No. 5 (Karajan - 1966)"

The logic behind this has been explained by me in other articles, principally my Axioms of Classical Music Tagging article. Specifically, the concept of an 'extended composition name' is more fully explained in my article on the Primary Keys to Classical Music.

Some people always complain that 'album artist' should be used to list the performers, not the comment tag; or that the composer's name should be stored in the COMPOSER tag rather than the ARTIST one. I've addressed these points in the other articles I mention, but I'll only say here that Giocoso is written the way it is written, and this is what it expects by way of information stored in each tag. You are free to disagree on whatever grounds you care to think up, but Giocoso will still expect things to be the way I've just outlined!

5.0 Ownership

The last point I'd make about Giocoso's expectations of your music collection is simply this: that you own it! That is, Giocoso plays physical FLAC files off a hard disk; it does not work to play streams of music acquired from assorted 'cloud providers'. If your digital music collection consists of paying the likes of Spotify or Qobuz to access the music they own, Giocoso can't be of any use to you. It has no ability to work with or interact with such services. It's much more old-school than that: it assumes that you take your classical music seriously enough that you've invested the time, money and effort required to own it, curate it and organise it properly.

6.0 Conclusion

Summing all the above up, putting it as simply as possible: Giocoso expects you to have a physical collection of FLAC files, organised on a 'composition=folder' basis and with separate files within a folder having consistent file numbers as the leading characters of their file names. It will use metadata stored within those FLAC files for display and searching purposes, but it requires certain data to be stored within certain tags, with little room for flexibility on the matter!

[Back to Front Page]