[linux-audio-dev] Plugin APIs (again)
David Olofson
david at olofson.net
Sun Dec 8 18:51:00 UTC 2002
On Sunday 08 December 2002 18.33, Frank van de Pol wrote:
[...bell example]
> Nice examlple. To me it clearly illustrates that velocity (ie.
> force of note on/off) is indeed a property of the note event.
To me, it's just another example of a special class of instruments.
> The
> handling of velocity for said bell depends on the implementation of
> the synth; a physical modelling synth could when retriggering with
> the same pitch adjust the sound of the bell. Simple sample playback
> synths would most likely not have this level op sophistication.
(Virtual) analog synths usually do, however, and advanced samplers
could emulate that. A "note on" while a note is still playing may
affect only the envelope - it doesn't *have* to restart the waveform
on a new voice.
Anyway, that's still an instrument implementation issue. It has
nothing to do with the API, apart from demonstrating one thing:
VOICE_ON and VOICE_OFF events *may* actually be useful. Some
instruments may react directly to velocity control changes, while
others might want to keep the velocity value as a "standing order",
which is actually applied only when a VOICE_ON or VOICE_OFF event is
processed.
Then again, those VOICE_ON and VOICE_OFF events could just be the
transitions from 0->1 and 1->0 respectively, of the value of an
optional control named "Note"... If you want it, have one. If you act
on Velocity directly, don't have a "Note" control, since you would
probably just ignore it anyway.
> The violin example using the bow speed property is something
> different. In fact, the bow speed is indeed a sort of continious
> controller, while the strings could be hit by the bow with
> different velocity. How could one otherwise achive a pizzicato
> effect? (I might use the wrong phrasing, but I mean hitting like
> slapping a bass guitar the violin's strings using the bow.)
So, the Violin simulator with pizzicato support needs three controls:
Note (0.0 or 1.0)
Velocity (0.0 through 1.0)
Bow Speed (-1.0 through 1.0)
Or allow Velocity to be negative, and handle every change; a change
to a positive value would be a "note on", while a change to a
negative value would be a "note_off".
Do we still need special events for this?
> Though not in the scope for the instrument plugin discussion, I'd
> like to see compatibility with MIDI or other real-life protocols be
> considered. In the end our sequencer applications would need to
> transparently support both flavours.
That's a matter of mapping - not one of copying the design of one
interface, just to make the mapping essentially 1:1.
//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 ---
More information about the Linux-audio-dev
mailing list