Skip to main content

BS.1770 / EBU R128 C++ audio source

Bellweather Audio Core

Open-source C++ audio-core library: BS.1770 / EBU Tech 3341 conformance suite, RT-safety primitives, and Barometer as a source-built JUCE reference plugin.

BS.1770 / EBU R128loudness, true-peak, and LRA conformance tests
Apache-2.0Bellweather source published under a permissive license
JUCE-free library buildreusable targets stay framework-neutral when Barometer is off
Reference sourceBarometer included without prebuilt binaries or installers

JUCE at the edge. Reusable audio below it.

The reusable libraries stay framework-neutral. Barometer shows how they adapt into JUCE without making JUCE the center of the architecture.

Barometer reference plugin

Transparent gain, loudness, true-peak, and LRA metering built from source.

JUCE adapter layer

Host plumbing stays at the edge instead of becoming the reusable core.

Metering and DSP core

BS.1770, true-peak, LRA, ballistics, and framework-neutral primitives.

Audio and state types

Small value types for process, parameter, transport, and state data.

RT-safe infrastructure

Audio-thread utilities, guards, and lock-free support below the UI layer.

Use the libraries. Inspect the reference build.

Bellweather Audio Core is intentionally narrow: stable reusable API, Barometer reference plugin source, and only the support code required to build that reference locally.

With BWS_BUILD_BAROMETER_PLUGIN=OFF, the public tree exposes 9 standalone library-mode targets that do not link JUCE.

Enabling Barometer adds the JUCE adapter, UI, preset, example, and shipped UI support targets required for the plugin source build. They support the reference build; they are not an end-user plugin distribution.

Reusable library targets

bws::bw_dsp_metering

Loudness and true-peak meters

LUFS, LRA, true-peak, and meter ballistics with conformance tests.

bws::bw_dsp_core

Framework-neutral primitives

DSP constants, one-pole filters, thread mapping, and shared concepts.

bws::bw_rt

Real-time utilities

Audio-thread guards, violation buffers, lock-free structures, and denormal care.

bws::bw_audio_types

Audio value types

Buffers, process contexts, parameter snapshots, and transport state.

bws::bw_ports

Framework-agnostic ports

Framework-agnostic plugin, parameter, scheduling, state, and preset interfaces.

bws::bw_fft_adapters

FFT wrapper

A Bellweather surface over platform Accelerate or bundled pffft.

Public proof

Public surface

Small downstream smoke targets link each documented module alias.

ctest \
  --test-dir build-library \
  -L public-surface \
  --output-on-failure

Metering conformance

BS.1770, EBU Tech 3341/3342, true-peak, LRA, and sample-rate checks.

ctest \
  --test-dir build-library \
  -R bw_dsp_metering \
  --output-on-failure

Framework separation

Reusable core modules stay below the JUCE adapter and plugin layer.

ctest \
  --test-dir build-library \
  -L framework-boundary \
  --output-on-failure

Docker lanes

Linux clean-room lanes cover Clang, GCC, system Catch2, and optional Barometer.

tools/docker_lanes.sh
Barometer plugin interface

Source-built JUCE reference plugin

Barometer shows the source in use.

Barometer exercises the public library surface inside a real JUCE plugin without turning this release into a prebuilt plugin download.

Included: Barometer reference plugin source.
Included: JUCE adapter, UI, preset, and example support.
Not included: prebuilt binaries, installers, signing, notarization, product services.

Library/framework source release

Clone the source. Run the proofs.

Public-surface compile/link checks, JUCE-separation validation, manifest coverage, and standards-oriented metering tests ship with the source.

Built by Bellweather Studios.

git clone https://github.com/keithhetrick/bellweather-audio-core.git
cd bellweather-audio-core
cmake --preset library
cmake --build --preset library
ctest --test-dir build-library --output-on-failure

Bellweather Audio Core is the public source surface. GitHub is the code surface.