Razer Kraken USB headset buzzing

Hi everybody,

I have a user report, that on windows when using our App with a specific headphone, the “Razer Kraken 7.1 Chroma” (not V2), there is a buzzing sound.
When he changes the AudioDeviceType from WindowsMedia to DirectSound, the issue is gone.
It happened on two different PCs, only with that specific headset. He tried a driver update, which didn’t help.
Did anybody come across a similar problem?
Maybe with any other USB headset?

It sounds so esotheric, that it might not be worth following that track, but that user happens to be our QA person :wink:


Maybe try a different/larger buffer size? Does your app use the Juce AudioDeviceSelectorComponent to allow the user to tweak and test those settings?

I don’t use the AudioDeviceSelectorComponent, so it uses the default, IIRC it was 480 samples on windows, whenever I checked.
But I save the settings in my own file, so I can force a different buffer size for testing… I’ll ask him to try that.

Ok, changing the block size didn’t help much, but at the same time I only carry that setting, but we didn’t expose it to users anywhere, so I would take my implementation with a pinch of salt…
But we leave it, as it seems to be only that one particular device…
Cheers again!

We just fixed a bug for that particular headset. The synapse drivers from Razer don’t handle driver defaults as they’re supposed to, IIRC.

E.g. if you initialize the headset, microphone or output, using something like WAVEFORMATEXTENSIBLE (used by WASAPI and Windows Media), you have to specify the exact configuration in the .dwChannelMask member, and cannot just use 0 which is supposed to use the device default configuration

Maybe that’s something to look into.

1 Like

Thanks @Mayae.
So how does that fix work? Do I have to patch JUCE, like here?

Hi @daniel,

so I forgot to mention that it wasn’t actually JUCE we patched (although something similar), so I wouldn’t know exactly. But yes, around that location looks good. It seems especially interesting the channel mask is never checked, assigned or anything, it is just derived directly.

Take note of this quote:

The mix format is the format that the audio engine uses internally for digital processing of shared-mode streams. This format is not necessarily a format that the audio endpoint device supports.