Skip to content

Under the hood

This section explains how CueRithm gets from an audio file to a key, a tempo, an energy rating and a set of cues, and how it protects your files while doing so. Everything here is derived from the source code and the project's own research notes. Where the project has not verified something, the page says so.

The short version

  • One decoder (a bundled, LGPL-licensed FFmpeg 9.0.2) turns every supported format into the same 44.1 kHz stereo float samples. Analysis, the waveform, tag verification and playback all share that one timeline.
  • Key comes from a small neural network (OpenKeyScan3, MIT) running on a constant-Q spectrum of the whole track.
  • Tempo and the first beat come from a signal-processing detector with many explicit correction rules, producing one constant BPM and one anchor.
  • Energy is one number from 1 to 10 from a fixed acoustic formula.
  • Cues come from a section-by-section energy analysis of the track.
  • Results go into a SQLite library. Your audio is never moved. Tag writes are staged, verified, journaled and atomic.
Page Topic
The analysis pipeline From file to ready track, step by step
Decoding and the media runtime Bundled FFmpeg, sealing and diagnostics
Key detection CQT and OpenKeyScan3
Tempo and beatgrid Tempo voting, the anchor and the constant grid
Track energy The acoustic formula
The cue engine Drops, breakdowns and the last beat
Waveforms Three bands and the colour palettes
The library database SQLite, schema, caches and recovery
Safe tag writing Staging, verification, atomic swap
Catalog matching Normalising, scoring and thresholds
Cleanup engine A pure function over metadata
Smart playlist engine Rules, evaluation and refresh
How accurate is it? What the published numbers do and do not mean

For provenance, licences and credits see About.