LocalizeMUSIC , SourceTracker , HRLE の パラメータをネットワークの実行中に変更できるように ネットワーク通信を介してパラメータを受信し,それらのノードに渡す.
無し.
どんなときに使うのか
LocalizeMUSIC , SourceTracker , HRLE のパラメータを ネットワークを実行しながら変更したい時に使う.
典型的な接続例
図6.100に典型的な接続例を示す.
図6.100のLocalizeMUSIC , SourceTracker , HRLE には,デフォルトでは非表示の PARAMS 入力端子が追加されている. 非表示入力の追加方法を図6.101に示す.
入力
無し.
出力
: Vector<ObjectRef> 型. LocalizeMUSIC のパラメータを出力する.LocalizeMUSIC の PARAMS 入力端子に接続する.
: Vector<ObjectRef> 型. SourceTracker のパラメータを出力する.SourceTracker の PARAMS 入力端子に接続する.
: Vector<ObjectRef> 型. HRLE のパラメータを出力する.HRLE の PARAMS 入力端子に接続する.
パラメータ
本ノードがソケット通信のサーバーとなり,クライアントプログラムから LocalizeMUSIC , SourceTracker , HRLE のパラメータをノンブロッキングで受信して,それらのノードに渡す.
受信データは float 型で長さ12の配列(以下,buff[12]とする)である必要があり, 受信したフレームではパラメータを更新し, 受信しなかったフレームでは前回のパラメータを保持する.
buff[12]は以下のようにデコードされて次段ノードに送信される.
NUM_SOURCE (LocalizeMUSIC ) : (int)buff[0]
MIN_DEG (LocalizeMUSIC ) : (int)buff[1]
MAX_DEG (LocalizeMUSIC ) : (int)buff[2]
LOWER_BOUND_FREQUENCY (LocalizeMUSIC ) : (int)buff[3]
UPPER_BOUND_FREQUENCY (LocalizeMUSIC ) : (int)buff[4]
THRESH (SourceTracker ) : (float)buff[5]
PAUSE_LENGTH (SourceTracker ) : (float)buff[6]
MIN_SRC_INTERVAL (SourceTracker ) : (float)buff[7]
MIN_TFINDEX_INTERVAL (SourceTracker ) : (float)buff[8]
COMPARE_MODE (SourceTracker ) : (Source::CompareMode)buff[9]
LX (HRLE ) : (float)buff[10]
TIME_CONSTANT (HRLE ) : (int)buff[11]
本ノードはクライアントプログラムの再接続に対応している.
以下,クライアントプログラムの例を示す(python).
#!/usr/bin/python import socket import struct HOST = ’localhost’ # The remote host PORT = 9999 # The same port as used by the server sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((HOST, PORT)) buff = [2.0, -180.0, 180.0, 500.0, 2800.0, 30.0, 800.0, 20.0, 6.0, 0.0, 0.85, 16000.0] msg = struct.pack("f"*len(buff), *buff) sock.send(msg) sock.close()