MIDI Console Controller II

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 old PIC16F877A based controller.

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 LPC1769 development board which I am basing the new controller on.

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.

2 thoughts on “MIDI Console Controller II

  1. Benjamin

    I am a bachelor student in France and I am interested in your project. I am trying to make a midi console controller from an STM32F4-Discovery. I have read your source code and I do not fully understand how it works.
    By calling 2 functions in your main.c, one is used to initiate the conbus, and the other to prepare the USB-midi setup, you are able to process the information from your organ keyboard and send back midi information to the computer?
    I am very confused because i do not see you call many of your “usefull” functions.

    If you have time, please enlighten me
    DEROUINEAU Benjamin

    1. nick Post author

      Hi Benjamin,

      I have postponed work on this project for a little while to work on other things. At present, the code available only contains a USB MIDI HAL and some code which periodically sends MIDI messages (for testing). The rest of the code at the moment is incomplete.



Leave a Reply

Your email address will not be published. Required fields are marked *