[gmpi] Re: 3.9 (draft) use cases and stuff

  • From: Chris Grigg <gmpi-public@xxxxxxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Fri, 20 Feb 2004 16:19:34 -0800

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

But each of those works better with a different unit base. An audio track (without time stretch or beat marking) would not care about the musical unit. It would have a hard time converting "Bar 40, Beat 3" into a proper sample offset. A music-oriented sequence track would have a hard time converting "sample 123456" into a musical position.

Isn't this dependent on the host style? For a straight DAW-type host timeline will be linear time (either SMPTE or samples), no musical timeline. Musical score time would only be relevant in musically-oriented hosts (in the Sonar, DP, etc. vein). We already say events times are presented to GMPI plugs as (perhaps among other things as well) as either sample frame numbers or sample frame indexes, I guess the outcome of that decision determines whether the transport position at start of timeslice is delivered to the plug in samples.

> What if meter changes dynamically, but the sequenced data no
        makes sense?
 When does a sequencer plugin cease to become a plugin, and start
 becoming a host? <g>

A question I have been asking myself more and more. Having a dynamic tempo is not too bad. Having a dynamic time signature is a LOT more complicated. Maybe it is not worth it? Or maybe those FEW plugins that care about meter will figure it out on their own?

A plug-in format that assumes time signatures never change would be pretty unacceptable IMHO. Also if the host is doing its job, a realtime GMPI plug will never see a music event scheduled for any time outside of the current timeslice, so this isn't really much of a plug problem. Since all events go through the host for scheduling, can't we say it's the host's responsibility to make sure event beat & sub-beat numbers don't exceed what the current time sig allows? If we want to bend over backwards we could say there's a mandated way to try to fix invalid event times, maybe by doing a modulo against the current time sig and bumping the bar number, but on the other hand maybe invalid events should never be delivered and the host should signal en internal error to the user.

-- Chris 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

Other related posts: