← All modules
AvailableMIDI & Modulation

Chord Lab 1

Generate chord sets and trace melodic paths.

Engine preview

Browser version

About

Chord Set is a note source, not an audio voice. It resolves a complete progression from a target pitch-class histogram plus target consonance, tension, coverage, density and voice-leading values, then feeds the result into the same generic instrument path as Pretty Chord.

The output has two levels of identity. Every chord is measured internally, its pitch classes, consonance, tension, density and zero-anchored note frame, while the set is measured across transitions for histogram fit, coverage, tonal-centre mean/spread, tension profile and voice-leading continuity. That makes a model output inspectable before it becomes sound.

The baseline strategy is intentionally fast and deterministic: retrieve the nearest usable Pretty Chord bank, then apply set-slot rerolls and voicing transforms from explicit seeds. The decoder and reranker strategy slots share the same exposed parameter schema and quality gate, so model output cannot bypass the module's MIDI contract.

A chord reroll replaces one slot and preserves the set length. A voicing change moves register while preserving pitch-class identity. Both are reproducible, so a generated result can be mechanically compared, saved in a patch, and evaluated again in the browser or offline tooling.

Signal graph.

Experimental

Migration fallback: approximated from parameter groups, not a runtime wiring diagram.

How it works.

The module has a pure generation seam and a host seam. The pure seam maps control tokens to a deterministic chord set and recalculates every chord and set metric from the resulting notes. The host seam uses Pretty Chord's absolute-time scheduler to turn those resolved notes into MIDI, so a browser timer can wake late without moving an already scheduled note.

Quality is evaluated mechanically before the result is treated as music. The validator checks voice counts, MIDI range, pitch-class metadata, zero-anchored note frames and stale metrics; the evaluator then scores histogram fit, consonance, tension, coverage, voice-leading and density against the requested targets.

The model-facing representation is keyless. Each chord has offsets from its lowest note and offsets around its weighted centre, allowing the eventual ONNX model to learn shape and interaction without baking a named key into the output. The browser module currently uses the lowest-note frame for the emitted MIDI voicing and keeps the centre frame available for the inference contract.

Retrieval is the fast baseline over Pretty Chord banks. The strategy control is part of the stable module contract: the v1 encoder emits a 32-value latent from the current set, the decoder accepts that latent plus the same control vector, and the reranker can select among candidates using the same quality report without changing the keyboard, UI or downstream MIDI routing.

Goes well with.

Preview

Pretty Chord

136 chord banks with random selection.

PreviewNo build recorded
Preview

Chordex

Generate a voiced chord from one note.

PreviewNo build recorded
Preview

Arpeggiator

Walk held notes through a rhythmic pattern.

PreviewNot built for macOS, Windows or Linux
Preview

OSC Mini

A compact subtractive synth for learning the signal path.

Preview