What's all this about the vuvuzela?

Submitted by cannam on Mon, 06/14/2010 - 12:33

The vuvuzela, a long horn popularly blown by spectators at football matches in South Africa, has seen a lot of press during the 2009 Confederations Cup and 2010 World Cup.

Though hugely popular for its invigorating sound and dramatic volume level, the vuvuzela has been badly received by some television viewers, who have complained that this magnificent pipe, after transmission, comes across as a resonant buzz which the sensitive listener may find hard to tolerate.

At the Centre for Digital Music we decided to have a quick look at how the sound of the vuvuzela comes across in a TV broadcast. Would it be practical to filter it out of the broadcast sound, if that was desired?

Here is a time-frequency plot (a spectrogram) of part of a soundtrack from a Confederations Cup match.

(You can listen to this here.)

In the picture, the bright rising and falling “tracks” show the pitch of the commentator's voice.

Like all instruments that have a “pitched” sound, the human voice sound consists of a number of harmonic partials which play at integer multiples of a fundamental frequency. In this particular image, the partials get closer together as we go upward: this is because the y-axis is logarithmic in frequency, which makes it more closely resemble the scale of pitch that we hear.

The commentator, then, is the loudest thing here, appearing in the brightest yellow. Somewhat lower in level are the nearly-flat horizontal tracks of the massed chorus of vuvuzelas. It appears that although these instruments vary, most of them are clumped in a fairly small range of fundamental frequencies – around 230Hz, roughly the B-flat below middle C. This unvarying pitch suggests why some listeners may find them so troublesome.

This also suggests, of course, that we can filter them by concentrating on those frequency ranges. Taking out only the lowest two or three partials should make a significant difference, as that is where most of the energy is. To do this in real time, our approach will be to convert the signal to a frequency representation and watch each of the interesting frequency bins, reducing the levels of those bins which over time are found to have generally higher values.

Applying this to the first two partials (the fundamental frequency and the second harmonic) gives us this:

The sound certainly looks to have been reduced. Listen to the before and after audio to confirm that it has indeed worked: you can still hear the horns, because the higher partials are intact, but they aren't so loud. (Note that the effect takes a couple of seconds to work, at the start of the "after" sample.)

Here's the code!

You can download the audio processing plugin that we made to do this: devuvuzelator.zip.

This zip file includes a VST plugin DLL for Windows, a Mac OS/X universal binary LADSPA plugin, and the source code. You can also compile the LADSPA plugin for use on other platforms.

Using it

You can't just plug this into your TV, I'm afraid! Using a plugin of this sort with your preferred viewer is not necessarily easy to do.

OS/X users could try this:

  • Download and install Audio Hijack Pro (there's a free trial version)
  • Download our plugin and copy the file osx-ladspa/devuvuzelator.so into the folder /Library/Audio/Plug-Ins/LADSPA (you may need to create the "LADSPA" folder)
  • Open the Safari web browser and go to iPlayer, start your radio/TV playing
  • Open Audio Hijack Pro and tell it to hijack the Safari audio. Then in the "Effects" tab click and choose the effect from the menu option LADSPA > Queen Mary University of London > Devuvuzelator
  • After about a second the filter should kick in. You can change the options for the amount of reduction if you like.

Here is a video of the Mac version of the plugin in use.

Linux users might consider using the PulseAudio JACK output sink to take the output from iPlayer and send it to the JACK audio server -- then run jack-rack, load and enable the plugin in it, and connect the PulseAudio output through it using qjackctl's connections tab.

New: For Windows users, Stardock have made an application which wraps our plugin and automatically filters your web browser's audio output. Get it at http://www.stardock.com/labs/devuvuzelator/.

Alternatively...

... you could try learning to love the vuvuzela! It doesn't come across so well in the flat broadcast sound, but it's popular for a reason and can be used to produce an exciting and dynamic sound. See this excellent introductory video, or listen to the hugely enjoyable Vuvuzela Orchestra.


(Plugin code by Chris Cannam, simple method with direct correspondence to the spectrogram suggested by Wen Xue. Thanks to Richard Bown for the idea to look into this. It sparked some debate; it turns out that this research group contains quite a mixture of people who like and dislike the vuvuzela.)