MSPの動作

シグナルネットワーク

MaxのパッチとMSPの「シグナル・ネットワーク」

Maxオブジェクトは、パッチコードを通してお互いにメッセージを送ることによって通信しています。これらのメッセージは、ユーザによるアクション(マウスクリック、MIDIノートの受信等)への応答として、あるいはイベントが起ることが予定されている場合(metro、delay等)に、特定の瞬間に送られます。

MSPオブジェクトは、同じようにパッチコードによって接続されますが、それら相互の通信はその概念から違っています。MSPオブジェクトは、メッセージを送るために経路を確立するというよりは、むしろ接続されたオブジェクトの間の関係を確立するものであると言えます。そして、その関係はすべての瞬間瞬間に必要なオーディオ情報を計算するために使用されています。このMSPオブジェクトの形状は「シグナル・ネットワーク」として知られています。

次の例は、メッセージが送られるMaxパッチと、常に関係が確立され続けているシグナルネットワークの違いを示しています。

Maxメッセージは特定の瞬間に発生します。:MSPオブジェクトは絶えまなく通信しています

左のMaxの例では、number boxはfloatオブジェクトにストアされている数値0.75については何も知りません。ユーザがbuttonをクリックすると、floatオブジェクトはストアしている数値を送り出します。number boxは値0.75を受け取り、表示し、送り出すだけです。しかし、右のMSPの例では、シグナルネットワークの一部として接続されている各々のアウトレットは、絶えず方程式のために現在の値を与え続けています。そのため、特別なMaxメッセージが送られなくても、*~オブジェクトは2つのsig~オブジェクトからの出力を受け取っています。そして、*~オブジェクトのアウトレットに接続されたどのオブジェクトも積の値0.75を受信しています。

MSPシグナル・ネットワークについて考えるためのもう一つの方法は、Maxより速い(オーディオ)レートで実行されるパッチの一部とみなすことです。Maxやユーザが、パッチのシグナル部分に直接影響を及ぼすことができるのはミリ秒単位でだけです。MSPによる実行及び計算は、これらのミリ秒のインターバルの間で起こります。このように(非常に速いパッチとして)シグナルネットワークを考える場合でも、MSPオブジェクトを「送信」し、「受信」し続けるメッセージであると考えることは意味があります。(たとえ、これらのメッセージがMaxが理解できない位速く送られているとしてもです。)そのため、send、receive、input、output、といった、標準的なMaxの用語を、MSPオブジェクトについても同様に使います。

<-前の章 次の章->

目次へ