Page actions
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.
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.jsonevidence-tranche6/tranche6-results.jsonBOUNDARY_HAZARD_CATALOG.json