diff options
| author | André Nusser <andre.nusser@googlemail.com> | 2018-07-21 15:44:46 +0200 | 
|---|---|---|
| committer | André Nusser <andre.nusser@googlemail.com> | 2018-07-21 15:44:46 +0200 | 
| commit | a7e14b2065b6f1ee07aac3c6b936d968abfbd42c (patch) | |
| tree | 1d4e84c106878b75d082cb1d1ceb345a09adb725 /plugingui | |
| parent | 6ba96e9a60428676fdf5cf6060e5d981ba1f3976 (diff) | |
Fix visualization to be samplerate independent.
Diffstat (limited to 'plugingui')
| -rw-r--r-- | plugingui/humaniservisualiser.cc | 13 | ||||
| -rw-r--r-- | plugingui/humaniservisualiser.h | 6 | 
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;  	}; | 
