0 %

Preplan

Harmonic progressions

Preplan is a three-tool sketchpad for everything that happens before you place cells in the score. Idea boards capture concepts as free-form visual notes, polymetric loops lay down the rhythmic architecture, and harmonic progressions sketch pitch content as a sequence of scale circles. Each tool stands on its own, and every one can send its output into the Compose view when the sketch feels right.

Open Preplan with the P tab in the top navigation, or press 1 on the keyboard. The left sidebar is split into three collapsible sections — Idea boards, Polymetric loops, Harmonic progressions — stacked in the order most composers reach for them.

Harmonic Progressions — Core Concepts

A progression holds one EDO setting and a sequence of circles. Each circle is a selection of pitch steps drawn from that EDO. Steps run from 0 (the tonic) to edo−1, placed clockwise around the perimeter starting at 12 o'clock.

TermMeaning
EDOEqual divisions of the octave. Supported values: 12, 19, 24, 31, 48, 72. Twelve is the default; higher EDOs unlock microtonal palettes.
CircleOne harmonic state. A named set of selected steps, visualised as dots on the ring and connected into a polygon in numerical order.
RotationTranspose the whole pattern by ±1 step using the rotate left / right buttons under each circle. Rotation wraps modulo the EDO so the shape is preserved.
SequenceThe left-to-right ordering of circles in a progression. Reorder by dragging in the left sidebar; playback walks through them in this order.

Harmonic Progressions — Editing a Circle

1. Pick the EDO. Use the EDO dropdown in the header. Switching away from a higher EDO drops steps that no longer exist (e.g. going from 31 → 12 keeps only steps 0–11).

2. Toggle steps. Tap any dot on the ring to select / deselect it. Hit targets are generous (14 px) — pen and finger friendly. Selected dots fill in with the progression's accent colour; the polygon between them redraws automatically.

3. Rotate. The two circular arrow buttons below the circle rotate the pattern by −1 / +1 step. Great for auditioning modal rotations of the same shape.

4. Name, duplicate, delete. The text field below the circle is the circle's name (used in playback and when sent to Compose). Hover the card to reveal duplicate and delete icons.

5. Add more circles. The + Add circle placeholder at the right of the strip inserts a new empty circle at the end of the sequence.

FIG 4A 31-EDO circle with 6 or 7 selected steps connected into an irregular polygon. All labels (0–30) should be legible around the ring. Drop at public/img/docs/harmonic-circle-31edo.png. A microtonal scale sketched directly on the circle.

Harmonic Progressions — Analysis Panels

Each circle card stacks four live analysis views underneath. Together they give you a read on tension, pitch-class content, interval distribution, and spectral fingerprint — all updated as you toggle steps.

PanelWhat it shows
Dissonance meterA 0–1 scalar using the Plomp–Levelt / Sethares sensory-dissonance model applied pairwise across selected pitches. 0 ≈ single pitch; 1 ≈ dense chromatic cluster. EDO-independent — tuning is baked into the frequency calculation.
Interval vectorA classical interval-class vector: for each IC from 1 to ⌊EDO/2⌋, the number of pairs in the set at that interval. Shown as a bar chart with the raw array [n1, n2, …] printed alongside.
Spectral stripHorizontal band of EDO cells colour-coded by pitch class (rainbow hue around the octave). Selected cells light up; unselected are dim. Reads at a glance as the chord's pitch-class content.
Tension mapPer-interval-class heat strip where each cell's intensity is the interval's count × its individual dissonance contribution. Shows where the tension lives — seconds-heavy chords light the left, fifth-heavy chords the right.
Spectral heatmapCanvas-rendered frequency-domain view (30 Hz–5 kHz, log scale) matching the Graf analysis panel. Each selected step is mapped to a microtonal MIDI pitch and six partials per pitch are drawn as gold bands. Stretches to fill the remaining height of the card.

Harmonic Progressions — Playback

Click Play in the header to hear each circle as a block chord. Circles play in sequence, holding for the duration you set in the Sec field (defaults to 2.0 seconds). The currently sounding circle gets a glowing border so you always see which one is active.

OutputBehaviour
SynthBrowser Web Audio — triangle-wave voicing with a short envelope. Supports fractional MIDI, so microtonal EDOs (19, 24, 31…) play accurately. No setup required.
MIDISends block-chord note-on / note-off messages to whichever MIDI output you've configured elsewhere in the app. MIDI is semitone-quantised, so non-12-EDO progressions are rounded — a warning strip appears under the header when that happens.

Stop returns to the start. Switching progressions or leaving the view stops playback automatically.

FIG 5The Harmonic Progressions view with the header transport visible (Play button + Synth / MIDI selector + Sec duration + EDO dropdown + Send buttons) and at least three circle cards laid out horizontally, one of them highlighted mid-playback. Drop at public/img/docs/harmonic-playback.png. Transport + circle sequence — the active circle glows during playback.

Harmonic Progressions — Send to Compose

Two handoffs live in the progression header — one for pure harmonic content, and one that combines the active polymetric sketch with the active progression into a single score movement.

ButtonResult
Send to ComposeCreates a new movement named after the progression. One moment per circle, each containing one cell whose graph holds a pre-populated om.pitch-field node with the circle's pitches converted to midicents (anchored at C4, stepped by 1200 ÷ EDO).
Send × {sketch}Combined send. Enabled when a polymetric sketch is active; shows its name inline. Creates an N×M grid — one moment per circle, one cell per polymetric track within each moment. Each cell carries both a meter.sequence node (the track's segment at that moment index) and an om.pitch-field node (the circle's pitches). Trailing moments reuse the track's final segment when the polymetric is shorter than the progression.

Both actions flash a Sent confirmation and auto-navigate to the Compose view, so you can immediately see the new movement on the timeline and open cells in Graf to wire up rhythm and voice chains.

Try it on your own material.

Create a free account14 days of Composer Pro, no card needed. Every account opens with the Examples folder.