Brume: An Open-Source 24-Voice Multi-Timbral Synth for the CM5

Brume turns a Raspberry Pi Compute Module 5 (CM5) and a touchscreen into a standalone, four-part synthesizer. It runs four synthesis engines simultaneously—FM, Harmonic, Timbral, and Granular—each with 6 voices for a total of 24 voices. The entire signal path is generated from live math; no samples are used.

Engines

Part 1: FM – Six operators across twelve algorithm topologies. Per-operator ratio and level, global feedback, a per-voice FM-index envelope, and a state-variable filter (SVF) with its own envelope. This is classic DX-style FM with subtractive shaping.

Part 2: Harmonic – Additive synthesis with eight harmonics under a Gaussian scanning window. Per-harmonic waveform morph, FM on the fundamental, spectral tilt, and odd/even balance.

Part 3: Timbral – A triangle core fed into a wave-multiplier shaper with linear FM, sub-oscillator, self-modulation feedback, and expanded symmetry. Produces nonlinear spectra through cascaded wavefolding.

Part 4: Granular – Pitched clouds of micro-oscillator grains with morphable waveforms. Parameters include density, scatter, drift, and intra-grain FM.

Signal Architecture

Every voice follows the same path: MIDI in → voice allocation → modulation → filter → envelope → mixer. The mixer sends to delay and reverb buses, plus a Lua FX slot for custom processing. The master output includes a saturator, chorus, delay, reverb, and a limiter.

Meridian: USB to DAW

A single USB cable carries multi-channel audio out (stereo plus planned per-part stems), bidirectional MIDI, and clock. Class-compliant—no drivers, no manager app. Works with Bitwig, Logic, Ableton, Reaper, and others on macOS and Linux.

Specification

Bill of Materials

  1. Compute Module 5 (8 GB RAM, 32 GB eMMC, WiFi)
  2. Carrier board (CM5 IO Board)
  3. 10.1" HDMI touchscreen (reference: 1920×1200)
  4. Software: Brume installs onto Raspberry Pi OS Lite via brumectl CLI. The CLI adds runtime packages, labwc/webkitgtk shell, audio config, presets, and systemd service. Update with --update.

Controllers

Why It Matters for Developers

Brume is a fully open-source, programmable synthesizer. The entire audio runtime is written in Rust, and the UI runs on labwc/webkitgtk. You can extend it with Lua scripts for custom sequencing, DSP effects, or controller mappings. If you're a developer interested in audio programming, embedded Linux, or Rust, Brume is a concrete, hackable platform.

Getting Started

To build Brume, you need a CM5, an IO board, a touchscreen, and a controller. Install Raspberry Pi OS Lite, then run brumectl to set up the software. The repository likely contains build instructions and a prebuilt image. Start by exploring the Lua scripting API to create custom effects or sequencers.