チュートリアル24:
send と receive

パッチコードを用いないメッセージの送信

どのような型のメッセージでも、パッチコードを用いずに、send オブジェクトと receive オブジェクトによって送信することができます。send オブジェクトのインレットへのメッセージは、同じアーギュメントを持つ receive オブジェクトのアウトレットから出力されます。

このパッチの中では、前の章で作った模倣するパッチを、 send オブジェクトと receive オブジェクト( sr とも呼ばれます)を使用して再び作り直しています。

・MIDI キーボードを演奏して下さい。ノートデータは、send オブジェクトと同じ名前(アーギュメント)を持った receive オブジェクト( r オブジェクト)に送信されます。

send オブジェクトが持つ名前のアーギュメントは、固有なラジオ周波数のようなもので、同じ名前を持ったあらゆるreceive オブジェクトがその周波数に「チャンネルを合わせ」ます。int、float、リスト、シンボルなど、あらゆる型のメッセージを s から r に送信できます。

パッチャーウィンドウ間のコミュニケーション

s オブジェクトや r オブジェクトには、パッチコードに比べて1つの際立った利点があります。それは、同じパッチャーウィンドウ内のオブジェクトでなくても通信することができるという点です。これは、異なるパッチ間の相互の通信を可能にする、非常に価値のある機能です。send オブジェクトや receive オブジェクトに名前を付ける際には十分注意しなければなりません。これにより、無意識に他のパッチャーウィンドウにメッセージを送信してしまうという過ちを犯さずにすみます。

value

value オブジェクト( v オブジェクトとも呼ばれます)はインレットで受信したあらゆるメッセージを格納します。bang メッセージを受信すると、格納しているメッセージを送信します。同じアーギュメントを持つすべての value オブジェクトはコンピュータのメモリ内の同じ場所を共有するため、その中のどのオブジェクトからでも値の格納、呼び戻しができます。1つの value オブジェクトに新しいメッセージが格納されると、同じ名前を共有しているその他すべての value オブジェクトも、その新しいメッセージを持つことになります。


格納された値は、他の場所から呼び戻すことができます。

・ナンバーボックスを使用して、share という名前を持つ value オブジェクトに数値を格納して下さい。bang メッセージを送信すると、どの value share オブジェクトからでも数値を呼び戻すことができます。

同じ名前を持つすべての value オブジェクトは、たとえ異なったパッチャーウィンドウに置かれている場合であっても、同じ値を共有します。

まとめ

send オブジェクトのインレットで受信されたメッセージは、たとえ異なるパッチャーウィンドウにある場合でも、同じ名前(アーギュメント)を持つ receive オブジェクトのアウトレットから出力されます。これはパッチ間の通信にとって非常に役立つ機能です。

value オブジェクトに格納されたメッセージは、たとえ異なるパッチャーウィンドウ にある場合でも、同じ名前を持つすべての value オブジェクトで共有されます。value オブジェクトは、インレットで bangを受信すると、格納されたメッセージを(それが同じ名前を持つ他の value オブジェクトで受信したメッセージの場合でも同様に)アウトレットから送信します。

参照

pv パッチやサブパッチに指定して変数を共有します。
receive パッチコードを用いずにメッセージを受信します。
send パッチコードを用いずに メッセージを送信します。
value 格納したメッセージを他のオブジェクトと共有します。