A Hackable Hi-Fi Audio DSP

DSP 01 Hi-fi Signal Processor

 

Audiophiles tend to put analog systems on a pedestal. Analog systems can provide great audio performance, but they tend to be quite costly. They’re also hard to tinker with, since modifying parameters involves replacing components. To address this, [tshen2] designed the DSP 01.

The DSP 01 is based around the Analog Devices ADAU1701. This DSP chip includes two ADCs for audio input, and four DACs for audio output. These can be controlled by the built in DSP processor core, which has I/O for switches, buttons, and knobs.

[tshen2]‘s main goal with the DSP 01 was to implement an audio crossover. This device takes an input audio signal and splits it up based on frequency so that subwoofers get the low frequency components and tweeters get the higher frequency components. This is critical for good audio performance since drivers can only perform well in a certain part of the audio spectrum.

Analog Devices provides SigmaStudio, a free tool that lets you program the DSP using a drag-and-drop interface. By dropping a few components in and programming to EEPROM, the DSP can be easily reconfigured for a variety of applications.

Using Surface Mount Devices On A Breadboard

SOIC

[Czar] was working on a project with the Raspberry Pi using the MCP3008 analog to digital converter. The surface mount SOIC version of this chip was slightly cheaper, and there’s always a way to make that work (Portuguese, Google Translation). How [Czar] did it is fairly impressive, as it’s a bit more flexible for breadboard designs than a through-hole version, and done correctly, is an extremely sturdy hack.

A few new leads needed to be soldered onto the SOIC package, and for this [Czar] chose jumper wires. This makes each pin easy to plug into a solderless breadboard, and since [Czar] was extremely clever, all the wires for power, ground, analog, and SPI are color coded.

Simply soldering a few jumper wires onto a chip won’t last for very long. To solve this problem, [Czar] potted the entire chip and its connections with hot glue. Probably not the best solution, and a heavy-duty epoxy would have been better, but the current build is more than enough to stand up to the relatively minor abuse it will receive on the workbench.

ADC For Raspi Without Using An ADC

Schematic of ACD for a raspi

With all the amazing and wonderful things a Raspberry Pi can do, it is sorely lacking a dedicated ADC chip. Sure, you can wire up an ADC via SPI or even I2C with a little work, but still. It would be nice to have access to an Analog to Digital converter without having to go through the trouble. Fortunately, [Hussam] has figured out a way to do just this.

Using a comparator, two resistors, a single capacitor and a few lines of code, [Hussam] managed to get an active ADC working on his Raspberry Pi. He’s using the PWM1 and a passive RC filter to make a DAC. He then uses the comparator along with a ‘ successive approximation algorithm’ to complete the ADC.

[Hussam] mentions that the hack is not new, and this technique has been used before for microcrotrollers that lack a built-in ADC. But we are still impressed with his attention to detail in describing how to do this on a Raspi. Be sure to check out the link for full details, code, and an awesome description on how his algorithm works.

The Analog Swiss Army Knife

11300

While FPGAs get all the credit for being the hip new thing, they are inherently digital devices. Without a proper ADC and DAC, you won’t be delving into the analog domain with your programmable logic. Maxim has just put out a chip that does just that: an analog swiss army knife with 20 pins that are configurable as analog to digital converter, digital to analog converters, GPIO, or any mix of the above.

The MAX11300 includes twenty IO ports, each capable of becoming an ADC, DAC, or GPIO, with pairs of ports capable of being configured as a logic level translator or an analog switch. The ADCs and DACs are 12-bit, with input and output ranges from -10V to +10V.

As a nice little bonus, the chip is controlled over SPI, making this an interesting device for a small “do anything analog” tool we’re sure will hit Tindie or Seeed Studio before the year is out. Luckily for whoever would create such a device, Maxim has a nice GUI for configuring each of the 20 pins on their chip, Of course Maxim already offers an evaluation kit for the MAX11300. It’s $100 USD and is Windows only.

The MAX11300 is available in either 40-pin TQFN or 48-pin TQFP packages (with the larger, easier to solder TQFP shipping later) for about $5.80 USD in quantity 1000, or $11.37 in quantity one.Video below showing off the MAX11300 reading and writing analog values to a few pins, and a good look at the configuration software.

[Read more...]

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.

[Read more...]

Building an audio box out of thrown away boards

The last time [Mark] was at the scrap yard, he managed to find the analogue input and output cards of an old Akai DR8 studio hard drive recorder. These cards offered great possibilities (8 ADC inputs, 12 DAC outputs) so he repaired them and made a whole audio system out of them.

The repair only involved changing a couple of low dropout regulators. Afterwards, [Mark] interfaced one of his CPLD development boards so he could produce some sine waves and digitize signals generated from a PC based audio test unit. He then made the frame shown in the picture above and switched to an Altera Cyclone IV FPGA. To complete his system, he designed a small board to attach a VGA screen,  and another to use the nRF24L01 wireless module.

Inside the FPGA, [Mark] used a NIOS II soft core processor to orchestrate the complete system and display a nice user interface. He even made another system with an USB host plug to connect MIDI enabled peripherals, allowing him to wirelessly control his creation.

Filtering out mains hum from ADC samples

Hum_filter

A little light reading means something different to us than it does to [Hamster]. He’s been making his way through a book called The Scientist and Engineer’s Guide to Digital Signal Processing written by [Steven W. Smith, Ph.D]. Being the hacker type, a million different uses for the newfound knowledge popped to mind. But as a sanity check he decided to focus on a useful proof of concept first. He’s come up with a way to filter out the mains hum from Analog to Digital Converter samples.

Mains hum is all around us; produced by the alternating current in the power grid that runs our modern lives. It’s a type of interference that can be quite problematic, which is on reason why we see EMF sensor projects from time to time. Now you can filter that ambient interference from your projects which take readings from an ADC. This would be quite useful for applications which measuring teeny signals, like ECG hacks.

[Hamster] did a pretty good job of presenting his demonstration for the uninitiated. He even provides examples for Arduino or FPGA projects.

Follow

Get every new post delivered to your Inbox.

Join 96,545 other followers