PDA

View Full Version : [ANNOUNCE] Squeezeslave: 1.0 released



Pages : [1] 2

ralphy
2010-11-17, 15:17
Squeezeslave 1.1-253 is now available at

http://sourceforge.net/projects/softsqueeze/files/squeezeslave/squeezeslave-1.1.253/

Release Downloads
Windows ASIO, Direct Sound and WASAPI (Vista/Win7) 32/64-bit (http://sourceforge.net/projects/softsqueeze/files/squeezeslave/squeezeslave-1.1.253/squeezeslave-1.1-253-win.zip/download)
Mac OSX 32-bit PowerPC/Intel and 64-bit Intel (http://sourceforge.net/projects/softsqueeze/files/squeezeslave/squeezeslave-1.1.253/squeezeslave-1.1-253-osx.tar.gz/download)
Linux v2.6 kernel 32/64-bit Intel ALSA, Pulseaudio and OSS (http://sourceforge.net/projects/softsqueeze/files/squeezeslave/squeezeslave-1.1.253/squeezeslave-1.1-253-lnx26.tar.gz/download)
Linux v2.6 ARMel NoFPU ALSA/OSS dynamic and OSS static (http://sourceforge.net/projects/softsqueeze/files/squeezeslave/squeezeslave-1.1.253/squeezeslave-1.1-253-lnx26-armel.tar.gz/download)
Linux v2.4 kernel 32-bit Intel ALSA and OSS (http://sourceforge.net/projects/softsqueeze/files/squeezeslave/squeezeslave-1.1.253/squeezeslave-1.1-253-lnx24.tar.gz/download)
Linux v2.4 Pentium MMX or better OSS statically linked (http://sourceforge.net/projects/softsqueeze/files/squeezeslave/squeezeslave-1.1.253/squeezeslave-1.1-253-lnx24-i586.tar.gz/download)
Solaris 9 32-bit SPARC/Solaris 10 64-bit SPARC/Solaris 10 32/64-bit Intel and OpenSolaris 32/64-bit Intel (http://sourceforge.net/projects/softsqueeze/files/squeezeslave/squeezeslave-1.1.253/squeezeslave-1.1-253-solaris.tar.gz/download)

Source
You can browse the source here (http://code.google.com/p/squeezeslave/source/browse/#svn/squeezeslave/branches/squeezeslave-1.1-253) or download it with subversion.


svn checkout http://squeezeslave.googlecode.com/svn/squeezeslave/branches/squeezeslave-1.1-253


The source is also available in tar file format (http://squeezeslave.googlecode.com/files/squeezeslave-1.1-253-src.tar.bz2) if you don't have subversion available.

Contributed Downloads
Synology DS109, DS409slim, DS209, DS409, DS509, RS409, DS110j, DS210j, DS410j Package (http://squeezeslave.googlecode.com/files/SqueezeSlave-1.0-r216-88f6281-001.spk) ** Thanks to JonasK for contributing the package **

OpenWrt brcm47xx OSS Package (http://squeezeslave.googlecode.com/files/squeezeslave-oss_1.1-r281_brcm47xx.ipk) Recommend as first choice for Broadcom 47xx users.
OpenWrt brcm47xx ALSA Package (http://squeezeslave.googlecode.com/files/squeezeslave-alsa_1.1-r281_brcm47xx.ipk) More resource hungry than the OSS version.
OpenWrt brcm63xx OSS Package (http://squeezeslave.googlecode.com/files/squeezeslave-oss_1.1-r281_brcm63xx.ipk)
OpenWrt brcm63xx ALSA Package (http://squeezeslave.googlecode.com/files/squeezeslave-alsa_1.1-r281_brcm63xx.ipk)
OpenWrt ar71xx OSS Package (http://squeezeslave.googlecode.com/files/squeezeslave-oss_1.1-r281_ar71xx.ipk)
OpenWrt ar71xx ALSA Package (http://squeezeslave.googlecode.com/files/squeezeslave-alsa_1.1-r281_ar71xx.ipk)
Generic MIPS ALSA/OSS (http://squeezeslave.googlecode.com/files/squeezeslave_1.1-r281_mips-lnx26.tar.gz) ** Thanks to MusicManiac for contributing the OpenWRT and MIPS packages **

http://ralph_irving.users.sourceforge.net/ss10disp.jpeg (http://ralph_irving.users.sourceforge.net/ss10disp.jpeg/)

What's new in Squeezeslave 1.1-253

Fixed a long standing issue with squeezeslave ALSA hanging after the playlist was stopped the first time.

Fix to handle partial sends in slimprotocol and http socket code. Thanks to Mike Bennett for the patch.

Better squeezeslave player sync support by adding STMl notify buffer threshold has been reached message when autostart=0/2 and modifying the first track threshold when autostart=1/3.

Use default retry_connection of 5 seconds instead of exiting with an error when supplied retry interval is invalid.

Updated all PORTAUDIO_DEV builds to revision 1608.

Added Squeezeplug ARMel ALSA and OSS builds to official release.

Added Slimprotocol BYE! message notify on squeezeslave exit.

Added FreeBSD sparc64 makefile in contrib.

Removed the Escape key from the list of keys that can quit from interactive mode, only Q or q exit now.

Removed old portmixer from all ALSA PORTAUDIO_DEV builds.

Increased reported firmware release to 5 to identify STMl and BYE! slimprotocol updates.

ralphy
2010-11-17, 15:18
What changed in Squeezeslave 1.0-210

Windows 7/Vista WASAPI Exclusive and Shared mode version.
Default is Exclusive mode.
Add -S/--shared option to the command line to enable sharing the audio device.
Settings in Control Panel for the shared device MUST be set to 16-bit, 44100 Hz (CD Quality).
Note: Changing audio settings in Control Panel silences audio until Squeezeslave is restarted. A known issue with the audio support library, no fix is currently available.

Removed the pthreadGC2.dll dependency for Windows.

Added option to increase the process priority class to high for windows using -H/--highpriority command line option.

Mac OSX 10.5/10.6 64-bit Intel version is now included in the Mac download package.

Added workaround for unavailable keys Insert, Home and End with an Apple keyboard in OSX terminal interactive mode.

Added portaudio hostapi name and low/high latency info to output device listing.

Added -y/--latency command line option to allow tuning the audio buffers to prevent audio dropouts or "skipping".
This issue is mainly seen on Linux systems and I have found the following values eliminates the dropouts.
For Linux 2.6 kernels add -y84 or 2.4 add -y140 to the command line.
This increases the CPU utilization of squeezeslave, while streaming.
These are the recommended starting values but can be increased by even values if dropouts are still heard.
Only available on squeezeslave versions with the compile flag portaudio:1541.
To check if your version has this option run squeezeslave with the -V/--version option.

Short first tracks preventing advance to the next track in the playlist has been fixed. LastFM and Napster now change to the next track as well.

OGG stream positioning no longer fails when clicking the time bar in the server default skin web interface.

Upgraded libogg to v1.2.0.

Upgraded libvorbis to v1.3.1.

Upgraded libportaudio to PADEV r1541.

You can interact with squeezeslave via the keyboard and control the player like the slimp3, sb2/3 and boom hardware players on all platforms. Note that bit mapped graphics are not available, only text characters can be displayed. Requires SBS v7.4 r26720+. 7.2/7.3 server patches are supplied in the binary package files. See -D and -w options for usage details.

The screen shot above is an 80x4 Windows command prompt running squeezeslave with these parameters.


squeezeslave.exe -r15 -Ysqueezeslave.log -D -w78

Key mappings are listed in the --help/-h information.



Keyboard Remote

0-9 0-9
Insert or I Add
Cursor Keys Arrows
>,< Fwd,Rew
Home or H Home
End or N Now Playing
Space or P Pause
Enter Play
Q Quit
R Repeat
S Shuffle
? Search
b Browse
F Favourites
% Size
Z Sleep
+,- Vol up,down


The displayed information can be changed in the player settings for the squeezeslave player.

All available command line options and compiling instructions are available on the wiki (http://wiki.slimdevices.com/index.php/SqueezeSlave).

Bug Fixes
Fixed datarace in slimaudio_buffer_set_readopt and slimaudio_buffer_available functions.
Fixed PA audio callback blocking when in output buffer underrun situation.
Fixed unlocking of buffer_mutex before data_len update.
Fixed buffer_read remaining blocked after the buffer has been closed.
Fixed ogg decoder handling for ov_read returning OV_HOLE.

Known Problems
Squeezeslave will not work with the Spotify Plugin as direct streaming is not supported.

OSX systems can take up to 20 seconds to enter sleep mode when running squeezeslave under launchctl.

If squeezeslave is playing when sleep mode is activated, no audio will be heard after system resume. Stop and restart the player from the classic web gui to restore audio. Alternatively, STOP the player not PAUSE before placing the computer into sleep state. This can be accomplished by holding the space bar in interactive mode until the player displays "stopping" in the display. There is also a "stop" button in the classic web gui.

LIRC and LCDd features are NOT available in the windows version.

Source
You can browse the source here (http://code.google.com/p/squeezeslave/source/browse/#svn/squeezeslave/trunk/squeezeslave) or download it with subversion.


svn checkout http://squeezeslave.googlecode.com/svn/squeezeslave/branches/squeezeslave-1.0-210


The source is also available in tar file format (http://squeezeslave.googlecode.com/files/squeezeslave-1.0-210-src.tar.bz2) if you don't have subversion available.

Deleted deprecated linux24 and linux26 non-interactive makefiles. Functionality now provided by -display makefiles. See deprecated/README.txt for details.

bobkoure
2010-11-17, 19:41
Thanks for all your work! - and thanks for finally setting up a 'donate' button; glad I could finally buy you a beer. :)

Luke Redpath
2010-11-17, 20:43
What strange timing...:)

I've been working on this over the last few days, was going to send you a PM but I may as well mention it here:

http://dl.dropbox.com/u/570528/squeezeslavemenu.png

I'll integrate the latest squeezeslave changes tomorrow. It's still very much a work in progress, source code is available here:

https://github.com/lukeredpath/SqueezeSlaveMenu

Congratulations on the 1.0 release!

richman
2010-11-18, 15:05
Ralphy!

Great! New version.

Which one is good for the dockstar/plug stuff, is there an ARM version?

ralphy
2010-11-19, 04:48
Squeezeslavemenu looks really cool!

I'm looking forward to trying it out on my mini.

ralphy
2010-11-19, 04:54
Which one is good for the dockstar/plug stuff, is there an ARM version?

I'm not planning official releases of the mipps or arm versions at this time.I don't have an arm build environment, nor anything to test the builds with. Perhaps you can track down JonasK and ask him to build the 1.0 release. I'll gladly host it with the development builds on google code.

eLR!C
2010-11-19, 14:49
Really useful client ... and lightweight :)
thanks !

ralphy
2010-11-20, 05:19
I'll integrate the latest squeezeslave changes tomorrow.

Hi Luke,

I'd like to suggest that you integrate the branch

http://squeezeslave.googlecode.com/svn/squeezeslave/branches/squeezeslave-1.0-210
instead of trunk as I'm planning some rework on trunk which may break your builds for a while.

truehl
2010-11-22, 08:23
Hi folks,
I'm desperatly searching for a ARM-Processor compiled version of SqueezeSlave 1.0. Is noone able to compile this? I would do that if I know how to do that.

Thx a lot,
greetings Thomas

truehl
2010-11-22, 23:22
Hi all,
obviously no one is able to compile a version of squeezeslave for ARM. So I would like to do that. Can I use the makefile for the old version? http://code.google.com/p/squeezeslave/source/browse/squeezeslave/trunk/squeezeslave/makefile.linux26-arm-oss?spec=svn175&r=175

Thx a lot,
Greetings,
Thomas

ralphy
2010-11-23, 04:59
Hi all,
obviously no one is able to compile a version of squeezeslave for ARM. So I would like to do that. Can I use the makefile for the old version? http://code.google.com/p/squeezeslave/source/browse/squeezeslave/trunk/squeezeslave/makefile.linux26-arm-oss?spec=svn175&r=175

Thx a lot,
Greetings,
Thomas

Yes, you can use them. I've moved them to the contrib directory.

There are two;

contrib/makefile.linux26-armel-oss
contrib/makefile.linux26-armel-alsa-display

If you build the ALSA version please update the line

LIBPORTAUDIO=portaudio-r1534

to

LIBPORTAUDIO=portaudio-r1541

so the build matches the 1.0 release.

I'll fix this in the repository in the next few days.

ralphy
2010-11-23, 05:05
truehl,

Please use the branch if possible

http://squeezeslave.googlecode.com/svn/squeezeslave/branches/squeezeslave-1.0-210

Thanks.

truehl
2010-11-23, 05:28
truehl,

Please use the branch if possible

http://squeezeslave.googlecode.com/svn/squeezeslave/branches/squeezeslave-1.0-210

Thanks.

Hi Ralpy,
thx a lot! So if I got you right i should use this makefile: http://squeezeslave.googlecode.com/svn/squeezeslave/branches/squeezeslave-1.0-210/contrib/makefile.linux26-armel-oss. And the source is: http://sourceforge.net/projects/softsqueeze/files/squeezeslave/squeezeslave-1.0.210/squeezeslave-1.0-210-lnx26.tar.gz/download

Is this right?

Greetings,
Thomas

ralphy
2010-11-23, 06:48
The makefile is correct. The source you point to is actually the linux 2.6 binary.

For the source


svn checkout http://squeezeslave.googlecode.com/svn/squeezeslave/branches/squeezeslave-1.0-210

If you don't have subversion I can create a tarball of the source for you.

truehl
2010-11-23, 07:04
The makefile is correct. The source you point to is actually the linux 2.6 binary.

For the source


svn checkout http://squeezeslave.googlecode.com/svn/squeezeslave/branches/squeezeslave-1.0-210

If you don't have subversion I can create a tarball of the source for you.

That would be very kind!!!

Thx,
Thomas

ralphy
2010-11-23, 07:31
That would be very kind!!!

Thx,
Thomas

You can download the source tarball for release 1.0-210 from here (http://squeezeslave.googlecode.com/files/squeezeslave-1.0-210-src.tar.bz2).

truehl
2010-11-24, 15:38
Hi Ralphy,
maybe I'm to d***, but I do not get it to work. Could you or someone else explain how to compile squeezeslave. I get some strange messages!

Where is Jonas K ??? ;)

Thx a lot,
Greetings,
Thomas

hyenadog
2010-11-25, 14:15
Thomas,

hi

on a positive note i ran the 1.0 version of squeezeslave in a windows terminal with no disconnect problems (tried for 15 mins) so maybe hope that the arm version of 1.0 will will deal with the disconnect probs

i had a bash at compiling directly on the dockstar (after installing all the bits and pieces needed but got gcc errors - maybe the config is wrong or it needs arm patches etc .. too much for me :-(

rgds

ian

truehl
2010-11-25, 15:04
Thomas,

hi

on a positive note i ran the 1.0 version of squeezeslave in a windows terminal with no disconnect problems (tried for 15 mins) so maybe hope that the arm version of 1.0 will will deal with the disconnect probs

i had a bash at compiling directly on the dockstar (after installing all the bits and pieces needed but got gcc errors - maybe the config is wrong or it needs arm patches etc .. too much for me :-(

rgds

ian

Hi Ian,
yes, it was the same for me!!!

Hope that Jonas K will help soon!

ralphy
2010-11-26, 04:46
i had a bash at compiling directly on the dockstar (after installing all the bits and pieces needed but got gcc errors - maybe the config is wrong or it needs arm patches etc .. too much for me :-(

rgds

ian

What are the gcc errors? I might be able to help.

ralphy
2010-11-26, 04:50
Hi Ralphy,
maybe I'm to d***, but I do not get it to work. Could you or someone else explain how to compile squeezeslave. I get some strange messages!

Where is Jonas K ??? ;)

Thx a lot,
Greetings,
Thomas

If you post these messages I may be able to help.

ralphy
2010-11-26, 05:03
Where is Jonas K ??? ;)

I've sent Jonas an email asking if he could build a new binary for us.

truehl
2010-11-28, 01:29
I've sent Jonas K an email asking if he could build a new binary for us.

Thanks a lot Ralphy!
So we wait for Jonas, If that won't work, I'll give you more details!

Greetings,
Thomas

ralphy
2010-11-28, 05:49
Thanks a lot Ralphy!
So we wait for Jonas, If that won't work, I'll give you more details!

Greetings,
Thomas

Jonas sent me ALSA and OSS binaries which I've uploaded to googlecode (http://squeezeslave.googlecode.com/files/squeezeslave-1.0-216-marvell6281-lnx26.tar.gz).

If the ALSA one works on the dockstar you won't need to use aoss anymore.

The original makefile for the armel alsa has been replaced at r217 by the one Jonas used to build the ALSA binary.

truehl
2010-11-28, 13:39
Jonas sent me ALSA and OSS binaries which I've uploaded to googlecode (http://squeezeslave.googlecode.com/files/squeezeslave-1.0-216-marvell6281-lnx26.tar.gz).

If the ALSA one works on the dockstar you won't need to use aoss anymore.

The original makefile for the armel alsa has been replaced at r217 by the one Jonas used to build the ALSA binary.

Hi Ralphy,
thx a lot again. I've got the oss version running! Which version is the prefered? It look like you prefer the ALSA-version! How do I get this version to work? I've tried this:

apt-get --yes install alsa
apt-get --yes install subversion
apt-get --yes install libasound2-dev
apt-get --yes install libncurses5-dev
apt-get --yes install liblircclient-dev

but it don't work for me.

And I'm stil searching for a possibility to start SqueezeSlave at system start and keep it alive!

Any ideas?

Thx Jonas K !!!

Greetings,
Thomas

ralphy
2010-11-28, 15:18
Does ./squeezeslave-1.0-216-alsa -L list any devices?

If so, the mixer settings could all be muted. Remember we had to unmute them in the VM to get squeezeslave working?

Is squeezeplug the same distro as the vm?

If so, I can create and test an init script for squeezeslave to start automatically on the VM and you can try it on the plug.

Let me know.

truehl
2010-11-29, 12:38
Does ./squeezeslave-1.0-216-alsa -L list any devices?

If so, the mixer settings could all be muted. Remember we had to unmute them in the VM to get squeezeslave working?

Is squeezeplug the same distro as the vm?

If so, I can create and test an init script for squeezeslave to start automatically on the VM and you can try it on the plug.

Let me know.

Hi Ralphy,
I've done this:
apt-get install alsa-base
apt-get install alsa-utils

Than I started the alsmixer and saw a device (0).
Than: ./squeezeslave-1.0-216-alsa -L
output: PortAudio error7: No output devices found.

So Alsa don't work I think. The mixer settings are OK.

Yes the distro is the same on VM. Debian Squeeze!

Right now I thinking about to make a collection to by you a dockstar device!!! I'm sure you will love that!!! Could you tell me the price for a dockstar in Canada???

;) Greetings from Germany,
Thomas

Prospect
2010-11-29, 15:32
Would it be possible to use SS directly with squeezebox.com without running a Squeezebox Server locally? I have tried to run

./squeezeslave-intel mysqueezebox.com

There are no error messages so it seems that SS connects to the server but I do not understand how I can connect SS to my mysqueezebox.com accunt. Anny help would be appreciated.

ralphy
2010-11-30, 04:42
Would it be possible to use SS directly with squeezebox.com without running a Squeezebox Server locally? I have tried to run

./squeezeslave-intel mysqueezebox.com

There are no error messages so it seems that SS connects to the server but I do not understand how I can connect SS to my mysqueezebox.com accunt. Anny help would be appreciated.

I've never tested this, but others have reported that Logitech "blocks" softplayers on mysb..

ralphy
2010-11-30, 05:04
Right now I thinking about to make a collection to by you a dockstar device!!! I'm sure you will love that!!! Could you tell me the price for a dockstar in Canada???

;) Greetings from Germany,
Thomas

I've sent you a PM.

Prospect
2010-11-30, 05:06
I've never tested this, but others have reported that Logitech "blocks" softplayers on mysb..

I am currently running SqueezePlay with mysb so I do not think that blocking is the issue. While SqueezePlay has a gui for providing credentials and logging in to mysb while SS have not. It is stated in the wiki that SS should work with Squeezenetwork. I just don't understand how.

Mnyb
2010-11-30, 05:37
I am currently running SqueezePlay with mysb so I do not think that blocking is the issue. While SqueezePlay has a gui for providing credentials and logging in to mysb while SS have not. It is stated in the wiki that SS should work with Squeezenetwork. I just don't understand how.

Btw the local server has a setings page for mysqueezebox.com .

click on the settings link in th lower right corner in the web-UI

But it should be squeezeboxserver > 7.4 -7.5 not an old SS slimserver 6.x

If you have a local server with your mysb.com credentials in the settings I think the players are automatically regiostred nowdays ? or are they.

Try to use the music source menu in the web-UI I think it is under extras and try to conect a squeeze slave ?

Prospect
2010-11-30, 08:48
Thanks Mnyb

I tried to run SBS on the same machine as SS and indeed SS showed up in MySB. However I was not able to connect to it.

mhaas
2010-12-01, 04:43
I installed the latest squeezeslave on my WinXP PC and I'm experiencing strange problems with it. Every time I start a new track or change a track, the music is interupted with harsh loud hiss/white noise for a few seconds of the play. Then it works OK. I've tried to eliminate various possible reasons but it was the same when I tried:
1. to use both squeezeslave and squeezeslave-asio with asio4all
2. different latencies with -y switch
3. -H switch

I also can use Foobar with/without asio and all is OK.

My SB runs on Synology 119j and is version 7.5.1-r30836
The connection is wireless 802.11n 5GHz and quite fast.
I have a SB receiver in another room and no problems with it either

Any help would be very much appreciated

ralphy
2010-12-01, 05:25
I installed the latest squeezeslave on my WinXP PC and I'm experiencing strange problems with it. Every time I start a new track or change a track, the music is interupted with harsh loud hiss/white noise for a few seconds of the play. Then it works OK. I've tried to eliminate various possible reasons but it was the same when I tried:
1. to use both squeezeslave and squeezeslave-asio with asio4all
2. different latencies with -y switch
3. -H switch

I also can use Foobar with/without asio and all is OK.

My SB runs on Synology 119j and is version 7.5.1-r30836
The connection is wireless 802.11n 5GHz and quite fast.
I have a SB receiver in another room and no problems with it either

Any help would be very much appreciated

First thing I'd suggest is uninstalling ASIO4ALL, reboot and then try using the direct sound version squeezeslave.exe with just the -R option and post back your results.

ralphy
2010-12-01, 05:36
Hi Ralphy,
thx a lot again. I've got the oss version running! Which version is the prefered? It look like you prefer the ALSA-version! How do I get this version to work?


I've actually found the OSS version which uses the older portaudio library runs better on lower cpu powered systems. You can also create a binary that doesn't rely on additional external libraries. ALSA is terrible for this, you have to install so much "baggage" like libraries and kernel modules that use up a lot of extra memory which is usually low on these systems to begin with.

mhaas
2010-12-01, 06:11
Sorry I should have made it clear:
I actually started with squeezeslave and DirectSound without asio4all. The problems were the same.

ralphy
2010-12-01, 07:57
Sorry I should have made it clear:
I actually started with squeezeslave and DirectSound without asio4all. The problems were the same.

I had a similiar problem when my hard drive was starting to fail. There were errors in the event viewer that clued me in to the issue. Imaged the drive and replaced it and the system has been working great ever since.

mhaas
2010-12-01, 09:59
I had a similiar problem when my hard drive was starting to fail. There were errors in the event viewer that clued me in to the issue. Imaged the drive and replaced it and the system has been working great ever since.

I've checked both the Synology and the PC disks, they seem to be OK.

mhaas
2010-12-01, 11:27
I installed the latest squeezeslave on my WinXP PC and I'm experiencing strange problems with it. Every time I start a new track or change a track, the music is interupted with harsh loud hiss/white noise for a few seconds of the play. Then it works OK. I've tried to eliminate various possible reasons but it was the same when I tried:
1. to use both squeezeslave and squeezeslave-asio with asio4all
2. different latencies with -y switch
3. -H switch

I also can use Foobar with/without asio and all is OK.

My SB runs on Synology 119j and is version 7.5.1-r30836
The connection is wireless 802.11n 5GHz and quite fast.
I have a SB receiver in another room and no problems with it either

Any help would be very much appreciated


I've now found out that both squeezeslave.exe and squeezeslave-asio.exe have problems running on my PC, e.g. with the display switch -D they are both nonresponsive. Any pre-requisites/updates I should check for on the WinXP system?


Update - these problems only occur when I play flac files. Smaller mp3 files are OK.

ralphy
2010-12-02, 04:43
I've now found out that both squeezeslave.exe and squeezeslave-asio.exe have problems running on my PC, e.g. with the display switch -D they are both nonresponsive. Any pre-requisites/updates I should check for on the WinXP system?


Update - these problems only occur when I play flac files. Smaller mp3 files are OK.

Then it's most likely your wireless network bandwidth is saturated playing flac files. The display output is sent from the server.

mhaas
2010-12-02, 06:10
Then it's most likely your wireless network bandwidth is saturated playing flac files. The display output is sent from the server.

Yeah, I was thinking it might be the wireless, especially when it happens at the start when the buffers are being filled. But my WLAN between the SB and squeezeslave is fast 802.11n. And it works OK on my receiver in another room which has only 802.11g wireless connection.

Zilog
2010-12-02, 11:15
Hi there Ralphy,
Long time lurker, first time poster, so please be gentle! :)
Can SqueezeSlave run natively under DOS (e.g. MS DOS 6.22)?

I've the idea of running on an old VIA ITX PC with DOS if SqueezeSlave can run under DOS. Obviously with DOS there would be minimal overhead and quick boot-up. The PC would switch on automatically using a relay linked to amplifier power supply.
Effectively the PC would be operating like a Squeezebox Receiver.

Do one of the Squeezeslave executables work with a DOS real-mode audio driver?

Using Squeezeslave under Windows on work PC at the moment, works very well - this is what got me thinking! May be in over my head though with DOS idea, although like the idea of brushing up on long lost command line skills!

Thanks,
Zilog

ralphy
2010-12-03, 04:51
Hi there Ralphy,
Long time lurker, first time poster, so please be gentle! :)
Can SqueezeSlave run natively under DOS (e.g. MS DOS 6.22)?

Thanks,
Zilog
Welcome!

No squeezeslave won't work with DOS as there is no threads support and most of the support libraries are not available for it either. I do however run squeezeslave on an old laptop which has a 133MHz pentium mmx and only 48MB of ram. It runs an old i586 archlinux distribution and no gui. I use it in my garage.

http://code.google.com/p/archlinux-i586/

This project is no longer maintained. I'd suggest looking for a linux distribution that is known to work with the cpu on your motherboard.

Zilog
2010-12-03, 15:51
Hi Ralphy,

Thanks for the reply. Knew I was grasping at straws! Looking at Damn Small Linux now - has simple GUI, rather than being plunged straight into Linux command line (not afraid of command line, just don't know commands and file locations yet!). Might also look at a MiniXP / BartPE XP if can't figure out the Linux.

Thanks again, Zilog.

soundcheck
2010-12-05, 03:46
Hi Ralphy.

I tried to get the latest svn-build working on Ubuntu 10.10..

I now get the known portaudio message "PortAudio error7: No output devices found" . (Same problem as last year)

Makefile says: portaudio-r1541


I guess I should tell you that I have pulseaudio removed.

Any ideas?

Cheers

ralphy
2010-12-05, 04:22
Hi Ralphy.

I tried to get the latest svn-build working on Ubuntu 10.10..

I now get the known portaudio message "PortAudio error7: No output devices found" . (Same problem as last year)

Makefile says: portaudio-r1541


I guess I should tell you that I have pulseaudio removed.

Any ideas?

Cheers

Most makefiles use that version.

What was the filename?

What's the full output from a squeezeslave -V ?

soundcheck
2010-12-05, 05:21
I solved it.

I had the process started with a wrong option "-10" in daemon mode .
squeezeslave somehow kept running that way.
After killing that process I made it working.


Thx.

soundcheck
2010-12-05, 06:02
Ralphy.

2Qs.

Is there a way to have squeezeslave output pcm to stdout?
Is there a way to get hirez material streamed? A year back it was said 44/16 only -that might have changed. Even squeezplay runs 24/96 nowadys afaik.

Cheers

Gilbert
2010-12-05, 07:40
Hey there i get the same error

./bin/squeezeslave -V
squeezeslave 1.0-210 Dec 5 2010 15:23:21
compile flags: linux portaudio:1541 debug signals interactive daemon
buffer sizes: decoder 2097152 output 2822400 bytes

Copyright 2004-2007 Richard Titmuss, 2008-2010 Duane Paddock.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
gilbert@ambert:~/squeezeslave-1.0-210$ ./bin/squeezeslave -L
PortAudio error7: No output devices found.
gilbert@ambert:~/squeezeslave-1.0-210$

ralphy
2010-12-05, 10:08
Ralphy.

2Qs.

Is there a way to have squeezeslave output pcm to stdout?
Is there a way to get hirez material streamed? A year back it was said 44/16 only -that might have changed. Even squeezplay runs 24/96 nowadys afaik.

Cheers

1. See http://www.swview.org/blog/how-redirect-alsa-output-file
Post back if you get it working.
2. No. Still only 44.1/16

Gilbert
2010-12-05, 10:11
I solved my error my running under root " sudo ./bin/squeezeslave -M 192.168.10.200 "


;)

ralphy
2010-12-05, 11:14
I solved my error my running under root " sudo ./bin/squeezeslave -M 192.168.10.200 "


;)

Great!

You should specify a filename or device with -M.

ie. -M/dev/null or -M/tmp/squeezeslave.log

hdo
2010-12-07, 05:58
Hello Ralphy,

i just want to thank you for the great squeezeslave application.
I have played with it for a while and finally succeeded in building
a binary for the OpenWRT Platform for my Netgear wgt634u (Broadcom MIPS, brcm47xx).
If you don't mind i'll send you the neccessary Makefile and patches so
you can put them to the repository. This way others could also build
a binary version for their 'brcm477xx-based' router. As far as i know
the popular Asus WL-500g is also supported.

However i experienced hang ups with squeezeslave when the server shuts down.
I have to restart squeezeslave to reconnect. The 'retry' feature does not
work for me.

Do you have any ideas?

Greetings,

hdo

MusicManiac
2010-12-07, 09:23
However i experienced hang ups with squeezeslave when the server shuts down.
I have to restart squeezeslave to reconnect. The 'retry' feature does not
work for me.

I've never been able to get Squeezeslave to reconnect properly on OpenWrt. Restarting has been the only solution for me. It also doesn't like to obey the "x at power on" settings from the server, e.g. - I've never been able to get it to resume/restart a playlist or song after power up.

-MM

PS: What kernel are you using? SQS only worked for me once I compiled my own portaudio library. There wasn't(isn't?) a PA package available for OpenWrt when I first started.

ralphy
2010-12-07, 16:17
If you don't mind i'll send you the neccessary Makefile and patches so you can put them to the repository. This way others could also build a binary version for their 'brcm477xx-based' router. As far as i know the popular Asus WL-500g is also supported.
Sure. You can zip them up and attach them to a post or PM me.

I'd be happy to place your binary on the download site as well.


However i experienced hang ups with squeezeslave when the server shuts down. I have to restart squeezeslave to reconnect. The 'retry' feature does not work for me.

Do you have any ideas?

If you have -DUSE_SIGNALS_FOR_RESTART defined in the makefile try removing it, if it's not on the CFLAGS line, add it and do a make realclean and then a make.

bg214884
2010-12-24, 11:01
I have been trying to get squeezeslave working for a while (on ubuntu) and I keep getting the above error.

(./squeezeslave-lnx26-ubuntu: No such file or directory)

Has anyone else come across this and or got a solution?

Strace was not much help in identifying what it was trying to open:


strace ./squeezeslave-lnx26-ubuntu
execve("./squeezeslave-lnx26-ubuntu", ["./squeezeslave-lnx26-ubuntu"], [/* 17 vars */]) = -1 ENOENT (No such file or directory)
dup(2) = 3
fcntl(3, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd6fbb80000
lseek(3, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(3, "strace: exec: No such file or di"..., 40strace: exec: No such file or directory
) = 40
close(3) = 0
munmap(0x7fd6fbb80000, 4096) = 0
exit_group(1) = ?

Nick

MusicManiac
2010-12-24, 16:15
I have been trying to get squeezeslave working for a while (on ubuntu) and I keep getting the above error.

(./squeezeslave-lnx26-ubuntu: No such file or directory)

Has anyone else come across this and or got a solution?
Nick
Dumb questions first...

Did you compile yourself?
Are you in the same directory as the binary when you run ./squeezeslave-lnx26-ubuntu ?
Is the binary marked as executable?

Merry Christmas!
-mm

bg214884
2010-12-25, 06:46
Dumb questions first...

Did you compile yourself?
Are you in the same directory as the binary when you run ./squeezeslave-lnx26-ubuntu ?
Is the binary marked as executable?

Merry Christmas!
-mm
Merry Christmas,

Thanks for your reply. I really should have included this information. (as they were my first checks..

I used the prebuild binary from the following tgz: squeezeslave-1.0-210-lnx26.tar.gz

Yes I am in the same directory as the binary file and the file is marked as executable.

If strace was not finding the exe file it would have shown:
strace ./fish
strace: ./fish: command not found

rather than:
strace ./squeezeslave-lnx26-ubuntu
execve("./squeezeslave-lnx26-ubuntu", ["./squeezeslave-lnx26-ubuntu"], [/* 17 vars */]) = -1 ENOENT (No such file or directory)
dup(2) = 3
fcntl(3, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2a702ba000
lseek(3, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(3, "strace: exec: No such file or di"..., 40strace: exec: No such file or directory
) = 40
close(3) = 0
munmap(0x7f2a702ba000, 4096) = 0
exit_group(1) = ?

So it is finding the exe but then it is something that the exe is looking for at start up that it can't find.

~N

MusicManiac
2010-12-25, 08:21
Merry Christmas,

Thanks for your reply. I really should have included this information. (as they were my first checks..

I used the prebuild binary from the following tgz: squeezeslave-1.0-210-lnx26.tar.gz

Yes I am in the same directory as the binary file and the file is marked as executable.
...

~N

What version of Ubuntu? It's not 64bit by chance is it?

-mm

bg214884
2010-12-25, 11:20
What version of Ubuntu? It's not 64bit by chance is it?

-mm

Linux ubuntu 2.6.35-22-server #33-Ubuntu SMP Sun Sep 19 20:48:58 UTC 2010 x86_64 GNU/Linux

ubuntu 10.10 amd64 (well intel but amd46 is the instruction set).

I have used server as 1. it gives me more control as what modules are installed and 2. I don't plan to have a monitor attached to the server.

I have tried this on both real hardware and on a vm both with the same results.


Nick

MusicManiac
2010-12-25, 21:15
Forgive me if I've missed something here, but I think you're trying to use a 32bit binary on a 64bit system.

If you don't have the 32bit support libs loaded you probably wont get far. ( and I wouldn't suggest cluttering up your system getting those working if its just for this)

There should be a 64bit binary in that package you downloaded. Give it a shot and see if it works out any better.

If you have problems with that one I can send you a 64bit binary from one of my systems to try.

-mm

bg214884
2010-12-26, 00:38
Forgive me if I've missed something here, but I think you're trying to use a 32bit binary on a 64bit system.

If you don't have the 32bit support libs loaded you probably wont get far. ( and I wouldn't suggest cluttering up your system getting those working if its just for this)

There should be a 64bit binary in that package you downloaded. Give it a shot and see if it works out any better.

If you have problems with that one I can send you a 64bit binary from one of my systems to try.

-mm

DoH, yep you are right I had assumed the 32bit libs would be installed by default.

Thank you for you assistance.

~N

ralphy
2010-12-26, 04:24
DoH, yep you are right I had assumed the 32bit libs would be installed by default.

Thank you for you assistance.

~N

You should be using the 64-bit binary that is included in that tar file.

./squeezeslave-lnx26-i64

It was compiled on Ubuntu 10 64-bit.

murkle
2010-12-26, 14:50
I'm having a recurring problem where squeezeslave sometimes refuses to output any audio. This only every happens at track changes, never during a song. I'm running:

root@server:~# /usr/sbin/squeezeslave --version
squeezeslave 1.0-210 Oct 31 2010 18:59:32
compile flags: linux portaudio:1541 debug signals interactive daemon
buffer sizes: decoder 2097152 output 2822400 bytes

This is the 32bit binary available from your site.

Happy to provide debug logs, but is there a particular debug level you think would be most useful, or just 'all'?

I have a full debug log, but it's 5MB, as it took me 10 or so track changes to cause the bug. Uploading now..

ralphy
2010-12-28, 07:08
With linux this issue is almost always related to system library versions being different in the precompiled binary versus what your system is using.

Please compile squeezeslave on your linux system and try again.
You'll find detailed build instructions in the wiki. See the first post of this thread for the link.

murkle
2010-12-28, 10:20
With linux this issue is almost always related to system library versions being different in the precompiled binary versus what your system is using.

Please compile squeezeslave on your linux system and try again.
You'll find detailed build instructions in the wiki. See the first post of this thread for the link.

Hi, just successfully built my own binary, but the exact same problem is happening. Happy to provide logs, any particular levels that are needed?

ralphy
2010-12-28, 14:00
I looked at the logfile from your previous post everything looks okay.

Can you provide the output from the following.

squeezeslave -V

squeezeslave -L

I see you're using the latest 7.6 server.

Can you confirm the same audio silence behaviour with 7.5.2?

If yes, run another test with -dall (full debug) and server version 7.5.2.

BenH73
2010-12-31, 17:54
Hi Ralphy

Santa brought me a WDTV Live and I thought it would make a good device to run squeezeslave (it's quite cheap here in Australia now, probably to compete with the new apple tv).

I have installed WDLXTV (homebrew firmware) and optware for wdlxtv.

I tried running this version:
squeezeslave-1.0-217-mips-lnx26.tar.gz

When I run it with -L I get:
PortAudio error4: Host error. Could not open any audio devices.

When I run it with -V I get something similar to this (I just copied that from the net, but it is definitely 1810):
squeezeslave 0.9-129
compile flags: linux portaudio:1810 debug signals daemon

I think the piece that is missing is the alsa-oss package, but this is not in the optware list for the wdtv, so I have yet to try that.

Am I on the right track using this version of squeezeslave? Is it worth persisting?

Thanks
Ben

MusicManiac
2010-12-31, 23:20
Ben,

Is the "0.9-129" what you copied from the net? It should be returning "1.0-217".

Anyway, that is a OSS version of squeezeslave for a 2.6 kernel.

I'm not familiar with the device or software setup - is the "alsa-oss package" for alsa support on top of OSS, or is it support for both?

Is OSS working on the device in general?

-MM

BenH73
2011-01-01, 01:05
Hi MM

Thanks for the reply. The version is just what I copied from the net. The correct version is displaying.

To be honest I haven't looked into how alsa and oss work to check if things are working properly, but the video files have sound.

The main information I'm after at the moment is whether the squeezeslave file I am trying to use is the correct one for the sigma 8655 chipset of the wdtv live?

Thanks
Ben

BenH73
2011-01-01, 04:11
Nevermind, it's too hard and tomorrow is the last day I can return it, so it's going back.

Thanks anyway.
Ben

henfri
2011-01-02, 14:36
Hi,

thanks for writing Squeezeslave.

I have some trouble compiling it under ubuntu:


svn checkout http://squeezeslave.googlecode.com/svn/squeezeslave/branches/squeezeslave-1.0-210
cd squeezeslave-1.0-210/
make -f makefile.linux26-alsa-display realclean
make -f makefile.linux26-alsa-display
...
In file included from src/squeezeslave/squeezeslave.c:38:
src/squeezeslave/squeezeslave.h:56:20: error: curses.h: No such file or directory
src/squeezeslave/squeezeslave.h:58:30: error: lirc/lirc_client.h: No such file or directory
src/squeezeslave/squeezeslave.c: In function ‘main’:
src/squeezeslave/squeezeslave.c:659: warning: implicit declaration of function ‘getch’
src/squeezeslave/squeezeslave.c:659: error: ‘ERR’ undeclared (first use in this function)
src/squeezeslave/squeezeslave.c:659: error: (Each undeclared identifier is reported only once
src/squeezeslave/squeezeslave.c:659: error: for each function it appears in.)
make: *** [src/squeezeslave/squeezeslave.o] Error 1


My mistake, or is there something wrong in the svn?

Greetigs,
Hendrik

ralphy
2011-01-03, 05:40
You don't have all the required packages installed.

Please see the linux build instruction section of the wiki (http://wiki.slimdevices.com/index.php/SqueezeSlave#Linux_build_instructions) for the required list and how to install them.

murkle
2011-01-03, 07:18
Can you confirm the same audio silence behaviour with 7.5.2?

If yes, run another test with -dall (full debug) and server version 7.5.2.

Hi running 7.5.2 now, same problem though ONLY if I run as a daemon. Running squeezeslave in a terminal meant that the problem couldn't be replicated after 50 track changes. Have attached a log file, with the problem happening (while run with -M switch).

root@server:/tmp# squeezeslave -V
squeezeslave 1.0-210 Dec 28 2010 16:31:42
compile flags: linux portaudio:1541 debug signals daemon
buffer sizes: decoder 2097152 output 2822400 bytes

Copyright 2004-2007 Richard Titmuss, 2008-2010 Duane Paddock.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
root@server:/tmp# squeezeslave -L
Output devices:
0: (ALSA) HDA Intel MID: STAC92xx Analog (hw:0,0) (11/46)
1: (ALSA) front (11/46)
2: (ALSA) surround40 (11/46)
3: (ALSA) surround51 (11/46)
4: (ALSA) surround71 (11/46)
* 5: (ALSA) default (42/46)
6: (ALSA) dmix (42/42)
7: (OSS) /dev/dsp (11/46)
root@server:/tmp#

ralphy
2011-01-03, 09:54
What's the full command line you use with -M failing?

murkle
2011-01-03, 10:14
What's the full command line you use with -M failing?

/usr/sbin/squeezeslave --retry -M /var/log/squeezeboxserver/slave.log

murkle
2011-01-03, 10:54
Sorry about this, the problem is actually also happening when I'm NOT running it with the -M switch - so disregard my last post.

Was there anything useful in the logs?

ralphy
2011-01-04, 05:15
Sorry about this, the problem is actually also happening when I'm NOT running it with the -M switch - so disregard my last post.

Was there anything useful in the logs?

Yes, I see buffer underruns which would explain the silence.

I've seen this before and it turned out to be a bug in the alsa sound card driver. It was the HDA Intel driver, which it looks like your using as well.

Do you have a usb sound card? If so, plug it in and try pointing squeezeslave to it using the -o option with the number from -L and see if you have the same issue. I was never able to work around the bug and I now use a usb sound card on that system.

murkle
2011-01-04, 05:18
Yes, I see buffer underruns which would explain the silence.

I've seen this before and it turned out to be a bug in the alsa sound card driver. It was the HDA Intel driver, which it looks like your using as well.

Do you have a usb sound card? If so, plug it in and try pointing squeezeslave to it using the -o option with the number from -L and see if you have the same issue. I was never able to work around the bug and I now use a usb sound card on that system.

I recently built the most recent stable alsa drivers which improved the HDA support greatly, but as you say it's never been perfect..

I do have another sound card as it happens, I'll give it a shot with this and report back.

Thanks so much for looking at this..

indifference_engine
2011-01-05, 16:23
Just wanted to say thanks and well done to Ralphy and co for a superb effort!

I'm running SS1.0-210 against SBS 7.52 on Win2003 and it appears to be rock-stable. It seems to work better than previous versions with BBC iPlayer streams; I found previous versions did something weird with the sampling rate so they played slow and deep, like a tape recorder running out of batteries, but this version is spot-on. Synchroniation with "real players" (I have a duet and an SB3) is also superb. I run the asio version on my Win2003 server (using the asio4all drivers) and the wasapi version on my Vista laptop, both are behaving excellently. Thank you!

murkle
2011-01-05, 16:27
I recently built the most recent stable alsa drivers which improved the HDA support greatly, but as you say it's never been perfect..

I do have another sound card as it happens, I'll give it a shot with this and report back.

Thanks so much for looking at this..

Well it turns out my external sound card is utter crap! Distorted sound all the time. I'll stick with the onboard and possibly see if I can make progress with it. Another option is to buy a better USB card, will do some research and see if I can stretch to buying one.

I also agree with the post above, SqueezeSlave is brilliant, and exactly what I need in my setup!

ralphy
2011-01-06, 05:44
You are both very welcome. It's great to get some positive feed back.

murkle, can you test the usb sound card anyway? You can run a second squeezeslave instance and you don't need to listen to it for more than a few seconds every now and then to see if it still is audible. Just create a quick play list, turn on repeat all and let it play. I'd like to know if it truely is the HDA driver.

ralphy
2011-01-06, 05:56
I've uploaded a new set of windows and osx test binaries to googlecode (http://code.google.com/p/squeezeslave/downloads/list).

This r227 build has a few changes that make syncing a bit more acurate and better error handling for the socket send code. Thanks to mbennett for the send fix.

The trunk sources have also been updated with these latest changes.


svn checkout http://squeezeslave.googlecode.com/svn/squeezeslave/trunk/squeezeslave

murkle
2011-01-06, 06:31
murkle, can you test the usb sound card anyway? You can run a second squeezeslave instance and you don't need to listen to it for more than a few seconds every now and then to see if it still is audible. Just create a quick play list, turn on repeat all and let it play. I'd like to know if it truely is the HDA driver.

Me too.. running the test now

murkle
2011-01-06, 06:54
So it took ages for anything to happen, but when I switched to a BBC iPlayer programme, I suddenly heard single distorted tone, and lots of "pa_callback: SLIMAUDIO_BUFFER_STREAM_UNDERRUN" appeared in the log.

Have attached it if it helps at all.

ralphy
2011-01-06, 07:16
Interesting, looks like the server stopped sending data.

Could you build a binary from the latest trunk r227 and run another test?

This time just use local music files and see if it breaks? I've never tested ss with the iplayer plugin and I'd like to confirm it's not related.

Edit: Please include the server.log file as well.

Thanks.

bobkoure
2011-01-07, 20:05
I'm having a bit of a problem with squeezeslave; I get drop outs of several seconds or more. It can happen several times in ten minutes and then not at all for a few hours.

I'm running squeezeslave on a WinXP box with 2M memory (usually about 1.3 in use) with an Athlon II processor. Output is via USB to a Behringer UCA202 using the Beheringer ASIO driver.
Squeezebox server's running on a separate machine (Win2003 server on a via C7 with 2M memory).
The two machines are connected by wire (gb with a single switch between the two).
I'm not doing anything in particular when the dropouts happen (no file transfers, etc).
I switched back to version 09.155 - and get the same dropouts.
I've tried various latency settings with no change (didn't expect one, but the help did suggest I try this for dropouts).

So - what do I look for in the debug log? Do I need to debug 'all' or are there a few areas that I'd ought to start out looking at? 9I was thinking maybe slimaudio_buffer and slimaudio_buffer_v(?)) Are debug writes handled asynchronously or could I be causing even more problems with debug 'all'?

Any other suggestions?

Oh - and I don't have any issues with either of the V3 hardware players in the house (both also hard wired).


Thanks!

ralphy
2011-01-08, 06:34
I had a similiar issue on a winxp machine a while back also using a usb sound card. It turned out to be the hard drive was starting to fail.

I had errors in the system event log regarding the inability to access swap.

I replaced the drive and have never had the dropouts since.

If there's nothing suspicious in the event logs you can try the -H option to raise the process priority.

I've only had two issues with dropouts on windows systems, the bad disk and wasapi on win7 during development. The wasapi issue was fixed by making changes to the portaudio library config.

If all else fails run squeezeslave with these additional parameters -dslimproto -dslimaudio_output -dslimaudio_http -dslimaudio -Ydebug.log and I'll take a look at it.

bobkoure
2011-01-08, 16:42
I had tried the -H, just forgot to mention it.

I've been looking at the event logs for both machines, but haven't seen anything that might be an issue, other than The device, \Device\Scsi\SI3114r1, did not respond within the timeout period. on the server.
But that only happened back on 12/25 - and disks all pass diagnostics

I'll try running with those debug params. Hopefully I can figure the issue without you having to spend time with the log.
Thanks!

tallpaul
2011-01-09, 04:33
Hi, this may be an old problem and apologies if so but I couldn't find reports via the search engine or in this thread. I'm running squeezeslave on Ubuntu Lucid 10.04 64 bit. I built it from source yesterday:

$ squeezeslave -V
squeezeslave 1.0-227 Jan 7 2011 20:20:03
compile flags: linux portaudio:1541 debug signals interactive daemon
buffer sizes: decoder 2097152 output 2822400 bytes

It works a treat generally however some (but by no means all) live streams are shifted up an octave or two so the singers sound like Pinky and Perky. To take an example KOZT. See http://www.kozt.com/koztlive.html for a list of the ways you can listen but http://koztlinux.kozt.com:9000 is as good as any all produce the Pinky and Perky effect.

They work fine on my Boom and Classic, just not from squeezeslave.

Is this something I can fix?

ralphy
2011-01-09, 05:06
Pitch change is happening because the stream is not 44.1KHz sampling rate, which is the ONLY rate squeezeslave supports. You can resample streams on the server, search the forums you'll find lots of examples.

ralphy
2011-01-09, 05:22
I'll try running with those debug params. Hopefully I can figure the issue without you having to spend time with the log.
Thanks!

Just re-read your previous post.

Debugging output uses 4k buffered writes. I've found that it doesn't impact playback issues.

Can you pinpoint when the dropouts started or have they always occured on this machine?

Does the standard direct sound version exhibit the same dropout behaviour?

I don't do a lot of testing with the ASIO version just a few hours playback using ASIO4ALL.
It could be that an update to the portaudio library requires additional config tweaks for ASIO.

Does ASIO 0.9-133 drop out as well?

tallpaul
2011-01-09, 05:31
Pitch change is happening because the stream is not 44.1KHz sampling rate, which is the ONLY rate squeezeslave supports. You can resample streams on the server, search the forums you'll find lots of examples.

OK, thanks Ralphy

bobkoure
2011-01-10, 21:16
Just re-read your previous post.
Can you pinpoint when the dropouts started or have they always occured on this machine?

Does the standard direct sound version exhibit the same dropout behaviour?

I don't do a lot of testing with the ASIO version just a few hours playback using ASIO4ALL.
It could be that an update to the portaudio library requires additional config tweaks for ASIO.

Does ASIO 0.9-133 drop out as well?

This machine and server have worked fine for a long time.
I'm not sure when this started happening.
A couple of months ago I (finally) upgraded my server-let from win2k to win2k3, but I'm pretty sure issues started after that.
Sorry to be scattered on the time, Mom's got Alzheimers and Dad's in and out of the hospital, so my focus gets pulled away from computer audio pretty regularly.

I started using ASIO with ASIO4All but had shutdown issues. Switched to a Beringer UCA202 USB sound card, which came with its own ASIO driver and that issue stopped. That was long before this happened.

I'll test non-ASIO and see how that goes.

Yup, same issue with non-ASIO


BTW, I keep getting basically 'thread is stopped' when I have a dropout. Almost like the server just stopped talking (that possible?).
proto_send: cmd=STAT len=53
output_thread STOP: 73633792
output_thread STOPPED: 0


%%%%%%%%%%%%%%%%%%%%
output_thread ETIMEDOUT-PLAYING: 73633792
proto_stat: code=STMt decoder_buffer_size=2097152 decoder_buffer_fullness=2091400 rbytes_high=0 rbytes_low=277656506 output_buffer_size=2822400 output_buffer_fullness=83968 elapsed_seconds=22 elapsed_milliseconds=22000 server_timestamp=0
proto_send: cmd=STAT len=53
proto_recv: cmd=vfdc len=174
pa_callback: STREAM_END:output_STMu:1
output_thread STMu-PLAYING: 73633792
proto_stat: code=STMu decoder_buffer_size=2097152 decoder_buffer_fullness=2091400 rbytes_high=0 rbytes_low=277656506 output_buffer_size=2822400 output_buffer_fullness=0 elapsed_seconds=22 elapsed_milliseconds=22476 server_timestamp=0
proto_send: cmd=STAT len=53
output_thread STOP: 73633792
output_thread STOPPED: 0
output_thread PAUSED: 0
proto_recv: cmd=vfdc len=174
proto_recv: cmd=vfdc len=174
proto_recv: cmd=vfdc len=174
proto_recv: cmd=strm len=30
strm cmd t strm.replay_gain:1933323210
proto_stat: code=STMt decoder_buffer_size=2097152 decoder_buffer_fullness=2091400 rbytes_high=0 rbytes_low=277656506 output_buffer_size=2822400 output_buffer_fullness=0 elapsed_seconds=0 elapsed_milliseconds=0 server_timestamp=1933323210
proto_send: cmd=STAT len=53
DONE strm cmd t
%%%%%%%%%%%%%%%%%%%%

bobkoure
2011-01-10, 21:46
Just re-read your previous post.
Does ASIO 0.9-133 drop out as well?

Same issue with 0.9-155. I don't have a copy of 09-133 anymore.
There's 0.9-95 on sourceforge. I'll test against that.

Thanks again!

ralphy
2011-01-11, 04:43
Same issue with 0.9-155. I don't have a copy of 09-133 anymore.
There's 0.9-95 on sourceforge. I'll test against that.

Thanks again!
The 0.9-133 release is available here (http://sourceforge.net/projects/softsqueeze/files/squeezeslave/squeezeslave-0.9.133/).

ralphy
2011-01-11, 05:07
Yup, same issue with non-ASIO
Good that rules out an ASIO specific issue.


BTW, I keep getting basically 'thread is stopped' when I have a dropout. Almost like the server just stopped talking (that possible?).

output_thread ETIMEDOUT-PLAYING: 73633792
proto_stat: code=STMt decoder_buffer_size=2097152 decoder_buffer_fullness=2091400 rbytes_high=0 rbytes_low=277656506 output_buffer_size=2822400 output_buffer_fullness=83968 elapsed_seconds=22 elapsed_milliseconds=22000 server_timestamp=0
proto_send: cmd=STAT len=53
proto_recv: cmd=vfdc len=174
pa_callback: STREAM_END:output_STMu:1
output_thread STMu-PLAYING: 73633792
proto_stat: code=STMu decoder_buffer_size=2097152 decoder_buffer_fullness=2091400 rbytes_high=0 rbytes_low=277656506 output_buffer_size=2822400 output_buffer_fullness=0 elapsed_seconds=22 elapsed_milliseconds=22476 server_timestamp=0
proto_send: cmd=STAT len=53
output_thread STOP: 73633792
output_thread STOPPED: 0
output_thread PAUSED: 0
proto_recv: cmd=strm len=30
strm cmd t strm.replay_gain:1933323210
proto_stat: code=STMt decoder_buffer_size=2097152 decoder_buffer_fullness=2091400 rbytes_high=0 rbytes_low=277656506 output_buffer_size=2822400 output_buffer_fullness=0 elapsed_seconds=0 elapsed_milliseconds=0 server_timestamp=1933323210
proto_send: cmd=STAT len=53
DONE strm cmd t


This looks normal.

The 'STREAM_END:output_STMu:1' indicates that the end of the track has been reached and the 'output_thread STOPPED' is the acknowledgement that we have completed playing out the buffer.

That being said was that track only 22.5 seconds long?

It's really looking like some other driver or process is causing the dropouts. Did you upgrade/change virus software?

Please post additional thoughts/info as they happen and hopefully we can track down the cause.

bobkoure
2011-01-11, 06:20
I've been running es|et nod32 all along on the client machine, and no antivirus on the server.
I've got a crazy day coming up, but after that, I'll uninstall nod32 and see if that does anything.
I'm also thinking about uninstalling my NIC drivers, then re-installing them.
Thanks for the pointer to 0.9-133. I'll test with that, too.

Oh, and 22sec sounds quite wrong. I was listening to the Modern Jazz Quartet to test and their tracks tend to be fairly long.

Thanks

creid
2011-01-12, 00:34
I am looking to buy one of the inexpensive MIPS-based netbooks, like the Skytone Alpha 400, to use as a player with Squeeze Server. I see there are a number of builds available for different OS/processor combinations. Would a MIPS + Linux 2.4 build be possible?

ralphy
2011-01-12, 14:54
Yes.

If the netbook is running a complete linux distribution you should be able to compile squeezeslave on the netbook. That is the recommended process for linux systems. It'll most likely require tweaking one of the current makefiles, which I can do for you. I'll need the output from 'uname -a', without the quotes and linux distribution installed for starters. You may need to install the compiler and other programs to do the build.

yvrRory
2011-01-20, 19:49
Hi Everyone,

I'm having some runtime problems with squeezeslave on my i686, Ubuntu platform. One of my playback devices with mixing is number 8. So if I start SS with

./squeezeslave -o 8 <server URL>

it dies immediately with the errors pasted in below. In essence it (alsa) seems to dislike the 44100 requested rate. My question is, is this a known problem? If not, I'm prepared to add a couple of printf()s to see if I can debug it, but I'd appreciate an opinion as to whether this is worth the trouble.

Thanks,

Rory

Expression 'SetApproximateSampleRate( pcm, hwParams, sr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1312
Expression 'PaAlsaStreamComponent_InitialConfigure( &self->playback, outParams, self->primeBuffers, hwParamsPlayback, &realSr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1982
Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2103
output_thread: PortAudio error1: Invalid sample rate

WAD62
2011-01-21, 04:14
Numpty question here...

I'm trying to install squeezeslave on XP, I've downloaded squeezeslave-1.0-210-win.zip, extracted the files, and executed squeezeslave.exe, which briefly throws up a DOS box, and that's about it.

Any pre requisites for installation?

Cheers...

ralphy
2011-01-21, 05:03
output_thread: PortAudio error1: Invalid sample rate

The device you're trying to open does not support 44.1Khz sampling rate.

Is it listed in ./squeezeslave -L

Also, I assume by <server url> you mean IP address or hostname as using a url will cause squeezeslave to fail.

ralphy
2011-01-21, 05:05
Numpty question here...

I'm trying to install squeezeslave on XP, I've downloaded squeezeslave-1.0-210-win.zip, extracted the files, and executed squeezeslave.exe, which briefly throws up a DOS box, and that's about it.

Any pre requisites for installation?

Cheers...

You need to open a command window first as you must specify the hostname of your sbs server if it's not running on the same machine.

See squeezeslave -h for all available command line options or the wiki.

WAD62
2011-01-21, 07:27
You need to open a command window first as you must specify the hostname of your sbs server if it's not running on the same machine.

See squeezeslave -h for all available command line options or the wiki.

Cheers mate I'll check it out...

Ah it's a blind app, not what I was looking for but thanks for the info

yvrRory
2011-01-21, 11:40
The device you're trying to open does not support 44.1Khz sampling rate.

Is it listed in ./squeezeslave -L

Also, I assume by <server url> you mean IP address or hostname as using a url will cause squeezeslave to fail.

Oops, yes.

Well thanks for the response, although I know my _machine_ can play 44100 Hz because I've done it. Squeezeslave also runs on the OSS device just fine, it's just the ALSA one it fails on. And in asound.conf, the device is defined as supporting "44100", but I'm a newbie with alsa and audio in general.

The overall goal here is to port ss to my embedded arm platform and be able to mix audio through dmix while ss is playing.

Anyway, thanks for your quick reply.

regards,

Rory

ralphy
2011-01-22, 05:11
Squeezeslave has already been ported to the arm platform.

As of r231 there are 3 makefiles available for arm.

For debian armel with no math processor.
contrib/makefile.linux26-armel-nofpu-alsa-display

This is the most up to date makefile which supports lirc, lcd usb displays and a console display.

These two are for the Synology DS109, DS409slim, DS209, DS409, DS509, RS409, DS110j, DS210j, DS410j using a cross compile environment.

contrib/makefile.linux26-armel-oss
contrib/makefile.linux26-armel-alsa

Good luck with your port!

sodface
2011-01-23, 09:20
Have there been any reports of anyone running squeezeslave on the Chumby (or in my case the Infocast 3.5)?

I tried both the precompiled arm binaries listed in this thread and they both fail to find any sound devices.

I tried compiling from the source listed in this thread also but without success. The alsa build dies early with a call to patch. The oss build goes much further but ultimately dies.

I know none of this info is detailed enough to be any help but my question really is - is it possible to get squeezeslave working on the Chumby or is there something fundamental that I'm missing?

I've been mucking around with network audio players since the Netgear MP101. My kingdom for a low cost "dumb" client that just boots and connects to a server for direction. The infocast chumby is the cheapest thing I've found that provides wifi and integrated audio. I know there's other kludges out there using wireless routers with usb audio devices but the infocast is small and could be gutted and hidden fairly easily into a nice set of powered speakers. I don't care about an interface at the speaker end, a laptop or smartphone to control playback would be preferred.

I got my wife a SB radio for Christmas. After years of upnp servers and clients the squeezebox approach was a nice change. Unfortunately the squeezebox line up doesn't really include an *affordable* dumb client with no local interface. The duet receiver (without remote) is the closest but it's been out of stock on the website for a while and now is not even listed so it appears that logitech doesn't plan on making it available. That leaves a gaping hole in the squeezebox line in my opinion.

Sorry for the long post. Am I the only one that just wants a set of speakers with a damn IP address???

ralphy
2011-01-24, 04:51
Sounds like the unit doesn't have OSS support.
I do have one other ALSA armel binary (http://squeezeslave.googlecode.com/files/squeezeslave-1.0-231-alsa-armel-lnx26.tar.gz) you can try.
It's built for a debian armel alsa linux 2.6 system.

sodface
2011-01-24, 15:38
Thanks Ralphy, that binary works! Listening on my infocast 3.5 now.

Donation sent.

I do get the following errors (same one twice) on start:




Expression 'GetExactSampleRate( hwParams, &defaultSr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 386
Expression 'GetExactSampleRate( hwParams, &defaultSr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 386


/edit - incidentally that file doesn't appear to actually be gzipped, just tarred. I renamed it to remove the .gz and then tar extracted it.

ralphy
2011-01-25, 05:04
If it sounds okay, that message can be ignored. It's issued from the audio library when the sample rate available is more than 1% different from what was requested.

I've replaced the uncompressed tar.gz file with an actual compressed one. Thanks for the heads-up...and the donation. :)

altmana
2011-01-25, 16:29
Sounds like the unit doesn't have OSS support.
I do have one other you can try.
It's built for a debian armel alsa linux 2.6 system.

Will this work on the infocast 8"?

yvrRory
2011-01-25, 16:38
Squeezeslave has already been ported to the arm platform.

As of r231 there are 3 makefiles available for arm.

For debian armel with no math processor.
contrib/makefile.linux26-armel-nofpu-alsa-display

This is the most up to date makefile which supports lirc, lcd usb displays and a console display.

These two are for the Synology DS109, DS409slim, DS209, DS409, DS509, RS409, DS110j, DS210j, DS410j using a cross compile environment.

contrib/makefile.linux26-armel-oss
contrib/makefile.linux26-armel-alsa

Good luck with your port!

Thank you for the pointers to those makefiles. Just a question about PortAudio: do you know if there is a minimum version of ALSA that PortAudio requires? The accompanying documentation for PA is a little old and only mentions OSS support. The arm platform I'm using comes with alsa 1.0.13.

I've found, for some reason, I have to add a few things to the makefile to get it going, but it links and runs. Only problem is it only finds an OSS device on the arm.

Spent the day reading through the slimaudio/*.c code. Very educational.

regards,

Rory

ralphy
2011-01-28, 05:16
I've used portaudio with ALSA versions as old as 1.0.5. Portaudio should work with all 1.0.x releases.

There was an api change for ALSA between 0.9 and 1.0.

As discussed on the portaudio mailing list the issue isn't the 1.0.13 version but rather portaudio configure couldn't find the necessary files to include ALSA support only OSS.

yvrRory
2011-01-28, 12:23
I've used portaudio with ALSA versions as old as 1.0.5. Portaudio should work with all 1.0.x releases.

There was an api change for ALSA between 0.9 and 1.0.

As discussed on the portaudio mailing list the issue isn't the 1.0.13 version but rather portaudio configure couldn't find the necessary files to include ALSA support only OSS.

Just closing this off here too. Everything is working now on my system and, for the record, here it is:

- ARM9 PXA310 with custom kernel
- 2.6.28
- alsa 1.0.13
- Squeezeslave 1.0-210/PA 1541

Ralphy, your comment "good luck with your port" turned out to be insightful, indeed. Squeezeslave seemed to be working, but closer inspection of the portaudio config.log output showed that only OSS support was being built into the image. Thanks a lot for your feedback, you have no idea how much it helped!

Rory

murkle
2011-02-04, 08:50
Interesting, looks like the server stopped sending data.

Could you build a binary from the latest trunk r227 and run another test?

This time just use local music files and see if it breaks? I've never tested ss with the iplayer plugin and I'd like to confirm it's not related.

Edit: Please include the server.log file as well.Hi I've not forgotten about this, just been busy. Will compile trunk and test without iPlayer at the beginning of next week.

I'm also currently purchasing a soundblaster usb soundcard as I don't know where to start pinpointing the HDA bug you mentioned..

ralphy
2011-02-09, 10:39
Hi I've not forgotten about this, just been busy. Will compile trunk and test without iPlayer at the beginning of next week.

I'm also currently purchasing a soundblaster usb soundcard as I don't know where to start pinpointing the HDA bug you mentioned..

Yes, please report back on your iplayer findings.

I've been testing the latest portaudio r1596 with my HDA sound card and it looks promising. The hda sound card has been working great for the last 4 hours. Rory was having issues with squeezeslave crashing on his ARM project board and the PA developers committed a fix which appears to work for the hda alsa driver as well.

If testing continues to go smoothly, I'll commit the changes to googlecode for you to test in the next day or two.

paul.j.ghosh
2011-02-10, 15:33
Most radio stations I am attempting to stream and play are sounding a lot faster and high pitched. The same stations play fine on a squeezebox boom. It was the same with the 0.9 versions. Has anyone experienced this?

tcutting
2011-02-10, 15:38
Most radio stations I am attempting to stream and play are sounding a lot faster and high pitched. The same stations play fine on a squeezebox boom. It was the same with the 0.9 versions. Has anyone experienced this?

Yes. Many radio streams are not at 44.1 kHz sample rate. The hardware players can adjust to this, but squeezeslave cannot.
If you are running squeezeboxserver on a reasonable computer, it's possible to setup transcoding to ensure all streams are converted to 44.1 before being sent to squeezeslave.

paul.j.ghosh
2011-02-10, 15:53
The squeezebox server is running on an older sparc based readynas. Can it handle transcoding?

Gilbert
2011-02-12, 03:01
How do i define the the squeezeslave name on boot ?

And how can i get it to show up in mysqueezebox.com under player ?


Running Ubuntu server with squeezeslave


squeezeslave 1.0-227 Jan 15 2011 13:54:05
compile flags: linux portaudio:1541 debug signals interactive daemon
buffer sizes: decoder 2097152 output 2822400 bytes

ralphy
2011-02-12, 03:49
How do i define the the squeezeslave name on boot ?
You can't. It's a squeezebox server side function.

See squeezeslave -h or the wiki for a complete list of options.


And how can i get it to show up in mysqueezebox.com under player ?
Mysqueezebox only supports logitech hardware players.

msdv
2011-02-14, 03:12
Dear all,

if I try to play the german football radio station
90elf (just a search in the radion station field will show all of their stations - I usually use the last one).

I just hear some clicks (but not the radio station) and squeezeslave starts to get unresponsive afterwards.

Is this a bug in squeezeslave? Do I need to transcode anything?

Thanks,
Markus.

ralphy
2011-02-15, 05:04
Dear all,

if I try to play the german football radio station
90elf (just a search in the radion station field will show all of their stations - I usually use the last one).

I just hear some clicks (but not the radio station) and squeezeslave starts to get unresponsive afterwards.

Is this a bug in squeezeslave? Do I need to transcode anything?

Thanks,
Markus.

Unfortunately, the stream is unavailable in my area, so I can't be sure, however, I've seen this before with internet streams that the server thinks are mp3 but the are actually aac encoded. The clicks are from using the mp3 decoder on an aac stream. SS becoming unresponsive is almost always due to the server running at 100% cpu and is not normally a problem with squeezeslave.

msdv
2011-02-15, 05:30
I've seen this before with internet streams that the server thinks are mp3 but the are actually aac encoded. The clicks are from using the mp3 decoder on an aac stream.

I have done a bit more research - and I have switched on the transcoder for the squeezeslave player.
A very brief test this morning showed that the stream is playing now and I saw that the squeezeserver spawned a lame/faad process.

I will watch this further - but it seems that my immediate problem is solved.
Thank you!.

murkle
2011-02-15, 16:27
Yes, please report back on your iplayer findings.

I know this sounds crazy, but I just can't reproduce the fault anymore! As far as I can tell the only thing that has changed is I've upgraded SBS to 7.5.3

So, switching from flacs, to mp3s, to AAC streams from iPlayer all works perfectly. I've also noticed the iPlayer streams are much quicker to start too now.. really strange...

murkle
2011-02-15, 16:43
I know this sounds crazy, but I just can't reproduce the fault anymore! As far as I can tell the only thing that has changed is I've upgraded SBS to 7.5.3

OK I am going crazy.. one thing that has changed is when running squeezeslave from the commandline I get this error message now - I've never seen portaudio mentioned before..


root@server:/usr/sbin# squeezeslave -o 7
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
PortAudio error7: No output devices found.

However when running it from my rc.local script the Portaudio error doesn't appear in the log file... I'm totally out of my depth here, maybe it makes sense to you though?

citoyen
2011-02-17, 02:50
Is someone working on compiling/packaging Squeezeslave for Synology DS211j?

ralphy
2011-02-17, 04:51
root@server:/usr/sbin# squeezeslave -o 7
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
PortAudio error7: No output devices found.

However when running it from my rc.local script the Portaudio error doesn't appear in the log file... I'm totally out of my depth here, maybe it makes sense to you though?

The PortAudio error is from squeezeslave saying that no soundcard could be found. I suspect it's due to the bt_audio_service_open failed messages. I don't know what is generating these errors but I do know they are NOT from squeezeslave.

ralphy
2011-02-18, 05:12
If testing continues to go smoothly, I'll commit the changes to googlecode for you to test in the next day or two.

I've committed r237 to googlecode which has fixed my problems with the snd_hda_intel alsa driver.

StuartUSA
2011-02-18, 18:18
Hi,

I have been playing with squeezeslave for a couple of weeks now trialling out squeezebox server and was going to build me a squeezeslave player on an old Via C3 board I have lying around. I have the bones of it running now and am very pleased, but have one question. Is it at all possible to turn the system off, power it down, using the squeeze server web GUI?

I see the power button but it only just seems to stop the player. Is there any hooks in squeezeslave to run a script when the power off is received?

I have been searching for a while and can't find anything, apologies if I missed it.

Thanks

xeon
2011-02-21, 11:22
hey guys,
just got my ds110j from synology and tried to use squeezeslave. other people already have failed at getting it to work on their synology devices, and the same happened to me. squeezeslave -L simply says 'PortAudio error4: Host error. Could not open any audio devices.'. what i found out is that the currently plugged-in usb soundcard (its a logitech headset) works with sound station. the correct device in my case is /dev/dsp4. if i put random data to that device via cat randomstuff > /dev/dsp4, i can hear static on the device, so i guess there should be a possibility to get it to work.
@ralphy:
if you're willing and have the time, i'd be glad to be your test slave to fix this "bug" ;)

edit: got it to work!
simply used the alsa-binary from the package squeezeslave-1.0-216-marvell6281-lnx26.tar.gz on the google code site :)

edit2: squeezeslave seems to be very resource hungry. it takes up 90% cpu time and occasionally (every 5 seconds or so) stutters a bit. any chance that there is a high prio switch or optimizations?

ralphy
2011-02-23, 04:54
edit2: squeezeslave seems to be very resource hungry. it takes up 90% cpu time and occasionally (every 5 seconds or so) stutters a bit. any chance that there is a high prio switch or optimizations?

Try adding -y84 to the command line when you start squeezeslave. Read the first post in this thread for more details.

On low powered cpus with no fpu 90% is not unusual depending on the stream format. Are you using ogg?

xeon
2011-02-24, 02:26
nope, alle mp3. i'll try that flag out. have to figure out where the start scripts of installed packages lay on my ds110j. i hope i can modify it to add the -y flag. thx!

vrette
2011-03-13, 08:34
Never mind - Posted question on how to modify the convert.conf file in general questions forum....

ralphy
2011-03-19, 05:30
I've uploaded new Windows, OSX and Linux 2.6 intel/armel 1.0-249 beta binaries to google code (http://code.google.com/p/squeezeslave/downloads/list) and updated the source repository (http://code.google.com/p/squeezeslave/source/checkout).

What's changed since the 1.0-210 release?

Added Marvel/ARMel linux 2.6 binaries in support of squeezeplug (http://squeezeplug.de/). This build uses the Tremor fixed point OGG library for lower cpu usage with ARM processors without a FPU.

Updated portaudio to r1608 which fixes the "no audio" issues reported by many linux ALSA users.

LIRC now works in daemon mode without needing to build in interactive/display support as well.

Fixed Slimprotocol handling for partial socket send calls.

Removed exit using the Escape key in interactive mode. Use Q/q only.

I will be putting all further squeezeslave development on hold until late fall and will only be checking this thread periodically during that time.

Happy listening!

gharris999
2011-03-20, 07:57
Hi,

I have been playing with squeezeslave for a couple of weeks now trialling out squeezebox server and was going to build me a squeezeslave player on an old Via C3 board I have lying around. I have the bones of it running now and am very pleased, but have one question. Is it at all possible to turn the system off, power it down, using the squeeze server web GUI?

I see the power button but it only just seems to stop the player. Is there any hooks in squeezeslave to run a script when the power off is received?

I have been searching for a while and can't find anything, apologies if I missed it.

Thanks

Check out 'Server Power Control' in the 3rd Party Plugins forum.

ralphy
2011-03-22, 15:06
I see the power button but it only just seems to stop the player.

Yes that's correct.

It's a "soft" power button.

Squeezeslave will "pretend" to power off and run the powered off screen saver if you're running the display version, just like the hardware players. It's never truely off, unless you kill the player process or press Q/q when using display mode.

You will need the plugin that gharris999 mentioned.

pseud
2011-03-25, 15:13
First, very many thanks for squeezeslave!

I have a Squeezebox Boom and Radio, together with the squeezeslave running on the same server box as SbS.

I've been using squeezeslave on my SbS server box for some time (months, not years). I've installed the real-time kernel from Planet CCRMA http://ccrma.stanford.edu/planetccrma/software/planetccrma.html and after adjusting for delay, everything stays beautifully in sync etc.

Up to a point...

I filed a bug report here:
http://bugs.slimdevices.com/show_bug.cgi?id=16997

With My Music library everything "just works"; everything stays in sync without me having to think about it.

But, with Internet Radio things get much more frustrating. My local radio Radio NZ National (mms://streaming.radionz.co.nz/national-mbr , the RadioTime stream is no better, probably worse) causes all my devices to stop when they're playing in sync. When I take squeezeslave out of the sync group, there's no sync problems playing Radio NZ National between Sb Radio & Boom. When I play BBC radio through the iPlayer plugin, the Sb Boom & Sb Radio play in sync, but - wait for it, squeezeslave pays at 1/2 X speed (according to my ear; or, was it 2xSpeed - can't remember). Some radio station streams play ok.

So, My Music is all recorded flac. Internet Radio tends to be transcribed by SbS (from mp3, wma aac etc) to flac for distribution around the players - could this be where the issue is? If it is, is this a bug with SbS or squeezeslave...? Is it caused by a hardware limitation on the transcribing process (500Mb of RAM, 2Gb swap in anticipation of expanding RAM sometime).

Or am I completely off track thinking this is an SbS problem, and it's something to do with squeezeslave?

I feel so close, but yet so far...

Does anyone have any pointers were to start debugging this. What component is most likely?

Mnyb
2011-03-26, 00:38
Syncing any software player squeezeslave sqeezeplay or softsqueeze to real hardware squeezeboxes is never going to be reliable to many factors outside logitechs controll, if it works good for you if not sorry.
there is some settings in the server you may try to tweak this can help.

the only contribution sqeezeslave makes to the problem is that it support 44.1 kHz sampling rate only.
This is the source of chipmunks or to slow playback. radio can 48kHz or 32kHz in low quality streams

Some users have worked arround with custom-convert.conf files using SOX on the server to transcode everything to 44.1 this may work but also give opurtunites for other problems when the usual transcoding rules dont work as expected any moore, it is beyond my abilities to explain howto a forum search would be good

MusicManiac
2011-03-26, 14:39
Much to my annoyance, Squeezeslave has begun "stuttering"/briefly dropping out at exactly -0:14 seconds of nearly every song I play. Its very quick when it happens and then the song continues on fine.

I'm running the latest nightly 7.6 and was wondering if anybody else has experienced this or has a suggestion on where to look? I can't seem to track down the problem.

Thanks,
mm

pseud
2011-03-27, 02:07
Thanks Mynb for the follow up.


Syncing any software player squeezeslave sqeezeplay or softsqueeze to real hardware squeezeboxes is never going to be reliable to many factors outside logitechs controll

Hay, if I was looking to logitech for an answer I would have used the warranty that came with squeezeslave:)

Re the 44.1 sample rate - oh! I hadn't seen anything in the documentation - but, scanning the forum I see there's plenty of comment. So, I guess the suggestion would be *not* to digitise my old vinyl at 192kHz if I want to reproduce it through squeezeslave... Time to get down and dirty with custom-convert.conf!

Re the "--help" text and the "--predelay_amplitude" switch, it says: "The frequency is set at the source's sampling rate/2 ..." That kinda implies variable sample rates, else why not simply "22.050"? Is it anticipated that squeezeslave will support other sample rates some time?

From what you say, it seems everything is likely to come down to sample rate transcoding - all my My Music files are flacs from my CDs so that would explain it's "beautiful sync". But, does the sample rate issue explain why some stations simply lock up and don't play at all?

And, is the stream sample rate displayed anywhere?

Many Thx,
Morgan.

ralphy
2011-03-28, 04:42
Much to my annoyance, Squeezeslave has begun "stuttering"/briefly dropping out at exactly -0:14 seconds of nearly every song I play. Its very quick when it happens and then the song continues on fine.

I'm running the latest nightly 7.6 and was wondering if anybody else has experienced this or has a suggestion on where to look? I can't seem to track down the problem.

Thanks,
mm

I haven't noticed this issue. I've been using 7.6 r32163 all morning with 1.0r249 lnx26 and not a stutter. I tried mp3, flac and ogg local files.

What SBS version on what OS and what squeezeslave version on what OS? So I can try to reproduce it.

MusicManiac
2011-03-30, 05:24
I haven't noticed this issue. I've been using 7.6 r32163 all morning with 1.0r249 lnx26 and not a stutter. I tried mp3, flac and ogg local files.

What SBS version on what OS and what squeezeslave version on what OS? So I can try to reproduce it.


SBS is r32163 on CentOS and SQS is 1.0r212MIPS.

It was working fine for the longest time, but something must have changed with one of the server revisions at some point. I haven't changed squeezeslave versions for quite awhile.

At first I thought it was just a fluke or a connection issue, but it definitely happens at -0:14 every time regardless of song length.
Before you go to any trouble let me try to get my build environment going and move to r250. I'll let you know how that goes.

Thanks

pseud
2011-03-31, 00:42
From what you say, it seems everything is likely to come down to sample rate transcoding - all my My Music files are flacs from my CDs so that would explain it's "beautiful sync". But, does the sample rate issue explain why some stations simply lock up and don't play at all?

And, is the stream sample rate displayed anywhere?

Always educational to follow up your own posts:)

After attempting to install the code provided here:
http://forums.slimdevices.com/showthread.php?p=618422#post618422

And "service stop & start", and then "tuning in" to problematic iNet stations (RadioNZ National, BBC Radio4, BBC Radio3) I got the following errors:

[root@mythtv squeezeboxserver]# service squeezeboxserver start
Starting Squeezebox Server: [11-03-28 00:09:52.6415] main::init (323) Starting Squeezebox Server (v7.5.3, r31792, Mon Jan 24 08:18:00 MST 2011) perl 5.012003
[ OK ]
[root@mythtv squeezeboxserver]# 110328 0:09:55 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead.
110328 0:09:55 [Warning] '--default-character-set' is deprecated and will be removed in a future release. Please use '--character-set-server' instead.
110328 0:09:55 [Warning] '--default-collation' is deprecated and will be removed in a future release. Please use '--collation-server' instead.

[root@mythtv squeezeboxserver]# Streaming: Launching mplayer -really-quiet -vc null -vo null -cache 128 -af volume=0,resample=44100:0:1,channels=2 -ao pcm:file=/dev/fd/3 mms://streaming.radionz.co.nz/national-mbr
mplayer: could not connect to socket
mplayer: No such file or directory
Streaming: Launching mplayer -really-quiet -vc null -vo null -cache 128 -af volume=0,resample=44100:0:1,channels=2 -ao pcm:file=/dev/fd/3 mms://streaming.radionz.co.nz/concert-mbr
mplayer: could not connect to socket
mplayer: No such file or directory
Streaming: Launching mplayer -really-quiet -vc null -vo null -cache 128 -af volume=0,resample=44100:0:1,channels=2 -ao pcm:file=/dev/fd/3 mms://wm-live.bbc.net.uk/wms/bbc_ami/radio4/radio4_bb_live_int_ep1_sl0?BBC-UID=64cd84d545fc4ee1ba5cf7e8e1fb96e0f27dc11b60c021 d4640fc9075433fd45&SSO2-UID=
mplayer: could not connect to socket
mplayer: No such file or directory
read error:: Resource temporarily unavailable
read error:: Resource temporarily unavailable
read error:: Resource temporarily unavailable
read error:: Resource temporarily unavailable
Streaming: Launching mplayer -really-quiet -vc null -vo null -cache 128 -af volume=0,resample=44100:0:1,channels=2 -ao pcm:file=/dev/fd/3 mms://wm-live.bbc.net.uk/wms/bbc_ami/radio3/radio3_bb_live_int_ep1_sl0?BBC-UID=64cd84d545fc4ee1ba5cf7e8e1fb96e0f27dc11b60c021 d4640fc9075433fd45&SSO2-UID=
mplayer: could not connect to socket
mplayer: No such file or directory

SO, the sample rate question doesn't explain why some radio stations don't play at all: SbS seems to be failing to create sockets for mplayer? Would this be a misconfigured mplayer install or an SbS problem? Where to to debug?

Also, a separate issue, there seems a fair amount of confusion where to put custom-convert.conf: should it go with convert.conf in /etc/squeezeboxserver/ or should it go in the SbS's root directory (/usr/share/squeezeboxserver/)?

M.

bpa
2011-03-31, 01:00
Some linux distros (especially NASs) do not include by default a device driver to support /dev/fd/3 just 0,1 & 2.

What sort of Linux are you using ?

check by doing a "ls /dev/fd" from a shell prompt.

pseud
2011-04-01, 03:15
Thanks for getting back bpa

Not using NAS though, this is fedora:

[root@mythtv ~]# ls /dev/fd
0 1 2 3
[root@mythtv ~]# uname -r
2.6.33.7-149.rt30.1.fc14.ccrma.i686.rtPAE

So, could the kernel flavour be contributing?

Thx,
M.

Volcacius
2011-04-20, 15:26
Hello to everyone,
I'm trying to install squeezeslave but I'm having some problems.

First, my setup:

SERVER - Qnap TS110, Debian Squeeze, SBS 7.6.0 r32296.

CLIENT - Linksys WRT160NL, ar71xx MIPS (not MIPSel) CPU, OpenWRT 10.3.1 RC4, usb audio working correctly (I can play local mp3s with madplay), using squeezeslave-oss_r217-1_ar71xx.

I start squeezeslave on the client using 'squeezeslave myserverip', then i try to play something, but I only hear a terrible noise. I can't use the --debug option (error: 'Recompile with -DSLIMPROTO_DEBUG to enable debugging'). I tried to recompile SS using the latest source on googlecode and this tutorial hype-free.blogspot.com/2009/04/compiling-software-for-openwrt-and.html but my skills are very limited and I can't write a proper makefile.
That said, i'm in need of help :D

Thanks!

MusicManiac
2011-04-21, 10:33
Hello to everyone,
I'm trying to install squeezeslave but I'm having some problems.

First, my setup:

SERVER - Qnap TS110, Debian Squeeze, SBS 7.6.0 r32296.

CLIENT - Linksys WRT160NL, ar71xx MIPS (not MIPSel) CPU, OpenWRT 10.3.1 RC4, usb audio working correctly (I can play local mp3s with madplay), using squeezeslave-oss_r217-1_ar71xx.

I start squeezeslave on the client using 'squeezeslave myserverip', then i try to play something, but I only hear a terrible noise. I can't use the --debug option (error: 'Recompile with -DSLIMPROTO_DEBUG to enable debugging'). I tried to recompile SS using the latest source on googlecode and this tutorial hype-free.blogspot.com/2009/04/compiling-software-for-openwrt-and.html but my skills are very limited and I can't write a proper makefile.
That said, i'm in need of help :D

Thanks!

Hi Volcacius,

Are you using kernel 2.6?

Do you know what audio modules are loaded?

What format/bitrate/sample rate are the files you're trying to play?

I know I bounced into this problem before during one experiment too many, but I don't remember what caused it.

-mm

Volcacius
2011-04-21, 12:45
Hi MusicManiac,

Yes, Linux version is 2.6.32.25. Lsmod says:



snd_usb_audio 56944 0
snd_usb_lib 12640 1 snd_usb_audio
ohci_hcd 16912 0
ath_pci 280992 0
ath_hal 293920 1 ath_pci
nf_nat_tftp 432 0
nf_conntrack_tftp 2400 1 nf_nat_tftp
nf_nat_irc 816 0
nf_conntrack_irc 2512 1 nf_nat_irc
nf_nat_ftp 1328 0
nf_conntrack_ftp 4640 1 nf_nat_ftp
ipt_MASQUERADE 992 1
iptable_nat 2768 1
nf_nat 10912 5 nf_nat_tftp,nf_nat_irc,nf_nat_ftp,ipt_MASQUERADE,i ptable_nat
xt_NOTRACK 544 0
iptable_raw 656 1
xt_state 768 3
nf_conntrack_ipv4 7920 6 iptable_nat,nf_nat
nf_defrag_ipv4 624 1 nf_conntrack_ipv4
nf_conntrack 38848 12 nf_nat_tftp,nf_conntrack_tftp,nf_nat_irc,nf_conntr ack_irc,nf_nat_ftp,nf_conntrack_ftp,ipt_MASQUERADE ,iptable_nat,nf_nat,xt_NOTRACK,xt_state,nf_conntra ck_ipv4
ehci_hcd 31456 0
pppoe 8304 0
pppox 1216 1 pppoe
ipt_REJECT 1680 2
xt_TCPMSS 2560 1
ipt_LOG 4176 0
xt_comment 464 0
xt_multiport 1792 0
xt_mac 576 0
xt_limit 1008 1
iptable_mangle 992 0
iptable_filter 768 1
ip_tables 8544 4 iptable_nat,iptable_raw,iptable_mangle,iptable_fil ter
xt_tcpudp 1760 4
x_tables 9296 13 ipt_MASQUERADE,iptable_nat,xt_NOTRACK,xt_state,ipt _REJECT,xt_TCPMSS,ipt_LOG,xt_comment,xt_multiport, xt_mac,xt_limit,ip_tables,xt_tcpudp
snd_pcm_oss 33440 0
snd_mixer_oss 12560 1 snd_pcm_oss
snd_pcm 48240 2 snd_usb_audio,snd_pcm_oss
snd_timer 13904 1 snd_pcm
snd_rawmidi 14176 1 snd_usb_lib
snd_seq_device 4032 1 snd_rawmidi
snd_hwdep 4304 1 snd_usb_audio
snd_page_alloc 4192 1 snd_pcm
snd 36064 8 snd_usb_audio,snd_pcm_oss,snd_mixer_oss,snd_pcm,sn d_timer,snd_rawmidi,snd_seq_device,snd_hwdep
soundcore 3520 1 snd
ppp_async 6400 0
ppp_generic 18864 3 pppoe,pppox,ppp_async
slhc 4160 1 ppp_generic
ath9k 70752 0
ath9k_common 1088 1 ath9k
ath9k_hw 234160 2 ath9k,ath9k_common
ath 12816 2 ath9k,ath9k_hw
mac80211 193872 1 ath9k
usbcore 97536 5 snd_usb_audio,snd_usb_lib,ohci_hcd,ehci_hcd
nls_base 4800 1 usbcore
crc_ccitt 976 1 ppp_async
cfg80211 113472 3 ath9k,ath,mac80211
compat_firmware_class 4672 0
compat 1776 1 cfg80211
arc4 816 2
aes_generic 30256 0
deflate 1360 0
ecb 1328 2
cbc 2016 0
leds_gpio 1456 0
button_hotplug 2560 0
gpio_buttons 2128 0
input_polldev 1360 1 gpio_buttons
input_core 17056 5 snd,button_hotplug,gpio_buttons,input_polldev
root@OpenWrt:~# lsmod
Module Size Used by Tainted: P
snd_usb_audio 56944 0
snd_usb_lib 12640 1 snd_usb_audio
ohci_hcd 16912 0
ath_pci 280992 0
ath_hal 293920 1 ath_pci
nf_nat_tftp 432 0
nf_conntrack_tftp 2400 1 nf_nat_tftp
nf_nat_irc 816 0
nf_conntrack_irc 2512 1 nf_nat_irc
nf_nat_ftp 1328 0
nf_conntrack_ftp 4640 1 nf_nat_ftp
ipt_MASQUERADE 992 1
iptable_nat 2768 1
nf_nat 10912 5 nf_nat_tftp,nf_nat_irc,nf_nat_ftp,ipt_MASQUERADE,i ptable_nat
xt_NOTRACK 544 0
iptable_raw 656 1
xt_state 768 3
nf_conntrack_ipv4 7920 6 iptable_nat,nf_nat
nf_defrag_ipv4 624 1 nf_conntrack_ipv4
nf_conntrack 38848 12 nf_nat_tftp,nf_conntrack_tftp,nf_nat_irc,nf_conntr ack_irc,nf_nat_ftp,nf_conntrack_ftp,ipt_MASQUERADE ,iptable_nat,nf_nat,xt_NOTRACK,xt_state,nf_conntra ck_ipv4
ehci_hcd 31456 0
pppoe 8304 0
pppox 1216 1 pppoe
ipt_REJECT 1680 2
xt_TCPMSS 2560 1
ipt_LOG 4176 0
xt_comment 464 0
xt_multiport 1792 0
xt_mac 576 0
xt_limit 1008 1
iptable_mangle 992 0
iptable_filter 768 1
ip_tables 8544 4 iptable_nat,iptable_raw,iptable_mangle,iptable_fil ter
xt_tcpudp 1760 4
x_tables 9296 13 ipt_MASQUERADE,iptable_nat,xt_NOTRACK,xt_state,ipt _REJECT,xt_TCPMSS,ipt_LOG,xt_comment,xt_multiport, xt_mac,xt_limit,ip_tables,xt_tcpudp
snd_pcm_oss 33440 0
snd_mixer_oss 12560 1 snd_pcm_oss
snd_pcm 48240 2 snd_usb_audio,snd_pcm_oss
snd_timer 13904 1 snd_pcm
snd_rawmidi 14176 1 snd_usb_lib
snd_seq_device 4032 1 snd_rawmidi
snd_hwdep 4304 1 snd_usb_audio
snd_page_alloc 4192 1 snd_pcm
snd 36064 8 snd_usb_audio,snd_pcm_oss,snd_mixer_oss,snd_pcm,sn d_timer,snd_rawmidi,snd_seq_device,snd_hwdep
soundcore 3520 1 snd
ppp_async 6400 0
ppp_generic 18864 3 pppoe,pppox,ppp_async
slhc 4160 1 ppp_generic
ath9k 70752 0
ath9k_common 1088 1 ath9k
ath9k_hw 234160 2 ath9k,ath9k_common
ath 12816 2 ath9k,ath9k_hw
mac80211 193872 1 ath9k
usbcore 97536 5 snd_usb_audio,snd_usb_lib,ohci_hcd,ehci_hcd
nls_base 4800 1 usbcore
crc_ccitt 976 1 ppp_async
cfg80211 113472 3 ath9k,ath,mac80211
compat_firmware_class 4672 0
compat 1776 1 cfg80211
arc4 816 2
aes_generic 30256 0
deflate 1360 0
ecb 1328 2
cbc 2016 0
leds_gpio 1456 0
button_hotplug 2560 0
gpio_buttons 2128 0
input_polldev 1360 1 gpio_buttons
input_core 17056 5 snd,button_hotplug,gpio_buttons,input_polldev


My music files are mostly mp3s, 44.1 kHz and 320kbps, obviously not DRMed.

I'm open to try any kind of IPK :D

Thanks for your help!

MusicManiac
2011-04-21, 14:38
Hi MusicManiac,

Yes, Linux version is 2.6.32.25. Lsmod says:

...

My music files are mostly mp3s, 44.1 kHz and 320kbps, obviously not DRMed.

I'm open to try any kind of IPK :D

Thanks for your help!

At a glance the modules look ok - Check your PM again, I'll send the link. Lets see if we can figure this out.

-mm

sweiss
2011-05-04, 21:19
Hi,

I have SqueezeSlave running on a Hauppauge MediaMVP-HD utilizing both RCA and optical SPDIF outputs -- but it is touchy.

If I switch songs, sometimes I hear the "digital" noise before the new song starts. Also, some radio stations seem to cause the MediaMVP to crash & reboot.

I was able to get SqueezeSlave running as follows:
1) I obtained the correct copy of "em8xxxoss.ko"
2) I downloaded the linux source from Hauppauge's site and cross compiled it to get the "soundcore.ko" library
3) I downloaded from googlecode "squeezeslave-1.0-225-mipsel-lnx26.tar.gz" and used the executable with the static libraries compiled in.

As there have been fixes to SqueezeSlave, I wanted to recompile the latest version to see if it fixes my issues, but it seems to choke on cross-compiling libFlac.

So, if you can:
1) Let me know where I can download the latest SqueezeSlave mipsel binary for OSS with the static libraries
2) Let me know how I can cross compile SqueezeSlave for mipsel

It would be greatly appreciated.

Likewise, if anyone wants what I have so far, please let me know.

Thanks!
Steve

ralphy
2011-05-05, 12:43
I've built two OSS static binaries for you to try.

1. squeezeslave-oss-static-lnx26-mipsel-1.0-251 - Same build options as the 1.0-225 just the latest code.

2. squeezeslave-oss-static-padev-lnx26-mipsel-1.0-251 - Latest code but uses the newer portaudio library but is only OSS no alsa support.

Let me know if either works for you.

squeezeslave-1.0-251-mipsel-lnx26.tar.gz (http://squeezeslave.googlecode.com/files/squeezeslave-1.0-251-mipsel-lnx26.tar.gz)

sweiss
2011-05-05, 18:40
I've built two OSS static binaries for you to try.

1. squeezeslave-oss-static-lnx26-mipsel-1.0-251 - Same build options as the 1.0-225 just the latest code.

2. squeezeslave-oss-static-padev-lnx26-mipsel-1.0-251 - Latest code but uses the newer portaudio library but is only OSS no alsa support.

Let me know if either works for you.

squeezeslave-1.0-251-mipsel-lnx26.tar.gz (http://squeezeslave.googlecode.com/files/squeezeslave-1.0-251-mipsel-lnx26.tar.gz)

The portaudio version did not detect any output devices however, the squeezeslave-oss-static-lnx26-mipsel-1.0-251 works great! It does not crash and was much better at switching streams without the digital buzz.

Also, I found that using an option of "-p 5000" eliminated all of the "digital" noise I heard when I switched radio stations.

I need to figure out how to make SqueezeSlave boot when the system loads and make that script wait until the output devices have been initialized. However, I have attached copies of the em8xxxoss.ko and soundcore.ko binaries for the Hauppauge MediaMVP-HD (with Kernel 2.6.22.19-29-sigma), in the meantime.

Thanks for your help!
Steve

ralphy
2011-05-07, 03:49
That's great!

The portaudio version didn't work on my popcorn hour A-110 either.

It found the device but squeezeslave hung trying to open it.

sweiss
2011-05-15, 15:00
Hi Ralphy,

On my mipsel based SqueezeSlave box I noticed that if I play a song, let it finish, wait a while (maybe 30 seconds) and then play a new song, the system locks up.

Have you seen this ever on your popcorn hour box?

I am playing flac files and am using the Version: 7.6.0 - r32413 of SqueezeServer. I did see the issue with SqueezeServer 7.5.4 as well.

Other than that, SqueezeSlave is working very well! Thanks again for your help posting the mipsel binaries for me.

Thanks!
Steve

sweiss
2011-05-15, 15:10
Hi Ralphy,

On my mipsel based SqueezeSlave box I noticed that if I play a song, let it finish, wait a while (maybe 30 seconds) and then play a new song, the system locks up.

Have you seen this ever on your popcorn hour box?

I am playing flac files and am using the Version: 7.6.0 - r32413 of SqueezeServer. I did see the issue with SqueezeServer 7.5.4 as well.

Other than that, SqueezeSlave is working very well! Thanks again for your help posting the mipsel binaries for me.

Thanks!
Steve

Here is some additional information:
when I first start u SqueezeSlave, I see it creates 10 processes. If I let a song finish and let SqueezeSlave go idle, the last 3 of the 10 processes (ordered by process ID) go away.

If I kill the remaining 7 SqueezeSlave processes and restart SqueezeSlave, I can play music again. If I don't restart SqueezeSlave and play music, the system locks up (at which point the watchdog timer kicks in and causes a reboot)

sweiss
2011-05-15, 19:14
Here is some additional information:
when I first start u SqueezeSlave, I see it creates 10 processes. If I let a song finish and let SqueezeSlave go idle, the last 3 of the 10 processes (ordered by process ID) go away.

If I kill the remaining 7 SqueezeSlave processes and restart SqueezeSlave, I can play music again. If I don't restart SqueezeSlave and play music, the system locks up (at which point the watchdog timer kicks in and causes a reboot)

While trying to track this down, I ran SqueezeSlave from the command line (before I used the -M option)... Instead of hanging now, I see the following message:
PaHost_WatchDogProc: canary died!
PaHost_WatchDogProc: lowered audio priority to prevent hogging of CPU.

These messages can be found in "pa_unix.c" -- which I believe is part of SqueezeSlave. Is it possible to build a version of SqueezeSlave that does not use any of the Pulse Audio libraries?

ralphy
2011-05-16, 04:21
While trying to track this down, I ran SqueezeSlave from the command line (before I used the -M option)... Instead of hanging now, I see the following message:
PaHost_WatchDogProc: canary died!
PaHost_WatchDogProc: lowered audio priority to prevent hogging of CPU.

These messages can be found in "pa_unix.c" -- which I believe is part of SqueezeSlave. Is it possible to build a version of SqueezeSlave that does not use any of the Pulse Audio libraries?

squeezeslave doesn't use any pulse audio libraries and the OSS static binary I built for you doesn't support PA. Is there another process using a lot of CPU? Are you play any other audio sources when this happens? Those messages are from the port audio library attempting to reduce it's cpu usage. I have seen this on my PCH using the OSS DSP module but never when using the USB sound card. So I assumed it was caused by a bug in the DSP module.

sweiss
2011-05-16, 06:36
squeezeslave doesn't use any pulse audio libraries and the OSS static binary I built for you doesn't support PA. Is there another process using a lot of CPU? Are you play any other audio sources when this happens? Those messages are from the port audio library attempting to reduce it's cpu usage. I have seen this on my PCH using the OSS DSP module but never when using the USB sound card. So I assumed it was caused by a bug in the DSP module.

There are no other processes that are using a lot of CPU. Also, I did a "strings" of em8xxxoss.ko and soundcore.ko piped to "grep -i canary" and that string does not appear.

Likewise, if you do a "strings squeezeslave-oss-static-lnx26-mipsel-1.0-251 | grep -i canary" you will see the two Canary related messages are in there.

Is it possible that the PulseAudio routines are initialized but just not used and it is stepping on OSS somehow?

ralphy
2011-05-17, 03:36
There are no other processes that are using a lot of CPU. Also, I did a "strings" of em8xxxoss.ko and soundcore.ko piped to "grep -i canary" and that string does not appear.

Likewise, if you do a "strings squeezeslave-oss-static-lnx26-mipsel-1.0-251 | grep -i canary" you will see the two Canary related messages are in there.

Is it possible that the PulseAudio routines are initialized but just not used and it is stepping on OSS somehow?

No it's not possible since the OSS binary uses the old portaudio 0.18.1 which only supports OSS on linux no ALSA no PulseAudio. In my previous post I described what the canary message means and that it is from squeezeslave.

s7mx1
2011-05-29, 13:10
Thanks

s7mx1
2011-05-29, 13:11
Ralphy,

Tried the static armel oss binary on my android mobile unfortunately it could not found any audio device. I did a bit search and found mplayer has been ported over to android and in mplayer's case the raw pcm output device is being used instead of alsa/oss.

Would you be able to change the default audio device to raw pcm device like /dev/msm_pcm_out? Sample code can be found here http://www.netmite.com/android/mydroid/system/extras/sound/playwav.c (pcm_play).

On the other hand alsa does support file output but I could not get it working with my static portaudio/alsa built. My .asoundrc looks like:

pcm.file {
type file;
format "PCM";
file "/dev/msm_pcm_out";
slave.pcm "/dev/msm_pcm_out";
}

Thanks again for your excellent squeezeslave.

ralphy
2011-06-03, 04:11
Android support was added to portaudio in r1597 but requires ALSA to already be installed on the device.

I don't have an android device at this time to use to implement and test your request.

ralphy
2011-06-03, 05:20
I've implemented device selection by name (-n/--name) in 1.1-259.

There's a windows build on google code (http://squeezeslave.googlecode.com/files/squeezeslave-1.1-259-win.zip) to try.

Usage:

Original command line using -o to select the device by id.

squeezeslave-1.1-259 -R -D -w96 -o5

On my windows machine the second audio output on my HD audio card id changes from 5 to 6 when I plug in my usb headset.

Using the new -n option squeezeslave always uses the right device.

First get the device names using -L


squeezeslave-1.1-259 -L

Output devices:
* 3: (Windows DirectSound) Primary Sound Driver (0/0)
4: (Windows DirectSound) Realtek HD Audio output (0/0)
5: (Windows DirectSound) Realtek HD Audio 2nd output (0/0)

Then replace the -o5 with -n and the device name surrounded by double quotes.

Updated command line using -n to select the device by name.

squeezeslave-1.1-259 -R -D -w96 -n"Realtek HD Audio 2nd output"

Make sure you do NOT include the (Windows DirectSound) and (0/0) in the device name with -n/--name.

If a match is not found, squeezeslave will print a warning that the device name was not found and use the default instead.
The default device is indicated by the * before the device id number.

You can test the name you're using with -L. If the name is correct the * will be printed beside the device name used with -n.


squeezeslave-1.1-259 -n"Realtek HD Audio 2nd output" -L
Output devices:
3: (Windows DirectSound) Primary Sound Driver (0/0)
4: (Windows DirectSound) Realtek HD Audio output (0/0)
* 5: (Windows DirectSound) Realtek HD Audio 2nd output (0/0)

instaud
2011-06-09, 10:54
Hello,
I compiled Squeezeslave 1.1-256 (the version I got from checking out trunk) on Linux, and sound works great.

When I use -D I don't get a display. I tried in different terminals, but the rectangle stays empty. Pressing the control keys, like ">" works.

I'm still using SqueezeCenter 7.3.4 (never saw a need to upgrade using SB3), might this be the reason there is no output?

ralphy
2011-06-10, 03:38
You need to apply http://squeezeslave.googlecode.com/svn/squeezeslave/trunk/squeezeslave/patches/squeezecenter_squeezeslave_player3-7.3.patch for display and replay gain to work with 7.3.x.

The patch is include in 7.4+

Please read the wiki. This is all detailed there!

instaud
2011-06-11, 03:40
Oops! Thank you. I read the wiki again, and saw it this time. IMHO that info is a little hidden - I don't need replay gain so I skipped essential parts. Something like "The display feature needs patch XY if your SC version is 7.3.x or earlier" would stand out more. But I was not paying enough attention, and must be the only one left using that old version, so thanks again!

ralphy
2011-06-11, 13:34
I think you'll find many forum members are still running 7.3.x myself included.

I only run the newer server versions for testing squeezeslave, none of my hardware players have ever connected to anything newer than 7.3.4.

lintweaker
2011-06-12, 01:33
First off, thanks for squeezeslave!

I am running the latest squeezeslave from svn and it works just beautiful on Fedora 15 (x86_64). Fedora now uses systemd as a replacement of the sysv init scripts. I have created a simple service file, squeezeslave starts and stops just fine but I can not get sound out of it. After debugging it for a while a decided to fall back to the old fashioned sysv init file (squeezeslave.init.rh52 from the config dir). It starts and stops just fine but again no sound.

when I start squeezeslave from the command line it works just fine. Any hints how to debug this?

BTW When started as a service I notice the application is not registered as a running audio application. When run from the command line it is.

rpress
2011-06-16, 07:44
I've been working porting Squeezeslave to the empeg. It is playing music! But I have a few problems.

CPU usage is normally around 40% which is not bad I suppose for a StrongARM at 220 MHz. When I change tracks the sound will usually stutter. Sometimes it sounds like the sound from the previous track will play Max Headroom style, and other times the new track will play but it will be slow and choppy for a bit. If I add -p500 to the command line this pretty much goes away.

Maybe there is a way to fix this so it doesn't start playing the new track until it is ready?

Has anyone worked on autodiscovery of the server? This would be nice for me as I am running this on two different subnets, with two different servers.

Thanks for any insight.

ralphy
2011-06-17, 04:08
CPU usage is normally around 40% which is not bad I suppose for a StrongARM at 220 MHz.

Without an fpu that's quite good, depending on the stream format. I run SS on a Pentium MMX 133MHz cpu laptop, with an fpu at around 60% cpu playing flac.


When I change tracks the sound will usually stutter. Sometimes it sounds like the sound from the previous track will play Max Headroom style, and other times the new track will play but it will be slow and choppy for a bit. If I add -p500 to the command line this pretty much goes away.

Using OSS audio on my laptop above I have to use -p940 to quell the same stutter issue.

If you're using ALSA try playing with the -y parameter.

The stuttering is caused by the mutex locks in the portaudio callback function pa_callback in slimaudio_output.c Any blocking function calls in the callback is a no-no for PA. Squeezeslave has been this way since I started maintaining it 4 years ago. It's been on my TODO list to fix for a long time but the problem only manifests itself on slow cpus and since the -p option masks the problem, I've had very little reason to bother.


Maybe there is a way to fix this so it doesn't start playing the new track until it is ready?

Not really, track changes are all handled from the server in the slimprotocol connection. You'd need to fix the callback.


Has anyone worked on autodiscovery of the server?

I've never had a request for autodiscovery until now.

ralphy
2011-06-17, 04:29
First off, thanks for squeezeslave!

I am running the latest squeezeslave from svn and it works just beautiful on Fedora 15 (x86_64). Fedora now uses systemd as a replacement of the sysv init scripts. I have created a simple service file, squeezeslave starts and stops just fine but I can not get sound out of it. After debugging it for a while a decided to fall back to the old fashioned sysv init file (squeezeslave.init.rh52 from the config dir). It starts and stops just fine but again no sound.

when I start squeezeslave from the command line it works just fine. Any hints how to debug this?

BTW When started as a service I notice the application is not registered as a running audio application. When run from the command line it is.

Sounds like permission issues or the audio devices drivers not yet being initialized when squeezeslave is starting from init.

Squeezeslave usually shuts down if it can't open the audio device.

Can you confirm that the process is actually running?

If yes, are you specifying the output device to use. Squeezeslave could be using another sound device. The default device may be different when starting from a window manager vs during system startup.

rpress
2011-06-17, 07:11
Using OSS audio on my laptop above I have to use -p940 to quell the same stutter issue.


Yes I'm using OSS through the old portaudio. I hacked the portaudio driver apart because the empeg sound device does not support any ioctls. It also requires chunks of 4608 bytes. I tried getting the new portaudio to work, but I couldn't.



The stuttering is caused by the mutex locks in the portaudio callback function pa_callback in slimaudio_output.c Any blocking function calls in the callback is a no-no for PA. Squeezeslave has been this way since I started maintaining it 4 years ago. It's been on my TODO list to fix for a long time but the problem only manifests itself on slow cpus and since the -p option masks the problem, I've had very little reason to bother.


Great info, thanks. That sounds pretty challenging for a noob like myself to fix, but it's good to know that it's not something specific to my empeg.



I've never had a request for autodiscovery until now.

This seems easy enough to implement, I'll take a stab at it.

I'm having difficulty implementing the rotary encoder volume knob. The IR command interface does not lend itself well to this, the increments are too small. I tried to repeat the IR command but it seems there is repeat code on the server side that is thwarting me. Any idea how I could change the volume but with a larger step than the IR command will give me?

Thanks for your help, it's much appreciated.

rpress
2011-06-17, 21:34
I removed the mutex locks from pa_callback by moving some stuff around. Maybe I did it wrong, but it didn't seem much better.

When stuttering I see "pa_callback: SLIMAUDIO_BUFFER_STREAM_UNDERRUN". It seems like this happens at two different times. Sometimes it happens as the old track is still going before it switches to the new one. I would guess in this case the thread that stuffs the data into the decoder does not have enough priority or something, as it should have plenty of buffer available. Switching to the new track is taking too much CPU away from it. Just guessing at this point.

However, usually I only see the underrun when the new track is starting up. I've modified the predelay into a prebuffer where it will wait for X ms of buffer to be filled before starting the track. This means that it won't always wait for X ms of time if the buffer fills up quick. Also it means it will wait longer if it takes longer. Not a perfect solution but it seems to work better for me.

ralphy
2011-06-18, 03:07
I'm having difficulty implementing the rotary encoder volume knob. The IR command interface does not lend itself well to this, the increments are too small. I tried to repeat the IR command but it seems there is repeat code on the server side that is thwarting me. Any idea how I could change the volume but with a larger step than the IR command will give me?

Are you modifying the IR code loop in interactive.c?
The IR repeat should be taken care of as you can press and hold the space bar in interactive mode to STOP playing, which is all handled by the server.
Are you "stuffing" volup/voldown codes in that loop? If so, it should work as I can press and hold either the plus or minus key to change the volume rapidly.

case '-': ir = 0x768900ff; break; /* voldown */
case '+': ir = 0x7689807f; break; /* volup */

Perhaps you could send more than one ir code for each change.

Another option I can think of is you could open a connection to the cli, and send 'mixer volume ' change commands with whatever increment/decrement you'd like, through that socket connection using your player MAC address as the target.


I removed the mutex locks from pa_callback by moving some stuff around. Maybe I did it wrong, but it didn't seem much better.

Interesting.

Everything I researched pointed to the locks in the callback being the root cause but you do need to change the buffering as well.
Regardless, the locks should not be in the callback. Do you still have those changes? It would be great to incorporate them into trunk.


When stuttering I see "pa_callback: SLIMAUDIO_BUFFER_STREAM_UNDERRUN". It seems like this happens at two different times. Sometimes it happens as the old track is still going before it switches to the new one. I would guess in this case the thread that stuffs the data into the decoder does not have enough priority or something, as it should have plenty of buffer available. Switching to the new track is taking too much CPU away from it. Just guessing at this point.

That would be in slimaudio_http.c. The UNDERRUN error indicates that the output buffer is empty, so you could be correct with that assumption.


However, usually I only see the underrun when the new track is starting up. I've modified the predelay into a prebuffer where it will wait for X ms of buffer to be filled before starting the track. This means that it won't always wait for X ms of time if the buffer fills up quick. Also it means it will wait longer if it takes longer. Not a perfect solution but it seems to work better for me.

How would that affect player sync?

nieldm
2011-06-18, 05:35
Hi,

I appreciate that Squeezeslave doesn't support Rhapsody, but I am also having trouble getting it to work with Spotify. It seems to be working, allows me to search artists and select them, but nothing will play. It simply doesn't start playing when I click play.

Help with this would be much appreciated. I was very excited about using Squeezeslave but without my online services I will have to go back to an SB3!

Thanks
Marc

ralphy
2011-06-18, 11:34
Hi,

I appreciate that Squeezeslave doesn't support Rhapsody, but I am also having trouble getting it to work with Spotify. It seems to be working, allows me to search artists and select them, but nothing will play. It simply doesn't start playing when I click play.

Help with this would be much appreciated. I was very excited about using Squeezeslave but without my online services I will have to go back to an SB3!

Thanks
Marc

Triode's spotify plugin requires the player to support direct streaming which squeezeslave does not and the official Logitech plugin only works with the Touch and Radio.

I believe squeezeplay works with Triode's plugin.

rpress
2011-06-18, 12:45
Are you modifying the IR code loop in interactive.c?


Pretty much, I'm writing my own handler but it works in a similar way.
The buttons on the empeg have just keydown and keyup, and the knob will send a "keydown" when turned one detent up, or one detent down. There is no repeat functionality.

I've tried sending more than one code right after another and it works to some extent but it seems like the server is filtering out some of the commands. I think I'll need to send more than one code but with a delay in-between.



Another option I can think of is you could open a connection to the cli, and send 'mixer volume ' change commands with whatever increment/decrement you'd like, through that socket connection using your player MAC address as the target.


That sounds like it might work. I see there's also knob handling on the server side but it looks like it's not for volume.


Do you still have those changes? It would be great to incorporate them into trunk.


Sure, I attached a diff. My mod is pretty simple but it should work okay as the bool will be written in one instruction cycle so no need for a mutex lock.



That would be in slimaudio_http.c. The UNDERRUN error indicates that the output buffer is empty, so you could be correct with that assumption.


Ah, so I've been looking into this. I added some code to http_recv so that it would yield the thread if the audio->output_buffer is too low. This worked very well and fixed it 90%, but it seems like there is still something else that is tying things up occasionally.


How would that affect player sync?
You're right it would probably have problems with that. The other stuff I'm working on should work better in that regard.

ralphy
2011-06-18, 14:50
Sure, I attached a diff. My mod is pretty simple but it should work okay as the bool will be written in one instruction cycle so no need for a mutex lock.

Thanks for the patch. I'll need to see if that holds true for all the platforms that squeezeslave supports.


Ah, so I've been looking into this. I added some code to http_recv so that it would yield the thread if the audio->output_buffer is too low. This worked very well and fixed it 90%, but it seems like there is still something else that is tying things up occasionally.

Perhaps you need to yield until there's more than (AUDIO_CHUNK_SIZE * 8) 64k in the output buffer. It's raw audio so it is consumed quickly by the callback.

ralphy
2011-06-19, 06:31
Ah, so I've been looking into this. I added some code to http_recv so that it would yield the thread if the audio->output_buffer is too low. This worked very well and fixed it 90%, but it seems like there is still something else that is tying things up occasionally.


I've been looking at the changes to the pa_callback, there's still a lock/unlock pair happening in the slimaudio_buffer_available function.
I believe that the buffering also needs to be changed to use a ringbuffer implementation which doesn't require locks to access the buffer.

As you're using the slimaudio_buffer_available in http_recv as well, that could be causing the last 10%.

Another possibility is the decoder thread spinning too long for the slower CPU.

Sorry it's all just suggestions and nothing concrete.

rpress
2011-06-19, 08:39
I've been looking at the changes to the pa_callback, there's still a lock/unlock pair happening in the slimaudio_buffer_available function.
I believe that the buffering also needs to be changed to use a ringbuffer implementation which doesn't require locks to access the buffer.

As you're using the slimaudio_buffer_available in http_recv as well, that could be causing the last 10%.

Another possibility is the decoder thread spinning too long for the slower CPU.

Sorry it's all just suggestions and nothing concrete.

Oh yeah I see those mutexes now. However when I get the stutter I see the buffer underrun error, that makes me think it is not a pa_callback issue but something upstream that is not filling the output_buffer fast enough.

Occasionally I get a hardly perceptable dropout, yet there is no buffer underrun or other error. I think this might be the mutex blocking in the pa_callback.

I increased those values for the http_recv yield loop, and it seems to be pretty good now, definitely usable. Now I'm going to focus on the UI and try to get the volume knob working properly.

One thing worth mentioning is that I needed to do a lot of modification to get it to compile with GCC 2.95.3. The problem is that variable declarations are only possible at the beginning of a function with this compiler. Perhaps you would like my patch to fix this?

Thanks again for your help.

ralphy
2011-06-19, 11:18
Oh yeah I see those mutexes now. However when I get the stutter I see the buffer underrun error, that makes me think it is not a pa_callback issue but something upstream that is not filling the output_buffer fast enough.

That should be the decoder thread as I suspected earlier.


One thing worth mentioning is that I needed to do a lot of modification to get it to compile with GCC 2.95.3. The problem is that variable declarations are only possible at the beginning of a function with this compiler. Perhaps you would like my patch to fix this?

Thanks again for your help.

Yes, any changes that make squeezeslave portable to more platforms I'm happy to apply.

I'll just have to keep that in mind going forward as well! :)

lintweaker
2011-06-22, 11:28
Sounds like permission issues or the audio devices drivers not yet being initialized when squeezeslave is starting from init.

Squeezeslave usually shuts down if it can't open the audio device.

Can you confirm that the process is actually running?

If yes, are you specifying the output device to use. Squeezeslave could be using another sound device. The default device may be different when starting from a window manager vs during system startup.

It is not a permission issue. It seems it's more a window manager/default device thing as you suggested. When I start the service after logging in to the graphical desktop it works just fine. For now I will just start it manually.

BTW would it be possible to add 24-bit sound support to squeezeslave? I stream PCM from the squeezeboxserver and have 24-bit/44.1kHz files which won't play properly with squeezeslave.

rpress
2011-06-23, 22:45
I've somehow managed to tweak Squeezeslave on the empeg to play flawlessly. (Knock on wood!) It responds very quickly, too, and those phantom hiccups are gone as well. I did use nice() to lower the priority of the http thread, and I tweaked some thresholds.

I've also implemented the server auto discovery and it works fine. It will use the first Squeezeboxserver it comes across but that is fine for most I think.

Ralphy, on second thought would it be okay if I just give you a diff when I am all done, and then you can decide what you want to integrate into the trunk? That would be easiest for me.

ralphy
2011-06-24, 04:01
I've somehow managed to tweak Squeezeslave on the empeg to play flawlessly. (Knock on wood!) It responds very quickly, too, and those phantom hiccups are gone as well. I did use nice() to lower the priority of the http thread, and I tweaked some thresholds.

That's great to hear!


I've also implemented the server auto discovery and it works fine. It will use the first Squeezeboxserver it comes across but that is fine for most I think.

I should be able to integrate auto discovery as a command line option.


Ralphy, on second thought would it be okay if I just give you a diff when I am all done, and then you can decide what you want to integrate into the trunk? That would be easiest for me.

Of course.

Would it possible for you to send me a PM with an svn diff file as it is now?

I'd really like to try your audio thread changes on my old laptop and windows, as I've had two forum members report similiar glitches recently.

I could create a branch for the empeg player on the squeezeslave googlecode page for your project. It would make merging changes much easier for both of us.
PM me if you're interested.

I've been following the squeezeslave thread on empegbbs.com it's been quite the journey. I'm tempted to try to find one for myself!
Too bad they don't make the players anymore.

rpress
2011-06-24, 10:26
I've been following the squeezeslave thread on empegbbs.com it's been quite the journey. I'm tempted to try to find one for myself!
Too bad they don't make the players anymore.

PM sent.

Recently I've picked up a couple mk2a empegs for around $100/ea. This seems like a great price to me considering the hardware. These were fixer-upper units but I'm pretty handy with the soldering iron.

As an aside, I haven't looked into it yet but does Squeezeslave support seeking inside a song? With the IR codes I found for the Boom, it has separate keydown and keyup codes. This means that it detects a long press for track seek but it doesn't do anything, and I'm guessing Squeezeslave does not support this somehow.

gharris999
2011-06-24, 10:52
Has anyone worked out scripts that generate pseudo "slimdevices" mac address for use with squeezeslave installations? I.e. address in the "00:04:20:hh:hh:hh" range?

It would be nice to have such scripts for windows, linux & osx. Linux & osx, I can probably kludge up. Windows is harder, cmd.exe being such a weak shell for scripting.

ralphy
2011-06-24, 13:08
PM sent.
Got it, You have a reply


As an aside, I haven't looked into it yet but does Squeezeslave support seeking inside a song? With the IR codes I found for the Boom, it has separate keydown and keyup codes. This means that it detects a long press for track seek but it doesn't do anything, and I'm guessing Squeezeslave does not support this somehow.

Yes it does in interactive mode you can press and hold forward and the display changes to


Time: 22:55 / -2:40:24
[########## ]


you can then use rewind/forward to scroll to a point in time for the playing stream, when you release the key the stream continues at the new offset

These are the IR codes I'm talking about.



case '<': ir = 0x7689c03f; break; /* rew */
case '>': ir = 0x7689a05f; break; /* fwd */


This is all done on the server but it does work quite nicely.

ralphy
2011-06-24, 13:10
Has anyone worked out scripts that generate pseudo "slimdevices" mac address for use with squeezeslave installations? I.e. address in the "00:04:20:hh:hh:hh" range?

It would be nice to have such scripts for windows, linux & osx. Linux & osx, I can probably kludge up. Windows is harder, cmd.exe being such a weak shell for scripting.

I haven't created any scripts like that.

Anyone else?

rpress
2011-06-26, 14:16
I've got the ffw/rew working. Even though the new IR commands are for keydown and keyup, the server doesn't support repeat. So I implemented repeat on the empeg and that was the trick.

I have the display working, it works quite well! Scrolling text is quite smooth, even though it's done on the server side. VU meters and stuff don't work as it looks like that's client side. The main problem with the UI is the lack of buttons, although I am working on a custom map file.

I did need to change one thing on Squeezeboxserver. In Slim/Networking/Slimproto.pm I changed

} elsif ($deviceids[$deviceid] eq 'squeezeslave') {

$client_class = 'Slim::Player::SqueezeSlave';
$display_class = 'Slim::Display::Text';


to


} elsif ($deviceids[$deviceid] eq 'squeezeslave') {

$client_class = 'Slim::Player::SqueezeSlave';
$display_class = 'Slim::Display::Boom';


I guess I could create another deviceid, or maybe use the softboom one. This is the only change I've made, except for the custom map file.

Playback is still flawless, there have been no problems with skipping.

ralphy
2011-06-27, 04:20
Gotta love that pic!


I guess I could create another deviceid, or maybe use the softboom one. This is the only change I've made, except for the custom map file.

Changing the display to boom as you did is what I would recommend. The slimprotocol handling is different in the softboom/boom playertype versus squeezeslave.


Playback is still flawless, there have been no problems with skipping.

That's awesome!

I ran into the issue with having to run as root to change the thread priority, so I commented out the "nice" calls and still have flawless playback on my old laptop streaming flac over wireless-B, something that never worked in the past and I was able to remove the -p940 option.

Still need to test Solaris and OSX but I'm very happy with the results so far. Thank-you!

Jake72
2011-07-02, 06:24
I thought I would try this on my media PC, but I've hit problems.

1 I don't know which installer to use. Do I need ASIO or WASAPI.

2 Don't know if it will work on windows XP.

Maybe I need something easier, what should I use?

ralphy
2011-07-04, 04:37
I thought I would try this on my media PC, but I've hit problems.

1 I don't know which installer to use. Do I need ASIO or WASAPI.

2 Don't know if it will work on windows XP.

Maybe I need something easier, what should I use?

There is no installer for squeezeslave. you just run the correct .exe from a command prompt window

WASAPI only works on Vista and Win7
ASIO requires an asio audio driver for your soundcard or ASIO4ALL

squeezeslave.exe is what you want to try on XP.

The details are in the Command Line Switches section of the wiki.

gharris999
2011-07-04, 09:08
Ralphy: is there any documentation on running squeezeslave as a background service under windows? While the wiki page at http://wiki.slimdevices.com/index.php/SqueezeSlave discusses such an installation under OSX, there doesn't seem to be the same sort of install instructions for linux or windows. Is this documented anywhere else? If not, I'd be happy to contribute the windows instructions.

vanye
2011-07-04, 10:07
A how-to would be great.

Regards
vanye

vanye
2011-07-04, 10:09
Ralphy: is there any documentation on running squeezeslave as a background service under windows? While the wiki page at http://wiki.slimdevices.com/index.php/SqueezeSlave discusses such an installation under OSX, there doesn't seem to be the same sort of install instructions for linux or windows. Is this documented anywhere else? If not, I'd be happy to contribute the windows instructions.
Hi gharris999,

that would be a kindness to those of us who are not techies. After searching these forums for a couple of days, I found a good solution for running "normal" Squeezeslave on Windows XP on startup and it works like a charme.


Copy this to Notepad and save as squeezeslave.vbs

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "squeezeslave.cmd" & Chr(34), 0
Set WshShell = Nothing

Copy this to Notepad and save as squeezeslave.cmd

squeezeslave.exe -esqueezeplay -retry -m01:01:01:01:01:01 server_ip

Put all files in the same directory.
Make a shortcut to squeezeslave.vbs. Done.


But so far I do not really know how to start the squeezeplay-asio. Tried changing the file name in the above linked sript - no joy. Then I renamed the executable squeezeplay-files but that didn't work, either. After a lot more reading, I have found out that I should install ASIO4ALL first - but what then?

So please, if you can provide the information about the ASIO and WASAPI versions of Squeezeslave for us noobs out here, I would be grateful.

Regards
vanye

gharris999
2011-07-04, 16:25
Hi gharris999,

that would be a kindness to those of us who are not techies.

[...]

But so far I do not really know how to start the squeezeplay-asio.

[...]

So please, if you can provide the information about the ASIO and WASAPI versions of Squeezeslave for us noobs out here, I would be grateful.
Ok, I'll start working on the documentation. It may take me a day or two. With Ralphy's permission, I'll post the recipe here first for comment before I mess with the wiki.

I don't use the ASIO version of squeezeslave myself and I'm not familiar with what its advantages might be. I use the stock direct sound squeezeslave.exe included in squeezeslave-1.1.253-win.zip, with my output device being:

6: (Windows DirectSound) Digital Audio (S/PDIF) (High Definition Audio Device) (0/0)

..which feeds S/PDIF into a Benchmark DAC1 which provides analog audio to a tiny TP-10 Mark-II amp which in turn powers an old pair of Infinity bookshelf speakers. This setup works very well for me and sounds just fine here in my office.

ralphy
2011-07-05, 04:33
Ralphy: is there any documentation on running squeezeslave as a background service under windows? While the wiki page at http://wiki.slimdevices.com/index.php/SqueezeSlave discusses such an installation under OSX, there doesn't seem to be the same sort of install instructions for linux or windows. Is this documented anywhere else? If not, I'd be happy to contribute the windows instructions.

I've only documented running the server as a service from svn. http://wiki.slimdevices.com/index.php/InstallSVNTrunkAsService


Ok, I'll start working on the documentation. It may take me a day or two. With Ralphy's permission, I'll post the recipe here first for comment before I mess with the wiki.

That would be great! Please do.

gharris999
2011-07-05, 07:24
I've only documented running the server as a service from svn. http://wiki.slimdevices.com/index.php/InstallSVNTrunkAsServiceAnd following your example, I'm using srvany.exe with squeezeslave.exe too.

vanye
2011-07-05, 11:50
Can anyone explain what the advantages are of running squeezeslave as a service as opposed to the method I have quoted above? Sorry if my questions are very basic, but programming is not one of my skills, I'm afraid. So please be patient while I try to understand as much of this as you are willing to explain.

Regards
vanye

verypsb
2011-07-05, 12:54
I'm using NSSM - the Non-Sucking Service Manager: https://iain.cx/src/nssm/

gharris999
2011-07-05, 20:44
Can anyone explain what the advantages are of running squeezeslave as a service as opposed to the method I have quoted above? Sorry if my questions are very basic, but programming is not one of my skills, I'm afraid. So please be patient while I try to understand as much of this as you are willing to explain.

Regards
vanye
From the documentation I'm working on:



Rationale:

With SqueezeSlave running as a background service under Windows, the SqueezeSlave player will always be available and can play continuously no matter which user is logged into Windows and, indeed, can continue playing even when switching users or when no user is logged in. Also, you won't be bothered by an ugly dos box window mucking up your nice GUI experience.

gharris999
2011-07-05, 20:49
I'm using NSSM - the Non-Sucking Service Manager: https://iain.cx/src/nssm/I intend to use instsrv.exe and srvany.exe in my documentation. But I think it would be helpful if you would contribute a section outlining using nssm in this context.

gharris999
2011-07-06, 08:09
Ralphy:

Can you think of any reason why I can't redirect the output of squeezeslave-wasapi.exe? The following command:

squeezeslave-wasapi.exe -L >audio-devices.txt

..produces a zero byte file. Redirecting stderr doesn't seem to help:

squeezeslave-wasapi.exe -L >audio-devices.txt 2>&1

..also produces a zero byte file.

Neither squeezeslave.exe or squeezeslave-asio.exe exhibit this problem.

ralphy
2011-07-07, 04:23
No it's the same code. There's just a couple extra command line options for WASAPI.

I just tried it on my XP machine and I get contents in the file. Although no devices as XP doesn't support WASAPI.



C:\Program Files\Squeezeslave>squeezeslave-wasapi.exe -L
PortAudio error7: No output devices found.

C:\Program Files\Squeezeslave>squeezeslave-wasapi.exe -L > test2

C:\Program Files\Squeezeslave>type test2
PortAudio error7: No output devices found.

gonzo255
2011-07-15, 08:41
Hi Ralphy,

i try to run squeezeslave (latest version) on my eee pc 901 (intel atom 32bit) on ubuntu 11.04. Unfortunately squeezeslave freezes from time to time, escpecially when changing tracks, reaching the end of a playlist etc.
I tried several versions of squeezebox server and also a switched from pulseaudio to pure ALSA without success...
I started to investigate a little bit; i compiled squeezeslave with full debug symbols and made some debugging. When squeezeslave freezes i get following information from a backtrace of all running threads of squeezeslave:

Thread 6 (Thread 0xb7796b70 (LWP 9292)):
#0 0x00733416 in __kernel_vsyscall ()
#1 0x004e748c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/libpthread.so.0
#2 0x08052c84 in slimaudio_output_disconnect (audio=0xbfb68ca0) at src/slimaudio/slimaudio_output.c:672
#3 0x08053b43 in audio_stop (audio=0xbfb68ca0) at src/slimaudio/slimaudio.c:258
#4 0x080541cf in strm_callback (proto=0xbfb69100, buf=0xb779532c "", buf_len=30, user_data=0xbfb68ca0)
at src/slimaudio/slimaudio.c:202
#5 0x080546d1 in proto_recv (p=0xbfb69100) at src/slimproto/slimproto.c:408
#6 0x08055b57 in proto_thread (ptr=0xbfb69100) at src/slimproto/slimproto.c:142
#7 0x004e2e99 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#8 0x0020673e in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 5 (Thread 0xb2ae1b70 (LWP 9297)):
#0 0x00733416 in __kernel_vsyscall ()
#1 0x004e748c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/libpthread.so.0
#2 0x0804f367 in http_thread (ptr=0xbfb68ca0) at src/slimaudio/slimaudio_http.c:142
#3 0x004e2e99 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#4 0x0020673e in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 4 (Thread 0xb6ae2b70 (LWP 9298)):
#0 0x00733416 in __kernel_vsyscall ()
#1 0x004e748c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/libpthread.so.0
#2 0x0804fbe5 in decoder_thread (ptr=0xbfb68ca0) at src/slimaudio/slimaudio_decoder.c:193
#3 0x004e2e99 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#4 0x0020673e in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 3 (Thread 0xb62e1b70 (LWP 9299)):
#0 0x00733416 in __kernel_vsyscall ()
#1 0x004e3f76 in pthread_join () from /lib/i386-linux-gnu/libpthread.so.0
#2 0x08057444 in PaUnixThread_Terminate (self=0x866387c, wait=0, exitResult=0xb62e12ec) at src/os/unix/pa_unix_util.c:441
#3 0x08059839 in RealStop (stream=0x8663778, abort=<value optimized out>) at src/hostapi/alsa/pa_linux_alsa.c:3014
#4 0x080519b5 in output_thread (ptr=0xbfb68ca0) at src/slimaudio/slimaudio_output.c:522
#5 0x004e2e99 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#6 0x0020673e in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 2 (Thread 0xb55ffb70 (LWP 9304)):
#0 0x00733416 in __kernel_vsyscall ()
#1 0x004e4f5b in __pthread_mutex_lock_full () from /lib/i386-linux-gnu/libpthread.so.0
#2 0x006567b1 in pa_mutex_lock () from /usr/lib/libpulsecommon-0.9.22.so
#3 0x00f564ac in ?? () from /usr/lib/libpulse.so.0
#4 0x00f453a9 in pa_mainloop_poll () from /usr/lib/libpulse.so.0
#5 0x00f45b84 in pa_mainloop_iterate () from /usr/lib/libpulse.so.0
#6 0x00f45c64 in pa_mainloop_run () from /usr/lib/libpulse.so.0
#7 0x00f56443 in ?? () from /usr/lib/libpulse.so.0
#8 0x00657a75 in ?? () from /usr/lib/libpulsecommon-0.9.22.so
#9 0x004e2e99 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#10 0x0020673e in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 1 (Thread 0xb77978d0 (LWP 9291)):
#0 0x00733416 in __kernel_vsyscall ()
#1 0x004eaf01 in pause () from /lib/i386-linux-gnu/libpthread.so.0
#2 0x0804d38d in wait_for_restart_signal (argc=10, argv=0xbfb69464) at src/squeezeslave/squeezeslave.c:93
#3 main (argc=10, argv=0xbfb69464) at src/squeezeslave/squeezeslave.c:682

Looks like a *nice* deadlock to me. Debug output is quite useless, because the printfs are not flushed and when everything freezes it lacks entries.
Some more information: Kernel 2.6.38-8-generic, *multicore* as hyperthreaded, i686/x86 not 64bit. Audio "HDA Intel"/"Realtek ALC269". I run squeezebox server and squeezeslave on the same machine. IMHO it looks like thread 3 or thread 6 freeze everything, it seems to be an issue with stopping the playback... btw. i also tried the latest libportaudio from svn instead the one from squeezeslave.

I hope we could figure out whats wrong....
With best regard, Robinson.

gdi2k
2011-07-23, 03:57
Thanks for this great tool, I look forward to using it in a multi-room system one day in the future!

On the whole, things are working nicely. I ran into the chipmunk issue when playing certain radio streams quite quickly, but using the custom-convert.conf from

http://code.google.com/p/squeezeslave/source/browse/squeezeslave/trunk/squeezeslave/config/custom-convert.conf.441?spec=svn198&r=197

and mplayer.sh from

http://code.google.com/p/squeezeslave/source/browse/squeezeslave/trunk/squeezeslave/config/mplayer.sh?r=197

seems to work well - apart from one small thing: When mplayer is used to resample offending streams, it uses 100% CPU. Are there any tweaks I can use to fix this? The issue is not present when using flac / sox (they use 2% CPU each). The issue is also not present when using [mplayer] (as opposed to [mplayer.sh]) in custom-convert.conf, but then all sorts of other things go wrong.

CPU is an Intel Core2 Duo P8600 @ 2.40GHz, so it shouldn't be too stressed by such a transcode. I'm running Ubuntu 11.04 64-bit.

truehl
2011-08-01, 03:50
Hi Ralphy and the rest!

I'm planing to offer a "Stand Alone SqueezeSlave Player" in my SqueezePlug-Project. It seems that the Start-Script I use one the SqueezePlug-Server does not work on this Stand-Alone System without the Server. Changes I've made in the configuration doesn't seem to have any effect.

I need Your help!!!

Thanks a lot,
Greetings,
Thomas

bobkoure
2011-08-01, 08:55
I don't use the ASIO version of squeezeslave myself and I'm not familiar with what its advantages might be.
It sidesteps the windows xp direct sound mixer - in theory that mixer is supposed to up-convert any lower bitrate audio to be the same as the highest one currently being mixed.
You'd also need sound hardware that has an asio driver or asio4all that uses asio in and sends to a lower level win sound driver interface.
Behringer's got an OK device (asio over usb, spdif or analog out) for around $30.
I use one, with spdif out to a Yam amp (high end some years ago) with a decent DAC, and can hear the difference between this and spdif direct from my soundcard to that same amp (cleaner cymbals, and a bit better soundstage).
I'm using JVC pro near-field monitors and a (somewhat elderly) velodyne sub.

tingo
2011-08-06, 18:22
Hello, I managed to compile Squeezeslave 1.1-253 under FreeBSD 8.2-stable:


tingo@kg-quiet$ uname -a
FreeBSD kg-quiet.kg4.no 8.2-STABLE FreeBSD 8.2-STABLE #0: Sun Apr 3 19:49:05 CEST 2011
root@kg-quiet.kg4.no:/usr/obj/usr/src/sys/GENERIC amd64
I had to change the supplied Makefile (contrib/makefile.freebsd) quite a bit to do so.
In case it is useful for others, should I post / upload the makefile somewhere?

Regards,
Torfinn

ralphy
2011-08-08, 12:20
Hello, I managed to compile Squeezeslave 1.1-253 under FreeBSD 8.2-stable:


tingo@kg-quiet$ uname -a
FreeBSD kg-quiet.kg4.no 8.2-STABLE FreeBSD 8.2-STABLE #0: Sun Apr 3 19:49:05 CEST 2011
root@kg-quiet.kg4.no:/usr/obj/usr/src/sys/GENERIC amd64
I had to change the supplied Makefile (contrib/makefile.freebsd) quite a bit to do so.
In case it is useful for others, should I post / upload the makefile somewhere?

Regards,
Torfinn

Yes, please post your modified makefile and I'll commit it.

Thanks.

ralphy
2011-08-08, 12:28
Hi Ralphy and the rest!

I'm planing to offer a "Stand Alone SqueezeSlave Player" in my SqueezePlug-Project. It seems that the Start-Script I use one the SqueezePlug-Server does not work on this Stand-Alone System without the Server. Changes I've made in the configuration doesn't seem to have any effect.

I need Your help!!!

Thanks a lot,
Greetings,
Thomas

Hi Thomas,

Create the file /etc/default/squeezeslave and add a line with a unique mac address and another with the server hostname or ip address. Ideally you need to get the mac address of the hardware your running squeezeslave on and use that in place of the "random" mac I placed here as an example.

# cat /etc/default/squeezeslave
SSMAC="00:10:99:98:97:09"
SBSHOST="sbs01"

The /etc/init.d/squeezeslave startup script uses these SSMAC and SBSHOST values if they are set, otherwise the defaults set in the init script
SSMAC="00:00:00:00:00:01"
SBSHOST="localhost"
are used.

ralphy
2011-08-09, 04:57
Hi Ralphy,
looks like a *nice* deadlock to me. Debug output is quite useless, because the printfs are not flushed and when everything freezes it lacks entries.
Some more information: Kernel 2.6.38-8-generic, *multicore* as hyperthreaded, i686/x86 not 64bit. Audio "HDA Intel"/"Realtek ALC269". I run squeezebox server and squeezeslave on the same machine. IMHO it looks like thread 3 or thread 6 freeze everything, it seems to be an issue with stopping the playback... btw. i also tried the latest libportaudio from svn instead the one from squeezeslave.

I hope we could figure out whats wrong....
With best regard, Robinson.
I've seen this issue before, but it was related to the alsa hda kernel driver.

A workaround was added to portaudio a while ago and is included in the latest 1.1-253 release.

You must use the portaudio library from the squeezeslave svn as it contains additional fixes that are not in pa trunk at the moment.

What svn revision are you compiling for your debug binary?

What makefile are you using? Please post the modified version.

ralphy
2011-08-09, 05:02
Thanks for this great tool, I look forward to using it in a multi-room system one day in the future!

On the whole, things are working nicely. I ran into the chipmunk issue when playing certain radio streams quite quickly, but using the custom-convert.conf from

http://code.google.com/p/squeezeslave/source/browse/squeezeslave/trunk/squeezeslave/config/custom-convert.conf.441?spec=svn198&r=197

and mplayer.sh from

http://code.google.com/p/squeezeslave/source/browse/squeezeslave/trunk/squeezeslave/config/mplayer.sh?r=197

seems to work well - apart from one small thing: When mplayer is used to resample offending streams, it uses 100% CPU. Are there any tweaks I can use to fix this? The issue is not present when using flac / sox (they use 2% CPU each). The issue is also not present when using [mplayer] (as opposed to [mplayer.sh]) in custom-convert.conf, but then all sorts of other things go wrong.

CPU is an Intel Core2 Duo P8600 @ 2.40GHz, so it shouldn't be too stressed by such a transcode. I'm running Ubuntu 11.04 64-bit.

Sounds like you might need a "newer" mplayer.sh. The one from svn is from 7.3 server days.

What server versions have you tried?

tingo
2011-08-09, 18:09
Yes, please post your modified makefile and I'll commit it.

Thanks.

Here it is (I had to rename it makefile.freebsd.txt to get this forum to accept it). Note that you have to use gmake (GNU make) on FreeBSD, FreeBSD's own make isn't the same:

gmake -f makefile.freebsd

ralphy
2011-08-10, 04:26
Here it is (I had to rename it makefile.freebsd.txt to get this forum to accept it). Note that you have to use gmake (GNU make) on FreeBSD, FreeBSD's own make isn't the same:

gmake -f makefile.freebsd

Thanks.

The file was committed at r273.

truehl
2011-08-10, 13:55
Has anyone worked out scripts that generate pseudo "slimdevices" mac address for use with squeezeslave installations? I.e. address in the "00:04:20:hh:hh:hh" range?

It would be nice to have such scripts for windows, linux & osx. Linux & osx, I can probably kludge up. Windows is harder, cmd.exe being such a weak shell for scripting.

#!/bin/bash --
newmac=`echo $RANDOM$RANDOM | md5sum | sed -r 's/(..)/\1:/g; s/^(.{17}).*$/\1/;'`
echo "New mac adress: $newmac"

wilbert-vb
2011-08-15, 12:06
Hello there,

I'm running FreeBSD 8.2-RELEASE (minimal install) with squeezeboxserver-7.5.4 from the ports.
I also got squeezeslave-1.1-253 compiled (without lirc) and copied libslimproto.a to /usr/local/lib and squeezeslave to /usr/local/bin.

When I start squeezeslave (with or without parameters) I get this error:
_____
Expression 'paInvalidSampleRate' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 1047
Expression 'PaOssStreamComponent_Configure( component, sampleRate, framesPerBuffer, StreamMode_Out, master )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 1135
Expression 'PaOssStream_Configure( stream, sampleRate, framesPerBuffer, &inLatency, &outLatency )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 1241
output_thread: PortAudio error1: Invalid sample rate
_____

Commands like squuezeslave -h and squeezeslave -L work fine.

I hope for suggestions to get Squeezeslave running.
Thank you very much

ralphy
2011-08-17, 03:43
Your sound card doesn't support 44.1Khz sample rate. It's the ONLY rate that works with squeezeslave.

wilbert-vb
2011-08-17, 05:40
Your sound card doesn't support 44.1Khz sample rate. It's the ONLY rate that works with squeezeslave.
Thank you Ralphy,

The sound card does support 44.1khz very well, it's a HRT Music Streamer II.
It appears that "sysctl dev.pcm.1.bitperfect=1" is the culprit.

Thank you very much.

s7mx1
2011-08-30, 14:58
@ralphy

Based on the template makefile makefile.linux26-armel-alsa I have created a special version of squeezeslave that is optimised for HP TouchPad with the following enhancement

1) CodeSourcery Sourcery G++ Lite 2009q1-203 as the cross compiler
2) Added "-march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize -mfloat-abi=softfp" to the CFLAGS which is fine tuned for TouchPad (ARM V7 with neon)
3) Built against alsa lib version 1.0.23 that matches the one used on touchpad.

The binary can be downloaded from http://www.megaupload.com/?d=087AHJC3

md5sum: c2757f686be20cfda27b3ea77ec0a134

Let me know if you need the makefile please let me know and I will upload somewhere.

ralphy
2011-08-31, 04:21
@ralphy

Based on the template makefile makefile.linux26-armel-alsa I have created a special version of squeezeslave that is optimised for HP TouchPad with the following enhancement

1) CodeSourcery Sourcery G++ Lite 2009q1-203 as the cross compiler
2) Added "-march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize -mfloat-abi=softfp" to the CFLAGS which is fine tuned for TouchPad (ARM V7 with neon)
3) Built against alsa lib version 1.0.23 that matches the one used on touchpad.

The binary can be downloaded from http://www.megaupload.com/?d=087AHJC3

md5sum: c2757f686be20cfda27b3ea77ec0a134

Let me know if you need the makefile please let me know and I will upload somewhere.

That's awesome!

How does it perform on the TouchPad?

You can post the makefile here and I'll commit it to svn.

I can post the binary on googlecode if you'd like. What version and revision is the binary?

s7mx1
2011-08-31, 06:10
That's awesome!

How does it perform on the TouchPad?

You can post the makefile here and I'll commit it to svn.

I can post the binary on googlecode if you'd like. What version and revision is the binary?

I would rather prefer you to post the binary on google code. The binary was built from squeezeslave-1.1-253. The make file can be downloaded from

http://www.megaupload.com/?d=36QAMT13

md5sum: faa279d3f29dd680f85b6430efd6df93

Squeezeslave works quite well out of the box even with the noFPU version posted on the first page but I believe this tailor made version should reduce cpu usage quite a lot. Will do more testing comparing those two.

To run it as service (so it will start automatically) just paste the following code into /etc/event.d/squeezeslave and save it (you need write access on the root folder, if not just remount / as rw)



description "Squeezeslave Daemon for WebOS"
author "s7mx1"
version 1.0

# don't start until the WebOS finishes it's normal boot
# that way no delay is added to the GUI startup
start on stopped finish
stop on runlevel [!2]

# don't try to log any output
console none

# Uncomment to make sure squeezeslave don't slow down GUI use
#nice 5

# Restart the squeezeslave if it exits/dies
respawn

# make sure the path to squeezeslave is up to date
# replace MAC_ADDRESS by your touchpad's mac address
# replace SQUEEZE_SERVER by your squeezeserver's ip address
# remove "-Y /tmp/squeezeslave.log -d slimproto,slimaudio_output" if you do not want logging at all
exec /opt/sbin/squeezeslave -m MAC_ADDRESS -R -k 10 SQUEEZE_SERVER -Y /tmp/squeezeslave.log -d slimproto -d slimaudio_output

Change the MAC_ADDRESS, SQUEEZE_SERVER and path to squeezeslave (default to /opt/sbin) accordingly. Then start squeezeslave by


initctl start squeezeslave


======================

This is a mini guide on how to compile it yourself

1) Download and extract squeezeslave source code to folder (we assume its squeezeslave-1.1-253) then cd to that folder
2) Transfer /usr/lib/libasound.so.2 from your touchpad to the current working folder
3) Download alsa-lib 1.0.23 and extract to the current working directory
4) Run following commands to prepare alsa source and library


mkdir -p lib/libasound/lnx26/lib
mkdir -p cd lib/libasound/lnx26/include
cp -a alsa-lib-1.0.23/include/* ./lib/libasound/lnx26/include/
cp -a libasound.so.2 ./lib/libasound/lnx26/lib/
ln -s libasound.so.2 libasound.so
mv libasound.so ./lib/libasound/lnx26/lib/

5) Download Sourcery G++ Lite 2009q1-203 from here http://www.codesourcery.com/sgpp/lite/arm/portal/release858 and install it to
/opt/CodeSourcery/Sourcery_G++_Lite
6) Download the make file in the link above and save it to the current working directory
7) build it


make -f makefile.linux26-armel-alsa-touchpad


Please note that you will need the libasound.so.2 file and setup proper symbolic otherwise you will not have alsa support.

s7mx1
2011-08-31, 06:54
There is an interesting article about vfp and neon on ti http://processors.wiki.ti.com/index.php/Cortex-A8#Neon_and_VFP_both_support_floating_point.2C_whi ch_should_I_use.3F

Also noted that Sourcery G++ Lite 2010q1-202 also states improvements on ARM-V7A. Will try new compiler and different compiler options to see it will make a difference.

MusicManiac
2011-08-31, 14:29
Nicely done s7mx1. Works quite well.

What kind of cpu usage are you seeing with the file types you're streaming?

Edit: It doesn't seem to enjoy my flac files very much (stock speeds)

ralphy
2011-09-01, 03:53
There is an interesting article about vfp and neon on ti http://processors.wiki.ti.com/index.php/Cortex-A8#Neon_and_VFP_both_support_floating_point.2C_whi ch_should_I_use.3F

Also noted that Sourcery G++ Lite 2010q1-202 also states improvements on ARM-V7A. Will try new compiler and different compiler options to see it will make a difference.

Should I wait to post the binary on googlecode until you have one that's been proven a bit more?

ralphy
2011-09-01, 04:33
I've just completed merging the empeg Mk2 / Rio Car Mk2a port from rpress into trunk.

You can see a pic of squeezeslave running on the car player in post 193 (http://forums.slimdevices.com/showpost.php?p=638111&postcount=193). It uses the same display format as the boom, very cool! The server requires a patch to support the empeg player. An empeg package and the patch are currently on googlecode (http://code.google.com/p/squeezeslave/downloads/list).

The changes also bring server discover support -F/--discovery to squeezeslave. For the moment it's only supported for unix based players, but I plan to include windows support eventually.

I've uploaded a windows (http://squeezeslave.googlecode.com/files/squeezeslave-1.1-281-win.zip) zip to googlecode first as that usually gets downloaded the most and so hopefully helps test the changes a bit quicker. I'll upload linux and osx updates over the next couple days.

r273 in trunk is the last revision before the empeg branch was merged.

Post any issues discovered with the updates to this thread.

Thanks,

EDIT: OSX (http://squeezeslave.googlecode.com/files/squeezeslave-1.1-281-osx.tar.gz) and Linux ARM (http://squeezeslave.googlecode.com/files/squeezeslave-1.1-281-armel-lnx26.tar.gz) binaries are now available too.

s7mx1
2011-09-02, 02:23
Should I wait to post the binary on googlecode until you have one that's been proven a bit more?

@ralphy,

I would like to test it a bit more over the weekend. Will get back to you early next week. Thanks.

s7mx1
2011-09-02, 03:21
Nicely done s7mx1. Works quite well.

What kind of cpu usage are you seeing with the file types you're streaming?

Edit: It doesn't seem to enjoy my flac files very much (stock speeds)

@MusicManiac

1) Check your wifi ap/router. In the worst case it will need about 180 KB/s bandwidth. Make sure the latency between your squeezeserver and touchpad is low otherwise it will take a lot time to buffer.
2) Flac decoding is not CPU intensive which is in the design spec. If you could playback ogg files then its safe to assume the same CPU is powerful enough to decode FLAC files. If you want you can try BFQ I/O scheduler (you need to install govnah and uber kernel from preware).
3) Check the CPU usage with top inside touchpad. You should be expecting more than 30% id (idle) in average when squeezeslave is running.

For your reference I installed uber kernel with max frequency set to 1.5G Hz and have turned the cpu frequency governor to preformance (therefore can have a more consistent performance) the CPU usage of squeezeslave measures around 7% when playing back mp3. Therefore I don't think CPU is the bottleneck here when running at 1.2G HZ.

MusicManiac
2011-09-02, 15:11
@MusicManiac

1) Check your wifi ap/router. In the worst case it will need about 180 KB/s bandwidth. Make sure the latency between your squeezeserver and touchpad is low otherwise it will take a lot time to buffer.
2) Flac decoding is not CPU intensive which is in the design spec. If you could playback ogg files then its safe to assume the same CPU is powerful enough to decode FLAC files. If you want you can try BFQ I/O scheduler (you need to install govnah and uber kernel from preware).
3) Check the CPU usage with top inside touchpad. You should be expecting more than 30% id (idle) in average when squeezeslave is running.

For your reference I installed uber kernel with max frequency set to 1.5G Hz and have turned the cpu frequency governor to preformance (therefore can have a more consistent performance) the CPU usage of squeezeslave measures around 7% when playing back mp3. Therefore I don't think CPU is the bottleneck here when running at 1.2G HZ.

Well I've spent more time than my quick evaluation before and it is working good.

I think the stutters I was experiencing probably have more to do with cpu usage being taken away from squeezeslave due to multitasking(or hitting a bad webpage) than it topping out. Bandwidth shouldn't be an issue. (unless its the pad itself... or the download throttling applies to streams? don't believe it does...)

Checking top and it is inline with what you said it should be. Occasionally it (and pulseaudio) spikes, but nothing unexpected. Stock kernel still.

I will need to play with the latency or delay options as switching tracks produces trash every know and then.(have you needed to tweak it?)

Anyway good work, thanks again for the port.

ralphy
2011-09-07, 14:56
Thanks to MusicManiac for building new OpenWRT packages and Generic MIPS squeezeslave binaries.

You'll find them in the downloads (http://code.google.com/p/squeezeslave/downloads/list) tab of the squeezeslave googlecode site.

I've also updated the links in post #1 (http://forums.slimdevices.com/showpost.php?p=589850&postcount=1) of this thread to the new packages.

dlcastles
2011-09-11, 03:52
Ralphy,
I've been attempting to use the ASIO version of Squeezeslave 1.1-253 with a Thinkpad X41 connected to the Aynchronous USB DAC of an Audiolab 8200CDQ. All works well apart from the redirection of the audio signal to the DAC. The ASIO plugin recognises it (I've used it successfully with foobar) but I can't get it to place the blue play symbol beside the Audiolab DAC in the WDM Device List dialogue. Instead, audio is sent to the X41s internal soundchip.
Would be grateful for any suggestions as to where I'm going wrong on this.
Many thanks, Duncan

ralphy
2011-09-11, 11:43
Ralphy,
I've been attempting to use the ASIO version of Squeezeslave 1.1-253 with a Thinkpad X41 connected to the Aynchronous USB DAC of an Audiolab 8200CDQ. All works well apart from the redirection of the audio signal to the DAC. The ASIO plugin recognises it (I've used it successfully with foobar) but I can't get it to place the blue play symbol beside the Audiolab DAC in the WDM Device List dialogue. Instead, audio is sent to the X41s internal soundchip.
Would be grateful for any suggestions as to where I'm going wrong on this.
Many thanks, Duncan

From a cmd prompt change to the folder where you unzipped the squeezeslave files and run

squeezeslave-asio -L

Post the output

dlcastles
2011-09-12, 02:15
From a cmd prompt change to the folder where you unzipped the squeezeslave files and run

squeezeslave-asio -L

Post the output

Ralphy,
Thanks for getting back to me so quickly. Here is the output from using that command line:
Best, Duncan

C:\Program Files\Squeezeslave>squeezeslave-asio -L
Output devices:
* 0: (ASIO) ASIO4ALL v2 (5/17)

C:\Program Files\Squeezeslave>squeezeslave-asio -L --retry --mac 00:00:00:20:20:
01 192.168.0.3
Output devices:
* 0: (ASIO) ASIO4ALL v2 (46/46)

C:\Program Files\Squeezeslave>

s7mx1
2011-09-12, 14:08
I have rebuilt the squeezeslave binary based on 1.1-253 with latest WebOS SDK. Here are changes made so far

1) optimised CFLAGS for touch pad (cortex a8)
-O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize -mfloat-abi=softfp -ffast-math -fsingle-precision-constant
2) A portaudio patch as a workaround for WebOS SDK (fixed in later version of gcc compiler and portaudio)
3) updated libasound 1.0.24.1 that matches the version used on webos 3.0.2



The binary, patch, alsa library shared object (taken from working touchpad) and alsa library include files and of course the modified make file can be downloaded from

http://xbox-remote.googlecode.com/files/squeezeslave-1.1-253-tp.tgz

The optware-squeezeslave inside etc/event.d of that tar ball should be placed on /etc/event.d/ folder on your touch pad. As mentioned in the previous post you should update that file accordingly.

Currently I am having major wifi network issues (wifi drops) at my home so could not test properly.

I noticed there are quite a few times squeezeslave stopped working and I have the following entry in the log:


Expression 'paTimedOut' failed in 'src/os/unix/pa_unix_util.c', line: 387


Not quite sure its because of wifi drop or something else.

MusicManiac
2011-09-14, 06:05
I noticed there are quite a few times squeezeslave stopped working and I have the following entry in the log:


Expression 'paTimedOut' failed in 'src/os/unix/pa_unix_util.c', line: 387


Not quite sure its because of wifi drop or something else.
Squeezeslave log correct? I'll have to check mine as I've also had it stop working several times. I just blamed the server when it happened (7.6.2) Maybe there is more to it.

ralphy
2011-09-15, 05:02
Expression 'paTimedOut' failed in 'src/os/unix/pa_unix_util.c', line: 387


Not quite sure its because of wifi drop or something else.

The portaudio library failed to write samples to the audio device within the timeout period. It's an issue with the audio device not squeezeslave.

ralphy
2011-09-15, 05:05
Ralphy,
Thanks for getting back to me so quickly. Here is the output from using that command line:
Best, Duncan

C:\Program Files\Squeezeslave>squeezeslave-asio -L
Output devices:
* 0: (ASIO) ASIO4ALL v2 (5/17)

C:\Program Files\Squeezeslave>squeezeslave-asio -L --retry --mac 00:00:00:20:20:
01 192.168.0.3
Output devices:
* 0: (ASIO) ASIO4ALL v2 (46/46)

C:\Program Files\Squeezeslave>

Since you're using asio4all you'll need to look at the configuration for it. Squeezeslave has no control over the device(s) it points to. Alternatively, you can try using the direct sound version squeezeslave.exe -L, find the device and then start squeezeslave with -oN where N is the device number listed before the colon. See the wiki for more details.

odedn
2011-09-19, 00:01
I've been playing around with the idea of creating a single-PC multi-zone music system (something like casatunes) based on squeezebox. The idea is to use a PC with an HDAudio-compatible audio card (most PCs today are compatible, supporting 6 or 8 channels), and connect it to a single surround amplifier. This should make multi-zone solutions very cheap, as a single 6-channel (or 6.1 or 7.1) surround amplifiers is cheaper than 3 stereo amplifiers both for cheap amplifiers and for expensive ones. A PC with HDAudio interface can be connected to such amplifier using a single SPDIF cable, making such solution really easy to set up.

Having checked several software-based squeezeboxes, I saw that squeezeslave is the perfect choice - it's lightweight and has good performance; these considerations are ever more important for multi-zone as mutliple instances of the player need to coexist. I've made the changes to the squeezeslave code to support it as an optional feature activated using a command-line argument. If "-z n/m" is specified at command line, squeezeslave will work on zone n out of m zones. If not specified, or if used with "-z 0/1", squeezeslave will operate normal and my changes will not effect performance or behavior of squeezeslave. When zones are in used, portaudio is initilized with m*2 channels (rather than the default 2), and all audio buffers will be written to the n-th channel. Also, if zones are used and a non-default MAC address is not used, the last byte of the MAC address used will be (n+1) to avoid collision.

So, for example, for setting up 3 audio zones using a single PC, you need a 6.1 or 7.1 amplifier connected to your PC, and then you run 3 instances of squeezeslave:

% squeezeslave -z 0/3 &
% squeezeslave -z 1/3 &
% squeezeslave -z 2/3 &



I've tested it on linux and it seems to work well. If you're interested, I'd love to contribute this code back to the project. I believe it could make squeezeslave a very useful tool for people using squeezebox for home audio, and for embedding in systems such as vortexbox.

I'm attaching my changes as a diff (patch) file.

s7mx1
2011-09-19, 03:17
The portaudio library failed to write samples to the audio device within the timeout period. It's an issue with the audio device not squeezeslave.

@ralphy

I have been testing during the weekends and found out that paTimedOut will only happen if I either resume or jump (next button) to the next song. If I just leave squeezeslave on it own it will be just happy singing for hours without any fail.

I started pulseaudio manually and noticed that for every successful resume or jump I will get acknowledgement that audio device has been closed first then opened again but with failed attempt I will only get acknowledgement for audio device being closed. It seems somehow that portaudio failed to open the audio device.

What logs do you want?

ralphy
2011-09-19, 04:51
@s7mx1

Squeezeslave does not open/close the audio device during pause/resume. It opens the device when squeezeslave starts and keeps it open until the program exits. It's more likely the issue is related to power saving where the tablet is turning off the audio hardware and the port audio library is not notified of the event.

If you pause and resume within a few seconds do you see the same effect?

Is there a way to verify what state the audio hardware is in after you've paused squeezeslave for a longer time?

I'll check the portaudio change logs for a similiar issue. I'm using a older snapshot of the PA library. If there's a fix for a similiar issue I'll make a newer PA source tar file for you to try.

ralphy
2011-09-19, 05:04
I've tested it on linux and it seems to work well. If you're interested, I'd love to contribute this code back to the project. I believe it could make squeezeslave a very useful tool for people using squeezebox for home audio, and for embedding in systems such as vortexbox.

I'm attaching my changes as a diff (patch) file.

Thank you for helping to make squeezeslave more versatile.

I'm going to test it on windows and osx before I commit it.

RonM
2011-09-19, 08:55
This is a pretty basic question -- I've not read all the documentation or the entire thread, so the answer may be out there.

My install of SS lives on a dedicated server-pc. I'd be using Squeezeslave on a different computer, but one that is on the network with the server. Is Squeezeslave going to work for me under these circumstances?

R.

ralphy
2011-09-19, 13:22
This is a pretty basic question -- I've not read all the documentation or the entire thread, so the answer may be out there.

My install of SS lives on a dedicated server-pc. I'd be using Squeezeslave on a different computer, but one that is on the network with the server. Is Squeezeslave going to work for me under these circumstances?

R.

Yes.

You will need to provide the hostname or ip address of the server.

If you're running more than one copy of squeezeslave you'll need to add -m00:00:00:00:00:02 to the command line when you start the second squeezeslave.

Run squeezeslave -h for a full list of command line options.

s7mx1
2011-09-19, 14:59
@s7mx1

Squeezeslave does not open/close the audio device during pause/resume. It opens the device when squeezeslave starts and keeps it open until the program exits. It's more likely the issue is related to power saving where the tablet is turning off the audio hardware and the port audio library is not notified of the event.

If you pause and resume within a few seconds do you see the same effect?

Is there a way to verify what state the audio hardware is in after you've paused squeezeslave for a longer time?

I'll check the portaudio change logs for a similiar issue. I'm using a older snapshot of the PA library. If there's a fix for a similiar issue I'll make a newer PA source tar file for you to try.

@ralphy

I did a bit experiments by playing back continuously (as a loop) an mp3 file using gstreamer with alsa output. The gstreamer was started as exactly like squeezeslave over a console and I did not have a single problem with gstreamer at all. Playing back mp3 in a loop should keep the audio device busy thus would rule out any power saving. However I still get see this paTimedOut error message.

I think its more to do with Pa_StartStream and its callback functions. How difficult would it be to replace portaudio by pulseaudio in slimaudio_output?

Here is the pulseaudio simple api
http://www.freedesktop.org/software/pulseaudio/doxygen/simple.html

ralphy
2011-09-20, 03:59
The Async API threaded main loop (http://www.freedesktop.org/software/pulseaudio/doxygen/threaded_mainloop.html) more closely models the portaudio callback API and squeezeslave thread layout.

s7mx1
2011-09-20, 15:07
The Async API threaded main loop (http://www.freedesktop.org/software/pulseaudio/doxygen/threaded_mainloop.html) more closely models the portaudio callback API and squeezeslave thread layout.


@ralphy

I am terrible at C/C++. I have no clue about the callback. I tried the PulseAudio Simple API but stuck at getting the buffer out from decoder to the pulseaudio. I noticed that pa_callback in slimaudio_output.c was responsible of transferring buffer over. Could you provide a poll method of such function instead of callback.