diff --git a/src/app/RackWidget.cpp b/src/app/RackWidget.cpp index 96c07b84..e40e35dd 100644 --- a/src/app/RackWidget.cpp +++ b/src/app/RackWidget.cpp @@ -16,8 +16,8 @@ extern void vst2_set_shared_plugin_tls_globals(void); #ifdef RACK_HOST -extern void vst2_oversample_set (float _factor, int _quality); -extern void vst2_oversample_get (float *_factor, int *_quality); +extern void vst2_oversample_realtime_set (float _factor, int _quality); +extern void vst2_oversample_realtime_get (float *_factor, int *_quality); extern void vst2_oversample_channels_set (int _numIn, int _numOut); extern void vst2_oversample_channels_get (int *_numIn, int *_numOut); #endif // RACK_HOST @@ -264,7 +264,7 @@ json_t *RackWidget::toJson() { { float oversampleFactor; int oversampleQuality; - vst2_oversample_get(&oversampleFactor, &oversampleQuality); + vst2_oversample_realtime_get(&oversampleFactor, &oversampleQuality); // Oversample factor { @@ -391,7 +391,7 @@ void RackWidget::fromJson(json_t *rootJ) { } } - vst2_oversample_set(oversampleFactor, oversampleQuality); + vst2_oversample_realtime_set(oversampleFactor, oversampleQuality); // Oversample channel limit int oversampleNumIn = -1; diff --git a/src/app/Toolbar.cpp b/src/app/Toolbar.cpp index 32563f9b..abee9062 100644 --- a/src/app/Toolbar.cpp +++ b/src/app/Toolbar.cpp @@ -8,8 +8,8 @@ #ifdef RACK_HOST #define Dfltequal(a, b) ( (((a)-(b)) < 0.0f) ? (((a)-(b)) > -0.0001f) : (((a)-(b)) < 0.0001f) ) -extern void vst2_oversample_set (float _factor, int _quality); -extern void vst2_oversample_get (float *_factor, int *_quality); +extern void vst2_oversample_realtime_set (float _factor, int _quality); +extern void vst2_oversample_realtime_get (float *_factor, int *_quality); extern void vst2_oversample_channels_set (int _numIn, int _numOut); extern void vst2_oversample_channels_get (int *_numIn, int *_numOut); #endif // RACK_HOST @@ -166,7 +166,7 @@ struct OversampleItem : MenuItem { const OversampleSetting *setting; void onAction(EventAction &e) override { - vst2_oversample_set(setting->factor, setting->quality); + vst2_oversample_realtime_set(setting->factor, setting->quality); global->gPaused = false; } }; @@ -236,7 +236,7 @@ struct SampleRateButton : TooltipIconButton { { float factor; int quality; - vst2_oversample_get(&factor, &quality); + vst2_oversample_realtime_get(&factor, &quality); for(unsigned int overIdx = 0u; overIdx < NUM_OVERSAMPLE_SETTINGS; overIdx++) { diff --git a/src/settings.cpp b/src/settings.cpp index 0766754a..fd0e20bb 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -13,7 +13,9 @@ extern void vst2_window_size_set (int _width, int _height); extern void vst2_refresh_rate_set (float _hz); #ifdef RACK_HOST -extern void vst2_oversample_set (float _factor, int _quality); +extern void vst2_oversample_realtime_set (float _factor, int _quality); +extern void vst2_oversample_offline_set (float _factor, int _quality); +extern void vst2_oversample_offline_check_set (int _bEnable); extern void vst2_oversample_channels_set (int _numIn, int _numOut); #endif // RACK_HOST @@ -197,27 +199,59 @@ static void settingsFromJson(json_t *rootJ, bool bWindowSizeOnly) { #endif // USE_VST2 #ifdef RACK_HOST - // Oversample factor and quality - float oversampleFactor = -1.0f; - int oversampleQuality = -1; - - // Oversample factor + // Realtime Oversample factor and quality { - json_t *oversampleJ = json_object_get(rootJ, "oversampleFactor"); - if (oversampleJ) { - oversampleFactor = float(json_number_value(oversampleJ)); + float oversampleFactor = -1.0f; + int oversampleQuality = -1; + + // Realtime Oversample factor + { + json_t *oversampleJ = json_object_get(rootJ, "oversampleFactor"); + if (oversampleJ) { + oversampleFactor = float(json_number_value(oversampleJ)); + } } + + // Realtime Oversample quality (0..10) + { + json_t *oversampleJ = json_object_get(rootJ, "oversampleQuality"); + if (oversampleJ) { + oversampleQuality = int(json_number_value(oversampleJ)); + } + } + + vst2_oversample_realtime_set(oversampleFactor, oversampleQuality); } - // Oversample quality (0..10) + // Offline Oversample factor and quality { - json_t *oversampleJ = json_object_get(rootJ, "oversampleQuality"); - if (oversampleJ) { - oversampleQuality = int(json_number_value(oversampleJ)); + float oversampleFactor = -1.0f; + int oversampleQuality = -1; + + // Offline Oversample factor + { + json_t *oversampleJ = json_object_get(rootJ, "oversampleOfflineFactor"); + if (oversampleJ) { + oversampleFactor = float(json_number_value(oversampleJ)); + } + } + + // Offline Oversample quality (0..10) + { + json_t *oversampleJ = json_object_get(rootJ, "oversampleOfflineQuality"); + if (oversampleJ) { + oversampleQuality = int(json_number_value(oversampleJ)); + } } + + vst2_oversample_offline_set(oversampleFactor, oversampleQuality); } - vst2_oversample_set(oversampleFactor, oversampleQuality); + json_t *checkOfflineJ = json_object_get(rootJ, "oversampleOffline"); + if (checkOfflineJ) + { + vst2_oversample_offline_check_set(json_is_true(checkOfflineJ)); + } // Oversample channel limit int oversampleNumIn = -1; diff --git a/src/vst2_main.cpp b/src/vst2_main.cpp index 8b11c702..325a93a3 100644 --- a/src/vst2_main.cpp +++ b/src/vst2_main.cpp @@ -18,7 +18,7 @@ /// created: 25Jun2018 /// changed: 26Jun2018, 27Jun2018, 29Jun2018, 01Jul2018, 02Jul2018, 06Jul2018, 13Jul2018 /// 26Jul2018, 04Aug2018, 05Aug2018, 06Aug2018, 07Aug2018, 09Aug2018, 11Aug2018 -/// +/// 18Aug2018 /// /// @@ -407,6 +407,10 @@ public: struct { float factor; // 1=no SR conversion, 2=oversample x2, 4=oversample x4, 0.5=undersample /2, .. int quality; // SPEEX_RESAMPLER_QUALITY_xxx + float realtime_factor; // used during realtime rendering + int realtime_quality; + float offline_factor; // used during offline rendering (bounce) + int offline_quality; // sUI num_in; // hack that limits oversampling to "n" input channels. default = NUM_INPUTS sUI num_out; // hack that limits oversampling to "n" input channels. default = NUM_OUTPUTS SpeexResamplerState *srs_in; @@ -427,6 +431,8 @@ public: bool b_open; bool b_processing; // true=generate output, false=suspended + bool b_offline; // true=offline rendering (HQ) + bool b_check_offline; // true=ask host if it's in offline rendering mode ERect editor_rect; sBool b_editor_open; @@ -633,12 +639,20 @@ public: return _vstPlugin.numOutputs; } - void setOversample(float _factor, int _quality) { + void setOversample(float _factor, int _quality, bool _bLock = true) { + + oversample.factor = _factor; + oversample.quality = _quality; + + setSampleRate(sample_rate, _bLock); + } + + void setOversampleRealtime(float _factor, int _quality) { if(_factor < 0.0f) - _factor = oversample.factor; // keep + _factor = oversample.realtime_factor; // keep if(_quality < 0) - _quality = oversample.quality; // keep + _quality = oversample.realtime_quality; // keep if(_factor < 0.001f) _factor = 1.0f; @@ -650,10 +664,39 @@ public: else if(_quality > SPEEX_RESAMPLER_QUALITY_MAX/*10*/) _quality = SPEEX_RESAMPLER_QUALITY_MAX; - oversample.factor = _factor; - oversample.quality = _quality; + oversample.realtime_factor = _factor; + oversample.realtime_quality = _quality; - setSampleRate(sample_rate); + if(!b_offline) + { + setOversample(oversample.realtime_factor, oversample.realtime_quality); + } + } + + void setOversampleOffline(float _factor, int _quality) { + if(_factor < 0.0f) + _factor = oversample.offline_factor; // keep + + if(_quality < 0) + _quality = oversample.offline_quality; // keep + + if(_factor < 0.001f) + _factor = 1.0f; + else if(_factor > float(MAX_OVERSAMPLE_FACTOR)) + _factor = float(MAX_OVERSAMPLE_FACTOR); + + if(_quality < SPEEX_RESAMPLER_QUALITY_MIN/*0*/) + _quality = SPEEX_RESAMPLER_QUALITY_MIN; + else if(_quality > SPEEX_RESAMPLER_QUALITY_MAX/*10*/) + _quality = SPEEX_RESAMPLER_QUALITY_MAX; + + oversample.offline_factor = _factor; + oversample.offline_quality = _quality; + + if(b_offline) + { + setOversample(oversample.offline_factor, oversample.offline_quality); + } } void setOversampleChannels(int _numIn, int _numOut) { @@ -679,14 +722,19 @@ public: unlockAudio(); } - bool setSampleRate(float _rate) { + bool setSampleRate(float _rate, bool _bLock = true) { bool r = false; if((_rate >= float(MIN_SAMPLE_RATE)) && (_rate <= float(MAX_SAMPLE_RATE))) { - setGlobals(); - lockAudio(); + if(_bLock) + { + setGlobals(); + lockAudio(); + } + sample_rate = _rate; + vst2_set_samplerate(sample_rate * oversample.factor); // see engine.cpp destroyResamplerStates(); @@ -703,7 +751,6 @@ public: &err ); - oversample.srs_out = speex_resampler_init(NUM_OUTPUTS, sUI(sample_rate * oversample.factor), // in rate sUI(sample_rate), // out rate @@ -714,7 +761,10 @@ public: printf("xxx vstrack_plugin: initialize speex resampler (rate=%f factor=%f quality=%d)\n", sample_rate, oversample.factor, oversample.quality); } - unlockAudio(); + if(_bLock) + { + unlockAudio(); + } r = true; } @@ -742,6 +792,48 @@ public: unlockAudio(); } + void checkOffline(void) { + // Called by VSTPluginProcessReplacingFloat32() + if(b_check_offline) + { + if(NULL != _vstHostCallback) + { + int level = (int)_vstHostCallback(&_vstPlugin, audioMasterGetCurrentProcessLevel, 0, 0/*value*/, NULL/*ptr*/, 0.0f/*opt*/); + // (note) Reason sets process level to kVstProcessLevelUser during "bounce in place" + bool bOffline = (kVstProcessLevelOffline == level) || (kVstProcessLevelUser == level); + +#if 0 + { + static int i = 0; + if(0 == (++i & 127)) + { + printf("xxx vstrack_plugin: audioMasterGetCurrentProcessLevel: level=%d\n", level); + } + } +#endif + + if(b_offline ^ bOffline) + { + // Offline mode changed, update resampler + b_offline = bOffline; + + if(bOffline) + { + printf("xxx vstrack_plugin: enter OFFLINE mode. factor=%f quality=%d\n", oversample.offline_factor, oversample.offline_quality); + setOversample(oversample.offline_factor, oversample.offline_quality, false/*bLock*/); + } + else + { + printf("xxx vstrack_plugin: enter REALTIME mode. factor=%f quality=%d\n", oversample.realtime_factor, oversample.realtime_quality); + setOversample(oversample.realtime_factor, oversample.realtime_quality, false/*bLock*/); + } + + printf("xxx vstrack_plugin: mode changed to %d\n", int(bOffline)); + } + } + } + } + sUI getBankChunk(uint8_t **_addr) { return 0; } @@ -925,6 +1017,13 @@ void VSTPluginProcessReplacingFloat32(VSTPlugin *vstPlugin, wrapper->lockAudio(); wrapper->setGlobals(); vst2_set_shared_plugin_tls_globals(); + + if(wrapper->b_check_offline) + { + // Check if offline rendering state changed and update resampler when necessary + wrapper->checkOffline(); + } + // // rack::global->engine.vipMutex.lock(); rack::global->engine.mutex.lock(); rack::global->vst2.last_seen_num_frames = sUI(sampleFrames); @@ -1620,8 +1719,12 @@ VSTPluginWrapper::VSTPluginWrapper(audioMasterCallback vstHostCallback, // report latency _vstPlugin.initialDelay = 0; - oversample.factor = 1.0f; - oversample.quality = SPEEX_RESAMPLER_QUALITY_DEFAULT; + oversample.factor = 1.0f; + oversample.quality = SPEEX_RESAMPLER_QUALITY_DEFAULT; + oversample.realtime_factor = 1.0f; + oversample.realtime_quality = SPEEX_RESAMPLER_QUALITY_DEFAULT; + oversample.offline_factor = 1.0f; + oversample.offline_quality = SPEEX_RESAMPLER_QUALITY_DEFAULT; oversample.srs_in = NULL; oversample.srs_out = NULL; oversample.num_in = NUM_INPUTS; @@ -1630,6 +1733,8 @@ VSTPluginWrapper::VSTPluginWrapper(audioMasterCallback vstHostCallback, sample_rate = 44100.0f; block_size = 64u; b_processing = true; + b_offline = false; + b_check_offline = false; last_program_chunk_str = NULL; @@ -1696,13 +1801,26 @@ extern "C" void lglw_redraw_cbk(lglw_t _lglw) { wrapper->redraw(); } -void vst2_oversample_set(float _factor, int _quality) { - rack::global->vst2.wrapper->setOversample(_factor, _quality); +void vst2_oversample_realtime_set(float _factor, int _quality) { + rack::global->vst2.wrapper->setOversampleRealtime(_factor, _quality); +} + +void vst2_oversample_realtime_get(float *_factor, int *_quality) { + *_factor = rack::global->vst2.wrapper->oversample.realtime_factor; + *_quality = int(rack::global->vst2.wrapper->oversample.realtime_quality); +} + +void vst2_oversample_offline_set(float _factor, int _quality) { + rack::global->vst2.wrapper->setOversampleOffline(_factor, _quality); +} + +void vst2_oversample_offline_get(float *_factor, int *_quality) { + *_factor = rack::global->vst2.wrapper->oversample.offline_factor; + *_quality = int(rack::global->vst2.wrapper->oversample.offline_quality); } -void vst2_oversample_get(float *_factor, int *_quality) { - *_factor = rack::global->vst2.wrapper->oversample.factor; - *_quality = int(rack::global->vst2.wrapper->oversample.quality); +void vst2_oversample_offline_check_set(int _bEnable) { + rack::global->vst2.wrapper->b_check_offline = (0 != _bEnable); } void vst2_oversample_channels_set(int _numIn, int _numOut) { diff --git a/vst2_bin/CHANGELOG_VST.txt b/vst2_bin/CHANGELOG_VST.txt index cebd0893..abe5203b 100644 --- a/vst2_bin/CHANGELOG_VST.txt +++ b/vst2_bin/CHANGELOG_VST.txt @@ -59,6 +59,10 @@ - add module TheXOR.Boole - add module TheXOR.Switch - add module TheXOR.Mplex +- add offline rendering quality settings (in settings.json) + - "oversampleOffline": true=check host process level, false=use realtime settings + - "oversampleOfflineFactor": oversampling factor in offline rendering mode + - "oversampleOfflineQuality": oversampling quality in offline rendering mode ** August 17th, 2018 diff --git a/vst2_bin/log.txt b/vst2_bin/log.txt index cc26504e..cc420663 100644 --- a/vst2_bin/log.txt +++ b/vst2_bin/log.txt @@ -1,159 +1,148 @@ [0.000 info src/main.cpp:59] VeeSeeVST Rack 0.6.1 -[0.000 info src/main.cpp:62] Global directory: f:\git\VeeSeeVSTRack\vst2_bin\/ -[0.000 info src/main.cpp:63] Local directory: f:\git\VeeSeeVSTRack\vst2_bin\/ +[0.000 info src/main.cpp:62] Global directory: F:\git\VeeSeeVSTRack\vst2_bin\/ +[0.000 info src/main.cpp:63] Local directory: F:\git\VeeSeeVSTRack\vst2_bin\/ [0.000 info src/plugin.cpp:686] vcvrack: Loaded static plugin 21kHz 0.6.1 [0.000 info src/plugin.cpp:686] vcvrack: Loaded static plugin Alikins 0.6.1 [0.000 info src/plugin.cpp:686] vcvrack: Loaded static plugin alto777_LFSR 0.6.1 -[0.001 info src/plugin.cpp:686] vcvrack: Loaded static plugin AS 0.6.1 -[0.001 info src/plugin.cpp:686] vcvrack: Loaded static plugin AudibleInstruments 0.6.1 -[0.001 info src/plugin.cpp:686] vcvrack: Loaded static plugin Autodafe 0.6.1 -[0.001 info src/plugin.cpp:686] vcvrack: Loaded static plugin BaconMusic 0.6.1 -[0.002 info src/plugin.cpp:686] vcvrack: Loaded static plugin Befaco 0.6.1 -[0.002 info src/plugin.cpp:686] vcvrack: Loaded static plugin Bidoo 0.6.1 -[0.002 info src/plugin.cpp:686] vcvrack: Loaded static plugin Bogaudio 0.6.1 -[0.003 info src/plugin.cpp:686] vcvrack: Loaded static plugin CastleRocktronics 0.6.1 -[0.003 info src/plugin.cpp:686] vcvrack: Loaded static plugin cf 0.6.1 -[0.003 info src/plugin.cpp:686] vcvrack: Loaded static plugin computerscare 0.6.1 -[0.003 info src/plugin.cpp:686] vcvrack: Loaded static plugin DHE-Modules 0.6.1 -[0.003 info src/plugin.cpp:686] vcvrack: Loaded static plugin DrumKit 0.6.1 -[0.003 info src/plugin.cpp:686] vcvrack: Loaded static plugin ErraticInstruments 0.6.1 -[0.003 info src/plugin.cpp:686] vcvrack: Loaded static plugin ESeries 0.6.1 -[0.004 info src/plugin.cpp:686] vcvrack: Loaded static plugin FrankBussFormula 0.6.1 -[0.004 info src/plugin.cpp:686] vcvrack: Loaded static plugin FrozenWasteland 0.6.1 -[0.004 info src/plugin.cpp:686] vcvrack: Loaded static plugin Fundamental 0.6.1 -[0.004 info src/plugin.cpp:686] vcvrack: Loaded static plugin Gratrix 0.6.1 -[0.004 info src/plugin.cpp:686] vcvrack: Loaded static plugin HetrickCV 0.6.1 -[0.004 info src/plugin.cpp:686] vcvrack: Loaded static plugin huaba 0.6.1 -[0.004 info src/plugin.cpp:686] vcvrack: Loaded static plugin ImpromptuModular 0.6.1 -[0.005 info src/plugin.cpp:686] vcvrack: Loaded static plugin JE 0.6.1 -[0.005 info src/plugin.cpp:686] vcvrack: Loaded static plugin JW-Modules 0.6.1 -[0.005 info src/plugin.cpp:686] vcvrack: Loaded static plugin Koralfx-Modules 0.6.1 -[0.005 info src/plugin.cpp:686] vcvrack: Loaded static plugin LindenbergResearch 0.6.1 -[0.005 info src/plugin.cpp:686] vcvrack: Loaded static plugin LOGinstruments 0.6.1 -[0.005 info src/plugin.cpp:686] vcvrack: Loaded static plugin ML_modules 0.6.1 -[0.005 info src/plugin.cpp:686] vcvrack: Loaded static plugin moDllz 0.6.1 -[0.006 info src/plugin.cpp:686] vcvrack: Loaded static plugin modular80 0.6.1 -[0.006 info src/plugin.cpp:686] vcvrack: Loaded static plugin mscHack 0.6.1 -[0.006 info src/plugin.cpp:686] vcvrack: Loaded static plugin mtsch-plugins 0.6.1 -[0.006 info src/plugin.cpp:686] vcvrack: Loaded static plugin NauModular 0.6.1 -[0.006 info src/plugin.cpp:686] vcvrack: Loaded static plugin Nohmad 0.6.1 -[0.006 info src/plugin.cpp:686] vcvrack: Loaded static plugin Ohmer 0.6.1 -[0.006 info src/plugin.cpp:686] vcvrack: Loaded static plugin PG-Instruments 0.6.1 -[0.007 info src/plugin.cpp:686] vcvrack: Loaded static plugin Qwelk 0.6.1 -[0.007 info src/plugin.cpp:686] vcvrack: Loaded static plugin RJModules 0.6.1 -[0.007 info src/plugin.cpp:686] vcvrack: Loaded static plugin SerialRacker 0.6.1 -[0.007 info src/plugin.cpp:686] vcvrack: Loaded static plugin SonusModular 0.6.1 -[0.007 info src/plugin.cpp:686] vcvrack: Loaded static plugin Southpole 0.6.1 -[0.007 info src/plugin.cpp:686] vcvrack: Loaded static plugin Southpole-parasites 0.6.1 -[0.008 info src/plugin.cpp:686] vcvrack: Loaded static plugin squinkylabs-plug1 0.6.1 -[0.008 info src/plugin.cpp:686] vcvrack: Loaded static plugin SubmarineFree 0.6.1 -[0.008 info src/plugin.cpp:686] vcvrack: Loaded static plugin SynthKit 0.6.1 -[0.008 info src/plugin.cpp:686] vcvrack: Loaded static plugin Template 0.6.1 -[0.008 info src/plugin.cpp:686] vcvrack: Loaded static plugin TheXOR 0.6.1 -[0.009 info src/plugin.cpp:686] vcvrack: Loaded static plugin trowaSoft 0.6.1 -[0.009 info src/plugin.cpp:686] vcvrack: Loaded static plugin unless_modules 0.6.1 -[0.009 info src/plugin.cpp:686] vcvrack: Loaded static plugin Valley 0.6.1 -[0.009 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/21kHz/plugin.dll does not exist -[0.009 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Alikins/plugin.dll does not exist -[0.009 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/alto777_LFSR/plugin.dll does not exist -[0.010 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/AS/plugin.dll does not exist -[0.010 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/AudibleInstruments/plugin.dll does not exist -[0.010 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Autodafe/plugin.dll does not exist -[0.010 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/BaconMusic/plugin.dll does not exist -[0.010 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Befaco/plugin.dll does not exist -[0.010 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Bidoo/plugin.dll does not exist -[0.010 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Bogaudio/plugin.dll does not exist -[0.010 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/BOKONTEPByteBeatMachine/plugin.dll does not exist -[0.010 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/CastleRocktronics/plugin.dll does not exist -[0.011 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/cf/plugin.dll does not exist -[0.011 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/computerscare/plugin.dll does not exist -[0.011 info src/plugin.cpp:155] Loaded plugin dBiz 0.6.1 from f:\git\VeeSeeVSTRack\vst2_bin\/plugins/dBiz/plugin.dll -[0.011 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/DHE-Modules/plugin.dll does not exist -[0.012 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/DrumKit/plugin.dll does not exist -[0.012 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/ErraticInstruments/plugin.dll does not exist -[0.012 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/ESeries/plugin.dll does not exist -[0.012 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/FrankBussFormula/plugin.dll does not exist -[0.012 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/FrozenWasteland/plugin.dll does not exist -[0.012 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Fundamental/plugin.dll does not exist -[0.012 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Gratrix/plugin.dll does not exist -[0.012 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/HetrickCV/plugin.dll does not exist -[0.013 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/huaba/plugin.dll does not exist -[0.013 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/ImpromptuModular/plugin.dll does not exist -[0.013 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/JE/plugin.dll does not exist -[0.013 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/JW-Modules/plugin.dll does not exist -[0.013 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Koralfx-Modules/plugin.dll does not exist -[0.013 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/LindenbergResearch/plugin.dll does not exist -[0.013 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/LOGinstruments/plugin.dll does not exist -[0.013 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/ML_modules/plugin.dll does not exist -[0.013 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/moDllz/plugin.dll does not exist -[0.014 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/modular80/plugin.dll does not exist -[0.014 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/mscHack/plugin.dll does not exist -[0.014 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/mtsch-plugins/plugin.dll does not exist -[0.014 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/NauModular/plugin.dll does not exist -[0.014 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Nohmad/plugin.dll does not exist -[0.014 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Ohmer/plugin.dll does not exist -[0.014 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/PG-Instruments/plugin.dll does not exist -[0.014 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Qwelk/plugin.dll does not exist -[0.015 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/RJModules/plugin.dll does not exist -[0.015 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/SerialRacker/plugin.dll does not exist -[0.015 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/SonusModular/plugin.dll does not exist -[0.015 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Southpole/plugin.dll does not exist -[0.015 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Southpole-parasites/plugin.dll does not exist -[0.015 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/squinkylabs-plug1/plugin.dll does not exist -[0.015 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/SubmarineFree/plugin.dll does not exist -[0.015 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/SynthKit/plugin.dll does not exist -[0.016 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Template/plugin.dll does not exist -[0.016 info src/plugin.cpp:155] Loaded plugin Template_shared 0.6.1 from f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Template_shared/plugin.dll -[0.016 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/TheXOR/plugin.dll does not exist -[0.017 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/trowaSoft/plugin.dll does not exist -[0.017 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/unless_modules/plugin.dll does not exist -[0.017 warn src/plugin.cpp:86] Plugin file f:\git\VeeSeeVSTRack\vst2_bin\/plugins/Valley/plugin.dll does not exist -[0.017 info src/settings.cpp:287] Loading settings f:\git\VeeSeeVSTRack\vst2_bin\/settings.json -[0.031 info src/window.cpp:599] Loaded font f:\git\VeeSeeVSTRack\vst2_bin\/res/fonts/DejaVuSans.ttf -[0.032 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_146097_cc.svg -[0.032 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_31859_cc.svg -[0.032 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1343816_cc.svg -[0.032 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1343811_cc.svg -[0.033 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1084369_cc.svg -[0.033 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1745061_cc.svg -[0.033 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1240789_cc.svg -[0.033 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_305536_cc.svg -[0.034 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_468341_cc.svg -[0.034 info src/settings.cpp:287] Loading settings f:\git\VeeSeeVSTRack\vst2_bin\/settings.json -[0.037 info src/app/RackWidget.cpp:205] Loading patch from string -[0.038 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/Core/AudioInterface.svg -[0.039 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/ScrewSilver.svg -[0.039 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/PJ301M.svg -[0.039 info src/window.cpp:599] Loaded font f:\git\VeeSeeVSTRack\vst2_bin\/res/fonts/ShareTechMono-Regular.ttf -[0.041 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/Core/MIDIToCVInterface.svg -[0.043 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/XCO.svg -[0.044 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/knob_68px.svg -[0.044 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/knob_16px.svg -[0.044 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/button_9px_0.svg -[0.044 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/button_9px_1.svg -[0.045 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/knob_38px.svg -[0.045 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/slider_switch_2_14px_0.svg -[0.045 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/slider_switch_2_14px_1.svg -[0.045 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/port.svg -[0.047 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Fundamental/res/VCA.svg -[0.047 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/RoundLargeBlackKnob.svg -[0.048 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Fundamental/res/VCF.svg -[0.049 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/RoundHugeBlackKnob.svg -[0.050 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/ADSR.svg -[0.050 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/as-hexscrew.svg -[0.051 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/as-SlidePot.svg -[0.051 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/as-SlidePotHandle.svg -[0.051 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/as-PJ301M.svg -[5.700 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Autodafe/res/FormantFilter.svg -[5.700 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Autodafe/res/AutodafeKnobBlueBig.svg -[5.700 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Autodafe/res/AutodafeKnobBlue.svg -[59.101 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/squinkylabs-plug1/res/formants_panel.svg -[59.101 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/Rogan1PSBlue.svg -[59.102 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/Trimpot.svg -[59.102 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/RoundBlackKnob.svg -[77.289 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Autodafe/res/MultiModeFilter.svg -[130.989 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Autodafe/res/FoldBack.svg -[130.989 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Autodafe/res/AutodafeKnobGreenBig.svg -[130.990 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Autodafe/res/AutodafeKnobGreen.svg -[164.776 info src/window.cpp:654] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Autodafe/res/Phaser.svg -[441.578 info src/app/RackWidget.cpp:167] Saving patch to string +[0.000 info src/plugin.cpp:686] vcvrack: Loaded static plugin AS 0.6.1 +[0.000 info src/plugin.cpp:686] vcvrack: Loaded static plugin AudibleInstruments 0.6.1 +[0.000 info src/plugin.cpp:686] vcvrack: Loaded static plugin Autodafe 0.6.1 +[0.000 info src/plugin.cpp:686] vcvrack: Loaded static plugin BaconMusic 0.6.1 +[0.001 info src/plugin.cpp:686] vcvrack: Loaded static plugin Befaco 0.6.1 +[0.001 info src/plugin.cpp:686] vcvrack: Loaded static plugin Bidoo 0.6.1 +[0.001 info src/plugin.cpp:686] vcvrack: Loaded static plugin Bogaudio 0.6.1 +[0.001 info src/plugin.cpp:686] vcvrack: Loaded static plugin CastleRocktronics 0.6.1 +[0.001 info src/plugin.cpp:686] vcvrack: Loaded static plugin cf 0.6.1 +[0.001 info src/plugin.cpp:686] vcvrack: Loaded static plugin computerscare 0.6.1 +[0.002 info src/plugin.cpp:686] vcvrack: Loaded static plugin DHE-Modules 0.6.1 +[0.002 info src/plugin.cpp:686] vcvrack: Loaded static plugin DrumKit 0.6.1 +[0.002 info src/plugin.cpp:686] vcvrack: Loaded static plugin ErraticInstruments 0.6.1 +[0.002 info src/plugin.cpp:686] vcvrack: Loaded static plugin ESeries 0.6.1 +[0.002 info src/plugin.cpp:686] vcvrack: Loaded static plugin FrankBussFormula 0.6.1 +[0.002 info src/plugin.cpp:686] vcvrack: Loaded static plugin FrozenWasteland 0.6.1 +[0.002 info src/plugin.cpp:686] vcvrack: Loaded static plugin Fundamental 0.6.1 +[0.002 info src/plugin.cpp:686] vcvrack: Loaded static plugin Gratrix 0.6.1 +[0.002 info src/plugin.cpp:686] vcvrack: Loaded static plugin HetrickCV 0.6.1 +[0.002 info src/plugin.cpp:686] vcvrack: Loaded static plugin huaba 0.6.1 +[0.002 info src/plugin.cpp:686] vcvrack: Loaded static plugin ImpromptuModular 0.6.1 +[0.002 info src/plugin.cpp:686] vcvrack: Loaded static plugin JE 0.6.1 +[0.002 info src/plugin.cpp:686] vcvrack: Loaded static plugin JW-Modules 0.6.1 +[0.002 info src/plugin.cpp:686] vcvrack: Loaded static plugin Koralfx-Modules 0.6.1 +[0.002 info src/plugin.cpp:686] vcvrack: Loaded static plugin LindenbergResearch 0.6.1 +[0.002 info src/plugin.cpp:686] vcvrack: Loaded static plugin LOGinstruments 0.6.1 +[0.002 info src/plugin.cpp:686] vcvrack: Loaded static plugin ML_modules 0.6.1 +[0.003 info src/plugin.cpp:686] vcvrack: Loaded static plugin moDllz 0.6.1 +[0.003 info src/plugin.cpp:686] vcvrack: Loaded static plugin modular80 0.6.1 +[0.003 info src/plugin.cpp:686] vcvrack: Loaded static plugin mscHack 0.6.1 +[0.003 info src/plugin.cpp:686] vcvrack: Loaded static plugin mtsch-plugins 0.6.1 +[0.003 info src/plugin.cpp:686] vcvrack: Loaded static plugin NauModular 0.6.1 +[0.003 info src/plugin.cpp:686] vcvrack: Loaded static plugin Nohmad 0.6.1 +[0.003 info src/plugin.cpp:686] vcvrack: Loaded static plugin Ohmer 0.6.1 +[0.003 info src/plugin.cpp:686] vcvrack: Loaded static plugin PG-Instruments 0.6.1 +[0.003 info src/plugin.cpp:686] vcvrack: Loaded static plugin Qwelk 0.6.1 +[0.003 info src/plugin.cpp:686] vcvrack: Loaded static plugin RJModules 0.6.1 +[0.003 info src/plugin.cpp:686] vcvrack: Loaded static plugin SerialRacker 0.6.1 +[0.003 info src/plugin.cpp:686] vcvrack: Loaded static plugin SonusModular 0.6.1 +[0.003 info src/plugin.cpp:686] vcvrack: Loaded static plugin Southpole 0.6.1 +[0.003 info src/plugin.cpp:686] vcvrack: Loaded static plugin Southpole-parasites 0.6.1 +[0.003 info src/plugin.cpp:686] vcvrack: Loaded static plugin squinkylabs-plug1 0.6.1 +[0.003 info src/plugin.cpp:686] vcvrack: Loaded static plugin SubmarineFree 0.6.1 +[0.004 info src/plugin.cpp:686] vcvrack: Loaded static plugin SynthKit 0.6.1 +[0.004 info src/plugin.cpp:686] vcvrack: Loaded static plugin Template 0.6.1 +[0.004 info src/plugin.cpp:686] vcvrack: Loaded static plugin TheXOR 0.6.1 +[0.004 info src/plugin.cpp:686] vcvrack: Loaded static plugin trowaSoft 0.6.1 +[0.004 info src/plugin.cpp:686] vcvrack: Loaded static plugin unless_modules 0.6.1 +[0.004 info src/plugin.cpp:686] vcvrack: Loaded static plugin Valley 0.6.1 +[0.004 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/21kHz/plugin.dll does not exist +[0.004 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/Alikins/plugin.dll does not exist +[0.004 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/alto777_LFSR/plugin.dll does not exist +[0.004 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/AS/plugin.dll does not exist +[0.004 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/AudibleInstruments/plugin.dll does not exist +[0.004 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/Autodafe/plugin.dll does not exist +[0.004 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/BaconMusic/plugin.dll does not exist +[0.004 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/Befaco/plugin.dll does not exist +[0.004 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/Bidoo/plugin.dll does not exist +[0.004 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/Bogaudio/plugin.dll does not exist +[0.004 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/BOKONTEPByteBeatMachine/plugin.dll does not exist +[0.004 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/CastleRocktronics/plugin.dll does not exist +[0.004 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/cf/plugin.dll does not exist +[0.004 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/computerscare/plugin.dll does not exist +[0.005 info src/plugin.cpp:155] Loaded plugin dBiz 0.6.1 from F:\git\VeeSeeVSTRack\vst2_bin\/plugins/dBiz/plugin.dll +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/DHE-Modules/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/DrumKit/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/ErraticInstruments/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/ESeries/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/FrankBussFormula/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/FrozenWasteland/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/Fundamental/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/Gratrix/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/HetrickCV/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/huaba/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/ImpromptuModular/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/JE/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/JW-Modules/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/Koralfx-Modules/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/LindenbergResearch/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/LOGinstruments/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/ML_modules/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/moDllz/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/modular80/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/mscHack/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/mtsch-plugins/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/NauModular/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/Nohmad/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/Ohmer/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/PG-Instruments/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/Qwelk/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/RJModules/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/SerialRacker/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/SonusModular/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/Southpole/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/Southpole-parasites/plugin.dll does not exist +[0.005 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/squinkylabs-plug1/plugin.dll does not exist +[0.006 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/SubmarineFree/plugin.dll does not exist +[0.006 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/SynthKit/plugin.dll does not exist +[0.006 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/Template/plugin.dll does not exist +[0.006 info src/plugin.cpp:155] Loaded plugin Template_shared 0.6.1 from F:\git\VeeSeeVSTRack\vst2_bin\/plugins/Template_shared/plugin.dll +[0.006 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/TheXOR/plugin.dll does not exist +[0.006 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/trowaSoft/plugin.dll does not exist +[0.006 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/unless_modules/plugin.dll does not exist +[0.006 warn src/plugin.cpp:86] Plugin file F:\git\VeeSeeVSTRack\vst2_bin\/plugins/Valley/plugin.dll does not exist +[0.006 info src/settings.cpp:321] Loading settings F:\git\VeeSeeVSTRack\vst2_bin\/settings.json +[0.076 info src/window.cpp:599] Loaded font F:\git\VeeSeeVSTRack\vst2_bin\/res/fonts/DejaVuSans.ttf +[0.077 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_146097_cc.svg +[0.077 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_31859_cc.svg +[0.077 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1343816_cc.svg +[0.077 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1343811_cc.svg +[0.077 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1084369_cc.svg +[0.077 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1745061_cc.svg +[0.077 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1240789_cc.svg +[0.077 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_305536_cc.svg +[0.077 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_468341_cc.svg +[0.077 info src/settings.cpp:321] Loading settings F:\git\VeeSeeVSTRack\vst2_bin\/settings.json +[0.179 info src/app/RackWidget.cpp:167] Saving patch to string +[0.193 info src/app/RackWidget.cpp:205] Loading patch from string +[0.194 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\/res/Core/AudioInterface.svg +[0.194 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/ScrewSilver.svg +[0.195 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/PJ301M.svg +[0.195 info src/window.cpp:599] Loaded font F:\git\VeeSeeVSTRack\vst2_bin\/res/fonts/ShareTechMono-Regular.ttf +[0.195 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\/res/Core/MIDIToCVInterface.svg +[0.197 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/XCO.svg +[0.197 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/knob_68px.svg +[0.197 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/knob_16px.svg +[0.198 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/button_9px_0.svg +[0.198 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/button_9px_1.svg +[0.198 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/knob_38px.svg +[0.198 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/slider_switch_2_14px_0.svg +[0.198 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/slider_switch_2_14px_1.svg +[0.198 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/port.svg +[0.199 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\plugins/Fundamental/res/VCA.svg +[0.199 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/RoundLargeBlackKnob.svg +[0.199 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\plugins/Fundamental/res/VCF.svg +[0.199 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/RoundHugeBlackKnob.svg +[0.200 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/ADSR.svg +[0.200 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/as-hexscrew.svg +[0.200 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/as-SlidePot.svg +[0.200 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/as-SlidePotHandle.svg +[0.201 info src/window.cpp:654] Loaded SVG F:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/as-PJ301M.svg +[77.223 info src/app/RackWidget.cpp:167] Saving patch to string diff --git a/vst2_bin/settings.json b/vst2_bin/settings.json index 3436d02b..003b37b0 100644 --- a/vst2_bin/settings.json +++ b/vst2_bin/settings.json @@ -21,6 +21,9 @@ "oversampleQuality": 7.0, "oversampleNumIn": 8.0, "oversampleNumOut": 8.0, + "oversampleOffline": false, + "oversampleOfflineFactor": 16.0, + "oversampleOfflineQuality": 10.0, "lastPath": "", "moduleBrowser": { "favorites": [