[linux-audio-dev] Mustajuuri -> LADSPA plugins.

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: [linux-audio-dev] Mustajuuri -> LADSPA plugins.
From: Tommi Ilmonen (tilmonen_AT_cc.hut.fi)
Date: Tue Mar 27 2001 - 10:10:57 EEST


Hi.

I lately added LADSPA plugin support to Mustajuuri. In doing that I
thought a bit about the process of wrapping Mustajuuri plugins to LADSPA
plugins. This would increase the number of LADSPA plugins and I guess
everybody likes that (?)

The process is in many cases fairly straightforward, but there are a few
very open questions. The problems are caused by the differences between
plugin architectures.

1) Mustajuuri plugins can be very dynamic. My parametric EQ plugin handles
any number of bands and any number of channels. Since a particular LADSPA
plugin must have a predefined number of both the EQ plugin would need to
be replicated n+1 times to get all permutations available to the user. So
a particular Mustajuuri plugin may result in tens or even hundreds of
possible permutations for a LADSPA plugin. This is trivial to implement:
Make many LADSPA plugins -- one for each combination. It is also
obviously rather senseless (from the user interface point of view). Is
there another choice?

2) Many Mustajuuri plugins have a very optimized GUI. While some can be
transformed to the (upcoming) LADSPA-XML-spec there are others that are
really difficult/pointless to render via XML wrapping. The example is
again the EQ plugins. The graphical EQ in particular is a nice example;
The current GUI does not a have a single slider, instead there is a graph
that can be adjusted by simply drawing on it. A large collection of
sliders/knobs/whatever would be a horrible alternative. I don't see
any practical way to leavy this rendering process to the host. So anybody
wishing to use the EQ with a GUI should be able to upload the Qt-based GUI
stuff also. There are other plugins that also rely on heavily involved
graphics (level- and tuning meters, oscilloscope). So most hosts would not
be able to take full advantage of these plugins.

3) The parameter systems of LADSPA and Mustajuuri differ. LADSPA has a
CSound-like control parameters (updated between cycles), while Mustajuuri
has time-stamped event system (with events delivered between cycles). The
Mustajuuri system was deviced so that the plugins can do any interpolation
(to avoid clicks) in a sample-accurate way. The host could also do it, but
in general parameter interpolation can be tricky business -> the host may
not know how to do it. The LADSPA parameters can be turned to Mustajuuri
events easily, but the resulting system will simply inherit the problems
of both Mustajuuri and LADSPA plugin systems.

4) Mustajuuri supports many parameters besides floating point data. In
particular it supports strings (for filenames etc.) and MIDI events. These
plugins cannot be used at all with current LADSPA API. I guess this is
simply inevitable (I know LADSPA is not intended to fit all purposes).

Tommi Ilmonen Researcher
>=> http://www.hut.fi/u/tilmonen/
  Linux/IRIX audio: Mustajuuri
>=> http://www.tml.hut.fi/~tilmonen/mustajuuri/
    3D audio/animation: DIVA
>=> http://www.tml.hut.fi/Research/DIVA/


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Sat Apr 07 2001 - 15:39:58 EEST