Odp: [sdiy] DAC for MIDI2CV
Seb Francis
seb at is-uk.com
Sat Oct 5 04:36:33 CEST 2002
Roman wrote:
> I'd have to look at my printed AD catalogue to check the specs
> (ADI site seems not to have AD1856 anymore...),
As usual the UK suppliers seem to lag behind the manufacturers ..
> I wanted to do the same thing, i.e. 16-bit dac for CV and
> pitchbend, but gave up the idea, mainly thanks to members
> of this list. It may be cheaper and better to have separate
> DACs for every task, than have 16-bit sucker doing
> everything.
Yeah, I thought that way in the beginning to use multiple cheaper DACs, but I plan a lot of features that are going to need a fair bit of software anyway, so I figured adding a little interrupt routine to sequence through the 15 CV outputs isn't going to be the hard bit. It actually makes it a little easier for the other bits of multi-threaded code because you only need to write the desired output CV values to the right memory locations (rather than worrying about timing) and the interrupt routine takes care of actually setting the DAC + S&Hs.
Software is kind of my area, so I'm going to see really how much functionality I can squeeze out of a 20MHz PIC. The desired spec is below. I'll probably make the source available or some OTP PICs later if anyone's interested .. but one step at a time - I need to get the thing working first!
Thanks for the help with the INL/THD thing - the joys of datasheets...
Seb
I/O
===
MIDI In
MIDI Thru
3x Gate
15x High precision CV out
Bits
====
PIC
8x2 LCD Alpha Display
16-bit +-1LSB DAC
S&H array (or Mux + Caps)
4 x Quad precision opamps
Opto Isolator
Parameters / Features
=====================
All parameters setable via MIDI controller messages on control MIDI channel
Respond to MIDI all notes off message
Base MIDI channel
=> 1->16
Control MIDI channel
=> 1->16
Mono/Poly mode
=> Mode1 = 3 independent MIDI channels
(uses 3 Gate + 3 CV)
=> Mode2 = 2 independent MIDI channels, first channel has gate on note off
(uses 3 Gate + 2 CV)
=> Mode3 = 1 MIDI channel, 3 note poly
(uses 3 Gate + 3 CV)
Note priority
=> Newest, Lowest, Highest
Gate on note off length
=> 0.001->60s
Portamento mode
=> Off
=> Slide on legato
=> Always slide
Portamento time
=> 0.001->300s
Pitch bend amount (set per channel)
3 LFOs
=> Speed
=> Shape (Saw / Pulse / Triangle / Sine / Random)
=> Sync to MIDI clock
1/64, 1/32, 1/16, 1/8, 3/16, 1/4, 5/16, 3/8, 7/16, 1/2,
9/16, 5/8, 11/16, 3/4, 13/16, 7/8, 15/16, 1,
4/3, 3/2, 5/3, 2, 7/3, 5/2, 8/3, 3, 4, 8, 16, 32, 64
3 ADSR Envelopes
=> Attack time (0.001->60s)
=> Attack level (-7.5V->7.5V)
=> Decay time (0.001->60s)
=> Sustain level (-7.5V->7.5V)
=> Release time (0.001->60s)
=> Log/Lin
Assignment of pitch bend, MIDI controllers, LFOs, Envelopes to unused CV outputs
=> LFO 1->3, ENV 1->3, Pitch bend, CC "learn", CC 0->127
=> MIDI channel
Settings stored with power off
Multiple configuration memories ?
More information about the Synth-diy
mailing list