「時間縮小錯覚」の実験パッチ

長嶋 洋一


2002年5月、国際会議IWECと音楽情報科学研究会SIGMUSの 二つの発表の連チャンという6日の出張に出かけました。 その模様(フォトレポート)は こちら にあります。

その、音楽情報科学研究会/音楽知覚認知学会の2日目と なった2002年5月20日の午前セッションで、 九州芸工大の中島祥好先生の研究室の柿葉美帆さんの発表で、 「時間縮小錯覚」に関するものがありました。 だいぶ以前から、この錯覚には興味を持っていたのですが、 ちょうどこの研究会場では、内職用(^_^;)にパソコンを広げて いたので、発表を聴講しているその時間内に、この錯覚の実験を 行うMax/MSPパッチをアドリブで作ってしまいました。

正確な音楽心理学の実験ツールとしては、なんせ即興で作ったものなので 問題もいくつかありますが(^_^;)、このような音楽心理学的錯覚というものに 触れてみる、というツールとしては教育的に役立つところもあると 思いますので、紹介します。きちんとした研究のためには、中島先生の 積み上げてこられた研究についてちゃんとサーベイして下さい。


予稿によれば、「時間縮小錯覚」の定義とは

というようなもので、実際の実験としては

のように行います。今回作ったパッチは、この図のような実験を 行うためのもので、Max4/MSP2の環境で動作します。

作ってみたパッチをテキスト形式で保存したものが これ です。表示すると以下のようなものです。

max v2;
#N vpatcher 222 59 656 185;
#P origin 207 51;
#P button 312 361 15 0;
#P newex 201 412 53 196617 delay 500;
#P newex 292 271 112 196617 if $i1==0 then 0 else 1;
#P user GSwitch2 234 266 39 32 1 0;
#P button 185 263 15 0;
#P number 345 58 46 20 0 13 35 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 397 300 19 196617 -1;
#P number 350 327 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 398 327 27 196617 +;
#P message 346 307 20 196617 11;
#P number 296 333 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 543 24 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 251 376 27 196617 +;
#P newex 174 309 62 196617 random 100;
#P button 172 287 15 0;
#P comment 463 20 64 196628 C -->;
#P button 241 603 15 0;
#P newex 244 569 32 196617 delay;
#P button 198 577 15 0;
#P newex 168 547 59 196617 delay 3000;
#P button 134 533 15 0;
#P newex 118 509 32 196617 delay;
#P user hslider 63 214 17 50 271 1 80 0;
#P number 130 215 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P comment 42 210 22 196628 S;
#P button 68 498 15 0;
#P newex 94 465 32 196617 delay;
#P user hslider 63 185 17 50 221 1 30 0;
#P number 130 186 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P button 85 438 15 0;
#P toggle 1 376 15 0;
#P user GSwitch2 31 402 39 32 1 0;
#P newex 67 324 95 196617 if $i1==1 then bang;
#P newex 41 347 95 196617 if $i1==0 then bang;
#P number 23 323 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 40 294 80 196617 set Tesing Mode;
#P message 52 275 83 196617 set Normal Mode;
#P message 151 274 14 196617 1;
#P message 17 274 14 196617 0;
#P message 48 150 106 196622 Tesing Mode;
#P button 161 150 22 0;
#P button 19 150 22 0;
#P button 271 444 15 0;
#P newex 283 476 45 196617 delay 25;
#P message 283 499 54 196617 1. \, 0. 2;
#P message 334 476 54 196617 0. \, 1. 2;
#P newex 283 544 27 196617 *~;
#P newex 283 522 39 196617 line~ 0;
#P user ezdac~ 258 150 302 183 0;
#P newex 315 544 65 196617 cycle~ 1000;
#P newex 174 368 59 196617 delay 2500;
#P number 240 347 34 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P user hslider 21 18 27 351 200 1 31 0;
#P button 104 53 34 0;
#P comment 145 62 135 196617 Start ! --> about 2500msec;
#P comment 138 1 164 196617 please adjust the final pulse timing;
#P comment 42 181 22 196628 P;
#P comment 319 66 26 196617 TRY;
#P connect 23 0 27 0;
#P hidden connect 16 0 19 0;
#P connect 19 0 23 0;
#P connect 20 0 23 0;
#P connect 27 0 26 0;
#P connect 25 0 22 0;
#P connect 23 0 24 0;
#P hidden connect 21 0 18 0;
#P hidden connect 22 0 18 0;
#P connect 24 0 21 0;
#P connect 7 0 26 1;
#P connect 23 0 25 0;
#P connect 31 0 32 0;
#P connect 26 0 32 0;
#P connect 26 1 28 0;
#P connect 28 0 31 0;
#P hidden connect 29 0 31 1;
#P connect 32 0 36 0;
#P hidden connect 30 0 29 0;
#P hidden connect 35 0 34 0;
#P connect 36 0 37 0;
#P hidden connect 34 0 36 1;
#P hidden connect 17 0 20 0;
#P connect 37 0 38 0;
#P connect 23 0 43 0;
#P connect 43 0 44 0;
#P connect 54 1 7 0;
#P hidden connect 4 0 53 0;
#P connect 38 0 39 0;
#P connect 57 0 56 0;
#P connect 55 0 54 0;
#P hidden connect 5 0 6 0;
#P connect 56 0 6 0;
#P connect 40 0 41 0;
#P connect 39 0 40 0;
#P connect 6 0 45 0;
#P hidden connect 11 0 9 0;
#P connect 53 0 54 1;
#P hidden connect 46 0 40 1;
#P connect 47 0 45 1;
#P connect 41 0 15 0;
#P connect 28 0 15 0;
#P connect 32 0 15 0;
#P connect 37 0 15 0;
#P connect 39 0 15 0;
#P connect 15 0 14 0;
#P connect 14 0 13 0;
#P connect 12 0 10 0;
#P connect 13 0 10 0;
#P connect 10 0 11 0;
#P hidden connect 11 0 9 1;
#P connect 50 0 55 0;
#P connect 44 0 47 0;
#P connect 8 0 11 1;
#P connect 47 0 57 0;
#P connect 15 0 12 0;
#P hidden connect 50 0 52 0;
#P connect 43 0 48 0;
#P connect 48 0 50 0;
#P connect 49 0 50 0;
#P connect 54 1 51 0;
#P connect 51 0 49 0;
#P connect 50 0 49 1;
#P hidden connect 45 0 46 0;
#P pop;
これを Max4/MSPで読み込めば、誰でも実験できます。(^_^)


以下、簡単に使い方を紹介します。まず、最初の画面としては

というのが出てきます。これは、被験者に実験をしてもらう時の画面で、 余計な情報が隠れています。被験者にはこの状態にして提示して、

  1. ボタンを押すと実験がスタートして、音が出る
  2. 横スライダーを調節すると、 この図 のいちばん右側のパルスを移動できる
  3. 画面内のカウンタの数字がゼロになるともう修正できない
という事だけを知らせる、ということになります。 そして、実験を行う者は、もうちょっと画面を下方向に広げて、

のようにしてセッティングを行います。 最初にスピーカーのマークのボタンをON(図のように凹んだ状態)にして サウンドをONにしておきます。

あとは、モードを示す窓の左右のボタンで、実験のモードを選択します。 左のボタン「Normal Mode」とは、 この図 で言えば上の方の「対照条件」という実験です。 右のボタンの「Testing Mode」というのが、 この図 で言えば下の方の「先行時間条件」という実験です。 このボタンを押すと、乱数によって、画面内のスライダーの値に 加算される時間が変化します。これは、毎回、視覚的に同じ位置が同じ時間では 問題かな、と思ったので入れました。被験者には、実験ごとに同じスライダーの位置でも 時間は違うよ、とも言う必要があるかもしれません。

そして、被験者に、カウンタがゼロになるまでの範囲で、ボタンを押して 両者の時間が等しいと感じるところに調節してもらい、それが終了、 つまり被験者が「こんなもんでしょ」(^_^;)、という状態になったら、 被験者には見せずに、画面の右側に隠れている部分が見えるように このようにスライドさせます。

すると、ここで現れるのが、被験者がスライダで設定した「C」の値、 ということです。これを、 ここ で設定していた「S」の値と比較してみて、そこそこ小さくなっていれば、 そこに「時間縮小錯覚」があった(^_^)、ということになります。

このパッチですが、全体はこんなものです。

そして、Maxを「実行モード」から「編集モード」にしてみたのがこれです。 画面に邪魔となるラインを隠していただけです。

こんなシンプルなものなので、研究発表講演のその場で内職で完成したと いうわけです。(^_^)

ちなみに、サウンドは1000Hzのサイン波ですが、予稿にあった「10msec幅」という 条件だと、Max/MSPではちょっと十分なサウンドにならなかったので (立ち上がりのノイズが嫌なので2msecほどの漸増エンベロープをかけています)、 ここでは25msecの幅となっています。その意味では同様の実験装置ではありません。 また、Max4/MSPの内部タイマの時間的精度についてもきちんと検証しないと (出力サウンドを正確に記録してその時間を計測検証する必要あり)、 このパッチそのままで実験しただけでは、音楽心理学実験としては著しく不備で ある、ということも強調しておきましょう。(^_^;)