>However, I definately think that, at some point, something like an >arbitrary-event-type API should be done. It would be absurdly useful.
this is not hard to do - JACK could easily be adapted for use this way. the problem is really in syncing different streaming data rates and providing buffer management for different types of data. despite richard (f.)'s description of LADMEA, i don't believe that getting asynchronous data like MIDI and streaming data like audio and video to run properly in sync is easy at all. an API to deliver events is of no use if the plugin can't "send stuff out" at the right time. when you've got different notions of data flow, and a mixture of synchronous data and asynchronous data, this gets really hard to do. limit yourself to one data type (as JACK currently does) and its fairly straightforward. even two different rates of synchronous data is reasonably OK, especially if there is an integer ratio for the number of "data units" in one stream versus the other (e.g. audio at 48k, video at 30fps => ratio = 1600:1). but make that ratio non-integral and/or throw in the need to receive and send random quantities of (say, MIDI) data at random times, and things get really hard. gstreamer would seem like a framework that should have solved this problem but i'm not clear from reading about it that they have done so. if people have ideas on how to do this, that would be great. --p
