Skip to main content

musical stave trainer

Project description

This is a Python program that helps you practice sight-reading by flashing up notes on a stave (treble and/or bass clef). You will have a certain number of seconds to correctly identify each note. With the appropriate MIDI adapter plugged in, the -m command-line option (see below) allows you to respond using your instrument. Failing that, respond with keys A, B, C, D, E, F, or G on your computer keyboard. In either case, press Q to quit the program.

Install with python -m pip install pystave. This will install both the pystave package and, if you do not already have it, its dependency pygame.

You can run the game from the command-line with python -m pystave followed by whatever command-line options you want.

On Windows, the simplest way to set it up is to find NoteTrainer.exe in the Scripts directory of your Python distribution (or virtual environment), and make a shortcut to that. In the "Target" field of the "Properties" dialog for the shortcut, you can add any command-line options you want to add. Launch the game from that shortcut.

The game's command-line options are as follows:

 -m N             Listen to midi channel `N` (default 0, meaning no midi
--midichannel=N   input). It may take some trial and error to find the
                  number that corresponds to the correct channel of your
                  USB MIDI adapter.

 -s X             Scale the size of the window by factor `X` (default 1).
--size=X


 -t T             Set the time limit for responding to `T` seconds
--timelimit=T     (default 4).



 -c C             Include clef `C`. Possible values are `bass` and
--clef=C          `treble`. The default is to test both (choose randomly
                  each time around) which is equivalent to supplying
                  `-c treble -c bass` or `-c bass,treble`.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pystave-1.1.0-py2.py3-none-any.whl (36.9 kB view details)

Uploaded Python 2Python 3

File details

Details for the file pystave-1.1.0-py2.py3-none-any.whl.

File metadata

  • Download URL: pystave-1.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 36.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for pystave-1.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 cc73e8a56e78af3ee2154ea0bfeb6ee17cd14d110af99720f041e50234fb19ce
MD5 f77a33f702d84af8ddcfe9beb0bce44a
BLAKE2b-256 f4850f3e059463e9a7ef0ad7b6d82946d7633f53b302b362f11516340a67ce71

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page