NOW LOADING

WinRT API Support for Bluetooth MIDI Endpoints


Namespace for Bluetooth Low Energy MIDI device and peripheral management
Windows.Devices.Midi2.Transports.Bluetooth

Types for discovering Bluetooth Low Energy MIDI devices, connecting to them, and publishing this PC so other devices can connect to it.

One namespace covers both Bluetooth Low Energy MIDI 1.0 and the draft MIDI 2.0 transport. The service picks which protocol to use with each device, and prefers MIDI 2.0 whenever a device offers it. MidiBluetoothProtocol tells you which one it picked. The only time an app chooses a protocol is when it publishes this PC as a peripheral, because a peripheral has to advertise one or the other.

In Bluetooth terms, the central is the device that looks for others and connects to them, and the peripheral is the one that advertises and waits. Usually this PC is the central and your MIDI device is the peripheral. When you publish this PC as a peripheral, it’s the other way around: a phone or tablet is the central, and it connects to this PC.

Devices are identified by BluetoothDeviceId, which is the device’s Bluetooth address as twelve hex digits. It isn’t a Windows device interface id. You can pass the address in other common forms too, such as lowercase or with colons or dashes between the pairs of digits. The API always reports it as twelve uppercase hex digits.

Types in this namespace

Click or tap the type name to view more details.

Type Description
MidiBluetoothAddressType Whether a Bluetooth address is public or random
MidiBluetoothApprovalScope How long a decision about a remote device applies
MidiBluetoothConnectionState How far along a Bluetooth MIDI device is in getting connected
MidiBluetoothDeviceConnectConfig Identifies a Bluetooth MIDI device to connect to, and can be saved to make the connection persist
MidiBluetoothDeviceConnectErrorCode Error codes returned when connecting a Bluetooth MIDI device
MidiBluetoothDeviceConnectResponse The result of connecting a Bluetooth MIDI device
MidiBluetoothDeviceDisconnectConfig Identifies a Bluetooth MIDI device to disconnect, and can be saved to stop it reconnecting
MidiBluetoothDeviceDisconnectErrorCode Error codes returned when disconnecting a Bluetooth MIDI device
MidiBluetoothDeviceDisconnectResponse The result of disconnecting a Bluetooth MIDI device
MidiBluetoothDeviceInformation Information about a Bluetooth MIDI device this PC has discovered
MidiBluetoothOfflineRetention How long a device's MIDI endpoint outlives the device going offline
MidiBluetoothOfflineRetentionConfig Sets how long a MIDI endpoint outlives its Bluetooth device going offline
MidiBluetoothPeripheralClient The remote device connected to this PC while it is published as a Bluetooth MIDI peripheral
MidiBluetoothPeripheralClientDecisionResponse The result of approving or denying a remote device that connected to this PC
MidiBluetoothPeripheralClientListConfig Saves the remembered allow and deny lists to the configuration file
MidiBluetoothPeripheralClientPolicy Whether a remote device connecting to this PC is let in without asking
MidiBluetoothPeripheralConfig Configures publishing this PC as a Bluetooth MIDI peripheral
MidiBluetoothPeripheralErrorCode Error codes returned by Bluetooth MIDI peripheral operations
MidiBluetoothPeripheralResponse The result of starting or stopping the Bluetooth MIDI peripheral
MidiBluetoothPeripheralStatus The state of this PC when published as a Bluetooth MIDI peripheral
MidiBluetoothProtocol Which Bluetooth MIDI protocol a device speaks
MidiBluetoothRadioInformation What the Bluetooth radio on this PC can actually do
MidiBluetoothRememberedClient A remembered allow or deny decision about a remote device
MidiBluetoothSavedDevice A Bluetooth MIDI device saved in the configuration file
MidiBluetoothTimestampSource Whether a device's own timestamps are being used, or arrival time is standing in for them
MidiBluetoothTransportManager The primary class used to discover and connect Bluetooth MIDI devices, and to publish this PC as a Bluetooth MIDI peripheral

Didn't find what you were looking for?

Windows MIDI Services is an open source project with all source available on GitHub. We have a great community on Discord as well. Between GitHub and Discord, you should find the information you are looking for.