PDA

View Full Version : [ANNOUNCE] SqueezePlay for Mac OSX



ralphy
2012-09-06, 10:27
I've created MacOS Squeezeplay builds (https://sourceforge.net/projects/lmsclients/files/squeezeplay/osx/) with the ability to select the output device and set the maximum sample rate.

7.8.0.r1149 - 20190516
7.8.0.r1101 - 20180524

SqueezePlay-ppc-7.8.0.dmg - Support for MacOS 10.3 - 10.6. Only tested on 10.4 intel rosetta. My powerpc macmini has been dead for a long time now.
SqueezePlay-i386-7.8.0.dmg - Support for MacOS 10.4 - 10.12
SqueezePlay-x86_64-7.8.0.dmg - Support for MacOS 10.7+. Includes fix for black square under mouse cursor.

See the commit history (https://github.com/ralph-irving/squeezeplay/commits/master) for changes.

This version plays 24/96 wave and flac files natively using LMS 7.9.0 or newer. The maximum sample rate can be set as high as 384000 in the USEPAMAXSAMPLERATE key, see below, but I haven't tested it, any value higher defaults to 384000.

Installation?

Mount the SqueezePlay-7.8.0r1149.dmg disk image file and drag the SqueezePlay.app icon to Applications.

How do I change the output device and/or maximum sample rate?

There's Flimflam's Automator method (http://forums.slimdevices.com/showthread.php?96328-ANNOUNCE-SqueezePlay-for-Mac-OSX&p=752180&viewfull=1#post752180) to create a wrapper app to include setting the environment variables.

Also see Nonnoroger's post #11 (http://forums.slimdevices.com/showthread.php?96328-ANNOUNCE-SqueezePlay-for-Mac-OSX&p=716496&viewfull=1#post716496) for a work around to the environment.plist support removal from 10.8.

For 10.6 and 10.7 you can create a file called environment.plist in your home directory in the .MacOSX folder.

You may need to create the .MacOSX folder. So the full path to my file is

/Users/ralphy/.MacOSX/environment.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>USEPADEVICE</key>
<string>Sennheiser USB Headset</string>
<key>USEPAMAXSAMPLERATE</key>
<string>96000</string>
<key>USEPAPLAYNICE</key>
<string>1</string>
<key>SDL_VIDEO_ALLOW_SCREENSAVER</key>
<string>1</string>
</dict>
</plist>


For 10.8+ use should use launchctl from the Terminal app.

Here's how to enable USEPAPLAYNICE.

Set the variable value to 1 (true).


sudo launchctl setenv USEPAPLAYNICE "1"

Confirm the variable has been set.


sudo launchctl getenv USEPAPLAYNICE
1



To obtain the list of available output devices that can be used for the USEPADEVICE key you can download squeezelite for OSX dmg (https://sourceforge.net/projects/lmsclients/files/squeezelite/osx/intel/), install in /Applications and run squeezelite with the -l option.


$ /Applications/Squeezelite.app/Contents/MacOS/Squeezelite -l
Output devices:
1 - Built-in Output [Core Audio]
2 - HDMI [Core Audio]
3 - Sennheiser USB Headset [Core Audio]

You can see how I obtained the exact match for my Headset.

Once you've finished editing the environment.plist file you MUST logout and log back in before the keys will be available to SqueezePlay. You can check if the values have been set from the Terminal App.


$ set | grep -i usepa
USEPADEVICE='Sennheiser USB Headset'
USEPAMAXSAMPLERATE=96000

Source code is available on github (https://github.com/ralph-irving/squeezeplay).

Builds are available on sourceforge (https://sourceforge.net/projects/lmsclients/files/squeezeplay/osx).

nonnoroger
2012-09-06, 13:45
I've created an OSX i386 and x86_64 only build with the ability to select the output device and set the maximum sample rate.

...

Hopefully this works for the Mountain Lion folks to override the new AirPlay default output devices.

Many thanks for this. I have been trying it under ML (which by the way is now on 10.8.1 so is no longer a .0 release). Sorry to say that it still sends output to Airplay (very quietly) despite the environment variable settings. I tried with Built-in Output.

I will double-check tomorrow that I have the set-up and definitions right. Anyone else been trying?

I don't know if this is related, but Rogue Amoeba's SoundSource, which I used quite happily under Lion, is marked by them as not compatible with Mountain Lion.

pippin
2012-09-06, 14:06
@ralphy

You might want to have a look at this:
http://joris.kluivers.nl/blog/2012/07/25/per-application-airplay-in-mountain-lion/

nonnoroger
2012-09-07, 06:04
Ralphy

I set the needed environment variable using export from the command line and then ran your Squeezeslave using the open command.

Hey presto - sound output to Built-in Output as I had specified.

I checked my environment.plist with the XCode property list editor and there were no problems. So a little digging around led to this result that came from from the Developer Forums:

===========
Change the Info.plist of the .app itself to contain an "LSEnvironment" dictionary with the environment variables you want.
~/.MacOSX/environment.plist is no longer supported.
===========

So a bit more work for 10.8 support I am afraid.

nonnoroger
2012-09-07, 06:11
A bit more on this from the Developer site (the LS stands for Launch Services - launchd):

=============
LSEnvironment

LSEnvironment (Dictionary - OS X) defines environment variables to be set before launching this app. The names of the environment variables are the keys of the dictionary, with the values being the corresponding environment variable value. Both keys and values must be strings.

These environment variables are set only for apps launched through Launch Services. If you run your executable directly from the command line, these environment variables are not set.
=============

For now, I will use a shell script to export the variables and open the app.

ralphy
2012-09-07, 06:32
Thanks for tracking this down.

I should have known to check if the environment.plist file was still supported in Mountain Lion. Part of the reason I haven't upgraded is Apple keeps "dumbing down" OSX with every release.

Could you post your startup script so everyone can benefit?

nonnoroger
2012-09-07, 06:55
Could you post your startup script so everyone can benefit?

From a terminal command line, create runPlayer containing the three lines (assuming the app itself is in your own Applications folder):

export USEPADEVICE="Built-in Output"
export USEPAMAXSAMPLERATE=9600
open ~/Applications/SqueezePlay.app

Then make the script executable with the command:

chmod +x runPlayer

If you are familiar with the command line environment, you could put runPlayer in your /usr/local/bin folder where it should be found whatever your directory as just

runPlayer

Otherwise, from the directory you created it, type

./runPlayer


As soon as I get time I will try creating the suggested dictionary for environment variables in the Info.plist for the app.

ralphy
2012-09-07, 07:10
export USEPAMAXSAMPLERATE=9600

As soon as I get time I will try creating the suggested dictionary for environment variables in the Info.plist for the app.

I think this should be export USEPAMAXSAMPLERATE=96000

Once you've tested the Info.plist PM me the details and I should be able to add it to my build script.

mbonsack
2012-09-07, 09:46
This version plays 24/96 wave and flac files natively using the latest LMS 7.8.0 nightly.

Does this *require* 7.8.0 LMS, or will 7.7.2 suffice?

Thanks! -mark

ralphy
2012-09-07, 11:41
Does this *require* 7.8.0 LMS, or will 7.7.2 suffice?

Thanks! -mark

7.7.2 is fine.

I've tested 24/96 with this version as far back as 7.6.2 any sample rate higher than 96000 requires a 7.8.0 nightly.

nonnoroger
2012-09-08, 03:21
In case anyone finds it useful, here is the script I have developed to start ralphy's OSX version of SqueezePlay from the command line, setting environment variables as needed.

Setting the needed environment variables is needed for Mountain Lion but the script should also give more ease and flexibility for previous versions of OSX.

The script assumes that squeezeslave for OSX is in the shell's command search path. I put in /usr/local/bin as squeezeslave.

Also still assuming SqueezePlay is under Applications in your home directory.

The sed mangling in the script copes with output from squeezeslave -L like mine:


Output devices:
0: (Core Audio) AirPlay (2001/2011)
* 3: (Core Audio) Built-in Output (3/13)
4: (Core Audio) Soundflower (2ch) (1/11)
5: (Core Audio) Soundflower (64ch) (1/11)
6: (Core Audio) Aggregate Device (3/13)

You can select which Airplay device will be used from Audio Midi Setup's Audio devices window (without setting Airplay as the default output). I had to put up the volume level for Airplay in that window to get a decent sound level.
SqueezePlay was not sending to only one device from the Aggregate Device I tried building there.

I call my script squeezePlay and also placed it in /usr/local/bin. By default it sets the max rate to 96Khz. Give the -s option to the script to select another.
Airplay uses 44.1KHz but leaving at the default is fine.

------------snip--------------------------
#!/bin/bash
# default max sampling rate is 96000
rate=96000
rates=(44100 48000 96000 192000)
choices=(44.1kHz 48kHz 96kHz 192kHz)

# if -s argument given to script, prompt for selection from the common rates

if [ "$1" == -s ]
then echo "Type the number of the max rate to use:"
select choice in ${choices[@]}
do
if [ -z $choice ]
then
echo try again
else
rate=${rates[$((REPLY-1))]}
echo Using ${choices[$((REPLY-1))]}
break
fi
done
fi
echo $rate
echo "Type the number of the device to use:"
IFS=$'\n'
select device in `squeezeslave -L | sed -e 1d -e 's/.*Audio) //' -e 's/ ([0-9]*\/[0-9]*)$//'`
do
if [ -z $device ]
then
echo try again
else
echo $device
break
fi
done
unset IFS
export USEPADEVICE=$device
export USEPAMAXSAMPLERATE=$rate
open ~/Applications/SqueezePlay.app
------------snip--------------------------

ralphy
2012-09-08, 04:56
Thank you for putting the script together. I've updated the announcement post as well.

nonnoroger
2012-09-08, 10:12
Thank you for putting the script together. I've updated the announcement post as well.

And many thanks for the new functionality - it is already proving very useful.

I do think the script would also be useful for versions before ML where users need to change devices often.

BTW Once you are happy it is working, you can rename it with a .command extension. You will then be able to run it by double-clicking it in Finder. You will then also want to to go to Terminal Preferences, Settings, Shell tab, and set When the shell exits to Close if the shell exited cleanly. Either change the default rate in the script to your needs, or edit the script so it always prompts for the rate (as the script will run without the -s option).

mherger
2012-09-09, 21:54
> It is based on the 7.8 branch Jul 17, 2012 git check in which I've
> exported back to subversion as I really dislike git.

What a pity (but trust me: git and I aren't friends yet either :-)). How
much of a patch would this be to be merged back?

--

Michael

ralphy
2012-09-10, 04:53
> It is based on the 7.8 branch Jul 17, 2012 git check in which I've
> exported back to subversion as I really dislike git.

What a pity (but trust me: git and I aren't friends yet either :-)). How
much of a patch would this be to be merged back?

--

Michael
The entire delta since the git export is 17M and includes support for Solaris SPARC, OpenIndiana Intel and ASIO/WASAPI for Windows. I had to update to SDL-1.2.15 as 1.2.13 wouldn't compile on OSX and it fixes video "flashing" on Solaris and Linux. Portaudio to now at the latest svn trunk, I added a newer zlib and included portaudio v18 support for Solaris.

The OSX changes are relatively small except for SDL 1.2.15.

If adding SDL 1.2.15 is not an issue, I'd be happy to spin a "mostly" osx only patch, including the device selection through environment variables and a few endianess bug fixes and such that I've fixed.

gmudunuri
2012-09-23, 08:16
I've created an OSX i386 and x86_64 only build with the ability to select the output device and set the maximum sample rate.

It is based on the 7.8 branch Jul 17, 2012 git check in which I've exported back to subversion as I really dislike git.

The OSX intel port (http://squeezeslave.googlecode.com/files/SqueezePlay-7.8.0r142.dmg) has been tested with 10.6 and 10.7. Forum members have reported this build works with Mountain Lion as well. See Nonnoroger's post #11 (http://forums.slimdevices.com/showthread.php?96328-ANNOUNCE-SqueezePlay-for-Mac-OSX&p=716496&viewfull=1#post716496) for a work around to the environment.plist support removal from 10.8.

This version plays 24/96 wave and flac files natively using the latest LMS 7.8.0 nightly. The maximum sample rate can be set as high as 192000 in the USEPAMAXSAMPLERATE key, see below, but I haven't tested it, any value higher defaults to 192000.
................



Hey Ralphy,

Thanks for making this! Until now, other solutions for streaming music from my ReadyNAS/LMS to my Mac were not as satisfactory. Just curious, why can't SqueezePlay automatically pick up the current default output device (just like every other app) instead of having to specify one through an environment variable? I have the same question about the max sample rate - I realize this might be harder to automate.

Anyway, these are very minor and I am very happy with your solution!

kimchee411
2012-10-25, 20:14
ralphy, you are AWESOME! I have always run into problems trying to compile Squeezeplay with selectable output option, so I ended up just physically disconnecting onboard audio from my Mac Mini to get sound from my external output device. Now I can watch videos through my TV speakers without having to power up my tube amps. This is so great; can't wait to get home!

ralphy
2012-11-09, 08:17
New version r158 available on googlecode (http://squeezeslave.googlecode.com/files/SqueezePlay-7.8.0r158.dmg) which automatically uses the default sound device from system preferences, if both the USEPADEVICE and USEPAHOSTAPI environment variables are NOT set. See post#1 for details.

nonnoroger
2012-11-09, 09:33
New version r158 available on googlecode (http://squeezeslave.googlecode.com/files/SqueezePlay-7.8.0r158.dmg) which automatically uses the default sound device from system preferences, if both the USEPADEVICE andUSEPAHOSTAPI environment variables are NOT set. See post#1 for details.

This is a really useful and helpful update - many thanks Ralphy. Working fine under 10.8.2.

Much less need for my script now.

SamS
2012-11-10, 07:40
You rock, rahlpy! Working great here on 10.8.2.

dsdreamer
2012-11-10, 17:25
Works great! Thanks for doing this, ralphy.

chill
2012-11-11, 02:14
New version r158 available on googlecode (http://squeezeslave.googlecode.com/files/SqueezePlay-7.8.0r158.dmg) which automatically uses the default sound device from system preferences, if both the USEPADEVICE and USEPAHOSTAPI environment variables are NOT set. See post#1 for details.

Ralphy

Perfect! My Mac mini is connected via USB to the same DAC that I use for my Touch. When the DAC isn't powered up the default sound output reverts to some other device, but when I power up the DAC it switches over automatically. Restarting Squeezeplay is then all it takes for it to pick up the new default output device.

This one change is enough to make this mainstream now in my opinion. A simple standalone app with no need for tweaking anything. Great work.

Switching back and forth between Squeezeplay and a synced Touch they're indistinguishable. Kind of makes the Touch redundant now, since my Mac is always on and runs my LMS. I guess the only possible inconvenience is the fact that the Mac runs headless, and I need to fire up a VNC viewer to go in and restart Squeezeplay each time the DAC is powered up. Any chance you could make Squeezeplay poll for the current default output device and follow it, rather than just latching on to it at startup? That way I could just leave it running.

ralphy
2012-11-11, 06:12
Ralphy
Any chance you could make Squeezeplay poll for the current default output device and follow it, rather than just latching on to it at startup? That way I could just leave it running.

No, since that would require changing the design of squeezeplay. Don't forget it's the same code as runs on the touch and radio.

Nikhil
2012-11-12, 04:33
SqueezePlay was the only thing holding me back from installing my free ML upgrade on my mid 2012 MacBookPro. Thanks for this. Works great.

NasDonkey
2012-11-27, 03:04
After a few weeks without any problems i would like to thank you!
You made my music collection so much easier to use on my iMac.
You did a GREAT job with which i'm happy with every day.

Don

lopasilver
2013-01-01, 10:32
Very useful for me, as I had trouble to set up SqueezeSlave to digital output...
Works perfectly with ma SQ Radio and Touch on LMS w/Synology

Philippe
France

PMusic
2013-01-02, 14:16
Very useful for me, as I had trouble to set up SqueezeSlave to digital output...
Works perfectly with ma SQ Radio and Touch on LMS w/Synology

Philippe
France

Works as well perfectly for me on Mac mini and ML....however after installing the 158.dmg package, the sampling rate of my MuFi VLink 192 XMos converter displays always a 192KHz sample rate, independently of the source FLAC being streamed (I've tried with 44.1, 88,2 and 96), is this a normal behavior? Or is the Mac simply upsampling everything to 192KHz ?

Remark: I didn't set any environment variable, just selected the VLink 192 as default output in OSX Sound Preferences...(LMS is latest nightly 7.8.x)

Thanks for your advises,
Philippe

Triode
2013-01-02, 14:25
Works as well perfectly for me on Mac mini and ML....however after installing the 158.dmg package, the sampling rate of my MuFi VLink 192 XMos converter displays always a 192KHz sample rate, independently of the source FLAC being streamed (I've tried with 44.1, 88,2 and 96), is this a normal behavior? Or is the Mac simply upsampling everything to 192KHz ?

Remark: I didn't set any environment variable, just selected the VLink 192 as default output in OSX Sound Preferences...(LMS is latest nightly 7.8.x)

Thanks for your advises,
Philippe

I've found that port audio defaults to opening the device in shared mode which means OSX resamples everything. I've been experimenting with setting this to pro mode which seems to turn this off. I've got an early demo build of squeezelite which does this if you want to prove that this is the issue (see squeezelite thread on linux forum)

ralphy
2013-01-03, 04:42
Works as well perfectly for me on Mac mini and ML....however after installing the 158.dmg package, the sampling rate of my MuFi VLink 192 XMos converter displays always a 192KHz sample rate, independently of the source FLAC being streamed (I've tried with 44.1, 88,2 and 96), is this a normal behavior? Or is the Mac simply upsampling everything to 192KHz ?

Remark: I didn't set any environment variable, just selected the VLink 192 as default output in OSX Sound Preferences...(LMS is latest nightly 7.8.x)

Thanks for your advises,
Philippe
The 158 package included an updated version of the portaudio library.

Can you confirm that the previous 142 package (http://squeezeslave.googlecode.com/files/SqueezePlay-7.8.0r142.dmg) opens the device to match the source file sample rate?

bengaldave
2013-01-03, 09:38
Hello,

I am unable to install applets on squeezeplay on the mac.

I just downloaded and installed version 7.8.0 r158

The menu choice for
settings->advanced->Applet Installer

When I click, I can see the button depressing, but nothing happens.

I am still new to squeezebox, plugins and applets.

What is the difference between installing the applet on using the web interface on the server, and installing the applet from a menu on one of the squeezebox clients?

Triode
2013-01-03, 10:25
Hello,

I am unable to install applets on squeezeplay on the mac.

I just downloaded and installed version 7.8.0 r158

The menu choice for
settings->advanced->Applet Installer

When I click, I can see the button depressing, but nothing happens.

I am still new to squeezebox, plugins and applets.

What is the difference between installing the applet on using the web interface on the server, and installing the applet from a menu on one of the squeezebox clients?

Afraid applet installer was never able to install on anything other than a real squeezebox device.

PMusic
2013-01-03, 15:46
The 158 package included an updated version of the portaudio library.

Can you confirm that the previous 142 package (http://squeezeslave.googlecode.com/files/SqueezePlay-7.8.0r142.dmg) opens the device to match the source file sample rate?

In fact I didn't use the 142 package as I just recently migrated from Squeezeboxes to Mac Mini with an external DAC to be able to play hi-res files from Qobuz or HDTracks....so I do not know about the previous behavior of this package.

The only thing is that I don't know anything about the Mac's OSX up-sampling algorithm, and whether it is better than the one in my DAC or not, at least from a pure subjective listening, it doesn't sound worse 😉

However, if the direct throughput would be available, it would be worth testing it...

Philippe

ralphy
2013-01-06, 08:55
In fact I didn't use the 142 package as I just recently migrated from Squeezeboxes to Mac Mini with an external DAC to be able to play hi-res files from Qobuz or HDTracks....so I do not know about the previous behavior of this package.

The only thing is that I don't know anything about the Mac's OSX up-sampling algorithm, and whether it is better than the one in my DAC or not, at least from a pure subjective listening, it doesn't sound worse

However, if the direct throughput would be available, it would be worth testing it...

Philippe

I've built r192 which enables the coreaudio pro mode Triode mentioned.

My receiver now shows the sample rate changing when the source file sample rate changes. With r158 the rate never changed.

I'm using an optical cable from the mac to receiver.

I can also play DTS encapulated flac files with r192, which didn't work for me in the previous versions.

See post#1 in this thread for download details.

PMusic
2013-01-06, 12:42
I've built r192 which enables the coreaudio pro mode Triode mentioned.

My receiver now shows the sample rate changing when the source file sample rate changes. With r158 the rate never changed.

I'm using an optical cable from the mac to receiver.

I can also play DTS encapulated flac files with r192, which didn't work for me in the previous versions.

See post#1 in this thread for download details.


Just, downloaded and installed the r192...first of all thank you, yes it does change according to incoming file sampling rate, however it is fine up to 48KHz but doesn't go above. I've tested with two different true 24/96 FLAC files but my DAC is then showing 24/48 only, any thoughts?

Perhaps it's like with Squeezeboxes and how LMS is seeing them, Squeezebox Receiver goes up to 24/48 and Touch goes up to 24/96, so I don't know if SqeezePlay's signature is know by LMS for the MaxSampleRate?

ralphy
2013-01-06, 12:58
Just, downloaded and installed the r192...first of all thank you, yes it does change according to incoming file sampling rate, however it is fine up to 48KHz but doesn't go above. I've tested with two different true 24/96 FLAC files but my DAC is then showing 24/48 only, any thoughts?

Perhaps it's like with Squeezeboxes and how LMS is seeing them, Squeezebox Receiver goes up to 24/48 and Touch goes up to 24/96, so I don't know if SqeezePlay's signature is know by LMS for the MaxSampleRate?

You have to set the USEPAMAXSAMPLERATE environment variable for rates higher than 48000.

There was a script created earlier in this thread for Mountain Lion. Post #1 describes how to do it for Snow Leopard and Lion.

PMusic
2013-01-06, 15:56
You have to set the USEPAMAXSAMPLERATE environment variable for rates higher than 48000.

There was a script created earlier in this thread for Mountain Lion. Post #1 describes how to do it for Snow Leopard and Lion.

Fine, I made the script which runs fine on ML, however how can I make the script to be launched automatically when starting the Mac? (The Mac is headless, so I need to launch a VNC to connect on it)

ralphy
2013-01-07, 04:56
Fine, I made the script which runs fine on ML, however how can I make the script to be launched automatically when starting the Mac? (The Mac is headless, so I need to launch a VNC to connect on it)
Does that mean you can play your hires files now?

I have no idea about the script.

I use the environment.plist method and I don't have access to ML.

Perhaps you should post your question on a mac users forum.

chill
2013-01-07, 06:14
Fine, I made the script which runs fine on ML, however how can I make the script to be launched automatically when starting the Mac? (The Mac is headless, so I need to launch a VNC to connect on it)

You can set apps to run automatically when a user logs in. Not sure about scripts - presumably they can be set to run at login too. I don't know how to set apps to run at boot, without a user logging in, but if you have a default user set to login at boot then any login items for that user will run after a reboot.

To set a default user go to 'System Preferences' -> 'Users & Groups', and select 'Login Options' at the bottom of the left hand panel. Then select a user from the drop down list next to 'Automatic login:' in the right-hand panel.

To set an app to run at login, go to 'System Preferences' -> 'Users & Groups', select a user in the left hand panel, and then select the 'Login Items' tab in the right hand panel. You'll see a list of programs that run whenever that user logs in, and you can add and remove items in that list.

PMusic
2013-01-07, 14:57
You can set apps to run automatically when a user logs in. Not sure about scripts - presumably they can be set to run at login too. I don't know how to set apps to run at boot, without a user logging in, but if you have a default user set to login at boot then any login items for that user will run after a reboot.

To set a default user go to 'System Preferences' -> 'Users & Groups', and select 'Login Options' at the bottom of the left hand panel. Then select a user from the drop down list next to 'Automatic login:' in the right-hand panel.

To set an app to run at login, go to 'System Preferences' -> 'Users & Groups', select a user in the left hand panel, and then select the 'Login Items' tab in the right hand panel. You'll see a list of programs that run whenever that user logs in, and you can add and remove items in that list.

Thank you to both of you...the app plays now perfectly and starts at session opening...😉

PMusic
2013-01-11, 15:27
Thank you to both of you...the app plays now perfectly and starts at session opening...

After a few days of testing, I noticed the following:

When the Mac mini is shut down via the Finder Shutdown menu, everything will be fine after the next reboot.

If I remotely shutdown the Mac mini via my IPad using OffRemote or iShutdown, SqueezePlay will restart normally on the next reboot, however being limited to only 24/48 while selecting a 24/96 file.

I repeated this sequence several times and it behaves steadily....only a "manual OS reboot" will bring the situation to a normal state.

Is it that those helper are not shutting down the system properly, any idea?

ralphy
2013-05-23, 04:51
Hello,

I am unable to install applets on squeezeplay on the mac.

I just downloaded and installed version 7.8.0 r158

The menu choice for
settings->advanced->Applet Installer

When I click, I can see the button depressing, but nothing happens.

I am still new to squeezebox, plugins and applets.

What is the difference between installing the applet on using the web interface on the server, and installing the applet from a menu on one of the squeezebox clients?
Afraid applet installer was never able to install on anything other than a real squeezebox device.

The applet installer is now functional in the 7.8.0 r242 osx build (http://squeezeslave.googlecode.com/files/SqueezePlay-7.8.0r242.dmg). Thanks to Michael for pointing out the error.


ERROR squeezeplay.applets - AppletManager.lua:473
Error while loading applet SetupAppletInstaller:error loading module 'sha1' from file
'/Applications/SqueezePlay.app/Contents/lib/lua/5.1/sha1.so': file is not a bundle


Both sha1.so and md5.so were built as shared libraries in r192 both are now bundles in r242.

flimflam
2013-06-16, 15:30
Ralphy

Thank you very much for this Squeezeplay build.

I am enjoying the ability to select the output device - fantastic.

However, I find that I cannot get the max sample rate with core audio pro mode to work nicely. For example, if the max sample rate is set to 96000, then a 96khz track will play fine if left untouched - but, whenever I seek within a track or change track, there are audible clicks or crackles. On opening OS X Audio MIDI setup, I found the cause - the sample rate is rapidly switching to 44100 then back again when doing these tasks. Even when switching to a 44.1k track, the sample rate switches back and forth between 44100 and the previous track's sampling rate before playing.

I checked this wasn't a system issue by trying the audio player Audirvana (which uses a similar core audio pro mode to autoswitch sample rate) and this switches and seeks between tracks of different sample rates seamlessly.

Perhaps this is a Squeezeplay issue that is insurmountable? Thanks (I am using 7.8.0 r242 on OS X Mountain Lion)

ralphy
2013-06-17, 04:34
I experience the same issue using an optical cable from the built-in output on my mini to the receiver.

Start by turning off sound effects in squeezeplay Settings->Audio Settings->Sound Effects->None

This fixes the constant switching back to 44100, at least for me, when natigating in squeezeplay on OSX.

I've also added the ability in r247 (http://squeezeslave.googlecode.com/files/SqueezePlay-7.8.0r247.dmg) to use Core Audio Play Nice mode if the USEPAPLAYNICE environment variable is defined .

Doing this causes resampling within Core Audio for the selected output device.

flimflam
2013-06-17, 15:07
Start by turning off sound effects in squeezeplay Settings->Audio Settings->Sound Effects->None

This fixes the constant switching back to 44100, at least for me, when natigating in squeezeplay on OSX.

Hi, unfortunately this doesn't fix it for me (I had in fact already disabled sound effects). I have a couple of different pro audio interfaces and, as well as the built-in output, these still all suffer audible noises (I guess due to a rapid change of attempted sample rate lock by the DAC) when navigating >44.1k tracks, with corresponding 44100 switching observed.


I've also added the ability in r247 (http://squeezeslave.googlecode.com/files/SqueezePlay-7.8.0r247.dmg) to use Core Audio Play Nice mode if the USEPAPLAYNICE environment variable is defined .

Doing this causes resampling within Core Audio for the selected output device.

Thank you so much, you have pre-empted my request - this opens up more options to avoid the noises than just downsampling server side to 44.1k. I have downloaded and am using it fine. I wasn't sure how to define the variables though - I thought I should keep USEPAMAXSAMPLERATE=96000 (in my case) in order for the server-client side of things, and for USEPAPLAYNICE I put 96000, although maybe any value works?

ralphy
2013-06-17, 16:14
Thank you so much, you have pre-empted my request - this opens up more options to avoid the noises than just downsampling server side to 44.1k. I have downloaded and am using it fine. I wasn't sure how to define the variables though - I thought I should keep USEPAMAXSAMPLERATE=96000 (in my case) in order for the server-client side of things, and for USEPAPLAYNICE I put 96000, although maybe any value works?

Yes, you can keep USEPAMAXSAMPLERATE and you can use any value for USEPAPLAYNICE as I only check if the variable is set.

dgcrane
2013-07-11, 16:42
Hello,

I am having my first experience with a Mac for a media server I am trying to set up. Its going very well so far and working 98.5 % of the way I hoped for but I am hoping for some help with the last little bit.

I have been trying to make my first shell script to do what I am doing manually in the terminal. I assumed it could be like a bat file and just click on it and it would execute my three little lines

#!/bin/bash
export USEPADEVICE="XMOS USB 2.0 Audio Out"
export USEPAMAXSAMPLERATE=192000
open ~/Applications/SqueezePlay.app
exit

It works perfectly when I type it manually into the terminal.

I am running a headless 10.6.8 and I have saved these lines a file called SqueezePlay.sh under my home directory.

Obviously, I got some problems, cause instead of executing, I get this :
Last login: Thu Jul 11 15:43:03 on ttys000

mac-mini:~ gena_mak$ ./SqueezePlay
./SqueezePlay: line 1: {rtf1ansiansicpg1252cocoartf1038cocoasubrtf360: command not found
./SqueezePlay: line 2: syntax error near unexpected token `}'
./SqueezePlay: line 2: `{\fonttbl\f0\fswiss\fcharset0 Helvetica;}'

I tried putting the same information into an applescript and that didn't work out very well either LOL

Thanks for any guidance you could give...

ps - Thanks to all of the information I have received from Ralphy to get high res music running so far......

Darren

flimflam
2013-07-12, 19:29
I have been trying to make my first shell script to do what I am doing manually in the terminal. I assumed it could be like a bat file and just click on it and it would execute my three little lines

Hi Darren

Let me offer you a solution.

Load Automator in Applications. Choose 'Application' for your new document. Type into the search actions box: 'run shell script'.

Type in the script:

export USEPADEVICE="XMOS USB 2.0 Audio Out"
export USEPAMAXSAMPLERATE=192000
open /Applications/SqueezePlay.app

Save the file. It is now an application like any other - you can double-click to run, put it on the dock, etc. To give it the Squeezeplay icon, locate the real Squeezeplay in Finder and select Get Info - click on the icon to highlight it, then copy and paste it into the Get Info of your newly created app.

hope this helps you achieve what you wanted
ff

dgcrane
2013-07-19, 10:13
Thank you very much... I am now the very happy owner of a mac mini running squeezeplay :)

It works better than I hoped for....

Darren






Hi Darren

Let me offer you a solution.

Load Automator in Applications. Choose 'Application' for your new document. Type into the search actions box: 'run shell script'.

Type in the script:

export USEPADEVICE="XMOS USB 2.0 Audio Out"
export USEPAMAXSAMPLERATE=192000
open /Applications/SqueezePlay.app

Save the file. It is now an application like any other - you can double-click to run, put it on the dock, etc. To give it the Squeezeplay icon, locate the real Squeezeplay in Finder and select Get Info - click on the icon to highlight it, then copy and paste it into the Get Info of your newly created app.

hope this helps you achieve what you wanted
ff

ralphy
2013-11-16, 12:56
I've uploaded a new OSX squeezeplay r328 package (http://squeezeslave.googlecode.com/files/SqueezePlay-7.8.0r328.dmg).

See the first post in this thread for details.

SamS
2013-12-07, 13:42
I've uploaded a new OSX squeezeplay r328 package (http://squeezeslave.googlecode.com/files/SqueezePlay-7.8.0r328.dmg).

See the first post in this thread for details.

Sorry for the dumb question. Will this new build resolve the issue of "no Squeezeplay audio output to a USB device"? Or do I need to do some of those manual steps referenced earlier in this thread? I did read the first post, just still confused :)

ralphy
2013-12-08, 05:26
Sorry for the dumb question. Will this new build resolve the issue of "no Squeezeplay audio output to a USB device"? Or do I need to do some of those manual steps referenced earlier in this thread? I did read the first post, just still confused :)

If the USB device is the default output device in system preferences then squeezeplay will use it without any further changes, otherwise you need to get your hands dirty with a little scripting.

SamS
2013-12-08, 06:54
If the USB device is the default output device in system preferences then squeezeplay will use it without any further changes, otherwise you need to get your hands dirty with a little scripting.

I just tried it, and it works! This is great, and solved a really big problem for me. Thank you ralphy for this great work :)

ralphy
2014-06-24, 04:24
New squeezeplay osx builld 7.8.0r431 now available on mediafire (https://www.mediafire.com/folder/4q8dvq20iyz9e/Builds).

See post#1 for details.

ralphy
2014-06-24, 04:29
I've put together an experimental osx x86_64 jivelite build. It's available in the Jivelite/osx folder on mediafire (https://www.mediafire.com/folder/4q8dvq20iyz9e/Builds).

View the jivelite-0.1.readme file in that folder for install details.

ericj
2014-06-29, 12:54
I've put together an experimental osx x86_64 jivelite build. It's available in the Jivelite/osx folder on mediafire (https://www.mediafire.com/folder/4q8dvq20iyz9e/Builds).

View the jivelite-0.1.readme file in that folder for install details.

Thanks....works very well so far indeed. I very much appreciate it having spent a lot of time trying to build myself.
Eric

sbb
2014-07-05, 09:23
just a quick word to thank you for keeping working on squeezeplay, your work is very appreciated!

grum
2014-08-17, 16:02
Yes, another vote of thanks from me too. Just upgraded my Mac Mini from Snow Leopard to Mavericks. No sound from Squeezeplay...hadn't upgraded it or paid any attention to it for years, it just worked! Quick google, find this thread, update to latest, working perfectly.

Well done Ralphy and please keep up your good work, it is much appreciated.

lopasilver
2014-08-23, 10:09
I'm stuck with release v158, all newer Squeezeplay versions play music at slow motion !
[maybe because of LMS v. 7.7.3 running on Synology server]

lamp
2014-11-04, 13:22
Another words of Thanks! I installed it on my Yosemite-upgraded 2012 Macbook 13 Retina. It plays nicely on my Jawbone Big Jambox via Bluetooth (though there are some delayed bluetooth audio streaming bug on Yosemite from time to time), and the SqueezePlay synced with my Touch, Boom and Radio, running Logitech Media Server Ver 7.9.0 1414578742

doncmdr
2014-11-16, 10:47
I am trying to download the lastest Squeezeplay for OS X.
The Mediafire link is not working for me.
Did someone already download and can share his version?
Is there another way to get squeezeplay for osx?

tfec
2014-11-17, 10:20
Is there another way to get squeezeplay for osx?
Yes, there is: https://code.google.com/p/squeezeslave/downloads/detail?name=SqueezePlay-7.8.0r328.dmg

ralphy
2014-11-18, 06:54
I am trying to download the lastest Squeezeplay for OS X.
The Mediafire link is not working for me.
Did someone already download and can share his version?
Is there another way to get squeezeplay for osx?

What link are you using? What error(s) do you see?

The squeezebox client builds link in my signature appears to be working. Then click on SqueezePlay->osx->SqueezePlay-7.8.0r431.dmg

Glatzi
2014-11-19, 03:37
What link are you using? What error(s) do you see?

The squeezebox client builds link in my signature appears to be working. Then click on SqueezePlay->osx->SqueezePlay-7.8.0r431.dmg

It seems that Mediafire is broken with Google Chrome at the moment. Download window seems to be loading forever. Tried it again with Firefox & download succeeded.

doncmdr
2014-11-21, 13:41
Thanks, I managed to download r431 from Mediafire.
It took forever to load, but eventually it worked. :)

ralphy
2015-01-23, 07:25
A new build of squeezeplay is available which fixes a few minor issues and patches the known security vulnerabilities in the flac 1.2.1 decoder.

See post #1 in this thread for details.

ralphy
2015-09-26, 05:13
A new build of squeezeplay is available which includes an updated JogglerSkin.

See post #1 in this thread for download details. This jivelite post (http://forums.slimdevices.com/showthread.php?103330-Jivelite-for-piCorePlayer&p=827507&viewfull=1#post827507) has some screen shots.

If you don't use the Joggler Skin there's no reason to download r639.

ralphy
2016-04-11, 04:21
A new build of squeezeplay is available which includes these changes;

Update portaudio library to r1967.
Always start at the first item in the lms 7.9 Random Albums menu.
Add alternatives for common control buttons avoiding keyboard modifiers.
Fix jivelite JogglerSkin NowPlaying Text Only title overwriting progress counter.
Add support for changing the framerate with JIVE_FRAMERATE environment variable.
Valid rates are even numbers between 4 and 60, default is 22.
Add JogglerSkin support to SetupWallpaper applet.
Fix squeezeplay display fade transitions failing with an error.
Fix the Quit menu to exit when pressed.
Reenable playSound in SlimBrowserApplet.lua

See post #1 in this thread for download details.

Diana
2016-04-11, 07:37
A new build of squeezeplay is available which includes these changes...

Thanks very much for all your work on this, Ralphy. It's very elegant! :)

Osamede
2016-04-12, 00:26
Thanks very much for all your work on this, Ralphy. It's very elegant! :)

Well put!

That said mediafire seems to want to put like 20 scripts on my browser. Some of them alarming in their irrelevance to the task at hand. Is there an alternate source to download Squeezeplay?

ralphy
2016-05-28, 04:47
Well put!

That said mediafire seems to want to put like 20 scripts on my browser. Some of them alarming in their irrelevance to the task at hand. Is there an alternate source to download Squeezeplay?

Squeezeplay for OSX intel is now also available for download from sourceforge (https://sourceforge.net/projects/lmsclients/files/squeezeplay/osx/).

Osamede
2016-05-29, 02:24
Squeezeplay for OSX intel is now also available for download from sourceforge (https://sourceforge.net/projects/lmsclients/files/squeezeplay/osx/).

Thanks!

mbonsack
2016-05-30, 21:38
Squeezeplay for OSX intel is now also available for download from sourceforge (https://sourceforge.net/projects/lmsclients/files/squeezeplay/osx/).

I see that squeezelite has also been recently updated. But I still get this running on OS X El Capitan:

2016-05-30 21:35:00.915 squeezelite[49331:5322559] 21:35:00.915 WARNING: 140: This application, or a library it uses, is using the deprecated Carbon Component Manager for hosting Audio Units. Support for this will be removed in a future release. Also, this makes the host incompatible with version 3 audio units. Please transition to the API's in AudioComponent.h.

Will this be difficult to rectify?

Thanks for your continued work on this!

-mark

ralphy
2016-05-31, 03:57
I see that squeezelite has also been recently updated. But I still get this running on OS X El Capitan:

2016-05-30 21:35:00.915 squeezelite[49331:5322559] 21:35:00.915 WARNING: 140: This application, or a library it uses, is using the deprecated Carbon Component Manager for hosting Audio Units. Support for this will be removed in a future release. Also, this makes the host incompatible with version 3 audio units. Please transition to the API's in AudioComponent.h.

Will this be difficult to rectify?

Thanks for your continued work on this!

-mark

That warning is coming from the portaudio library. The portaudio developers are aware of the issue but have not yet updated the library to use the newer api.

mbonsack
2016-05-31, 19:20
That warning is coming from the portaudio library. The portaudio developers are aware of the issue but have not yet updated the library to use the newer api.

So if the portaudio folks don't do anything, what happens? Are there alternatives for you to use?

EDIT: They are indeed aware but not doing anything about it until their hand is forced by Apple (i.e. the old APIs are removed):

https://www.assembla.com/spaces/portaudio/tickets/218-pa-coreaudio-uses-some--quot-deprecated-quot--apis----this-is-by-design-but-needs-to-be-monitored/details#

It's too bad that it will probably take a release of OS X that breaks this before anything is done, though...

-mark

ralphy
2016-06-01, 04:21
So if the portaudio folks don't do anything, what happens? Are there alternatives for you to use?

They will. Ross, the lead developer of portaudio, uses it for a commercial audio product.

There are, but I'll choose to just wait. I only upgraded to 10.11 from 10.6 about 6 months ago, so I'm not likely to upgrade again anytime soon.

JerryFn
2016-09-25, 02:40
I Keep getting this when I play from Spotify. It seems to parse through the playlist and fails.
PROBLEM : UNABLE TO PLAY FILE TYPE FOR :-----

21163

Mac Os sierra 10.12.. 2015 iMac

Any help would be appreciated.

ralphy
2017-01-26, 05:53
New squeezeplay 7.8.0r867 for MacOS available.

See post #1 of this thread for change details and download instructions.

This latest build includes a fix for the deprecated Carbon Component Manager for hosting Audio Units warning on MacOS 10.11+

ralphy
2017-01-28, 07:47
New squeezeplay 7.8.0r867 for MacOS available.

See post #1 of this thread for change details and download instructions.

This latest build includes a fix for the deprecated Carbon Component Manager for hosting Audio Units warning on MacOS 10.11+

A few additional changes in r874 and I've removed r867

ralphy
2017-04-22, 05:11
New squeezeplay osx build available.

7.8.0r959

Enable toasts for status information like play/pause/shuffle/repeat when using the keyboard or remote control.
Fix truncated small elapsed and remaining times in Joggler skin Now Playing screens.
Only save user modified logging categories to logconf.lua.
Replaced a portaudio function call to get the current timing information with a parameter already passed into the callback.

See post #1 (http://forums.slimdevices.com/showthread.php?96328-ANNOUNCE-SqueezePlay-for-Mac-OSX&p=716200&viewfull=1#post716200) for details.

diamonddust
2017-09-04, 13:21
Hello all,
If I set the server to send 24/96 Flac as PCM I get Unsupported sample rate error, work fine with 16/44.1 Flac. Is there some config file to set for higher bit rates?

thanks

ralphy
2017-09-05, 04:05
Hello all,
If I set the server to send 24/96 Flac as PCM I get Unsupported sample rate error, work fine with 16/44.1 Flac. Is there some config file to set for higher bit rates?

thanks

This is explained in post #1 of this thread

diamonddust
2017-09-05, 11:40
This is explained in post #1 of this thread

Thanks, forgot to read through out the first post, I'm on osx 10.12 and it worked with Nonnoroger's script, but I found the Automator described on post #47 (http://forums.slimdevices.com/showthread.php?96328-ANNOUNCE-SqueezePlay-for-Mac-OSX&p=752180&viewfull=1#post752180) more easy to launch.

Thanks again and really nice app ;-)

ralphy
2017-09-08, 05:22
New mac squeezeplay build available.

7.8.0r1000

Replaced CPS calls in SDL library to fix these deprecated warnings;

CPSGetCurrentProcess(): This call is deprecated and should not be called anymore.
set_foreground_operation_state(): This call is deprecated and should not be called anymore.

See post #1 (http://forums.slimdevices.com/showthread.php?96328-ANNOUNCE-SqueezePlay-for-Mac-OSX&p=716200&viewfull=1#post716200) for details.

ralphy
2017-11-24, 06:41
New MacOS squeezeplay builds available.

7.8.0r1034

Fixed macOS High Sierra 10.13 black square under mouse pointer. x86_64 build only.
Fixed a memory leak in lua interpreter.
Fixed luajson error code comparison always returning false.
Removed forced default 48000Hz maximum sample rate. Use export USEPAMAXSAMPLERATE=48000 in an Automator script to revert to original behaviour.
Backported CVE-2017-2887 to SDL_image-1.2.5.

See post #1 (http://forums.slimdevices.com/showthread.php?96328-ANNOUNCE-SqueezePlay-for-Mac-OSX&p=716200&viewfull=1#post716200) for details.

mherger
2017-11-24, 06:58
> Fixed macOS High Sierra 10.13 black square under mouse pointer. x86_64

Thanks a lot!

--

Michael

Osamede
2017-11-24, 17:44
New MacOS squeezeplay builds available.

7.8.0r1034

Fixed macOS High Sierra 10.13 black square under mouse pointer. x86_64 build only.
Fixed a memory leak in lua interpreter.
Fixed luajson error code comparison always returning false.
Removed forced default 48000Hz maximum sample rate. Use export USEPAMAXSAMPLERATE=48000 in an Automator script to revert to original behaviour.
Backported CVE-2017-2887 to SDL_image-1.2.5.

See post #1 (http://forums.slimdevices.com/showthread.php?96328-ANNOUNCE-SqueezePlay-for-Mac-OSX&p=716200&viewfull=1#post716200) for details.

Thanks!

sgmlaw
2018-02-24, 10:40
Many thanks for keeping this great app updated.

We have used it every day in our Macs for many years. I don't know how we would get along without it.

Eric Seaberg
2018-02-24, 11:31
Thanks for the updates on this!!

pmontelo
2018-02-28, 06:11
Thank you Ralphy for continuing to support the SqueezePlay LMS client for Mac.

If you ever get the chance, it would be great if you could save & restore the window location on startup.
I manually position the app in the lower lefthand corner of a 3rd monitor on startup. It would be awesome if the app did this on startup.

Thanks again for all of your work keeping this app going over the years with the changes in Mac OS, it's much appreciated!

tobyw7
2018-09-27, 11:32
Hi,

Thanks for keeping this app going... I am on 10.14 and when loading the app, and after selecting language, it stalls at connecting to mysqueezebox.com

25724

If I click Back... it just gives me the spinning Connecting screen

ralphy
2018-09-28, 04:42
I don't have 10.14 installed yet.

Please make sure you are using the latest 7.8.0r1101 x64_86 build (https://sourceforge.net/projects/lmsclients/files/squeezeplay/osx/SqueezePlay-x86_64-7.8.0r1101.dmg/download) to start.

mherger
2018-09-28, 11:36
> Please make sure you are using the latest '7.8.0r1101 x64_86 build'
> (https://sourceforge.net/projects/lmsclients/files/squeezeplay/osx/SqueezePlay-x86_64-7.8.0r1101.dmg/download)
> to start.

That version is working fine here on 10.14.

--

Michael

ralphy
2018-10-02, 05:43
MacOS squeezeplay build 7.8.0r1101 available.

Supports save and play for all 10 presets. Requires LMS 7.9.2 1527514762+ for presets 7 through 10 support.
Supports macOS Mojave 10.14
Bug fixes.

See the first post in this thread for details.

stereoptic
2018-10-02, 09:21
I updated to High Sierra version 10.13.6 (my Macbook Pro and MacMini won't upgrade to Mojave) yesterday and loaded the new SqueezePlay-x86_64-7.8.0r1101 and Squeezeplay is working fine! Thanks!

Mothy_Tim
2019-05-07, 05:27
MacOS squeezeplay build 7.8.0r1101 available.

Supports save and play for all 10 presets. Requires LMS 7.9.2 1527514762+ for presets 7 through 10 support.
Supports macOS Mojave 10.14
Bug fixes.

See the first post in this thread for details.

Hi, not sure what the problem is but have just tried this on High Sierra and it crashes after a couple of minutes? I was streaming from LMS using iPlayer plug-in syncronised with a couple of other players, also tried to play a FLAC file it crashed on starting the file, I hit reopen and it was playing! Seems very unstable. Anything I can try?

Cheers,
Tim

Diana
2019-05-07, 08:43
MacOS squeezeplay build 7.8.0r1101 available.
Supports save and play for all 10 presets. Requires LMS 7.9.2 1527514762+ for presets 7 through 10 support.
Supports macOS Mojave 10.14
Bug fixes.
Running beautifully on Mojave here. Many, many thanks for all your work!

Mothy_Tim
2019-05-08, 07:04
Hi, not sure what the problem is but have just tried this on High Sierra and it crashes after a couple of minutes? I was streaming from LMS using iPlayer plug-in syncronised with a couple of other players, also tried to play a FLAC file it crashed on starting the file, I hit reopen and it was playing! Seems very unstable. Anything I can try?

Cheers,
Tim

Ok so I have experimented a bit more and it seems that SqeezePlay crashes if I leave it on the now playing screen, if I select the Home screen then it happily plays all day! I'm guessing that it doesn't like something that the iPlayer plugin is doing, maybe the radio text?
Cheers,
Tim

bpa
2019-05-08, 07:08
I'm guessing that it doesn't like something that the iPlayer plugin is doing, maybe the radio text?

The BBCiPlayer does nothing special for screensavers. It provides plain text as part of the LMS metadata request and the screensaver display it. The same data is provided every x secs no matter which screensaver is being used.

Crashes are more a symptom of a low level problem - could there be a memory problem ?

If you run Squeezeplay from a command prompt you should get an error message why it crashes (e.g. segmentation fault)

Mothy_Tim
2019-05-09, 06:17
The BBCiPlayer does nothing special for screensavers. It provides plain text as part of the LMS metadata request and the screensaver display it. The same data is provided every x secs no matter which screensaver is being used.

Crashes are more a symptom of a low level problem - could there be a memory problem ?

If you run Squeezeplay from a command prompt you should get an error message why it crashes (e.g. segmentation fault)


Shouldn't be the memory I have 12GB! Here's the output from terminal.

Tims-iMac:~ tim$ /Applications/SqueezePlay.app/Contents/MacOS/SqueezePlay
||PaMacCore (AUHAL)|| Error on line 406: err=''!dat'', msg=Audio Device: Unsupported Format
SqueezePlay(87360,0x7fff96999380) malloc: *** error for object 0x7fd1a6451800: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
Abort trap: 6

Cheers,
Tim

ralphy
2019-05-10, 05:25
Ok so I have experimented a bit more and it seems that SqeezePlay crashes if I leave it on the now playing screen, if I select the Home screen then it happily plays all day! I'm guessing that it doesn't like something that the iPlayer plugin is doing, maybe the radio text?
Cheers,
Tim


Shouldn't be the memory I have 12GB! Here's the output from terminal.

Tims-iMac:~ tim$ /Applications/SqueezePlay.app/Contents/MacOS/SqueezePlay
||PaMacCore (AUHAL)|| Error on line 406: err=''!dat'', msg=Audio Device: Unsupported Format
SqueezePlay(87360,0x7fff96999380) malloc: *** error for object 0x7fd1a6451800: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
Abort trap: 6

Cheers,
Tim
This is happening on High Sierra, correct?

Does this happen on any now playing screen or just one?

Mothy_Tim
2019-05-10, 07:59
This is happening on High Sierra, correct?

Does this happen on any now playing screen or just one?

Yes High Sierra.

It seems to be the now playing screen when using iPlayer plugin, if I use tune-in or play tracks from library itís ok!

Cheers,
Tim

ralphy
2019-05-11, 05:11
Yes High Sierra.

It seems to be the now playing screen when using iPlayer plugin, if I use tune-in or play tracks from library itís ok!

Cheers,
Tim

What version of the iPlayer plugin?

Mothy_Tim
2019-05-11, 06:14
What version of the iPlayer plugin?

Version 1.6.6

bpa
2019-05-11, 06:36
Version 1.6.6

iPlayer plugin uses standard LMS functions and returns string as other remote plugin . Tune-in has ICY metadata and library tracks are built so not directly comparable.

The only problem maybe that BBC provides long text and Squeezeplay on OSX might have problem string handling which results in memory corruption.

How BBCiPlayer is being used might narrow down the issues.

Live or Listen Again ? If Live what station ? (Bizarrely it does mater as BBC varies metadata data according to station and Listen Again)

Is the screensaver customised or unchanged from distro ?

bpa
2019-05-11, 07:05
I have a Squeezeplay on Ubuntu which is 2018 but I think is the latest from sourceforge.

With BBCiPlayer - if I cycle through the Now Playing screen (Image, text only, bar meters, vu meters, combined) after the "combined" - Squeezeplay with always crashes with a memory issue. No problem on Touch.

The BBCiPlayer plugin does not communicate with player. Players do not "know " what source is being used. LMS ask plugin for metadata - artist album, image and description as strings. LMS then delivers the strings to various UIs to render.

Mothy_Tim
2019-05-11, 09:51
iPlayer plugin uses standard LMS functions and returns string as other remote plugin . Tune-in has ICY metadata and library tracks are built so not directly comparable.

The only problem maybe that BBC provides long text and Squeezeplay on OSX might have problem string handling which results in memory corruption.

How BBCiPlayer is being used might narrow down the issues.

Live or Listen Again ? If Live what station ? (Bizarrely it does mater as BBC varies metadata data according to station and Listen Again)

Is the screensaver customised or unchanged from distro ?

Hi, I was listening live, Radio 2 and screensaver unchanged.

Cheers,
Tim

ralphy
2019-05-13, 04:55
I have a Squeezeplay on Ubuntu which is 2018 but I think is the latest from sourceforge.

With BBCiPlayer - if I cycle through the Now Playing screen (Image, text only, bar meters, vu meters, combined) after the "combined" - Squeezeplay with always crashes with a memory issue. No problem on Touch.

The BBCiPlayer plugin does not communicate with player. Players do not "know " what source is being used. LMS ask plugin for metadata - artist album, image and description as strings. LMS then delivers the strings to various UIs to render.

I can recreate the crash on linux as well. Happens in the transition to the Artwork Only now playing screen.

20190513 11:44:06.693 DEBUG squeezebox.server.cache - SlimServer.lua:1076 SlimServer {lms2}:fetchArtwork(/imageproxy/http%3A%2F%2Fichef.bbci.co.uk%2Fimages%2Fic%2F160x 160%2Fp05gfn4r.jpg/image.jpg, 470x262, nil)
20190513 11:44:06.693 DEBUG squeezebox.serve[New Thread 0xb6a8cb70 (LWP 25753)]

Program received signal SIGSEGV, Segmentation fault.
0xb79da5e4 in _int_free (av=<optimized out>, p=0x8d64918) at malloc.c:5002

bpa
2019-05-13, 05:39
Hi, I was listening live, Radio 2 and screensaver unchanged.

What is being displayed on the sreensaver ?
Text only ?
Art work only ?
Text and Artwork ?
VU Meters ?
Graphic equaliser type display ?
something else ?

Mothy_Tim
2019-05-13, 09:46
What is being displayed on the sreensaver ?
Text only ?
Art work only ?
Text and Artwork ?
VU Meters ?
Graphic equaliser type display ?
something else ?

Text and artwork is being displayed.

bpa
2019-05-13, 11:51
Text and artwork is being displayed.
Does it crash when the Now playing is not showing any artwork (e.g. text only or VU meters).

The metadata for Artwork is passed as an URL and Squeezeplay itself has to process the URL which will in fact point to a BBC image.

If the crashes only happen when artwork is being displayed in Now playing - then it localises where to look for the problem.

Mothy_Tim
2019-05-14, 07:09
Does it crash when the Now playing is not showing any artwork (e.g. text only or VU meters).

The metadata for Artwork is passed as an URL and Squeezeplay itself has to process the URL which will in fact point to a BBC image.

If the crashes only happen when artwork is being displayed in Now playing - then it localises where to look for the problem.

Hi, ok so switched to text only and so far Radio 2 has been playing for nearly an hour! So it seems its a problem with the artwork.
Cheers,
Tim

bpa
2019-05-14, 07:23
Hi, ok so switched to text only and so far Radio 2 has been playing for nearly an hour! So it seems its a problem with the artwork.
Cheers,
Tim

Station logos are in PNG format whereas program images are in JPG.

If you set BBCiPlayer settings to "Always display station icon" - this means only station logo will be shown. If no crashes happen subsequently, then the issue is probably JPG related.

My initial feeling is the issue might be related to libraries which are built for non ARM maybe x86 type architecture. Some libraries have special code for different processor architectures. However, I think some images are resized before display so the underlying issue might not be straightforward.

edit:

Squeezeplay on Ubuntu didn't crash when displaying station logo and cycling through screeensavers - so I think it may be a JPG only issue.

edit 2:

It looks like the JPEG library in Squeezeplay is version 6b which is from 1998 !
Current version is 9c but intermediate revs are still available at https://www.ijg.org/files/

ralphy
2019-05-15, 05:54
Station logos are in PNG format whereas program images are in JPG.

If you set BBCiPlayer settings to "Always display station icon" - this means only station logo will be shown. If no crashes happen subsequently, then the issue is probably JPG related.

My initial feeling is the issue might be related to libraries which are built for non ARM maybe x86 type architecture. Some libraries have special code for different processor architectures. However, I think some images are resized before display so the underlying issue might not be straightforward.

edit:

Squeezeplay on Ubuntu didn't crash when displaying station logo and cycling through screeensavers - so I think it may be a JPG only issue.

edit 2:

It looks like the JPEG library in Squeezeplay is version 6b which is from 1998 !
Current version is 9c but intermediate revs are still available at https://www.ijg.org/files/
The touch and radio appear to be using 8b at least that's what the poky build environment used when I rebuild the radio firmware.

So, I rebuilt squeezeplay on my linux system using jpeg 9c and libpng 1.2.59 but it still crashes as before cycling to the art only now playing screen.

jive: malloc.c:3096: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)' failed.

Interestingly, when I build squeezeplay using dmalloc to help track this down, it never crashes. Unfortunately, I haven't figured out how to debug/step through the lua code to try to find where this is happening. gdb traceback isn't very helpful either and valgrind reports the something has clobbered memory but it's happening way down in SDL so finding the source of the corruption isn't forthcoming.


==9436== Invalid write of size 4
==9436== at 0x43396E6: SDL_FillRect (SDL_surface.c:610)
==9436== by 0x432554E: SDL_UnRLESurface (SDL_RLEaccel.c:1915)
==9436== by 0x4338355: SDL_MapSurface (SDL_pixels.c:551)
==9436== by 0x433910C: SDL_LowerBlit (SDL_surface.c:417)
==9436== by 0x12C012B: ???
==9436== Address 0x9e174e8 is 0 bytes after a block of size 360,000 alloc'd
==9436== at 0x4028308: malloc (vg_replace_malloc.c:263)
==9436== by 0x4325518: SDL_UnRLESurface (SDL_RLEaccel.c:1907)
==9436== by 0x4338355: SDL_MapSurface (SDL_pixels.c:551)
==9436== by 0x433910C: SDL_LowerBlit (SDL_surface.c:417)
==9436== by 0x12C012B: ???
==9436==

valgrind: m_mallocfree.c:266 (mk_plain_bszB): Assertion 'bszB != 0' failed.
valgrind: This is probably caused by your program erroneously writing past the
end of a heap block and corrupting heap metadata. If you fix any
invalid writes reported by Memcheck, this assertion failure will
probably go away. Please try that before reporting this as a bug.


Perhaps the image handling is misleading. The long text strings are what's really different with the iplayer plugin.

bpa
2019-05-15, 06:13
Perhaps the image handling is misleading. The long text strings are what's really different with the iplayer plugin.
Yes but png images don't crash and jpeg ones do with same text metadata ?

Also with test I ran - I had what I considered to be "short" strings and no problems. I'll play around with more test as I can fake variation on metadata easily.

ralphy
2019-05-15, 12:12
I think I've found the cause.

I upgraded the SDL_gfx library to 2.0.24 at r300 back in Sept 2013. I've reverted to 2.0.15 the same as the radio and touch and haven't been able to crash squeezeplay with iplayer.


Hi, ok so switched to text only and so far Radio 2 has been playing for nearly an hour! So it seems its a problem with the artwork.
Cheers,
Tim

Please try this MacOS squeezeplay test build (http://ralph-irving.users.sourceforge.net/files/SqueezePlay-x86_64-7.8.0r1148.dmg) and let us know.


Yes but png images don't crash and jpeg ones do with same text metadata ?

Also with test I ran - I had what I considered to be "short" strings and no problems. I'll play around with more test as I can fake variation on metadata easily.

Thank you for helping with this problem. Are you usiing your own linux build or one of mine? I can build an updated one for you to test with as well.

bpa
2019-05-15, 12:17
Thank you for helping with this problem. Are you usiing your own linux build or one of mine? I can build an updated one for you to test with as well.

I've been using your build from sourceforge/lmsclients/squeezeplay

ralphy
2019-05-15, 12:47
I've been using your build from sourceforge/lmsclients/squeezeplay

32 or 64 bit?
pulse or alsa?

bpa
2019-05-15, 12:52
32 or 64 bit?
pulse or alsa?

64bit pulse.

ralphy
2019-05-15, 13:18
64bit pulse.

Give this one (http://ralph-irving.users.sourceforge.net/files/squeezeplay-pulse-7.8.0-1148-x86_64.tgz) a try

bpa
2019-05-15, 13:34
Give this one (http://ralph-irving.users.sourceforge.net/files/squeezeplay-pulse-7.8.0-1148-x86_64.tgz) a try
Back to back testing - same channel same metadata.
1. The old version 1116 crashed when cycling through screensavers - crashing when moving from image
2. The new version 1148 cycles through the images OK.

Looks good.

ralphy
2019-05-15, 13:42
Back to back testing - same channel same metadata.
1. The old version 1116 crashed when cycling through screensavers - crashing when moving from image
2. The new version 1148 cycles through the images OK.

Looks good.

That's great!

Mothy_Tim
2019-05-16, 04:37
I think I've found the cause.

I upgraded the SDL_gfx library to 2.0.24 at r300 back in Sept 2013. I've reverted to 2.0.15 the same as the radio and touch and haven't been able to crash squeezeplay with iplayer.



Please try this MacOS squeezeplay test build (http://ralph-irving.users.sourceforge.net/files/SqueezePlay-x86_64-7.8.0r1148.dmg) and let us know.

That seems to have fixed it! Thanks for all your hard work! :)

One other thing, when the squeezeplay app is running the iMac doesn't sleep? Not even the screen turns off! Can I change this behaviour somehow?
Cheers,
Tim

ralphy
2019-05-18, 06:00
That seems to have fixed it! Thanks for all your hard work! :)

One other thing, when the squeezeplay app is running the iMac doesn't sleep? Not even the screen turns off! Can I change this behaviour somehow?
Cheers,
Tim

You need to set SDL_VIDEO_ALLOW_SCREENSAVER=1 in a Run a script using /bin/bash automator script.


export SDL_VIDEO_ALLOW_SCREENSAVER=1
/Applications/SqueezePlay.app/Contents/MacOS/SqueezePlay > $HOME/SqueezePlay.log 2>&1 &

Then run squeezeplay via the automator script instead of directly from applications.

ralphy
2019-05-18, 06:05
MacOS squeezeplay build 7.8.0r1149 available.

Fix squeezeplay crashing when cycling through Now Playing screens with bbc iplayer plugin.
Bug fixes.

See the first post in this thread for details.

Mothy_Tim
2019-05-22, 05:24
You need to set SDL_VIDEO_ALLOW_SCREENSAVER=1 in a Run a script using /bin/bash automator script.


export SDL_VIDEO_ALLOW_SCREENSAVER=1
/Applications/SqueezePlay.app/Contents/MacOS/SqueezePlay > $HOME/SqueezePlay.log 2>&1 &

Then run squeezeplay via the automator script instead of directly from applications.

Thanks, all seems good now!
Cheers,
Tim

afriend
2019-06-11, 06:50
Hello @ralphy.

I wonder if you can help me. I really like the default layout of Squeezeplay's "Now Playing" screen but I'd like it to show the track rating and maybe some other non-standard track information as well.
SInce I couldn't think of any other way to get this information onto the Now Playing screen, I've fiddled around with Erland's CustomClock applet and CustomClockHelper which would replace the Now Playing screen with a custom version.
But SqueezePlay's Now Playing screen (esp. the UI elements) is made up of so many different small image elements (buttons, backgrounds, bars, image parts of all sorts...) that I'm struggling to put them all into their right place to mimic the original Now Playing screen.

Do you know of any CustomClock style that replicates the Now Playing screen 100%? Or alternatively, where can I find the information I need for the Now Playing Screen (name of all required image elements, their position...) in the SqueezePlay Code?

Thank you.