I took inspiration for this from various internet searches, in particular this article.
I have it connected up to a Pi 3 Model B+ and tested it using the Python example program on the above linked site. I have also connected it via ALSA to FluidSynth using ttymidi. I am running ArchLinux and have the following in my /boot/config.txt
Code: Select all
enable_uart=1 dtoverlay=pi3-miniuart-bt dtoverlay=midi-uart0
Now it basically works but it is slow. What I mean by that is I can press keys on my Midi keyboard and the correct notes are received and played by FluidSynth as long as I play slowly. If I attempt to press keys at a "normal playing speed" then it does not work - commands get dropped resulting in missed note on/off commands.
The ttymidi (or Python test program) output the received data to the screen and I can see that when it goes wrong it's receiving bad data, usually reported as an unknown midi command with the first byte usually being 08 in such cases.
I feel so near and yet so far... Is there anyone who has done this who might be able to advise where I'm going wrong?