AVR or ARM for MIDI controller in 2018


I’m planning to build a few simple MIDI control boxes, to control older hardware. For this purpose, it seems that AVR chips like the ATmega644 are adequate. But, an ARM MCU is an attractive alternative, if perhaps overkill for a MIDI controller. Does it make sense to start a new AVR based project in 2018? If using the AVR I would likely work with the Mutable Instruments avrlib, though if I went the ARM route I might instead use something like a Teensy 3.2 or 3.6 board.



I’m really interested to hear more.

AFAIK, It depends on the complexity of the project :
Kind of sequencer sh101 or tr808 ?
How many midi tracks , how many steps, how many midi ports ? Need of midi effects ? Polyphony ?

There are a lot of really excellent existing open hardware projects. You could use them and explore/expand/modify the code without the hassle to tackle hardware issue.

There are small/mid projects with avr chips like the one from midisizer : midialf, midirex. The sonic potion lxr drummachine’s sequencer is also great.

More complex/powerful sequencer like the midibox seq use atmel chips…


Thanks, I have explored projects like the MidiAlf, which are also based on the Mutable AVR library. At the simplest, I’m planning to make a simple knob / slider box with a MIDI in and MIDI out. Knob movements are transmitted as Sysex, and merged with note data from the MIDI in (ie a simple replacement for the 80s Roland programmers that are now expensive). At the more complex end is a Roland TR style trigger sequencer with 16 steps, and 8 trigger outputs, but this is similar to what the MidiAlf already does.

I hadn’t realized the LXR sequencer was AVR based - on the Sonic Potions page (https://www.sonic-potions.com/lxr) it states " * Cortex M4 based", but digging into the schematics it seems that it is the sound engine that uses an ARM chip while the sequencer uses an AVR.

I suppose my question would be better reframed from asking whether an AVR is capable, to whether it is more fruitful to begin learning ARM instead, considering the increased capability that comes with the ARM CPUs. At the moment I am leaning towards using AVR as it seems a better platform to start / continue learning. Thus far I’ve made some small mods to the CVPal firmware.


For a fast solution, consider midibox. It is very simple to program a basic midi controller with just a couple lines of code.

I started with avr but switched to arm later. I never looked back. Stm32’s are just so much more powerful and not that much harder to program if you don’t mind reading the manual and the comments in the std peripheral library from st.
With mutable makefiles you can quickly create your own arm based projects but of course it still isn’t as simple as a midibox solution.


Yep, you are right about the lxr : the sound engine and sequencer seems to be driven from the cortex while the front panel led and buttons seems driven by the atmega :wink:

To answer your questions atmega seems a little easier but way less powerful and less standard…
If I was you I will try to go for stm32… It is way more future proof.
Midibox is an awesome project and they use FREE RTOS wich seems really nice and transposable to a lot of other projects.
Pay just a little attention to the particular license of midi box projects.


I looked at MIDIBox but I’m not sure it seems very useful for my purposes. It seems you purchase building block PCBs (with grids of buttons, or screens, etc) and then wire them together. But I’d rather just make a single PCB in KiCad with just the configuration I need.


You don’t need the pcbs from the midibox project. All you need is a stm32f4 discovery board and the schematic diagrams for the midibox PCBs.


Ah, thanks for the clarification. It does look interesting, though I’ll probably go another route because learning the tools is part of the motivation for the project.


The midi box ecosystem looks really nice, they’ve done all the hardware work it seems. That said, if you simply want to drive some buttons/encoders/pots through midi out, you can definitely do something with a teensy and a midi shield for quick dev. I love teensy over Arduino (so powerful!) but probably not relevant for simple midi pushing…


The good thing with the midibox system is the ease of use, USB midi with multiple ports per USB cable, support for various LCDs and the RTOS behind it. The biggest issue is the license though.
I agree that for simple DIN MIDI things a teensy or Arduino is probably the easier choice. For more in depth applications it’s probably better to start with Oliviers makefiles and use his MIDI parser class and build the rest yourself. If anyone needs a template project that integrates chibios into Oliviers makefiles for STM32F4, let me know