[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: FC4/x86_64 and ALSA: [long] noise and distortion



Nathaniel Reindl <fiction@sdf.lonestar.org> wrote:
> For the past several months, I've been trying to figure out a
> sane way to get the noise and distortion to go away, but alas,
> short of diving into the ALSA code and digging around, I've
> found no way at all to get rid of it.  I've tried four
different
> cards (two emu10k1, one es1370, and one intel8x0), and none of
> them solved the issue.

First off, what mainboard chipset?

Secondly, what cards are _also_ on your PCI bus (including
on-mainboard)?

What I'm getting at here is either poor I2C implementations
(which I've had on SiS x5xx and, in a few cases, ViA 82xx and
even early Intel ICH southbridges), or massive DMA bursts
interrupting audio.

In the case of the latter, today's 3D audio chipset (ALC650) that
lack on-board intelligence, rely way to much on the host CPU. 
Many eat about 5-10% in 2D mode, then a massive 30%+ in 3D mode. 
All that host-based processing means that your legacy,
32-bit@33MHz PCI bus (0.125GBps), typically 1/64th of (yes 64x
_slower_ than) your CPU-memory, is flooded.

The second the ATA opens up a burst, you get "choppy audio."

But even if your ATA is segmented off (e.g., mine is on the
HyperTransport or PCIe x1 channel in the nForce4 chipset), the
legacy PCI bus typically can_not_ "keep up."  Even in XP (on my
nForce4 chipset), if I enable spacial audio on my ALC650, it
_floods_ my PCI bus and "goes choppy."  Even in 2D, with a lot of
elements, I can still run into it!

Now with that said, let's talk about your cards ...

> Specifically and in respective order, the cards were:
> o 2x SoundBlaster Live! Value (same model, I read somewhere
> that people've experienced oddities where a simple swap
> with another card of the same model/release solved things)

Yep, the "Value" lacks a lot of on-board processing elements,
hence the lower cost.  I have the full "Live!" which is much
better -- and doesn't taxi the PCI bus (not even with ATA).

> o SoundBlaster 128 as from a Compaq Presario 7000

The ES1373, which is based on the original ES1370/ES1371
AudioPCI/SBPCI16-64.  These are 100% _host_ based processing
cards, with the audio chipset being little more than a DAC. 
Today, even an ALC650+ would be better for 2D.

> o the onboard RealTek audio on the ARIMA Rioworks HDAMC
> motherboard.  I forget what it is exactly, and lspci isn't
> much help.  This is going to be noisy to begin with, but
> it's exhibiting the same behavior as the previous
> three.

Probably ALC650 or latter.  There are a few "co-processor"
ICs out there that a few vendors bundle on their mainboards
which cut the CPU usage to under 3% for 2D, 10% for 3D, but
you can still run into it with 3D.

Remember, your legacy PCI bus is 1/64th of your CPU-memory
interconnect.

If the ALSA drivers are "generic" (i810) and not well tuned
for the audio chipset, then you will probably run into this.
Newer i810 drivers _should_ use _some_ chipsets efficiently.
Also verify 3D elements are turned _off_ -- I've seen a few
distro installers/configurators that turn 3D on.

Bam!  Instant distortion.

> I've also ruled out bad audio hardware because the cards all
> work fine in the Windows box I have sitting next to me.  No
> distortion, nothing.

Try turning on 3D spacial audio on some of them (everything
but the old ES1373, which probably doesn't have it ;-).

You'll hear it, especially on the ALC chip.  @-ppp

> What it sounds like more than anything is something along the
> lines of capping.  I.e., if you were to hook this up to an
> o-scope, the waveform's peaks would be most likely chopped
clear
> off.  I can't confirm that, though, due to the lack of an 
> o-scope around here.

99 times out of 100, your PCI bus is flooded and you're losing
data.  The audio card's driver will then work connectionless,
it will _drop_ packets -- resulting in this "capping."

> Audibly, it's really noticeable everywhere, especially the
> high-end.

Yep.  The more channels and features, the more data that has
to be pushed, in real-time, from your host CPU to the card.

> An unacceptable answer, although well-founded, would be to
> suggest bumping the volume down in the mixer and using a
> preamp to compensate.

Nope.

> I don't have the money to buy one or the time to hack one
> together, and even then, something like that shouldn't be
> needed for something as trivial as this.  What year is it
> again?

Now you know why serial PCI (PCI-Express, PCIe) has come about.

First was to move the ATA and/or NIC off, so it wasn't saturating
the PCI bus and drowning out the audio.

The audio itself should be next.


-- 
Bryan J. Smith                 mailto:b.j.smith@ieee.org
Sent from Yahoo Mail (please excuse any missing headers)

-
To unsubscribe, send email to majordomo@silug.org with
"unsubscribe silug-discuss" in the body.