[gmpi] MIDI - support for transport vs. internal use

  • From: Brian Willoughby <brianw@xxxxxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Thu, 13 Feb 2003 13:39:33 -0800

Matthew Xavier Mora <mxmora@xxxxxxxxx> wrote:
[  3) Use MIDI whenever possible. MIDI data can already be
[  incorporated with audio streams over FireWire which means we won't
[  have to invent another protocol to send parameter changes. Plus
[  existing hardware will be able to manipulate your GUI. Also don't
[  think MIDI speed is a limiting factor. "MIDI over alternate
[  transports" already takes into account send MIDI data at higher
[  than 1.0 speeds.
[
[  4) GUI separate from processing. If your GUI-to-processing
[  interface uses MIDI internally then it is no problem sending the
[  commands over a transport to control your processing.

MIDI should certainly be supported, but I recommend that it not be used as  
part of the API interface.  MIDI parameter values - being limited to 128 or  
16384 discrete values - just do not have the range that modern applications  
require.  The API, particularly between GUI and internal, but between any  
component, should be focused on floating point values for parameters, or at  
least 32-bit fixed point values.  Whatever resolution is settled upon as the  
GMPI standard, it can be down-converted to MIDI resolution at the transport  
layer.

I would also vote against having a dual API which supports both MIDI  
parameters and higher resolution GMPI parameters.  Such a split standard is  
more confusing, and cripples the new standard by introducing official  
limitations merely for backwards compatibility.  If actual MIDI data comes from 
 
anywhere but a transport (where the system can translate automatically), I  
think it will be within the capabilities of GMPI developers to convert their  
values to e.g. float before passing them to the GMPI API.

On a related note, perhaps the transport drivers should have some sort of  
configuration GUI which would allow the operator to decide whether or not MIDI  
is used.  In the case where the transport is connected to a MIDI port with MIDI 
 
device(s) attached, the choice is obvious to down-convert parameters to MIDI  
resolution.  But when MIDI interleaved over FireWire is used to connect two  
machines, the operator may want the choice between selecting MIDI for  
compatibility, and some sort of native GMPI transport (provided at the  
transport driver level) for maximum fine tuning of values.

Brian Willoughby
Sound Consulting

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

  • » [gmpi] MIDI - support for transport vs. internal use