[PD] Making a Realtime Convolution External

Peter Plessas plessas at mur.at
Tue Apr 5 04:21:02 CEST 2011


Seth Nickell wrote:
> I'm planning to release our realtime convolution engine (extracted
> from http://meatscience.net/pages/convolution-reverb) as a GPLed Pd
> external.
This is a good idea!

> It currently accepts 4-channel ('true stereo'), two channel or mono
> impulse responses, with stereo or mono output. Performance is
What is 'true stereo' with four channels by the way?

> excellent if you have SSE3 and has a fallback in case you don't, and
> it aims for accuracy (basically that means multi-stage scaling to keep
> floats within healthy sizes).
> 
> 1) I'd love to swipe the convolve~ external name, currently installed
> by mjlib as part of pd-extended. convolve~ from mjlib appears to be a
> copy of pin~ ? so I think it could be taken? Maybe I mis-read the
> code. I've cc'ed mark who can probably clarify.
> 
> 2) Anyone have requests for features/api? Its currently simplistic:
>    - takes a "read FILENAME" message, loads the file, does a test
> convolution against pink noise to normalize the gain to something sane
Is this done within the main Pd audio thread?
>    - caches the last N impulse responses, as the test convolution
> takes a little time
>    - allows setting the cache size with a "cachesize N" message
To make sure I understood this: cachesize is not the size of the first 
partition of the partitioned convolution, but the cache that tries to 
avoid audio dropouts when performing the test convolution?
>    - disable normalization with "normalize 0" or "normalize 1"
Yes, disabling this could be a good idea! You could also add a "gain 
0-1" message for manual control.

>   Features I'm considering (let me know if they sound useful):
>     - load from an array instead of from disk (no gain normalization?)
Very good.
>     - It wouldn't be hard to enable MxN convolution if that floats
> somebody's boat.
I am sure if you come up with a convolution as efficient and flexible as 
jconv by Fons within Pd, then soon a multichannel use and hence request 
will come up fast.

[...]
> 4) Would this be of interest for Pd-extended?
This would be of interest for all Pd users, no matter if they like their 
externals included in a distribution of Pd ('extended') or manuall 
adding them to their vanilla Pd.

best, P



More information about the Pd-list mailing list