Advice on how to get started in programming


#1

I’m wondering what is the best way to get started in learning programming with the goal of making plugins for the DUO.

I have no programming experience but I see that the real magic of the MOD DUO is the open platform and collaboration between developers and users. I’ve always been a user… but I want to develop some of my own ideas.

Where do I start?
What do I need to learn first?


#2

Depends on how far you want to go.
Knowing C or C++ is always nice, but for MOD you can bypass that and go into a auto-oriented language like faust.
It’s more limited in some ways, but also much easier to do.

Oh, you’ll have to be very good at math. :slight_smile:


#3

http://faust.grame.fr/
There you’ll find an online compiler for faust, too.


Here you’ll find not only an introduction to faust but also to elementary filters.


#4

@falkTX
I should be okay with the math. I did some pretty intense math through college but that was almost 20 years ago…

@nils
Thank you for the link and video. I will check it out when I have a little time.

Any other developers have suggestions?


#5

If you already have some programming experience[1], so that you know what variables and functions are, then you’re probably ready to get started on simple audio code

  1. Read up on audio is represented in C/C++ (hint: its an array of floats, ranged -1 to 1)
  2. Read up on what a plugin is (you will understand LV2 functions much better in step 3)
  3. Read up on LV2 plugins - start by reading http://lv2plug.in/book/#_amp_c
  4. Look at “real life” MOD plugins: OpenAV ArtyFX Roomy for example

Don’t forget to interact with the “Linux Audio” Community, there’s a LinuxAudioDevelopers (LAD) mailing list, LV2 plugin mailing list, and of course the MOD community on this forum right here :smiley: Ask questions, and don’t forget to enjoy the whole process!

Good luck! -Harry

[1] Experience in any of Python, C, C++, Java, Matlab is a help
[2] I’ve done some audio programming tutorials, perhaps of interest, particularly the more simple ones… http://github.com/harryhaaren/openAudioProgrammingTutorials/blob/master/writingSoundfileToDisk/writingSoundfileToDisk.cpp#21


#6

thank you for the link to your github audio explanations! really helpful