On Wednesday 15 January 2003 16.54, Fons Adriaensen wrote:
Hi all. I joined the list today, and have been
following the
vivid discussion on VVIDs with interest.
Welcome! :-)
[...polyphony, glisando, reusing VVIDs etc...]
One thing you can't express with (polyhonic) MIDI
is the following
: Suppose you have a note A playing, and you want to start another
one (B) 'in the context of A'. What this means is that B will
probably (but not necessarily) terminate A, and that the attack
phase of B will be influenced by the fact that it 'replaces' A.
This may be a glissando, but it could be something much more
complicated than that.
This is *exactly* the kind of stuff I'm thinking about. I'm hoping
that we can do away with these limitations of MIDI, instead of
sticking with the same old, ugly hacks to do this kind of stuff.
As an example, consider what happens when a violin
player changes
the note he's playing while remaining on the same string. If he
would play the second note on another string, the transition would
sound completely different.
Actually, these kind of instruments are generally better simulated
using multiple Channels, mostly because each string has it's own
distinct sound, even when they all play the same pitch.
Anyway, that's a special case. It does not apply to instruments with
fixed pitch per string (like pianos), and certainly not to all "real"
synths, since they can chose to do all sorts of weird stuff rather
than just simulating real instruments.
Using the terminology of the present discussion, what
you want is
that the VVID that was playing A should get the NOTE ON event and
all associated parameters for B. What exactly it will do depends on
the patch, the current state of A, and the parameters for B. The
essential point is that whatever generates B should be aware of the
relation with A.
Exactly.
One a mono synth you can do this sort of thing, event
with MIDI,
because the relation is implicit. With polyphonic MIDI, it't
impossible, except in some cases, and as was pointed out before,
if you repeat the same note.
So the association between VVIDs and notes should be made by the
player (caller), not by the instrument (plugin).
Yes.
[...]
There should
obviously be some sort of "panic button" feature
*as well*, but I don't see why it makes any sense to hardwire it
from the sequencer "stop button". "All Notes Off", "Stop All
Sound" and the like are emergency features that are not used
normally.
Again I tend to agree with David. Stopping the stream of events
should not imply that all sounds stop, even if this may be what you
want most of the time.
Well, most of the time, I want everything to behave like real
hardware - and that basically means keep running until someone throws
the power switch. So, no, I rarely want *all* sounds to stop; not
even all notes, actually, since some of them may be under the control
of an external controller rather than the sequencer. I certainly
don't want the sequencer to kill the keyboard just because I happen
to jam past the end of the sequence! (Seen that "feature" in action,
and it's nothing but useless and annoying.)
BTW, sending "Reset All Controls" to Audiality 0.1.1 will result in
all FX plugins being removed, and routing being reset to "factory
defaults". Definitely not something I'd like it to do every time the
sequencer is stopped! Since the Audiality "mixer over MIDI" interface
is inherently non-trivial to deal with, it's nice to be able to reset
and start over without restarting the synth. (Especially since
reloading and rerendering all the sounds can take a while...) This is
what "Reset All Controls" is for, and at least, the sequencers I've
been using *only* send that when you tell them to.
//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 ---