[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