Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hoffa/pyogi
A simpler music notation for casual piano learners
https://github.com/hoffa/pyogi
Last synced: 2 months ago
JSON representation
A simpler music notation for casual piano learners
- Host: GitHub
- URL: https://github.com/hoffa/pyogi
- Owner: hoffa
- License: other
- Created: 2018-09-15T03:40:03.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2024-07-23T00:45:04.000Z (6 months ago)
- Last Synced: 2024-08-03T01:38:32.223Z (6 months ago)
- Language: Python
- Homepage:
- Size: 24.4 MB
- Stars: 133
- Watchers: 5
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# pyogi
[![Tests](https://github.com/hoffa/notation/actions/workflows/build.yml/badge.svg)](https://github.com/hoffa/notation/actions/workflows/build.yml)
[![CC BY-NC-ND 4.0](https://img.shields.io/badge/license-CC%20BY--NC--ND%204.0-blue)](https://creativecommons.org/licenses/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](https://en.wikipedia.org/wiki/Clef), (2) the [key signature](https://en.wikipedia.org/wiki/Key_signature), and (3) the [accidental]() next to a note? I need to look in 3 places just to know which key to press.
1. Why have both C♯ and D♭ when they correspond to the same key?
1. Why aren't staff lines for different [octaves](https://en.wikipedia.org/wiki/Octave) 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
![](testdata/output/svg/schubert-allegretto.svg)
See the [`testdata/output/pdf`](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](https://en.wikipedia.org/wiki/MusicXML) file to a PDF in Pyogi notation:
```bash
make init
.venv/bin/python src/main.py score.mxl
```## Development
Set up dependencies:
```bash
make init
```Run tests:
```bash
make test
```If the rendering changes, tests can be quickly updated with:
```bash
UPDATE=1 make test
```