Archive:XSqueeze: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
>Bossanova808
mNo edit summary
No edit summary
 
(83 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{{Addon
{{Add-on
| Name = XSqueeze
|Name=XSqueeze
| provider-name = bossanova808
|provider-name=bossanova808
| ID = script.xsqueeze
|ID=script.xsqueeze
| latest-version = 0.4.6
|latest-version=1.1.3
| extension point = xbmc.addon.metadata
|extension point=xbmc.addon.metadata
| provides = executable
|provides=executable
| Platform = all
|Summary=Squeezebox player/controller for XBMC.
| repo = [http://bossanova808-xbmc-addons.googlecode.com/git/repository-downloads/repository.bossanova808/repository.bossanova808-0.1.zip bossanova808 repo]
|Description=Turn your XBMC into a [http://www.mysqueezebox.com/download Logitech Media Server] player or control an external Squeezebox.
| broken =  
|Platform=all
| icon url = http://bossanova808-xbmc-addons.googlecode.com/git/repository-downloads/script.xsqueeze/icon.png
|Language=en
| Summary = Squeezebox (Logitech Media Server) player/controller for XBMC.
|License=GPL-2.0
| Description = Turns your XBMC into a Squeeze player or control an external Squeezebox. }}
|Forum=http://forum.kodi.tv/showthread.php?tid=122199
|Website=https://github.com/bossanova808/repository.bossanova808
|Source=https://github.com/bossanova808/repository.bossanova808
|Email=
|broken=  
|icon url=https://github.com/bossanova808/repository.bossanova808/raw/master/repository-downloads/script.xsqueeze/icon.png
|repo=[https://github.com/bossanova808/repository.bossanova808/raw/master/repository-downloads/repository.bossanova808/repository.bossanova808-0.1.9.zip bossanova808]
|type=
}}
== Introduction ==
XSqueeze is Squeezebox player/controller/music chooser for Kodi (and its predecessor, 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 Kodi machine - with local playback, music choosing, and a visualiser. This allows you to have a Kodi/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 Kodi. In this case, all your players are software players using your current Kodi hardware


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


See [http://forum.xbmc.org/showthread.php?t=122199 XSqueeze forum thread] for latest discussion, & release notification &help!
('''NB''': The player functionality only works on Windows, OSX and Linux variants with ALSA - 2.6+/OpenELEC/Crystalbuntu/OSMC/Raspbmc - NOT iOS/ATV2/Android/other platforms not listed. Basically, the squeezelite or squeezeslave binary must be available for your system for local playback to be possible).


=== Screenshots ===
<img src="https://github.com/bossanova808/repository.bossanova808/raw/master/repository-downloads/Other%20Downloads/Screenshots/Xsqueeze/XSqueezeNowPlaying.png">
<img src="https://github.com/bossanova808/repository.bossanova808/raw/master/repository-downloads/Other%20Downloads/Screenshots/Xsqueeze/XSqueezeChooser.png">


=== Intro & Credits ===
== Requirements ==
* Logitech Media Server >= version 7.6 must be running somewhere on your network as the music server
* squeezelite or squeezeslave (only required for local playback, installed automatically with the addon)


XSqueeze is Squeezebox player/controller for XBMC.
=== Supported Platforms ===
{{Note|''Local playback means audio playback on the local machine as a full Squeezebox emulator using the software Squeezebox emulators - and you can choose squeezeslave or (recommended) squeezelite - i.e you can playback all formats and use all 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, Libre/OpenELEC, Linux variants (on x86 and ARM) - with ALSA, OSX, Apple TV1 (Crystalbuntu) - Full support including local playback
* Raspberry Pi - In theory full support if your distro has ALSA  Note: XBian and OSMC/Raspbmc provide ALSA support out of the box. Libre/OpenELEC can be made to support ALSA with a minor configuration change (see below).
* ATV2/iOS - Controller mode supported, but no local playback support.  If you install a squeezeplayer app from the app store (e.g [http://penguinlovesmusic.de/iPeng with the local playback addon]), you can then control this via Xsqueeze if you want to.  So pretty much the same result.
* Android - Controller mode support, no local playback support - but you can install [https://play.google.com/store/apps/details?id=de.bluegaspode.squeezeplayer&hl=en Squeezeplayer from Google Play] and then control that from Xsqueeze for basically the same result.


It was built by me (bossanova808) using some python and building mainly on the hard work of two handy projects: SqueezeSlave[http://wiki.slimdevices.com/index.php/SqueezeSlave SqueezeSlave] and Pysqueezecenter[http://code.google.com/p/pysqueezecenter/ pysqueezecenter].
Visit [[forum:122199|XSqueeze forum thread]] for latest discussion, new release notification, and help.


I have also received generous help from xbmc team/forum members: jmarshall, pkscout, mizaki, giftie, HKShai and more!  Many thanks to all the helpers from this great community.
=== Spotify Support ===
XSqueeze supports Spotify playback as of version 0.8.7 and above.


Requirements for this:
* 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)


=== What XSqueeze Does ===
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!


XSqueeze can be used in two main ways:
== Installation ==
In order to install XSqueeze, you must first enable the bossanova808 repo in Kodi. You can accomplish this by downloading the zip file at [https://github.com/bossanova808/repository.bossanova808/raw/master/repository-downloads/repository.bossanova808/repository.bossanova808-0.1.9.zip this link] and installing the repo manually by following [http://wiki.xbmc.org/index.php?title=HOW-TO:Install_an_Add-on_from_a_zip_file these directions].


1. As simply a big-screen visualiser/controller for an existing Squeezebox player installation (all squeezebox models can be visualised, all but Touch and Radio controlled, at time of writing)
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 (the music choosing component), and the player binaries.


or
== Configuration ==
=== Kodi ===
{{redv|'''Important Notes:'''|
<big>'''*'''</big> 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 the Programs list section, the Chooser (see below) possibly will not work properly - this is due to a bug in XBMC's window stacking code (not confirmed that this remains an issue with Kodi).


2. (Default) As a software based squeeze player with local playback, 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!
<big>'''*'''</big> 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 {{keypress|i}} or {{keypress|info}}. 


Option 2 uses SqueezeSlave, either run directly by the add on or manually installed.  (Note that the player functionality only works on Windows, OSX and Linux 2.6+/Openelec - not iOS/other platforms not listed - basically, the squeezeslave binary must be available for your system for local playback to be possible).
<big>'''*'''</big>''' You should also disable GUI sounds and the new Gotham 'keep audio device alive' option 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).}}


''NB -  LMS = Logitech Media Server'', the software that serves up music to Squeeze-machines.  '''PLEASE USE VERSION 7.6+!'''
big>'''*'''</big>''' In XSqueeze settings there is a Troubleshooting page with various options you can use to work around various issues...but feel free to ask in the support thread tooThe default settings work out of the box for most people.}}
 
XSQueeze looks like this (in Confluence):
 
<img src="http://bossanova808-xbmc-addons.googlecode.com/git/repository-downloads/Other%20Downloads/XSqueezeNowPlaying.png">
 
=== Installation ===
 
1. 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 addonsChoose XSqueeze and install it.
 
=== Configuration ===


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


There are 4 tabs:
==== Logitech Media Server AKA LMS ====
Here's where you put your LMS server details. Generally you can use the automatic discovery option to find your server on the network and it will full in the IP address for you.  Otherwise you can just enter it manually if you need to.  Add login details/port etc. if you need to.


==== 1. Logitech Media Server AKA LMS ====
==== Mode ====
If you don't want to use local playback, i.e. you just want to control/visualise an external squeezebox, disable the first toggle. You'll then need to enter the actual MAC address of the existing player you want to control (usually found on a sticker on the back of the machine).


Here's where you put your LMS server details.  In most cases, just click on the 'Discover LMS Server...' field and it should find your server and you choose it. And for msot people this is the only configuration step required, so you can skip the rest unless you have special needs.
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)
* Use the automatic audio output chooser to specify the audio output device (although usually it will pick the right one by default there's no harm in explicitly setting it)
* 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 (Kodi 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''


''** Note server auto discovery does not currently work on OSX.''
==== 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


However, if you've changed your LMS server's HTTP (normally 9000) or CLI port (normally 9090), then you will need to manually specify your server details.
==== Troubleshooting ====
Various delays can be configured here to workaround issues, but the defaults are sensibly chosen and work for almost everyone.  If you still have issues after playing with these, come to the forum thread for help.


==== 2. Local Playback ====
=== Raspberry Pi ===
What you need to do depends on which distribution you are using for your Pi.  If you wish to use XSqueeze as a player, you will generally need to load the snd_bcm2835 ALSA module if your Raspberry Pi distro does not do so by default.


This is enabled by default as it's the most common scenario.
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.
If you don't want to use local playback, disable the first toggle.


If local playback is enabled you can:
Check whether or not the Raspberry Pi ALSA module is loaded:
* Change the dummy MAC address squeezeslave uses (if you have multiple installations of XSqueeze for example)
{| class="wikitable"
*  Add a list of extra Squeezeslave arguments that will be passed on
|-
  (see http://wiki.slimdevices.com/index.php/SqueezeSlave#Command_Line_Switches)
| <nowiki>lsmod | grep -q snd_bcm2835 && echo "snd_bcm2835 module is loaded." || echo "snd_bcm2835 module is NOT loaded."</nowiki>
  **** NOTE IF USING OPENELEC, I RECOMMEND adding '-y200' (without the quotes) as an argument to avoid audio dropouts
|}
* Most of the time squeezeslave will discover and use the default audio output for your system, however you can manually choose an output if you want to as well.


''** Note audio output discovery does not yet work on OSX''
Load the Raspberry Pi ALSA module:
{| class="wikitable"
|-
| <nowiki>sudo modprobe snd_bcm2835</nowiki>
|}


==== 3. Controller Only ====
==== Raspbmc ====
Early versions of Raspbmc did not load the Raspberry Pi ALSA module by default. This change must be made in order for snd_bcm2835 to be loaded at bootup:
{| class="wikitable"
|-
| <nowiki>echo snd_bcm2835 | sudo tee -a /etc/modules</nowiki>
|}
Note: This change is not needed for OSMC (which is what Raspbmc became)


If you want to use XSqueeze just act as big screen visualiser for an existing player, enable the controller only mode on this tab.
==== 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:
{| class="wikitable"
|-
| <nowiki>echo snd_bcm2835 >> /storage/.config/modules-load.d/audio.conf</nowiki>
|}


Now, enter the MAC address of the player you want to visualise - you can find this information on your LMS Server->Settings->Information page.
==== LibreELEC (Raspberry Pi build) ====


(Tested with SLIMP3, SB2, SB3, Classic and Boom players, I don't have a Radio or Touch to try unfortunately, and I suspect these will not work completely...)
{| class="wikitable"
|-
| <nowiki>mount -o remount,rw /flash</nowiki>
|}
Add the following to you config.txt:
{| class="wikitable"
|-
| <nowiki>nano /flash/config.txt</nowiki>
|}
{| class="wikitable"
|-
| <nowiki>dtparam audio=on</nowiki>
|}


You can also use Controller Only mode if you wish to manually install & run your own Squeezeslave or SqueezePlayer (see notes below!).  Then you just enter the mac address of this software player here just like you would any other player.
There is more detail about this file here: https://wiki.libreelec.tv/index.php?title=Config.txt


==== 4. Other Settings ====
== Usage ==
In Kodi->Add Ons->Programs, run XSqueeze
{{bluev|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 (not confirmed that this issue remains with Kodi) that can cause the Chooser component to improperly exit if you run it from the programs list rather than a home screen icon).


You can choose to disable your screensaver during XSqueeze sessions (off by default, and note I have found this to cause hangs on XSqueeze exit so I don't really recommend it)
'''XSqueeze''' does not live in the music plugins section as it is not a typical Kodi music plugin, it is a Program plugin as the playback itself is external to Kodi's playback systems).}}


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


In XBMC->Add Ons->Programs, run XSqueeze
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.


(Note - it doesn't live in the music section as it's not a typical XBMC music plugin, as the playback itself is external to XBMC's playback systems).
If you haven't used XSqueeze before, now is the time to add some music.  Hit your {{keypress|i}} or {{keypress|info}} and you will get a music chooser.  Select some music and you will drop back into the XSqueeze main screen and playback begins.


In most skins, you can use the skin settings to add the addon to your home page for easy access of course.
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 or Return if using a TV Remote via CEC).  This can take several seconds as XSqueeze waits on various things to finish - the external player, the artist slideshow script etc.  


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.
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).
 
As the addon starts, you will get messages if there are any issues (see below for troubleshooting).  Once everything is OK (and after SqueezeSlave 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).  To navigate, 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.
(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.


At the bottom of the screen you have the classic two line SB controller/display that will change as you navigate the 'virtual Squeezebox'.
(Other Skins) - There have been reports of missing controls with other skins - try using Confluence if you have this issue.  Would like some help with working out why this occurs - I always use Confluence.  If you have any solutions - please post them in the forum thread!


You may see a few as-yet-unsolved glitches:
== Troubleshooting ==
* Skipping to the next track gives a playlist error pop up from XBMC as the playlist is empty, just ignore this
* Volume - depends on how your XBMC is set up/connected.  If your volume controls go to an external device like an amp/receiver, then it will work great and as expected.  If you control volume via XBMC's digital volume controls, you will see XBMC's volume slider as well as the Squeezebox display changing volume - ignore the XBMC display as it isn't involved.


=== Please experiment and report back! ===
=== Audio Issues (dropouts, no audio etc) ===


Obviously I have a lot of plans for this, this is just a simple beginning.  All the fancy will come later, like playlist building and management etc.
'''FIRST, TRY TURNING OFF KODI MENU SOUNDS AND THE KEEP AUDIO DEVICE ALIVE OPTION!!'''


The thread for discussion/issues etc. is here:
{{note|'''Squeezeslave Users:''' In XSqueeze settings->Local Playback->Extra squeezeslave arguments-> add '-y200' (without the quotes) to try & solve audio dropout issues.}}
http://forum.xbmc.org/showthread.php?t=122199
{{note|'''squeezelite Users:''' In XSqueeze settings->Local Playback->Extra squeezelite arguments-> add '-a 160' (without the quotes) to try & solve audio issues.}}


=== Troubleshooting ===
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.


==== Audio Issues (dropouts, no audio etc) ====
This is done in XSqueeze settings -> Local Playback -> Audio Output Chooser


FIRST, ON UNIX TYPE SYSTEMS (Linux, Openelec, OSX) TRY TURNING OFF XBMC MENU SOUNDS!!  If you have these on, XBMC greedily grabs the audio device and won't share.
=== General 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.
If you are still having issues, then 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:


This is done in XSqueeze settings -> Local Playback
/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.


(You can test all of this from the command line quite easily using the -D switch for Squeezeslave, so in full:
(squeezelite: you can list audio output devices with the -l switch, then specify a device with the -o switch)


squeezeslave -o12 -D yourserveraddress
(squeezeslave: You can test all of this from the command line quite easily using the -D switch, so in full:


..this will give you a text based Squeezeslave player right on your command line so you can quickly trigger audio to test etc.
squeezeslave -o12 -D yourserveraddress


==== General Issues (e.g Can't start server/player errors) ====
..this will give you a text based Squeezeslave player right on your command line so you can quickly trigger audio to test etc.)


If you're experiencing general issues, the best thing is to simplify things and make sure Squeezeslave outside of XBMC works OK.
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.


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)
For further info on squeezeslave, see:
* [http://wiki.slimdevices.com/index.php/SqueezeSlave squeezeslave]
* [http://wiki.slimdevices.com/index.php/SqueezeSlave#Command_Line_Switches squeezeslave/Command Line Switches]
And for squeezelite, see:
* [http://code.google.com/p/squeezelite/ squeezelite]


From the command line, manually run Squeezeslave and see if it can find your server, make a connection and play audio.
If you are stuck - post a message to the forum thread
[[forum:122199|XSqueeze forum thread]]


For further info on Squeezelave, see:
'''and remember to please always ***INCLUDE YOUR FULL DEBUG LOGFILE****'''
http://wiki.slimdevices.com/index.php/SqueezeSlave
http://wiki.slimdevices.com/index.php/SqueezeSlave#Command_Line_Switches


=== Audio Sync Issues ===


If you are stuck - post a message to the forum thread
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)
( http://forum.xbmc.org/showthread.php?t=122199 )


'''and remember to always ***INCLUDE YOUR FULL DEBUG LOGFILE****'''
In general, squeezelite is really very good with sync, but try both players to see which works for you best.


==== Audio Sync Issues  ====
Once you know in general which works best for you, there are some tweaks available in your LMS Settings->Player->Synchronize which can improve things further.


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)
I regularly sync real squeezeboxes with squeezelite players and it works very well.


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 good enough to walk from room to room OK.  Probably not good enough for two players in one room, though, although very close.  It's really pretty good.
=== What to do if you're still stuck ===


==== What to do if you're still stuck... ====
Try harder and re-read these instructions - there's a lot of info here!


Try harder & re-read these instructions!  Try really hard, and if you are then still really stuck, post to the forum thread here: http://forum.xbmc.org/showthread.php?t=122199
Try really hard, and if you are then still really stuck, post to the forum thread here: [[forum:122199|XSqueeze forum thread]]


Feedback and ideas appreciated!
Feedback and ideas appreciated!


=== Manual Install of Squeezeslave on your XBMC system. ===
== Manual Installation of squeezelite or squeezeslave on your Kodi 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.


Generally it's best to just use the included SqueezeSlave, but if you have special needs you might want to use a manual install.
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):
Binaries are available here (use latest version) - or you can use the ones in the addon folder too of course:
http://sourceforge.net/projects/softsqueeze/files/squeezeslave/
[http://sourceforge.net/projects/softsqueeze/files/squeezeslave/ SqueezeSlave Download]
[http://code.google.com/p/squeezelite/downloads/list Squeezelite Download]


...with notes and install/build/etc instructions here:
...with notes and install/build/etc instructions here:
http://wiki.slimdevices.com/index.php/SqueezeSlave
[http://wiki.slimdevices.com/index.php/SqueezeSlave SqueezeSlave]
[http://code.google.com/p/squeezelite/ Squeezelite]


Openelec users can find a service addon here:
OpenELEC users can find a service addon here:
http://openelec.tv/forum/13-miscellaneous/8027-squeezeserversoftsqueeze-on-openelecxbmc?limit=20&start=20#18826
[http://openelec.tv/forum/13-miscellaneous/8027-squeezeserversoftsqueeze-on-openelecxbmc?limit=20&start=20#18826 squeezeserversoftsqueeze on OpenELEC]


For support for those things, please see their own threads in their respective forums.
'''For support for those things, please see their own threads in their respective forums.'''


'''Manually Run Squeezeslave'''
'''Example - Manually Run Squeezeslave'''


e.g. squeezeslave.exe 192.168.1.1
e.g. squeezeslave.exe 192.168.1.1
Line 198: Line 262:
squeezeslave -h will give you help/options if anything goes wrong.
squeezeslave -h will give you help/options if anything goes wrong.


[[Category:Add-ons not in the XBMC.org repo]]
== Feedback ==
Please experiment with XSqueeze and report back. The thread for discussion/issues/etc is here:
[[forum:122199|XSqueeze forum thread]]
 
== Credits ==
XSqueeze was built by bossanova808 using some python and building on the hard work of other handy projects: [http://wiki.slimdevices.com/index.php/SqueezeSlave SqueezeSlave] and [http://code.google.com/p/squeezelite/ squeezelite] and [https://github.com/jingleman/PyLMS PyLMS].
 
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!
 
Thanks also to UNiversal, Aptalca and Jonathan for doing a great job adding to and cleaning up this wiki entry!
 
[[Category:Add-ons-Archived]]

Latest revision as of 01:55, 15 July 2020

XSqueeze
https://github.com/bossanova808/repository.bossanova808/raw/master/repository-downloads/script.xsqueeze/icon.png

Author: bossanova808
Website: link
Type:
Repo:

License: GPL-2.0
Source: Source code
Summary: Squeezebox player/controller for XBMC.
Home icon grey.png   ▶ Add-ons ▶ XSqueeze
Attention talk.png Need help with this add-on? See here.

Turn your XBMC into a Logitech Media Server player or control an external Squeezebox.

Introduction

XSqueeze is Squeezebox player/controller/music chooser for Kodi (and its predecessor, XBMC). XSqueeze can be used in three main ways:

  1. As simply a big-screen visualiser/controller/music chooser for an existing Squeezebox player
  2. As a software based squeezeplayer to extend your existing network of Squeezebox audio players using your Kodi machine - with local playback, music choosing, and a visualiser. This allows you to have a Kodi/XSqueeze setup in one room that syncs with other Squeezebox players you use.
  3. As an easy hack to achieve multi-room, synchronized audio playback with Kodi. In this case, all your players are software players using your current Kodi 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.

(NB: The player functionality only works on Windows, OSX and Linux variants with ALSA - 2.6+/OpenELEC/Crystalbuntu/OSMC/Raspbmc - NOT iOS/ATV2/Android/other platforms not listed. Basically, the squeezelite or squeezeslave binary must be available for your system for local playback to be possible).

Screenshots

<img src="https://github.com/bossanova808/repository.bossanova808/raw/master/repository-downloads/Other%20Downloads/Screenshots/Xsqueeze/XSqueezeNowPlaying.png"> <img src="https://github.com/bossanova808/repository.bossanova808/raw/master/repository-downloads/Other%20Downloads/Screenshots/Xsqueeze/XSqueezeChooser.png">

Requirements

  • Logitech Media Server >= version 7.6 must be running somewhere on your network as the music server
  • squeezelite or squeezeslave (only required for local playback, installed automatically with the addon)

Supported Platforms

Note: Local playback means audio playback on the local machine as a full Squeezebox emulator using the software Squeezebox emulators - and you can choose squeezeslave or (recommended) squeezelite - i.e you can playback all formats and use all 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, Libre/OpenELEC, Linux variants (on x86 and ARM) - with ALSA, OSX, Apple TV1 (Crystalbuntu) - Full support including local playback
  • Raspberry Pi - In theory full support if your distro has ALSA Note: XBian and OSMC/Raspbmc provide ALSA support out of the box. Libre/OpenELEC can be made to support ALSA with a minor configuration change (see below).
  • ATV2/iOS - Controller mode supported, but no local playback support. If you install a squeezeplayer app from the app store (e.g with the local playback addon), you can then control this via Xsqueeze if you want to. So pretty much the same result.
  • Android - Controller mode support, no local playback support - but you can install Squeezeplayer from Google Play and then control that from Xsqueeze for basically the same result.

Visit XSqueeze forum thread for latest discussion, new release notification, and help.

Spotify Support

XSqueeze supports Spotify playback as of version 0.8.7 and above.

Requirements for this:

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

Installation

In order to install XSqueeze, you must first enable the bossanova808 repo in Kodi. 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 (the music choosing component), and the player binaries.

Configuration

Kodi

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 the Programs list section, the Chooser (see below) possibly will not work properly - this is due to a bug in XBMC's window stacking code (not confirmed that this remains an issue with Kodi).

* 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 and the new Gotham 'keep audio device alive' option 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).


big>* In XSqueeze settings there is a Troubleshooting page with various options you can use to work around various issues...but feel free to ask in the support thread too. The default settings work out of the box for most people.}}

XSqueeze

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

Logitech Media Server AKA LMS

Here's where you put your LMS server details. Generally you can use the automatic discovery option to find your server on the network and it will full in the IP address for you. Otherwise you can just enter it manually if you need to. Add login details/port etc. if you need to.

Mode

If you don't want to use local playback, i.e. you just want to control/visualise an external squeezebox, disable the first toggle. You'll then need to enter the actual MAC address of the existing player you want to control (usually found on a sticker on the back of the machine).

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)
  • Use the automatic audio output chooser to specify the audio output device (although usually it will pick the right one by default there's no harm in explicitly setting it)
  • 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 (Kodi 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

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

Troubleshooting

Various delays can be configured here to workaround issues, but the defaults are sensibly chosen and work for almost everyone. If you still have issues after playing with these, come to the forum thread for help.

Raspberry Pi

What you need to do depends on which distribution you are using for your Pi. If you wish to use XSqueeze as a player, you will generally 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

Early versions of Raspbmc did 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

Note: This change is not needed for OSMC (which is what Raspbmc became)

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/audio.conf

LibreELEC (Raspberry Pi build)

mount -o remount,rw /flash

Add the following to you config.txt:

nano /flash/config.txt
dtparam audio=on

There is more detail about this file here: https://wiki.libreelec.tv/index.php?title=Config.txt

Usage

In Kodi->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 (not confirmed that this issue remains with Kodi) that can cause the Chooser component to improperly exit if you run it from the programs list rather than a home screen icon).

XSqueeze does not live in the music plugins section as it is not a typical Kodi music plugin, it is a Program plugin as the playback itself is external to Kodi'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.

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 will 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 or Return if using a TV Remote via CEC). 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.

(Other Skins) - There have been reports of missing controls with other skins - try using Confluence if you have this issue. Would like some help with working out why this occurs - I always use Confluence. If you have any solutions - please post them in the forum thread!

Troubleshooting

Audio Issues (dropouts, no audio etc)

FIRST, TRY TURNING OFF KODI MENU SOUNDS AND THE KEEP AUDIO DEVICE ALIVE OPTION!!

Note: Squeezeslave Users: In XSqueeze settings->Local Playback->Extra squeezeslave arguments-> add '-y200' (without the quotes) to try & solve audio dropout issues. Note: squeezelite Users: In XSqueeze settings->Local Playback->Extra squeezelite arguments-> add '-a 160' (without the quotes) to try & solve audio issues.

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 -> Audio Output Chooser

General Issues

If you are still having issues, then 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.

For further info on squeezeslave, see:

And for squeezelite, see:

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

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

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)

In general, squeezelite is really very good with sync, but try both players to see which works for you best.

Once you know in general which works best for you, there are some tweaks available in your LMS Settings->Player->Synchronize which can improve things further.

I regularly sync real squeezeboxes with squeezelite players and it works very well.

What to do if you're still stuck

Try harder and re-read these instructions - there's a lot of info here!

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 Installation of squeezelite or squeezeslave on your Kodi 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) - or you can use the ones in the addon folder too of course: 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.

Feedback

Please experiment with XSqueeze and report back. The thread for discussion/issues/etc is here: XSqueeze forum thread

Credits

XSqueeze was built by bossanova808 using some python and building on the hard work of other handy projects: SqueezeSlave and squeezelite and PyLMS.

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!

Thanks also to UNiversal, Aptalca and Jonathan for doing a great job adding to and cleaning up this wiki entry!