Community Forums Archive

Go Back

Subject:Continuous Impulse Noise (Buzz) Reduction
Posted by: johnmeyer
Date:8/22/2005 12:08:03 PM

I taped a rehearsal dinner in the Aon building in Chicago. I ended up with a continuous buzz on both sound tracks (more predominant on the right channel). This was either from the dimmers or the antennas on the adjacent John Hancock building.

I can reduce this buzz using the noise reduction module, but the results are not very satisfactory.

In looking at the waveform, the noise is actually a series of perfectly periodic sharp impulses. If I manually go to each of these and use the "Replace" function to replace each impulse with the audio from immediately before and after the impulse, and then do that for each impulse, the results are spectacularly good. Of course, to do this for any length of audio would take days of work, since there are over 100 impulses per second.

Question: Is there a way to automate this process? Does Sound Forge let you somehow "sync up" with the impulse noise, define a width around that impulse and then do a series of replacements? If not, this would be an extremely useful feature. Basically, this is a time-domain approach to noise reduction rather than frequency domain, and for this particular problem, it produces dramatically better results.

Subject:RE: Continuous Impulse Noise (Buzz) Reduction
Reply by: mpd
Date:8/22/2005 1:39:11 PM

Are you using one pass of NR2 or multiple passes?

The key to using NR2 is getting a good noiseprint. The algorithm will not work well without one. Make sure that your noiseprint just has the noise in it.

Personally, I get best results when I do multiple passes of NR2 with low reduction settings and different noiseprints for each pass.

Subject:RE: Continuous Impulse Noise (Buzz) Reduction
Reply by: patrickharris
Date:8/24/2005 1:38:45 PM

Just out of interest, the Sony Oxford Restoration package is really excellent, and has a good buzz module. I hope it will eventually be released in a format that will work with SoundForge. At the moment it only works under ProTools, which I find a horrible environment for mastering.

Subject:RE: Continuous Impulse Noise (Buzz) Reduction
Reply by: ForumAdmin
Date:8/24/2005 2:39:58 PM

You could also try using Spectrum Analysis to determine the primary buzz frequency and apply a series of narrow notch (or comb) filters with your favorite flavor of EQ.

J.

Subject:RE: Continuous Impulse Noise (Buzz) Reduction
Reply by: musicvid10
Date:8/25/2005 7:03:34 PM

The problem with trying to EQ out a waveform that is spiked or that has ANY sharp corners (i.e. "buzz" as differentiated from "hum") is that the overtones splatter and do not follow a strict multiple series, as a pure sine wave does. Therefore, it is impossible to filter out harmonics using a simple formula. I also doubt if it is possible to identify and "notch out" such complex waveforms using any combination of Sound Forge's Spectrum Analysis and Equalization tools.

The result is that although you may effectively remove the fundamental buzz frequency by dipping it out, the "image" of that frequency will remain and will always be problematic.

I would love it if some genius could develop an algorithm to predict precise harmonic and enharmonic overtones based on the wave shape, relative amplitude, +/- combination tones, and harmonic distortion, and effectively remove them, but alas, I fear such technology lies at some point in the future.

Message last edited on8/26/2005 4:12:15 AM bymusicvid10.
Subject:RE: Continuous Impulse Noise (Buzz) Reduction
Reply by: johnmeyer
Date:8/26/2005 10:27:55 AM

You could also try using Spectrum Analysis to determine the primary buzz frequency and apply a series of narrow notch (or comb) filters with your favorite flavor of EQ.

No, this doesn't work. I tried it. Also, it can't work, because of the basic math problems involved (see below).

As an electrical engineer, I studied Fourier mathematics in college. The basic underlying principal of this math is that any periodic waveform can be reconstructed from an infinite number of sine waves of various frequencies, amplitudes, and phases. The key insight this math provides is that the steeper the slope of the leading and trailing edges of the periodic waveform, the larger the amplitude needed from the higher frequency sine waves. In particular, for a pure impulse waveform (i.e., one that has virtually no duration, but has a perfectly vertical leading and trailing edge -- like a click or pop), the amplitude of the harmonics -- even those that are dozens of multiples of the fundamental frequency -- is quite large.

Bottom line: to filter out the harmonics, you would need dozens -- perhaps hundreds -- of notch filters, starting with 60 Hz (the fundamental frequency of my buzz) and extending every 60 Hz on out to at least 8,000 Hz. The problem is that when you get to higher frequencies, it is impossible to filter out closely spaced frequencies. For instance, it is mathematically impossible to filter out 6000 Hz (the 100th multiple of the fundamental frequency) and 6060 Hz (the 101st multiple) while leaving the frequencies between 6,000 and 6,060 Hz intact.

One thing I learned in my five years working at the test and measurement divisions of Hewlett-Packard back in the early 1970s is that some problems are better solved in the frequency domain, and some are better solved in the time domain. This one (removing periodic impulse noise) is far better solved in the time domain. This fact is easy to demonstrate, if you happen to have a noise sample like mine that contains 60 Hz impulse noise. Just go ahead and perform the replace operation a few hundred times and then play the result. It is spectacularly clean, with very few artifacts.


Message last edited on8/26/2005 10:31:54 AM byjohnmeyer.
Subject:RE: Continuous Impulse Noise (Buzz) Reduction
Reply by: MarkWWW
Date:8/26/2005 11:51:12 AM

In principle the approach I am going to suggest should work, though I don't know how practical it might be in your particular setting.

Find a short section of audio that is just buzz - no wanted audio at all, as far as possible. Trim this section so that you have exactly 1 second in length (48000 samples or whatever depending on sampling rate). Now paste multiple copies of this 1 second of pure buzz end to end to generate a file of the same length as your initial audio file.

If the buzz is truly periodic then this "synthesised" buzz file should be synchronous with the buzz in the initial audio. Now you just need to trim of a sliver from the beginning of the buzz file to arrange that the start of the first pulse in the buzz file occurs at the exact same sample position as the first pulse in the initial file. Once you have done this you should find that the pulses in the initial file and the buzz file line up throughout the entire length of the files. Now you can use the Mix facility in SF (ticking the Invert box) to subtract the buzz file from the initial file leaving you with just the desired buzz-free audio.

Of course this will only work if the buzz signal is truly constant - if its repetition rate is drifting at all then it won't be in sync with the synthesised signal over the whole length of the file. Also it will require that the repetition rathe of the buzz is some exact multiple of 1 Hz (otherwise you won't have an exact number of periods in your 1 second slice). But if, as I'm guessing, this buzz is ultimately derived from a 60Hz mains frequency then you should be in luck as both those conditions will be satisfied.

In fact, if it was me doing this, once I had generated the synthesised buzz file I would do the rest if the process in Vegas. I'd put the initial audio on one track and the inverted buzz file on another and then mix them together. You would probably find that some slight adjustment to the relative levels of the two tracks would be necessary to get the best cancellation and this is easier to do in a multitrack application like Vegas than in SF.

Best of luck.

Mark

Subject:RE: Continuous Impulse Noise (Buzz) Reduction
Reply by: johnmeyer
Date:8/26/2005 1:16:11 PM

Mark,

Excellent idea. I wish I'd thought of that . I'll try that later today.

John

Subject:RE: Continuous Impulse Noise (Buzz) Reduction
Reply by: musicvid10
Date:8/26/2005 4:56:40 PM

**Now you can use the Mix facility in SF (ticking the Invert box) to subtract the buzz file from the initial file leaving you with just the desired buzz-free audio.**

Again, you should be able to reduce the primary buzz in this manner, assuming you can keep the inverted waveform exactly in phase, but every one of those multitude of harmonics that John described so eloquently will have already done their damage; i.e, they produce beat frequencies and A+B, A-B with every signal and overtone frequency, leaving an indelible imprint on the source. How objectionable this is depends on a lot of factors, but even after you kill the mosquito, the bite remains.
I'd be interested to hear if this works better for you than your initial approach, which seems like the best one to me. I agree, it would be a gift from heaven if that kind of process could be automated or scripted in some way.
Back to the source of your original problem -- I learned this the hard way a few months back at auditions for my latest production, and I now carry a heavily filtered EMI/RFI power strip for my camcorders and mic preamps everywhere I go -- in that case the culprit was a "noisy" HP laptop plugged into the same circuit as the mic preamp.

Message last edited on8/26/2005 5:18:14 PM bymusicvid10.
Subject:RE: Continuous Impulse Noise (Buzz) Reduction
Reply by: johnmeyer
Date:8/26/2005 7:09:32 PM

Again, you should be able to reduce the primary buzz in this manner, assuming you can keep the inverted waveform exactly in phase, but every one of those multitude of harmonics that John described so eloquently will have already done their damage ...

Actually, not really. If the impulse was infinitely short in duration, then it would create strong harmonics all the way out to infinity. What this means is that to create the impulse from a series of sine waves, you would need an infinite number of them.

However, this is when the problem is done in the frequency domain.

If, instead, we transfer the problem to the time domain, all you have to do is delete a nanosecond from the waveform, and the impulse will disappear. There is no other "damage" or anything else anywhere on the waveform.

If you haven't spent a lot of time with either the math, or with both an oscilloscope (time domain) and a spectrum analyzer (frequency domain) looking at the same signal, this whole concept can be confusing.

Another way that might make it clearer:

Imagine you have a perfectly pristine audio clip. Put that on the Vegas timeline. What you see in a time domain display. Now, find a really nasty "pop" from an old vinyl record and copy it exactly 60 times per second to a second timeline. Render this to a new audio file. What you now have is the addition of the two signals. In between each spike that you added, the signal is completely unaffected and is exactly the same as it was before. Therefore, if you removed the spikes, using the replace function, you would recover, virtually unchanged (because the duration of the spikes is so short) the original waveform, and hence the original audio.


Message last edited on8/26/2005 7:13:29 PM byjohnmeyer.
Subject:RE: Continuous Impulse Noise (Buzz) Reduction
Reply by: johnmeyer
Date:8/26/2005 7:30:43 PM

Musicvid, you got it exactly right. I tried your technique and it works perfectly. This is far faster than doing a "replace." However, it still requires too much work to line up dozens of copies of the same sample and get them lined up with the track above so that they exactly cancel. Even a slight movement makes a huge difference in the results.

Sony, this is something that could easily (well, relatively easily) be perfected in software. You could take the sample, and let the user interact to identify where the "buzz" part of the waveform is. The rest would be ignored. You would then use this sample to synthesize a continuous sample that lasts exactly as long as the audio to be treated. Finally, you could use either a phase lock loop approach, or simply the equivalent of a null meter to figure out how to adjust the phase of the waveforms (in case the noise in the original signal drifts slightly). That would be the tricky part.

I can tell you that even my simple experiment, based on the approach recommended by musicvid, produces results that are 10x better than anything I was able to get with the combination of noise reduction and notch filters, and there was virtually zero distortion or artifacts, unlike the echos, crinkles, hollow sounds, and muffling that you sometimes get with too aggressive use of noise reduction or notch filters.

Subject:RE: Continuous Impulse Noise (Buzz) Reduction
Reply by: musicvid10
Date:8/26/2005 8:53:48 PM

Actually, it was MarkWWW who suggested the inverted-waveform method, so credit goes to him, but glad to hear it worked.
(I developed a very similar, if somewhat dirtier technique for echo reduction in some cases. It is discussed in some detail HERE.

Subject:RE: Continuous Impulse Noise (Buzz) Reduction
Reply by: musicvid10
Date:8/26/2005 9:39:06 PM

The forum software messed up and created three duplicate messages while I was editing. Sorry.

Message last edited on8/26/2005 9:45:27 PM bymusicvid10.
Subject:RE: Continuous Impulse Noise (Buzz) Reduction
Reply by: musicvid10
Date:8/26/2005 9:41:49 PM

**Actually, not really. If the impulse was infinitely short in duration, then it would create strong harmonics all the way out to infinity. What this means is that to create the impulse from a series of sine waves, you would need an infinite number of them.**

If the spikes were nanosecond-short in duration, as you suggest, the effect on the upper signal harmonics might go unnoticed, or maybe not even get sampled. But in the real world of acoustics, the buzz waveforms look like triangles or jagged mountain peaks, and their duration translates into a linear slope. Let's suppose for a moment that during that ramp-up time the fundamental buzz frequency is kicking out a "buzz harmonic" (also a triangle waveform) at exactly 2000 hz. Also hanging around up there at around 2160 hz is the musically critical third harmonic of an instrument, say a violin playing a C4 (~540 hz) fundamental.

Now, the "collision" of two enharmonic waveforms produces new mutated waveforms at the sum and difference, 4160 hz and 160 hz, respectively. These "new" freqencies, which go on to produce their own complex overtone series are variously called combination tones, beat frequencies, or in the case of RF propagation, sideband signals.

My sense of this as a musician, not a mathematician, is that removing the original buzz waveform by cancellation or other means, even if it could be done precisely enough to remove all of the primary overtones, it would not remove the "imprint" in the form of the spurious waveforms generated by the process described above. Even though the period of these incidents is relatively short, the repetition will leave an image of the buzz that couldn't be removed by any means I am aware of.

Yes, you can reduce the effect, sometimes dramatically, by the inversion technique, which btw was the whole principle behind analog hi-fi, and I've even succeeded in reducing ceiling fan flutter from french horn recordings by that method. I just don't think, however, that it is possible to return a recorded signal to a pristine state by simply eliminating the offending frequency.

Message last edited on8/26/2005 9:43:49 PM bymusicvid10.
Subject:RE: Continuous Impulse Noise (Buzz) Reduction
Reply by: johnmeyer
Date:8/26/2005 10:29:46 PM

Now, the "collision" of two enharmonic waveforms produces new mutated waveforms at the sum and difference, 4160 Hz and 160 Hz, respectively. These "new" frequencies, which go on to produce their own complex overtone series are variously called combination tones, beat frequencies, or in the case of RF propagation, sideband signals.


In any linear system (such as a good amplifier), signals (in the time domain) are additive. This means if you take the oscilloscope trace of the first signal, and the oscilloscope trace of the second signal and then, at each instant, add the voltage values from each trace, you will derive exactly the resulting waveform. This also means that if you have access to either of the original waveforms you can subtract one of these waveforms from the combined waveform, and you will recover the other original waveform, exactly, with no distortion whatsoever. Perfect recovery.

I think the confusion arises from the whole idea of harmonics. Harmonics are a frequency domain concept and have nothing to do whatsoever with what is happening in the time domain. Here is a link to a brief description, with pictures. Not too technical. Notice that when the author shows an impulse signal (in the time domain) that such a waveform produces an infinite number of harmonics (in the frequency domain), all of equal intensity. This is why is is absolutely impossible to remove repetitive impulse noise, such as my buzz signal, using frequency domain techniques such as those used by the Noise Reduction plug-in.

Back to the paper (referenced in the link below). As the author states: "the shorter the impulse, the greater its high frequency content. If the impulse were infinitely short (the so-called delta function, in mathematics), then its spectrum would extend from 0 to infinity in frequency."

Here's the link:

Examples of some wave forms and their spectra

By the way, sideband signals are the result of modulation. In the case of AM (Amplitude Modulation), you get exactly two sidebands. With FM (frequency modulation), you get an infinite number of sidebands. Modulation is a non-linear process used to impose an information signal (like music or voice) on a carrier (usually a high frequency radio wave). Almost everything we deal with in audio is linear (except when an amplifier distorts due to clipping or non-linearities). This is a completely different subject and fortunately isn't something we usually have to deal with when editing audio (0-20,000 Hz) signals.


Message last edited on8/26/2005 10:40:35 PM byjohnmeyer.
Subject:RE: Continuous Impulse Noise (Buzz) Reduction
Reply by: MarkWWW
Date:8/27/2005 2:44:56 AM

The production of sum and difference tones will only occur when the combination of the two signals is done in a non-linear manner. In a linear system the intermodulation distortion effects that give rise to the sum and difference frequencies do not occur, and a good quality PC audio recording set up will be very nearly linear, linear enough that any such effects will be at a level well below the noise floor due to other kinds of noise.

Indeed, if this were not the case then any attempt to mix two audio signals together (in Vegas say, or a mixing desk) would lead to the production of unwanted sum and difference frequencies which would ruin the output signal.

Mark

Subject:RE: Continuous Impulse Noise (Buzz) Reduction
Reply by: MarkWWW
Date:8/27/2005 2:53:25 AM

Excellent, glad it worked for you.

I believe that I read that the scripting facilities in SF (unlike those in Vegas) are able to manipulate the contents of audio files so it may be that it would be possible to automate the process using a script along the lines you have suggested. I'm not a script programmer myself but it may be that someone around here could work something up that would take some or all of the drudgery out of it.

This trick isn't suited to all kind of noise reduction of course, but in those cases when it can be applied it should be able to produce quite dramatic results.

Mark

Message last edited on8/27/2005 2:56:56 AM byMarkWWW.
Subject:RE: Continuous Impulse Noise (Buzz) Reduction
Reply by: johnmeyer
Date:8/27/2005 8:10:58 AM

This trick isn't suited to all kind of noise reduction of course, but in those cases when it can be applied it should be able to produce quite dramatic results.

I agree. It won't work for anything except repetitive impulse noise.

As for scripting, I've written and posted over a dozen scripts for Vegas. Didn't know SF had scripting. I'll look into that.

Subject:Wow: TDM noise reduction WORKS!
Reply by: johnmeyer
Date:8/27/2005 6:26:22 PM

Many thanks for the ideas on how to take a sample of the impulse noise, put it on the timeline below the bad sound (in Vegas), and invert the phase. The results are stunning.

If I had more time, I would have first "scrubbed" my waveform in SF, and eliminated all the audio between the impulses. Having not done this, there is a slight, but detectable repetition of the audio that accompanies the noise in the sample. Also, I wish there was some way to generate a waveform that is actually the "average" of all the pulses. There is a slight variation in my sample, no matter what I do, just because of the AGC in the camera and other factors.

The results, compared to the normal Sound Forge noise reduction, are truly amazing. The buzz has disappeared, and there are none of the raspy, echo-style artifacts.

Subject:RE: Wow: TDM noise reduction WORKS!
Reply by: mpd
Date:8/28/2005 8:09:18 AM

Did you try my suggestion for NR2? I am interested because the process that people have been describing is basically a manual version of what NR2 does.

Subject:RE: Wow: TDM noise reduction WORKS!
Reply by: johnmeyer
Date:8/28/2005 11:47:40 PM

Did you try my suggestion for NR2? I am interested because the process that people have been describing is basically a manual version of what NR2 does.

I have used the Noise Reduction plug-in for over six years. I've done work on old dictation records, 78 rpm, 33 1/3, reel-to-reel, cassette tapes -- etc.

NR2 works entirely in the frequency domain. It first converts the noise sample into a frequency print, and then subtracts these from the frequencies in the main audio. By contrast, what has been discussed in this thread is the direct subtraction of signals in the time domain. This is an entirely, completely, different thing. The noise reduction plug-in for SoundForge is pretty much useless for impulse noise, for the reasons I detailed earlier in this thread, namely the fact that sharp impulses contain almost infinite harmonics. That is why the click and crackle plugin works in the time domain. Actually, hmmm ... if my impulses are steep enough, the click plug-in might work ...

Timeout ...

Yup, by golly, with some pretty extreme settings, it does a pretty darn good job. Wish I'd though of that earlier.


Subject:RE: Wow: TDM noise reduction WORKS!
Reply by: plasmavideo
Date:8/31/2005 10:54:55 AM

Guys,

This is a great discussion. Thanks for getting into this so deep.

John, I've actually done sort of a combination of the techniques mentioned here with good results on some material.

First, I've gotten a sample of the noise in NR2 and then applied noise reduction to the entire waveform. However, I told it to retain ONLY the noise. From that, I generated a noise only waveform of the original file. Then in Vegas, I have put the original file on one track, the noise only file on a second track, inverted it, and then played around with the level to come up with the best null. I also have used the track compressor plug-in on that track as well, similar to other discussions about eliminating echo.

I can't tell you the settings I used in NR2 to get the best results, but it was trial and error playing with the settings and listening to the resulting noise only track. On some files it was pretty dramatic and relatively artifact free - more so than just using NR2 to do all of the work. On the impulse noise you have, it may not work as well, but on constant noise, hum and hiss it did a great job.

Tom

Subject:RE: Wow: TDM noise reduction WORKS!
Reply by: johnmeyer
Date:8/31/2005 11:20:30 AM

Tom,

This is pretty darned clever! I never would have thought of doing something like that, but I can see where that must might work. As you've found, adjusting the null takes a little work. Fortunately, if you do this in Vegas, you can loop the section you're working on, and move the noiseprint back and forth as the audio is playing. You can really hear it as you approach, and eventually find, the exact null point. You can then apply a volume envelope to the noiseprint, and increase and decrease the volume to make sure you aren't adding too much or too little inverted noise. With my buzz, when I took the time to get the phase and the amplitude just right, and if I had a really good, "clean," consistent buzz, the results were darn near perfect. No buzz and no artifacts. It is similar to what you can do with the click plug-in when the clicks are really narrow.

Go Back