[gmpi] Re: Topic 6: Time representation

  • From: "Angus F. Hewlett" <amulet@xxxxxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Tue, 29 Apr 2003 13:46:30 -0400 (EDT)

On Tue, 29 Apr 2003 RonKuper@xxxxxxxxxxxx wrote:

> Sorry, I beg to differ.
> One can imagine using GMPI to implement a MIDI only plugin.  It seems that
> MIDI data should be processed solely in musical time.

The way I see it, MIDI data is just a subset of event data, and events
should be processed in absolute time unless there's a really, really good
reason to do otherwise.

> Soft synths would naturally want incoming musical events (MIDI or whatever)
> to be expressed on a musical timeline, but rendered on a sample timeline.
> The host could convert musical events to a sample timeline, but what if we
> adopt a note event structure that has an implicit duration?  Then the
> note-off time (in the future) become corrupt if the tempo changes between
> note on and note off.  Not so if note times and durations were expressed in
> musical units.

Please, no... this is the worst and most difficult part of DXi to
implement. I understand it has reasonable goals, but the way DXi handles
events is absolutely painful for plugin developers (well, this plugin
developer anyways). I'm all for an architecture that has no knowledge of
the future beyond the end of the current processing segment.
Notes-with-implicit-musical-duration is an absolute nightmare for plugin
developers.

> >>>
> The one potential problem with this scheme is that it is not good for
> dealing with plugins that want to have knowledge of "future" events beyond
> the end of the current process block.
> <<<

> MIDI quantizers and arpeggiators fall into this category.  It's not only
> about being able to deal with tempo changes, its about being able to
> position musical (output) data on the song's timeline without worrying the
> position might change later.

It doesn't have to be implemented in that way... such a plugin can buffer
internally and does not position -anything- on the timeline until the time
is right for it to do so (i.e. during the processing slice in which the
event falls). The plugin can track tempo changes and song position and
simply wait for the right time to output the event. OK, this makes things
a little harder for MIDI plugin developers (although really not that much
harder), but a great deal easier for softsynth developers.

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

Other related posts: