Skip to content

0.2.0

Latest

Choose a tag to compare

@toneron2 toneron2 released this 08 Oct 20:41
85a9063

Hummed audio to quantized MIDI and piano-roll views, now working end to end. Rendering to guitar audio is not built.

Tests 68, passing on Python 3.11 with Basic Pitch 0.4.0
Python 3.9 to 3.11 (Basic Pitch pins TensorFlow below 2.16); the librosa pYIN model runs on any version
Commands hum2midi, quantize-midi, visualize-midi, h2h-pipeline

Changes since 0.1.0

From an independent code review (#1 to #5):

  • Audio to MIDI (#1): Basic Pitch is called with a file path, as its API requires; its note events are kept as notes, so durations, rests and the final note survive; velocity comes from each note's own confidence; the librosa pYIN fallback is wired in.
  • Quantization (#2): swing places offbeats instead of pushing them onto the next beat; the octave setting, which had no effect, is removed (old YAML files still load, with a warning); custom scale notes apply in every octave.
  • Visualization (#3): piano rolls read the file's tempo instead of assuming 120 BPM; chord symbols such as GM7, Em7b5 and Bm9 parse correctly; chord tones are shaded from each chord's own quality.
  • Dependencies (#4): six unused packages removed, including python-rtmidi, which needed a C compiler and audio headers to install.
  • Commands (#5): the four console scripts exist and exit non-zero on failure; command-line options override the config file; --swing is exposed.

From the release (#7):

  • A note shorter than half a grid step no longer collapses to one tick; it lasts one grid step. On an 8-second hummed phrase, 7 of 15 quantized notes had collapsed.
  • The README states what runs.

Behaviour change: visualize-midi --compare now takes the original file, as the usage guide always showed (quantized.mid --compare raw.mid).