Wdl-ol
-
- KVRian
- Topic Starter
- 1256 posts since 15 Mar, 2007 from Yorkshire, England
Hi, I installed this framework and followed the video setup and have some things working well but I have some problems:
The VST3 build appears to work ok and the Steinberg test app is loaded correctly but the plugin is not visible. I tried this with 64 bit and 32 bit builds. With the 32 bit one a copy of the dll appears in my Steinberg VST3 directory, with the 64 bit one it does not appear (I copied the settings from the 32 bit one as they were not set by default). The VST 2.4 build for 32 bit and 64 bit work fine as does the standalone app version.
I also tried the OpenGL sample but it appears to use mac-only OpenGL API extensions? I am not too bothered about this as the sample shows how to set up a new panel with a graphics API which is the main thing I was interested in.
Anyway apart from these minor things the system looks really really good. I love the python scripts and ease of getting going. Thanks.
Keith
The VST3 build appears to work ok and the Steinberg test app is loaded correctly but the plugin is not visible. I tried this with 64 bit and 32 bit builds. With the 32 bit one a copy of the dll appears in my Steinberg VST3 directory, with the 64 bit one it does not appear (I copied the settings from the 32 bit one as they were not set by default). The VST 2.4 build for 32 bit and 64 bit work fine as does the standalone app version.
I also tried the OpenGL sample but it appears to use mac-only OpenGL API extensions? I am not too bothered about this as the sample shows how to set up a new panel with a graphics API which is the main thing I was interested in.
Anyway apart from these minor things the system looks really really good. I love the python scripts and ease of getting going. Thanks.
Keith
-
- KVRian
- Topic Starter
- 1256 posts since 15 Mar, 2007 from Yorkshire, England
Another thing I noticed is that the project includes a name_controls.h file but it does not exist on disk. This is true for the template projects and when a new one is created.
-
- KVRian
- 876 posts since 24 Jun, 2002 from Berlin
hi keith,
oli
The projects work ok on my machine which is winXP 32bit. Can you tell me what OS you are using and if it is VC++ Express?The VST3 build appears to work ok and the Steinberg test app is loaded correctly but the plugin is not visible. I tried this with 64 bit and 32 bit builds. With the 32 bit one a copy of the dll appears in my Steinberg VST3 directory, with the 64 bit one it does not appear (I copied the settings from the 32 bit one as they were not set by default). The VST 2.4 build for 32 bit and 64 bit work fine as does the standalone app version.
yes the OpenGL example is only implemented for Mac at the moment, see todo.txtI also tried the OpenGL sample but it appears to use mac-only OpenGL API extensions? I am not too bothered about this as the sample shows how to set up a new panel with a graphics API which is the main thing I was interested in.
yeah I recently noticed this and have fixed it for the next version, which also includes lots of VST3 and RTAS improvements.Another thing I noticed is that the project includes a name_controls.h file but it does not exist on disk. This is true for the template projects and when a new one is created.
oli
-
- KVRian
- Topic Starter
- 1256 posts since 15 Mar, 2007 from Yorkshire, England
Hi, thanks for getting back to me. I am using Windows 7 and the full version of Visual Studio 2010.
By the way I just followed your OpenGL control example and created a Direct3D control version. Just got it working now. Of course that would be limited to PC targets only.
By the way I just followed your OpenGL control example and created a Direct3D control version. Just got it working now. Of course that would be limited to PC targets only.
-
- KVRian
- Topic Starter
- 1256 posts since 15 Mar, 2007 from Yorkshire, England
I solved the steinberg host problem. It was due to the fact that steinberg puts the 32 bit version in program files(x64)/ and the other in program files (there are two apps, it appears the 64 bit one will not load 32 bit dlls).
The vst3HostPath macro only points to the 64 bit dir.
C:\Program Files (x86)\Steinberg\VST3PluginTestHost\VST3PluginTestHost.exe, for 32 bit
C:\Program Files\Steinberg\VST3PluginTestHost\VST3PluginTestHost.exe for 64 bit
For placing the vst3 files themselves I used
$(CommonProgramFiles)\VST3\MyNewPlugin.vst3 for 32 bit and
$(CommonProgramW6432)\VST3\MyNewPlugin.vst3 for 64 bit
this seems to work.
The vst3HostPath macro only points to the 64 bit dir.
C:\Program Files (x86)\Steinberg\VST3PluginTestHost\VST3PluginTestHost.exe, for 32 bit
C:\Program Files\Steinberg\VST3PluginTestHost\VST3PluginTestHost.exe for 64 bit
For placing the vst3 files themselves I used
$(CommonProgramFiles)\VST3\MyNewPlugin.vst3 for 32 bit and
$(CommonProgramW6432)\VST3\MyNewPlugin.vst3 for 64 bit
this seems to work.
-
- KVRian
- 876 posts since 24 Jun, 2002 from Berlin
thanks will see if I can integrate this into the projects
- KVRian
- 1157 posts since 17 Feb, 2010
Hello Oli,
in the passed days I started looking at WDL-OL and I'm very impressed My congrats for all your huge work !
In a post on KvrAudio you wrote that you're finding a way to integrate WDL-OL with JUCE GUI visual editor.
So you can create a GUI on Juce (visually) and then use the automatically written .cpp and .h files (the PluginEditor) in WDL-OL.
Is this feature already available on current wdl-ol version or it is planned for the future?
Is/will be an IPlugExample available to show how it works?
All the best,
bruno
in the passed days I started looking at WDL-OL and I'm very impressed My congrats for all your huge work !
In a post on KvrAudio you wrote that you're finding a way to integrate WDL-OL with JUCE GUI visual editor.
So you can create a GUI on Juce (visually) and then use the automatically written .cpp and .h files (the PluginEditor) in WDL-OL.
Is this feature already available on current wdl-ol version or it is planned for the future?
Is/will be an IPlugExample available to show how it works?
All the best,
bruno
-
- KVRian
- 876 posts since 24 Jun, 2002 from Berlin
Hi,
It's on a new version which is not yet public. I am not sure when I will make it public because there are some annoying issues with the steinberg vst3->au wrapper (which is used) that I have not yet had time to resolve in a nice way.
oli
It's on a new version which is not yet public. I am not sure when I will make it public because there are some annoying issues with the steinberg vst3->au wrapper (which is used) that I have not yet had time to resolve in a nice way.
oli
- KVRian
- 1157 posts since 17 Feb, 2010
Thank you Oli for the quick reply... :)hibrasil wrote:Hi,
It's on a new version which is not yet public. I am not sure when I will make it public because there are some annoying issues with the steinberg vst3->au wrapper (which is used) that I have not yet had time to resolve in a nice way.
oli
So, if I understood fine, AU exporting/compiling in WDL-OL is based on the Steinberg run-time VST3->AU wrapper (the same found in the VST3 SDK).
Is this the approach used in both "current" and "further" WDL-OL versions ?
-
- KVRian
- 876 posts since 24 Jun, 2002 from Berlin
the version of WDL-OL/IPlug on github does not use the Steinberg VST3->AU wrapper. The basic class inheritance is like this:
YourPluginClass -> IPlugAU/IPlugVST/IPlugVST3/IPlugETC (chosen by preprocessor macros) -> IPlugBase
http://olilarkin.co.uk/html/class_i_plug_base.html
My unreleased IPlug2 is based on the VST3 SDK and separates GUI and DSP, so it goes a bit like this
YourPluginController -> IPlugController/IGraphicsController (chosen by preprocessor macros) -> Steinberg::Vst::EditControllerEx1
YourPluginProcessor -> IPlugProcessor -> Steinberg::Vst::AudioEffect
The VST2, AU, AAX and APP targets are all VST3 plugin hosts.
if you use IGraphicsController you can use the same IPlug GUI functionality as in IPlug1, otherwise you can stick a new GUI on the VST3 plugin using JUCE or VSTGUI etc. In that case the only real reason to use IPlug underneath is because it is a bit more concise than writing a VST3 plugin directly.
YourPluginClass -> IPlugAU/IPlugVST/IPlugVST3/IPlugETC (chosen by preprocessor macros) -> IPlugBase
http://olilarkin.co.uk/html/class_i_plug_base.html
My unreleased IPlug2 is based on the VST3 SDK and separates GUI and DSP, so it goes a bit like this
YourPluginController -> IPlugController/IGraphicsController (chosen by preprocessor macros) -> Steinberg::Vst::EditControllerEx1
YourPluginProcessor -> IPlugProcessor -> Steinberg::Vst::AudioEffect
The VST2, AU, AAX and APP targets are all VST3 plugin hosts.
if you use IGraphicsController you can use the same IPlug GUI functionality as in IPlug1, otherwise you can stick a new GUI on the VST3 plugin using JUCE or VSTGUI etc. In that case the only real reason to use IPlug underneath is because it is a bit more concise than writing a VST3 plugin directly.
- KVRian
- 1157 posts since 17 Feb, 2010
Wow..., I started studying Wdl-ol/iplug in the passed weeks and it seems that it is growing and getting really amazing. And quite clear and easy to use, very important from my viewpoint, as I'm not a C++ guru :)hibrasil wrote:the version of WDL-OL/IPlug on github does not use the Steinberg VST3->AU wrapper. The basic class inheritance is like this:
YourPluginClass -> IPlugAU/IPlugVST/IPlugVST3/IPlugETC (chosen by preprocessor macros) -> IPlugBase
http://olilarkin.co.uk/html/class_i_plug_base.html
My unreleased IPlug2 is based on the VST3 SDK and separates GUI and DSP, so it goes a bit like this
YourPluginController -> IPlugController/IGraphicsController (chosen by preprocessor macros) -> Steinberg::Vst::EditControllerEx1
YourPluginProcessor -> IPlugProcessor -> Steinberg::Vst::AudioEffect
The VST2, AU, AAX and APP targets are all VST3 plugin hosts.
if you use IGraphicsController you can use the same IPlug GUI functionality as in IPlug1, otherwise you can stick a new GUI on the VST3 plugin using JUCE or VSTGUI etc. In that case the only real reason to use IPlug underneath is because it is a bit more concise than writing a VST3 plugin directly.
So, if I got the point, the new IGraphicsController embeds all the Iplug1 IControl class in order to re-use Iplug1 GUI code, but since Iplug2 IPlugController resides in separate .h and .cpp files, it would be simple to "swap it" with the one generated from Juce or RackAfx or others...
Let me understand fine (before I will start dancing for joy), so this means that (using wdl-ol iplug2) it would be relatively simple to build a VST2, AU, AAX and APP wrappers from a pre-compiled VST3 plugin (also if the VST3 has been created/pre-compiled with a different framework)? It would be a 'killer' feature, the ideal choise to port my existing VST3 plugins to other formats (since it would be physically very hard for me to re-write all my previous plugins WHILE make new ones)... Please let me know about this :)hibrasil wrote:The VST2, AU, AAX and APP targets are all VST3 plugin hosts.
Again, thank you a lot for your precious contribution in the music/dev industry Oli.
-
- KVRian
- 876 posts since 24 Jun, 2002 from Berlin
sort of. you implement EditController::createView() in your controller and return a Steinberg::Vst::IPlugView. For instance you can do this with the VSTGUI UIDescription stuff.xhunaudio wrote: Wow..., I started studying Wdl-ol/iplug in the passed weeks and it seems that it is growing and getting really amazing. And quite clear and easy to use, very important from my viewpoint, as I'm not a C++ guru
So, if I got the point, the new IGraphicsController embeds all the Iplug1 IControl class in order to re-use Iplug1 GUI code, but since Iplug2 IPlugController resides in separate .h and .cpp files, it would be simple to "swap it" with the one generated from Juce or RackAfx or others...
don't get too excited! I said they are vst3 hosts but only the steinberg vst3->au wrapper is actually a bundle that you put your .vst3 inside. However the wrappers do work without any IPlug code, so an existing vst3 project's code should be able to be brought into the WDL-OL IPlug project structure and work with all the formats.xhunaudio wrote: Let me understand fine (before I will start dancing for joy), so this means that (using wdl-ol iplug2) it would be relatively simple to build a VST2, AU, AAX and APP wrappers from a pre-compiled VST3 plugin (also if the VST3 has been created/pre-compiled with a different framework)? It would be a 'killer' feature, the ideal choise to port my existing VST3 plugins to other formats (since it would be physically very hard for me to re-write all my previous plugins WHILE make new ones)... Please let me know about this
email me if you'd like to get beta access to IPlug2
- KVRian
- 1157 posts since 17 Feb, 2010
Ahah, okOLI, thanks for your clarification, the word 'HOSTS' fooled me... :)hibrasil wrote:don't get too excited!
I also took a deep look at IPlugGen, it seems something definitely very powerful. I will start playing with it in a couple of days... I'll make my testings, but anyway I would ask : since it is an abstraction layer for Iplug / gen , is it complete, so can 'host' ANY 'gen' project exported to c++ or it is missing some features? I would just know if it is stable enough and usable for professional audio app/plugins purposes...
And : will it be compatible with iplug2 ?
I tried to find some papers about IPlugGen (similar to your M4_u presentation) but url links seem to be broken...
- KVRian
- 1157 posts since 17 Feb, 2010
Hello Oli,
I spent a few hours on WDL-OL (obviously the IPlug1 version, downloaded from Github).
I would report 2 notes, I hope it will help you for further improvements, or if I did something wrong, I hope you can help me :
- IplugGen works fine, I had only to adjust the .sln file, instead of linking to "base_vs10.vcxproj" I changed to "base.vcxproj" . This let the VST3 to compile in VS 2013.
Using "base_vs10.vcxproj" produced error 1181 and didn't compile, maybe you want to update the github project.
- I'm having a problem with WDL-OL : when I compile ANY of the default IPlugExamples to STANDALONE APP, it basically works fine but when the Reset() method is executed (e.g.: changing the sampling rate from the APP Menu 'Properties') the standalone APP itself crashes.
If the app is compiled as VST3 and/or VST2, it works fine also when changing the sample rate from the host.
So I think it is not an issue of the Reset() method, but something related to its interaction with RTAudio drivers. Did you ever had an issue like this?
If needed I can provide additional infos, just let me know Oli.
If you prefer, I can contact you privately by email for this kind of things.
I spent a few hours on WDL-OL (obviously the IPlug1 version, downloaded from Github).
I would report 2 notes, I hope it will help you for further improvements, or if I did something wrong, I hope you can help me :
- IplugGen works fine, I had only to adjust the .sln file, instead of linking to "base_vs10.vcxproj" I changed to "base.vcxproj" . This let the VST3 to compile in VS 2013.
Using "base_vs10.vcxproj" produced error 1181 and didn't compile, maybe you want to update the github project.
- I'm having a problem with WDL-OL : when I compile ANY of the default IPlugExamples to STANDALONE APP, it basically works fine but when the Reset() method is executed (e.g.: changing the sampling rate from the APP Menu 'Properties') the standalone APP itself crashes.
If the app is compiled as VST3 and/or VST2, it works fine also when changing the sample rate from the host.
So I think it is not an issue of the Reset() method, but something related to its interaction with RTAudio drivers. Did you ever had an issue like this?
If needed I can provide additional infos, just let me know Oli.
If you prefer, I can contact you privately by email for this kind of things.
-
- KVRian
- 876 posts since 24 Jun, 2002 from Berlin
yes best to contact me by email about it. Please let me know which audio interface and which version of windows is crashing.
oli
oli