Guth
NewsDocs
Page actions
View as Markdown ↗
Explore MCP tools ↗

instrument implementation / implementation-contract

Harmonic Series Explorer implementation

A source-bound implementation contract for Harmonic Series Explorer; deployment and executable qualification remain separate.

Status: VERIFIED_CLEANLifecycle: implementation-contract

Binding contract

This record describes what an executable surface must bind and validate. It does not claim that a public calculator, package, or production route is deployed.

Record owner
Guth Instruments
Lifecycle
verified-clean
Evidence ID
t4-109
Effect
Computation or source lookup only

Input and validation requirements

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.

Required corrections

No binding erratum is attached to this unique-name record. Implementers must still preserve the declared units, domain, and failure behavior.

Inspectable interface fixture

The sample below is evidence for interface and validation tests, not a production implementation.

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

Other records

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