• TalkBass has been independent since 1998. Add your voice.
    Create a free account to reply to discussions, view embedded media, and browse with fewer display ads.
    Join freeLog in
    Want zero display ads or expanded classifieds tools? Compare plans.

Custom MIDI foot controller

Update: This page:

MIDIUSB - Arduino Reference

Says "This library allows any microcontroller with native USB capabilities (atmega32u4 based boards or ARM boards) to appear as a MIDI peripheral over USB to a connected computer."

It does list compatibility with a much wider range of boards (including Nano) but I think that is a bit misleading because, although it will compile on those boards, it won't actually work! It goes on to say "Note: while the library is supposed to compile correctly on these architectures, it might require specific hardware features that may be available only on some boards."

A Teensy 2.0 should work, and it appears ARM boards should also.
Nano definitely does not work as usb-midi natively. Maybe if you jump through some hoops it can work. Nano can be setup as midi controller using uart with 5-pin din connectors, but that is not the way for the pedals like this.
 
  • Like
Reactions: Jeff Siddall
Arduino Micro has the same MC and works with usb-midi natively. I used it myself for that. Actually also under Linux with Guitarix and Jack.
Also I must add that it is possible to get a knockoff Arduino Micro which has a wrong MC and and a serial port chip. Usually that can be bought for a couple of dollars from Aliexpress and that will not work natively like a real actual Micro or Teensy... I think Teensy is no longer as available as it ones was, but a nice board.
 
Last edited:
  • Like
Reactions: Jeff Siddall
My rig is a laptop running the excellent AVL MXE (see: AV Linux MX Edition), still at 21.3 for me though I'm interested in trying the latest load with Pipewire, with a Tascam 2x2HR (see: Invalid Link Removed) handling audio in/out duties. Latency is in the sub 10 ms range which is good enough for my ear.
I have tried Guitarix with pipe wire about year and a half ago. It was clicking and glitching including straight Matrix over the phone exit sounds. I tried just about any setting in pipe wire and in Guitarix and either I get 30ms latency or crap sound. I ended up converting back to pulse and it is a lot more usable. Latency is there but I would say under 10ms... Maybe 5. Back then I used Fedora 37 which is default with pipe wire, so... Still using it now just with pulse.
 
  • Like
Reactions: Jeff Siddall
I have tried Guitarix with pipe wire about year and a half ago. It was clicking and glitching including straight Matrix over the phone exit sounds. I tried just about any setting in pipe wire and in Guitarix and either I get 30ms latency or crap sound. I ended up converting back to pulse and it is a lot more usable. Latency is there but I would say under 10ms... Maybe 5. Back then I used Fedora 37 which is default with pipe wire, so... Still using it now just with pulse.

Interesting. I switched to pw on my desktop system running Ubuntu 20 a few months back and it worked unbelievably well. So well I had to double check that it was actually running! As a connector for literally everything Linux multimedia (jack, alsa, pulse) it is pretty awesome if/when it works.

If Glen is using it I have pretty good confidence it will work well at least in AVL.
 
Interesting. I switched to pw on my desktop system running Ubuntu 20 a few months back and it worked unbelievably well. So well I had to double check that it was actually running! As a connector for literally everything Linux multimedia (jack, alsa, pulse) it is pretty awesome if/when it works.

If Glen is using it I have pretty good confidence it will work well at least in AVL.
It can be a fedora thing or it was just too new at the time. The latency I get with pulse is pretty minimal. When I enable direct out on the interface and can hear both at the same time in my headphones, it just sounds a tiny bit spacious.. I'll try pipe wire again next time I upgrade the PC. Good to know that it works with jack for someone, I thought it was not fully compatible with jack.
 
  • Like
Reactions: Jeff Siddall
Great project, very well done and an interesting read! Thanks Jeff, thanks kgbeast!

Any recommended entry points, websites into diy midi? Just recently soldered together some motors controlled by an arduino micro. Waiting for the motors to arrive, then hopefully stick it into a piano. Never have done anything with midi, software is provided by the composer, but intrigued.
 
Great project, very well done and an interesting read! Thanks Jeff, thanks kgbeast!

Any recommended entry points, websites into diy midi? Just recently soldered together some motors controlled by an arduino micro. Waiting for the motors to arrive, then hopefully stick it into a piano. Never have done anything with midi, software is provided by the composer, but intrigued.
I have programmed a Micro to send Guitarix some program change commands and the code was so minimal that I forgot to save the project. Now I have working Arduino and no project. The instructions set is pretty basic and there are a small pile of examples and a good API webpage that shows all features of the midi library.
 
Great project, very well done and an interesting read! Thanks Jeff, thanks kgbeast!

Any recommended entry points, websites into diy midi? Just recently soldered together some motors controlled by an arduino micro. Waiting for the motors to arrive, then hopefully stick it into a piano. Never have done anything with midi, software is provided by the composer, but intrigued.

Thanks!

On the USB MIDI side, I would recommend you get an ATmega32U4 based board and then just try sending some MIDI messages based on the example code here:

arduino_midi_library/examples/Basic_IO at master · FortySevenEffects/arduino_midi_library

I only use Linux so I can't give advice for other platforms, but ALSA has a utility called aseqdump to monitor MIDI messages so you can easily see what your code is sending.

Hopefully that will get you started. Good luck! :thumbsup:
 
  • Like
Reactions: ceetee
I have programmed a Micro to send Guitarix some program change commands and the code was so minimal that I forgot to save the project. Now I have working Arduino and no project.

Damn! For small code pieces I'm using notepad++ and when done I copy it to the terminal / IDE. You don't have to explicitly press the save button in notepad++. Still keeps your files.

Thanks!

On the USB MIDI side, I would recommend you get an ATmega32U4 based board and then just try sending some MIDI messages based on the example code here:

arduino_midi_library/examples/Basic_IO at master · FortySevenEffects/arduino_midi_library

I only use Linux so I can't give advice for other platforms, but ALSA has a utility called aseqdump to monitor MIDI messages so you can easily see what your code is sending.

Hopefully that will get you started. Good luck! :thumbsup:

ATmega32U4: Got 2 micros for my piano project that only needs one. The other one's destiny will be a midicontroller I guess.

Thanks for the heads up on alsa!
I'm usually quite slow when it comes to personal projects. Not much spare time between family and work. But I need to read up anyway on the topic and for now I need to have a look at the basics and how people implement them on their controllers to get a feel for the code.
 
  • Like
Reactions: Jeff Siddall