Hi folk,
I am planning to design a PIC based midi merge unit, for use with a GM5 based PC midi interface, and am just wondering if others may be interested, and possibly have some suggestions. The project would depend on the outcome of TK’s assessment of the GM5 chip, and subsequent bulk order.
Following on from this thread, I am planning to build a stand alone PC midi interface, with 5 banks of midi i/o, plus a custom midi merge unit which could be set to merge with the input of any one of the 5 banks, plus a midibox midimon, which could be set to monitor either the midi input or output of any of the 5 banks. I may possibly consider incorporating a switch to route the fifth bank to an internal midi-CV converter, though this option may be left to a later date, and possibly just sit on a secondary PCB, and be connected with a hardware toggle switch.
The design would be realised with the existing GM5 solution, and a 4 UART PIC24Fxxxx based midi merge unit. My motivation is to be able to use a combination of midi controllers (namely 2 keyboards + midibox64, + rack unit x?), all merged into a midi stream into my PC DAW, and then echoed out as necessary, to control softsynths, or other midi hardware. My proposed unit would not perform the role of a midi patch bay, as my DAW would perform the data echo function.
The 4 UARTs of the PIC24F could conceivably be used to merge midi streams to more than one midi input (eg, merge inputs 1+2 merged to interface input 1, merge inputs 3+4 merged to interface input 4). However, I’m not sure how feasible this would be in practice. My aim for the prototype is to use only hardware based UARTs (no software emulated UARTs), and have all inputs merged to a single output. Later I will try the more complex scheme, as I expect the processing shouldn’t place too much demand on this PIC.
The merge unit would not be MIOS based (not supported by the OS), though I will have a look at TK’s code for his midimerge unit to get some ideas. This will be my first attempt at programming a midi processing unit, and though I don’t expect excessive difficulty, I’m really not sure what problems I will face. I have written several PC and PIC based serial comms programs before.
The unit will be a single PCB, predominantly surface mount components. I know this is not in keeping with the midibox way, but this is really the only way that I can afford to design the unit. I use almost exclusively SMD for my work, so this is what I have ready access to, and I really need to keep the PCB size small, to minimise the prototyping costs. As a side note, I really like using SMD components. Although the initial learning curve can be daunting, I would never go back to predominantly through hole. Too much of my work just couldn’t be done without SMD.
I plan to fit the unit in a 2U rack enclosure, with one or two LCDs, and one or two 7 segment BCD displays.
All source material would be publicly released, and all external IP would of course be correctly credited.
If anyone has any suggestions, recommendations, or criticisms, I would really appreciate your feedback. I’m still brainstorming with regards to the features and implementation at this stage.
Cheers folk,
madox