[Noisebridge-discuss] [noisebridge-discuss] HELP: Audio playback via uC, Sampling, pwm-DAC

Robby robwasab at gmail.com
Sun Jul 8 19:59:34 UTC 2012


Hello y'all,
I'm depressed, see, I can't get my micro to play back recorded audio
samples, here's what I've been doing and from what I can tell, the internet
says todo:
using an tiny85 I'm using its 64Mhz PWM with a low pass filter to create
analog voltages, I can create a sine wave using a 256 byte lookup table I
use 256 resolution because I do this:

OCR1B = pgm_read_byte[sinWaveTable + TCNT0]; //The timer speed is the speed
at which the wave table is played back

And it makes a really good sin wave (used an oscilloscope to verify this).

however, this shows that I can create relatively good analog voltages, I
cannot play back sounds that I've saved in the avr's flash.

to do this, I have converted an arbitrary sound file to .WAV (uncompressed)
further converted it to 8bit sampled at 6khz. So each byte in this file
corresponds to a sinusoidal sound wave point, and all i have to do is play
back each analog value at the speed of the sampling rate. (please verify me
on this?) makes sense. I open the WAV file in a java program that I wrote
that reads each byte and separates them with commas so that I can make an
array out of the data.

And I just play it back, I tried to use a Compare Match A interrupt to read
each array value (at the sampling rate hence the compare match interrupt)
and change analog value coming out of OCR1B but it sounds like SHIT, I
can't even tell what it sounds like.

If anybody has had experience with this approach maybe you can help me?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.noisebridge.net/pipermail/noisebridge-discuss/attachments/20120708/1606afd2/attachment-0002.html>


More information about the Noisebridge-discuss mailing list