This article is from the Electronic and Computer Music FAQ, by Craig Latta Craig.Latta@NetJam.ORG with numerous contributions by others.
Date: Tue, 11 Jun 91 11:05:54 PDT
Subject: DUB: Mixing and overdubbing in real time
Let's make a deal. I have written "DUB," an application that mixes
together multiple sound files on the fly and overdubs (records) at
the same time. It's ugly but it works but it's UGLY. I'm not proud
of it. The user interface is the worst thing I've written since I
quit programming in BASIC over two decades ago.
The good things about DUB: It mixes together N "playlists" on the
fly. A playlist is a sequence of non-overlapping sounds. The
DACPlayer object is pretty clean, the DSPRecorder object (and
attendant dspRecorder.asm code) knows how to drive the Ariel digital
mic at different sampling rates. It records at the same time that it
The bad things about DUB: There's no real user interface. The sound
file names that it opens to play are hardwired in the source code.
The sound file that it records into is similarly hardwired. You have
to launch it from a shell (or more often a debugger) in the directory
that contains the sound files "track1.snd," "track2.snd," etc. There
are features that the low level code supports (dynamic gain control,
setting the duration of the sounds) that the user interface doesn't
DUB does useful things that many NeXT sound and music aficionados
have asked about, but my pride prevents me from distributing it
broadly in its current ugly state. So let's make a deal: I will give
the project folder (source code, IB.proj, etc) if you agree to the
* You must be able to receive (and send) NeXT mail attachments.
(That's how we'll communicate.) * You will implement a "safe and sane" user interface for Dub.
* You already know NeXTstep programming and won't ask me lots
of questions (I'm perpetually swamped at work, and I may not
have much time to answer your questions.) * You will send me the finished application in source form.
* You will allow me to put the finished application in source
form on the archive servers.
* Most importantly, you won't laugh at me or malign me in public
for writing such a mean user interface.
If you can agree to all the above, and you're interested in helping
the rest of the NeXT community make beautiful music on the NeXT, I
want to hear from you.
- Robert Poor
NeXT Developer Marketing