>>Note that you only need one sine table regardless of how many
>>sine waves are generated from it simultaneously.
>>
>>
>
>I did look at using DDS, but I'll explain why I didn't think one PIC could
>do it.
>
>This is essentially a "port" of a project that was done using
>LSI/MSI/analog. It's a 24 (extendable to 36) digital-analog synthesizer,
>that supports 8/12 note polyphony (extendable to 24/whatever, depending on
>how many subcircuits are there). An analog multiplier with a
>capacitor/monostable circuit handles the ADSR (Attack, Decay, Sustain,
>Release) of each note. A POT/opamp handle amplitude for each channel, while
>a system of 16:1 muxes allows varying each note slightly around the center
>frequency.
>
>I was looking at starting simple, but implementing this in full would
>basically mean 24/36 simultaneous phase accumulators. Each PCM output byte
>would need at least a 4-bit multiplier for ADSR/amplitude, and all of these
>would need to be added to produce the final 14-16 bit output.
>
>To that end, if a master-slave situation was necessary, I might also
>consider using 18F slaves (for the HW multiplier). [This is an academic
>project, so one-time expenses are fine]
>
>
>
>>What is the sample rate? What are the range of sine frequencies? What
>>frequency resolution is required?
>>
>>
>
>The sampling rate would be at least 32 KHz. The synth allows external audio
>input -- which I would like to be sampled at at least this rate. The range
>of frequencies I'm looking at is 100-4000 Hz. Frequency resolution should be
>at least 0.5 Hz, preferably 0.1. I know that 32 KHz might sound overkill for
>a maximum frequency of 4 KHz, but I do not want to construct a complex
>lowpass at the DAC end, and if I lowered it, I would need to upsample the
>synth output (or downsample the external audio) if I intend to mix them
>digitally, instead of the analog domain (as it is done now).
>
>Thanks though, Olin, for the concise explanation of how the phase
>accumulator is incremented - I had certain misconceptions about how the
>frequency resolution is dependent on the size of the LUT.
>
>While it would be possible to use a 256 entry LUT and complement the sign
>bits/reverse lookup based on the quadrant, I don't really need every last
>byte of program memory, and will just use a full sine LUT as you suggested.
>
>As an aside, somebody has made a mini-DDS with 0.07 Hz freq. res. using a
>256-entry sine LUT with an AVR [
http://www.myplace.nu/avr/minidds/ ]. So
>the only question that remains now is how much polyphony an 18F @ 40 MHz can
>handle... :-)
>
>Cheers,
>Ishaan
>
>--
>
http://www.piclist.com hint: The PICList is archived three different
>ways. See
http://www.piclist.com/#archives for details.
>
>
>