I’m trying to make a midi controller to use with Ableton and my launchpad. I want to make a 4 channel mixer, with 4 extra pots/encoders for each channel, and 2 buttons for each channel (in total 4 faders and 16 knobs). I’d use the controller to adjust levels, eq, and various effects. The layout would be similar to Behringer’s CMD MM1 mixer, or Allen and Heath’s Xone K2.
I know very little about electrical engineering and midi programing, and I have a few questions:
What would be be the best brain to use? I’m considering the Livid Instruments Brain Jr + breakout board
Can the Brain Jr translate encoder signals? I read somewhere that most brains don’t decipher encoders…
Would there be any way to program multiple mappings? Ideally I’d have each knob controlling different parameters at different times (ex: 3 knobs mapped to an eq can be toggled to control effects)
Pots vs. encoders?
Any help would be greatly appreciated!
Thanks,
Kai
Thanks for the reply! I did some research on the Teensy and that seems like a better choice for me; I’d rather learn some more coding and go with the cheaper option.
or you could use an arduino uno, leonardo, mega2560, as for encoders, if you write your own code, you won’t have any issues at all but bear in mind that you use 2pins per encoder. As for resistance, generally for the faders and pots, 10k linear are what you’re looking for, size is important for faders, as is the bit resolution of the ADC of whatever you’re connecting it to, short faders can make it harder to hit specific values, but that will depend on what you’re using the controls for, 60mm faders and a 7bit ADC will be fine for level/cross faders but if you want pitch control(or anything in ableton needs finer control) then you’ll need longer faders and at least a 14bit ADC.
How steep is the learning curve for the Arduino software? I pretty much have no coding knowledge, but I’m willing to learn if that means more control and I save $30…
Thanks for all the technical info; the faders would be for volume control, so 60mm seems like the way to go.
The learning curve for arduino is reasonably shallow imho It’s got it’s own software for you to develop code in called the ‘arduino IDE’, you have what are called libraries of code which are groups of pre-written functions to help you write code quicker and easier. For instance, you would use the ‘midi library’ to write midi software for the arduino, this greatly simplifies things like sending note on/off messages for instance, so you really only have to concentrate on the button/fader reading code with the midi side being trivial as someone has already done it for you.
The arduino software is purely for writing the code and uploading to the board. Depending on the device you go for, it may be slightly more involved, for instance, the leonardo needs ‘arcore’ which is a midi based ‘core’ for arduino, although it’s pretty simple to install, you don’t particularly need to worry about libs for that either, some of it is pre-written and I added some extra functions into it to make life easier (kind of like a lib) which I will post on github pretty soon.
For the arduino mega2560 r3, in theory, you should be able to put it into dfu mode and upload mocoLUFA (another midi usb firmware) to the bootloader chip on the 2560, however on my 2560 r3 board I had to use an isp programmer as the bootloader was wasn’t a dual mode one (dual mode allows you to switch between midi firmware and programming mode). It should’ve taken me 20-30seconds to program but ended up being 3hours while I searched google and discovered that it probably had the wrong firmware on it. However, if you confirm with the retailer that’s got the dual mode firmware on it (dfu and serial) then you shouldn’t have any issues at all.
Midi programming itself is actually incredibly simple for what we’re attempting to do it’s just groups of 3 or 4 byte messages sent over a serial port at 31250baud.
Depends how many buttons you want really, they all use the same or very similar code.
The arduino leonardo is a single chip unit which requires a 3rd party ‘core’ being installed into the arduino IDE called arcore, the leonardo has around 22 digital inputs in total, some of which can be used as analog pins.
the arduino mega2560 is a 2 chip unit which requires flashing with the mocoLufa dual mode firmware, this unit has about 70 digital pins, 16 of which can be used as analog pins.
Both of those units require a small amount of skill to get them running usb-midi firmware, it’s nothing difficult but if you don’t know what you’re doing it can be a nightmare).
I would probably look at an arduino UNO then, they’re the easiest to play with. There’s a massive online community for the arduino boards, they’re considered an entry level board for anyone wanting to mess with electronics and small microcontrollers, the main reason being the IDE and associated libraries + the community support.
My ideal controller would have more inputs than there are available on the UNO, but I’m worried that DUE and Mega will be too complicated for my nearly coding-incapable-brain. Now I’m reconsidering the Brain Jr., since has the exact amount of ins/outs I need…maybe I’ll revisit the Arduino boards when I have some more experience with DIY midi stuff. This is my first ever diy midi project, and I’m only a freshman in high school so all the info is pretty dense