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