Chords and Harmony

What else could this chord be?

Choose a chord in a stated key, optionally a melody note it must keep supporting, and which substitution families are permitted. This tool lists the original chord alongside every permitted substitution that still keeps that melody note supported, and drops anything that would lose it. No machine learning or hidden stylistic claims are involved.

Answer

Ready

Next decision: Progression Analyzer

Want to learn more? Chord Function, Cadence, and Substitution

Understand

Reharmonization means replacing a chord with a different one that still serves a similar harmonic role, without changing the melody note it needs to support. This tool builds only bounded, rule-named alternatives, filters out any option that would drop a declared melody note entirely, and shows the original chord alongside whatever survives that filter.

Worked examples

A G7 chord with a declared melody note of D (the fifth of G7, also present in its tritone substitute Db7's own tone set) keeps its tritone-substitution option, since both chords genuinely contain D. The same G7 with a declared melody note of D but the permitted family list empty returns only the original chord, with an explicit note that no substitution family was permitted.

Method and limitations

The tool classifies the original chord's harmonic function in the stated key, then asks the same locked substitution rule set Chord Substitution Finder uses for that function's bounded alternatives: shared-function swaps for tonic and predominant chords, a tritone substitution for dominant chords. Every candidate's own declared tones are then checked against the optional melody note; a candidate that does not contain it is dropped rather than shown with a caveat. This launch scope handles one chord slot at a time rather than a full multi-chord sequence, scores nothing beyond declared constraint coverage, and makes no claim of stylistic authenticity beyond the rule that generated each option.

Declaring a melody note is optional, and leaving it blank widens the result rather than narrowing it: every substitution the underlying rule set can generate is kept, since there is no note to filter against. Declaring one turns this into a genuine constraint problem, where a candidate that would otherwise be a valid shared-function or tritone substitution is dropped the moment it cannot also support that specific pitch, which is precisely why the same chord can return a different option count depending only on what melody note is stated for that slot.

Next decisions