Using LADSPA plugins within Pure Data

Best wishes first of all for 2014 !

A reader recently asked me how LADSPA plugins could be used within Pd. It isn’t too complicated thanks to the [plugin~] external written by Jarno Seppänen. This gives you access a wide array of effects and processors (such as pitchshifters, flangers, distortions, compressors, etc.) to use inside your Pd patches. This post is a simple how-to explaining the use of the Rotary Speaker plugin from the TAP collection (to get a sound close to the Univibe used by Jimi Hendrix in ’69 and ’70, in Woodstock or with the Band of Gypsys).

You first need to download the [plugin~] archive (available here). Extract it where you like, and make sure the path to the extracted folder is known to Pd (Edit -> Preferences, and click New… to add a reference to the path).

Then you need to download the LADSPA plugins (the Pd external is only an interface, it won’t do anything if you don’t have any plugins installed). I suggest the TAP plugins, and those made by Steve Harris, but many more are available (see a list here). They can be installed with the following commands in Ubuntu (in a terminal):

<br /> sudo apt-get install tap-plugins<br /> sudo apt-get install swh-plugins<br /> 

The next step is to install the ladspa-sdk (sudo apt-get install ladspa-sdk). This is isn’t mandatory, but it comes with a command to list all the LADSPA plugins installed on your machine. You can save the list to a file like so (in a terminal):

<br /> listplugins &gt; plugins.txt<br /> 

Once you’ve found an interesting plugin, you need to find it’s id. The Pd external doesn’t recognize the plugins by their full name (i.e. TAP Rotary Speaker), but by their id (i.e. tap_rotspeak). In the list generated above, this id can be found between parenthesis after the full name.

You should now be ready to use the [plugin~] external in a patch. In the example below, the TAP Rotary Speaker plugin is called by the external. Every time you instanciate [plugin~] with a different plugin name, it will automatically adapt its number of inlets and outlets. The leftmost outlet is always for control input only, the rest is for audio.

GuitarExtended - Use LADSPA plugins within Pure Data

GuitarExtended – Use LADSPA plugins within Pure Data

The one tricky thing about using this external is that the controls vary from one plugin to another. You thus have to send [info( to [plugin~] to get the details of the plugin you want to use. For instance, with the TAP Rotary Speaker plugin you’d get the following lines in the Pd console :

INFO: port in control Rotor Frequency [Hz] 0 30
INFO: port in control Horn Frequency [Hz] 0 30
INFO: port in control Mic Distance [%] 0 100
INFO: port in control Rotor/Horn Mix 0 1
INFO: port out control latency 0 9200
INFO: port in audio Input L 0 1
INFO: port in audio Input R 0 1
INFO: port out audio Output L 0 1
INFO: port out audio Output R 0 1

This means that you can use 4 different controls (the first 4 lines), using messages like [control #1 15( (for setting the frequency of the speaker -i.e. control number 1- at 15 Hz). You can use dollar signs in the messages to change the value using the Pd GUI (like the sliders in the example above).

That’s about it for LADSPA plugins in Pd. Keep in mind though that some (most ?) of them were not designed for real-time use, so the latency might be too high for use with a live input.

You can download the patch here. And of course, a sound sample :

This entry was posted in Tips for writing patches, Uncategorized and tagged , , . Bookmark the permalink.

2 Responses to Using LADSPA plugins within Pure Data

  1. Jokoko says:

    Hi!
    Thank very much for those explainations.
    I’m using Calf Studio Gear plugins. How could I get there ID?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s