Как создать ритмический ввод c для образовательной платформы musi c - PullRequest
0 голосов
/ 11 февраля 2020

Я работаю на платформе, чтобы научить читать / писать листы музыки c.

До сих пор было «легко» * выяснить систему, в которой люди выбирают минимальные ритмические c единицы, чтобы НАПИСАТЬ некоторые музыкальные произведения c, но я даже не знаю, как начать Другое направление этого процесса: как создать систему ввода, чтобы обеспечить действия, в которых студенты могли бы ПРОЧИТАТЬ и нажать некоторые ритмы на клавиатуре. Конечно, моя цель состоит в том, чтобы зафиксировать временной интервал между нажатиями относительно ударов. Другими словами .... как измерить время между нажатиями.

Я знаю, что такие программы, как EarMaster или GNUSolfege, это поняли. Любая помощь будет высоко ценится.

Спасибо людям:)

* "легко", потому что я пианист / психолог. Все PHP и JQuery и MySQL, недавно добавленные в мою жизнь, все еще являются некоторыми сложными / захватывающими вещами, которые нужно понять.

1 Ответ

0 голосов
/ 12 февраля 2020

Скажем, у вас есть кнопка. У этой кнопки будет какой-то метод, который запускается при нажатии на нее. Вам нужно узнать текущее время, оно будет зависеть от вашего языка / платформы, но обычно есть какой-то встроенный метод. Это будет через Unix время , то есть количество секунд, прошедших с 1 января 1970 года (или миллисекунды). Поэтому каждый раз, когда пользователь нажимает на кнопку, получайте это время (целое число миллисекунд) и сохраняйте его / сопоставляйте с темпом.

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

Это, вероятно, неудовлетворительный ответ, и, как правило, переполнение стека следует использовать для вопросов, которые конкретно относятся к коду. Поэтому, когда вы знаете, какой язык используете, и начинаете реализовывать эту функцию, если у вас возникнут проблемы, попробуйте снова задать этот вопрос с помощью своего кода / минимальной версии, и вы, вероятно, получите лучший ответ.

...