Multi-platform frameworks for VST/AU/AAX/etc.

DSP, Plug-in and Host development discussion.
rndmdev
KVRer
5 posts since 9 May, 2019

Post Tue Jun 30, 2020 1:06 am

In order to do plugins (using C++), here are the frameworks that I know:

* https://github.com/olilarkin/wdl-o: I've used it successfully for some projects, but wdl-ol is now discontinued

* https://github.com/iPlug2/iPlug2: only pre-release, probably not ready for productoin

* of course Juce (40$/mo or 800$ once minimum for a splash-screen-free version)

What are the other best frameworks allowing to code a VST / AU, etc. in C++? Are there open-source / free ones?

See you

juha_p
KVRian
587 posts since 21 Feb, 2006 from FI

Re: Multi-platform frameworks for VST/AU/AAX/etc.

Post Tue Jun 30, 2020 1:21 am

Rust port could be promising but no VST3 and not C++ ... https://crates.io/crates/vst

mystran
KVRAF
5747 posts since 12 Feb, 2006 from Helsinki, Finland

Re: Multi-platform frameworks for VST/AU/AAX/etc.

Post Tue Jun 30, 2020 3:15 am

As far as I know, Juce and iPlug (either version) are what the large majority of developers use if you ignore people with private frameworks.
Please just let me die.

hibrasil
KVRian
814 posts since 24 Jun, 2002 from UK

Re: Multi-platform frameworks for VST/AU/AAX/etc.

Post Tue Jun 30, 2020 5:23 am

iPlug2 is not very far off "production ready" and several developers have released stuff with it. It's an absolutely massive project, and it's taken several years to make it at all competitive. I just say it's not production ready, because if you choose it for a project, you should be prepared for a bit of turbulence, i.e. renaming of methods/classes, whilst we finalise it. On that note: I am trying to raise sponsorship so I can dedicate more time to it, and hopefully "finish" it.

here is my awesome-musicdsp list which includes links to the various plug-in framework options i know about: https://github.com/olilarkin/awesome-musicdsp
My Website | iPlug2 | Web Audio Modules - WAMs | Oli Larkin Plugin's Facebook
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)

User avatar
karrikuh
KVRist
322 posts since 6 Apr, 2008

Re: Multi-platform frameworks for VST/AU/AAX/etc.

Post Tue Jun 30, 2020 12:51 pm

juha_p wrote:
Tue Jun 30, 2020 1:21 am
Rust port could be promising but no VST3 and not C++ ... https://crates.io/crates/vst
VST3 API bindings are being worked on
https://github.com/RustAudio/vst3-sys
but I think it's currently not much more than a proof of concept, requiring essentially the entire implementation to be wrapped in unsafe.
Also worth mentioning is this library
https://github.com/RustAudio/baseview
which attempts to provide a low-level abstraction of platform specific windowing APIs.

rndmdev
KVRer
5 posts since 9 May, 2019

Re: Multi-platform frameworks for VST/AU/AAX/etc.

Post Tue Jun 30, 2020 1:05 pm

hibrasil, what is the big picture of the history of these projects again? (i forgot)

Is the following chronology correct?

* Cockos WDL (https://www.cockos.com/wdl/): did it already support Mac and PC, VST/AudioUnit/etc.?

* Cockos iPlug: what did it do exactly?

* WDL-OL: what does it do that Cockos iPlug couldn't do?

* iPlug2: what does it add (compared to WDL-OL)?

thanks for the link of the "curated list of my favourite music DSP resources", it's useful indeed!

hibrasil
KVRian
814 posts since 24 Jun, 2002 from UK

Re: Multi-platform frameworks for VST/AU/AAX/etc.

Post Tue Jun 30, 2020 1:33 pm

Cockos iPlug (c. 2008 AD) - did VST2 and AU, bitmap graphics via LICE

WDL-OL (2011...) - added VST3, RTAS & AAX, build system, fixed bugs

iPlug2 (2018... hope to "finish" this year) - totally reworked the codebase to be much cleaner/more modular, much much better & modern. Resizable 60FPS vector graphics on the GPU, SVG, WebViews, better approach to multithreading, compile to webassembly, AUv3 / iOS support , Multitouch, controls library, loads more stuff...
My Website | iPlug2 | Web Audio Modules - WAMs | Oli Larkin Plugin's Facebook
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)

rndmdev
KVRer
5 posts since 9 May, 2019

Re: Multi-platform frameworks for VST/AU/AAX/etc.

Post Wed Jul 01, 2020 2:12 am

:tu: hibrasil for your answer.

Just to see the full picture, what did the initial "Cockos WDL" framework do, before iPlug arrived? Did it already allow you to create VST/AudioUnits?

About WDL-OL: I see it is discontinued, but it's still working fine, right? (I had started something with WDL-OL and would like to continue with this version).

Does it produce binaries ready for macOS 10.15 Catalina and its Notarization requirements (https://developer.apple.com/documentati ... stribution)? Do you think they will work on mac OS 11 Big Sur?

thanks

hibrasil
KVRian
814 posts since 24 Jun, 2002 from UK

Re: Multi-platform frameworks for VST/AU/AAX/etc.

Post Wed Jul 01, 2020 2:37 am

WDL is a collection of utility classes by Cockos, it's not really a framework.

WDL-OL binaries should work on catalina, if you do the right code-signing/notarization
My Website | iPlug2 | Web Audio Modules - WAMs | Oli Larkin Plugin's Facebook
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)

User avatar
Guillaume Piolat
KVRist
211 posts since 21 Sep, 2015 from Grenoble

Re: Multi-platform frameworks for VST/AU/AAX/etc.

Post Thu Jul 02, 2020 3:35 am

If you are wanting to use C++ than I think JUCE or IPlug2 are the two most reasonable choices. (with Patreon ON)
VST/AU/AAX: Couture | Panagement | Graillon

ilyaorlov
KVRist
213 posts since 28 May, 2011

Re: Multi-platform frameworks for VST/AU/AAX/etc.

Post Fri Jul 03, 2020 4:24 am

Plug'n Script is not a typical framework, but it can export all plugin formats and you can write DSP code in C++.
https://pns.letimix.com

shabby
KVRist
51 posts since 6 Dec, 2013 from The land of confusion

Re: Multi-platform frameworks for VST/AU/AAX/etc.

Post Fri Jul 03, 2020 12:42 pm

For what it's worth - I just started using IPlug2 yesterday to port some Reaper-JS to native VST2/VST3/APP.

And it was so damn easy - took about 8 hours to get familiar with the framework and create a similar working UI. I love the fact that it uses the GPU for 60fps vector rendering - it's awesome.

For me the killer feature, apart from all the major SDK's being handled, is the IRECT functionality. Being able to chop the screen up with FracRectVertical, SubRectVertical, SubRectHorizontal and Alter - makes UI design so damn simple.

The only big issue I've found with it so far is it takes 5 secs to load up my very basic VST3 in reaper. I don't know why that is yet - GPU init code or some VST3 funk going on - I will found out later.

quikquak
KVRian
705 posts since 6 Aug, 2005 from England

Re: Multi-platform frameworks for VST/AU/AAX/etc.

Post Sat Jul 04, 2020 1:38 am

GPU rendering hey? I'm guessing that uses OpenGL rather than DirectX or Metal?

shabby
KVRist
51 posts since 6 Dec, 2013 from The land of confusion

Re: Multi-platform frameworks for VST/AU/AAX/etc.

Post Sat Jul 04, 2020 5:03 am

quikquak wrote:
Sat Jul 04, 2020 1:38 am
GPU rendering hey? I'm guessing that uses OpenGL rather than DirectX or Metal?
yeah!! There are 3 different backends:

https://github.com/iPlug2/iPlug2/wiki/0 ... g_graphics

Get ur shader magic on dude - u know u want to!!

I'm current writing a FabFilter clone (coz I can't afford it) and want ur fantastic landscape code running in the background :)

mystran
KVRAF
5747 posts since 12 Feb, 2006 from Helsinki, Finland

Re: Multi-platform frameworks for VST/AU/AAX/etc.

Post Sat Jul 04, 2020 5:11 am

shabby wrote:
Fri Jul 03, 2020 12:42 pm
The only big issue I've found with it so far is it takes 5 secs to load up my very basic VST3 in reaper. I don't know why that is yet - GPU init code or some VST3 funk going on - I will found out later.
On Windows using OpenGL can take a few seconds to load and there's not a whole lot you can do about it, though it's usually worse for the first OpenGL plugin you load and less of an issue after that.

Unfortunately Direct3D can cause some issues in some hosts (eg. at least older version of FL if the plugin windows isn't detached) as the GDI and Direct3D don't always synchronize properly. OpenGL seems to go through a different code-path and doesn't have this issue.
Please just let me die.

Return to “DSP and Plug-in Development”