RMS meter - reset after calculating new data
authorRobin Gareus <robin@gareus.org>
Tue, 16 Jul 2013 14:25:27 +0000 (16:25 +0200)
committerPaul Davis <paul@linuxaudiosystems.com>
Thu, 8 Aug 2013 19:23:10 +0000 (15:23 -0400)
libs/ardour/kmeterdsp.cc

index 77d1a87a8135dfee1b2b7fe01bfdc9a800e333e6..afd0f71719c0397046e5cf793e5ef86243cb6b2a 100644 (file)
@@ -46,12 +46,6 @@ void Kmeterdsp::process (float *p, int n)
 
     float  s, t, z1, z2;
 
-    if (_flag) // Display thread has read the rms value.
-    {
-       _rms  = 0;
-       _flag = false;
-    }
-
     // Get filter state.
     z1 = _z1;
     z2 = _z2;
@@ -88,9 +82,18 @@ void Kmeterdsp::process (float *p, int n)
     _z1 = z1 + 1e-20f;
     _z2 = z2 + 1e-20f;
 
-    // Adjust RMS value and update maximum since last read().
     s = sqrtf (2 * z2);
-    if (s > _rms) _rms = s;
+
+    if (_flag) // Display thread has read the rms value.
+    {
+       _rms  = s;
+       _flag = false;
+    }
+    else
+    {
+        // Adjust RMS value and update maximum since last read().
+        if (s > _rms) _rms = s;
+    }
 }