On Wednesday 08 January 2003 22.25, Steve Harris wrote:
On Wed, Jan 08, 2003 at 09:36:08 +0100, David Olofson
wrote:
For implementational reasons, I'm claiming
that it makes a lot of
sense to assume that synths know what to do when they receive the
first event to a VVID that doesn't have a voice. I don't see why
the case "this VVID has no voice" should be something that the
host/sender *has* to worry about. (Especially since the whole
concept is irrelevant to monophonic synths. These will ignore
VVIDs anyway.)
But the instrument has to be able to tell control changes to stolen
voices from control changes for a new voice from a voice that
should replace the new voice in the same id (like with midi's
pitch=id).
Its easier if it doesn't have to keep track of which are which.
Well, instead of NULLing VVID entries for stolen voices, connect them
to a dummy voice.
Another alternative (which is looking more and more attractive to me)
is to use 'int' instead of 'void *' for VVID entries. Then you can
just use one value (-1) for "no voice" and another (-2) for "dead
VVID". Other values would be physical voice indices or whatever fits
the implementation.
(Well, you *can* do that by pointing VVID entries at various objects
that are not voices, and check the pointers, but that's not too
sexy... :-)
//David Olofson - Programmer, Composer, Open Source Advocate
.- The Return of Audiality! --------------------------------.
| Free/Open Source Audio Engine for use in Games or Studio. |
| RT and off-line synth. Scripting. Sample accurate timing. |
`--------------------------->
http://olofson.net/audiality -'
---
http://olofson.net ---
http://www.reologica.se ---