Plugin Development

Could somebody point me to a good place to start learning how to develop plugins?

I use OS X 10.6. I’ve got experience with math, physics, c++, and a couple other languages but I’ve never done more than run a few programs from the command line.

Thanks!

Are you familiar with DSP processing, for example Fourier Transforms etc.?

 Seablade

I know what Fourier transforms are in the context of differential equations, and fourier series. Makes sense because that’s how you represent any function (signal) form with sines/cosines… I know what the acronym is in DSP :slight_smile:

That’s what I know about that.

In which case you are better off than me and the book I have seen recommended for starting to learn DSP is this one…

http://www.dspguide.com/

I suspect it is in no small part because it is free of course;) I believe the book by Miller Puckette tends to get recommended as well…

http://crca.ucsd.edu/~msp/techniques/latest/book-html/

  Seablade

C is probably the most common for plugin development is my guess, though I am not really a great resource on that, but nothing stops you from using other languages as far as I am aware. I would stay away from interpreted languages in general, but other than that I think you are pretty safe.

If you want some good references, there are tons of LADSPA and LV2 open source plugins to look at for examples of what they do.

Seablade

Awesome. Both large documents - first one more theoretical, Puckette’s looks more practical. What about the programming? Do people use C++? Am I restricted to that?

C++ is normally used e.g. for VSTs etc, but you can build a basic linux LADSPA plugin in C. In my opinion you should not even consider that you could do any useful DSP in anything except an efficient optimized compiled (or even lower level…) language. There are many pitfalls in plugin (and DSP) development, its not just about knowing and understanding the maths, that’s only the very beginning :slight_smile:

And LinuxDSP is a MUCH better resource than me on this topic so I bow out to his superior knowledge;)

  Seablade

Cool. I like learning new stuff. What would be the optimal lower level language to work in then? I could start with familiarizing myself with the basics of that.

Hi kelleydv,

You should download the LADSPA SDK from here:

http://www.ladspa.org/download/ladspa_sdk.tgz

Inside the SDK there are a couple of simple examples (such as a gain-control plugin) and instructions to build and install them on your system.

The examples use fairly simple c code. If you can get those compiled and installed for Ardour to use, and start editing the “run” function, then you are well on your way.

Hope this helps!
-Ben

Thanks Ben!

@mixit

My wife offered me a real megaphone as a joke about a couple of years ago … a must have in the studio, I tell you :smiley:

edit: I just tried some quick fiddling in ardour and a voice capture with the … guitarix distorsion ladspa plugin. Yes, guitarix installs not only the main standalone app but also a set of ladpsa plugin. After 2mn fiddling, you can get decent phone and megaphone settings:

  • phone setting (turn on overdrive, lowhighpass, lowhighcut switches):

overdrive = 1
drive = 0.8
drivelevel = 0
drivegain = 4
highpass = 1000
lowpass = 2500
highcut = 3000
low cut = 1000
trigger = 1
vibrato = 1

  • megaphone setting:

overdrive = 20
drive = 1
drivelevel = 0
drivegain = 4
highpass = 1000
lowpass = 1500
highcut = 4000
low cut = 800
trigger = 0.5
vibrato = 1

It depends on your taste and needs of course, this was just a crude attempt.

I miss a megaphone/telephone plugin - a we-are-so-sorry-Uncle-Albert sort of sound . I reckon it would be fairly easy to achieve - may be a starting point?

Thanks a lot, Thorgal - I’ll try that.

mixit