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).