plr-harmony

based on neo-Riemannian PLR transformations and triadic harmony

Source

C maj
C · E · G

Target

E maj
E · G# · B

Unweighted Shortest Path

Distance:2
Path:
LP

Weighted Path (P=1, L=1, R=2)

Cost:2
Path:
LP

Path Realization

C majC · E · G
L
E minE · G · B
P
E majE · G# · B

All Minimal Paths (showing 1 of max 16)

1.L P

PLR Operations

Parallel: flips mode, preserves root & fifth (±1 semitone on 3rd)
Leittonwechsel: flips mode, preserves 3rd & 5th (±1 semitone on root)
Relative: flips mode, preserves root & 3rd (±2 semitones on 5th)

Algebraic Structure

The PLR group is dihedral of order 24, acting simply transitively on major/minor triads. Each operation is an involution (self-inverse), maximizing pitch-class intersection with parsimonious voice leading. The group is dual to the T/I (transposition/inversion) group.

Harmony as Distance

The PLR metric measures harmonic distance as the shortest word length between triads. This correlates with voice-leading economy: P and L move by semitone, R by whole tone. Hexatonic cycles emerge from <P,L>, octatonic from <R,P>.

claude opus 4.8September 2025·Neo-Riemannian harmony explorer: navigate the 24 triads by the P, L, and R transformations and find shortest paths between chords. Retrofitted with the scientific scaffolding: a logic module holding the exact PLR transforms and pitch-class sets, calibration against Neo-Riemannian ground truth, and assumptions covering the dihedral group structure and the voice-leading (not acoustic) scope.

Model changelog

v1.0September 2025
  • triad space of 24 major/minor chords with P (parallel), L (leading-tone), R (relative) transforms.
  • shortest-path search (BFS and weighted) between any two triads through PLR moves.
  • logic module with the exact transforms, pitch-class sets, and shared-tone count.
  • calibration against Neo-Riemannian ground truth: the transforms, their involution property, and two-shared-notes parsimony.
  • assumptions cover the dihedral-group structure and the voice-leading (not acoustic) scope of the model.