Giocoso Playing across a Network

1.0 Introduction

This is a little bit out-of-scope for a set of documentation articles about how to install and use Giocoso, but I wanted the chance to document what I think is a really cool way to use Giocoso: to have it run on a small PC somewhere inconspicuous (in my case, it's the loft, and it's a Raspberry Pi 4) and send its audio signal across the home network to my desktop PC, which happens to be hooked up to a relatively decent set of audio gear and speakers.

To be fair, it's not really Giocoso that's able to do this (which is why this is a little out of scope!): it's actually the PulseAudio sound system, which has network playback built-in (rather as x11 has the ability to send graphical data across a network). All Giocoso does is to hook in to these PulseAudio features... and exploit them, mercilessly! [...] 

Continue Reading

The Giocoso Program Display

1.0 Introduction

Giocoso's main program display, when you finally get it running, consists of three distinct 'areas', as follows:

The particular colours displayed for the text used in each area will vary, depending on your choice of terminal profile colours (here, I'm using 'Blue on Black', which is why all the horizontal lines look blue) and your choice of Giocoso colour scheme with the --displaycolour runtime parameter, or the DISPLAYCOLOR persistent configuration file parameter. Here, I'm using the default, 'newclassic' scheme which attempts to impart a bit of meaning into the display by its choices of colour: green is just boilerplate; blue is persistent information that depends on inputs you have provided when running Giocoso; yellow is dynamic information that changes depending on what Giocoso is playing or doing at any given time; white is just for text labels. [...] 

Continue Reading

Upgrading Giocoso

1.0 Introduction

Upgrading to Giocoso version 2 from any previous Giocoso version 1 installation uses the same --checkver runtime parameter as you'd have used when moving between different point releases of Giocoso version 1: it's extremely easy, non-destructive and requires mere moments to complete.

In this article, I'll start with a Linux Lite installation of Giocoso 1.13 (the last version of Giocoso version 1) and show you how I end up with a fully-functioning Giocoso version 2. I'll start by showing you that Giocoso version 1 is running, via a database, thanks to the command giocoso --dbname=main, perfectly happily: [...] 

Continue Reading

Licensing and Debugging

1.0 License (or Licence)

If you launch Giocoso with the --license (or --licence) runtime parameter, the program will fetch and display the GNU General Public Licence Version 2 under which Giocoso is licensed. All other runtime parameters you might accidentally (or otherwise!) throw onto the command line are silently ignored. Thus, this command:

giocoso --license [...] 

Continue Reading

Database Play Mode

1.0 Introduction

Giocoso runs in two basic 'playback modes': Direct Play Mode, where you tell Giocoso what music exists and where it can be found on disk; and Database Play Mode, where a database persistently stores details of what music exists and where it can be found on disk.

The advantage of using a database as the 'source' of information about what can be played is that Giocoso can select from its data in all sorts of different ways. If you want to listen to music that lasts longer than 20 minutes but less than 30 minutes, Giocoso can do that -because the database stores the duration of each piece of music it knows about. If you want to listen to 'some Beethoven', that's fine too: the database stores the composer name associated with each recording it knows about. A database, in other words, lets you filter and select music to be played via all sorts of qualities intrinsic to the music files themselves. Giocoso can even go one step further: it is able to pick something from the database entirely at random. That will mean the music you listen to will be unexpected -and hopefully, more 'fresh' and enjoyable as a result. [...] 

Continue Reading

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! [...] 

Continue Reading

Giocoso Frequently Asked Questions

1. Why doesn't Giocoso play anything other than FLAC? What if I want to play MP3s?

There are two answers to this question, really. First: Giocoso is a classical music player, and classical music deserves to be taken seriously; which in turn means listening to it in the best possible quality. Therefore, the audio codec in which you store your digital music ought to be lossless, in my opinion.

Now: there are several lossless codecs out there I could have supported. Lossless WMA is Microsoft-proprietary and I have no idea whether it's on life-support or will remain properly supported and developed by Microsoft in the years ahead. Apple Lossless (ALAC) used to be Apple-proprietary, but has been open source and royalty-free since 2011... but the clue is the name: it's mostly going to be used on Apple hardware and Giocoso is primarily a Linux player. That doesn't leave a whole lot of lossless audio codecs that are genuinely and broadly cross-platform and non-proprietary. FLAC, however, fits the bill. [...] 

Continue Reading

Direct Play Mode

1.0 Introduction

Giocoso Version 2 introduces the concept of separate source and destination databases. That is, the source database is a permanent store of where, physically, music files exist on your hard disk, whilst the destination database is a permanent store of what music has been played and when. If you get Giocoso to use the source database to decide on what music to play next, you're running Giocoso in Database Play Mode. If you instead tell Giocoso specifically what music to play next, providing your own details about the physical location of those music files, then you are not using a source database at all and are instead running Giocoso in Direct Play Mode.

If you run Giocoso in Database Play Mode, all completed plays of music are always stored in the same database as was used to source the plays in the first place. That is, in Database Play Mode, source and destination database are always (and irrevocably) the same. You do not need to specify a destination database in Database Play Mode (and it's ignored if you try anyway!) [...] 

Continue Reading

Giocoso Error Messages

Errors when creating or refreshing a database:

1) Creating a database where --dbname parameter specifies a name that would conflict with a filename already found to be present in the .local/share/giocoso folder. If, for example, a file called main.db exists in that folder, and you say --createdb=main, then this warning will appear, as asking to create a database named 'main' implies the creation of a file called 'main.db', which already exists and which Giocoso will not over-write: [...] 

Continue Reading

Installing Giocoso on ElementaryOS

1.0 Introduction

If there is a prize for the Linux distro that most resembles macOS, then elementaryOS would likely win it hands down! This long-time Linux and Windows user would describe it as having an idiotic child-like dock and all the window controls on the wrong side... but that's how I'd probably describe macOS too! It's an odd Ubuntu-based distro, too, in that you are asked to pay for it when you download it, with the default price appearing to be US$20. Fortunately (from my cheapskate point of view!), there's an option to enter a 'custom' amount for the "purchase"... and zero is a perfectly acceptable custom amount! So you need spend nothing to take it for a spin.

At the time of writing, the distro is listed 12th in popularity in the Distrowatch page hit counter, which I find surprisingly high... but interest in a distro isn't the same thing as actually buying it and using it as a daily driver! I personally find it quirky and peculiar (and mac-like) enough to avoid it like the plague... but I also felt I owed its users the ability to run Giocoso, so Giocoso on that distro is now supported! [...] 

Continue Reading

Installing Giocoso on Solus

1.0 Introduction

Solus is one of that fairly rare breed in the Linux distro world: an independently-developed distro, rather than being yet another build atop of Ubuntu, Debian or Arch. That's certainly novel, but it also means the distro is reliant on a small band of developers who might at any time up-sticks and do a bit of throwing-in of towels. It's been known to happen!

It is a semi-rolling release distro, too, which means its software collection is kept pretty much bang up-to-date, with fresh software updates taking place weekly. Various downloads for it are available, with the main difference between them being the choice of desktop manager: all the usual suspects are available, such as Gnome, KDE (Plasma), MATE and XFCE. The most distinctive option, however, and Solus' so-called "flagship distribution" is the one that uses the Budgie desktop -and that's the one I've chosen to install for the purposes of this documentation. It's very attractive and intuitive, though a little Fischer-Price-y for my tastes! [...] 

Continue Reading

Installing Giocoso on Fedora

1.0 Introduction

Fedora is something of a workhorse distro, being in the same robustness and reliability stakes as Red Hat Enterprise Linux, whilst simultaneously being generally considered pretty cutting-edge, with two releases a year and thus access to very up-to-date packages. When Linus Torvalds himself uses your distro, you can be fairly sure you're doing something right, anyway! The distro comes in various formats: Workstation and Server are the two obvious ones; there are three others of more esoteric appeal. This documentation relates only to running Giocoso on the Workstation distro. That ships with a Gnome desktop, which I can't personally stand -and that's why I don't use it as my daily driver. However, other desktop environments can be installed and retrofitted to it post-install... but I haven't done that here, choosing to stick with the default environment. Ultimately, though, Giocoso doesn't care whether you're using Gnome, KDE or something whackier and niche: it's the underlying OS's selection of packages that matter, not the desktop manager.

Right in the middle of development work for Giocoso Version 2, a new release of Fedora Workstation (version 36) dropped, and I therefore switched to that newer version of Fedora for the purposes of writing these bits of documentation. However: Giocoso Version 2 runs perfectly well on Fedora 35, too. [...] 

Continue Reading