Play Music From Selection Filters
The Play Music menu Option 2: Play music from selection filters allows you to specify one or more selection filters or choices that 'adjust' the normal randomisation selection of music that Giocoso would usually perform. Within a given selection, randomisation still takes place (where possible), but within the constraints you've supplied.
For example, you could filter by composer to mean 'only play music written by Haydn'… but Giocoso will pick which specific Haydn recordings to be played at random. Or you could filter by Genre, so that 'only play operas' would be a valid filter… but again, you wouldn't know ahead of time which specific operas would get played, because that choice is Giocoso's random one to make. Then you can start combining these individual filters, so that 'only play operas by Haydn' becomes a legitimate filter… and so on
You specify the various filters and their values on the form displayed when you first take Option 2:
You can fill in as many filters as you like, or none at all (if you fill none in and just press [Enter] to submit a blank form, you are effectively doing a 'play music with defaults', equivalent to taking option 1). If the combination of filters make no logical sense, no music will be selected for playback (for example: you say 'Composer Name=Mozart' and then say 'Composition Name=Fidelio'… since that opera was written by Beethoven, there won't be any recordings that match both selection filters). Filters are always case insensitive: it makes no difference whether you search for “liszt” or “LISZT” or even “LiSzT”. If the recording has been tagged as being by “Liszt”, all three capitalisations will find it. Filters are also always wild-carded, by which I mean that a search for 'brit' will match “Britten”, and one for “amad” will match “Wolfgang Amadeus Mozart”.
In addition, filters are always 'additive' and 'comprehensive': that is, a recording must match all the filled-in filters, not just some of them. You cannot use this filter to say (for example) 'play me something by Mozart or a ballet': if you fill in the composer name with 'mozart' and genre with 'ballet', you're asking Giocoso to find ballets composed by Mozart. If you want to put it technically, multiple filters are always “and-ed” together: “mozart AND ballet” rather than “mozart OR ballet”.
Filters supplied here always take precedence over any equivalent filters that may or may not be set in the Persistent Configuration File. That is, if the configuration file says 'maximum duration = 120 (minutes)' and you fill this filter in with the 'Maximum Duration' filter set to '40', then Giocoso will select recordings that are less than 40 minutes in length: the 120 minutes setting is ignored for this filter-based selection only. On similar grounds, if your excludes file says 'never play music by Mozart' and you fill this form in with 'Composer Name = Mozart', your current filter over-rides the excludes file: something by Mozart will get played, the excludes notwithstanding.
A filter can be 'negated' by putting an asterisk in the '±' column next to it. For example:
This means 'Play me something by Britten that is not a choral work'.
For the purposes of music selection, be aware that the filters map to tags (listed in all upper-case) as follows:
- Composer Name = ARTIST
- Composition Name = ALBUM
- Genre = GENRE
- Performer = COMMENT
- Distinguishing Artist = PERFORMER
- Recording Year = ALBUM (the year component of it)
It is particularly important to note that the filter labelled 'Performer' is not looking in the PERFORMER tag, whereas the one labelled 'Distinguishing Artist' one is. For an explanation of the difference between COMMENT and PERFORMER tags, see the Axioms of Classical Tagging article, Axiom 3 and Axiom 6.
Another subtlety to grasp is that the 'Recording Year' filter is not looking into the contents of the YEAR or DATE tag that may be present in a FLAC file, but at the recording year component of the extended composition name (see Axiom 5), which is stored in the ALBUM tag. This is slightly unfortunate (querying the YEAR or DATE tag would be the much more logical place to find the recording year!), but is a hangover from the way the music database was designed back in Giocoso version 1 days, and is therefore a consequence of backward compatibility.
The minimum and maximum duration filters are compared against the duration computed for a recording when it is added to the Giocoso music database. The under-played composer and unplayed works filters are computed exactly as described for menu option 1.
When a selection is submitted that matches more than 1 FLAC in the music database, you will be asked if you want to save the list of matching FLACs as a playlist:
If you say 'no' at this point, your music selections will immediately begin to play anyway. If you say 'yes', you are then asked to give a name to the new playlist:
The name can be anything you like, but spaces will be silently converted to underscores. The resulting playlist is stored in $HOME/.local/share/giocoso3/play:
Playlists are simply text files, despite their weird “.play” extension, so they can be edited at any time in the text editor of your choice.
Having saved the filter selection as a playlist, Giocoso will begin to play the results of the selection:
Note how the selection counter (the bit in the top-right of the display that reads 'Selection x of y') has its limit set to the number of recordings that match your selection filters (in my case, I have 322 non-choral recordings by Britten). Left to its own devices, therefore, Giocoso will end up playing everything that matches a particular set of selection filters. Obviously, however, you can skip, pause or terminate play at any point during the playback by tapping the appropriate control key (indicated towards the bottom of the screen, so 'S' for Skip, 'P' for Pause, 'T' for Terminate and so on.
A playlist thus stores the results of a particular combination of selection filters at a particular time. That is, the selection results stored in a playlist are (a) accurate only at the time they are first created; and (b) ordered in a randomised fashion. This means that if I were to add a further 56 non-choral works of Britten's to my music collection, if I ever re-used the playlist just created, I would still only have 322 recordings listed, because that's how many I had at the time of creating the playlist. Moreover, though those 322 recordings were originally added to the playlist in a random order, that random order is now fixed as it was at the point of saving the playlist. Use of that playlist in the future will always result in the same 322 recordings playing in that exact same order, every time.
The selection filters themselves, however, are completely dynamic: though I've saved this 322-recording playlist, if I came back to option 2 and submitted a new 'Britten - Choral + negation' filter, Giocoso would find the new 56 recordings in the database and would include them in the 378-strong recording selection, in a completely new randomised order.
In short, selection filters are dynamic and up-to-date, whereas playlists are only snapshots of things which matched selection filters at a particular point in time.
| Back to Software Home | Back to Giocoso Documentation Home | Back to Play Music Menu |





