Usb midi controller for ableton live

Hi guys,
I'm 18, i study electronics at school in Italy and this year we have exams. For my exam i wanna build a DIY Midi controller (fully mappable) for ableton live. I wanna use an arduino board. I wanna put 12 faders, 20 pots, 20 push buttons and some leds... Is this project hard to be realized? I know how to program a microchip PIC in c++, i hope arduino isn't so different to control. My hardware must send midi messages to live using the usb/midi connection. Arduino Uno is good for this project or we should use Arduino Mega?

Any kind of help is accepted... Now i try to search some similar projects! Someone have some links?

1 Like

Is this project hard to be realized?

No it should be quite straight forward.

My hardware must send midi messages to live using the usb/midi connection.

Not sure what you mean by this, there isn't a USB / MIDI connection on the arduino. The arduino looks like a serial port to the computeer. It is simple enough for ableton live to talk to a serial port.

However if you want the arduino to actually look like a MIDI input to ableton live then this is a bot more complicated. You have to have either an intermediate application on the computer that takes in the arduino serial and then creates an internal MIDI bus for ableton live to pick up on. Or you need the as yet unreleased Leonardo board that has a USB interface than can be programmed to look like a MIDI device.

So... I know that PC recognizes arduino board as a serial port. I also heard that i can send serial data to a program that creates a virtual midi instrument! People, you suggest to communicate with ableton by serial data or i should make a virtual midi instrument'? Which way is better? I know that we need a command list for ableton if we decide to use the first method...

Another question: Arduino Uno is good for this project?

Arduino Uno is good for this project?

Yes

you suggest to communicate with ableton by serial data

Yes

So guys... I made a simple design of the project... It looks like this:

A: General control section (play, stop, back to arrangement etc)
B: Rotary encoder for banks selection
C: General controls for knobs over the pads (pan, gain, send a & b)
D: Sample pads
E: Fader & crossfader section
F: Mappable pots & switches
G: Data display

So, i know that this may be hard to be realized and this is only an idea... I can take out 3-4 channels, some pots 6 buttons and the display if it will be necessary.

So, what do you think about this?

PS: today I'm going to order my arduino uno with an expansion shield... Which I/O expansion shield is good for this project? Or i should buy only the arduino board and use multiplexed Inputs to make this project?

I would say the only thing you are going to struggle with it the 16 rotary encoders. These need quite a lot of looking after.

You are going to need plenty of port expandars to do this, I would make my own but you might have to look into getting a shield.
Make a list of how many connections you need.

Ok, so i need:
Analog in
-8 for general control knob
-16 mappable knob
-1 cue vol knob
-10 faders
Total = 35 analog In

Digital in:
-5 general control buttons
-4 general track control buttons
-32 pads
-24 mute/solo/cue buttons
-16 mappable buttons
Total = 81 digital in
Total = 80 digital out

Now i changed my idea and i want to take out 2 channel and 8 mappable buttons + 8 knobs so it wil be:
23 analog in
59 digital in
50 digital out

  • out for an eventual display.

http://store.arduino.cc/ww/index.php?main_page=product_info&cPath=11_5&products_id=129
What do you think about this shield? :slight_smile:

What do you think about this shield?

Well that link goes to a page with lots of shields on it so I can't tell. Will the shield give you that many input / outputs?

23 analog in
59 digital in
50 digital out

So is this your first project?
Nothing like the over optimism of the inexperienced. Yes this is possible but you have a lot of electronics to do and I think you might be better off starting with something simpler. If you are thinking of using solderless bread board then forget it. This needs to be soldered up on strip board with good layout and good supply decoupling. It also needs to be coded up properly.
Basically the more stuff you put on the less responsive it becomes and the greater the latency.

So...
1- I don't use breadboard
2- I use solder + stripboard
3- At school we also use CNC so no problem for the construction part! :slight_smile: 20 minutes and all the circuit will be printed.

If I'll need help I'll need it only for the coding part, not for the circuit! :slight_smile:

Sure, I also noticed that I am too optimistic... This controller was better than the Professional akai acp40 and the Akai cost is about 350 euros! So... I need to re-project this controller! Now I'm going to do this, later I'll post the new project. See you later.

Good luck :slight_smile:

Ok, here it is... Reworked version.

2 less channels, less buttons and knobs and removed leds from each pad.

Now we have 52 digital in, 22 analog in and... NO OUT! :smiley: (probably in the future i'll add some out).

PS: sorry for the bad link before, here is the right link... http://store.arduino.cc/ww/index.php?main_page=product_info&cPath=11_5&products_id=129

Mux shield

Before doing anything, i suggest that you take a look at Midibox blog http://midibox.org first then Midibox Forums Forums - MIDIbox Forum It's not Arduino based but everything else is the same.

I know that forum but i want to do this with arduino :wink:

That shield looks fine for inputs but is absolute pants for outputs.

i suggest that you take a look at Midibox blog

that forum but i want to do this with arduino

The hardware you need to build will be almost identical, the only difference will be the programming.

Grumpy_Mike:
That shield looks fine for inputs but is absolute pants for outputs.

i suggest that you take a look at Midibox blog

that forum but i want to do this with arduino

The hardware you need to build will be almost identical, the only difference will be the programming.

Sure, i prefer use arduino than pic from microchip...
So Mike... Any suggestion for a shield? 52 digital in, 22 analog in & no out (I make my project without out because we haven't so much time before exams, probably i will expand my project in the future).

PS: Should I use a shield or Should I use a shield or i better try to use some mux? Shields are not so cheap...

I would match your projects to the number of inputs / outputs you can get.

Yes a shield is expensive but it is ready built and so it time is important and your hardware skill level low it should be your choice.

I myself would use multiplexers and port expanders.
The 4051 will give you 8 analogue inputs, in this project I used two to give me 16 inputs, with the four on the board this gives you 20.
http://www.thebox.myzen.co.uk/Hardware/MIDI_Footsteps.html
On the digital side then a MCP23S17 gives you 16 I/O per chip and it is easy to add up to 8 chips on the same SPI bus. Again the same project gives you and example of using them.

Yeah, i know how to use multiplexers... At school we have 74xxx from fairchild but in this case I'll use a shield! (you know, more confortable to use, the project will result less chaotic etc. :p). Now i am in doubt: which shield should i use? There are many In to use...

Is this mux shield enough for me or i must find a bigger one? Maybe should I buy a bigger arduino (mega for example)?

What's your idea about this?

is this mux shield enough for me

That's up to you and if you think you can have a useful interface with that number of inputs. A Mega would make things easier as well. Most Uno shields fit on a Mega.

Mux shield is enough for us... We can program it to have all single inputs and we can take all the digital in with some matrix.

Grumpy_Mike:
However if you want the arduino to actually look like a MIDI input to ableton live then this is a bot more complicated. You have to have either an intermediate application on the computer that takes in the arduino serial and then creates an internal MIDI bus for ableton live to pick up on.

Mike, Do you have any suggestions for an application for mac osx that can convert the serial data from a usb port to MIDI?

I am attempting to do the same thing. Only with one input instead of a ton. I am using a Ping distance sensor which sends back a length of time to the arduino in milliseconds. I will have to figure out how to convert that time to what I will be sending over serial to the computer, which is where the intermediate application will convert it to MIDI.

So my second question is, what kind of data would an application like this accept?