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

instrument mechanism / verified-clean

Metronome Click Track Export (Tempo Map) mechanism

The inspectable method record for Metronome Click Track Export (Tempo Map), kept separate from implementation and qualification.

Status: VERIFIED_CLEANLifecycle: verified-clean

Model scope

The standard timing relationship is valid, but the instrument cannot be verified as fully defined with only BPM and bar-count segments. Add beats_per_bar/time_signature, BPM beat-unit semantics, initial time, boundary-inclusion rules, validation constraints, timestamp precision, and an explicit export schema. The empty honest_label is a concern: the UI should state that this generates beat-grid timestamps and tempo-map data, not synchronized audio or guaranteed DAW/video compatibility without a selected timebase and export format.

  • The core duration formula is correct only when BPM means beats per minute of the stated beat unit: segment_duration_seconds=(60/BPM)*beats_in_segment.
  • The inputs specify bar counts but omit beats per bar/time signature, so beats_in_segment cannot be determined from the stated inputs alone.
  • The formula gives cumulative segment durations but does not explicitly define how to expand them into individual click timestamps, whether the initial timestamp is included, or whether a tempo-change boundary is emitted once or twice.
  • The export tempo-map format and whether tempo changes occur exactly at the first beat of the next segment are unspecified.

Units and conventions

  • BPM is quarter-note beats per minute unless a time signature and beat unit are explicitly supplied.
  • Time is measured in seconds and the initial click occurs at t=0.
  • For these vectors, each segment has a stated beats_per_bar value; beats_in_segment=bar_count*beats_per_bar.
  • A click is emitted at every beat, including the first beat at t=0, with no duplicate click at a segment boundary.
  • Tempo changes take effect at the first beat of the following segment.
  • The click grid uses the same beat unit as the BPM value; compound-meter conversion is not inferred automatically.

Inspectable vector

One of 4 source-bound review vectors:

{
  "inputs": {
    "segments": [
      {
        "bpm": 120,
        "bar_count": 2
      }
    ],
    "beats_per_bar": 4,
    "initial_time_seconds": 0
  },
  "expected_outputs": {
    "timestamps_seconds": [
      0,
      0.5,
      1,
      1.5,
      2,
      2.5,
      3,
      3.5
    ],
    "total_duration_seconds": 4,
    "tempo_map_events": [
      {
        "time_seconds": 0,
        "bpm": 120
      }
    ]
  },
  "working": "One beat lasts 60/120=0.5 seconds. Each segment contains 2*4=8 beats. Segment duration=(60/120)*8=0.5*8=4 seconds. Starting at t=0, the eight clicks are t=0, 0+0.5=0.5, 1.0, 1.5, 2.0, 2.5, 3.0, and 3.5 seconds. The next segment boundary and total duration are t=4.0 seconds."
}

Failure boundary

BREAK_CLAIMED · SELF_FLAGGED

The specification leaves beats-per-bar/time-signature semantics unspecified, creating different valid timestamp lists, and BPM = 0 causes an undefined division that must be rejected. The tempo-map boundary also requires explicit segment-switch semantics.

Other records

Sources and evidence

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

  • VERIFIED_LEDGER.json
  • evidence-tranche6/tranche6-results.json
  • BOUNDARY_HAZARD_CATALOG.json