Forums > Gen

WDL-OL/IPlug project for gen~ code export

February 28, 2014 | 1:20 pm

I’ve made an IPlug project that can be used to quickly compile a gen~ patch to VST2/VST3/AU/RTAS/AAX/APP/IOS* and to add a gui etc.

It’s an early version, but it might be handy for someone. Please read the IPlugExamples.rtf in detail before asking about how to compile it.

*note: ProTools formats require Avid developer account and IOS project is out-dated (only works with IOS4 sdk on Xcode3)

March 1, 2014 | 2:25 pm

Thank you very much OLI!
PS: It would be very useful a sample IPlugGen project, implementing a basic gui and some control.

March 2, 2014 | 1:07 am

have a look at the IPlug example projects, which feature lots of different kinds of control

March 2, 2014 | 1:35 am


March 2, 2014 | 4:18 am

Wow! great stuff Oli! many thanks!

March 2, 2014 | 5:08 am

this looks like a great idea!

I have a naive question, I’m looking at developing a VST (that talks to a hardware device, and outputs midi). I was previously assuming Id build it in Juce…
but having looked at IPlug, it seems to offer much the same facilities.

Ive looked around, and cannot find any real comparison about why to choose IPlug/Wdl over Juce, or vice versa … is there some comparison somewhere, or a guide about which to choose.

the only reason Ive found so far, is due to commercial licensing of Juce – something I don’t think is applicable for me… though of course avoiding is a good thing generally :)

(just to be clear, I’m not after X is better than Y, I’m sure both are great… but wonder how to make an informed choice)

March 2, 2014 | 5:46 am

A few thoughts (I use both)


has good documentation
has consistent and high quality code
has a big user base
very good vector graphics capabilities
has a rather nice project generator (the introjucer)
much more than just plugins
doesn’t impose particular thread safety technique


Easier for C++ beginners
Concise plugin implementation
Many helpful scripts
IDE projects setup for debugging in lots of common hosts
Possible to fork it and "own" your version
Perhaps less of a moving target
Uses rather brutal mutex locks for thread safety

I think JUCE is well worth the money, but i like the simplicity of implementing plugins in IPlug.

I’m actually working on a new version of IPlug that is based on VST3 and is lock-free. Also the graphics can be done using whatever framework you like (IGraphics, JUCE, VSTGUI etc)

March 2, 2014 | 9:19 am

Sure, I understand nothing, but how Gen passing parameters in the cpp code is enumerating and including them in an array of kVstParameter or something. For those who do not know anything, an example would be good, just like the ones you make reference, but using some specific parameter in a dial control and background image.
Anyway I appreciate your contribution and I will continue looking.

Thank you!

March 3, 2014 | 8:53 am

Thanks Oli, that is exactly what I was after :o)

from a quick look, it looks like WDL, is maintained by Cockos (of Reaper fame),
does this means its pretty well maintained?
it looks to have pretty good coverage for guis in the virtual window system…

Im not a beginner in C++, but I do have an aversion to frameworks which enforces there way of working to much, it usually makes then difficult to integrate with other software/frameworks…
(code generators like introjucer I’ve also sometimes find as much of a hinderance as help, though I’ve not played with introducer so this may not be the case)

Im also not keen on the juce licensing, I don’t want to make commercial software, but that doesn’t necessarily mean I want to (or can, due to other frameworks) make my source code open source.

so I guess looks like WDL/IPlug might be a good option for me :)

March 15, 2014 | 8:28 am

Hi Oli

I just tried this and i’ve found that it compiles your default Flanger plugin fine however as soon as any changes are made to the gen patch and the code is exported again xcode says that the calls in IPLugGen.cpp to: create, destroy, num_inputs, reset and setparameter are ambiguous.

On exporting the code from the edited gen patch it also removes the: #include "gen_export.h" and the namespace gen_export{} lines from the code. I corrected this but it didn’t have any effect on the previous problem.

….on a side note as well the duplicate python script also doesn’t seem to work properly for the IPLugGen-master folder; it duplicates the folder and changes the name but doesn’t alter the names of anything inside. I’ve used it for duplicating the IplugEffect folder for normal projects and it works in that instance.

Thanks for creating all this though in general, its been great for learning how to build plugins.

March 15, 2014 | 11:20 am

Issue Resolved – I was on Max 6.1.

Updated Max and it works perfectly now.

Great Work again!

August 8, 2014 | 7:46 am

This is brilliant!


September 7, 2014 | 9:08 am

Thanks very much for this Oli. Truly fantastic resource.

  • This reply was modified 1 month by  daveyc.

Viewing 13 posts - 1 through 13 (of 13 total)