[sdiy] FPGA digital audio

jbv jbv.silences at wanadoo.fr
Sat Jan 12 23:39:04 CET 2002



Grant Richter :

> Are there any other designs for digital oscillators besides the classic
> indexed accumulator?
>
> I was thinking a digital implementation of a counter wavetable driver. It
> seems like with 1 nanosecond clock speeds, a high resolution variable
> divider driving a counter would allow sub-hertz resolution.
>
> A high resolution successive approximation A/D could also be realized in the
> FPGA. From the outside it would look like an analog oscillator, the the
> wavetable could be extremely wide range and stable.


As I pointed out a few times on this list during the past few years,
the basic (and most attractive) design for a digital osc is the one
described by Max Matthews in his book "the technology of computer
music" from the 60's.
A simple formula allows you to calculate the required increment inside
a fixed-length WT, according to the WT length, the desired frequency
and the sampling rate.
A very important additional feature is a linear interpolation between fixed
sample values of the WT, which tends to reduced perceptual distortion of
the output signal by several orders of magnitude (especially for sines).
Other techniques can be also implemented (band limited WT...).
Nevertheless, all these techniques require a multiplier (hence my question
of last week).

The project I'm working on presently (at least when I can find 5 minutes
for it) is about the minimal hardware structure to implement many different
functions, including dig osc of course.
At some point I realized that the same structure can be used to implement :
- VCDO & VC-spectrum VCDO
- VC-granular synthesis (based on WT or samples)
- VC granular reverb
- VC additive synthesis (which is just a specific form of granular synthesis)
- etc etc

At first I'm planing to work with separate chips (at least 1 ROM,  1 RAM,
1 multiplier, 1 fast uC, A/D & D/A and a few latches), and when I reach
something, then I may try to impletent it into FPGA.

If anyone is working on anything similar, I'd gladly share any experience
- (at least when I can find 5 minutes for it    ;-)

JB





More information about the Synth-diy mailing list