How (in simple terms) could a USB MIDI keyboard/pad/etc input device be physically created?

I am curious if anyone has any thoughts on how a USB MIDI input device could be built (any form, just hypothetical).

As I see it there are basically two parts:

  1. USB component to handle the power and sending the MIDI and other communications messages with the OS.
  2. Input system - piezo or some other signal to be translated (eg. by signal thresholds) into a MIDI signal via A/D and script to process signals/thresholds into MIDI.

For example, in the simplest (a drum pad) you basically just have a piezo pickup going likely into a preamp of some kind and then an ADC. Then a program must be running on some simple CPU that is checking for signal threshold, and when it is reached, it sends a MIDI message through USB.

JUCE is obviously more for synth and plugin software. But I am wondering if there are any relatively “ready to go” solutions or components towards building something like the above.

Found this that looks interesting for building a MIDI controller with an Arduino:

He also mentions this company which makes something called MIDI Brain - looks like a nice way to go:

Any thoughts?

There probably isn’t any reason to involve JUCE on the hardware side. It isn’t even likely JUCE will be able to run/do anything much useful on those small OSless embedded systems.

Where JUCE might come to play is if you want to do some kind of configuration software for your hardware, which would run on a desktop OS.

You could also use a Teensy microcontroller: Ask.Video

If you want to do something a bit fancier, check out OpenDeck: GitHub - shanteacontrols/OpenDeck: Software and hardware platform for simpler building of MIDI controllers.

I think it depends what you want to build. How many buttons, how many encoders? LEDs, a display, etc?