Bela
Bela is a low-latency audio platform for embedded audio applications, running on BeagleBone boards.Requirements
- Bela board (BeagleBone-based)
- Cross-compilation toolchain for armhf
- Xenomai (real-time extensions)
Two deployment options
Csound for Bela is provided in two forms:-
BelaCsound.cpp: C++ functions (
setup(),render(),cleanup()) for Bela C++ projects, requiring linking to the Csound library -
belacsound: Standalone executable built with CMake using
-DBUILD_BELA=1
Build on Bela board
Building directly on the Bela board as root:--debug-trycompile.
Cross-compilation setup
For cross-compiling from a Linux host:Step 1: Install toolchain
On Debian/Ubuntu:Step 2: Build Xenomai for armhf
Follow Xenomai documentation to build for ARM architecture.Step 3: Build Bela libraries
Buildlibbela and libbelaextra for armhf. The crosscompile-setup.sh script can guide you through this process.
Step 4: Cross-compile Csound
BELA_HOME variable points to your local Bela repository (defaults to ~/Bela).
Toolchain file
TheBela/crosscompile.cmake configures cross-compilation:
Create Debian package
After building with-DCMAKE_INSTALL_PREFIX=/usr/:
Using in Bela projects
Example Bela render function:Daisy
Daisy is a platform for creating standalone audio devices based on the STM32H750 ARM Cortex-M7 microcontroller.Requirements
- arm-none-eabi toolchain: ARM cross-compiler
- CMake: Build system
- From ARM: https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
- With Daisy toolchain: https://daisy.audio/tutorials/cpp-dev-env/ (recommended)
Build libcsound.a
From the top-level Csound source directory:libcsound.a and installs it with headers under Daisy/lib and Daisy/include.
Custom CMake configuration
TheDaisy/Custom.cmake configures a minimal Csound build:
Toolchain file
TheDaisy/crosscompile.cmake sets up ARM Cortex-M7 compilation.
Using in Daisy projects
Add to your Daisy Makefile:Example projects
TheDaisy/DaisyCsoundExamples directory contains example projects:
- DaisyCsoundProcess: Basic audio processing
- DaisyCsoundMidi: MIDI input handling
- DaisyCsoundGenerative: Generative synthesis
- DaisyPodSynth: Complete synthesizer
Other embedded platforms
Zynq
Csound can run on Xilinx Zynq SoC devices. SeeZynq/README.md for details.