Reading the report
One report, seven blocks. The numbers below are from a real capture of the Around-the-World PARTY scene, four bars, so you can see what a mix looks like — not a bass alone.
level and loudness
"level": { "peakDb": -0.6, "rmsDb": -12.5, "crestDb": 11.9 },
"loudness": { "integratedLufs": -11.8, "momentaryMaxLufs": -8.2, "plrDb": 11.2 }
- crestDb = peak - RMS: density. Professional 808 loops sit at 6–9 dB; a full mix with hats and a plate is looser. 12+ on a bass alone means the limiter is only holding the ceiling and the RMS never arrived — a clipper before the master is what closes that gap.
- integratedLufs is ITU-R BS.1770 (K-weighted, gated). plrDb is peak-to-loudness; the pros' 808 loops read 8–10.
spectrum
"bandsDb": { "sub": -16.3, "fund": -0.5, "harm": -14.2, "body": -19.8, "mid": -15.8, "hi": -24.9 },
"centroidHz": 124, "slopeDbPerOct": -7.4, "strongestLowBinHz": 62.3
- bandsDb is energy share per band relative to the whole: sub 20–60 · fund 60–120 · harm 120–250 · body 250–500 · mid 500–2k · hi 2k+. The band nearest 0 dB carries the take. Here the bass plays B1 (62 Hz), so fund carries; at B0 it was sub.
- strongestLowBinHz (30–130 Hz): where the root sits. The one number that tells you which octave your bass line is actually in.
- slopeDbPerOct: tilt. A trap master reads -6 to -8; flatter is bright, steeper is dull.
stereo
"stereo": [ { "band": "sub", "correlation": 1, "sideToMidDb": -49.6 }, … { "band": "body", "correlation": 0.53, "sideToMidDb": -5.1 } ]
Per band: L/R correlation (+1 mono, 0 unrelated, -1 cancelling) and side/mid in dB. Below 120 Hz you want dead mono (pros: -80 dB and below; anything under -30 passes). Width belongs to the bands the ear places — body and up — and even there a correlation below +0.3 folds badly on a phone. Every lead, pluck and bell in the demo carries a center control for exactly this number.
onsets
{ "timeSec": 1.81, "levelDb": -8.7, "hfRelDb": -29.1, "clickScoreDb": 27.5, "isClick": true }
Every detected attack, with hfRelDb (energy above 4 kHz relative to the onset — a hat reads -6, a bass note -50) and a clickScoreDb (> 8 dB flags isClick). Read it with hfRelDb: a snare transient is sharp by nature and scores high; a bass note scoring 15+ is a real click.
steps
"steps": { "count": 3, "top": [ { "timeSec": 3.6, "jumpRatio": 0.27 } ] }
Single-sample jumps, as a fraction of the take's peak. This is the detector for the things the ear calls a crackle: a gain that opens without a ramp, a runtime zero-block, a sample that restarts mid-tail or ends without reaching zero. On a bass it is exact — the 808 alone reads count: 0 when clean. On noise it is meaningless: a hat or a snare jumps 30–70 % of its peak from sample to sample because that is what noise is. Solo the suspect first.
tonality
"tonality": { "flatness": 0.02, "peakBinShare": 0.12, "peakBinHz": 562, "verdict": "tonal" }
The alarm-clock detector. peakBinShare is the share of energy in the single strongest FFT bin: a hat, clap or snare must read "noise" with a share <= 0.03; a synthetic "hat" that is really a 7 kHz line reads "tonal" at ~0.1 and sounds like an alarm clock on eighths. A bass or a mix is tonal by nature — the verdict matters for one-shots.
The verdicts
With reference: "trap-808" every window comes back as
{ "metric": "spectrum.bandsDb.sub", "question": "energy 20–60 Hz — is the fundamental carrying the take?", "lo": -1.8, "hi": -0.4, "measured": -16.3, "verdict": "below" }
The question is the point: the window is an answer to it, and below on the sub band is not a failure when your bass plays an octave up on purpose.
What the report does NOT know
- It measures what reached the master — after every insert, the master rack, the volume and the softclip. To measure one instrument, solo its track (
mixer.tracks.set { track_id, soloed: true }) and capture again. - Steps and clicks on noise material are not evidence (above). A kit that "clicks" is measured voice by voice, or by ear.
- A reference is one genre's 808 alone. Other references will come; until then, quote the window's provenance, not just the verdict.