Before posting, please read: When to use this forum, when to submit a help ticket

BandHelper and Raspberry Pi B 3+

Started by iguana, February 03, 2019, 11:24:19 PM

Previous topic - Next topic

iguana

TL;DR - It works. It's inexpensive. And you probably should have some geek skills. But it isn't perfect.

I've been searching for a computer on which to run BandHelper, one that will also be suitable for permanent mounting inside a rack system using a remote display. The key requirements are to deal with MIDI in for remote control, send MIDI out to control other equipment (including MIDI clock), and run audio tracks.

The core of my system is a Helix (rack version). I'm primarily a guitar player, and the Helix is primarily a guitar processor, but it has the versatility to allow me to route other instruments I play through it (harmonica, sax, accordion).

The Helix, along with a bunch of other stuff (power conditioner, MIDI interface, wireless system, guitar outboard gear) is mounted in the rack - usually positioned offstage - and I have a small-ish pedalboard onstage (see pic). The pedal board consists of the Helix Control footboard, a couple of expression pedals, a Morningstar FC-6 MIDI controller and a screen.

(An aside - I really wanted a smaller screen, like 15". Those went out of production around 2005, apparently, and an entry-level screen nowadays is in the 21-22" range. While 22" seems overkill, I can see it from 20 feet away which isn't a bad thing)

Directing everything is BandHelper. The FC-6 sends MIDI to BH, which in turn sends out MIDI to the Helix and other gear. BH also sends MIDI clock and plays backing tracks.

For the last 2 years, I'd been using BH on an old Windows laptop that I'd converted to Android using the Android-x86 distribution. My equipment was all located on a pedalboard, the laptop sitting on a riser on the board. It worked well - when it worked. The laptop was physically breaking down due to its age (14 years?) and I had to keep my fingers crossed that it wouldn't catastrophically fail in the middle of a gig. Toward the end of last year it was taking 2 or 3 tries to get it to boot up.

Time for a change. And while I was at it, I wanted to move to a rack system to significantly reduce my stage footprint. The rack got built and wired, but a key component was the computer BH runs on. I wanted it to be permanently mounted in the rack for easy set up and tear down. That pretty much leads to using a single-board computer (SBC). Did some reasearch and the LattePanda seemed like a good bet.

Configured the LP to run Android (again, Android-x86), and it initially seemed to run well. Stable and fairly responsive with no obvious glitches. At least, the Android 7.1 port. The newer Android 8.1 port is too sluggish to be usable. Ran the 7.1 port for a couple of weekends at church (where I don't need audio tracks nor MIDI clock), and everything went well enough. (With the built-in antenna, the wireless has very limited range, though.)

Except, when I went to set up for a non-church gig, I found that MIDI clock wasn't available and audio tracks wouldn't play. (Fortunately, brought the old laptop along as a backup). I can live without MIDI clock, but audio is absolutely necessary. Turns out that Intel does not support Linux(*) audio drivers for the chipset (Cherry Trail, or Atom Z83**) used in the LattePanda and other X86 SBC.

(*) Why are Linux drivers relevant? Android is close derivative of Linux. It isn't quite close enough to qualify as a Linux distro (though some consider it as such), but the kernel - and therefore many of the drivers - is Linux.

And I still have no clue why MIDI clock isn't available on the LP. The same Android-x86 7.1 version installed on the ancient laptop does MIDI clock. Another driver issue?

So, without doing a sound driver port myself, audio was never going to happen. And I have better things to do with my time, like make music. That effectively rules out the LattePanda and most other x86 SBCs.

Next up was the Raspberry Pi. I bought the Pi B 3+ model, and I probably should have done a bit more reseach before pulling the trigger. While the B 3+ is the newest, fastest model, there isn't a great choice of Android distributions for it. There are a couple of Android 8.1 distributions, but I tested those and they are too slow to run BandHelper in a live situation. Android 8.1 is known to be relatively piggish compared to 7.1, so what I observed on the Pi and the LP isn't surprising.

There is only one Android 7.1 distribution I found that will run on the B 3+, although there are a couple more that run on the B 3. The B 3 is slightly slower (1.2 GHz vs 1.4 GHz), however.

The one I found is emteria.OS. It isn't free (though at €19 for a personal licence, inexpensive), but it works. The process for installing it isn't hard - use the emteria installer to flash a micro SD card, which you then use to boot the Pi. Emteria doesn't natively come with Google Play Services/Store support, so I also had to use gapps to get that functionality so I could install BandHelper.

After getting through that, and letting the box go through a system optimization process that took a few hours, BandHelper seems to work without any obvious catches. But it is more sluggish than I'd like.

On my initial run, BH got slower and slower over a couple of hours, before the machine completely locked up. I tried it again - without MIDI clock generation from BH - and it ran OK. I looked at the MIDI log and realized that my MIDI interface was configured for a generic "Merge All" function, which means every MIDI message coming in gets bounced to every outgoing device. Including MIDI clock being reflected back to BH. So BH was seeing (and having to interpret - and mostly ignore) a lot more MIDI than necessary. I used the config utility to optimize the MIDI message flow in the interface, refired BH with MIDI clock enabled, and did not have any more obvious performance issues in that regard.

On to audio testing. No surprise, BH ran the audio tracks well. But when running audio, there was a clear instability in the MIDI clock and noticeable lag when performing BH actions like scrolling a document or going to the next song. It was as if BH was giving priority to running the audio, and tending to other functions when it could afford the time.

I noticed the occasional audio glitch occurring when I would do more than 2 BH actions in quick succession (a sequence like next song, start recording, next document, scroll document). Given that the performance of the system was sluggish without audio, I'm not surprised.

Summary: BandHelper will run on a Raspberry Pi B 3+. But it is somewhat sluggish. While it runs well enough for me (running MIDI clock and audio), I'm guessing that adding automation features on top of that would push it right to the edge of being usable, possibly beyond.

And while there are more options for runnning Android on a Raspberry Pi B 3, I would also guess that the 15% faster speed of the 3+ might make the difference between a machine that's usable and one that's not.

Anyone else try going down this path?


arlo

Thanks for the info. What are you trying to gain from this setup versus an iOS or Android tablet? Lower cost and bigger screen?

Also, are you using a mouse or trackpad to navigate within the app? It sounds like your external display is not a touchscreen.

iguana

Not necessarily lower cost, but more compact packaging that's suitable in a rack. Plus a bigger screen than what's available in a tablet.

I'm navigating with a wireless mini keyboard that has a small trackpad. That's just to launch BH and get into a setlist. Once the music starts, it's via the foot controller.