Browse Source

update VST parameter handling (use UI widget min/max info for VST parameter range translation)

pull/1639/head
bsp2 6 years ago
parent
commit
8a825ca755
12 changed files with 133 additions and 67 deletions
  1. +1
    -1
      README.md
  2. +3
    -0
      include/app.hpp
  3. +2
    -0
      include/global_ui.hpp
  4. +0
    -2
      plugins/community/repos/Fundamental/src/VCA.cpp
  5. +8
    -0
      src/app/ModuleWidget.cpp
  6. +13
    -0
      src/app/RackWidget.cpp
  7. +57
    -13
      src/engine.cpp
  8. +1
    -0
      vst2_bin/CHANGELOG_VST.txt
  9. +48
    -51
      vst2_bin/log.txt
  10. BIN
      vst2_bin/veeseevstrack_effect.dll__X86_LEGACY
  11. BIN
      vst2_bin/veeseevstrack_instr.dll__
  12. BIN
      vst2_bin/veeseevstrack_instr.dll__X86_LEGACY__

+ 1
- 1
README.md View File

@@ -22,7 +22,7 @@ Tested in
# 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-08Jul2018.7z](dist/veeseevstrack_0_6_1_win64_bin-08Jul2018.7z) (64bit)
Here's a snapshot of it: [veeseevstrack_0_6_1_win64_bin-08Jul2018b.7z](dist/veeseevstrack_0_6_1_win64_bin-08Jul2018b.7z) (64bit)


# Demo Video


+ 3
- 0
include/app.hpp View File

@@ -93,6 +93,8 @@ struct ModuleWidget : OpaqueWidget {
*/
virtual void appendContextMenu(Menu *menu) {}

ParamWidget *findParamWidgetByParamId(int _paramId);

void draw(NVGcontext *vg) override;
void drawShadow(NVGcontext *vg);

@@ -174,6 +176,7 @@ struct RackWidget : OpaqueWidget {
void addModule(ModuleWidget *m);
/** Removes the module and transfers ownership to the caller */
void deleteModule(ModuleWidget *m);
ModuleWidget *findModuleWidgetByModule(Module *_module);
void cloneModule(ModuleWidget *m);
/** Sets a module's box if non-colliding. Returns true if set */
bool requestModuleBox(ModuleWidget *m, Rect box);


+ 2
- 0
include/global_ui.hpp View File

@@ -81,6 +81,8 @@ struct GlobalUI {
RackWidget *gRackWidget;
Toolbar *gToolbar;
RackScene *gRackScene;

std::mutex mtx_param;
} app;

#ifdef USE_VST2


+ 0
- 2
plugins/community/repos/Fundamental/src/VCA.cpp View File

@@ -34,8 +34,6 @@ static void stepChannel(Input &in, Param &level, Input &lin, Input &exp, Output
const float expBase = 50.0f;
if (exp.active)
v *= rescale(powf(expBase, clamp(exp.value / 10.0f, 0.0f, 1.0f)), 1.0f, expBase, 0.0f, 1.0f);
v += 100.0f;
v -= 100.0f;
out.value = v;
}



+ 8
- 0
src/app/ModuleWidget.cpp View File

@@ -207,6 +207,14 @@ void ModuleWidget::randomize() {
}
}

ParamWidget *ModuleWidget::findParamWidgetByParamId(int _paramId) {
for (ParamWidget *param : params) {
if(param->paramId == _paramId)
return param;
}
return NULL;
}

void ModuleWidget::draw(NVGcontext *vg) {
nvgScissor(vg, 0, 0, box.size.x, box.size.y);
Widget::draw(vg);


+ 13
- 0
src/app/RackWidget.cpp View File

@@ -410,13 +410,26 @@ void RackWidget::fromJson(json_t *rootJ) {
}

void RackWidget::addModule(ModuleWidget *m) {
rack::global_ui->app.mtx_param.lock();
moduleContainer->addChild(m);
m->create();
rack::global_ui->app.mtx_param.unlock();
}

void RackWidget::deleteModule(ModuleWidget *m) {
rack::global_ui->app.mtx_param.lock();
m->_delete();
moduleContainer->removeChild(m);
rack::global_ui->app.mtx_param.unlock();
}

ModuleWidget *RackWidget::findModuleWidgetByModule(Module *_module) {
for (Widget *w : moduleContainer->children) {
ModuleWidget *moduleWidget = dynamic_cast<ModuleWidget*>(w);
if(moduleWidget->module == _module)
return moduleWidget;
}
return NULL;
}

void RackWidget::cloneModule(ModuleWidget *m) {


+ 57
- 13
src/engine.cpp View File

@@ -10,8 +10,12 @@
#include <pmmintrin.h>

#include "global_pre.hpp"
#include "app.hpp"
#include "engine.hpp"
#include "plugin.hpp"
#include "window.hpp"
#include "global.hpp"
#include "global_ui.hpp"


#ifdef USE_VST2
@@ -286,18 +290,40 @@ void engineSetParam(Module *module, int paramId, float value) {
// (note) [bsp] this is usually called from the UI thread (see ParamWidget.cpp)
// (note) [bsp] VST requires all parameters to be in the normalized 0..1 range
// (note) [bsp] VCV Rack parameters however are arbitrary floats
// (note) [bsp] this scale+bias hack should work for most parameters, though
// (note) [bsp] => automation curves will look a bit strange, though
// (note) [bsp] => this may potentially crash modules which cannot deal with params outside the expected range
// (todo) add min/max query methods to each module
float normValue = value / 2.0f;
normValue += 0.5f;
// printf("xxx vcvrack: paramId=%d value=%f (=> %f)\n", paramId, value, normValue);
int uniqueParamId = loc_vst2_find_unique_param_by_module_and_paramid(module, paramId);
if(-1 != uniqueParamId)
{
// Call host audioMasterAutomate
vst2_handle_ui_param(uniqueParamId, normValue);
ModuleWidget *moduleWidget = global_ui->app.gRackWidget->findModuleWidgetByModule(module);
if(NULL != moduleWidget)
{
// Find
ParamWidget *paramWidget = moduleWidget->findParamWidgetByParamId(paramId);
if(NULL != paramWidget)
{
// Normalize parameter
float paramRange = (paramWidget->maxValue - paramWidget->minValue);
if(paramRange > 0.0f)
{
float normValue = (value - paramWidget->minValue) / paramRange;
// printf("xxx paramId=%d normValue=%f\n", paramId, normValue);

// Call host audioMasterAutomate
vst2_handle_ui_param(uniqueParamId, normValue);
}
}
}
// else
// {
// // Should not be reachable
// // (note) [bsp] this scale+bias hack should work for most parameters, though
// // (note) [bsp] => automation curves will look a bit strange, though
// // (note) [bsp] => this may potentially crash modules which cannot deal with params outside the expected range
// float normValue = value / 2.0f;
// normValue += 0.5f;
// // Call host audioMasterAutomate
// vst2_handle_ui_param(uniqueParamId, normValue);
// }
}
}
#endif // USE_VST2
@@ -318,19 +344,37 @@ void vst2_queue_param(int uniqueParamId, float normValue) {
void vst2_handle_queued_params(void) {
// Called in processReplacing()
// (note) protected by caller mutex
// vector<VST2QueuedParam>::iterator it;
// for(it = global->vst2.queued_params.begin(); it != global->vst2.queued_params.end(); it++)
global_ui->app.mtx_param.lock();
for(VST2QueuedParam qp : global->vst2.queued_params)
{
Module *module;
int paramId;
if(loc_vst2_find_module_and_paramid_by_unique_paramid(qp.unique_id, &module, &paramId))
{
float value = qp.norm_value - 0.5f;
value *= 2.0f;
engineSetParam(module, paramId, value, false/*bVSTAutomate*/);
ModuleWidget *moduleWidget = global_ui->app.gRackWidget->findModuleWidgetByModule(module);
if(NULL != moduleWidget)
{
// Find
ParamWidget *paramWidget = moduleWidget->findParamWidgetByParamId(paramId);
if(NULL != paramWidget)
{
// Normalize parameter
float paramRange = (paramWidget->maxValue - paramWidget->minValue);
if(paramRange > 0.0f)
{
// float value = qp.norm_value - 0.5f;
// value *= 2.0f;
float value = (qp.norm_value * paramRange) + paramWidget->minValue;
engineSetParam(module, paramId, value, false/*bVSTAutomate*/);

// Update UI widget
paramWidget->setValue(value);
}
}
}
}
}
global_ui->app.mtx_param.unlock();
global->vst2.queued_params.clear();
}



+ 1
- 0
vst2_bin/CHANGELOG_VST.txt View File

@@ -26,6 +26,7 @@
- fix: load "settings.json" when plugin is initialized
(note: the windowSize/windowPos and sampleRate are ignored)
- change: "allowCursorLock" is now enabled by default
- update VST parameter handling (now uses UI widget min/max info for VST parameter range translation)


** July 7th, 2018


+ 48
- 51
vst2_bin/log.txt View File

@@ -3,17 +3,17 @@
[0.000 info src/main.cpp:67] Local directory: f:\git\VeeSeeVSTRack\vst2_bin\/
[0.000 info src/plugin.cpp:627] vcvrack: Loaded static plugin AS 0.6.1
[0.000 info src/plugin.cpp:627] vcvrack: Loaded static plugin AudibleInstruments 0.6.1
[0.002 info src/plugin.cpp:627] vcvrack: Loaded static plugin Befaco 0.6.1
[0.001 info src/plugin.cpp:627] vcvrack: Loaded static plugin Befaco 0.6.1
[0.002 info src/plugin.cpp:627] vcvrack: Loaded static plugin Bidoo 0.6.1
[0.003 info src/plugin.cpp:627] vcvrack: Loaded static plugin Bogaudio 0.6.1
[0.003 info src/plugin.cpp:627] vcvrack: Loaded static plugin cf 0.6.1
[0.003 info src/plugin.cpp:627] vcvrack: Loaded static plugin DHE-Modules 0.6.1
[0.002 info src/plugin.cpp:627] vcvrack: Loaded static plugin Bogaudio 0.6.1
[0.002 info src/plugin.cpp:627] vcvrack: Loaded static plugin cf 0.6.1
[0.002 info src/plugin.cpp:627] vcvrack: Loaded static plugin DHE-Modules 0.6.1
[0.003 info src/plugin.cpp:627] vcvrack: Loaded static plugin ErraticInstruments 0.6.1
[0.003 info src/plugin.cpp:627] vcvrack: Loaded static plugin ESeries 0.6.1
[0.004 info src/plugin.cpp:627] vcvrack: Loaded static plugin FrozenWasteland 0.6.1
[0.004 info src/plugin.cpp:627] vcvrack: Loaded static plugin Fundamental 0.6.1
[0.004 info src/plugin.cpp:627] vcvrack: Loaded static plugin HetrickCV 0.6.1
[0.004 info src/plugin.cpp:627] vcvrack: Loaded static plugin huaba 0.6.1
[0.003 info src/plugin.cpp:627] vcvrack: Loaded static plugin FrozenWasteland 0.6.1
[0.003 info src/plugin.cpp:627] vcvrack: Loaded static plugin Fundamental 0.6.1
[0.003 info src/plugin.cpp:627] vcvrack: Loaded static plugin HetrickCV 0.6.1
[0.003 info src/plugin.cpp:627] vcvrack: Loaded static plugin huaba 0.6.1
[0.004 info src/plugin.cpp:627] vcvrack: Loaded static plugin Koralfx-Modules 0.6.1
[0.004 info src/plugin.cpp:627] vcvrack: Loaded static plugin LindenbergResearch 0.6.1
[0.005 info src/plugin.cpp:627] vcvrack: Loaded static plugin LOGinstruments 0.6.1
@@ -23,50 +23,47 @@
[0.005 info src/plugin.cpp:627] vcvrack: Loaded static plugin mtsch-plugins 0.6.1
[0.005 info src/plugin.cpp:627] vcvrack: Loaded static plugin NauModular 0.6.1
[0.006 info src/plugin.cpp:627] vcvrack: Loaded static plugin Qwelk 0.6.1
[0.007 info src/plugin.cpp:627] vcvrack: Loaded static plugin SonusModular 0.6.1
[0.007 info src/plugin.cpp:627] vcvrack: Loaded static plugin Southpole-parasites 0.6.1
[0.007 info src/plugin.cpp:627] vcvrack: Loaded static plugin squinkylabs-plug1 0.6.1
[0.007 info src/plugin.cpp:627] vcvrack: Loaded static plugin SubmarineFree 0.6.1
[0.007 info src/plugin.cpp:627] vcvrack: Loaded static plugin Template 0.6.1
[0.006 info src/plugin.cpp:627] vcvrack: Loaded static plugin SonusModular 0.6.1
[0.006 info src/plugin.cpp:627] vcvrack: Loaded static plugin Southpole-parasites 0.6.1
[0.006 info src/plugin.cpp:627] vcvrack: Loaded static plugin squinkylabs-plug1 0.6.1
[0.006 info src/plugin.cpp:627] vcvrack: Loaded static plugin SubmarineFree 0.6.1
[0.006 info src/plugin.cpp:627] vcvrack: Loaded static plugin Template 0.6.1
[0.007 info src/plugin.cpp:627] vcvrack: Loaded static plugin trowaSoft 0.6.1
[0.008 info src/plugin.cpp:627] vcvrack: Loaded static plugin Valley 0.6.1
[0.008 info src/plugin.cpp:627] vcvrack: Loaded static plugin VultModules 0.6.1
[0.008 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_146097_cc.svg
[0.007 info src/plugin.cpp:627] vcvrack: Loaded static plugin Valley 0.6.1
[0.007 info src/plugin.cpp:627] vcvrack: Loaded static plugin VultModules 0.6.1
[0.007 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_146097_cc.svg
[0.008 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_31859_cc.svg
[0.008 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1343816_cc.svg
[0.009 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1343811_cc.svg
[0.010 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1084369_cc.svg
[0.010 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1745061_cc.svg
[0.010 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1240789_cc.svg
[0.010 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_305536_cc.svg
[0.008 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1343811_cc.svg
[0.008 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1084369_cc.svg
[0.008 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1745061_cc.svg
[0.009 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_1240789_cc.svg
[0.009 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_305536_cc.svg
[0.010 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/icons/noun_468341_cc.svg
[0.196 info src/window.cpp:703] Loaded font f:\git\VeeSeeVSTRack\vst2_bin\/res/fonts/DejaVuSans.ttf
[0.198 info src/settings.cpp:185] Loading settings f:\git\VeeSeeVSTRack\vst2_bin\/settings.json
[0.299 info src/app/RackWidget.cpp:192] Loading patch from string
[0.300 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/Core/AudioInterface.svg
[0.301 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/ScrewSilver.svg
[0.301 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/PJ301M.svg
[0.301 info src/window.cpp:703] Loaded font f:\git\VeeSeeVSTRack\vst2_bin\/res/fonts/ShareTechMono-Regular.ttf
[0.302 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/Core/MIDIToCVInterface.svg
[0.305 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/XCO.svg
[0.305 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/knob_68px.svg
[0.305 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/knob_16px.svg
[0.306 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/button_9px_0.svg
[0.306 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/button_9px_1.svg
[0.306 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/knob_38px.svg
[0.306 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/slider_switch_2_14px_0.svg
[0.306 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/slider_switch_2_14px_1.svg
[0.307 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/port.svg
[0.307 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Fundamental/res/VCA.svg
[0.308 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/RoundLargeBlackKnob.svg
[0.308 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Fundamental/res/VCF.svg
[0.309 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/RoundHugeBlackKnob.svg
[0.310 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/ADSR.svg
[0.310 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/as-hexscrew.svg
[0.310 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/as-SlidePot.svg
[0.311 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/as-SlidePotHandle.svg
[0.311 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/as-PJ301M.svg
[0.312 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Fundamental/res/VCMixer.svg
[0.313 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/LEDSlider.svg
[0.313 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/LEDSliderGreenHandle.svg
[16.370 info src/app/RackWidget.cpp:154] Saving patch to string
[0.200 info src/window.cpp:703] Loaded font f:\git\VeeSeeVSTRack\vst2_bin\/res/fonts/DejaVuSans.ttf
[0.202 info src/settings.cpp:185] Loading settings f:\git\VeeSeeVSTRack\vst2_bin\/settings.json
[0.303 info src/app/RackWidget.cpp:192] Loading patch from string
[0.304 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/Core/AudioInterface.svg
[0.305 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/ScrewSilver.svg
[0.305 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/PJ301M.svg
[0.305 info src/window.cpp:703] Loaded font f:\git\VeeSeeVSTRack\vst2_bin\/res/fonts/ShareTechMono-Regular.ttf
[0.306 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/Core/MIDIToCVInterface.svg
[0.309 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/XCO.svg
[0.309 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/knob_68px.svg
[0.309 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/knob_16px.svg
[0.309 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/button_9px_0.svg
[0.310 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/button_9px_1.svg
[0.310 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/knob_38px.svg
[0.310 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/slider_switch_2_14px_0.svg
[0.310 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/slider_switch_2_14px_1.svg
[0.310 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Bogaudio/res/port.svg
[0.311 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Fundamental/res/VCA.svg
[0.311 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/RoundLargeBlackKnob.svg
[0.312 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/Fundamental/res/VCF.svg
[0.312 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\/res/ComponentLibrary/RoundHugeBlackKnob.svg
[0.313 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/ADSR.svg
[0.314 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/as-hexscrew.svg
[0.314 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/as-SlidePot.svg
[0.314 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/as-SlidePotHandle.svg
[0.315 info src/window.cpp:754] Loaded SVG f:\git\VeeSeeVSTRack\vst2_bin\plugins/AS/res/as-PJ301M.svg
[10.130 info src/app/RackWidget.cpp:154] Saving patch to string

BIN
vst2_bin/veeseevstrack_effect.dll__X86_LEGACY View File


BIN
vst2_bin/veeseevstrack_instr.dll__ View File


BIN
vst2_bin/veeseevstrack_instr.dll__X86_LEGACY__ View File


Loading…
Cancel
Save