diff --git a/README.md b/README.md index 8a8caf83..31e866d9 100644 --- a/README.md +++ b/README.md @@ -17,14 +17,14 @@ Tested in - Eureka (my own work-in-progress VST host) - Cockos Reaper - Propellerhead Reason 10 - - according to users: works in Cubase + - Steinberg Cubase Pro 9.5.30 - according to users: works in Bitwig # Downloads The current release can be found in the [vst2_bin/](vst2_bin/) folder. -Here's a snapshot of it: [veeseevstrack_0_6_1_win64_bin-13Jul2018.7z](dist/veeseevstrack_0_6_1_win64_bin-13Jul2018.7z) (64bit) +Here's a snapshot of it: [veeseevstrack_0_6_1_win64_bin-26Jul2018.7z](dist/veeseevstrack_0_6_1_win64_bin-26Jul2018.7z) (64bit) **WARNING: DON'T TRY TO USE THE INSTRUMENT AND EFFECT PLUGINS IN THE SAME PROJECT OR YOUR DAW WILL CRASH.** diff --git a/src/vst2_main.cpp b/src/vst2_main.cpp index 10d8e19c..c589d2c3 100644 --- a/src/vst2_main.cpp +++ b/src/vst2_main.cpp @@ -17,6 +17,7 @@ /// /// created: 25Jun2018 /// changed: 26Jun2018, 27Jun2018, 29Jun2018, 01Jul2018, 02Jul2018, 06Jul2018, 13Jul2018 +/// 26Jul2018 /// /// /// @@ -376,6 +377,7 @@ const VstInt32 PLUGIN_VERSION = 1000; * be accessed when the host calls the plugin back (for example in `processDoubleReplacing`). */ class VSTPluginWrapper { +public: static const uint32_t MIN_SAMPLE_RATE = 8192u; // (note) cannot be float in C++ static const uint32_t MAX_SAMPLE_RATE = 384000u; static const uint32_t MIN_BLOCK_SIZE = 64u; @@ -434,6 +436,8 @@ public: volatile bool b_ret; } queued_load_patch; + sF32 tmp_input_buffers[NUM_INPUTS * MAX_BLOCK_SIZE]; + public: VSTPluginWrapper(VSTHostCallback vstHostCallback, VstInt32 vendorUniqueID, @@ -994,10 +998,13 @@ void VSTPluginWrapper::stopUIThread(void) { * @param sampleFrames the number of samples (second dimension in both arrays) */ void VSTPluginProcessReplacingFloat32(VSTPlugin *vstPlugin, - float **inputs, + float **_inputs, float **outputs, VstInt32 sampleFrames ) { + if(sUI(sampleFrames) > VSTPluginWrapper::MAX_BLOCK_SIZE) + return; // should not be reachable + // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); // printf("xxx vstrack_plugin: VSTPluginProcessReplacingFloat32: ENTER\n"); @@ -1016,16 +1023,23 @@ void VSTPluginProcessReplacingFloat32(VSTPlugin *vstPlugin, sUI chIdx; sUI i; + + // (note) Cubase (tested with 9.5.30) uses the same buffer(s) for both input&output + // => back up the inputs before clearing the outputs + sF32 *inputs[NUM_INPUTS]; sUI k = 0u; + for(chIdx = 0u; chIdx < NUM_INPUTS; chIdx++) + { + inputs[chIdx] = &wrapper->tmp_input_buffers[k]; + ::memcpy((void*)inputs[chIdx], _inputs[chIdx], sizeof(sF32)*sampleFrames); + k += sampleFrames; + } // Clear output buffers // (note) AudioInterface instances accumulate samples in the output buffer - for(i = 0u; i < uint32_t(sampleFrames); i++) + for(chIdx = 0u; chIdx < NUM_OUTPUTS; chIdx++) { - for(chIdx = 0u; chIdx < NUM_OUTPUTS; chIdx++) - { - outputs[chIdx][i] = 0.0f; - } + ::memset((void*)outputs[chIdx], 0, sizeof(sF32)*sampleFrames); } if(1 && wrapper->b_processing) @@ -1640,32 +1654,23 @@ void vst2_maximize_reparented_window(void) { VST_EXPORT VSTPlugin *VSTPluginMain(VSTHostCallback vstHostCallback) { printf("vstrack_plugin: called VSTPluginMain... \n"); - // // if(0 == VSTPluginWrapper::instance_count) - { - // simply create our plugin C++ class - VSTPluginWrapper *plugin = - new VSTPluginWrapper(vstHostCallback, - // registered with Steinberg (http://service.steinberg.de/databases/plugin.nsf/plugIn?openForm) + // simply create our plugin C++ class + VSTPluginWrapper *plugin = + new VSTPluginWrapper(vstHostCallback, + // registered with Steinberg (http://service.steinberg.de/databases/plugin.nsf/plugIn?openForm) #ifdef VST2_EFFECT - CCONST('g', 'v', 'g', 'y'), + CCONST('g', 'v', 'g', 'y'), #else - CCONST('v', '5', 'k', 'v'), + CCONST('v', '5', 'k', 'v'), #endif - PLUGIN_VERSION, // version - VST2_MAX_UNIQUE_PARAM_IDS, // num params - 0, // no programs - NUM_INPUTS, - NUM_OUTPUTS - ); - - // return the plugin per the contract of the API - return plugin->getVSTPlugin(); - } - // // else - // // { - // // // Can only instantiate once - // // // (global/static vars in VCV rack) - // // return NULL; - // // } + PLUGIN_VERSION, // version + VST2_MAX_UNIQUE_PARAM_IDS, // num params + 0, // no programs + NUM_INPUTS, + NUM_OUTPUTS + ); + + // return the plugin per the contract of the API + return plugin->getVSTPlugin(); } #endif // USE_VST2 diff --git a/vst2_bin/CHANGELOG_VST.txt b/vst2_bin/CHANGELOG_VST.txt index 7126bbff..d997fa12 100644 --- a/vst2_bin/CHANGELOG_VST.txt +++ b/vst2_bin/CHANGELOG_VST.txt @@ -1,3 +1,7 @@ +** July 26th, 2018 +- fix effect processing in Cubase 9.5.30 + + ** July 13th, 2018 - add support for dynamically loaded plugins ("plugin.dll") - add module Template_shared.MyModule diff --git a/vst2_bin/README_vst2.txt b/vst2_bin/README_vst2.txt index 885242ba..bffd35a6 100644 --- a/vst2_bin/README_vst2.txt +++ b/vst2_bin/README_vst2.txt @@ -1,4 +1,4 @@ -VeeSeeVST Rack VST 2.4 Plugin -- July 12th, 2018 +VeeSeeVST Rack VST 2.4 Plugin -- July 26th, 2018 ================================================ !!!------------------------------------------------------------------------------ diff --git a/vst2_bin/log.txt b/vst2_bin/log.txt index ff18800f..4e1e2d1e 100644 --- a/vst2_bin/log.txt +++ b/vst2_bin/log.txt @@ -5,7 +5,7 @@ [0.000 info src/plugin.cpp:673] vcvrack: Loaded static plugin AS 0.6.1 [0.000 info src/plugin.cpp:673] vcvrack: Loaded static plugin AudibleInstruments 0.6.1 [0.000 info src/plugin.cpp:673] vcvrack: Loaded static plugin BaconMusic 0.6.1 -[0.000 info src/plugin.cpp:673] vcvrack: Loaded static plugin Befaco 0.6.1 +[0.001 info src/plugin.cpp:673] vcvrack: Loaded static plugin Befaco 0.6.1 [0.001 info src/plugin.cpp:673] vcvrack: Loaded static plugin Bidoo 0.6.1 [0.001 info src/plugin.cpp:673] vcvrack: Loaded static plugin Bogaudio 0.6.1 [0.001 info src/plugin.cpp:673] vcvrack: Loaded static plugin cf 0.6.1 @@ -14,97 +14,100 @@ [0.001 info src/plugin.cpp:673] vcvrack: Loaded static plugin ErraticInstruments 0.6.1 [0.001 info src/plugin.cpp:673] vcvrack: Loaded static plugin ESeries 0.6.1 [0.001 info src/plugin.cpp:673] vcvrack: Loaded static plugin FrozenWasteland 0.6.1 -[0.002 info src/plugin.cpp:673] vcvrack: Loaded static plugin Fundamental 0.6.1 -[0.002 info src/plugin.cpp:673] vcvrack: Loaded static plugin Gratrix 0.6.1 -[0.002 info src/plugin.cpp:673] vcvrack: Loaded static plugin HetrickCV 0.6.1 -[0.002 info src/plugin.cpp:673] vcvrack: Loaded static plugin huaba 0.6.1 -[0.002 info src/plugin.cpp:673] vcvrack: Loaded static plugin JW-Modules 0.6.1 -[0.002 info src/plugin.cpp:673] vcvrack: Loaded static plugin Koralfx-Modules 0.6.1 -[0.002 info src/plugin.cpp:673] vcvrack: Loaded static plugin LindenbergResearch 0.6.1 -[0.002 info src/plugin.cpp:673] vcvrack: Loaded static plugin LOGinstruments 0.6.1 -[0.003 info src/plugin.cpp:673] vcvrack: Loaded static plugin ML_modules 0.6.1 -[0.003 info src/plugin.cpp:673] vcvrack: Loaded static plugin moDllz 0.6.1 -[0.003 info src/plugin.cpp:673] vcvrack: Loaded static plugin modular80 0.6.1 -[0.003 info src/plugin.cpp:673] vcvrack: Loaded static plugin mscHack 0.6.1 -[0.003 info src/plugin.cpp:673] vcvrack: Loaded static plugin mtsch-plugins 0.6.1 -[0.003 info src/plugin.cpp:673] vcvrack: Loaded static plugin NauModular 0.6.1 -[0.003 info src/plugin.cpp:673] vcvrack: Loaded static plugin Ohmer 0.6.1 -[0.003 info src/plugin.cpp:673] vcvrack: Loaded static plugin Qwelk 0.6.1 -[0.003 info src/plugin.cpp:673] vcvrack: Loaded static plugin RJModules 0.6.1 -[0.004 info src/plugin.cpp:673] vcvrack: Loaded static plugin SerialRacker 0.6.1 -[0.004 info src/plugin.cpp:673] vcvrack: Loaded static plugin SonusModular 0.6.1 -[0.004 info src/plugin.cpp:673] vcvrack: Loaded static plugin Southpole-parasites 0.6.1 -[0.004 info src/plugin.cpp:673] vcvrack: Loaded static plugin squinkylabs-plug1 0.6.1 -[0.004 info src/plugin.cpp:673] vcvrack: Loaded static plugin SubmarineFree 0.6.1 -[0.004 info src/plugin.cpp:673] vcvrack: Loaded static plugin Template 0.6.1 -[0.004 info src/plugin.cpp:673] vcvrack: Loaded static plugin trowaSoft 0.6.1 -[0.004 info src/plugin.cpp:673] vcvrack: Loaded static plugin unless_modules 0.6.1 -[0.004 info src/plugin.cpp:673] vcvrack: Loaded static plugin Valley 0.6.1 -[0.005 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Alikins/plugin.dll does not exist -[0.005 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/AS/plugin.dll does not exist -[0.005 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/AudibleInstruments/plugin.dll does not exist -[0.005 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/BaconMusic/plugin.dll does not exist -[0.005 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Befaco/plugin.dll does not exist -[0.005 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Bidoo/plugin.dll does not exist -[0.006 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Bogaudio/plugin.dll does not exist -[0.006 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/BOKONTEPByteBeatMachine/plugin.dll does not exist -[0.006 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/cf/plugin.dll does not exist -[0.006 info src/plugin.cpp:155] Loaded plugin dBiz 0.6.1 from f:\git\VeeSeeVSTRack\vst2_bin\/plugins/dBiz/plugin.dll -[0.006 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/DHE-Modules/plugin.dll does not exist -[0.006 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/DrumKit/plugin.dll does not exist -[0.007 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/ErraticInstruments/plugin.dll does not exist -[0.007 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/ESeries/plugin.dll does not exist -[0.007 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/FrozenWasteland/plugin.dll does not exist -[0.007 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Fundamental/plugin.dll does not exist -[0.007 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Gratrix/plugin.dll does not exist -[0.007 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/HetrickCV/plugin.dll does not exist -[0.007 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/huaba/plugin.dll does not exist -[0.008 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/JW-Modules/plugin.dll does not exist -[0.008 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Koralfx-Modules/plugin.dll does not exist -[0.008 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/LindenbergResearch/plugin.dll does not exist -[0.008 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/LOGinstruments/plugin.dll does not exist -[0.008 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/ML_modules/plugin.dll does not exist -[0.008 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/moDllz/plugin.dll does not exist -[0.008 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/modular80/plugin.dll does not exist -[0.008 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/mscHack/plugin.dll does not exist -[0.009 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/mtsch-plugins/plugin.dll does not exist -[0.009 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/NauModular/plugin.dll does not exist -[0.009 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Ohmer/plugin.dll does not exist -[0.009 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Qwelk/plugin.dll does not exist -[0.009 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/RJModules/plugin.dll does not exist -[0.009 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/SerialRacker/plugin.dll does not exist -[0.009 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/SonusModular/plugin.dll does not exist -[0.010 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Southpole-parasites/plugin.dll does not exist -[0.010 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/squinkylabs-plug1/plugin.dll does not exist -[0.010 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/SubmarineFree/plugin.dll does not exist -[0.010 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Template/plugin.dll does not exist -[0.010 info src/plugin.cpp:155] Loaded plugin Template_shared 0.6.1 from f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Template_shared/plugin.dll -[0.010 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/trowaSoft/plugin.dll does not exist -[0.010 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/unless_modules/plugin.dll does not exist -[0.011 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Valley/plugin.dll does not exist -[0.011 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_146097_cc.svg -[0.011 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_31859_cc.svg -[0.011 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1343816_cc.svg -[0.011 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1343811_cc.svg -[0.012 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1084369_cc.svg -[0.012 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1745061_cc.svg -[0.012 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1240789_cc.svg -[0.012 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_305536_cc.svg -[0.012 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_468341_cc.svg -[0.171 info src/window.cpp:711] Loaded font f:\git\VeeSeeVSTRack\vst2_bin\/res/fonts/DejaVuSans.ttf -[0.173 info src/settings.cpp:185] Loading settings f:\git\VeeSeeVSTRack\vst2_bin\/settings.json -[0.274 info src/app/RackWidget.cpp:196] Loading patch from string -[0.276 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/Core/AudioInterface.svg -[0.276 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/ScrewSilver.svg -[0.277 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/PJ301M.svg -[0.277 info src/window.cpp:711] Loaded font f:\git\VeeSeeVSTRack\vst2_bin\/res/fonts/ShareTechMono-Regular.ttf -[0.279 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/Core/MIDIToCVInterface.svg -[0.280 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Fundamental/res/VCA.svg -[0.280 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/RoundLargeBlackKnob.svg -[0.282 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Fundamental/res/VCF.svg -[0.282 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/RoundHugeBlackKnob.svg -[0.284 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/ADSR.svg -[0.284 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/as-hexscrew.svg -[0.285 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/as-SlidePot.svg -[0.285 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/as-SlidePotHandle.svg -[0.285 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/as-PJ301M.svg +[0.001 info src/plugin.cpp:673] vcvrack: Loaded static plugin Fundamental 0.6.1 +[0.001 info src/plugin.cpp:673] vcvrack: Loaded static plugin Gratrix 0.6.1 +[0.001 info src/plugin.cpp:673] vcvrack: Loaded static plugin HetrickCV 0.6.1 +[0.001 info src/plugin.cpp:673] vcvrack: Loaded static plugin huaba 0.6.1 +[0.001 info src/plugin.cpp:673] vcvrack: Loaded static plugin JW-Modules 0.6.1 +[0.001 info src/plugin.cpp:673] vcvrack: Loaded static plugin Koralfx-Modules 0.6.1 +[0.001 info src/plugin.cpp:673] vcvrack: Loaded static plugin LindenbergResearch 0.6.1 +[0.001 info src/plugin.cpp:673] vcvrack: Loaded static plugin LOGinstruments 0.6.1 +[0.001 info src/plugin.cpp:673] vcvrack: Loaded static plugin ML_modules 0.6.1 +[0.001 info src/plugin.cpp:673] vcvrack: Loaded static plugin moDllz 0.6.1 +[0.001 info src/plugin.cpp:673] vcvrack: Loaded static plugin modular80 0.6.1 +[0.001 info src/plugin.cpp:673] vcvrack: Loaded static plugin mscHack 0.6.1 +[0.001 info src/plugin.cpp:673] vcvrack: Loaded static plugin mtsch-plugins 0.6.1 +[0.001 info src/plugin.cpp:673] vcvrack: Loaded static plugin NauModular 0.6.1 +[0.002 info src/plugin.cpp:673] vcvrack: Loaded static plugin Ohmer 0.6.1 +[0.002 info src/plugin.cpp:673] vcvrack: Loaded static plugin Qwelk 0.6.1 +[0.002 info src/plugin.cpp:673] vcvrack: Loaded static plugin RJModules 0.6.1 +[0.002 info src/plugin.cpp:673] vcvrack: Loaded static plugin SerialRacker 0.6.1 +[0.002 info src/plugin.cpp:673] vcvrack: Loaded static plugin SonusModular 0.6.1 +[0.002 info src/plugin.cpp:673] vcvrack: Loaded static plugin Southpole-parasites 0.6.1 +[0.002 info src/plugin.cpp:673] vcvrack: Loaded static plugin squinkylabs-plug1 0.6.1 +[0.002 info src/plugin.cpp:673] vcvrack: Loaded static plugin SubmarineFree 0.6.1 +[0.002 info src/plugin.cpp:673] vcvrack: Loaded static plugin Template 0.6.1 +[0.002 info src/plugin.cpp:673] vcvrack: Loaded static plugin trowaSoft 0.6.1 +[0.002 info src/plugin.cpp:673] vcvrack: Loaded static plugin unless_modules 0.6.1 +[0.002 info src/plugin.cpp:673] vcvrack: Loaded static plugin Valley 0.6.1 +[0.002 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Alikins/plugin.dll does not exist +[0.002 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/AS/plugin.dll does not exist +[0.002 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/AudibleInstruments/plugin.dll does not exist +[0.002 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/BaconMusic/plugin.dll does not exist +[0.002 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Befaco/plugin.dll does not exist +[0.002 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Bidoo/plugin.dll does not exist +[0.002 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Bogaudio/plugin.dll does not exist +[0.002 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/BOKONTEPByteBeatMachine/plugin.dll does not exist +[0.002 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/cf/plugin.dll does not exist +[0.002 info src/plugin.cpp:155] Loaded plugin dBiz 0.6.1 from f:\git\VeeSeeVSTRack\vst2_bin\/plugins/dBiz/plugin.dll +[0.002 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/DHE-Modules/plugin.dll does not exist +[0.002 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/DrumKit/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/ErraticInstruments/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/ESeries/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/FrozenWasteland/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Fundamental/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Gratrix/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/HetrickCV/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/huaba/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/JW-Modules/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Koralfx-Modules/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/LindenbergResearch/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/LOGinstruments/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/ML_modules/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/moDllz/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/modular80/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/mscHack/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/mtsch-plugins/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/NauModular/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Ohmer/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Qwelk/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/RJModules/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/SerialRacker/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/SonusModular/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Southpole-parasites/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/squinkylabs-plug1/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/SubmarineFree/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Template/plugin.dll does not exist +[0.003 info src/plugin.cpp:155] Loaded plugin Template_shared 0.6.1 from f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Template_shared/plugin.dll +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/trowaSoft/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/unless_modules/plugin.dll does not exist +[0.003 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Valley/plugin.dll does not exist +[0.003 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_146097_cc.svg +[0.003 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_31859_cc.svg +[0.004 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1343816_cc.svg +[0.004 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1343811_cc.svg +[0.004 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1084369_cc.svg +[0.004 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1745061_cc.svg +[0.004 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1240789_cc.svg +[0.004 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_305536_cc.svg +[0.004 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_468341_cc.svg +[0.186 info src/window.cpp:711] Loaded font f:\git\VeeSeeVSTRack\vst2_bin\/res/fonts/DejaVuSans.ttf +[0.187 info src/settings.cpp:185] Loading settings f:\git\VeeSeeVSTRack\vst2_bin\/settings.json +[0.191 info src/app/RackWidget.cpp:158] Saving patch to string +[0.288 info src/app/RackWidget.cpp:196] Loading patch from string +[0.290 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/Core/MIDIToCVInterface.svg +[0.290 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/ScrewSilver.svg +[0.290 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/PJ301M.svg +[0.290 info src/window.cpp:711] Loaded font f:\git\VeeSeeVSTRack\vst2_bin\/res/fonts/ShareTechMono-Regular.ttf +[0.291 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Fundamental/res/ADSR.svg +[0.291 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/RoundLargeBlackKnob.svg +[0.292 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Fundamental/res/VCO-1.svg +[0.292 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/CKSS_0.svg +[0.292 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/CKSS_1.svg +[0.292 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/RoundHugeBlackKnob.svg +[0.293 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Fundamental/res/VCA.svg +[0.294 info src/window.cpp:764] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/Core/AudioInterface.svg +[61.404 info src/app/RackWidget.cpp:158] Saving patch to string +[62.652 info src/app/RackWidget.cpp:158] Saving patch to string +[65.283 info src/app/RackWidget.cpp:158] Saving patch to string +[72.333 info src/app/RackWidget.cpp:158] Saving patch to string diff --git a/vst2_bin/veeseevstrack_instr.dll__ b/vst2_bin/veeseevstrack_instr.dll__ index ec5d3e64..af5f7f9a 100644 Binary files a/vst2_bin/veeseevstrack_instr.dll__ and b/vst2_bin/veeseevstrack_instr.dll__ differ