[gmpi] Re: Parameters / controls / GMPI event system - refreshment
- From: thockin@xxxxxxxxxx
- To: gmpi@xxxxxxxxxxxxx
- Date: Sat, 3 Dec 2005 01:25:25 -0800
On Fri, Dec 02, 2005 at 07:28:32PM -0800, Chris Grigg wrote:
> story from the performance side?: Assuming the guitar controller
> case is addressed by sending each string on a separate channel, then
ok
> within any given channel, is the controller supposed to be able to
> send in different modes (like 1-VPID-per-note vs.1-VPID-per-channel)
> at different times, or only in one mode? If yes, then how does the
> controller know when to go into each possible mode? If no, please
> describe the one mode.
it should be able to send *anything* it wants. VPIDs are how you address
a voice within a plugin. If you only have 1 VPID, you can only address
one voice at a time. If you have one VPID per keyboard key, then you can
only address one instance of each keyboard note at a time. If you have
unique VPIDs for every note, then you can address them all at the same
time.
What the plugin chooses to do with *REAL* voices doesn't matter from the
host's side. Assume it will do The Right Thing for the patch in question.
> Also, I don't understand why it would be good for real voices to
> continue to run after being divorced from any VPID, that seems more
An envelope tail? A sample that plays to the end, regardless of note-off?
I'll animate this tomorrow. Then you'll get it.
> Tim said:
> >On Fri, Dec 02, 2005 at 04:16:13PM -0800, Chris Grigg wrote:
> >> >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.
> >
> >You say obey and ignore, but I want to make an aspect of my mental model
> >clearer: it's not about obey or ignore. A VPID is simply a handle that
> >the host uses to address a process (see, new terms :) on the plugin. The
> >plugin chooses how to map VPIDs <-> processes. On to your question.
> >
> >> >Can you clarify for me?
> >
> >> 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.
> >
> >Sure. This works in either reuse-VPID or never-reuse-VPID models. In the
> >reuse-VPID model, the voice-process can still keep playing after the VPID
> >has been re-used. You just can't address it anymore. You can not send it
> >any more events. Consider the voice-process to be detached from the VPID
> >handle, but still running it's tail.
> >
> >The plugin can choose to operate this way when you choose the vibes patch.
> >
> >If you were using the never-reuse-VPID model, the first VPID would still
> >be attached to the voice-process, and you could send further events.
> >
> >> 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.
> >
> >Sure. This works in either reuse-VPID or never-reuse-VPID models. In the
> >reuse-VPID model, the voice-process is stopped when the VPID is re-used.
> >
> >The plugin can choose to operate this way when you choose the guitar
> >patch.
> >
> >If you were using the never-reuse-VPID model, the plugin would need to
> >know that the new VPID was intended to replace the old VPID. It could use
> >the floorf() of the pitch, or it could use the channel number or something
> >else. All it needs to do is recognize that VPID(2) is killing VPID(1).
> >
> >> 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.
> >
> >We *might* want the controller to know the model that the plugin wants,
> >but I don't think it is needed. You can operate in both modes above as
> >well as true mono mode completely internally.
> >
> >Hosts can always operate in the simplest mode: never re-use VPIDs until
> >you really wrap 32 bits. Plugins can do what is right for them
> >internally, whether that is per-patch or not.
> >
> >Does that make my intentions clearer? It's important to see the
> >decoupling between a VPID and the actual process. What I really need is
> >an animation. :) Maybe I'll whip somethign up in flash, if this doesn't
> >clarify.
> >
> >----------------------------------------------------------------------
> >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
>
>
> ----------------------------------------------------------------------
> 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
>
--
Tim Hockin
thockin@xxxxxxxxxx
Soon anyone who's not on the World Wide Web will qualify for a government
subsidy for the home-pageless.
----------------------------------------------------------------------
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
- Follow-Ups:
- [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- From: Chris Grigg
- References:
- [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- From: Jeff McClintock
- [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- From: thockin
- [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- From: Chris Grigg
- [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- From: Chris Grigg
- [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- From: thockin
- [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- From: Chris Grigg
- [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- From: thockin
- [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- From: Chris Grigg
- [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- From: thockin
- [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- From: Chris Grigg
Other related posts:
- » [gmpi] Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- » [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- From: Chris Grigg
- [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- From: Jeff McClintock
- [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- From: thockin
- [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- From: Chris Grigg
- [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- From: Chris Grigg
- [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- From: thockin
- [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- From: Chris Grigg
- [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- From: thockin
- [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- From: Chris Grigg
- [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- From: thockin
- [gmpi] Re: Parameters / controls / GMPI event system - refreshment
- From: Chris Grigg