Neo-Riemannian harmony

Walk through major and minor triads by flipping one voice at a time. The Tonnetz shows the harmonic space; the pitch circle shows the current chord; the voice ribbon shows which notes stay and which move; the trace explains each P, L, or R transformation under the active walk mode. For function-driven sequences (Markov chains over diatonic functions, cadence templates, phrase memory), see Chord progressions.

Neo-Riemannian theory treats smooth voice leading as the grammar. Distant-looking chords can be neighbors when only one note moves by a semitone or whole tone.

Tonnetz

The harmonic lattice unfolds across the screen; the cursor pans to keep your current triad centered. Pitch classes repeat at multiple lattice positions; those repetitions are the same chord on the toroidal view.

Pitch labels
Wheel order

Voice ribbon

Walk controls

Tonal gravity

PLR decision trace

No cycle detected

Voice leading

Chord details

Current
C
Function lens
off
Common tones
Move cost

What to notice

P, L, and R are triangle flips

Parallel keeps the root and changes mode. Leading-tone and relative keep two common tones and move one voice to a neighboring pitch class.

Distance is voice-leading cost

The voice ribbon shows which two voices held and which one moved. The cost strip plots total semitone motion over time. Neo-Riemannian walks usually stay near one or two semitones even when the chord symbols look remote.

Cycles create endless modulation

Alternating P/L enters a hexatonic cycle; alternating P/R enters an octatonic region. The cycle indicator lights up provisionally after four matching steps and confirms after six.

Function is optional

The function lens can name each triad relative to a tonic, but it is off by default because the main story here is parsimonious motion, not cadence pressure.