What Is This?

On this page, you'll find a patch proposal enhancing the Linux Audio Developers' Simple Plugin API, or LADSPA v1.1, to v1.2.

Is your v1.2 Compatible with v1.1?

The patch will not cause breakage in any way: a plugin conforming to the proposed v1.2 standard will work flawlessly in hosts conforming to v1.1, and a v1.1 plugin in a v1.2 host. Of course, compatibility extends to v1.0-conformance. Existing plugins and hosts can be compiled against the proposed v1.2 header without any changes to the sources. Upgrading will be a controlled process, possible to be done one step (new feature) at a time.

What Does the Patch Add to LADSPA?

The patch adds the following features:

To the best of my knowledge, these are all features that have found some form of collective — albeit never unanimous ;) — support on the lad mailing list in the past.

In addition to these features, the patch introduces a Version field in the plugin descriptor structure to make future enhancements less painful.

Files

ladspa.h.diff - diff against ladspa.h v1.1
 
host.c - host-side sample source
drive.c - plugin-side sample source

ladspa.h.orig - original v1.1 header

How to Test the Patch

The above claims about compatibility have been verified, but if you'd rather see for yourself, compile the example plugin source from this page against a patched ladspa.h and test it with your favourite host program(s), or compile your favourite hosts or plugins against a patched header.

To compile the example plugin and test the extension, you need the files drive.c, an original ladspa.h (available here as ladspa.h.orig) and the patch, ladspa.h.diff. All necessary steps for downloading and installing:

	$ cd /tmp
	$ wget -qr http://quitte.de/ladspa
	$ cd quitte.de/ladspa
	$ mv ladspa.h.orig ladspa.h
	$ patch < ladspa.h.diff
	$ gcc -Wall -nostartfiles -shared -lm -o drive.so drive.c
	$ sudo cp drive.so $LADSPA_PATH

Obviously, the last command that installs the plugin depends on the availability of the sudo command and the environment variable LADSPA_PATH so you may need to adjust it to reflect your system setup. When you're done, the drive plugin can be tested with any v1.1-conforming host. Make sure you remove the plugin binary, drive.so, from $LADSPA_PATH after testing — it has an invalid LADSPA UniqueID.

This Patch is Too Intrusive! Your LADSPA v1.2 is Not Simple Anymore!

OK, let's go over the new features and evaluate these accusations in detail. We'll see that a lot of the 'new' features in fact aren't so 'new': they only receive official status through the patch, for clarification and consequently ease of use.


tim@quitte.de, Last revision April 14, 2004