Метроном
<><><><>

Программа тестирования метронома - нажмите, для загрузки архива

В этом тексте описывается специфика функционирования программы "Метроном", касающаяся точности отсчета ритма.

    Для численной оценки качества работы Метронома было создано специальное приложение (которое вы можете спокойно загрузить) на основе кода Метронома, вычисляющее параметры работы метронома.
    Тестирование проводилось на машине автора "Метронома" (процессор Intel Celeron 366 МГц, Материнская плата на чипсете Intel i810 с интегрированной графикой и 160 Мб памяти - староват конечно, но пока работает). Тест запускался в ОС Windows 98, 2000, XP (в таблице указано 4.10, 5.0 и 5.1 соответственно). При тестировании Метронома параллельно с ним не запущено программ, значительно загружающих процессор.
    При тестировании было обнаружено, что средняя частота ударов метронома во всех случаях была ниже частоты, которая устанавливалась движком метронома.  Причем стоит заметить, что не смотря на отклонения в длине периода щелчков метронома, стабильность ритма была довольно большой, максимальные отклонения отмечались, в основном, в первые в первые периоды, после установки частоты, затем стабилизировались - стабильность таймера для всех трех ОС в некоторых случаях составляла не более 1 мс (до 2700 циклов подряд срабатывания таймера - возможно и больше, при большем времени теста) . То есть, оказалось, что после установки таймера на  частоту, таймер срабатывал с постоянной частотой несколько большей чем установлено. Для Windows 98 отклонения средней частоты для различных установок частоты оказались 5÷50 мс (подтверждается тезис о точности системного таймера Windows 98 в 55 миллисекунд); для Windows 2000 - 0,17÷4,98 мс; для Windows XP - 0,19÷7,19 мс. (для Windows на основе платформы NT точность таймера выше).
    Таким образом для Windows 2000 и XP погрешность в большинстве случаев не превышает 1 % - что вполне приемлемо. Для Windows 98 ситуация похуже. Если для малых частот погрешность вполне приемлема, то с ростом частоты погрешность может очень возрасти. Причина в том, что при частоте 500 ударов в минуту таймер должен срабатывать каждые 120 мс и если погрешность составит 55 мс, то отклонения уже лишает смысла точную установку движка метронома. Можно только рассчитать, при какай частоте отклонение не превысит 1 удара в минуту: 33,5 ударов в минуту. Все, что выше частой может оказаться далеко от установленной частоты, хотя может и совпасть...
    Все вышесказанное справедливо, в случае если система не занята обработкой каких либо длительных процедур, не дающих  возможности сработать таймеру. В противном случае таймер может не сработать, пропустить период,  а то и несколько... и пользоваться  метрономом будет затруднительно.
     Вывод: "Метроном" не является программой реального времени и пользоваться им рекомендуется когда Windows не сильна загружена. Кроме того не рекомендуется полагаться на отображаемую частоту, когда она переваливает за сотню ударов в минуту.

Итак сейчас можно:
1) загрузить программу "Метроном" (170кб)
2) перейти на основную страницу программы "Метроном"
3) загрузить программу тестирующую параметры работы Метронома (178кб)
4) просмотреть таблицу результатов тестирования (в конце страницы)
5) написать письмо автору с соображениями по поводу прочитанного

  © Юрий Григорьевич Есьман
28 декабря 2008г.

"Скорочей" - читай быстрей - а программа в помощь

Абгрейдь мозги - читай быстрее


Результат  тестирования  метронома
Деклар. частота Реаль. частота Уст. таймера Средн. период Средн. отк. % откл. Max отк. Время теста Max период Мин период Версия Windows
5,00 n/мин 4,98 n/мин 12000 мсек 12043,92 мсек 43,92 мсек 0,36 % 45,00 мсек 10м14,24с 12045 мсек 12016 мсек 4.10
13,00 n/мин 12,99 n/мин 4615 мсек 4620,00 мсек 5,00 мсек 0,11 % 5,00 мсек 1м46,26с 4620 мсек 4620 мсек 4.10
29,01 n/мин 28,66 n/мин 2067 мсек 2093,52 мсек 25,52 мсек 1,22 % 94,00 мсек 27м48,53с 2162 мсек 2072 мсек 4.10
60,00 n/мин 57,25 n/мин 1000 мсек 1047,97 мсек 48,01 мсек 4,58 % 106,00 мсек 1м57,37с 1106 мсек 998 мсек 4.10
120,00 n/мин 109,22 n/мин 500 мсек 549,33 мсек 49,43 мсек 9,00 % 155,00 мсек 9м45,59с 655 мсек 445 мсек 4.10
250,00 n/мин 218,20 n/мин 240 мсек 274,97 мсек 34,97 мсек 12,72 % 98,00 мсек 8м42,17с 338 мсек 240 мсек 4.10
375,00 n/мин 363,46 n/мин 160 мсек 165,08 мсек 5,14 мсек 3,11 % 73,00 мсек 9м12,03с 233 мсек 122 мсек 4.10
500,00 n/мин 364,66 n/мин 120 мсек 164,54 мсек 44,59 мсек 27,10 % 192,00 мсек 10м11,41с 312 мсек 16 мсек 4.10
7,00 n/мин 7,00 n/мин 8571 мсек 8572,33 мсек 1,33 мсек 0,02 % 2,00 мсек 10м00,06с 8573 мсек 8572 мсек 5.0
13,00 n/мин 13,00 n/мин 4615 мсек 4616,63 мсек 1,63 мсек 0,04 % 2,00 мсек 10м04,78с 4617 мсек 4616 мсек 5.0
29,01 n/мин 28,94 n/мин 2067 мсек 2072,98 мсек 4,98 мсек 0,24 % 5,00 мсек 10м03,24с 2073 мсек 2072 мсек 5.0
60,00 n/мин 59,94 n/мин 1000 мсек 1001,06 мсек 1,81 мсек 0,18 % 228,00 мсек 10м07,64с 1002 мсек 772 мсек 5.0
115,16 n/мин 114,62 n/мин 521 мсек 523,47 мсек 2,47 мсек 0,47 % 10,00 мсек 5м19,32с 531 мсек 521 мсек 5.0
250,00 n/мин 249,65 n/мин 240 мсек 240,33 мсек 0,36 мсек 0,15 % 9,00 мсек 3м25,49с 241 мсек 231 мсек 5.0
375,00 n/мин 374,46 n/мин 160 мсек 160,23 мсек 0,23 мсек 0,14 % 1,00 мсек 3м19,17с 161 мсек 160 мсек 5.0
7,00 n/мин 7,00 n/мин 8571 мсек 8572,33 мсек 1,33 мсек 0,02 % 2,00 мсек 6м08,61с 8573 мсек 8572 мсек 5.1 Service Pack 2
12,00 n/мин 11,98 n/мин 5000 мсек 5007,19 мсек 7,19 мсек 0,14 % 8,00 мсек 5м10,45с 5008 мсек 5007 мсек 5.1 Service Pack 2
500,00 n/мин 499,28 n/мин 120 мсек 120,17 мсек 0,17 мсек 0,14 % 1,00 мсек 5м33,24с 121 мсек 120 мсек 5.0
28,01 n/мин 28,00 n/мин 2142 мсек 2143,08 мсек 1,08 мсек 0,05 % 2,00 мсек 7м00,04с 2144 мсек 2143 мсек 5.1 Service Pack 2
60,00 n/мин 59,98 n/мин 1000 мсек 1000,37 мсек 2,50 мсек 0,25 % 830,00 мсек 13м18,30с 1002 мсек 170 мсек 5.1 Service Pack 2
119,05 n/мин 117,48 n/мин 503 мсек 510,73 мсек 6,73 мсек 1,32 % 7,00 мсек 5м39,64с 511 мсек 510 мсек 5.1 Service Pack 2
250,00 n/мин 249,65 n/мин 240 мсек 240,33 мсек 0,37 мсек 0,15 % 19,00 мсек 6м57,70с 250 мсек 221 мсек 5.1 Service Pack 2
375,00 n/мин 374,46 n/мин 160 мсек 160,23 мсек 0,29 мсек 0,18 % 20,00 мсек 5м44,66с 180 мсек 140 мсек 5.1 Service Pack 2
500,00 n/мин 499,34 n/мин 120 мсек 120,16 мсек 0,19 мсек 0,16 % 40,00 мсек 5м55,43с 130 мсек 80 мсек 5.1 Service Pack 2
Описание колонок таблицы тестирования:
  1. Деклар.частота - Частота об установке которой, сообщается в свойствах метронома - в заголовке окна и на шкале метронома отображается округленно (Число получается дробным, так как получается делением 60000 на количество миллисекунд на устанавливаемом таймере).
  2. Реаль.частота - Реальная средняя частота получаемая делением количества щелчков метронома на время теста.
  3. Уст.таймера. - Количество миллисекунд, через которое должен срабатывать таймер в программе чтобы получилась нужная частота.
  4. Средн.период - Среднее количество миллисекунд через которое срабатывает метроном. Получается путем деления времени теста на количество срабатываний таймера.
  5. Средн.отк. - При каждом щелчке метронома определяется отклонения времени между временем после последнего щелчка и временем установленном на таймере, все отклонения суммируются и сумма делится на количество щелчков с начала теста.
  6. % отк. - Показывает отношение среднего отклонения к среднему периоду выраженное в процентах.
  7. Мах отк. - Максимальное отклонение в миллисекундах обнаруженное при сравнении времени между щелчками и установкой таймера при каждом периоде.
  8. Время теста - время прошедшее после запуска программы или после последнего изменения частоты.
  9. Мах период - наибольшее время в миллисекундах между двумя ударами метронома, вычисленные с начала теста
  10. Мин период - наименьшее время в миллисекундах между двумя ударами метронома, вычисленные с начала теста
  11. Версия Windows - версия которую о себе сообщает система: 4.10 - Windows 98; 5.0 - Windows 2000; 5.1 - Windows XP.
"Скорочей" - читай быстрей - а программа в помощь
Абгрейдь мозги - читай быстрее