I'm starting my first arduino project, midi foot controller. Only confusing thing for me is, should I use hiduino GitHub - ddiakopoulos/hiduino: Native USB-MIDI on the Arduino or MIDIUSB? It is clear that hiduino has disadvantage that you need spi-programmer since orginal firmware is replaced with hiduino firmware. But on USBMIDI side, what are disadvantages there? Maybe it won't make class compliant midi device, but does it matter? I would connect my controller to linux-machine, does USBMIDI programmed arduino show up as midi device?
It depends. If the main microcontroller of your Arduino has native USB support, use MIDIUSB, if it uses an ATmega16U2 as a secondary microcontroller for USB-To-Serial conversion, use Hiduino.
By the way, you don't need an SPI programmer, you can just flash the Arduino firmware to the 16U2 again.
I explained it in this guide. (It's a bit outdated, it uses the TeeOnArdu core instead of MIDIUSB, since that latter one wasn't out yet, but most of it is still relevant.)
Hope this helps!
A bit late, but...you can check that project : GitHub - TheKikGen/USBMidiKliK: A robust USB MIDI Arduino firmware, with a dual bootloader, based on the LUFA library
It is built on the last version of the LUFA library (2017) and use interrupts and ring buffers for reliable USB to midi transfers.