PDA

View Full Version : [ANNOUNCE] Squeezeslave: 1.0 released



Pages : 1 [2]

pseud
2011-09-25, 00:54
Hi Folks

Following the end of this thread:
http://vortexbox.org/forum/vortexbox-player/vbp-setup-sync-alsa-volume-re-adjusting/#p17031

It seems squeezeslave is resetting alsamixer when (stopped and then re) started, is this expected behaviour?

(Also, perhaps, given the volume of traffic on this tread - squeezeslave is deserving of it's own forum?)

ralphy
2011-09-25, 04:15
Hi Folks

Following the end of this thread:
http://vortexbox.org/forum/vortexbox-player/vbp-setup-sync-alsa-volume-re-adjusting/#p17031

It seems squeezeslave is resetting alsamixer when (stopped and then re) started, is this expected behaviour?

(Also, perhaps, given the volume of traffic on this tread - squeezeslave is deserving of it's own forum?)

Squeezeslave does not have the ability to modified alsa pcm mixers.

It can modify OSS pcm mixers, but you must be using an OSS device and add -von to the command line when starting it.

Ron Olsen
2011-09-25, 10:41
Squeezeslave does not have the ability to modified alsa pcm mixers.

It can modify OSS pcm mixers, but you must be using an OSS device and add -von to the command line when starting it.

The problem on VortexBox 1.10 is in the init script in /etc/init.d/squeezeslave, which calls amixer to set mixer levels to 100 on all channels when squeezeslave is started via "service squeezeslave start".

pseud
2011-09-25, 21:21
The problem on VortexBox 1.10 is in the init script in /etc/init.d/squeezeslave, which calls amixer to set mixer levels to 100 on all channels when squeezeslave is started via "service squeezeslave start".

Thx,
M.

ralphy
2011-10-11, 04:54
Thank you for helping to make squeezeslave more versatile.

I'm going to test it on windows and osx before I commit it.

I've committed the zones patch at r286 as a compile time feature.

You'll need to add -DZONES to the CFLAGS variable in the makefile.

I was unable to get the zones feature to work on OSX or windows so I'm not comfortable adding it as a default feature.

Thanks for the patch.

Monteaup
2011-10-18, 13:51
Hi,

I'm using the squeezeslave-ubuntu version on my ubuntu 11.04 machine starting it up using upstart. I have the problem in deamon mode (-M) no other application is able to use the sound device.

MusicManiac
2011-10-20, 05:44
Hi,

I'm using the squeezeslave-ubuntu version on my ubuntu 11.04 machine starting it up using upstart. I have the problem in deamon mode (-M) no other application is able to use the sound device.

There should be a few post in this tread on the topic if you search for it.

There have been different reasons for the problem, but mine was a permission issue. If thats the case with you, you could try running Sqs from the 'startup applications' to see if it still steals the audio device.

-mm

ralphy
2011-10-25, 11:05
I've uploaded a combined ASIO, Direct Sound and WASAPI windows binary (http://squeezeslave.googlecode.com/files/squeezeslave-1.1-309-win.zip) an OSX Univeral binary (http://squeezeslave.googlecode.com/files/squeezeslave-1.1-309-osx.tar.gz) and a new squeezeplug binary (http://squeezeslave.googlecode.com/files/squeezeslave-1.1-309-armel-lnx26.tar.gz) to googlecode for testing.

Server discovery is now supported on windows. (-F/--discovery)

If you have more than one squeezebox server on your network, squeezeslave will connect to the first server that responds to the discovery packet.

Server discovery does not always work when your system has more than one active network interface. You may have to continue to specify the squeezebox server name on the command line.

You can now also select the output device by name. (-n/--name)

See this post (http://forums.slimdevices.com/showpost.php?p=634644&postcount=167) for details.

I've also fixed a crash in the windows version caused when Control-C was pressed while running from a command window and (-D/--display) was not enabled.

EDIT: r309 fixes hostname truncation at 16 characters.

stealthdave
2011-11-01, 15:08
I've gotten squeezeslave running successfully on my Ubuntu media server, but I can only see ALSA-based output devices when I run squeezeslave -L. According to the Wiki ( wiki . slimdevices . com/index.php/SqueezeSlave ), Squeezeslave supports OSS, ALSA and PulseAudio outputs. I have PulseAudio running globally, and have confirmed that it is visible to other applications. I didn't see any flags or options that might need to be set in order to enable PulseAudio support, and I believe I had all the -dev packages for PulseAudio, PortAudio, and every other dependency I could find installed. Is there something that I'm missing?

The reason I want to use PulseAudio and not just ALSA is so that I can send Squeezeslave output to an Airport Express that I have set up as a PulseAudio sink (output). Any assistance would be greatly appreciated!

- Dave

P.S. - I tried to link to the SqueezeSlave Wiki page directly, but alas, this is my first post. :(

ralphy
2011-11-10, 16:08
Does the pulseaudio airport sink device support 44100 sample rate and 16bit audio?

squeezeslave -L only lists devices for which it can successfully open at that rate and bit depth.

verypsb
2011-11-11, 08:23
I can't get squeezeslave-1.1-305-win working on my system. It refuses to connect to my system through the internet. Older versions do work.

ralphy
2011-11-12, 05:56
I can't get squeezeslave-1.1-305-win working on my system. It refuses to connect to my system through the internet. Older versions do work.

The audio device id most likely changed r299 and r305 support DS, ASIO and WASAPI in the same binary.

I'd check -L and what you're using to choose the device either -n or -o

Since you didn't mention what the last working version was I can't say more.

Server discovery -F will only work if the two networks are bridged.

ralphy
2011-11-12, 15:03
I don't build many intel development linux binaries these days as I do most testing on the ARM processor running squeezeplug.

Thought it was time to create one. It's available on googlecode (http://squeezeslave.googlecode.com/files/squeezeslave-1.1-305-lnx26.tar.gz).

Please report any issues you encounter to this thread.

Thanks,

verypsb
2011-11-14, 01:24
The audio device id most likely changed r299 and r305 support DS, ASIO and WASAPI in the same binary.

I'd check -L and what you're using to choose the device either -n or -o

Since you didn't mention what the last working version was I can't say more.

Server discovery -F will only work if the two networks are bridged.

I think I've found the problem. The new version doesn't connect to host.domain.com, but does connect to 1.2.3.4 (ip address). I always try to connect to the fqdn name. (externally)

ralphy
2011-11-14, 04:42
I think I've found the problem. The new version doesn't connect to host.domain.com, but does connect to 1.2.3.4 (ip address). I always try to connect to the fqdn name. (externally)

Do you know what is the last build/version that you used that worked?

ralphy
2011-11-14, 04:58
Do you know what is the last build/version that you used that worked?

I found the problem, the name is being trucated after 16 characters.

I should have a fix for you soon.

verypsb
2011-11-14, 05:36
Thanks!

Another question: What's the status of squeezeslave development? Are new features implemented? I would really like to see support for other sample rates then 44.1Khz/16 bit, (smart) crossfade and Spotify (Triode).
I thought I read somewhere that this would require too much work.

ralphy
2011-11-15, 08:10
I've sent you a test build to try via email.

Squeezeslave does everything I need except wma decoding which I have working but it's not ready for general consumption yet. Beyond that I'm not planning any new development.

I suspect squeezeslave currently works with Triode's spotify plugin, if the check for direct streaming support in the player was removed from the plugin. But I haven't tested that, so I could be totally wrong.

I've had 4-5 forum members offer to look at adding support for other sampling rates, but so far no one has submitted any patches to test. I have indicated that it requires a lot of rewriting of the code to get working and I'm not prepared to spend the time to do so.

routerunner
2011-11-15, 09:05
I downloaded the source from the trunk and following the instruction I was nearly able to cross compile for "mipsel" architecture by using emdebian...I said nearly as I'm stuck into an error whilst attempting to compile the vorbis library as below:

checking for Ogg... cross compiling; assumed OK...
yes
checking for oggpack_writealign... no
configure: error: Ogg >= 1.0 required !
make: *** [lib/vorbis/lnx26/lib/libvorbis.a] Error 1

Any help would be really appreciated...

MusicManiac
2011-11-15, 14:02
checking for oggpack_writealign... no

I believe that is a part of libogg - might want to check on your dependencies. I'm not somewhere I can look into the error more right now.

Out of curiosity, does the mips binary posted at googlecode work for you?

-mm

gharris999
2011-11-15, 16:03
Ralphy: any chance we could get a '-FL' or '--discoverylist' arg that would have squeezeslave just list the addresses and ports of the available servers and then exit?

Also, a '--pidfile=' arg would be helpful.

Thanks.

routerunner
2011-11-15, 16:11
Out of curiosity, does the mips binary posted at googlecode work for you?
-mm

I'm working on making a SageTV HD200/HD300 acting as a Logitech Duet under specific circumstances, which includes the ability to modify/recompile the squeezeslave code as appropriate. To answer to your question, yes the current mipsel build does run on both platforms, however I still need to cross compile the "soundcore.ko" and "em8oss.ko" to the specific linux version the boxes are running on. Also I managed to find the Sigma SDK version the HD300 is using, but not the HD200 which is an older model.

verypsb
2011-11-16, 01:20
I've sent you a test build to try via email.

Yes, this version connects to my LMS server externally using a FQDN.

ralphy
2011-11-16, 05:04
I downloaded the source from the trunk and following the instruction I was nearly able to cross compile for "mipsel" architecture by using emdebian...I said nearly as I'm stuck into an error whilst attempting to compile the vorbis library as below:

checking for Ogg... cross compiling; assumed OK...
yes
checking for oggpack_writealign... no
configure: error: Ogg >= 1.0 required !
make: *** [lib/vorbis/lnx26/lib/libvorbis.a] Error 1

Any help would be really appreciated...

Change line 70 in makefile.linux26-mipsel to this


cd lib/vorbis/$(OS)/build/$(LIBVORBIS) && CC="$(CC)" CFLAGS="$(CFLAGS)" CPPFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" OGG_CFLAGS="-I`pwd`/../../include" OGG_LIBS="`pwd`/../../lib/libogg.a" ./configure --enable-shared=no --host=i686-pc-linux-gnu --build=mipsel-linux-gnu --target=mipsel-linux-gnu

ralphy
2011-11-16, 05:16
Ralphy: any chance we could get a '-FL' or '--discoverylist' arg that would have squeezeslave just list the addresses and ports of the available servers and then exit?

Also, a '--pidfile=' arg would be helpful.

Thanks.

Not sure about --discoverylist, I'll investigate it.

You can see the discovery status if you run -dslimproto --discovery
However, it will only show the server that responded first.

--pidfile might be simple, stay tuned.

ralphy
2011-11-16, 05:18
Yes, this version connects to my LMS server externally using a FQDN.

That's great!

I'll merge the changes into googlecode

Thanks for tracking down and reporting this.

routerunner
2011-11-16, 06:24
Change line 70 in makefile.linux26-mipsel to this


cd lib/vorbis/$(OS)/build/$(LIBVORBIS) && CC="$(CC)" CFLAGS="$(CFLAGS)" CPPFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" OGG_CFLAGS="-I`pwd`/../../include" OGG_LIBS="`pwd`/../../lib/libogg.a" ./configure --enable-shared=no --host=i686-pc-linux-gnu --build=mipsel-linux-gnu --target=mipsel-linux-gnu

thank you for the reply, I tried your suggestion, unfortunately it seems doesn't make any difference, here the output below:


cd lib/vorbis/lnx26/build && tar --bzip -xf ../../../../sources/libvorbis-1.3.2.tar.bz2
cd lib/vorbis/lnx26/build/libvorbis-1.3.2 && CC="mipsel-linux-gnu-gcc" CFLAGS="-DRENICE -DSLIMPROTO_DEBUG -DDAEMONIZE -DUSE_SIGNALS_FOR_RESTART -Wall -O2 -march=mips32 -msoft-float -static" CPPFLAGS="-DRENICE -DSLIMPROTO_DEBUG -DDAEMONIZE -DUSE_SIGNALS_FOR_RESTART -Wall -O2 -march=mips32 -msoft-float -static" LDFLAGS="-s -static" OGG_CFLAGS="-I`pwd`/../../include" OGG_LIBS="`pwd`/../../lib/libogg.a" ./configure --enable-shared=no --host=i686-pc-linux-gnu --build=mipsel-linux-gnu --target=mipsel-linux-gnu
checking build system type... mipsel-unknown-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... mipsel-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for i686-pc-linux-gnu-strip... no
checking for strip... strip
configure: WARNING: In the future, Autoconf will not detect cross-tools
whose name does not start with the host triplet. If you think this
configuration is useful to you, please write to autoconf@gnu.org.
checking whether to enable maintainer-specific portions of Makefiles... no
checking for i686-pc-linux-gnu-gcc... mipsel-linux-gnu-gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... yes
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether mipsel-linux-gnu-gcc accepts -g... yes
checking for mipsel-linux-gnu-gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of mipsel-linux-gnu-gcc... gcc3
checking how to run the C preprocessor... mipsel-linux-gnu-gcc -E
checking for inline... inline
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by mipsel-linux-gnu-gcc... /usr/mipsel-linux-gnu/bin/ld
checking if the linker (/usr/mipsel-linux-gnu/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... no
checking for i686-pc-linux-gnu-dumpbin... no
checking for i686-pc-linux-gnu-link... no
checking for dumpbin... no
checking for link... link -dump -symbols
checking the name lister (link -dump -symbols) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 805306365
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking for /usr/mipsel-linux-gnu/bin/ld option to reload object files... -r
checking for i686-pc-linux-gnu-objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for i686-pc-linux-gnu-ar... no
checking for ar... ar
checking for i686-pc-linux-gnu-strip... strip
checking for i686-pc-linux-gnu-ranlib... no
checking for ranlib... ranlib
checking command to parse link -dump -symbols output from mipsel-linux-gnu-gcc object... failed
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if mipsel-linux-gnu-gcc supports -fno-rtti -fno-exceptions... no
checking for mipsel-linux-gnu-gcc option to produce PIC... -fPIC -DPIC
checking if mipsel-linux-gnu-gcc PIC flag -fPIC -DPIC works... yes
checking if mipsel-linux-gnu-gcc static flag -static works... no
checking if mipsel-linux-gnu-gcc supports -c -o file.o... yes
checking if mipsel-linux-gnu-gcc supports -c -o file.o... (cached) yes
checking whether the mipsel-linux-gnu-gcc linker (/usr/mipsel-linux-gnu/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking whether mipsel-linux-gnu-gcc and cc understand -c and -o together... yes
checking GCC version... 4.4.5
checking if mipsel-linux-gnu-gcc accepts -Wdeclaration-after-statement... no
checking for memory.h... (cached) yes
checking for cos in -lm... no
checking for pthread_create in -lpthread... no
checking for i686-pc-linux-gnu-pkg-config... no
checking for pkg-config... no
checking for Ogg... cross compiling; assumed OK...
yes
checking for oggpack_writealign... no
configure: error: Ogg >= 1.0 required !
make: *** [lib/vorbis/lnx26/lib/libvorbis.a] Error 1

ralphy
2011-11-16, 07:04
I need to see the config.log from the build/libvorbis-1.3.2 to help

Please compress the file and attach it to a post.

Thanks,

routerunner
2011-11-16, 07:13
I need to see the config.log from the build/libvorbis-1.3.2 to help

Please compress the file and attach it to a post.

Thanks,

Hi,
please find the requested file in attachment.

many thanks

ralphy
2011-11-17, 04:49
Hi,
please find the requested file in attachment.

many thanks

gcc is failing because of an unknown option -mno-ieee-fp being added by configure


configure:12715: checking for oggpack_writealign
configure:12771: mipsel-linux-gnu-gcc -o conftest -O20 -ffast-math -mno-ieee-fp -D_REENTRANT -fsigned-char -DRENICE -DSLIMPROTO_DEBUG -DDAEMONIZE -DUSE_SIGNALS_FOR_RESTART -Wall -O2 -march=mips32 -msoft-float -static -DUSE_MEMORY_H -DRENICE -DSLIMPROTO_DEBUG -DDAEMONIZE -DUSE_SIGNALS_FOR_RESTART -Wall -O2 -march=mips32 -msoft-float -static -s -static conftest.c /home/edoardo/projects/squeezeslave/squeezeslave/lib/vorbis/lnx26/build/libvorbis-1.3.2/../../lib/libogg.a -logg >&5
cc1: error: unrecognized command line option "-mno-ieee-fp"
configure:12777: $? = 1
configure: failed program was:
-- removed test code example --
configure:12794: result: no
configure:12799: error: Ogg >= 1.0 required !


Add this at line 70, right after 'cd lib/vorbis/$(OS)/build && ${TAR} --bzip -xf ../../../../sources/$(LIBVORBIS).tar.bz2'
Don't forget a tab at the beginning.


cd lib/vorbis/$(OS)/build/$(LIBVORBIS) && $(SED) -i "s/-mno-ieee-fp//g" configure

routerunner
2011-11-17, 06:37
[/code]

Add this at line 70, right after 'cd lib/vorbis/$(OS)/build && ${TAR} --bzip -xf ../../../../sources/$(LIBVORBIS).tar.bz2'
Don't forget a tab at the beginning.


cd lib/vorbis/$(OS)/build/$(LIBVORBIS) && $(SED) -i "s/-mno-ieee-fp//g" configure


thank you for the reply, but now is the linker that complains:



configure:12715: checking for oggpack_writealign
configure:12771: mipsel-linux-gnu-gcc -o conftest -O20 -ffast-math -D_REENTRANT -fsigned-char -Wdeclaration-after-statement -DRENICE -DSLIMPROTO_DEBUG -DDAEMONIZE -DUSE_SIGNALS_FOR_RESTART -Wall -O2 -march=mips32 -msoft-float -static -DUSE_MEMORY_H -DRENICE -DSLIMPROTO_DEBUG -DDAEMONIZE -DUSE_SIGNALS_FOR_RESTART -Wall -O2 -march=mips32 -msoft-float -static -s -static conftest.c /home/edoardo/projects/squeezeslave/squeezeslave/lib/vorbis/lnx26/build/libvorbis-1.3.2/../../lib/libogg.a -logg -lm >&5
/usr/lib/gcc/mipsel-linux-gnu/4.4.5/../../../../mipsel-linux-gnu/bin/ld: cannot find -logg
collect2: ld returned 1 exit status
configure:12777: $? = 1

ralphy
2011-11-18, 17:20
thank you for the reply, but now is the linker that complains:



configure:12715: checking for oggpack_writealign
configure:12771: mipsel-linux-gnu-gcc -o conftest -O20 -ffast-math -D_REENTRANT -fsigned-char -Wdeclaration-after-statement -DRENICE -DSLIMPROTO_DEBUG -DDAEMONIZE -DUSE_SIGNALS_FOR_RESTART -Wall -O2 -march=mips32 -msoft-float -static -DUSE_MEMORY_H -DRENICE -DSLIMPROTO_DEBUG -DDAEMONIZE -DUSE_SIGNALS_FOR_RESTART -Wall -O2 -march=mips32 -msoft-float -static -s -static conftest.c /home/edoardo/projects/squeezeslave/squeezeslave/lib/vorbis/lnx26/build/libvorbis-1.3.2/../../lib/libogg.a -logg -lm >&5
/usr/lib/gcc/mipsel-linux-gnu/4.4.5/../../../../mipsel-linux-gnu/bin/ld: cannot find -logg
collect2: ld returned 1 exit status
configure:12777: $? = 1


Add --disable-oggtest to line 71.


cd lib/vorbis/$(OS)/build/$(LIBVORBIS) && CC="$(CC)" CFLAGS="$(CFLAGS)" CPPFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" OGG_CFLAGS="-I`pwd`/../../include" OGG_LIBS="`pwd`/../../lib/libogg.a" ./configure --enable-shared=no --host=i686-pc-linux-gnu --build=mipsel-linux-gnu --target=mipsel-linux-gnu --disable-oggtest

routerunner
2011-11-22, 08:50
Add --disable-oggtest to line 71.


cd lib/vorbis/$(OS)/build/$(LIBVORBIS) && CC="$(CC)" CFLAGS="$(CFLAGS)" CPPFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" OGG_CFLAGS="-I`pwd`/../../include" OGG_LIBS="`pwd`/../../lib/libogg.a" ./configure --enable-shared=no --host=i686-pc-linux-gnu --build=mipsel-linux-gnu --target=mipsel-linux-gnu --disable-oggtest

Sorry for the late reply, but I was very busy to try out...and...BRILLIANT!!! It works as expected now, thank you SOOOO much.

donny619
2011-12-05, 11:49
First. Love SqueezeSlave. Great work!

I found myself looking for something like this because of hi-rez support. I was encouraged to see a wasapi version but upon using it, all my hi-rez material and SACD rips were down-sampled to 44.1khz. Of course, further reading shows that the limitation is within the original code of squeezeslave(correct me if I'm wrong). I use SPDIF output on my computer to an external DAC and the DAC displays what the sample rate is locked in at.

My question is, isn't the point of a wasapi build to "passthrough" the audio file as is? If I launch XBMC and play the music file (using ffdshow codec, WASAPI SPDIF output within XMBC), the music same music files lock in at the correct sample sizes (ie 88khz, 176khz...etc).

Is it possible to implement SqueezeSlave in a similar passthrough manner?

Even the SqueezeBox hardware themselves are limited through SPDIF. The Touch maxes out at 96/24 and all other players before the Touch downsample hi-rez material to 48/24,16 or 44/24,16 . I was hoping SqueezeSlave would break the barrier.

I have a Touch, 2 duets and a classic and have quite a few SACDs recently ripped that are sampled at 176/24 and 192/24. If SqueezeSlave can be implemented the way XMBC passes audio, I'll sell all my players and donate the profits to your team. I'm guessing many people would be willing to pay for a version like this because it would provide something Logitech does not currently provide.

And yes, I could use XBMC but I'd have to organize multiple sets of playlists and VortexBox is not an option for me because I'm not ready to wipe out my existing media computer for a new OS :)

jshoor
2011-12-07, 17:37
Hi all,

I just compiled and installed the latest version of squeezeslave
squeezeslave 1.1-253 May 1 2011 05:49:57
compile flags: linux portaudio:1608 debug signals interactive daemon
buffer sizes: decoder 2097152 output 2822400 bytes

on ubuntu:
Linux XXXXXX 2.6.32-32-generic #62-Ubuntu SMP Wed Apr 20 21:54:21 UTC 2011 i686 GNU/Linux

However when I start it I receive the following warning messages:
./squeezeslave -L Expression 'alsa_snd_pcm_hw_params_set_buffer_size_near( pcm, hwParams, &lowLatency )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 904
Expression 'alsa_snd_pcm_hw_params_set_buffer_size_near( pcm, hwParams, &lowLatency )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 904
Expression 'alsa_snd_pcm_hw_params_set_buffer_size_near( pcm, hwParams, &lowLatency )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 904

and the output is very tinny. Would anyone know what I could do to troubleshoot and resolve?

I also have squeezeplay installed on the same machine and the sound coming from squeezeplay through the same output device is excellent.

Thanks in advance for any help!
J

ralphy
2011-12-08, 05:30
Hi all,

I just compiled and installed the latest version of squeezeslave
squeezeslave 1.1-253 May 1 2011 05:49:57
compile flags: linux portaudio:1608 debug signals interactive daemon
buffer sizes: decoder 2097152 output 2822400 bytes

on ubuntu:
Linux XXXXXX 2.6.32-32-generic #62-Ubuntu SMP Wed Apr 20 21:54:21 UTC 2011 i686 GNU/Linux

However when I start it I receive the following warning messages:
./squeezeslave -L Expression 'alsa_snd_pcm_hw_params_set_buffer_size_near( pcm, hwParams, &lowLatency )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 904
Expression 'alsa_snd_pcm_hw_params_set_buffer_size_near( pcm, hwParams, &lowLatency )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 904
Expression 'alsa_snd_pcm_hw_params_set_buffer_size_near( pcm, hwParams, &lowLatency )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 904

and the output is very tinny. Would anyone know what I could do to troubleshoot and resolve?

I also have squeezeplay installed on the same machine and the sound coming from squeezeplay through the same output device is excellent.

Thanks in advance for any help!
J

Looks like your audio device doesn't like the default low latency setting used.

Try adding -y84 to the command line when starting squeezeslave. If you still see those errors increase the 84 in increments of 10 until you no longer see the error messages.

jshoor
2011-12-08, 07:30
Looks like your audio device doesn't like the default low latency setting used.

Try adding -y84 to the command line when starting squeezeslave. If you still see those errors increase the 84 in increments of 10 until you no longer see the error messages.

Thanks Ralphy! (I was hoping you'd respond.)

I tried up to -y194 and then just for kicks up to -y404, but the messages never go away and the output continues to be tinny (Im not sure it thats the proper term).

Also, here is some additional info, it it helps:
I am trying to play through HDMI (output 3), and I've also tried 13 and 14 which behave the same:
./squeezeslave -L
Expression 'alsa_snd_pcm_hw_params_set_buffer_size_near( pcm, hwParams, &lowLatency )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 904
Expression 'alsa_snd_pcm_hw_params_set_buffer_size_near( pcm, hwParams, &lowLatency )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 904
Expression 'alsa_snd_pcm_hw_params_set_buffer_size_near( pcm, hwParams, &lowLatency )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 904
Output devices:
0: (ALSA) HDA NVidia: ALC889A Analog (hw:0,0) (11/46)
1: (ALSA) HDA NVidia: ALC889A Digital (hw:0,1) (11/46)
* 3: (ALSA) HDA NVidia: NVIDIA HDMI (hw:0,3) (11/46)
5: (ALSA) front (11/46)
6: (ALSA) surround40 (11/46)
7: (ALSA) surround41 (11/46)
8: (ALSA) surround50 (11/46)
9: (ALSA) surround51 (11/46)
10: (ALSA) surround71 (11/46)
11: (ALSA) iec958 (11/46)
12: (ALSA) spdif (11/46)
13: (ALSA) hdmi (11/46)
14: (ALSA) hdmi_hw (11/46)
15: (ALSA) dmix (42/42)
16: (OSS) /dev/dsp (11/46)

The debug log from squeezeplay (which sounds fine) shows that it is using the following parameters:
Plug PCM: Rate conversion PCM (48000, sformat=S16_LE)
Converter: linear-interpolation
Protocol version: 10002
Its setup is:
stream : PLAYBACK
access : MMAP_INTERLEAVED
format : S16_LE
subformat : STD
channels : 2
rate : 44100
exact rate : 44100 (44100/1)
msbits : 16
buffer_size : 1323
period_size : 441
period_time : 10000
tstamp_mode : NONE
period_step : 1
avail_min : 441
period_event : 0
start_threshold : 1
stop_threshold : 1323
silence_threshold: 0
silence_size : 0
boundary : 1387266048
Slave: Hardware PCM card 0 'HDA NVidia' device 3 subdevice 0
Its setup is:
stream : PLAYBACK
access : MMAP_INTERLEAVED
format : S16_LE
subformat : STD
channels : 2
rate : 48000
exact rate : 48000 (48000/1)
msbits : 16
buffer_size : 1440
period_size : 480
period_time : 10000
tstamp_mode : NONE
period_step : 1
avail_min : 480
period_event : 0
start_threshold : 1
stop_threshold : 1440
silence_threshold: 0
silence_size : 0
boundary : 1509949440
appl_ptr : 0
hw_ptr : 0

Thanks again!
-J

jshoor
2011-12-08, 19:33
./squeezeslave
Expression 'alsa_snd_pcm_hw_params_set_buffer_size_near( pcm, hwParams, &lowLatency )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 904
Expression 'alsa_snd_pcm_hw_params_set_buffer_size_near( pcm, hwParams, &lowLatency )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 904
Expression 'alsa_snd_pcm_hw_params_set_buffer_size_near( pcm, hwParams, &lowLatency )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 904


Well, it looks like the warning messages were my fault. I had a custom .asoundrc that allowed me to do volume control over hdmi. See below if you are interested:
pcm.hdmi_hw {
type hw
card 0
device 3
}

pcm.hdmi_formatted {
type plug
slave {
pcm hdmi_hw
rate 48000
channels 2
}
}

pcm.hdmi_complete {
type softvol
slave.pcm hdmi_formatted
control.name hdmi_volume
control.card 0
max_dB 40.0
}

pcm.!default {
type plug
slave {
pcm hdmi_hw
rate 48000
channels 2
}
}

When I removed the file altogether, the warnings went away, but the output is still tinny. It almost sounds like the playback is too fast. It is possibly a result of using the wrong sample rate?

Thanks again!!
-J

ralphy
2011-12-09, 05:26
Well, it looks like the warning messages were my fault. I had a custom .asoundrc that allowed me to do volume control over hdmi. See below if you are interested:
pcm.hdmi_hw {
type hw
card 0
device 3
}

pcm.hdmi_formatted {
type plug
slave {
pcm hdmi_hw
rate 48000
channels 2
}
}

pcm.hdmi_complete {
type softvol
slave.pcm hdmi_formatted
control.name hdmi_volume
control.card 0
max_dB 40.0
}

pcm.!default {
type plug
slave {
pcm hdmi_hw
rate 48000
channels 2
}
}

When I removed the file altogether, the warnings went away, but the output is still tinny. It almost sounds like the playback is too fast. It is possibly a result of using the wrong sample rate?

Thanks again!!
-J

Yes the hdmi device is using 48KHz sample rate and squeezeslave only supports 44.1.

jshoor
2011-12-09, 06:27
Yes the hdmi device is using 48KHz sample rate and squeezeslave only supports 44.1.

Thanks again! After playing around a lot with my alsa config and different inputs, I was finally able to get it to work. I was even able to get it to work with dmix so I could share the audio device across apps.

If anyone is interested, this is my final asoundrc. With it I am able to play everything through the default device.

pcm.!default { type plug;
slave.pcm "dmix0"; }
ctl.!default { type hw; card 0; device 3; }

pcm.dsp0 { type plug;
slave.pcm "dmix0"; }
ctl.dsp0 { type hw; card 0; device 3; }
ctl.mixer0 { type hw; card 0; device 3; }

pcm.dmix0 { type dmix;
ipc_key 13759;

slave.pcm "hw:0,3";
slave.channels 2;

slave.rate 48000;
slave.period_size 4096;
slave.buffer_size 16384;

slave.period_time 84000;
slave.buffer_time 340000;

# Map only the first two channels
bindings.0 0;
bindings.1 1; }

minscof
2011-12-10, 16:46
Hi,

I have an ARM device : Iomega Iconnect and I have installed the last version of squeezeslave : squeezeslave-1.1-309-armel-lnx26.tar.gz

I have too an USB audio card : E-MU 0204.

Sound is very bad (lot of crackle) when using only alsa, but much more better with Pulseaudio

this is my /etc/asound.conf to use pulseaudio

pcm.!default {
type pulse
}

ctl.!default {
type pulse
}

# Explicit PulseAudio device
pcm.pulse {
type pulse
}

ctl.pulse {
type pulse
}

When I use squeezeslave, I notice that Pulseaudio is not used : I can stop it, and I still listen the music but it sounds very very bad.

I don't know why squeezeslave doen't use Pulseaudio too : can someone help me ?

./squeezeslave-1.1-309 -L
Output devices:
* 0: (ALSA) E-MU 0204 | USB: USB Audio (hw:0,0) (11/46)
1: (ALSA) front (11/46)
2: (ALSA) surround40 (11/46)
3: (ALSA) iec958 (11/46)
4: (ALSA) spdif (11/46)
5: (ALSA) dmix (42/42)


Thanks

ralphy
2011-12-11, 05:41
It's a bug in the kernel.

See this post (http://forums.slimdevices.com/showpost.php?p=675930&postcount=3).

minscof
2011-12-11, 10:41
On my arm device (Iomega Iconnect), I have trouble with my USB audio card (E-MU 0204) when I don't use Pulseaudio.

I think the available version of squeezeslave for arm device is compiled without support for Pulseaudio.

I'm going to compile a new one with this support, but I m not a good programmer, and I feel not comfortable with Linux.

Can someone help me ? maybe a version of squeezeslave supporting Pulseaudio is already available somewhere, and I could simply donwload it ?

Thanks for helping me.

dmce
2011-12-13, 14:11
Hi Folks

Where would i create a config file on arch for the servername etc? Can i?

lauret
2011-12-14, 06:06
Maybe I have a fix for all the 48000/44100 Hz issues, instead of the convert.conf:


int slimproto_helo(slimproto_t *p, char device_id, char revision, const char *macaddress, char isGraphics, char isReconnect) {
/* Only when message is larger than 36 are capabilities supported, so msg should look like:
( $deviceid, $revision,
$mac[0], $mac[1], $mac[2], $mac[3], $mac[4], $mac[5], $uuid,
$wlan_channellist, $bytes_received_H, $bytes_received_L, $lang
) = unpack("CCH2H2H2H2H2H2H32nNNA2", $$data_ref);
*/
unsigned char msg[SLIMPROTO_MSG_SIZE];
int channelList = 0;
memset(&msg, 0, SLIMPROTO_MSG_SIZE);

packA4(msg, 0, "HELO");
packN4(msg, 4, (36+19));
packC(msg, 8, device_id);
packC(msg, 9, revision);
memcpy(msg+10, macaddress, 6);
memcpy(msg+16, "\x00\x00\x00\x00\x00\x00\x00\x00", 16);
if (isGraphics)
channelList |= 0x8000;
if (isReconnect)
channelList |= 0x4000;
packN2(msg, 32, channelList);
packN4(msg, 34, 0); // bytes_received_H
packN4(msg, 38, 0); // bytes_received_L
memcpy(msg+42, "\x00\x00", 2); // language
memcpy(msg+44, "MaxSampleRate=44100", 19);

return slimproto_send(p, msg);
}

I first added a language switch to the command line arguments, which passed it on to slimproto_helo, but it didn't seemed to make a difference, so I left it at \x00\x00

There is a problem though: Slim::Player::SqueezeSlave does not use the capabilities supplied, but if you start squeezeslave with -e12 (Squeezeplay, so no display), it reads the capabilities and correctly resamples to 44.1kHz. So for this to fully function, a server-side fix is necessary.

philippe
2011-12-14, 08:01
Hi,

I am using SqueezeSlave-wasapi 1.1-253 with SqueezeBox Server 7.6.1-001 installed on a Synology DS209.

It works great with 16bit/44.1Khz flac file with bitperfect.

But If i play 24bit/88.2Khz flac files... the song plays at half speed.

I try SqueezePlay on the same client PC ... 24bit/88.2Khz plays at the right speed but with a poor audio quality ( Not as good as 16bit/44.1Khz with SqueezeSlave-wasapi or SqueezeSlave-asio )

I'd like to know if there is a way to play high resolution audio files with squeezeslave wasapi or asio.

Philippe

lauret
2011-12-15, 00:55
I'd like to know if there is a way to play high resolution audio files with squeezeslave wasapi or asio.

Squeezeslave only supports 44.1kHz / 16-bits.

You can find an appropriate custom-convert.conf file which lets the server transcode all material to 44.1/16 here: https://code.google.com/p/squeezeslave/source/browse/#svn%2Fsqueezeslave%2Ftrunk%2Fsqueezeslave%2Fconfi g (use custom-convert.conf.441).

lovemov
2011-12-15, 11:00
The squeezeslave seems an interesting piece of software, I have been using squeezeplay, it's Java and will not work with ASIO in Windows or Core Audio in Mac I guess.

However, squeezeslave only do 16/44.1, wonder how difficult to modify it to be able to do 24/192 over ASIO or Core Audio? Thanks.

ralphy
2011-12-26, 07:21
There are new beta builds of squeezeslave available for Linux 2.6, OSX, Squeezeplug (Linux 2.6 ARM) and Windows on Google Code (http://code.google.com/p/squeezeslave/downloads/list).

These builds are likely to be the next stable build of squeezeslave.

See the commit log (http://code.google.com/p/squeezeslave/source/list) for detailed changes.

JiMPO
2011-12-26, 14:12
Hi there,

Ralphy FYI I've created a dedicated thread for a problem I'm having with squeezeslave hanging (See: http://forums.slimdevices.com/showthread.php?p=679552). If by any chance you could have a look and point me to some direction to follow that would be marvelous.

Thank you again for maintaining a such great piece of software that is squeezeslave !

Regards,
JiM.

wilbert-vb
2012-01-07, 11:09
Hello there,

I got the read-only svn on FreeBSD 8.2-RELEASE
(FreeBSD 8.2-RELEASE-p3 #0: Tue Sep 27 18:07:27 UTC 2011 root@i386-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC i386)
with the following error:

===
make -f contrib/makefile.freebsd
gcc -o bin/squeezeslave lib/libslimproto.a -lncurses -lpthread -lm -L/usr/local/lib/portaudio2 -lportaudio -L/usr/local/lib -lFLAC -lmad -lvorbisfile
/usr/lib/crt1.o(.text+0xa3): In function `_start1':
: undefined reference to `main'
*** Error code 1
===

Any suggestions?

ralphy
2012-01-09, 05:06
Hello there,

I got the read-only svn on FreeBSD 8.2-RELEASE
(FreeBSD 8.2-RELEASE-p3 #0: Tue Sep 27 18:07:27 UTC 2011 root@i386-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC i386)
with the following error:

===
make -f contrib/makefile.freebsd
gcc -o bin/squeezeslave lib/libslimproto.a -lncurses -lpthread -lm -L/usr/local/lib/portaudio2 -lportaudio -L/usr/local/lib -lFLAC -lmad -lvorbisfile
/usr/lib/crt1.o(.text+0xa3): In function `_start1':
: undefined reference to `main'
*** Error code 1
===

Any suggestions?

Yes that makefile is very old. I've adapted the one I created for freebsd-sparc64 for i386 and attached it. It's not tested.

You need to have ports pth, bash, gmake and lirc installed.

gmake -f makefile.freebsd-i386.txt realclean
gmake -f makefile.freebsd-i386.txt

Please report success/failure here as I'll update the old intel makefile when you get it to build.

wilbert-vb
2012-01-09, 09:05
Please report success/failure here as I'll update the old intel makefile when you get it to build.

I attached the error message as text file and you also find the list of installed ports:

ralphy
2012-01-09, 10:31
Looks like you are not using gnu make.

wilbert-vb
2012-01-09, 11:02
Looks like you are not using gnu make.

How dumb of me.

The makefile.freebsd-i386.txt finishes with success
and 'bin/squeezeslave -L' shows the output devices.

Thank you very much.

ralphy
2012-01-10, 04:49
You're welcome.

I've updated the old freebsd makefile with this one in svn and updated the wiki.

Fabius
2012-01-14, 10:21
Hello,

i'am using squeezeslave "squeezeslave 1.1-253 May 1 2011 05:49:57" on debian linux (2.6.39-bpo.2-amd64). squeezeslave wont play to the hdmi-audio port (also-default). i get the error "Invalid sample rate".

What goes wrong?

Many thanks for help.

./squeezeslave -V



squeezeslave 1.1-253 May 1 2011 05:49:57
compile flags: linux portaudio:1608 debug signals interactive daemon
buffer sizes: decoder 2097152 output 2822400 bytes

Copyright 2004-2007 Richard Titmuss, 2008-2011 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.


/etc/asound:



pcm.dmixer {
type dmix
ipc_key 1024
ipc_key_add_uid false
ipc_perm 0660
slave {
pcm "hw:1,3"
rate 48000
channels 2
# format S32_LE
# period_time 0
# period_size 1024
# buffer_time 0
# buffer_size 4096
}
}

pcm.test {
type plug
# rate 44100
slave.pcm "dmixer"
}
pcm.!default {
type plug
slave.pcm "dmixer"
}



when i try to play a 44100 wav file with aplay to the hdmi it works (i can hear the sound on the tv):



aplay test_44100.wav
Wiedergabe: WAVE 'test_44100.wav' : Signed 16 bit Little Endian, Rate: 44100 Hz, stereo


aplay -L / -l:



aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
front:CARD=SB,DEV=0
HDA ATI SB, ALC889A Analog
Front speakers
surround40:CARD=SB,DEV=0
HDA ATI SB, ALC889A Analog
4.0 Surround output to Front and Rear speakers
surround41:CARD=SB,DEV=0
HDA ATI SB, ALC889A Analog
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=SB,DEV=0
HDA ATI SB, ALC889A Analog
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=SB,DEV=0
HDA ATI SB, ALC889A Analog
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=SB,DEV=0
HDA ATI SB, ALC889A Analog
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=SB,DEV=0
HDA ATI SB, ALC889A Digital
IEC958 (S/PDIF) Digital Audio Output
hdmi:CARD=HDMI
HDA ATI HDMI, HDMI 0
HDMI Audio Output
aplay -l
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: SB [HDA ATI SB], Gerät 0: ALC889A Analog [ALC889A Analog]
Sub-Geräte: 1/1
Sub-Gerät #0: subdevice #0
Karte 0: SB [HDA ATI SB], Gerät 1: ALC889A Digital [ALC889A Digital]
Sub-Geräte: 1/1
Sub-Gerät #0: subdevice #0
Karte 1: HDMI [HDA ATI HDMI], Gerät 3: HDMI 0 [HDMI 0]
Sub-Geräte: 0/1
Sub-Gerät #0: subdevice #0



./squeezeslave -L:


0: (ALSA) HDA ATI SB: ALC889A Analog (hw:0,0) (11/46)
1: (ALSA) HDA ATI SB: ALC889A Digital (hw:0,1) (11/46)
3: (ALSA) front (11/46)
4: (ALSA) surround40 (11/46)
5: (ALSA) surround41 (11/46)
6: (ALSA) surround50 (11/46)
7: (ALSA) surround51 (11/46)
8: (ALSA) surround71 (11/46)
9: (ALSA) iec958 (11/46)
10: (ALSA) spdif (11/46)
11: (ALSA) dmixer (250/250)
12: (ALSA) test (250/46)
13: (ALSA) dmix (42/42)
*14: (ALSA) default (250/46)
15: (OSS) /dev/dsp (11/46)



./squeezeslave -d all:


squeezeslave/squeezeslave -d all
proto_thread: state=1
proto_thread: PROTO_CLOSED cond_wait
Using audio device index: 14
slimproto_connect: (127.0.0.1, 3483)
proto_close: state 1
proto_close: not connected
proto_thread: state=2
proto_sigpipe: MSG_NOSIGNAL
proto_connect: connected to 127.0.0.1
proto_thread: state=3
proto_send: cmd=HELO len=10
http_thread state 2
decoder_thread: STREAM_STOPPED first_time:1
proto_recv: cmd=strm len=83
strm cmd s strm.replay_gain:0 start_replay_gain:1,000000
proto_stat: code=STMc decoder_buffer_size=2097152 decoder_buffer_fullness=0 rbytes_high=0 rbytes_low=0 output_buffer_size=2822400 output_buffer_fullness=0 elapsed_seconds=0 elapsed_milliseconds=0 server_timestamp=0
proto_send: cmd=STAT len=53
slimaudio_http_connect: http connect 127.0.0.1:9000
proto_sigpipe: MSG_NOSIGNAL
proto_stat: code=STMe decoder_buffer_size=2097152 decoder_buffer_fullness=0 rbytes_high=0 rbytes_low=0 output_buffer_size=2822400 output_buffer_fullness=0 elapsed_seconds=0 elapsed_milliseconds=0 server_timestamp=0
proto_send: cmd=STAT len=53
slimaudio_http_connect: http request GET /stream.mp3?player=00:00:00:00:00:01 HTTP/1.0


slimaudio_http_connect: http connected hdr HTTP/1.1 200 OK
Server: Logitech Media Server (7.7.0 - 33614)
Connection: close
Content-Type: audio/mpeg


proto_stat: code=STMh decoder_buffer_size=2097152 decoder_buffer_fullness=0 rbytes_high=0 rbytes_low=0 output_buffer_size=2822400 output_buffer_fullness=0 elapsed_seconds=0 elapsed_milliseconds=0 server_timestamp=0
proto_send: cmd=STAT len=53
buffer_open: 0x81f20b0
slimaudio_http_connect: pcm_sample_size:63 '?' pcm_sample_rate:63 '?' pcm_channels:63 '?'
slimaudio_http_connect: autostart_mode=1 autostart_threshold=261120 output_threshold=17640 replay_gain=1,000000
slimaudio_decoder_connect
buffer_open: 0x81f2158
decoder_thread: STREAM_PLAYING type m
http_thread state 3
decode_input state=3
mad: data_len:8184 remainder:0 available:0
buffer_read: 0x81f20b0 write_ptr=0xf6afe008 read_ptr=0xf6afe008 read_avail=0 reader_blocked=1 writer_blocked=0 read_count=0 len=8184 eof=0 opt=0
http_recv: audio n=8192
buffer_write 0x81f20b0 write_ptr=0xf6afe008 read_ptr=0xf6afe008 free=2097152
buffer_read_top: 0x81f20b0 write_ptr=0xf6b00008 read_ptr=0xf6afe008 read_avail=8192 reader_blocked=0 writer_blocked=0 read_count=0 len=8184 eof=0 opt=0
buffer_read_end: 0x81f20b0 write_ptr=0xf6b00008 read_ptr=0xf6b00000 read_avail=8 reader_blocked=0 writer_blocked=0 read_count=8184 len=8184 eof=0 opt=0
mad: mad_input: CONTINUE
decode_output state=3 nfrequency=44100 nchannels=2 nsamples=1152
buffer_write 0x81f2158 write_ptr=0xf684c008 read_ptr=0xf684c008 free=2822400
decode_output state=3 nfrequency=44100 nchannels=2 nsamples=1152
buffer_write 0x81f2158 write_ptr=0xf684d208 read_ptr=0xf684c008 free=2817792
decode_output state=3 nfrequency=44100 nchannels=2 nsamples=1152
buffer_write 0x81f2158 write_ptr=0xf684e408 read_ptr=0xf684c008 free=2813184
decode_output state=3 nfrequency=44100 nchannels=2 nsamples=1152
buffer_write 0x81f2158 write_ptr=0xf684f608 read_ptr=0xf684c008 free=2808576
decode_output state=3 nfrequency=44100 nchannels=2 nsamples=1152
buffer_write 0x81f2158 write_ptr=0xf6850808 read_ptr=0xf684c008 free=2803968
decode_output state=3 nfrequency=44100 nchannels=2 nsamples=1152
buffer_write 0x81f2158 write_ptr=0xf6851a08 read_ptr=0xf684c008 free=2799360
decode_output state=3 nfrequency=44100 nchannels=2 nsamples=1152
buffer_write 0x81f2158 write_ptr=0xf6852c08 read_ptr=0xf684c008 free=2794752
decode_output state=3 nfrequency=44100 nchannels=2 nsamples=1152
buffer_write 0x81f2158 write_ptr=0xf6853e08 read_ptr=0xf684c008 free=2790144
decode_output state=3 nfrequency=44100 nchannels=2 nsamples=1152
buffer_write 0x81f2158 write_ptr=0xf6855008 read_ptr=0xf684c008 free=2785536
decode_output state=3 nfrequency=44100 nchannels=2 nsamples=1152
buffer_write 0x81f2158 write_ptr=0xf6856208 read_ptr=0xf684c008 free=2780928
decode_output state=3 nfrequency=44100 nchannels=2 nsamples=1152
buffer_write 0x81f2158 write_ptr=0xf6857408 read_ptr=0xf684c008 free=2776320
decode_output state=3 nfrequency=44100 nchannels=2 nsamples=1152
buffer_write 0x81f2158 write_ptr=0xf6858608 read_ptr=0xf684c008 free=2771712
decode_output state=3 nfrequency=44100 nchannels=2 nsamples=1152
buffer_write 0x81f2158 write_ptr=0xf6859808 read_ptr=0xf684c008 free=2767104
decode_input state=3
mad: data_len:8150 remainder:34 available:8
buffer_read_top: 0x81f20b0 write_ptr=0xf6b00008 read_ptr=0xf6b00000 read_avail=8 reader_blocked=0 writer_blocked=0 read_count=8184 len=8150 eof=0 opt=0
buffer_read_end: 0x81f20b0 write_ptr=0xf6b00008 read_ptr=0xf6b00008 read_avail=0 reader_blocked=0 writer_blocked=0 read_count=8192 len=8 eof=0 opt=0
mad: mad_input: CONTINUE
decode_input state=3
mad: data_len:8142 remainder:42 available:0
buffer_read: 0x81f20b0 write_ptr=0xf6b00008 read_ptr=0xf6b00008 read_avail=0 reader_blocked=1 writer_blocked=0 read_count=8192 len=8142 eof=0 opt=0
output_thread: PortAudio initialized
paDeviceInfo->deviceid 14
paDeviceInfo->maxOutputChannels 128
outputParameters.suggestedLatency 0,046440
paDeviceInfo->defaultHighOutputLatency 0,046440
paDeviceInfo->defaultLowOutputLatency 0,250658
paDeviceInfo->defaultSampleRate 44100,000000
Expression 'SetApproximateSampleRate( pcm, hwParams, sr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1956
Expression 'PaAlsaStreamComponent_InitialConfigure( &self->playback, outParams, self->primeBuffers, hwParamsPlayback, &realSr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2634
Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2755
output_thread: PortAudio error1: Invalid sample rate

Fabius
2012-01-15, 02:46
EDIT/UPDATE:

the above test was made with xbmc running. this is normaly no problem. but now i testet it without xbmc running at the same time and i dicovered 2 things:

squeezeslave -L is lsting the hdmi - hardware device (before, it was just listet the alsa-link "default" which is a link to the same hdmi-device):


3: (ALSA) HDA ATI HDMI: HDMI 0 (hw:1,3) (10/42)



Output devices:
0: (ALSA) HDA ATI SB: ALC889A Analog (hw:0,0) (11/46)
1: (ALSA) HDA ATI SB: ALC889A Digital (hw:0,1) (11/46)
3: (ALSA) HDA ATI HDMI: HDMI 0 (hw:1,3) (10/42)
4: (ALSA) front (11/46)
5: (ALSA) surround40 (11/46)
6: (ALSA) surround41 (11/46)
7: (ALSA) surround50 (11/46)
8: (ALSA) surround51 (11/46)
9: (ALSA) surround71 (11/46)
10: (ALSA) iec958 (11/46)
11: (ALSA) spdif (11/46)
12: (ALSA) dmixer (250/250)
13: (ALSA) test (250/46)
14: (ALSA) dmix (42/42)
*15: (ALSA) default (250/46)
16: (OSS) /dev/dsp (11/46)


when i used the hdmi-device the debug shows not 44100 as in the first test but 48000:


paDeviceInfo->defaultSampleRate 48000,000000

./squeezeslave -o3 -d all


proto_thread: state=1
proto_thread: PROTO_CLOSED cond_wait
http_thread state 2
decoder_thread: STREAM_STOPPED first_time:1
Using audio device index: 3
slimproto_connect: (127.0.0.1, 3483)
proto_close: state 1
proto_close: not connected
proto_thread: state=2
proto_sigpipe: MSG_NOSIGNAL
proto_connect: connected to 127.0.0.1
proto_thread: state=3
proto_send: cmd=HELO len=10
output_thread: PortAudio initialized
paDeviceInfo->deviceid 3
paDeviceInfo->maxOutputChannels 2
outputParameters.suggestedLatency 0,042667
paDeviceInfo->defaultHighOutputLatency 0,042667
paDeviceInfo->defaultLowOutputLatency 0,010667
paDeviceInfo->defaultSampleRate 48000,000000
Expression 'SetApproximateSampleRate( pcm, hwParams, sr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1956
Expression 'PaAlsaStreamComponent_InitialConfigure( &self->playback, outParams, self->primeBuffers, hwParamsPlayback, &realSr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2634
Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2755
output_thread: PortAudio error1: Invalid sample rate



Thanks very much for help

Fabius
2012-01-16, 07:44
any hints please? should i try to build a binary from source instead of using a prebuild binary?

i configured a alsa-device with rateconversion. but squeeseslave still dont work .... rate conversion works:

aplay -v -D test test_44100.wav


Wiedergabe: WAVE 'test_44100.wav' : Signed 16 bit Little Endian, Rate: 44100 Hz, stereo
Plug PCM: Rate conversion PCM (48000, sformat=S16_LE)
Converter: linear-interpolation
Protocol version: 10002
Its setup is:
stream : PLAYBACK
access : RW_INTERLEAVED
format : S16_LE
subformat : STD
channels : 2
rate : 44100
exact rate : 44100 (44100/1)
msbits : 16
buffer_size : 11054
period_size : 5527
period_time : 125333
tstamp_mode : NONE
period_step : 1
avail_min : 5527
period_event : 0
start_threshold : 11054
stop_threshold : 11054
silence_threshold: 0
silence_size : 0
boundary : 6222848785119182848
Slave: Direct Stream Mixing PCM
Its setup is:
stream : PLAYBACK
access : MMAP_INTERLEAVED
format : S16_LE
subformat : STD
channels : 2
rate : 48000
exact rate : 48000 (48000/1)
msbits : 16
buffer_size : 12032
period_size : 6016
period_time : 125333
tstamp_mode : NONE
period_step : 1
avail_min : 6016
period_event : 0
start_threshold : 12032
stop_threshold : 12032
silence_threshold: 0
silence_size : 0
boundary : 6773413839565225984
Hardware PCM card 1 'HDA ATI HDMI' device 3 subdevice 0
Its setup is:
stream : PLAYBACK
access : MMAP_INTERLEAVED
format : S16_LE
subformat : STD
channels : 2
rate : 48000
exact rate : 48000 (48000/1)
msbits : 16
buffer_size : 12032
period_size : 6016
period_time : 125333
tstamp_mode : ENABLE
period_step : 1
avail_min : 6016
period_event : 0
start_threshold : 1
stop_threshold : 0
silence_threshold: 0
silence_size : 0
boundary : 6773413839565225984
appl_ptr : 0
hw_ptr : 727659470

routerunner
2012-01-27, 05:41
Hi Ralph,

I've updated with the latest code from the head of SVN and made a makefile to compile for Linux 2.4.26 armv4 with a quite old version of GCC 2.95.3 and I found a couple of bugs:

1) Vorbis v1.3.2 the "os.h" line 41 the conditional compilation should add a test for __GNUC__ as well.

2) ps_unix_oss.c at line 38 it doesn't compile with the version of compiler I'm using, so I changed in a more generic way as follow:

#ifdef __FREEBSD__
#include <sys/soundcard.h>
#else
#include <linux/soundcard.h> /* JH20010905 */
#endif

Also, I cannot daemonize the player in Linux 2.4.26, but works fine in Linux 2.6.30 and 2.6.33-5, any clues?

thanks and keep up the good work
Eddy

henfri
2012-02-05, 02:45
Hello,

thanks for writing squeezeslave.
I'm trying to compile it on ubuntu, but get an error:

configure: error: in `/root/squeezeslave/squeezeslave/lib/libportaudio/lnx26/build/portaudio':
configure: error: C compiler cannot create executables
See `config.log' for more details.
make: *** [lib/libportaudio/lnx26/lib/libportaudio.a] Error 77



The config.log complains

configure:3328: gcc -DRENICE -DSLIMPROTO_DEBUG -DDAEMONIZE -DUSE_SIGNALS_FOR_RESTART -DPORTAUDIO_DEV -Wall -O2 -march=i686 -DIN
TERACTIVE -DRENICE -DSLIMPROTO_DEBUG -DDAEMONIZE -DUSE_SIGNALS_FOR_RESTART -DPORTAUDIO_DEV -Wall -O2 -march=i686 -DINTERACTIVE
-s conftest.c >&5
conftest.c:1:0: error: CPU you selected does not support x86-64 instruction set
configure:3332: $? = 1
configure:3370: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:3375: error: in `/root/squeezeslave/squeezeslave/lib/libportaudio/lnx26/build/portaudio':
configure:3379: error: C compiler cannot create executables
See `config.log' for more details.
(complete log attached)

That's odd, isn't it? It positively is a x86 64bit CPU...

Greetings,
Hendrik

ralphy
2012-02-13, 14:55
The config.log complains

configure:3328: gcc -DRENICE -DSLIMPROTO_DEBUG -DDAEMONIZE -DUSE_SIGNALS_FOR_RESTART -DPORTAUDIO_DEV -Wall -O2 -march=i686 -DIN
TERACTIVE -DRENICE -DSLIMPROTO_DEBUG -DDAEMONIZE -DUSE_SIGNALS_FOR_RESTART -DPORTAUDIO_DEV -Wall -O2 -march=i686 -DINTERACTIVE
-s conftest.c >&5
conftest.c:1:0: error: CPU you selected does not support x86-64 instruction set
configure:3332: $? = 1
configure:3370: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:3375: error: in `/root/squeezeslave/squeezeslave/lib/libportaudio/lnx26/build/portaudio':
configure:3379: error: C compiler cannot create executables
See `config.log' for more details.
(complete log attached)

That's odd, isn't it? It positively is a x86 64bit CPU...

Greetings,
Hendrik

Looks like you are using the 32bit makefile.

Try it with

make -f makefile.linux26-i64-alsa-display realclean
make -f makefile.linux26-i64-alsa-display

ralphy
2012-02-13, 15:09
Hi Ralph,

I've updated with the latest code from the head of SVN and made a makefile to compile for Linux 2.4.26 armv4 with a quite old version of GCC 2.95.3 and I found a couple of bugs:

1) Vorbis v1.3.2 the "os.h" line 41 the conditional compilation should add a test for __GNUC__ as well.

2) ps_unix_oss.c at line 38 it doesn't compile with the version of compiler I'm using, so I changed in a more generic way as follow:

#ifdef __FREEBSD__
#include <sys/soundcard.h>
#else
#include <linux/soundcard.h> /* JH20010905 */
#endif

Also, I cannot daemonize the player in Linux 2.4.26, but works fine in Linux 2.6.30 and 2.6.33-5, any clues?

thanks and keep up the good work
Eddy

The empeg version of squeezeslave uses gcc 2.95.3 and we don't encounter those errors.

For the ARM processor you should be using the tremor decoder instead of vorbis.

contrib/makefile.linux26-armel-nofpu-oss-display should be the closest to what will work. You should only need to change 2 lines.

Line 3


OS=lnx26

to

OS=lnx24

Line 11


CFLAGS=-DRENICE -DSLIMPROTO_DEBUG -DDAEMONIZE -DUSE_SIGNALS_FOR_RESTART -DNO_FPU -Wall -O2

to

CFLAGS=-DRENICE -DSLIMPROTO_DEBUG -DDAEMONIZE -DNO_FPU -Wall -O3 -march=armv4

ralphy
2012-02-15, 06:54
New stable version 1.2-311 released.

Please use the new support thread (http://forums.slimdevices.com/showthread.php?t=93607) going forward.

Thanks.

henfri
2012-02-19, 07:45
Looks like you are using the 32bit makefile.
Oh dear. Thanks!
My last make commands are from the pure 32 bit aera.
I'll try.

Thanks,
Hendrik

Lestrad
2014-05-14, 03:55
Believe me, I hate being as ignorant as I am, but could someone give me an idea of what the command line would look like to play a specific song? My LMS and music collection are installed on a NAS and I'm running Windows 7.

TIA

wilbert-vb
2014-05-14, 07:46
Believe me, I hate being as ignorant as I am, but could someone give me an idea of what the command line would look like to play a specific song? My LMS and music collection are installed on a NAS and I'm running Windows 7.

TIA

Point your favorite browser to http://<INSERT YOUR NAS ADDRESS HERE>:9000
(Example: http://172.16.0.2:9000)

Lestrad
2014-05-14, 07:58
Point your favorite browser to http://<INSERT YOUR NAS ADDRESS HERE>:9000
(Example: http://172.16.0.2:9000)

Great, thanks. But what I'm trying to do is send a command from Foobar 2000 or from Windows Explorer to play the selected files using Squeezeslave, as I now do with SqueezePlay (which has no command-line interface). I'd like to be able to do it without opening Logitech Media Server in the browser and manually selecting files. Any ideas?

Thanks again
Les