In stock
View Purchasing OptionsProject update 6 of 12
With this update we bring you some exciting news of extra features we have unlocked on Bela Gem Multi. The Multi has always supported DC-coupled audio outputs on eight of its ten channels. With our latest design update, it can also support DC-coupled audio inputs on eight of ten channels. The same change also allows Bela Gem Multi to support digital (PDM) microphones as well as traditional analog audio inputs. Read on for more details!
This update also illustrates how to use the multiprocessing capability of Bela Gem Stereo and Multi, which are built on PocketBeagle 2. With a quad-core, 1.4GHz processor, Bela Gem takes everything you love about Bela – low latency, high-quality audio, real-time responsiveness – and turbocharges it with more power, more I/O, and more flexibility. Below we provide a brief technical explainer on how to take advantage of these new capabilities in your application.
| Feature | Bela Gem Stereo | Bela Gem Multi | Previous Bela Mini | |
|---|---|---|---|---|
| CPU | Quad-core 1.4 GHz Cortex-A53 (64-bit) | Quad-core 1.4 GHz Cortex-A53 (64-bit) | Single-core 1 GHz Cortex-A8 (32-bit) | |
| Audio Output | 2 | 10 (of which 8 can be DC coupled) | 2 | |
| Audio Input | 2 | 10 (of which 8 can be DC coupled) | 2 | |
| Audio Resolution | 16 or 24-bit | 16 or 24-bit | 16-bit | |
| Sample Rate | up to 96 kHz | up to 96 kHz | 44.1 kHz | |
| PDM Microphone Support | no | yes | no | |
| C++ and Pure Data Multi-threaded Support | Yes | Yes | No |
Also included are fully capable GPIO, SPI, and I2C pins, with support for precise timing-sensitive control based on the Programmable Realtime Units on the PocketBeagle 2 (the same onboard microcontrollers that make Bela’s ultra-low-latency performance possible in the first place). Here’s a complete pinout showing what each board offers:
PocketBeagle 2 contains four ARM Cortex-A53 cores. In our testing, a single core performed between 2x and 6x faster than the original Bela depending on the nature of the code. Employ all four cores and you have something truly powerful and we make full use of them in Bela Gem. This means you can:
Bela’s traditional C++ API follows an audio callback model, in which the Bela core software calls a user-defined render() function every time there is a new block of audio and sensor data to process (for more on how this works, see our video lecture series C++ Real-Time Audio Programming with Bela). Traditionally, the render() function ran on one CPU core only.
With the quad-core PocketBeagle 2, we have extended the Bela C++ API so that you can request a call to render() for each CPU core. That produces four simultaneous calls to the function, running on different cores. A variable inside the BelaContext data structure which is passed as an argument will indicate which of the four threads is running.
Sometimes, you need to do certain preprocessing before the parallel threads run, or certain post-processing afterwards like summing the outputs of all the threads. We have introduced two new functions to the Bela C++ API for this: render_pre() runs once per block before any of the parallel threads begin, and render_post() runs once they have all finished.
You don’t have to use any of these new capabilities: existing Bela programs will continue to run as expected without modifications, but these changes will allow you to take full advantage of the PocketBeagle 2’s multiprocessing capability. Here are a few examples of what you can do:
Parallel processing
Each voice runs on a separate core:
Series processing
Each core handles a stage of audio processing and the outputs from one core are fed to the next one during the next block, thus each core adds one block of latency. Thanks to our low-latency architecture you can achieve <5 ms latency even when using four cores in series.
Bela Gem isn’t just about CPU power, it’s about connectivity too. We have improved the Bela Gem Multi design to introduce two additional features that weren’t announced when our campaign launched:
DC-coupled Audio Inputs: we have added support for DC-coupled connections to audio inputs 2-9 on the Bela Gem Multi. When coupled with suitable level-shifting circuitry, this will let you use these eight audio inputs for CVs or other low-frequency signals. DC-coupled inputs will be available when connecting directly to the pin headers on the Multi cape; the 3.5 mm TRS audio jacks will be AC-coupled as before, as this configuration provides the best noise performance for most audio applications.
Using DC coupling with the audio inputs requires some changes in software settings, which will be selectable via the Bela IDE. It also requires an external preamplifier circuit to shift the input levels to the right range (strictly between 0 and 3.3 V, and centered around a 1.375 V reference which is required by the ADC). We will publish schematics for a level shifter after the campaign.
PDM Microphones: Bela Gem Multi now supports the latest digital microphone ICs which send data via pulse density modulation (PDM). This is a standard protocol for miniature digital microphones, but it requires special converters. Fortunately, the ADCs on Bela Gem Multi already support PDM format. PDM microphones can be connected directly to the header pins on the Multi cape; they will not work on the 3.5 mm TRS jacks. A software setting will allow you to switch between analog and PDM mode on the audio inputs.
Eight of the ten audio inputs on Bela Gem Multi support PDM microphones. In principle, each input pin can support two PDM microphones, allowing a total of up to 16 microphones on a single Multi. Supporting these extra channels may require some additional development work which we have not yet undertaken, but we believe it will be possible.
DC-coupled audio inputs and PDM microphone support are only available on Bela Gem Multi and not on Bela Gem Stereo. However, both Stereo and Multi support other flexible expansion options, including the eight channels of DC-coupled analog input (up to 16-bit, 24kHz), 16 digital GPIO pins, SPI, I2C, UART and other connectivity to sensors and peripherals. See our annotated pin diagram above to see everything available.
With Bela Gem, everything gets a performance boost: higher audio fidelity, more CPU headroom, and easier integration. And you still get everything that makes Bela, Bela: browser-based IDE, real-time responsiveness, and extensive documentation for working with audio and sensors.
Next week we’ll take a deep dive into our IDE and the new tools we have designed to help you stay in your creative flow.