Skip to content

Chapter 2 — Chords & Triads

A chord is a set of pitch classes sounded together — and like any set, its identity is the membership, not the ordering. This chapter builds chords by stacking thirds (the interval from Chapter 1), classifies them by their internal semitone spacing, and shows how a key's scale degrees generate a fixed palette of chords. These are exactly the objects MidiSketch's progression engine arranges.

Stacking thirds into a triad

Take a root, add the note a third above, add another third above that. Three notes, sounded together, become harmony.

Chord

A chord is two or more notes sounded simultaneously and heard as a single harmonic unit. Where a melody is a sequence of pitches over time, a chord is a set of pitches at one instant — the vertical dimension of music.

Triad

A triad is the basic three-note chord: a root with a third and a fifth stacked above it. It is the smallest "complete" chord and the default unit of pop harmony — almost everything else is a triad with notes added or rearranged.

Root / third / fifth

The root is the note a chord is named after and built from (degree 1 of the chord). The third sits two scale steps up and the fifth four steps up — the third and fifth above the root. Stacking root + third + fifth is the recipe for every triad.

TriadBuilding a C major triad
Take degree 1 (the root), skip to degree 3, skip to degree 5, then sound them together. C + E + G = the C major triad. Almost every chord you will meet is built by stacking thirds like this.
chordtriadRoot + third + fifth, then all three together: that is a chord.

In set terms, the C major triad is {0, 4, 7} as pitch classes (C, E, G measured in semitones from the root). Build the same {0, 4, 7} shape on any root and you get that root's major triad — another relative-coordinate pattern, just like scale degrees.

Quality: the color of a chord

Two chords can share a root yet feel opposite. The difference is the exact semitone spacing inside the stack.

Chord quality

Chord quality is the flavor of a triad — major, minor, or diminished — determined solely by the semitone gaps between root, third, and fifth. Major (4+3) is bright, minor (3+4) is sad, diminished (3+3) is tense. Same root, different gap pattern, different emotion.

Chord symbol

A chord symbol is the compact text name for a chord: C (C major), Cm (C minor), Cdim (C diminished). The letter is the root; the suffix encodes the quality. It is the human-readable serialization of the pitch-class set.

Chord qualityMajor, minor, diminished: same root, different color
C major (C-E-G) sounds bright. Lower the third by a semitone and C minor (C-E♭-G) sounds sad. Lower the fifth too and C diminished (C-E♭-G♭) sounds tense and unstable. Quality = the exact semitone spacing inside the stack.
majorminordiminishedMoving the middle/top notes by one semitone flips the emotional color.

The whole emotional palette of pop turns on moving one or two inner notes by a single semitone. As integers: major {0,4,7}, minor {0,3,7}, diminished {0,3,6}. Flipping bit positions, flipping the mood.

Diatonic chords: the key's palette

Apply the triad recipe to every degree of a scale and the key hands you a ready-made set of seven chords that all belong together.

Roman numeral (degree) notation

Roman numeral notation names a chord by the scale degree of its root: I is the triad on degree 1, V on degree 5. Uppercase means a major-quality chord, lowercase minor, and ° diminished. Like scale degrees, it is key-independent — I in C is the C chord, I in G is the G chord.

Diatonic chordsThe seven chords of C major
Build a triad on every degree of C major and you get the seven diatonic chords: C, Dm, Em, F, G, Am, Bdim. Uppercase Roman numerals mark major chords (I, IV, V), lowercase minor (ii, iii, vi), and ° marks diminished (vii°). Pop progressions pick from this palette.
degreediatonicStacking thirds on each scale degree yields the chord palette of the key.

These seven — I ii iii IV V vi vii° — are the diatonic chords of the key, the entire vocabulary most pop draws on. A chord progression is just an ordered choice from this palette (for example I–V–vi–IV), and MidiSketch's chordProgressionId selects from 22 such patterns. Because the notation is degree-based, one progression transposes to any key.

Inversion and voicing

Since a chord is a set, you can reorder its notes freely without changing which chord it is — only how it sits.

Inversion / voicing

An inversion reorders a chord's notes so a different member is the lowest (bass) note: C–E–G (root position), E–G–C (first inversion), G–C–E (second inversion) are all C major. The voicing is the specific vertical arrangement chosen. The set identity is invariant; the bass note and spacing change the feel and how smoothly chords connect.

InversionsOne chord, three voicings
C-E-G, E-G-C, and G-C-E are all "C major" — the chord is a set, not a sequence. Which note sits at the bottom (the voicing) changes the feel and how smoothly chords connect. MidiSketch picks voicings automatically via voice leading.
inversionvoicingReordering the same three notes keeps the chord identity but changes its bass.

This invariance is what lets a generator connect chords smoothly: by picking inversions whose notes are closest to the previous chord (voice leading), motion stays minimal. MidiSketch chooses voicings automatically, so you specify what chord, not how it is stacked.

Block chords vs. arpeggios

The same pitch-class set can be delivered all at once or spread across time, giving two different textures from one harmony.

Arpeggio

An arpeggio is a chord played one note at a time in sequence rather than struck together — the chord "rolled out" along the time axis. The harmony is unchanged; only the rhythmic texture differs. It is the same set, iterated instead of summed.

Block vs brokenThe same chord, blocked and broken
Play C-E-G together and you get a block chord; play the notes one after another and you get an arpeggio. Same harmony, different texture. MidiSketch's arpeggio track (arpeggioEnabled, arpeggioPattern) automates exactly this.
arpeggioEnabledAn arpeggio is just a chord played one note at a time.

A block chord is a parallel read of the set; an arpeggio is a serial one. MidiSketch's arpeggio track turns block chords into broken patterns automatically — arpeggioEnabled toggles it and arpeggioPattern (07: Up, Down, UpDown, Random, Pinwheel, PedalRoot, Alberti, BrokenChord) chooses the iteration order.

Common pitfall — the arpeggio track is opt-in

arpeggioEnabled defaults to false, even in arpeggio-oriented styles like SynthDriven. If you expect a broken-chord track and get none, set arpeggioEnabled: true explicitly — selecting a style alone will not turn it on.

MidiSketch mapping

ConceptConfig fieldRange / notes
Diatonic chord palette → progressionchordProgressionId021; picks an ordered sequence of degrees from the key's diatonic chords
Chord-quality extensions (7th, 9th, sus, tritone sub)chordExtSus, chordExt7th, chordExt9th, chordExtTritoneSub + probabilitiesflags + 0.01.0 (defaults 0.2 / 0.15 / 0.25 / 0.5) — see Harmony
Broken-chord texturearpeggioEnabled, arpeggioPatternbool; pattern 07

For the engine-side details behind these fields, see Harmony & Chord Progressions, the Preset catalog, and the JavaScript API.

Continue with Chapter 3 — Chord Progressions.