Skip to content
This repository has been archived by the owner on Dec 4, 2024. It is now read-only.
/ pyogi Public archive

A simpler music notation for casual piano learners

License

Notifications You must be signed in to change notification settings

hoffa/pyogi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pyogi

Tests CC BY-NC-ND 4.0

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:

  1. 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.
  2. Why have both C♯ and D♭ when they correspond to the same key?
  3. 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

Schubert's Allegretto in Pyogi notation

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

About

A simpler music notation for casual piano learners

Resources

License

Stars

Watchers

Forks