MICrODEC

About MICrODEC

MICrODEC is a work in progress (and probably always will be). It is an open-source platform for Digital Signal Processing (DSP) that is approachable for those familiar with programming Atmel microcontrollers. For those unfamiliar, we hope its a fun excuse to learn.

The hardware itself is of moderately high quality (44.1ksps, 16bit, stereo, -96dB noise, 3Hz - 18kHz frequency response), and has built in features for use with audio effects (wet/dry mix, feedback, mic./instrument/line level inputs). Because of the high data rate, the MICrODEC does not allow for as much processing time as low-end ADC to PWM style microcontroller audio interfaces, but, with 6 seconds of sample time, plenty of useful functions can be executed in the ~400 free clock cycles per sample. And, at a lower cost in comparison to high-end DSP units, it provides a good platform for sound installations where more than a few units may be required.

Features yet implemented

Features not yet implemented

The current MICrODEC implementation is fun to use, but there are a number of things that would make it even better.

Firmware

The Firmware for the MICrODEC is divided into 2 parts. The first is a Main File, which deals with initializing the microcontroller and codec, and handles the interrupt routine. The second is the Function Bank, which holds all of the commands which are executed when an interrupt is called (once per audio sample). This may or may not be the best implementation. It has the advantage of being more portable, as different programs can be dropped into the Function Bank, without having to worry about conflicts in the Main File. On the other hand, no processing can occur during idle time outside of the interrupt loop.

Main File: Microdec1

Stock Functions: Stock Functions

Compiled Hex File with the Stock Functions:[[attachment:microdec1.hex|microdec1.hex]]

User Written Programs: User Programs.

Useful Functions (assembly): Useful Functions These can be used to save you time when programming. They are usually optimized for speed, and have 16b and 32b math operations, along with procedures for talking to the codec or other tasks required by the microcontroller.

Programming Example: Delay Tutorial A delay program, with extensive comments, designed to demonstrate programming the MICrODEC in assembly.

Modifications, Additions, Enhancements

Adding another knob: Adding A Knob

Talking MIDI

Talking to the serial port

Documentation

Files: Beta Release

Files: Datasheets

Other Reprogrammable Audio Platforms

There are a lot of people who have made audio processing platforms. Have a look and see if any of them are more suited to what you're interested in doing. Each has its ups and downs, the major tradeoffs being cost, complexity, and audio quality.

Other Platforms

MICrODEC (last edited 2010-08-18 07:52:34 by guest)