Monthly Archives: May 2017

What is still left for MIDI over Bluetooth Low Energy on Linux

I have to confess that I have been a little slow after the release of BlueZ 5.44 with the new MIDI profile support.

But I feel that I need to share the progress we have so far.

What has been done

The central role support is completed along with a midi parser library that implements the details of processing raw MIDI data to ALSA Sequencer events and vice-versa. The library has also been covered with several unit-tests.

What still needs to be done

Few people might notice a unstable MIDI connection, with packet and connection drops. This is because BlueZ in both kernel and user-space needs improvements on the way it handles connection parameters. I have several patches to improve on both sides, but it has not been approved yet. But it will soon be, since the maintainers are providing good feedback on that (kudos for Luiz Augusto von Dentz).

There is also the work in progress to finish a BlueZ tool to provide a peripheral role support for MIDI as well. Most of the work is in the ATT/GATT stack, since libmidi  already does all the heavy lifting when referring to MIDI parsing. My idea is to have a dedicated tool instead of implementing in bluetoothd  itself. They can both co-exist, so it is an acceptable solution IMO. But, please, feel free to discuss the solution with us.

That’s it. I hope this provides a clear view of the current road-map.