(скачать, ~ 6 KB)
Чтобы узнать темп какого-либо музыкального произведения, музыканту может вполне пригодится этот исключительно простой инструмент. Написан на Visual Basic 6 и поэтому не требует наличия платформы .NET (хотя если вдруг у кого работать не будет, то скорее всего нужно обновить VB6 Run-Time).
Как пользоваться: включить интересующую музыкальную вещь в любимом проигрывателе и начать выстукивать четвертные ноты (1/4) при помощи клавиши SPACE или кликов мышкой. Если поставить галочку, то включится звуковой щелчок, который будет сопровождать каждый клик. С хорошим чувством ритма можно очень быстро получить значение темпа. Клавиша «Reset» сбрасывает калькулятор в начальное состояние.
Важно помнить, что после первого тэпа калькулятор переходит в бесперерывный режим измерения интервалов времени и стучать надо до получения стабильного результата. Если во время сеанса нахождения ритма, скажем, отойти покурить, а потом вернуться и продолжить, то окажется, что ритм упал фактически до нуля (четвертная нота получилась невероятно большой длительности, равной перекуру). Число вводимых длительностей ограничено 1000 ударами, после чего программа инициализируется в начальное состояние.
Для интересующихся как это работает приведу разбор программы на уровне математической модели.
Известно, что темп определяется в ударах в минуту (bpm), причём подразумеваются как раз четвертные ноты. Значит для определения темпа нужно выяснить, сколько четвертных нот помещается в одну минуту. Для этого программа собирает статистику о временных интервалах между двумя произведёнными ударами. Так получается среднее значение длительности 1/4 ноты:
Если мы знаем среднее значение длительности 1/4 ноты, то мы можем найти, сколько таких нот в минуте, разделив длительность минуты на длительность четвертной ноты. В моём случае программа измеряет время в мс (миллисекундах), а в минуте ровно 60 * 1000 = 60000 мс, и поэтому для оценки темпа используется формула:
Поскольку в данном случае имеем дело со средним значением величины, то значение темпа будет тем точнее, чем больше будет совершено ударов в соответствии с конкретным темпом (здесь статистика на нашей стороне). То есть человек не обязательно должен обладать идеальным чувством ритма, чтобы получить нормальный, достоверный результат.
Обновленная версия доступна в разделе «программы».