Any other budding plugin developers in here?

I’ve recently (past month or two) starting dabbling with plugin development. I’m a software engineer by trade but only in the web domain, mainly backend coding using high-level languages like PHP, Python, Javascript etc.

I actually used to work for a well-known plugin developer years ago but I never tried it then, just worked on the website. I didn’t have the confidence or the skills, but I recently got back in touch with some of those old colleagues and it made me think about it again.

Times have changed. Now there are many more learning resources on the subject and frameworks like JUCE have made it a much less daunting prospect. I’ve also been using ChatGPT to help me understand concepts, both in terms of JUCE but also C++ which is something I have limited experience with. ChatGPT (at least the free tier) is a bit hit and miss in terms of accuracy and sometimes it takes a few goes before it gives me a useful answer but it’s still been very helpful as a learning aid.

Anyway, after a pretty painful period just getting the tooling set up and working with C++ so I can actually compile something (no such troubles when using interpreted languages) and a lot of head-scratching and trial and error, I’ve got as far as a working delay plugin with high and low pass filter in the feedback loop. It isn’t going to set the world on fire, but it works! It’s only taken a couple of weeks from scratch which isn’t too bad.

I have to say it’s really helped me feel a bit more positive about my chosen vocation after being unemployed for the whole of 2025. I still get a buzz from coding and getting something working, even if it involves at least 50% of the time banging my head against the desk! I’m going to push on and add more features, improve the code, try to get it in better shape and eventually let it out in the world with a bit of luck.

Anyway I thought it might be a good thread to start in case anyone else is in the same boat and having a go. Perhaps we can spur each other on!

15 Likes

nvm

2 Likes

So sorry to hear about this!
I’m a (sparetime) plugin developer for hardware now. Gone a similar path, NET/typescript dev,read a bunch of books, some online resources etc, then used a bit of AI to help me grasp the concepts and get me started.

I’ve just released the 4th plugin for the Logue SDK platform :slight_smile:
I found that might be a slightly easier way to start, they made it fairly rookie friendly

1 Like

I suggest trying Gemini-cli instead of ChatGPT. A lot of people are vibe coding plugins nowadays with Claude or Gemini. It is a great way to learn as well.

This basically, but I like to use Gemini which is free.

For me what works best with AI is to ask ChatGPT or Gemini questions, look at it’s suggestions, then compare that with what I know myself and what I can find online/in my books on the topic. I’m not into vibe coding at all for a multitude of reasons

1 Like

Yeah, vibe coding implies not really knowing how to code. The vibe part i am referring is with the DSP stuff.

Other things to consider :

  • JVAPTools - Library of Java classes

  • MATLAB Audio Toolbox - A DSP mathematical language approach from Mathworks that generates VST/AU audio plugins directly from MATLAB & Simulink code

  • HISE - Open source scripting language. HiseScript is similarish to Javascript.

  • RUST NIH-plug

  • Halion from Steinberg - In particular for sample based plugins

  • Romplur - A simpler more limited way to do sample based plugins

4 Likes

Also Max and their RNBO which can export to VST/c++

2 Likes

Or Pure Data (PD) patches into a VST plugin using wrappers like PlugData or Camomile.

1 Like

I thought my mention of ChatGPT might trigger(!!) a discussion on such things.

To be honest, we used to learn new frameworks and languages by a combination of reading docs, copy+paste examples etc, this is just a new addition.

The “vibe coding” thing implies zero knowledge and 100% winging it. It’s probably not ideal if people with literally no knowledge create and deploy web services to production and wipe out the DB or whatever!

Me on the other hand, I’ve been programming professionally for 20 years so I know the fundamentals but we all still need help with new concepts, languages, frameworks etc. I don’t mind using these new tools to help me get over the bumps a bit. I’m not a masochist so I don’t need to write every line of code myself from scratch, no professional does that either.

Of course, the other difference is that in this context I won’t do much damage except to my own ears if I don’t put a limiter on the output.

Thanks for all the input folks!

2 Likes

Haha and I fell for it.

Edit: I think we’re roughly on the same page

1 Like

For something with less bloat and corporate licensing chicanery than JUCE look at:

5 Likes

can only confirm after years of dev in all kinds of corners that JUCE has flaws too that any die hard juce’ist will defend instead of fixing, i tried to convince some for years - unsuccessful for reluctance to acknowledge. The basic concept as of c++ centered code is still cool tho and therefor a great source for a smooth learning curve in which you might find out what those flaws actually are, in particular when your project becomes larger or your idea centeres around UI performance rather than dsp. Some developers using JUCE could even end up never experiencing or rather never invest that much time to actually measure whats happening under the hood to question what would need to be fixed. The licensing model is also why i stepped away from juce at the end, no regret…

It is always easier written than done, but devs have to start somewhere, so outright denouncing - hm no. JUCE has its abilities, still good for starters.

2 Likes

I’m not nearly well versed enough to do DSP development myself, but as a product designer in my professional life, I collaborated with a developer a few years back to build a plugin for Reason.

I’d like to do that again! Maybe with JUCE or another framework. I’ve thought about trying to learn some DSP with the help of AI (which would probably end up 95% vibe coding), but it’s no substitute for a real collaboration with someone who knows what they’re doing and is excited to ship something cool.

Sorry to hear this. I’ve been there, having been unemployed for almost the same amount of time between a couple of layoffs since 2022. This remains an incredibly tough time to find work in tech. Hang in there.

1 Like

One thing a lot of developers do (including elektron afaik) is design instruments and effects in MAX (max4live gives you a lot of integration “for free”)

This allows rapid iteration on ideas without the overhead of additional frameworks, UI code etc etc.

Once you have a solid idea and youve figured out how best to optimize in max, the process then becomes essentially a task to convert max to c++. This conversion still requires learning c++ and a vst framework (I’ve used JUCE and it’s great).

You usually end up with some optimization “for free” by converting max graphs into c++ code, then you can do more optimization in c++.

Worth noting that much of the functionality in max like filters etc are also available in JUCE. For anything else, there’s a 99% chance someone else already made a c++ library to do it that you can use in your plugin (so long as you’re not trying to sell it, you shouldn’t have to worry much about licensing on open source stuff other than attribution)

I mention optimization because my experience with audio/dsp is that that is generally where a lot of the work is.
Even with today’s power house PCs, a “simple” non linear function like analog saturation modelling can run well into the 100/1000s of iterations to solve for A SINGLE SAMPLE. You wanna do stereo? DOUBLE THAT! Now scale that for 44khz and you’re starting to look at millions of calculations per second, for a single instance of your plugin.

That’s a very specific use case based on my own university research project but worth noting just because of how easy it is to use up resources without needing to think about it :rofl:

Excited to see what you make! If you have a GitHub I’m always interested to see what people are doing.

Side note: Others have mentioned Rust which I’ve not used for dsp before but been tempted to check it out. The biggest issue with using any other language than c++ is the ecosystem - c++ has been used for VST/audio dsp for decades, so there’s a lot more libraries you can pull in. Rust is generally nicer to dev with, but you’d likely need to make more of your own bits.

3 Likes

Funny you mention Reason. Back in Covid lockdown (mid 2020) I was made redundant and I made a very simple Reason RE which was a basic Euclidean Sequencer, just as a learning exercise. Sadly I think I’ve lost the source code, but it was a fun experiment.

Weirdly I find it harder to understand those graph-based UIs than I do code, but that’s just experience and preference for coding I guess. I tried to look at some delays and other FX in Max4Live and it hurt my eyes and my brain!

I think at this stage (for me) it’s never going to be about making cutting-edge emulations or trying to compete with advanced synths or products from established mainstream developers. I think it’s more about making something simple and fun, or things like sequencing toys (euclidean etc) that don’t require serious DSP knowledge. I could spend a lifetime trying to learn about the latest filter designs but I’m not a mathematician and I seriously doubt I’d enjoy that part of it anyway.

If I can make some fun (and hopefully useable) plugins using a framework like JUCE that already has some DSP components and some scaffolding then that’ll probably be enough for me.

2 Likes

I build plugins with Cabbage and Csound. Cabbage handles the GUI and builds the plugin, Csound is the audio processing. I learned Csound years ago (mainly for rendering synthesized sounds), so it was easy to dust off those skills now that computers are capable of real-time stuff.

Worth considering for something that is a bit easier lift than the C++ approaches since Csound is an audio-focused language.

2 Likes

I bought a few books on the topic, but currently I’m focusing on learning to use different music tools. I want to know what’s out there so that whatever I make offers something new.

It’s getting there. I’ve managed to add a sync switch (currently only does from 1/16 to 16/16 i.e. one bar) so you can have free ms timing or synced, and I’m playing with the visuals etc.

I’m gradually getting to grips a bit more with some of the C++ fundamentals. You spend so many years working with one language, it’s hard to get used to the syntax and quirks of another.

The GUI drawing turns out to be almost as difficult as the DSP stuff. I’m aware that you can use bitmap graphics but apparently it’s much slower and the resizing and scaling stuff adds complexity.

2 Likes

Nice. The GUI stuff is what I find least interesting to work through. Most of my plugin prototypes look pretty bad as I work through the features and layout. Cabbage helps some with this, but the really slick GUIs bring in skills I haven’t acquired yet.