Be among the first to experience The TMA Device

Join the TMA waiting list and access exclusive early adopter deals and offers.

TMA Key Offset Explained

📗 Intermediate 6/10
📅 July 22, 2026 ⏱️ 2 min read

The keyOffset is a temporary, per-chord transposition that shifts only the root of the current chord, leaving the overall key context unchanged.

Center value: 20 (no shift)
Values below 20: shift down (e.g., 19 = -1 semitone)
Values above 20: shift up (e.g., 21 = +1 semitone)

Music theory is just that — a theory. No set rules really exist set in stone.
1 / 4

The Problem

In a static musical context (fixed root key, scale family, and mode), how do you play a chord whose root is not in the scale without changing the underlying key?

Traditional music theory would require a full modulation, a new scribble, or a convoluted explanation. This is impractical for real-time exploration and playback.

Music theory is just that — a theory. No set rules really exist set in stone.
1 / 4

The Solution: keyOffset

The keyOffset is a temporary, per-chord transposition that shifts only the root of the current chord, leaving the overall key context unchanged.

Center value: 20 (no shift)
Values below 20: shift down (e.g., 19 = -1 semitone)
Values above 20: shift up (e.g., 21 = +1 semitone)

Music theory is just that — a theory. No set rules really exist set in stone.
1 / 4

How It Works

  • Root values (rootKey, rootFamily, rootMode) → NEVER CHANGE
    These define the fixed harmonic home (e.g., C major)
  • Current values (currentKey, currentMode, currentFamily) → CHANGE to reflect the chord's position
    These rotate the scale to show the current scale degree
  • keyOffset → applied only to the chord's root
    Shifts the pitch temporarily without changing the key context

Music theory is just that — a theory. No set rules really exist set in stone.
1 / 4

Example

In C major (rootKey = 0, rootSemitones = [0,2,4,5,7,9,11]):

Scale Degree Diatonic Key Actual Key Semitone Shift keyOffset
V (dominant)G (7)G (7)020
V (dominant)G (7)G# (8)+121
IV (subdominant)F (5)F# (6)+121
VI (submediant)A (9)Ab (8)-119

Music theory is just that — a theory. No set rules really exist set in stone.
1 / 4

Calculation Formula

const diatonicKey = (rootKey + rootSemitones[interval]) % 12;

let semitoneShift = (actualKey - diatonicKey + 12) % 12;

if (semitoneShift > 6) semitoneShift -= 12;

const keyOffset = 20 + semitoneShift;

Music theory is just that — a theory. No set rules really exist set in stone.
1 / 4

Key Principles

  • Root values never change — unless performing a full key change (handled by the user, not the algorithm)
  • keyOffset is per-chord only — resets to 20 after each chord
  • Roman numerals remain correct — because the root scale never changes
  • Full modulations require a new scribble — the keyOffset is for temporary shifts only

Music theory is just that — a theory. No set rules really exist set in stone.
1 / 4

Why This Matters

  • Allows modal interchange, chromatic mediants, and borrowed chords without changing scribbles
  • Keeps the scribble system simple (single key context)
  • Maintains correct roman numeral display relative to home key
  • Enables real-time harmonic exploration without performance interruption

Music theory is just that — a theory. No set rules really exist set in stone.
1 / 4

The Philosophy

"Music theory is just that — a theory. No set rules really exist set in stone. The keyOffset allows the TMA to modulate and shift without having to mess around with new scribbles and key changes for subtle jazzy stuff."

— MONK TMA Designer

Music theory is just that — a theory. No set rules really exist set in stone.
1 / 4