[Interest] Windows VST plugin based on Qt

Kalinowski Maurice Maurice.Kalinowski at theqtcompany.com
Tue May 19 09:05:49 CEST 2015


Creating a VST is certainly possible, though you will need to do some extra steps.

a) you need an application object created inside your plugin. The easiest to do so is to create a new thread (when the first instance is created or even on show(), not during plugins loading), which will initialize everything, otherwise you will get into troubles due to two different event loops interfering each other.
b) Be careful  about multiple instances, you will need to handle this properly (Q(Core)Application is singleton, so check for existence
c) Try to not interfere with other VST plugins which might use Qt as well, potentially a different version even. Then the order of plugins loaded might make things fall apart. One step to take care of this is to namespace your Qt build
d) as a start you can put Qt libraries and plugins also into your VST folder, the host will load a bit slower but for testing that is ok. Later you might want to use manifests or static linking. Another option would be to create a thin layer, which then loads your plugin from another location where you have arranged all dlls properly.
d) things I probably forgot...

Unfortunately I have my VST test code at home and cannot give more guidance right now. If there is a need for it, feel free to remind me to send some snippets to you. VST2 or VST3?

BR,
Maurice


> -----Original Message-----
> From: interest-bounces+maurice.kalinowski=theqtcompany.com at qt-
> project.org [mailto:interest-
> bounces+maurice.kalinowski=theqtcompany.com at qt-project.org] On
> Behalf Of Nuno Santos
> Sent: Dienstag, 19. Mai 2015 08:27
> To: Interests Qt
> Subject: [Interest] Windows VST plugin based on Qt
> 
> Hi,
> 
> I’m trying to build a VST plugin based on Qt.
> 
> A VST plugin is a framework for creating audio processing and instrument
> plugins. It provides an api that one should follows. The result is a dynamic
> library that will be loaded by the host (dll on windows case, bundle on mac
> case). I have done it successfully on Mac (with still a lot of tests to perform
> and the need for correct deploy) and now i’m trying on Windows.
> 
> On Windows i’m being faced with some dll loading problems.
> 
> If I build the plugin without link Qt at all (CONFIG -= qt), the plugin is
> recognized by the host. Otherwise it isn’t. I want to use Qt, specially QML for
> UI. There are simpler ways of doing this, but I love Qt and I want my code to
> be the most transversal as possible.
> 
> I have been suggested that this problems is due to the loading path of the
> libraries. I suggested solution relies in using /DELAYLOAD
> 
> I have tried to perform /DELAYLOAD:Qt5Core.dll and the other three libs
> started by icu, and then using the SetDllDirectory to the path I have the
> deployed plugin.
> 
> Still, the host is unable to load the plugin correctly.
> 
> Can someone give me an insight on how to do this on windows?
> 
> Thanks,
> 
> Regards,
> 
> Nuno
> 
> 
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest


More information about the Interest mailing list