OMG FINALLY!!!!! I knew it had to be this easy, but I keep running into vids and tutorials that pile on the complexity. This is EXACTLY what I need to build a set of bass pedals for my Hammond XK-3. I love that I can just set the pin number, command, note, channel, and debounce IN ONE PLACE :-O I owe you a beer...or a coffee...or even a steak...whatever you want :-)
This is the exact software I've been searching for. I trying to convert a savaged organ pedalboard to a midi pedal keyboard. This will get it done with the minimum screwing around. Your explanation of how the code works is excellent and now I understand the code well enough to make the few simple tweaks needed for my use. Thank you
That's exactly what I am doing! I first tested a couple 25 key midi controllers to try converting them to a set of organ bass pedals for a Hammond XK-3, but they all clear ALL USER SETTINGS every time you power them down!!! I'm just baffled by that. So now it's time to roll my own.
Man, arduino is indeed amazing but what is truly amazing is people like you sharing knowledge like these for free! Thanks a lot man! I'm planning to build a midi mixer to my Mox6 to help with live performances!
You are a life saver, best code ever. Worked great with Arduino Mega 2560 and could also use it on Serial2 instead of default Serial. Thank you so much for your effort in helping all of us. Please continue developing the project as it is the best Midi Implementation for arduino I have ever seen.
great vid .. but i don't get the need of using midi 5 pins jack ... theres already usb port in the arduino itself ... Can we make midi controller using the usb port ..
HI, thanks for these educational documentaries. thanks to you I now have a more or less working 13 pedal organ bass board (I recovered the pedal board from an old Hammond organ). I used the led input and one of the analogs as a digital input as i had "13 pedals". cheers!
so today i added a 44 key variant of the program (no muxes) just straight Digital inputs on a Mega board (up to 54 Di depending on how you use them). I left the LED free this time and serial pins free also, and used inputs 2 to 12 and 22 to 53. Seem to work plugged into a Yamaha Reface :-) all i need to do now is wire it up to a Hammond 44 key manual and make a box for it. summary I am feeling very confident with a 13 pedal bass board into a UNO and the 44 key on a Mega 2560.
brilliant video . made a 5 button interface this evening . very straight forward to do . very happy and impressed with myself. thanks , you've inspired me to be creative for first time in a while . keep up the good work !
Hi,Dave! Love your tutorials and your channel content! About the buttons:your method of connecting them right up to digital pins is simple and effective,but if there are more buttons to be read I would suggest using parallel in-serial out shift registers.They are great because you can cascade them together and read maybe hundreds of switches. P.S. The idea about using a multiplexer was pretty clever.Going to keep it in mind when building my projects. :) Keep them videos coming! Cheers!
Please a tutorial about midi-usb and capacitive sensors instead of buttons, with midi. Sería de mucha ayuda! And thanks so much for all your tutorials, they're great and well explained!
Super code customisable ! Work great for me. I tried this and Led tuto separatly, need to mix the 2 code! thanks Dave to help me for my diy midi controller
Hello, very interesting video. Thx for share. I've a question. If I want to send a group of midi note. For exemple, if i press button1 and i want to send a C3maj chord, composed of a those 3 notes : C3 - E3 -G3. How could i programme it ?
Super tutorial! Do you know how I can make my Arduino to be recognized as a controller by the computer and send MIDI CC through the USB (same as for powering) instead of a MIDI port?
I connected mine to a raspberry pi 3 by connecting the signal on arduino pin 1 (tx) directly to pin 8 on the pi3 (rx), and I would imagine you could do that with any midi interface, although per the standard, it really should be separated with an optocoupler. To connect it as a USB MIDI device, depending on your Arduino model, you can use the HIDUINO firmware found here: github.com/ddiakopoulos/hiduino. Otherwise you will need to build a cable with a separate controller. This might help: axe4live.wordpress.com/2012/02/04/diy-midi-interface-for-ipad-version-2/.
Hello, thanks for these tutorials! I've come so far, but this doesn't work for me. So, I tried Hairless MIDI, and every time I pressed a button, it said: "Warning: got a status byte when we were expecting 1 more data bytes, sending possibly incomplete MIDI message 0xc0" Any ideas?
excellent info and code is great. thank you. i am trying to modify the code to sends a string of notes on button bush. i tried changing notes from single notes like 60 to for example 60-64. But it doesn't change though as i think i need to add note off between each note. How do i add this note off between each note (for single button push)? thanks
Awesome, took me a while to figure out what i was doing wrong, turned out, I dint used the right Linux commands. I can now send midi stuff from my arduino over plain serial to my Linux machine and play midi music :D Your videos are clear and helpfull. ttyMIDI and aconnect helped me alott. it might not have guis but way less trouble once i understand how they work. I might create a nice gui for myself as I see myself way more often connect and change serial connections. A true MIDI port might be ok, but ill add that once i hacked my keyboard. Now I need an awesome sounding external synth :P (for DosBox and Qemu use)
I built a foot controller using this video and it works with just one caveat and I was wondering if others have the same issue. I use 8 switches to control my Line6 HX Stomp--adds switches for all 8 blocks which is just awesome! The problem that I have is that the first switch press typically is not picked up by the Stomp. I hit a switch once and nothing happens then I hit it again and it will work fine from then on. Do I need to add pull up resistors or something??
Hi! Great video. Quick question. I want to use as a guitar pedal and use stronger switches that I can attach to the enclosure. All I see are two button versions of this. How would I connect and program the two pin instead of the 4 pin? Thanks!
I have a question, I have the Drumkit AI from spikenzie labs. I would like to replace the piezo transducer with push buttons. is a new script needed? Sorry for the noob question, but this was the first place I found that made things a little clearer for me.
Hi. Great job! I just made the first midi controller in my life, which will make the control of my midi devices a lot easier for me: D Thanks a lot! However, I feel a little unsatisfied - is it possible to enter the values for Control Change messages somewhere in the code? I do not see such an option in the base code, unless I should use multiplexers? Maybe some user has already worked on the topic and could help? Best regards.
Excellent tutorial, have some questions... 1. What if i want two CC comands on one button? 2. If i use midiusb library, can i use the usb output for midi?
What sort of buttons will work for velocity-sensitive applications? I’m working on my own project right now where I’m building a controller(just buttons for a diy keytar) that will plug into the wiring clip inside an existing midi keyboard. So I’m wondering if there is a certain type of button that has multiple connectors to make them velocity-sensitive. People on here probably already know the inner workings of keyboards, but the way it works is: one lead selects a note range and two leads will trigger a note when connected to the first. The speed at which the two trigger leads connect to each other determines the velocity. Extracting the buttons from under the keybed and mounting them in another device doesn’t seem like an option because these are usually based on pc boards rather than something that can be easily re-wired. I’m already lucky enough that the Keystudio25 has actual wires that clip into the main circuit board. Any help would be appreciated!
what if i have a 5x6 matrix 25key keyboard (from a Yamaha electronic piano) directly connected so that i can get a number (midi note number) for each button press? how do i manage it with this lib? thanks
Thanks for the good content. I use it to play button chords, but only Major chords are played because it sends a single note. For minor chords, how can I get the button to send two notes when I press it once?
Is there a way to have the MIDI info communicate through the usb port on the Arduino directly into the Digital Audio Workstation? Im looking to not use a MIDI jack but accomplish what you are doing in these tutorials.
This is great, thanks for making this. I have tried making a 6 button controller but when I try and upload to the uno i get an error saying undefined reference to 'Button::Button (unsighned char, unsigned char...etc, I doubt you will see this after many years of this vidoe being online but any ideas how to fix that? I'm very new to this
Hi Dave if out there...love to ask if you could include coding for LED indicators for each buttons push On and push again Off...i tried to hack it but i failed...Thanks in advance
Great video. I'm trying to make single foot keyboard. How could i change octaves ? it's probably not possible with control change. Is it possible to use pins A1 A2 without multiplexer ?
The sketch works for me and the controller i've built works, but once i power off the ardunio it does remember the code. Just for this sketch, holds other sketches. what am i doing wrong? thanks
sorry for the noob question, but i have a few doubts, i want a responding led for each switch, so do i require different pins for each led or just connect the led to pin 13 with connecting the other to 5V. also if i wanna use a usb type b female jack rather than a midi jack, do i have to use another jack and cable or the program can read the interface of arduino as midi directly by the usb we connected it from?
Thanks for this nice video. I would like to use momentary buttons, programmed in latch mode (for sustain on different midi ch) but i would like to use illuminated buttons (with build in led) to get a visual feedback when sustain is on of off. How is this possible ?
Hi, thanks for sharing your project, I tell you I have a BOSS GT 1000 and I would like to make a 6-switch MIDI footswitch, with Arduino but I don't know how to program it, could you help me with that. Thank you
Hello, First of all, thank you very much for your youtube channel! It allowed me to make a bass pedalboard (like the PK-5 from Roland). This midi controller allows my guitarist to trigger sounds from a synthesizer (Access Virus). I want to add a function to my controller: I want to play one note at a time. So I think that it's necessary to use the monophonic mode, what do you think? But I didn't found the right midi CC message. Could you help me please? Any information will be welcome.
The code works but, I connect it to the PC by loopmidi and Hairlessmidi and, the programs recognize that there is MIDI activity but, do not play the note on the instruments (Drums- Addictive Drums 2 or GTR3 Guitars)
Hi.. Great video! Make it look so easy! I'll be building a similar midi controller with just one or two buttons to MUTE certain buses on my midi unit. How does the Arduino get power to operate. Not sure if I missed something... thank you for any help!
Really great videos! Is there any limitations on what kind of messages I can send using this hardware? I'm thinking of sending not only CC messages but also SysEx or even more freeform ones, documented in the manual for my synth.
+Mathias Dahl Thanks Mathias! I purposely left the command functions accessible in the main program for exactly this reason. You can see an example of me modifying the code for a lighting controller in the following video: ua-cam.com/video/fh4B_N-H2J8/v-deo.html
is it possible to use the script with the teensy2++? i compiled the script and it works fine and it is detected as a midi device but when i test the connection by wiring ground to the pin number defined in the script it does not register anything. i have defined the button & added it to the directly connected array and declared the number of buttons to 1. i dont know if i'm missing something or if it;s because of lack of compatibility with teensy.
This is awesome! Great video. I just have a question for you: is it possible to transport the MIDI data via a USB cable from the Arduino Board without the use of the MIDI cable? I want to use Midi to Serial converting software (hairless MIDI-Serial) to be able to use the MIDI data coming directly from the UNO in a Digital Audio Workstation. How can I do that?
Hi Leonard. The project doesn't support USB Midi. You would need to add a midi interface to your PC that has a 5-pin Midi input jack. That's what I do.
Hi , thank you for your amazing tut :) . Could you tell please how to put programChange and not Notes or ControlChange in buttons ? As I understund 0 is Note , 1 is controlChange and 2 is ControlChange toggle ... Thanks :)
Could you build a Foot Pedal adaptable to Guitar Rig 5 or another program, maybe something similar to FCB 1010 Behringer ?? Excellent channel, I learned a lot, thank you
This project worked perfectly in kontakt but I am having difficulties in triggering the buttons because the vsts of kontakt are not recognizing the same, I must change the function in the code or I am configuring wrong, help me please, thank you.
Can this be used to send a sysex command? I think I already know the answer, yes I hope! I'm trying to build a mute/unmuter/fader for Yamaha qy70 tracks which needs sysex (awkward..). Great tutorials! 😁👍 ..ps I've sort of answered my own question. In the documents for the library it has sendSysEx function with an example that loops through the sysex code and sends it. I should be able to get it all together but thanks so much for everything you've done with these videos! 😊
The command is: MIDI.sendSysEx(length, messageData, true); The "length" is how many bytes are in your message, messageData is the array holding those bytes, and the last true/false tells whether your data already has the sysex begin & end bytes F0 and F7 (if you give false, the library adds them for you). First you have to declare a sysex array, for example byte sysexArray[14] = {F0, 43, 10, 26, 02, 06, 01, 00, 1F, 01, 78, 00, 00, F7}; and then you send that array with: MIDI.sendSysEx(14, sysexArray, true);
Follow up, it worked!! A lot of head scratching and merging different Arduino sketches but finally got it cracked! Had to use 0x00 format for the hex sysEx string and a debounce. Notes and volts code was too complex for me to mod so I just wrote my own. I have put a vid up about it, full credit given to notes and volts and 47effects library! Massive thanks!! 😎❤️🌌🌍🛰️
Hi!!! First of all, tnx for this usefull tutorial! I want to make footcontroller to control stomps in Guitar Rig software. I need to add LEDs for stomps state (on-off). Can You give some advice how to do that? Tnx
hello sir i would like to ask if how to use 3 button where the first 2 button is the choices then the 3rd button is like the activation or something but the first 2 button is in toggle
Excellent video friend ... but I would like to know how I add leds, one for each button that indicates which button is active I would appreciate if you answered me.
Great video, thanks! Just wondering, could the same program/ set up be used to send Preset Change messages? I’d like to build a midi foot switch for a line6 M5 guitar effects pedal that I can use to select a number of preset sounds. Would it be as simple as changing the CC code to “PC”? Thanks!!
Hey, I was wondering if you could also achieve sending midi signals using the usb port of the arduino itself without using a seperate midi jack (like most midi-controllers would do)? Nice video btw! I'm planning on building one myself.
Hey! YOU ARE AMAZING! Is there a simple way to add a "bank selection buton" on the code? I am new to the Midi/arduino world and your videos are making it sooo much easier!
A great resource for building a special midi controler! - I like to build a footcontroler which should send cc 34# on each of the six footswitches, but with different values (0 - 5)! is this possible, how must the code be changed? - also, I like to have a LED per switch, can the Code be extended for this functionality?
please sir how can I program a light detecting resistor (cadmium cell) to act like a switch when laser hitting it is interrupted ?? what I am trying to do is make a laser harp so to say with 8 inputs. can I just alter the code for the midi switch project ???/
Hi ! thanks for the tutorial ! is it great ! Hi ! thanks for the tutorial ! is it great ! i´m trying to use your code with 6 buttons, two for CC function and 4 for toggle CC but i need to press two time for the toggle works, if i push just once the toggle doesn't work, and if i want use the midicontroller whit an aplication like Bias FX like a footcontroller the Bias only works with the note 62 whit any other do nothing, please help me ! How can i make the buttons for toggle works with only one push, and you have any idea for the note than i can use ? thanks !!
I'm making an music instrument for an schoolassignment, is t possible to not use a midiboard or something like that. But multiple pussbuttons that send a signal when activated? Its like doing the same thing in your video here with the little switches on the breadboard without the midiboard connection. Only i am using larger pussbuttons. So when my pushbutton is activated the arduino reconises it and activates a sound.
the wire setup confuses me, you are connecting the buttons to inputs, but these are linked to ground not the 5v you are also not including any pullup or pulldown resistors - it can't work this way can it?
Hi Digi Byte. I'm using the Arduinos internal pull-up resistors. The input is pulled high through the built in 20K pull ups in the Atmega chip when the button is not pressed and connected to ground when the button is pressed.
OMG FINALLY!!!!! I knew it had to be this easy, but I keep running into vids and tutorials that pile on the complexity. This is EXACTLY what I need to build a set of bass pedals for my Hammond XK-3. I love that I can just set the pin number, command, note, channel, and debounce IN ONE PLACE :-O I owe you a beer...or a coffee...or even a steak...whatever you want :-)
This is the exact software I've been searching for. I trying to convert a savaged organ pedalboard to a midi pedal keyboard. This will get it done with the minimum screwing around. Your explanation of how the code works is excellent and now I understand the code well enough to make the few simple tweaks needed for my use. Thank you
That's exactly what I am doing! I first tested a couple 25 key midi controllers to try converting them to a set of organ bass pedals for a Hammond XK-3, but they all clear ALL USER SETTINGS every time you power them down!!! I'm just baffled by that. So now it's time to roll my own.
Man, arduino is indeed amazing but what is truly amazing is people like you sharing knowledge like these for free!
Thanks a lot man! I'm planning to build a midi mixer to my Mox6 to help with live performances!
You are a life saver, best code ever.
Worked great with Arduino Mega 2560 and could also use it on Serial2 instead of default Serial.
Thank you so much for your effort in helping all of us.
Please continue developing the project as it is the best Midi Implementation for arduino I have ever seen.
This video is amazing. I have got through this and everything works! Absolutely, hands-down the best MIDI arduino controller video. 11/10.
Congrats BB! Glad it helped you.
Everything works perfectly on my Arduino Mega. Thanks for the useful and simple tutorial!
Great! It's the best video on the tube to explain how to start to midify a key. Wonderful 👍
Once again a very clear and simple to follow videos. Appreciate your effort!
+Rendell Peh Thanks Rendell!
Man, this code is awesome! Just built a MIDI foot controller for my pedalboard. Rock on dude!
That's awesome!
great vid .. but i don't get the need of using midi 5 pins jack ... theres already usb port in the arduino itself ... Can we make midi controller using the usb port ..
HI, thanks for these educational documentaries. thanks to you I now have a more or less working 13 pedal organ bass board (I recovered the pedal board from an old Hammond organ). I used the led input and one of the analogs as a digital input as i had "13 pedals". cheers!
Thanks Alex! That's really cool! I'm glad it worked for you. I love hearing success stories like this :)
so today i added a 44 key variant of the program (no muxes) just straight Digital inputs on a Mega board (up to 54 Di depending on how you use them). I left the LED free this time and serial pins free also, and used inputs 2 to 12 and 22 to 53. Seem to work plugged into a Yamaha Reface :-) all i need to do now is wire it up to a Hammond 44 key manual and make a box for it. summary I am feeling very confident with a 13 pedal bass board into a UNO and the 44 key on a Mega 2560.
brilliant video . made a 5 button interface this evening . very straight forward to do . very happy and impressed with myself. thanks , you've inspired me to be creative for first time in a while . keep up the good work !
Congrats Simon! Glad you found it useful :)
Thanks a million for your work. Thanks you, Now I have my own homemade Arduino foot pedal keyboard!
worked like a charm used this to build a foot switch for my headrush mx5 to control the looper.. thanks brother
Excellent!
I am so Glad I subscribed to your channel sir. You explain this in a way that makes it very understandable to beginner builders/coders. CHEERS !!
Thanks and welcome
Hi,Dave!
Love your tutorials and your channel content!
About the buttons:your method of connecting them right up to digital pins is simple and effective,but if there are more buttons to be read I would suggest using parallel in-serial out shift registers.They are great because you can cascade them together and read maybe hundreds of switches.
P.S. The idea about using a multiplexer was pretty clever.Going to keep it in mind when building my projects. :)
Keep them videos coming!
Cheers!
Thanks for the tip elektro! I will check it out.
This is great, easy and flexible. Can you simple add more Pots if, for instance, using an Arduino Mega ?
Please a tutorial about midi-usb and capacitive sensors instead of buttons, with midi. Sería de mucha ayuda! And thanks so much for all your tutorials, they're great and well explained!
Thank you for the tutorials. One of the best I have seen so far. Very clear instructions.
Thanks JL!
Super code customisable ! Work great for me. I tried this and Led tuto separatly, need to mix the 2 code! thanks Dave to help me for my diy midi controller
@Fred Delsaux Hello. Did you managed to mix the 2 code (Buttons & led) ?
Hello, very interesting video. Thx for share. I've a question. If I want to send a group of midi note.
For exemple, if i press button1 and i want to send a C3maj chord, composed of a those 3 notes : C3 - E3 -G3.
How could i programme it ?
Super tutorial! Do you know how I can make my Arduino to be recognized as a controller by the computer and send MIDI CC through the USB (same as for powering) instead of a MIDI port?
www.arduino.cc/en/Reference/MIDIUSB maybe?
connect the tx port to a usb i think..
I connected mine to a raspberry pi 3 by connecting the signal on arduino pin 1 (tx) directly to pin 8 on the pi3 (rx), and I would imagine you could do that with any midi interface, although per the standard, it really should be separated with an optocoupler. To connect it as a USB MIDI device, depending on your Arduino model, you can use the HIDUINO firmware found here: github.com/ddiakopoulos/hiduino. Otherwise you will need to build a cable with a separate controller. This might help: axe4live.wordpress.com/2012/02/04/diy-midi-interface-for-ipad-version-2/.
Use some Softwares Like " LOOPMIDI " and " HAIRLESS MIDI ". It's a very Basic and Amazing Way to control Midi via USB.
I use an Arduino Leonardo for that
Hello, thanks for these tutorials!
I've come so far, but this doesn't work for me. So, I tried Hairless MIDI, and every time I pressed a button, it said:
"Warning: got a status byte when we were expecting 1 more data bytes, sending possibly incomplete MIDI message 0xc0"
Any ideas?
thank you for this beautiful video. Can I use this for chord control with my foot while playing the keyboard?
thank you so much for the clear and simple tutorial.. can't wait to try it
Have fun!
Keep up the good work! This is on Khan Academy's level
+haubir95 Thanks haubir! I just wish I had 1/10th his subscribers :)
excellent info and code is great. thank you. i am trying to modify the code to sends a string of notes on button bush. i tried changing notes from single notes like 60 to for example 60-64. But it doesn't change though as i think i need to add note off between each note. How do i add this note off between each note (for single button push)? thanks
Is it possible to replace the Midi output port with a Bluetooth module like the HM 10 ? what would change in the arduino sketch? thanks!
Nice videos! I really understand what you have explained! Congratulations for your channel!
Thanks Bruno!
Awesome, took me a while to figure out what i was doing wrong, turned out, I dint used the right Linux commands.
I can now send midi stuff from my arduino over plain serial to my Linux machine and play midi music :D Your videos are clear and helpfull.
ttyMIDI and aconnect helped me alott. it might not have guis but way less trouble once i understand how they work. I might create a nice gui for myself as I see myself way more often connect and change serial connections. A true MIDI port might be ok, but ill add that once i hacked my keyboard. Now I need an awesome sounding external synth :P (for DosBox and Qemu use)
I built a foot controller using this video and it works with just one caveat and I was wondering if others have the same issue. I use 8 switches to control my Line6 HX Stomp--adds switches for all 8 blocks which is just awesome! The problem that I have is that the first switch press typically is not picked up by the Stomp. I hit a switch once and nothing happens then I hit it again and it will work fine from then on. Do I need to add pull up resistors or something??
Hi thank you for share this tutorial, one question, in your code is not possible to send CC message with value?
Hi! Great video. Quick question. I want to use as a guitar pedal and use stronger switches that I can attach to the enclosure. All I see are two button versions of this. How would I connect and program the two pin instead of the 4 pin? Thanks!
Can i make a midi fighter with thissss please reply
Fantastic tutorial, thanks very much, great source code too
Hello! Great this video. How can I add a LED that it turn on when I press a button? Thanks for an eventual your answer
Is there a way to adjust this code to work with a Leonardo board? So that the board itself sends Midi over USB?
thank you very much for your tutorials , they are helpful, I'm still waiting for the third part ;)
Thanks Fabio! The third part is here ua-cam.com/video/NmxoBdEJG28/v-deo.html
I have a question, I have the Drumkit AI from spikenzie labs. I would like to replace the piezo transducer with push buttons. is a new script needed? Sorry for the noob question, but this was the first place I found that made things a little clearer for me.
Hi. Great job! I just made the first midi controller in my life, which will make the control of my midi devices a lot easier for me: D Thanks a lot!
However, I feel a little unsatisfied - is it possible to enter the values for Control Change messages somewhere in the code? I do not see such an option in the base code, unless I should use multiplexers? Maybe some user has already worked on the topic and could help?
Best regards.
Excellent tutorial, have some questions...
1. What if i want two CC comands on one button?
2. If i use midiusb library, can i use the usb output for midi?
hi !
i'm curently trying this option, you should be able to do it only with a USB HID enabled board (see the MIDIUSB library info it tells it all)
What sort of buttons will work for velocity-sensitive applications? I’m working on my own project right now where I’m building a controller(just buttons for a diy keytar) that will plug into the wiring clip inside an existing midi keyboard.
So I’m wondering if there is a certain type of button that has multiple connectors to make them velocity-sensitive. People on here probably already know the inner workings of keyboards, but the way it works is: one lead selects a note range and two leads will trigger a note when connected to the first. The speed at which the two trigger leads connect to each other determines the velocity. Extracting the buttons from under the keybed and mounting them in another device doesn’t seem like an option because these are usually based on pc boards rather than something that can be easily re-wired. I’m already lucky enough that the Keystudio25 has actual wires that clip into the main circuit board.
Any help would be appreciated!
what if i have a 5x6 matrix 25key keyboard (from a Yamaha electronic piano) directly connected so that i can get a number (midi note number) for each button press? how do i manage it with this lib? thanks
Thanks for the good content. I use it to play button chords, but only Major chords are played because it sends a single note. For minor chords, how can I get the button to send two notes when I press it once?
Hi! this is really inspiring video and helpful also. Thanks for help,
i am searching the thing like this since long......great work...
Thanks Richardson!
How would you be able to use this simple setup without the MIDI jack? Using only the USB to send the MIDI commands? I would love to hear about this.
Is there a way to have the MIDI info communicate through the usb port on the Arduino directly into the Digital Audio Workstation? Im looking to not use a MIDI jack but accomplish what you are doing in these tutorials.
Good job!
I would like to use a 4 button footswitch.
But I am not able to assign a led to each button.
Some help?
Thanks
This is great, thanks for making this. I have tried making a 6 button controller but when I try and upload to the uno i get an error saying undefined reference to 'Button::Button (unsighned char, unsigned char...etc, I doubt you will see this after many years of this vidoe being online but any ideas how to fix that? I'm very new to this
My midi controller started switching super fast between CCs when I did this project, what did I do wrong?
Hi Dave if out there...love to ask if you could include coding for LED indicators for each buttons push On and push again Off...i tried to hack it but i failed...Thanks in advance
Hello Azman Ahmad. Did you managed to add coding for LED indicators, as you wanted?
@@slaamri yes i did get it... Do you want a copy of it?
@@azmanahmad2820 Great! I'd like to have it! Thanks!
@@slaamri #include
MIDI_CREATE_DEFAULT_INSTANCE();
const int relay_1 = 12;
const int relay_2 = 11;
const int relay_3 = 10;
const int mswitch_1 = 8;
const int mswitch_2 = 7;
const int mswitch_3 = 6;
int toggleState_1 = 0;
int toggleState_2 = 0;
int toggleState_3 = 0;
void setup() {
MIDI.begin(MIDI_CHANNEL_OFF);
Serial.begin(31250);
pinMode(relay_1, OUTPUT);
pinMode(relay_2, OUTPUT);
pinMode(relay_3, OUTPUT);
pinMode(mswitch_1, INPUT_PULLUP);
pinMode(mswitch_2, INPUT_PULLUP);
pinMode(mswitch_3, INPUT_PULLUP);
}
void relayOnOff(int relay){
switch(relay){
case 1:
if(toggleState_1 == 0){
MIDI.sendControlChange(16, 127, 1);
digitalWrite(relay_1, HIGH); // turn on relay 1
toggleState_1 = 1;
}
else{
MIDI.sendControlChange(16, 0, 1);
digitalWrite(relay_1, LOW);// turn off relay 1
toggleState_1 = 0;
}
delay(100);
break;
case 2:
if(toggleState_2 == 0){
MIDI.sendControlChange(15, 127, 1);
digitalWrite(relay_2, HIGH); // turn on relay 2
toggleState_2 = 1;
}
else{
MIDI.sendControlChange(15, 0, 1);
digitalWrite(relay_2, LOW); // turn off relay 2
toggleState_2 = 0;
}
delay(100);
break;
case 3:
if(toggleState_3 == 0){
MIDI.sendControlChange(10, 127, 1);
digitalWrite(relay_3, HIGH); // turn on relay 3
toggleState_3 = 1;
}
else{
MIDI.sendControlChange(10, 0, 1);
digitalWrite(relay_3, LOW); // turn off relay 3
toggleState_3 = 0;
}
delay(100);
break;
default : break;
}
}
void loop() {
if (digitalRead(mswitch_1) == LOW){
MIDI.sendControlChange(16, 127, 1);
delay(200);
relayOnOff(1);
}
else if (digitalRead(mswitch_2) == LOW){
MIDI.sendControlChange(15, 127, 1);
delay(200);
relayOnOff(2);
}
else if (digitalRead(mswitch_3) == LOW){
MIDI.sendControlChange(14, 127, 1);
delay(200);
relayOnOff(3);
}
}
@Azman Ahmad thank you ! I try this. I'll let you know.
Great video. I'm trying to make single foot keyboard. How could i change octaves ? it's probably not possible with control change. Is it possible to use pins A1 A2 without multiplexer ?
The sketch works for me and the controller i've built works, but once i power off the ardunio it does remember the code. Just for this sketch, holds other sketches. what am i doing wrong? thanks
sorry for the noob question, but i have a few doubts, i want a responding led for each switch, so do i require different pins for each led or just connect the led to pin 13 with connecting the other to 5V. also if i wanna use a usb type b female jack rather than a midi jack, do i have to use another jack and cable or the program can read the interface of arduino as midi directly by the usb we connected it from?
Nice! I want to try this as well.
Hopefully new parts are coming quickly.
Subscribed btw.
Awesome! Thanks for the sub. Good luck with your build.
Thanks for this nice video. I would like to use momentary buttons, programmed in latch mode (for sustain on different midi ch) but i would like to use illuminated buttons (with build in led) to get a visual feedback when sustain is on of off. How is this possible ?
works fine, thx much.
Awesome!
Hi, thanks for sharing your project, I tell you I have a BOSS GT 1000 and I would like to make a 6-switch MIDI footswitch, with Arduino but I don't know how to program it, could you help me with that. Thank you
GREAT video! helped me out a lot! :D
Hello,
First of all, thank you very much for your youtube channel!
It allowed me to make a bass pedalboard (like the PK-5 from Roland).
This midi controller allows my guitarist to trigger sounds from a synthesizer (Access Virus).
I want to add a function to my controller: I want to play one note at a time.
So I think that it's necessary to use the monophonic mode, what do you think? But I didn't found the right midi CC message.
Could you help me please?
Any information will be welcome.
The code works but, I connect it to the PC by loopmidi and Hairlessmidi and, the programs recognize that there is MIDI activity but, do not play the note on the instruments (Drums- Addictive Drums 2 or GTR3 Guitars)
Hi.. Great video! Make it look so easy! I'll be building a similar midi controller with just one or two buttons to MUTE certain buses on my midi unit. How does the Arduino get power to operate. Not sure if I missed something... thank you for any help!
Thanks bells! The Arduino can be powered through the USB cable when experimenting or with an external power supply foe stand alone projects.
I built a 13 note "midi bass pedals" with the help of these well produced tutorials.
How hard would It be to add oct +/- in the sketch?
So much fun. Definitely my new favorite channel.
Really great videos! Is there any limitations on what kind of messages I can send using this hardware? I'm thinking of sending not only CC messages but also SysEx or even more freeform ones, documented in the manual for my synth.
+Mathias Dahl Thanks Mathias! I purposely left the command functions accessible in the main program for exactly this reason. You can see an example of me modifying the code for a lighting controller in the following video: ua-cam.com/video/fh4B_N-H2J8/v-deo.html
is it possible to use the script with the teensy2++? i compiled the script and it works fine and it is detected as a midi device but when i test the connection by wiring ground to the pin number defined in the script it does not register anything. i have defined the button & added it to the directly connected array and declared the number of buttons to 1. i dont know if i'm missing something or if it;s because of lack of compatibility with teensy.
I know this is old but will this controller function the same via the USB Tx/Rx data lines? @Notes and Volts
Hi , Love the videos. can i use your stock midi controller sketch to do program change. All i see is CC.
This is superb! Thank you so much!
Thanks Rick!
This is awesome! Great video.
I just have a question for you: is it possible to transport the MIDI data via a USB cable from the Arduino Board without the use of the MIDI cable? I want to use Midi to Serial converting software (hairless MIDI-Serial) to be able to use the MIDI data coming directly from the UNO in a Digital Audio Workstation.
How can I do that?
Hi Leonard. The project doesn't support USB Midi. You would need to add a midi interface to your PC that has a 5-pin Midi input jack. That's what I do.
Notes and Volts means the above setup can't be used with a 'midi to USB' cable?
Hi , thank you for your amazing tut :) . Could you tell please how to put programChange and not Notes or ControlChange in buttons ? As I understund 0 is Note , 1 is controlChange and 2 is ControlChange toggle ... Thanks :)
Did u solve? I m trying to send program change too
hi thanks so much for this video! really easy to understand
Thanks Jary!
Could you build a Foot Pedal adaptable to Guitar Rig 5 or another program, maybe something similar to FCB 1010 Behringer ??
Excellent channel, I learned a lot, thank you
This project worked perfectly in kontakt but I am having difficulties in triggering the buttons because the vsts of kontakt are not recognizing the same, I must change the function in the code or I am configuring wrong, help me please, thank you.
Can this be done with a USB port instead of MIDI?
Can this be used to send a sysex command? I think I already know the answer, yes I hope! I'm trying to build a mute/unmuter/fader for Yamaha qy70 tracks which needs sysex (awkward..). Great tutorials! 😁👍 ..ps I've sort of answered my own question. In the documents for the library it has sendSysEx function with an example that loops through the sysex code and sends it. I should be able to get it all together but thanks so much for everything you've done with these videos! 😊
The command is:
MIDI.sendSysEx(length, messageData, true);
The "length" is how many bytes are in your message, messageData is the array holding those bytes, and the last true/false tells whether your data already has the sysex begin & end bytes F0 and F7 (if you give false, the library adds them for you).
First you have to declare a sysex array, for example
byte sysexArray[14] = {F0, 43, 10, 26, 02, 06, 01, 00, 1F, 01, 78, 00, 00, F7};
and then you send that array with:
MIDI.sendSysEx(14, sysexArray, true);
@@NotesAndVolts thanks so much, you're an absolute legend for this! Forever grateful for your massive help. 😊
Follow up, it worked!! A lot of head scratching and merging different Arduino sketches but finally got it cracked! Had to use 0x00 format for the hex sysEx string and a debounce. Notes and volts code was too complex for me to mod so I just wrote my own. I have put a vid up about it, full credit given to notes and volts and 47effects library! Massive thanks!! 😎❤️🌌🌍🛰️
is it possible to skip midi din connector part alltogether and just use usb-midi? Thanks!
Hi!!! First of all, tnx for this usefull tutorial!
I want to make footcontroller to control stomps in Guitar Rig software. I need to add LEDs for stomps state (on-off).
Can You give some advice how to do that?
Tnx
I made the midi drum kit with analog inputs. Can I use digital inputs with this code?
Can I use the "footswitch button" like guitar pedals? And how to connect it with the arduino?
I have a sensor and I want use it as a switch with your code it's gave analog value from 0 to 1023 I want when analog100 send note of please reply
hello sir i would like to ask if how to use 3 button where the first 2 button is the choices then the 3rd button is like the activation or something but the first 2 button is in toggle
Excellent video friend ... but I would like to know how I add leds, one for each button that indicates which button is active I would appreciate if you answered me.
Oscar Lopez im looking fwd for this too tried but failed..hv u any sucess?
Great video, thanks!
Just wondering, could the same program/ set up be used to send Preset Change messages? I’d like to build a midi foot switch for a line6 M5 guitar effects pedal that I can use to select a number of preset sounds.
Would it be as simple as changing the CC code to “PC”?
Thanks!!
I m trying too.. have you solved?
@@marcobenigni2610 I'm also trying. any luck
Did you get it?
Hey, I was wondering if you could also achieve sending midi signals using the usb port of the arduino itself without using a seperate midi jack (like most midi-controllers would do)? Nice video btw! I'm planning on building one myself.
www.arduino.cc/en/Reference/MIDIUSB
Hey! YOU ARE AMAZING! Is there a simple way to add a "bank selection buton" on the code? I am new to the Midi/arduino world and your videos are making it sooo much easier!
what software did you use for making animation with pictures?
Thank you !!! It works perfectley !!! Now I have midi footswitch :) using it with Octatrack :D
Awesome Gert! Nice work :)
any chance i could see a video of your foot switch?... i want to make a 12 note foot organ.
How to make button solo/mute Channel CC massages for GM sound module please?
A great resource for building a special midi controler!
- I like to build a footcontroler which should send cc 34# on each of the six footswitches, but with different values (0 - 5)! is this possible, how must the code be changed?
- also, I like to have a LED per switch, can the Code be extended for this functionality?
hi, i m trying send different value for same CC number, did u reach?
Does it support a display? I want to use it with a hotone ampero
Great Videos! Thank you!
+Davide De Bortoli Thanks Davide!
please sir how can I program a light detecting resistor (cadmium cell) to act like a switch when laser hitting it is interrupted ?? what I am trying to do is make a laser harp so to say with 8 inputs. can I just alter the code for the midi switch project ???/
great!, work fine!
Hi, how can I send same CC message but with different Value? " EXAMPLE CC69 Value 4 . thanks
Hi ! thanks for the tutorial ! is it great !
Hi ! thanks for the tutorial ! is it great ! i´m trying to use your code with 6 buttons, two for CC function and 4 for toggle CC but i need to press two time for the toggle works, if i push just once the toggle doesn't work, and if i want use the midicontroller whit an aplication like Bias FX like a footcontroller the Bias only works with the note 62 whit any other do nothing, please help me !
How can i make the buttons for toggle works with only one push, and you have any idea for the note than i can use ? thanks !!
Combination of buttons, how is done please..I would like to press 2 or more buttons at the same time to send a single midi command.
Is this possible to run this sketch on a Leonardo ?
I'm making an music instrument for an schoolassignment, is t possible to not use a midiboard or something like that.
But multiple pussbuttons that send a signal when activated? Its like doing the same thing in your video here with the little switches on the breadboard without the midiboard connection. Only i am using larger pussbuttons. So when my pushbutton is activated the arduino reconises it and activates a sound.
Hi #_#. Other types of Normally Open buttons should work fine.
the wire setup confuses me, you are connecting the buttons to inputs, but these are linked to ground not the 5v
you are also not including any pullup or pulldown resistors - it can't work this way can it?
Hi Digi Byte. I'm using the Arduinos internal pull-up resistors. The input is pulled high through the built in 20K pull ups in the Atmega chip when the button is not pressed and connected to ground when the button is pressed.
Immense help. Thanks!