My sound can get funky (the headset is good, but the driver has a habit of dropping the game channel) so I’m not certain when I invoke the macro that I will have a match for “(GameDAC Game)” and the indices seem to change. Switch to sound bar: /run local n=Sound_GameSystem_GetNumOutputDrivers() for i=0,n-1,1 do if Sound_GameSystem_GetOutputDriverNameByIndex(i):find('(S/PDIF)') then SetCVar('Sound_OutputDriverIndex', i) AudioOptionsFrame_AudioRestart() end end Switch to headset: /run local n=Sound_GameSystem_GetNumOutputDrivers() for i=0,n-1,1 do if Sound_GameSystem_GetOutputDriverNameByIndex(i):find('(GameDAC Game)') then SetCVar('Sound_OutputDriverIndex', i) AudioOptionsFrame_AudioRestart() end end Just replace the string in the :find with whatever unique bit you get from Fizzlemizz’s macro. The macro without the find argument chars comes in at 213 chars giving up to 42 chars to do a match and stay under the 255 limit. I used the first macro that Fizzlemizz provided to get a list then made the following two macros to do the switching for me. Got distracted with a few things, so only got around to putting this to good use today. Both (actually several devices, but these are the two for WoW) are plugged in all the time.įizzlemizz…that was the breadcrumb needed.