From 85f0c0b1adc57c33a7c4d3ef50ac22e7001739a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Nusser?= Date: Mon, 22 Jul 2019 02:35:34 +0200 Subject: Center velocities as well as disable stddev when disabling humanizer. --- src/velocityfilter.cc | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'src/velocityfilter.cc') diff --git a/src/velocityfilter.cc b/src/velocityfilter.cc index af1c524..7b41045 100644 --- a/src/velocityfilter.cc +++ b/src/velocityfilter.cc @@ -36,15 +36,13 @@ VelocityFilter::VelocityFilter(Settings& settings, Random& random, Instruments c bool VelocityFilter::filter(event_t& event, size_t pos) { - auto power_max = instruments[event.instrument]->getMaxPower(); - auto power_min = instruments[event.instrument]->getMinPower(); - float power_span = power_max - power_min; + if (settings.enable_velocity_modifier.load()) + { + float mean = event.velocity; + float stddev = settings.velocity_stddev.load(); + // the 30.0f were determined empirically + event.velocity += random.normalDistribution(mean, stddev / 30.0f); + } - float mean = event.velocity - .5f/127.f; // XXX: this should actually be done when reading the events - float stddev = settings.velocity_stddev.load(); - // the 20.0f we determined empirically - float lvl = power_min + random.normalDistribution(mean, stddev / 30.0f) * power_span; - - event.velocity = lvl; return true; } -- cgit v1.2.3