↓ Skip to main content
  1. Home projects/

Pchords

··Index: 8·

Motivation
#

I need to improve playing chords on the piano, so I decided to write a simple tool to help me with this.

What it does
#

The initial version was just a console app, and then I wrote a simple GUI for it. What I have now:

  • generation of major, minor and dominant chords (half-diminished and altered soon);
  • the randomly chosen chord has to be played starting from the third or the seventh (major and minor), without the root;
  • played notes (read through MIDI) are compared with the generated ones.

Current GUI
#

it looks like this

Version 2: in the browser
#

In late 2025 I gave Pchords a web version. The backend is FastAPI with a music-theory core of my own for notes, scales, chords, voicings and progressions, and the frontend is React and TypeScript with an on-screen piano. In Chrome and Edge the page reads a MIDI keyboard directly through Web MIDI and checks the chord as you play, and if you’d rather practise full chords, there’s a root-note mode for that. The whole thing starts with Docker Compose.

Pchords web version: a MIDI keyboard feeds the browser through Web MIDI, and the browser talks to a FastAPI backend with a music-theory core; Docker Compose runs both.started with Docker ComposeMIDIkeyboardbrowserReact, TypeScripton-screen pianochecks the chord as you playFastAPI backendmusic-theory core:notes, scales, chords,voicings, progressionsWeb MIDIWeb MIDI works in Chrome and Edge
Parts of the web version

Useful links#

https://github.com/marcinklimek/pchords

Related