Hi,
I'm trying to develop a complete system /
distribution using the via "mini-itx" platform. The idea is that we take
in sensor positions from analog sensors and output sounds based on the position
of these sensors. This setup is used for music therapy, with disabled
children producing music using, for example, ultrasonic position sensors
(amongst other types of sensor). I've
written some code to accept input from the alsa sequencer and act as a midi
router, and I'm using fluidsynth as an output synthesiser.
The mini-itx board is a very small form factor
fully integrated pc motherboard with a via c3 processor. The sound
controller on this board is part of a via 8235 southbridge.
The snd-via82xx alsa module works fine on this
board, apart from the fact that it is very, very noisy - unusably so.
There is a background drone and whenever the processor does something you get
"clunky" noises, which i'm pretty sure aren't xruns. I have tested it
using fluidsynth and very large buffer sizes, to eliminate the possibility
of xruns. I have ensured everything in the alsamixer is turned
down.
Particularly, when a note is turned off in
fluidsynth, shortly after you get a pop.
I have tried using all of the via82xx driver's
options, ie. dxs_support=0,1,2,3, ac_97_quirk=0,1,2,3,4 to no avail. I
have also tried passing no-hlt to the kernel, which helps just a
little.
Interestingly the 2.4 kernel OSS drivers do the
same. VIAs own OSS drivers do not, and are very quiet, but their
latency is quite high. The source is available to all of these
drivers. The windows drivers are fairly quiet as well.
I am pretty sure this is a problem with the alsa
drivers using this particular chip, as I have a few friends who are
experienced with alsa attempting to use the same board with similar
problems. Also, I have used the same setup (fluidsynth / alsa) on a via
8233a based board and it worked fine.
It could be as simple as an unnaccesible mixer
channel being left unmuted.
Has anyone else experienced this problem?
Does anyone have any tips or advice?
I would really like to fix this, as I am a
professional programmer, though I have no experience of linux device drivers,
and only a little experience in linux generally. Is there a guide to how
alsa drivers work anywhere? Any information which would help me sort this
would be gratefully recieved,
Thanks,
John Matthews.