I posted an earlier version of this about 2 years ago. Since then I've added a bunch of music theory exercises and created a system for teachers to use the exercises in their classes by giving assignments, tracking scores, etc.<p>The new music theory exercises use vexflow (<a href="https://github.com/0xfe/vexflow" rel="nofollow">https://github.com/0xfe/vexflow</a> ) for drawing the staff in addition to midi.js for the sound. The teacher-account backend uses Django.