Zonn writes:
>You know I didn't want to say anything, because people seem to have their
>heart on the single DSP approach, but now that you've mention PIC...
>
>I was thinking a neat approach would be to use a PIC processor for every
>analog sound or two. The 16x6x series has a built in PCM output that with a
>capacitor used for filtering, you can get up to 10 bits of resolution. That
>would be 4 8bit sound samples (emulations?) with no loss. 8 bit samples
>should be able to match the signal to noise ratio of the original sound
>cards. They didn't use a lot of dynamic range, and those amplifiers were
>not "low noise".
I kicked this around a couple times too, but it came down to the fact that
the PICs are great as long as you're doing stuff that will fit in the
internal ROM. However, as soon as you get in a situation where you want to
get at more memory all your nice PIC I/O gets sucked up trying to be an
address and data bus. :-(
As long as the waveforms are pretty simple (well, anything that could be a
*small* table or some easy algorithmically generated thing like a square
wave or pulse or triangle or something) the PIC could handle it OK, but the
PICs lack any real worthwhile addressing modes for table lookups, and the
internal memory is a little skimpy for any sort of real "samples".
However, I bet some pretty convincing approximations of the sounds could be
made. Do any of you have some .WAV or .AIFF sound files of what the
Eliminator and Space Fury sounds are like?
One thing the PIC does have on it's side is a a BUNCH of cycles per second.
So a summation of four synthesized 8 bit voices would probably be doable.
The state machine might get a little screwy to write in the PIC
architecture though. Hmmmm.
We could also do this-- digitize all the sound effects we want. Put all of
them into a big EPROM and run the outputs of the EPROM to a simple little
R2R output ladder. (A cheapo D/A). Then, send the output of the D/A to a
mux than can be switched to N (8?) sample/hold caps. Have the PIC watch
the sound "trigger" registers for what needs to be played. The PIC then
runs the address lines of the EPROM, and the selector lines of the analog
mux and uses the internal RAM to keep track of what sample is being played
and the current "address pointer" for each sample.
>I'd ask you (Clay) to be my running mate, but I'm sure we'd get in a fight
>over some nit picky thing and end up splitting the PIC party...and those
>damned "Intel Segment Heads" would win again! ;^)
*heh* Yeah, that sounds about right. :-)
>Well uh, I'd hate to state the obvious, but if your talking those old shift
>register based noise generators, then this sounds like another job for the
>PIC! (Fanfare please!)
Hmmm. I was thinking of those little 3 wire guys that Radio Shack used to
sell. I think they were genuine white noise sources. (I don't know if the
XOR method would really give you "white" or not, I'd suspect it would be
pink noise of some variation...) It looks like the universal sound boards
have 'em on them...
-Clay
Clayton N. Cowgill Engineering Manager
_______________________________________________________________________
/\ Diamond Multimedia Systems, Inc. clay@supra.com
\/ Communications Division http://www.supra.com/
Received on Thu May 1 17:18:46 1997
This archive was generated by hypermail 2.1.8 : Fri Aug 01 2003 - 00:32:03 EDT