Bela.io

Post Reply
Nicolas
Posts: 1
Joined: Wed Dec 11, 2019 1:02 pm

Bela.io

Post by Nicolas » Wed Dec 11, 2019 1:10 pm

Hi

I would like to know if there is a way to implement MHA on a BELA CAPE
board and benefits the very low latency of this platform ?
https://bela.io/

thanks for your help

tobiasherzke
Posts: 109
Joined: Mon Jun 24, 2019 12:51 pm

Re: Bela.io

Post by tobiasherzke » Wed Dec 11, 2019 1:56 pm

I do not know if anyone has tried BELA together with openMHA. If anyone has, please share your experience in this thread! Also Nicolas if you want to try it, by all means go ahead and it would be nice if you could share your experience here.

openMHA runs on the Beaglebone Black. openMHA performs its signal processing on the ARM core and requires the NEON FPU as well as the Linux operating system services. Live sound can be input to / output from openMHA on this platform via the Jack sound server or directly through an alsa sound driver.

I understand the following about BELA, please correct me if I'm wrong:

1) The low latency advertised by BELA is achieved by performing the processing directly on the real-time MCUs present on the Beaglebone ("Programmable Realtime Units" or "PRU"s), i.e. the sound samples are not transported to the ARM core and back in order to be processed by an application running on the ARM core.

openMHA signal processing cannot in its current form execute on these PRUs, it requires the ARM (or x86_64) core, its FPU and an operating system. I would also suspect that the processing load that we require for some advanced configurations is above what these PRUs can handle.

2) BELA is limited to stereo in and stereo out. While the additional analogue channels on BELA can be used to input and output audio, they lack anti-aliasing filters, sample synchronization with the two real audio channels, and transport to the ARM core via the alsa sound driver alongside the two real audio channels.

Some hearing aid signal processing algorithms benefit from having more than 1 microphone per ear, therefore we prefer a sound card with more than 2 input channels. For the Beaglebone, we are concentrating on the Cape4all sound card with its multi-channel alsa driver https://github.com/HoerTech-gGmbH/Cape4all. Together with the linux system mahalia https://github.com/mahalia-bone/ optimized for low-latency audio signal processing by 64studio https://64studio.com/, we can achieve audio delays between input and output that are only slightly higher than the 1ms advertised by BELA for simple signal processing tasks, but have 6 channels in and 4 channel out. We provide SD card images for for this setup at http://mahalia.openmha.org/.

Post Reply