Browse Source

normalize parameter value (VSTPluginGetParameter)

pull/1639/head
bsp2 6 years ago
parent
commit
5bf1590347
1 changed files with 24 additions and 1 deletions
  1. +24
    -1
      src/engine.cpp

+ 24
- 1
src/engine.cpp View File

@@ -21,6 +21,14 @@
#include <fenv.h>
#endif

#ifdef USE_LOG_PRINTF
extern void log_printf(const char *logData, ...);
#undef Dprintf
#define Dprintf log_printf
#else
#define Dprintf printf
#endif // USE_LOG_PRINTF

namespace rack {


@@ -369,6 +377,7 @@ void vst2_handle_queued_params(void) {
if(paramRange > 0.0f)
{
float value = (qp.value * paramRange) + paramWidget->minValue;
// Dprintf("vst2_handle_queued_params: paramId=%d value=%f min=%f max=%f\n", paramId, value, paramWidget->minValue, paramWidget->maxValue);
engineSetParam(module, paramId, value, false/*bVSTAutomate*/);

// Update UI widget
@@ -405,7 +414,21 @@ float vst2_get_param(int uniqueParamId) {
{
if(sUI(paramId) < sUI(module->params.size())) // paranoia
{
return module->params[paramId].value;
ModuleWidget *moduleWidget = global_ui->app.gRackWidget->findModuleWidgetByModule(module);
if(NULL != moduleWidget)
{
// Find
ParamWidget *paramWidget = moduleWidget->findParamWidgetByParamId(paramId);
if(NULL != paramWidget)
{
if(isfinite(paramWidget->minValue) && isfinite(paramWidget->maxValue))
{
float value = module->params[paramId].value;
value = (value - paramWidget->minValue) / (paramWidget->maxValue - paramWidget->minValue);
return value;
}
}
}
}
}
return 0.0f;


Loading…
Cancel
Save