MIDI 2 CV
8 channel MIDI-to-CV converter
Intro:
Basically this was just
a side project for something bigger (I'm not telling what... you'll see,
just wait ;) ). It was greatly influenced by PAiA's MIDI2CV8, I just wanted
to improve it and scale it down (I was successful, of course ;) ).
I had quite a lot of troubles
getting some good components for this thing (since I live in such small
country without any Maxim or AD distributer): 12 bit DAC with serial interface
was best I could find for reasonable price (I mean, damn, I don't want
to spend 60$ on some cute Burr-Brown 16 bit DAC), and I couldn't find any
better multiplexer than 4051 (this is the "weak link") - it has too large
leakage current to keep the output ripple reasonably low - I'm stuck with
about 3mV; however my Korg MS-10 (Hz/V input) seems to be quite happy with
it even on lower notes (where relative error should reach over 5%).
Important: Before version 2.0 circuit had a major error which
I didn't notice, because I was running my prototype from battery pack,
which had too low voltage to make a circuit malfunction. Anyway, I was
driving the multiplexer directly from the uPC pin, while the MUX's supply
voltage is much higher
than 5V. MUX is of course CMOS which should be driven rail-to-rail,
otherwise it just acts as a resistor. That was the case here. I sincerely
apologize for such basic error!
Features in software version v2.0
Control outputs:
- Pitch (64 semitones
V/octave or Hz/V , changeable via SysEx message);
note offset changeable from 0 to 63 via SysEx
- Gate (separate normal
[0V -> +5V] and S-trigger [floating -> GND] outputs)
- Velocity [-5V -> +5V]
- four consequential Continuous
Controllers (separate [-5V -> +5V] and S-trigger);
numbers from 0..3 to 31..34, changeable via SysEx
- Pitch bend (separate
[-5V -> +5V] and S-trigger)
Hz/V scaling is done in software via look-up table and features cca. five cent non-linearity error over 5 octaves (tested with MS-10 and tuner in Boss SE-70 effect)
Following features were added for controlling Korg Mono/Poly:
- Sync tick output (S-trigger,
tempo selectable via SysEx)
- Portamento switch (S-trigger,
controlled with CC #65)
All channel refresh period (worst,fictional
case): 380 us
Output ripple (specified, but not tested):
cca. 3mV
Zip file with schematics,
PCB layout, documentation, and firmware (v2.0)
Slave board
Feature: mixed pitch/pitchbend CV output with 4 different pitchbend ratios (selectable via SysEx)
Zip file with schematics,
PCB layout, and partlist for slave board