VERY Basic MIDI Controller Help

Hi everyone,

For my final year project at University I intend to make a MIDI Controller which utilises the Arduino Uno.

It's still in the very early stages as I'm still getting to grips with coding (not exactly my forte!)

At the moment, I have a linear potentiometer that is sending serial data to my computer, which I can view in the serial monitor window. Unfortunately, I cannot set the Baud Rate to 31250 as I cannot view anything in the serial monitor window otherwise (anyone know a work around for this?)

All I want to do at the moment is get the potentiometer to send MIDI information to my computer, so I can change the volume or something in a DAW. Ideally, I'd like to do this via USB. I don't really know where to start - I've been desperately searching the internet for some coding tutorials for Arduinos and MIDI, but no luck.

I understand I probably sound a little ignorant and for that I apologise - but I'd really appreciate any help anyone can give.


If you're not sending the data to an actual MIDI device and just need to view it on a computer, just set the baud rate to some more normal rate, like 115200. You don't have to use the serial monitor, you can use any terminal emulator, like puTTY. Or have I not understood the question?

Ooops, sorry I mean I want to use the controller to control things in a DAW, like Logic or Pro Tools.

Post the code that you already have so we can all see what's missing.

I am assuming that you have looked up the MIDI specification and know the codes and messages to send to the device to do what you want?

  • I've been desperately searching the internet for some coding tutorials for Arduinos and MIDI, but no luck

Come off it the Internet is crawling with MIDI arduino stuff. Just look at one of my projects for a start, and there is more on that site as well.

Hi all,

Sorry for the late reply.

As it stands, I have created the MIDI circuit shown in 4/5 on this site:

I’ve purchased a MIDI to USB cable and would like to use the code to generate notes in Logic. What software do I need to do this? Where am I going wrong?

Where am I going wrong?

Hard to say because you haven't said what is wrong.

The Arduino is not being detected by my computer as a controller sending MIDI information.

So how have you wired it up? The arduino only looks like a serial port to a USB connection. That link which is a rubbish circuit by the way, needs to be fed into a MIDI interface attached to your computer. It is that interface that the computer will recognise.

Oh I see. I have used the circuit from the link. I was using a MIDI to USB cable which was connected to the MIDI output on the circuit. What makes it a bad circuit?

It is a bad circuit because the current output is less than the MIDI specification, you need a transistor in the circuit. Look at the link I poster earlier for a much better output circuit. Also a lot of people get the connections to the MIDI plugg wrong. Depending on if you are looking at the pins or looking at the back of the socket those two can be swapped over. If you have a USB to MIDI lead then your system will see that, if it does not then there is something wrong on your PC end not the arduino.

My computer picks up the cable.

Okay I shall adapt my circuit so it has the same circuit output as the one you have suggested and post my results. Thanks!

Hi all,

Firstly thank you for your previous help. My Arduino now plays MIDI notes straight into Pro Tools and I'm getting to grips with changing the code so that I can change the velocity, length of the notes and the min/max pitch.

The next thing I'd like to do is add a potentiometer so I can begin to control parameters in my DAW. What would be my first steps? I want to be able to go into the DAW and select a parameter for the potentiometer to effect.

Thank you :)

Wire up a pot and read the value. Do this once in each loop, save the reading as te last thing you do. When you read it next time round the loop compair it to the last time reading, if it is not the same send a CC message with the reading from the pot shifted to the right 4 times to put it into range. The shift operation is >> and <<