On 01/13/2011 10:37 AM, Tom Szilagyi wrote:
Hi all,
Standing on the shoulders of giants[*], I am pleased to announce the
public release of IR, a convolution reverb in the LV2 plugin format.
Released as free software under the GNU GPL, this easy to use plugin
has been created to open the fascinating world of convolution reverb
to Linux-based audio engineers. If you use Ardour to create, mix&
produce music, you will most probably want to check out this plugin.
It is a great addition Tom, I'm packaging it in Planet CCRMA now.
I'm trying to see what is the best way to convert the plugin so that it can
deal with first order ambisonics impulse responses. Those are four channels
wide (ie: four convolutions, one for each of the four incoming channels - W
X Y Z).
I managed to get it to work by creating ir-amb.cc, ir-amb_gui.cc, etc, etc.
And changing your code to have the required number of ports, etc. It does
work, except that my simple minded rewrite breaks down if I try to
instantiate a normal IR plugin in addition to the IR-AMB (how I named the
"new" plugin). In that case the second instance (order does not matter) bugs
out with:
(ardour-2.8.12:14284): GLib-GObject-WARNING **: cannot register existing
type `IRWaveDisplay'
etc (same for IRModeInd and IRMeter, all the gui classes I did not
duplicate).
Those classes are registered with the gobject type system. G_DEFINE_TYPE
expands into code defining things like ir_wave_display_get_type(), which
does the registration on first call.
I think you need at least to change the type names in the registration
like this:
G_DEFINE_TYPE(IRWaveDisplayAmb, ir_wavedisplay, GTK_TYPE_DRAWING_AREA);
and replace all IRWaveDisplay with IRWaveDisplayAmp (not tested...).
ciao
Andreas