From Pure Data to JUCE

Hello everyone,


I'm having some issues at the moment with developing a (reasonably basic) reverb plug in for use in .vst.

I've been directed here after much research but i'm not sure of my next steps. I have the reverb running in Pure Data at the moment but that's really the extent to my 'coding' knowledge. I'd like to get started on the GUI for the plug in at this point but i don't really know what my next step should be. 

Please do bear in mind, a few months ago I had only heard about PD in passing so this is a new world to me. I've done a bit of research into using JUCE but (as my tutor said), it's a bit like reading greek to me right now. 

I'd really appreciate some direction!

Thank you

Do you know C++? That's a pretty good place to start :)

You probably need to get the most basic plugin possible running first.  Getting something that executes at all is half the battle.  Once you've managed to implement a gain control in JUCE going from there to a functioning reverb should be fun.

That does presume you've got a bit of C++ under your belt.   

Otherwise it's std::cout << "Hello World!\n" time for you :)

My Opinion:

Pd or any graphical environment for audio is a good place to start; better than code in fact which in many ways represents the flow in a more indirect way. If you feel fairly confident in the area of DSP algorithms then I would say moving on to text based programming is the next step. Putting the Juce library before the language it uses is a mistake though. It might even be a mistake to put C++ before C.

Learn the basics of C syntax. I recommend skimming through a tutorial on C by Mark Virtue for Virtual Traning Company. Do this but don't worry about C-specific things too much like C-style strings and #include "stdio.h." Just get the core language under your belt and move on to C++.

C++ is a huge and scary language but if you have focused on a particular USE for it (like Juce) it can help you prioritize and make it much more pleasant. To learn C++ I used many resources: VTC,,, various books MIT Open CourseWare etc but none of them stuck with me really as a routine. Now I'm pursusing certification and getting free training for it via is very heavy and in-depth so I keep referring to this:

I have build a few plugins in Juce now. proof!:

Just BE PERSISTANT AS FUCK and there is no way it won't happen for you! :)

Great advice!

Yes, make sure to learn C++ before even attempting to use JUCE. I come from Reaktor and I tried to understand JUCE without learning C++ first, but that was just a huge waste of time. I then dedicated myself to learn C++ and got this book called Programming Principles and Practice using C++ 2nd Ed. by Bjarne Stroustrup. I highly recommend you picking that book up if you have no prior programming experience. I tried several books, but that one really stuck with me. I just recently (like 3 days ago) decided to try JUCE again and I was able to actually learn how to make simple custom GUIs (from code) and process audio (just gain for now). I know that doesn't sound very exciting, but it is for me! I actually understand how to make controls and how to process audio, so I can take it from there. If you don't know C++, then you won't be able to get your ideas out. It takes time, but you can do it! Just take at least 2 or 3 months learning C++, writing console applications and learn how to get your ideas out with the language. If you're dedicated to make audio plugins, I'm sure you won't mind spending the time and buying good books to learn it. Good luck in your adventures! 

I'd recommend you check out one of, if not both of these books as well:


Between those and the Stroustrup book mentioned earlier you'll have a solid foundation of C++ and a good grasp of the specifics involved in audio plug-ins, assuming you've accumulated a reasonable amount of DSP knowledge through Pd. From there I'd say it's a matter of trial and error in looking at how the plug-ins you'll have made from the Pirkle books operate and then inferring how the same can be achieved through the JUCE framework.