View Full Version : Announce: Alsa version of squeezeslave available

2008-11-04, 05:42
A version of squeezeslave compiled against alsa-lib 1.17a and portaudio snapshot from May 13, 2008 is available for testing on sourceforge. This release also supports OSS and if you have the alsa oss modules loaded you'll see as the final entry in the output devices list /dev/dsp. If you choose this device you'll be using aoss and not the native alsa devices.

This release contains changes to the command line parameter parsing and options. Run squeezeslave with -h for the current parameter options. Also the choosen output device is marked with an asterisk to the left of the device name. Please report any issues to this thread.

Thanks goes to KeyzerSuze for creating the portaudio v19 patch. I've integrated that patch. Squeezeslave can now be compiled against either v18 or v19 by adding a define at compile time. For more details see the ChangeLog file in the 0.8-20 source tarball.

The audio output via alsa through portaudio v19 is not as "smooth" as the older version. You might notice the occasional "drop out". KeyzerSuze had been working on this but I haven't heard of any progress as of late, so I've released this version to the community to help shake it down. The alternative is to remove the portaudio library from the linux version and add native alsa support, leaving the other versions to use the v18.1. This would be ideal for me as the new version no longer supports Solaris audio devices and Solaris SPARC on a Sun Ray is where I use squeezeslave the most.



2008-11-18, 14:05
I've found that the following change greatly reduces the number of audio "drop outs" in the alsa version. I hope to have an update available soon, but wanted to pass along this change for those who've compiled there own binaries.

Index: src/slimaudio/slimaudio_output.c
================================================== =================
--- src/slimaudio/slimaudio_output.c (revision 20)
+++ src/slimaudio/slimaudio_output.c (working copy)
@@ -208,7 +208,7 @@
outputParameters.device = audio->output_device_id;
outputParameters.channelCount = paDeviceInfo->maxOutputChannels >=2? 2 : paDeviceInfo->maxOutputChannels;
outputParameters.sampleFormat = paInt16;
- outputParameters.suggestedLatency = paDeviceInfo->defaultLowOutputLatency;
+ outputParameters.suggestedLatency = paDeviceInfo->defaultHighOutputLatency;
outputParameters.hostApiSpecificStreamInfo = NULL;

DEBUGF("paDeviceInfo->maxOutputChannels %i\n", paDeviceInfo->maxOutputChannels);

2008-11-19, 07:41

Thanks for the tip, that seems to have made a big difference.

As you seem to be maintaining squeezeslave these days, would you be interested in adding in my patch for (optional) text display/keyboard support under linux?

There is a patch (against 0.8.20) and some info on the thread:

Change summary is:
* ChangeLog, makefile.linux26-alsa-display, src/slimproto/slimproto.c,
src/squeezeslave/squeezeslave.c, config/.lircrc:
- Avoid recv error reading closed connection (in slimproto.c)
- Fixup USR1 handler to allow graceful quit if retry is not enabled
- Use signal to exit default (option removed)
- Supportvariable size text display and/or LCDd display
- Support keyboard control and/or lircd control
- In curses mode (--display) Esc and Q also quit
- USR2 signal can be used to toggle LCDd/lircd support on and off while squeezeslave is running. Useful to continue music while display/ir is used for something else.
- Audio device list is now available as a command line option (--list)
- Command line options have changed to support the above, see --help
- Increased version to 21.

2008-11-19, 08:18
I've merged your changes into my repository and posted a new binary for your alsa-display version r22 and the updated source tarball. The alsa-display tar file includes the SC patch and lirc config file as well. The binary includes the high latency patch listed above. Also added new non-display alsa version r22 with the high latency patch.


Thanks for the enhancement, that'll be great on my old squeezeslave laptop. I hope to get a chance to try out the display verson as soon as I get a chance upgrade my test server with the 7.2.1 patch.


2008-12-24, 06:52
I've been enjoying the new display functionality. It makes the old laptop more useful. I don't need to have a browser handy anymore.

I've attached a small patch that fixes a couple of things;

1. If I restart SC the squeezeslave player disappears until I press a key on the laptop. No longer blocks forever waiting for a keypress.
2. Added comma and period keys, no more need to hold the shift key to skip forward and backwards.
3. Removed a couple of annoying display messages, redirected others to stderr, which I redirect to a file when I start squeezeslave.

I'll add the patch to sourceforge as well.