musics.name

The Tonnetz Explained: Euler's Lattice and Chord Moves

The Tonnetz is a lattice of fifths and major thirds whose triangles are triads. Leonhard Euler described it in 1739, and this is how to read it.

Pastel portrait of Leonhard Euler by Jakob Emanuel Handmann
Leonhard Euler, pastel by Jakob Emanuel Handmann, Kunstmuseum Basel. Public domain. Wikimedia Commons
On this page

The Tonnetz, German for “tone net”, is a lattice of pitches in which every note links to its neighbours by perfect fifths and major thirds. Each closed triangle on the lattice is a triad, and two triads that share an edge share two notes. Leonhard Euler published the first known description in 1739. Neo-Riemannian theory later used the same geometry to name three one-step moves between triads, called P, L and R.

Key takeaways

  • Euler’s Tentamen novae theoriae musicae (1739) contains the first known published description of the Tonnetz.
  • The lattice has two links, the perfect fifth and the major third, and its triangles are triads.
  • Two triads that share two notes are one move apart. P, L and R each keep two notes and move the third by a semitone or a tone.
  • Oettingen and Riemann defined the lattice in just intonation. Modern neo-Riemannian work assumes equal temperament, which wraps the plane into a torus.

Euler’s lattice of fifths and thirds

Euler’s figure arranges the notes in rows. The top note is F. The note a perfect fifth above F, which is C, sits one step down and to the left. The note a major third above F, which is A, sits one step down and to the right. The figure marks the two kinds of link with the numerals v and iii.

Euler's 1739 diagram of the lattice, with F at the top, C and A below it, and rows linked by fifths (v) and thirds (iii)
Euler’s Tonnetz from his Tentamen novae theoriae musicae (1739). Public domain. Source: Wikimedia Commons.

Each triangle is a chord. The triangle F, C, A has a perfect fifth from F to C, a major third from F to A, and a minor third from A to C. Its three notes make the F major triad.

Extend one row of the lattice and you get a chain of perfect fifths: F, C, G, D, A, E, B, F♯, and so on. Starting from F, the twelfth fifth lands on E♯. In just intonation the fifths are slightly larger than the tempered fifths of equal temperament, so that E♯ is not seven octaves above the F where the chain started. The lattice therefore never repeats a pitch. The reason is the Pythagorean comma, which Pythagorean tuning explains in full.

Why shared edges mean close chords

Two triangles that share an edge share two pitches. Only the third note has to move to get from one chord to the other, which makes the lattice a map of close harmony. Richard Cohn observed that two major or minor triads can be joined by stepwise motion in a single voice exactly when one of the three moves P, L or R links them. That is why the Tonnetz is often read as a picture of parsimonious voice leading, the principle that as few voices as possible should move. For the basics of that idea, see voice leading in four parts.

Take A minor as an example. Its parallel major, A major, shares two notes with it, A and E. Its relative major, C major, shares C and E. Its dominant, E major, shares only the note E. On the lattice the first two are neighbours, and the dominant sits farther off. The lattice measures shared notes, not functional role, which is the difference from the function theory described above.

Hugo Riemann and the nineteenth-century lattice

The lattice came back into use more than once. Ernst Naumann rediscovered it in 1858 in his Harmoniesystem in dualer Entwickelung, and Arthur von Oettingen spread it in an 1866 treatise. Oettingen and Hugo Riemann then used it to chart how chords modulate and how keys relate to one another.

Portrait of Hugo Riemann (1849–1919), German musicologist
Hugo Riemann (1849–1919). Credit: Benque & Kindermann, Hamburg. Public domain. Source: Wikimedia Commons.

In the 1880s Riemann proposed a system of transformations that relates triads directly to one another. His system rested on dualism, the idea that a minor triad is an “upside-down” major triad. Neo-Riemannian theory kept the transformations and set the dualist premises aside. David Lewin revived them in a 1984 article on Parsifal and in his 1987 book Generalized Musical Intervals and Transformations. Riemann’s separate function theory, which labels chords as tonic, subdominant and dominant, is covered in functional harmony.

The three moves: P, L and R

The three transformations each change one note of a triad. Each one is its own inverse, so applying it twice returns the starting triad.

MoveNameApplied to a major triadApplied to a minor triadC major becomes
Pparallelthird lowered a semitonethird raised a semitoneC minor
Rrelativefifth raised a toneroot lowered a toneA minor
Lleading-tone exchangeroot lowered a semitonefifth raised a semitoneE minor

Each move keeps one interval intact. P keeps the perfect fifth, R keeps the major third and L keeps the minor third. The kept interval is why only one note moves.

Chained together, the moves reach distant chords in a few steps. The example below takes C major to F minor in three moves: R, then L, then P. Play it and listen for the one note that moves at each step.

Illustrative: C major, A minor, F major, F minor: C4, E4 and G4 together, then A3, C4 and E4 together, then F3, A3 and C4 together, then F3, A flat3 and C4 together
Illustrative: C major, A minor, F major, F minor

The three steps are these. R moves G up to A, giving A minor. L moves E up to F, giving F major. P moves A down to A♭, giving F minor. C major and F minor share only the note C, yet three single-note moves connect them.

The cycle of major thirds

The lattice also has diagonals. Running up and to the left from C, the notes pass through A♭ and E, and that path divides the octave into three major thirds: C, A♭, E and back to C. On a strictly spelled lattice the third note is written F♭, though it sounds as E. Richard Cohn argued that the three major triads on this cycle cannot be described well with functional harmony, yet they move with smooth voice leading. Neo-Riemannian analysts often apply the theory to late Romantic chromaticism, which the article on romantic chromaticism covers through its expanding tonic.

Illustrative: C major, A-flat major, E major, C major: C4, E4 and G4 together, then A flat3, C4 and E flat4 together, then E4, G sharp4 and B4 together, then C4, E4 and G4 together
Illustrative: C major, A-flat major, E major, C major

Where the lattice misleads

The Tonnetz is a model, and it has two limits that matter in analysis.

The first is tuning. Oettingen and Riemann used just intonation, while neo-Riemannian theorists usually assume equal temperament and enharmonic equivalence, so that G♯ and A♭ are the same note. Under that assumption the plane folds into a torus, and the endless chain of fifths becomes a cycle. The enharmonic equivalence assumption is a choice, and it hides the difference between the two spellings.

The second is voice leading. The P, L and R moves are purely harmonic. They do not say how the individual voices move, and they can disagree with the smoothest voice leading. Take C major and F major. On the lattice, F major is two moves from C major and F minor is three. Chromatically the order reverses: F minor reaches C major in two semitones, while F major needs three. The lattice therefore cannot account for the efficiency of the IV–iv–I progression that was common in nineteenth-century harmony.

What to do with it

  • Name each triangle with the chord finder, then check its notes against the lattice you have drawn.
  • Play both examples on the virtual piano, listening for the single note that moves at each step.
  • Draw a patch of three rows around C. Mark the fifths as horizontal links and the major thirds as diagonal links, then shade the triads.
  • Use the circle of fifths tool to see one row of the lattice closed into a loop.

Questions

What is the Tonnetz in music theory?

The Tonnetz, German for tone net, is a lattice diagram in which each pitch links to its neighbours by perfect fifths and major thirds. Each triangle on the lattice is a triad, and triangles that share an edge share two pitches.

Who invented the Tonnetz?

Leonhard Euler published the first known description in his 1739 Tentamen novae theoriae musicae. Ernst Naumann rediscovered it in 1858, Arthur von Oettingen spread it in an 1866 treatise, and Hugo Riemann used it in the late nineteenth century.

What do P, L and R mean in neo-Riemannian theory?

P (parallel) moves a major triad to its minor form, so C major becomes C minor. R (relative) moves C major to A minor. L (leading-tone exchange) moves C major to E minor. Each move keeps two notes and changes the third by a semitone or a tone.

Is the Tonnetz the same as the circle of fifths?

No. The circle of fifths is one row of the lattice, closed into a loop in equal temperament. The Tonnetz adds links by major thirds, so it also shows which chords share notes.

Why do neighbouring triads on the Tonnetz differ by only one note?

Two triads that share an edge contain the same two pitches, so only the third pitch has to move. That is why the lattice is used to show close harmonic relationships and smooth voice leading.

About this article

By Yunus Emre Vurgun, who is responsible for everything published here. Pitches, tables and examples can be checked against the sources named in the text and played in the browser. Corrections go through contact and are recorded in the article's updated date.

Cite as: Yunus Emre Vurgun, “The Tonnetz Explained: Euler's Lattice and Chord Moves”, musics.name, 18 October 2026. https://musics.name/articles/tonnetz-explained/

Markdown · JSON

Keep reading

All articles

Tuning & Temperament

Pythagorean Tuning: How Stacked Pure Fifths Build a Scale

Pythagorean tuning builds every interval from pure 3:2 fifths. Here is the seven-note scale it produces, its whole tones and semitones in cents, and the wolf fifth it leaves behind.

Intermediate7 min

Featured releases

All releases

Type a chord symbol or a scale name and go straight to it.

Go to
↑ ↓ move   ↵ openesc close