[sdiy] Roland DCOs

Dave Manley dlmanley at sonic.net
Wed Feb 27 08:47:05 CET 2008

Agreed, it's a very clean looking implementation.  There are still a few 
mysteries - I never got around to figuring out what that PA381 dual VCA 
is doing, or what the mystery chip is next to the DAC.  I was also 
surprised by the ceramic chip caps used in the filter, after hearing 
discussion about the suitability of different cap materials for audio 
use (makes me wonder if the Moog LP uses chip caps in their filter).  
There was also the unresolved issue about what exactly the "oscillator 
slop" parameter does.  Regarding the code, you could always get a hold 
of one and plug into that RJ-45 debug port ;-)


Eric Brombaugh wrote:
> Thanks for posting that. I note that I also got the SPI DAC details 
> wrong - it's not an 8-chl SPI DAC, but a single channel SPI DAC with a 
> 24-chl analog demux & S/H configuration.
> Don't know about you, but I think that's a fairly elegant use of 
> resources. I bet the code for the voice processors is something to 
> behold...
> Eric
> On Feb 26, 2008, at 11:42 PM, Dave Manley wrote:
>> Here's a labled pic of the voice ckt I posted to AH at the time:
>> http://www.sonic.net/~dlmanley/p08VoiceLabeled.jpg
>> Unfortunately, the pics (I believe taken by Stephen Johnson) were a 
>> bit blurry and made it impossible to dig all the details out, but 
>> what Eric describes is essentially correct (except there's one dsPIC 
>> per two voices).  Looking at the pics again, the clock osc labeling 
>> is not clear enough to make out, but looks like 4?00, so perhaps it 
>> is 40MHz.
>> -Dave
>> Eric Brombaugh wrote:
>>> I seem to recall a similar discussion on AH back when the first 
>>> internal photos of the DSI P08 came out a few months ago. From what 
>>> I recall of that thread, the P08 uses a bunch of the motor control 
>>> dsPIC chips. There's one dsPIC per voice controlling a CM3396-like 
>>> chip. The motor control variety has a bunch of nice PWM outputs that 
>>> can presumably provide the digital divider output, plus there's an 
>>> 8-channel SPI DAC being used for the numerous voltage control points 
>>> on the '3396. To top it all off there's another dsPIC that talks to 
>>> the keyboard, panel controls & MIDI, coordinating the behavior of 
>>> the per-voice dsPICs.
>>> At the time, I sat down and figured out the frequency resolution 
>>> you'd get from the dsPIC dividers and it looked pretty decent. 
>>> Here's what I wrote then:
>>> -----------------
>>> I was curious about which dsPIC was being used. Notice that it's the 
>>> 'MC' version - that probably means that he's using the motor control 
>>> PWM channels to generate the waveshaper drive pulses.
>>> The motor control time base has 15-bit resolution with a 1/4/16/64x 
>>> prescaler - that should give plenty of frequency accuracy. I've no 
>>> idea what the dsPIC clock rate is, but assuming it's running near 
>>> it's maximum, 40MHz is a good ballpark. Given that, you get the 
>>> following resolution at the various prescaler settings:
>>> 1:1 - Range is 2441Hz and up. Resolution is ~0.15Hz at 2441, ~2.3Hz 
>>> @ 10kHz.
>>> 1:4 - Bottom of range is 610Hz. Resolution there is 0.03Hz, 0.6Hz at 
>>> 2.4kHz.
>>> 1:16 - Bottom of range is 152Hz. Resolution is 0.009Hz, 0.15Hz at 600Hz
>>> 1:64 - Bottom of range is 38Hz. Resolution is 0.002Hz, 0.04Hz at 150Hz
>>> Those resolutions give about 1/10 cent accuracy at the low ends of 
>>> the range and 1/2 cent at 4x higher. Not too bad.
>>> Not sure what the overall frequency range of the '08 is, but if it 
>>> goes lower than 38Hz then the dsPIC is may be running slower than 
>>> 40MHz.

More information about the Synth-diy mailing list