[gmpi] Re: Reqs 3.8 Events - ramped events

On Sat, Jan 24, 2004 at 02:26:53PM -0800, Chris Grigg wrote:
> But is this really viable across the board?  An in-graph note index 
> of 40.5 converting to a MIDI wire note of 40 or 41?  An in-graph 
> sustain pedal value of 0.5 converting to a MIDI wire CC value of 0 or 
> 1?  This is a source of error.

CC can more easily be turned into [0.0, 1.0] values.  As for 40.5 being 40
or 41, just define one rule and stick to it.  Always truncate.  40.5 == 40.
40.99999 = 40.

> C) If GMPI forces conversion of integer control surface values into 
> real values to occur at the GMPI graph bounds (by the host), then it 
> eliminates the possibility of allowing more than one plug destination 
> to respond to the integer messages in different ways.  Compared with 
> existing plug formats, this is a loss of functionality.

It doesn't preclude that.  Two answers.  One is to convert CC info into
normalized data, which can be connected to natural controls simply by
converters or something(*).  Two is that the conversion is done at the
MIDI->GMPI gateway.  That gateway can send the same incoming MIDI to
multiple destinations in different forms, if need be.

(*) We could require that events be flagged as 'normalized' or 'natural'.
Normalized data needs to be convereted by the receiver.  Naturlaized data
does not.  We could alternatively provide simple normal->natural converters
that sit in front of natural inputs to naturalize.  We could thirdly just
say "MIDI compatible controls are float [0.0, 1.0]" or even "MIDI compatible
controls are int [0, 127]".  This still goes a long way towards getting rid
of MIDI parsing in every plugin, though keeping it as int seems to be
pointless :)

> If you let a plug have a MIDI In control port then all the individual 
> controller routing for that plug is handled automatically within the 
> plug, with no host load and no host GUI needs to be written by the 
> host author nor played with by the user.  Lots and lots of popular 
> plugs already work this way.

This is exactly what I hate.  I don't want to know what CC# each knob in
SynthX is.  I don't want to figure out MIDI learn on each Synth I buy.  I
want to right-click->link-to-MIDI and then waggle a knob.  On EVERYTHING.
The same way.  I want to be able to write plugins that can be controlled by
MIDI without writing a MIDI parser and building it into each plugin.


----------------------------------------------------------------------
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: http://www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe

Other related posts: