Re: [linux-audio-dev] Real time plug ins

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

Subject: Re: [linux-audio-dev] Real time plug ins
From: James McCartney (asynth_AT_io.com)
Date: Tue Mar 14 2000 - 12:15:31 EST


on 3/14/00 10:39 AM, Benno Senoner at sbenno_AT_gardena.net wrote:

> On Tue, 14 Mar 2000, James McCartney wrote:
>> I'm not a Linux developer yet. But Linux is one of the first OSes to which I
>> am interested in a port of SuperCollider from the Mac, the other being BeOS.
>
> Linux version planned and no "PC (Windows) version planned ?"
> at least looking at the audiosynth site you can read this:
> ---
> SuperCollider is for Macintosh only. There is not currently a PC version.
> Do not send email asking about a PC version.
> ---
>
> things are starting to look good :-))
>
> Back to the realtime problem:
>
> What do you mean with "instantiable in realtime" ?
>
> 1) that there is no disruption in the audio stream while adding/removing
> plugins from the processing chain, but the instantiation may take some time
> ( 0.1 - 1 sec)
>
> OR
>
> 2) condition 1) must be meed AND the plugin must start up immediately
> after the insertion , with virtually NO delay at all.
>
> can you explain this s bit more precisely ?
>
> My thoughts:
>
> 1) not hard to implement: just fire up a lower priority thread and let
> perform
> all the instantiations inside this thread.
> As soon the plug is ready it can get added to the processing chain without
> any pop and crackles in the audio stream.
>
> 2) much harder, and I think the zero delay startup very probably has to be
> implemented in the plugin itself, especially when you use dynamic
> memory allocation/deallocation. In this case you need to reserve some
> chuck of mem in advance and do all your hard-realtime memory management
> inside this memory area.
>
> Maybe LADSPA/MuCos will provide this hard-realtime memory allocator,
> but it will be a waste of memory, since the mem has to be grabbed before
> any plug attempts to perform "hard-realtime" memory management.

Both 1 and 2 must hold since patches can be spawned in response to audio
triggers and do so in a sample accurate manner. SC has its own memory
management from which all of its unit generators allocate.
Even in order for condition 1, you need to know the instantaneous values at
the new ugen's inputs in order to start without popping. This can only be
done if you can instantiate in the real time stream.

--- james mccartney james_AT_audiosynth.com <http://www.audiosynth.com>
SuperCollider - a real time synthesis programming language for the PowerMac.
<ftp://www.audiosynth.com/pub/updates/SC2.2.7.sea.hqx>


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

This archive was generated by hypermail 2b28 : Tue Mar 14 2000 - 20:24:25 EST