Guth
NewsDocs
Page actions
View as Markdown ↗
Explore MCP tools ↗

instrument / verified-clean

Beat/Measure Duration & Song Length Estimator

The current ledger marks this instrument verified clean within the source-bound verification corpus.

Status: VERIFIED_CLEANLifecycle: verified-clean

Inspectable records

Ledger state

The current ledger marks this instrument verified clean within the source-bound verification corpus.

Area
Audio, Music, Photography & Color
Tranche
tranche-4
Evidence ID
t4-145
Ledger rows
1

No ledger note is attached.

Review findings

The duration arithmetic is standard under the stated unit assumptions, but the instrument cannot be verified unambiguously until the BPM beat unit, time-signature-to-beatsPerBar mapping, reverse formula, and whole-bar policy are specified. The empty honest_label is a concern: the label should disclose that results assume constant tempo, a fixed meter, and a defined BPM beat unit.

Formula and scope findings

  • The duration formula is correct only when BPM means the number of beats represented by beatsPerBar and the tempo is constant: duration_seconds = bars × beatsPerBar × 60/BPM.
  • The claimed reverse operation has no formula in the specification. It should explicitly define bars = targetDurationSeconds × BPM / (beatsPerBar × 60).
  • The specification does not define how BPM relates to the time signature. In compound meters such as 6/8, BPM may refer to eighth notes or dotted-quarter beats, producing different results.
  • The specification does not define whether bars must be whole numbers when calculating bars needed for a target duration.

Unit assumptions

  • BPM is beats per minute for the beat counted by beatsPerBar.
  • 60/BPM converts one beat into seconds.
  • bars is dimensionless and beatsPerBar is beats per bar.
  • target duration used by the reverse calculation is in seconds; minutes must first be converted by multiplying by 60.
  • For a 6/8 example using beatsPerBar = 6, BPM is explicitly treated as eighth-note BPM, not dotted-quarter BPM.

Boundary hardening

BREAK_CLAIMED · SELF_FLAGGED

BPM = 0 makes the duration formula undefined because it divides by zero; the instrument must reject that input. The 6/8 probe also exposes a convention hazard because treating the numerator as beatsPerBar differs from conventional compound-meter grouping.

Errata and corrections

No applied erratum is attached to this unique-name record.

Inspectable example

4 review vectors are recorded. One source-bound sample is shown below.

{
  "inputs": {
    "mode": "duration",
    "BPM": 120,
    "time_signature": "4/4",
    "beatsPerBar": 4,
    "bar_count": 16
  },
  "expected_outputs": {
    "duration_seconds": 32,
    "duration_minutes": 0.5333333333
  },
  "working": "Beat duration = 60/120 = 0.5 seconds. Beats in song = 16 × 4 = 64 beats. Duration = 64 × 0.5 = 32 seconds. Minutes = 32/60 = 0.5333333333 minutes."
}

Related workflows

Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

  • VERIFIED_LEDGER.json · VERIFIED_CLEAN
  • evidence-tranche4/tranche4-results.json
  • BOUNDARY_HAZARD_CATALOG.json