[sdiy] DAC selection in MIDI-CV Part #1
Gene Stopp
gene at ixiacom.com
Wed Sep 18 22:17:41 CEST 2002
Permit me to play the devil's advocate for the purposes of furthering
discussion about homebuilt DAC-based pitch CV sources...
I've found that the hand-matched metal film resistor R-2R ladder gives good
results on monophonic keyboard interfaces. Start with a bunch of 2% or 1%
and narrow it down with a DVM to as close as you can get. Six bits is all
I've ever used (5-octave keyboards). What would be the math to find the
deviation in cents for 0.1% matching on such a DAC? I suppose you would use
worst-case values at opposite extremes on the LSB side...
Also I've used an octal 8-channel 8-bit linear DAC (AD7228 I believe) driven
from a PC parallel port to give 8 CV's plus 8 gates. I drove the Vref from a
low power voltage regulator (78L05 with lifted ground? can't remember
exactly) set to 10-point-whatever volts, and grounded the DAC LSB input so
that the top 7 bits were the 128 MIDI semitones. The 8th bit I used for the
gate. 0x7F and below is note off, 0x80 and above is note on. This also gives
good results. If the pitches of the VCO's are sloppy, then I sure can't tell
the difference. The thing works just fine. Of course this may say something
about my pitch perception :) Or maybe some detune sounds good? Or sounds
good to *me*? Or maybe I picked a really good specimen for the DAC? Back
when I built this I don't think I did any math at all at the design phase -
I was just in a solder-happy stage in my life. At least now I have another
cool box. I use it to drive my ENS-74, usually patched so CV 1 is the pitch
and the other seven are various bend/mod depth/velocity/CC/whatevers. The
seven extra gates have a threshold setting in my program so that you can set
the trip points. It gets pretty whacky. Which is a good thing.
BTW I prefer not to use triggers. I like the way you can retrigger *if you
want* with a gate-only controller. Or you can let the attacks die out when
you play legato. You can phrase your VCF cutoff without using a pedal or a
knob. However I have done the pitch-CV differentiator trigger on a 5-octave
minimoog conversion I did for a friend once, as a switchable option. I wish
I could buy that machine now :( What I'm trying to say I guess is that both
single and multi-trigger modes have their uses. I suppose if you're playing
live and you need every note to trigger (synthetic vibes solo?) you would
prefer to have the interface do the triggering for you.
Anyway not to belittle any efforts to obtain subjectively perfect pitch
accuracy on anybody's DAC - especially on a product offered as a kit or
finished unit. In that case the math and accuracy are much appreciated and
even demanded. Lab quality to me is a big selling point. It's just that the
garage workbench hacks can certainly produce useable machines, good enough
for rock and roll.
- Gene
-----Original Message-----
From: phillip m gallo [mailto:philgallo at attglobal.net]
Sent: Wednesday, September 18, 2002 12:01 PM
To: synth diy; Paul Schreiber
Subject: RE: [sdiy] DAC selection in MIDI-CV Part #1
Amen, i say unto you. Paul has pretty much nailed the issue.
When you are going to use a DAC to drive an analog synth you have a lot of
issues to deal with. If you peruse the WEB offerings for MIDI2CV you will
find most folks just output a voltage equiv. to the 7 bit MIDI key code.
This allows one to "sum" other linear modulation, fz offset, etc.. sources
to allow "detailed" control of an oscillator.
This is also why general "Sample and Hold" output structures are suitable
for use they need only have 7 bit linearity and total error which is fairly
easy to achieve. (An aside, some WEB Midi2CV avoid or less than perfectly
handle the critical voltage reference which impacts drift and tuning
stability ).
If you are going to use a DAC for exclusive control of a VCO then you are in
the "parts per million" environment that you had better be prepared for.
Paul already indicated a "proposed spec" of 1% or 1-cent.
If you accept this spec you now have a target for analyzing you required
accuracy.
One really good way to achieve this accuracy is to use multiple 8-12 bit
DAC's (with stable references) summed to achieve your final output control
voltage. One Dac emit's the 7 Bit MIDI Key equiv. voltage. Another DAC
provides a modulation output, or fz offset. The number of DAC's you "sum"
is a function of how much accuracy and range you require. You also can some
them in a "weighted" structure.
Note that Paul's comment regarding your op-amps drift and accuracy still
applies. This is an arena where you get a lot of help from manufacturers
and allows a greater "pool" of parts to choose from and even provides an
(pin for pin) upgrade path for those who trade accuracy and stability for
now but want a future capability.
I have implemented the multi-dac scenario quite a bit for digital control of
VCO's. The software isn't really very tricky and even allows some
interesting opportunities for a multi-tasking approach.
regards,
p
-----Original Message-----
From: owner-synth-diy at dropmix.xs4all.nl
[mailto:owner-synth-diy at dropmix.xs4all.nl]On Behalf Of Paul Schreiber
Sent: Wednesday, September 18, 2002 10:10 AM
To: Seb Francis; Micke Askernäs
Cc: synth-diy at dropmix.xs4all.nl
Subject: [sdiy] DAC selection in MIDI-CV Part #1
I'm designing one at the moment (16 channels + 4 gates). It will be based
around a PIC and
MAX525BCPP 12bit D/As. These Quad-D/As are relatively cheap, but accurate
enough (+/- 1 LSB) for
pitch control over a full 10V scale.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
No, they are NOT! (speaking as Maxim's DAC FAE).
Although I've discussed this in the past several times (check archives), I'm
doing some DAC apps
now (on the older MAX502 parallel 12-bit DAC), it's time for a ADC/DAC
refresher course :)
Here is a DAC FAQ.....
a) What errors are in DACs, and what errors can I control?
There are MANY sources of error in DACs and their 2 main "outside"
components: the voltage
reference and the buffer amp. You *must* do a full "system level study"
because all the errors
add up, and you have to address ALL of them.
The first thing to address is simple but often overlooked: what voltage
accuracy do I need. This
has NOTHING AT ALL to do with the number of bits in the DAC! This has to do
with the VCOs. What
ideal voltage does the VCO need to receive in order to be on pitch (assuming
the VCO is
'perfect')?
At 1V/octave, a full step is 1/12 or 83.333mv. If we desire 1% of that
(pretty much the limit of
pitch perception), then the voltage fed to the VCO out of the DAC system can
not have an error of
more than 833uv. That's 833 MILLIONTHS of a volt. It doesn't matter if we
are in the 0-1V octave
or a 9-10V octave, the DAC system MUST be able to 'hit' a voltage within
833uv.
Setting the DAC chip aside, let's look just at the op amp buffer (this may
be inside the DAC chip
in some parts). The critical spec here is the op amp's Output Offset Voltage
Drift spec. We
really don't care what the initial offset voltage is (it's a constant), but,
it had better not
drift around over temp or the VCOs drift. The best op amps have drifts of
5uv/C. or better. Be
sure yours does (like the MAX427 or MXL1013, used extensively in MOTM, see
www.maxim-ic.com for
datasheets and FREE samples).
The next thing to worry about is the temp drift of the reference. The
reference may be internal
or external to the DAC. As a rule, external references are *much* more
accurate and stable. There
are again 2 specs of concern: accuracy and drift. Accuracy is part of the
overall "voltage
offset", as the output of the DAC is some fraction of the voltage reference
(DACs work by
precision dividing down the reference). Drift is in PPM (Parts Per Million)
per degree C. A 5V
reference with 5PPM drifts 1uv/C. Choose a reference that has 50PPM or
better (the same as a
really good 0.1% resistor). Get 10PPM and be done with it :)
Now it's time to look at DAC errors (Part #2).
Paul S.
---
Incoming mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.389 / Virus Database: 220 - Release Date: 9/16/02
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.389 / Virus Database: 220 - Release Date: 9/16/02
More information about the Synth-diy
mailing list