Browse Source

Fix NaN when controlling log params with MIDI CC

Fixes #625
tags/v1.9.9
falkTX 7 years ago
parent
commit
1967b55052
2 changed files with 8 additions and 2 deletions
  1. +7
    -1
      source/backend/CarlaBackend.h
  2. +1
    -1
      source/backend/engine/CarlaEngineData.cpp

+ 7
- 1
source/backend/CarlaBackend.h View File

@@ -32,6 +32,7 @@
# define CARLA_BACKEND_START_NAMESPACE namespace CarlaBackend {
# define CARLA_BACKEND_END_NAMESPACE }
# define CARLA_BACKEND_USE_NAMESPACE using namespace CarlaBackend;
# include <algorithm>
# include <cmath>
/* Start namespace */
CARLA_BACKEND_START_NAMESPACE
@@ -1453,7 +1454,12 @@ typedef struct {
if (value >= 1.0f)
return max;

return min * std::pow(max/min, value);
float rmin = min;

if (std::abs(min) < std::numeric_limits<float>::epsilon())
rmin = 0.00001f;

return rmin * std::pow(max/rmin, value);
}
#endif /* __cplusplus */



+ 1
- 1
source/backend/engine/CarlaEngineData.cpp View File

@@ -125,7 +125,7 @@ void EngineEvent::fillFromMidiData(const uint8_t size, const uint8_t* const data
{
CARLA_SAFE_ASSERT_RETURN(size >= 3,);

const uint8_t midiValue(carla_fixedValue<uint8_t>(0, 127, data[2])); // ensures 0.0<->1.0 value range
const uint8_t midiValue = carla_fixedValue<uint8_t>(0, 127, data[2]); // ensures 0.0<->1.0 value range

ctrl.type = kEngineControlEventTypeParameter;
ctrl.param = midiControl;


Loading…
Cancel
Save