Modular synthesizer

Hi everyone! I want to make modular synthesizer with juce! My question is how to make wires to connect modules and inputs for wires?

JUCE doesn’t come with modular capabilities out of the box, so you have to be inventive there. one idea that i like is to make your own parameter that has seperate values for the basic- and modulated value. that way you can just read all parameter values at the start of each block, then run all the modulators and then run all their destinations into the modulated values of the parameters. it’s a bit more complicated like that in practice, because of several edge cases like “what if you wanna modulate a parameter that controls a modulator which already modulates a parameter of the modulator that trys to add a new destination rn?” and other stuff that makes your brain melt, but it’s still very doable

So what i must do?

First i want to make modules,the second cabels to connect them. For example moog modular has a lot of modules such as oscillator, filter etc they are connecting by cabels. I want to write by using juce!

Take a look at the juce demo app AudioPluginHost. There you select plugins/modules and connects them with cables.

don’t think too much of the cables yet. before writing a UI for your mod system you must have the mod system logic in your code

2 Likes

what logic it must be?

the logic between wires?

yes modular system have logic I saw many times in reaktor 5

Write the code that is the modules and system to connect the modules, etc. Before worrying about the UI too much. The UI is just a visual representation of this. You can write test code to manually connect the modules, or even a simple file format that can be used to define a ‘patch’ (you will need that anyways) to test with, long before you need a UI.

How well do you know C++? That’s really the starting point.

1 Like

if you haven’t done that yet, write a plugin without a modular system first, so you get a good understanding of what a parameter is and how audio processing works. that should automatically give you some ideas how you can modify these things to act modular