From 5b52aa956f65b039f8fa872018ca35e36593eaf0 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sat, 17 Dec 2022 13:12:22 +0100 Subject: [PATCH] Prepare for region polarity inversion (using negative gain) --- libs/ardour/audioregion.cc | 8 +++++++- libs/waveview/wave_view.cc | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/libs/ardour/audioregion.cc b/libs/ardour/audioregion.cc index b091e7d89b..0db62eac45 100644 --- a/libs/ardour/audioregion.cc +++ b/libs/ardour/audioregion.cc @@ -447,7 +447,13 @@ AudioRegion::read_peaks (PeakData *buf, samplecnt_t npeaks, samplecnt_t offset, return 0; } - if (_scale_amplitude != 1.0f) { + if (_scale_amplitude < 0.f) { + for (samplecnt_t n = 0; n < npeaks; ++n) { + const float tmp = buf[n].max; + buf[n].max = _scale_amplitude * buf[n].min; + buf[n].min = _scale_amplitude * tmp; + } + } else if (_scale_amplitude != 1.0f) { for (samplecnt_t n = 0; n < npeaks; ++n) { buf[n].max *= _scale_amplitude; buf[n].min *= _scale_amplitude; diff --git a/libs/waveview/wave_view.cc b/libs/waveview/wave_view.cc index 0847125201..6ffe5345e5 100644 --- a/libs/waveview/wave_view.cc +++ b/libs/waveview/wave_view.cc @@ -483,7 +483,7 @@ WaveView::draw_image (Cairo::RefPtr& image, PeakData* peaks has been scaled by scale_amplitude() already. */ - const double clip_level = _global_clip_level * req->image->props.amplitude; + const double clip_level = _global_clip_level * fabs (req->image->props.amplitude); const Shape shape = req->image->props.shape; const bool logscaled = req->image->props.logscaled;