LADSPA Plugins for Active Loudspeakers

Here are the LADSPA plugins I use in my software DSP approach to active loudspeakers.  I mostly use them within ecasound, but they should work just as well in any other LADSPA host.

You can download the source code here.  Install with the usual make; make install.

This is hardly an exhaustive collection of digital filters; it’s merely what I’ve needed myself and have bothered to write.  I wrote them so I could implement the xover/eq for the Linkwitz Labs Pluto 2.1 and LX521.  I’ll probably add more over time.  Other plugins I use a lot are hpf (1st-order high-pass) and delay_0.01s (digital delay up to 10ms) from the Computer Music Toolkit collection.

Summary

Here is a brief summary of the various plugins and the parameters they take.  The labels are prefaced with RT to prevent name collisions and to help distinguish these from the many other plugins on my system.

Label Index Parameters Description
RTlowpass 9006 freq [Hz], Q 2nd-order low pass
RThighpass 9007 freq [Hz], Q 2nd-order high pass
RTlr4lowpass 9020 freq [Hz] Linkwitz-Riley 4th-order low pass
RTlr4hipass 9021 freq [Hz] Linkwitz-Riley 4th-order high pass
RTlowshelf 9002 gain [dB], freq [Hz], Q low shelving; unity gain at high frequency
RThighshelf 9003 gain [dB], freq [Hz], Q high shelving; unity gain at low frequency
RTparaeq 9001 gain [dB], freq [Hz], Q parametric eq (notch/peak)
RTallpass1 9010 freq [Hz] first-order all pass (non-inverting)
RTallpass2 9005 freq [Hz], Q second-order all pass

All parameters are interpreted as floating point values.  The gain parameter can be either positive or negative.  The freq parameter is the corner frequency (-6dB point) for the high- and low-pass filters, and the center of the transition band for the shelving and all-pass filters.

Each plugin is supposed to have a unique index, assigned by the ladspa.org people.  I haven’t requested these yet as things are still in flux.  If you have other LADSPA plugins with the same index values I don’t know what will happen.

Details

Here are magnitude and phase response measurements (made using mls techniques) that show the typical behavior of the filters.  The title of each graph below gives the sequence that was used to call the filter within ecasound.  For example, to apply the filter shown in the following graph one could use the command

ecasound -i:input.wav -el:RTlowpass,1000,0.71 -o:output.wav

This applies a 2nd-order low-pass filter (Q=0.71, with -6dB point at 1000Hz) to all channels of input.wav, writing the result to output.wav.

edit (2/9/2013): RTallpass1 is non-inverting as of v0.0.3.

edit (2/9/2013): RTallpass2 takes Q as a parameter (instead of bandwidth) as of v0.0.3.

Leave a Reply

Your email address will not be published. Required fields are marked *