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

Installing Giocoso on openSUSE Tumbleweed

1.0 Introduction

First, there was SUSE Enterprise Linux (SLES), which was expensive but reliable and business-ready. Then there was openSUSE, which was free but equally reliable as it was effectively simply a re-build and a re-packaging of the original SLES. And finally was brought forth openSUSE Tumbleweed, which isn't really built on SLES, but is more of a rolling preview of what SLES might be in the future. Tumbleweed (for that's what I shall call it henceforth) is therefore to SLES what Fedora is to Red Hat Enterprise Linux: racy, daring, cutting (or bleeding!) edge. As a 'rolling release', it gets updates to software all the time, as the updates are released, not once or twice a year when the distro developers are ready for another 'big bang' release of a new version. As such, Tumbleweed is up-to-date and modern... but with a slight tendency to be less reliable than its SLES-based cousin, because new updates can break things.

Anyway, I mention all this history and background because of a crucial difference between openSUSE-based-on-SLES and Tumbleweed: Giocoso can run on Tumbleweed, but cannot on openSUSE 'proper'. The reason is because SLES, and hence openSUSE, ship with Version 4 of the Bash shell... and Giocoso Version 2 demands and requires Bash Version 5. Tumbleweed, happily and as you'd expect from a bang-up-to-date rolling release, ships with the latest version of Bash, and thus has no trouble meeting Giocoso's requirements. (That reliance on Bash 5, by the way, isn't an example of Giocoso itself been too bleeding-edge for its own good, because Bash released that version way back in January 2019. It might be time for SLES to catch up a little!) [...] 

Continue Reading

Installing Giocoso on GeckoLinux

1.0 Introduction

GeckoLinux is not a distro with which I am very familiar. It's based on openSUSE, but with a fresh coat of paint and a lot of usability tweaks and enhancements. It comes in two distinct flavours. One is based on openSUSE Leap, which is the slightly boring version of openSUSE that itself is based on SUSE Enterprise Linux. This is known as the 'Static' version. The other is based on openSUSE Tumbleweed, which is a 'rolling release' distro -meaning that it keeps its packages much more up-to-date and modern than the static release.

Which brings us to a fairly important point: Giocoso Version 2 doesn't run on openSUSE Leap, so it won't run on the static version of GeckoLinux which is based upon it. The non-rolling-release versions of openSUSE basically use a very old version of the Bash shell, and Giocoso uses some features of Bash Version 5 and therefore has a dependency on that more modern version of Bash. If you want to run Giocoso on Gecko Linux, therefore, you must be running the Rolling version of Gecko Linux. (Note: there is a third flavour of GeckoLinux called 'Next': it too uses Bash version 4, so is also a non-starter for running Giocoso).
 [...] 

Continue Reading

Installing Giocoso on openSUSE Leap

1.0 Introduction

I'll make this short and sweet: Giocoso does not run on openSUSE Leap.

The reason for this is that Giocoso Version 2 requires the Bash shell version 5 and up, and openSUSE -being based on the SUSE Linux Enterprise Server and thus prone to being quite conservative in its choice of software- only includes the Bash shell version 4. That is not modern enough (though version 5 was released back at the start of 2019, so I would have hoped SUSE and thus openSUSE might have gotten themselves a bit more modern by now!). Launching Giocoso on openSUSE Leap (tested on 15.3 and 15.4) thus produces only this error message: [...] 

Continue Reading

Autostop and Skipping

1.0 Introduction

Giocoso has no real play controls to speak of (by design, I hasten to add!) You cannot pause, rewind or fast-forward through playback, for example. You don't pause a concerto in mid-movement at the concert hall, do you? Right: Giocoso follows that exact same model of play. Once started, you listen until the end 🙂 This remains true in Giocoso Version 2: you still cannot pause playback.

Of course, you can stop play in Giocoso: simply press Ctrl+C and playback will be terminated immediately. There might be a couple of seconds of music that continue to play from data that's been buffered already, but generally termination of playback is pretty much instantaneous. Bear in mind that a play that is terminated by Ctrl+C is regarded as never having happened at all. There will thus be no record of it having taken place in Giocoso's destination database (assuming there is one); it won't get scrobbled to Last.fm (even if scrobbling was configured and asked for); and the composer of the interrupted piece won't be subject to a time-bar, since Giocoso doesn't recognise him (or her) as having been played to any degree... even if you were 3 hours 15 minutes in to a 3 hour 16 minute-long opera! Giocoso will terminate cleanly when it has played to the end of the last possible 'selection' it has been asked to play (i.e., whatever number of recordings was requested by use of the --selections= runtime parameter). There can be anything between 1 and 99 selections specified, with the default being 1 -meaning that by default, Giocoso will play a single piece of music and then quit cleanly. [...] 

Continue Reading

Reporting with Giocoso

1.0 Introduction

Giocoso's database not only stores details about what music you have in your collection, but also what music you've played from your collection. As each play of a recording completes, the fact of that play is noted in the database. Giocoso then provides a number of runtime parameters which you can use to query things about that play history -and, indeed, about your music collection generally. These reporting runtime parameters trigger Giocoso's querying of its database, rather than the playing of any new music.

By definition, all reporting parameters must be used together with the --dbname=xxxx runtime parameter, so that we know precisely what database you are wanting to report on. Note that rather than specifying the database name as a runtime parameter, you can set it in the Giocoso persistent configuration file (DBNAME=xxxx). If that's set in the configuration file, then the runtime parameter is not needed -though if it's provided anyway, it overrides whatever the configuration file may be set to. [...] 

Continue Reading

Filtering and Selecting

1.0 Introduction

Giocoso's default mode of working with a back-end database is first to pick a composer at random, and then to pick something written by that composer, again at random. This two-fold randomness ensures that Giocoso doesn't end up playing lots and lots of Mozart (say), simply because he has contributed a huge amount of music to your collection: during that first-pass randomisation process of composer, Mozart stands as much chance of being selected as Qigang Chen or Frederic Cliffe. If you randomise the composer, you end up distributing plays of compositions across all of them, roughly equally.

But that is only Giocoso's default way of playing music: if you prefer, you can always 'intervene' in the randomisation process by specifying a number of runtime parameters to 'guide' Giocoso in its randomisation process. There are five selective runtime parameters that force Giocoso to consider: [...] 

Continue Reading

Scrobbling with Giocoso

1.0 Introduction

"Scrobbling" is the slightly odd name that means 'sending details of the music to which I've been listening up to a cloud service' -and the 'cloud service' everyone usually thinks of in this context is Last.fm. The vast majority of software music players for the PC do this reporting because it can be a useful way of building up a long-term history of your listening habits. That in turn can lead you to realise you've over-listened to this composer's music and under-listened to this one, and thus the history of your past listening can guide and influence your future adventures in music.

Giocoso can scrobble details of everything it plays to Last.fm, just as all those other software music players do. However, it doesn't do so by default (for obvious privacy-related reasons) and if you want it to scrobble, you must first configure it to do so. Those are two entirely separate steps. You can configure-to-scrobble without then enabling actual scrobbling, in which case no scrobbling takes place even though it could do so. You can also not-configure-to-scrobble but still ask Giocoso to perform scrobbling, in which case no scrobbling takes place because Giocoso simply doesn't know how to. You have to do both things to get scrobbling working in other words, and this article will tell you how. [...] 

Continue Reading

Displaying Album Artwork

1.0 Introduction

Giocoso will display album art whenever a new recording starts to play. How -and whether- it does so is controlled by the --artsize runtime parameter. That parameter takes four possible values:

  • small (300x300 pixels)
  • medium (450x450 pixels)
  • large (900x900 pixels)
  • none

If the value supplied is 'none' then no album art is displayed at all. If any of the other three values are supplied, then album art will be displayed, at the various different sizes indicated. Giocoso only displays embedded album art: that is, album artwork which is physically stored within the FLAC file itself. External album art (such as 'folder.jpg', which is commonly found on Windows) will not be displayed under any circumstances. [...] 

Continue Reading