[ardour-dev] Plugins referenced inappropriately by name?

Paul Winkler pw_lists at slinkp.com
Wed Jul 18 12:24:04 PDT 2007

Hi folks,

I tried to open an old session today (recorded with ardour
0.99.something), using ardour 2.0.2, and was surprised to see a lot of
warnings about various CAPS plugins not found.

Having a look at the session file, I see stuff like this:

      <Insert type="ladspa" id="CAPS: AmpV - Refined tube amp
      emulation" count="1">
        <Redirect active="no" placement="pre">
          <IO name="CAPS: AmpV - Refined tube amp emulation"
      id="1722982965" inputs="" outputs="" gain="1.000000000000" iolimits="-1,-1,-1,-1"
      automation-state="0x0" automation-style="0x1">
            <Panner linked="no" link_direction="0" bypassed="no"
      automation="beehead-pan-CAPS: AmpV _ Refined tube amp emulation.automation"/>
          <Automation path="IT'S REALLY MIXED Thu Apr 27 21:07:51 2006-redirect-1722982965.automation" visible=""/>
          <port number="1" value="+2.036088"/>
          <port number="2" value="-3.804122"/>
          <port number="3" value="+0.154640"/>
          <port number="4" value="+1.000000"/>
          <port number="5" value="+150.000000"/>
          <port number="1" auto="0x0"/>
          <port number="2" auto="0x0"/>
          <port number="3" auto="0x0"/>
          <port number="4" auto="0x0"/>
          <port number="5" auto="0x0"/>

Nothing in there looks like a LADSPA plugin ID.

listplugins tells me that CAPS is definitely installed:
 ... snip...
        C* AmpV - Tube amp (2587/AmpV)
 ... snip...

By comparing caps 0.3.0 to caps 0.4.2, you can see that the plugin
Name was changed, but not its Unique ID or Label:

$ analyseplugin ~/tmp/caps-0.3.0/caps.so | grep -A 2 "AmpV "
Plugin Name: "CAPS: AmpV - Refined tube amp emulation"
Plugin Label: "AmpV"
Plugin Unique ID: 2587
$ analyseplugin /usr/lib/ladspa/caps.so | grep -A 2 "AmpV "
Plugin Name: "C* AmpV - Tube amp"
Plugin Label: "AmpV"
Plugin Unique ID: 2587

So it looks to me like maybe Ardour is trying to load the plugin using
the Name, which is inappropriate per ladspa.h:

 /* This identifier can be used as a unique, case-sensitive
     identifier for the plugin type within the plugin file. Plugin
     types should be identified by file and label rather than by index
     or plugin name, which may be changed in new plugin
     versions. Labels must not contain white-space characters. */
  const char * Label;

Is my hypothesis correct? If so I'll file it in Mantis. I searched
briefly but didn't find anything similar.


Paul Winkler

More information about the Ardour-Dev mailing list