Protocol Snooping Digital Audio

More and more clubs are going digital. When you go out to hear a band, they’re plugging into an ADC (analog-to-digital converter) box on stage, and the digitized audio data is transmitted to the mixing console over Ethernet. This saves the venue having to run many audio cables over long distances, but it’s a lot harder to hack on. So [Michael] trained popular network analysis tools on his ProCo Momentum gear to see just what the data looks like.

[Michael]’s writeup of the process is a little sparse, but he name-drops all the components you’d need to get the job done. First, he simply looks at the raw data using Wireshark. Once he figured out how the eight channels were split up, he used the command-line version (tshark) and a standard Unix command-line tool (cut) to pull the data apart. Now he’s got a text representation for eight channels of audio data.

Using xxd to convert the data from text to binary, he then played it using sox to see what it sounded like. No dice, yet. After a bit more trial and error, he realized that the data was unsigned, big-endian integers.  He tried again, and everything sounded good. Success!

While this is not a complete reverse-engineering tutorial like this one, we think that it hits the high points: using a bunch of the right tools and some good hunches to figure out an obscure protocol.

Beverly-Crusher, the Greatest Name for an Audio Effect

Image is © aliceazzo [http://aliceazzo.deviantart.com/].
Image © aliceazzo [http://aliceazzo.deviantart.com/].
When it comes to audio effects, you have your delay, reverb, chorus, phasing, and the rest that were derived from strictly analog processes. Compared to the traditional way of doing things, digital audio is relatively new, and there is still untapped potential for new processes and effects. One of those is the bit crusher, an effect that turns 8- or 16-bit audio into mush. [Electronoob] wanted to experiment with bitcrushing, and couldn’t find what he wanted. Undeterred, he built his own.

There are two major effects that are purely in the digital domain. The first is the sample rate reducer. This has a few interesting applications. Because [Shannon] and [Nyquist] say we can only reproduce audio signals less than half of the sample rate; if you run some audio through a sample rate reducer set to 1kHz, it’ll sound like crap, but you’ll also only get bass.

The bitcrusher is a little different. Instead of recording samples of 256 values for 8-bit audio or ~65000 values for 16-bit audio, a one-bit bitcrusher only records one value – on or off. Play it through a speaker at a decent sample rate, and you can still hear it. It sounds like a robotic nightmare, but it’s still there.

[Electronoob] created his bitcrusher purely in software, sending the resulting bitcrushed and much smaller file to an Arduino for playback. Interestingly, he’s also included the ability to downsample audio, giving is project both pure digital effects for the price of one. 1-bit audio is a bit rough on the ears, but 2, 3, and 4-bit audio starts to sound pretty cool, and something that would feel at home in some genres of music.

Continue reading “Beverly-Crusher, the Greatest Name for an Audio Effect”

The Cassette MP3 Player

1994 was twenty years ago. There are people eligible to vote who vaguely remember only one Bush presidency. You can have a conversation with someone born after the millennium, and they think a 3.5 inch disk is called a save icon. Starting to feel old? Don’t worry, all the trinkets of your youth have now become shells for MP3 players, the cassette tape included.

[Britt] is aware you can pick up one of these cassette tape MP3 players through the usual channels, but she wanted her build to be a little different. She’s using ar real, vintage cassette tape for starters, and from the outside, looks pretty much like any other cassette tape: there’s a thin strip of tape at the bottom, and the clear plastic window shows the tape is at the beginning of side A.

Outside appearances are just that; inside, there is a small, repurposed MP3 player, with tact switches wired up to the old buttons, actuated by moving the spools back and forth. Yes, you actually play, pause, rewind and fast forward by sticking a pencil in the spool and moving it back and forth. Amazing.

It’s a great build, and considering both cassette tapes and cheap MP3 players can be found in the trash these days, it’s something that should be hard to replicate.

The difference between bitcrushers and sample rate reducers

bit

If you look around a few electronic music forums, you’ll see a lot of confusion over the difference between a bitcrusher – a filter that reduces the bit depth of an audio signal – and a sample rate reducer – a filter that does exactly what its name implies. With the popularization of 8-bit and retro synth music, this difference is obviously of grave import of concern to saints and kings alike. [Michael] is more than happy to walk us through the difference with real-time sample and bit rate adjustment with his audio hacker board.

The audio hacker board is an Arduino shield with a 12-bit DAC and a 12-bit ADC. With two 1/8″ jacks and a pair of pots, [Michael] was easily able to whip up a sketch that is able to adjust the sample rate and bit depth of an audio signal in real-time.

Contrary to nearly everyone’s opinion of what ‘8-bit’ music is, it’s actually the sample rate that makes music sound like a cassette deck jury rigged into a Nintendo Entertainment System. Reducing the bitrate just makes any audio source sound louder and worse.

Check out the excellent demo video of the effect of bitcrushers and sample rate reducers below.

Continue reading “The difference between bitcrushers and sample rate reducers”

Giving toys an electronic voice

sound

Whether it’s a Furby or Buzz Lightyear’s button that plays, ‘To infinity and beyond’, most digital audio applications inside toys are actually simple affairs. There’s no Arduino and wave shield, and there’s certainly no Raspi streaming audio from the Internet. No, the audio inside most toys are one or two chip devices capable of storing about a minute or so of audio. [makapuf] built an electronic board game for his kids, and in the process decided to add some digital audio. The result is very similar to what you would find in an actual engineered product, and is simple enough to be replicated by just about anyone.

[makapuf]’s game is based on Game of the Goose, only brought into the modern world with electronic talking dice. An ATtiny2313 was chosen for the microcontroller and an AT45D 4 Megabit Flash module provided the storage for 8 bit/8khz audio.

The electronic portion of the game has a few functions. The first is calling out numbers, which is done by playing recordings of [makapuf] reading, ‘one’, ‘two’, ‘three’, … ‘twelve’, ‘thir-‘, ‘teen’ and so on. This data is pumped out over a pin on the ATtiny through a small amplifier and into a speaker. After that, the code is a simple matter of keeping track of where the players are on the board, keeping score, and generating randomish numbers.

It’s an exceptional exercise in engineering, making a quite complicated game with a bare minimum of parts. [makapuf] estimated he spent under $4 in parts, so if you’re looking to add digital audio to a project on the cheap, we can’t imagine doing better.

You can see a video of [makapuf]’s project after the break.

Continue reading “Giving toys an electronic voice”

The most evil gift ever

[form], a new user on the Hack a Day forums, was thinking, “what Christmas present i can send a friend, that would be really annoying?” We think he really hit it out of the park with this one. It’s a modified computer speaker that will play “explicit” audio until the power button is pressed 200 times and the light sensor is covered. When this present is unwrapped, the room will fill with sounds not suitable for children, the elderly, or those with heart conditions.

The build is based around an old powered computer speaker. Six Li-ion batteries from an old laptop provide the power, and a very simple circuit pulls sound off an SD card with the help of an ATtiny45.

The schematic for the build looks easy enough, and like a good builder, [form] included the source and HEX files. Sadly (or thankfully), there is no video of the gag gift in action; probably a good thing, because this seems like a great way to lose a friend.

Halloween Hacks: Scaring small children with Huffman coding

The team over at NerdKits decided they needed to do something for Halloween. Only on Halloween is scaring small children is an admirable goal, so they demoed a way to play creepy sounds after a door has been opened.

To trigger the sound, a magnetic reed switch from an alarm system is attached to a front door. This triggers the microcontroller and with a bit of delay, some creepy audio can be played on a pair of speakers. The team decided to store all the audio data on the flash memory of their ATmega328p, but that wouldn’t allow for a very long scream. To extend the length of the wails of the damned, the NerdKits team decided to use Huffman coded audio.

Because Huffman coding relies on the most common value being assigned the shortest code, the team used a bit of Python and C magic to figure out the optimal encoding for their audio file. After the evil laugh was sufficiently compressed, the microcontroller was programmed to decode the audio and send it to a pair of speakers. The team made all the software for their project available here for your perusal.

Although this project could be thrown together in an hour with an Arduino and an MP3 shield, the NerdKits team wants to get kids to learn how things work, also an admirable goal. [Humberto] from NerdKits put a video up explaining the theory of the project. Check it out after the break.

Continue reading “Halloween Hacks: Scaring small children with Huffman coding”