pyogi-notation
A simpler music notation for casual piano learners.
Why?
I'm bad at piano but I'm trying to learn by myself, and I find modern music notation overwhelming.
For example:
- Why does the note corresponding to a line on the staff depend on (1) the clef, (2) the key signature, and (3) the accidental next to a note? I need to look in 3 places just to know which key to press.
- Why have both C♯ and D♭ when they correspond to the same key?
- Why aren't staff lines for different octaves consistent? If a note is on a solid line, the same note one octave higher is on a blank line.
Example
See the testdata/output/pdf
directory for more examples.
The notation in 1 minute
- Thick lines are C notes.
- The higher the note, the higher the pitch.
- White notes are naturals.
- Black notes are sharps.
There are no explicit flats, rests, note values, time signatures, key signatures, etc. Play what sounds good.
Usage
Convert a MusicXML file to a PDF in Pyogi notation:
make init
.venv/bin/python src/main.py score.mxl
Development
Set up dependencies:
make init
Run tests:
make test
If the rendering changes, tests can be quickly updated with:
UPDATE=1 make test