[sdiy] DECISION TIME: need a Ucontroller/ARM/DSP chip that will process audio
Dan Snazelle
subjectivity at hotmail.com
Sun Mar 4 00:46:19 CET 2012
Great advice
I had noticed that the wtpa and a few others DO have fx
I have ordered some spi 16 bit ADC/dacs so maybe that will help
I guess maybe i am jumping the gun
Does anyone have advice on how to make effects on the AVR less noisy??
I was wondering if maybe the issue was simply
1. 10 bit adc
2. 8 bit dac which means errors converting floats to 0-255
one problem for me (as i am a begginer) is not knowing when the noise is from poor programming or when its from inadequate in/outs
I do know that chips like the pt2399 require serious input filtering....maybe i need to implement that on the avr as well
Id LOVE to hear if anyone has experience here creating effects with the AVR and what pitfalls they came up against
Thanks as always for such great advice
Sent from my iPhone
On Mar 3, 2012, at 6:16 PM, Olivier Gillet <ol.gillet at gmail.com> wrote:
> True, the ATmega line (as used in the Arduino) is not spectacular for
> audio processing, but you mention delays and flangers, not convolution
> reverbs or spectral morphing, right? A micro clocked at 16 MHz
> processing audio at 40kHz gives you 400 CPU cycles per sample. Ok -
> 350 cycles if you remove interrupt overhead. I'd say you only need one
> fourth of that to do a stereo delay or flanger without *even* trying
> to be smart with the code.
>
> The WTPA - http://narrat1ve.com/ - does sampling / granular processing
> on two voices, and is based on a lowly ATMega - so it's not like it's
> impossible. See also the Microdec -
> http://www.openmusiclabs.com/projects/microdec/
>
> The limiting factor seems to be in your case the 2k of RAM of the
> ATmega328p. Note that 2k is still OK for a mono flanger, of course it
> sucks for delays... The bad news for you is that you won't get
> dramatically more by switching to other MCU families - maybe 24k
> (STM32F103 - Maple) or 32k (LPC1756 - Mbed), not the 172k you need to
> hold 1s of stereo 16-bit audio at 44.1kHz... You will surely get much
> more processing power, a 32-bit ALUs or even DSP operations, and all
> this will solve all kinds of problems except "giving you more delay
> time". Throwing out the baby with the bath water etc. The more
> sophisticated you'll get, the more hurdles you'll meet in terms of
> development environment, chip packages, cost of dev boards or
> compilers, support, etc... From your previous posts it seems like
> you're still in the process of learning programming ; and discovering
> concepts like interrupts, manipulating peripherals registers etc.
> Maybe you should take the time to learn all this in an environment
> very friendly to beginners and frequented by people rooted in
> pedagogy? And then ditch the AVR/Arduino once you are confident you
> understand well all the concepts to know your needs and make decisions
> by yourself?
>
> For delays, you'll have to go external RAM whatever you do. You can
> find old-school DIP 512k or 1M SRAM chips with parallel interfaces:
> http://fr.farnell.com/alliance-memory/as6c4008-55pcn/sram-4mb-2-7v-5-5v-512kx8-pdip32/dp/1562900
>
> As for DAC / ADC, if you're doing serious audio work you'll probably
> have to use an external one anyway. SPI or I2S...
>
> It's certainly a foolish sport to try to squeeze as much DSP/synthesis
> stuff out of an 8-bit micro, but there's no excuse for not trying to
> learn first about the simple stuff (like delays) with what you have.
>
> Olivier
>
More information about the Synth-diy
mailing list