PDA

View Full Version : Annouce: New Squeezeslave 0.8 release availabe on sourceforge



ralphy
2008-10-23, 15:53
A new Squeezeslave 0.8 release is now available at

https://sourceforge.net/project/showfiles.php?group_id=105169&package_id=176494

What's new in Squeezeslave 0.8

Works with squeezecenter versions 6.5.4 through 7.3.

Binaries available for Windows, Linux and Solaris both Sparc and Intel.

Win32 version uses Direct X.
Linux versions continue to use the OSS audio driver.
Solaris versions use native solaris mixer interface.

A Pentium MMX binary is also available for linux. Works great on an old Pentium MMX laptop at 133Mhz with 48MB of memory.

Modified volume_control define from bool to use the enumerated type slimaudio_volume_t. Fixes issue with VOLUME_DRIVER always being disabled regardless of command line option.

Upgraded portaudio library to 0.18.1.

Added define GETOPT_SUPPORTS_OPTIONAL to workaround bug in older getopts.

Fixed endian problem with ogg/vorbis decoding for Solaris SPARC and MacOSX.

Fixed various typos in comments and error messages.

Added error codes to the mp3 decoder error messages to help track down what triggers the error.

Changed the default mac address to 0:0:0:0:0:1 to allow Squeezecenter to create a new player using the squeezeslave player type and not use the settings from the old player type.

Added less than 1 check to retry interval and reset to new default of 5.

Applied flaac.patch to slimaudio_decoder_flac.c to allow 64-bit linux compiles.

Applied sc7.patch to slimaudio_decoder.c to fix skipping issue with SC 7.x.

Added Solaris UltraSPARC and Intel build files to source tree.

Added incomplete Windows CYGWIN files, slimaudio_output thread spins. Would appreciate some help getting this working with someone who knows cygwin programming.

I would also appreciate it if someone could contribute a PPC and/or Intel MacOSX and Linux AMD64 binaries for the new version.

To build the mingw32 version which is the win32 release you'll need to download the directx sdk from microsoft and populate the lib/dx directory like so; You'll need to move the header files and libraries to match.

lib/dx
|-- include
`-- lib

Based on svn.slimdevices.com release r23425.

For details, read the Changelog in the source tarball.

JJZolx
2008-10-23, 18:13
What's new in Squeezeslave 0.8

Works with squeezecenter versions 6.5.4 through 7.2.1.

Hmm... I'm using the previous version (0.7?) and it works just fine with 6.5 and SqueezeCenter 7 all the way up through the current revisions of 7.3.

pippin
2008-10-23, 18:23
Hmm... I'm using the previous version (0.7?) and it works just fine with 6.5 and SqueezeCenter 7 all the way up through the current revisions of 7.3.

But it's lacking a usable OSX version.
As is this one :-(
Maybe somebody can help out (I am pretty clueless on Mac programming, yet)

JJZolx
2008-10-23, 18:48
Just downloaded 0.8 and have it running fine on Windows XP as a service. Seems less temperamental about command line switches, whereas the previous version had some issues. Which is nice.

Two questions regarding the --volume option. In the Help, there's this:


-v, --volume <on|sw|off>: Enables/disables volume changes done by
SqueezeCenter during its operation, such as when
changing the volume through the web interface or
when applying replay gain. Defaults to sw.
on: volume changes performed on device.
sw: volume changes performed in software.
off: volume changes ignored.


What's the difference between device and software? The 'device' (Squeezeslave) is a software one.

Also, I posted a while back that with a Squeezeslave player, I don't see any Replay Gain options in the Audio settings. Are they supposed to be present?

ralphy
2008-10-24, 04:08
I currently don't have access to a Mac to build the OSX version. I've been looking at the hack to allow you to run OSX under vmware, but I have a few more updates planned for squeezeslave first. I'm hoping someone who has one will step up and create a binary. The source is availabe on sourceforge so no need for subversion.

I'm planning to integrate the portaudio v19 patch from KeyzerSuze as a build option for the linux 2.6 binary. There have been mixed success reports with it, so getting a 32bit linux binary available for people to test should help iron out the bugs.

I'd also like to remove the 44.1KHz only stream rate limitation in the near future as well.

As for --volume;

off - Ignore all volume changes. You must use OS mixer application to change volume.
on - Use the mixer of the output device when changing volume.
sw - Use internal volume change routines, which should handle replay gain.

I haven't tested the replay gain functionality, as I don't use it. It's been in the code for a long time, it's not something I added.

bobkoure
2008-10-24, 06:19
Thank you!
On my system, the earlier w32 version was essentially unusable (jumped tracks, froze) - but this one works just fine.
One very minor issue: when I upgraded to 7.2.1 this AM, I discovered that the web interface was unable to add tracks with ss2 (the cover icon at the top of the right-hand panel would, just jump a tiny bit when I clicked "add track" in the left panel. Restarting ss2 did not help, but synchronizing it with a hardware player, adding a track, worked fine - and it continued to work fine even after the synchronization was removed.

bobkoure
2008-10-24, 06:44
BTW, here's an easy way to use ss2 from the GUI
1) move or copy the files into a folder where you plan to keep them (I used c:\program files\squeezeslave2, but you can use whatever you like)
2) use windows explorer to navigate to that directory (if you're not there already from the above)
3) right-click (and hold) squeezeslave.exe, and drag to white space in that folder. When asked, select "create shortcuts here" - which will create a link called "shortcut to squeezeslave2.exe"
4) right-click that new link and select "properties"
5) in the "shortcut" tab:
5a) find the "target" edit box. the path so squeezeslave2 will already be there. Append a space, plus the name of you SqueezeCenter server (plus any other command options you might want)
5b) find the "run" drop-down box - change to "minimized"
6) optional: in the "general" tab
6a) change the name
6b) change the icon (the system has an OK note+speaker icon - but choose whatever suits your fancy)
7) click "OK" to close the properties box
8) right-click (and hold) your new shortcut - drag to wherever you like (start menu, desktop, quickstart bar), and select "copy" when asked (so there's always the original shortcut to copy somewhere else)

That's it (and it takes a lot longer to write up than it takes to actually do it).
You can now click the shortcut icon to start squeezeslave2, which will run minimized, so it's just an icon on the tray. You can close ss2 by right-clicking the icon in the tray (not the shortcut icon you used to start ss2) and pick "close".

IMHO this is a bit more convenient than running as service for a desktop machine that you're going to be sitting at anyway. Logging off closes ss2.
Oh - and you can drag that icon into your startup menu item if you want ss2 to start when you login.

Hope this helps someone. My guess is that anyone using ss2, and so comfortable with the command line, already knows this stuff, but maybe not...

PS: if you're setting up a machine with multiple users, you can use the -m option (in the target window) to set a separate mac for each user - so you can have separate settings for each - and individual playlists.

ralphy
2008-10-24, 09:23
Thank you!
One very minor issue: when I upgraded to 7.2.1 this AM, I discovered that the web interface was unable to add tracks with ss2 (the cover icon at the top of the right-hand panel would, just jump a tiny bit when I clicked "add track" in the left panel.

Try closing your SqueezeCenter browser window, clear all browser cache, open a new SC browser window and try adding tracks again. I've never seen this problem with 7.2.1 and squeezeslave.

maggior
2008-10-24, 13:05
I'm trying to use the -m option to set a different MAC. I receive an error "Cannot parse mac address 00:00:00:00:02".

Any ideas on how to get around this?

I'm using the Windows version 0.8-12.

Thanks!

JJZolx
2008-10-24, 13:21
I'm trying to use the -m option to set a different MAC. I receive an error "Cannot parse mac address 00:00:00:00:02".

Any ideas on how to get around this?

Six pairs of hex digits, not five.

ralphy
2008-10-25, 03:38
Hmm... I'm using the previous version (0.7?) and it works just fine with 6.5 and SqueezeCenter 7 all the way up through the current revisions of 7.3.

I just meant that I'd tested 0.8-12 with SC versions in that range.

Yes, version 0.7.5.1 also works with all these versions and 6.3 as well. Although I haven't used 6.3 in a while. Versions of squeezeslave older than that didn't work the SC 7.x onwards.

It's great to hear that SS works with 7.3 as well, I'll update the annoucement post.

maggior
2008-10-25, 05:06
Six pairs of hex digits, not five.

I must have miscounted - I thought the help screen showed 5 sets of hex digits. I'll have to try again.

As you can tell, I don't deal with MACs much :-).

EDIT
I looked at the output from -help and it does just show 5 sets of hex digits.

Philip Meyer
2008-10-25, 05:15
>A new Squeezeslave 0.8 release is now available at
>
Seems to be working okay in 7.3 for me, except for synchronisation - SqueezeSlave initially lagged behind my Boom player. Having skipped a track, it now seems to be in sync though.

I noticed the following in the log:

[12:59:35.9904] Slim::Player::StreamingController::_Invalid (320) 00:00:00:00:00:01: event BufferReady received while in invalid state PLAYING-STREAMOUT
[12:59:35.9948] Slim::Utils::Misc::msg (1126) Warning: [12:59:35.9907] Backtrace:

frame 0: Slim::Player::StreamingController::_Invalid (P:/Music/SlimServer/trunk/server/Slim/Player/StreamingController.pm line 282)
frame 1: Slim::Player::StreamingController::_eventAction (P:/Music/SlimServer/trunk/server/Slim/Player/StreamingController.pm line 1654)
frame 2: Slim::Player::StreamingController::playerBufferRea dy (P:/Music/SlimServer/trunk/server/Slim/Player/SqueezeSlave.pm line 273)
frame 3: Slim::Player::SqueezeSlave::statHandler (P:/Music/SlimServer/trunk/server/Slim/Networking/Slimproto.pm line 820)
frame 4: Slim::Networking::Slimproto::_stat_handler (P:/Music/SlimServer/trunk/server/Slim/Networking/Slimproto.pm line 401)
frame 5: Slim::Networking::Slimproto::client_readable (P:/Music/SlimServer/trunk/server/Slim/Networking/IO/Select.pm line 268)
frame 6: (eval) (P:/Music/SlimServer/trunk/server/Slim/Networking/IO/Select.pm line 268)
frame 7: Slim::Networking::IO::Select::select (P:\Music\SlimServer\trunk\server\slimserver.pl line 530)
frame 8: main::idle (P:\Music\SlimServer\trunk\server\slimserver.pl line 480)
frame 9: main::main (P:\Music\SlimServer\trunk\server\slimserver.pl line 1037)


I needed to stop and restart SqueezeSlave after I stopped and restarted SqueezeCenter too (other players reconnected, but SS did not).

Phil

JJZolx
2008-10-25, 10:03
I needed to stop and restart SqueezeSlave after I stopped and restarted SqueezeCenter too (other players reconnected, but SS did not).

Did you add the -r/--retry option? The help text is a little confusing - I don't believe it retries by default. It won't reconnect without it.

It doesn't make a lot of sense to me why retrying isn't the default behavior if you're trying to emulate a Squeezebox, which will keep retrying to connect to a local server.

Philip Meyer
2008-10-25, 10:53
>Did you add the -r/--retry option? The help text is a little confusing
>- I don't believe it retries by default. It won't reconnect without
>it.

I didn't know that I had to do that - I assumed it would retry by default (or if not, that the process would end).

I tried -r, but it asked for a value, so I then tried --retry 5 and it then said "Error no such host: 5". It seems that --retry doesn't look for a param, but -r requires a param.

-r 5 works.

Phil

JJZolx
2008-10-25, 11:03
I tried -r, but it asked for a value, so I then tried --retry 5 and it then said "Error no such host: 5". It seems that --retry doesn't look for a param, but -r requires a param.

-r 5 works.

Command line parsing with Squezeslave has always been a little hit or miss. 0.7 was worse.

ralphy
2008-10-26, 01:33
Command line parsing with Squezeslave has always been a little hit or miss. 0.7 was worse.

I was going to fix the cli parsing for this release as it's always bugged me as well, but figured it would break too many "run scripts" that people were using.

I've come across several verions of glib in which the optional parameters to cli options, like that used for the -r/--retry option which didn't work at all. Having --retry NOT need a value and -r require one was the best compromise for a work around.

ralphy
2008-10-26, 01:39
I looked at the output from -help and it does just show 5 sets of hex digits.

Thanks for catching this. The fix will be in the next release.

I've also updated the help screen to clearly describe the difference between -r/--retry.

oreillymj
2008-10-27, 08:45
Jim,

I'd be interested to know how you set up Squeezeslave as an XP service.

I tried with Srvany.exe but wasn't able to suppress the DOS window.

Here's the registry parameters I tried passing into srvany.exe

"C:\Program Files\SqueezeCenter\squeezeslave.exe" -o 0 -s >NULL

JJZolx
2008-10-27, 10:36
I'd be interested to know how you set up Squeezeslave as an XP service.

I tried with Srvany.exe but wasn't able to suppress the DOS window.

Here's the registry parameters I tried passing into srvany.exe

"C:\Program Files\SqueezeCenter\squeezeslave.exe" -o 0 -s >NULL

Don't pass the command-line arguments in the same registry string as the application. Here's the whole procedure:

Start by running instsrv.exe to create the Windows service and point it to srvany.exe. This creates a new registry key at

HKLM\SYSTEM\CurrentControlSet\Service\Squeezeslave

with the string value 'ImagePath' of (on my system)

C:\Program Files\Windows Resource Kits\Tools\srvany.exe

Under the Squeezeslave key, create another key (folder) called 'Parameters'. Under Parameters create two string values, 'Application' and 'AppParameters', with respective values of

C:Program Files\Squeezeslave\squeezeslave.exe

and

--signal --retry --mac 00:00:00:00:0f 192.168.9.11

Adjust the mac address and the ip address of your server to suit your tastes.

oreillymj
2008-10-27, 15:33
ok, that was all fine expect I didn't have the appParameters key.

But I still get a DOS window with the following, even if I specify -o 0, or --output 0

Output devices:
0: Primary Sound Driver
1: C-Media Wave Device
2: Modem #1 Line Playback (emulated)
3: Primary Sound Capture Driver
4: C-Media Wave Device
5: Modem #1 Line Record (emulated)
PortAudio on DirectSound - Latency = 5376 frames, 121 msec

JJZolx
2008-10-27, 15:41
ok, that was all fine expect I didn't have the appParameters key.

But I still get a DOS window with the following, even if I specify -o 0, or --output 0

I dunno. I've never seen a DOS window running a service using srvany.

With 0.7 it seemed like the output device was required, although I think the Help said it would default to 0. With 0.8 I found that it could be left off and the default works fine.

erland
2008-10-28, 23:56
Does the -r or --retry parameters work on the Linux version ?

I can run them with any time but it never succeeds to re-connect to SqueezeCenter after a SqueezeCenter restart.

If I run them with a retry seconds parameter it just says:


myuser@myhostname:/opt/squeezeslave08$ ./squeezeslave -r 2
Output devices:
0: /dev/dsp
Error connecting to 0.0.0.2:3483
Sleeping for 5 s.


I'm using the squeezeslave-0.8-12-lnx26-intel.tar.gz version on Ubuntu 8.04
I've also tried squeezeslave 0.7.5.1 with the same behaviour.
I've also tried compiling the 0.8-12 version myself with the same behaviour.

Is this supposed to work or am I doing something wrong ?

ralphy
2008-10-29, 03:38
Yes, it's been that way since the option was added depending on your getopt library.

SS thinks the 2 is the IP address and it's retrying using the default of 5

Error connecting to 0.0.0.2:3483
Sleeping for 5 s. ^
|

It's related to the problem I've run into using optional arguments with getopt. I've changed this in my source tree to required, so in the next release -r without an argument aborts with an error.

As a work around replace '-r 2' with --retry without any value for now or undefine GETOPT_SUPPORTS_OPTIONAL in the makefile.

I have an alsa version for linux partially working, plays mp3 streams fine but nothing else. I think it's related to buffering, but haven't nailed it down yet.

maggior
2008-10-29, 17:57
Does the -r or --retry parameters work on the Linux version ?

I can run them with any time but it never succeeds to re-connect to SqueezeCenter after a SqueezeCenter restart.

If I run them with a retry seconds parameter it just says:


myuser@myhostname:/opt/squeezeslave08$ ./squeezeslave -r 2
Output devices:
0: /dev/dsp
Error connecting to 0.0.0.2:3483
Sleeping for 5 s.


I'm using the squeezeslave-0.8-12-lnx26-intel.tar.gz version on Ubuntu 8.04
I've also tried squeezeslave 0.7.5.1 with the same behaviour.
I've also tried compiling the 0.8-12 version myself with the same behaviour.

Is this supposed to work or am I doing something wrong ?

You need to not put a space between "r" and "2". Make it look like this:
./squeezeslave -r2

I am using squeezeslave on Linux with the options -s -r3. -s tells it to run in the background and not expect input from the keyboard. -r3 tells it to retry and retry every 3 seconds if it cannot connect or loses the connection with the server.

I'm using an older version than .8 (.7 something).

Interestingly enough I dealt with this today when I was bringing my server back up. I really need to put this in a starup script!

erland
2008-10-29, 22:10
I am using squeezeslave on Linux with the options -s -r3. -s tells it to run in the background and not expect input from the keyboard.


Thanks, -r3 and -s seems to have solved my issues.

JJZolx
2008-11-05, 10:08
Can I suggest something for Squeezeplay, perhaps as an option...

Can it try to emulate an SB2/3, or possibly a Receiver? That is, actually identify itself to SqueezeCenter as one of those players? Another possibility might be to identify itself as SoftSqueeze.

Squeezeplay isn't likely to receive any direct support in SqueezeCenter, and being an unknown type of player imposes certain restrictions. One that I mentioned before is that it isn't possible to enable Replay Gain in the settings.

mherger
2008-11-05, 10:40
> Squeezeplay isn't likely to receive any direct support in
> SqueezeCenter,

It's already there: Slim::Player::SqueezeSlave. If some feature is
missing, then this is the place to fix it.

Michael

Mark Miksis
2008-11-05, 10:46
Is Jim asking about SqueezePlay or SqueezeSlave?

pippin
2008-11-13, 18:34
Could somebody give me a complete dummies' guide on how to get this running on my ubuntu server?
I only get "PortAudio error: Host error."
I've tried to install any PortAudio stuff I could find but have no idea how to find out if it's configured correctly...

kelvinelk
2008-11-14, 02:09
Hi Pippin,

the command that has worked for me for some time is:
aoss /usr/local/bin/squeezeslave --signal --oldplayer --volume sw -r3 -s -m 01:01:01:01:01:0a mythtv

where mythtv is the server name where squeezecenter resides

this requires alsa-oss installed (I don't recall installing anything else to get working)

pippin
2008-11-14, 02:18
Hi Pippin,

the command that has worked for me for some time is:
aoss /usr/local/bin/squeezeslave --signal --oldplayer --volume sw -r3 -s -m 01:01:01:01:01:0a mythtv

where mythtv is the server name where squeezecenter resides

this requires alsa-oss installed (I don't recall installing anything else to get working)

Works!
You're my hero!

Dean L. Surkin
2008-11-18, 06:56
Any idea when the Linux AMD64 version (for Debian/Ubuntu) will be available? Thanks.

--Dean L. Surkin

f948lan
2008-11-18, 07:01
For anyone interested, I've had a go at adding text mode display and control support into squeezeslave, including LCDd and lircd support.

See http://forums.slimdevices.com/showthread.php?t=55178 for details and patches to try it out.

It's Linux only at the moment

autopilot
2008-11-23, 05:45
Hi, im running Visa 64 and was wondering how to suppress the DOS box also. I want a headless player, but a DOS box is not headless :)

Many thanks.

toddrc
2008-11-23, 19:35
I just set up my Squeezebox and the first thing I wanted to be able to do is listen to the same music on my computer as what was being played in the other room. I have installed squeezeslave and am probably missing something rather obvious.

I did not fully understand this instruction:
5a) ........ Append a space, plus the name of you SqueezeCenter server (plus any other command options you might want)

My "Target" looks like this:
"C:\Program Files\squeezeslave-0.8-12-win32\squeezeslave.exe"

Thank you writing this program, I am looking forward to being able to use it.

JJZolx
2008-11-23, 19:44
I just set up my Squeezebox and the first thing I wanted to be able to do is listen to the same music on my computer as what was being played in the other room. I have installed squeezeslave and am probably missing something rather obvious.

I did not fully understand this instruction:
5a) ........ Append a space, plus the name of you SqueezeCenter server (plus any other command options you might want)

My "Target" looks like this:
"C:\Program Files\squeezeslave-0.8-12-win32\squeezeslave.exe"

Thank you writing this program, I am looking forward to being able to use it.

I assume that's the target of a shortcut?

You have to tell Squeezeslave where the SqueezeCenter server is, unless both are running on the same computer. Something like:

"C:\Program Files\squeezeslave-0.8-12-win32\squeezeslave.exe" 192.168.1.2

toddrc
2008-11-23, 20:18
I assume that's the target of a shortcut?

You have to tell Squeezeslave where the SqueezeCenter server is, unless both are running on the same computer. Something like:

"C:\Program Files\squeezeslave-0.8-12-win32\squeezeslave.exe" 192.168.1.2

That was the target to the shortcut to Squeezeslave. My SqueezeCenter is on the same computer as Squeezeslave and all my music files. I only have one computer and one Squeezebox.

I may be missing a step. While the SqueexeCenter is running and music is playing in the other room, I start Squeezeslave hoping to listen to the same music on my computer. Please forgive my ignorance, this is very new to me and I am more of a spreadsheet and AutoCAD guy.

maggior
2008-11-23, 20:27
When you run squeezeslave, it appears as another player in the web interface and on the controller (if you have one of those).

To listen to the same music on you PC as on your other player, you need to synchronize them. This can be done either through the web interface or via the menus on the squeezebox.

Have fun.

chrisla
2008-11-23, 20:54
"C:\Program Files\squeezeslave-0.8-12-win32\squeezeslave.exe 127.0.0.1"

space between the .exe and the 127.

-Chris

On Sun, Nov 23, 2008 at 7:27 PM, maggior
<maggior.3jd1fz1227497401 (AT) no-mx (DOT) forums.slimdevices.com> wrote:
>
> When you run squeezeslave, it appears as another player in the web
> interface and on the controller (if you have one of those).
>
> To listen to the same music on you PC as on your other player, you need
> to synchronize them. This can be done either through the web interface
> or via the menus on the squeezebox.
>
> Have fun.
>
>
> --
> maggior
>
> Rich
> ---------
> Setup: 2 SB3s, 1 duet, 1 receiver. SuSE 11.0 Server running
> SqueezeCenter 7.2.1 and SqueezeSlave. (No MusicIP for now since it
> throws a segmentation fault when started on SuSE 11.0)
> http://www.last.fm/user/maggior
> ------------------------------------------------------------------------
> maggior's Profile: http://forums.slimdevices.com/member.php?userid=9080
> View this thread: http://forums.slimdevices.com/showthread.php?t=54124
>
>

maggior
2008-11-23, 21:17
By default, it listens to the local loopback adress (127.0.0.1). On my server where I use squeezeslave, I use the command line squeezeslave -s -r3. This means run in background mode and retry every 3 seconds if squeezecenter is not running.

It doesn't hurt to be explicit about the IP address, but it isn't really needed when running on the same machine as the server.

ralphy
2008-11-24, 04:57
For anyone interested, I've had a go at adding text mode display and control support into squeezeslave, including LCDd and lircd support.

See http://forums.slimdevices.com/showthread.php?t=55178 for details and patches to try it out.

It's Linux only at the moment

There's a compiled version on sourceforge which includes the squeezecenter patch in the tarball. I've also uploaded a new alsa version with smoother audio playback than the previous release.

ralphy
2008-11-24, 05:00
Any idea when the Linux AMD64 version (for Debian/Ubuntu) will be available? Thanks.

--Dean L. Surkin

Sorry, don't have a 64-bit linux system. The 64-bit versions for previous releases were contributed.

toddrc
2008-11-24, 18:44
I am getting closer... probably.

I have tried the "Target" path for the SqueezeSlave shortcut with and without "127.0.0.1" at the end. In both cases, as soon as I choose SqueezeSlave or try to synchronize with it, the player refuses to play.

bobkoure
2008-11-26, 06:19
Hi, im running Visa 64 and was wondering how to suppress the DOS box also.
Google srvany.

jwmelvin
2009-02-08, 21:03
Sorry, don't have a 64-bit linux system. The 64-bit versions for previous releases were contributed.

Does anyone know if it's possible to compile 0.8 for 64-bit Linux? I'm also using Ubuntu 8.10. With my limited experience, I can't seem to get it to compile from source. Any suggestions would be appreciated.

The error from running 'make -f makefile.linux26' is:
CPU you selected does not support x86-64 instruction set
make: *** [src/squeezeslave/squeezeslave.o] Error 1

Thanks,
Jason

ralphy
2009-02-09, 05:01
Try changing the line in makefile.linux26;



From

CFLAGS=-Wall -s -march=i686 -O3 -DNDEBUG -DUSE_SIGNALS_FOR_RESTART -fomit-frame-pointer

to

CFLAGS=-Wall -s -m64 -O3 -DNDEBUG -DUSE_SIGNALS_FOR_RESTART -fomit-frame-pointer

jwmelvin
2009-02-09, 06:17
That seems to help considerably, thank you. But it still errors out:

melvin@ROCCO:~/squeezeslave/squeezeslave-0.8-25$ make -f makefile.linux26
gcc -Wall -s -m64 -O3 -DNDEBUG -DUSE_SIGNALS_FOR_RESTART -fomit-frame-pointer -c -Ilib/portaudio/pa_common -Ilib/portaudio/pablio -Ilib/portmixer/px_common -Isrc src/squeezeslave/squeezeslave.c -o src/squeezeslave/squeezeslave.o
In file included from src/squeezeslave/squeezeslave.c:56:
src/slimaudio/slimaudio.h:31:17: error: mad.h: No such file or directory
src/slimaudio/slimaudio.h:32:33: error: FLAC/stream_decoder.h: No such file or directory
src/slimaudio/slimaudio.h:33:31: error: vorbis/vorbisfile.h: No such file or directory
In file included from src/squeezeslave/squeezeslave.c:56:
src/slimaudio/slimaudio.h:119: error: field ‚mad_decoder‚ has incomplete type
src/slimaudio/slimaudio.h:123: error: expected specifier-qualifier-list before ‚FLAC__StreamDecoder‚
make: *** [src/squeezeslave/squeezeslave.o] Error 1

I'm using the source package: squeezeslave-0.8-25-src.tar.bz2

Again, I apologize for my ignorance but any pointers are most appreciated.

-jason

ralphy
2009-02-10, 04:48
The build can't find the header files from libmad, flac, ogg and vorbis. You need these packages installed before you'll be able to compile successfully. I don't know ubuntu linux, but there may be libary only and development packages for each, if so, you'll need the development ones as well.

jwmelvin
2009-02-10, 07:24
Awesome, thanks!

I installed:
libmad0,
libmad0-dev,
vorbis-tools,
libflac-dev,
libogg-dev, and
libvorbis-dev

And it compiled into a functioning binary.

A new question - can Squeezeslave use ReplayGain? I was hoping that compiling v25 would let me do so, but no option shows up in the settings page.

Also - any hints on how to apply the 25 -> 26 patch or daemonize patch? Is my guess that I put the file in the "patches" folder and then compile correct?

Thanks again!

jwmelvin
2009-02-10, 12:19
I did a little testing and if I use the -O option (for oldplayer type) then the setting page shows replaygain as an option.

But then pause does not work, from the web interface or CLI.

Maybe this is something I need squeezeslave v8-26 for, to specify other player types?

ralphy
2009-02-11, 05:09
Squeezeslave has supported replay gain since at least 0.7.5 if not before. Unfortunately the squeezeslave player type in squeezecenter disables replayGainMode by default.

If your running SC on linux you can change the line in server/Slim/Player/SqueezeSlave.pm from

'replayGainMode' => 0,

to

'replayGainMode' => 1,

and restart SC.

I guess I should submit a bug for it.

ralphy
2009-02-11, 05:18
I did a little testing and if I use the -O option (for oldplayer type) then the setting page shows replaygain as an option.

But then pause does not work, from the web interface or CLI.

Maybe this is something I need squeezeslave v8-26 for, to specify other player types?

Which version of Squeezecenter are you running?

I released 0.8-26 to help debug another issue. -O has worked for a long time, no need for 0.8-26 for this problem.

I suspect something else is happening with pause as --oldplayer only changes the player type advertised to SC from squeezeslave to softsqueeze.

Try adding -O -m00:00:00:00:00:02 when starting squeezeslave, this will create a new softsqueeze player with default settings.

ralphy
2009-02-11, 05:30
Awesome, thanks!
...
And it compiled into a functioning binary.


I'd really appreciate it if you'd provide the binary so I can post it on sourceforge. Send me a PM if you like.


A new question - can Squeezeslave use ReplayGain? I was hoping that compiling v25 would let me do so, but no option shows up in the settings page.

Please see my previous post.


Also - any hints on how to apply the 25 -> 26 patch or daemonize patch? Is my guess that I put the file in the "patches" folder and then compile correct?

No. You'll need to apply the patch manually. At the top level of the squeezeslave directory; (ie. where the makefiles are) run this command.

patch -p0 -i squeezeslave-0.8-r25-26.patch

you can try the daemonize patch as well. I don't know if they can both be applied. Unfortunately, I need to refactor the daemonize patch to allow the win32 version of squeezeslave to compile, which is why I didn't include it in r26 release. I'm actually in the process of cleaning up squeezeslave.c as it's become hard to maintain with all the resent feature enhancements, which is great!

SamG
2009-02-11, 17:25
I also recently compiled squeezeslave-0.8 on a Fedora x64 system. It is working pretty well at the moment, though there are a couple of FLAC files on which it consistently stutters.

One interesting thing I noticed was that hitting the pause button on the web interface and then hitting play starts the current track from the beginning. I am pretty sure that version 0.7 did not exhibit this behaviour. This occurs with or without the -O flag. SoftSqueeze on my Windows PC does not do this. Rather it starts the track from the point at which it was paused. Is this the expected behaviour or a bug?

I tried attaching the binary file in case you would like to post it on SourceForge, but the gzipped tarball exceeded the forum file size limit. Please let me know how I can upload this file. This was compiled for v0.8-25 with alsa support, portaudio v19 and the daemonize patch applied.

ralphy
2009-02-13, 05:02
I've sent you a PM regarding the binary.

This is not expected behaviour. Unfortunately, I don't see the pause problem. I use the 0.8-25 win32 binary all day, every day at work and pause it constantly. The track starts exactly where I paused it. I do it so often that I've mapped the keyboard audio keys to run a cli script to pause/unpause squeezeslave from my windows manager on Solaris.

This could be related to the version of SC I'm still running 7.2.2 - r24134 at work, actually at home too. What version of SC are you running? I'll install that release on my test system to see if I can replicate the problem.

Would you download a v0.7.5.1 binary from sourceforge and see if pause works with that release. If it does, then please try 0.8-12 and report back on your findings. This will help me narrow down what change may be causing the pause problem.

I too still have the stuttering problem using alsa. I've gone back to using oss emulation with alsa as it's rock solid. Unfortunately, you loose the ability to share the audio device that way. Thankfully, this hasn't been an issue for me.

I believe KeyzerSuze's observations as to the real cause of the stuttering using alsa holds true.


I have been adding debuging
information through squeezeslave to watch the buffers and they seem
okay the http-> decoder-> output. I have tried increasing them to no
avail.

The place it blocks is writing to the decoder buffer (just read off
http and trying to write to decoders buffer.

I have let portaudio ask for the number of frames to transfer on its
call back and it seems to default to 1024 (it was hard coded as 256
before), I have tried placing this back again to no avail, there is
more buffer interaction, but the waits are still in the same place.

I am running on a 64 X2 Dual Core Processor 4400+ so I should not be
getting this problem. One other thing I have noticed is file with
higher bitrate seem to suffer more from this as well.

The main differences is v18 -> v19 and going from the /dsp to pcm via
alsa. I notice more problems when I output straight to the spdif...

Unfortunately, I've been unable to figure out why it's only an issue using portaudio v19+;

Here's my cli script; sccmd if anyone is interested.



#!/bin/bash

# Win32 squeezeslave
SSMAC=00:17:31:7B:88:7b
MAC=00%3A17%3A31%3A7b%3A88%3A7b

SSHOST=ralphydt
SSTCP="/dev/tcp/$SSHOST/9090"

exec 8<>${SSTCP}
echo -e "login username password\r\n$MAC $1\r\nexit\r\n" >&8
RESPONSE=`cat <&8`


and the keyboard mappings for fvwm2



Key SunAudioLowerVolume A N Exec $HOME/scripts/sccmd "mixer volume -2.5"
Key SunAudioLowerVolume A S Exec $HOME/scripts/sccmd "button jump_rew"
Key SunAudioRaiseVolume A N Exec $HOME/scripts/sccmd "mixer volume +2.5"
Key SunAudioRaiseVolume A S Exec $HOME/scripts/sccmd "button jump_fwd"
Key SunAudioMute A N Exec $HOME/scripts/sccmd pause

jwmelvin
2009-02-13, 05:43
I've sent you a PM regarding the binary.
This could be related to the version of SC I'm still running 7.2.2 - r24134 at work, actually at home too. What version of SC are you running?

I'm running 7.3.3 - 24976 on Ubuntu 8.10.



Would you download a v0.7.5.1 binary from sourceforge and see if pause works with that release. If it does, then please try 0.8-12 and report back on your findings. This will help me narrow down what change may be causing the pause problem.


The 0.7.5.1 binary works as expected.

When I compile 0.8-12, I get the same behavior of restarting a song after pause.

One interesting thing is that if I click (in the Web interface) on a position in the time slider, then subsequent play after pauses return to that position rather than the start of the song. This is true in both 0.8-12 and 0.8-26. Another clue is that when I play a track from the beginning, pressing pause stops the track as expected then pressing play restarts from the beginning. If I advance by clicking the slider, when I pause the track it jumps back to where I clicked on the slider.

jwmelvin
2009-02-13, 12:32
I just stumbled across a new clue. For me, squeezeslave 0.8-26 does not actually start the song over, it just gives that appearance. The time progress bar starts over but the song starts from where it was paused.

SamG
2009-02-13, 12:48
I've sent you a PM regarding the binary.

I sent you the binary via email.


This is not expected behaviour. Unfortunately, I don't see the pause problem. I use the 0.8-25 win32 binary all day, every day at work and pause it constantly. The track starts exactly where I paused it. I do it so often that I've mapped the keyboard audio keys to run a cli script to pause/unpause squeezeslave from my windows manager on Solaris.

This could be related to the version of SC I'm still running 7.2.2 - r24134 at work, actually at home too. What version of SC are you running? I'll install that release on my test system to see if I can replicate the problem.

Would you download a v0.7.5.1 binary from sourceforge and see if pause works with that release. If it does, then please try 0.8-12 and report back on your findings. This will help me narrow down what change may be causing the pause problem.

The pause problem seems to be different from what I thought I was seeing. The player does start playing correctly at the paused point. It is squeezecenter which does not correctly start the time slider at the pause point. I am running SC Version: 7.3.2 - 24695. I have confirmed this behaviour with my older squeezeslave 0.7.5.1 binary on linux as well as the v0.8-25 win32 binary from sourceforge.


I too still have the stuttering problem using alsa. I've gone back to using oss emulation with alsa as it's rock solid. Unfortunately, you loose the ability to share the audio device that way. Thankfully, this hasn't been an issue for me.

The stutter problem is not too bad, as I said consistently on a couple of tracks, but nothing on most of my music. Since my squeezeslave sits on a MythTV box, it needs to share sound and the alsa version does seem to work better with my spdif output than aoss which I was using earlier. I read KeyzerSuze's post, but not knowing anything about PortAudio, I am not sure what to make of it. If the pause problem appears more frequently as I listen to this setup, I will see if I want to delve into it some more.

Thanks for posting the cli script, that could be useful as I try to customize my squeezecenter setup some more.

SamG
2009-02-13, 13:01
I just stumbled across a new clue. For me, squeezeslave 0.8-26 does not actually start the song over, it just gives that appearance. The time progress bar starts over but the song starts from where it was paused.

Thanks for confirming this. Looks like a SqueezeCenter bug. I am also seeing this with squeezeslave running with the -O option, but not with SoftSqueeze.

ralphy
2009-02-14, 06:44
Okay, the progress bar status is a know issue with squeezeslave and since pause seems to be working correctly in 0.8-26, despite the progress bar, I'll consider the issue a TODO item. It's not an issue with Squeezecenter.

The portaudio libary doesn't return the correct stream position status after using pause. I applied a patch to the portaudio library for this issue but it didn't solve it. If you start squeezeslave with -dslimaudio_output_debug and press pause and release it you'll see the stream position values are not correctly reported, they reset to zero, which is why the progress bar starts again.

For me, it's about the music, not the eyecandy. I still use the classic web interface, so I don't even see a progress bar. The default skin is way too busy and slow for my liking, even though both my SC machine and desktop are 2.8GHz P4s w/2GB memory running linux.

SamG
2009-02-14, 12:42
Okay, the progress bar status is a know issue with squeezeslave and since pause seems to be working correctly in 0.8-26, despite the progress bar, I'll consider the issue a TODO item. It's not an issue with Squeezecenter.

Okay. I agree that as long as playback is fine, this is not really a big deal.

BTW, I also tried the ReplayGain change you suggested a few post before and I still do not get ReplayGain as an option for the squeezeslave player. Should I just use the -O option and not worry about this? Is there any reason not to use -O. It would be really great to have ReplayGain working.

ralphy
2009-02-15, 04:31
There's no issue using -O as all it does is report the player type as softsqueeze instead of squeezeslave when connecting to SC.

Did you create a new player by adding a never used before MAC address by adding a -m00:00:00:00:00:03 to the command line after adding the patch? SC seems to remember the player type settings from the first time it's created.

I'm working up a patch to submit for SC for the squeezeslave player type to address this issue properly. I'm currently trying to reproduce an issue with replay gain not working when bandwidth limiting is enabled, which I think will impact the patch, so it may be a while before I have something for you to test.

SamG
2009-02-17, 12:26
There's no issue using -O as all it does is report the player type as softsqueeze instead of squeezeslave when connecting to SC.

Did you create a new player by adding a never used before MAC address by adding a -m00:00:00:00:00:03 to the command line after adding the patch? SC seems to remember the player type settings from the first time it's created.


Thanks. That was the issue. I had used a different MAC address, but it turned out to be one I had used earlier while testing something else. Using a never before used MAC address solved the issue.

BTW, is there anyway to make SqueezeCenter clear its player information cache? It would be nice to make SqueezeCenter forget about all my trial squeezeslave instances.

ralphy
2009-02-18, 05:12
The best way I've found is to shutdown squeezecenter and delete the player settings block from server.prefs. The forget this player and reset player settings in SC still keep the settings for the initial player type in server.prefs.

Each player block starts with a line that looks like this, with the appropriate mac address for the player in question;

_client:00:00:00:00:00:02:

and ends with the following line, all indented using 2 spaces.

volume: 88

Delete all lines in between including the above two lines and startup squeezecenter again.

Ralphy

Chrobrego
2009-02-21, 13:15
If I run SqueezeSlave as a service, it sounds awful. But sound is normal if I launch manually SqueezeSlave. Why?

ralphy
2009-02-22, 07:40
What OS?

Are you using a different user when starting as a service vs command line?

Chrobrego
2009-02-22, 15:36
I use Windows XP. I have used first local system user, and them my own user name but this did not change anything. I wonder where it does come from? Sound is shattered, unlistenable.

ralphy
2009-02-23, 05:19
Something must have changed. Have you checked your sound card levels using the windows mixer program? Sounds like the levels have been changed.

Luke Redpath
2009-02-26, 16:47
I've spent a bit of time trying to compile this on OSX Leopard and I finally had some success, so I thought I'd outline the steps I took if anybody else would like to give it a try.

Most of my issues seemed to stem from the fact that my dependencies were installed using MacPorts which puts headers/libs in /opt.

1. Install dependencies using MacPorts: flac, libvorbis, libmad

2. Tweak makefile.osx so it knows where to find everything it needs:

http://gist.github.com/71202

3. Patch the bundled portaudio lib to change one of the typedefs as it conflicts with a typedef in one of the system libraries:



cd lib/portaudio && perl -pi -e 's,uint32,pa_uint32,g' */*.c */*.h


You should now be good to go!



$ make -f makefile.osx
$ cp bin/squeezeslave /(opt|usr)/local/bin


If you want to run this on boot as a system daemon, you can set it up as a launchd UserDaemon. Put this in /Library/LaunchDaemons/squeezeslave.plist



<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>OnDemand</key>
<false/>
<key>RunAtLoad</key>
<true/>
<key>Label</key>
<string>squeezelave</string>
<key>ProgramArguments</key>
<array>
<string>/opt/local/bin/squeezeslave</string>
</array>
</dict>
</plist>

ralphy
2009-02-27, 05:54
Thanks Luke.

Would you be willing to make your binary available on the sourceforge squeezeslave site? Send me a pm if you'd like.

Also, I'll update the squeezeslave repository with your OSX changes.

Ralphy

Luke Redpath
2009-02-27, 06:36
I'm happy to share the binary but I don't know how portable it is; forgive my lack of knowledge in this area, but will it require the dependencies to be installed in the same location as mine to work?

ralphy
2009-02-28, 06:10
Try adding a -static like this, delete bin/squeezeslave and run make again.


${CC} -o bin/squeezeslave $^ -static -L/opt/local/lib -lmad -lFLAC -lvorbisfile -lvorbis -logg /System/Library/Frameworks/CoreAudio.framework/CoreAudio /System/Library/Frameworks/AudioToolbox.framework/AudioToolbox -lpthread


If the MacPorts that you needed to install included the static versions of the libraries you should be golden. If not, perhaps you can check the ports to see there's also static versions available.

A static library filename looks like libmad.a whereas a shared version would be called libmad.so

Type;

file bin/squeezeslave

and post the output if OSX has the file command.

Thanks,

Ralphy

Luke Redpath
2009-02-28, 08:31
No joy so far, but happy to keep looking at this with your help.

Output of 'file squeezeslave':



/opt/local/bin/squeezeslave: Mach-O executable i386


/opt/local/lib contains libFLAC.a, libmad.a, libogg.a, libvorbis.a and libvorbisfile.a.

I did a make clean and recompiled but it is failing with this error:



--snip--
gcc -o bin/squeezeslave src/squeezeslave/squeezeslave.o lib/portmixer/px_mac_core/px_mac_core.o lib/libslimproto.a lib/libportaudio.a -static -L/opt/local/lib -lmad -lFLAC -lvorbisfile -lvorbis -logg /System/Library/Frameworks/CoreAudio.framework/CoreAudio /System/Library/Frameworks/AudioToolbox.framework/AudioToolbox -lpthread
ld_classic: can't locate file for: -lcrt0.o
collect2: ld returned 1 exit status
make: *** [bin/squeezeslave] Error 1


I'll keep investigating, but any ideas?

Edit: it seems like this could be relevant: http://developer.apple.com/qa/qa2001/qa1118.html

Luke Redpath
2009-02-28, 08:41
OK, using -static-intel seemed to do the trick; will this be suitable?

Source:
http://software.intel.com/en-us/articles/library-not-found-crt0/

Edit, doesn't seem to work. I gave it to a friend to run on his system and it failed:



dyld: Library not loaded: /opt/local/lib/libmad.0.dylib
Referenced from: /Users/james/Downloads/./squeezeslave
Reason: image not found
Trace/BPT trap


I believe macports provides both dynamic and static versions of libraries so the -static-intel musn't be doing what I'd expect. It seems the other solution is getting hold of crt0.o but no luck with that so far.

ralphy
2009-03-01, 02:36
Looks like it's still trying to load the dynamic libraries. I'm a little surprised how different the Mac implementation is. I've played around with the crt0 thing on linux and it's not pretty either, best to stay away from it.

Let's try building the binary by specifying the static libraries on linking but leaving everything else dynamic.



${CC} -o bin/squeezeslave $^ /opt/local/lib/libmad.a /opt/local/lib/libFLAC.a /opt/local/lib/libvorbisfile.a /opt/local/lib/libvorbis.a /opt/local/lib/libogg.a /System/Library/Frameworks/CoreAudio.framework/CoreAudio /System/Library/Frameworks/AudioToolbox.framework/AudioToolbox -lpthread

Luke Redpath
2009-03-02, 11:50
OK, building it with the static libs set explicitly seems to do the trick; I gave it to a friend to try out and it ran without any errors. He wasn't able to get it to connect to my server over the net though (I believe I had the right ports open on my router) but this may be a separate issue.

Feel free to give this a try:

http://dl.getdropbox.com/u/570528/squeezeslave.tar.gz

If this actually works, I'd be happy to try and set up some kind of automated build-process that builds a new binary from nightly pulls from the source code repo.

ralphy
2009-03-03, 05:56
Thanks Luke,

I placed the binary and plist file on sourceforge for people to try as I don't have a Mac. I've added your build changes to my repository and will release a new patch in the next day or two. I've also merged the daemonize patch.

https://sourceforge.net/project/showfiles.php?group_id=105169&package_id=176494

I know that people have squeezeslave working over the internet. If you'd like to troubleshoot it a bit let me know. You need to have these protocols/ports open;

TCP 9000,3483
UDP 3483

Unfortunately, I dont' have my repository available on the internet for an automated build. I've been investigating options but haven't made a decision yet. I'll certainly take you up on the offer once everything is in place.

Ralphy

Luke Redpath
2009-03-03, 18:27
I don't know what SCM tool you use but if you use Git, I'd highly recommend GitHub (I highly recommend Git too to be honest).

I had 3483 open but I think I neglected to open 9000 (didn't think the players needed this one) so I'll give it another test tomorrow.

ralphy
2009-03-05, 04:59
I think you're right. Looking through the code, it only uses tcp 3483, not even udp. I haven't done a remote SS via open ports in a long time. Maybe something is broken. I started using openvpn a couple years ago and never looked back. Let me know if you don't get it working and I'll try it here as well. Could also be something related to running on osx.

Thanks for the SCM recommendation. I only recently moved from cvs to subversion. I'm not sure I'm ready to jump again, the that one was a big enough learning curve. That being said, I've hear lots of buzz about git lately and have been at least a little curious.

Luke Redpath
2009-03-12, 03:34
Just bumping this thread for two reasons:

ralphy, if git isn't your thing, if you can make your subversion repository public (google code isn't bad for free svn hosting) then I'd be happy to maintain a git mirror using git-svn.

Also, regarding my problems with streams; it seems that the problem is with WMA streams. This might be an OSX-specific problem; I have Windows Media codecs installed using Flip4Mac but I'm not sure if these are available to squeezeslave. Any ideas?

ralphy
2009-03-12, 04:49
Luke,

Squeezeslave doesn't currently support wma, you'll need to transcode those files/streams. There are details on the wiki, although I see it hasn't been updated for 7.3

http://wiki.slimdevices.com/index.php/WMA

I'm still working on creating a library from the rockbox wma decoder to use with SS. Some of the code used to recognize the stream type is tightly wrapped with other features so it's taking longer than I'd hoped and ffmpeg is just to hard to complex in my option for decoding audio only.

I've been reviewing google code and it's probably what I'll end up using. I'll send you a PM once things are in place.

Thanks again.

bulek
2009-03-25, 02:41
Hi,

I'm using squeezeslave-0.8-25-lnx26-alsa-i686 on Ubuntu 710 and I spot that it dies on certain wav files (log at the bottom). I've also tried win32 version and it stops on same file, works ok on others....

Same problem happens when I trigger play of speech announcements made by Festival...

If I make stereo file with duplicating tracks, everything is ok....

What are my options to avoid that crashes ?

Thanks in advance,

regards,

Bulek.

Log:
/home/public/data/audio# /usr/local/bin/squeezeslave -O -o 0 -m 00:04:20:00:00:01 -d slimproto -d slimaudio --retry 192.168.0.1
proto state=1
Expression 'snd_pcm_hw_params_set_buffer_size_near( pcm, hwParams, &lowLatency )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 414
Expression 'snd_pcm_hw_params_set_buffer_size_near( pcm, hwParams, &lowLatency )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 414
Expression 'snd_pcm_hw_params_set_buffer_size_near( pcm, hwParams, &lowLatency )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 414
slimproto_connect(192.168.0.1, 3483)
proto state=2
Connected to 192.168.0.1
proto state=3
slimproto_send: cmd=HELO len=10
slimproto_recv cmd=vers len=11
Server version: 60504
Using 6.5.x default keepalive interval: 10 s.
slimproto_recv cmd=strm len=30
strm cmd q
audio_stop early out.
slimaudio_stat strm 0 0
slimproto_stat
code=strm
decoder_buffer_size=1572864
decoder_buffer_fullness=0
bytes_rx=0
output_buffer_size=5644800
output_buffer_fullness=0
elapsed_seconds=0
elapsed_milliseconds=0
slimproto_send: cmd=STAT len=47
DONE strm cmd q
slimproto_recv cmd=grfb len=8
slimproto_recv cmd=visu len=8
slimproto_recv cmd=grfe len=1290
slimproto_recv cmd=visu len=8
slimproto_recv cmd=setd len=7
slimproto_recv cmd=setd len=7
slimproto_recv cmd=setd len=7
slimproto_recv cmd=setd len=7
slimproto_recv cmd=setd len=7
slimproto_recv cmd=audc len=7
slimproto_recv cmd=knob len=20
slimproto_recv cmd=knob len=20
slimproto_recv cmd=aude len=8
slimproto_recv cmd=audg len=24
slimproto_recv cmd=stat len=6
slimproto_recv cmd=audg len=24
slimproto_recv cmd=audp len=7
slimproto_recv cmd=strm len=82
strm cmd s
slimaudio_stat strm 0 0
slimproto_stat
code=strm
decoder_buffer_size=1572864
decoder_buffer_fullness=0
bytes_rx=0
output_buffer_size=5644800
output_buffer_fullness=0
elapsed_seconds=0
elapsed_milliseconds=0
slimproto_send: cmd=STAT len=47
DONE strm cmd s
slimproto_recv cmd=audg len=24
*** glibc detected *** /usr/local/bin/squeezeslave: double free or corruption (out): 0x080fd198 ***
slimproto_recv cmd=strm len=30
strm cmd u
slimproto_send: cmd=DSCO len=1
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb7daed65]
/lib/tls/i686/cmov/libc.so.6(cfree+0x90)[0xb7db2800]
/usr/local/bin/squeezeslave[0x804f60d]
/usr/local/bin/squeezeslave[0x8072654]
/usr/local/bin/squeezeslave[0x8072bd3]
/usr/local/bin/squeezeslave[0x804f3ab]
/usr/local/bin/squeezeslave[0x804ef5b]
/lib/tls/i686/cmov/libpthread.so.0[0xb7eb946b]
/lib/tls/i686/cmov/libc.so.6(clone+0x5e)[0xb7e1873e]
======= Memory map: ========
08048000-080c5000 r-xp 00000000 03:01 37175521 /usr/local/bin/squeezeslave
080c5000-080d4000 rwxp 0007d000 03:01 37175521 /usr/local/bin/squeezeslave
080d4000-08115000 rwxp 080d4000 00:00 0 [heap]
b4d00000-b4d21000 rwxp b4d00000 00:00 0
b4d21000-b4e00000 ---p b4d21000 00:00 0
b4e20000-b4e21000 ---p b4e20000 00:00 0
b4e21000-b5621000 rwxp b4e21000 00:00 0
b5621000-b5622000 ---p b5621000 00:00 0
b5622000-b5e22000 rwxp b5622000 00:00 0
b5e22000-b5e23000 ---p b5e22000 00:00 0
b5e23000-b6623000 rwxp b5e23000 00:00 0
b6623000-b6624000 ---p b6623000 00:00 0
b6624000-b6e24000 rwxp b6624000 00:00 0
b6e24000-b6e2d000 r-xp 00000000 03:01 27200500 /lib/tls/i686/cmov/libnss_files-2.6.1.so
b6e2d000-b6e2f000 rwxp 00008000 03:01 27200500 /lib/tls/i686/cmov/libnss_files-2.6.1.so
b6e2f000-b6e37000 r-xp 00000000 03:01 27200512 /lib/tls/i686/cmov/libnss_nis-2.6.1.so
b6e37000-b6e39000 rwxp 00007000 03:01 27200512 /lib/tls/i686/cmov/libnss_nis-2.6.1.so
b6e39000-b6e4d000 r-xp 00000000 03:01 27200502 /lib/tls/i686/cmov/libnsl-2.6.1.so
b6e4d000-b6e4f000 rwxp 00013000 03:01 27200502 /lib/tls/i686/cmov/libnsl-2.6.1.so
b6e4f000-b6e51000 rwxp b6e4f000 00:00 0
b6e51000-b6e58000 r-xp 00000000 03:01 27200508 /lib/tls/i686/cmov/libnss_compat-2.6.1.so
b6e58000-b6e5a000 rwxp 00006000 03:01 27200508 /lib/tls/i686/cmov/libnss_compat-2.6.1.so
b6e5a000-b753e000 rwxp b6e5a000 00:00 0
b753e000-b753f000 ---p b753e000 00:00 0
b753f000-b7d41000 rwxp b753f000 00:00 0
b7d41000-b7d43000 r-xp 00000000 03:01 27200504 /lib/tls/i686/cmov/libdl-2.6.1.so
b7d43000-b7d45000 rwxp 00001000 03:01 27200504 /lib/tls/i686/cmov/libdl-2.6.1.so
b7d45000-b7e89000 r-xp 00000000 03:01 27200506 /lib/tls/i686/cmov/libc-2.6.1.so
b7e89000-b7e8a000 r-xp 00143000 03:01 27200506 /lib/tls/i686/cmov/libc-2.6.1.so
b7e8a000-b7e8c000 rwxp 00144000 03:01 27200506 /lib/tls/i686/cmov/libc-2.6.1.so
b7e8c000-b7e8f000 rwxp b7e8c000 00:00 0
b7e8f000-b7eb2000 r-xp 00000000 03:01 27200510 /lib/tls/i686/cmov/libm-2.6.1.so
b7eb2000-b7eb4000 rwxp 00023000 03:01 27200510 /lib/tls/i686/cmov/libm-2.6.1.so
b7eb4000-b7ec8000 r-xp 00000000 03:01 27200494 /lib/tls/i686/cmov/libpthread-2.6.1.so
b7ec8000-b7eca000 rwxp 00013000 03:01 27200494 /lib/tls/i686/cmov/libpthread-2.6.1.so
b7eca000-b7ecd000 rwxp b7eca000 00:00 0
b7ecd000-b7ed4000 r-xp 00000000 03:01 27200499 /lib/tls/i686/cmov/librt-2.6.1.so
b7ed4000-b7ed6000 rwxp 00006000 03:01 27200499 /lib/tls/i686/cmov/librt-2.6.1.so
b7ed6000-b7f97000 r-xp 00000000 03:01 13144384 /usr/lib/libasound.so.2.0.0
b7f97000-b7f9c000 rwxp 000c0000 03:01 13144384 /usr/lib/libasound.so.2.0.0
b7fa5000-b7faf000 r-xp 00000000 03:01 27197636 /lib/libgcc_s.so.1
b7faf000-b7fb0000 rwxp 0000a000 03:01 27197636 /lib/libgcc_s.so.1
b7fb0000-b7fb2000 rwxs 00000000 00:0e 15624 /dev/snd/pcmC0D0p
b7fb2000-b7fb3000 rwxs 81000000 00:0e 15624 /dev/snd/pcmC0D0p
b7fb3000-b7fb4000 r-xs 80000000 00:0e 15624 /dev/snd/pcmC0D0p
b7fb4000-b7fb6000 rwxp b7fb4000 00:00 0
b7fb6000-b7fd0000 r-xp 00000000 03:01 27200480 /lib/ld-2.6.1.so
b7fd0000-b7fd2000 rwxp 00019000 03:01 27200480 /lib/ld-2.6.1.so
bfe27000-bfe3c000 rw-p bfe27000 00:00 0 [stack]
ffffe000-fffff000 r-xp 00000000 00:00 0 [vdso]
Aborted (core dumped)

ralphy
2009-03-25, 04:19
Unfortunately squeezeslave doesn't support mono files in any format. Only 16bit 44.1KHz stereo streams, everything else needs to be transcoded on SC. Or as you have done, convert the file before added it to the library. Not sure but SC might be able to convert mono streams to stereo using sox on the fly.

I've had several discussions on how the 44.1KHz limitation could be removed, hadn't considered mono.....

Thanks for the excellent problem report. Sorry I don't have a better solution for you right now.

bulek
2009-03-28, 12:41
Unfortunately squeezeslave doesn't support mono files in any format. Only 16bit 44.1KHz stereo streams, everything else needs to be transcoded on SC. Or as you have done, convert the file before added it to the library. Not sure but SC might be able to convert mono streams to stereo using sox on the fly.

I've had several discussions on how the 44.1KHz limitation could be removed, hadn't considered mono.....

Thanks for the excellent problem report. Sorry I don't have a better solution for you right now.
Hi,

thanks for help. It seems this problem is solvable by trascoding files prior sending them to squeezeslave.

I've posted to generic forum, but haven't received any response yet :
http://forums.slimdevices.com/showthread.php?t=61783

Can anyone from squeezeslave users help me with setting up proper automatic conversion actions. No matter what I try, file doesn't get transcoded... I've searched Internet for such info, but couldn't find anything useful....

Thanks in advance,

regards,

Bulek.

nowork
2009-05-07, 12:15
Hi,

I'm having trouble listening to NPR Radio at 32kbps CBR with SqueezeSlave. The sound output is like "chimpunks." (Higher bitrate music plays fine).

I don't want to cross post (http://forums.slimdevices.com/showthread.php?t=63052) but I am trying to figure out if SqueezeSlave has near-term potential to be updated to play 32kbps CBR streams?

The rationale - more and more cheap, energy efficient boxes will be running linux squeezecenter headless installations. Local playback would be nice, as the onboard audio chip is usually included free on the motherboard.

SqueezeSlave seems the non-GUI way to go (instead of SoftSqueeze), but SqueezeSlave currently does not get along nicely with NPR. I don't have the talent/skills to fix SqueezeSlave.

Any other people willing to take on the task to give SqueezeSlave the smarts to deal with NPR at 32kbps CBR?

Thanks.