• Stars
    star
    133
  • Rank 272,600 (Top 6 %)
  • Language
    Python
  • License
    Other
  • Created about 6 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A simpler music notation for casual piano learners

pyogi-notation

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