View Full Version : squeezeslave on OS X
pardsbane
2008-11-03, 16:01
Hi,
I've gotten squeezeslave compiling and running on OS X. It took a few minor code changes to work through some conflicting uint32 definitions, but other than that no major issues.
I already had MacPorts installed, so I installed libmad, FLAC, and libvorbis through Mac Ports, then added the mac-ports library and include directories to the makefile. Once that was done, the compile went through without problems (except the small changes mentioned above).
The problem is, when I run the tool, I see this:
pardsbane@Buran:~/src/squeezeslave$ ./bin/squeezeslave
Output devices:
0: Built-in Microphone
1: Built-in Input
2: Built-in Output
1
Error in recv 1: Bad file descriptor
I don't really feel (sorry) like diving through the code to understand what that means, but if anyone has any suggestions, I'd be happy to try them out.
If everything is working correctly, I'll try and modify the makefile to compile statically, and I'll be able to contribute the binary.
-Josh
Josh,
that would be cool. I'm waiting for a stable squeezeslave binary on OSX myself.
You recognize this thread?
http://forums.slimdevices.com/showthread.php?t=54124&highlight=squeezeslave
That error usually means SS can't open a connection with SqueezeCenter and without the --retry option it justs exits.
Squeezeslave uses output device 0 by default which appears to be an input device on your Mac, so you'll need to add -O2 (capital letter O) to make it use the Built-in Output device. Also is SqueezeCenter running on the same machine? If not, you'll need to add the hostname or ip address at the end of the command line.
Thanks for taking the time to try and get this working. Hopefully we can iron out the few problems and add a working binary to sourceforge. I'd also be happy to apply any changes you made to the source and makefile into my repository so it doesn't get lost.
Ralphy
Josh,
Any update on the OSX version?
Could you provide a patch for the uint32 changes?
Does the binary work?
Could you provide access to download the binary? If so, I'll place it on sourceforge.
Thanks,
Ralphy
pardsbane
2008-11-23, 09:12
Sorry, I didn't notice updates to this thread till just now. I'll go back and see what I can dig up for squeezeslave. I switched my focus to squeezeplay and go it compiling on OS X, and it makes sounds when I change the menus, but when I ask it to play from the server, I don't hear any sound. But both SqueezePlay and SqueezeCenter think the music is playing. its strange.
Anyway, I'll post another thread about that and get back to squeezeslave in a bit.
pardsbane
2008-11-23, 09:44
Hi again,
ok, based on the comments above, I adjusted my squeezeslave parameters. Its a lowercase 'o', not uppercase, and Squeezecenter is running on a computer called columbia, not local host...
Now this is what I get:
pardsbane@Buran:~/src/squeezeslave$ ./bin/squeezeslave -o 2 columbia
Output devices:
0: Built-in Microphone
1: Built-in Input
* 2: Built-in Output
Squeezeslave appears on the website, and I can select an mp3 song and it will play, but if I select an m4a (which most of my songs are), it looks like its playing but I don't hear anything.
Does that mean SqueezeCenter isn't transcoding correctly?
Internet radio also worked, but it was extremely stuttery.
Yes,
I use faad to transcode m4a files to wav or mp3 on linux. Here's the lines from my custom-convert.conf They may be different for OSX. I'm sure someone has talked about in the forums before.
mov mp3 * *
[faad] -q -w -f 2 $FILE$ | [lame] --silent -r -x -q $QUALITY$ -b $BITRATE$ - -
mov wav * *
[faad] -q -w -f 2 $FILE$ 2>/dev/null
Sorry about misleading you with the capital vs lower letter O. Guess I should read the help screen more often.
I've found that stuttering is usually the result of the machine running SqueezeCenter not being able to keep up with transcoding. Try transcoding the stream type to wav instead of flac or mp3. I do this on a wireless b laptop running squeezeslave and I never saturate the wireless link.
pardsbane
2008-11-24, 09:06
Yeah, I noticed that my squeezebox boom, squeezeslave, and squeezeplay are all not playing AAC files, which tells me the transcoding is busted. I'm running an unstable version of SqueezeCenter 7.3 on Ubuntu, and I have these settings /etc/custom-convert.conf, but something is going wrong:
# Transcoding for AAC files.
mov flc * *
[faad] -w -f 2 $FILE$ | [flac] -cs --totally-silent --compression-level-0 --endian little --sign signed --channels 2 --bps 16 --sample-rate 44100 -
mov mp3 * *
[faad] -w -f 2 $FILE$ | [lame] --resample 44100 --silent -q $QUALITY$ -b $BITRATE$ -x -r - -
mov wav * *
[faad] -w -f 2 $FILE$
I guess I should check the logs.
Anyway, back to squeezeslave, I'd guess its working fine. I don't know how to build a release that includes all the .so's I built from MacPorts, but I'll see if I can figure that out. Alternatively I could switch to .a's.
-Josh
Anyway, back to squeezeslave, I'd guess its working fine. I don't know how to build a release that includes all the .so's I built from MacPorts, but I'll see if I can figure that out. Alternatively I could switch to .a's.
-Josh
I'd suggest using the static libraries for a release if you can. More people will be able to use it "out of the box" without having to find the right versions of the .so's
Ralphy
Powered by vBulletin® Version 4.1.12 Copyright © 2013 vBulletin Solutions, Inc. All rights reserved.