Source: https://guthlabs.ai/docs/instruments/cents-pitch-deviation-calculator/

instrument / verified-clean

# Cents / Pitch Deviation Calculator

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

**Ledger rows**: 1

No ledger note is attached.

## Review findings

Formula is correct conditional on positive, same-unit frequencies and a signed-output convention. Verdict remains NEEDS_REVIEW because the spec does not define whether deviation is signed or absolute, does not specify frequency units, and does not state the positive-input constraint.

### Formula and scope findings

- The formula is standard for signed cents when f1 is the measured frequency and f2 is the reference frequency.

- The spec does not state whether the output should be signed or an absolute deviation; reversing f1 and f2 changes the sign.

- The valid input domain is unspecified: both frequencies must be strictly positive and expressed in compatible units.

### Unit assumptions

- The frequency ratio must be dimensionless, so f1 and f2 must use the same unit before division.

- The test vectors use Hz unless a unit is explicitly provided; 1 kHz must be converted to 1000 Hz before applying the formula.

- Cents are a dimensionless logarithmic interval; 100 cents equals one equal-tempered semitone and 1200 cents equals one octave.

## Boundary hardening

**BREAK_CLAIMED** · SELF_FLAGGED

The formula produces undefined results for zero frequencies, but the specification does not state positive-frequency validation or rejection behavior. It also leaves the sign/order convention to the interface beyond the formula notation, creating a plausible +1200 versus -1200 interpretation.

## 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": {
    "f1": 440,
    "f2": 440,
    "unit": "Hz"
  },
  "expected_outputs": {
    "cents": 0
  },
  "working": "f1/f2 = 440/440 = 1. log2(1) = 0. cents = 1200 × 0 = 0 cents."
}
````

## Related workflows

[Music Timing & Pitch Kitfine pitch](<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`
