my apologies if this subject is becoming annoying, I found a few similar posts on the forum but none of them solved my problem.
Like the subject says, my freshly compiled Demo VST PlugIn is not showing on the effects list in either Adobe Audition or Audacity. I work under WinXP and compiled with VC6.
I am only interested in VST at the moment, no AU or RTAS for now. These are the steps I took so far:
Installed the vstsdk2.4 from Steinberg.
Downloaded Juce 1.5 from SF and compiled in both Debug and Release modes using #define JUCE_PLUGINHOST_VST 1 in the juce_Config header. No problems compiling either modes once I added the appropriate paths for Steinberg’s VST SDK.
The Visual Studio project+solution in juce\extras\audio plugins\demo\build\win32 are not backwards compatible with VC6 so I created an empty Win32 DLL project from scratch.
Wrote slightly modified versions of the DemoJuiceFilter and DemoEditorComponent classes (a simple Plugin to adjust gain). I included the regular juce.h instead of the amalgamated version. I also set #define JucePlugin_Build_VST 1 in the JucePluginCharacteristics.h
Compiled in both Release and Debug modes and - again - once I included the right paths for Juce, had no compilation problems.
I copied the resulting TestPlugin.dll to my standard VST Plugin directory (which is also in the VST_PATH Windows environment variable).
In Audition I went to Effects->Add/Remove Directory and added that dir. Then I ran the Effects->VST Plug-In Manager and found my TestPlugin on the list. I selected it to be enabled.
8 ) By clicking ok Audition refreshed it’s effects list, but my Plugin is nowhere to be found. I tried changing the Plugin’s name, it’s “unique PluginCode”, nothing. Same problem in Audacity even while using the VST-Bridge Plugin.
Any Ideas of what I should try next? Any help is greatly appreciated.
The first thing I’d do is to try running your host in the debugger - you might see it crashing or something. If it loads at all, you can then step through the code and see how far it gets - usually that’ll give a clue about what’s going on.
Good news! Upgrading to Visual Studio 2005 did the trick!
Like you warned me, VC6 was giving me all kinds of trouble. Wasn’t even able to run the PlugIn in Debug mode. Unfortunately, VC6 is what is used at my workplace (don’t ask me why) so I had to install my own personal copy of Visual Studio 2005 this morning.
One question, though. When compiling the JuceDemoPlugin solution found in juce\extras\audio plugins\demo\build\win32, the output file was set to (ProjectName).dpm, an extension which I'm unfamiliar with. I simply changed this to (ProjectName).dll. Googling the dpm extension didn’t shed any light. What kind of file is this?
Finally I copied the resulting JuceDemoPlugin.dll file to my VST PlugIn directory, and tested it successfully in Ableton Live 7 and Adobe Audition 3.0. I am really impressed by the slick GUI, even for a very small and basic PlugIn!
yeah the DPM extension is weird i guess it means Dynamic Plugin Module or something. On windows it won’t work, you need to rename it to DLL, the DPM stuff only works for JUCE based host/plugin pair.
Sorry if this is now the wrong thread, but I decided to post here for the sake of continuity.
So now that the JuiceDemoPlugin is working, I wanted to start my own project from scratch, and make it as lean and simple as possible.
Is it possible to create a Plugin using only 2 classes (one for the Plugin itself and one for the GUI), whithout any of the wrappers or the amalgamated juce?
I am getting unresolved symbol errors while linking (compile output below) even though I have juce/bin in my additional library directories.
Anyone know what I am doing wrong?
1>------ Build started: Project: TestPlugin, Configuration: Release Win32 ------
1>Compiling…
1>EntroGainEditor.cpp
1>JUCE! Library to link to: jucelib_static_Win32.lib
1>EntroGain.cpp
1>JUCE! Library to link to: jucelib_static_Win32.lib
1>Generating Code…
1>Linking…
1>EntroGain.obj : error LNK2019: unresolved external symbol "public: __thiscall juce::String::String(wchar_t const * const)"
1>EntroGainEditor.obj : error LNK2001: unresolved external symbol "public: __thiscall juce::String::String(wchar_t const * const)"
1>EntroGain.obj : error LNK2019: unresolved external symbol "public: void __thiscall juce::XmlElement::setAttribute(wchar_t const * const,double)"
1>EntroGain.obj : error LNK2019: unresolved external symbol “public: void __thiscall juce::XmlElement::setAttribute(wchar_t const * const,int)”
…
1>.\Release/TestPlugin.dll : fatal error LNK1120: 9 unresolved externals
you need to link to juce, the linker errors come from juce core, either add juce.lib (whatever version your using) or add juce_amalgamated.cpp through a wrapper directly to the project (look at any demo code in the juce tree to see how this is done)
This must be a really silly error, but I just can’t get it to work. In the project properties->Linker options, I have …..\juce\bin in the additional library directories. Then in linker inputs i also have jucelib_static_Win32_debug.lib.
I tried different ways of writing the paths, absolute path etc, but got always the same errors. The path stated above is the correct one relative to my project.
you need to link to juce, the linker errors come from juce core,
either add juce.lib (whatever version your using)
That is what I am doing (though somehow incorrectly).
or add juce_amalgamated.cpp through a wrapper directly to the
project (look at any demo code in the juce tree to see how this is done)
I already successfully compiled the amalgamated demo. Now I want to try to compile a lean object which only includes juce.h.
juce amalgamated is a lean version of juce, just contained in a single cpp file. instead of linking to the lib file you have the source. it’s easier that’s all.
but if you really want to link to the .lib then you should do so, the errors you are pasting clearly state that the link is not happening.
I finally (!) figured out that I had to include the juce project to my Visual Studio Solution. Simply adding the juce lib to the linker properties wasn’t doing it for me.
Thank you all for your replies… and now to do some tweaking…