Showing the changes to interface/src/Application.cpp (1 of 2 files). Show all
Unified · Split
| @@ -2503,14 +2503,22 @@ void Application::displayOverlay() { · 2502 unmodified lines | ||
| 2503 | 2503 | } |
| 2504 | 2504 | } |
| 2505 | 2505 | |
| 2506 | − const int AUDIO_METER_WIDTH = 300; | |
| 2506 | + const int AUDIO_METER_WIDTH = 200; | |
| 2507 | 2507 | const int AUDIO_METER_INSET = 2; |
| 2508 | 2508 | const int AUDIO_METER_SCALE_WIDTH = AUDIO_METER_WIDTH - 2 * AUDIO_METER_INSET; |
| 2509 | 2509 | const int AUDIO_METER_HEIGHT = 8; |
| 2510 | 2510 | const int AUDIO_METER_Y = _glWidget->height() - 40; |
| 2511 | 2511 | const int AUDIO_METER_X = 25; |
| 2512 | 2512 | const float CLIPPING_INDICATOR_TIME = 1.0f; |
| 2513 | − float audioLevel = log10(_audio.getLastInputLoudness() + 1.0) / log10(32767.0) * (float)AUDIO_METER_SCALE_WIDTH; | |
| 2513 | + const float LOG2 = log(2.f); | |
| 2514 | + float audioLevel = 0.f; | |
| 2515 | + float loudness = _audio.getLastInputLoudness() + 1.f; | |
| 2516 | + float log2loudness = log(loudness) / LOG2; | |
| 2517 | + if (loudness < 2048) { | |
| 2518 | + audioLevel = (log2loudness / 11.f) * (AUDIO_METER_SCALE_WIDTH / 5.f); | |
| 2519 | + } else { | |
| 2520 | + audioLevel = (log2loudness - 10.f) * (AUDIO_METER_SCALE_WIDTH / 5.f); | |
| 2521 | + } | |
| 2514 | 2522 | bool isClipping = ((_audio.getTimeSinceLastClip() > 0.f) && (_audio.getTimeSinceLastClip() < CLIPPING_INDICATOR_TIME)); |
| 2515 | 2523 | |
| 2516 | 2524 | if (isClipping) { |