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

instrument / verified-clean

# Harmonic Series Explorer

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/harmonic-series-explorer/>)[02**Mechanism**Method and assumptions](<https://guthlabs.ai/docs/instruments/harmonic-series-explorer/mechanism/>)[03**Implementation**Binding and validation](<https://guthlabs.ai/docs/instruments/harmonic-series-explorer/implementation/>)[04**Qualification**Evidence and errata](<https://guthlabs.ai/docs/instruments/harmonic-series-explorer/qualification/>)

## Ledger state

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

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

**Tranche**: tranche-4

**Evidence ID**: t4-109

**Ledger rows**: 1

No ledger note is attached.

## Review findings

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.

### Formula and scope findings

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

### Unit assumptions

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

## Boundary hardening

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

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

## Related workflows

[Music Timing & Pitch Kitovertones](<https://guthlabs.ai/docs/instrument-workflows/music-timing/>)

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

- `BOUNDARY_HAZARD_CATALOG.json`
