-
Notifications
You must be signed in to change notification settings - Fork 278
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[bluez 5.70] Roland GO:KEYS MIDI BLE feature not working #604
Comments
|
I've found this thread with some clues. With some tips, I could help in code. |
|
@mwprado well you probably need to recompile with midi support: https://github.com/bluez/bluez/blob/master/README#L282 Or you can handle the attributes on your own, using the D-Bus API: |
|
Thank you for reply. I've recompiled with midi support after I posted, but is not working yet. It is connecting but there ins't midi stream. I searched in mailing list that you had commented about this keyboard before. I'm trying debug the source code to figure out where is the problem. I'll also give a try in gatt-api. |
|
Data with gattctl: $ gattctl --connect cb:81:f4:62:ff:07 |
When I run gatttool in interactive mode, I got data below: [CB:81:F4:62:FF:07][LE]>primaries [CB:81:F4:62:FF:07][LE]>characteristics In other hand, when I run bluetoothctl and try list attributes, display that info [GO:KEYS MIDI]# list-attributes I can't figure out why the characteristcs below (one of them is MIDI I/O) are not linked in any service. In Android BLE Scanner App scanner that chractheristics are linked to 03b80e5a-ede8-4b33-a751-6ce34ec4c700 service as showed below: @Vudentz , could you give me any tip to start debug this problem? |
|
I've collected more data from log with specific errors: |
|
This is the btmon log |
|
In btmon log, I could see this problem: |
|
Why does gatttool list charactheristics with handle like in: but when I connect with blutoothctl, don't list that characteristic. Gatttool dump:
|
I put user in audio group and disable SELINUX. There isn't any error now. I can see Go:KEYS in alsa and pipewire. $ aplaymidi -l $ arecordmidi -l Unfortunately, I can't play midi on the keyboard or read notes from it. |
|
Device cache for GO:KEYS shows info below that is diferent from Gatttool posted before. [1] [7] [33] [49] |
|
Hi! Same issue found here. There is a longer discussion at https://linuxmusicians.com/viewtopic.php?t=25227 |
|
I believe this is not specific to GO:KEYS. I have Roland FP10. Similarly, bluetooth connection is OK but no midi data received. |
|
Same for me with Roland FP-10, device is there but no midi data. Also can help if any testing/debugging needed. pavel@localhost:~$ arecordmidi -l |
|
Perhaps we need to compare the HCI traces from and Android with BlueZ to see what is different. |
|
If this analysis true then it's Roland being non-compliant: https://www.spinics.net/lists/linux-bluetooth/msg89475.html The conclusion was that the device uses a mix of different UUID sizes. Not saying bluez should workaround it. But it's interesting that all other OSes seem to tolerate it. |
|
@maksut hmm so there is a problem with discovery then not able to discover certain range when it intermixes UUID16 with UUID128? That would be non-complaint since the spec requires them to not be intermixed like that, but perhaps we could attempt to detect that some how. Can someone here paste the traces using btmon -w so I can try to find a way to decode that. |
|
I kept trying and found that it works only when device is paired first time. Not sure what info will be relevant, so: OS: Fedora 39 Digital piano - Roland FP-10 - latest firmware (there are some fixes for bluetooth!): I compiled and installed bluez from https://mirrors.edge.kernel.org/pub/linux/bluetooth Now, whenever i freshly pair my device (after deleting it from known devices using "forget" button), it works! But when disconnected and connected again, it connects, it's visible in pipewire, can be connected to but does not work. PC restart does nothing, only after device is deleted and freshly paired it works again. Attached are btmon -w files from first pairing vs connecting known device: |
|
It is interesting that both Apple devices (iOS, and OSX) work out of the box, and also Windows, and Android. I know BLE is somewhat new to BlueZ so maybe there is something others are doing and we are missing. |
|
Following details may not be related to this bluez issue, but maybe it will be helpful for somebody. It's also possible that FP-10 problems are not connected to originaly reported bluez issue at this thread at all, only the symptoms are same. I know basically nothing about bluetooth and it's implementation, but if anybody wants some debug data to test anything, I can do that. Today I tested Roland FP-10 on Windows using MIDIberry app and it behaves basically the same as for Linux - when freshly paired, device is "connected" and works (I can see MIDI data in MIDIberry). When disconnected and connected again, device is there with status "connected" but no MIDI data, until I remove the device and freshly pair it again. I don't have any Apple devices, but I will check with Android and let you know later. I observed that FP-10 stay connected only when there is some software using it. I guess this is some general feature of bluetooth, not specific to this particular case, but it has consequences for this issue: If I pair FP-10 without MIDIberry running, it will connect briefly and when nobody using it, disconnect. If you run MIDIberry afterwards, FP-10 buletooth status changes to connected, but does not work. If I run MIDIberry before FP-10 pairing, it will grab FP-10 device as soon as connected and it stays connected and works. Note for anybody who would want to use this as workaround to get FP-10 BLE MIDI working - it seems that while MIDIberry is running, it keeps bluetooth device "in use", regardless of bluetooth status. You cannot remove and successfully pair FP-10 again while MIDIberry is running. To reset everything, you need to close MIDIberry, remove FP-10 from paired devices, open MDIDIberry and pair FP-10 again. |
@Vudentz |
|
A related project: |


HI, I bought a GO:KEYS MIDI keyboard for my kids. On scaning I can see GO:KEYS MIDI and GO:KEYS AUDIO.
When I try to conect my computer to my keyboard, the GO:KEYS AUDIO connection works perfectly, but, GO:KEYS MIDI connection doesn't work.
There is some information:
Product:
GO:KEYS - Music Creation Keyboard (GO-61K)
https://www.roland.com/global/products/gokeys_go-61k/specifications/
Main Specs:
61 keys
Touch Sensitivity: Key Touch: 3 types, fixed touch
Maximum Polyphony: 128 voices
MIDI Format: Conforms to GM2
Recorder
Save Format: Standard MIDI Files (Format 0)
Bluetooth: Bluetooth Ver 4.2:
Profile Support: A2DP(Audio), GATT(MIDI over Bluetooth Low Energy)
Codec: SBC (Support to the content protection of the SCMS-T method)
$ bluetoothctl --version
bluetoothctl: 5.69
[bluetooth]# show
Controller AC:67:5D:FF:E3:C5 (public)
Name: fedora
Alias: fedora
Class: 0x007c010c (8126732)
Powered: yes
PowerState: on
Discoverable: yes
DiscoverableTimeout: 0x000000b4 (180)
Pairable: yes
UUID: Message Notification Se.. (00001133-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
UUID: OBEX Object Push (00001105-0000-1000-8000-00805f9b34fb)
UUID: Message Access Server (00001132-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
UUID: IrMC Sync (00001104-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
UUID: Phonebook Access Server (0000112f-0000-1000-8000-00805f9b34fb)
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb)
UUID: Device Information (0000180a-0000-1000-8000-00805f9b34fb)
UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb)
UUID: Handsfree Audio Gateway (0000111f-0000-1000-8000-00805f9b34fb)
UUID: Audio Source (0000110a-0000-1000-8000-00805f9b34fb)
UUID: OBEX File Transfer (00001106-0000-1000-8000-00805f9b34fb)
UUID: Handsfree (0000111e-0000-1000-8000-00805f9b34fb)
Modalias: usb:v1D6Bp0246d0545
Discovering: yes
Roles: central
Roles: peripheral
Advertising Features:
ActiveInstances: 0x00 (0)
SupportedInstances: 0x0c (12)
SupportedIncludes: tx-power
SupportedIncludes: appearance
SupportedIncludes: local-name
SupportedSecondaryChannels: 1M
SupportedSecondaryChannels: 2M
SupportedSecondaryChannels: Coded
[bluetooth]# devices
Device 34:81:F4:62:FF:07 GO:KEYS Audio
Device CB:81:F4:62:FF:07 GO:KEYS MIDI
Device A4:AE:11:0E:2C:12 Wireless Controller
[bluetooth]# info CB:81:F4:62:FF:07
Device CB:81:F4:62:FF:07 (random)
Name: GO:KEYS MIDI
Alias: GO:KEYS MIDI
Paired: yes
Bonded: yes
Trusted: yes
Blocked: no
Connected: no
LegacyPairing: no
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb)
UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
UUID: Device Information (0000180a-0000-1000-8000-00805f9b34fb)
UUID: Vendor specific (03b80e5a-ede8-4b33-a751-6ce34ec4c700)
Modalias: bluetooth:v0039p1582d4200
[bluetooth]# info 34:81:F4:62:FF:07
Device 34:81:F4:62:FF:07 (public)
Name: GO:KEYS Audio
Alias: GO:KEYS Audio
Class: 0x00240414 (2360340)
Icon: audio-card
Paired: yes
Bonded: yes
Trusted: yes
Blocked: no
Connected: no
LegacyPairing: no
UUID: Serial Port (00001101-0000-1000-8000-00805f9b34fb)
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
Modalias: bluetooth:v0039p1582d4200
ManufacturerData Key: 0x5349 (21321)
ManufacturerData Value:
53 43 SC
$ rfkill list
0: acer-wireless: Wireless LAN
Soft blocked: no
Hard blocked: no
1: acer-bluetooth: Bluetooth
Soft blocked: no
Hard blocked: no
3: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
4: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
bluetoothd-gokeys.out.log
The text was updated successfully, but these errors were encountered: