diff --git a/libs/canvas/wave_view.cc b/libs/canvas/wave_view.cc index 4b9ff2dd9d..f4e56cb1d5 100644 --- a/libs/canvas/wave_view.cc +++ b/libs/canvas/wave_view.cc @@ -399,7 +399,7 @@ WaveView::draw_image (Cairo::RefPtr& image, PeakData* _peak has been scaled by scale_amplitude() already. */ - const double clip_level = _clip_level * _region_amplitude; + const double clip_level = _clip_level * req->amplitude; if (_shape == WaveView::Rectified) { @@ -737,6 +737,7 @@ WaveView::draw_image (Cairo::RefPtr& image, PeakData* _peak boost::shared_ptr WaveView::cache_request_result (boost::shared_ptr req) const { + boost::shared_ptr ret (new WaveViewCache::Entry (req->channel, req->height, req->amplitude, @@ -983,6 +984,12 @@ WaveView::generate_image (boost::shared_ptr req, bool in_ if (peaks_read > 0) { + /* region amplitude will have been used to generate the + * peak values already, but not the visual-only + * amplitude_above_axis. So apply that here before + * rendering. + */ + if (_amplitude_above_axis != 1.0) { for (framecnt_t i = 0; i < n_peaks; ++i) { peaks[i].max *= _amplitude_above_axis;