Step 10: Future Enhancements
There are a number of things I'd like to add and change in future MIDI controllers.
1. Create a simple software/hardware architecture to allow for easily expandable I/O. This would be through the use of additional microcontrollers or dedicated I/O chips.
2. Utilise the LUFA library to make the controller a true USB MIDI controller, and not rely on extra PC software.
3. Update the Arduino sketch to support 14-bit MIDI messages
4. Build a CNC machine for cutting out holes in the enclosure (you may have noticed some of the button holes I made are a bit wonky).
Remove these ads by
Signing Up









































Visit Our Store »
Go Pro Today »




This is a great source of information helping for my own project im working on. One thing im adding is a series of midi joysicks. As you know the limitations of the Arduino also limits how many knobs, sliders, and switches. If customization are the most important, and cost of parts is irrelivent (as in my case) I am designing my case to house a 10 port USB hub that supplies it own 12v to each USB device so as not to overload motherboard resources. If this can work, potentially I could expand your idea 10X over a single USB port on my tower. Having this will ultimately give me a individual controller similar to yours for each of the 8 - 1/4" TRS analog inputs on my soundcard. And the fancy would be the mini joystick at the top of each channel to use for 5.1 surround sound automation in recording software like Sony Vegas and Sonar. I have also considered to replace the Arduino with a $5 USB gamepad that may take a bit of tweeking to perfect; still I should potentially get 16 channels of midi for each USB device. 10 USB ports X 16 channels midi = 160 channels of midi recognized by the software.
Is my thinking logical or am I way off the rocker with this one????
ive been pointed at this library
http://www.arduino.cc/playground/Main/MIDILibrary
and specifically the CALLBACK feature, which my limited understanding tells me is simply a fancy do while type command.
it SHOULD work just fine with the lufa library which i will test should the arduino midi library not work right, as i have used the lufa successfully with a one button one pot setup.
http://ruinwesen.com/mididuino
And this tutorial:
http://shiftmore.blogspot.com/2010/01/quick-and-dirty-arduino-midi-over-usb.html
You can have a functional usb midi device without the use of any kind of software.
The only downside to this setup is that you would need to open the box every time you need to program it but after completing the code this is no longer an issue.
Note this won't work with the Arduino clone used in this project (which is based on the Duemilanove).
Email: giulio_94@hotmail.com
I have a Arduino UNO R2..
I uploaded the Midifirmware of http://hunt.net.nz/users/darran/ on my Arduino!
The upload was successful and my Windows was showing it as "Arduino MIDI" =)
But i have a Problem. When i want to use it on Traktor, and i use the "Learn" Method for a Potentiometer, it switches on all channels when i turn it! :D So i can't choose my Potentiometer...
I think i have to change the Midi messages (The order or something)... Can you say me how??
DESCRIPTION:
Byte Description
0 Command: E.g. 0x90 Note On, 0x80 Note Off.
1 Channel: 1 to 16
2 MIDI data byte 2. Depends on Command, for 0x80 and 0x90 this is the Pitch values 1-127
3 MIDI data byte 3. Depends on Command, for 0x80 and 0x90 this is the Velocity values 1-127
ACTUAL:
Serial.print(channel, BYTE);
Serial.print(pitch, BYTE);
Serial.print(velocity, BYTE);
NICE TUTORIAL!! =D
Serial.print(channel, BYTE);
Serial.print(1,BYTE);
Serial.print(pitch, BYTE);
Serial.print(velocity, BYTE);
I don't find this part in the code.
http://forum.ableton.com/viewtopic.php?f=1&t=115621&p=1002676#p1002676
Another option (and one which I'll pursue in an updated MIDI controller) is to use the LUFA library to directly program the ATMega chip to act as a joystick output device.
This is basically the exact same as a half-finished panel I've been working on for a bit, based around an AT90USBKey I've had sitting on my desk for a bit, and running (you guessed it!) LUFA so that it can act as a "true" USB MIDI device.
Great Instructable, gave me a few little ideas to improve on my design.
Oh, and as far as converting the project to run as a controller for MAME, etc., it may be worth looking into the excellent Dual Strike PCB for arcade controllers -- IIRC, it uses the same chip as the Arduino, has open code to peak through, and does a V-USB-style software USB stack (it may actually be V-USB, I don't know) for USB HID-class controlling for PC and PS3 support. Have one in my arcade stick, 'cause I got lazy and just wanted something that worked.