[17 August 2017]
Dropout Spy 32 and 64-bit VST for OSX
Dropout Spy is a plugin that tracks the variance in plugin callback timing, in order to detect dropouts in audio processing. This can help you determine if your DAW is working reliably, and help set your buffer size.
Drop the plugin somewhere in the chain between recording input and monitor output. The end of your master bus should be fine.
Watch the meter -- left & green is good, right & yellow or red are bad. If you see red, you definitely had a dropout; if you see yellow, you might have had a dropout.
The little white tick mark at the bottom of the meter shows the relative timing of the most recent buffer callback.
The reset button clears the histogram and counts.
The number to the right of the meter is the current buffer size. Change the buffer to a larger size in your DAW if you get warnings or dropouts (or try other voodoo like turning off Wifi, closing browser windows, removing plugins, deactivating tracks, dropping it all in the ocean, etc).
Digital recording on PC's (including Macs) is built on a lie. The lie is that computers & software are reliably fast enough to prevent dropouts when recording. In fact, computers do have plenty of processing power, but operating systems like Windows and OSX do not guarantee that they can handle your audio on top of everything else they are doing, without any gaps in audio processing.
In practice, you can make it work -- you set your audio buffer in your DAW to a large enough value, and you should very rarely (or never) get dropouts. The caveat is that a large audio buffer means there is a long latency between the audio input and audio output that you can monitor. A safe buffer size like 2048 samples at 44.1kHz is 46 ms of latency -- that's way too long to sing or play guitar while monitoring through the computer.
Instead, your options are using a shorter buffer size, or monitoring on the analog side before the audio goes into your DAW. If you do want to monitor through your DAW, in order to hear real-time effects and also verify that you're capturing what you want, then you have to trade off latency with the risk of dropouts.
For some reason, many DAWs like the one I use most often (Ableton Live) do not tell you when a dropout has occurred. The only indication of a dropout is a (possibly) audible click in playback. If you happen to not notice such a click during recording (e.g. perhaps you are concentrating on your performance), you may be stuck later trying to patch over it or disguise it. INTOLERABLE!
That's why I wrote Dropout Spy: to visually monitor and track the possibility of audio dropouts. It's not 100% foolproof, but the one thing it tries to guarantee is that if it is placed in the audio chain between live input and live monitoring, and it reports a dropout, then there was an audio dropout in that chain.
The way it does this is by monitoring the variance in the timing of buffer callbacks into the plugin. If the variance exceeds the buffer latency, then the DAW must have missed a deadline somewhere. It's possible that a deadline was missed without the plugin being able to detect it though.
In addition to counting certain dropouts, the plugin shows a real-time histogram of callback variance, so you can get an idea how dangerously you are living. The plugin also counts "warnings" -- when the variance exceeds half the buffer latency. A warning is suggestive that a dropout may have occurred, and that you should increase your buffer size.
There are also options to emit audible clicks on warning or dropout. For a dropout, it's a single sample at +1; for a warning, it's a single sample at -1. Either one should be audible if you're monitoring, and also removable later with minimal damage, if it ends up in a recording.
Dropout Spy doesn't know the true timing of the buffer deadline, it only looks at variance in the callbacks to itself. So dropouts can occur that it can't detect. For the same reason, when Dropout Spy detects a dropout, the actual exact location of the dropout in the audio stream is not certain.
A DAW could, in principle, pre-compute non-real-time audio sources, so Dropout Spy in such a chain might think there was a dropout when in fact, no deadline was actually missed. I don't know if DAWs really do this or not. In any case, it would not apply to the situation of real-time monitoring of an external source.