Can I use SOUL or is JUCE the better choice?

I’m new to SOUL, JUCE (and DSP). Anyway, I have an idea for a synth plugin for which I need to draw a pixelmap/image into the GUI. To be precise, I want to plot a function in the complex plane
(similar to the plot below).

SOUL would make it easier to turn the math into audio.
On the other hand, there are more resources about how to make interfaces with JUCE.

What is the best approach:

  • Using SOUL and Javascript as a GUI?
  • Using SOUL, generate a JUCE project and add a GUI with JUCE.
  • Using JUCE in the first place.

I’m doing this for fun, so, I’m just interested in trying out how sounds from complex functions sound like :smiley:

PS: Of course, the formulas don’t match with the image, it’s a simple copy and paste from Wikipedia Complex analysis - Wikipedia

1 Like

I would say use SOUL for the audio and Juce for the GUI. There are great helper classes to do that, and I must say that I find Juce much more flexible than JavaScript for a custom GUI. If you read the tutorial about the LooAndFeel, you will discover that it’s very easy to modify Juce default appearance. I think Juce is one of the best way to design GUI. I tried with Swift UI and with JavaScript for different non-audio applications and it was for me more a pain in the ass to do what I wanted to do. I am not a professional audio developer, I am a producer with love for computer languages

1 Like

I’m also in exactly the same position as you and have been wondering the same question for a few weeks.

I have an idea of more or less how I would plan the programming of the Soul part (the language is certainly friendly) but the host part is taking me a lot of time to figure out.

I’d love to see some examples or tutorials of how to create a Juce project from scratch (not using the command-line tools) and then creating a custom Juce UI for it, be it React-Juce or just the mentioned LookAndFeel option Lucretio mentioned above.

This examples or tutorials would save me a few months of non-sense trial and error.



Are you aware of all of the JUCE Tutorials that are available? They cover everything you mentioned:

Oh, yes!

Sorry for my wording. I didn’t check what I wrote.

I meant that I’d love to see some examples of tutorials about how to create a Juce project from scratch to manage just the GUI and presets in a Soul synth and not using the Soul command line to create the Juce project.

There are two reasons for that. First, I believe that create such project from scratch and having the bits explained would be of great educational value (at least for me, since the alternative is to read the created project created by Soul very carefully and possibly get the help of a teacher) and, second, the possibility to work simultaneously in both the Soul and Juce part of the project and updating the connections between the two as the project advances without having to recreate the Juce project from the Soul line command.

Having said that, I also believe that (with or without a Soul connection) I first should do all the tutorials you mentioned and get a firm grasp of how Juce works.



I didn’t make much progress yet.

Anyway, in case you don’t know it already:

This JUCE project allows you to load SOUL patches as a VST:

(make sure that the SOUL binaries you download fit exactly to the SOUL source code!)

The JUCE related magic happens here:

With these two things I could run a small test of a soul patch in my DAW. But it crashes in my DAW as soon as the SOUL patch is replaced. So, the dynamic loading is not that stable. However, I think for making a GUI with a static SOUL patch this could work.

But I agree, more tutorials for the combination SOUL/JUCE would be much appreciated!


1 Like


My intention is to make a standalone app and learn about Juce and Soul in the process. Hopefully in a few months I can start my project!

The code also produces a standalone app.