q: what's this site all about?
a: this site contains information on the music i've made with
DSPs from Analog Devices, primarily with the
ADSP-2181 and ADSP-2187N processors, along with information on the
development environment i designed to support construction of new music. some of
of the latest development on this project (specifically my collaberative work) are
also contained here. this page
is dedicated to music i've written and the development environment i've created.
i also have a page for my work on the Sony PSP in creating a sequencer/synthesizer i call PSPSeq.
q: what's a DSP?
a: a DSP is similar to a microprocessor (like a
pentium/athalon/whatnot) but specially designed for processing data very quickly and efficiently.
q: how do you write music for a DSP?
a: well, before you can write music for a DSP, you need
to have a circuit board with a DSP on it, along with a method of writing code which
it can then execute. i started by working with the
ADSP-2181 EZKIT LITE. eventually i made some friends at the
MIT Media Lab, and we designed a new board
with a faster processor (which we call chiclet). as for
actually writing music, thus far it is all done in assembly language. when we move
to a more modern processor, it will be a mix of assembly and C.
a DSP is a blank slate, just like any microprocessor. fucntions are written
to generate different sounds (wavetable generators, noise generators, karplus-strong,
etc etc), along with effects and methods to sequence sounds through time. at
first this was done in a horribly ad-hoc "methodology", though eventually as i
learned more about building an environment for writing music i developed a
framework and method for working much more quickly and safely. the
environment is called SynDevKit, and hopefully will
be available shortly for anyone to experiment with.
q: eek! why would you write music like this rather
than on a computer using regular compositional software?
a: many reasons.
a) by writing everything from scratch it forced me to really
try to understand what makes music work, both with the individual sounds and the
composition. when i was writing music on a PC i often felt like an "assembler
of curious sounds" rather than a composer with some level of control.
programs like reaktor, cSound, and MAX/MSP do give a level of control similar
to what i've made for myself,
i enjoy working on simpler platforms like embedded processors more than on PCs.
having concrete limits (all signal generation must happen in real-time, extremely
small amount of available memory) helps give me a bit more focus to my work.
c) often times i'll make mistakes in coding a generator or effect which will
be more interesting than what i was actually aiming for. these sorts of error-filled
functions most likely don't exist on PCs. additionally, i can more safely get
away with all sorts of dangerous bugs such as buffer under/overflow errors.
doing this on a PC is either guarded against, a quick way to crash an OS, or seen
as behaviour analagous to a virus.
d) i'm interested in
applications of portable generative/algorithmic music. you could have a song whose sounds
are controlled by ambient temperature, light, walking pace... most anything for
which sensor exist. synchronicity between music and the rest of the world is a
powerful and rare thing & i'd like it to happen a little more often in my
life. :) a DSP board can run for hours off of standard batteries and can fit
in your pocket, where generative music on a PC has spatial limitations.
e) one of our long-term goals is to develop the first-ever hardware/software
music release. because of this, we needed to design our own hardware to serve as
a platform for the music we write.
f) i program these processors for a living so it's natural for me to try to
adapt what i've learned there into projects which are personally intruiging.
q: this is neat! how do i get in on the fun?
a: first off, you will need a board with a DSP. unfortunately,
the hardware that was designed at the MIT Media Lab is not currently avaialble
for general consumption (we have little desire to become tech support gurus).
however, i am currently working with third parties
who design similar DSP development boards so that a complete hardware/software
strategy and platform will be available for intrepid DSP developers. information
on this is forthcoming soon... i promise!
another option is to use the ADSP-2181 EZ-Kit Lite. this is an older DSP board
and runs at approximately 40% the clock speed of the newer DSP hardware. however,
if you already have an ADSP-2181 EZ-Kit Lite, this is a no-cost way to determine
if SynDevKit is good for you. any code that you write for
the ADSP-2181 EZKit Lite will work on newer DSP hardware without any changes.
for more information, check out the SynDevKit page.
return to main