A small site that generates random sheet music and reads midi input (key on) messages to determine if the notes have been played correctly. Try here https://dcellismusic.com/sightreading.
Makes use of the web midi API (via WebMidi.js) to detect note inputs and VexFlow to handle the display.
Early testing of using the Crepe pitch tracker with TensorFlow for pitch detection and audio comparison.