| Pete Moss pointed out that what I described as my long term plan (a
framework for C++ to support realtime synthesis) is akin to cmusic.
I think this is true. This post looks at what I understand about
cmusic and how it only produces a single sample of audio per ugen
call, compared to Csound which produces ksmps samples, and so can be
very much faster.
Looking at Dave Philip's marvellous link-farm on software synthesis:
http://www.bright.net/~dlphilp/linux_soundapps.html
leads me to Tim Thompson's venerable PLUM page on music languages,
which should be at:
http://www.nosuch.com/plum
but this file is absent at present. (I emailed Tim.)
Searching for "cmusic" is tricky, but I found something from 1994 at:
ftp://ccrma-ftp.stanford.edu/pub/cmusic/
I also found some descriptive text at:
http://www.gsu.edu/webfs01/mus/musrst/public_html/cara/courses/
Csound_Users_Seminar/acoustic.html
which states that cmusic was written in 1980 by F. R. (Dick) Moore.
Like Csound, cmusic's lineage is traceable to Music V.
Please correct me if I am wrong, but it is my understanding that both
Music V and cmusic call the code for a unit-generator, and that code
produces just one sample of audio output. Csound's distinguishing
characteristic is that it has a variable "ksmps" which tells the unit
generator how many samples to calculate. ksmps can be 1, but then
Csound runs rather slowly, as would Music V and cmusic. Generally
ksmps is 5 to 25 or so - and so the overhead of running the central
loops and calling unit generator functions is spread over the
production of many more audio samples.
Csound therefore has "k" and "a" rate signals, with the orchestra file
determining the ksmps rato between them. This makes for some ugly
complications trying to maintain and translate between two separate
kinds of variable, but it makes Csound run ***lots*** faster. This is
particularly true in "draft" mode where you set ksmps rather high to
test the composition out, albeit with lousy sound quality. When the
composition is complete, then set ksmps to 2 or 3 and leave the
computer cooking overnight to produce the final rendering.
Speed is absolutely crucial in this field, since computers are still
slow compared to the rich analogue world of zillion-path reverberation
which we know and love.
I remember trying to understand cmusic a few years ago, but I never
got very far. Perhaps it was because I discovered it could not run as
fast as Csound.
Does anyone have more information about cmusic?
Generally with other software synthesis programs I have looked, I lost
interest when I found that either they did not support ksmps samples
per call (this includes most programs and Kyma/Capybara
http://www.symbolicsound.com ), or they start with a particular
high-level model of what constitutes "music" which doesn't suit me.
Kyma looks amazing and is certainly an inspiration, but it runs on
specialised hardware, uses integers rather than floats and has a
limited memory capacity per CPU.
- Robin
===============================================================
Robin Whittle rw@firstpr.com.au http://www.firstpr.com.au
Heidelberg Heights, Melbourne, Australia
First Principles Research and expression: Consulting and
technical writing. Music. Internet music
marketing. Telecommunications. Consumer
advocacy in telecommunications, especially
privacy. M-F relationships. Kinetic sculpture.
Real World Electronics and software for music including:
Interfaces Devil Fish mods for the TB-303, Akai sampler
memory and Csound synthesis software.
|