Accidental HDR recording

Published: Sep 16, 2016 by luxagen

English thunderstorms (at least near London) tend to be pretty pathetic single-cell rumblers that last for 10 minutes before petering out. That changed last night with the arrival of an almost tropical display. I decided to get the digital recorder out and get some audio.

If you’ve never tried to record thunder, you won’t appreciate how difficult it is. The dynamic range is truly awesome, and avoiding clipping requires such conservative gain levels that normal sounds barely register on the level meters. I therefore set a level that kept the rain noise very low, and enabled the recorder’s analogue limiter as a precaution. This turned out to be a mistake because, when the next thunder arrived, the meters didn’t even get close to peaking and I started turning up the input gain, failing to realise that the limiter – not the signal – was the cause of the low peak levels.


When I heard the recording today in REAPER, I was miffed. Some of the thunder was fantastic, but the limiter had squashed the signal badly, not only ruining the sound of the rain but making it difficult to noise-reduce away without damaging the thunder. Keeping the ability to use surgical noise reduction later is, in fact, the major reason that one should set levels properly in the first place instead of using input-side compressors; if only I’d taken my own advice.


I was considering deleting the recordings altogether when I had an idea: the rain noise was so constant that it might actually provide a reference for measuring the limiter’s gain. If I could design a second limiter to analyse only the rain noise and apply an infinite compression ratio, the right threshold – low enough to cause some gain reduction at the thunder’s peak volume, when the original limiter’s gain was lowest – would keep the power of the rain noise fixed. Counterintuitively, a second limiter would undo the effect of the first!

After a quick look at one of the loudest claps to determine where in the spectrum the thunder ended, I added ReaComp to the track and started tweaking. The final parameter values are fairly ludicrous by any normal standards of dynamics processing:

Just look at the makeup on that.

This is, of course, down to a combination of the epic dynamic range of the original signal and the extremely fast level-tracking required to undo the original limiter’s effects.

The 15 kHz highpass on the level-detector’s input, for example, passes only 5 kHz of bandwidth. You might think that this is needed to keep the thunder firmly out of the level detector, but in fact a cutoff of 8 kHz should be more than enough for that. When I used 8 kHz, though, the results were much worse. I suspect that the level-detector’s filters are somehow to blame:

  • if the filters have too gentle a slope, even a cutoff of 8 kHz might still pass too much thunder;
  • if the filters are too steep, the resulting group delay could be enough to ruin synchronisation.

One slight annoyance here is ReaComp’s arbitrary upper limit of 20 kHz for its level-detector’s lowpass filter; the signal’s spectrum shows pumping to 30 kHz and beyond, which might improve the results even more. I also found myself resenting ReaComp’s millisecond resolution for its pre-comp and release times.

To an audio engineer, the RMS length and attack/decay times might seem recklessly short because using such settings in a normal dynamics-processing scenario usually causes such rapid gain modulations as to badly distort the signal. Remember, though, that this is not a normal compression job; we’re not trying to reduce dynamic range arbitrarily, we’re using a small band of the signal with (originally) very steady statistics to restore it. As long as it measures the reference correctly, there’s no limit (in principle) to how quickly the limiter can operate, and the rapid gain modulation that would normally distort low-frequency signals will actually repair them. In practice I found that reducing the RMS length too much audibly distorted the thunder despite the level-detector’s extreme highpass filtering, so I settled on one millisecond to be safe.

The following before-and-after samples demonstrate the results nicely; you’ll need to listen at a fairly high level, on reasonable equipment, to hear the rain noise properly and appreciate how much of the limiter pumping I managed to eliminate.

sample before after