On Sunday 08 December 2002 19.12, Mark Knecht wrote:
Frank,
I agree with your comments. I'd also like to see the developers
at least understand and consider these sorts of protocols also. In
the end something good will come out of it.
Actually, the use of MIDI velocity information is a strong
selling point of GigaStudio. In GigaStudio you can map up to 16
different samples for a given MIDI note. The most common usage in
the better libraries is to use 4 velocity levels to trigger
different samples to be played back. Inside of that velocity range
the actual velocity number serves as a volume scaling mechanism,
but the overall MIDI velocity allows the piano to be played with
different samples.
Again, what has this to do with the *interface*, rather than the
synth design?
We're not discussing whether we should do away with "instantaneous
note velocity" or not, but *how* we should communicate it to the
synth.
I vote *against* hardcoding an old MIDIism into the API, just because
most people have never played anything without a traditional
keyboard. :-)
After the sample is chosen, and scaled as per the
specific
velocity info, it is then scaled again with MIDI volume.
Of course. Different control entirely.
There may be other ways to do stuff like this, but
this is
pretty standard in GSt and other Win/Mac based sample players.
Well... How could there be another way to do this, specifically? If
you want to select a sample based on the velocity when a note is
started, just do that.
If you tell the host that your Velocity control has a range of
[-1.0,1.0], and that it's not a continuous control (ie does not
support ramping; *does* react on every change, regardless of value),
you can just consider any positive Velocity change a "note on", and
overy negative Velocity change a "note off". Actual velocity is
obviously fabs(value).
//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 -'
.- M A I A -------------------------------------------------.
| The Multimedia Application Integration Architecture |
`---------------------------->
http://www.linuxdj.com/maia -'
---
http://olofson.net ---
http://www.reologica.se ---