summaryrefslogtreecommitdiff
path: root/plugingui
diff options
context:
space:
mode:
authorAndré Nusser <andre.nusser@googlemail.com>2018-07-21 15:44:46 +0200
committerAndré Nusser <andre.nusser@googlemail.com>2018-07-21 15:44:46 +0200
commita7e14b2065b6f1ee07aac3c6b936d968abfbd42c (patch)
tree1d4e84c106878b75d082cb1d1ceb345a09adb725 /plugingui
parent6ba96e9a60428676fdf5cf6060e5d981ba1f3976 (diff)
Fix visualization to be samplerate independent.
Diffstat (limited to 'plugingui')
-rw-r--r--plugingui/humaniservisualiser.cc13
-rw-r--r--plugingui/humaniservisualiser.h6
2 files changed, 9 insertions, 10 deletions
diff --git a/plugingui/humaniservisualiser.cc b/plugingui/humaniservisualiser.cc
index f0c016a..92da164 100644
--- a/plugingui/humaniservisualiser.cc
+++ b/plugingui/humaniservisualiser.cc
@@ -66,8 +66,7 @@ HumaniserVisualiser::Canvas::Canvas(GUI::Widget* parent,
SettingsNotifier& settings_notifier)
: GUI::Widget(parent)
, settings_notifier(settings_notifier)
- , latency_max_samples(settings.latency_max_ms.load() *
- settings.samplerate.load() / 1000)
+ , latency_max_ms(settings.latency_max_ms.load())
, settings(settings)
{
CONNECT(this, settings_notifier.enable_latency_modifier,
@@ -99,16 +98,16 @@ void HumaniserVisualiser::Canvas::repaintEvent(GUI::RepaintEvent *repaintEvent)
p.clear();
- const int spx = latency_max_samples * 2 / width(); // samples pr. pixel
+ const float mspx = latency_max_ms * 2 / width(); // ms pr. pixel
- int x = latency_offset / spx + width() / 2;
+ int x = latency_offset / mspx + width() / 2;
float v = (-1.0f * velocity_offset + 1.0f) * 0.8;
int y = height() * 0.2 + v * height();
y = std::max(0, y);
- int w = 50.f * latency_stddev / spx * 3 * 2; // stddev is ~ +/- 3 span
+ int w = (3. * 2.) * latency_stddev / mspx; // stddev is ~ +/- 3 span
int h = velocity_stddev * height() / 4;
- DEBUG(vis, "max: %d, spx: %d, x: %d, w: %d", latency_max_samples, spx, x, w);
+ DEBUG(vis, "max: %f, mspx: %f, x: %d, w: %d", latency_max_ms, mspx, x, w);
// Stddev squares
if(latency_enabled)
@@ -168,7 +167,7 @@ void HumaniserVisualiser::Canvas::velocityEnabledChanged(bool enabled)
redraw();
}
-void HumaniserVisualiser::Canvas::latencyOffsetChanged(int offset)
+void HumaniserVisualiser::Canvas::latencyOffsetChanged(float offset)
{
latency_offset = offset;
redraw();
diff --git a/plugingui/humaniservisualiser.h b/plugingui/humaniservisualiser.h
index 576ae6f..55e37d2 100644
--- a/plugingui/humaniservisualiser.h
+++ b/plugingui/humaniservisualiser.h
@@ -63,7 +63,7 @@ private:
void latencyEnabledChanged(bool enabled);
void velocityEnabledChanged(bool enabled);
- void latencyOffsetChanged(int offset);
+ void latencyOffsetChanged(float offset);
void velocityOffsetChanged(float offset);
void latencyStddevChanged(float stddev);
void latencyLaidbackChanged(float laidback);
@@ -77,13 +77,13 @@ private:
bool latency_enabled{false};
bool velocity_enabled{false};
- int latency_offset;
+ float latency_offset;
float velocity_offset;
float latency_stddev;
int laidback;
float velocity_stddev;
SettingsNotifier& settings_notifier;
- const int latency_max_samples;
+ const float latency_max_ms;
Settings& settings;
};