If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.
SqueezePlay-ppc-7.8.0.dmg - Support for MacOS 10.3 - 10.6. Only tested on 10.6 intel rosetta.
SqueezePlay-i386-7.8.0.dmg - Support for MacOS 10.4 - 10.12.
SqueezePlay-x86_64-8.0.1.dmg - Support for MacOS 10.7+. Includes fix for Big Sur.
SqueezePlay-M1-8.0.1.dmg - Support for MacOS 12.0+. Apple M1 hardware
If you receive the message “SqueezePlay.app” is damaged and can’t be opened. at launch, run sudo xattr -cr /Applications/SqueezePlay.app from a Terminal window to fix it.
This version plays 24/96 wave and flac files natively using LMS 7.9.3 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 dmg disk image file and drag the SqueezePlay.app icon to Applications.
How do I change the output device and/or maximum sample rate?
For 10.8+ use should use launchctl from the Terminal app.
Here's how to enable USEPAPLAYNICE.
Set the variable value to 1 (true).
Code:
sudo launchctl setenv USEPAPLAYNICE "1"
Confirm the variable has been set.
Code:
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, install in /Applications and run squeezelite with the -l option.
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.
Code:
$ set | grep -i usepa
USEPADEVICE='Sennheiser USB Headset'
USEPAMAXSAMPLERATE=96000
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.
Take advantage of AirPlay audio streaming on OS X Mountain Lion on a per app basis.
---
learn more about iPeng, the iPhone and iPad remote for the Squeezebox and
Logitech UE Smart Radio as well as iPeng Party, the free Party-App,
at penguinlovesmusic.com New: iPeng 9, the Universal App for iPhone, iPad and Apple Watch
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.
===========
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.
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?
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.
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:
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--------------------------
Last edited by nonnoroger; 2012-09-08, 16:23.
Reason: Removed stray * characters in script
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).
Last edited by nonnoroger; 2012-09-08, 18:21.
Reason: Added not about rate selection
We process personal data about users of our site, through the use of cookies and other technologies, to deliver our services, personalize advertising, and to analyze site activity. We may share certain information about our users with our advertising and analytics partners. For additional details, refer to our Privacy Policy.
By clicking "I AGREE" below, you agree to our Privacy Policy and our personal data processing and cookie practices as described therein. You also acknowledge that this forum may be hosted outside your country and you consent to the collection, storage, and processing of your data in the country where this forum is hosted.
Comment