[CM] Re: Csound + Grace
Heinrich Taube
taube at uiuc.edu
Fri, 29 Feb 2008 17:10:18 -0600
> It's a question of whether GraceCL can only send events in real
> time, or whether it can send them all at once or space them out. But
> from what you say it sounds like you can get GraceCL to send data
> out of real time.
Yes, Grace (not GraceCL which is Common Lisp and only non-real time)
can actually do both right now. sprouted processes run in real time
but you can ignore process and just write loops and functions to send
data in non-real time. One simple way to support "score based" work
would be to associate a "scratch score" (buffer) with each port and
then to allow the user to send data to a port even when its closed. If
you send data to a closed port it gets added to the port's buffer. Now
when you mouse on the closed Port's menu, the menu checks if the
buffer has elements an if it does the menu provides two options:
Write or Flush (and NOT Open) If you select Write then the buffer
gets written to a scorefile -- e.g a sndfile for csound, a midi file
for the midi port, an oscfile if there were an osc port and so on.
Once the buffer is written it is flushed automatically and then you
can either select Open to work with the port in real time work or keep
it closed and generate another score file.
With that addition Grace could handle all the non-realtime score stuff
that common music currently provides (.mid, .osc, .sco .sco) but all
within a portbased, realtime framework.