-
-
Notifications
You must be signed in to change notification settings - Fork 111
USB MIDI interfaces
USB MIDI interfaces are commonly used to send and receive MIDI data from a modern PC. You can also use a USB MIDI interface to receive data on mt32-pi
.
If you're shopping for a USB MIDI interface, the following devices have been confirmed as working properly by our testers. Feel free to contribute test results with your own MIDI interfaces and we can list known working ones!
Manufacturer | Device | Send | Receive | Comments |
---|---|---|---|---|
M-Audio | MIDISport 1x1 | β | β | 1 in, 1 out; female DIN sockets. Tested by @nswaldman. |
M-Audio | Uno | β | β | 1 in, 1 out; male DIN plugs. Tested by @dwhinham. |
Roland | UM-1EX | β | β | 1 in, 1 out; male DIN plugs. Tested by @Higgy69. |
Roland | UM-ONE mk2 | β | β | 1 in, 1 out; male DIN plugs. Tested by @nswaldman. |
β οΈ Note: The Send column indicates that the device has been tested for sending data tomt32-pi
(i.e. the USB connection is made with a PC or other device). The Receive column indicates that the device has been tested for receiving data (the USB connection is with the Raspberry Pi).
If you are looking to purchase a USB MIDI interface, it is strongly recommended that you avoid no-name cheap interfaces. Don't be tempted by their cheap price. The device pictured on the right is still widely available from online sellers, and is particularly notorious for its poor quality.
These devices are well known to corrupt System Exclusive data or just not function at all because of crucial missing components [1, 2, 3]. A quick Google search for "Chinese MIDI interface" will reveal several accounts of these devices behaving unreliably.
Some of these devices will appear to work just fine for sending simple Note On/Off commands or Control Change messages, which are only two or three bytes long. The problems occur when longer messages such as SysEx are transmitted.
The reason behind this seems to be that these devices declare that they can support packet sizes of over 4 bytes, but don't actually work with large packets. Operating systems/drivers that are unaware of this (e.g. Windows) will attempt to send large packets, and they will be corrupted in transit by the MIDI interface, which results in the connected MIDI device receiving garbage.
The Linux USB MIDI driver has a list of USB Vendor/Product IDs that are known to suffer from this problem, and implements a workaround/quirk for them [1, 2].
If your only option is one of these devices, try using a Linux computer to send data using your cheap MIDI interface. A user in issue #25 reported successfully being able to send SysEx data after connecting their cheap interface to a Linux machine, confirming that the quirk works.
Otherwise, consider purchasing a MIDI interface from a trusted manufacturer.
Β© Dale Whinham 2020-2022. Released under the GNU General Public License v3.0.