[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.