[alsa-devel] Fwd: Re: Alsa USB Audio regression
-------- Original-Nachricht -------- Betreff: Re: [alsa-devel] Alsa USB Audio regression Datum: Tue, 16 Jul 2013 18:27:10 +0200 Von: Ulrich Günther ulrich.guenther@gmx.at An: Raymond Yau superquad.vortex2@gmail.com
Am 2013-07-16 04:14, schrieb Raymond Yau:
After Ubuntu 10.04 LTS (Ubuntu 10.10 works, Ubuntu 11.04 doesn't
work at
all, Ubuntu 11.10 and newer have the bug), the headset only plays
sound
at maximum volume level if the volume is turned down just a little no sound is being played.
I have filled a Ubuntu bug for 12.04 LTS at: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1200925 . I was advised to contact this mailing list.
AlsaInfo for Ubuntu 12.04 LTS with the bug:
http://www.alsa-project.org/db/?f=3bde76b15a15f585418a6a4a4703ca67fd4cdf42 .
AlsaInfo for Ubuntu 10.04 LTS without the bug:
http://www.alsa-project.org/db/?f=5824e55345c3f7128937405254485a489886b9dc
It is strange that dB range of your usb audio is 0 to 0.14 (only
small gain and no attenuation)
In 10.04 LTS pulseaudio provide software volume control
( 1.095| 0.000) I: alsa-sink.c: Driver does not support hardware
volume control, falling back to software volume control.
control.6 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 - 37' comment.dbmin 0 comment.dbmax 14 iface MIXER name 'Speaker Playback Volume' value 30 }
In 12.04 pulseaudio did not provide software volume attenuation
and use the speaker playback volume control
So does that mean that the bug is in pulseaudio, or could it be even
deeper like in the kernel or something?
Are there any significant change in volume when you use "alsamixer -c0" to change speaker playback volume from min 0dB to 0.14dB ?
Did pulseaudio provide software attuentation -1.61dB when the range of hardware volume control is only 0.14dB ?
- index: 0
name: <alsa_output.usb-0d8c_USB_Audio-00-Audio.analog-surround-71> driver: <module-alsa-card.c> flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY state: SUSPENDED suspend cause: IDLE priority: 9049 volume: 0: 94% 1: 94% 2: 94% 3: 94% 4: 94% 5: 94% 6: 94% 7: 94% 0: -1,61 dB 1: -1,61 dB 2: -1,61 dB 3: -1,61 dB 4: -1,61 dB 5: -1,61 dB 6: -1,61 dB 7: -1,61 dB balance 0,00 base volume: 99% -0,14 dB volume steps: 65537 muted: no
It is strange that 5.1 headset only support 8 channels playback
Okay i did try "alsamixer -c0" in Ubuntu 12.04 LTS, i selected the Usb Headset, Speaker was at 0 using the remote control from the headset i could bring the value to 86, so if the volume is turned down the value goes immideatly to 0. With the alsamixer i was able to regulate the value between 0 and 100, db-change is 0,01 at lowest and 0,14 at highest. I could increment/decrement the db-change in steps of 0,01 (with the up/down keys from the keyboard), the volume from the headset-speakers follows accordingly. When using anything besides the "alsamixer -c0" the volume can only be 0 or 86. I was able to play the test sounds for: front center, front left, front right, rear left,rear right and subwoofer every thing came from the right direction, as expected from a 5.1 headset. I was really surprised, thank you for pointing this out, it really didn't occur to me, maybe i saw the alsamixer some years ago but i really couldn't remember that it was there.
At Tue, 16 Jul 2013 21:35:50 +0200, Ulrich Günther wrote:
-------- Original-Nachricht -------- Betreff: Re: [alsa-devel] Alsa USB Audio regression Datum: Tue, 16 Jul 2013 18:27:10 +0200 Von: Ulrich Günther ulrich.guenther@gmx.at An: Raymond Yau superquad.vortex2@gmail.com
Am 2013-07-16 04:14, schrieb Raymond Yau:
After Ubuntu 10.04 LTS (Ubuntu 10.10 works, Ubuntu 11.04 doesn't
work at
all, Ubuntu 11.10 and newer have the bug), the headset only plays
sound
at maximum volume level if the volume is turned down just a little no sound is being played.
I have filled a Ubuntu bug for 12.04 LTS at: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1200925 . I was advised to contact this mailing list.
AlsaInfo for Ubuntu 12.04 LTS with the bug:
http://www.alsa-project.org/db/?f=3bde76b15a15f585418a6a4a4703ca67fd4cdf42 .
AlsaInfo for Ubuntu 10.04 LTS without the bug:
http://www.alsa-project.org/db/?f=5824e55345c3f7128937405254485a489886b9dc
It is strange that dB range of your usb audio is 0 to 0.14 (only
small gain and no attenuation)
In 10.04 LTS pulseaudio provide software volume control
( 1.095| 0.000) I: alsa-sink.c: Driver does not support hardware
volume control, falling back to software volume control.
control.6 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 - 37' comment.dbmin 0 comment.dbmax 14 iface MIXER name 'Speaker Playback Volume' value 30 }
In 12.04 pulseaudio did not provide software volume attenuation
and use the speaker playback volume control
So does that mean that the bug is in pulseaudio, or could it be even
deeper like in the kernel or something?
Are there any significant change in volume when you use "alsamixer -c0" to change speaker playback volume from min 0dB to 0.14dB ?
Did pulseaudio provide software attuentation -1.61dB when the range of hardware volume control is only 0.14dB ?
- index: 0
name: <alsa_output.usb-0d8c_USB_Audio-00-Audio.analog-surround-71> driver: <module-alsa-card.c> flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY state: SUSPENDED suspend cause: IDLE priority: 9049 volume: 0: 94% 1: 94% 2: 94% 3: 94% 4: 94% 5: 94% 6: 94% 7: 94% 0: -1,61 dB 1: -1,61 dB 2: -1,61 dB 3: -1,61 dB 4: -1,61 dB 5: -1,61 dB 6: -1,61 dB 7: -1,61 dB balance 0,00 base volume: 99% -0,14 dB volume steps: 65537 muted: no
It is strange that 5.1 headset only support 8 channels playback
Okay i did try "alsamixer -c0" in Ubuntu 12.04 LTS, i selected the Usb Headset, Speaker was at 0 using the remote control from the headset i could bring the value to 86, so if the volume is turned down the value goes immideatly to 0. With the alsamixer i was able to regulate the value between 0 and 100, db-change is 0,01 at lowest and 0,14 at highest. I could increment/decrement the db-change in steps of 0,01 (with the up/down keys from the keyboard), the volume from the headset-speakers follows accordingly. When using anything besides the "alsamixer -c0" the volume can only be 0 or 86. I was able to play the test sounds for: front center, front left, front right, rear left,rear right and subwoofer every thing came from the right direction, as expected from a 5.1 headset. I was really surprised, thank you for pointing this out, it really didn't occur to me, maybe i saw the alsamixer some years ago but i really couldn't remember that it was there.
The reason it doesn't work with PulseAudio is that the dB information obtained from the hardware is pretty bogus, thus it confuses the PA mixer which relies purely on dB level.
Have you tried any newer kernels, 3.9.x or 3.10.x, at least? 3.2.x is really old for debugging such a device-specific problem.
Takashi
After Ubuntu 10.04 LTS (Ubuntu 10.10 works, Ubuntu 11.04 doesn't
work at
all, Ubuntu 11.10 and newer have the bug), the headset only plays
sound
at maximum volume level if the volume is turned down just a little
no
sound is being played.
I have filled a Ubuntu bug for 12.04 LTS at: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1200925.
AlsaInfo for Ubuntu 12.04 LTS with the bug:
http://www.alsa-project.org/db/?f=3bde76b15a15f585418a6a4a4703ca67fd4cdf42
.
AlsaInfo for Ubuntu 10.04 LTS without the bug:
http://www.alsa-project.org/db/?f=5824e55345c3f7128937405254485a489886b9dc
It is strange that dB range of your usb audio is 0 to 0.14 (only
small gain and no attenuation)
In 10.04 LTS pulseaudio provide software volume control
( 1.095| 0.000) I: alsa-sink.c: Driver does not support hardware
volume control, falling back to software volume control.
control.6 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 - 37' comment.dbmin 0 comment.dbmax 14 iface MIXER name 'Speaker Playback Volume' value 30 }
In 12.04 pulseaudio did not provide software volume attenuation
and use the speaker playback volume control
So does that mean that the bug is in pulseaudio, or could it be even
deeper like in the kernel or something?
Are there any significant change in volume when you use "alsamixer -c0" to change speaker playback volume from min 0dB to 0.14dB ?
Did pulseaudio provide software attuentation -1.61dB when the range of hardware volume control is only 0.14dB ?
- index: 0
name: <alsa_output.usb-0d8c_USB_Audio-00-Audio.analog-surround-71> driver: <module-alsa-card.c> flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY state: SUSPENDED suspend cause: IDLE priority: 9049 volume: 0: 94% 1: 94% 2: 94% 3: 94% 4: 94% 5: 94% 6: 94% 7: 94% 0: -1,61 dB 1: -1,61 dB 2: -1,61 dB 3: -1,61 dB 4: -1,61 dB 5: -1,61 dB 6: -1,61 dB 7: -1,61 dB balance 0,00 base volume: 99% -0,14 dB volume steps: 65537 muted: no
It is strange that 5.1 headset only support 8 channels playback
Okay i did try "alsamixer -c0" in Ubuntu 12.04 LTS, i selected the Usb Headset, Speaker was at 0 using the remote control from the headset i could bring the value to 86, so if the volume is turned down the value goes immideatly to 0. With the alsamixer i was able to regulate the value between 0 and 100, db-change is 0,01 at lowest and 0,14 at highest. I could increment/decrement the db-change in steps of 0,01 (with the up/down keys from the keyboard), the volume from the headset-speakers follows accordingly. When using anything besides the "alsamixer -c0" the volume can only be 0 or 86. I was able to play the test sounds for: front center, front left, front right, rear left,rear right and subwoofer every thing came from the right direction, as expected from a 5.1 headset. I was really surprised, thank you for pointing this out, it really didn't occur to me, maybe i saw the alsamixer some years ago but i really couldn't remember that it was there.
The reason it doesn't work with PulseAudio is that the dB information obtained from the hardware is pretty bogus, thus it confuses the PA mixer which relies purely on dB level.
Have you tried any newer kernels, 3.9.x or 3.10.x, at least? 3.2.x is really old for debugging such a device-specific problem.
AudioControl Interface Descriptor: bLength 25
bDescriptorType 36 bDescriptorSubtype 4 (MIXER_UNIT) bUnitID 12 bNrInPins 3 baSourceID( 0) 1 baSourceID( 1) 9 baSourceID( 2) 11 bNrChannels 8 wChannelConfig 0x063f Left Front (L) Right Front (R) Center Front (C) Low Freqency Enhancement (LFE) Left Surround (LS) Right Surround (RS) Side Left (SL) Side Right (SR) iChannelNames 0 bmControls 0x00 bmControls 0x00 bmControls 0x00 iMixer 0 junk at descriptor end: 00 00 00 00 00 00 00 00 00
( 0.229| 0.000) D: [pulseaudio] alsa-mixer.c: Path analog-output-speaker (Speakers), direction=1, priority=100, probed=yes, supported=yes, has_mute=yes, has_volume=yes, has_dB=yes, min_volume=0, max_volume=37, min_dB=0, max_dB=0.14
( 0.229| 0.000) D: [pulseaudio] alsa-mixer.c: Element Speaker, direction=1, switch=1, volume=1, volume_limit=-1, enumeration=0, required=0, required_any=4, required_absent=0, mask=0x7ffffffffffff, n_channels=1, override_map=yes
( 0.229| 0.000) D: [pulseaudio] alsa-mixer.c: Jack Headphone, alsa_name='Headphone Jack', detection unavailable ( 0.229| 0.000) D: [pulseaudio] alsa-mixer.c: Jack Front Headphone, alsa_name='Front Headphone Jack', detection unavailable
( 0.229| 0.000) D: [pulseaudio] alsa-mixer.c: Jack Speaker Phantom, alsa_name='Speaker Phantom Jack', detection unavailable
( 0.229| 0.000) I: [pulseaudio] alsa-sink.c: Successfully enabled synchronous volume.
( 0.229| 0.000) I: [pulseaudio] alsa-sink.c: Hardware volume ranges from 0.00 dB to 0.14 dB.
( 0.230| 0.000) I: [pulseaudio] alsa-sink.c: Fixing base volume to -0.14 dB
( 0.230| 0.000) I: [pulseaudio] alsa-sink.c: Using hardware volume control. Hardware dB scale supported.
( 0.230| 0.000) I: [pulseaudio] alsa-sink.c: Using hardware mute control.
For your notebook , pulseaudio just add the ranges of softvol PCM, virtual master and speaker playback volume to get the hardware volume range -178.00 dB to 1.00 dB
( 0.497| 0.000) D: alsa-mixer.c: Activating path analog-output-speaker
( 0.497| 0.000) D: alsa-mixer.c: Path analog-output-speaker (Analog Speakers), direction=1, priority=100, probed=yes, supported=yes, has_mute=yes, has_volume=yes, has_dB=yes, min_volume=0, max_volume=64, min_dB=-178, max_dB=1
( 0.497| 0.000) D: alsa-mixer.c: Element Master, direction=1, switch=1, volume=1, enumeration=0, required=0, required_absent=0, mask=0x7ffffffffffff, n_channels=1, override_map=yes
( 0.497| 0.000) D: alsa-mixer.c: Element Headphone, direction=1, switch=1, volume=3, enumeration=0, required=0, required_absent=0, mask=0x3ff0000000000006, n_channels=2, override_map=no
( 0.497| 0.000) D: alsa-mixer.c: Element Speaker, direction=1, switch=1, volume=1, enumeration=0, required=4, required_absent=0, mask=0x3ff3600000000f66, n_channels=2, override_map=yes
( 0.498| 0.000) D: alsa-mixer.c: Element PCM, direction=1, switch=0, volume=1, enumeration=0, required=0, required_absent=0, mask=0x3600000000f66, n_channels=2, override_map=yes
( 0.498| 0.000) I: alsa-sink.c: Hardware volume ranges from -178.00 dB to 1.00 dB.
( 0.498| 0.000) I: alsa-sink.c: Fixing base volume to -1.00 dB
control.2 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 64' comment.dbmin -6300 comment.dbmax 100 iface MIXER name 'Speaker Playback Volume' value.0 52 value.1 52 }
control.4 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 64' comment.dbmin -6300 comment.dbmax 100 iface MIXER name 'Headphone Playback Volume' value.0 63 value.1 63 }
control.10 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 - 64' comment.dbmin -6400 comment.dbmax 0 iface MIXER name 'Master Playback Volume' value 52 }
control.12 { comment.access 'read write user' comment.type INTEGER comment.count 2 comment.range '0 - 255' comment.tlv '0000000100000008ffffec1400000014' comment.dbmin -5100 comment.dbmax 0 iface MIXER name 'PCM Playback Volume' value.0 255 value.1 255
it is strange that virtual master playback volume have a different dbmin and dbmax from the slaves (speaker and headphone)
control.6 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 - 37' comment.dbmin 0 comment.dbmax 14 iface MIXER name 'Speaker Playback Volume' value 30 }
In 12.04 pulseaudio did not provide software volume attenuation
and use the speaker playback volume control
So does that mean that the bug is in pulseaudio, or could it be even
deeper like in the kernel or something?
Are there any significant change in volume when you use "alsamixer -c0" to change speaker playback volume from min 0dB to 0.14dB ?
Did pulseaudio provide software attuentation -1.61dB when the range of hardware volume control is only 0.14dB ?
- index: 0
name: <alsa_output.usb-0d8c_USB_Audio-00-Audio.analog-surround-71> driver: <module-alsa-card.c> flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY state: SUSPENDED suspend cause: IDLE priority: 9049 volume: 0: 94% 1: 94% 2: 94% 3: 94% 4: 94% 5: 94% 6: 94% 7: 94% 0: -1,61 dB 1: -1,61 dB 2: -1,61 dB 3: -1,61 dB 4: -1,61 dB 5: -1,61 dB 6: -1,61 dB 7: -1,61 dB balance 0,00 base volume: 99% -0,14 dB volume steps: 65537 muted: no
It is strange that 5.1 headset only support 8 channels playback
Okay i did try "alsamixer -c0" in Ubuntu 12.04 LTS, i selected the Usb Headset, Speaker was at 0 using the remote control from the headset i could bring the value to 86, so if the volume is turned down the value goes immideatly to 0. With the alsamixer i was able to regulate the value between 0 and 100, db-change is 0,01 at lowest and 0,14 at highest. I could increment/decrement the db-change in steps of 0,01 (with the up/down keys from the keyboard), the volume from the headset-speakers follows accordingly.
Do you mean volume at max is much louder than volume at min ? (i.e. the range should be more than 0.14 dB )
When using anything besides the "alsamixer -c0" the volume can only be 0 or 86. I was able to play the test sounds for: front center, front left, front right, rear left,rear right and subwoofer every thing came from the right direction, as expected from a 5.1 headset. I was really surprised, thank you for pointing this out, it really didn't occur to me, maybe i saw the alsamixer some years ago but i really couldn't remember that it was there.
you are not using latest alsa driver since this patch should change the speaker playback volume to headphone playback volume
ALSA: usb - Don't create "Speaker" mixer controls on headphones and headsets
https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/commit/sound/us...
https://launchpadlibrarian.net/145274104/pulseverbose%28ubuntu13.04-linux-3....
( 0.906| 0.000) I: [pulseaudio] source.c: device.product.name = "Storm HP-USB500 5.1 Headset" ( 0.906| 0.000) I: [pulseaudio] source.c: device.serial = "0d8c_USB_Audio" ( 0.906| 0.000) I: [pulseaudio] source.c: device.form_factor = "headset" ( 0.906| 0.000) I: [pulseaudio] source.c: device.string = "1" ( 0.906| 0.000) I: [pulseaudio] source.c: module-udev-detect.discovered = "1" ( 0.906| 0.000) I: [pulseaudio] source.c: device.icon_name = "audio-headset-usb" ( 0.906| 0.000) I: [pulseaudio] source.c: device.intended_roles = "phone" ( 0.907| 0.001) I: [pulseaudio] alsa-sink.c: Using 2.0 fragments of size 524288 bytes (743.04ms), buffer size is 1048576 bytes (1486.08ms) ( 0.908| 0.000) I: [pulseaudio] alsa-sink.c: Time scheduling watermark is 5.03ms ( 0.908| 0.000) D: [pulseaudio] alsa-sink.c: hwbuf_unused=0 ( 0.908| 0.000) D: [pulseaudio] alsa-sink.c: setting avail_min=65314 ( 0.908| 0.000) D: [pulseaudio] alsa-mixer.c: Activating path analog-output-speaker ( 0.908| 0.000) D: [pulseaudio] alsa-mixer.c: Path analog-output-speaker (Speakers), direction=1, priority=100, probed=yes, supported=yes, has_mute=yes, has_volume=yes, has_dB=yes, min_volume=0, max_volume=37, min_dB=0, max_dB=0.14 ( 0.908| 0.000) D: [pulseaudio] alsa-mixer.c: Element Speaker, direction=1, switch=1, volume=1, volume_limit=-1, enumeration=0, required=0, required_any=4, required_absent=0, mask=0x7ffffffffffff, n_channels=1, override_map=yes ( 0.908| 0.000) D: [pulseaudio] alsa-mixer.c: Jack Headphone, alsa_name='Headphone Jack', detection unavailable ( 0.908| 0.000) D: [pulseaudio] alsa-mixer.c: Jack Front Headphone, alsa_name='Front Headphone Jack', detection unavailable ( 0.908| 0.000) D: [pulseaudio] alsa-mixer.c: Jack Speaker Phantom, alsa_name='Speaker Phantom Jack', detection unavailable ( 0.908| 0.000) I: [pulseaudio] alsa-sink.c: Successfully enabled deferred volume. ( 0.908| 0.000) I: [pulseaudio] alsa-sink.c: Hardware volume ranges from 0.00 dB to 0.14 dB. ( 0.908| 0.000) I: [pulseaudio] alsa-sink.c: Fixing base volume to -0.14 dB ( 0.908| 0.000) I: [pulseaudio] alsa-sink.c: Using hardware volume control. Hardware dB scale supported. ( 0.908| 0.000) I: [pulseaudio] alsa-sink.c: Using hardware mute control.
https://launchpadlibrarian.net/145274349/lusb-vvv-ubuntu13.04-linux3.10.1.tx...
participants (3)
-
Raymond Yau
-
Takashi Iwai
-
Ulrich Günther