An open API service indexing awesome lists of open source software.

https://github.com/GareBear99/MeterMaid

Full Metering Suite inside a JUCE plugin
https://github.com/GareBear99/MeterMaid

Last synced: 9 days ago
JSON representation

Full Metering Suite inside a JUCE plugin

Awesome Lists containing this project

README

          

## πŸ’Ž MeterMaid β€” **free** on GitHub + TizWildin website

MeterMaid is released **free** as part of the TizWildin Plugin Ecosystem.

- [⬇️ Latest release](https://github.com/GareBear99/MeterMaid/releases/latest) β€” universal macOS VST3 + AU + Standalone
- [🌐 TizWildin website](https://garebear99.github.io/TizWildinEntertainmentHUB/)
- [πŸ›οΈ TizWildin Hub repo](https://github.com/GareBear99/TizWildinEntertainmentHUB)

Want to support the work directly? Any of these are appreciated:

- [GitHub Sponsors](https://github.com/sponsors/GareBear99)
- [Buy Me a Coffee](https://buymeacoffee.com/garebear99)
- [Ko-fi](https://ko-fi.com/luciferai)

> πŸŽ›οΈ Part of the [TizWildin Plugin Ecosystem](https://garebear99.github.io/TizWildinEntertainmentHUB/) β€” 19 free audio plugins with a live update dashboard.
>
> [FreeEQ8](https://github.com/GareBear99/FreeEQ8) Β· [XyloCore](https://github.com/GareBear99/XyloCore) Β· [Instrudio](https://github.com/GareBear99/Instrudio) Β· [Therum](https://github.com/GareBear99/Therum_JUCE-Plugin) Β· [BassMaid](https://github.com/GareBear99/BassMaid) Β· [SpaceMaid](https://github.com/GareBear99/SpaceMaid) Β· [GlueMaid](https://github.com/GareBear99/GlueMaid) Β· [MixMaid](https://github.com/GareBear99/MixMaid) Β· [MultiMaid](https://github.com/GareBear99/MultiMaid) Β· [MeterMaid](https://github.com/GareBear99/MeterMaid) Β· [ChainMaid](https://github.com/GareBear99/ChainMaid) Β· [PaintMask](https://github.com/GareBear99/PaintMask_Free-JUCE-Plugin) Β· [WURP](https://github.com/GareBear99/WURP_Toxic-Motion-Engine_JUCE) Β· [AETHER](https://github.com/GareBear99/AETHER_Choir-Atmosphere-Designer) Β· [WhisperGate](https://github.com/GareBear99/WhisperGate_Free-JUCE-Plugin) Β· [RiftWave](https://github.com/GareBear99/RiftWaveSuite_RiftSynth_WaveForm_Lite) Β· [FreeSampler](https://github.com/GareBear99/FreeSampler_v0.3) Β· [VF-PlexLab](https://github.com/GareBear99/VF-PlexLab) Β· [PAP-Forge-Audio](https://github.com/GareBear99/PAP-Forge-Audio)
>
> 🎁 [Free Packs & Samples](#tizwildin-free-sample-packs) β€” jump to free packs & samples
>
> 🎡 [Awesome Audio](https://github.com/GareBear99/awesome-audio-plugins-dev) β€” (FREE) Awesome Audio Dev List

# MeterMaid

## Position in the Maid Audio Lineup

MeterMaid is part of the Maid Audio suite, anchored by FreeEQ8:

- **FreeEQ8** β€” flagship 8-band parametric EQ (anchors the suite) Β· [https://github.com/GareBear99/FreeEQ8](https://github.com/GareBear99/FreeEQ8)
- **BassMaid** β€” low-end enhancement, sub reinforcement, tightening Β· [https://github.com/GareBear99/BassMaid](https://github.com/GareBear99/BassMaid)
- **SpaceMaid** β€” depth, width, ambience, spatial design Β· [https://github.com/GareBear99/SpaceMaid](https://github.com/GareBear99/SpaceMaid)
- **GlueMaid** β€” mix-bus glue and cohesion Β· [https://github.com/GareBear99/GlueMaid](https://github.com/GareBear99/GlueMaid)
- **MixMaid** β€” real-time spectral balance and mix correction Β· [https://github.com/GareBear99/MixMaid](https://github.com/GareBear99/MixMaid)
- **MultiMaid** β€” focused multiband dynamics, non-overlapping with the rest Β· [https://github.com/GareBear99/MultiMaid](https://github.com/GareBear99/MultiMaid)
- **MeterMaid** β€” ITU-R BS.1770-4 / EBU R128 mastering + metering suite with an octagonal target radar Β· [https://github.com/GareBear99/MeterMaid](https://github.com/GareBear99/MeterMaid) ← *you are here*
- **ChainMaid** β€” sidechain ducking, pumping, and trigger routing Β· [https://github.com/GareBear99/ChainMaid](https://github.com/GareBear99/ChainMaid)

Together, the Maid Audio suite is a complete, practical mixing + mastering toolkit:
FreeEQ8 shapes tone, BassMaid owns the low end, SpaceMaid places sources in space, GlueMaid bonds the bus, MixMaid corrects spectral balance, MultiMaid tames multiband dynamics, MeterMaid verifies the result against broadcast and streaming targets, and ChainMaid routes the dynamic interaction between tracks.

**A single-plugin mastering and metering suite built on rigorous loudness standards.**
ITU-R BS.1770-4 K-weighted loudness Β· EBU R128 gated integration Β· 4Γ— oversampled true peak Β· real-time spectrum Β· spectrogram Β· chromagram Β· goniometer Β· phase correlation Β· octagonal target radar.

[![CI](https://github.com/GareBear99/MeterMaid/actions/workflows/build.yml/badge.svg)](https://github.com/GareBear99/MeterMaid/actions/workflows/build.yml)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
[![Platforms](https://img.shields.io/badge/platforms-macOS%20universal-lightgrey.svg)](#install)

## What MeterMaid measures

MeterMaid gives you every reading a modern mastering engineer or streaming-target engineer needs from a single plugin window. Every metric below is computed from the same audio block on the audio thread and published lock-free to the UI.

### Loudness (ITU-R BS.1770-4 / EBU R128)
- **Momentary LUFS** (400 ms sliding window)
- **Short-Term LUFS** (3 s sliding window)
- **Integrated LUFS** with absolute (-70 LUFS) and relative (-10 LU) gating
- **LRA** (Loudness Range, EBU R128 P95 βˆ’ P10)

### Peaks and RMS
- **True Peak** (4Γ— oversampled, IIR half-band): summed bus, and per-channel L / R
- **Sample Peak**: per-channel L / R
- **RMS**: per-channel L / R and summed mono

### Dynamics and ratios
- **Crest Factor** (true peak βˆ’ RMS)
- **Dynamic Range** (short-term LUFS βˆ’ RMS)
- **PSR** (Peak-to-Short-term Ratio, dB)
- **PLR** (Peak-to-Loudness Ratio, dB)

### Stereo image
- **Phase correlation** (βˆ’1..+1)
- **Stereo width** (side / total energy, %)
- **Goniometer** (L/R rotated 45Β°)
- **Vectorscope** (side / mid)

### Spectral
- **Spectrum analyzer** (512-bin Hann-windowed FFT, linear frequency axis)
- **Spectrogram** (log-frequency, viridis heatmap, 256-frame history)
- **Chromagram** (12 pitch classes over the piano range)

### Time-based
- **Integrated LUFS timeline** (512-point rolling history)
- **Loudness histogram** (βˆ’48..0 LUFS in 1 dB buckets)

### Decision layer
Rule-based target guidance that categorises the current material as one of:

| State | Meaning |
|---|---|
| `Streaming Ready` | Integrated βˆ’16..βˆ’13 LUFS and true peak ≀ βˆ’1 dBTP |
| `Too Loud` | Integrated > βˆ’13 LUFS |
| `Too Quiet` | Integrated < βˆ’16 LUFS |
| `True Peak Risk` | True peak > βˆ’1.0 dBTP |
| `Stereo Risk` | Correlation < βˆ’0.10 |
| `Dynamic Pressure` | Dynamic range < 6 dB |

### The octagonal radar
The centrepiece visualisation. Eight labelled spokes β€” Integrated, Short-Term, Momentary, RMS, Dynamics, Correlation, Headroom, True Peak β€” each normalised to 0..1 against its target range. A filled polygon connects the live values so an at-risk mix shows an obvious asymmetry before you read a single number.

## Install

1. Grab the latest release from [the releases page](https://github.com/GareBear99/MeterMaid/releases/latest).
2. Unzip and copy:
- `MeterMaid.vst3` β†’ `~/Library/Audio/Plug-Ins/VST3/`
- `MeterMaid.component` β†’ `~/Library/Audio/Plug-Ins/Components/`
3. Re-scan plugins in your DAW.

Standalone: `MeterMaid.app` β€” double-click to run.

*Windows / Linux builds β€” planned. The CMake project is portable; CI currently targets macOS universal.*

## Standards compliance

MeterMaid implements loudness measurement against these published specifications:

- **ITU-R BS.1770-4** β€” pre-filter (high-shelf + high-pass K-weighting), mean square, gated block ring, logarithmic conversion.
- **EBU R128 / Tech 3342** β€” momentary (400 ms), short-term (3 s), integrated with absolute (βˆ’70 LUFS) and relative (βˆ’10 LU) gates; LRA as P95 βˆ’ P10 of gated short-term values.
- **ITU-R BS.1770-4 Annex 2 (true peak)** β€” 4Γ— polyphase IIR half-band oversampling before the peak detector.

The K-weighting filter coefficients are the specification values (1681.97 Hz high-shelf at +4 dB, 38.14 Hz high-pass Q=0.5003) implemented as `juce::dsp::IIR::Filter` pairs, one per channel.

## Validation status

This is a beta build. Numerical validation against reference meters is in progress; see [`MeterMaid/docs/TECHNICAL_AUDIT.md`](MeterMaid/docs/TECHNICAL_AUDIT.md) for the current audit and [`MeterMaid/docs/RELEASE_GATES.md`](MeterMaid/docs/RELEASE_GATES.md) for the full release gate checklist. The repository now ships an in-process calibration test (`MeterMaid/tests/ReferenceToneTest.cpp`) that synthesizes known-energy tones and asserts each reading is within Β±0.5 LU / Β±0.5 dBTP of the analytical expectation.

**Honest claim:** serious pre-production baseline with every MiniMeters-class readout implemented against the published standards, and an octagonal target radar that no other free metering plugin currently offers.

**Unsafe claim without proof:** "best in world" β€” that requires the validation matrix filled end-to-end and attached to a release.

## Build from source

Requirements:
- CMake 3.22+
- A C++20 compiler (Xcode 14+ / CLT 14+ on macOS, MSVC 2022 on Windows, GCC 11+ on Linux)
- [JUCE 8.0.0](https://github.com/juce-framework/JUCE/tree/8.0.0)

```bash path=null start=null
git clone https://github.com/GareBear99/MeterMaid.git
cd MeterMaid
git clone --depth 1 --branch 8.0.0 https://github.com/juce-framework/JUCE.git JUCE

cmake -S MeterMaid -B build \
-DJUCE_PATH=$PWD/JUCE \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" \
-DCMAKE_OSX_DEPLOYMENT_TARGET=11.0

cmake --build build --config Release --target MeterMaid_VST3 -j
cmake --build build --config Release --target MeterMaid_AU -j
cmake --build build --config Release --target MeterMaid_Standalone -j
```

Universal binaries land in `build/MeterMaid_artefacts/Release/{VST3,AU,Standalone}/`.

Run the calibration tests:

```bash path=null start=null
cmake -S MeterMaid -B build -DJUCE_PATH=$PWD/JUCE -DMETERMAID_BUILD_TESTS=ON
cmake --build build --target MeterMaid_ReferenceTest -j
./build/MeterMaid_ReferenceTest
```

## Repository layout

```
MeterMaid/
β”œβ”€β”€ CMakeLists.txt
β”œβ”€β”€ Source/
β”‚ β”œβ”€β”€ PluginProcessor.{h,cpp} β€” audio processor + framePipe owner
β”‚ β”œβ”€β”€ PluginEditor.{h,cpp} β€” octagonal radar + full dashboard
β”‚ β”œβ”€β”€ MeterEngine.h β€” K-weighting, gate, true peak, spectrum, chroma, LRA
β”‚ β”œβ”€β”€ MeterFrame.h β€” audioβ†’UI payload
β”‚ └── LockFreeFramePipe.h β€” double-buffered SPSC latest-frame pipe
β”œβ”€β”€ assets/ β€” HTML UI reference demo
β”œβ”€β”€ config/ β€” UI contract
β”œβ”€β”€ docs/ β€” technical audit, release gates, audit plan
β”œβ”€β”€ tests/ β€” reference tones + validation matrix
└── scripts/ β€” validation harness
.github/workflows/build.yml β€” macos-14 CI, universal-binary build + release attach
```

## License

MIT β€” see [LICENSE](LICENSE). The K-weighting coefficients and gating procedure are from publicly published ITU / EBU specifications and are implemented from scratch.

## Support and ecosystem

- **Report issues**: [GitHub Issues](https://github.com/GareBear99/MeterMaid/issues)
- **Changelog**: [CHANGELOG.md](CHANGELOG.md)
- **Other TizWildin plugins**: [TizWildin Hub](https://garebear99.github.io/TizWildinEntertainmentHUB/)
- **Awesome Audio Dev list**: [awesome-audio-plugins-dev](https://github.com/GareBear99/awesome-audio-plugins-dev)

## TizWildin FREE sample packs

| Pack | Description |
|------|-------------|
| [**TizWildin-Aurora**](https://github.com/GareBear99/TizWildin-Aurora) | 3-segment original synth melody pack with loops, stems, demo renders, and neon/cinematic phrasing |
| [**TizWildin-Obsidian**](https://github.com/GareBear99/TizWildin-Obsidian) | Dark cinematic sample pack with choir textures, menu loops, transitions, bass, atmosphere, drums, and electric-banjo extensions |
| [**TizWildin-Skyline**](https://github.com/GareBear99/TizWildin-Skyline) | 30 BPM-tagged synthwave and darkwave loops with generator snapshot and dark neon additions |
| [**TizWildin-Chroma**](https://github.com/GareBear99/TizWildin-Chroma) | Multi-segment game synthwave loop sample pack from TizWildin Entertainment |
| [**TizWildin-Chime**](https://github.com/GareBear99/TizWildin-Chime) | Multi-part 88 BPM chime collection spanning glass, void, halo, reed, and neon synthwave lanes |
| [**Free Violin Synth Sample Kit**](https://github.com/GareBear99/Free-Violin-Synth-Sample-Kit) | Physical-model violin sample kit rendered from the Instrudio violin instrument |
| [**Free Dark Piano Sound Kit**](https://github.com/GareBear99/Free-Dark-Piano-Sound-Kit) | 88 piano notes + dark/cinematic loops and MIDI |
| [**Free 808 Producer Kit**](https://github.com/GareBear99/Free-808-Producer-Kit) | 94 hand-crafted 808 bass samples tuned to every chromatic key |
| [**Free Riser Producer Kit**](https://github.com/GareBear99/Free-Riser-Producer-Kit) | 115+ risers and 63 downlifters - noise, synth, drum, FX, cinematic |
| [**Phonk Producer Toolkit**](https://github.com/GareBear99/Phonk_Producer_Toolkit) | Drift phonk starter kit - 808s, cowbells, drums, MIDI, templates |
| [**Free Future Bass Producer Kit**](https://github.com/GareBear99/Free-Future-Bass-Producer-Kit) | Loops, fills, drums, bass, synths, pads, and FX |

### Related audio projects
- [**VF-PlexLab**](https://github.com/GareBear99/VF-PlexLab) - VocalForge PersonaPlex Lab starter repo for a JUCE plugin + local backend + HTML tester around NVIDIA PersonaPlex.