[CM] realtime piping

Orm Finnendahl finnendahl@folkwang-hochschule.de
Wed, 12 Jun 2002 20:03:24 +0200

Hi Rick,

thanks for the reply.

Am Mittwoch, den 12. Juni 2002 um 07:36:25 Uhr (-0500) schrieb Rick Taube:

> a couple of questions. why is csound complaining about "s"
> statements and its comment character? Is it becuase you are piping
> and not really writing a score file? 

Yes exactly. The input pipe unfortunately doesn't skip comments and
doesn't recognize section and end statements (I didn't check it, but
my guess is that tempo statements also aren't recognized. f-statements
are recognized, though, making it possible to dynamically overload old
function tables.

> if thats the case then there
> should be a "csound port" object defined in cm that would be used
> instead of the sco-file object you are using now, ie similar to the
> midi-port and midi-file objects that currently exist in the midi
> code.

Yes. That would be the clean solution. It also makes sense since you
always need a score file for csound (which can be regarded as another
parallel input to csound) even if it's empty and just contains some
statement to keep the csound process running long enough for realtime
input. The pipe is something like an aux realtime input to the csound
process and only handles a subset of the score syntax.

> on the realtime issue: what lisp are you using? the :rt feaure will
> only work in lisps that support mutiprocessing (mcl and acl). and
> unfortunately the lisp multiprocessing stuff doesnt work that well
> because lisp processes dont provide the responsiveness one needs to
> really do "real time" interaction. this is the main reason id like
> to move cm out of cltl2, perhaps to a C+scheme enviroment so that
> musical processes can really run realtime.

Oh, that's the problem! I'm using clisp on Linux. Does that mean that
neither midi, nor csound output will be possible in realtime (I'm not
talking about input)? In the last months I used pd for the realtime
part, reading the scorefiles linewise and sending it to csound (using
the csound~ object in pd). I'd like to skip the intermediate step,
though. As I use some sort of sampler-like setup for my test runs, it
gets quite annoying that each time I want to hear a sequence a new
csound process is started, having to load all the samples into RAM
again. That is avoided with the realtime access of csound.

Concerning the scheme environment: I recently made some experiences
with siod and found out that it is far away from scheme reference
manuals I found in the net, (e.g. lacking a lot of functions). I got
the impression, that scheme in general is somewhat cleaner, but it
seemed less standarized and with a lot less functionality as it is
lacking all the bells and whistles of keywords, optional parameters
and the whealth of built in macros and functions of cltl2. You can
probably add the lisp functionality with libraries but then you'd end
up with yet another lisp dialect which again isn't standarized. Is my
impression right or did I look into the wrong direction?