Hi everyone,
I'm trying to build a MIDI interface using Arduino.
I was inspired by this
I had a doubt, assuming to have a provision how many inputs and how many outputs do I want, how many faders and how many buttons does the MIDI protocol support at most?
Thanks for the answers
Each of the 16 channels has 128 notes, so you can have 2048 buttons at most.
Each of the 16 channels has 120 controllers, so you can have 1920 7-bit potentiometers.
Each of the 16 channels has a single pitch bender, so you can have an additional 16 14-bit potentiometers.
There are other types of messages as well, but not all software supports it.
The video you linked to uses an Arduino UNO, which is not a good idea if you want a USB-MIDI Controller. I'd recommend a Teensy 3.x or an Arduino Leonardo/Micro.
More information here.
Note that if you are using MIDI over USB, you have 4 Cables with 16 channels each, so that would allow for 8192 notes, 7680 controllers and 64 pitch benders (in theory).
USB MIDI can actually support up to 16 cables. If using Teensy, 3.2 or higher is needed for 16 cables. On Teensy LC the limit is only 4 cables.
While virtual cables do greatly expand the theoretical limits, they're most useful if you want to make a MIDI project which communicates with more than 1 piece of software. On Windows, only one program can open a MIDI port. With virtual cables, you can have up to 16 different programs on the PC all communicating with your board. 16 is probably more than anyone needs, but I added the virtual cable support on Teensy last year because several people wanted to use Ableon, FL Studio, and other software simultaneously. Virtual cables makes that possible.
With Teensy 3.6, you get a 2nd USB port which can have USB MIDI devices plugged into it (using the USBHost_t36 library). Each of those can support virtual cables too....