windows - Live noise-filter on line-in

07
2014-07
  • Gant

    I'm running the following setup:

    • Xbox 360 is hooked up to my (PC) screen via HDMI/DVI converter.
    • Because the Xbox has no dedicated sound output, except for optical S/PIDF, I'm also using the AV/RCA output, namely just the audio, which is connected to an old stereo, which is then connected to my PCs line-in.

    I'm now experiencing a some of noise. I'm using one of the standard "Realtek High Definition Audio" cards, which doesn't seem to offer this kind of functionality. Is there a software that will playback audio right off a device while running filters on it? It doesn't have to create a device on its own, I just want to listen to it.

    Here's a sample: http://puu.sh/1x2MA/79c38b25abfe51058fd664971c8e4ab7

  • Answers
  • Nathan V

    You can do this with Winamp using the line-in feature and a DSP plugin. I've done something similar when streaming to ShoutCast before.

    If the default line-in plugin doesn't play nice with your sound card you can try this alternative one which has some more options: http://home.hccnet.nl/th.v.d.gronde/dev/lineinWA2/index.html


  • Related Question

    windows - Does this exist: software for noise cancellation
  • Alterlife

    I'm aware that the best option for noise cancelling is to buy myself a pair of noise cancelling headphones...

    But is there any software available that would use the pc mic and headphones to block background noise?


  • Related Answers
  • bastibe

    There are basically two methods for noise suppression

    1. Noise suppression using Wiener-filters. Experience shows that these sound awful even though they are mathematically "optimal". If you can get some information about the actual noise and if the noise is stationary and uncorrelated and if you pour in some additional brainpower, audio quality can be improved upon. But still, this is not a practical solution for most circumstances. (Won't work offline and uses far too much processing power...)
    2. Playback of latency-corrected, phase-inverted background noise together with the usable signal. This works rather well for headphones, although it does usually introduce some smearing in the basses. However, this, too, does not work offline as it needs the actual background noise signal from the surroundings. And it is not very usable for PCs since they introduce too much audio latency. You could try this with some minimal realtime-Linux-kernel, though.

    Based on my experiences with audio processing and various noise cancellation techniques, I would recommend some good sound-insulated headphones. Typically, these will result in better sound without the necessity of any signal processing tricks that won't work too well anyway.

  • Idiomatic

    Not possible for physical/hardware reasons.

    Noise canceling headphones work by recording sound and playing a phase inverted sound to cancel it. With a laptop the mic is first off shitty, and nicely in front of you this means sound coming from behind you will reach your ears first before it even hits the mic. Then it has to go through the computer onto the slow soundcard (likely a ping of .1seconds or more) to the speakers where it'll play. This lag time will be too great to deal with.

    So it comes down to mainly this:
    You and the mic hear different things (in headphones they are in your ears).
    Lag time from standard laptop soundcards is big, you often can't even get a guitar amp working well for this reason over your computer (near 0 in the headphones).

    This would, no matter how optimized result in a horrible experience.

  • harrymc

    See this article : Noise Cancelling in Software?.

    It's interesting, but has no solution.

  • Matthew Lock

    It's not actually noise cancelling but Chatterblocker can help you mask/ignore external sounds.

  • Dave York

    Using MATLAB and this guide / sample code:

    http://www.mathworks.com/help/dsp/examples/acoustic-noise-cancellation-lms-.html

    you could record the noise you are trying to cancel (to a wav) and build an audio output that would cancel it. You might also be able to modify the code to take the mic input as the noise and have it adaptively generate the output and play it out.

    Keep in mind noise cancellation works best with low frequency "mechanical" type noises. High pitch (high frequency) noises are much more difficult to cancel.

  • user281793

    If the sound you need to cancel is consistent, for example inside an airplane or the hum of a factory, it seems like the computer's lag shouldn't matter, because the sound is the same no matter how late it arrives. The key would be to accurately phase shift the resulting sound in your headphones. For example, one might try adjustable phase shifting software such as on http://freemusicsoftware.org/category/free-vst-effects-2/phase-shifter

    You could even record the background noise and then replay it. You would have to adjust the phase until it was the opposite of what your ears hear directly.

    If the poor laptop mic was an issue, you could bring along a used SM58 with you cheaply enough.

    Any feedback on this idea?