Best programming language for effects

Hi, I was allways interested in learning to code and now with the mod duo, I was thinking maybe I start with my own effect.
Could someone give me advise, which programming language to use, where I could get tutorials, etc… or tell me that this is far beyond beginner stuff and I should do some hello world stuff first :wink:

Thanks

I’m not an effects programmer, just a longtime software developer and MOD/Duo fan. Traditionally effects/patches/plugins are written in C, C++ which isn’t known for being developer friendly as compared to other languages that have been created in recent decades. For a total beginner, you might have a better experience with one of the software development kits (SDK) available which provide pieces of code specific to digital signal processing (DSP) problems so you can focus more on the details of your implementation rather than having to spend time writing lower-level math and analysis code common to DSP problems. In addition, you’ll get all the tooling needed so you can run and debug your creations in a controlled environment, usually at the click of a button.

Off the top of my head, you might browse through Faust, or JUCE to get oriented. Please note that neither of these are intended for MOD develoment, I’m suggesting them as potential learning environments. If you create something in Faust or JUCE, you’ll need to rewrite it or convert the code to another form if you want to use it on a MOD device. There is an option of using another project - MaxMSP - and some support for converting your creations directly to MOD plugins but I’m not familiar with any of this at all: https://www.moddevices.com/blog/2017/08/01/maxmsp-integration

For many casual beginners, the learning curve might be steep as compared to say putting “hello world” into an HTML document. You’ll be dealing with numerical representations of a signal over time and using a whole lot of math to analyze and manipulate the values to make interesting things happen. DSP programming is somewhat unique in that you’re dealing with finite frames of time that you have to complete your work in and there are constant trade-offs between how much number crunching can be done before the next frame of data comes. A good effects programmer will likely have a good foundation of both mathematical and computational knowledge that they can draw on to solve problems. For example, deconstructing an algorithm that takes too long into discrete parts and lookup tables for good enough performance.

This isn’t quite what you’re asking about, but I’d highly recommend the Sonic Pi project. The user community is friendly and it’s a nice environment for both learning to code and sonic experimentation. I see it as a sort of musical swiss army knife, useful in many contexts. People use if for live coding performances, experiementing, producing, etc. Once you get the hang of it, you can pretty quickly setup mulitple loops of beats, pads, melodies and control everything with MIDI or OSC; for me it is useful as a sort of programmatic DAW equivalent.

1 Like

faust is perfectly doable for creating effects for the Duo (and above).
But you need to learn how to be able to compile the code into a binary, which many struggle with.
Some time ago, @Pjotr worked on a set of plugins using faust, where I helped a bit with the build system.
See https://github.com/pjotrompet/Freaked for the full project, both original faust files and the generated code.
These plugins are available on the plugin store

6 Likes

Wow thanks a lot for both your replys! I think I’ll go with the sonic pi project. Even though I can’t do anything with the duo… But it seems like a good first step into coding and i really like the playfullness of this project. I guess if I get something done there I can think about starting something more sophisticated :wink:
Thanks again!

2 Likes

Real-Time Audio Signal Processing in Faust - an Online Creative Coding Course at Kadenze - very good, free, featuring an original FAUST developer.

2 Likes