old-www/LDP/LG/issue96/baxter.html

472 lines
25 KiB
HTML

<!--startcut ==============================================-->
<!-- *** BEGIN HTML header *** -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML><HEAD>
<title>Csound: An Interview with Dr. Richard Boulanger LG #96</title>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#0000AF"
ALINK="#FF0000">
<!-- *** END HTML header *** -->
<!-- *** BEGIN navbar *** -->
<A HREF="bhargava.html">&lt;&lt;&nbsp;Prev</A>&nbsp;&nbsp;|&nbsp;&nbsp;<A HREF="index.html">TOC</A>&nbsp;&nbsp;|&nbsp;&nbsp;<A HREF="../index.html">Front Page</A>&nbsp;&nbsp;|&nbsp;&nbsp;<A HREF="http://www.linuxgazette.com/cgi-bin/talkback/all.py?site=LG&article=http://www.linuxgazette.com/issue96/baxter.html">Talkback</A>&nbsp;&nbsp;|&nbsp;&nbsp;<A HREF="../faq/index.html">FAQ</A>
<!-- *** END navbar *** -->
<!--endcut ============================================================-->
<TABLE BORDER><TR><TD WIDTH="200">
<A HREF="http://www.linuxgazette.com/">
<IMG ALT="LINUX GAZETTE" SRC="../gx/2002/lglogo_200x41.png"
WIDTH="200" HEIGHT="41" border="0"></A>
<BR CLEAR="all">
<SMALL>...<I>making Linux just a little more fun!</I></SMALL>
</TD><TD WIDTH="380">
<CENTER>
<BIG><BIG><STRONG><FONT COLOR="maroon">Csound: An Interview with Dr. Richard Boulanger</FONT></STRONG></BIG></BIG>
<BR>
<STRONG>By <A HREF="../authors/baxter.html">Michael Baxter</A></STRONG>
</CENTER>
</TD></TR>
</TABLE>
<P>
<!-- END header -->
<p>
Dr. Boulanger has been associated with Csound for a long time, and is
the editor of The Csound Book (see resources), an excellent resource
consisting of multiple contributions from the Csound community for
learning and using Csound. In a chat with Dr. Boulanger,
we provide perspective on one of the oldest C-based software sound
synthesis environments. This in-depth interview complements Dave
Phillips' recent article (see May 2003 LJ, page 80) about the newest
Linux softsynth environments.
<p>
Q: Dr. Boulanger, thank-you for your time. Four years ago _Linux
Journal_ ran an article by David Phillips on Csound on Linux. Could
you describe some of the advances to Csound since that time?
<p>
A: As you know, Michael, Csound is arguably the most powerful
cross-platform software synthesis and signal processing system
available today. It's incredible, it continues to grow and improve,
and most importantly, it's free! Although many commercial applications
such as Max/MSP, PD, SuperCollider, Tassman, and Reaktor are getting
closer and closer to Csound's programability, power and functionality,
nothing comes close - especially given all the platforms and operating
systems upon which one can run the very same Csound orchestras,
scores, and instruments.
<p>
And you are right, I have been composing with, teaching with, and
writing about this incredibly powerful and versitile program for over
25 years now. I started studying at the MIT Experimental Music
Studion in 1979 with Barry Vercoe. There I was doing sound design and
composition using Barry's music11 program - essentially Csound for the
PDP11 minicomputer. That very first music11 composition of mine -
"Trapped in Convert" has been presented in concerts all over the world
- including Alice Tully Hall in New York - quite a big deal for a then
budding young composer! When I returned to the MIT Media Lab in 1986
with my Computer Music Ph.D. in hand, I worked with Barry betatesting
his new language - Csound. We would use "Trapped" to make sure that
all the opcodes were working correctly.
<p>
In fact, the version of "Trapped in Convert" that people render and
tweek today was the very first Csound piece. And what is so important to
me is that this very same piece
(http://csounds.com/compositions/colleaguezip/Trapped.zip) can be
rendered and studied today using a version of Csound that runs on
virtually any computer. Back in 1979, it took hours to render each sound
and gesture, days to render each phrase and section, and weeks to
render the entire four and a half minute piece - at 24K! Today, at
44.1K, "Trapped in Convert" renders in realtime on virtually any PC.
<p>
For me, the ability to preserve the history of computer music
composition and sound design is extremely important. Much of the music
I composed using sequencers, synthesizers and MIDI equipment during the
80's and 90's has been retired and lost when the gear was sold,
broke-down, or the computers running early sequencers and sound editers
were retired to the basement. Getting rid of an old computer usually
meant tossing out your music too. Yet, the very fact that I can still
render, "tweek," and teach with my old Csound pieces is a testament to
Csound's greatness. For me at least, Csound has proven to be
future-proof. In fact, since Csound is a direct decendent of the MusicN
languages developed by Max Mathews at Bell Labs in the late 50's, the
entire history of computer music research is preserved in this program.
Many of the classic pieces and classic instrument design catalogs, by
Risset for instance, have been totally reconstructed in Csound and can
be rendered, studied, and modified to this day.
<p>
Since Dave Phillips' wonderful Linux Journal article on Csound, there
have been a number of important milestones. Several Csound Books have
been published - The Csound Book (MIT Press), Virtual Sound (ConTempo),
and Cooking with Csound (AR Editions). The Csound Instrument Catalog
has been released with thousands of models to study and modify. The
quarterly Csound Ezine has been a regular source of inspiration and
undertanding. Extensive Csound tutorials have been featured in Keyboard
and Electronic Musician Magazines. In addition to The Csound mailing
list, two new Csound mailing lists have been started - the csoundTekno
list, and the csoundDeveloper's list. The international Csound
community of Csound teachers, users, and developers has really grown and
their cSounds have gone mainstream - featured in major Hollywood films
(Traffic, Black Hawk Down, Narc), and an number of Computer Games. Dave
Phillips himself has finished a wonderful book, "The Book of Linux Music
and Sound" that features some wonderful stuff on Csound and related
applications and utilities that is a real help for newcomers to the
Linux audio world.
<p>
In the last four years, there have been some incredibly developments to
Csound by the key platform developers and maintainers. Barry Vercoe
continues to develop proprietary versions of Extended Csound for embebed
systems and Analog Devices DSP chips. Matt Ingalls continues to push the
Macintosh versions of Csound in wonderful ways. His MacCsound has user
defined GUI Widgets built into the launcher, support for instruments as
plugins, and super clean MIDI (at last!). Even cooler, his csound~
external for Max/MSP and PD essentially embed the entire Csound language
into the Max/MSP/Jitter and PD/GEM graphical programming environments
and thus add incredibly interactivity, estensive algorithmic
capabilities, super MIDI, and multichannel/low-latency ASIO support to
Csound on the Mac. Sound Designers and Composers such as Joo Won Park,
Sean Meagher, and Takeyoshi Mori have developed wonderful real-time
GUI-based applications such as CsoundMax, CsoundFX, and CsoundMixer.
<p>
Michael Gogins has been busy with CsoundVST, a version of Csound that
runs as a VST plugin in Cubase and Nuendo for the PC. Most recently he
completely embedded Csound into his algorithmic composition language
SilenceVST that can run stand-alone or be hosted by the PC versions of
Cubase or Nuendo. He has also done some extensive collaboration with
Matt Ingalls to define a preliminary Csound API.
<p>
Gabriel Maldonado's CsoundAV for Windows has ASIO support and adds
hundreds of openGL and GUI opcodes to the language. It is incredible to
make audio instruments that communicate with GUI instruments all from
the same Csound orchestra and all with the same exact syntax! A number
of Csound's top sound designers such as Luca Pavan, Josep Comajuncosas,
Oeyvind Brandtsegg, and Alessandro Petrolati have developed an arsenal
of incredible GUI-based real-time applications, instrument, and effect
collections.
<p>
Somewhat controversial and radically new and expanded Linux versions of
Csound were developed by Maurizio Umberto Puxeddu (iCsound), and are
currently under extensive development by Istvan Varga.
<p>
And behind the scenes, John ffitch, with some help and support of
Richard Dobson, has been maintaining, improving, and extending Canonical
Csound FOR ALL PLATFORMS! In fact, we are currently in an "opcode
freeze" (no new opcodes) so that he can totally revise the core and
support many of the innovations introduced by Varga, Ingalls, Gogins,
and Maldonado while adding new levels of clarity and new functionality -
such as plugin support, ASIO support, a new parser and much much more.
(His most recent TODO list is posted in the news at cSounds.com.) For
one thing, when ffitch is done, it should be easier for users to add
opcodes of their own without having to recompile the entire program.
<p>
Of special note for all platforms is Steven Yi's inspired and inspiring
"Blue" and "Patterns" composing and sound design environment. And also,
the wonderful Csound FLTK signal processing and sound design front end
"Cecilia" that has come to life in the windows version by Bill Beck and
the improved Linux and osX versions by Stephan Bourgeois and
Hans-Christoph Steiner.
<p>
I have forgotten to mention a ton of things like all the great new
Csound editors and applets and all those free VST and DirectX plugins
based on Csound Code - like he Delay Lama VST plugin and Dobson's new
PVFX for Cakewalk's Project 5. What can I say? In four years, with ALL
these incredible students, composers, teachers, developers on ALL thise
platforms, with all these musical dreams and perspectives, what did you
expect? All the new versions are great. All the new opcodes are great.
All the new capabilities are great but honestly, I am thrilled by ALL
the new Csound Music and the ways that Csound is being used by
musicians. This is the big leap forward for Csound.
<p>
But wait one minute, have I left out all the dirt? All the name
calling? All the childish bickering and mudsling? All the "my version
is better than your version" stuff that you would expect from intensely
competitive, young and arrogant musical programmers? Well, there has
been four years of that too! (And you in the Linux community might be
proud to know that most of the mud was over Linux versions of Csound!>
And what has the result of those efforts been, you might ask? A lot of
wasted time. A lot of deep wounds that may never heal. A lot of better
versions of Csound - especially for Linux. And of course, a lot of
casualties. Hundreds of newcomers and oldtimer have dropped out of the
Csound community and abandoned working with Csound entirely because of
all the negativity associated with it. I can't blame them. I'm getting
a little tired myself of trying to teach and play music in a war zone.
<p>
(At csounds.com you can find yesterday and today's Csound News with
links to the various tools and utilities that have been developed in the
past 4 years. Also, you will find links to the Csound Mailing List
archive where you can re-live the "War over the Future of Csound" and
the vicious and childish debates over "Who Deserves to Be the Supreme
Ruler of Csound.")
<p>
Q: My impression would be that the rising computational power of
commodity PC platforms in recent years has benefited Csound more than
the declining cost of DSP microprocessors. Would you agree, and can
you comment?
<p>
A: For several years, I worked with Barry Vercoe and a team of
developers (including Barry's son Scotty - I was Scotty's Csound
Teacher!) on a project at Analog Devices to develop and commercialize
a version of Csound built around their SHARC DSP chip. At that time,
this was the way to go. For some applications it still is. Barry, in
fact, continues to develop and advance such a system. And although it
was a thrill to be part of that team and make a version of Csound that
was fast, clean, and commercially oriented, I prefer Native Csound,
public Csound, Canonical Csound. At Analog Devicest, we innovated
like crazy - streamlining and restucturing the language to make it
much more efficient, but all this cost some of the generality. We
would come up with the best way to do things. What I love about
Canonical Public Csound is that there are so many ways of working. So
many of the developers, sound designers, teachers, composers have
added features that we didn't have at Analog Devices. Moreover, their
unique work and original designs, showed me how to a new way of doing
things and helped me understand things. Even though we had built an
amazing system there, a commercially viable version of Csound, I still
preferred working with John ffitch, Matt Ingalls, Michael Gogins,
Richard Dobson, and Gabriel Maldonado to add and improve a version of
Csound that everyone could use for free.
<p>
Four years ago, real-time MIDI control did work in Csound and realtime
audio was supported too, but neither worked well. At that time, no
version of Csound worked as cleanly and straightforwardly as most
commercial hardware and software tools. (In fact, I left most of the
MIDI and Real-time Audio chapters out of "The Csound Book" because those
aspect of the language were in such flux at the time that most of what
we were writing was about all the little kluges and tricks you would
have to use to get real-time MIDI and Real-Time Audio to work.) Today,
with improved MIDI and Audio in ALL versions of Csound, with inexpensive
Multi-channel USB and FireWire Interfaces, with fast PC/Macintosh
laptops and cheap/fast desktops, we finally have everything we need for
Csound to take the stage alongside any commercial hardware or software
synthesizer - and you are starting to see a lot of this - a lot of
people performing with Csound and doing interactive Sound Design,
Phrase-Sampling, etc.
<p>
Q: One of the issues confronting a new user these days is that Csound
continues to have a batch-oriented syntax. While front ends help, this
syntax is sometimes a step backward for someone already used to
object-oriented languages who'd really like use Csound directly. Could
you describe the feeling within the Csound community about changing or
not changing Csound's syntax?
<p>
A: I don't speak for the community. It is wonderfully rich and
diverse, and that means that there are way too many desires, demands,
expecations, biases, and prejudices. Then there are all the platform
and OS wars to deal with too. As you might well imagine, the hackers
want it one way; the composers want it another; performers, producers,
sound designers want it yet another. Csound is what it is. It is
easy to learn, it is easy to expand, it is easy to personalize, and it
is a wonderful way to learn about synthesis, and signal processing.
<p>
I want Csound to work well. So that nothing is lost, I want it to be
100% backward compatible. At the same time, I want the real-time MIDI
and real-time Audio to be comparable to that supported by any of today's
commercial applications. On each hardware platform and under each
operating system, I want to see Csound integrate seemlessly with other
MIDI and audio applications. Today and into the distant future, I want
Csound to be a free, powerful, expandible, and generally useful tool for
everyone.
<p>
I want Csound to work as a plug-in/audio-unit, and I want Csound
instruments to compile as plugins and audio-units. (We are getting close
to this.) I can tell you that John ffitch and other key develors are
currently working to make the core more solid and transparent and to
make it easier to communicate with the core. There is work on the API
that will allow users to simply plug in shareware/freeware/proprietary
opcodes and libraries. We are very close to that even now.
<p>
For new users, there is plenty of graphically-oriented, user-friendly
"Instant Csound" stuff starting to emerge because of the fact that there
are so many ways today of working with Csound graphically, intuitively,
transparentily, and immediately. In fact, you never need to know or
care that Csound is under the hood! Cecilia was always an excellent
model for this "type" of user, and it is now much improved. You can
certainly expand that sytem by adding modules of your own (but you might
not need to given that it is so extensive already!) Should you want to
make your own graphical front-end for Csound, that is also getting
easier than ever. Given the GUI capabilities in Matt Ingalls MacCsound
and the GUI tools in Cycling74's Max/Msp/Jitter for Macintosh os9 and
osX; and Miller Puckette'ss PD for Windows and Linux that both embed the
entire Csound language as a single external object by Matt Ingalls; and
given the excellent and extensive FLTK support of Gabriel Maldonado's
CsoundAV for Windows, (opcodes now added to Istvan Varga's
DeveloperCsound for Linux).
<p>
Csound is not C. At first glance, it looks like a programming language
with all that text, numbers, and cryptic variable names. But, it
doesn't take a musician very long to realize that the 500+ opcodes are
simply modules that they can patch together with variables. Yes, at the
lowest (and most powerful) level, Csound is text-based, but in less than
an afternoon and some of my original Csound Toots or Chapter 1 from "The
Csound Book," virtually anyone can figure out how to work with Csound
and begin to harness it's power. If you are an intuitive,
"production-oriented" musician that wants to turn knobs, make noises,
mangle the noise you made by turning more knobs, etc. without having a
clue, the Csound is NOT for you. Csound requires that you know
something about software synthesis, digital audio, and signal
processing. If you know something, and know how to use Csound, it is
not too difficult for you to design Csound for Dummies Applications and
Utilities which hide Csound entirely from the tweeker - I mean
power-user.
<p>
Q: Many in the Linux community care quite a bit about software
licensing. It appears that Csound is licensed under research-only
terms that some may find too restrictive. For instance, one can fix a
bug, or add a feature in their own copy, but redistribution with
changes would evidently be prohibited. Is there some reason that the
Csound license is set up this way, instead of having features that
typify open source licenses?
<p>
A: I can tell you this, that it is not Barry Vercoe's intent for
Csound to be restricted in any way. For "education and research"
purposes, one can do whatever they want with Csound. Distribution
seems to be one of the thorny issues. Regarding distribution, John
ffitch, maintainer of the Canonical Csound at Bath University, and
cSounds.com have permission from MIT and Barry Vercoe personally to
distribute Csound. Furthermore, I have permission to distribute
Csound on the CDROMS of "The Csound Book" and "The Csound Instrument
Catalog." How can I help the developers to distribute their versions?
Well, I personally pay for webspace for ALL the key developers so that
they can distribute their versions of the program through cSounds.com.
There really is not anyone creating free versions of Csound that is
not currently able to do what they are doing or what they want to do.
Selling music and samples made with Csound is also OK with Barry
Vercoe and MIT. Of course, selling Csound is not. MIT has sold rights
to develop commercial applications with Csound to Analog Devices and
some other companies and so they have some vested interest in
protecting those contracts and rights.
<p>
Still, we all wish that Csound was totally free, or that the ambiguities
in the licence could be clarified. I am happy to report that Barry and
I have been meeting about this very topic in the past few weeks. I have
been presenting him with the viewpoints of each of the core developers -
what they want to do with Csound, and what wording of the current
license prevents them from taking Csound in this or that direction.
During our last meeting, he contacted MIT's lawyers and we have arranged
to meet with them when Barry returns from Russia and India where he is
doing Media Lab work and Csound work. Hopefully these meetings will
result in a new licence or some new wording that will encourage future
developers in their efforts to improve and extend the language.
<p>
Q: Csound seems like a very nice interdisciplinary tool for students,
bridging across multiple subjects like music, sound, psychoacoustics,
and DSP. What have been some of your best experiences with Csound in
the University setting?
<p>
A: Csound is the ultimate educational platform for students of
Computer Music. In The Csound Book, every bit of synthesis and signal
processing theory are supported and illustrated by complete and fully
working Csound instruments that can be edited and expanded and fully
explored by the student. I have been teaching Csound to undergraduate
Music Synthesis and Music Production and Engineering Majors at the
Berklee College of Music for 18 years. For the past four years, I have
been teaching Csound to graduate students at NYU. I have given Csound
workshops and seminars in Eastern Europe, Western Europe, and
Southeast Asia. I use Csound in my DSP classes both at Berklee and NYU
and in my Max/MSP classes as well. Currently, we are developing a set
of Psychoacoustic tools for Music Therapy students at Berklee and I am
about to introduce a whole new area at cSounds.com developed by my son
Adam (a student of Scotty Vercoe!)
<p>
Csound has always been an excellent tool for teaching and learning
synthesis, acoustics, and signal processing. The Csound Book reveals
virtually all the industry secrets. When my students get Csound into a
major motion pictures or major telivision programs because of the Csound
gigs with Media Ventures or Machinehead; when my students get Csound
into Video Games because of their Csound gigs with Lucas Arts, and
Dreamworks; when my students do Csound work for Rock Stars like Trent
Reznor, Aphex Twin (Richard James), DJ Spooky; when my students get jobs
in Add Agencies, Jingle Houses, and Recording Studios and Csound gets
into national ads with voice talents like Jamie Lee Curtis; when my
students get gigs at Cakewalk, MOTU and other software companies because
they know and work with Csound; when my students publish thier own
Computer Music Books in Korea; when Csound compositions by my students
win national and international competitions; when Csound helps my
students get into graduate schools; when my students find ways a making
Csound work in their musical toolkit, these are some of the most
gratifying things about teaching Csound.
<p>
Hearing that computer music professors and students from all over the
world are using Csound and using The Csound Book is really great,
because Csound is really great - and getting better all the time. It
is gratifying to know that my work has been helpful and inspiring to
them. Max Mathews, the father of computer music is a good friend and
mentor to both Barry Vercoe and I. His MusicV program inspired Barry
to develop Csound and his book "The Technology of Computer Music"
inspired me to write "The Csound Book." Barry's son Scotty was my
student. My oldest son Adam, a Music Therapy major at Berklee, was
Scotty Vercoe's student. Today Adam Boulanger is building tools for
his own Psychoacoustic research in Csound and through his research
tools, introducing Csound to the Music Therapy community. I guess I am
most psyched about the fact that the future of Csound is in the hands
of some great students including Barry Vercoe's and my own very
talented sons.
<p>
In the year I was born, 1956, Max Mathews (the father of computer music)
had a dream and began to realize it in his MusicN languages. He passed
the torch to Barry Vercoe and their light inspired a nineteen year old
composer and electronic musician named Richard Boulanger. I am trying
to pass along what I have learned from them and what I have learned from
my brilliant students and colleagues. I hope it helps, and I hope that
something I have said in this interview inspires some of your readers to
check out Csound Today.
<p>
RESOURCES
<p>
Csound web site
<br>http://csounds.com
<p>
Dave Phillips Article:
<br>http://www.linuxjournal.com/article.php?sid=3187
<p>
"The Csound Book: Perspectives in Software Synthesis, Sound Design,
Signal Processing, and Programming."
<br>Edited by Richard Boulanger
<br>The MIT Press
<br>Cambridge, Massachusetts
<br>London, England
<br>ISBN 0-262-52261-6
<!-- *** BEGIN author bio *** -->
<P>&nbsp;
<P>
<!-- *** BEGIN bio *** -->
<P>
<img ALIGN="LEFT" ALT="[BIO]" SRC="../gx/2002/note.png">
<em>
</em>
<br CLEAR="all">
<!-- *** END bio *** -->
<!-- *** END author bio *** -->
<!-- *** BEGIN copyright *** -->
<hr>
<CENTER><SMALL><STRONG>
Copyright &copy; 2003, Michael Baxter.
Copying license <A HREF="../copying.html">http://www.linuxgazette.com/copying.html</A><BR>
Published in Issue 96 of <i>Linux Gazette</i>, November 2003
</STRONG></SMALL></CENTER>
<!-- *** END copyright *** -->
<HR>
<!--startcut ==========================================================-->
<CENTER>
<!-- *** BEGIN navbar *** -->
<A HREF="bhargava.html">&lt;&lt;&nbsp;Prev</A>&nbsp;&nbsp;|&nbsp;&nbsp;<A HREF="index.html">TOC</A>&nbsp;&nbsp;|&nbsp;&nbsp;<A HREF="../index.html">Front Page</A>&nbsp;&nbsp;|&nbsp;&nbsp;<A HREF="http://www.linuxgazette.com/cgi-bin/talkback/all.py?site=LG&article=http://www.linuxgazette.com/issue96/baxter.html">Talkback</A>&nbsp;&nbsp;|&nbsp;&nbsp;<A HREF="../faq/index.html">FAQ</A>
<!-- *** END navbar *** -->
</CENTER>
</BODY></HTML>
<!--endcut ============================================================-->