2019-02-09, 01:55 AM
Hey guys,
finally managed to scrape together some miniscule skills to create this.
It's a little commandline tool for Windows, written in C# and it works like this:
Say for example, you use an external hardware effect (like a Surround decoder), but your soundcard has a lot of noise. Well, just create multiple recordings and then let it run through audiomedian. For each single audio sample, the Median will be calculated and written to the output file. The output file is always a 32 bit floating point WAV.
Same could probably work for capturing VHS audio tracks or analogue Laserdisc tracks, but it's important to note that the audio has to be absolutely perfectly in sync for this to work properly, otherwise you are likely to get some form of distortion/artifacts. And with perfectly, I mean sample-perfect.
Another thing I hope it might theoretically be used for is to take audio from multiple languages of a movie and use this to try and eliminate voice from the audio, to be left with only music and SFX. Though whether that can work reasonably has to be tested, as the soundmix is never 100% identical and often not 100% in sync, and even if it was, it's not clear if this would actually work. But hey, it's something to play with!
Here is the full readme for caveats, disclaimers and whatnot:
You need .NET Framework 4.0 and possibly 3.5. I hope you don't need any others, but feel free to let me know if that is wrong.
P.S. I can not guarantee that this is mathematically/scientifically sound or whatever, as audio is a complicated subject. So in doubt, listen to your ears.
Edit: I tested this with a recording done through my Dolby SDU4. Unfortunately the source noise level was already so high that not much change is noticeable, but it managed to cleanly remove some small spikes (probably voltage spikes or so?) that were present in the original captures. I wouldn't have even noticed them, as they are so quiet, but now I am glad they are gone. . I did that with 3 input files.
finally managed to scrape together some miniscule skills to create this.
It's a little commandline tool for Windows, written in C# and it works like this:
Code:
audiomedian input1.wav input2.wav input3.wav -o output.wav
Say for example, you use an external hardware effect (like a Surround decoder), but your soundcard has a lot of noise. Well, just create multiple recordings and then let it run through audiomedian. For each single audio sample, the Median will be calculated and written to the output file. The output file is always a 32 bit floating point WAV.
Same could probably work for capturing VHS audio tracks or analogue Laserdisc tracks, but it's important to note that the audio has to be absolutely perfectly in sync for this to work properly, otherwise you are likely to get some form of distortion/artifacts. And with perfectly, I mean sample-perfect.
Another thing I hope it might theoretically be used for is to take audio from multiple languages of a movie and use this to try and eliminate voice from the audio, to be left with only music and SFX. Though whether that can work reasonably has to be tested, as the soundmix is never 100% identical and often not 100% in sync, and even if it was, it's not clear if this would actually work. But hey, it's something to play with!
Here is the full readme for caveats, disclaimers and whatnot:
You need .NET Framework 4.0 and possibly 3.5. I hope you don't need any others, but feel free to let me know if that is wrong.
P.S. I can not guarantee that this is mathematically/scientifically sound or whatever, as audio is a complicated subject. So in doubt, listen to your ears.
Edit: I tested this with a recording done through my Dolby SDU4. Unfortunately the source noise level was already so high that not much change is noticeable, but it managed to cleanly remove some small spikes (probably voltage spikes or so?) that were present in the original captures. I wouldn't have even noticed them, as they are so quiet, but now I am glad they are gone. . I did that with 3 input files.