Setup browse menu for classical music
From SqueezeboxWiki
Contents |
Overview
This example show how you can add information from custom tags to SqueezeCenter (formerly SlimServer) browse menus and song detail pages and menus. The example is based on classical music but the same principles can be use for other type of information.
Look at this example as a guide to the Custom Browse plugin and Custom Scan plugin the exact tags and menu structures used is not that important, the main purpose is to show some of the possibilities with these plugins.
Lets say we like to setup a browse menu structure like this:
Classical Music Works by Composer <Composer> <Work> <Song> Composers by Artist <Artist,Conductor,Band> <Composer> <Work> <Song> Artists by Composer <Composer> <Artist,Conductor,Band> <Work> <Song> Composers by Genre <Genre> <Composer> <Work> <Song>
When browsing right when standing on single song we would also like to see the following besides the standard elements already available there:
Work:<Work> <Song> Composer:<Composer> <Work> <Song> Artist:<Artist,Conductor,Band> <Composer> <Work> <Song> Genre:<Genre> <Composer> <Work> <Song>
The Artist,Composer and Genre elements in the song details menu above should of course look as normal for non classical music, but for classical music they should look like above.
When selecting a song in the web interface we would like to show the following information besides the standard information available in this page
Work: <Work> Movement: <Movement>
The following information also related to this configuration is already available in the the song details in the web interface
Composer: <Composer> Conductor: <Conductor> Band: <Band> Artist: <Artist>
The idea with this description is mainly to provide a bit more details regarding setup of Multi Library, Custom Scan and Custom Browse plugin and this configuration is just used as an example to show the possibilities.
Installation
To setup this you will have to install the following plugins
Note!
If you are using SlimServer 6.5, see the old version of this guide
Please note that all parts of this guide currently don't have the desired effect in the Squeezecox Controller interface.
Tagging
All the information used in this example is not part of the standard tags for music files that exist, so the first requirement is that the information exist in tags in your music files.
If you like to follow this example exactly, it presumes that you have set your tags as follows
Standard tags
Tag | Type of information | Example values |
ARTIST | Name of solist or main artist | Vladimir Horowitz, Yo-Yo Ma |
ARTISTSORT | Name of solist, artist, composer or conductor used when sorting elements | Horowitz Vladimir, Ma Yo-Yo, Mozart Wolfgang Amadeus, Bach Johann Sebastian, Albinoni Tomaso Giovanni, Previn Andre |
COMPOSER | Name of composer | Wolfgang Amadeus Mozart, Johann Sebastian Bach, Tomaso Giovanni Albinoni |
CONDUCTOR | Name of conductor | Andre Previn, Seiji Ozawa, James Levine |
BAND | Name of ensemble | New York Philharmonic, Vienna Philharmonic, London Symphony Orchestra |
GENRE | Name of genre | Concerto, Symphony, Overture, Quintet, String Quartet, Piano Sonata |
Non standard custom tags
Tag | Type of information | Example values |
WORK | Name of the work | Piano Concerto No. 5, Piano Concerto No. 9, Piano Concerto No. 14 |
WORKSORT | Name of the work used when sorting elements | Piano Concerto No. 05, Piano Concerto No. 09,Piano Concerto No. 14 |
MOVEMENT | Name of the movement | Allegro, Larghetto, Menuetto, Allegretto |
Note! If you don't have the movement tag in your music files, this is a very small part of this example, so you might want to skip those parts instead of re-tagging all your music.
Scanning custom tags
The first thing to do is to make sure the custom tags are actually scanned into the SqueezeCenter database. Before this we have of course used a taggning software to put the tags in our music files. We have stored the tag as a single value with a semicolon character separating the different values, for example like:
GENRE="Classical;Piano Sonata"
Custom Scan will use the standard MULTIPLE ITEMS IN TAGS setting found under SqueezeCenter Settings/Behavior for the separator character, so make sure this is set to the semicolon character or use the separator characters you have configured when setting the tags in the music files.
- Goto SqueezeCenter Settings/Plugins/Custom Scan in the web interface
- Click the Custom Tag scanning module to change it settings as
- Include in automatic scans and "Scan All": Selected
- Tags to scan: WORK,WORKSORT,MOVEMENT
- Sort tag mapping: WORK=WORKSORT
- Click Apply and then select Manage Scanning in the Settings Section list box and click the Scan link beside the Custom Tag scanning module
The custom tag information has now been scanned into the SqueezeCenter database, it will still not be shown anywhere though. I'm not sure how the SqueezeCenter standard tags will work with all file formats, in case the composers or conductors doesn't appear later on you might need to enter these also in Tags to scan.
Now, we also want to be able to freely combine information in standard SqueezeCenter and the custom tags, to make this possible we also need to make sure the Mixed Tag scanning module is run:
- Goto SqueezeCenter Settings/Plugins/Custom Scan in the web interface
- Click the Mixed Tag scanning module, change the parameters like:
- Include in automatic scans and "Scan All": Selected
- Artist tags: ARTIST
- Composer tags: COMPOSER
- Conductor tags: CONDUCTOR,ARTIST
- Band tags: BAND,ARTIST
- Genre tags: GENRE
- Include custom tags: Selected
- Names to show for user: ALBUM(Album:Albums),ARTIST(Artist:Artists),GENRE(Genre:Genres),YEAR(Year:Years),CONDUCTOR(Conductor:Conductors),COMPOSER(Composer:Composers),BAND(Band:Bands),TRACKARTIST(Track Artist:Track Artists),ALBUMARTIST(Album Artist:Album Artists)
- Click Apply and then select Manage Scanning in the Settings Section list box and click the Scan link beside the Mixed Tag scanning module
Note!
Whenever you run the Custom Tag scanning module manually, you will also have to remember to run the Mixed Tag scanning module. When you use the Scan All link or just perform a SqueezeCenter rescan this will happen automatically, but if you run a single scanning module, for example as described above, you will have to remember to run them both.
Creating library for classical music
To make it easier to differ between classical music and non classical music we need to start by creating a virtual library for the classical music.
Classical library
- Got Multi Library in the web interface (you will find it under the Extras section in the main Home menu (not in settings pages))
- Select Create new library and then select the library type Standard library
- Change library configuration parameters:
- Library name: Classical Music
- Include genres: Mark Classical
- Included internal menus: Deselect all checkboxes
- Show in home menu: Deselect for now
- Click Next and enter filename: classical.ml.values.xml
- Click Save to store the library
Non classical library
- Got Multi Library in the web interface (you will find it under the Extras section in the main Home menu (not in settings pages))
- Select Create new library and then select the library type Dependent library
- Change library configuration parameters:
- Library name: Standard Music
- Excluded contents of libraries: Select Classical Music
- Included internal menus: Deselect all checkboxes
- Show in home menu: Deselect for now
- Click Next and enter filename: standard.ml.values.xml
- Click Save to store the library
It doesn't really matter how you define your libraries, we have choose to identify classical music by a genre called Classical in this example, but you may want to identify it by a number of genres or by entering one of the directory parameters.
The only thing these library will do in this example is to make it easier to have different information in the song details menus and pages for classical and non classical music.
Now it's time to start creating the browse menus
Works by Composer menu
- Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
- Select Manage Menus in the Settings Section list and finally Create new menu
- Select the menu type: Mixed Tags
- Change menu parameters
- Menu name: Works by Composer
- Menu group: Classical Music
- Level 1 tag name: COMPOSER
- Level 2 tag name: WORK
- Level 2 name: Works
- Library: Classical Music
- Click Next and enter filename: worksbycomposer.cb.values.xml
- Click Save to store the changes
Composers by Artist menu
- Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
- Select Manage Menus in the Settings Section list and finally Create new menu
- Select the menu type: Mixed Tags
- Change menu parameters
- Menu name: Composers by Artist
- Menu group: Classical Music
- Level 1 tag name: ARTIST
- Level 2 tag name: COMPOSER
- Level 2 name: Composers
- Level 3 tag name: WORK
- Level 3 name: Works
- Library: Classical Music
- Click Next and enter filename: composersbyartist.cb.values.xml
- Click Save to store the changes
Artists by Composer menu
- Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
- Select Manage Menus in the Settings Section list and finally Create new menu
- Select the menu type: Mixed Tags
- Change menu parameters
- Menu name: Artists by Composer
- Menu group: Classical Music
- Level 1 tag name: COMPOSER
- Level 2 tag name: ARTIST
- Level 2 name: Artists
- Level 3 tag name: WORK
- Level 3 name: Works
- Library: Classical Music
- Click Next and enter filename: artistsbycomposer.cb.values.xml
- Click Save to store the changes
Composers by Genre menu
- Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
- Select Manage Menus in the Settings Section list and finally Create new menu
- Select the menu type: Mixed Tags
- Change menu parameters
- Menu name: Composers by Genre
- Menu group: Classical Music
- Level 1 tag name: GENRE
- Level 2 tag name: COMPOSER
- Level 2 name: Composers
- Level 3 tag name: WORK
- Level 3 name: Works
- Library: Classical Music
- Click Next and enter filename: composersbygenre.cb.values.xml
- Click Save to store the changes
After this you should have a Classical Music menu under the Browse/Custom Browse menu which contains the 4 menus we have selected to setup. This is the time to try out the menus and make sure they work correctly before you continue.
At the moment the Classical Music menu only exists inside the Custom Browse menu, we like this to be moved outside Custom Browse and into the standard Browse menu. To do this do as follows:
- Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
- Select Enabled Menus in the Settings Section list
- Select the Show in browse and home menu column for our 4 classical music menus.
- Click Save to store the changes
The Classical Music menu should now be available directly in the standard Browse menu. If it isn't hit the Refresh link at the bottom of the Custom Scan web page.
Configure Song Info web page
The next step will be to add Work and Movement to the Song Info page in the web interface.
Let's start with the Work information:
- Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
- Select Manage header/footer items in the Settings Section list and finally Create new menu
- Select the menu type: Custom Tags Songs for song
- Change the menu parameters:
- Menu name: Work
- Menu prefix: Work
- Level 1 tag name: WORK
- Library: Classical Music
- Object type: trackheader
- Click Next and enter filename: trackheaderworks.cb.context.values.xml
- Click Save to store the changes
Now do the same with with the Movement information:
- Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
- Select Manage header/footer items in the Settings Section list and finally Create new menu
- Select the menu type: Custom Tags Songs for song
- Change the menu parameters:
- Menu name: Movement
- Menu prefix: Movement
- Level 1 tag name: MOVEMENT
- Library: Classical Music
- Object type: trackheader
- Click Next and enter filename: trackheadermovements.cb.context.values.xml
- Click Save to store the changes
It is the Object type parameter that controls that the menus should be used for the Song Info page, so setting those to trackheader is really important.
The work and movement should now be shown in the Song Info page in the web interface when showing a song. Note however, that it is only shown when selecting a song from one of the Custom Browse menus, we of course like to show it also when selecting a song from the current playlist, to accomplish this follow the next section.
Always use customized Song Info page
To make sure the customized Song Info page is used in all situations, we need to change the SqueezeCenter skin to one of the skins provided with the Custom Browse plugin.
- Goto SqueezeCenter Settings in the web interface
- Select Interface section
- In the Web Interface parameter at the top select one of the skins that end with CB, currently ClassicCB, DefaultCB and FishboneCB is available.
- Click Apply to store the changes
The customized Song Info page will now be shown in all situations, the same is also for the customized album and artist pages that come with Custom Browse, which have a page header.
It's now time to configure the menu shown when clicking the right arrow on the remote when standing on a song, for example in the Now Playing menu.
Let's start with the Work menu:
- Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
- Select Manage header/footer items in the Settings Section list and finally Create new menu
- Select the menu type: Mixed Tags for song
- Change the menu parameters:
- Menu name: Work
- Menu prefix: Work
- Level 1 tag name: WORK
- Library: Classical Music
- Object type: track
- Click Next and enter filename: trackclassicalworks.cb.context.values.xml
- Click Save to store the changes
And the Composer menu
- Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
- Select Manage header/footer items in the Settings Section list and finally Create new menu
- Select the menu type: Mixed Tags for song
- Change the menu parameters:
- Menu name: Composer
- Menu prefix: Composer
- Level 1 tag name: COMPOSER
- Level 2 tag name: WORK
- Level 2 name: Works
- Library: Classical Music
- Object type: track
- Click Next and enter filename: trackclassicalcomposers.cb.context.values.xml
- Click Save to store the changes
And the Artist menu
- Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
- Select Manage header/footer items in the Settings Section list and finally Create new menu
- Select the menu type: Mixed Tags for song
- Change the menu parameters:
- Menu name: Artist
- Menu prefix: Artist
- Level 1 tag name: ARTIST
- Level 2 tag name: COMPOSER
- Level 2 name: Composers
- Level 3 tag name: WORK
- Level 3 name: Works
- Library: Classical Music
- Object type: track
- Click Next and enter filename: trackclassicalartists.cb.context.values.xml
- Click Save to store the changes
And the Genre menu
- Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
- Select Manage header/footer items in the Settings Section list and finally Create new menu
- Select the menu type: Custom Tags Songs for song
- Change the menu parameters:
- Menu name: Genre
- Menu prefix: Genre
- Level 1 tag name: GENRE
- Level 2 tag name: COMPOSER
- Level 2 name: Composers
- Level 3 tag name: WORK
- Level 3 name: Works
- Library: Classical Music
- Object type: track
- Click Next and enter filename: trackclassicalgenres.cb.context.values.xml
- Click Save to store the changes
It is the Object type parameter that controls that the menus should be used for the Now Playing menu, so setting those to track is really important.
When you right click on a song somewhere in the the SB/Transporter, which is part of the Classical Music library we have created, the above menus will appear. Note however that you will still also see the standard Artist, Composer and Genre menus, to get rid of those for classical music do as follows.
Get rid of standard Artist menu
- Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
- Select Manage header/footer items in the Settings Section list
- Select the menu: track/Artist
- Change the menu parameters:
- Library: Standard Music
- Click Next to store the changes
Get rid of standard Composer menu
- Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
- Select Manage header/footer items in the Settings Section list
- Select the menu: track/Composer
- Change the menu parameters:
- Library: Standard Music
- Click Next to store the changes
Get rid of standard Genre menu
- Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
- Select Manage header/footer items in the Settings Section list
- Select the menu: track/Genre
- Change the menu parameters:
- Library: Standard Music
- Click Next to store the changes
The configuration of the Now Playing menu is now finished. When showing the song details on a non classical music song, you should now see the standard Artist, Composer and Genre menus and when showing the song details on a classical music song you should see our new menus which contains Work in the hierarchy.