Synapse 4 keeps changing default audio device | Razer Insider
Skip to main content

I recently replaced Synapse 3 with Synapse 4 but now, every time i log into Windows after powering on my PC, the default audio device, which was set to my soundcard/PC speakers, is set to my Razer wireless headset. This is done by Synapse because when I completely close Synapse and restart it, it does the same (changing the default audio device from speakers to the Razer headset).

PLEASE stop messing with the default audio device. Like, I mean it. It's really, really annoying and I can set the default audio device perfectly fine myself. I truly don't need some external software for it, and most importantly: most of the audio I play, is through the speakers of my sound card. I only occasionally need the wireless headset and when that happens, i'll make sure i'll switch the output device to the headset. I promise.

PLEASE STOP SWITCHING THE DEFAULT AUDIO DEVICE FROM SPEAKERS TO THE WIRELESS HEADSET. PLEASE STOP MESSING WITH THE DEFAULT AUDIO DEVICE. PLEASE STOP SWITCHING THE DEFAULT AUDIO DEVICE FROM SPEAKERS TO THE WIRELESS HEADSET. PLEASE STOP MESSING WITH THE DEFAULT AUDIO DEVICE. PLEASE STOP SWITCHING THE DEFAULT AUDIO DEVICE FROM SPEAKERS TO THE WIRELESS HEADSET. PLEASE STOP MESSING WITH THE DEFAULT AUDIO DEVICE.

Thank you.

Also see these threads (same issue):

 


At this point I wouldn’t be surprised if they’d just say “It’s not a bug, it’s a feature.”


Here's a powershell script that fixes this shit. You need ‘AudioDeviceCmdlets’ for this:

  1. Open powershell as administrator
  2. Install AudioDeviceCmdlets: Install-Module -Name AudioDeviceCmdlets -Force -Scope AllUsers
  3. Import the module: Import-Module AudioDeviceCmdlets
  4. Get your audio device ID's: Get-AudioDevice -list
  5. Note down the ID for your preferred default audio device and the ID of the Razer audio device
  6. Replace the string of AudioDevice_A with your Razer ID in the script below
  7. Replace the string of AudioDevice_B with your preferred audio device in the script below
  8. Open task scheduler
  9. Create new task > Change user to SYSTEM
  10. Triggers: At log on
  11. Action: start a program > powershell.exe -noprofile -executionpolicy bypass -file C:\users\YOURUSERNAME\desktop\changeaudio.ps1

Save this script as changeaudio.ps1 on your desktop or other location but make sure to use the correct path in step 11.

# Function to check if RazerAppEngine.exe is running
function WaitFor-RazerAppEngine {
$ProcessName = "RazerAppEngine.exe"

Write-Host "Waiting for RazerAppEngine.exe to be active..."

# Loop until the process is found
while (-not (Get-Process -Name "RazerAppEngine" -ErrorAction SilentlyContinue)) {
Start-Sleep -Seconds 2 # Wait for 2 seconds before checking again
}

Write-Host "RazerAppEngine.exe is active. Executing the script..."
}

# Call the function to wait for the process
WaitFor-RazerAppEngine

# Delayed start
Start-Sleep -s 2

# Define AudioDevice by ID (ex: "{0.0.0.00000000}.{c4aadd95-74c7-4b3b-9508-b0ef36ff71ba}")
$AudioDevice_A = "{0.0.0.00000000}.{d7e30fee-a51f-4f33-858e-d951f3839f8b}"
$AudioDevice_B = "{0.0.0.00000000}.{ebd97e80-4318-4afd-b13e-168488c8d35b}"

# Toggle default playback device
$DefaultPlayback = Get-AudioDevice -Playback
If ($DefaultPlayback.ID -eq $AudioDevice_A) {Set-AudioDevice -ID $AudioDevice_B | Out-Null}
Else {Set-AudioDevice -ID $AudioDevice_A | Out-Null}

# Play sound
Start-Sleep -Seconds 3
$Sound = new-Object System.Media.SoundPlayer
$Sound.SoundLocation = "$env:SystemRoot\Media\Windows Background.wav"
$Sound.Play()

Thank you: https://github.com/frgnca/AudioDeviceCmdlets


Reply