Setup kids room SqueezeBox
From SqueezeboxWiki
Overview
This example presumes that you have two SqueezeBox units or two Transporter units. SqueezeBox 1 is in the kids room and SqueezeBox 2 is in the living room. We want to setup them with the following requirements:
- A single SqueezeCenter(formerly known as SlimServer) instance
- SqueezeBox 1 (kids room)
- Limited access to music, only a specific part of the library shall be possible to play on this SqueezeBox
- We presume all control is going to be made using the remote control
- It needs to be very simple to select songs, basically we like it to have a menu structure like
- Now Playing
- Kids Artists
- Kids Playlists
- Random Kids Music
- SqueezeBox 2 (living room)
- Full access to whole library
- We want all the standard advanced browsing methods, so the standard structure with a main Browse menu and a number of different sub menus available as standard shall remain.
The idea with this description is mainly to provide a bit more details regarding setup of Multi Library and Custom Browse 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
- Custom Browse plugin
- Multi Library plugin
- Custom Skip plugin
- SQL Playlist plugin (Only needed for the random songs playlist, Random Mix can also be used but the performance will be better with SQL Playlist in the kids room if the kids music is only a small percentage of the total library)
- Dynamic Playlist plugin (Required by SQL Playlist plugin)
If you are using SlimServer 6.5 or earlier, you probably want to use the old version of this guide instead.
Configure kids library
The first thing we need to do is configure the kids library using the Multi Library plugin, we can identify the kids music in a number of different ways, for example:
- By file path if we have put all the kids music in a specific directory
- By a COMMENT tag if we have added a comment tag to all music that should be available in the kids room
- By a genre if we have added a specific genre to all music that should be available in the kids room
In this example we presume that the kids music is identified by having genre=Kids, if you don't have this genre you will either need to set it or choose one of the other methods to identify the kids music as listed above.
- Goto "Extras/Multi Library" in the web interface
- Select Create new library
- Select the library type: Standard library
- Change some parameters:
- Library name: Kids Music
- Include genres: Mark the Kids genre
- Included internal menus: Mark Artists and unmark the rest
- Show in home menu: Deselect
- Click Next
- Change the filename to: kids.ml.values.xml
- Click Save to store the changes
Configure the main library
Even though we are not going to actually use it we must define a library also for the living room which contains all music. We do this as follows:
- Goto "Extras/Multi Library" in the web interface
- Select Create new library
- Select the library type: Standard library
- Change some parameters:
- Library name: All Music
- Included internal menus: Deselect all
- Show in home menu: Deselect
- Change the filename to: all.ml.values.xml
- Click Save to store the changes
Configure skip filter for kids music
To make sure the music played in the kids room is limited kids music we also want to configure a skipping filter in Custom Skip. This is done as follows:
- Goto "Extras/Custom Skip" in the web interface
- Select Create new filter set
- Enter parameters
- Filter Set Name: Kids
- File name: kids
- When requested to add a filter item we choose: Not Library
- Enter Filter item parameters
- Library not to skip: Kids Music
- Click Save to save the filter
We also want to configure the filter to be automatically activated when the library Kids Music is activated, this is done as follows:
- Goto "Extras/Multi Library" in the web interface
- Click the Edit button to the right of Kids Music library
- Change Custom Skip Filter parameter to: Kids
- Click Save to store the changes
Finally we want to configure Custom Skip to be active everywhere and not just in playlists played through Dynamic Playlist plugin as it is by default. To do this you need to:
- Goto "SqueezeCenter Settings/Plugins/Custom Skip" in the web interface
- Find the parameter Enable filtering on all playlists and change it to on
- Click Apply to save the changes
Configure skip filter for living room
To make sure no skipping filter that actually skips something in the living rool whe configure an empty skipping filter in Custom Skip. This is done as follows:
- Goto "Extras/Custom Skip" in the web interface
- Select Create new filter set
- Enter parameters
- Filter Set Name: Living room
- File name: livingroom
- When requested to add a filter item we just click on the Home link at the top to don't add any filter items.
We also want to configure the filter to be automatically activated when the library All Music is activated, this is done as follows:
- Goto "Extras/Multi Library" in the web interface
- Click the Edit button to the right of All Music library
- Change Custom Skip Filter parameter to: Living room
- Click Save to store the changes
Configure the random playlist for kids room
The next step is to configure the random playlist for the kids room, we do this as follows:
- Goto "Extras/SQL Playlist" in the web interface
- Select Create new playlist
- There is no predifined template yet for creating a playlist that is limited to a library, so to do this we just select the Simple playlist type when requested for playlist type and we will edit the SQL manually. Templates which include a library parameter will be added in future version of SQL Playlist plugin.
- Change playlist parameters
- Playlist name: Random Songs
- Groups: Kids Playlists
- Customize SQL: Select Customize SQL
- Click Next
You should now have a SQL Query that looks as follows:
select url from tracks where audio=1 order by rand() limit 10;
We need to change this to:
select url from tracks join multilibrary_track on tracks.id=multilibrary_track.track join multilibrary_libraries on multilibrary_track.library=multilibrary_libraries.id and multilibrary_libraries.libraryid='kids' where audio=1 order by rand() limit 10;
- Change the playlist parameters as follows:
- Filename: randomkids.sql
- SQL Query: See above (The important part is that the 'kids' string in the query must exact match the first part of the file name we used when saving the Kids Music library in Multi Library, if you followed the example 'kids' should be correct since we used the filename 'kids.ml.values.xml')
- You can click Test button to verify that it works
- Click Save button to save the changes
Its now time to configure the menus for the kids room. We start with creating the new menus in Custom Browse, this is done as follows.
First lets start with the Playlists menu
- Goto "SqueezeCenter Settings/Plugins/Custom Browse" in the web interface
- Select the settings section "Manage menus"
- Select "Create a new menu"
- When asked for menu type select: Dynamic playlists
- Enter menu parameters
- Menu name: Kids Playlists
- Playlist group: Kids Playlists
- Only include when these libraries are active: Select Kids Music
- Click Next
- Change parameters
- Filename: kidsplaylists.cb.values.xml
- Click Save to store the menu
Next lets create the Artists menu
- Goto "SqueezeCenter Settings/Plugins/Custom Browse" in the web interface
- Select the settings section "Manage menus"
- Select Create a new menu
- When asked for menu type select: Artists
- Change menu parameters
- Menu name: Kids Artists
- Various Artists section: Deselect (We don't want any Various Artists in the kids room)
- Library: Select Kids Music
- Only include when these libraries are active: Select Kids Music
- Click Next
- Change parameters:
- Filename: kidsartists.cb.values.xml
- Click Save to store the menu
Finally we also want to make sure the menu is available as a top menu, to do this we:
- Goto "SqueezeCenter Settings/Plugins/Custom Browse" in the web interface
- Select the settings section "Enabled menus"
- In the Show in browse and home menu column mark
- Kids Artists (kidsartists)
- Kids Playlists (kidsplaylists)
- Click Save to store the changes
Note!
It's a good idea to restart SqueezeCenter here since some of the changes you have done might need a SqueezeCenter restart to take effect.
The kids room SqueezeBox still contains a lot of different menus, so to get rid off all unneeded menus we do as follows
- Goto Player Settings for the kids SqueezeBox in the web interface
- Select Menus section
- In the Home menu section click on the x icons to remove all menus besides
- Now Playing
- In the inactive menus section click on the + icons to enable
- Kids Artists
- Kids Playlists
Finishing configuration of kids SqueezeBox
The last step of the configuration for the kids SqueezeBox is to make sure the correct library is activated, to do this do as follows:
- In the web interface make sure the kids SqueezeBox is the selected player
- Goto "Extras/Multi Library" in the web interface
- Select Kids Music to activate it
The SqueezeBox in the kids room should now have a very clean and simple menu with just the kids music available. The Multi Library plugin which manage the different libraries is no perfect solution and due to this it is possible to browse to other artists, for example by right clicking in Now Playing and stepping down to track details and stepping further to one of the genres or years. But the Custom Skip filter should still make sure that it only can play the kids music, the rest will be skipped before it is played.
Finishing configuration of living room SqueezeBox
The last step of the configuration for the living room SqueezeBox is to make sure the correct library is activated, to do this do as follows:
- In the web interface make sure the living room SqueezeBox is the selected player
- Goto "Extras/Multi Library" in the web interface
- Select All Music to activate it
The SqueezeBox in the living room should now work as usual so all music is available. The Kids Playlists and Kids Artists menus will be available in the web interface, in the current Custom Browse plugin version there is no way to avoid this when the menus are enabled as top level menus, but on the SqueezeBox interface they shouldn't exist.