Running Gentoo with pulseaudio version 5.0-r6. Microphone is a logitech C525 webcam (usb audio). I believe the problem started with PA 5, although I haven't tried downgrading to PA 4. The problem is that whenever the input volume is not exactly 100%, the sound from the microphone is severely distorted with static/crackling. The VU meter in pavucontrol will go all the way to max when this happens. I have to set the volume to 100% both in the "input devices" as well as the "recording" tabs in pavucontrol to make the microphone work. Once they are at 100% all static/distortion disappears and the microphone works normally. My /etc/pulse/daemon.conf file is "stock" (I have not changed anything). I have deleted any PA config in my home directory as well as logged in with a new user to make sure it's not some left over config causing the problem.
you have to post output of alsa-info.sh pactl list sources
Created attachment 111445 [details] alsa-info output
Created attachment 111446 [details] pactl list sources output
I have a similar issue but I can also reproduce the extreme loud sound with a simple playback (with aplay). The playback gets extreme loud if the per-application sound volume is not exactly 100% (or 0, which mutes it). The error seem to happen only to mono sound (that's why I think it's the same issue: the mic input is also mono). I first noticed it with non-kde notifications on a kde desktop (the notification was coming from thunderbird) Then it happened with pidgin voice call. Then I traced the issue to mono playback. The sample I used was: test.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 16000 Hz. I also tested this on a non-kde (simple openbox) desktop, with pavucontrol. (under kde I tested this using both pavucontrol and kmix to change the per-stream volume). I've tried different settings for resamnple-method (in daemon.conf) (speex-float-1, trivial, ffmpeg), they all produced the same behavior. On another laptop we could reproduce the extreme loud sound by changing the sound level of a paused music player (audacious) while playing the mono sample with aplay (that is: the mono sample's sound settings were not touched, that was the only actively playing sound and it got extremely loud just by changing the sound volume of another application). On this particular laptop the threshold for the "loudness" seems to be around 40% instead of 100% (setting the volume below 40% results in extreme loudness). I first noticed the issue with pulseaudio-5.0, too.
sorry, forgot to mention: tested on arch linux: 3.17.6-1-ARCH #1 SMP PREEMPT Sun Dec 7 23:43:32 UTC 2014 x86_64 GNU/Linux also, the only change from stock pulse/daemon.conf is flat-volumes (set to 'no' on my laptop). but the issue happens with that left on 'yes', too.
control.3 { iface MIXER name 'Mic Capture Volume' value 16 comment { access 'read write' type INTEGER count 1 range '0 - 16' dbmin 600 dbmax 3000 dbvalue.0 3000 } the dB range of most logitech web cam are above 0dB minimum is +6dB and maximum is 30dB Source #0 State: SUSPENDED Name: alsa_input.usb-046d_HD_Webcam_C525_5D790D20-00-C525.analog-mono Description: HD Webcam C525 Analog Mono Driver: module-alsa-card.c Sample Specification: s16le 1ch 48000Hz Channel Map: mono Owner Module: 8 Mute: no Volume: mono: 65536 / 100% / 0.00 dB balance 0.00 Base Volume: 20724 / 32% / -30.00 dB Monitor of Sink: n/a Latency: 0 usec, configured 0 usec Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY
do you have the same web cam since his HD web seem capable of recording at 48000Hz which has better quantity than those Quick cam which record at 160000Hz
http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/modules/alsa/alsa-source.c /* Shift down by the base volume, so that 0dB becomes maximum volume */ pa_sw_cvolume_multiply_scalar(&r, &r, s->base_volume); pa_log_debug("Read hardware volume: %s", pa_cvolume_snprint_verbose(volume_buf, sizeof(volume_buf), &r, &s->channel_map, u->mixer_path->has_dB)); if (pa_cvolume_equal(&u->hardware_volume, &r)) return; s->real_volume = u->hardware_volume = r; you have to provide pulseaudio verbose when you change volume from min to max as 0dB is not inside dB range pa_log_debug("Requested volume: %s", pa_cvolume_snprint_verbose(volume_buf, sizeof(volume_buf), &s->real_volume, &s->channel_map, true)); pa_log_debug("Got hardware volume: %s", pa_cvolume_snprint_verbose(volume_buf, sizeof(volume_buf), &u->hardware_volume, &s->channel_map, true)); pa_log_debug("Calculated software volume: %s (accurate-enough=%s)", pa_cvolume_snprint_verbose(volume_buf, sizeof(volume_buf), &new_soft_volume, &s->channel_map, true), pa_yes_no(accurate_enough));
Raymond, if those comments (6 - 8) were made for me: - I don't have problem with webcam (or mic), I have a general issue with mono playback (I just added comments to this bug report as I believe it's the same issue), so I don't think the config in comment-7 would help me - I'll attach two pulsaudio logs. 1) in the first one I started playback then changed volume from 100% to about 95% of the aplay stream (at this point the sound gets extra loud / distorted) then changed the volume back to 100% (the loudness / distortion stopped) 2) in the second one I started playback then changed the volume from 100% to about 95% of the aplay stream (at this point the sound gets loud / distorted as above) and left the mixer setting like that until the end of the audio. thanks for investigating
Created attachment 112048 [details] first mono playback (100% -> 95% -> 100%) pulseaudio log during mono playback / mixer setting: # 10:14:00: aplay test.wav at # 10:14:20: change volume of aplay stream from 100% to below 100% (2-3 steps, one step per second) # 10:14:40: change volume of aplay stream back to 100% # 10:14:43: end of playback
Created attachment 112049 [details] second mono playback (100% -> 95%) pulseaudio log during mono playback / mixer setting: # 10:25:00: aplay test.wav # 10:25:10: change volume of aplay stream from 100% to below 100% (1 step) -> distorted / extra loud sound # 10:25:44: end of playback
Raymond: I'm confused also. Are you asking me to try something? If so, what exactly?
you have to open another bug report as your h340 are different from hd webcam state.H340 { control.1 { iface PCM name 'Playback Channel Map' value.0 3 value.1 4 comment { access read type INTEGER count 2 range '0 - 36' } } control.2 { iface PCM name 'Capture Channel Map' value.0 0 value.1 0 comment { access read type INTEGER count 2 range '0 - 36' } } control.3 { iface MIXER name 'Mic Capture Switch' value true comment { access 'read write' type BOOLEAN count 1 } } control.4 { iface MIXER name 'Mic Capture Volume' value 36 comment { access 'read write' type INTEGER count 1 range '0 - 44' dbmin -2500 dbmax 800 dbvalue.0 200 } } control.5 { iface MIXER name 'PCM Playback Switch' value true comment { access 'read write' type BOOLEAN count 1 } } control.6 { iface MIXER name 'PCM Playback Volume' value.0 4 value.1 4 comment { access 'read write' type INTEGER count 2 range '0 - 44' dbmin -4100 dbmax 300 dbvalue.0 -3700 dbvalue.1 -3700 } } }
Jan 10 10:25:00 foo.example.com pulseaudio[3356]: (1713.015| 0.000) [pulseaudio][pulsecore/sink-input.c:343 pa_sink_input_new()] Negotiated format: pcm, format.sample_format = "\"s16le\"" format.rate = "16000" format.channels = "1" format.channel_map = "\"mono\"" Jan 10 10:25:00 foo.example.com pulseaudio[3356]: (1713.015| 0.000) [pulseaudio][pulsecore/sink-input.c:414 pa_sink_input_new()] Trying to change sample rate Jan 10 10:25:00 foo.example.com pulseaudio[3356]: (1713.015| 0.000) [pulseaudio][pulsecore/sink.c:1453 pa_sink_update_rate()] Suspending sink alsa_output.usb-Logitech_Inc._Logitech_USB_Headset_H340-00-H340.analog-stereo due to changing the sample rate. Jan 10 10:25:00 foo.example.com pulseaudio[3356]: (1713.015| 0.000) [pulseaudio][modules/alsa/alsa-sink.c:1604 sink_update_rate_cb()] Sink does not support sample rate of 48000 Hz capture support mono 16000Hz but playback stereo does not support 48000Hz
Raymond: I've tried with different sound cards (built-in intel audio (hdaudio CX20590) and the usb-headset (Logitech USB Headset H340), so the problem is probably not sound-card specific. I also tried a 44.1k and a 48k mono-stream (resampled the 16k test wav with audacity), still the same error. Markus: could you check with pavucontrol (or kmix) if the microphone's stream's volume is below 100% and if so, whether changing that to 100% fixes the issue for you. If not, I'll open a separate ticket for my issue.
Radics: I have to set both the input volume and the recording volume to 100% to make it work.
Yep, probably the same issue then. Volume mixing of mono streams seems to be broken (presumably the stream volume mixing is not used when the stream volume is 100%).
refer to two logs , hardware volum seem always below -40dB only software volume close to maximum 10 10:14:00 foo.example.com pulseaudio[3356]: (1052.715| 0.000) [alsa-sink-USB Audio][modules/alsa/alsa-sink.c:1337 sink_set_volume_cb()] Requested volume: front-left: 13120 / 20% / -41.91 dB, front-right: 13120 / 20% / -41.91 dB Jan 10 10:14:00 foo.example.com pulseaudio[3356]: (1052.715| 0.000) [alsa-sink-USB Audio][modules/alsa/alsa-sink.c:1339 sink_set_volume_cb()] Got hardware volume: front-left: 13588 / 21% / -41.00 dB, front-right: 13588 / 21% / -41.00 dB Jan 10 10:14:00 foo.example.com pulseaudio[3356]: (1052.715| 0.000) [alsa-sink-USB Audio][modules/alsa/alsa-sink.c:1342 sink_set_volume_cb()] Calculated software volume: front-left: 63279 / 97% / -0.91 dB, front-right: 63279 / 97% / -0.91 dB (accurate-enough=no) 10:14:43 foo.example.com pulseaudio[3356]: (1096.490| 0.005) [alsa-sink-USB Audio][modules/alsa/alsa-sink.c:1337 sink_set_volume_cb()] Requested volume: front-left: 13120 / 20% / -41.91 dB, front-right: 13120 / 20% / -41.91 dB Jan 10 10:14:43 foo.example.com pulseaudio[3356]: (1096.490| 0.000) [alsa-sink-USB Audio][modules/alsa/alsa-sink.c:1339 sink_set_volume_cb()] Got hardware volume: front-left: 13588 / 21% / -41.00 dB, front-right: 13588 / 21% / -41.00 dB Jan 10 10:14:43 foo.example.com pulseaudio[3356]: (1096.490| 0.000) [alsa-sink-USB Audio][modules/alsa/alsa-sink.c:1342 sink_set_volume_cb()] Calculated software volume: front-left: 63279 / 97% / -0.91 dB, front-right: 63279 / 97% / -0.91 dB (accurate-enough=no) 10 10:25:00 foo.example.com pulseaudio[3356]: (1713.033| 0.000) [alsa-sink-USB Audio][modules/alsa/alsa-sink.c:1337 sink_set_volume_cb()] Requested volume: front-left: 13120 / 20% / -41.91 dB, front-right: 13120 / 20% / -41.91 dB Jan 10 10:25:00 foo.example.com pulseaudio[3356]: (1713.033| 0.000) [alsa-sink-USB Audio][modules/alsa/alsa-sink.c:1339 sink_set_volume_cb()] Got hardware volume: front-left: 13588 / 21% / -41.00 dB, front-right: 13588 / 21% / -41.00 dB Jan 10 10:25:00 foo.example.com pulseaudio[3356]: (1713.033| 0.000) [alsa-sink-USB Audio][modules/alsa/alsa-sink.c:1342 sink_set_volume_cb()] Calculated software volume: front-left: 63279 / 97% / -0.91 dB, front-right: 63279 / 97% / -0.91 dB (accurate-enough=no) 10:25:44 foo.example.com pulseaudio[3356]: (1756.805| 0.003) [alsa-sink-USB Audio][modules/alsa/alsa-sink.c:1337 sink_set_volume_cb()] Requested volume: front-left: 13120 / 20% / -41.91 dB, front-right: 13120 / 20% / -41.91 dB Jan 10 10:25:44 foo.example.com pulseaudio[3356]: (1756.805| 0.000) [alsa-sink-USB Audio][modules/alsa/alsa-sink.c:1339 sink_set_volume_cb()] Got hardware volume: front-left: 13588 / 21% / -41.00 dB, front-right: 13588 / 21% / -41.00 dB Jan 10 10:25:44 foo.example.com pulseaudio[3356]: (1756.806| 0.000) [alsa-sink-USB Audio][modules/alsa/alsa-sink.c:1342 sink_set_volume_cb()] Calculated software volume: front-left: 63279 / 97% / -0.91 dB, front-right: 63279 / 97% / -0.91 dB (accurate-enough=no)
what your log indicate pulseaudio try to set the requested volume below min dB of hardware volume -41dB by adjust the software volume and is different from what you said requested volume is maximum -41.91 dB = -41db + (-0.91)dB
seem you are adjusting the software volume of the stream but your hardware volume are quite low -37dB dbvalue.0 -3700 dbvalue.1 -3700
>> seem you are adjusting the software volume of the stream but your hardware >> volume are quite low -37dB I did the test with low master-volume settings to protect my ears/headphones... The issue happens with master volume at 100%, too. Could you just try reproducing the issue? Just play back a mono audio stream (with aplay for example) and change the stream's volume from 100% down towards 0%. At one point (just below 100% in my case, around 40% for some others here) the volume gets extra loud (above 100%) and the sound distorted. As I said above, happens on different hardware, independent of the original mono stream's sample rate and independent of the resamnple-method used.
I can reproduce the issue Radics Péter is describing about Mono playbacks. When speech-dispatch (Client #6 in pactl list clients) volume is not 100% or 0% or less than 3% (~ -94dB), it sounds loud and distorted or rusty. speech-dispatcher is a mono stream. I use flat-volumes = no. Using Sabayon Linux media-sound/pulseaudio-5.0-r4. About recording streams: When I run env PULSE_PROP="filter.want=echo-cancel" mumble if Mumble volume is no set to 100% or 0%, it picks lot of noise. I dont have any issue change the volume when executing mumble (without echo-cancel).
Created attachment 112803 [details] pactl list clients output
Created attachment 112804 [details] Mumble Screenshot Showing Mumble audio statistics when recording volume is 66% (not equal to 100%). Mumble records lot of noise although the room was silent. Using echo-cancel.
Created attachment 112807 [details] pulseaudio -vvvvv Launch mumble with echo-cancel - recording volume 100% Launch pavucontrol - set mumble recoding volume to 66% Quit mumble and pavucontrol.
Running Arch Linux with pulseaudio 5.0 Experiencing the same issue recording audio from a Logitech Webcam Pro 9000. Changing the volume to anything but 100% makes it insanely loud. Pretty sure this has worked with previous pulseaudio versions.
Just wanted to chime in and say "me too" on this bug. I'm running Arch Linux and using a SteelSeries H Wireless headset (http://steelseries.com/products/audio/steelseries-h-wireless). I have to have my mic and all recording streams at 100% otherwise I get severe static. 0% prevents the static, but of course then I get no volume at all. This seems to be a somewhat recent bug, because I know for a fact I was able to adjust my mic and apps like Mumble before without issue.
(In reply to Vasco Almeida from comment #25) > Created attachment 112807 [details] > pulseaudio -vvvvv > > Launch mumble with echo-cancel - recording volume 100% > Launch pavucontrol - set mumble recoding volume to 66% > Quit mumble and pavucontrol. pulseaudio] alsa-mixer.c: Path analog-input-front-mic (Front Microphone), direction=2, priority=85, probed=yes, supported=yes, has_mute=yes, has_volume=yes, has_dB=yes, min_volume=0, max_volume=31, min_dB=-16,5, max_dB=60,75 D: [pulseaudio] alsa-mixer.c: Element Capture, direction=2, switch=1, volume=1, volume_limit=-1, enumeration=0, required=0, required_any=0, required_absent=0, mask=0x3600000000f66, n_channels=2, override_map=yes D: [pulseaudio] alsa-mixer.c: Element Front Mic Boost, direction=2, switch=0, volume=1, volume_limit=-1, enumeration=0, required=0, required_any=4, required_absent=0, mask=0x3600000000f66, n_channels=2, override_map=yes D: [pulseaudio] alsa-mixer.c: Element Front Mic, direction=2, switch=1, volume=0, volume_limit=-1, enumeration=0, required=0, required_any=4, required_absent=0, mask=0x0, n_channels=0, override_map=yes D: [pulseaudio] alsa-mixer.c: Element Rear Mic, direction=2, switch=2, volume=0, volume_limit=-1, enumeration=0, required=0, required_any=0, required_absent=0,::::: mask=0x0, n_channels=0, override_map=no D: [pulseaudio] alsa-mixer.c: Element Rear Mic Boost, direction=2, switch=0, volume=2, volume_limit=-1, enumeration=0, required=0, required_any=0, required_absent=0, mask=0x6, n_channels=2, override_map=no D: [pulseaudio] alsa-mixer.c: Element Line, direction=2, switch=2, volume=0, volume_limit=-1, enumeration=0, required=0, required_any=0, required_absent=0, mask=0x0, n_channels=0, override_map=no D: [pulseaudio] alsa-mixer.c: Jack Front Mic, alsa_name='Front Mic Jack', detection unavailable D: [pulseaudio] alsa-mixer.c: Jack Front Mic Phantom, alsa_name='Front Mic Phantom Jack', detection possible I: [pulseaudio] alsa-source.c: Successfully enabled deferred volume. I: [pulseaudio] alsa-source.c: Hardware volume ranges from -16,50 dB to 60,75 dB. I: [pulseaudio] alsa-source.c: Fixing base volume to -60,75 dB I: [pulseaudio] alsa-source.c: Using hardware volume control. Hardware dB scale supported. I: [pulseaudio] alsa-source.c: Using hardware mute control. D: [pulseaudio] alsa-util.c: snd_pcm_dump(): D: [pulseaudio] alsa-util.c: Hardware PCM card 0 'HDA Intel' device 0 subdevice 0 D: [pulseaudio] alsa-util.c: Its setup is: D: [pulseaudio] alsa-util.c: stream : CAPTURE D: [pulseaudio] alsa-util.c: access : MMAP_INTERLEAVED D: [pulseaudio] alsa-util.c: format : S16_LE D: [pulseaudio] alsa-util.c: subformat : STD D: [pulseaudio] alsa-util.c: channels : 2 D: [pulseaudio] alsa-util.c: rate : 44100 D: [pulseaudio] alsa-util.c: exact rate : 44100 (44100/1) D: [pulseaudio] alsa-util.c: msbits : 16 D: [pulseaudio] alsa-util.c: buffer_size : 16384 D: [pulseaudio] alsa-util.c: period_size : 8192 D: [pulseaudio] alsa-util.c: period_time : 185759 D: [pulseaudio] alsa-util.c: tstamp_mode : ENABLE D: [pulseaudio] alsa-util.c: period_step : 1 D: [pulseaudio] alsa-util.c: avail_min : 15502 D: [pulseaudio] alsa-util.c: period_event : 0 D: [pulseaudio] alsa-util.c: start_threshold : -1 D: [pulseaudio] alsa-util.c: stop_threshold : 4611686018427387904 D: [pulseaudio] alsa-util.c: silence_threshold: 0 D: [pulseaudio] alsa-util.c: silence_size : 0 D: [pulseaudio] alsa-util.c: boundary : 4611686018427387904 D: [pulseaudio] alsa-util.c: appl_ptr : 0 D: [pulseaudio] alsa-util.c: hw_ptr : 0 D: [alsa-source-VT1705 Analog] alsa-source.c: Thread starting up D: [pulseaudio] alsa-source.c: Requested volume: front-left: 32847 / 50% / -18,00 dB, front-right: 32847 / 50% / -18,00 dB D: [pulseaudio] alsa-source.c: Got hardware volume: front-left: 29843 / 46% / -20,50 dB, front-right: 29843 / 46% / -20,50 dB D: [pulseaudio] alsa-source.c: Calculated software volume: front-left: 72133 / 110% / 2,50 dB, front-right: 72133 / 110% / 2,50 dB (accurate-enough=no) D: [pulseaudio] alsa-source.c: Written HW volume did not match with the request: front-left: 32847 / 50% / -18,00 dB, front-right: 32847 / 50% / -18,00 dB (request) != front-left: 29843 / 46% / -20,50 dB, front-right: 29843 / 46% / -20,50 dB you have to provide output of alsa-info.sh how many steps in capture volume and mic boost ?
Sabayon Linux media-sound/pulseaudio-5.0-r7 resolved my issues. Now the playback speech-dispatcher mono streams doesn't sound distorted and loud when volume is no set to 100%; and recording stream of mumble with echo-cancel module doesn't pick noise. Looking to the changelog of http://packages.gentoo.org/package/media-sound/pulseaudio , this seems to be the patch that resolved my issues http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/media-sound/pulseaudio/files/svolume-fix_param_loading_undefined_beh.patch?revision=1.1&view=markup .
Created attachment 113244 [details] amixer output
Created attachment 113245 [details] vasco alsa-info.sh ouput
I'm pretty sure this bug is the same: https://bugs.freedesktop.org/show_bug.cgi?id=88266
Confirming that the problem has been fixed in media-sound/pulseaudio-5.0-r7 (gentoo). I recorded from my mono microphone while changing input & recording volume and no static/distortion was present. Volume in the recording changed as expected.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.