【Max】functionをfunctionで描く方法

記事をシェアする:

パラメータの変更カーブを描ける[function]はとても便利です。

サブパッチに入っていたり、複数の[function]を制御するために、[function]を[function]で描く方法を紹介します。

作り方

左の[function]を描くと[send]-[receive]を通り、右のfunctionに描かれるようにします。

点のデータを取得する

[function]に「dump」メッセージを送ると、第3アウトからリストメッセージで点の情報を出力します。左端の点から順番に「X  Y」の値がそれぞれ出力されます。

また[function]を編集すると第4アウトレットからbangを出力します。これを使って、編集後に点のデータを取得するようにします。

bangボタンを「dump」メッセージに接続し、それを[function]に接続しました。

点のデータを送る

受信側の形式

受信側は「X Y」の形式でメッセージを受けると点を追加できます。

送信側と受信側を繋げる

それでは先程出力された点のデータを[send]に送り、[receive]を受信側の[function]に繋いでみましょう。

データの送信は上手く行ったのですが、左側を編集すると、右側は編集した点が追加されるような形になりました。

送信側は全ての点の情報を出力します。受信側は既に存在する点の座標が同一な場合無視をして、新しい座標が来た際に点を追加します。送信側で点を移動させた場合、新しい座標が送信され、受信側で古い座標が残されたまま、新しい点を追加します。

この問題を解決するため、受信側に「clear」メッセージを送信してデータをクリアしてから、座標を送信するようにします。

clearメッセージを送る

送信側[function]の第4アウトのbangボタンと「dump」メッセージの間に[t b clear]を挿入しました。そして「clear」の出力を[send]に送ります。「dump」によって点が出力される前に「clear」を送信することで、受信側[function]をクリアし新しい座標を追加させます。

clearを追加する

「clear」ボタンを送信側に繋げて編集しやすくします。

送信側だけでなく、[send]にも接続し受信側にもメッセージを送るように繋げてください。

これで[function]を[function]で描けるようになりました。

記事をシェアする: