Source: https://guthlabs.ai/docs/instruments/metronome-panel/mechanism/

instrument mechanism / verified-clean

# Metronome Panel mechanism

The inspectable method record for Metronome Panel, kept separate from implementation and qualification.

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

## Model scope

The numerical interval formula passes the stated unit interpretation, but the instrument needs explicit constraints and semantics before it can be approved. In particular, define subdivision as clicks per beat, define the beat unit for every time signature, specify accent-pattern scope and validation, document the tap-adjustment algorithm, and provide an honest label describing timing jitter and platform-dependent background behavior.

- The interval formula 60000/BPM/subdivision is correct in milliseconds only when BPM is beats per minute and subdivision means a positive number of equally spaced clicks per beat; this definition is not stated explicitly.

- Time signature does not affect the interval formula, but it is needed to determine bar length and accent placement. The beat unit for compound signatures such as 6/8 is unspecified.

- Accent-pattern semantics are unspecified: the pattern could apply per beat, per subdivision, or per bar, and its required length is undefined.

- The tap-adjustable BPM behavior has no algorithm specified, including tap averaging, minimum tap count, timeout, smoothing, or outlier rejection.

## Units and conventions

- BPM is beats per minute.

- The constant 60000 is milliseconds per minute, so click intervals are in milliseconds.

- subdivision is a positive integer giving the number of clicks per notated beat.

- For the test vectors, event time 0 is the first click and later event times are n multiplied by the interval.

- For explicit test-vector accent patterns, 1 means accented and 0 means unaccented; patterns are specified per click unless otherwise noted.

- Audio and haptic scheduling may have platform latency and jitter even when the mathematical schedule is exact.

## Inspectable vector

One of 4 source-bound review vectors:

````
{
  "inputs": {
    "BPM": 120,
    "time_signature": "4/4",
    "subdivision": 1,
    "accent_pattern": [
      1,
      0,
      0,
      0
    ],
    "accent_pattern_scope": "one bar, one entry per click",
    "bar_count": 1
  },
  "expected_outputs": {
    "click_interval_ms": 500,
    "click_times_ms": [
      0,
      500,
      1000,
      1500
    ],
    "accented_click_indices": [
      0
    ]
  },
  "working": "BPM = 120 beats/minute. One subdivision gives 1 click/beat. Interval = 60000 / 120 / 1 = 500 ms. A 4/4 bar has 4 beats, so click times are 0, 0+500 = 500, 500+500 = 1000, and 1000+500 = 1500 ms. The accent pattern [1,0,0,0] accents only index 0."
}
````

## Failure boundary

**BREAK_CLAIMED** · SELF_FLAGGED

BPM = 0 produces an undefined click interval unless the input is explicitly rejected. A separate convention ambiguity can also produce 250 ms versus 1000 ms for the same displayed settings if subdivision is interpreted per beat versus per bar.

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/metronome-panel/>)[03**Implementation**](<https://guthlabs.ai/docs/instruments/metronome-panel/implementation/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/metronome-panel/qualification/>)

## 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`
