Bug 366001 - PulseAudio distorts audio (over amplification)
Summary: PulseAudio distorts audio (over amplification)
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: pulseaudio
Version: 8
Hardware: All
OS: Linux
low
low
Target Milestone: ---
Assignee: Lennart Poettering
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2007-11-04 19:20 UTC by Valent Turkovic
Modified: 2008-09-09 22:44 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2008-09-09 22:44:09 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
smolt profile (5.95 KB, application/octet-stream)
2007-11-09 14:07 UTC, Valent Turkovic
no flags Details
modprobe.conf (124 bytes, application/octet-stream)
2007-11-11 10:56 UTC, Valent Turkovic
no flags Details
My most recent scsconfig.log file. (42.66 KB, text/plain)
2007-12-26 03:01 UTC, Gideon Mayhak
no flags Details

Description Valent Turkovic 2007-11-04 19:20:23 UTC
Description of problem:
When I play any audio it is over amplified and sounds really distorted.
I tested this in totem with ogg and mp3 files (with fluendo plugins) and in
Firefox with flash videos. When I open pavucontrol and lower amplification to
around 50% it starts to sound ok - without characteristic over amplification
distortions.

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.
  
Actual results:


Expected results:


Additional info:
I tested this on Fedora 8 RC3 with latest updates.

Tell me what more feedback you need from me.

Comment 1 David Timms 2007-11-09 12:52:07 UTC
Do you have a smolt profile you can point to, or attach ? :
lspci |grep media
lsmod |grep snd
Have you a different machine that acts the same way ?

Comment 2 Valent Turkovic 2007-11-09 14:07:24 UTC
Created attachment 252751 [details]
smolt profile

here is my smolt profile

Comment 3 Valent Turkovic 2007-11-09 14:09:23 UTC
I'll test it on another machine this weekend.

[root@valent ~]# lspci |grep -i media

[root@valent ~]# lsmod |grep snd
snd_hda_intel         274657  3 
snd_seq_dummy           6725  0 
snd_seq_oss            29889  0 
snd_seq_midi_event      9793  1 snd_seq_oss
snd_seq                44849  5 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event
snd_seq_device         10061  3 snd_seq_dummy,snd_seq_oss,snd_seq
snd_pcm_oss            37569  0 
snd_mixer_oss          16705  1 snd_pcm_oss
snd_pcm                63685  3 snd_hda_intel,snd_pcm_oss
snd_timer              20549  2 snd_seq,snd_pcm
snd_page_alloc         11337  2 snd_hda_intel,snd_pcm
snd_hwdep              10309  1 snd_hda_intel
snd                    43461  14
snd_hda_intel,snd_seq_oss,snd_seq,snd_seq_device,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer,snd_hwdep
soundcore               9633  1 snd


Comment 4 Valent Turkovic 2007-11-09 14:21:32 UTC
here is the full lspci list:

# lspci
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT
Express Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS,
943/940GML Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS, 943/940GML
Express Integrated Graphics Controller (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition
Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1
(rev 02)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2
(rev 02)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI
Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI
Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI
Controller #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI
Controller #4 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI
Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge
(rev 02)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller
(rev 02)
00:1f.2 SATA controller: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA AHCI
Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)
02:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network
Connection (rev 02)
05:05.0 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller
05:05.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822
SD/SDIO/MMC/MS/MSPro Host Adapter (rev 19)
05:05.2 System peripheral: Ricoh Co Ltd Unknown device 0843 (rev 01)
05:05.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter
(rev 0a)
05:05.4 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 05)
05:08.0 Ethernet controller: Intel Corporation PRO/100 VE Network Connection
(rev 02)


Comment 5 David Timms 2007-11-10 23:53:22 UTC
(In reply to comment #2)
> Created an attachment (id=252751) [edit]
> smolt profile
Thanks for the previous info. Next time please choose the type as plain text
{for text files}, it makes it so much simpler to read.

Can you attach your /etc/modprobe.conf ?
Has that been modified at all from install ?

Have you tried any of the module options mentioned in ? :
http://fedoraproject.org/wiki/KernelHdaDriverOptions

On fedora-devel-list you mention the bug applies to F8; is that from a fresh
install or from upgrade from rc3 ?

Please check the ~"I'm providing requested info box", when you provide the info
requested ;)

Comment 6 Valent Turkovic 2007-11-11 10:54:41 UTC
I did both times a clean install. I run both in parallel in separate partition;
RC3 and F8 final. RC3 is now also Final but I'll update RC3 to rawhide.

I can't find "I'm providing requested info box" - where is it?

Comment 7 Valent Turkovic 2007-11-11 10:56:09 UTC
Created attachment 254361 [details]
modprobe.conf

unmodified modprobe.conf

Comment 8 Valent Turkovic 2007-11-11 19:49:44 UTC
I tested it on other laptop and there is no sign of this issue, so it looks it
is probably hardware specific and not a general bug...

Comment 9 David Timms 2007-11-12 09:18:06 UTC
> I tested it on other laptop and there is no sign of this issue, so it looks it
> is probably hardware specific and not a general bug...

Valent, did you try the additional parameters mentioned on my previous request ?
The wiki page seems to suggest some hardware that the snd-intel-hda driver uses
required additional model specific tweaks. Perhaps there is a suitable tweak for
your model. I think it would be worth while trying those items out.

I guess if you created an annoying test tone wave file at peak digital level,
and then played that, adjusting the volumes, you might be able to see which
level control causes overload, ie is it only the wav part, the master or can it
be done from CD input level as well ?

On much earlier audio cards, wav gain was 0-100 {ie ~-60dB to 0dB=unity}.
A previous laptop I had the same wav gain 0-100 {but ~-60dB to +15dB = gain}. If
I set that fader greater than around 70-71% audio would be distorted no matter
how soft the master {main} output was set.

I don't know if that sort of chip weirdness is taken into account, but it could
be the underlying cause in this case as well ?

Some initial info on laptop man/model, sound chip and stuff added to the
hardware link in smolt could help other users in understanding the problem and
workarounds:
http://smolt.fedoraproject.org/show_all?UUID=c8dbb9d3-a9bd-4ba6-b92e-4a294ba5a95f

You might notice that last time I set your bug more needinfo:reporter. The idea
behind that is that when you supply information {comment/attach requested} to
the bug, you click the checkbox {just above the comment from memory}, and
bugzilla tells the bug owner that you feel you have provided the specific info
they requested.

DaveT.

Comment 10 David Timms 2007-11-12 12:48:43 UTC
https://fedoraproject.org/wiki/KernelCommonProblems
also gives some hints to try under the heading:
"High Definition Audio" devices.

Comment 11 Valent Turkovic 2007-11-13 10:05:34 UTC
I went to:
http://fedoraproject.org/wiki/KernelHdaDriverOptions

but there is no scsconfig.log file on my Fedora 8 system... so I can't find that
way which codec I'm using :(

I tried using 'options snd-hda-intel index=0 model=3stack-digout' which looked
like it would match my hardware but after reboot I still have the same issue.

Is there some better way of finding out which model I need to use and not go
through all of them till I find one that works?

Comment 12 David Timms 2007-11-13 12:17:54 UTC
{in F7 at least} it is generated by system-config-soundcard [Soundcard
Detection], and the log is placed under /root.

Comment 13 Adam Pribyl 2007-11-18 19:51:01 UTC
I have the same problem with VIA686A... F8 updated from F7.



Comment 14 Christoph Wickert 2007-11-23 22:44:27 UTC
I can confirm that I had the same problem with snd-hda-intel on a laptop that
was upgraded from F7. Adding "model=asus-laptop" to the "snd-hda-intel.."
options in modprobe.conf fixed it.

Comment 15 Valent Turkovic 2007-11-26 10:46:18 UTC
Mine is still broken. I tesed with
model=3stack-digout
and
model=laptop-hp

this two don't work on my HP Pavilion dv6426us laptop any suggestions which
other "models" to try?

Thank you.

Comment 16 Valent Turkovic 2007-11-26 11:03:07 UTC
I have tested all of these models and none works for my laptop:

hp-bpc
3stack-dig
laptop-hp
hp
laptop

I'm out of ideas... I still have really bad distortions without lovering
PulseAudio volume for each application I use at 50% of volume.

Comment 17 Valent Turkovic 2007-11-26 12:12:01 UTC
my list of tested (and failed) "models" is:

hp-bpc - HP xw4400/6400/8400/9400 laptops
3stack-dig  - 3-jack in back, a HP out and a SPDIF out
laptop-hp
hp
laptop
z71v - 3-jack (HP shared SPDIF)

Comment 18 Valent Turkovic 2007-12-16 12:51:30 UTC
Is anybody else having trouble with this or am I the happy lottery winner?
None of the models I tested changes anything... so maybe I really seeing some
bug that nobody before me noticed and this got nothing to do with "models".

Comment 19 Gideon Mayhak 2007-12-25 18:08:59 UTC
I've been having this problem on my laptop (a Compaq F572US) with a fresh 
install of F8 (and now with all the latest updates).  I will try applying these 
modprobe options and let you know if I can find one that works for mine.  I can 
try to post more info later, but I just figured I'd chime in real quick and let 
you know I'm having the exact same problem.  Things seem to distort until I set 
the individual application's volume below 50% (and even above 10% it seems to 
distort a little).  I have to do this every time I open a new application and 
it's really annoying.

-Gideon Mayhak

Comment 20 Gideon Mayhak 2007-12-26 03:01:05 UTC
Created attachment 290390 [details]
My most recent scsconfig.log file.

I tried a few of the model options (laptop, hp, 3stack, 3stack-hp, etc.) to no
avail.	My chip doesn't seem to match any of the options on the list (an nVidia
MCP51, apparently).  I'm attaching my scsconfig.log.

I should note that I hear distortion even with the volume control in the
pavucontrol down to 25% (8% in the PulseAudio Manager).  0% and 100% are the
same between both programs, but there are big differences between.  There seems
to be no distortion when I'm down below 10% in pavucontrol, but it's a little
quieter than in Fedora 7 (where I have PCM set to 75% and the master volume set
to 100%).

-Gideon Mayhak

Comment 21 Valent Turkovic 2007-12-26 20:27:35 UTC
I suspect that this bug is actually two bugs who look like one bug but are not.

One bug can be fixed with changing options in modprobe.conf and other bug isn't
fixed so easily...

This is my suspicion and I would like if somebody with more authority could
confirm this.

Thank you.

If you need console root access to my laptop I'm willing to give you access if
you prove you are on fedora devel team.

Valent.

Comment 22 Valent Turkovic 2008-01-09 12:57:22 UTC
There is a new PulseAudio version out for two months now, when will we see an
update to fedora 8 PulseAudio?

Comment 23 Valent Turkovic 2008-01-12 20:31:12 UTC
I forced PulseAudio update on my system with:
yum update pulseaudio --enablerepo=development

not I have PulseAudio 0.9,8 but I still see the same issue :(

Comment 24 Valent Turkovic 2008-01-14 08:35:37 UTC
I got some great advice from Tanu Kaskinen on pulseaudio mailinglist.

I have Conexant CX20549 (Venice)audio chip on my HP dv6426us "entertainment"
laptop. The issue was that this audio card does digital amplification on PCM
channel and that distorts audio.

I started alsamixer and saw this:
Master channel: 0-100% equals -64.50dB to 0dB gain
PCM channel: 0-100% equals -30dB to +34.50dB gain
When I lower PCM gain to 47% that equals to 0dB gain.

Anything with positive gain is digital amplification and that leads to
distortion! :(

Now I can have pulseaudio per application streams go to 100% without distortion! :)

Where should this be fixed? In pulseaudio? In alsamixes? Somewhere else?


Comment 25 Valent Turkovic 2008-01-14 08:43:07 UTC
I looks now that I was right - other people have same symptoms but it look like
my bug is different from theirs. Should this be made into a new bug?

Comment 26 David Timms 2008-01-20 14:32:54 UTC
It seems that a lot of modern audio chips have a gain structure where
max level provides gain. Eg for my chip Realtek ALC650E [1]:
Most of the gain controls are 5 bit = 32 steps of 1.5 dB
For  Master Out: -43.5dB to + 3dB gain, with 0dB @ 94%
PCM: ranges from -34.5dB to +12dB gain, with 0dB @ 74%

To protect us users from ourselves {turning the pcm gain too high -
and distorting the sound before it makes it to the final mix stage -
potentially damaging amps or speakers}, it would make sense to, in some
way, provide a switch to limit or rescale the control so that digital full scale
100% mark can't be exceeded. My preference would be that each application volume
control 0-100% would be scaled on the way to the audio chip to 0-74% {on my
chip}. If boost is wanted, an on/off gain boost switch could be provided in the
software mixer controls.

It does seem that pulseaudio provides a manual way to to this {although my
reading suggests this is a continuous scaling of the stream in CPU rather than
setting better values in the devices PCM control}:
- run: alsamixer -c0 which displays the dB gain for the selected fader.
- set the problem fader to 0dB, and read the %gain. {=74.19%}
- calculate %gain * 65535 = [attenuation value]  {=48623}
- in /etc/pulse/default.pa add "load-module module-match"
- create a file /etc/pulse/match.table with one line:
     ".* attenuation value" {.* 48623}

Note that this did not work for me when I placed match.table in
.~/pulse/match.table as suggested by post [2], but does work nicely if it is
placed in /etc/pulse/ .

An automatic switch, or initial setup, would in theory be possible: it could
detect that the level to the audio chip is about to exceed either full scale
+'ve or -'ve, and drop the gain enough steps to miss the "full scale". Perhaps
some audio programming guru could comment on whether that would be feasible. {Or
maybe to read the value in the way the alsamixer can show it, then right out a
match.table containing the value.}

In the past pro analogue or digital mixers seemed to limit an input channel gain
control to +6dB, with an option to pad the level -20dB and to set the input's
gain to take account of mic v line v balanced level inputs. In the PC world, it
would be great to have a "don't save me from myself" button that instructed the
sound system to allow overdrive of the audio stream when the user realizes they
have a shoddy {low} digital signal. The normal setting should be to never allow
gain capabilities of an audio device to distort {clip} the audio stream before
it gets to the mixer block. That could be done before hand {an automated pa
setting}, or actively {drop the gain as a signal is about to hit clip point (0
or 65535 in a 16bit system)}.

[1] ftp://202.65.194.211/pc/audio/ALC650_DataSheet_1.3.pdf
[2] https://tango.0pointer.de/pipermail/pulseaudio-discuss/2008-January/001192.html

Comment 27 Valent Turkovic 2008-01-24 14:07:30 UTC
Will this be fixed also in F8 or it will only be in F9 ?

Comment 28 Gideon Mayhak 2008-01-27 23:52:30 UTC
Thanks, David.  I'll try that on my system (I'll have to reinstall PulseAudio, 
as I got rid of it for now; I may just wait for a few more days and try it in 
Fedora 9 Alpha before changing things in my stable install).

-Gideon Mayhak

Comment 29 Riku Seppala 2008-02-06 22:57:31 UTC
Please please fix this before my laptop speakers and/or my ears are broken. Yes
I have HP laptop.

Comment 30 Lennart Poettering 2008-09-09 22:44:09 UTC
PA now extends the hardware volume range in software and will present all users the same volume range. If you still experience over-amplification it is due to the way your hardware works.


Note You need to log in before you can comment on or make changes to this bug.