From a7e14b2065b6f1ee07aac3c6b936d968abfbd42c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Nusser?= Date: Sat, 21 Jul 2018 15:44:46 +0200 Subject: Fix visualization to be samplerate independent. --- src/latencyfilter.cc | 9 ++++++++- src/settings.h | 8 ++++---- 2 files changed, 12 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/latencyfilter.cc b/src/latencyfilter.cc index 9410b50..0f3259b 100644 --- a/src/latencyfilter.cc +++ b/src/latencyfilter.cc @@ -44,6 +44,12 @@ static T1 getLatencySamples(T1 latency_ms, T2 samplerate) return latency_ms * samplerate / 1000.; } +template +static T1 getLatencyMs(T1 latency_samples, T2 samplerate) +{ + return 1000. * latency_samples / samplerate; +} + bool LatencyFilter::filter(event_t& event, std::size_t pos) { auto enabled = settings.enable_latency_modifier.load(); @@ -86,7 +92,8 @@ bool LatencyFilter::filter(event_t& event, std::size_t pos) event.offset += latency_laid_back; // laid back offset (user controlled) event.offset += latency_offset; // current drift - settings.latency_current.store(latency_offset + latency_laid_back); + auto latency_current_ms = getLatencyMs(latency_offset + latency_laid_back, samplerate); + settings.latency_current.store(latency_current_ms); return true; } diff --git a/src/settings.h b/src/settings.h index f37a810..e698d20 100644 --- a/src/settings.h +++ b/src/settings.h @@ -126,8 +126,8 @@ struct Settings static float constexpr latency_regain_default = 0.9f; Atomic latency_regain{latency_regain_default}; - // Current latency offset - for UI - Atomic latency_current{0}; + // Current latency offset in ms - for UI + Atomic latency_current{0}; }; //! Settings getter class. @@ -177,7 +177,7 @@ struct SettingsGetter SettingRef latency_laid_back_ms; SettingRef latency_stddev; SettingRef latency_regain; - SettingRef latency_current; + SettingRef latency_current; SettingsGetter(Settings& settings) : drumkit_file(settings.drumkit_file) @@ -268,7 +268,7 @@ public: Notifier latency_laid_back_ms; Notifier latency_stddev; Notifier latency_regain; - Notifier latency_current; + Notifier latency_current; void evaluate() { -- cgit v1.2.3