im looking into using the arduino to play back sampled audio, i already know the quality won't be fantastic.
so far i've seen a couple ways of potentially storing the data, either as say 8bit 8khz pcm, or 1-bit audio http://www.romanblack.com/picsound.htm
the 168 based arduino's have 16k of storage, which even on a good day lets say you had half of that ... which is roughly 1sec of 8bit/8khz audio (im assuming 1byte x 8000 = ~8k/sec)
so i'm going to try and store the audio on a spi interfaced eeprom like the arduino tutorial.
.... so i guess i have some questions on the best way to go about this.
i figure there are a few approaches
1) have the arduino fetch the entire eeprom sample, then play the sample ... this would run into the arduino's memory limitations. and limit it to very short clips of sound ... possibly not too bad with the 1-bit sound alternative.
2) play/fetch the data at the same time, im assuming only fetching what it needs to play in that time frame
... i guess i don't have a real good idea of what the arduino is capable of speedwise, and what the eeprom is capable of (at the moment i just have the eeprom that is in the arduino tutorial). lets say i do the simplest play loop, 8000 iterations a second for 8khz audio im assuming and only fetch one byte of storage then play it each iteration ... will i hit a brick wall in both the arduino's processing, and the eeprom's ability to fetch etc...?
if so, what are some of the preferred methods to get around this? fetch larger chunks ... offload tasks to other arduinos, use other chips better suited?
for our example lets say i just have some pushbuttons, an arduino168, a AT25HP512 (64k eeprom), an amplifier and a speaker. function being to play a different portion of the eeproms stored data on different button presses.