Aria Sound Card Device Driver for NetBSD


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.) So purging my system of any Microsoft was a primary objective in writing this driver. (Yes, there is no more Microsoft on my drive..)

Progress

So far I have been able to play and record on the sound card in all those modes that I wanted. Sometimes I can record and play at the same time. (Though I have not yet chased down what causes the 'sometimes' part.)

I have begun the mixer interface. Not finished, but a decent amount is. It mutes monitoring of the inputs, and changes most of the levels effectively...

What I haven't done:

I am debating whether I will even try to do any midi. I think that it would be a good idea, but there is the question of the time involved.

And on that note, I shall mention that it has only been tested on an Aria 16, produced by Prometheus. The resetting of the irq and iobase, etc should not interfere with other cards, but who knows. I will eventually put a config flag in to not try to do it, for those lucky souls who have hard jumpers...

In the configuration file it is necessary to specify the port and the irq, since I have not coded any auto recognition. (For my card the first thing that I do is tell the card where it is, and if I don't tell it then it doesn't respond...)

Another note is that to test the mixer device nicely you could get ftp://sipb.mit.edu/pub/netbsd/GUS/xmixer.i386.gz , by John T. Kohl. It is what I am using to test the driver.

The Code

If you wish to have a look at the code, here it is:

If you want to try the code, you must put these two files in sys/dev/isa, and append this:
# Soundcards based on Sierra's Aria chipset.
# Such as the Prometheus Aria 16 or the Diamond
# sonic sound.
device	aria at isa: audio, mulaw
file	dev/isa/aria.c
to the end of sys/dev/isa/files.isa

These files were last modified on the 19th of November.

The code can also be obtained from ftp.imrryr.org

The configuration options are:

aria0              at isa? port 0x280 irq 12

The allowable ports are:

The allowable irqs are:

Bugs

Well, this is a horrible section to have to write about my own code, but here goes...

I am only going to consider the bugs in what I am trying to accomplish so far, not stylistic ones, or things like the lack of features. :) A good approach, I think. If nothing else it makes the description shorter.

I have only found one bug, and it is elusive: under certain conditions that I have not yet determined the audio drops out and sometimes the entire card dies (including the external input from my CD player that is just played onto the speakers.) I am in the process of completely rewriting how the commands are sent so that it is condensed and so that the conditions are easier to find...

Feedback

If you wish to send me feedback about the success or the failure of this driver, my email address is roland@imrryr.org . In fact, if you run this driver, I would appreciate any information that you can give me. As far as I know, I am the only person who is even trying to use this chipset under NetBSD.

Other Information about the Chipset

The Aria Home Page
[ Back | Home ]
If you have any comments or questions send me an email at webmaster@imrryr.org .