is .48 compliant with vst sdk 2.4?

Started by pera, November 28, 2007, 02:05:28

Previous topic - Next topic

pera

My question ^ because I compile the again example with mingw, and ompt says "not valid vst-plugin", however works with cubase sx3, live 6, and vst host 1.44 :? (not with orion 7.11)

here the example with my makefile: http://gomesbascoy.googlepages.com/mingwexample.zip

LPChip

I know that OpenMPT has had a change in the VST code, to support a later standard than it originally did. But I believe it is 2.0 or something close to that version.

You might want to try a chainer though. I use Xlutop Chainer myself. True, it does cost a bit of money, but its an excellent addition to OpenMPT, especially since you can now save your entire chain to a preset file, so it can be used over and over again.
"Heh, maybe I should've joined the compo only because it would've meant I wouldn't have had to worry about a damn EQ or compressor for a change. " - Atlantis
"yes.. I think in this case it was wishful thinking: MPT is makng my life hard so it must be wrong" - Rewbs

pelya

//-------------------------------------------------------------------------------------------------------
AGain::AGain (audioMasterCallback audioMaster)
: AudioEffectX (audioMaster, 1, 1)      // 1 program, 1 parameter only
{
       setNumInputs (2);               // stereo in
       setNumOutputs (2);              // stereo out
       //setUniqueID ('Gain');   // Wrong!
       setUniqueID ('pmVp');   // The unique string meaning "pera's mega VST plugin" - this should be unique across all existing VST plugins.
       canProcessReplacing (); // supports replacing output
       canDoubleReplacing ();  // supports double precision processing

       fGain = 1.f;                    // default to 0 dB
       vst_strncpy (programName, "Default", kVstMaxProgNameLen);       // default program name
}

All VSTs should have unique ID, however some of VST doesn't. Cubase and other soft has some workaround for this, when MPT just strictly follows the standard. Maybe we'll have workaround in next version. Related topic .
VST 2.4 is backward compatible with 2.0, so older hosts are able to run newer plugins.

pera

thank :) but didn't work :(
I think that is my make file, I'll try to compile with vc++ express and then compare the binary s

pelya

Another try - now I even tested it on live MPT :).
1. You forgot to implement process() method.
2. In Makefile you don't tell linker to use again.def file, so main() function required by old hosts not exported - there's parameter "--def again.def" in LIBS var, but the var itself not used, besides "--def" flag is not recognized by the linker, you should just put .def file without flags before .o files.
Newer (or smarter) hosts are probably looking for "VSTPluginMain", but spec says it should be exported as "main".

pera

oh yeah!!! works :D thank you so much!!!!  :boogie:
greetings from argentina