[linux-audio-dev] Catching up with XAP

David Olofson david at olofson.net
Wed Jan 15 11:49:00 UTC 2003


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



More information about the Linux-audio-dev mailing list