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.
Thanks! I had experienced the latency of bluetooth gaming controllers. However, I fooled myself into thinking it wouldn't be an issue here. Maybe it would work okay for a MIDI Sequencer, but playing drums with it was a no go.
@@mobypixelAlso, I think the digital instruments market shows some confusing trends - Pianos like the Roland go have midi over bluetooth. As long as the sound generation happens on the device while playing, it's fine, but if you try to use these devices as midi controllers for vst synths, the experience hurts due to the bluetooth latency.
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.
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 😆
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
Thanks, @flywittzbeats4008! I imagine CircuitPython would be similar in terms of speed to Arduino. There is a similar build I've seen floating around of an LED arcade button, blue box MIDI Controller that uses CircuitPython. I'm just more familiar with Arduino. Thanks for checking out the video!
@@mobypixel hey thank you man! And thanks for the reply. Are you still in the Chapel Hill area by chance? I heard you mention it in a prior vid. If so I’d love to get you a beer sometime and dork out haha. My names Elan 🤙🏼🤙🏼
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.
Yeah, the Pico into the iPad required a USB cable going from the Pico into a USB power bank, then into the iPad's USB-C. The new Pico W has Bluetooth but I imagine it would be a similar result.
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!!
Yes, device receiving MIDI messages is the host. I don’t have a Kenton but I imagine it should work without any alterations to the code. Good luck with your build!
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.
There doesn't seem to be a clear, documented way to change the name. On Mac you can give it an alias in in the Audio MIDI Setup app > MIDI Studio. Or you can edit the name of the board in boards.txt, but that name only shows up in Arduino. I'm sure there has got to be a way to do it. Hopefully it'll become more clear in the future.
Thanks! The music examples at the end are instruments from Logic Pro on Mac. The iPad app is Koala Sampler. It's a really fun app that's easy to sample with, has a sequencer, and a bunch of performance effects. I think it is free on desktop if you want to try it out first.
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
Hey Marek! That's good to know. I saw where you were making some kind of groove box with the Pico on Twitter a while back. Yeah, Teensy is awesome! It does all the things well.
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
@mobypixel yes u can use midi with software such as engine dj, rekordbox and virtual dj 2 name a few....essentially I think everything should be the same as u already did now that I'm thinking of it.....ill give it a go and see what happens...ill let u know boss
@@dodom2863 While faster/more stable than midi-over-bluetooth, usb-midi can still create lag and timing issues when it comes to synchronized lighting (like strobe rates, moving heads syncing , etc). I am learning this now myself as I prep to outfit my Roland drum kit with sync'd UV lighting under the heads, and the guys helping me have said that (old school DIN connector) midi-serial is THE way to go for MCUs. Just requires a few parts and soldering to create the connection from the 5-pin midi jack to your MCU, and of course, your computer would have to have a midi output, which many music-minded folks might have in their audio interface. If your PC doesn't have a midi output (and you don't wanna buy one), then try "hairless midi". Check the "engineering mindset" channel for tips on serial-midi input construction. Also, if you go the arduino route, check out Lady Ada's MCU lessons. Good luck!
@jephbennett thanks so much...although imma try this cuz it's looks cool in real world application I can see the value of what ur saying and will prob be going that route myself. Crazy thing is I want to map a single light to each light on a grand piano(82 keys) and then have the lights be mapped to actually notes not just keystrokes...feel me?
Is it showing an error in the Arduino console when you try installing the build to your Pico? Did you also install and add the Control Surface library in the Arduino IDE too? Does it seem like it is installing but MIDI isn't being detected? I think the logs in the Arduino console will give the best clues as to what is going on.
Not often do people’s work make me say OHHH WOW 😮 just based on the cover photo! Beautiful work. Thank you and you absolutely got my sub. Haha I remember saving up to buy those damn stickers for my “Vision Skate” board. Then I discovered girls and punk and the devil’s lettuce as my son calls it. Not sure what happened but somehow I woke up and it is 2024 and I am watching this odd screen that has no power cables but it works and I am typing on the SCREEN!!!
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
Hey, sorry for the delay! Yeah, you could use pots with the ESP32 but I've not made any projects with ESP32 that use them. On Arduino, you have to connect a pin to power, another to ground, and the third pin to an analog input on the board. Like I said, I've not done it with ESP32 but it is a pretty general feature of most boards.
@@mobypixel make a code that could work... could you review it and give us a better alternative... this is great! If I could send you an email that would be fine. greetings and thank you very much
Yes, there are some potentiometer examples in the Control Surface library. It typically requires one wire running to ground, one to power, and one to an analog pin on the microcontroller.
@@WoozleEffect The Raspberry Pi Pico is connected automatically when wired up to your iPad. Bluetooth controllers will work too but you have to select the device in each app’s settings.
You need Bluetooth enabled on the iPad, and then the app you are using needs to support USB MIDI. Usually there will be some drop down menu in the app to select your Bluetooth device. You can see it in Koala around 3:45
No, on Mac I just plug it in and it's detected automatically as a MIDI device. I used the Control Surface library, so they might be handling some of the MIDI routing behind the scenes.
Thanks for watching! The arcade buttons are around a dollar each on Amazon and the boards are ~$5. In all, I'd say it's around $30 if you have the tools and an enclosure. There are links in the description for most things. For the coding it took around 2 days to code, build ,and film the video. I leveraged some APIs I've used in the past.
I like your solderless connections that’s a great move.
Thanks! Yeah, it'll save me from needing to buy a new board or desolder for each new project.
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.
Thanks! I had experienced the latency of bluetooth gaming controllers. However, I fooled myself into thinking it wouldn't be an issue here. Maybe it would work okay for a MIDI Sequencer, but playing drums with it was a no go.
@@mobypixelAlso, I think the digital instruments market shows some confusing trends - Pianos like the Roland go have midi over bluetooth. As long as the sound generation happens on the device while playing, it's fine, but if you try to use these devices as midi controllers for vst synths, the experience hurts due to the bluetooth latency.
idk i use midi ble devices live and the latency isn't noticeable
This looks super easy
Thanks, @Sugar3Glider! Yeah, it's a fun and easy build once you have all the parts.
Amazing project and video. Loved every second of this
Hey! Thanks, Kevin! That's high praise coming from you. Good luck with your videos!
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.
Thanks, @kimtae858! That's all very useful information to know. cheers!
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 😆
Thanks Evan! The ESP32 is really impressive for the price. I might try to snag one that supports MIDI over USB at some point.
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
Thanks, @flywittzbeats4008! I imagine CircuitPython would be similar in terms of speed to Arduino. There is a similar build I've seen floating around of an LED arcade button, blue box MIDI Controller that uses CircuitPython. I'm just more familiar with Arduino. Thanks for checking out the video!
@@mobypixel hey thank you man! And thanks for the reply. Are you still in the Chapel Hill area by chance? I heard you mention it in a prior vid. If so I’d love to get you a beer sometime and dork out haha. My names Elan 🤙🏼🤙🏼
@@flywittzbeats4008 Cool! I'll send you an email.
Latency is always the red herring with music or gaming. Computers just aren’t as fast as we think they are.
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
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.
Hey, I like that idea, haha! I just imagine a foot flapping about to the music. 😂
So when you swapped to using the Pico did you connect it to the Koala app via a cable rather than Bluetooth? I somehow missed this detail?
Yeah, the Pico into the iPad required a USB cable going from the Pico into a USB power bank, then into the iPad's USB-C. The new Pico W has Bluetooth but I imagine it would be a similar result.
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!!
Yes, device receiving MIDI messages is the host. I don’t have a Kenton but I imagine it should work without any alterations to the code. Good luck with your build!
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.
There doesn't seem to be a clear, documented way to change the name. On Mac you can give it an alias in in the Audio MIDI Setup app > MIDI Studio. Or you can edit the name of the board in boards.txt, but that name only shows up in Arduino. I'm sure there has got to be a way to do it. Hopefully it'll become more clear in the future.
Feel like it's Lo-Fi music. love it. what app you use in the iPad?
Thanks! The music examples at the end are instruments from Logic Pro on Mac. The iPad app is Koala Sampler. It's a really fun app that's easy to sample with, has a sequencer, and a bunch of performance effects. I think it is free on desktop if you want to try it out first.
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
Hey Marek! That's good to know. I saw where you were making some kind of groove box with the Pico on Twitter a while back. Yeah, Teensy is awesome! It does all the things well.
@@mobypixel teensys are great but would be even better if they were cheaper!
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
Thanks! I'm not familiar with DMX controller/software. Does it work by taking inputs from a regular MIDI controller?
@mobypixel yes u can use midi with software such as engine dj, rekordbox and virtual dj 2 name a few....essentially I think everything should be the same as u already did now that I'm thinking of it.....ill give it a go and see what happens...ill let u know boss
@@dodom2863 That's awesome! Good luck! 🙌
@@dodom2863 While faster/more stable than midi-over-bluetooth, usb-midi can still create lag and timing issues when it comes to synchronized lighting (like strobe rates, moving heads syncing , etc).
I am learning this now myself as I prep to outfit my Roland drum kit with sync'd UV lighting under the heads, and the guys helping me have said that (old school DIN connector) midi-serial is THE way to go for MCUs. Just requires a few parts and soldering to create the connection from the 5-pin midi jack to your MCU, and of course, your computer would have to have a midi output, which many music-minded folks might have in their audio interface.
If your PC doesn't have a midi output (and you don't wanna buy one), then try "hairless midi".
Check the "engineering mindset" channel for tips on serial-midi input construction. Also, if you go the arduino route, check out Lady Ada's MCU lessons. Good luck!
@jephbennett thanks so much...although imma try this cuz it's looks cool in real world application I can see the value of what ur saying and will prob be going that route myself. Crazy thing is I want to map a single light to each light on a grand piano(82 keys) and then have the lights be mapped to actually notes not just keystrokes...feel me?
i have a raspberry pi pico but is not working using arduino ide and the code in the ilnk description. What should i do?
Is it showing an error in the Arduino console when you try installing the build to your Pico? Did you also install and add the Control Surface library in the Arduino IDE too? Does it seem like it is installing but MIDI isn't being detected? I think the logs in the Arduino console will give the best clues as to what is going on.
Not often do people’s work make me say OHHH WOW 😮 just based on the cover photo! Beautiful work. Thank you and you absolutely got my sub. Haha I remember saving up to buy those damn stickers for my “Vision Skate” board. Then I discovered girls and punk and the devil’s lettuce as my son calls it. Not sure what happened but somehow I woke up and it is 2024 and I am watching this odd screen that has no power cables but it works and I am typing on the SCREEN!!!
Hahaha! That's hilarious! 🤣 Cheers! 🙌
Also....could you do this with ONE BOARD but say TWICE as many buttons?
To get more buttons you would need either a board with more inputs or to use something called a multiplexer.
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
Hey, sorry for the delay! Yeah, you could use pots with the ESP32 but I've not made any projects with ESP32 that use them. On Arduino, you have to connect a pin to power, another to ground, and the third pin to an analog input on the board. Like I said, I've not done it with ESP32 but it is a pretty general feature of most boards.
@@mobypixel make a code that could work... could you review it and give us a better alternative... this is great!
If I could send you an email that would be fine. greetings and thank you very much
Potentiometers work with this?
Yes, there are some potentiometer examples in the Control Surface library. It typically requires one wire running to ground, one to power, and one to an analog pin on the microcontroller.
Are either of these boards detected automatically as midi devices by an iPad?
@@WoozleEffect The Raspberry Pi Pico is connected automatically when wired up to your iPad. Bluetooth controllers will work too but you have to select the device in each app’s settings.
how do you setup the bluetooth do you have to pair it with the ipad? i can’t see my controller at all
You need Bluetooth enabled on the iPad, and then the app you are using needs to support USB MIDI. Usually there will be some drop down menu in the app to select your Bluetooth device. You can see it in Koala around 3:45
@@mobypixel cool. how is the latency on the raspberry pi pico?
It’s really good. I didn’t notice any delay when wired up.
What are those solderless wire connectors called? I don't have a soldering station so I might use them 😅
I have links to the ones I used in the description. The jumper wire pins came in a set and the Arcade connector spade terminals were separate.
@@mobypixel I see, thanks a lot!
I’ve a doubt… using the pico did u need to install loopmidi or any midi bridge program?
No, on Mac I just plug it in and it's detected automatically as a MIDI device. I used the Control Surface library, so they might be handling some of the MIDI routing behind the scenes.
So much thank u! I was trying to made with esp32 in wire way, but doesnt work… thanks for blowing my mind (laughts)
Cool. But How long you take to build It, including time to learn and project? And How much It costs?
Thanks for watching! The arcade buttons are around a dollar each on Amazon and the boards are ~$5. In all, I'd say it's around $30 if you have the tools and an enclosure. There are links in the description for most things. For the coding it took around 2 days to code, build ,and film the video. I leveraged some APIs I've used in the past.
You're bloody good you! ❤
Thanks, Gav! 🙌
esp32-s3 better because i have made a midi when it's release first time
isn't there a way to use the esp32 usb?
Not on this board, but I've heard some of the newer ESP32 boards support MIDI over USB.
f ing bluetooth, every damn time....