Nothing really new about this project, mainly because…I’ve some many of them. This project really grows slowly.
I couldn’t find anything simple enough to implement. Let alone without that bloody Arduino ! I want the only conversion MIDI/CV/GATE with the pitch bend nothing more really. So I decided to build my own and learn things about MIDI. As I’ve never did anything with that Midi protocol, I started easy and simple, just grab the datas on the UART protocol and step forward from that with the great help of Chimimic. It surprised me, it worked without banging my head on the desk (Am I starting to learn something ?)
C codes (you need the other libraries from their authors if you want to compile) :
and schematic (just a rough idea hence the absence of values) :
the data arrives, if it has to do with the channel, process it. The code is mainly the UART interupt. The midi bytes are received into a array of three bytes. The first code uses a LCD as a beta-test to check if the datas are ok once in the URD register. That way, you can check the three bytes with the coresponding binary datas. It’s very the simplest form but it might be useful for people who wants to start at the begining. The rest will be the tricky part (not That Tricky, the other one…).
I won’t go deep into the midi stuff (millions of pages about that already) but here’s what’s gonna be this project. The midi channel will be set with a DIPSWITCH and connected to a PORT. At start up, the µC will read the port, extract the channel and add the note_on and note_off datas.The UART interupt wil do the rest, monotoring the incoming datas, checking for message with the channel imformation coressponding to the channel of the synth and process it.
As the synth will be equiped with two VCOs, a cool thing will be to add a second channel and set of CV/GATE/VELOCITY for two independant VCOs. Imagine one VCO driven by a sequencer, the other one by you knacki-looking fingers ! (if you don’t know what a knacki is, lucky you !)
However, the velocity byte (that I haven’t thought about) made me realised that it will be quite a shame to waste it. The original idea for this synth was to create a “hardwired” synth with a signal path similar to the traditional “synth” (no modularity). But what’s the point to do something that commun ? Modularity is actually the thing I’m after. It can bring that type of synth but also much more, for more “experimental” music.
Also, I must confess really liking the concept of an EMS VCS3 or a Buchla Music Easel and the wish to make something similar started to grow. Something semi-modular (Korg MS20) or totally modular. But still in the suitcase ! By the way, talking about EMS, you can even consider a digital matrix with memory banks in the EEPROM of your µC !
http://www.acxsynth.com/matrix/matrixfr.htm (In the knacki language)
Anyway, allowing time to do your project is actually a good habit to have. It makes the project evolve quite nicely.
Talking about Midi, here’s very nice conference with its father (Dave Smith) :