This is very useful, Tim. I've got a few comments, mostly pertaining to the need (or not) for looking ahead into future tempo changes. >>> 2. Tempo sync A plugin wants to do a tempo-synced delay. The plugin needs to find out when the time will be exactly 3 beats from "now" at the current tempo, and when that tempo changes. <<< I agree that this is a valid use case, but doesn't this put us straight into a requirement that plugins be allowed to look-ahead to future tempo changes? It is possible to do tempo sync without tempo lookahead, just as long as every tempo change that occurs within an audio frame is given the plugin in time. (Maybe just leave out the "3 beats from now" in the use case.) >>> 3. Quantizing <<< This poses an interesting problem which I'm not sure we've gotten to yet. A quantizer might need to snap events to a point in the time located in the past. IOW, an event at 1:1:005 might need to be quantized to 1:1:000. What happens in this case, is the audio processing frame spans musical time 1:1:005-1:1:010, that is, the audio processing frame for the desired quantized time has already passed? I guess I'm saying this suggests that plugins need to be able to report their processing delay in musical units as well as sample units? Also, I think a quantizer can be written without needing to look-ahead for tempo/meter changes. >>> 5. Automatic accompaniment <<< Again, can this be done without tempo map look-ahead? >>> 6. Realtime tempo follower 7. Offline tempo analysis <<< I would think that 7 follows from 6, using the rule that offline is a special case of realtime? >>> 8. Sequencer tracks 9. Audio tracks Is it notified of transport position in samples? <<< This would be the "score time" (as opposed to the "stream time"). Every processing frame would know the score time. >>> What if meter changes dynamically, but the sequenced data no longer makes sense? <<< When does a sequencer plugin cease to become a plugin, and start becoming a host? <g> ---------------------------------------------------------------------- Generalized Music Plugin Interface (GMPI) public discussion list Participation in this list is contingent upon your abiding by the following rules: Please stay on topic. You are responsible for your own words. Please respect your fellow subscribers. Please do not redistribute anyone else's words without their permission. Archive: //www.freelists.org/archives/gmpi Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe