[gmpi] Re: Reqs 3.8 Events - ramped events

  • From: RonKuper@xxxxxxxxxxxx
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Fri, 16 Jan 2004 09:09:08 -0500

>>>
As for the case of very long ramps, I've had a read of the AU docs.  It
works like this:
...
<<<

By comparison, here's how ramps are done in DirectX.

When a plugin exposes parameters, it exposes parameter info through a query
method.  This information includes information such as data type, name,
strings (for enumerated parameters).  One bit of information is bit-field
which states the kinds of shapes that are supported.  DX8 supports jumps
(instant changes), linear ramps, 2nd order (quadratic) curves, and sin/cos
shapes.

In this approach, there is an implicit cooperation between the host and
plugin in sending ramps.  If a plug says it supports linear ramps, then the
host may (or may not) send them.

The problem is, from a host perspective, users want to specify all ramps for
all kinds of plugins.  They don't want to be restricted in how they do their
automation because a plugin doesn't happen to support a particular kind of
ramp.  Also, the user might do copy/paste editing that pastes a
non-supported kind of ramp onto a plugin's automation track.

So we must necessarily have code in our host to decimate all flavors of
ramps into instananeous jumps.  BTW we use this same decimation code to
decimate MIDI ramps into discrete MIDI messages.  (We let people assign
linear ramps to CC and xRPNS).

Which raises another point: I believe restrciting ramps to real-valued
parameters is too restrictive.  MIDI is a concrete case where it makes sense
to allow a ramp through integer values.  I can also imagine the creative
potential of ramping through enumerated parameters.

So my desire for ramps in GMPI in this:

Req:
The meta-data for the controls exposed by a GMPI plugin will be an
indication of the kinds of ramps that are supported by the plugin.

Req:
GMPI must specify at least 3 kinds of ramps: linear, jump that can be
rendered efficiently (eg without memory allocation, expensive DSP for
recalc, etc), jump that cannot be rendered efficiently.

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