Vector<ObjectRef> 型のフレームのデータをファイルに保存する. サポートされている ObjectRef は float 型と complex<float> 型のみである.
無し.
どんなときに使うのか
このノードは,複数のフレームのVector<ObjectRef> 型データを1つのファイルに保存するために用いる.
典型的な接続例
図 6.130 は,ネットワーク内で SaveVectorFrames を使用した接続例を示す. このネットワークでは, SaveVectorFrames は通常は非表示である LocalizeMUSIC のSPECTRUM端末で出力されたデータを入力として受け取る. それらのデータは方向毎の MUSIC スペクトルのパワーである. 将来の使用または文書化のために, SaveVectorFrames を使用してデータをファイルに保存する. LocalizeMUSIC の非表示出力SPECTRUMの詳細については, LocalizeMUSIC ノードリファレンス,特に LocalizeMUSIC の6.2.14.4ノードの入出力とプロパティを参照されたい.
入力
: Vector<ObjectRef> 型のフレームのデータ. サポートされている型は Vector<float> 型と Vector<complex<float> > 型.
出力
: 複数のフレームの Vector<ObjectRef> 型データを保存したファイル.
パラメータ
パラメータ名 |
型 |
デフォルト値 |
単位 |
説明 |
FILENAME |
出力ファイルのファイル名. |
|||
OUTPUTTYPE |
TEXT |
出力ファイルのファイル形式オプション. テキストファイルの場合はTEXT,バイナリファイルの場合はRAWを選択する. |
: string type. 出力ファイルのファイル名.
: string type. 出力ファイルのファイル形式オプション. テキストファイルの場合はTEXT,バイナリファイルの場合はRAWを選択する. デフォルト値はTEXT.
SaveVectorFrames は,複数のフレームの Vector< float > 型または Vector<complex<float> > 型のデータを入力として受け取り,それらのすべてのデータを1つのファイルに保存する. ファイル形式は,OUTPUTTYPEパラメータで指定する. OUTPUTTYPEパラメータをRAWに設定すると,フレームのデータは,リトルエンディアン順にIEEE 754 32ビット単精度浮動小数点数形式で書き込まれる. このパラメータのデフォルト値TEXTは,RAWとは異なり人間が読めるデータを出力する.
表 6.129 に,OUTPUTTYPEパラメータでTEXTが選択されたときに,ファイル内でデータがどのようにフォーマットされるかの詳細を示す. 各データはスペースで区切られ,フレームのデータはラインフィードによってVectorのサイズでフレームごとに分離される.
データ型 |
ファイルフォーマット |
|
Float |
data[0] data[1] data[2] ... data[n] |
|
data[0] data[1] data[2] ...... data[n] |
||
Complex |
data[0].real() data[0].imag() data[1].real() data[1].imag() ... data[n].real() data[n].imag() |
|
float |
ここで,nは,フレームのデータが格納されている入力ベクターのサイズである.
SaveVectorFrames は,データを受け取ったときにVectorのサイズをチェックする. 上のサンプルネットワーク(図 6.130)では, LocalizeMUSIC は Vector<float> を出力する. LocalizeMUSIC で指定された伝達関数が72個の音源から生成された場合,予想されるベクターサイズは72になる.伝達関数は音伝播のモデルである. 伝達関数の音源数は,ベクターサイズに影響を与える要因の1つであり,伝達関数作成中に決定される. 伝達関数の詳細については,https://www.hark.jp/document/harktv/の「HARK Transfer Function Tutorial」のビデオを参照して頂きたい. 伝達関数を生成するための詳細なドキュメントは,https://www.hark.jp/document/transfer-function-generation-manuals/を参照されたい.
入力データが Vector<float> 型に格納されていて,列サイズが72で,合計6397のフレームがあるとすると,出力ファイルの内容は図 6.131 のようになる. 表 6.129 に記述されているTEXTファイル形式でデータが保存されているものとする.
図 6.131 および図 6.132 の左側に書かれたフレーム番号は,ファイルに書き込まれないことに注意.
図 6.132 は,入力データが図 6.130 のサンプルネットワークのような Vector<complex<float> > 型の場合の出力ファイルのサンプル内容を示す.列サイズは71. 合計で6397のフレームがある. また,データは表 6.129 に記述されているTEXTファイル形式で保存されているものとする.
Filename:
FILENAMEパラメータに値を指定するときは,フォーマット文字列と呼ばれるデータプロパティを持つ特別なパターン{tag:format}を使用するオプションを使用できる. フォーマット文字列を使用すると,入力データの情報を含んだファイル名を設定することができ,後の使用に便利である.
使用可能なタグを,表 6.130 に示す.
タグ |
説明 |
単位 |
datatype |
Data Type (float or complex float) |
String |
colsize |
Column size of Vector |
Integer |
dim |
Data Dimension (Fixed value. 1 for Vector) |
Integer |
表 6.130 にフォーマット文字列とその出力の例を示す..
フォーマット文字列 (FILENAME パラメータ値) |
出力 (フォーマット指定されたファイル名) |
||
samplefile.dat |
samplefile.dat |
||
samplefile_{datatype}.txt |
samplefile_complex_float.txt |
||
samplefile_col{colsize}.raw |
samplefile_col20.raw |
||
samplefile_dim{dim}.dat |
samplefile_dim1.dat |
||
samplefile_{datatype}_col{colsize}_dim{dim}.dat |
samplefile_complex_float_col20_dim1.dat |
LoadVectorFrames を使用して SaveVectorFrames によって出力されたファイルを Vector<ObjectRef> 型にロードするときは,列サイズおよびデータ型をパラメータで指定する必要がある. したがって,ファイル名にデータ情報を持つことは,後の使用に役立つ.
表 6.131 に示されているように,ファイル名の拡張子に関する規則はない. ユーザーが指定する任意の値にすることができる. ファイル名の拡張子は無くても良い.
{tag:format}の "format"の値はオプション. "format"は,03dのような桁数を指定するために使用できる.フォーマット指定子は,Cのprintfと同じである.