0

I have a Bluetooth audio device that I use to play sound from my computer. When playing music from a software, it works as expected. When using it with remote conferencing software like Ms Teams or Zoom, audio has small pops whenever people start or stop talking. It's not a crackling sound. It's as if the connection went to power save after 1 second of silence. I think it's not application related. I would like to test this theory, so how do I disable power save of Bluetooth connection in Windows 10?

In the Device Manager, for the Bluetooth device in question, Details tab, Power data selection, Current power state is now D0, Power capabilties are 00000009, PDCAP_D0_SUPPORTED, PDCAP_D3_SUPPORTED, but Power state mappings S0 through S5 are all Unspecified. As we know, in the Device Manager, there no longer is the Power Management tab which used to have Allow the computer to turn off this device to save power option. I tried the CsEnabled registry key and rebooted, no joy.

I have found the device with PowerShell command $dev = Get-PnpDevice -FriendlyName "NS-01G Pro", but $dev.PowerManagementSupported and $dev.PowerManagementCapabilities are both empty. $prop = Get-PnpDeviceProperty -InstanceId $dev.InstanceId -KeyName "DEVPKEY_Device_PowerData" gives a result, but seems like I'm not able to modify $prop.data number array. $wmidev = Get-WmiObject -Query "select * from win32_PnPEntity" | Where Name -Like "NS-01G Pro" works, but again I have not been able to modify its properties. I have not successfully found the device with Get-CimInstance queries, but that could be due to my lack of skills.

Any help? I'm new to PowerShell, so there might be commands that can do the trick. Any help to solve the actual problem is also welcome.

2
  • I don't believe the problem is with Bluetooth. Try for example this.
    – harrymc
    Commented Apr 22, 2022 at 15:43
  • That link has a work-around, not a solution. Playing music in the background of a Teams meeting is not a real solution and doesn't work when song changes.
    – JHM
    Commented Apr 25, 2022 at 6:40

2 Answers 2

1

Try playing silent WAV stream loop in RAM using PowerShell in the background like this (method combined from this answer, this thread, this Reddit post and a quarter-second silent WAV file from archive.org):

# Make the Base64 string that would be saved in the PowerShell script file
$WAV = [IO.File]::ReadAllBytes("C:\quarter-second-silence.wav")
$Base64WAV = [Convert]::ToBase64String($WAV)
$Base64WAV > C:\quarter-second-silence.txt
(copy output from C:\quarter-second-silence.txt using Notepad)

# Return the Base64 string to a byte array;
# also you can save the following code as PS1 file
# and execute from PowerShell via "& C:\Script.ps1"
# or better create a scheduled task to play hidden loop at log on
# as described further; be sure first to check if this helps by
# executing commands one-by-one in PowerShell and don't close
# PowerShell window after last command during test run
# (before making a Script.PS1 file)
$ConvertedWAV = [System.Convert]::FromBase64String("<paste copied output>")
$MemoryStream = [System.IO.MemoryStream]::new($ConvertedWAV)
# Loop playback of the returned string
$SoundPlayer = [System.Media.SoundPlayer]::new($MemoryStream)
$SoundPlayer.PlayLooping()

PowerShell script can be executed in background at user log on, and in this particular case the PowerShell task can be safely hidden for silent sound to be actually played in the background (so all you get is a PowerShell process in Task Manager, no extra flashing windows, no extra icons in taskbar or system tray). To execute PS1 file on startup completely silently, create a new task in Task Scheduler with the following action executed as hidden at user log on (you can use shortcut with the following target):

%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe -noexit -file "C:\Script.ps1"

(When creating task action and copy-paste this code, Task Scheduler will ask if you'd like to use command arguments for a program, agree to that. Script containing Base64-encoded WAV has a file size of ~58 KB and the PowerShell background task uses ~1.4 MB of RAM while running, so it's not a particularly resource-heavy solution.)

You may or may not be interested in examining my question at Stack Overflow which addresses a similar issue and provides a link to a method of keeping audio driver awake win Windows 10 (however it didn't help me with AppleAudio.sys versions 6.1.8000.1-6.1.8000.3 and Windows 10 version 21H2).

0

same issue with win10 since i reinstalled the bt driver couple mounth ago, very annoying. it also cuts the audio randomlly during a second or two.

the problem seems to be the microsoft way to manage bt audio cause it doesn't do the problem with the same machine with win7.

with win7, the audio runs constantly, inducing a permanent weak background noise when the amplifier is at high volume.

i personnaly prefer to have little parasitic sound permently than ramdom pop and cuts.

i can correct the problem by using a software like fl studio that runs the sound continuouslly, avoiding windows to disconnect/reconnect bt and randomly loose the sound.

mouse too have disconnection/connection issues that forces me to unpair/pair the device sometimes, and throw it away...

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .