Giocoso Pro on MySQL

1.0 Introduction

MySQL is a relational database. Around 2009, it was purchased by Oracle Corporation, which made it a licensing nightmare of a relational database, because Oracle Corporation is not a nice Corporation: Larry Ellison doesn't get to buy too many luxury yachts with niceness, I'm afraid. So, the code for MySQL was forked (i.e., copied) and thus was created MariaDB. MariaDB is practically identical to MySQL in functionality terms, though in the intervening 15+ years the two products have diverged in significant ways, too. Nevertheless, they are sufficiently identical that many database nerds use the name 'MySQL' when they, technically, ought to use 'MariaDB', and vice versa. This site and its Giocoso documentation is no exception: it will talk about 'MySQL' and expect you to mentally add the extra words 'or MariaDB'!

Giocoso Pro was, technically, written to work with MariaDB: running it using the 'proper' MySQL Oracle software was something of an afterthought ...and I'd accordingly recommend that you stick to using MariaDB for both the Pro database server and the Giocoso client end of things. The main reason for that is: testing. I use MariaDB on real, varied hardware and therefore the Giocoso Pro code gets tested extensively in that environment. I have some virtual machines which run 'proper' Oracle MySQL: I test in those too, but nowhere near as frequently as I do for MariaDB installations, and on nowhere near as diverse a range of hardware. [...] 

Continue Reading

Giocoso Version 3 - Hot Keys

"Hot keys" are alpha-numeric keys you can tap at various points when using Giocoso to achieve various things or invoke particular bits of functionality. You will see all sorts of hot keys indicated in the main Giocoso program display, of course: when you're playing music, for example, the bottom of the screen displays this sort of thing:

...which tells you precisely what tapping the A, T, P and S keys do. The top of the screen similarly displays options for selecting the lay Music, Database Administration, Reports and so on menus. These are obvious hot keys. [...] 

Continue Reading

Giocoso 3 - The Pro Menu : Clear all global pauses

1.0 Introduction

The last item on the Pro menu deletes the entire contents of the global_pausestatus table.

"Global Pauses" is the mechanism by which, when you pause music playback on Device A, a piece of data is written to the Pro database saying that, 'Device A is playing recording X and has reached Y seconds into it'. The idea is that Device B can then use the Play Music menu, Option 6 to pick up the playback at exactly the same point Device A had reached. If you start playing something in the kitchen, you can continue playing it to conclusion in the main listening room, or bedroom, or garden shed... [...] 

Continue Reading

Giocoso 3 - The Pro Menu : Switch reports to local/global mode

1.0 Introduction

When you first put Giocoso into Pro mode (by filling in a MySQL remote database's IP address, using the Administration menu, Option 2), all reporting functions immediately switch by default into selecting from the shared, remote Pro database, rather than from the local database found on a specific Giocoso client device's proximate hard disk. For example, here is what a local report of the 'Aggregate Statistics' looks like (i.e., taking the Reports menu, Option 1 in non-Pro mode):

And here's the same menu options taken, and the same report produced, but this time operating in Pro mode: [...] 

Continue Reading

Giocoso 3 - The Pro Menu : View a global note

1.0 Introduction

Global notes can be made whenever a recording is being played, just by tapping 'n' (or 'N': the case doesn't matter). The nano text editor opens and you can just start typing any observations or criticism of the recording that comes to mind. For example:

Each note you create in this matter over-writes any earlier note you may have made on the same client device ...but, crucially, it's stored in the Pro database, in a table called global_notes, as it is saved. The one local file (note.txt, stored in $HOME/.local/share/giocoso3/tmp) therefore keeps getting over-written by each new note; but each note is also stored permanently in the Pro database, uniquely and permanently 'attached' to the rechashvalue that determines the uniqueness of a recording: [...] 

Continue Reading

Giocoso 3 - The Pro Menu : Analyse plays by device & OS

1.0 Introduction

The main Reports menu is where you do most of the reporting on your plays and recordings -and remains so, even when Giocoso is operating in Pro mode. However, the specific feature that Pro mode enables is for multiple devices, perhaps running multiple operating systems, to play the same music collection... and it may be of interest to you to know how many plays are being done by different devices and operatings systems.

The Pro menu, Option 7 allows you to produce a simple report from the Pro device that groups plays by device, and then by operating system, and presents the results in a single report, like so: [...] 

Continue Reading

Giocoso 3 - The Pro Menu : Extract remote data to CSV

1.0 Introduction

It's all very well having a remote, shared, Pro database of recordings and plays ...but how can you see that data and make sure it's what you think it should be? To be honest, the best way of viewing data in a MySQL database is to install a GUI client and start browsing through the database structures and data in a nice, point-and-click manner: my own recommendation is to use the DBeaver tool for this purpose:

Some people might find using a tool like this a bit daunting, however, and therefore Giocoso allows the remote recordings and plays data to be extracted to a local "CSV" file. The abbreviation 'CSV' means 'comma separated variable', where each piece of distinct data is separated from the next by a comma. However, classical music has names such as "Serenade for tenor, horn and strings" to deal with... and the extra comma in that name could cause trouble! Therefore, Giocoso actually uses the pipe character (i.e., ) to separate the various bits of data: so you'll end up with something more like "Benjamin Britten|Serenade for tenor, horn and strings|Peter Pears" and so on. Regardless of what the data delimiter actually is, however, you can simply import a "CSV" file into a spreadsheet tool like Excel or LibreOffice Calc and have the data presented to you in easily-readable format, without the need to install specialist database management tools first. [...] 

Continue Reading

Giocoso 3 - The Pro Menu : Push recordings to remote database

1.0 Introduction

The option to push (i.e., 'copy') a local plays table to the remote, Pro database equivalent is one that can be used by any Giocoso client device: it should be remembered that a client device that has been declared (in the Administration menu, Option 2) to be a 'primary device' already pushes its copy of the recordings table to the Pro database any and every time it performs either a fast or a full refresh (see Database Manager menu, Options 2 or 3). Precisely because the primary device re-populates the global database automatically on a refresh, the need for a non-primary device to refresh the global database's recordings table is pretty thin: this is not an option you're likely to need to use very often, in other words.

Reasons for having it as an available option at all are simply ones of convenience: if you are working on your laptop, away from your main, primary PC; and you've refreshed the laptop's local database in order to pick up the new 4-CD boxed set you just added to your music collection; then you might find pushing the laptop's up-to-date recordings table to the shared database more convenient to do right now than wait for the main PC's nightly database refresh to do the job. [...] 

Continue Reading

Giocoso 3 - The Pro Menu : Clear the remote recordings table

1.0 Introduction

When you take the Pro menu, Option 1 to initialise a Pro database, you trigger the complete wiping of the Pro database's recordings and plays table (and their re-population from the equivalent local tables). Every time you subsequently play a piece of music on a local device, that new play is 'pushed' or copied to the Pro database. Similarly, every time you use the Database Management menu, Options 2 or 3 to refresh the local database, the Pro database equivalent global_recordings table has anything newly-discovered on the local device copied to it. It is not obvious, therefore, why you might ever need to wipe the remote recordings table and populate it from scratch: if the local database refreshes are picking up new additions to your collection and copying that data over to the Pro database, why would you nuke the Pro database's table completely?

Well, it comes down to the precautionary principle: since you might ever need the facility, it's made available to you... but it's hopefully there, never to be used! [...] 

Continue Reading

Giocoso 3 - The Pro Menu : Push Plays to a remote database

1.0 Introduction

The option to "push" plays (meaning 'copy them') to a remote database allows non-primary Giocoso clients to add their play history to a globally-shared Pro database that has previously been initialised by a primary client. All non-primary clients will need to take this option at least once (immediately after they've been configured to connect to the Pro database, using the Administration menu, Option 2), since the Pro database will otherwise only know about the primary device's play history.

Clients may need to take this option on other occasions, too: if they have performed plays of music whilst not being connected to the Pro database for some reason, for example. In a case like that, the client's local table of plays will contain rows of data that are not in the global database (because that database was not contactable at the time the local data was stored, for whatever reason): the 'push plays' option allows the client to 'catch up' the Pro database with data that it would otherwise be missing. [...] 

Continue Reading

Giocoso 3 - The Pro Menu

Introduction to the Pro Menu

"Giocoso Pro" was the feature introduced to Giocoso in Version 3.30, allowing a local Giocoso installation to communicate with a remote MySQL database -and thus share its own play history with that of other devices who were running Giocoso. In this way, statistics would accurately reflect what was being played on all Giocoso devices, not just one. Similarly, you could make notes about a recording on a laptop and then review them later on a PC: data again being shared between devices, thanks to storing it in a common, shared database that all clients could access equally well.

Implementing Giocoso Pro means first creating that shared Giocoso Pro Server -and there's separate documentation covering that. After that, each client device (i.e., a local installation of standard Giocoso onto a PC or laptop, for example) needs to be pointed to the new, shared server: that's done using the Administration menu, Option 2 and is again documented elsewhere. Until you have done this configuration, your Giocoso installation runs in 'non-Pro' mode and does everything locally as it did in versions prior to 3.30... and, crucially, the Pro menu remains hidden and non-functional. Only once the Giocoso Pro Server's IP address is set in the persistent configuration file does the Pro menu become visible and operative. [...] 

Continue Reading