This page is going to describe a remake of my MIDI console controller project. A new controller is needed to address the deficiencies in the old console controller – mainly:
- De-bouncing does not exist in the old controller which makes it terrible when used with most old keyboards.
- The RAM available on the PIC controller is insufficient to store the state of many keys/stops with de-bouncing information.
- Requiring an external MIDI controller for the system unnecessarily increases the latency.
- PIC micro controllers are becoming more expensive and difficult to develop on in comparison to many of the more powerful ARM-based development boards.
- Hardware based configuration of the old controller is simple – but clumsy and requires more parts.
The new controller will be a generic USB based MIDI controller i.e. no additional MIDI hardware will be required. I am basing the software around an LPC1769 development board which has a mass of features including a USB 2.0 controller and is available at a reasonable cost here. The project is incomplete but I will be documenting it here and on the blog as I go.
I haven’t quite figured out the best way of enabling user configuration to occur yet – but it will be simple and I’m hoping that it will not require modification of source code (as with the previous controller). I’m thinking of a special startup mode which turns the controller into a serial port rather than a MIDI interface which could be programmed through a terminal, which is nice in the sense that I don’t need to write any software… otherwise it would probably be configuration over MIDI system exclusive messages – which may require custom software.
There is going to be a need for some external circuitry to connect keyboards. I will eventually draw these up and put them here when the embedded side of things is finishing up.
The project source will be maintained on Google Code. I have a USB MIDI device prototyped and working so there should be some (incomplete) code going up in the next week.