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

  • From: Jeff McClintock <jeffmcc@xxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Thu, 01 Dec 2005 16:38:44 +1300



thockin@xxxxxxxxxx wrote:
OK  Riddle me this

* I press key #60 on my keyboard:

t0: VVID(60).cutoff = 0.7
t0: VVID(60).velocity = 64
..-- VVID(60) is playing

t1: deactivate VVID(60)
        -- VVID(60) goes into release stage (I have a long envelope release)

* I press key #60 on my keyboard again:

t0: VVID(60).cutoff = 0.1
        -- What happens?

You forgot Velocity (you pressed key 60 again)

> Did I just ask for the cutoff to change on the tail of the first note, or
> did I ask it to start thinking about a new note?

you triggered a new note. The correct behaviour for any keyboard instrument I can think of (Piano, Organ, Mellotron, Rhodes, Clavichord).


The real issue you're grappling with, is that the synth has limited resources.
For each VVID you send, the plugin must allocate memory to hold the current state of all controllers on the VVID (Pitch, Velocity etc).
If host keeps sending new VVIDs to the synth, the plugin will eventually be overwhelmed by the huge ammount of 'state' it has to maintain.


'deallocating' a VVID frees those resources thereby saving the synth consuming infinite memory.

But how many VVIDs can the synth handle before choking?, how is the host supposed to know?, Why is it the host's mico-managing the synth's resources.

Do different synths have different max-VVID limits?, if so they're not substituteable any more. How can you record a track on synth-A, then decide you're rather hear the playback on Synth-B.

You want GMPI to have "unlimited voices" but you're not addressing the messy reality. Synths have limited resources.


...So, after the host has de-allocated a VVID it is free presumably to re-allocate it.
So the host is keeping track of which VVID are in use and intelligently deallocating and reallocating them.


What is the net effect of de-allocating then re-allocating the same VVID a second later?
- To reset all the VVID controllers to some default value.


Rather than this over-complicated allocate/deallocate scheme. Implement a "voice-reset" command. It's the same result.

Best Regards,
Jeff








Did I just ask for the cutoff to change on the tail of the first note, or did I ask it to start thinking about a new note? You've got an ambiguity in the dialect. Forcing an allocate edge clarifies the exact intentions.

Tim

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





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