As promised, I’ve studied some of the solutions around Vuvuzela filtering and with the help of my good friend Ricardo Lameiro, we’ve started to put up a simple PureData patch to filter, via EQ, the annoying sound of the Vuvuzela. Ricardo’s first attempt was already very good, but I’ve experimented with some recordings of games, and it didn’t seem to filter enough. The secret, apparently, is to duplicate the EQ chain in use, so, instead of having one [biquad~] object for each partial, I’ve made a version that uses 2. That means that the frequency is filtered twice (as in the Logix exemple we saw earlier), and that has a great impact. My first upgrade on the patch is, therefor, that simple duplication of EQ chains, along with a slider to alter the “dry/wet” parameter of the effect. All the way to “dry” you’ll hear only the original source, and all the way to “wet”, you get only the processed version. This way, one can customize the desired amount of noise reduction.
That’s my vuvuzela_basicEQ_filter_static:
This works pretty good in standard conditions, but I was wondering if it would be possible (and useful) to have a dynamic version of this patch, that would calculate the frequencies of the annoying sound in real time. In some broadcasts this can be usefull, if the noise from the Vuvuzelas is being altered by some oher stuf, but, also as a proof-of-concept, it was important for me. This dynamic patch can be used now for the Vuvuzelas and later for any annoying sound on a recording or on a real time audio source.
The principle is the same, but the frequencies being filtered can be altered by pressing the “Sample Noise” button, wich will rearrange the filter according to what’s being listened to at the time. It should be used, normally, when all you can hear are Vuvuzelas, but you can make different experiments, pressing it over the commentators’ voices and stuf like that. It has a reset button, for standard Vuvuzela mode but will allow you to filter any continuous buzz.
So, here’s my vuvuzela_basicEQ_filter_dynamic:
The problem with taking out the main frequencies of the Vuvuzela remains: they are closely linked to the main frequencies of the human voice (our ears softspot, so to say), and that’s why they are so annoying. So any filter will have an impact on the voices and all the other sounds. But this thing works, quite surprisingly, and, since it’s made on PureData, you can use it in any computer, regardless of Operating System, completely free.
Please try it out, if you can.
You can use these recordings I made during a recent match to see for yourselves:
If you have any doubts as to how you can install PureData and use these patches, feel free to comment here or reach me on Facebook or Twitter. Or use the community of PureData users.
And if you need audio examples on how good (or bad) does this sound, here it is:
Here you can hear the unprocessed sound (100% dry), then the processed one (100% wet) and it changes twice from one status to the other. Then, I used the “Sample Noise Button” (I’m using the dynamic version) and the third time you hear only processed sound (100% wet), the profile of the filter sounds better, in my opinion. Then I made some more experiences, just to show other possibilities.
Please share your comments, doubts or suggestions. These are all learning processes.
And, if that’s yout thing, enjoy the soccer matches with or without Vuvuzelas. My interest is purely academical.
PS: The 3rd aproach I was planning was to use a noise gate, based on the examples that come with PureData, but I had no time to figure that one out. If anyone wants to try that, I’ll appreciate to know about the results.
PS para os leitores portugueses: desculpem o psot em inglês, mas esta é uma questão que pareceu interessar mais leitores estrangeiros e/ou portugueses que estão à vontade com o inglês. Se alguém quiser explicações detalhadas, avise.
EDIT#1: After real live testing during today’s match Portugal vs Ivory Coast, I’ve made some adjustments (bandwith values for different partials) and here’s the new and improved patch: