I think if we can bring MMC into GMPI without going nuts, we should. But if we do end up going nuts, and if it's not musical semantics, I vote that we forget it. ----- Original Message ----- From: "Paul Davis" <paul@xxxxxxxxxxxxxxxxxxxxx> To: <gmpi@xxxxxxxxxxxxx> Sent: Wednesday, June 16, 2004 10:32 PM Subject: [gmpi] Re: 3.15 MIDI > >What about MIDI sync? Do we want the GMPI graph to be able to chase to > >external beat boxes? > > We certainly do. > > If the GMPI graph can chase a tempo map of some kind, then I would > imagine chasing MIDI sync is pretty trivial. Since chasing a tempo map > is in the reqs (somewhere, right?), this is a done deal. > > >What about MIDI machine control? Do we want the GMPI graph to play when the > >user presses [Play] on their ADAT machine? > > We certainly do. > > I don't know of any plugin that works with MMC, and its frankly hard > to imagine how they would. What machine ID would they use? How do they > tell the host their machine ID so that it understands to route the > sysex to them? Or does it send sysex to all plugins? How can a plugin > "start" if the host doesn't "start"? How can 1 plugin start if others > do not? > > MMC is used today to control hosts, and I imagine that this would not > change. > > >> What matters are not byte-level correspondence, but semantic > >> correspondence, and this is easily achievable. > > > >I'm not convinced this is achievable. For example, let's consider the > >conversion of MIDI volume controller to GMPI. MIDI volume doesn't have a > >standard mapping from 0-127 to gain values. So how does this value get > >converted within GMPI? How the does the converted value survive the round > >trip through a processor that does: > >MIDI -> GMPI - > [Event Processing] -> GMPI -> MIDI. > > What happens today? > > MIDI -> MIDI processing -> MIDI > > Thats not what we are really talking about, hence my attempt to > distinguish between *editing* MIDI streams and being *controlled* by > MIDI streams. > > But anyway, if we do have > > MIDI -> GMPI -> [ Event processing ] -> GMPI -> MIDI > > how would > > chan0,CC#7=123 -> /chan[0]/volume=0.968503937 > > [ ... ] -> /some/other/message -> > > chanN,CC#=iii > > not work? just standardize the rounding method for float<=>int, and i > see no issues with this, save one: > > What if /some/other/message cannot be translated back into MIDI? > Frankly, I just see this as a problem. If I write a processor plugin > today that takes MIDI, converts MIDI to a position in a 2D lookup > table, and then uses the value from the table to control some > parameter, how can I convert that value back to MIDI? In the general > case, I cannot. If you write an [ Event Processor ] that converts MIDI > into a fundamentally different form, then the original MIDI byte > stream is lost. No different than it is today. If you *must* keep it > around (say, for "thru" processing), then you do what you would have > to do today: copy the incoming message and forward that. > > >The problem with MIDI, or rather, with assuming we can cleanly convert MIDI > >messages to another control format, is that in many cases the semantics of a > >MIDI message are opaque. > > Thats EXACTLY why we don't want it floating around inside of the GMPI > graph. Did MIDI CC#7=98 set the gain of all plugins to a particular dB > level? No way to know that. In fact, there is no way to know what > effect any MIDI CC has on any plugin, a priori. I never enforce the > standard MIDI "semantics" of CC's in my host, because for the most > part its just irritating to actual users. > > The central issue, i think: whenever a MIDI message has a controlling > effect on a plugin, the host needs to know what effect it will have. > > There only two ways to do that: either the host enforces semantics on > the message (e.g. converts it to a GMPI control message), or the > plugin calls back to the host to notify it of a parameter > change. Please check the archives or the reqs. document for more on > why we didn't we want that (because to be perfectly honest, I've > forgotten :) > > --p > > > > ---------------------------------------------------------------------- > 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 > -------------------------------------------------------------------- mail2web - Check your email from the web at http://mail2web.com/ . ---------------------------------------------------------------------- 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