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

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

Subject: Re: [linux-audio-dev] XAP: SILENT event handling
From: David Olofson (david_AT_olofson.net)
Date: Mon Dec 09 2002 - 16:11:51 EET


On Monday 09 December 2002 14.55, Steve Harris wrote:
> On Mon, Dec 09, 2002 at 01:01:02PM +0100, David Olofson wrote:
> > 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.
>
> I was assuming the SILENT event would be aginst a voice ID.

Uhm, a Voice is an abstract object that has no known relation to
whatever audio outputs the synth may have... The SILENT event I'm
talking about is what a reverb FX would send when the tail goes below
the threshold, or that a synth would send when *all* Voices that are
routed (dry) to a certain audio output are dead.

> > 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.
>
> That will only work if all your instruments procduce SILENT events
> and you recevie all the relevent VOICE_ON events though. Is this
> even possible?

It's not about Voices - and Voices become irrelevant anyway, as soon
as the synth has an internal FX with tail... This is all about audio
ports.

> I bet I can think of a processing graph where it
> isn't resolvable. Paticularly if you allow LADSPA plugins in the
> graph.

Yes - but then you'd either have to insert meter plugins to detect
silence, or just tell the user "Sorry, but I can't reliably
autodetect silence in this net."

> For this and the other reasons you mentioned I dont think this is
> not possible/practical.

Well, I agree that there probably isn't much point in spending much
time on this. If it fits in nicely somewhere, fine - but otherwise,
just allow nice plugins to send SILENT events whenever an audio
output port changes between silence and non-silence, and/or accept
NULL pointers for input buffers.

The only part of this that hosts *have* to support would be the
SILENT event, since that means the plugin may not even touch
subsequent buffers. They have to be cleared, or if the receiving
plugin supports the "NULL buffer for silence" feature, that may be
used.

//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 - 16:19:47 EET