Subject: Re: Status of Sound Blaster 16 support?
To: Dave Huang <khym@bga.com>
From: Mark Willey <willey@purdue.edu>
List: port-i386
Date: 10/20/1996 21:38:50
Dave Huang writes:
> 
> I've noticed that sbdsp.c has had SB16 support inside #ifdef notyet
> blocks for quite a while now... is work still being done on it? I
> tried taking out the #ifdef notyet and doing some minor tweaking and
> got my SB16 playing 16 bit stereo, but the sound gets really choppy if
> I'm doing other things, such as receiving stuff over PPP or compiling.
> I think I know what the problem is, but I don't know how to fix it...

I have been working on this for a few months.  So far, I have the code in
place that statically sets up the card in the proper way for a SB16 mixer
chip in the driver init code, but does still use the old mixer interface
when configuring on the fly.

THE GOOD NEWS!!!!  It pretty much works for playback and record.  You can
get the current code snapshot (a bit old, gawd, I just looked... time to
make a new snapshot soon).  And I use the 'awedio' program written by
Robert Baron as an instructional exercise on /dev/audio control.  It works
well enough for simple play and record, though.  The play and record
scripts that I use are attached below.

THE BAD NEWS!!!!  Man, I am so dead.  I'm taking 2 Sr. EE courses, 2 grad
EE courses, and a nuke intro course.  Three of these classes have projects!
So, I don't see it possible to finish the driver before the end of the
semester, what with grad school apps to fill out and all the other stuff
I've overcommitted myself on.  :(  However, I have a few free weeks in
December that I plan to do some hard-core hacking in.  The code right now
is "dangerous" in that one user in France found numerous bugs in the sb
code that could cause panics (and I duplicated one, but not fixed yet).  I
dunno if this is a result of my changes or is an existing problem...  So,
as usual, use at your own risk.  My stake in the ground is to have some
more good solid (non system-crashing) code ready in December.

During next semester, I hope to draw this work into an independent research
project at school, thereby forcing me to dedicate X hours a week to it
because I then get graded on it.  :) :) :)  Er, but my prof may want me to
spend more time on SMP and multithreading.  I'll find out RSN.  This is all
assuming I survive until next semester.  Alas!

Mark
(project page is at http://purcell.ecn.purdue.edu/~willey/projects/sb16)

"play" script:
#!/bin/sh
/usr/local/bin/awedio -v -b 1024 $1

"record" script:
#!/bin/sh
awedio -r -v -b 1024 $1

"newmail" script... this one is pretty cool.  I installed it as a filter in
.forward:
\willey, "|/usr/local/bin/newmail"

"newmail" script:
#!/bin/sh

mailfrom=`head -1 | awk '{print $2}' | cut -d@ -f1`

if [ ! -f /usr/local/lib/audio/$mailfrom.au ]; then
  mailfrom="random"
fi

announce="cd /usr/local/lib/audio; /usr/local/bin/play newmail.au; /usr/local/bin/play from.au; /usr/local/bin/play $mailfrom.au"

/bin/sh << EOFS
$announce
EOFS