このパッチを検討してください (以下のコードpd-extended_0.43.4-1
、Ubuntu 11.04 でテスト済み):
私は基本的にスライダーをドラッグするだけで、[hsl] スライダーによって放出された 2 つの連続する値の間の時間差を確認したいと考えています。[トリガー] ヘルプ ( Triggering_messages_with_trigger
) には次のように記載されています。「[トリガー] のアウトレットから送信されたメッセージは、イベント間に遅延がなくゼロ時間で発生します...」。したがって、abang
は最初に「経過論理時間」を出力する [timer] の右インレットに入力され、次に abang
はタイマーをリセットする [timer] の左インレットに入力されます。[pack] で経過時間とスライダーの値を収集し、それらの値を [print] します。スクリーンショットが示すように、問題は次のような値を取得することです。
...
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 ミリ秒で 0.396985 から 0.341709 にスライダーが変化したことを示しています。これはありえないことです。スライダーに新しい値を設定するには?!
では、なぜこれが起こるのでしょうか。それは期待されていますか?-そして、マウスでのドラッグ中に[hsl]スライダーの2つの連続した出力値の間の経過時間を正確に測定できるPdオブジェクト(または外部)があります(測定されたすべての経過時間がゼロより大きくなければならないという意味で正確です) )?
編集: [リアルタイム] が見つかりました。これは [タイマー] に似ています (このパッチではドロップイン置換として使用できます) が、浮動小数点値を出力します。だから私はもはやプレーンゼロを取得しません - しかし、私はこのようなプリントを取得します:
...
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
...
...これはまだ非現実的です。たとえば、スライダーは 25 マイクロ秒で 0.361809 から 0.366834 (約 0.005) に変更されました。そして、47 ミリ秒で 0.366834 から 0.376884 (約 0.01、以前の変化の 2 倍) に変化しました。これは、以前の間隔の 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;