annotate layer/LogNumericalScale.h @ 1127:9fb8dfd7ce4c spectrogram-minor-refactor

Fix threshold in spectrogram -- it wasn't working in the last release. There is a new protocol for this. Formerly the threshold parameter had a range from -50dB to 0 with the default at -50, and -50 treated internally as "no threshold". However, there was a hardcoded, hidden internal threshold for spectrogram colour mapping at -80dB with anything below this being rounded to zero. Now the threshold parameter has range -81 to -1 with the default at -80, -81 is treated internally as "no threshold", and there is no hidden internal threshold. So the default behaviour is the same as before, an effective -80dB threshold, but it is now possible to change this in both directions. Sessions reloaded from prior versions may look slightly different because, if the session says there should be no threshold, there will now actually be no threshold instead of having the hidden internal one. Still need to do something in the UI to make it apparent that the -81dB setting removes the threshold entirely. This is at least no worse than the previous, also obscured, magic -50dB setting.
author Chris Cannam
date Mon, 01 Aug 2016 16:21:01 +0100
parents 4fe7a09be0fe
children b4cb11ca8233
rev   line source
Chris@696 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@696 2
Chris@696 3 /*
Chris@696 4 Sonic Visualiser
Chris@696 5 An audio file viewer and annotation editor.
Chris@696 6 Centre for Digital Music, Queen Mary, University of London.
Chris@696 7 This file copyright 2006-2013 Chris Cannam and QMUL.
Chris@696 8
Chris@696 9 This program is free software; you can redistribute it and/or
Chris@696 10 modify it under the terms of the GNU General Public License as
Chris@696 11 published by the Free Software Foundation; either version 2 of the
Chris@696 12 License, or (at your option) any later version. See the file
Chris@696 13 COPYING included with this distribution for more information.
Chris@696 14 */
Chris@696 15
Chris@696 16 #ifndef LOG_NUMERICAL_SCALE_H
Chris@696 17 #define LOG_NUMERICAL_SCALE_H
Chris@696 18
Chris@696 19 #include <QRect>
Chris@696 20
Chris@696 21 class QPainter;
Chris@918 22 class LayerGeometryProvider;
Chris@696 23 class VerticalScaleLayer;
Chris@696 24
Chris@696 25 class LogNumericalScale
Chris@696 26 {
Chris@696 27 public:
Chris@917 28 int getWidth(LayerGeometryProvider *v, QPainter &paint);
Chris@696 29
Chris@696 30 void paintVertical
Chris@917 31 (LayerGeometryProvider *v, const VerticalScaleLayer *layer, QPainter &paint, int x0,
Chris@904 32 double minlog, double maxlog);
Chris@696 33 };
Chris@696 34
Chris@696 35 #endif
Chris@696 36