[gmpi] Re: Parameters / controls / GMPI event system - refreshment

  • From: Chris Grigg <gmpi-public@xxxxxxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Fri, 2 Dec 2005 16:16:13 -0800

On Fri, Dec 02, 2005 at 03:23:22PM -0800, Chris Grigg wrote:
 But that doesn't answer the point I was making here, i.e. how does
 the controller know what voice allocation style to use, and isn't
 that dependent on the patch it's trying to play?:

you mena the VPID allocation scheme (host) or the real voice-process allocation scheme (plugin)

Isn't the plug's internal voice allocation scheme relative to VPIDs kind of orthogonal to this? All the plug can do is either obey or ignore VPIDs. This is talking about the case where the plug obeys them.

> >In real life, speaking as a GR-1 user, I'd suggest this needs to be
 >thought of not strictly as a fixed permanent mode of the controller,
 >but instead as some sort of dynamically configurable thing that's
 >somehow tied in with the design of the selected patch -- when
 >controlling something like a vibes patch, it just sounds wrong (and
 >not very often interestingly wrong, usually just wrong wrong) to
 >lose the ring-out of the last note every time you hit a new one
 >(which is what happens with 1-voice-per-string).... if you also
 >want the results to sound right, then you might indeed want the
 >selected patch's preferred way to be able to  back-propagate all the
 >way to the controller.  Don't know how, exactly.

 Any thoughts on that part?  Just because it's potentially ugly to
 solve doesn't mean it's unimportant.

Wouldn't something like ring-out be more akin to reverb? Internal to the plugin it has a separate unit that is tracking the tail. Maybe I just don't know what you're exactly talking about.

Can you clarify for me?

Sure, because what you describe's not it, this is all about voice occupation and how it relates to patch/instrument/sound design. Some voice allocation styles work better with some kinds of patches, other voice allocation styles work better with other kinds of patches.

Consider an imitative vibes patch (or piano with sustain pedal held down, or cymbals), with the controller sending messages using 1-voice-per-note addressing/allocation. At the synth end, the oscillator of the old note continues to run past the time the next note is hit, so it's still occupying a voice. (This is true even if the pedal's not held, it's just that the overlap period is shorter.) More than one voice is consumed in total, even though they were all triggered from the same guitar string on the physical controller side. Select an imitative guitar patch and things go all to hell.

By contrast, consider an imitative guitar patch, with the controller sending messages using 1-voice-per-string addressing/allocation. At the synth end, every time a new note is hit, it replaces the previous note because by definition it uses the same oscillator. Only 1 voice is consumed in total per string, and the behavior of each synth voice closely mirrors the acoustic behavior of the corresponding string of the physical guitar controller -- good for imitative guitars. But select a vibes patch and things again go all to hell.

With the VPID + channels method, which way the synth behaves depends only on what's in the messages it receives (==what the controller sends), it's not a purely internal setting. A given synth or patch -could- choose to ignore VPIDs within a given channel and just be monophonic per channel, or even ignore VPIDs and be polyhonic like MIDI 1.0, but then again I'd suggest the controller might well want to know about that, too, since in the GMPI world it has VPID's to send.

Now, how does the controller know when to send 1-voice-per-string addressing, vs. when to send 1-voice-per-note addressing? Since that decision depends in large part on the intention of the patch, isn't there a significant benefit in providing a mechanism for the controller to get that info from the patch in the synth? So it can make the necessary internal adjustment and then send the appropriate style of message stream, voice-allocation-wise?


        -- Chris G.

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: