Sound Byte Libs 0.5.1-117-g19c9f47
C++ firmware library for audio applications on 32-bit ARM Cortex-M processors
Loading...
Searching...
No Matches
Sound Byte Labs

Instrument Development Kit for ARM Cortex-M embedded targets.

SBL is an Instrument Development Kit (IDK) for designing and building digital and hybrid musical instruments. The collection consists of several complementary tools including the main firmware library (this repo) and the hardware schemas, definitions, and code generation pipeline (sbl-hardware).

The IDK is designed to enable rapid prototyping and development of musical instruments by providing a ready-to-use and high quality audio stack while also reducing hardware and platform dependencies. Common control and application utilities out of the box include logging, performance profiling, and MIDI host/client over arbitrary transports.

SBL does not target a specific microcontroller or chip vendor. Instead, it is designed to play nice across the ARM Cortex-M family of microcontrollers. The device manifests and code generation pipeline keep hardware details contained in the HAL. The IDK provides several Python modules for hardware resolution and device description. Cecrops is a scriptable, Sloth consumes the cecrops artifacts along with a device manifest to generate convenient typedefs and peripheral handles. The IDK tools let you build performant firmware with high level application APIs.

Target Applications

Modular synthesis is treated as a first class concern. SBL's DSP stack does not differentiate between or enforce separation of audio and control signals. That said, 'digital' transports (like MIDI) are also defined and supported. Musical instruments are the motivation, though other audio applications are possible.

Example applications:

  • Eurorack modules
  • Semi-modular synthesizers
  • Fixed architecture digital or hybrid synthesizers
  • Samplers & drum machines
  • Controllers, sequencers, arpeggiators
  • Signal generators
  • Low voltage signal processing & analysis

Depending on the target microcontroller and supporting hardware, applications can range from simple utilities to full polyphonic voice chains.

Platform Support

Hardware support is added by implementing the HAL APIs relevant to the chip or MCU class in question. SBL provides a repeatable CMSIS-SVD to typed C++ register and peripheral definition pipeline with errata patching, manual overrides, and version controllable lock files. Rendered chip definitions and HAL implementations are packaged together in a bundle format.

Hardware definitions and pipeline documentation live in sbl-hardware.

Why ARM Cortex-M?

Performance and sanity. Restricting the target scope to Cortex-M family microcontrollers makes it possible to define HAL APIs generic enough to apply across Cortex-M hardware while allowing implementations to be highly optimized. This is important for applications like audio, which have real-time requirements. ARM's CMSIS specs enable build-time resolution and configuration of many important hardware details. Knowing these details lets SBL embed register definitions, peripheral structs, and fully implemented drivers into the application without requiring per-chip or per-device app code.

Documentation

Document Description
Architecture Audio, Control and Hardware stacks, namespaces, audio data format
Hardware System Manifests, code generation, board bringup

License

Copyright (c) 2026 Michael Skiles. See LICENSE file.

The instrument is the answer to a question.