summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/level_meter.cc7
-rw-r--r--libs/ardour/meter.cc4
2 files changed, 5 insertions, 6 deletions
diff --git a/gtk2_ardour/level_meter.cc b/gtk2_ardour/level_meter.cc
index 1a5edc8472..6a120fdb80 100644
--- a/gtk2_ardour/level_meter.cc
+++ b/gtk2_ardour/level_meter.cc
@@ -90,7 +90,6 @@ LevelMeter::update_meters ()
{
vector<MeterInfo>::iterator i;
uint32_t n;
- float peak, mpeak;
if (!_meter) {
return 0.0f;
@@ -100,7 +99,7 @@ LevelMeter::update_meters ()
for (n = 0, i = meters.begin(); i != meters.end(); ++i, ++n) {
if ((*i).packed) {
- mpeak = _meter->meter_level(n, MeterMaxPeak);
+ const float mpeak = _meter->meter_level(n, MeterMaxPeak);
if (mpeak > (*i).max_peak) {
(*i).max_peak = mpeak;
(*i).meter->set_highlight(mpeak > Config->get_meter_peak());
@@ -109,10 +108,10 @@ LevelMeter::update_meters ()
max_peak = mpeak;
}
- peak = _meter->meter_level (n, meter_type);
if (n < nmidi) {
- (*i).meter->set (peak);
+ (*i).meter->set (_meter->meter_level (n, MeterPeak));
} else {
+ const float peak = _meter->meter_level (n, meter_type);
if (meter_type == MeterPeak) {
(*i).meter->set (log_meter (peak));
} else {
diff --git a/libs/ardour/meter.cc b/libs/ardour/meter.cc
index 9871b582c0..41500c7cb0 100644
--- a/libs/ardour/meter.cc
+++ b/libs/ardour/meter.cc
@@ -282,8 +282,8 @@ PeakMeter::meter_level(uint32_t n, MeterType type) {
case MeterKrms:
{
const uint32_t n_midi = current_meters.n_midi();
- if ((n - n_midi) < _kmeter.size()) {
- return fast_coefficient_to_dB(_kmeter[n]->read());
+ if ((n - n_midi) < _kmeter.size() && (n - n_midi) >= 0) {
+ return fast_coefficient_to_dB (_kmeter[n-n_midi]->read());
}
return minus_infinity();
}