[linux-audio-dev] XAP: SILENT event handling

David Olofson david at olofson.net
Mon Dec 9 07:07:01 UTC 2002


Some thoughts on that SILENT event for reverb tails and stuff... 
(Currently impemented as a "fake" spontaneous state change in 
Audiality FX plugins, BTW.)

I would assume that since there is no implicit relation between 
Channels on different Bays (remember the input->output mapping 
discussion?), this event is best sent from some kind of Master Event 
Output Channel. (That is, now we have one Master Event Input Channel, 
and one Master Event Output Channel. Each will be in it's own Bay, 
and there can be only one and exactly one Channel on each of those.)

So, the SILENT event would need Bay and Channel (but not Slot) 
fields, in order to tell the host (or who ever gets the event) which 
audio output just went silent.

And it would probably be a rather good idea to have "NOT_SILENT" 
event as well, BTW!


Anyway, what I was thinking was: How about allowing plugins to 
*receive* SILENT and NOT_SILENT events, if they like?

That way, you could use the plugin API for things like 
audio-to-disk-thread "gateways" for recording and that kind of stuff, 
without forcing the host to be involved in the details.

Not that recording half a buffer extra of silence would be a 
disaster, but I bet someone can or eventually will think of a reason 
why their plugin should know the whole thruth about the audio inputs.


Now, there's just one problem: Put a plugin with tail, but without 
sample accurate "tail management" support in between a plugin that 
sends (NOT_)SILENT events and one that can receive them - and the 
information is useless! All you can do is have the host fake the 
(NOT_)SILENT events sent to the latter plugin, since the plugin in 
the middle thinks only in whole buffers WRT inputs and/or outputs...


And there's another problem: If you would get a (NOT_)SILENT event 
*directly* from another plugin, how on earth would you know which one 
of *your* audio inputs that other plugin is talking about, when the 
event arguments are about *that* plugin's audio outputs?

Only the host knows where audio ports are connected, so the host 
would have to translate the events before passing them on.


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