Crates.io | sax-fingering-chart |
lib.rs | sax-fingering-chart |
version | 0.2.5 |
source | src |
created_at | 2020-08-14 18:56:29.916728 |
updated_at | 2022-08-12 12:24:33.506407 |
description | Takes midi files and outputs fingering charts for a saxophone. |
homepage | https://github.com/Eolu/sax-fingering-chart |
repository | https://github.com/Eolu/sax-fingering-chart |
max_upload_size | |
id | 276739 |
size | 77,726 |
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_type
Sets the transposition. May use Alto
, Tenor
, Baritone
, Soprano
, Bass
, CMelody
, Contrabass
, Sopranino
, Subcontrabass
, and Sopranissimo
.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.