I've created MacOS Squeezeplay builds with the ability to select the output device and set the maximum sample rate.
8.0.1.r1352 - 20210217
8.0.1.r1310 - 20201213
7.8.0.r1286 - 20201114
7.8.0.r1149 - 20190516
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 11.0+. Apple M1 hardware
See the commit history for changes.
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?
There's Flimflam's Automator method to create a wrapper app to include setting the environment variables.
Also see Nonnoroger's post #11 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
For 10.8+ use should use launchctl from the Terminal app.Code:<?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>
Here's how to enable USEPAPLAYNICE.
Set the variable value to 1 (true).
Confirm the variable has been set.Code:sudo launchctl setenv USEPAPLAYNICE "1"
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.Code:$ /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]
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.
Source code is available on github.Code:$ set | grep -i usepa USEPADEVICE='Sennheiser USB Headset' USEPAMAXSAMPLERATE=96000
Builds are available on sourceforge.
Results 1 to 10 of 182
-
2012-09-06, 10:27 #1
[ANNOUNCE] SqueezePlay for Mac OSX
Last edited by ralphy; 2021-02-18 at 04:14. Reason: Released 8.0.1r1352 - Feb 18/20
Ralphy
1-Touch, 5-Classics, 3-Booms, 2-UE Radio
Squeezebox client builds donations always appreciated.
-
2012-09-06, 13:45 #2
- Join Date
- Jan 2010
- Posts
- 137
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.
-
2012-09-06, 14:06 #3
@ralphy
You might want to have a look at this:
http://joris.kluivers.nl/blog/2012/0...mountain-lion/---
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
-
2012-09-07, 06:04 #4
- Join Date
- Jan 2010
- Posts
- 137
.MacOSX/environment.plist not supported in 10.8
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.
-
2012-09-07, 06:11 #5
- Join Date
- Jan 2010
- Posts
- 137
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.
-
2012-09-07, 06:32 #6
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?Ralphy
1-Touch, 5-Classics, 3-Booms, 2-UE Radio
Squeezebox client builds donations always appreciated.
-
2012-09-07, 06:55 #7
- Join Date
- Jan 2010
- Posts
- 137
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.
-
2012-09-07, 07:10 #8Ralphy
1-Touch, 5-Classics, 3-Booms, 2-UE Radio
Squeezebox client builds donations always appreciated.
-
2012-09-07, 09:46 #9
- Join Date
- Aug 2005
- Posts
- 315
-
2012-09-07, 11:41 #10
Last edited by ralphy; 2012-09-07 at 14:17.
Ralphy
1-Touch, 5-Classics, 3-Booms, 2-UE Radio
Squeezebox client builds donations always appreciated.