MIDI over classic Bluetooth (Not BLE) on Esp32

Hello there!

I'm trying to build a wireless MIDI controller with a WeMos Lolin32, I decided to go with classic Bluetooth (NOT BLE!). At this point, I have two questions:

  1. EVERY Bluetooth-MIDI libraries and devices found on the internet are made with BLE. Is it possible to do this with classic Bluetooth instead?

  2. Is there a way to connect my classic Bluetooth-MIDI controller to a DAW without using 3rd party programs such as Hairless midi and loop-midi?

Thanks!

P.S. If anyone can change my mind about the wireless connectivity type (BT, BLE, Wi-Fi) regarding connectivity, latency, stability, universatility.

@PieterP Since you have created your own MIDI libraries, maybe you have some valuable insights! :slight_smile:

I moved your topic to a more appropriate forum category @amphicheiras.

The Nano ESP32 category you chose is only used for discussions directly related to the Arduino Nano ESP32 board.

In the future, please take the time to pick the forum category that best suits the subject of your question. There is an "About the _____ category" topic at the top of each category that explains its purpose.

Thanks in advance for your cooperation.

As far as I know, there is no such thing as MIDI over classic Bluetooth. You can of course send raw MIDI data over a Bluetooth classic link, but the other side will have no idea how to interpret that data, and you'll need to write a custom driver or application to interface it with DAWs and other MIDI software.

The MIDI BLE standard is not just the data format, it is also the discovery and metadata (such as the GATT service and characteristic UUIDs) necessary to advertise to other devices what protocol you're using.

If you want your device to work with other software and devices out of the box, you'll have to use a standardized protocol such as MIDI over BLE or RTP-MIDI+mDNS.
If you're in control of both ends of the communication link (e.g. two Arduinos communicating, or an Arduino and your own program running on a PC), you can use whatever protocol and transport you want, of course.

Pieter thank you so much for clarifying all this.

We are building a motion midi-contoller with my brother.

Unfortunately BLE does not suit us, because of it’s Windows compatibility issues.

From what I've read, it’s not officially supported in Win10, and even in Win11 it seems to be a hit-or-miss situation.

For now, i will probably use RTP for the prototype, and see how it works out.

RTP is also not ideal for us though, due to it’s reliance on 3rd party software (rtp-midi+bonjour), and mainly due to it’s lack of Linux support.

After your feedback, and further research on the subject, it seems the only solution would be to make a custom Driver/App as you suggested, or a Dongle-based solution instead, ditching Wifi/BT entirely, and using RF modules.

Something like a NRF24L01+ RF Transceiver Module for example.

To give a better picture of what we’re aiming for we compiled this list below:

Essential:

  1. Wireless communication
    It is a hand-held motion controller, so a cable would defeat the point.

  2. Win, Mac and Linux compatibility

  3. “It Just Works”
    Device “discovery” should be simple and consistent.
    Unlike BLE on Windows systems

  4. Low Latency

  5. If dongle is necessary it should be as small as possible
    Ideally as small as those BT mouse dongles.
    This may be an issue, since apart from the RF-chip, it will aslo need some sort of processor to convert the incoming data to Class-Compliant Midi.

Unless a custom Driver/App that takes cares of this is used in combination with the dongle, but still I assume there will be some sort of Analaog to Digital Conversion needed which will probably need some sort of processor chip?

Desirable:

1.No necessity for 3rd Party software

2.No need for Dongle
Although it seems the best solution at the moment

3.Hardware Synth compatibility
Dongle would be very useful here

4.Smartphone compatibility
Dongle would not work here, unless the hand-held controller has a an option for “BLE mode”, which will bypass the dongle and transmit BLE (or RTP) instead.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.