Cycling '74 Max 8で64chオーディオ出力チェックをするの続編で今回はマルチチャンネル入力に対して同様の事を行います。
想定した使い方は主に以下
ケース1、リファレンス音源と実際のスピーカ+マイクの比較
ケース2、校正をしているマイクロフォンと実験用アレイマイクロフォンの比較
ケース3、ケース2に加えて実験用アレイマイクロフォンの相対比較による保守メンテナンス
ケース4、マイクプリアンプを搭載しているデジタル入力ボックスの保守メンテナンス
以上です。
ケース1はSmaartの真似事ですので実用性はありません。ですが、基準波形をwavで保管して置き、それと対比することでレンタル返りのスピーカの簡易測定に使用できるかな?と考えました。
ケース2と3はやや特殊用途で、マルチチャンネル(アレイ)マイクロフォンの導入後の定期点検用途です。環境の条件が同じ2値比較であれば静寂さが必要になる場合を除き、必ずしも無響室を必要としません。
ケース4はDanteのADステージボックス、MADIのDanteのAD変換器などの保守です。それぞれのHAがズレてないかの確認用途です。こちらも上記同様に相対評価であれば測定器などを必要としません。
Cycling '74 Max 8によるFFT
Maxの「plot~」で用意されているサンプルプログラムのfftは44.1kHzが基準でした。こちらを48kHz対応にする必要があり手を加えました。それと、縦のマグニチュードスケールがどう検証しても合っていませんでしたので数値も取り直しました。(この辺り、なぜこのdBスケールなのか説明ができません。)
テストプログラムを作るにあたり、fftの分解能も問題になり、周波数分解能とは何かと調べました。
周波数分解能の算出
サンプリング周波数:48kHz
fft 1024
48k / 2.56 = 18.75kHz
解析上限周波数 = 18.75kHz
ライン数 = 1024 / 2.56 = 400
18750 / 400 = 46.875Hz
周波数分解能 = 46.875Hz
参考外部リンク:
装置設計者のための騒音の基礎 第21回|投稿一覧
fftのブロックサイズを1024(2^10)以上にする事は試したものの、動作が厳しそうなので据え置きました。※2048、4096と試したが応答性が悪くなった。
また、現在のサンプリング周波数を取得し、fftに反映する方法は諦め、48kHz固定にしました。
各パーツの動作を確認
Cycling '74 Max 8で64chオーディオ出力チェックであらかた固まっていたのでまずは必要なパーツの作成を優先しました。レイアウトは後でどうにでもなる為です。「決められた解像度内で先にレイアウトを決める必要がない」というのは近年の流行でしょうか。筆者としては非常にやりやすいので助かります。
「matrixctrl」 と「number」の相互操作
「matrixctrl」 と「number」の双方から相互に操作が行え、相互に結果を反映し合う必要がありましたのでループ処理にならないよう設定が必要でした。Maxは「number」だけではループが可能(上下ボタンで整数加算減算しているヤツがそれ)なのですが他はダメな様です。100msecのゲートを設ける事でそこは解決できました。(上記の100msecホールドがそのゲートです)
完成したパッチ全体図
ver1.1のGUI
表示に必要なサイズはだいたい1200×930です。但しウィンドウのスクロールを許可しているので1366×768環境でも操作は可能です。
操作説明
・ON/OFF
「SETUP」はオーディオI/Fの設定を行います。
スピーカアイコンはオーディオ出力のON/OFFを切り替えます。このアイコンがグレーアウトしている時は音が出力されません。
サンプリング周波数を48kHzに設定する
fftはサンプリング周波数48kHzでないと横軸の目盛が正常に働きません。従って、サンプリング周波数を48kHzに設定する必要があります。「SETUP」から上記の設定確認、変更をお願いします。
「matrixctrl」 と「number」の相互作用部分はココ
I/Fの設定を行ったら、任意のチャンネルを選択します。チャンネル選択は2箇所から行えます。どちらで操作を行っても相互に動く様に設計しました。簡単に見えてこうした挙動が難しい・・・しかし感覚的にはこうならないと変だよな、って違和感は潰しておきたいですね。
主要測定部
●スコープ&X-Yリサージュ
・SCOPE
Maxで標準搭載されているスコープです。気分を盛り上げます。
表示は自動モードで、ロック出来るレベルや周波数がかなり狭く正確な表示とはなりません。あくまで飾りと考えてください。
・X-Y
選択した2値の位相比較を行います。主に条件が同じものの比較に使えるかと思います。スケールで40dBまで増幅可能です。Xはセレクトチャンネル、Yはリファレンスチャンネルが設定してあります。
●2値比較用FFT
周波数分解能 = 46.875Hzですので、100Hz以下の目盛はあるものの、だいたい50Hz刻みでしか表示が成立していないと言う事を忘れないで下さい。
こちらのグラフはあらかじめ用意された色を選択し変更する事が可能です。こちらのカラーはCUDのRGB値を参考にしています。
●FFT&スペクトログラム
こちらはMaxであらかじめ用意されているFFT&スペクトログラムです。横軸スケールをlogとリニアに切り替えが可能です。スケールは60dBまで増幅が可能です。
こういったものが標準で扱えるMaxは一体何を想定しているソフトウェアなのでしょうかね・・・?
リファレンスはドロップダウンリストから選択します
ジェネレータで選択した音源はリファレンス項目の「Generator」に反映されます
●GENERATOR
・SOURCE SELECT
テスト信号選択メニューです。
選択可能な信号は以下です。
1.サイン波(周波数可変)
2.ピンクノイズ
3.ホワイトノイズ
4.極性(ポラリティ)試験信号
5.オーディオファイル(1ch)
6.オーディオI/Fの1ch入力
・SINE WAVE Hz
「SOURCE SELECT」でサイン波を選択してる時のみ有効な周波数設定です。
100Hz、1kHz、10kHzは一発設定ボタンを設けています。選択可能な範囲は10Hz~20000Hz(20kHz)です。数字の部分をドラッグし上下に動かすと任意の周波数に変更が可能です。選択中は数字の手入力も可能です。上下の三角ボタンは周波数を1Hzづつ変更が可能です。
・AUDIO FILE PLAY
「SOURCE SELECT」オーディオファイルを選択してる時のみ有効な再生ファイル設定です。
WavやMP3音源ファイルを白い部分にドラッグアンドドロップを行うとファイルが設定されます。その後、再生ボタン(緑の三角)をクリックすると音源を再生します。デフォルトでループ再生となっています。シークバーをクリックする事により一般的な再生ソフトの様に再生ポイントを任意に設定できます。
・OUTPUT GAIN
出力レベル設定です。選択可能な範囲はー70dBFS~0dBFSです。-30dBFS、-20dBFS、-18dBFSは一発設定ボタンを設けています。デフォルトでは-20dBFSが選択されています。数字の部分をドラッグし上下に動かすと任意のレベルに変更が可能です。選択中は数字の手入力も可能です。上下の三角ボタンは出力レベルを1dBづつ変更が可能です。
※Dante回線など即スピーカ出力が行われる場合は音量に注意してください。
実際の動作の様子
マイク2本をコンペアしている様子。感度差(右側のRME TotalMix Fxのヘッドアンプゲイン)と位相と周波数特性がなんとなく分かる
完成したパッチは以下でダウンロード可能です。.exeファイルでも書き出してありますので、Maxを所有していない方でも単独で仕様が可能なはずです。(Mac環境では試験していません)
また、Maxは誰でもダウンロードが可能で、ユーザ登録もしなければ保存と書き出しが制限された状態で永続的に起動が可能ですので、もしご興味ありましたら今回のパッチを展開してみてください。
今回のパッチダウンロード先
Multi_Audio_in_check
https://onedrive.live.com/?authkey=%21AHjez7Dkv6VuVGo&cid=AA4D2ADF77861148&id=AA4D2ADF77861148%2138112&parId=AA4D2ADF77861148%2130753&action=locate
おまけ
Cycling '74 Max 8で64chオーディオ出力チェックと合わせて、同一PC内でDante DVSとRME Digiface Danteで64ch受け渡しテストが可能でした。Maxのパッチ、.exe化していると同一アプリケーションとしてみなされず、オーディオI/Fが個別に選択できる様です。(意味は無いですが)
こんな事がノートPCで出来るなんて・・・・・