Рассмотрим этот патч (код ниже, протестирован на pd-extended_0.43.4-1
, Ubuntu 11.04):
В основном я просто перетаскиваю ползунок и хочу посмотреть, какова разница во времени между двумя последовательными значениями, выдаваемыми ползунком [hsl]. В справке [триггера] (Triggering_messages_with_trigger
) указано, что: "сообщения, отправленные из выходов [триггера], происходят в НУЛЕВОЕ время без задержки между событиями...". Таким образом, bang
сначала идет на правый вход [timer], который выводит «прошедшее логическое время», а затем bang
идет на левый вход [timer], который сбрасывает таймер. Я собираю прошедшее время и значение ползунка с помощью [pack] и [распечатываю] эти значения. Проблема, как видно на снимке экрана, заключается в том, что я получаю такие значения:
...
print: 10.1587 0.462312
print: 43.5374 0.396985
print: 0 0.341709
print: 0 0.306533
print: 0 0.276382
print: 23.22 0.271357
...
Это говорит мне, что ползунок изменился, например. от 0,396985 до 0,341709 за 0 мс, что не должно быть возможным: должно было пройти какое-то время, чтобы я переместил мышь (что вызвало бы необходимые обработчики в ОС и Pure Data), чтобы установить новое значение для слайдер?!
Итак, почему это происходит; ожидается ли это; - и есть ли объект Pd (или внешний), который позволил бы мне точно измерить время, прошедшее между двумя последовательными выходными значениями ползунка [hsl] во время перетаскивания мышью (точное в том смысле, что все измеренные прошедшие времена должны быть больше нуля )?
РЕДАКТИРОВАТЬ: только что нашел [realtime], который похож на [timer] (и может использоваться в качестве замены в этом патче), но выводит значения с плавающей запятой; поэтому я больше не получаю простые нули, однако я получаю такие отпечатки:
...
print: 0.029 0.361809
print: 0.025 0.366834
print: 47.714 0.376884
print: 0.022 0.386935
print: 14.988 0.39196
print: 36.526 0.396985
print: 40.294 0.40201
...
... что все еще нереально: например. ползунок изменился с 0,361809 на 0,366834 (примерно 0,005) за 25 микросекунд; а затем изменилось с 0,366834 на 0,376884 (примерно на 0,01, в два раза больше предыдущего) за 47 миллисекунд - в 1880 раз больше, чем предыдущий интервал! Так что я тоже не уверен, что это все так точно...
Код:
#N canvas 160 223 312 218 10;
#X obj 47 19 hsl 200 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 10500 0;
#X floatatom 98 48 12 0 0 0 - - -;
#X obj 44 88 timer;
#X floatatom 92 122 12 0 0 0 - - -;
#X obj 44 62 t b b;
#X obj 44 173 print;
#X obj 44 152 pack f f;
#X connect 0 0 1 0;
#X connect 0 0 4 0;
#X connect 0 0 6 1;
#X connect 2 0 3 0;
#X connect 2 0 6 0;
#X connect 4 0 2 0;
#X connect 4 1 2 1;
#X connect 6 0 5 0;