Completed as part of my graduate studies in CS, Rhythm OLMITS is a rhythm intelligent tutoring system with an open learner model to support metacognition. It is an Electron app using React for the GUI, vexflow for music notation, and node-libpd for an audio engine. It teaches how to perform rhythms from music notation, provides a hierarchical visualization of a student's progress, pinpoints learner mistakes to specific beat-centric rhythm patterns, and generates rhythm exercises according to the needs of the student.
Supported Platforms are limited at the moment to the platforms supported by node-libpd, which are Intel Macs, Linux x64, and Raspberry Pis.
Given an installed Node.js environment (if not installed, I suggest nvm), run: npm install
to install dependencies from the root folder and npm run el
to run the tutoring system. I have provided builds for MacOS Intel and Linux x64 (but installation seems to be the more reliable method of getting things working).
The MacOS version tends to throw errors upon closing and the issue seems to lie with the node-libpd
bindings as noted in this issue thread where the bindings throw segmentation faults.
- Software related references are in the code and also in
citations.md
- The accompanying paper can be found here