<?sphp $this->text('pagetitle') ?>
 
Home of the Squeezebox™ & Transporter® network music players.

Setup browse menu for classical music

From SqueezeboxWiki

Jump to: navigation, search

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.

  1. Goto SqueezeCenter Settings/Plugins/Custom Scan in the web interface
  2. 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
  3. 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:

  1. Goto SqueezeCenter Settings/Plugins/Custom Scan in the web interface
  2. 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)
  3. 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

  1. Got Multi Library in the web interface (you will find it under the Extras section in the main Home menu (not in settings pages))
  2. Select Create new library and then select the library type Standard library
  3. 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
  4. Click Next and enter filename: classical.ml.values.xml
  5. Click Save to store the library

Non classical library

  1. Got Multi Library in the web interface (you will find it under the Extras section in the main Home menu (not in settings pages))
  2. Select Create new library and then select the library type Dependent library
  3. 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
  4. Click Next and enter filename: standard.ml.values.xml
  5. 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.

Creating browse menus

Now it's time to start creating the browse menus

Works by Composer menu

  1. Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
  2. Select Manage Menus in the Settings Section list and finally Create new menu
  3. Select the menu type: Mixed Tags
  4. 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
  5. Click Next and enter filename: worksbycomposer.cb.values.xml
  6. Click Save to store the changes

Composers by Artist menu

  1. Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
  2. Select Manage Menus in the Settings Section list and finally Create new menu
  3. Select the menu type: Mixed Tags
  4. 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
  5. Click Next and enter filename: composersbyartist.cb.values.xml
  6. Click Save to store the changes

Artists by Composer menu

  1. Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
  2. Select Manage Menus in the Settings Section list and finally Create new menu
  3. Select the menu type: Mixed Tags
  4. 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
  5. Click Next and enter filename: artistsbycomposer.cb.values.xml
  6. Click Save to store the changes

Composers by Genre menu

  1. Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
  2. Select Manage Menus in the Settings Section list and finally Create new menu
  3. Select the menu type: Mixed Tags
  4. 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
  5. Click Next and enter filename: composersbygenre.cb.values.xml
  6. 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.

Move the browse menus

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:

  1. Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
  2. Select Enabled Menus in the Settings Section list
  3. Select the Show in browse and home menu column for our 4 classical music menus.
  4. 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:

  1. Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
  2. Select Manage header/footer items in the Settings Section list and finally Create new menu
  3. Select the menu type: Custom Tags Songs for song
  4. Change the menu parameters:
    • Menu name: Work
    • Menu prefix: Work
    • Level 1 tag name: WORK
    • Library: Classical Music
    • Object type: trackheader
  5. Click Next and enter filename: trackheaderworks.cb.context.values.xml
  6. Click Save to store the changes

Now do the same with with the Movement information:

  1. Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
  2. Select Manage header/footer items in the Settings Section list and finally Create new menu
  3. Select the menu type: Custom Tags Songs for song
  4. Change the menu parameters:
    • Menu name: Movement
    • Menu prefix: Movement
    • Level 1 tag name: MOVEMENT
    • Library: Classical Music
    • Object type: trackheader
  5. Click Next and enter filename: trackheadermovements.cb.context.values.xml
  6. 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.

  1. Goto SqueezeCenter Settings in the web interface
  2. Select Interface section
  3. In the Web Interface parameter at the top select one of the skins that end with CB, currently ClassicCB, DefaultCB and FishboneCB is available.
  4. 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.

Configure Now Playing menu for classical music

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:

  1. Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
  2. Select Manage header/footer items in the Settings Section list and finally Create new menu
  3. Select the menu type: Mixed Tags for song
  4. Change the menu parameters:
    • Menu name: Work
    • Menu prefix: Work
    • Level 1 tag name: WORK
    • Library: Classical Music
    • Object type: track
  5. Click Next and enter filename: trackclassicalworks.cb.context.values.xml
  6. Click Save to store the changes

And the Composer menu

  1. Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
  2. Select Manage header/footer items in the Settings Section list and finally Create new menu
  3. Select the menu type: Mixed Tags for song
  4. 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
  5. Click Next and enter filename: trackclassicalcomposers.cb.context.values.xml
  6. Click Save to store the changes

And the Artist menu

  1. Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
  2. Select Manage header/footer items in the Settings Section list and finally Create new menu
  3. Select the menu type: Mixed Tags for song
  4. 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
  5. Click Next and enter filename: trackclassicalartists.cb.context.values.xml
  6. Click Save to store the changes

And the Genre menu

  1. Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
  2. Select Manage header/footer items in the Settings Section list and finally Create new menu
  3. Select the menu type: Custom Tags Songs for song
  4. 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
  5. Click Next and enter filename: trackclassicalgenres.cb.context.values.xml
  6. 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

  1. Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
  2. Select Manage header/footer items in the Settings Section list
  3. Select the menu: track/Artist
  4. Change the menu parameters:
    • Library: Standard Music
  5. Click Next to store the changes

Get rid of standard Composer menu

  1. Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
  2. Select Manage header/footer items in the Settings Section list
  3. Select the menu: track/Composer
  4. Change the menu parameters:
    • Library: Standard Music
  5. Click Next to store the changes

Get rid of standard Genre menu

  1. Goto SqueezeCenter Settings/Plugins/Custom Browse in the web interface
  2. Select Manage header/footer items in the Settings Section list
  3. Select the menu: track/Genre
  4. Change the menu parameters:
    • Library: Standard Music
  5. 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.