diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/latencyfilter.cc | 7 | ||||
-rw-r--r-- | src/settings.h | 23 |
2 files changed, 16 insertions, 14 deletions
diff --git a/src/latencyfilter.cc b/src/latencyfilter.cc index 5cb6db2..abb67cd 100644 --- a/src/latencyfilter.cc +++ b/src/latencyfilter.cc @@ -47,9 +47,9 @@ static T1 getLatencySamples(T1 latency_ms, T2 samplerate) bool LatencyFilter::filter(event_t& event, std::size_t pos) { auto enabled = settings.enable_latency_modifier.load(); - auto latency_ms = settings.latency_max.load(); + auto latency_ms = settings.latency_max_ms.load(); auto samplerate = settings.samplerate.load(); - auto latency_laid_back = settings.latency_laid_back.load(); + auto latency_laid_back_ms = settings.latency_laid_back_ms.load(); auto latency_stddev = settings.latency_stddev.load(); auto latency_regain = settings.latency_regain.load(); @@ -59,6 +59,7 @@ bool LatencyFilter::filter(event_t& event, std::size_t pos) } auto latency = getLatencySamples(latency_ms, samplerate); + auto latency_laid_back = getLatencySamples(latency_laid_back_ms, samplerate); // Assert latency_regain is within range [0; 1]. assert(latency_regain >= 0.0f && latency_regain <= 1.0f); @@ -102,7 +103,7 @@ std::size_t LatencyFilter::getLatency() const bool enabled = settings.enable_latency_modifier.load(); if(enabled) { - auto latency_ms = settings.latency_max.load(); + auto latency_ms = settings.latency_max_ms.load(); auto samplerate = settings.samplerate.load(); return getLatencySamples(latency_ms, samplerate); } diff --git a/src/settings.h b/src/settings.h index b9d627a..6b4048c 100644 --- a/src/settings.h +++ b/src/settings.h @@ -102,13 +102,14 @@ struct Settings Atomic<bool> enable_latency_modifier{false}; //! Maximum "early hits" introduces latency in milliseconds. - Atomic<std::size_t> latency_max{100u}; + Atomic<float> latency_max_ms{150.0f}; //! 0 := on-beat //! positive := laid back //! negative := up-beat - static int constexpr latency_laid_back_default = 0; - Atomic<int> latency_laid_back{latency_laid_back_default}; + //! Same range is [-100; 100] ms + static float constexpr latency_laid_back_ms_default = 0.0f; + Atomic<float> latency_laid_back_ms{latency_laid_back_ms_default}; //! 0 := Robot //! 100 := Good drummer @@ -172,8 +173,8 @@ struct SettingsGetter SettingRef<bool> has_bleed_control; SettingRef<bool> enable_latency_modifier; - SettingRef<std::size_t> latency_max; - SettingRef<int> latency_laid_back; + SettingRef<float> latency_max_ms; + SettingRef<float> latency_laid_back_ms; SettingRef<float> latency_stddev; SettingRef<float> latency_regain; SettingRef<int> latency_current; @@ -210,8 +211,8 @@ struct SettingsGetter , master_bleed{settings.master_bleed} , has_bleed_control{settings.has_bleed_control} , enable_latency_modifier{settings.enable_latency_modifier} - , latency_max{settings.latency_max} - , latency_laid_back{settings.latency_laid_back} + , latency_max_ms{settings.latency_max_ms} + , latency_laid_back_ms{settings.latency_laid_back_ms} , latency_stddev{settings.latency_stddev} , latency_regain{settings.latency_regain} , latency_current{settings.latency_current} @@ -263,8 +264,8 @@ public: Notifier<bool> has_bleed_control; Notifier<bool> enable_latency_modifier; - Notifier<std::size_t> latency_max; - Notifier<int> latency_laid_back; + Notifier<float> latency_max_ms; + Notifier<float> latency_laid_back_ms; Notifier<float> latency_stddev; Notifier<float> latency_regain; Notifier<int> latency_current; @@ -313,8 +314,8 @@ public: EVAL(has_bleed_control); EVAL(enable_latency_modifier); - EVAL(latency_max); - EVAL(latency_laid_back); + EVAL(latency_max_ms); + EVAL(latency_laid_back_ms); EVAL(latency_stddev); EVAL(latency_regain); EVAL(latency_current); |