Create
Write a Composition. Hear its chords. Take it to a Performer.
Everything happens in this page. Your work is kept in the page address (after #), so a refresh keeps it; nothing is uploaded or stored.
Write
Chords as symbols: Cm, Am7, Bb7sus4, F#dim7, Ebmaj9, A7alt, G/B. Any of the 420 in the full chord set.
The whole Composition as text. Type, or paste a composition.md, or just a list of chords. Apply (Ctrl/⌘+Enter) or Cancel (Esc).
Play
A sketch of the harmony only, from the recorded chords at fullchords.musicmatter.art (CC BY-SA 4.0).
The link is this page's address: the Composition rides in it (after #), so nothing is stored anywhere.
Perform
A full-quality Performance, with the same chain as the kit (Rubber Band R3 time-stretch, Dragonfly Hall, true-peak mastering) and its record, will render right on this page soon.
Today: perform it with the Performer kit, pip install git+https://github.com/netcomposer-art/nc-performer, or hand the plan to an agent with SKILL.md.
Take it further
Download
The plan stub has the chords, their voicings and the sounds; a Performer or an agent fills in the rest. Schema.
Open a file
Open a composition.md: one made here, or a published one (ambient Cm, BWV 846).
With the Performer kit 0.2.0 (Python, ffmpeg)
pip install git+https://github.com/netcomposer-art/nc-performer nc perform composition.md --stub -o out/ # no LLM nc render --plan plan.json -o out/ # your own plan nc perform composition.md -o out/ # any OpenAI-compatible LLM
The kit is open source (MIT): github.com/netcomposer-art/nc-performer. It needs Python 3.10+ and ffmpeg with the rubberband filter. The default reverb hack is Dragonfly Hall: add pip install pedalboard and Dragonfly Reverb (apt install dragonfly-reverb, or its VST3). Without them the kit uses its synthetic hall, and the record says which reverb ran.
With an agent
Grok, ChatGPT, Claude, others: give it the composition.md and the skill, SKILL.md (plain text: SKILL.txt). It writes plan.json, renders, writes the record. More on Agents start here.
Submit
Submissions go through issues on the site repository (or a pull request adding an entry to suppliers.json). This channel is proposed and may change. Issues.