> Well, I don't know that it would be impossible to implement; maybe just
> hard. You'd probably have to accept some delay when the processing graph
> changes due to the recompile. However, if it's done in a separate
> process, it could be done without any break in the audio processing.

the implementation is definitely not impossible ... you could just parse
the dsp graph for multiplication ugens, followed by a filter ugen, and
then replace both ugens by one single ugen. 
in this case, things may already get more complicated. there need to be
two versions of the multiplier/filter ugen, one for signal
multiplications, and one for scalar multiplications. you need a proxy
object in the dsp chain, that references the multiplier object as well
as the filter object to fetch the internal state for the ugens. then,
maybe you don't use the |*~| object, but the |volctl~| object, which is
a vector-scalar multiplication with a different interpolation scheme for
the scalar factor ... 

so for each ugen, one would basically have to check the machine code to
figure out the number of required registers is requires and whether it
makes sense to write an optimized version ... of course, depending on a
certain architecture (x86_64 has about 2 times more registers than
x86) ...

it is not impossible, but requires a lot of hand-tuning and a lot of
code to be written ... 
i am somehow more confident about running the dsp graph on multiple cpus
than introducing cross-ugen optimizations to gain performance ...

cheers, tim

--
[EMAIL PROTECTED]    ICQ: 96771783
http://tim.klingt.org

Every word is like an unnecessary stain on silence and nothingness
  Samuel Beckett

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
nova-dev mailing list
[email protected]
http://klingt.org/cgi-bin/mailman/listinfo/nova-dev
http://tim.klingt.org/nova

Reply via email to