jMax home page @

jMax as a LADSPA plugin

by  Francois Dechelle et Patrice Tisserand

How does it work?

The plugin is a generic jMax plugin that searches for all the jMax files in the directories contained in the LADSPA_PATH environment variable and defines a plugin for each patch.

-  For instance, here is the output of analyseplugin:

$ analyseplugin  ~/lib/ladspa/

Plugin Name: "sine.jmax"
Plugin Label: "sine.jmax"
Plugin Unique ID: 42
Maker: "toto"
Copyright: "GNU Lesser General Public License"
Must Run Real-Time: No
Has activate() Function: Yes
Has deativate() Function: No
Has run_adding() Function: No
Environment: Normal or Hard Real-Time
Ports:  "Left Input" input, audio
       "Right Input" input, audio
       "Left Output" output, audio
       "Right Output" output, audio
       "dummy port" input, control, 0 to ..., logarithmic

Patch requirements

The patch must contains an audio input (microphone object) and an audio output (speaker object)
Input controls are all named "param" objects.

Running the plugin

Running the plugin is done by connecting the audio input/output to the plugin ports and calling the FTS scheduler.

-  For instance:

$ applyplugin /data/dechelle/silence.wav /var/tmp/out.wav ~/lib/ladspa/  sine.jmax 1

The sine.jmax patch contains only an "osc 220" object connected to the audio ouput.

Control ports (input only)

To add a control port to the plug-in you have to include a "param" object in your patch.
The name of the "param" object (i.e. the variable it defines) is the name of the control port.

How to create a "freq" control port to your plug-in:

Once the LADSPA plug-in is loaded, its descriptor should show a port named "freq"; you can control the value of the parameter using the interface provided by your LADSPA host. Note that the different types of the LADSPA control ports are not supported yet (bounded, logarithmic...)


-  audio in/out is 2 channels