Source: https://guthlabs.ai/docs/instruments/metronome-click-track-export-tempo-map/

instrument / verified-clean

# Metronome Click Track Export (Tempo Map)

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

Status: **VERIFIED_CLEAN**Lifecycle: **verified-clean**

## Inspectable records

[01**Overview**Purpose and lifecycle](<https://guthlabs.ai/docs/instruments/metronome-click-track-export-tempo-map/>)[02**Mechanism**Method and assumptions](<https://guthlabs.ai/docs/instruments/metronome-click-track-export-tempo-map/mechanism/>)[03**Implementation**Binding and validation](<https://guthlabs.ai/docs/instruments/metronome-click-track-export-tempo-map/implementation/>)[04**Qualification**Evidence and errata](<https://guthlabs.ai/docs/instruments/metronome-click-track-export-tempo-map/qualification/>)

## Ledger state

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

**Area**: Audio, Music, Photography & Color

**Tranche**: tranche-6

**Evidence ID**: t6-083

**Ledger rows**: 1

No ledger note is attached.

## Review findings

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.

### Formula and scope findings

- 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.

### Unit assumptions

- 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.

## Boundary hardening

**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.

## 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": {
    "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."
}
````

## Related workflows

No source-defined multi-instrument workflow membership is recorded.

## 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-tranche6/tranche6-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
