Life Of Navin

Random Musings, Random Bullshit.


Vuvuzela Filter Demystified!

Read update at end of post, and then continue!
There’s been tonnes of noise (ironically) about the South African wind instruments known as the Vuvuzelas. So much so, that it’s prompted sites like AntiVuvuzelaFilter to spring up overnight with solutions to the problem. What these guys do is charge to charge you 2.99 Euros for a ~50 minute soundclip, which, when played alongside your TV, apparently cancels out the sound of the Vuvuzelas.

It didn’t really take much time for me to get interested in the problem, especially considering that Sound has always been one of my fields of interest (I regard Amar Bose as one of my top icons, somewhere between Chuck Norris and Gandalf). And the first solution that popped to my mind, which is exactly the same as that used by the AntiVuvuzelaFilter guys, was Noise Cancellation.

Well, I’m sure most, if not all of us have heard of Noise-cancellation headphones… I once had the opportunity to use a Bose QC3 on a bus, and boy, it does its job really well! How does noise cancellation work? Let’s break it down shall we?

Sound, that you hear from your TV, if looked at closely enough, looks like a piece of string that’s been tied to an end and is being pulled up and down by a hand at the other side. The absence of sound simply implies the string is stationary.

The blue line represents sound

So when we want to get rid of the sound of the vuvuzelas, all we need to do is take the shaking string and make it stop. Now there are two ways to do this:
1. Make the hand stop (which isn’t possible in this case)
2. Tell the hand to both move up and down at the same time i.e when the TV signal tells the hand to move up, we tell it to move down and vice versa.

Now this seems simple, but the problem is that if we tell the hand to move up by say 10 points, while the TV also tells it to move up by 10 points ("points" here are a randomly assumed scale of measurement), we just get a 20 point signal. In simpler words, 10up+10up=10+10=20up. Also, if we tell the signal to move up by 5 points, while the TV signal tells it to move down by 10 points, the wave does indeed move down, albeit with a -5 point level i.e. 5up+10down= 5-10= -5down.

That made sense, I hope. If it didn’t let’s break it down even more! :)

Now products like the Bose QC3, use intricate circuitry to analyze the noise (determine whether the signal is telling the hand to move up or down) and then generate a invert of this i.e tell the hand to do the exact opposite!

The thing about Vuvuzelas is that noise is more or less stable (kinda like a looooooong drone), so we don’t really need realtime analysis. So here’s how you go about it!

1: Get hold of a sample of the Vuvuzela noise in the stadium. Tonnes of sites offer these. I actually ripped the sound off this SWF clip using SWFRIP (a nifty open source software).

2: Generate the invert of the signal i.e when the signal is telling hand to pull up, your signal tells it to move down. I used Audacity, an awesome open source audio editing software. Simply open the sample, copy paste it till its around 45 minutes in length, and then invert it (On the top menu Effects-> Invert in Audacity).

3: Play it on a music player alongside your television, at a volume close to that of the Vuvuzela noise, and such that the sound from your clip and television reach your ear at roughly the same time eg. place the music player on top of your TV

NOTE: It may take a few adjustments here and there, such as decreasing/increasing the bass (since some TVs provide an artificial bass effect). And sometimes, your track may be playing in sync with the noise (i.e 1st pic shown above), thereby creating a louder noise. In this case, simply pausing and playing may help. It may take a few tries to get it right. But overall that’s about it! Also, your volume level must be more or less equal to the soundlevel of the Vuvuzela noise.

Using this method and a bit of optimisation, the noise of the Vuvuzelas can be eliminated for 90-95% the time of the match, which in my opinion is a big thing, especially considering that your entire investment has been less than 15 minutes! For a more customised solution, you could try asking these guys or if you have the time, do what this German engineer did, and actually create a realtime filter. Tonnes of sites, including LifeHacker and CrunchGear have simply translated this guys method on tutorials given on their sites! Some dude even did the same thing on a Fedora machine! And trust me, that method is the ultimate fix. But this is, as us Indians call it, a Jugaad fix.

I personally don’t mind the sound of the vuvuzelas, and infact feel that it adds to the atmosphere of the match! But one suggestion for all you vuvuzela haters out there: Just think what it’d be like, if U had one of these at the stadium instead! :

PS: There’s tones of cool stuff you can do with Audacity using the same invert method, like taking out the vocals of a song. As with most audio editing tools, there's generally no stepwise method to do stuff, and quite a bit of tweaking will have to be done. So go ahead play around with Audacity!

Update: As the Worldcup gets closer to the big finale, the Vuvuzela sound has gone more from being stable background noise to unpredictable bursts of Prrrrrrrrr. :) As such, the method outlined above WILL NOT WORK! It works only for a stable Vuvuzela background noise. In the current scenario, only real-time filters, as mentioned in the latter part of the post, will work!


Anonymous said...

I don't think you've gotten the logic right here! Why invert the sound? Makes no sense!


Finally after all these years, here's to the beginning of what was there, what is there and hopefully what will remain!! So here are my thoughts & words -Online!!

Blog Archive