1999-06-16 12:26:42 UTC
say I just talk about them but don't do them, take note that I have done
some of them in AXCsound/JCsound, which are open source.
This particular rant is occasioned by my audition of Buzz and Generator.
Buzz, for those of you who don't follow software synthesis on the Web, is a
"tracker" synthesizer, and is free. Generator is a commercial modular
software synthesizer, and costs money. Both programs run on Windows. Other
programs of note that I don't talk about here are SuperCollider and
Buzz is a software synthesizer for tracker files. The tracker files are
similar to MIDI files except that they can contain embedded sound samples.
It appears to be an idiosyncratic binary file format. I don't know where it
comes from (but I will find out). Buzz can be found at http://www.buzz2.com.
Buzz has a simple but effective graphical user interface for (a) editing
sequences, (b) editing loops for sequences, (c) cataloging samples, and last
but not least, (d) wiring unit generators together. The unit generators
(called "machines" generically or "generators" and "effects" for signal
sources and signal processors) are Windows DLLs, plugins in other words, and
can be written by anybody with the latest Microsoft compilers; they have a
fairly simple design. Buzz automatically generates their simple-minded
little GUIs for them.
Buzz has an active community including developers of plugins as well as
composers of songs, with a number of Web sites, you can get CDs containing
tracker files and machines, and the thing actually sounds pretty good (it
uses DirectX sound drivers and can accept soundfile input and write
soundfile output as well as play in real time). There is no realtime MIDI
note on performance (although there are realtime MIDI control messages) and
no external API for programmatic control. Buzz's DSP capabilities have now
gotten as far as the Karplus-Strong plucked string and some pretty extensive
filtering, chorusing, delaying, and reverberating.
Generator is a software emulation of analog patch-cord synthesizers. It is a
very high quality product. It does low-latency real-time performance with
MIDI note on control, can read and write input and output soundfiles, and
has extensive facilities for user wiring of unit generators with a fancy,
fancy GUI that emulates a Moog-style modular synthesizer. Generator's DSP
facilities are very roughly comparable to Buzz's. Generator is VERY good at
making interactive patches (not as powerful as Max/MSP, but much easier to
"get" and use). Generator is planned to be able to act as a VST or ActiveX
Currently, Csound offers substantially more musical capabilities than either
of these products, which probably are fairly representative of the current
state of the art, but it is looking increasingly creaky in the software
engineering department. Csound is particarly strong in score format,
time/frequency analysis and resynthesis, and physical modeling.
Csound would quickly fall to the rear of the class if (a) Buzz got note on
control and a simpler input file format, or (b) Generator got plugin unit
generators and a more flexible input file format. At that point, people like
me would scarf up Csound's unit generators and add them to a synthesizer
framework that is more functional and easier to use, resulting in a best of
breed musical instrument.
Csound could be put firmly back at the leading edge of the state of the art
Csound gets plugin unit generators and function tables with a SIMPLE, I mean
REALLY simple, API.
Csound gets double-precision signal processing (Buzz and Generator use
Csound gets low-latency MIDI and audio input and output that works more or
less the same on its major platforms.
Csound gets an at least semi-snazzy GUI including unit generator wiring.
Csound gets an external API for programmatic control.
Csound can act as a VST plugin.
These features could be provided at moderate effort by:
Making Csound into the DSP kernel of a Java software synthesizer.
Evaluating JavaSound for all audio and MIDI input and output. Currently
JavaSound lacks MIDI input but some independent developers are working on
Adapting Russell Pinkston's PatchWork program (16 bit Windows program) to
Java as a unit generator wiring form.
The VST part is easy.
What is needed here is a reasonable compromise between the power and
amenability for experimentation of a bare-bones piece of academic UNIX
software, and a user-friendly GUI and user-extensible plugin architecture,
with realtime performance AND non-realtime soundfile rendering. This is the
wonderful musical instrument that is evolving before our very eyes (and
ears), and Csound already contains all the necessary guts for the thing.
dupswapdrop: the music-dsp mailing list and website