Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!seismo!ll-xn!ames!oliveb!prs
From: prs@oliveb.UUCP (Philip Stephens)
Newsgroups: sci.electronics,rec.music.synth
Subject: Re: DCO's revisited - an inquiry into hardware implementation
Message-ID: <1867@oliveb.UUCP>
Date: Tue, 7-Jul-87 21:56:47 EDT
Article-I.D.: oliveb.1867
Posted: Tue Jul  7 21:56:47 1987
Date-Received: Fri, 10-Jul-87 07:13:09 EDT
References: <235@cogent.UUCP.> <22755@sun.uucp>
Reply-To: prs@oliven.UUCP (Philip Stephens)
Distribution: world
Organization: Olivetti ATC; Cupertino, Ca
Lines: 47
Keywords: now for the real work...
Xref: mnetor sci.electronics:908 rec.music.synth:1039

In article <22755@sun.uucp> cmcmanis@sun.UUCP (Chuck McManis) writes:
>In article <235@cogent.UUCP.> mark@cogent.UUCP (Mark Steven Jeghers) writes:
>.>
>.>I recently posted an article discussing the design of a totally digital
>.>oscillator for use in a musical synthesizer.  It was posted in the

>.>The key part of the DCO is the adder-latch feedback loop.  Theoretically,

>.>of them (so their carry-bits can be connected together).  The propogation
>.>delays for the carry bits add up to a large amount.  The bottom line is
>.>this: the adder gets REAL slow due to the required rippling of so many
>.>carry bits.
>
>The secret (one of them) is to use an adder with carry 'look ahead' so 
>that each adder only adds one gate delay to the loop. The second secret
>is to use smaller wave tables. A DCO built with a 256 byte lookup table
>needs a clock rate of 5.12 Mhz to generate a 20Khz tone. Since 20K

Lookahead, yes... or use a DSP chip with a 32 bit accumulator.  BTW, I
meant to reply to same article as this one did, that there are now MMI
PALs with 10 ns thruput, called 'D-PALS'.  Eight outputs, with 8, 6, 4, 
or none registered.

As for speed, you need about 40 Khz reguardless of currently selected
tone; vary the amount that gets added to the wrap-around pointer each
25 microseconds.  No need to go into Mhz, let alone Ghz, except for
doing 8 or 16 voices at once using the same RAM; whether same address
space or not, need seperate accumulators or swap in and out... much
higher bandwidth requirement, but less than 2 orders of magnitude 
above 40 Khz, ie less than 4 Mhz -- quite a low-tech frequency.

I happen to have borrowed documentation on the TI DSP chip TMS320C25,
which has 100 nS instruction time, 40 or 32 Mhz clock, 32 bit ALU and
accumulator, 544 'words' of onboard ram (16 bits each)... I haven't 
actually worked with it, but I think it's adequate (I borrowed the
info for looking at doing my own effects onboard; I think I'll need
seperate DSP for that if use one for sound-table indexing, as the
'effects' will need multiplication as well as addition).  I'm sure
other DSP chips and plain vanilla CPU's with 32 bit addition will do
for this indexing chore, although some might not have processing
power left over for MIDI management... any experts want to comment???


	- Phil		prs@oliveb.UUCP (Phil Stephens)     
	or:	(hplabs,ihnp4,sun,allegra)oliveb!oliven!prs 
	Mail welcome, but I'm too lazy to always answer   8-}  8-}
	Work phone: 408 996 3867 x2224	(approx 10a-6p PST/PDT)