Audio Algorithm Detects When Your Team Scores

[François] lives in Canada, and as you might expect, he loves hockey. Since his local team (the Habs) is in the playoffs, he decided to make an awesome setup for his living room that puts on a light show whenever his team scores a goal. This would be simple if there was a nice API to notify him whenever a goal is scored, but he couldn’t find anything of the sort. Instead, he designed a machine-learning algorithm that detects when his home team scores by listening to his TV’s audio feed.

goal[François] started off by listening to the audio of some recorded games. Whenever a goal is scored, the commentator yells out and the goal horn is sounded. This makes it pretty obvious to the listener that a goal has been scored, but detecting it with a computer is a bit harder. [François] also wanted to detect when his home team scored a goal, but not when the opposing team scored, making the problem even more complicated!

Since the commentator’s yell and the goal horn don’t sound exactly the same for each goal, [François] decided to write an algorithm that identifies and learns from patterns in the audio. If a home team goal is detected, he sends commands to some Phillips Hue bulbs that flash his team’s colors. His algorithm tries its best to avoid false positives when the opposing team scores, and in practice it successfully identified 75% of home team goals with 0 false positives—not bad! Be sure to check out the setup in action after the break.

Continue reading “Audio Algorithm Detects When Your Team Scores”

Doppler Gesture Sensing in JavaScript

[Daniel] stumbled on an interesting paper (which we featured before) on Doppler gesture sensing using only a computer’s speaker and microphone. Unfortunately the paper didn’t include source code so [Daniel] created his own implementation of Doppler gesture sensing in JavaScript that works right in the browser.

[Daniel]’s JavaScript library generates a sine wave at 20 kHz that’s played through the computer’s speakers. The frequency is high enough that it’s pretty much inaudible. While the tone is being played through the speakers, the computer’s microphone is used to sample the audio and calculate the frequency spectrum of the signal. As you move your hand closer to the computer while the tone is playing, the frequency of the received signal shifts higher; as you move your hand away, it shifts lower. [Daniel]’s script looks for this frequency shift and uses it to trigger events.


[Daniel] has some awesome examples included on his website where you can test out the functionality for yourself. He has a hands-free scrolling example, spectrum plot, and even a virtual theremin. Since his code is bundled up into an easy-to-use library, it should be fairly easy to integrate into any webpage. The only real limitation to the library is that it only works in Chrome right now (Firefox doesn’t support disabling echo cancellation).

Universal Active Filters: Part 2

An easy way to conceptualize active filters is thinking about audio speakers. A speaker crossover has a low-pass, high-pass and band-pass effect breaking a signal into three components based upon frequency. In the previous part of this series I took that idea and applied it to a Universal Active Filter built with a single chip opamp based chip known as the UAF-42. By the way, it’s pretty much an older expensive chip, just one I picked out for demonstration.

Using a dual-ganged potentiometer, I was able to adjust the point at which frequencies are allowed to pass or be rejected. We could display this behavior by sweeping the circuit with my sweep frequency function generator which rapidly changes the frequency from low to high while we watch what can get through the filter.

In this installment I’ll test the theory that filtering out the harmonics which make up a square wave results in a predictable degradation of the waveform until at last it is a sine wave. This sine wave occurs at the fundamental frequency of the original square wave. Here’s the video but stick with me after the break to walk through each concept covered.

Continue reading “Universal Active Filters: Part 2″

Organ Donor Gives Up a Leslie Speaker

It was about ten years ago that [Richard] received an old musical organ. Moving to a new house meant it would be cumbersome to move the organ with him, so he opted to harvest some interesting components instead. Specifically, he kept the Leslie speaker.

A Leslie speaker is a special kind of speaker mechanism that creates a tremolo effect as well as a vibrato effect. You can hear this effect in [Richard’s] video below. Simple effects like this would be easy to do on a computer nowadays, but that wasn’t the case several decades ago. Before digital electronics, musical effects were often performed by analog means. [Richard’s] Leslie speaker is a small speaker behind of a Styrofoam baffle. The baffle spins around the speaker which changes the reflection angle of the sound, producing the musical effect.

[Richard] tried hooking this speaker up to other musical instruments but found that turning off the electric motor created an audible pop over the speakers. To remedy this, he build a simple “snubber” circuit. The circuit is just a simple 240 ohm resister and a 0.05 uF capacitor. These components give the transients a path to ground, preventing the pops and clicks when the motor is powered up. Now [Richard] can use this classic piece of audio equipment for newer projects. Continue reading “Organ Donor Gives Up a Leslie Speaker”

Universal Active Filters: Part 1

Today I am experimenting with a single chip Universal Active Filter, in this case I made a small PCB for the UAF-42 from Texas Instruments. I chose this part in particular as it facilitates setting the filter frequency by changing just a pair of resistors and the somewhat critical values that are contained on the chip have been laser trimmed for accuracy. This type of active filter includes Operational Amplifiers to supply gain and it supports various configurations including simultaneous operating modes such as Band Pass, Low Pass and High Pass make it “Universal”.

Filter Basics

Speaker Crossover Example
Speaker Crossover Example

Looking at the block diagram you can see where I have inserted a dual-ganged potentiometer to change both resistors simultaneously which should allow a straight forward adjustment for our purposes here.

Looking into the components of a simple RC filter which can easily implement a simple Low Pass or High Pass filter, we see that the math is fairly straight forward and swapping the components with each other is all that is needed to change the type of filter. Continue reading “Universal Active Filters: Part 1″

Repairing Burnt Speakers with a Steady Hand

[Martin] seems to have a knack for locating lightly damaged second-hand audio gear. Over the years he’s collected various types of gear and made various repairs. His most recent project involved fixing two broken tweeter speakers.

He first he needed to test the tweeters. He had to remove them from the speaker cabinet in order to gain easier access to them. The multimeter showed them as an open-circuit, indicating that they had likely been burned. This is an issue he’s seen in the past with this brand of speaker. When too much power is pumped through the speaker, the tiny magnet wire inside over heats and burns out similar to a fuse.

The voice coil itself was bathing in an oily fluid. The idea is to help keep the coil cool so it doesn’t burn out. With that in mind, the thin wire would have likely burned somewhere outside of the cooling fluid. It turned out that it had become damaged just barely outside of the coil. [Martin] used a sharp blade to sever the connection to the coil. He then made a simple repair by soldering the magnet wire back in place using a very thin iron. We’ve seen similar work before with headphone cables.

He repeated this process on the second tweeter and put everything back together. It worked good as new. This may have ultimately been a very simple fix, but considering the amount of money [Martin] saved on these speakers, it was well worth the minimal effort.

Holiday Cheer From The ATtiny13

There are smaller microcontrollers than the ATtiny13. Some ARM chips will fit on the head of a large pin, and even in Atmel world, the ATtiny10 comes in a tiny SOT-23-6 package – a size normally reserved for surface mount transistors. The ‘tiny13, though, can be programmed with just about any ISP and comes in an 8-pin DIP. It’s the bare minimum if you’re looking to break out of the world of Arduino, and you can do some pretty cool things with it, like playing some holiday audio with an SPI Flash chip.

[Vinod] tried opening up a cheap camera pen, but in the course of disassembly a few traces broke. He was now left with a 4Mbit SPI Flash chip. This was obviously the time to investigate what could be done with a small microcontroller and a huge amount of Flash. and the Attiny13 audio player was born.

The circuit uses one PWM for audio out, and reads audio directly from the Flash chip. The UART on board the ‘tiny13 is used to update the Flash, and there’s also a switch to select between play and record. If you’re counting, that means there are 4 pins for the Flash, 2 pins for the UART, 1 for the switch, one for the audio output, and the power and ground rails, all in an 8-pin package. That’s a pretty cool way to use one pin for two different functions.

You can check out a video of the project in action below.

Continue reading “Holiday Cheer From The ATtiny13″