This program takes a MIDI file as input and generates fingering charts for saxophones matching the notes in that midi file. Time, note length, and other musical elements are not preserved, this is just a way to learn the fingering for each note. That said, this may expand and become fancier down the road.
Fingerings are decided by a simple weighted algorithm that picks fingerings for a note based the keys involved in the previous note. There's probably a smarter way to do this, I'm open to ideas.
Just open a midi file with fingering_chart
, and wait for charts to generate! You can also run it via the command-line by specifying one or more midi files as shown above. Make sure the cfg.ron
file is in the same directory as fingering_chart
. See below for additional settings.
cfg.ron is the configuration file:
- transposition
Sets the transposition. May use C
, Bb
, or Eb
.
- output_path
Sets the output path. If this is a non-existent directory, will attempt to create.
- output_format
Sets the output format. May use Tracks
, Rows
, or Separate
. Tracks
outputs charts for each midi track as a single file. Rows
splits tracks up into multiple files each containing a horizontal row of notes. Separate
outputs each individual note as a separate file.
- spacing
Sets the visual spacing between consecutive notes. Not applicable when using Separate
output format.
- notes_per_row
Sets the number of notes per row. Not applicable when using Separate
output format.
- notes
You can now fully customize what notes are supported and what fingerings each note will use. Detailed instructions exist inside the cfg.ron file.