This project came into existence because I wanted to be able to control applications like Ableton Live, Max/MSP/Jitter, and Processing with my modular synth. An Arduino could handle the job fine on its own, but the on board ADCs were only 8-bit resolution which means that you only get converted values between 0-255. This is fine for MIDI control, which only has 7-bit reolution (0-127), but a modular synth is analog and has essentially infinite resolution and I wanted to create a system that would allow me to capture as much of the control voltage resolution as I could, within limit of my budget and skills.
The goal of this project to create an 8-channel 12-bit analog-to-digital converter (ADC) using the Arduino as an intermediary. The ADC chip I chose was the Analog Devices AD7998, which communicates with the Arduino using the I2C protocol and is spec'd to capture frequencies up to 11Mhz, well beyond the spectrum of hearing. This should enable the system to capture anything from slow LFO modulations to the faster, and audible, output of VCOs. The system uses a Processing application to capture the data via USB and broadcasts them to the local server via OSC, which means that any program has access to the data!
The system itself is functional, however I have run into a wall in regards to the frequency of sampling. There is noticeable "stepping" in the captured values as you get to around 4Hz - this is far below what the AD7998 is spec'd for and I'm not so sure where the bottleneck is.