What is Giocoso?

1.0 What is Giocoso?

Giocoso is a gapless, trackless, optionally-randomising, optionally-scrobbling command-line FLAC player, intended primarily for the playback of digital classical music, on Windows, Mac and Linux.

Which is a bit of a mouthfull! So let's break that down a bit:

  • Gapless: Giocoso plays one FLAC file after another without detectable pause between them, so if you have three movements of a string quartet that are supposed to flow into each other without a break, Giocoso will play that as a continuous stream of music without silence between the movements. Most media players these days can do 'gapless playback', but some do it better than others. Giocoso does it properly.
  • Trackless: Giocoso plays entire folders of music as though they were one composition (which, if you follow my axioms of classical tagging, they should be!) If a "Symphony No. 5" folder happens to contain four files, because the CD they were ripped from regarded the four movements of the symphony as separately-indexed tracks, Giocoso doesn't care: it simply plays all four files in sequence before declaring the symphony as a whole complete. No other music players I can think of behave quite like this! The reasoning is simply that you don't go to a classical music concert and walk out of the concerto after just the first movement -or walk in to it after the first two movements have played just so you can listen to the nice tune in the third movement! Giocoso pays classical music the respect it deserves: composers wrote entire compositions, not 'tracks' or 'movements' that can be ripped from their context and played standalone.
  • Optionally Randomising: Giocoso can be instructed to play specific pieces of music (for example, 'play Peter Grimes' or 'play Fantasia on a Theme of Thomas Tallis'). But it can also be asked to 'play a choral work', or 'play something by Beethoven': in which case, the choice of which specific choral work or Beethoven piece will be a matter of random chance. In this randomised-play mode, you can supply additional filters so that the 'degree of freedom of choice' the randomiser will exercise can be limited: for example, 'Play me Choral works by Prokofiev that last between 30 and 50 minutes'.
  • Optionally Scrobbling: Like many other digital music players, Giocoso can report to Last.fm what music you've listened to, thereby building up a detailed history of your listening habits which is Internet-accessible. For 'reasons' that needn't detain us, this 'reporting to Last.fm' process is generally called 'scrobbling'. Scrobbling can be a useful way to identifying listening patterns which, once recognised, can inform your future music purchases or listening choices. By default, Giocoso does not scrobble and instead builds up its own, local, record of listening habits -but if scrobbling is useful to you, Giocoso has no problem doing it.
  • Command Line: Giocoso has been written to get out of the way and not consume too many computing resources. There is thus no fancy graphical user interface (GUI), with mouse-clickable menus and so on. Everything is run in a terminal (command prompt) session, with simple commands you type in. As a concession to making things look 'pretty', Giocoso will by default display the album art associated with the composition it's playing at any given time -but even that can be turned off!
  • FLAC Player: Classical music deserves being listened to in excellent audio quality. This means that playing music files which are encoded as MP3, OGG or other lossy audio formats, where some of the music signal is thrown away in order to achieve smaller file sizes on disk, is not of any interest to Giocoso at all. It cannot see such files, much less play them. The only audio format that Giocoso sees, understands and plays is FLAC -the Free Lossless Audio Codec. There are other lossless audio formats in existence of course, such as lossless WMA or the Apple Lossless Audioc Codec (ALAC): but these are or were proprietary, generally tied to a specific operating system platform (WMA=Windows, ALAC=Mac, for example) and may be patent-encumbered. Only FLAC fits the bill, as its name suggests, of being open source, freely available on all platforms, and widely supported.
  • Classical Music Player: To be honest, Giocoso plays FLACs and couldn't care whether a particular FLAC was composed by Johann Sebastian Bach or Madonna: it makes neither moral nor artistic judgments in that regard! There's nothing intrinsically that makes Giocoso only a classical music player, in other words. However, it has been deliberately designed to talk the language of composers and compositions, not albums and tracks -so the music it is most tailored to play correctly is classical music that has been properly tagged with metadata describing composers, performers, compositions and movement titles. The fact that it plays gaplessly and tracklessly also means its playback model most closely resembles that of the classical music concert hall.
  • Windows, Mac and Linux: Giocoso is fundamentally merely a Bash shell script, orchestrating the work of other programs such as metaflac, ImageMagick and ffmpeg. Any computing platform that can run Bash and those extra programs is therefore a suitable platform on which to run Giocoso. Windows 10 and up provides the Windows Subsystem for Linux that allows it to run full-fat Linux 'within' the standard Windows desktop paradigm, so can be persuaded to run Giocoso with little difficulty these days. Apple's macOS operating system is, one way or another, a sort-of version of BSD, a Unix derivative: so things like Bash, ffmpeg and ImageMagick are almost as much native applications as they are on Linux. Giocoso therefore has no problems at all running on any version of macOS from Sierra upwards.

Perhaps a simpler description of Giocoso after all of that is: it's a personal 'radio station' for classical music, capable of playing a 'wall' of constantly-varied classical music on a wide variety of platforms and PCs.

2.0 Why Giocoso?

Linux, Windows and Mac are not exactly short of software for playing digital music files! From programs such as VLC, Foobar2000, iTunes or the weirdly-named DeaDBeef, there is a media player to cater for, apparently, everyone's whims and wishes. So why bother writing a new one? Because none of the media players on any of the platforms I've mentioned were, I think, designed with classical music in mind and thus none of them were entirely 'right' for me and my classically-inspired requirements. Some of these requirements I've already touched on in Section 1, but they perhaps bear repeating a little here!

2.1 Tracks

Every software music player I know of displays and works with 'tracks'. Here's DeaDBeef playing some Brahms, for example:

Is the display here of any usefulness? To some extent, yes: it's good to know that Brahm's Symphony No. 3 consists of four movements, and it's nice to know each movement's general tempo marking. The trouble is that the display invites 'selective clicking' on the individual tracks. Now, it's your music and you listen to what you like, I guess... but to my mind, Brahms wrote a symphony, not four separate 'things' which together make a symphony. So to click on track 3 there and just play the Poco allegretto would be doing Brahms a disservice. It is, of course, true that Brahms is long-since dead and therefore incapable of caring about what you choose to do in the privacy of your music listening room, so you are free to listen how you like... but getting into bad classical music listening habits is a bad thing, regardless of whether anyone is taking notice of you doing it! If you get into the habit of only playing 'bits' of a larger work in the privacy of your own room, you're going to be in for a surprise when you finally make it to a live concert! For myself, I think the discipline of being 'made' to listen to entire symphonies, masses and concertos in one sitting is a good musical habit to get into. For British radio listeners, it's the equivalent of learning to listen to Radio 3 instead of Classic.fm!

If you take your classical music even slightly seriously, in other words, you do not want to be distracted or tempted by the existence of 'tracks' -and that meant I needed a trackless music player.

2.2 Randomising

Over the years, I have got into the bad habit of over-playing some composers and under-playing others. There's nothing morally wrong with doing that! We have favourites, of course, and there's no harm in indulging ourselves with our favourites, whether that's favourite food, favourite drinks or favourite music! But over-doing the favouritism means you miss out on a chance to experience new things and -perhaps- develop new favourites. For a wider musical experience, in other words, I wanted a music player that would make me listen to composers who were not on my list of favourites. Essentially, that meant taking the choice of what to listen to out of my hands -and for that, I needed a music player that would select to play compositions at random for me, regardless of who had written it. Giocoso's ability to randomise its plays was thus a crucial and key reason for writing it in the first place.

To be honest, a randomising music player essentially becomes your own private classical music radio station: you can kick off plays of things at breakfast and have an ever-changing, always-fresh stream of music broadcast to your ears for the rest of the day without involving yourself in the choice of that play list at all. In the year or so since I first came up with this idea, Giocoso has transformed my classical music habits in ways which I would commend to anyone who cares about classical music -and in ways which I don't know any other software music player is capable of doing.

2.3 Composition Scrobbling

Most software music players these days have the ability to transmit information about what you play to Last.fm (the process known as 'scrobbling'), so Giocoso is nothing very special in being able to do the same thing. The problem is that all those other music players are track-based, and therefore will transmit 'he played the first movement of Beethoven's fifth' the moment that first movement has finished playing. After several more minutes, they will transmit 'he's just finished playing the second movement'. After more still, it will be 'he's just finished the third movement...' and so on. Which is fine... so long as you complete all four movements! But if you walk off to cook your lunch after the third movement... can you count the playing of ¾ of a symphony as a 'play' that should be recorded?

In my view, no. If you listen to a complete work, fine: that's a 'play' that 'counts'. But walk out half way (or three-quarters the way) through, and you can't honestly say you've listened to the symphony (or the concerto, or whatever it is). So telling Last.fm you have listened to bits of a symphony, as each movement completes, seems a bit daft to me.

In short, though I wanted a music player that would scrobble, which most players would be able to do, I wanted one that would scrobble only when a complete composition had been listened to... which no other player I'm aware of knows how to do. But I wrote Giocoso to work in exactly this way, since that's what I believe respect for the classical music paradigm requires.

2.4 Work with the Metadata

Most other software music players will happily display the metadata tags you embed in your FLAC files when first ripping them from CD, but few seem to be able to work with that metadata. In other words, though I've carefully tagged all my music with composer, composition and performer names, I don't know of any software music player that will let me say 'please find me something conducted by Bernstein' or 'play me a choral work composed by Benjamin Britten'. Certainly, most players will let you search for words such as 'Bernstein' -but you are as likely to end up with works composed by Bernstein as those composed by others but conducted by him. Again, most players will let you search for 'Benjamin Britten', but they will end up displaying Elgar's Dream of Gerontius, because Britten conducted it; or Peter Grimes, because Britten composed it... but searching by Genre and Composer? Not many players easily let you do that sort of 'combo search'.

I wanted a music player, in other words, that understood how I'd tagged my music and would work with that tagging strategy to enable meaningful musical discovery possible. Displaying this data is usually much less important to me (my ears can tell me whether I'm listening to Bach or Schönberg without needing to see it displayed on screen!) than being able to use it for easy and meaningful filtering and searching. Giocoso puts metadata filtering front-and-centre in what it does and how it does it and puts displaying data at the bottom of its list of priorities!

2.5 Statistics

I am quite fanatical about keeping track of what I've listened to, who my most-listened-to composers are, and so on. Few music players I'm familiar with allow you to build up readily-accessible statistics about your listening habits. Transmitting your play history to Last.fm can certainly help in this regard -but some people might not be too keen on sharing their play histories with the rest of the world in the way that scrobbling does! I therefore wanted a music player that would build up a local play history that could be interrogated and used for analysis of a flexible and extensible nature. As it happens, I then decided to publish this statistical data to my own website in ways which allow easy, graphical visualisation of what I've been listening to (see any of the links under the 'Listening Analysis' menu option at the top of this very page, for example).

I certainly realise that not every classical music listener is going to find this sort of data helpful or even interesting -but I wrote Giocoso to at least provide this data to those for whom it might prove useful.

2.6 Summary

Given all of the above points, the short version is simply this: none of the software music players on Linux, Windows or Mac with which I was familiar met all of these specific needs which I was aware I had -and that's why Giocoso exists! If any of these points ring a bell with you, then you're definitely the target market for Giocoso -and I think you'll find it useful, too.

3.0 Is Giocoso for Everyone?

With all the above in mind, I hope it's clear that Giocoso isn't intended as a general purpose music player that everyone will find appropriate! Whilst music can be pure entertainment, to be sampled and dabbled in, like a plate of petits fours, Giocoso doesn't expect you to be listening to music that way! It plays without interruption; it doesn't display pretty visualizations on your computer screen whilst it's doing it; it puts sound quality above hard disk space; it expects you to have tagged your music files up 'properly'; and it expects you to own your music, rather than be streaming it (Giocoso, in fact, has no streaming capabilities at all, except over a local network). It doesn't have to be classical music that you're listening to, but Giocoso was written expecting it to be. If you're the kind of listener that loves classical and jazz, for example, I think you'll find Giocoso a good fit for playing the classical part of your music collection... but I have no idea how well or ill it works with Jazz. I am pretty certain, however, that it won't play well with "pop music", however that might be defined.

Fundamentally, Giocoso is written in the belief that not all music is nails, so not all music players should be hammers! It is a tool tailored for playing certain kinds of music in a particular kind of way. If you don't fit its model, it's not going to fit your requirements, therefore.

4.0 What's with the name?

As a classical music fan, you will probably already know that the word giocoso is a tempo indication that means ‘lively, humorous, joyful’ or, particularly, ‘playful’. I couldn’t think of a better name for something designed to ‘play’ my music collection in a way that brings me joy and makes music choices for me that are always fresh and lively.

On a slightly less cerebral note, a random search for ‘giocoso’ one day brought forth pictures of a party-mode cat. Adoring cats almost as much as I adore music (and wine!), I thought the pairing was ideal.

Joe Playful (and his feline brethren) are thus the official mascots of Giocoso. They will be used relentlessly in all future documentation and news releases about the program!

Meanwhile, regardless of why the name came about, draw inspiration from the party-loving cats and feel free to use Giocoso to listen to your classical music collection in new, insightful and, above all, playful ways!


[Back to Front Page]