DIY Budget MIDI Controller Showdown | ESP32 vs. Raspberry Pi Pico

preview_player
Показать описание
Today, we're building a budget-friendly MIDI Controller using the ESP32 with Bluetooth and Raspberry Pi Pico with MIDI over USB. There are many cheap microcontrollers on the market and picking the right one can get overwhelming. Watch to the end of the video for my recommendations. All the parts are listed below. Happy building!

0:00 Intro
0:16 What All We'll Need
1:20 Building the Box
3:45 ESP32 MIDI Controller with Koala Sampler
4:16 Bluetooth vs. Hardwired
5:14 Pico MIDI Controller with Logic Pro
6:07 Which Board Should You Choose
7:09 Subscribe!

Building Steps:
1. Download & install the Arduino IDE

For ESP32

For Raspberry Pi PicoPico
2. For Arduino 2.0 and newer on the Raspberry Pi Pico, select the Board Manager icon and install “Arduino Mbed OS RP2040 Boards” (just search Raspberry Pi Pico)
3. Download & install the Control Surfaces & MIDI USB Libraries from GitHub.
4. Add the Libraries in Arduino under Sketch - Include Library - Add ZIP Library.

For Both Boards
5. Download the sketch for this project on GitHub.
6. Select your Board and USB Type under the Tools menu.
7. Upload the sketch to your device.

The code for this project:
Raspberry Pi Pico MIDI Sketch

ESP32 Bluetooth MIDI Sketch

There is no schematic for this build. Each button has one pin going to an input pin on the microcontroller, and the other pin going to ground. If you can get one button working, then you should be able to figure out the rest fairly easily. The challenge is cord management, but you got this!

Software You Need (Arduino IDE and 2 Libraries):
Arduino IDE

Control Surface MIDI Library:

MIDIUSB

Helpful Links:
How to make a simple MIDI Controller with Arduino that works on iOS

Which boards are supported

Kalimba style MIDI Controller by RocketManRC that goes more in-depth on the ESP32's MIDI capabilities

Equipment:
Raspberry Pi Pico (with Pins)

ESP32 (with Pins)

Breadboards (These don't fit either board. I had to cut one in half to fit the ESP32 and remove two legs on the Pico for it to fit)

Arcade Buttons (EG Start work well too. Just check the sizes, 30mm)

30mm Forstner Bit

Stickers

Button connectors

Wire Kit (this wire is a little thin for the crimper, but flexible)

Crimper and Dupont Pins

Cigar Box (you might be able to find one free from a local smoke shop, but you can also get them on Amazon)

Thanks for watching!
Nick
Moby Pixel

Рекомендации по теме
Комментарии
Автор

Amazing project and video. Loved every second of this

kevinmcaleer
Автор

I like your solderless connections that’s a great move.

dfghdfghd
Автор

This is awesome, always wondered how to build one of these! Also I love the ESP32 as well! It's definitely suited for more IoT projects and really good for wireless wearables. If only physics would allow us to have less latency 😆

aura-audio
Автор

Great video! I find bluetooth for midi (and for other controllers) quite useless. It's a great idea, but the latency is annoying. Wired always wins, no matter which microcontroller you use.

wojtczyk
Автор

You came through with the fire on the pico beat 🔥🔥🔥 thank you for detailing the latency on the esp. I’m going to try and get a ble midi sketch going on mine just to test but I had a feeling it was too good to be true 😂 I’m also curious about circuitpython on the pico and what that latency will be like. Anywhoooo, awesome video

flywittzbeats
Автор

Embedded developer here that uses Espressif microcontrollers like the ESP32 daily, don't worry about being annoying when complaining about the ESP line's wireless latency. It's real and we all have to deal with it, even with pushing packets over WIFI using UDP. It's just not something Espressif worries about over ease of use and stability of the wireless connection. Hardware connections will always trump over the air, sadly.

This is also something that plagues the enthusiast keyboard market. Getting gamer-ready performance + wireless is a serious issue and it seems companies are gravitating towards microcontrollers from Nordic. Weird bluetooth latency spikes still apply though.

Maybe things will be better with future hardware (and library) revisions but I'm not holding my breath. Nearly all IoT applications can withstand latency that would be killer to a musical input tool or game controller while Teensy or STM microcontrollers seem do be fulfilling the musical demand just fine.

kimtae
Автор

bluetooth is slower for music production, folks like AIAIAI make a faster wifi box with near zero latency for headphones. so it's a common issue

michaelmadison
Автор

Latency is always the red herring with music or gaming. Computers just aren’t as fast as we think they are.

dfghdfghd
Автор

Feel like it's Lo-Fi music. love it. what app you use in the iPad?

vacob
Автор

Nice video man :) Any ideas how to rename created usb midi interface from "RaspberyPi Pico" to "midiA", "midiB", if i have multiple of those device. Thanx.

devbobcz
Автор

Hey! Quick question… for purposes I’m making a controller to hook up to my Mk1 octatrak to play in some samples - same as you. I have a Kenton MK3 usb host that acts as a host and converts usb midi controllers traditionally for computer to 5 pin midi. My question is will the Raspberry Pi Pico (RP2040) with this build and code be hosted by my Kenton? The chart in the link says the pico has MIDI over USB (device) but not midi over usb (host)… am I right to say that the Kenton would be the host and it would pick up the pico as a device ? Super broke dad so I’m tryna keep my costs lower than the beautiful ground. Thank you!!

deepseaminingsyndicate
Автор

Hello...awesome video. Thank you. I woukd like to try this with my lighting rig...im new to this midi diy coding business but I'm eager to dive in...would you mind making a tutorial to code this so I could use it with my DMX controller/software? Just maybe a general overview and then I can see how you did it and get my shoulders wet(...told you I'm diving in! Lol) thanks in advance

dodom
Автор

How about making a midi device that controls a human foot going in time with the rhythm. Then sends little electrical impulses to the toes to indicate notes beyond 8th notes. Now that would be a real breakthrough. Triplets, quintuplets, mixed in rests. That’s what we need. Don’t get me wrong I appreciate what you’re doing but I bet you could do something more on the breakthrough level if you put your mind to it. Even lights that blink in time that would be a good way to start. Taking the data out and using it as opposed to trying to put data in.

dfghdfghd
Автор

Cool. But How long you take to build It, including time to learn and project? And How much It costs?

nandopeiter
Автор

How about... can potentiometers be added to the esp32 to use in the koala sampler?... what would be the lines?... or where could I inquire about the subject?... greetings

kcrosspsr
Автор

What are those solderless wire connectors called? I don't have a soldering station so I might use them 😅

stewbanker
Автор

the only caveat with both of those boards is they're both have pretty terrible ADC options so if you wanted pots, you're probably better off with something else like a knockoff Arduino type board or a teensy

elfaudio
Автор

Are either of these boards detected automatically as midi devices by an iPad?

WoozleEffect
Автор

i have a raspberry pi pico but is not working using arduino ide and the code in the ilnk description. What should i do?

gguimenezes
Автор

Also....could you do this with ONE BOARD but say TWICE as many buttons?

dodom