Multi-Level Browse Enhancement "Need ability to browse multiple tags in flexible order" V4 - 9Dec05 Authors: Ceejay and Listener This is one of a proposed set of enhancements aimed at making the Slimserver/Squeezebox much better suited to the needs of users of Classical music - although it is hoped that they will be useful to other currently-neglected users as well! A separate set of enhancements "Improved browse and search for Classical music" lays the foundations with amended tag treatment and simple UI enhancements to use them. This Multi-Level Browse Enhancement is a more complex UI implementation and builds on the previous simpler UI enhancements. This would be a substantial improvement for users of classical music - but hopefully also for many others with complex collections or browsing requirements. It should be implementable as a Plug-in, although incorporation into core Slimserver functionality would obviously be better. NB: "Current" behaviour in the notes refers to 6.2.2 =================== Multi-level browsing The Current UI allows the user to select a tag to browse from the set (Album, Artist, Genre, Year) and select one value for that tag. The UI presents a list of choices for another tag for tracks or albums that meet the criteria in the first browse. The sequence of browsing steps is hard-wired and varies for each Browse command as described below. Browse Albums => list Albums => list Tracks Browse Artist => list Artists => list Albums ==> list tracks Browse Year => list Years => list albums ==> list tracks Browse Genre => list Genres => list Artists ==> list Albums ==> list Tracks For classical music and perhaps other kinds of music, it is useful to browse a library in other sequences and to choose from different sequences at different times. This becomes especially important for a large collection of classical music. *** Proposed new command *** We need a flexible multi-level browse command that lets the user pick the tag to browse on at each stage of the process. For example, a user might want to select a performance of Beethoven's 3rd symphony conducted by Bruno Walter. He might first browse on Composer, selecting Beethoven. Then he might browse on Artist (or Conductor if he tagged his files that way.) Then when he has narrowing the list of choices enough, he would browse on Album to select "Beethoven - Symphony 3 - Walter" from the list. Later, he might want to hear something played by the violinist Heifetz. He would begin by browsing on the Performer tag and select Heifetz. Then he would pick Composer for the next browse. At the next stage, he would select an Album naming a work by Beethoven to play. When a user has a large collection, using the SB display and the remote with the current browse commands can become intolerably cumbersome if the list of Albums is very long. A flexible multi-level Browse command allows a user to tailor his browsing method to keep the list of choices to a reasonable level. The browsing process would end when the user selects an album or a set of tracks to play by pressing Play or Add. At each stage, the SB display would provide feedback. The top line could display the tag values chosen so far and perhaps the number of Albums listed below. To speed things up, the UI would display a list of albums after the list of tags that can be browsed. So when the list of matching albums gets short, the user can just scroll down and select an album. ------------------ (1) In the settings web form for selecting valid browse tags ("Improved browse and search for Classical music" Request 4), add a tick box to enable/disable multi-mode browsing (disabled, with just artist/album/year/genre selected would be identical to current behaviour). ------------------ (2) Remote UI behaviour: Select "Browse Music" from menu. Get a list of Browse options, one per valid browse tag plus "Music Folder" and "New Music". (Alternative: instead of adding the full set of Browse... options immediately under "Browse Music", insert an extra level such as "Browse By Tags" or "Multi-Level Browse" which then leads to the full list of Browse Options. Advantage: the Browse Music Menu only has one extra item added, thereby reducing clutter. Disadvantage: one extra button push). Select any one of the valid browse tags (e.g. Browse Composer) and get a list of values (composers). Select any one (e.g. Beethoven) and get a list of albums where "Composer" = "Beethoven". However, at the top of the listing, have additional items, one for each valid browse tag eg And Browse 13 Conductors -> | 13 = number of conductors that will be in the browse list And Browse 20 Performers -> | 20 = number of performers that will appear in the browse list And Browse 3 Genres -> | 3 = number of genres that will appear in the browse list ... Symphony no 1 | list of Symphony no 2 | matching albums ... Selecting any one of the "And Browse entries" (eg Conductor) yields a list of valid values (conductors). Select any one (e.g. Karajan) and get a list of albums where "Composer" = "Beethoven" AND "Conductor" = "Karajan". As before, add the "And Browse" function first for each valid browse tag. The multi-level Browse process could in principle continue forever (might want to set a limit! Say 10), although in practice two or three should be enough for most queries. The top line of the display could be used to summarise the browse so far, e.g. "Browsed Beethoven / Karajan (57)" (number is number of matched entries at present) The effect of this is equivalent to a series of "AND"ed selections from the database. Note that it should be permissible to make more than one selection on some tags, e.g. Composer = Beethoven Conductor = Karajan Performer = YoYo Ma Performer = Claudio Arrau Certain tags (Album, Artist, Year, Title) should only occur once so can be omitted from the "And Browse" entries if they have already been used. All others can be used multiple times and so should continue to appear as options in successive browse levels. (Note: This logic depends on the Artist tag not having others such as Composer, Performer, etc. combined with it. Since that is the current method of getting support for Composer, Conductor and Band, it should be made clear that removing tag from the list does not work well if several tags have been combined.) Note that as additional selections are made, the list of albums should get a lot shorter! At any time the user should be able to scroll to an album in the list (or use digit key to jump to a letter), then play or add the album, or hit right to drop down to a list of tracks. All of this behaviour just as in current Browse implementation. However, note that after you've hit right on an album to get a list of tracks, the "AND BROWSE" function should still work just like it did when we had a list of albums - the list of tracks showing should be qualified by all the search criteria that have been specified. (Why? - Because an album may have tracks with different values for some tags, such as Performer or maybe Genre, and if we've seen the album listed because SOME of the tracks qualified, we now want to see ONLY those tracks which qualify.) ---------------- (3) Web interface implementation for Browsing In principle the same as for the Remote UI, but with the list of selected albums/tracks presented on the form with a summary of the selection criteria so far, and the additional browse options, at the top. - The user clicks on "Browse " (eg Browse Conductors) - and gets a list of valid tag values (eg conductors) - The user clicks on a tag value (eg Karajan) - and gets a set of "AND Browse ..." links and a list of Albums/Songs as for the SB/remote UI. Some lists of albums or other tag values may be too long to fit on a reasonably sized web page. ========================