Jam Mode

Jam mode is a free-play canvas. There’s no destination or path — just you, your keyboard, and the Circle of Fifths reacting to whatever you play.

Jam mode: a G → D → A progression shown on the Circle of Fifths with coloured edges

Chord detection

Hold three or more notes on your MIDI keyboard and the app identifies what you’re playing. The matched chord glows blue on the Circle of Fifths, and its name appears in the chord banner in the top-left corner of the circle. The banner holds the last recognised chord through brief gaps while you change hand positions, so it doesn’t flicker.

Detection works at two levels:

Triads — the 36 nodes in the theory graph (major, minor, diminished). Matched by pitch class subset: a chord matches if all of its pitch classes are present in what you’re holding.

Extended chords — the app also identifies dominant 7ths, major 7ths, minor 7ths, half-diminished, diminished 7ths, 6ths and minor 6ths, augmented, sus2, sus4, 7sus4, add9, and minor add9. These are shown by name (C7, Cm7, Dadd9, Gsus4…) with a quality label underneath. Sus chords light up the node of the chord they suspend — Csus4 glows on C.

Some note sets have two honest names. A-B-E is both Asus2 and Esus4; Eb-G-Bb-C is both Eb6 and Cm7. For sus chords the app picks the reading rooted on your bass note; for 6th chords it shows both readings side by side.

Inversions — the banner marks which chord tone is in the bass with a tick per inversion: C′ is first inversion (E in the bass), C″ is second (G in the bass).

When an extended chord with a strong resolution tendency is detected, the circle draws dashed amber edges pointing to the likely next chord — a C7 shows an arrow to F, a Cm7 shows an arrow toward F (the V in a ii–V move). These are hints, not prescriptions.

Where next: live suggestions

As you play, the circle draws dashed, colour-coded arrows from your current chord to the chords it commonly moves to. The Suggest next (live) panel in the sidebar picks which edge types to show — by default Fifth, Diatonic, V-I, Relative and Chromatic mediant. Turn on more for a busier map, fewer for a calmer one.

Progressions on the circle

Type a progression into the sidebar (e.g. G D Em C) and it’s drawn onto the Circle of Fifths: each chord’s node is outlined in the progression’s colour and the moves between them become arrows, coloured by edge type. Extended chords sit on their triad’s node with a small quality badge (7, Δ7, m7, s4…) so you can tell a G7 from a plain G at a glance.

Below the progression input, the Scales panel lists the scales that fit your chords — live as you type, or for any saved progression. It prefers scales whose tonic is your first chord, so Am F C G reads as A minor rather than C major.

Practising in a key

Pick a Home key at the top of the Jam sidebar (major keys; your choice is remembered) and the circle becomes a map of that key:

  • The key’s seven chords are outlined in gold, each tagged with its Roman numeral — I, ii, iii, IV, V, vi, vii°. In Eb: Eb, Fm, Gm, Ab, Bb, Cm, Ddim.
  • The tonic gets an extra ring, so home is always easy to find.
  • Everything outside the key fades back.
  • The chord banner adds the Roman numeral of what you’re playing — Ab · IV, Bb7 · V7 — in gold when it’s in the key and orange when it isn’t (Db · bVII).
  • With Zoom on in the header, the camera frames the key’s seven chords.

Triad and inversion tracker

Tick Track triads & inversions under the key’s chord list to turn a practice session into a checklist. Each of the seven chords gets a ring of three arcs — top for root position, lower-right for first inversion, lower-left for second — that turn from grey to green once you’ve played that voicing. The sidebar shows the same thing as dots next to each chord, plus a running count out of 21 and a Reset button.

Only the exact triad counts: hold the chord’s three notes (doubled octaves are fine) and nothing else, and the lowest note decides the inversion. The record lasts for the session and survives switching keys.

Saving and loading

Jam mode progressions can be saved to .cwalk.json files via File → Save. The file records chord names, node positions, and the edge set. Load it back later and the graph restores exactly.

Walk mode state is session-only and is not persisted.

Recording audio

The Audio recorder panel in the sidebar captures both audio and MIDI simultaneously. Select your line-in device from the dropdown and hit ● Record. When you stop, it asks you to pick a folder and saves three files inside a timestamped subdirectory:

  • recording.wav — your audio, automatically peak-normalised and limited
  • recording.mid — every note-on/note-off event with accurate timing
  • recording.cwalk.json — a snapshot of the circle at the moment of saving (which progressions were loaded, where nodes were positioned)

Once saved, hit ▶ Play in Replay to switch to Replay mode, auto-load all three files, and start playback immediately. The circle will show the state from when you recorded, not your current session — so the context is always right.

Audio is processed before saving: DC offset is removed, a 25 Hz high-pass filter clears rumble, gain is applied to bring the peak to −3 dBFS (capped at +14 dB to protect quiet recordings from over-amplification), and a hard limiter catches any remaining peaks. The metrics panel shows raw peak, applied gain, and polished peak after saving.

MIDI activity

The MIDI status indicator in the top-right shows your connected device and lights up on incoming MIDI events. If it’s not connected, check your USB cable and relaunch the app. The app picks up MIDI devices present at startup.