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.
_______________________________________________ Cmdist mailing list [email protected] http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist
