The open harmonic state standard for music applications
One file. One format. Root, mode, scale, and active notes — portable across any music tool, any platform, any AI. Created by Benjamin Ryan · Keys, Codes & Modes™
Every DAW, every theory app, every AI music generator has its own internal state. GCIS is the universal envelope that lets them share a harmonic context instantly.
A .gcis file is a UTF-8 encoded JSON document with a versioned envelope. The state object is the canonical harmonic snapshot.
| Field | Type | Req | Description |
|---|---|---|---|
| gcis | string | ✅ | Format version — always "1.0" |
| state.root | string | ✅ | Pitch class — one of 12 valid values |
| state.mode | string | ✅ | Modal name — one of 7 valid values |
| state.scale | int[] | ✅ | 7 semitone intervals from root |
| state.activeNotes | int[] | ✅ | MIDI note numbers — sorted, may be empty |
| title | string | — | Human-readable session name |
| author | string | — | Creator name |
| created | string | — | ISO 8601 timestamp |
| app | object | — | Originating app: name, version, url |
| history | array | — | Reserved — session recording (v1.1) |
Sharp notation canonical. Enharmonic flats not accepted (use C# not Db).
Drop a file, paste JSON, or click a test case. Get a full diagnostic readout instantly.
Download these to test your implementation or use as starting points. Each is a fully valid GCIS v1.0 document.
The reference implementation is the KCM Console. Want your app listed? Implement the spec, validate with the tool above, and get in touch.
Building a GCIS-compatible app?
Contact to get listed ↗