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

Susan Werner heinousbutch at gmail.com
Tue Jul 10 07:33:18 UTC 2012


On Jul 08 12:59, Robby wrote:
> 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.

Would you mind pastebinning *all* your code? Also, try putting a sampled sine
wave into the flash so you can hook up a scope and see exactly *how* it's being
distorted.

> If anybody has had experience with this approach maybe you can help me?

-- 
Susan Werner




More information about the Noisebridge-discuss mailing list