How the tool works: the two ways it builds a note-set, how each one is calculated, and how to read what it shows you.
The tool gives you a fixed set of piano notes to compose with, shown on the 88 keys. You build that set in one of two ways, chosen with the Source menu:
C4, E♭4, F4. The tool finds a low note whose overtones contain them, and offers its other overtones as extra notes.Either way, the coloured keys are your palette. Anything outside them lies outside the system for that setting.
Magnus Lindberg, the Finnish composer, built his harmony from two traditions that rarely meet:
The method aims at two things at once:
The twelve notes pair off around a central axis, each with a partner the same distance away on the other side. Nothing pulls towards a home key, so the chord stands as a balanced, self-contained object.
The same notes are also heard as overtones of one very low virtual fundamental: a bass note that is implied rather than played, often too low to hear. This gives the abstract symmetry a physical basis. The notes support each other the way the harmonics of one vibrating string do.
The twelve structural notes form the foreground, which carries the musical argument. The added overtones form a background: softer, sustained notes that fill in the spectrum of the implied bass. Every foreground chord comes with its own resonant shadow.
A hexachord is a set of six pitch classes. Its prime form is the standard way of writing it as numbers, and its set-class label (such as 6-7) is its catalogue number. The tool offers six hexachords, all inversionally symmetrical: turning one upside down gives the same shape back.
The worked example below uses set-class 6-7 (012678) with base note B1. This is the example in the source paper. You make two choices, and the tool computes everything else.
For 6-7 the numbers are {0, 1, 2, 6, 7, 8}. With 0 = C, that is {C, C♯, D, F♯, G, G♯}: two clusters of three adjacent notes (trichords), a tritone apart. This set is called H₁, the upper hexachord.
The tool takes the six pitch classes that H₁ leaves out. For 6-7 that is {E♭, E, F, A, B♭, B}, called H₂, the lower hexachord. H₁ and H₂ together hold all twelve pitch classes exactly once, a full aggregate.
For 6-7, H₂ is H₁ moved up three semitones. It is also H₁ turned upside down: every H₁ note pairs with an H₂ note so that the two numbers add up to 11 (C + B, C♯ + B♭, and so on). The mirror axis lies between B♭ and B. A hexachord whose complement has the same shape is called self-complementary.
H₂ goes in the lower zone and H₁ in the upper zone, about two and a half octaves each. Each hexachord holds two chromatic trichords, so stacking them in order would make dense clusters. The fix is to alternate: never place two notes of the same trichord next to each other.
For 6-7 this gives B1 – F2 – B♭2 – E3 – A3 – E♭4 in H₂ and G♯4 – D5 – G5 – C♯6 – F♯6 – C7 in H₁. The gaps alternate exactly between a tritone (6 semitones) and a perfect fourth (5), including the step from one zone to the next. The full chord spans 61 semitones, about five octaves. This twelve-note chord is the PSC (Primary Sonority Chord).
The base note you type moves this whole pattern up or down. 6-7 uses the paper's own hand-made spacing. The other five hexachords have no published spacing. For those, the tool tries every octave placement and keeps the most even one, aiming for gaps of 5–6 semitones and avoiding gaps under 4 or over 9. It also picks which transposition of the hexachord to use, so that your base note falls in H₂.
The tool sets the virtual fundamental 18 semitones (an octave and a tritone) below your base note. For B1 that is F0, about 21.83 Hz, below the range of human pitch hearing. Change the base note and the fundamental moves with it.
The tool lists the partials of the fundamental (2×, 3×, 4×… its frequency) and rounds each one to the nearest piano key. Most land close to a key; some fall between two. The gap is measured in cents, hundredths of a semitone:
It keeps only partials in the middle of the chord: from 20 semitones above its lowest note to 20 semitones below its highest. For 6-7 on B1 that is G3 to E5. It also drops any partial that lands on a key the PSC already uses. What remains are the added partials.
The PSC plus the added partials is your palette. For 6-7 on B1 the tool gives 27 notes: the 12 PSC notes and 15 partials (G3, B3, C4, C♯4, E4, F4, F♯4, G4, A4, B♭4, B4, C5, C♯5, E♭5, E5). Other settings give other totals, because the middle band depends on how wide the chord is.
Set Source to My own notes and type the notes you want, each with its octave, separated by commas or spaces. Use ♯/♭ or #/b, as in C4, Eb4, F4 or c#4 f#4. Here there is no hexachord, complement or twelve-note spacing: the tool works only from the notes you give it.
The tool tries every piano-tuned note from your lowest note down to C0 as a possible fundamental. A candidate passes if each of your notes lies within 35 cents of one of its partials, up to the Highest partial you set (32 by default). The 35-cent limit lets in the 7th partial, which is 31 cents flat, but not the 11th, which is 49 cents flat.
Among the candidates that pass, the tool starts with the highest. A higher fundamental means smaller partial numbers, and so simpler ratios between your notes. For C4, E♭4, F4 it picks F1 (43.65 Hz). Your notes become its partials 6, 7 and 8, the ratio 6 : 7 : 8. C4 is 2 cents from the partial, E♭4 is 31 cents and F4 is exact. A C major triad, C4, E4, G4, gives C2 with partials 4, 5 and 6.
Your notes, plus every other partial of the fundamental (up to the Highest partial) that lands on the 88 keys, make the palette. For C4, E♭4, F4 that is 28 notes, from F1 up to F6. Raise the Highest partial for more notes higher up, or lower it to keep the set sparse.
The details panel lists every fundamental that passed. Click one to switch to it. A lower fundamental gives more partials, packed closer together. F0, for example, makes your notes partials 12, 14 and 16. If no fundamental passes, the tool says so. That is useful in itself: it means your notes cannot be heard as overtones of one bass note at this setting.
p9, is the partial number.In hexachord mode, two tables appear below the keyboard:
In own-notes mode, three tables appear: the candidate fundamentals (click one to use it), your notes as partials with how far each sits from its partial, and the other partials of the fundamental.
Use the coloured keys as your raw material for melody and harmony. In hexachord mode, treat H₁ and H₂ as the structural argument. Treat the partials as quieter, sustained support that does not compete with the foreground. In own-notes mode your notes play the foreground role.
The Spectral Analyzer also starts from notes you choose, clicked on a keyboard. It does two things:
The reverse search is close to Source 2 here, with one difference. The Analyzer picks the fundamental with the smallest average error, which is often much lower and turns your notes into high partials. Source 2 starts from the highest fundamental that fits, so the ratios are as simple as possible, and it lets you switch between candidates.
A classic example for either tool: the dominant seventh C3, E3, G3, B♭3 is partials 4, 5, 6 and 7 of C1, which is how a low brass C sounds.