On Sunday 08 December 2002 01.26, Nathaniel Virgo wrote: > On Saturday 07 December 2002 11:29 pm, David Olofson wrote: [...velocity or not...] > > Well, keep arguing, and I'll try to figure out more reasons why > > velocity is not special, nor universal. ;-) > > I think velocity is special because it is often needed by the > synthesis algorithm only at the beginning of the note. For > instance, if you have a physical model of a bell then the velocity > will determine the shape and magnitude of the impulse function you > use to represent the striker. Changing it midway through the note, > after the bell has been hit, is meaningless.
Of course. (Waving the club around in the air in front of the gong will probably affect the sound slightly, but you may not be interested in emulating that. :-) However, how does velocity making sense for *some* instruments make velocity special? I bet there are *at least* as many instruments where velocity does *not* make sense, but "pressure/speed" does. So, we might as well decide that "pressure/speed" is the normal (or "special") way to control instruments, and velocity is the special case, right? I think both are special cases. In some cases, you don't need either of them. In most cases, you'll need one of them, and sometimes, you may even want to use both. > That said, it would be cool if you could support multiple > velocity-like parameters, so that it would be possible to control > the position of the striker and the strength of the strike > independently for each note. Yes indeed. I have that kind of controls in Audiality (used only for positional 2D audio so far) - but those are actually continous controllers. > Multiple poly-aftertouch-like > controllers would also be cool, but I think they are a different > thing. I'm not so sure... What happens if you hit a snare drum, and then let the stick rest on the surface? ;-) What I'm saying is that if you thing about what you're actually trying to simulate, it becomes clear that continous controllers will fit practically any application. Want positional info on drums? Think of X and Y as the "aim point", and just make sure you're aiming at the right spot before you kick the velocity control to the desired value - which, with this instrument, instantly triggers the sound. Setting velocity back to 0 would correspond to NoteOff - although at least 90% of all drum patches will completely ignore that anyway. Want to play the trumpet? Well, just set up the right pitch first, and then "stroke" the breath control as required. Whenever breath is non-zero, you have a note. The point I think you're missing is that a "control change" event is *exactly* the same thing as a "voice start" event on the bits and bytes level. Both carry some data. Both will have the plugin run some code at the specified time. It's just a matter of how the plugin interprets the data - so you may decide to have the breath control trigger your synths internal voice on/off events by detecting transitions from and to 0. It's nothing like LADSPA, where you have to *poll* control ports to do this kind of stuff. //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 ---
