MIDI over Bluetooth

If you can connect simple HID (Mouse/keyboard) devices
a mini remote might be enough to scroll through snapshots during a set.

I got a few key-fob remote shutter devices at a Dollar Store, probably being dumped at the near end of life of included coin battery.
This “Smart Lens” brand device has the shutter button which sends a Carriage Return, and 5 media control keys (like computer keyboards have) unfortunately the mapping table in the Zynthian web config page only accepts printable characters?

FYI these common media control devices generate these ASCII codes:

Function . . . . . . . . . . . . . . . ASCII
VolumeDown . . . . . . . . . . . 174 The volume down key.
VolumeUp . . . . . . . . . . . . . . 175 The volume up key.
MediaNextTrack . . . . . . . . 176 The media next track key.
MediaPreviousTrack . . . 177 The media previous track key.
MediaPlayPause . . . . . . . . 179 The media play pause key.

Those 5 keys might be enough to navigate through a preset sequence in the UI.

Amazon Wireless

Here’s an $8.65 example on Amazon
qiguch66 Bluetooth Multi-Media Remote Control Wireless Phone Bluetooth

Aliexpress offering Wireless Bluetooth Remote Control Car Steering Wheel for $4.88

I didn’t get far with Sidor’s Bluetooth configuration steps.
Which resemble a Pi forum post

I’ve had some success with MIDI over BLE. I’ve used the Yamaha UD-BT01 transmitter with wind controllers and running it through a RPi3 with FluidSynth.

I initially started using the RPi on-board BT with BluePy to connect to the Yamaha dongle. The latency was acceptable after tweaking the connection interval. Then Bluez came out with its MIDI over BT, so I gave that a try, thinking it would be better having the connection “built-in” to the OS. It turned out that the latency was significantly longer, and there wasn’t an obvious way of tweaking it, so I reverted to using BluePy.

Since then I’ve decided that a dedicated receiving device is a better option, and I’ve built one to feed serial MIDI to a DIN plug on my synth. I used an ESP32 controller for that. There were still some difficulties getting the connection interval to the minimum, but it was doable.

Now I’m thinking that the CME devices might be a better option. They have the “WIDI Master” and the “Core” chips, which, they say, negotiate the minimum connection interval.

In summary, MIDI over BLE works for me, but the inherent connection interval means it is not as fast as MIDI over USB cable. I suspect that there will be difficulties using the RPi on-board BT with the Zynthian metal case, so an external receiver is likely to be better.

My projects are here: https://gonzos.net/projects/

Gonzo

2 Likes

Hi @gonzoB! Welcome to Zynthianland. Thanks for sharing your insight and experience of MIDI over Bluetooth. It is very useful and interesting. The Raspberry Pi shares a serial port that it uses for Bluetooth communication which had the capacity to interfere with other functionality so it is disabled by default. (This hardware implementation changed on the RPi4.) There have been a few attempts to use MIDI over Bluetooth but generally the results have been unreliable which is bad for performers so we have tended to shy away from it. A reliable, robust, low latency, low power, wireless connection would be beneficial for the type of instrument you have demonstrated. Being able to play a lightweight wind controller without the burden of wires would be good

1 Like

I played around with MIDI over BLE myself (with a Yamaha MDBT01 BT/MIDI adapter), and discovered that one big factor in terms of latency and connectivity is the presence or absence of MIDI clock. In my experience the clock signal easily turns into a “denial of service attack” on the bluetooth link. And this does not only apply to the direction controller → receiver (Zynthian), but the other direction as well. So clock on the back link can slow down the MIDI coming from the controller because it keeps the buffers full and the BT devices busy.

1 Like

Here’s a report on 3 different makers of low latency purpose built Bluetooth Transmitter-Receiver pairs, running proprietary protocols not limited by Apple defined waits in the BT MIDI standard.

Hi @gonzoB ,

my conclusions in this are are very close to your summary, so I preordered new WIDI things from CME. When they arrive I will share experience.

P.S. I´m fun your projects, specialy the last midi-Bone, wind controler like trombone is crazy.

@catherder , I use the BLE for one-direction live performance/practice so the timing is not an issue. When I tried sending back to the instrument from the RPi I needed to insert “dummy” timing codes (just sequential ones), but I didn’t check for latency under those conditions. Thanks for the heads-up.

@ToFF , Yeah, the midi-Bone is a bit of fun. I’m still debugging it, and learning to play. I’m so slow compared to sax-like instruments. I look forward to your review of the WIDI stuff when it arrives.

Gonzo

Hi @gonzoB , I had a look at your projects website. Really nice. I especialy appreciate your midi wind controller.

Hi to all,

First impression from CME WIDI things:

  • Zynthian1 plugged with WIDI Bud Pro wia USB port
  • Wind Controler Akai EWI USB with WIDI Uhost (powered by small power USB bank) sticked by silver tape.
  • Behringer FCB 1010 pedal midi controler with WIDI Master

Configured and setting to one group by WIDI aplication on Android smart phone.

Results: Yes all workings without problems.
But more tests is need, specially in stability of connections, long time connection and others…

Last thing (also on fig.) - Genki Wave ring is not possible connect to WIDI aplication (version 1.4.4) , I must write to CME about this.

2 Likes

Nice work!

Is there any configuration in zynthian required with the widi bud?

I use host to connect various akai wired controllers to PC.

I have some bt pad banks and mpk esque mini key/ pads I would like to use with zynthian if possible.

The one pads/ knob bank will not play well with some windows apps or android for that matter, depending on the app. so work arounds with loopmidi and midiberry were required so I am wondering if something similar may be possible/ necessary in zynthian. Both units have transport controls as well if that matters.

long story short has there been any progress on native bt in zynthian or a process write up/ walkthrough for us less cmd line folks, for native or dongle bt integration?

This would be huge for me, my enjoyment of this pastime almost depends on the ability to turn on and get devices linked up as quickly as possible(bt is a joy in this regard)

I apprecieate all your efforts to satisfy my goals and ineptitude. :wink:

Yes - BLE MIDI will be implemented in the next stable release. We have a proof of concept running in dev which works fairly well but needs some polish.

2 Likes

Supercool!

I am really beginning to believe Zynthian is what I’ve been waiting for.
I tend to obsess a bit with things and so I am now searching the forums for Pi4b hacks and Pi5 mods to existing v5 hardware (which I think is REALLY COOL btw)

Primarily because I have a terrible propensity for tools that do it all. My father years ago told me that sometimes the tool that does everything doesn’t always do anything well.
For me zynthian may be the exception. I invisage all the capabilities that Zynthian has with the ability (possibly) to also be a linux environment, and possibly an android host as well. That, to me is practically nirvana.

Really wish I had learned to code, to electrical engineer, and was a much better musician.

Too many curiousities to focus on one unfortunately.

No is plug-and-play.
zynthian.9


With widi devices from CME you can create Create Bluetooth MIDI groups - 4 widi ble to one master, which can be connected to Zynthian. Or use auto pairing. In my case Widi Bud Pro connected to Zynthian and paired with Re.corder from Artinoise.
Setting of Widi Bud Pro or other widi thing from CME are made by aplication in smart phone.

1 Like

Awesome!

Thank you so much. I am operating from the weeds as I don’t have a zynthian yet, in case it wasn’t apparent. I have a pi3 somewhere I may break it out and take a stab at it.
On top of that my linux experience is extremely limited as well. I had an ubuntu dual boot with win7 years ago that broke and I didn’t know how to fix it.
I want to learn, just not sure I am patient enough.

I really appreciate everyone’s answers to my likely ignorant questions.

My Linux knowledge is also not very great. Still, I built a Zynthian from scratch.

If you want, I can discuss the possible connection of your controllers to zynthian.

1 Like

Awesome!

Replying by email or would totally :heart: your comment.

I will def reach out when I get one running. I’m doing some pre purchase research on v5 hardware in these forums etc. I am feeling like the support is awesome and that the evolved boards will be supported and kits to upgrade made available if necessary.
I get the gist that 4b may be able already(not certain).
I think the mods that are suggested for pi5 I can probably perform myself. Its only by a very loose grasp on my impulses that I haven’t bought one.

I do try and find the answers myself in the forums but some things I just don’t have enough knowledge to sort out yet. For example I am aware that pi can load several OS but I’m not sure if the V5 board interferes with running linux or others. Or if we would have the capability to run an NVME(?) drive and have a multiboot scenario inside the v5 hardware. If I cant it may not be a deal breaker, but how cool would that be? It should via USB if it cant via the hat interface right?
To run a modern ver. of Android would be a game changer as well.
Or could Zynthian host Reaper? Or host more VST via WINE or however its being done. That would be awesome, or some of these other pi synths I have heard of (that arent already inside).
Bt was a big one but I am pretty satisfied that it will work out.

So many questions but I am looking forward to the experience.

Thanks for the reply and offer of assistance.

Hi @UnkleSkunky

I’m not sure if the V5 board interferes with running linux or others

As is, Zynthian run on a SD card, so if you switch with another one with, let’s say, RaspiOS, you will have a working system with an integrated 5inch display. All the switches and encoders will not work unless you configure them and elaborate a software to use them efficiently.

Or if we would have the capability to run an NVME(?) drive and have a multiboot scenario inside the v5 hardware.

This would need a slightly redesign of the main board if the NVMe drive is connected to it or enough room between the PI5 and the control board for placing an adapter board. (I do not own a v5, so I can’t tell)
I’ve managed to get selectable bootable OSes on another ARM SBC equiped with an NVMe drive. All OSes are Armbian variants and the system use an EFI partition with Grub to load the system. But it’s quiet complicated to achieve that ATM.

To run a modern ver. of Android would be a game changer as well

see here: Free Android 13 OS now available in Raspberry Pi Imager

could Zynthian host Reaper?

As is: no

I have a pi3 somewhere

Find it + a SDcard + HDMI display + USB mouse and you’re ready to go for trying Zynthian :wink:

Before RBPi4, Zynthian was running on a Pi3.

And if you get into troubles, you know where to ask: just open a new thread :wink:

1 Like

Actually you can run Reaper on a Zynthian:


You may not want to of course. I simply installed the Linux armv7l - 11MB version then run it from the VNC desktop. I didn’t do anything useful with it which might mean delving into audio / MIDI routing but it seems to run okay.

3 Likes

Def will when I can. Right now its a kodi box I don’t even use.

I really appreciate the answers and knowledge of all. I think this is what really makes this a great device. Ongoing and future support, modability and a voracious community. I would like to see this device dominate the competition and the form factor already does that imo. A head unit that can evolve is killer, I hope it really takes off, perhaps with the right to repair stuff we hear about will spur some of that.

thanks everybody

Very cool!

If I am following the workflow at all, one would then map various controls and routing from within Zynthian? Like new track, transport, routing? Or does it need to be fully manipulated within VNC? Would it be similar to how other engines integrate?