[linux-audio-dev] Catching up with XAP

David Olofson david at olofson.net
Wed Jan 15 17:36:01 UTC 2003


On Wednesday 15 January 2003 21.56, Frank van de Pol wrote:
> On Wed, Jan 15, 2003 at 01:07:30PM +0100, David Olofson wrote:
> <snip>
>
> > With MIDI, this is obvious, since VVID == note pitch. It's not
> > that easy with our protocol, and I don't think it's a good idea
> > to turn a vital feature like this into something that synths will
> > have to implement through arbitrary hacks, based on the PITCH
> > control. (Hacks that may not work at all, unless the synth is
> > aware of which scale you're using, BTW.)
>
> Sorry for nitpicking, but why do you presume MIDI presents any
> relation between VVID and note pitch?

Because that's just the way it is, even if you can "stretch" the 
concept slightly. Ever implemented a MIDI synth?


> Though valid in many cases,
> it is definately not always true.
>
> In MIDI the 'note on' event starts a note, and 'note off' (which
> can be note on with velocity == 0) ends it. The note pitch pitch is
> actually just an attribute for that note.

It's an attribute alright, but no polyphonic synth can operate 
correctly without also using it as a VID.


> If VVID == note pitch would be true; the note would be a singleton,

That's *your* definition; not mine. :-)


> and triggering the same note multiple times would never be
> possible. Note that I'm not saying _re_triggering :-)

Well, the way I think about VVIDs, indeed, you can't trig multiple 
notes on the same VVID, but that's really only because I like to 
think of VOICE as a control - and you can't set it to 1 more than 
once without setting it to 0 in between.

With separate VOICE_ON and VOICE_OFF events that restriction would 
not apply, but what would be the point? If you really want multiple 
notes at the same pitch, just play them using separate VVIDs. That's 
in fact one of the major points with separating VVID from pitch - and 
it has the distinct advantage over MIDI that you still have *full* 
control over each note playing.


> If you doubt, feel free to come over to my studio and hear my AKAI
> sampler play multiple times the same sample at the same pitch :-)

I have hardware that does that as well, but it doesn't demonstrate 
anything more than possibly a minor hole in the MIDI specification 
AFAIK, there is no official statement as to whether synths should do 
this or not, and either way, you'll find synths doing it in several 
different ways. "Restart" and "new voice" are just two possibilities. 
(I've mentioned other alternatives previously.)

Anyway, yes, many synths and samplers allocate new voices when you 
send multiple NoteOns for the same pitch, but:

	1. For many sounds, this is simply *incorrect behavior*.
	   Examples would be many percussion instruments, most
	   string instruments with fixed per-string tuning,
	   most pipe, tube, electromechanical and other organs,...

	2. What happens when you send Poly Pressure...? One of two
	   things: a) the synth screws up and applies the effect
	   on a "random" voice, or b) the synth applies the effect
	   on all voicen playing on that pitch. 

	3. What happens when you send NoteOff? Well, I have yet
	   to see a synth that even tries to match NoteOns and
	   NoteOffs - and it would be rather random anyway. What
	   happens is that the synth stops *all* notes playing
	   that pitch on the channel.

	4. If we were to use separate events for VOICE_ON and
	   VOICE_OFF, nothing would prevent XAP synths from doing
	   the same thing. (However useless it is, when pitch is
	   separated from VVID.)


> I see the use of the VVIDs but for some reason I get an
> uncomfortable feeling seeing it; it just reminds me of over
> engineering and adding unneeded complexity.

So, how do you propose we deal with voice/note addressing? Take the 
MIDI approach, and forget about continous pitch...?


> I'm quite glad my MIDI
> devices are smart enough to do their voice allocation....

And XAP plugins would be no different in any way. VVIDs are just a 
more powerful, but not really fundamentally different addressing 
method.

This is not about voice allocation, but about voice *addressing*. 
I've stated many times before that I specifically *do not* want 
senders to have anything to do with the details of voice allocation.


> Sorry, couldn't resist it.
> Frank.

Sorry, but I still claim that MIDI note pitch is equivalent to VVIDs 
when it comes to voice management. VVIDs are just more powerful. :-)


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