Re: [linux-audio-dev] Plugin APIs (again)

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] Plugin APIs (again)
From: David Olofson (david_AT_olofson.net)
Date: Mon Dec 09 2002 - 01:45:12 EET


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


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Mon Dec 09 2002 - 01:53:17 EET