Archive:XSqueeze

From Official Kodi Wiki
Jump to navigation Jump to search

XSqueeze
http://bossanova808-xbmc-addons.googlecode.com/git/repository-downloads/script.xsqueeze/icon.png

Author: bossanova808

Type: Program
Repo:

Summary: Squeezebox (Logitech Media Server) player/controller/music chooser and visualiser for XBMC.
Home icon grey.png   ▶ Add-ons ▶ XSqueeze

Turns your XBMC into a virtual Squeezebox player or control an external Squeezebox.


Use the repo link in the panel to your right to install the bossnova808 repo and then the XSqueeze add on can be installed from there.


CURRENT PLATFORM SUPPORT DETAILS:

Note: Local playback means playback on the local machine as a full Squeezebox emulator using Squeezeslave or Squeezelite - i.e all formats & plugins those external players support - using Squeezelite you can even have easy Spotify support! Note: Controller only means visualisation of an existing Squeezebox or software player, with control, and music choosing, but no playback

  • Windows, Linux, OSX, Apple TV1 (Crystalbuntu) - Full support including local playback
  • OPENELEC - Currently broken as of 3.0.4+ including 3.1.5 beta - see here. Suggest you stick with/go back to 3.0.3
  • ARM/Raspberry Pi - In theory full support if your distro has ALSA (in progress - please test and report back in the thread, see notes below!)
  • ATV2/iOS - Controller mode supported, no local playback support


See XSqueeze forum thread for latest discussion, & release notification &help!


Intro & Credits

XSqueeze is Squeezebox player/controller/music chooser for XBMC.

It was built by me (bossanova808) using some python and building on the hard work of other handy projects: SqueezeSlave and Squeezelite and PyLMS.

For development, I have also received generous help from xbmc/OE team & forum members: jmarshall, pkscout, mizaki, giftie, HKShai, Bstrdsmkr, spoyser, and more! Many thanks to all the helpers from this great community.

What XSqueeze Does

XSqueeze can be used in three main ways:

1. As simply a big-screen visualiser/controller/music chooser for an existing Squeezebox player installation

or

2. As a software based squeezeplayer to extend your existing network of Squeezebox audio players but using your existing XBMC machine - with local playback, music choosing, and a visualiser - meaning you can have an XBMC/XSqueeze setup in your media room that syncs with other Squeezebox installations around your house, without needing to install a Squeezebox in your media room!

or

3. As an easy hack requiring absolutely NO hardware to achieve multi-room synchronised audio playback with XBMC. In this case, all your players are software players using your current XBMC hardware

Option 2 & 3 use either Squeezelite or SqueezeSlave for music playback, either run directly by the addon (typical use case) or manually installed 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).

NB - LMS = Logitech Media Server, the software that serves up music to Squeeze-machines. **** YOU MUST USE VERSION 7.6+! ****

XSqueeze looks like this (in Confluence):

<img src="http://bossanova808-xbmc-addons.googlecode.com/git/repository-downloads/Other%20Downloads/Screenshots/Xsqueeze/XSqueezeNowPlaying.png">

and choosing from the new music list:

<img src="http://bossanova808-xbmc-addons.googlecode.com/git/repository-downloads/Other%20Downloads/Screenshots/Xsqueeze/XSqueezeChooser.png">

Installation

Install XSqueeze on your XBMC machine (any platform)

Use the bossanova808 repo available via the link above right.

...download the repo zip, and install the repo manually using the zip file (XBMC->Addons->Install From Zip File)

Wait a minute or two (or force-refresh the repo. using the context menu) - then in the repo you will see various installable addons. Choose XSqueeze and install it. This will auto-install the chooser plugin as well.

Important Notes:

* XSqueeze should be launched from an icon on your skin's home page (add it as such using your skin settings). e.g. in Confluence: Go to System->Settings->Appearance->Skin->Skin->Settings ... it barely looks like you can click it, but you can, and all the Confluence specific settings can be found hidden under there - go to Add-On Shortcuts, and add it as either a music or program shortcut (works either way). If you just launch it from Programmes, the Chooser (see below) won't work properly - due to a bug in XBMC's window stacking code

* A secondary plugin (XSqueeze Chooser) will automatically be installed along with XSqueeze. This is a music choosing utility, and should be launched only from within XSqueeze by hitting i or info.

* You should also disable GUI sounds if you use XSqueeze, or you may experience weird noises when you start XSqueeze (as XSqueeze suspends the internal XBMC AudioEngine but this does not unfortunately flush the audio output buffers, so when XSqueeze starts this buffered data is pushed through and you can get a weird repeating drone noise).


If you are using Raspberry Pi (tried with Raspbmc):

You may need to add the alsa module manually via an ssh connection:

sudo modprobe snd-bcm2835

(and use:

echo "snd-bcm2835" | sudo tee -a /etc/modules

...if you want to make it occur with every boot-up.

(I believe this is required with Raspbmc but not with xbian at time of writing).

Also add "-a 160" (without the quotes) in the squeezelite extra settings to avoid audio issues. Some people have found "-a 80" is enough.

Configuration

Go to the XSqueeze addon settings (go to the addon and use the context menu to get to 'configure').

There are 4 tabs:

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.

2. Mode

If you don't want to use local playback, disable the first toggle.

You'll then need to enter the MAC address of the 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 probably provides better sync)
  • Change the dummy MAC address the player uses - required for two reasons:
  1. If you have multiple installations of XSqueeze for example - otherwise all your software players will register as one player in LMS
  2. 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 favorites and player settings through this cloud service, and control the players over the internet
  • Add a list of extra player arguments that will be passed on
 (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

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 mouse/touchscreen controls

Running XSqueeze

In XBMC->Add Ons->Programs, run XSqueeze

Extra Information:

XSqueeze actually runs best when launched from an icon on your home page (add it as such using your skin settings). (There is a bug in XBMC that can cause the Chooser component to improperly exit if you run it from the programs list rather than a home screen icon).

XSqueeze doesn't live in the music plugins section as it's not a typical XBMC music plugin, it's a program plugin as the playback itself is external to XBMC's playback systems).


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.

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).

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.

Please experiment and report back!

The thread for discussion/issues etc. is here: XSqueeze forum thread


Troubleshooting

Audio Issues (dropouts, no audio etc)

FIRST, TRY TURNING OFF XBMC MENU SOUNDS!!

Note: FOR OPENELEC USERS: In XSqueeze settings->Local Playback->Extra squeezeslave arguments-> add '-y200' (without the quotes) to solve your audio dropout issues. Note: FOR RASPBERRY PI USERS: In XSqueeze settings->Local Playback->Extra squeezelite arguments-> add '-a 160' (without the quotes) to solve your audio issues.

If you're not getting audio full stop from the addon then you will probably need to manually set your output for Squeezeslave up.

This is done in XSqueeze settings -> Local Playback

(You can test all of this from the command line quite easily using the -D switch for Squeezeslave, 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.

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/squeezeslave-XXXXX/squeezeslave-SYSTEM directory (where X is the version number, and SYSTEM is win, Linux or OSX)

From the command line, manually run Squeezeslave and see if it can find your server, make a connection and play audio.

For further info on Squeezelave, see:


If you are stuck - post a message to the forum thread XSqueeze forum thread

and remember to always ***INCLUDE YOUR FULL DEBUG LOGFILE****

Audio Sync Issues

Squeezeslave is a software player and like all software players, does 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.

What to do if you're still stuck...

Try harder & 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!


Manual Install 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.

Binaries are available here (use latest version): SqueezeSlave Download Squeezelite Download

...with notes and install/build/etc instructions here: SqueezeSlave Squeezelite

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.

Spotify Support

With version 0.8.7 and above, XSqueeze now supports Spotify playback.

Notes:

  • 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!