pianotrainer

Интерактивное веб-приложение для обучения игре на пианино.

веб-сайт

Приложение возникло из моего хобби игры на пианино, точнее, из моих попыток научиться играть. Игра на пианино оказалась одним из самых стрессовых занятий, которыми я занимался. Чтобы сделать упражнения на пианино более приятными, я решил разработать приложение, которое помогало бы мне учить мелодии и тренировать пальцы.

Вот принцип работы этого приложения: вы подключаете MIDI-клавиатуру к компьютеру (или планшету) и запускаете упражнение в приложении. Приложение предоставляет подсказки по нажатию клавиш и соответствующих пальцев. Кажется, получилось достаточно полезное приложение. Но стать

Приложение реализовано с использованием библиотеки OSMD и программы для авторов музыки MuseScore. Работает следующим образом. Записываем ноты упражнения в MuseScore, экспортируем в music xml формат. Парсим этот формат с помощью OSMD и получаем последовательность «правильных» MIDI событий и номера пальцев. Далее слушаем MIDI события с пользовательского ввода через Web MIDI API и сравниваем пользовательские события с ожидаемыми событиями. Страница с нотами рендерится также библиотекой OSMD.

Реализация этого приложения заняла довольно много времени, примерно полгода. Результаты первых итераций пришлось полностью переписывать. Например, сначала я использовал формат MIDI для входных файлов, но он оказался слишком ограниченным для нужд данного приложения. Поэтому я принял решение перейти на формат MusicXML, который позволяет передавать нотную запись, MIDI-события и аппликатуру. Еще одним фактором, который повлиял на сроки реализации, было отсутствие у меня знаний в области музыки (знания подтягивал в процессе работы над приложением). В целом я доволен результатом. Думаю, что еще буду делать веб-проекты в области музыки.