fix RMS+Peak meter for MIDI-tracks
This commit is contained in:
parent
12780e4c8c
commit
7f47c9c5ec
@ -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 {
|
||||
|
@ -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();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user