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.
| Term | Meaning |
|---|---|
| EDO | Equal divisions of the octave. Supported values: 12, 19, 24, 31, 48, 72. Twelve is the default; higher EDOs unlock microtonal palettes. |
| Circle | One harmonic state. A named set of selected steps, visualised as dots on the ring and connected into a polygon in numerical order. |
| Rotation | Transpose 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. |
| Sequence | The 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.
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.
| Panel | What it shows |
|---|---|
| Dissonance meter | A 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 vector | A 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 strip | Horizontal 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 map | Per-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 heatmap | Canvas-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.
| Output | Behaviour |
|---|---|
| Synth | Browser Web Audio — triangle-wave voicing with a short envelope. Supports fractional MIDI, so microtonal EDOs (19, 24, 31…) play accurately. No setup required. |
| MIDI | Sends 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.
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.
| Button | Result |
|---|---|
| Send to Compose | Creates 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.