The easiest way would be to use an environment variable to override the default device selection loop at line 425 in decode_portaudio.c with the output device index you want SP to use.
Getting the override index value is the tricky part. The device list provided from squeezeslave -L might work to get the right number.
I could hack it to together quickly, if you haven't already got something working.
Results 11 to 20 of 24
Thread: Squeezeplay choose audio device?
-
2011-05-05, 05:34 #11Ralphy
1-Touch, 4-Classics, 2-Booms, 2-Squeezeslaves, 3-Squeezeplays, 3-Squeezelites
Squeezeslave donations always appreciated.
-
2011-05-05, 06:11 #12Senior Member
- Join Date
- Apr 2005
- Location
- Buckinghamshire, England
- Posts
- 9,983
You want to see the signal path BEFORE it gets onto a CD/vinyl...it ain't what you'd call minimal...
Touch(wired/W7)+Teddy Pardo PSU - Audiolense 3.3/2.0+INGUZ DRC - MF M1 DAC - Linn 5103 - full Aktiv 5.1 system (6x LK140's, ESPEK/TRIKAN/KATAN/SEIZMIK 10.5), Pekin Tuner, Townsend Supertweeters,VdH Toslink,Kimber 8TC Speaker & Chord Signature Plus Interconnect cables
Stax4070+SRM7/II phones
Kitchen Boom, Outdoors: SB Radio, Harmony One remote for everything.
-
2011-05-05, 07:24 #13Ralphy
1-Touch, 4-Classics, 2-Booms, 2-Squeezeslaves, 3-Squeezeplays, 3-Squeezelites
Squeezeslave donations always appreciated.
-
2011-05-07, 05:51 #14
Turns out squeezeplay on linux uses decode_alsa.c and not decode_portaudio.c.
Good news is I have been able to play music on non default audio devices.
I'm investigating if it's easy to save and restore the output and sound effect devices using the settings files created by squeezeplay and have all OS versions use those settings.Ralphy
1-Touch, 4-Classics, 2-Booms, 2-Squeezeslaves, 3-Squeezeplays, 3-Squeezelites
Squeezeslave donations always appreciated.
-
2011-05-07, 16:15 #15
Installed VC2008 Express on my dev system.
I've got a build for you to try. Saving the audio device in the settings files proved problematic so I opted for a User Environment Variable: USEPADEVICE
You need to set the USEPADEVICE user variable with the text name of the device as returned from squeezeslave -L. The match is case insensitive but if you happen to add an extra space anywhere in the name the match will fail and no audio device will be used. I grabbed a screen shot of setting this up on XP.
Once you've set USEPADEVICE, you'll need to set it to the default device name to get squeezeplay to output again to the default device.
I've attached a patch of the change and I've sent you a PM.
I'm planning to do a similiar change for alsa as well, the current changes only work for Windows and OSX.
Hopefully one of the developers will consider adding both changes to the source once I'm done.Last edited by ralphy; 2011-05-08 at 05:09.
Ralphy
1-Touch, 4-Classics, 2-Booms, 2-Squeezeslaves, 3-Squeezeplays, 3-Squeezelites
Squeezeslave donations always appreciated.
-
2011-05-09, 04:25 #16
and here's the patch to enable changing the output device for linux ALSA.
Usage:
Get the alsa device.
Code:squeezeslave -L Output devices: 0: (ALSA) HDA Intel: ALC883 Analog (hw:0,0) (11/46) 1: (ALSA) HDA Intel: ALC883 Digital (hw:0,1) (11/46) 3: (ALSA) Logitech USB Headset: USB Audio (hw:1,0) (11/46) 4: (ALSA) front (11/46) 5: (ALSA) surround40 (11/46) 6: (ALSA) surround41 (11/46) 7: (ALSA) surround50 (11/46) 8: (ALSA) surround51 (11/46) 9: (ALSA) surround71 (11/46) 10: (ALSA) iec958 (11/46) 11: (ALSA) spdif (11/46) *12: (ALSA) default (42/46) 13: (ALSA) dmix (42/42)
For devices in the list that have a (hw) number beside the device name you must use that.
If I wanted to use the Logitech USB headset I'd set USEALSADEVICE like this.
Then run squeezeplay.Code:export USEALSADEVICE="hw:1,0"
If I want to use the "front" speakers device I'd useCode:squeezeplay
since there is no (hw) number listed beside it.Code:export USEALSADEVICE="front" squeezeplay
To change back to the default ALSA device remove the environment variable.
Squeezeplay only checks the environment variable at startup. So to use a new audio device, you must quit squeezeplay, export USEALSADEVICE with the new device and start squeezeplay again.Code:unset USEALSADEVICE
Ralphy
1-Touch, 4-Classics, 2-Booms, 2-Squeezeslaves, 3-Squeezeplays, 3-Squeezelites
Squeezeslave donations always appreciated.
-
2011-06-17, 05:33 #17
Need another tester?
Hello Ralphy
Would it be possible for me to try this update? I'm OSX based with an external USB DAC attached that I'd like to use with Squeeezeplay.
I have Squeezeslave working just fine with the DAC so should be able to follow your instructions
Thanks
-
2011-06-18, 02:24 #18
You should be able to use the usepadevice-portaudio.patch.txt file from post #15 above.
You'll need to set USEPADEVICE to the alternate device from a terminal window.
Code:$ squeezeslave -L Output devices: * 1: (Core Audio) Built-in Output (0/4) 2: (Core Audio) Logitech USB Headset (2/29) $ export USEPADEVICE="Logitech USB Headset" $ squeezeplay
Ralphy
1-Touch, 4-Classics, 2-Booms, 2-Squeezeslaves, 3-Squeezeplays, 3-Squeezelites
Squeezeslave donations always appreciated.
-
2011-06-20, 03:12 #19
Hi there,
any pointers to how I apply this patch on a Windows system? Do I use SVN to check out the code and then apply the patch, after which I build, or am I on the wrong track completely?Main System: Touch; Marantz SR-5004;TMA Premium 905; TMA Premium 901; BK Monolith+ FF; HDI Dune Smart D1; Pioneer PDP-LX5090H
iPad 32GB Wifi + Squeezepad (local playback activated)
Acer Iconia Tab A700 + Squeezeplayer
Wandboard Duallite + CSOS R3, integrated LMS activated
-
2011-06-20, 03:42 #20Senior Member
- Join Date
- May 2008
- Posts
- 1,446


Reply With Quote
