Plugin Development

13 replies [Last post]
kelleydv
kelleydv's picture
User offline. Last seen 8 weeks 6 days ago. Offline
Joined: 2011-06-03
Posts:

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!

seablade
User offline. Last seen 9 hours 10 min ago. Offline
Joined: 2007-01-22
Posts:

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

Seablade

kelleydv
kelleydv's picture
User offline. Last seen 8 weeks 6 days ago. Offline
Joined: 2011-06-03
Posts:

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 :)

That's what I know about that.

seablade
User offline. Last seen 9 hours 10 min ago. Offline
Joined: 2007-01-22
Posts:

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

kelleydv
kelleydv's picture
User offline. Last seen 8 weeks 6 days ago. Offline
Joined: 2011-06-03
Posts:

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?

seablade
User offline. Last seen 9 hours 10 min ago. Offline
Joined: 2007-01-22
Posts:

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

linuxdsp
linuxdsp's picture
User offline. Last seen 12 hours 58 min ago. Offline
Joined: 2009-02-04
Posts:

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 :)

seablade
User offline. Last seen 9 hours 10 min ago. Offline
Joined: 2007-01-22
Posts:

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

Seablade

kelleydv
kelleydv's picture
User offline. Last seen 8 weeks 6 days ago. Offline
Joined: 2011-06-03
Posts:

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.

BenLoftis
User offline. Last seen 1 week 6 days ago. Offline
Joined: 2006-03-27
Posts:

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

kelleydv
kelleydv's picture
User offline. Last seen 8 weeks 6 days ago. Offline
Joined: 2011-06-03
Posts:

Thanks Ben!

mixit
User offline. Last seen 2 hours 21 min ago. Offline
Joined: 2008-08-17
Posts:

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?

thorgal
User offline. Last seen 1 year 21 weeks ago. Offline
Joined: 2007-08-03
Posts:

@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 :D

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.

mixit
User offline. Last seen 2 hours 21 min ago. Offline
Joined: 2008-08-17
Posts:

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

mixit