IEC 63035: MIDI over Bluetooth Low Energy Specification

IEC 63035 — Musical Instrument Digital Interface over BLE

1. Scope of IEC 63035

IEC 63035 defines the MIDI (Musical Instrument Digital Interface) protocol mapping onto Bluetooth Low Energy (BLE) Generic Attribute Profile (GATT). It specifies how standard MIDI messages — note on/off, control change, program change, pitch bend, and system exclusive — are encapsulated in BLE notifications and indications, enabling wireless musical instrument connectivity with sub-5 ms latency and low power consumption suitable for battery-powered controllers.

Unlike classic Bluetooth (BR/EDR) audio, BLE MIDI offers deterministic timing at the expense of bandwidth — an excellent trade-off for real-time controller data that is never more than a few dozen bytes per event.

The standard introduces a MIDI over BLE GATT Service (UUID 0x03B0) with two characteristics: MIDI Data In (write/notify) and MIDI Data Out (notify/indicate). Timestamps at millisecond resolution are embedded in every BLE notification payload, allowing receivers to reconstruct the precise inter-note timing required by sequencers and digital audio workstations (DAWs).

2. Protocol Stack and Performance Characteristics

2.1 BLE GATT Service Structure

The MIDI BLE service comprises the following elements:

Element UUID Properties Description
MIDI Service 0x03B0 Primary Declares MIDI over BLE capability
MIDI Data In 0x03B1 Write, Notify Host→Device MIDI messages
MIDI Data Out 0x03B2 Notify, Indicate Device→Host MIDI messages
MIDI Feature 0x03B3 Read Capabilities bitmap (channels, timestamp resolution)

Each MIDI message is packaged in a 5-byte header plus payload. The header includes a 16-bit timestamp (units of 0.1 ms) and a 16-bit running status flag. A single BLE notification can carry up to 20 MIDI bytes (limited by the BLE 23-byte MTU default). For larger system exclusive messages, the sender segments the data across multiple notifications.

Engineering insight: the 0.1 ms timestamp resolution is finer than most hardware MIDI jitter specs (±1 ms). In practice, a BLE connection interval of 7.5 ms (the minimum for BLE 4.2+) yields end-to-end latency of roughly 8-12 ms, which is acceptable for keyboard controllers but marginal for drum pads.

2.2 Timing Accuracy and Buffering

Jitter in BLE connection events creates a challenge for precise MIDI timing. IEC 63035 mandates that the receiver application must use the embedded timestamps rather than the BLE notification arrival time for MIDI event scheduling. The standard requires a minimum timestamp resolution of 1 ms (0.1 ms recommended). Edge-case testing reveals that BLE controllers with poor clock accuracy (±50 ppm) can accumulate timing drift of 3 ms per minute of continuous play, necessitating periodic timestamp resynchronization.

When implementing IEC 63035 on a dual-core MCU, ensure that BLE stack processing (link layer interrupts) does not starve the MIDI timestamp generation thread. Priority inversion can cause timestamp jitter that violates the ±1 ms tolerance.

3. Applications and Future Evolution

IEC 63035 has been adopted by major instrument manufacturers (Roland, Yamaha, Korg) for their wireless controller product lines. The standard is also gaining traction in the pro-audio space for wireless pedalboards and digital mixing console remote controls. With the advent of BLE 5.x and LE Audio, there is discussion within the MIDI Association to extend the standard to support higher bandwidth (48 kHz audio transport over BLE isochronous channels). However, for pure MIDI control data, the current specification remains optimal.

A known pitfall: some BLE dongles and laptop adapters do not support the 7.5 ms connection interval, falling back to 30 ms intervals that introduce 30-40 ms of round-trip latency. For professional stage use, always verify BLE controller compatibility with a latency test jig before deployment.

4. Frequently Asked Questions

Q: Can IEC 63035 coexist with BLE audio (LE Audio) on the same device?
A: Yes. The MIDI service operates on a separate GATT service handle. The BLE controller’s scheduler interleaves audio isochronous streams and MIDI connection events without conflict.
Q: What is the maximum number of simultaneous MIDI channels over BLE?
A: 16 channels (per standard MIDI specification). Multiple virtual cables can be realized by instantiating multiple GATT service instances, each supporting 16 channels.
Q: Are there any licensing restrictions?
A: IEC 63035 is an open IEC standard. Implementers must license the GATT UUID block from the Bluetooth SIG, but no additional royalty is required.
Q: How does the standard handle SysEx messages longer than 20 bytes?
A: The sender segments the SysEx into 20-byte chunks, each carried in a separate BLE notification. The receiver reassembles them using the running status field and the 0xF0 start / 0xF7 end markers.

Leave a Reply

Your email address will not be published. Required fields are marked *