From 65092b7f63e129a416a32f0e0071547fba86d6d5 Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Tue, 24 Feb 2004 03:37:12 +0000 Subject: "" svn path=/trunk/; revision=1355 --- externals/grill/fftease/config-pd-darwin.txt | 6 +- externals/grill/fftease/makefile.max-msvc | 2 +- externals/grill/fftease/makefile.pd-darwin | 9 +- externals/grill/fftease/makefile.pd-msvc | 2 +- .../fftease/maxmsp/fftease-objectmappings.txt | 29 ++++++ externals/grill/fftease/maxmsp/fftease4.PICT | Bin 26550 -> 8002 bytes externals/grill/fftease/src/fftease.cpp | 33 ++++--- externals/grill/fftease/src/main.cpp | 19 +--- externals/grill/fftease/src/thresher~.cpp | 6 +- externals/grill/vst/config-pd-msvc.txt | 2 + externals/grill/vst/makefile.pd-msvc | 2 +- externals/grill/vst/pd/vst~.pd | 6 +- externals/grill/vst/readme.txt | 6 +- externals/grill/vst/src/EditorWin.cpp | 30 +++++-- externals/grill/vst/src/VstHost.cpp | 50 +++++++++-- externals/grill/vst/src/VstHost.h | 2 +- externals/grill/vst/src/main.cpp | 2 +- externals/grill/vst/vst.vcproj | 98 ++------------------- 18 files changed, 142 insertions(+), 162 deletions(-) create mode 100644 externals/grill/fftease/maxmsp/fftease-objectmappings.txt (limited to 'externals') diff --git a/externals/grill/fftease/config-pd-darwin.txt b/externals/grill/fftease/config-pd-darwin.txt index 755a8c0e..10bb0bd8 100644 --- a/externals/grill/fftease/config-pd-darwin.txt +++ b/externals/grill/fftease/config-pd-darwin.txt @@ -12,7 +12,7 @@ # where is PD installed? -PDDIR=/usr/local/pd +PDDIR=/usr/local/lib/pd # where are the PD header files? # leave it blank if it is a system directory (like /usr/local/include), @@ -20,7 +20,7 @@ PDDIR=/usr/local/pd PDPATH=${PDDIR}/src # where is the PD executable? -PD=${PDDIR}/bin/pd +PD=/usr/local/bin/pd # where do the flext libraries reside? FLEXTPATH=${PDDIR}/flext @@ -34,4 +34,4 @@ INSTPATH=${PDDIR}/extra # additional compiler flags # (check if they fit for your system!) -UFLAGS=-malign-power -maltivec +UFLAGS=-malign-power -faltivec -maltivec diff --git a/externals/grill/fftease/makefile.max-msvc b/externals/grill/fftease/makefile.max-msvc index b1ed7e24..8ed282f2 100644 --- a/externals/grill/fftease/makefile.max-msvc +++ b/externals/grill/fftease/makefile.max-msvc @@ -36,7 +36,7 @@ LIBS=$(LIBS) maxapi.lib maxaudio.lib # compiler definitions and flags DEFS=/DFLEXT_SYS=1 $(UFLAGS) -CFLAGS=/ML /GR- /GD /Ox /GX +CFLAGS=/ML /GR- /GD /Ox /GX /Zp2 # the rest can stay untouched # ---------------------------------------------- diff --git a/externals/grill/fftease/makefile.pd-darwin b/externals/grill/fftease/makefile.pd-darwin index b33a5ff9..c0f1b0a4 100644 --- a/externals/grill/fftease/makefile.pd-darwin +++ b/externals/grill/fftease/makefile.pd-darwin @@ -23,10 +23,11 @@ FLEXTLIB=${FLEXTPATH}/flext.a INCLUDES=${PDPATH} ${FLEXTPATH} LIBPATH= FLAGS=-DFLEXT_SYS=2 ${UFLAGS} -CFLAGS=-O6 -Wno-unused -Wno-parentheses -Wno-switch -Wstrict-prototypes -fno-exceptions -fno-rtti -LIBS=m +CFLAGS=-O2 -Wno-unused -Wno-parentheses -Wno-switch -Wstrict-prototypes +CPPFLAGS=-fno-exceptions -fno-rtti +LIBS= LDFLAGS=-bundle -bundle_loader ${PD} -FRAMEWORKS=Carbon +FRAMEWORKS=Carbon vecLib # --------------------------------------------- # the rest can stay untouched @@ -51,7 +52,7 @@ $(TARGDIR): -mkdir $(TARGDIR) $(TARGDIR)/%.o : $(DIR)/%.cpp - $(CXX) -c $(CFLAGS) $(FLAGS) $(patsubst %,-I%,$(INCLUDES)) $< -o $@ + $(CXX) -c $(CPPFLAGS) $(CFLAGS) $(FLAGS) $(patsubst %,-I%,$(INCLUDES)) $< -o $@ $(TARGDIR)/%.co : $(DIR)/%.c $(CC) -c $(CFLAGS) $(FLAGS) $(patsubst %,-I%,$(INCLUDES)) $< -o $@ diff --git a/externals/grill/fftease/makefile.pd-msvc b/externals/grill/fftease/makefile.pd-msvc index f10b2ac3..778dd9cc 100644 --- a/externals/grill/fftease/makefile.pd-msvc +++ b/externals/grill/fftease/makefile.pd-msvc @@ -22,7 +22,7 @@ LIBS=pd.lib flext-pdwin.lib # compiler definitions and flags DEFS=/DFLEXT_SYS=2 -CFLAGS=/GR- /GX- /GD /Ox +CFLAGS=/GR- /GX- /GD /Ox # the rest can stay untouched # ---------------------------------------------- diff --git a/externals/grill/fftease/maxmsp/fftease-objectmappings.txt b/externals/grill/fftease/maxmsp/fftease-objectmappings.txt new file mode 100644 index 00000000..d75f6194 --- /dev/null +++ b/externals/grill/fftease/maxmsp/fftease-objectmappings.txt @@ -0,0 +1,29 @@ +max objectfile burrow~ fftease; +max objectfile cross~ fftease; +max objectfile dentist~ fftease; +max objectfile disarray~ fftease; +max objectfile drown~ fftease; +max objectfile ether~ fftease; +max objectfile morphine~ fftease; +max objectfile scrape~ fftease; +max objectfile shapee~ fftease; +max objectfile swinger~ fftease; +max objectfile taint~ fftease; +max objectfile thresher~ fftease; +max objectfile vacancy~ fftease; +max objectfile xsyn~ fftease; + +max oblist FFTease burrow~; +max oblist FFTease cross~; +max oblist FFTease dentist~; +max oblist FFTease disarray~; +max oblist FFTease drown~; +max oblist FFTease ether~; +max oblist FFTease morphine~; +max oblist FFTease scrape~; +max oblist FFTease shapee~; +max oblist FFTease swinger~; +max oblist FFTease taint~; +max oblist FFTease thresher~; +max oblist FFTease vacancy~; +max oblist FFTease xsyn~; diff --git a/externals/grill/fftease/maxmsp/fftease4.PICT b/externals/grill/fftease/maxmsp/fftease4.PICT index 571999d7..cb2a1502 100755 Binary files a/externals/grill/fftease/maxmsp/fftease4.PICT and b/externals/grill/fftease/maxmsp/fftease4.PICT differ diff --git a/externals/grill/fftease/src/fftease.cpp b/externals/grill/fftease/src/fftease.cpp index 378ae8ce..9a7641c1 100644 --- a/externals/grill/fftease/src/fftease.cpp +++ b/externals/grill/fftease/src/fftease.cpp @@ -35,10 +35,9 @@ V fftease::Exit() V fftease::m_dsp(I n,S *const *,S *const *) { - const I _D = n; const F sr = Samplerate(); - if(_D != blsz || sr != smprt) { - blsz = _D; + if(n != blsz || sr != smprt) { + blsz = n; smprt = sr; MakeVar(); @@ -51,15 +50,15 @@ V fftease::m_signal(I n,S *const *in,S *const *out) { /* declare working variables */ I i; - const I _D = n,_N = get_N(),_Nw = _N,_N2 = _N/2; //,_Nw2 = _Nw/2; + const I _N = get_N(),_Nw = _N,_N2 = _N/2; //,_Nw2 = _Nw/2; /* fill our retaining buffers */ - _inCount += _D; + _inCount += n; if(_flags&F_STEREO) { - for(i = 0; i < _N-_D ; i++ ) { - _input1[i] = _input1[i+_D]; - _input2[i] = _input2[i+_D]; + for(i = 0; i < _N-n ; i++ ) { + _input1[i] = _input1[i+n]; + _input2[i] = _input2[i+n]; } for(I j = 0; i < _N; i++,j++) { _input1[i] = in[0][j]; @@ -67,8 +66,8 @@ V fftease::m_signal(I n,S *const *in,S *const *out) } } else { - for (i = 0 ; i < _N-_D ; i++ ) - _input1[i] = _input1[i+_D]; + for (i = 0 ; i < _N-n ; i++ ) + _input1[i] = _input1[i+n]; for (I j = 0; i < _N; i++,j++ ) _input1[i] = in[0][j]; } @@ -130,11 +129,11 @@ V fftease::m_signal(I n,S *const *in,S *const *out) /* set our output and adjust our retaining output buffer */ const F mult = 1./_N; - for ( i = 0; i < _D; i++ ) + for ( i = 0; i < n; i++ ) out[0][i] = _output[i] * mult; - for ( i = 0; i < _N-_D; i++ ) - _output[i] = _output[i+_D]; + for ( i = 0; i < _N-n; i++ ) + _output[i] = _output[i+n]; for (; i < _N; i++ ) _output[i] = 0.; } @@ -143,7 +142,7 @@ V fftease::m_signal(I n,S *const *in,S *const *out) void fftease::Set() { /* preset the objects data */ - const I _D = Blocksize(),_N = _D*Mult(),_Nw = _N,_N2 = _N/2; //,_Nw2 = _Nw/2; + const I n = Blocksize(),_N = n*Mult(),_Nw = _N,_N2 = _N/2; //,_Nw2 = _Nw/2; _inCount = -_Nw; @@ -175,7 +174,7 @@ void fftease::Set() _c_lastphase_out = new F[_N2+1]; ZeroMem(_c_lastphase_out,(_N2+1)*sizeof(*_c_lastphase_out)); - _c_factor_in = Samplerate()/(_D * PV_2PI); + _c_factor_in = Samplerate()/(n * PV_2PI); } } @@ -192,9 +191,9 @@ void fftease::Set() _Wanal = new F[_Nw]; _Wsyn = new F[_Nw]; if(_flags&F_BALANCED) - makewindows( _Hwin, _Wanal, _Wsyn, _Nw, _N, _D, 0); + makewindows( _Hwin, _Wanal, _Wsyn, _Nw, _N, n, 0); else - makehanning( _Hwin, _Wanal, _Wsyn, _Nw, _N, _D, 0,0); + makehanning( _Hwin, _Wanal, _Wsyn, _Nw, _N, n, 0,0); } void fftease::Clear() diff --git a/externals/grill/fftease/src/main.cpp b/externals/grill/fftease/src/main.cpp index 3ce33e8f..75bea448 100644 --- a/externals/grill/fftease/src/main.cpp +++ b/externals/grill/fftease/src/main.cpp @@ -20,7 +20,7 @@ static V fftease_main() post("FFTease - A set of Live Spectral Processors"); post("Originally written by Eric Lyon and Christopher Penrose for MAX/MSP"); post(""); - post("flext port (version " FFTEASE_VERSION ") provided by Thomas Grill, (C)2003"); + post("flext port (version " FFTEASE_VERSION ") provided by Thomas Grill, (C)2003-2004"); post("-------------------------------------------------------------------"); post(""); @@ -44,23 +44,6 @@ static V fftease_main() FLEXT_DSP_SETUP(pvoc); */ - -#if FLEXT_SYS == FLEXT_SYS_MAX - finder_addclass((C *)"FFTease",(C *)"burrow~"); - finder_addclass((C *)"FFTease",(C *)"cross~"); - finder_addclass((C *)"FFTease",(C *)"dentist~"); - finder_addclass((C *)"FFTease",(C *)"disarray~"); - finder_addclass((C *)"FFTease",(C *)"drown~"); - finder_addclass((C *)"FFTease",(C *)"ether~"); - finder_addclass((C *)"FFTease",(C *)"morphine~"); - finder_addclass((C *)"FFTease",(C *)"scrape~"); - finder_addclass((C *)"FFTease",(C *)"shapee~"); - finder_addclass((C *)"FFTease",(C *)"swinger~"); - finder_addclass((C *)"FFTease",(C *)"taint~"); - finder_addclass((C *)"FFTease",(C *)"thresher~"); - finder_addclass((C *)"FFTease",(C *)"vacancy~"); - finder_addclass((C *)"FFTease",(C *)"xsyn~"); -#endif } // setup the library diff --git a/externals/grill/fftease/src/thresher~.cpp b/externals/grill/fftease/src/thresher~.cpp index 29b042be..f8d16ab0 100644 --- a/externals/grill/fftease/src/thresher~.cpp +++ b/externals/grill/fftease/src/thresher~.cpp @@ -49,8 +49,8 @@ void thresher::Set() { fftease::Set(); - const F _R = Samplerate(); - const I _D = Blocksize(),_N = get_N(),_N2 = _N/2; + const F rate = Samplerate(); + const I n = Blocksize(),_N = get_N(),_N2 = _N/2; _compositeFrame = new F[_N+2]; _framesLeft = new I[_N2+1]; @@ -58,7 +58,7 @@ void thresher::Set() _firstFrame = true; _moveThreshold = .00001 ; F _maxHoldTime = 5.0 ; - _maxHoldFrames = (I)(_maxHoldTime *_R/_D); + _maxHoldFrames = (I)(_maxHoldTime *rate/n); } void thresher::Clear() diff --git a/externals/grill/vst/config-pd-msvc.txt b/externals/grill/vst/config-pd-msvc.txt index ebd41e4b..61c8abb9 100644 --- a/externals/grill/vst/config-pd-msvc.txt +++ b/externals/grill/vst/config-pd-msvc.txt @@ -17,6 +17,8 @@ FLEXTPATH=$(PDPATH)\flext # (only necessary if not run from within the build environment) # MSVCPATH=c:\programme\prog\microsoft visual studio\VC98 +# where is the VST SDK? +VSTSDK=F:\prog\audio\vstsdk2.3 # where should the external be built? OUTPATH=pd-msvc diff --git a/externals/grill/vst/makefile.pd-msvc b/externals/grill/vst/makefile.pd-msvc index aaddf3e2..c28151fd 100644 --- a/externals/grill/vst/makefile.pd-msvc +++ b/externals/grill/vst/makefile.pd-msvc @@ -15,7 +15,7 @@ !include config-pd-msvc.txt # includes -INCPATH=/I"$(MSVCPATH)\include" /I"$(PDPATH)\src" /I"$(FLEXTPATH)" +INCPATH=/I"$(MSVCPATH)\include" /I"$(PDPATH)\src" /I"$(FLEXTPATH)" /I"$(VSTSDK)\source\common" LIBPATH=/LIBPATH:"$(PDPATH)\bin" /LIBPATH:"$(FLEXTPATH)" /LIBPATH:"$(MSVCPATH)\lib" LIBS=pd.lib pthreadVC.lib user32.lib flext_t-pdwin.lib diff --git a/externals/grill/vst/pd/vst~.pd b/externals/grill/vst/pd/vst~.pd index 752a16fd..b8837589 100644 --- a/externals/grill/vst/pd/vst~.pd +++ b/externals/grill/vst/pd/vst~.pd @@ -1,14 +1,14 @@ -#N canvas 123 23 866 651 12; +#N canvas 123 23 868 653 12; #X obj 26 190 dac~; #X obj 26 94 noise~; #X obj 444 172 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -225271 -1 -1 0 1; #X msg 441 189 param 2 \$1; #X obj 133 191 print A; -#X obj 27 451 tgl 15 0 empty empty empty 0 -6 0 8 -225271 -1 -1 1 1 +#X obj 27 451 tgl 15 0 empty empty empty 0 -6 0 8 -225271 -1 -1 0 1 ; #X msg 26 473 vis \$1; -#X obj 27 367 tgl 15 0 empty empty empty 0 -6 0 8 -225271 -1 -1 1 1 +#X obj 27 367 tgl 15 0 empty empty empty 0 -6 0 8 -225271 -1 -1 0 1 ; #X msg 26 389 edit \$1; #X msg 94 389 getedit; diff --git a/externals/grill/vst/readme.txt b/externals/grill/vst/readme.txt index c33c56e3..20c0107c 100644 --- a/externals/grill/vst/readme.txt +++ b/externals/grill/vst/readme.txt @@ -60,6 +60,6 @@ features: - include necessary Steinberg license stuff BUGS: -- strange: GRM reson stutters when GUI is edited with the mouse (mousedown) - -> plug sends (a lot of) idle messages - -> no stuttering when a message is posted to the console... ähem +- Quadrafuzz crashes on closing editor window +- Waveshell crashes on load + diff --git a/externals/grill/vst/src/EditorWin.cpp b/externals/grill/vst/src/EditorWin.cpp index 5418ba80..9a79c391 100644 --- a/externals/grill/vst/src/EditorWin.cpp +++ b/externals/grill/vst/src/EditorWin.cpp @@ -11,17 +11,18 @@ WARRANTIES, see the file, "license.txt," in this distribution. #include "VstHost.h" #include +#include + #if FLEXT_OS == FLEXT_OS_WIN // only Windows code is situated in this file #include -#include - typedef std::map WndMap; static WndMap wndmap; static flext::ThrMutex mapmutex; +#define TIMER_INTERVAL 25 #define WCLNAME "vst~-class" @@ -118,16 +119,27 @@ static void threadfun(flext::thr_params *p) // plug->Dispatch(effEditTop,0,0, 0,0.0f); // printf("Dispatched to the top\n"); - SetTimer(wnd,0,25,NULL); + SetTimer(wnd,0,TIMER_INTERVAL,NULL); + + WINDOWINFO winfo; + winfo.cbSize = sizeof(winfo); + GetWindowInfo(wnd,&winfo); + TITLEBARINFO tinfo; + tinfo.cbSize = sizeof(tinfo); + GetTitleBarInfo(wnd,&tinfo); ERect r; plug->GetEditorRect(r); -// SetWindowPos(wnd,HWND_TOP,plug->getX(),plug->getY(),(r.right - r.left) + 6 , r.bottom - r.top + 26 , SWP_SHOWWINDOW); - SetWindowPos(wnd,HWND_TOP,r.left,r.top,(r.right - r.left) + 6 , r.bottom - r.top + 26 , SWP_SHOWWINDOW); - - // ShowWindow( SW_SHOW ); - // BringWindowToTop(wnd); - // SetFocus(); + SetWindowPos(wnd,HWND_TOP, + r.left, + r.top, + (r.right-r.left)+winfo.cxWindowBorders*2, + (r.bottom-r.top)+(tinfo.rcTitleBar.bottom-tinfo.rcTitleBar.top)+winfo.cyWindowBorders*2, + SWP_SHOWWINDOW + ); + + + // SetFocus(); // Message pump MSG msg; diff --git a/externals/grill/vst/src/VstHost.cpp b/externals/grill/vst/src/VstHost.cpp index 75cd3d35..826827f6 100644 --- a/externals/grill/vst/src/VstHost.cpp +++ b/externals/grill/vst/src/VstHost.cpp @@ -15,7 +15,7 @@ using namespace std; static VstTimeInfo _timeInfo; -typedef AEffect *(*PVSTMAIN)(audioMasterCallback audioMaster); +typedef AEffect *(VSTCALLBACK *PVSTMAIN)(audioMasterCallback audioMaster); VSTPlugin::VSTPlugin(): @@ -55,12 +55,28 @@ int VSTPlugin::Instance(const char *dllname) //init plugin _pEffect->user = this; - FLEXT_ASSERT(Dispatch( effOpen )); -// Dispatch( effMainsChanged, 0, 1); + + long ret = Dispatch( effOpen ); + FLEXT_ASSERT(!ret); + + ret = Dispatch( effIdentify); + FLEXT_ASSERT(ret == 'NvEf'); if (!Dispatch( effGetProductString, 0, 0, &_sProductName, 0.0f)) { + // no product name given by plugin -> extract it from the filename + string str1(dllname); - string str2 = str1.substr(str1.rfind('\\')+1); + string::size_type slpos = str1.rfind('\\'); + if(slpos == string::npos) { + slpos = str1.rfind('/'); + if(slpos == string::npos) + slpos = 0; + else + ++slpos; + } + else + ++slpos; + string str2 = str1.substr(slpos); int snip = str2.find('.'); if( snip != string::npos ) str1 = str2.substr(0,snip); @@ -73,7 +89,12 @@ int VSTPlugin::Instance(const char *dllname) strcpy(_sVendorName, "Unknown vendor"); _sDllName = dllname; - + +/* + Dispatch( effMainsChanged, 0, 1); + Dispatch( effSetSampleRate, 0, 0,NULL,44100.); + Dispatch( effSetBlockSize, 0, 64); +*/ return VSTINSTANCE_NO_ERROR; } @@ -324,10 +345,23 @@ void VSTPlugin::process( float **inputs, float **outputs, long sampleframes ) long VSTPlugin::Master(AEffect *effect, long opcode, long index, long value, void *ptr, float opt) { switch (opcode) { - case audioMasterVersion: + case audioMasterAutomate: // 0 + // index, value given + //! \todo set effect parameter + return 0; + case audioMasterVersion: // 1 return 2; - case audioMasterCurrentId: - return 'AASH'; + case audioMasterCurrentId: // 2 + return 0; + case audioMasterIdle: // 3 +// effect->dispatcher(effect, effEditIdle, 0, 0, NULL, 0.0f); + return 0; + case audioMasterPinConnected: // 4 + //! \todo set connection state correctly (if possible..) + // index=pin, value=0..input, else..output + return 0; // 0 means connected + case audioMasterGetTime: // 7 + return 0; // not supported default: #ifdef FLEXT_DEBUG post("VST -> host: Eff = 0x%.8X, Opcode = %d, Index = %d, Value = %d, PTR = %.8X, OPT = %.3f\n",(int)effect, opcode,index,value,(int)ptr,opt); diff --git a/externals/grill/vst/src/VstHost.h b/externals/grill/vst/src/VstHost.h index 6b856956..397501c5 100644 --- a/externals/grill/vst/src/VstHost.h +++ b/externals/grill/vst/src/VstHost.h @@ -116,7 +116,7 @@ public: return Is()?_pEffect->dispatcher(_pEffect, opCode, index, value, ptr, opt):0; } - static long Master(AEffect *effect, long opcode, long index, long value, void *ptr, float opt); + static long VSTCALLBACK Master(AEffect *effect, long opcode, long index, long value, void *ptr, float opt); void SetPos(int x,int y,bool upd = true); void SetX(int x,bool upd = true) { SetPos(x,posy,upd); } diff --git a/externals/grill/vst/src/main.cpp b/externals/grill/vst/src/main.cpp index 76de5c27..54450c77 100644 --- a/externals/grill/vst/src/main.cpp +++ b/externals/grill/vst/src/main.cpp @@ -20,7 +20,7 @@ WARRANTIES, see the file, "license.txt," in this distribution. using namespace std; -#define VST_VERSION "0.1.0pre10" +#define VST_VERSION "0.1.0pre11" class vst: diff --git a/externals/grill/vst/vst.vcproj b/externals/grill/vst/vst.vcproj index f67fca04..87e92483 100644 --- a/externals/grill/vst/vst.vcproj +++ b/externals/grill/vst/vst.vcproj @@ -176,7 +176,7 @@ OutputFile="$(outdir)/vst~.dll" LinkIncremental="1" SuppressStartupBanner="TRUE" - AdditionalLibraryDirectories="f:\prog\pd\pd-cvs\bin;f:\prog\packs\pthreads" + AdditionalLibraryDirectories="f:\prog\pd\pd-cvs\bin,f:\prog\packs\pthreads" ProgramDatabaseFile=".\pd-msvc/r/vst~.pdb" OptimizeReferences="2" ImportLibrary=".\pd-msvc/r/vst~.lib" @@ -218,108 +218,28 @@ Name="vst" Filter=""> + RelativePath="..\..\audio\vstsdk2.3\source\common\AEffect.h"> + RelativePath="..\..\audio\vstsdk2.3\source\common\aeffectx.h"> + RelativePath="..\..\audio\vstsdk2.3\source\common\AEffEditor.hpp"> + RelativePath="..\..\audio\vstsdk2.3\source\common\AudioEffect.hpp"> + RelativePath="..\..\audio\vstsdk2.3\source\common\audioeffectx.h"> - - - - - - - - - - - + RelativePath="..\..\audio\vstsdk2.3\source\common\vstcontrols.h"> - - - - - - - - - + RelativePath="..\..\audio\vstsdk2.3\source\common\vstfxstore.h"> - - - - - - - - - + RelativePath="..\..\audio\vstsdk2.3\source\common\vstgui.h">