[gmpi] Re: Drilling down into MIDI->GMPI conversion

  • From: "Martijn Sipkema" <m.j.w.sipkema@xxxxxxxxxxxxxxxxxx>
  • To: <gmpi@xxxxxxxxxxxxx>
  • Date: Wed, 23 Jun 2004 01:16:50 +0100

> >>I don't believe that MIDI as it is exists is a great environment
> >>for composing. For example, in my own work, the inability to alter
> >>parameters on an individual voice after it has been triggered is a
> >>major stumbling block.
> > 
> > 
> > Once again I don't understand how you support you conclusion.
> > Please follow along and tell me where my explanation is flawed.
> > 
> > The ability to modify a voice after is triggered depends first
> > on the synth engine allowing it (responding to some command),
> > second on having an appropriate control (physical) to use for it,
> > and third having a means to send the command using the control.
> > 
> > MIDI is a large set of numbers, assembled together into messages.
> > People are free to use many of the numbers in any manner they
> > choose. For example, if you have a synth that actually will respond
> > to voice modifications after triggering, and you had a way to tell
> > it what MIDI controller number you wanted to use for what mods to
> > what voice, then all you would need to do is pick a controller and
> > assign it to "voice A modification B". 
> > 
> > So... how is MIDI unable to alter an individual voice after is has
> > been triggered?
> 
> I did not mean to say that it was impossible. I said that it was 
> unwieldy and kludgy (that's why I mentioned a couple of kludges). 
> Controllers are defined per channel, not per voice. It is possible for 
> the synth to assign them per voice as they are dynamically allocated, 
> but this quickly gets out of hand. If I have 10 parameters per voice, I 
> am limited to 12 voice per channel. And that is assuming I have nothing 
> else that I want to use those controllers for in a channel global manner.
> As soon as I have a granular synthesis grain field with 500 
> simultaneous voices each with 10 params, that requires 42 channels worth 
> of controllers. Plus I have to wait for the synth to allocate the voice 
> before I can know which controllers go with which note. And how do I 
> send the 10 start parameters for each note before I know the 
> controllers? Well, I could ask for the controllers first, then send a 
> note on, but how do associate that note-on with the controllers I just 
> allocated? Use some unique ID coding of the note number and velocity? 
> Just give up and code it into SysEx? And what if my parameters need more 
> than 14 bits precision? 14 bits is pretty poor precision for sending 
> tuning frequencies, for instance.
> I am not trying to say that MIDI can't be twisted into doing a lot of 
> things that were not imagined at the time it was created. But it is 
> simply not hard for me to completely overwhelm its bandwidth (not the 5 
> pin DIN bandwidth, the complete protocol bandwith), resolution, and 
> design constraints. And some of these things that overwhelm MIDI are 
> easily codeable within modern APIs.

MIDI is not meant to be used in that manner I think; MIDI encodes actions
like moving a controller or pressing a key. There is a per note command
(besides note on/off): poly pressure.

So yes, I think it would be good for GMPI to support more than one
control protocol and possibly add more in a later revision. MIDI is good
at what it does and for something else the GMPI parameters are better
suited... Thus I think allowing more than one control protocol should
be a requirement even if this makes it impossible for the host to know
the plugin's state by looking at its inputs.

--ms




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