Thread: [Alsa-user] snd-usb-audio: Volume much too loud on Plantronics GameCom 780 USB headset
Brought to you by:
perex
From: Mika F. <mik...@zo...> - 2013-01-30 00:02:42
|
Hi, I have the problem with my Plantronics GameCom 780 USB headset, that the volume under Linux is much too loud. If I play the Front_Center.wav test sound in a loop using aplay, and adjust the PCM volume control (the only volume control present), I have the following effect: - at 0% (-37 dB gain) there's silence - at 1% (-36 dB gain) it's already as loud as I would set it to for comfortable listening - at 10% (-30 dB gain) it's as loud as I'm willing to use with the headset still on - at 50% (-13 dB gain) the headset can be easily used as desktop speakers - at 100% (0 dB gain) it's really really loud There's also a "Loudness" control in alsamixer, which when enabled, makes things even louder... Interestingly I had basically the same problem under Windows 8 until I installed the Windows 7 driver for the headset provided by Plantronics. Windows 8 had probably used a generic USB audio driver for the headset before and that exhibited exactly the same issue that I have now under Linux. After installing the driver, the volume was behaving normally again, meaning that a much larger range than 0-10% of the volume was usable without risking ear damage. As an aside, in pulseaudio, the volume control behaves differently and everything below 24% (-36.93 dB) is silent. The usable range is 24% to 31% (-30.84 dB). Everything above that is much too loud. I think this is basically the same issue though. Does anyone have an idea what's going wrong here? And maybe also how it could be fixed, as apparently it *can* be fixed in software? I'd also be happy with a config file hack, that somehow scales the volume down and adjusts the reported gain levels so that the volume controls in pulseaudio make sense again. System configuration: Arch Linux x86_64 Kernel 3.7.4-1-ARCH alsa-lib 1.0.26-1 pulseaudio 3.0-2 lsusb output: http://pastebin.com/w8AM6DyC Thanks a lot in advance! Best, Mika Fischer |
From: Clemens L. <cla...@go...> - 2013-01-30 07:40:47
|
Mika Fischer wrote: > I have the problem with my Plantronics GameCom 780 USB headset, that > the volume under Linux is much too loud. > [...] > Interestingly I had basically the same problem under Windows 8 until I > installed the Windows 7 driver for the headset provided by > Plantronics. Windows 8 had probably used a generic USB audio driver > for the headset before and that exhibited exactly the same issue that > I have now under Linux. After installing the driver, the volume was > behaving normally again, [...] > Does anyone have an idea what's going wrong here? Apparently, the headset's firmware handles the volume settings in some incorrect way. > And maybe also how it could be fixed, as apparently it *can* be > fixed in software? Plantronics knows. > I'd also be happy with a config file hack, that somehow scales the > volume down and adjusts the reported gain levels so that the volume > controls in pulseaudio make sense again. This is possible, but only if we know what values to use. What are the smallest steps you can change with amixer? Regards, Clemens |
From: Mika F. <mik...@zo...> - 2013-01-30 08:25:57
|
On Wed, Jan 30, 2013 at 8:40 AM, Clemens Ladisch <cla...@go...> wrote: >> I'd also be happy with a config file hack, that somehow scales the >> volume down and adjusts the reported gain levels so that the volume >> controls in pulseaudio make sense again. > > This is possible, but only if we know what values to use. > > What are the smallest steps you can change with amixer? The smallest increments I could produce with amixer are: Playback 0 [0%] [-37.00dB] Playback 1 [3%] [-36.00dB] Playback 2 [5%] [-35.00dB] Playback 3 [8%] [-34.00dB] Playback 4 [11%] [-33.00dB] Playback 5 [14%] [-32.00dB] cget outout is: numid=2,iface=MIXER,name='PCM Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=37,step=0 : values=5,5 | dBminmax-min=42949635.96dB,max=0.00dB which looks quite different than the one for my onboard device: numid=30,iface=MIXER,name='Master Playback Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=64,step=0 : values=0 | dBscale-min=-64.00dB,step=1.00dB,mute=0 numid=45,iface=MIXER,name='PCM Playback Volume' ; type=INTEGER,access=rw---RW-,values=2,min=0,max=255,step=0 : values=253,253 | dBscale-min=-51.00dB,step=0.20dB,mute=0 Best, Mika |
From: Takashi I. <ti...@su...> - 2013-01-30 13:10:17
|
At Wed, 30 Jan 2013 09:25:27 +0100, Mika Fischer wrote: > > On Wed, Jan 30, 2013 at 8:40 AM, Clemens Ladisch > <cla...@go...> wrote: > >> I'd also be happy with a config file hack, that somehow scales the > >> volume down and adjusts the reported gain levels so that the volume > >> controls in pulseaudio make sense again. > > > > This is possible, but only if we know what values to use. > > > > What are the smallest steps you can change with amixer? > > The smallest increments I could produce with amixer are: > Playback 0 [0%] [-37.00dB] > Playback 1 [3%] [-36.00dB] > Playback 2 [5%] [-35.00dB] > Playback 3 [8%] [-34.00dB] > Playback 4 [11%] [-33.00dB] > Playback 5 [14%] [-32.00dB] > > cget outout is: > numid=2,iface=MIXER,name='PCM Playback Volume' > ; type=INTEGER,access=rw---R--,values=2,min=0,max=37,step=0 > : values=5,5 > | dBminmax-min=42949635.96dB,max=0.00dB Oh then this must be a bug in TLV handling in usb-audio driver. What shows with the patch below? Takashi --- diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c index e90daf8..ab8cbf7 100644 --- a/sound/usb/mixer.c +++ b/sound/usb/mixer.c @@ -986,6 +986,7 @@ static int get_min_max_with_quirks(struct usb_mixer_elem_info *cval, */ cval->dBmin = (convert_signed_value(cval, cval->min) * 100) / 256; cval->dBmax = (convert_signed_value(cval, cval->max) * 100) / 256; + printk("XXX dB=%d/%d, raw=%d/%d res=%d\n", cval->dBmin, cval->dBmax, cval->min, cval->max, cval->res); if (cval->dBmin > cval->dBmax) { /* something is wrong; assume it's either from/to 0dB */ if (cval->dBmin < 0) |
From: Mika F. <mik...@zo...> - 2013-01-30 19:48:52
|
On Wed, Jan 30, 2013 at 2:10 PM, Takashi Iwai <ti...@su...> wrote: > Oh then this must be a bug in TLV handling in usb-audio driver. > What shows with the patch below? The output is: ----------------------------------------------------- [ 4254.833075] usb 3-1.2: new full-speed USB device number 12 using ehci_hcd [ 4254.920395] XXX dB=0/0, raw=0/1 res=1 [ 4254.920403] XXX dB=0/0, raw=0/1 res=1 [ 4254.920408] XXX dB=0/0, raw=0/1 res=1 [ 4254.920412] XXX dB=0/0, raw=0/1 res=1 [ 4254.920418] XXX dB=0/0, raw=0/1 res=1 [ 4254.921401] input: Plantronics Plantronics GameCom 780 as /devices/pci0000:00/0000:00:1a.0/usb3/3-1/3-1.2/3-1.2:1.3/input/input23 [ 4254.921669] hid-generic 0003:047F:C010.000B: input,hidraw0: USB HID v1.00 Device [Plantronics Plantronics GameCom 780] on usb-0000:00:1a.0-1.2/input3 [ 4254.941254] XXX dB=-3700/0, raw=-9472/0 res=256 [ 4254.946077] XXX dB=-1600/1100, raw=-4096/2816 res=256 [ 4254.950948] XXX dB=-1600/1100, raw=-4096/2816 res=256 ----------------------------------------------------- Best, Mika |
From: Takashi I. <ti...@su...> - 2013-01-31 16:57:34
|
At Wed, 30 Jan 2013 20:48:22 +0100, Mika Fischer wrote: > > On Wed, Jan 30, 2013 at 2:10 PM, Takashi Iwai <ti...@su...> wrote: > > Oh then this must be a bug in TLV handling in usb-audio driver. > > What shows with the patch below? > > The output is: > ----------------------------------------------------- > [ 4254.833075] usb 3-1.2: new full-speed USB device number 12 using ehci_hcd > [ 4254.920395] XXX dB=0/0, raw=0/1 res=1 > [ 4254.920403] XXX dB=0/0, raw=0/1 res=1 > [ 4254.920408] XXX dB=0/0, raw=0/1 res=1 > [ 4254.920412] XXX dB=0/0, raw=0/1 res=1 > [ 4254.920418] XXX dB=0/0, raw=0/1 res=1 > [ 4254.921401] input: Plantronics Plantronics GameCom 780 as > /devices/pci0000:00/0000:00:1a.0/usb3/3-1/3-1.2/3-1.2:1.3/input/input23 > [ 4254.921669] hid-generic 0003:047F:C010.000B: input,hidraw0: USB HID > v1.00 Device [Plantronics Plantronics GameCom 780] on > usb-0000:00:1a.0-1.2/input3 > [ 4254.941254] XXX dB=-3700/0, raw=-9472/0 res=256 > [ 4254.946077] XXX dB=-1600/1100, raw=-4096/2816 res=256 > [ 4254.950948] XXX dB=-1600/1100, raw=-4096/2816 res=256 > ----------------------------------------------------- Thanks. It turned out that this is a bug in amixer side. It just prints unsigned value due to a missing cast. Fixed now in git tree. So, it's basically irrelevant from your original problem. Takashi |
From: Mika F. <mik...@zo...> - 2013-01-31 17:54:41
|
On Thu, Jan 31, 2013 at 5:57 PM, Takashi Iwai <ti...@su...> wrote: > Thanks. It turned out that this is a bug in amixer side. > It just prints unsigned value due to a missing cast. > Fixed now in git tree. Thanks, so now it prints: numid=2,iface=MIXER,name='PCM Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=37,step=0 : values=1,1 | dBminmax-min=-37.00dB,max=0.00dB > So, it's basically irrelevant from your original problem. OK. So can you, or anyone else, gather from this where the problem lies. And maybe also if and how it could be fixed or worked around? Many thanks! Best, Mika |