I'm going to be releasing a new version of Giocoso soon(ish): sometime in February 2025, I think. The new version will be yet another 'version number leap' ahead of its predecessor. From Version 3.20 we will be jumping straight to Version 3.30 ...and I don't do version number leaps without a good reason!
The good reason this time is the introduction of Giocoso Pro, which is not a separate product, nor something you have to pay for. It's simply the new ability of Giocoso to use a remote database to work out what to play next and to record details about what it has played. I've called it 'pro' only because doing remote database connections requires the installation, configuration and use of a 'proper' relational database: in this case, MySQL (or MariaDB: the two names essentially describe much the same product), and 'doing' proper relational database work can be ...er, tricky!
The point of a network-accessible database is to allow multiple devices to play music and for each to be aware of what the others are doing. That's important for me because this website claims to display my entire play history and statistics. But if I'm playing music on two entirely separate devices, each with their own database storing play data purely for that device, which set of statistics do I push to this website? Whichever one I pick, the statistics and history will be wrong, because it will be partial: it will only be the play data for the particular device it comes from.
Similar problems arise when I tell my laptop to 'play previously-unplayed music': it will faithfully pick as the next 'play' music it knows it hasn't played before, regardless of the fact that the PC in the listening room played it just three hours ago! What of the time-bar that Giocoso uses to stop multiple plays by the same composer before x number of hours have elapsed? If I play Beethoven on the listening room PC at 9AM, the listening room PC won't let me play any more Beethoven until at least 3PM (because the default time-bar is 6 hours)... but if I ask the laptop to play something, it won't know of the 9AM play and will thus feel entitled to play Beethoven at 11AM!
The point is: Giocoso's database hitherto has only ever been 'local to the device it's stored on'. It does not (and cannot) know what music is being played on another Giocoso installation on a different computing device. Giocoso Pro stops that happening. It creates a network-accessible database that all playing devices can share. They each use it to determine what music files are physically available to play -and to know what music has previously been played, on any device. So if I play Beethoven at 9AM on one PC, an attempt to play something on the laptop at 11AM will now not consider Beethoven a candidate. If this website says I've played 19,000 recordings, that total will now be a true one, taking account of everything played on every computing device I use regularly. So, that's the motivation for Giocoso Pro.
To exploit the new Pro capabilities, you'll need to be capable of building your own MySQL server. A new initialisation script prepares it to act as a Giocoso Pro server with minimum fuss. You then add three new configuration settings to your local Giocoso installation ...and thereafter, plays will be recorded in the shared database, reports will be generated from the shared database, and details of what recordings exist that can be played next will be retrieved from the shared database. The local database is still there and still actively populated: it's just that Giocoso talks to the shared database as well as the local one (and uses the shared one in preference to the local one when performing new plays). That dual-database approach is important because it means that if you end up not liking the Pro capabilities, you can simply turn them off and your local database will still contain all the data you expect.
I've been dog-fooding Giocoso Pro (i.e., Version 3.30) since late December and I'm more or less comfortable that it's release-ready. However, it needs to be documented and tested on multiple platforms: hence the estimated four weeks before release. Regular readers will know that it's quite likely that 'shipping date' will slip a bit, too... so don't hold your breath. If you keep an eye on the Giocoso documentation over the next few weeks, though, you'll get a good idea of how Pro works ...and the closer the new bits of documentation get to being finished, the closer the release date will be!