Here's a little insight on one of the techniques we used to determine if a tune was successfully recorded, especially was there any sound at all?
As you know, we determine both song length (from Songlenghts.txt) and the SID INIT clip peak of each recording to more or less create a perfect start-to-end recording for the Commodore 64 SID music.
But sometimes, we can be fooled. Its not easy to determine where did a song actually start, when we have loading times, run time, decrunch time and init time randomly for each and about every tune automatically played and recorded. You just can't but a static value where to crop a tune, so we recorded a huge overhead both in the beginning of the song and after it had played its noted songlength, to ensure we really got the recording covered (this wasn't the case with HVSC#49, the First SOASC= recordings by the way, which caused a huge amount of bug fixes).
This article is an extension of the "SILENT RECORDINGS" in our "BUGS" section of the website.
So, I thought it's sometimes better to visualize and analyze the visuality instead of doing a bunch of crazy code with frequencies, counting up bits and bytes, averaging or some other wierd code that others might had come up with.
Cause, if you can see it with your eye something is wrong, for sure a computer can well right?
I'm not a mathematician, I hate math, I suck at math. So, I have to use my way to get around this automated task once and for all.
I present to you:
The Red Pixel Count Matters!
The technique is quite simply: Load the wav file, treat the waveform data as pixels and simply draw a red background and other pixels as the audio data itself. Now, all we got to do is to count up the number of red pixels vs other colored pixels, and voila; we get ourselves a logged bug on our hands!
As you can see in the visual examples below, values below 100 or so, is a more or less sure bet that the tune is blank.
Naturally, we don't just assume, we do a visual and audible inspection for the tunes that gets flagged.
In fact, a similar routine was used to detect the almost not recognizable SID INIT click peak that appeared for the CSG8580R5 chip. The MOS6581Rx chips are way more noisy when the SID and volume/channels are initalized or turned on just as the SID tune starts.
I have chosen randomly these files:
HVSC #63\Zeta_7.sid (Track 01)
HVSC #63\Zeta_7.sid (Track 02)