Analyzed some playouts of a couple of hours and coulnd't detect any discontinuities yet (execpt the positions where the audio file is done and starts from the beginning. btw - these little gaps are not constant but with a little difference of less than 100ms).
To detect gaps and discontinuities of the playout, I used an audio file containing sine wave data with constant frequency/magnitude as the fallback audio. I recorded the playout of this fallback track using a second, independent audio interface / machine for about 14 hrs and used the following approach to analyse the signal against gaps:
Since we’re expecting a constant sine wave frequency in the recorded playout, we can use the complex domain of its FFT to check the phase deviation. The basic idea is, that the phase deviation of a continuous sine wave is very close to zero, while gaps will result in a high factor - about 1000 or multiples in this configuration. While this algorithm is originally intended for detecting onsets in musical signals, it can also be used to detect „offsets“ such as discontinuities.
This approach seems to be very reliable for constant frequency, but unfortunately, the fallback audio file’s duration is just 1 min., so I got a „natural offset“ every minute, which must be considered. I should use at least 1hr next time to reduce data overhead.
Beside these natural gaps, there a 2 significant discontinuities at the very beginning which might be related to my final line-check before leaving the machines untouched over night.
So I can confirm that the playout runs stable for ~14 hrs - at least without any other significant activities on the machine.
These are great news! @chrizz is it easy to run this setup/test at another server for longer time? What software did you use to check/analyze the recording? I would like to run these tests at FREIRAD for multiple days or maybe even weeks.
I think the easiest way is to use a command-line tool such as aubio. Use --onset method complex (also try phase or others). For analyzing long recordings, the default --hopsize of 256 should be increased (pow of 2) to decrease the iterations over the audio data. I even used 32768 and still got really useful results.
I could create a little project for automating this - let's discuss it on Thu.