Sonir Remote

iOS 15以降 / Android

Remoteはリスニング位置の音響特性をスマートフォンで測定し、ルーム補正フィルタをBenchへ送信するアプリです。純粋な測定器として動作するため、音楽再生機能はありません。測定は端末に残せますが、録音データそのものは保持も送信もしません。

必要なもの

対応OSiOS 15以降。Androidも同じソースから作っています
入手iOSはApp Store。AndroidはGoogle Playのクローズドテスト(先にテスターのグループへ参加)
マイク内蔵マイクでも測れます。測定用の校正マイクを推奨します
校正ファイルUMIK・REW・FRD形式を読み込めます。無くても測定はできます
接続スマートフォンとBenchを同じネットワークに置き、設定の一覧からBenchを選びます(登録は不要)。一覧に出ないときはQRコードでつなぎます
権限マイク(iOSはローカルネットワークも)
  • 音を再生するのはBenchです。

    スイープ測定音はBenchが接続先のオーディオシステムから再生します。スマートフォン側は録音・解析・送信のみを行い、端末自体からは測定信号を出力しません。

  • 音楽を再生する機能はありません。

    スマートフォンで聴くモードは意図的に搭載していません。Benchのエンジンの開始・停止やグラフの並びの変更はスマートフォンからもできますが、音は常にBenchから出ます。スマートフォンの再生経路では設計本来の音質を再現できないためです。

測定の進みかた

ステップ行う操作次へ進む条件
接続設定の「Sonir Bench に接続」でBenchを選びます。次回からは自動で再接続されます。一覧に出ないときはQRコードでつなぎます接続完了
1 設定マイクを選び、必要に応じて校正ファイルを読み込みます(校正ファイルなしでも測定可能)。テスト音を再生し、「適切な音量です」と出るまでアンプの音量を調整します自動で次へ
2 測定Benchが聴いている音を止めてグラフを迂回し、スイープ音を再生します。スマートフォンが1箇所を録音します。「保存」で端末に残せます測定1回
3 EQ補正する範囲・ターゲット曲線・下限と上限を選び、自動PEQを送ります。Benchはライブラリに保存します。グラフの並びに一度足せば、以降は送るたびにそこが差し替わります
4 再測定マイクを同じ位置に置いたまま、EQを通して測り直し、補正の前後を比べますBenchでEQが鳴っていること
Benchがスイープの定義パラメータを送信(音声データではなく数値)
  → 端末側で録音サンプリングレートに合わせたスイープ信号と逆フィルタを生成
  → Benchがスイープ音を再生し、端末が録音
  → クロックドリフト補正を行いインパルス応答を抽出
  → 周波数特性を算出し、300〜3,000Hzを0dB基準に正規化
  → マイク校正データを適用
  → ライブラリで複数を選んだときは、それらを空間平均
  → 自動PEQを生成  →  Benchへ送信
Benchが送るのは数値パラメータで、受け取るのはフィルタ設定値です。どちらの向きにも録音データそのものは流れません。

数字の出しかた

  • スイープ信号は対数チャープで、逆フィルタによりデコンボリューションします。

    録音したスイープ信号に逆フィルタを畳み込むことでインパルス応答が得られます。この手法ではシステムの高調波歪みが線形応答の手前(負の時間領域)に分離されるため、線形応答に歪み成分が混ざりません。

  • 2つのクロックのずれ(ドリフト)を補正します。

    DACと端末のクロックは独立しているため、録音された信号は再生信号に対してわずかに伸縮します。インパルス応答はこのドリフトを補正した上で抽出されます。50ppm程度のクロック差は平滑化した周波数特性にはほとんど影響しませんが、インパルスの時間波形(位相)を著しく崩すため補正が不可欠です。

  • 絶対音圧の校正ではなく、相対特性の正規化です。

    部屋の音響特性が比較的安定している300〜3,000Hz帯域を0dB基準に揃えます。得られるのは絶対的な音圧レベルではなく周波数特性の形状であり、ルーム補正に必要なのはその形状情報です。

  • 複数箇所の測定結果を平均できます。

    1点のみの測定では、その位置固有の鋭いディップやコムフィルタまで拾ってしまいます。座席のまわりの数か所で測って保存し、ライブラリで選んで「ルーム EQ を作る」を押すと、空間平均から補正を作れます。

error(f) = 測定値(f) - ターゲット(f)

残っている誤差のうち一番大きいところにフィルタを1本置き、
残りに対して同じことを繰り返す(残差に対する貪欲法)

上限(既定で約300Hz)より下   ベルフィルタを定在波(ルームモード)の位置に配置
それより上                    高域シェルフ1本と、少数のベルフィルタ
ブーストよりカットを優先し、ブーストにはQ値の下限を設ける
最大ブースト・最大カットは、各バンド個別ではなく合成EQに対してクランプする
クリップを防ぐため、負のプリアンプゲインを自動適用する
補正は主にシュレーダー周波数(約300Hz)以下の低域に集中させます。この帯域では部屋がモーダル(定在波的)に振る舞うため、PEQフィルタによる補正が有効に機能します。それ以上の高域でマイクが捉えるピークやディップの多くは位置依存のコムフィルタであり、その細かな凹凸を追従して補正すると、測定したその1点以外の場所ではかえって特性を悪化させてしまいます。
  • ターゲット曲線としてフラット・傾斜(Tilt)・Harman・B&Kを用意しています。
  • 端末画面に表示される補正後の予測曲線は、アナログ原型フィルタとして評価しています。これはBenchが内部オーバーサンプリングレートで実行する処理と完全に一致します。もしスマートフォンの録音レート基準で予測してしまうと、高域シェルフが端末のナイキスト周波数へ向かって歪められ、画面表示と実際の再生音の間にズレが生じてしまいます。
  • 各バンドは周波数の低い順に出力されます。直列(カスケード)接続されるため、バンドの順序が音質に影響することはありません。

測定が満たすべき条件

レベルテスト音のピークが-18〜-3dBFSのとき「適切な音量です」と判定されます
入力不足録音ピークが-40dBFSを下回る場合、SN比不足として曲線を生成せずエラーにします
飽和クリップしたサンプルが全体の1%を超過するとエラーにします
失敗の原因表示マイク権限未許可・Bench未起動・別の測定が進行中・Bench側で中止・入力レベル不足・入力飽和・接続切断など、原因ごとに個別のエラーを表示します
  • 実機での検証を進めています。

    Benchに接続して状態を取得するフローまでは動作確認済みです。スイープ音を録音して補正データをBenchへ送り返す一連の処理と、校正ファイルを適用する極性(補正方向)については、実機での検証を継続しています。

端末に残るもの

  • 録音した音声データは端末外へ送信されません。端末内で周波数特性とPEQパラメータへ変換されます。
  • 保存した測定は端末の「ライブラリ」に残ります。残るのはインパルス応答・周波数特性と、そこから計算した値で、録音そのものは残しません。
  • ほかに端末に残るのは、読み込んだ校正ファイルと、最後に接続したBenchです。
  • オーディオ書き出し機能はありません。測定を音声ファイルとして保存することはできません。