Further Giocoso News

Version 3.04 of Giocoso has just been released. It's a small bug fix and a minor addition.

Dealing with the bug fix first: Giocoso has always checked that, if you say you're using a database called (say), classical_music.db, a file of that name actually exists in the appropriate folder on your hard disk. If it didn't (perhaps because you hadn't created it yet!), it would display a nice error message and quit cleanly. Unfortunately, and unbeknownst to me, some database commands cause sqlite to create a zero byte file of the right name which isn't, internally, a database. That means Giocoso's file check passes, because a file of the right name exists. However, that means Giocoso goes on to query it for music to play -and since the file is just a blank file, those queries fail horribly:

The program window scrolls off the top of the window as the 'Error in prepare: no such table recordings' error is triggered by every attempt to search for music to play. That has now been fixed and the same circumstances now simply produce a nicely-controlled error message:

In this case, it's the 'not actually a database' bit of the error message that's being triggered!  The recommended course of action to fix the error condition is therefore to delete the null file, and create a proper database of a name that matches what your configuration file says should have been created.

So: it's a nasty-looking bug if it's triggered, but it's not really a show-stopper.

Which brings me on to the 'minor addition' part of Version 3.04: remote control via phone. The short story is I usually ssh into my music playing PC from my main desktop and kick off a session of Giocoso that is configured to play 10 or more recordings consecutively. But life often intervenes and I therefore sometimes find myself sat on the sofa following a score of what's playing and find a need to pause the music (or, occasionally, to repeat it). Getting up from the sofa, with score, tea and zonked-out cat on my lap is a hassle... so, for a long time, I've ssh'd into my music playing PC from my Android phone (using the JuiceSSH app), run Giocoso there and taken the Control Menu option 5 to trigger a pause (or a resume or a repeat). Unfortunately, Giocoso was written with desktop PC displays in mind, so the program display on Android is an unholy mess:

Giocoso's trying to display a 103 columns of text in a display that clearly isn't that wide, with the result that it wraps and turns the thing into unreadable chaos. It's still functional, in that I can tap '5' or '4' or whatever and those commands will work... but it just isn't very nice to work with!

So, Giocoso Version 3.04 introduces a new command: mgiosoco.sh which still runs on the same music PC as before, but when it's invoked from Android via ssh, looks like this:

So now I can control things as before, but without getting a headache trying to interpret what the screen is displaying! Additionally, I can see what music is playing in the other Giocoso session, which wasn't possible before. The screen does not auto-update, however, so you press 'r' to make it refresh manually, as needed.

It's not perfect, because I'd like the option to initiate play from my phone, not just control an already-playing session. But that would require substantial re-writing of large chunks of original Giocoso code ...and I'm simply not ready to do that yet. For now, I'm happy with a single new shell script that gives me pause/resume and repeat control in a readable format on a mobile device.

Updates to Giocoso are achieved, as always, by taking the Administrative menu Option 4 and following the prompts. When the upgrade completes, quit Giocoso and re-start it (and ignore any error messages displayed as you quit: they're a feature, not a problem!)