Request: FIR Convolver for Banana
Posted: Wed Mar 18, 2015 4:22 am
The incorporation of an equalizer in Banana suggests a powerful extension to that function, an FIR convolver. There are numerous powerful applications of FIR convolution. An FIR can easily be created which implements an arbitrarily contoured frequency/phase response. With stereo FIR's it can be used for very realistic reverberation. With two stereo FIR's (called true stereo) it can mix cross channels for even better reverb and also for HRTF's (Head Related Transfer Function's) for stereo -> binaural conversion for 'phones so as to take them off the sides of your head and perceptually place the stereo sources in a live room. It can also be used to perform room equalization or device to device transformation for emulation. Or all of this simultaneously. 
Only a very basic function need be provided in Banana, the specificication of one or two FIR .wav files (or more if mult-channel flexibility is desired) within each output channel's equalizer panel. If Banana can monitor the specified files for changes and reload them on such an event all intelligence about creating, parameterizing and deeper selection functions can be pushed out of the app to some concurrently running app with no real time DSP functionality requirement. That basic convolution function in Banana, however, must be partitioned, zero latency convolution so as to maintain synchronization with video. DSP code for this operation is available and the function may even be available in sound libraries like FFTW now that Lake's patent on partitioned convolution has run out.
I'd love to hear your take on this, Vincent, and anyone else who might be listening.

Only a very basic function need be provided in Banana, the specificication of one or two FIR .wav files (or more if mult-channel flexibility is desired) within each output channel's equalizer panel. If Banana can monitor the specified files for changes and reload them on such an event all intelligence about creating, parameterizing and deeper selection functions can be pushed out of the app to some concurrently running app with no real time DSP functionality requirement. That basic convolution function in Banana, however, must be partitioned, zero latency convolution so as to maintain synchronization with video. DSP code for this operation is available and the function may even be available in sound libraries like FFTW now that Lake's patent on partitioned convolution has run out.
I'd love to hear your take on this, Vincent, and anyone else who might be listening.