On Wed, 30 Apr 2003, Paul Davis wrote: > >Does this last one (musical time) need to be supplied constantly, or can > >it be supplied as periodic sync pulse events? > you can do it as an event, but the point where you really need it is > within the process() callback, and it seems to make sense to me to > pass it in along with the other time references. > you'd pass changes in nanoseconds-per-tick as periodic sync pulse > events, following changes in the tempo and/or meter. the actual tick > position would be a reference time just like the sample clock or UST. Right, that makes sense. > >It begins at streaming session start and runs monotonically until the end > >of the current streaming session. > i agree. but in that case, we need two sample clocks, one for "free > running sample clock" and one for "transport sample clock". otherwise, > plugs that don't know anything about musical time have no way of > knowing where the current transport location is without dealing with a > stupid and unnecessary conversion. OK, so we need:- 1. Absolute sample clock - int64 in samples 2. Transport (media) sample clock - int64 in samples 3. Absolute UST clock - UST clock structure 4. Transport UST clock(?) - UST clock structure 5. Musical clock in ticks and fractions of ticks (which, by definition, is defined in terms of the transport, and -??- is optional as some hosts may not have a notion of musical time). Probably easiest to implement this as a double precision float, as it will often be fractional. Transport sample clock, transport UST clock and musical clock can all be reset (by an event) during a block (e.g. if the song loops back during the current block). Absolute sample clock and absolute UST clock cannot be reset except at stream stop and start. > sure. i wasn't trying to be specific about the "retrieval" message. if > asked, i would probably say it goes in as const-pointer-to-const > argument to the process callback. Works for me :) Regards, Angus. ---------------------------------------------------------------------- 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