CTS Verifier MIDI Tests

While most CTS test activities automatically occur when the test begins, testing MIDI functionality in Android 10 CTS Verifier requires human intervention to connect appropriate peripherals to the device under test.

Assembling required peripherals

The CTS Verifier MIDI test tests MIDI functionality with USB MIDI interfaces, Bluetooth MIDI interfaces, and a virtual MIDI device path. Further, for the Bluetooth interface portion of the test, the USB MIDI interface is used to implement a loopback from the Bluetooth interface output back to its input. Thus, the CTS Verifier MIDI requires a USB MIDI interface device and a mandated peripheral device.

An acceptable USB MIDI peripheral can be any that is recognized by the device under test and has standard, round 5-pin DIN MIDI female jacks. Some USB MIDI interfaces are designed to be connected directly to a MIDI instrument with the use of a MIDI cable. These devices have a pair of male plugs and so can't be looped back with a standard MIDI cable.

The recommended peripherals are:

USB with MIDI front

Figure 1. A typical USB audio interface with MIDI (front view)

USB with MIDI rear

Figure 2. A typical USB audio interface with MIDI (rear view) with MIDI I/O female jacks

MIDI with I/O male

Figure 3. A Bluetooth MIDI adapter with MIDI I/O male plugs

Loopback tests

All of the loopback tests send a set of MIDI messages out through the test peripheral, loop back that data, and then monitor the input of that device to ensure that the data received matches the data that was sent.

USB MIDI loopback test

This tests the MIDI functionality through a USB MIDI interface. The loopback mechanism in this case is a standard MIDI cable connected to both the input and output jacks on the interface.

standard MIDI

Figure 4. A standard MIDI cable

MIDI to USB MIDI

Figure 5. The MIDI cable connected to USB MIDI interface

When the USB MIDI interface is connected to the device under test, the USB Input and USB Output labels display the name of the interface and the Test USB MIDI Interface button is enabled.

Tap Test USB MIDI Interface and the Status label displays the results of the test.

USB MIDI loopback

Figure 6. USB MIDI loopback test ready to run

If the test fails with Timeout @, it indicates that not all of the sent data was received.

Virtual MIDI loopback test

The virtual MIDI loopback test tests the Virtual MIDI Device API. The test implements a simple virtual MIDI device, which simply loops back its input to its output. Because this software module is entirely contained in the test code itself, this test requires no additional hardware and is always enabled.

Bluetooth MIDI loopback test

This tests the MIDI functionality through a Bluetooth MIDI interface. The loopback mechanism in this case is the USB MIDI interface.

Before running the Bluetooth MIDI loopback test, you must connect to the Bluetooth MIDI adapter with the MIDI BLE Connect app, available for free in the Play Store.

  1. Connect the Bluetooth MIDI interface to the USB MIDI interface, being careful to connect the output plug of the Bluetooth MIDI interface to the input jack of the USB MIDI interface and input plug of the Bluetooth MIDI interface to the output jack of the USB MIDI interface.
  2. Bluetooth MIDI connected

    Figure 7. The Bluetooth MIDI interface properly connected to the USB MIDI interface

  3. Connect the Bluetooth MIDI adapter with the MIDI + BLTE app.
  4. MIDI+BLTE

    Figure 8. The MIDI + BLTE main screen

  5. Invoke the MIDI + BLTE app and tap Bluetooth Scan.
  6. Bluetooth scan

    Figure 9. Bluetooth scan

  7. When the Bluetooth interface is recognized, tap the name of the Bluetooth interface. The Bluetooth interface is now connected and available to the device under test.
  8. Switch back to the CTS-Verifier app/MIDI Test.
  9. MIDI test

    Figure 10. MIDI test

The name of the Bluetooth interface displays and Test Bluetooth MIDI Interface is enabled. Tap Test Bluetooth MIDI Interface and the Status label displays the results of the test.

If the test fails with Timeout @ non-zero value , it indicates that not all of the sent data was received.

When all three loopback tests have succeeded, tap alt_text to indicate compliance.