[sdiy] audio microprocessors and C++

Eric Brombaugh ebrombaugh at earthlink.net
Thu Mar 6 01:38:19 CET 2008


It's possible to do hardware implementations of synthesis using C/C++.  
The main problem that you'll run into however is that prototyping on  
PC hardware using Win/Mac/Linux doesn't give you a good idea of the  
limitations you'll run into with DIY hardware. Basically the issue is  
that modern PC CPUs are _extremely_ powerful - you can do some fairly  
sloppy programming, run a bunch of other stuff in the background,  
watch a DVD, etc and your audio algorithm will still meet the real- 
time deadlines. On DIY microprocessors this isn't the case though, and  
you'll need to guard those cycles jealously. And you probably won't be  
able to use floating point.

With that understood though, there are a few C programmable MCUs that  
are DIY friendly: various flavors of ARM processors and Microchip  
dsPICs to name a few. Atmel makes the SAM7 series of ARM processors  
that have I2S serial interfaces that can drive audio DACs directly.  
Analog Devices ARM7-based processors have ADCs and DACs on-chip. All  
of these can be programmed with free (Gnu-based) development tools in  
either C or C++, or there are some excellent development systems  
available for reasonable prices.

Alternatively, the Freescale SoundBite DSP system that was being  
discussed here a few weeks ago is also a path to audio synthesis using  
high-level languages. It has 8 channels of audio I/O, a reasonable  
amount of program memory and is supported by another variant of GCC.  
Plus it runs pretty quick.

Lots of things to consider. Probably too many choices...

Eric


On Mar 5, 2008, at 5:01 PM, Julian wrote:

> Forgive me, as ive done very little external research on this before  
> asking here...
>
> I was chatting to someone last night about audio processing, and it  
> got onto microprocessors as a solution for 'wierd' stuff...
>
> I have a friend whose a professional C++ programmer, and has, for  
> his own fun, written several little 'windows' applications doing  
> things like genetic granular stuff.
>
> This would all have been using the standard windows, whatever their  
> called, drivers? dlls? - ie not writing to the hardware direct, but  
> to a sofware 'middle man'
>
> Anyway, im starting to digress..
>
> I was wondering as to how feasible it would be to convert this into  
> hardware?  What i should be reading, and what i should be asking him  
> (i have little experinace with C++ and he has little experiance of  
> electronics)
>
> Any pointers?




More information about the Synth-diy mailing list