USB MIDI

on Android can take two forms:
  • Host mode - where you plug a MIDI interface (or some keyboard or controller with a built-in USB MIDI interface) into the device's USB port
  • Device mode - where the Android device will act as a USB MIDI device that can be used on some other host
The USB Tethering option that TouchDAW had previously listed under USB is technically a network connection and is now accessible via the Network tab.
The ADB option has been dropped and is no longer available.

Host mode

To connect a USB MIDI interface to an Android device you will in most cases need a USB-OTG ('On The Go') adapter. These are usually short - and rather inflexible - cable adapters with a USB-C plug on one end and a USB-A port on the other. You then use a standard A-to-B cable to connect the interface itself to the adapter.

Technically Android should work with all 'class-compliant' USB MIDI gear. If your interface box or keyboard requires a dedicated driver installation to work with standard desktop operating systems, chances that Android will not be able to see it are close to 100%.

Interfaces with multiple ports are supported and it should also be possible to connect more than one box via a hub. Of course that will make things even more fragile from a mechanical point of view. Also keep in mind that the phone or tablet will need to power the connected gear unless it uses some sort of external power supply.

Most USB interfaces will be bidirectional. The IO indicator on the right hand side of the port entries will usually show both input and output (■■), but input ■□ or output □■ only interfaces do exist.

Hot-plugging should be handled gently. When you pull out an interface, TouchDAW should show a notification, fall back to its network defaults and reactivate the interface when it is plugged in again.


Device mode

This will let the Android device 'be' a MIDI device to other hosts (like PCs).

To get it going, connect your device to a computer with a USB cable, navigate to the Android homescreen, pull down from the statusbar and touch the "USB for..." notification. In the USB settings select 'MIDI' and a new MIDI device should appear on the host PC.

On some manufacturers' devices USB MIDI functionality needs to be enabled in the phone's developer options. Please refer to your hardware's documentation if you can not find MIDI in the USB settings.

Since ~Android 10 the MIDI device created on the computer will usually be named 'MIDI Function' (if you connect multiple phones, there'll be lots of 'MIDI Function's, it's pretty sweet...), but it may also carry the Android device's name or whatever the device vendor might have preferred.

With the option enabled on the system level TouchDAW will present a single entry on the USB tab as shown on the left. The Android-side port will usually carry some localized form of 'Android USB Peripheral Port' as its name.

Peripheral ports are always bidirectional and will provide both input and output (■■).

Things to note:
  • There will only ever be one peripheral MIDI port. You can either run the DAW controller over it or the MIDI tools, not both at a time! If you have selected it for either connection, the peripheral mode option will appear grayed out and marked as 'busy' in the setup dialog for the other connection.

    To switch the 'Usb Peripheral Port' to be used on 'the other connection' (ie: from Port 1 to Port 2 or vice versa), unselect it on the port currently using it first!

  • Only one app can make full IO use of the port at a time. Again the port entry may show up as 'busy' and won't be selectable if some other app has the port in use.

  • When you unplug your device, the Usb mode will be reset to "Charging". Remember to reactivate "MIDI" before starting TouchDAW or it will not be able to open the port, show an error notification and will revert to network defaults.

  • After repeatedly de- and reactivating the "MIDI" USB mode, it is pretty much certain that your DAW or MIDI program will no longer see or accept the port and you will at least need to make use of some "rescan MIDI" function (if available) or may need to restart the program. Eventually a full computer reboot may be required.