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

David Olofson david at olofson.net
Thu Dec 5 10:30:01 UTC 2002

On Thursday 05 December 2002 12.07, Dave Griffiths wrote:
[...non RT controls, VST & delay ...]
> This is actually a current problem with spiralsynthmodular, the
> sampler is rt safe, except when loading/saving samples. I'm
> thinking that it's solvable by using a async loader on a different
> thread that the plugin can poll. As long as it does something sane
> until the sample is loaded (play silence) it should be Ok.
> At the moment, you get chucked off jack when loading large samples.

Applies to Audiality as well. It needs humongous amounts of CPU power 
for "loading" most sounds as well, since they're actually scripts 
used to render the waveforms using the off-line synth.

There's also another, similar problem: Plugin instantiation. FX 
inserts are selected through MIDI CC events, which means their 
instantiation is triggered from within RT context.

Currently, they're also instantiated in there, which is just a quick 
hack. (Which, AFAIK, prevents this engine from running at all on Mac 
OS classic - can't malloc() from within interrupt context.)

What I'll do is throw in a "butler thread" (Benno's invention :-), to 
which I pass requests to instantiate or destroy plugins, load or 
unload waveforms and other non RT safe things. There will probably 
just be an sfifo in each direction, since those are extremely 
portable and easy to use. The method of waking up the butler thread 
will probably vary a little between platforms. On systems without 
threads, the butler will just be a callback that you're supposed to 
call from the main loop every now and then.

//David Olofson - Programmer, Composer, Open Source Advocate

.- Coming soon from VaporWare Inc...------------------------.
| The Return of Audiality! Real, working software. Really!  |
| Real time and off-line synthesis, scripting, MIDI, LGPL...|
`-----------------------------------> (Public Release RSN) -'
.- 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