Source: https://guthlabs.ai/docs/instruments/harmonic-series-explorer/mechanism/

instrument mechanism / verified-clean

# Harmonic Series Explorer mechanism

The inspectable method record for Harmonic Series Explorer, kept separate from implementation and qualification.

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

## Model scope

The frequency formula itself is standard and passes the arithmetic checks under the stated assumptions. The instrument cannot receive a final PASS until it specifies the note-to-frequency formula, nearest-note/cents formula, A4 tuning reference, cents sign convention, units, and whether the output starts at n=1 or n=2.

- fn=f1*n is correct for the nth harmonic when n is a positive integer and f1 is a frequency in Hz, but the phrase 'above a fundamental' is ambiguous about whether n=1 (the fundamental) is included or only n>=2 is displayed.

- No formula is provided for converting a fundamental note name into frequency.

- No formula is provided for selecting the nearest 12-TET note or calculating cents error. A standard definition would use MIDI note m=69+12*log2(f/440), nearest integer MIDI note k=round(m), reference frequency fk=440*2^((k-69)/12), and signed cents error=1200*log2(f/fk).

- The harmonic-count convention is unspecified: 'number of harmonics' could mean output n=1 through N or N overtones n=2 through N+1.

- The empty honest_label is a concern because note-name and cents results require explicit 12-TET and tuning-reference assumptions.

## Units and conventions

- All computed frequencies are in Hz unless an input explicitly states another unit.

- The tuning reference is A4=440 Hz and equal temperament is 12-TET.

- Cents error is signed: positive means sharp and negative means flat relative to the nearest 12-TET note.

- A note input such as C4 is converted using f=440*2^((MIDI-69)/12).

- For these test vectors, 'number of harmonics' means N outputs with n=1,2,...,N, including the fundamental.

- Harmonic numbers are positive integers.

## Inspectable vector

One of 4 source-bound review vectors:

````
{
  "inputs": {
    "fundamental": 440,
    "fundamental_unit": "Hz",
    "number_of_harmonics": 3
  },
  "expected_outputs": {
    "harmonics": [
      {
        "n": 1,
        "frequency_hz": 440,
        "nearest_note": "A4",
        "cents_error": 0
      },
      {
        "n": 2,
        "frequency_hz": 880,
        "nearest_note": "A5",
        "cents_error": 0
      },
      {
        "n": 3,
        "frequency_hz": 1320,
        "nearest_note": "E6",
        "cents_error": 1.96
      }
    ]
  },
  "working": "n=1: f1=440*1=440 Hz. 440 Hz is A4, so cents=1200*log2(440/440)=0. n=2: f2=440*2=880 Hz. 880 Hz is A5, so cents=0. n=3: f3=440*3=1320 Hz. E6=440*2^((76-69)/12)=1318.510 Hz. Cents=1200*log2(1320/1318.510)=1200*log2(1.0011299)=+1.96 cents."
}
````

## Failure boundary

**BREAK_CLAIMED** · SELF_FLAGGED

The specification does not state validation for a strictly positive fundamental frequency, so zero or negative inputs can reach logarithmic note conversion and produce undefined results. It also does not disambiguate whether the harmonic count includes the fundamental.

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/harmonic-series-explorer/>)[03**Implementation**](<https://guthlabs.ai/docs/instruments/harmonic-series-explorer/implementation/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/harmonic-series-explorer/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-tranche4/tranche4-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
