I mentioned last time that the new Giocoso version 1.12 also contained a very small new enhancement that had been intended to be released as version 1.11. That feature is... (drum roll, please)... early termination of playback.
Yeah. Wow. 🙂
Let me explain: if you kick Giocoso off with --selections=9 (as a for-example), then Giocoso will play nine compositions, one after the other. Once that playback cycle has started, you can't easily end it early. Sure: you can always press Ctrl+C. That will terminate playback of the currently-playing piece almost instantaneously, and no subsequent playback will begin thereafter. Ctrl+C interruption has been around since forever.
The trouble with Ctrl+C interruption, however, is that it is an abrupt termination of playback that has consequences: if you are 28 minutes in to a 29 minute symphony, for example, then Ctrl+C will terminate playback before that composition's "natural end" and Giocoso will therefore not regard it as ever having been played at all. That means it won't record it as a 'play' in its database; it won't scrobble it as a play at Last.fm (if you do that sort of thing). So Ctrl+C is effective... but has (possibly unintended) consequences!
Wouldn't it be nice (I said one night as I decided I wanted to go to bed after having just kicked off a 9-piece playback cycle) if there was a way to say "please continue playing this current work until its natural finish, and thus record it as a proper play, in your own database and Last.fm's, but then terminate the playback cycle after that? That is "finish what you're playing, but don't start anything new afterwards, no matter what I originally told you to do".
And that's exactly what the new --autostop run-time switch does. With Giocoso playing in one terminal window, you can open a second terminal and type the command giocoso --autostop and the second terminal will send a message to the playing terminal to stop further playback after the current play has ended. You can see how it works in this screenshot:
In the large window in the rear, you can see I've launched Giocoso "normally", to play a selection of nine pieces, one after the other. I've then changed my mind and opened a second terminal in front of that, which continues playing in the background. In this new terminal, I've type the command giocoso --autostop. The new terminal responds by telling me that the instruction to end playback early has been successfully received and processed -but note that playback of the current piece in the main terminal has not ended.
If I wait long enough, however, the end of Massenet's Les Érinnyes is reached and the main playback window then displays this message:
The message 'playback finished early' is what you see when an 'autostop' has been requested and the recording playing at the time of the request has played to its conclusion. Even though the screen still tells me that Giocoso was asked to play '9 selections', it's clear that it has terminated playback after just one of them.
Incidentally, if you change your mind, and wish to return the playback cycle to 'play all my previously-requested selections again' mode, you can do so by again issuing the same giocoso --autostop command as before. The second time you issue it, you'll see this message:
In other words, the autostop 'message' is essentially a toggle: issue it once, and it will early-terminate the playback cycle. Issue it a second time, it will revoke the early-terminate request. Issue it a third time, it will re-instate the early-terminate feature; issued a fourth time, it will revoke it once more ...and so on, ad infinitum.
And that's what would have been Giocoso Version 1.11, but is now incorporated within Giocoso Version 1.12! It is a tiny convenience feature that you may never use, nor ever realised you wanted... but it's there (largely because I thought it would be useful for me!) If you've already upgraded to Version 1.12 because of the accented character issue I mentioned last time, you already have the autostop feature to play with. If not, you can acquire it in the usual manner, by issuing the command giocoso --checkver. Happy playback interrupting!