Today, a few days earlier than planned, I'm releasing Version 3.20 of Giocoso. It's a very significant release and the version number has therefore jumped from 3.1x to 3.2x (specifically, from 3.12 to 3.20), as previously explained.
The two (relatively!) huge changes that have occurred are: 1) Ability to control a play (pause, resume, terminate, repeat etc) from within the playing Giocoso session's main play screen; and 2) Accurate timing information is now displayed (i.e., 'played X minutes of a piece that lasts Y minutes, therefore ending at Z clock time'). These were canvassed in some detail in an earlier blog piece.
The first of these points is of greater practical significance, I think. It means the Giocoso play screen now looks like this:
Notice the 'Autostop Terminate Pause/Resume Skip Repeat etc etc' menu options that now appear at the bottom of the screen, whilst music is playing above them: each is accessed via the yellow-highlighted letter associated with them (so, A for Autostop, V for Volume ... and x for Exit!). In all previous versions, you would have had to launch a second Giocoso session to send control messages to the first (or use Mgiocoso, which amounts to the same thing). Now, one Giocoso session can control itself.
As a consequence, a separate Control Menu is no longer needed and has accordingly been removed. Auto-launching Mgiocoso has also been stopped, though it remains a configurable option if you want to keep it happening. Note that if Mgiocoso was configured to auto-start, it will continue to automatically launch after the update. You'll need to edit your Giocoso configuration file to switch off the auto-launch functionality by hand if you wish it to stop.
In the top-right of that screenshot, you'll see the 'Played X of Y' and 'Ending at Z' display. In all prior versions of Giocoso, the numbers displayed here have been approximations and calculations that could drift away from reality if your system clock wasn't accurate, your CPU wasn't fast enough or you were pausing playback for a long time. That is now fixed, thanks to my recently learning (at last! after years of trying!!) how to access ffmpeg's accurate playback timing information. The numbers displayed in Version 3.20 are now accurate and precise, with a maximum error of 2 seconds (again, mostly due to system clock drift). When playback is paused, the 'Ending at time' increments (since you're pushing back the clock time when, if the play were resumed, it would finish): in previous versions, it was replaced with a simple asterisk to indicate 'I have no clue when this music will end, given that it is currently not playing at all!'
There are a lot of other changes and improvements to Giocoso under the hood, detailed in the Changelog. Several quite significant bugs have been squashed; improvements to Mgiocoso have occurred; changes have been made to the way pauses between successive plays are handled; the Administation menu has had its various options shuffled around a bit ...and so on.
As always, updating to the new version is achieved by taking the Administration menu and selecting the Check for program updates option. You'll be prompted for the sudo password, but otherwise the program update should apply automatically. Quit the program after the update, ignoring any errors that might be indicated, and re-start it: you're then good to go.
Please Note: Giocoso Version 3.20 introduces a dependency on the gawk utility that a fresh installation of Giocoso would resolve but a mere upgrade to it does not. To be certain that gawk exists on any system, type gawk -V (that's a capital 'V'). You should see output like this:
That is, if the utility exists, it will print out its version number and some licence text. If it doesn't, you'll get something more like 'command not found' -and that's your cue to manually install it using your distro's standard package management tools. For all the distros I tested, gawk was pre-installed, by default, on all of them except Ubuntu and Debian and some distros derived from those two parent distros (such as Linux Mint or Devuan), so this shouldn't be an issue for a lot of people. However, Ubuntu and Debian users (and users of distros descended from those parent distros) can manually install gawk before attempting the Giocoso update by issuing the command sudo apt install gawk in a terminal session.