Source: https://guthlabs.ai/docs/instruments/transposition-calculator/

instrument / verified-clean

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

**Evidence ID**: t6-012

**Ledger rows**: 1

No ledger note is attached.

## Review findings

The core chromatic pitch-class calculation is correct. The instrument should not claim fully correct note/chord transposition until it documents accepted note and chord syntax, key-mode handling, enharmonic spelling rules, octave behavior, and the exact meaning of preserving letter names. Honest labeling should distinguish pitch-class transposition from complete notation-aware chord transposition.

### Formula and scope findings

- The pitch-class formula newNote=(oldNote+semitoneShift) mod 12 is standard for chromatic transposition, but the phrase "preserving letter-naming rules" does not specify an exact note-spelling algorithm.

- Key-to-key transposition does not define how source and target key names, modes, and enharmonic spellings are converted to pitch classes; for example, C-sharp versus D-flat and B-sharp versus C can produce different output spellings.

- Chord handling is underspecified for chord qualities, extensions, slash chords, omitted tones, and whether spelling should follow strict interval-letter preservation or conventional chord spelling.

### Unit assumptions

- Note pitch classes use C=0, C-sharp/D-flat=1, D=2, D-sharp/E-flat=3, E=4, F=5, F-sharp/G-flat=6, G=7, G-sharp/A-flat=8, A=9, A-sharp/B-flat=10, B=11.

- semitoneShift is an integer number of equal-tempered semitones; negative values transpose downward and values outside -11 through 11 are reduced modulo 12.

- Key-to-key shifts are calculated as target-tonic pitch class minus source-tonic pitch class, modulo 12.

- Outputs below assume conventional diatonic spelling where practical, with chord spelling chosen for the target key; the specification must document this policy.

## Boundary hardening

### Recorded hazards

- A missing or non-integer semitone shift can make the modulo operation invalid or ambiguous.

- If note names are parsed without a defined accidental and enharmonic policy, outputs such as G-sharp versus A-flat cannot be verified uniquely.

- Key names without an explicitly supported mode and tonic spelling are ambiguous for output note naming.

- Pitch-class modulo 12 discards octave/register information; the specification should state whether octave numbers are preserved, shifted, or ignored.

- Chord symbols may contain quality, extensions, alterations, inversions, and slash bass notes that a simple note lookup table may not transpose correctly unless each component is parsed.

- A zero or full-octave shift is valid but must not be treated as missing input; division-by-zero is not applicable to this algorithm.

## 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": {
    "notes": [
      "C",
      "E",
      "G"
    ],
    "source_key": "C major",
    "target_key": "D major"
  },
  "expected_outputs": {
    "semitone_shift": 2,
    "transposed_notes": [
      "D",
      "F-sharp",
      "A"
    ]
  },
  "working": "C=0, E=4, G=7. Target D=2 and source C=0, so shift=2-0=2 semitones. C: (0+2) mod 12=2=D. E: (4+2) mod 12=6=F-sharp. G: (7+2) mod 12=9=A. Result: D-F-sharp-A."
}
````

## Related workflows

No source-defined multi-instrument workflow membership is recorded.

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