Programming Challenge - save an episode of GeekNights
So, I fucked up. (And, relevant to the show, didn't pass the buck). ;^)
The new version of Audition CC fucked up the clock timing in the mixer (thanks to a WASAPI issue). This introduced regular silent gaps in the show audio from tonight. Extremely regular. 70ish audio samples (I didn't count, but they look perfectly regular) spaced evenly.
It makes the show sound like shit.
Now, I was able to fix it going forward after hitting some Adobe support and getting ASIO working again instead. But, tonight's show, as I said, sounds like shit.
I
do have the Marantz backup, but
1. It's mono
2. Scott is clipping badly (I never re-leveled it since I used it in the car on the way to the shore)
So, it sounds JUST AS MUCH like shit.
Thus, my challenge to you. Write me a script that can remove (just delete) these periodic sets of zero samples from the wav files.
Sample:
https://drive.google.com/a/frontrowcrew.com/file/d/0B9Tov5UjNvVtYTB5YlBBekZwU0E/view?usp=sharingIf you do this, I'll pay you some cash money and everlasting fame. Hell, you can even be on GeekNights if you want. Replace me as the host for a night, on account of my fuckup. ;^)
If no one does it, I'll take a crack at it this weekend, but I won't have time until then. It's a bit too granular to use an existing Audition filter for, especially considering the periodic nature of the interference.
Comments
That reduces silences (defined as under n amplitude for x milliseconds) by 50%.
The same filter can't work on the raw sample level. Even Audition's built-in ones can't process increments smaller than 10ms.
Also, this issue is periodic. n zero samples every x samples need to be removed. Other "silences" aren't a problem, and trying to remove them based solely on when something was silent irrespective of the period would throw things all out of sync.
Any sequence of exactly 71 zero samples must be deleted.
It's exactly 71 sequential frames that are zero or within that narrow range from what I can see. "Regular" old silence doesn't ever seem to go that many frames without many significant outliers.
Visualized (the points are the actual data, per Audition). Soom all the way in, and you see the tiny variations:
"Real" silences never look like that.
I might have a for-real copy of Matlab at work (for an unrelated project) that I can use. I'll have to see tomorrow.
I wrote a shit script in Python that was pretty inaccurate and only applied to a small sample, but it proved that if those silences are cut, the audio is OK.
https://www.dropbox.com/s/naob7q4v1cqhfr9/fixed.wav?dl=0
The top is your fixed file. It sounds a lot better, but you can see the pops.
I can use regular audio filters to pull the pops out (bottom), and it's eminently listenable.
https://drive.google.com/file/d/0B9Tov5UjNvVtOEVSbUFnNm9LTUU/view?usp=sharing
Playing with Okeefe's fixed file, I can remove the pops pretty well with a couple of passes of a bunch of different filters.
https://www.dropbox.com/s/1jeagrlfmse2p8u/GN20150623fixed.zip?dl=0
You get that typical high frequency burst at either edge. But then there's the long segment of essentially missing samples in the middle, hovering near zero. Because it's so long, it's not (insofar as I can imagine) able to be reconstructed easily, and it wreaks all manner of havoc with most of the tools I have at my disposal.
The pops and crackles show up pretty plainly as the uniform vertical lines in the spectral display.
http://frontrowcrew.com/geeknights/20150623/the-new-wolfenstein-games/
The pitch wasn't raised because no frequencies were changed. The file was uniformly shortened. It acted like a rough version of a speed shift effect.
Interpolation rarely works well. Better to just cut them out and be done with it.
Nobody responded to my Matlab user group request. Jerks. I'm still curious to see if I could do this, and how it would sound, but I don't have time to build the whole structure. Plus, somebody did it already!