[gmpi] Bookmark: Event Queues & Routing (not Topic 6: Time rep.)

  • From: Chris Grigg <gmpi-public@xxxxxxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Fri, 2 May 2003 13:34:50 -0700

We agree! Love that.

-- Chris

> >I assume by pin you mean some sort of signal path?

Control event input ports. Consider a plug-in with four MIDI ins, because it supports something ridiculous like 64 MIDI channels --

That pre-supposed the continuance of MIDI as a first-class citizen. Not if I have my way. :)

 discussed in another thread, a MIDI synth that can respond to three
 different MUSTIME contexts -- two music event in pins with identical
 control sets.  Allows for certain useful kinds of internal
 structuring in the plug, and eases accommodation for some legacy
 concerns.

I'm not sure what the question here was..?


 Analogize to a ring modulator, with two identically typed (audio)
 inputs with distinct functions.  So pins would have to be labelled to
 distinguish them for the end-user or host making connection decisions.

Absolutely! In XAP we called them hints. For example, stereo plugins would have two audio inputs. One is hinted LEFT and one is hinted RIGHT. The host can make an assumption about the connection of a LEFT to a LEFT and a RIGHT to a RIGHT. It could also give the user the option to flip that.

Makes things like 7.1 sound pretty easy.

 >This lets a plugin have 1 event-queue for all events, and cookies to sort.
 >This lets a plugin have 1 event-queue for each control.
 >This lets a plugin decide what it wants to do, and how it wants to receive.
 >And the host doesn't need to change it's behavior.

Sounds like that would work fine no matter how many queues per plug

Exactly the point - it is not OUR job to decide how many queues make sense. If we decide on one per plug, it makes life hard for some developers. If we decide one per control, it makes life hard for other developers. Let's agree to not decide, and let the plugin tell us.

 One way to implement pins would be to use your singgle-queue
 approach, but also ngive events a 'Pin' field, so they all appear in
 ABSTIME-stamped order.  Then we just leave it to the pin to dispatch
 events from the one queue to the different internal per-pin event
 handling units.

IFF the plugin finds that the best way to deal with it. By a simple abstraction at startup time (no extra cost) we give the plugins that much more control.


-- Chris

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



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


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