PCM distorsion snapshots from SATA/ALSA conflict (was: [Alsa-user] Pb with simultaneous SATA and ALSA I/O)

From: Dominique Dumont
Date: Sun Oct 08 2006 - 06:39:14 EST


Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> writes:

> If it's electrical noise though then power fluctuations or similar
> could be to blame ?

To check this, I've dusted off my old oscilloscope.

I've used speaker-test program to generate a 500, 900 and 1000 Hz sine
wave that I've sent on the spdif line (as PCM) and had them decoded by
my Yamaha DSP-A1 amplifier.

I've enclosed only the snapshots to this mail, I hope it'll get
through vger's majordomo.

Anyway, the oscilloscope shows that:
- a spike occurs every 330 useconds (about 3kHz)
(note: 330us is 15.85 times the period of the 48KHz spdif stream)
- the spike level roughly matches the level of the sine waves 330
useconds sooner

I may be wrong, but it looks like that, somewhere in the audio data
stream, a buffer is read downstream before the correct value is
written by upstream (delayed by SATA I/O ??). OTOH, 16 samples is a
very short buffer...

If needed I can try other things like:
- loop back the spdif output to my mobo's input to get the actual
values of the PCM stream sent to the Yamaha.
- try the oscilloscope on the analog output of the SB live card ( I
couldn't hear any distorsion on the analog line, but it does mean
there no problem on this side as the D/A converter may filter out
these kind of short duration spikes)
- try another signal shape

Any thought ?

HTH

Attachment: c2_500Hz.jpg
Description: JPEG image

Attachment: c2_900Hz.jpg
Description: JPEG image

Attachment: c2_1000Hz.jpg
Description: JPEG image