I bought a USB soundcard for my Macbook Pro, so I can use a headset mic for Skype. By default, the. sound goes to a pair of external speakers (for iTunes) or the built-in speakers (on the road/gaming)

Is there a simple way to switch or toggle (keyboard shortcut, menu-bar icon, dock-able app) between these two output devices.

Apple-Menu->System Preferences->Sound is just too many clicks, requiring much precise mouse manuvering, when all I want to do is switch the output in a hurry).

I'd rather not buy a "switcher", one more device to carry around!

link|improve this question

Can you please just clarify what sound devices you want to switch between? Do you want to swap between your external speakers, internal speakers and USB soundcard? Or was it only two of them? – David Pearce Aug 23 '09 at 12:24
The MBP 'switches' the internal speakers to "Headphones" when I insert the external speakers plug. So .. it's two outputs, but one of them can change its name ... – lexu Aug 24 '09 at 6:08
feedback

4 Answers

up vote 6 down vote accepted

It sounds like you are after SoundSource:

SoundSource is a tiny tool for OS X enabling you to switch your audio input and output sources with a single click, and even adjust their volume settings.

Another program that does the same thing is PTHVolume.

link|improve this answer
thanks, got it installed, works as hoped! – lexu Aug 24 '09 at 6:09
feedback

Also in Snow Leopard if you hold option and click the sound icon in the upper Right of the Mac it will bring down a menu similar to what the above mentioned 3rd party plugins do.

link|improve this answer
great tip, thank you, I'll have to remember to play with the option key while exploring menus in Snow Leopard – lexu Jan 29 '10 at 10:50
feedback

You can use applescript to switch between two sources, triggered by Quicksilver being the fastest way:

property speakers : "Headphones" --ext. speakers are connected to headphone output
property headset : "Line out"

tell application "System Preferences" to activate
tell application "System Events"
    get properties
    tell process "System Preferences"
    	click menu item "Sound" of menu "View" of menu bar 1
    	delay 2
    	click radio button "Output" of tab group 1 of window "sound"
    	delay 1
    	set theRows to every row of table 1 of scroll area 1 of tab group 1 of window "sound"
    	repeat with aRow in theRows
    		if selected of aRow then
    			set curr_output to (value of text field 1 of aRow as text)
    			if curr_output is speakers then set desired_output to headset
    			if curr_output is headset then set desired_output to speakers
    			exit repeat
    		end if
    	end repeat
    	repeat with aRow in theRows
    		if (value of text field 1 of aRow as text) is desired_output then
    			set selected of aRow to true
    			exit repeat
    		end if
    	end repeat
    end tell
end tell
tell application "System Preferences" to quit

Also, there is a command-line wrapper for SoundSource, making it easier to integrate with applescript/quicksilver/scripts etc:

http://whoshacks.blogspot.com/2009/01/change-audio-devices-via-shell-script.html

And another to try:

http://code.google.com/p/switchaudio-osx/downloads/list

link|improve this answer
Thanks. I use the command-line wrapper with a short Keyboard Maestro macro that I’ve mapped to ⌃F9 to easily toggle between Line Out and Headphones. – Rafael Apr 26 at 11:45
feedback

You can press Option-Volume(Up/Down/Mute) to open the Sound Preferences directly, although you would still need to select the desired output.

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.