Hacklet 116 – Audio Projects

If the first circuit a hacker builds is an LED blinker, the second one has to be a noisemaker of some sort. From simple buzzers to the fabled Atari punk console, and guitar effects to digitizing circuits, hackers, makers and engineers have been building incredible audio projects for decades. This week the Hacklet covers some of the best audio projects on Hackaday.io!

vumeterWe start with [K.C. Lee] and Automatic audio source switching. Two audio sources, one amplifier and speaker system; this is the problem [K.C. Lee] is facing. He listens to audio from his computer and TV, but doesn’t need to have both connected at the same time. Currently he’s using a DPDT switch to change inputs. Rather than manually flip the switch, [K.C. Lee] created this project to automatically swap sources for him. He’s using an STM32F030F4 ARM processor as the brains of the operation. The ADCs on the microcontroller monitor both sources and pick the currently active one. With all that processing power, and a Nokia LCD as an output, it would be a crime to not add some cool features. The source switcher also displays a spectrum analyzer, a VU meter, date, and time. It even will attenuate loud sources like webpages that start blasting audio.

 

muzzNext up is [Adam Vadala-Roth] with Audio Blox: Experiments in Analog Audio Design. [Adam] has 32 projects and counting up on Hackaday.io. His interests cover everything from LEDs to 3D printing to solar to hydroponics. Audio Blox is a project he uses as his engineer’s notebook for analog audio projects. It is a great way to view a hacker figuring out what works and what doesn’t. His current project is a 4 board modular version of the Big Muff Pi guitar pedal. He’s broken this classic guitar effect down to an input board, a clipping board, a tone control, and an output stage. His PCB layouts, schematics, and explanations are always a treat to view and read!

pauldioNext we have [Paul Stoffregen] with Teensy Audio Library. For those not in the know, [Paul] is the creator of the Teensy family of boards, which started as an Arduino on steroids, and has morphed into something even more powerful. This project documents the audio library [Paul] created for the Freescale/NXP ARM processor which powers the Teensy 3.1. Multiple audio files playing at once, delays, and effects, are just a few things this library can do. If you’re new to the audio library, definitely check out [Paul’s] companion project
Microcontroller Audio Workshop & HaD Supercon 2015. This project is an online version of the workshop [Paul] ran at the 2015 Hackaday Supercon in San Francisco.

drdacFinally we have [drewrisinger] with DrDAC USB Audio DAC. DrDac is a high quality DAC board which provides a USB powered audio output for any PC. Computers these days are built down to a price. This means that lower quality audio components are often used. Couple this with the fact that computers are an electrically noisy place, and you get less than stellar audio. Good enough for the masses, but not quite up to par if you want to listen to studio quality audio. DrDAC houses a PCM2706 audio DAC and quality support components in a 3D printed case. DrDAC was inspired by [cobaltmute’s] pupDAC.

If you want to see more audio projects and hacks, check out our new audio projects list. See a project I might have missed? Don’t be shy, just drop me a message on Hackaday.io. That’s it for this week’s Hacklet, As always, see you next week. Same hack time, same hack channel, bringing you the best of Hackaday.io!

Analog to Digital Converter (ADC): A True Understanding

Back in the day where the microprocessor was our standard building block, we tended to concentrate on computation and processing of data and not so much on I/O. Simply put there were a lot of things we had to get working just so we could then read the state of an I/O port or a counter.

Nowadays the microcontroller has taken care of most of the system level needs with the luxury of built in RAM memory and the ability to upload our code. That leaves us able to concentrate on the major role of a microcontroller: to interpret something about the environment, make decisions, and often output the result to energize a motor, LED, or some other twiddly bits.

Often the usefulness of a small microcontroller project depends on being able to interpret external signals in the form of voltage or less often, current. For example the output of a photocell, or a temperature sensor may use an analog voltage to indicate brightness or the temperature. Enter the Analog to Digital Converter (ADC) with the ability to convert an external signal to a processor readable value.

Continue reading “Analog to Digital Converter (ADC): A True Understanding”

Aquire Awesome Audio for BeagleBone

[Henrik Langer] put his powerful audio acquisition and output board up on Hackaday.io, and we thought we’d point it out to you. It’s one of those projects that used to be pro audio just a few years back, but is doable (and affordable) DIY today: dual stereo inputs and four(!) stereo outputs, all sampled at 24 bits and up to 192 kHz. It’s configured as a BeagleBone cape, and comes with a customized Linux distribution for the ‘Bone.

What would you do with such a thing? It’s essentially a recording studio in your pocket, with a computer attached. The video (linked below the break) demonstrates using the device as a real-time stereo delay effect unit, but that’s only making use of one channel. Between effects, recording, and then all sorts of much-better-than-CD quality sound synthesis and playback possibilities, it’s an open-ended audio playground.

And all that from what is essentially a (very well-done) breakout board for a fancy DAC/ADC chip from Analog Devices: the AD1938. We’d love to have one of these on our desktop. Check out [Henrik]’s GitHub for the PCB and build instructions and BOM and everything else you’d need to get started. Very nice job!

Continue reading “Aquire Awesome Audio for BeagleBone”

Audio Streaming on the Cheap With an RPi Zero

The minuscule size of the Raspberry Pi Zero makes it perfect for hacks where size is a factor. For example, a small, standalone device for getting streaming audio into your speakers. The RPi Zero doesn’t have an audio output on board, so PolyVection paired it up with their PlainDAC to build a minimal audio streaming device.

Their build uses a few lines from the GPIO header to drive an I2S digital to analog converter. The DAC is a PCM5142 from Texas Instruments that provides high quality sound output, and contains a built in programmable DSP.

The hardware fits into a 3D printed case, coming in at 68 mm by 48 mm. There’s no WiFi inside, but this can be added with an external USB device for wireless streaming. The DAC used is supported by the Linux kernel, so a simple configuration is all that’s needed to pipe audio out.

Once you have a device like this assembled, you can install a server like Music Player Daemon to remotely control the device and cue up internet radio channels.

Logic Noise: Digital to Analog with an R-2R DAC

Making sound with digital logic usually calls for a Digital to Analog converter. Building one can be very simple, and the sound quality out of an R-2R Ladder is actually pretty good.

In the last edition of Logic Noise, we built up a (relatively) simple VCO — voltage-controlled oscillator — that had roughly one-volt-per-octave response. I even demonstrated it working mostly in tune with another synth’s keyboard. But what if you don’t have a control-voltage keyboard sitting around or you want to combine all of the logic-based circuits that we’ve been building with other circuits under voltage control? That’s where the digital to analog (DAC) voltage converter comes in.

Continue reading “Logic Noise: Digital to Analog with an R-2R DAC”

Video FPGA with No External A/D

You have an old PC with a nonstandard RGB video out and you need to bring it to a modern PAL TV set. That’s the problem [svofski] had, so he decided to use an Altera-based DE1 board to do the conversion. Normally, you’d expect reading an RGB video signal would take an analog to digital converter, which is not typically present on an FPGA. Instead of adding an external device, [svofski] used a trick to hijack the FPGA’s LVDS receivers and use them as comparators.

Continue reading “Video FPGA with No External A/D”

ESP8266 As A Networked MP3 Decoder

Support libraries, good application notes, and worked examples from a manufacturer can really help speed us on our way in making cool stuff with new parts. Espressif Systems has been doing a good job with their ESP8266 product (of course, it doesn’t hurt that the thing makes a sub-$5 IOT device a reality). Only recently, though, have they started publishing completed, complex application examples. This demo, a networked MP3 webradio player, just popped up in Github, written by the man better known to us as Sprite_tm. We can’t wait to see more.

The MP3 decoder itself is a port of the MAD MP3 library, adapted for smaller amounts of SRAM and ported to the ESP8266. With a couple external parts, you can make an internet-connected device that you can point to any Icecast MP3 stream, for instance, and it’ll decode and play the resulting audio.

What external parts, you ask? First is something to do the digital-to-analog conversion. The application, as written, is build for an ES9023 DAC, but basically anything that speaks I2S should be workable with only a little bit of datasheet-poking and head-scratching. Of course, you could get rid of the nice-sounding DAC chip and output 5-bit PWM directly from the ESP8266, but aside from being a nice quick demo, it’s going to sound like crap.

The other suggested external IC is an SPI RAM chip to allow for buffering of the incoming MP3 file. WiFi — and TCP networks in general — being what they are, you’re going to want to buffer the MP3 files to prevent glitching. As with the dedicated DAC, you could get away without it (and there are defines in the “playerconfig.h” file to do so) but you’ll probably regret it.

In sum, an ESP8266 chip, a cheap I2S DAC, and some external RAM and you’ve got a webradio player. OK, maybe we’d also add an amplifier chip, power supply, and a speaker. Hmmm…. and a display? Or leave it all configurable over WiFi? Point is, it’s a great worked code example, and a neat DIY device to show your friends.

The downsides? So far, only the mono version of the libMAD decoder / synth has been ported over to ESP8266. The github link is begging for a pull request, the unported code is just sitting there, and we think that someone should take up the task.

Other Resources

In our search for other code examples for the ESP8266, we stumbled on three repositories that appear to be official Espressif repositories on Github: espressif, EspressifSystems, and EspressifApp (for mobile apps that connect to the ESP8266). The official “Low Power Voltage Measurement” example looks like a great place to start, and it uses the current version of the SDK and toolchain.

There’s also an active forum, with their own community Github repository, with a few “Hello World” examples and a nice walkthrough of the toolchain.

And of course, we’ve reported on a few in the past. This application keeps track of battery levels, for instance. If you’ve got the time, have a look at all the posts tagged ESP8266 here on Hackaday.

You couldn’t possibly want more resources for getting started with your ESP8266 project. Oh wait, you want Arduino IDE support?

Thanks [Sprite_tm] for the tip.