XBMC v13.1 "Gotham" has been released! See Gotham FAQ for details.
|See XSqueeze on the XBMC Forum for more information.|
Turn your XBMC into a Logitech Media Server player or control an external Squeezebox.
XSqueeze is Squeezebox player/controller/music chooser for XBMC. XSqueeze can be used in three main ways:
- As simply a big-screen visualiser/controller/music chooser for an existing Squeezebox player
- As a software based squeezeplayer to extend your existing network of Squeezebox audio players using your XBMC machine - with local playback, music choosing, and a visualiser. This allows you to have an XBMC/XSqueeze setup in one room that syncs with other Squeezebox players you use.
- As an easy hack to achieve multi-room, synchronized audio playback with XBMC. In this case, all your players are software players using your current XBMC hardware
The last two use cases rely on either squeezelite or SqueezeSlave for music playback. Either of these can be automatically run directly by the addon (typical use case) or manually installed as a background service if you need something out of the ordinary. (Note that the player functionality only works on Windows, OSX and Linux 2.6+/OpenELEC/Crystalbuntu/Raspbmc - not iOS/ATV2/other platforms not listed. Basically, the squeezelite or SqueezeSlave binary must be available for your system for local playback to be possible).
- Logitech Media Server >= 7.6
- squeezelite or SqueezeSlave (only required for local playback)
2.1 Supported Platforms
- Windows, OpenELEC, Linux, OSX, Apple TV1 (Crystalbuntu) - Full support including local playback
- ARM/Raspberry Pi - In theory full support if your distro has ALSA (in progress - please test and report back in the thread and see notes below). Note: XBian and Raspbmc provide ALSA support. OpenELEC can be made to support ALSA with a minor configuration change (see below). However, the limited speed of the Raspberry Pi greatly impacts Xsqueeze performance.
- ATV2/iOS - Controller mode supported, but no local playback support
Visit XSqueeze forum thread for latest discussion, new release notification, and help.
2.2 Spotify Support
XSqueeze supports Spotify playback as of version 0.8.7 and above.
- You must have a Spotify Premium account
- You must configure XSqueeze to use Squeezelite as the internal player
- You must install Triode's Third Party Spotify plug-in
(LMS->Settings->Recommended Third Party Plug-ins. Install, restart LMS, configure, restart LMS, run tests on the plug-ins setting page)
Once you have it all working, in XSqueeze start the music chooser (use the icon bottom right that looks like a speech bubble!) - go to Apps -> Spotify -> and you should be able to browse all your Spotify music. Select what you want and it should start playing!
In order to install XSqueeze, you must first enable the bossanova808 repo in XBMC. You can accomplish this by downloading the zip file at this link and installing the repo manually by following these directions.
Once the bossanova808 repo has been enabled, you will be able to install XSqueeze from it. Installing XSqueeze will automatically install any dependencies including XSqueezeChooser.
Go to the XSqueeze addon settings (go to the addon and use the context menu to get to 'configure').
4.2.1 Logitech Media Server AKA LMS
Here's where you put your LMS server details. Generally you just need to enter the IP/hostname of your server.
If you don't want to use local playback, disable the first toggle. You'll then need to enter the MAC address of the existing player you want to control.
If local playback is enabled you can:
- Choose which player (squeezelite is more modern and supports hi def audio, spotify etc, but SqueezeSlave is kept for historical reasons)
- Change the dummy MAC address the player uses - required for two reasons:
- If you have multiple installations of XSqueeze for example - otherwise all your software players will register as one player in LMS
- LMS uses this number to register the device/player on the mysqueezebox.com cloud service. Many remote software or apps (such as the official ones for iOS and android) rely on this registration to identify and communicate with the device. If your device (xbmc installation in this case) is not registered with a unique mac address, remote apps will not be able to connect to it. You can also manage favourites and player settings through this cloud service, and control the players over the internet
- [Optionally] Add a list of extra player arguments that will be passed on - such as manually specifying an audio output to use.
(for available options, see http://wiki.slimdevices.com/index.php/SqueezeSlave#Command_Line_Switches or http://code.google.com/p/squeezelite/) **** NOTE IF USING OpenELEC, I RECOMMEND adding '-y200' (without the quotes) as an argument to avoid audio dropouts
4.2.3 Other Settings
You can choose:
- To have music start playing immediately on XSqueeze launch (a 'play' signal is sent and anything stored in your playlist resumes)
- To enable/disable mouse/touchscreen controls
4.3 Raspberry Pi
If you wish to use XSqueeze as a player, you will need to load the snd_bcm2835 ALSA module if your Raspberry Pi distro does not do so by default. If you use squeezelite with XSqueeze, you may need to add "-a 160" (without the quotes) to the squeezelite extra settings to avoid stuttering audio issues. Some people have found "-a 80" is enough.
Check whether or not the Raspberry Pi ALSA module is loaded:
|lsmod | grep -q snd_bcm2835 && echo "snd_bcm2835 module is loaded." || echo "snd_bcm2835 module is NOT loaded."|
Load the Raspberry Pi ALSA module:
|sudo modprobe snd_bcm2835|
Raspbmc does not load the Raspberry Pi ALSA module by default. This change must be made in order for snd_bcm2835 to be loaded at bootup:
|echo snd_bcm2835 | sudo tee -a /etc/modules|
4.3.2 OpenELEC (Raspberry Pi build)
OpenELEC does not load the Raspberry Pi ALSA module by default. This change must be made in order for snd_bcm2835 to be loaded at bootup:
|echo snd_bcm2835 >> /storage/.config/modules-load.d/modules.conf|
In XBMC->Add Ons->Programs, run XSqueeze
On your first run of any new version, you may get a message window pop up with any important changes, reminders etc. This only occurs the first run of each version, but you can find the same information in the addon folder/FIRSTRUN.txt if you need it.
As the addon starts, you will get messages if there are any issues (see below for troubleshooting). Once everything is OK (and after the external player has started if you have chosen the local playback option) - you will get to the main XSqueeze Now Playing screen.
If you haven't used XSqueeze before, now is the time to add some music. Hit your i or info and you will get a music chooser. Select some music and you'll drop back into the XSqueeze main screen and playback begins.
You can exit at any time with your normal exit/home button (usually the big green button on MCE remotes, or escape on your keyboard). This can take several seconds as XSqueeze waits on various things to finish - the external player, the artist slideshow script etc.
If using SqueezeSlave: To navigate the virtual player (green lines at bottom of screen), use the up/down/arrows/left/right arrows just like on a Squeezebox classic etc. - and note that hitting right is generally the 'select' action just like on actual Squeezeboxes (select itself will probably also work in most contexts).
(Confluence:) The basic layout is a big panel with cover art, progress bar etc. for the current track, and smaller displays for the next 10 coming tracks. The panel on the right uses script.artistslideshow to pull band photos and bio information for the currently playing artist.
6.1 Audio Issues (dropouts, no audio etc)
FIRST, TRY TURNING OFF XBMC MENU SOUNDS AND THE KEEP AUDIO DEVICE ALIVE OPTION!!
If you're not getting audio full stop from the addon then you will probably need to manually set your output for squeezelite/slave, whichever you're using.
This is done in XSqueeze settings -> Local Playback
First, it's best to drop to the commandline on your machine and try running the player directly there. The player binaries live in your xbmc userdata folder under:
/addons/script.xsqueeze/resources/bin/SYSTEM ... etc. Find the right binary (platform and 32 or 64 bit as needed), and run it directly from there.
(Squeezelite: you can list audio output devices with the -l switch, then specify a device with the -o switch)
(SqueezeSlave: You can test all of this from the command line quite easily using the -D switch, so in full:
squeezeslave -o12 -D yourserveraddress
..this will give you a text based Squeezeslave player right on your command line so you can quickly trigger audio to test etc.)
Once you have worked out how to run the player from the commandline, and get audio out ok, then just copy the switches you need into your xsqueeze settings.
6.2 General Issues (e.g Can't start server/player errors)
If you're experiencing general issues, the best thing is to simplify things and make sure Squeezeslave outside of XBMC works OK.
Go to the addon folder/resources/bin/squeezeYYYY-XXXXX/squeezeYYYY-SYSTEM directory (where Y is lite/slave, X is the version number, and SYSTEM is win, Linux or OSX)
From the command line, manually run Squeezeslave or squeezelite and see if it can find your server, make a connection and play audio.
For further info on Squeezelave, see:
And for Squeezelite, see:
If you are stuck - post a message to the forum thread XSqueeze forum thread
and remember to always ***INCLUDE YOUR FULL DEBUG LOGFILE****
6.3 Audio Sync Issues
Squeezeslave and squeezelite are software players and like all software players, do not 100% support really precise sync like the hardware ones do - this is due to all sorts of factors (network latency, buffering, soundcard timing drift etc)
That being said, there are some tweaks available in your LMS Settings->Player->Synchronize ... this can improve things and I have so far found sync to be easily good enough to walk from room to room OK. Perhaps not good enough for two players in one room (unless you're running identical hardware) - although very close. It's really pretty good.
6.4 What to do if you're still stuck
Try harder and re-read these instructions! Try really hard, and if you are then still really stuck, post to the forum thread here: XSqueeze forum thread
Feedback and ideas appreciated!
7 Manual Installation of Squeezelite or Squeezeslave on your XBMC system
Generally it's best to just use the included player, but if you have special needs you might want to use a manual install. For example, you want to be able to exit XSqueeze and leave the music playing while you run a picture slideshow.
To do this you must manually install a player on your system, and then use XSqueeze with it in 'controller only' mode.
OpenELEC users can find a service addon here: squeezeserversoftsqueeze on OpenELEC
For support for those things, please see their own threads in their respective forums.
Example - Manually Run Squeezeslave
e.g. squeezeslave.exe 192.168.1.1
....the IP address is your server address
If it connects, you will not see anything happen, but you also won't see an error message!
squeezeslave -h will give you help/options if anything goes wrong.
Please experiment with XSqueeze and report back. The thread for discussion/issues/etc is here: XSqueeze forum thread
Generous help with development was also received from XBMC/OE team and forum members: jmarshall, pkscout, mizaki, giftie, HKShai, Bstrdsmkr, spoyser, and more! Many thanks to all the members of this great community!