[DONE in 5.6.4.2] Android Bluetooth LE
Posted: Wed Oct 04, 2017 5:17 pm
Hallo, ich erlaube mir, in deutsch zu schreiben und weiter unten eine GT-Übersetzung für englisch beizufügen.
Hello, if you don't unterstand German, please have a look at the English translation below.
Gemäß der Spezifikation für MIDI über Bluetooth LE für Android arbeitet die derzeitige Implementierung in G-Stomper Studio und Beast fehlerhaft bei der Erkennung verbundener MIDI-Geräte.
Die Spezifikation findet ihr hier: https://developer.android.com/reference ... n_entities
Die G-Stomper-Apps scheinen diese Schnittstelle aber nicht zu verwenden, um verbundene BTLE-Geräte aufzulisten, oder führen einen (überflüssigen) Abgleich mit denjenigen Geräten durch, die über die normale Bluetooth-Schnittstelle als „gepaired“ abgerufen werden können.
Weiter unten im Kapitel „Using MIDI Over Bluetooth LE“ wird das entsprechend dargestellt:
„Before using the device, the app must scan for available BTLE devices and then allow the user to connect. (…) The app will only want to see MIDI devices and not mice or other non-MIDI devices. So construct a ScanFilter using the UUID for standard MIDI over BTLE. MIDI over BTLE UUID = "03B80E5A-EDE8-4B33-A751-6CE34EC4C700". (…) Once the MIDI/BTLE device has been opened by one app then it will also become available to other apps using the MIDI device discovery calls described above.“
Für die Verbindung zwischen Geräten und Apps, die MIDI über BTLE korrekt implementieren aber die Verbindung selbst nicht aufbauen, kann die Verbindung also auch über externe Apps hergestellt werden, z.B. https://play.google.com/store/apps/deta ... ring&hl=de
Der korrekte Weg zur Erkennung verbundener Geräte wäre also, statt dem Android-Bluetooth-System das Android-MIDI-System abzufragen.
Durch den bisherigen Mechanismus zur Entdeckung von BLTE-Geräten ist es nicht möglich, z.B. die BTLE-Geräte von AKAI mit G-Stomper-Apps zu verwenden. Die AKAI-Geräte lehnen (sinnvollerweise) jeden Pairingversuch ab, der nicht, wie oben beschrieben, explizit ein MIDI-over-BLE Pairing versucht. Hierdurch ist es unter Android 7.1.1 nicht möglich, diese Geräte über die „normalen“ Bluetooth-Werkzeuge des Android-Systems zu verbinden…
Zur Fehlerbehebung würde es genügen, die Abfragen an das Bluetooth-System von Android durch Abfragen des MIDI-Systems von Android zu ersetzen.
Ein Beispiel für eine korrekte Implementierung findet ihr zum Beispiel bei DRC. Diese App verbindet sich nicht selbständig mit BTLE-Geräten, sondern nutzt die vorhandenen Verbindungen zu BTLE-Geräten über die MIDI-Schnittstelle.
Darf man erwarten, dass bei G-Stomper das Verfahren zur Geräteerkennung irgendwann an diesen Standard angepasst wird?
Auf Dauer ist es leider langweilig, eure fantastischen Apps nur über die On-Screen-Steuerungen zu benutzen…
Grüße, Zed
According to the specification for MIDI via Bluetooth LE for Android, the current implementation in G-Stomper Studio and Beast is faulty in detecting connected MIDI devices.
The specification can be found here: https://developer.android.com/reference ... n_entities
However, the G-Stomper apps do not seem to use this interface to list connected BTLE devices, or perform a (superfluous) matching with devices that are paired through the normal Bluetooth interface.
In the chapter "Using MIDI Over Bluetooth LE" you'll find the following section:
„Before using the device, the app must scan for available BTLE devices and then allow the user to connect. (…) The app will only want to see MIDI devices and not mice or other non-MIDI devices. So construct a ScanFilter using the UUID for standard MIDI over BTLE. MIDI over BTLE UUID = "03B80E5A-EDE8-4B33-A751-6CE34EC4C700". (…) Once the MIDI BTLE device has been opened by one app then it will also become available to other apps using the MIDI device discovery calls described above.“
Apps that implement MIDI through BTLE correctly aren't forced to establish the connection itself. The connection can also be established via external apps, e.g. https://play.google.com/store/apps/deta ... ring&hl=de
So the correct way to detect connected devices is to query the Android MIDI system instead of querying the Android Bluetooth system.
Due to the present mechanism for detecting BLTE devices, it is not possible to connect AKAI BTLE devices with G-Stomper apps. The AKAI devices reject (correctly) any pairing attempt, that is not, as described above, an explicitly MIDI-over-BLE pairing attempt. With Android 7.1.1 is it not possible to connect these devices via the "normal" Bluetooth tools of the Android system...
For troubleshooting, i guess it would be enough to replace the queries to Android's Bluetooth system by querying the Android's MIDI system.
An example of a correct implementation can be found at DRC, for example. This app does not connect itself to BTLE devices, but uses the existing connections to BTLE devices via the MIDI interface.
Can we expect that G-Stomper will adopt the correct method for device recognition?
In the long run it would be maybe boring to use the touch ui for controlling your fantastic apps...: P
Regards, Zed
Hello, if you don't unterstand German, please have a look at the English translation below.
Gemäß der Spezifikation für MIDI über Bluetooth LE für Android arbeitet die derzeitige Implementierung in G-Stomper Studio und Beast fehlerhaft bei der Erkennung verbundener MIDI-Geräte.
Die Spezifikation findet ihr hier: https://developer.android.com/reference ... n_entities
Die G-Stomper-Apps scheinen diese Schnittstelle aber nicht zu verwenden, um verbundene BTLE-Geräte aufzulisten, oder führen einen (überflüssigen) Abgleich mit denjenigen Geräten durch, die über die normale Bluetooth-Schnittstelle als „gepaired“ abgerufen werden können.
Weiter unten im Kapitel „Using MIDI Over Bluetooth LE“ wird das entsprechend dargestellt:
„Before using the device, the app must scan for available BTLE devices and then allow the user to connect. (…) The app will only want to see MIDI devices and not mice or other non-MIDI devices. So construct a ScanFilter using the UUID for standard MIDI over BTLE. MIDI over BTLE UUID = "03B80E5A-EDE8-4B33-A751-6CE34EC4C700". (…) Once the MIDI/BTLE device has been opened by one app then it will also become available to other apps using the MIDI device discovery calls described above.“
Für die Verbindung zwischen Geräten und Apps, die MIDI über BTLE korrekt implementieren aber die Verbindung selbst nicht aufbauen, kann die Verbindung also auch über externe Apps hergestellt werden, z.B. https://play.google.com/store/apps/deta ... ring&hl=de
Der korrekte Weg zur Erkennung verbundener Geräte wäre also, statt dem Android-Bluetooth-System das Android-MIDI-System abzufragen.
Durch den bisherigen Mechanismus zur Entdeckung von BLTE-Geräten ist es nicht möglich, z.B. die BTLE-Geräte von AKAI mit G-Stomper-Apps zu verwenden. Die AKAI-Geräte lehnen (sinnvollerweise) jeden Pairingversuch ab, der nicht, wie oben beschrieben, explizit ein MIDI-over-BLE Pairing versucht. Hierdurch ist es unter Android 7.1.1 nicht möglich, diese Geräte über die „normalen“ Bluetooth-Werkzeuge des Android-Systems zu verbinden…
Zur Fehlerbehebung würde es genügen, die Abfragen an das Bluetooth-System von Android durch Abfragen des MIDI-Systems von Android zu ersetzen.
Ein Beispiel für eine korrekte Implementierung findet ihr zum Beispiel bei DRC. Diese App verbindet sich nicht selbständig mit BTLE-Geräten, sondern nutzt die vorhandenen Verbindungen zu BTLE-Geräten über die MIDI-Schnittstelle.
Darf man erwarten, dass bei G-Stomper das Verfahren zur Geräteerkennung irgendwann an diesen Standard angepasst wird?
Auf Dauer ist es leider langweilig, eure fantastischen Apps nur über die On-Screen-Steuerungen zu benutzen…
Grüße, Zed
According to the specification for MIDI via Bluetooth LE for Android, the current implementation in G-Stomper Studio and Beast is faulty in detecting connected MIDI devices.
The specification can be found here: https://developer.android.com/reference ... n_entities
However, the G-Stomper apps do not seem to use this interface to list connected BTLE devices, or perform a (superfluous) matching with devices that are paired through the normal Bluetooth interface.
In the chapter "Using MIDI Over Bluetooth LE" you'll find the following section:
„Before using the device, the app must scan for available BTLE devices and then allow the user to connect. (…) The app will only want to see MIDI devices and not mice or other non-MIDI devices. So construct a ScanFilter using the UUID for standard MIDI over BTLE. MIDI over BTLE UUID = "03B80E5A-EDE8-4B33-A751-6CE34EC4C700". (…) Once the MIDI BTLE device has been opened by one app then it will also become available to other apps using the MIDI device discovery calls described above.“
Apps that implement MIDI through BTLE correctly aren't forced to establish the connection itself. The connection can also be established via external apps, e.g. https://play.google.com/store/apps/deta ... ring&hl=de
So the correct way to detect connected devices is to query the Android MIDI system instead of querying the Android Bluetooth system.
Due to the present mechanism for detecting BLTE devices, it is not possible to connect AKAI BTLE devices with G-Stomper apps. The AKAI devices reject (correctly) any pairing attempt, that is not, as described above, an explicitly MIDI-over-BLE pairing attempt. With Android 7.1.1 is it not possible to connect these devices via the "normal" Bluetooth tools of the Android system...
For troubleshooting, i guess it would be enough to replace the queries to Android's Bluetooth system by querying the Android's MIDI system.
An example of a correct implementation can be found at DRC, for example. This app does not connect itself to BTLE devices, but uses the existing connections to BTLE devices via the MIDI interface.
Can we expect that G-Stomper will adopt the correct method for device recognition?
In the long run it would be maybe boring to use the touch ui for controlling your fantastic apps...: P
Regards, Zed