Midi controller for Ableton

Status
Not open for further replies.

Ryan96

Member
Hi, I am completely new to programming this kind of stuff and so I don't know anything. What I want to do is build a midi controller with 10 buttons. I want 8 of the buttons to have an LED above them that lights up when that button is pressed, and to stay lit until another button is pressed. The other two buttons I would like to function as bank selectors. One to go up and one to go down. Each bank would make the other 8 buttons output a different midi note based on which bank is active. Finnaly I would like to have a display that says which bank is active.

The only thing I know about doing this is how to solder connections. I also know that I would prefer to use soft touch momentary switches as I would want this to be used as a foot controller for live preformance. I don't know what else I would need. I figure I will need some kind of Arduino board, but what kind I have no idea. I also don't know what kind of display I would need.

I realize that I am asking for alot, but I am trying to get started in understanding all of this stuff.

Thanks for your help!
 
Well you're on the Teensy forum so the 'kind' of board you need is a Teensy one... anything from Paul's active product line will to the job. Teensy 2.0 runs at five volts which sometimes makes things easier (though maybe not for your project) while the 3.x line has higher performance.

The larger boards (3.5 and 3.6) are more than you need... The so either the Low Cost (LC) board or the 2.0 would likely be the 'right' board for this.

The LC is both cheaper and faster so I'd recommend that as the operating voltage is not likely to be an issue for this project (as for as I can see).

The simplest approach would be to use 10 pins to read the switches and 8 pins as digital-write outputs to turn the LEDs on and off.

The bank display could be a seven-segment display ... that's the 'trickiest' thing on your list... will take a few extra pins (4?) to run that too (and an IC chip like a CD4511 to turn those pin patterns into digits)...

Normally I suggest getting a Teensy with bread-board friendly pins already soldered but you say soldering isn't an issue for you.

Momentary switches are normally used as you can mimic 'latched' switch behaviour in software. (Did you want all buttons to act as a latch... the trigger to on until triggered off?)

If you have no coding experience I recommend you work through Paul's tutorials to get the feel for making the board do what you want... in particular the digital read and write stuff.


Don't try to do everything at once... get your buttons working so they send CC (or note) midi... then add 'latched' behaviour and then LEDs (reading the latch memory variables to tell which state the LED should display) and then figure out the 'bank' switches.... finally tackle how to display which bank is active.

You will want to learn how to use arrays to keep track of the on/off state of all those latches (8 x bank count)...
 
Any Teensy should work. After installing Teensyduino, select Teensy in the Tools > Boards menu, then open File > Examples > Teensy > USB_MIDI > Buttons. You can do this before buying anything, but of course you'll need the hardware to actually run it. Hopefully that Buttons code is understandable?

You'll probably be able to achieve the LED effects by just placing several digitalWrite for the LEDs inside each of those if statements. Of course you'll also edit the MIDI messages, unless you wanted note on/off.
 
So I'm starting to gather a list of all the things I'll need for this project. Can y'all read over this list and make sure I'm not missing anything?

Teensy++ 2.0 (I decided to go with the 2.0 becasue it has room for expansion in the future if I need it.)
Dual 7-segment Display- LED (RGB) (I went with the Dual 7 segment so that I'll have a larger amount of bank options.)
LEDs
LED Display Driver (8-Digit) - MAX7219CNG (I couldn't find a CD4511, but this seems to do the same thing.)
SPST momentary switches (normally open) x10
Wire
Solder
Soldering gun

What I'm really asking is if I'll need any resistors or anything like that.
 
If you're new to all this, might be wise to get a solderless breadboard and experiment a bit before committing to solder.
 
Get a breadboard to prototype with.. Maybe get two.
Get some DuPont jumpers.
You will need resistors to current limit your LED s. Selection varies with the LED components used. Typically 1k 1/8 watt resistors are a good start. If you don't limit current, you could fry the Teensy output pins.

A soldering iron is better than a gun. Pencil style iron.
 
...I went with the Dual 7 segment so that I'll have a larger amount of bank options...
How many banks can you memorize?

Unless you have descriptive text (at which point you are way out of beginner land) then the user has to remember what each of the eight buttons do for every bank... I seriously doubt you can keep track of that in your head for more than five or six banks...


'Hmmm Bank 45 button 7 is on... I wonder what that is???'

I'm also not sure that chip will control your display choice (which you have not indicated... )

Personally I would get an Teensy LC for this and buy a 3.5 or 3.6 for an expanded second project but everyone seems to come here intent on building their dream controller as their very first project.

When it comes to MIDI controller projects there are may initial posts like yours they often lack any evidence of success afterwards... those that start with modest goals tend to do better.

Getting your bank system working will be challenging but the same code will work for 4 banks and 100... don't get bogged down with the display too early.

But don't skip out on the very basics first...
https://www.pjrc.com/teensy/tutorial.html
https://www.pjrc.com/teensy/tutorial3.html
https://www.pjrc.com/teensy/td_digital.html
https://www.pjrc.com/teensy/td_midi.html
 
...Each bank would make the other 8 buttons output a different midi note based on which bank is active.
If you are building a foot controller (rather than a bass-pedal-controller) then you would normally send MIDI CC (control change) messages rather than note-on and note-off messages.

The usbMIDI and MIDI library pages (below) show you how...

Are you building DIN output or just having Teensy send back MIDI via USB?

The code is very similar but there is additional hardware for MIDI via DIN plugs.

USB MIDI: https://www.pjrc.com/teensy/td_midi.html
DIN MIDI: https://www.pjrc.com/teensy/td_libs_MIDI.html
 
Status
Not open for further replies.
Back
Top