Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I'm trying to find a console command or utility that will let me quickly change speaker configuration between 5.1 and stereo in Windows 7. Anything that I will be able to make a shortcut of on the desktop for quick access.

The issue arises from bluray discs with PCM tracks. In those cases, unless Windows has the speakers configured as 5.1, it won't be sent to the amplifier via Arcsoft's TMT3. However, when using winamp I want a stereo configuration so that it passes directly to the amp.

I couldn't find any dedicated utility or generic automation utility (eg nirsoft) that supports this. I believe I can do it with autohotkey but that has a rather steep learning curve and I'll leave it as a last resort.

Do you know of any such utility or even any built in windows command to change speaker configuration?

share|improve this question
add comment

4 Answers

up vote 2 down vote accepted

Soundswitch may be a solution, as it can switch between two speaker configurations for your current active playback device.

share|improve this answer
    
Excellent! This looks like a compiled autohotkey so it confirms my suspicion that no dedicated utility does this. An initial test didn't switch outputs but the site claims it can, so I'll play with it a bit more in the morning. –  Fanis Sep 12 '10 at 21:41
    
I'm the author of Soundswitch. It's a compiled AutoIT script. The source is available. –  Dustin Wyatt Feb 20 '11 at 1:40
add comment

Ok, I did some investigation into this question because I was getting annoyed at going through the config menu. I play games so if I don't switch it to stereo for headphone use the audio is all messed up in-game.

Step 1: Grab process monitor, a program from sysinternals that monitors a bunch of stuff, including registry access from targeted processes. http://technet.microsoft.com/en-us/sysinternals/bb896645

Step 2: Run process monitor and open up the config menu in the playback devices panel. In the process mon there is a little target toolbar icon, pick this up and drag it to the config window. It will now look at that window and only pick up events from that process. You'll need to set the filters to only look at registry items, and clear the log. See this pic (since I can't post pictures in replies yet):

enter image description here

Step 3: Go set the config you want, so in the picture I'll set it to 5.1 surround. Then look in the process monitor window, you'll see access to registry keys of the form: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Render{SOME LONG GUID}\Properties That will be your device, now right click on the entry in process monitor and click 'Jump to...' and it will open up the registry editor.

Step 4: Make sure you are in the '{GUID}/Properties' key in the registry editor and goto File>export, then export as a registry key with a descriptive name (audio_surround.reg or whatever).

Step 5: Switch to the other config using the speaker setup panel and export the registry again, with a descriptive name (audio_stereo.reg).

Now you should have two .reg files that you can double-click on to set your config to be stereo or surround. There is definitely an easier way, but it requires windows programming knowledge to get the GUID of the audio device, and then actually understand what the heck those registry values mean. But it's a start if anyone wants to roll with it!

share|improve this answer
    
This looks like it works. Good reverse engineering thinking there. I am, however, without my surround speakers at the moment, which is why I think the receiver doesn't recognise 5.1 being passed into it from the PC and remains in the 2.1 configuration. –  Fanis Oct 16 '11 at 17:01
    
Actually, this doesn't work. As soon as you reboot, Windows changes everything including the device IDs and the values that are written to the registry. –  Damien Aug 17 '13 at 12:29
    
@Damien: Hmm, don't have this problem with my setup, which is using Asus drivers for a realtek device. –  eresonance Jan 27 at 23:46
add comment

Found this for my problem... the vbscript didnt work in windows 7 so i made my own in Autoit v3

made 2 little scripts, it works only for creative x-fi

switch to 2.0:

Run("C:\Program Files (x86)\Creative\AudioCS\CTAudCS.exe")
WinWaitActive("Configuratiescherm voor geluid")
Send("{TAB 3}")
Send("{RIGHT}")
Send("{TAB 2}")
Send("{ASC 050}")
Send("{TAB}")
Send("{ENTER}")

switch to 5.1:

Run("C:\Program Files (x86)\Creative\AudioCS\CTAudCS.exe")
WinWaitActive("Configuratiescherm voor geluid")
Send("{TAB 3}")
Send("{RIGHT}")
Send("{TAB 2}")
Send("{ASC 053}")
Send("{TAB}")
Send("{ENTER}")

install autoit v3 and put this in a .au3 file. or compile it to a exe

share|improve this answer
add comment

The following works for Creative X-FI. I'm sure the same concept could be adapted to work with Windows default. Enter the following in Notepad, save as 2-1.vbs. To make a 5.1 shortcut, change the 2 in WshShell.SendKeys("{2}" ) into a 5, save as 5-1.vbs Again, this is for Creative X-FI.

Option Explicit

Dim WshShell
Set WshShell = CreateObject("WScript.Shell" )
'
'
' ----> Lines that begin with ' are disabled, just foot notes.
'
' Start up the Audio Console
WshShell.CurrentDirectory = "C:\Program Files (x86)\Creative\AudioCS\"
WshShell.Run "CTAudCS.exe"
' lets open the console
While WshShell.AppActivate("Audio Control Panel") = FALSE
wscript.sleep 200
WshShell.AppActivate "Audio Control Panel"
Wend
'
' send some keystrokes to get the speaker settings box activated
'
'
WshShell.SendKeys("{TAB}{TAB}{TAB}{RIGHT}{TAB}{TAB}" )

'
' set the speaker selection to 2.1
'
WshShell.SendKeys("{2}" )
'
' exit Audio Control Panel -panel
'
WshShell.SendKeys("{TAB}{ENTER}" )

WScript.Quit(0)
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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