Hi everyone,
The core of my Kosmo set up is nearly complete, but there is one thing my set-up is really missing: a Midi to CV module that does absolutely everything. I think we could all use a module like this. Building a customizable platform for midi/CV conversion will be a fair bit of work, but I think tons of people would benefit.
In the hopes of rallying some smart people to the cause, I’m going to lay out the shortcomings of the offerings currently on the market, as well as my wishlist of functionality, and my plan for getting there. I think the circuit should be pretty straightforward, but I’m going to need to learn a lot more C++ than I currently know, so I hope perhaps there will be others who are interested in contributing.
Issues with existing offerings:
-
Midimuso (what I’m currently using): Damn good option for the money, but I want more flexibility. It has 23 outputs, most of which sit empty because I can’t customize what it does, or change presets in a non-fiddly way. The outputs I do use go into a buffered multiple, taking up more rack space. Still, can’t go wrong for the money.
-
Erica Synths Black MIDI-CV V2: Costs $200 and has minimal functionality. No thanks.
-
Polyend Poly 2: Getting there, but it’s $400 friggin dollars and the community could probably design something better that could be built for $50.
-
This project: GitHub - elkayem/usbMIDI2CV_MC: A multichannel USB MIDI to CV converter using the Teensy 2.0 development board
I’m very impressed by this project and I’m using it as the basis for my current prototype. I really love the oled + rotary encoder interface, since it only needs a total of 5 microcontroller pins to have a fully interactive menu system, and it looks badass. The project is open source, and I think expanding on Elkayem’s work is probably the way to go.
Wishlist of features:
- 5 Pin midi and USB midi in
- 5 pin midi through
- No need for buffered multiple - every oscillator has its own CV output (at least 5 or 6)
- Plenty of outputs for velocity/CC (10+?)
- Plenty of Gate/Trig/Clock outputs
- Every output will be freely configurable using the rotary encoder + oled menu. Every CV output can be set up as Volt-per-octave, or configured for CC/pitch bend, and can be assigned any midi channel. To drive 2 or more oscillators in unison, simply assign them all to the same midi channel. The reference project above already has implemented scaling adjustments to the volt-per-octave channels.
- Volt Per Octave outputs have configurable high note, low note, last note response.
- DAC chips are expensive, so naturally some of the outputs will be gate/trigger/clock pulse only. All “high/low” outputs can be configured with gate/trigger response, midi channel, or clock division.
- Recallable pre-sets: This is a big one for me, and might merit a separate control to avoid mid-performance menu diving. I think this would be very useful for changing voicing structures on the fly. For example, my box contains 3 synth voices, consisting of 5 oscillators. There are several ways those voices could be grouped or broken up, and recallable presets would let me broaden my available sound-palette without swapping cables. I think every person would have their own use case.
- The ability to assign multiple volt-per-octave outputs into a single polyphony or paraphony group. If I’ve got 3 oscillators going into a single filter, why not have pre-sets that allow them to play chords instead of unison?
- Stretch goal - it would be fun to have a menu wherein the oled screen can display a tuner, but I suspect this would be difficult to implement.
- Stretch goal - if there are a few spare digital output pins at the end of the project, it could be interesting to connect them to relays and have some automatic signal routing happen when pre-sets are recalled. This is by no means crucial.
The plan for getting there:
I am still working out exactly what hardware I would propose using, but here is a rough outline:
Screen:
http://www.diymalls.com/0.96-Inch-I2C-IIC-OLED-Display-Module?search=oled
These are cheap and look awesome. The yellow and blue is particularly fun.
Rotary encoder: Anything with 2 pins for the pushbutton and 3 pins for the rotary element is interchangeable. They are cheap.
DACs: These will be the most expensive part of the build. The example project above uses MCP4822s. At around $3.30 a whack, you could easily spend $30+ on them. The MCP4922 is a little cheaper but requires an external voltage reference. If anyone knows of a cheaper DAC or knows how to achieve the effect with pulses and capacitors as in the Midimuso, by all means, let me know.
Controller: The example project above uses a Teensy 2.0. I think we might need more pins, so I have a Teensy 3.2 and 3.6 at the ready.
It’s nearly 2:00 AM so I need to stop typing, I will try to edit for coherence tomorrow. In any case, I’d love to hear feedback, gauge interest, or hear others’ ideas for how to make the ultimate midi to cv conversion platform that does everything for everybody. It can totally be done, it’s just a bit of an engineering challenge!