[comp.unix.ultrix] Digital <-> Audio sound on DEC/MIPS with BI bus

fingerhu@ircam.fr (Michel Fingerhut) (12/25/90)

Brad Rubenstein, from the Systems Group at IRCAM, has implemented a
device driver for digital sound to audio and audio to digital
conversion under Ultrix/MIPS on a VAXBI bus (specifically a 5810).  The
hardware consists of:

1.  DEC's DRB32-W (officially unsupported under Ultrix)
2.  MTU's Digisound 16.

Its programmatic interface is very simple, and was integrated into the
play and record programs of IRCAM as well as into Doug Scott's mixview,
used here in an environment integrating the IRCAM/CARL suite of
programs (as lately reorganized by Gilles Poirot and Peter Wyngaard) as
well as other public domain signal processing tools (such as csound
from Barry Vercoe at MIT).  They, in turn, allow for the manipulation
of digital sound files generated on different architectures and contain
the appropriate conversion tools.

It allows for reliable conversion on a running Ultrix system in a multi-
user environment without any changes to the kernel (other than the addition
of the device driver) or any perceptible increase in the load average of
the machine.  More specifically, by manipulating sleep priorities, and
careful organization of the DMA code, the driver is able to do 50Khz
stereo conversions from a UFS-mounted file that is fragmented over a
disk with no errors under conditions of very high CPU and disk I/O
load, while using almost no user or system time.  Even at this rate,
the kernel is only interrupted on average about 8 times a second. 

The driver keeps around 10-15 seconds of samples buffered in the system
disk page cache (this is a client-selectable conversion parameter, but
our system's disk cache is rather big), so as long as network bandwidth
and remote machine speed are able to pump out (or in) the data fast
enough on average, transfers to/from NFS mounted filesystems are pretty
immune to transient network loads.  We found that playing small files
via NFS is quite feasible (long files cause sustained loads on the net
that may over time aggravate other users, but at least they usually
convert correctly).  In any case, conversion errors (like buffer
under/overflow) are unambiguously reported to the user, so that if it
looks like a record or play succeeded, it really did with no glitches.

If you have come that far... for availability enquire with me by email
(mf@ircam.fr).