Aria Sound Card Device Driver for NetBSD
Note
Just a quick note, since I have received much email from users
of Microsoft products about the Aria 16. This driver is for
NetBSD -- a Unix-like OS that has nothing whatsoever to do with
MS. I do not know how to use this soundcard under MS. I do not
have the driver disk that came with the card.
Justification
When I discovered that my Aria 16 would only emulate an original
sound blaster, I was so horrified that I started writing the code
to run it in 'native' mode. Not emulation. In native mode it is
capable of 16 bit stereo sound, and, of course, it isn't in emulation
mode. That I think is justification enough.
But there is more justification. On the Prometheus Aria 16, I
found it necessary to configure the sound card via MSDOS on each
cold boot. (Yes, the soft jumper settings are forgotten each time.)
This was, of course, horrendously annoying.
Progress
So far I have been able to play and record on the sound card in
all those modes that I wanted. There is a decent beginning of a
mixer interface, although I am not sure that it will behave properly
in the absence of the SC18075 mixer chip. (And even if it does it
is lacking features that the mixerless cards have, anyway.)
It is in NetBSD-current, and will be a part of NetBSD 1.4, when that
is released. I have tested the driver on an i386 and an alpha. My
card is currently in an AlphaStation 200, and is performing according
to my expectations, there.
TODO:
- Clean up the mixer interface.
- Test the driver on cards other than a Prometheus Aria 16.
- Deal with the lvls better. We need to do better mapping
between logarithmic scales and the one byteroo that
we are passed.
- Deal with cards that have no mixer.
Future Issues (that is, things that may require the hacking of
other parts of the system):
- Deal with multiple opens. I think that just separate
reads and writes is not enough, considering this chipset
has 4 channels with which to play.
- Find out if there is more of a mixer interface standard,
and where to find it.
- After that last one, add 20 new knobs to the mixer,
including:
- output lvl control on each channel.
- separate monitor lvl and record level for
inputs.
- etc.
- Put in MIDI support.
The Code
If you wish to have a look at the code, it is in NetBSD-current, in
/sys/dev/isa/, the files are:
The configuration options are:
aria0 at isa? port 0x280 irq 12 flags 0x1
The allowable ports are:
The allowable irqs are:
The flags should be 0x1, if you have a Prometheus Aria 16/Aria 16se.
Otherwise I think it should be 0, or just left off. (The flag controls
whether the driver tries to initialise the Prometheus Card.)
Bugs
The only bug that I am aware of is that when one changes the mixer settings,
the sound card clicks. This is because I am overzealous about restarting the
sound card, and do it a bit too often.
Feedback
If you wish to send me feedback about the success or
the failure of this driver, my email address is
elric@imrryr.org
. In fact, if you run this driver, I would appreciate
any information that you can give me. Improving the driver
is easier with as much information as possible.
Other Information about the Chipset
The Aria Home Page
$Id: index.ihtml,v 1.3 2000/02/04 10:21:56 elric Exp $