Тут две задачи: воспроизводить в браузере midi-файл и оценивать попадание в бит нажатием клавиши.
Легко гуглятся плееры midi-файлов для браузера. Но пока не заметил наличия у них API для выделения сильных долей. Ещё неудобство: midi — не ноты, там нет размера, темпа. Просто время начала ноты и её длительность в миллисекундах, условно.
Лучше – проще. Я бы взял за основу проигрыватель лупов (коротких кусков аудио, которые можно воспроизводить циклично). Для них точно известна длительность, размерность (вручную, а слух, заранее), начало отсчёта. Загружаете с вашего сервера очередной аудиофайл. Воспроизводите его, смотрите, как близко к искомым моментам времени поступают события нажатия.
Начните с простого фиддла: загрузите короткий аудио фрагмент, пусть он играет по кругу (как вы это сделаете?) и регистрируйте нажатия на пробел: задача попадать в восьмушки.
С этим же «движком» вполне можно тренироваться и на целых песнях – попадать под фанеру. Вам только понадобится заранее каждый файл разметить: когда начало первого такта и какой точно ритм – чтобы сетка легла точно на всю песню и не съехала к концу.