So, I’ve had a surge of motivation this weekend and my desk is now littered with a subset of the hundreds (read: more than ten) of microcontrollers I’ve amassed over the years. Of these, the most suitable one that is at hand is a Teensy 3.2, which has the type of USB functionality to act as a native USB Midi host. I also have a pile of stomp switches that arrived from China this week, with some other goodies on the way, including the rotary encoders Zynthian uses. It has a fair number of pins available, enough to get one off to a good start, but not enough for my mad science.
If I was starting from nothing I would just order a cheap multiplexer and not even consider dedicating another whole microcontroller to just bringing more pins to the table, but right here in front of me are an Arduino Mega, Uno, a couple of Nanos, and at least four ESP32 devices, one with a small screen on it, which I’m eyeing as a BTMidi brain with minimal info display.
So just in the name of not leaving this stuff in the bin or having to wait any longer, I’m thinking I’ll just let the Mega handle all the hardware interactions and report on the real world to the Teensy, which can handle all midi processing and messaging.
I also have one of these Linksprite Midi Shields, which I did briefly get working back when I first bought it, but fought it for an hour last night and couldn’t get working. However, the keyboard I plugged into it is extremely sus so I haven’t written it off just yet.
So basically at this point I’m envisioning the Mega doing all or most hardware interaction with its absurd number of pins, let the Teensy handle processing/filtering of messages and communication with USB and the real midi ports if I can get that going again.
That’s fine, right? I’m not losing responsiveness or anything by using a microcontroller instead of a simple multiplexer? Being this is a device that will be operated by humans, I can’t see either of the controllers being the bottleneck here.