コンテンツにスキップ

クイックスタート

ソースから起動

Rust版を含むチェックアウトとRust 1.95以降が必要です。Rust版はmainにあります。macOSではXcode Command Line Tools、LinuxではALSA/X11/Waylandの開発ライブラリ、WindowsではMSVCとVisual Studio C++ Build Toolsを用意します。詳細はリポジトリのguide/rust/SETUP.mdを参照してください。

リポジトリのルートで実行します。

cargo run --release --locked

macOS/Linuxのローカルセットアップ環境では./scripts/cargo.sh run --release --lockedも使えます。通常は入力を停止した状態で起動します。

機器なしで最初の測定

  1. I/O / Input で Software Loopback を選びます。これは通常ビルドで使え、物理出力は行いません。
  2. Back to instruments で戻り、Scope の Pair with… / Spectrum で並べ、Start input を押します。
  3. 区画をクリックして詳細欄の対象を選びます。CH・時間軸・振幅・Autoset・カーソルは計器本体、FFT・窓・平均は選択中の詳細欄で調整します。最初は既定の8,192点を使ってください。
  4. Stop input で結果を保持し、カーソルやRMS、ピーク、PSDの帯域値を読みます。
  5. File から設定と保持結果を保存します。JSONは測定条件を含む正本、CSVは数値の再利用、PNGは表示の共有に使います。
  6. 再起動後、停止中に設定を復元し、参照JSONを読み込んで再測定結果と比較できます。設定復元だけで取得は始まりません。

524,288点では48 kHzで完全窓の取得に約10.92秒必要です。Live表示を速くしても、この観測時間は短くなりません。ContinuousはN/4ごとの全窓を解析し、Live/Latestの最新窓観察は過渡の捕捉を保証しません。

通常起動は入力・出力停止のScope単独表示です。計器一覧を選ぶと常に単独表示し、Measurement console / Add instrument… で最大7計器を保持します。左右・上下・2×2・タブを選べ、狭幅では保存した配置を変えずタブへ退避します。Open single で単独表示へ戻ってもコンソール構成は残ります。Remove from view は解析・出力を停止しません。右の詳細欄は選択区画へ追従し、狭幅では Measurement / Details で切り替えます。Running… で非表示の解析を確認・停止し、Stop output はすべての画面で使えます。LIVE/HELD/WAITING/NOT ACQUIREDは取得状態、有効性は別表示です。設定は版8で旧版1〜7を読み、復元後の入出力は停止状態です。

Scopeは波形直下のCH1〜CH4バーでCHを選び、チェックボックスで波形の表示を個別に切り替えます。選択と表示ON/OFFは独立し、2ch入力ではCH3/CH4を No input と表示します。右の Acquisition / Horizontal / Trigger / Channel で取得・時間軸・トリガー・選択CHのFSレンジとオフセットを編集します。時間軸は波形付近に常時表示し、波形上のホイールで変更できます。Shift+ホイールは選択CHの縦軸です。各CHの入力割当は Channel / Input source で1〜16chから選べます。旧設定は2本の割当と倍率を保持し、追加CH3/CH4を表示OFFにして読み込みます。

Spectrumは単一グラフに最大4chを重ねます。下部のCHバーで選択と表示ON/OFFを別々に操作します。右詳細欄はFFT→Frequency / Scale→Measurement→Averagingの順です。最上部のAmplitude / PSD / Transient (ESD)で測定量を切り替え、共通のFFT条件・表示軸を設定します。細かな周波数範囲はCustom frequency range、手動レベルはManualを選ぶと表示します。既定はCH1のみ表示です。

Transient (ESD) は過渡信号のエネルギー密度です。選択時に矩形窓・平均OFF・DC除去OFFへ切り替わります。打撃・減衰応答の全体を一つのFFT窓へ収めてください。電圧校正時はV²·s/Hz基準のdB表示、カーソル・JSON/CSVは線形値も扱い、Window energyは全周波数の積算V²·sです。Hann等の窓はエネルギーを減衰させ、その補正は行いません。DC除去もエネルギーを変えます。平均ONは各窓のエネルギーのEMAで、累積値ではありません。シングルショット・トリガー連携は未実装で、Live/Latestの過渡捕捉は保証しません。

Cursor A / Bを選んでグラフをクリック/ドラッグすると、2つの周波数を独立に固定し、選択CHの最寄りビンの振幅/PSD/ESDとΔf・ΔLを読み取れます。Clearで解除します。平均は下部のAverage / Weightで設定する線形パワーの指数平均(EMA)です。整定目安を表示し、処理窓数はAdvanced analysis / diagnosticsへまとめています。OFFのCHはFFTを停止し、再ONで新しい平均を開始します。ピーク・カーソル・結果書き出しは選択CHを対象にします。未校正振幅の0 dBFSはビン中心の1 FS peak正弦波です。

コンソール内で追加の測定詳細が区画高を超える場合は、その区画内を縦にスクロールできます。区画名と共通の入出力状態・停止操作はスクロールの外に残ります。

時間・周波数の変化を読む

Spectrogram を選び、Details / Display でBlue/Heat/Grayscale、dBFSのMin/Max、Auto color rangeを設定します。Min/Maxを編集するとManualへ戻ります。右端のカラーバーは有効な色範囲を示し、表示操作で解析・履歴は変更しません。

プロット上のホイールで周波数をズームし、背景ドラッグで周波数・時間をパンします。Shift+ホイールでも時間をスクロールできます。クリックでHoldへ入り、実FFTフレームを時間A/Bへ固定します。Hold中も測定は続き、Live で履歴と時間選択を解放します。ダブルクリックは周波数全体と現在モードの最新端へ戻ります。Time Range は5/10/30/60秒です。履歴は最大120秒・96 MiBで、表示は512行・1,024列以内へ縮約します。実際の保持秒数と容量制限を表示し、不足分を補完しません。

Pair with… / Spectrum で選択した時間A/Bを重ね、Time A/Time B でピーク・周波数カーソルの対象を選びます。元のf64値と取得時の窓区間・CH・Fs・FFT条件を使う未校正FS/dBFS・平均なしの表示です。未選択・欠落には理由を表示します。Normal Spectrum、Live、Undo、入力再開で通常Spectrumへ戻り、通常の設定・平均・保持を維持します。履歴Spectrumの出力は対象外で、FileのScopeのみの出力は使えます。

Details / Analysis / FFT Overlap は50/75(既定)/87.5%です。行間隔はN/2/N/4/N/8サンプルで、周波数・振幅の定義は変わりません。高Overlapでは解析量が増え、容量内の保持秒数が短くなります。取得中の変更は旧履歴と連携を解除して完全窓を待ちます。停止中の編集は次回Start用です。旧設定のOverlapは75%で復元します。

各行のFFTはN/Fs秒の窓全体を使い、行間隔はhop/Fs秒です。時間A/Bは窓終端と実際の窓区間を示します。Overlapを増やしても窓時間や周波数分解能は変わりません。

画像の上部だけにデータがある場合は、見出しの保持秒数とTime Rangeを比べてください。表示幅が保持時間より長いと下側が空白になります。表示幅を短くすると、保持した範囲を大きく確認できます。

Generatorで正弦波を観測する

  1. Generator を選び、Pair with… / Scope で並べます。通常ビルドで使える2chの内部出力です。
  2. I/O / Outputで OUT 1/2 を割り当て、中央の各GENを ON にして周波数(Hz)・振幅(dBFS peak)・位相(発振器に対する進み、°)を入力します。Enterまたはフォーカス移動で適用し、Escで編集を取り消します。Generatorを選択して詳細欄の EDIT STEPで刻みを選び、±ボタンや上下キーでも調整できます。
  3. I/O / Output / Observe Generator で内部出力を入力に選び、Start output と Start input をそれぞれ押します。設定プレビューと実測波形は別です。
  4. Generator単独表示からSpectrum/Lock-inを並べて解析できます。動作中の編集では振幅・位相を滑らかに遷移し、Spectrum/Lock-inは遷移後に平均・整定をやり直します。
  5. Stop input は結果を保持し、出力は継続します。Stop output で出力を停止すると、取得中の入力には新しい無音サンプルが届きます。

中央はコンパクトな数値編集と設定プレビューです。広い画面は2ch横並び、狭い画面は両CHの状態を残すタブ表示になります。位相同期と適用詳細はGeneratorを選択した詳細欄で編集・確認します。Hide signal controlsで編集部を閉じ、測定グラフへ画面を割り当てられます。

出力FsはI/O / Outputで44.1/48/96/192 kHzから、入力・出力を停止して選びます。設定の復元には両方の停止が必要で、復元後も出力はOFFです。内部接続のJSON/CSV結果には受信区間に対応する出力条件を保存します。

実デバイスへ出力する場合は、停止中にI/O / Outputでデバイスを選び、対応するFs・CH数・PCMとOUTを設定します。未割当CHは無音です。I/O / Inputで接続先の実入力を選び、Start output/Start inputを個別に開始します。Observe Generatorは内部接続専用です。出力通知・コールバック停止はERRORとして保持し、**Reset output (stays OFF)**と明示Startで復帰します。設定は出力先・形式を保存し、復元後はOFFです。

外部入出力は別の時計で、出力遷移と入力解析窓は自動対応しません。編集後は入力側の整定を待ち、Lock-inは同期REFの実入力2chを使ってください。外部Generatorを観測した結果のJSON/CSVには、実適用設定・出力状態・失敗と最大128件の観測履歴を保存します。入力Stop/Single/失敗後の編集では履歴を変更しません。履歴と入力窓の対応は未校正として参照との数値差を表示しません。ホストで応答を観測した時刻はDAC/ADC時刻ではなく、欠落・退役した履歴も補完しません。結果形式は版4で、旧版1〜3も読み込めます。出力校正・DAC/ADC遅延は未確認です。

実入力を使う

入力デバイスと対応するサンプルレートを選び、Start input を押します。macOSでは起動したアプリ/ターミナルへのマイク許可が必要です。CH数やFsは機器に依存します。CH校正を使う場合も、Scopeの波形軸とトリガーはFSのままです。

macOSの実入出力は、起動処理やスケジューリングに余裕を持たせるため、機器の対応範囲内で約20 msの音声バッファを要求します。48 kHzで対応していれば1,024フレーム、約21.3 msです。出力編集・停止の応答はこのバッファ長にも依存します。サンプルレート・CH数・PCMの選択値や測定単位は変わりません。

停止中に入力・解析・校正を編集した場合は、次回Start用の条件です。保持中の結果の取得条件は変わりません。入力変更・再開時は古い世代の結果を混ぜず、新しい履歴を取得します。

実験段階のLock-in

計器一覧の Lock-in を選び、Software LoopbackでREFと応答を用意して本体のSIG/REF CHを指定します。Start analysis と Start input を個別に開始し、REF・フィルターは詳細欄で調整します。X/YとRはpeak単位、正の位相は応答の進みです。整定中・REF喪失・欠落を有効な測定値と扱わないでください。実機確認は未完了です。

Stopの解析完了後、File からLock-inの条件・校正・状態とf64値をJSON/CSVへ保存できます。無効値はJSONの null、CSVの空欄になります。参照比較には両結果の数値・取得条件を表示し、整定済みで公称Fs・CH・REF/フィルター設定・校正が一致する場合だけ数値差を表示します。PNGの表示対象はScope/Spectrumです。

同期2chのゲイン・位相・遅延を比べる

  1. Software Loopbackまたは実入力で同期2chを用意し、Synchronous 2ch を選びます。
  2. 本体で異なるREF/SIG CHを設定し、Start analysis と Start input を個別に開始します。窓・平均は詳細欄で調整します。既定N=4,096・平均8窓では48 kHzで約0.683秒の充填が必要です。
  3. Read at またはグラフをクリックして周波数ビンを選び、ゲイン・進み位相・コヒーレンスを読みます。正の位相はSIGの進み、正の遅延はSIGの遅れです。低REF・低コヒーレンス・欠落では数値を表示しません。
  4. Stop後にJSON/CSVへ保存し、停止中に設定を復元して再測定します。復元だけで入力・出力は始まりません。参照との差は条件・校正・励振が一致する有効結果に限ります。

Display rangeは選択点周辺・有効帯域・Nyquist全域・任意範囲、軸は線形/対数を選べます。既定は選択点周辺を拡大します。表示範囲は測定条件を変更しません。主要値は独立した読出しに表示し、詳細のホバーとJSON/CSVに元のf64精度を残します。

窓内平均を除去するf64のAC比較です。自己/複素クロスPSDを重複しない有限窓で算術平均し、H1とコヒーレンスを求めます。位相遅延は1/fだけ曖昧です。傾斜は8ビン以上の連続した十分な励振・コヒーレンスを必要とし、正弦波1本には広帯域遅延を表示しません。公称Fsを使用し、CH間位相・時間校正やDAC/ADCの絶対遅延は未確認です。PNGはScope/Spectrumの表示を対象とします。

確認範囲と未実装機能は 概要 を参照してください。