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