高速リアルタイム スペクトラムアナライザー
WaveSpectra
この WaveSpectra は、サウンドカードや、Waveファイルを入力とする音声信号を
FFT(高速フーリエ変換)して、リアルタイムにその周波数成分(スペクトラム)を表示するツールです。
高速に動作するように作りましたので、パソコンをオーディオ帯域のスペアナとして使用することができます。
(元々PCのクロックが100MHzそこそこの頃に開発したものなので、数世代前の機械でも充分使用可能です)
※ 数十フレーム/秒 程度の速度が得られれば、ほぼ入力の変化にリアルタイムに追従して見えます。
※ 8、16、24、32bit(含 浮動小数点)Waveフォーマット(PCMのみ)、384kHzサンプリング(目盛上では10MHz)まで対応。
※ BWF(Broadcast Wave Format)フォーマット、RF64フォーマット(4GB以上)、
8チャンネルまでのマルチチャンネルWaveファイル(WAVEFORMATEXTENSIBLE 形式)に対応。
※ MME、DirectSound、ASIO、WASAPI (排他モード Windows Vista SP1、Windows 7 のみ) ドライバ対応。

[ASIO is a trademark of Steinberg Soft- und
Hardware GmbH]
測定機能としては、ピークホールド波形、平均波形、リードアウト、オーバーレイ(ロード、セーブ、Excel等へのエクスポート)、THD(+N)、S/N、RMS
などがあり、その他、Spectrum 3D表示や、Waveリサジュー(X-Y)表示、レベルメーター表示もできます。
(表示画面は、任意のタイミングでクリップボードへコピーできます)
さらに、Waveファイル再生時には、位置指定トラックバーのツマミの動きに追従した分析/波形表示機能や、任意の正確な位置での分析機能もあります。(分析モード:分析位置精細指定機能。サウンドデバイスが無い場合や再生できないフォーマットのWaveファイルでも、分析位置
精細指定機能は使用可能)
また、サウンドデバイスから入力するときには、同時にファイルへ録音しながら動作させることが出来ます。
様々な測定機能もありますが、とりあえずは
あまり難しいことを考えずに Waveファイル演奏用のプレーヤー(プレイリスト機能付き)や、録音機として使ってみて下さい。
音楽のスペクトルの変化を見ているだけでもなかなか楽しいものです。
動作環境
- Windows XP 以降
(注: V1.50 から 95/98/Me では動作しなくなりました。 この場合は V1.40 をお使いください。 2000 でも動かせないことはないのですが、特殊な手順が必要なので対象外としました。
どうしても、という方はご連絡ください)
CPUクロック: 500MHz
以上なら大抵問題無し。(それよりグラフィクス性能の方が影響するかも)
- 測定精度はサウンドデバイスの性能に依存するので、できるだけ高性能なものを使われることを推奨します。
(192kHz/24bit等の高性能なデバイスを用いることで約100kHzまでかなりの精度で観測/測定可能)
※WaveSpectraを用いた周波数特性の測定と、歪率の測定についての注意点などです。
ヘルプに書いてあるもののコピーですが、読んで頂けないのか(涙)よく質問のメールを頂くのでここに掲載しておきます。
(V1.50 からの変更点)
[バグ修正&改良]
- マーカーが記録されたcueチャンクに付随するLIST adtl チャンクの中の"入れ子"状態のチャンク(labl, note, ltxt)の数が多いファイルはエラーになって読み込めなかったのを修正。(100+αのマーカー数に対応)
- 精細位置指定機能(分析モード)の位置指定ウィンドウにおいて、マーカー機能を 100個まで記録&表示できるように増やした。
- 精細位置指定機能の現在位置の先頭部分の音の再生で、連続リピート中にマウス右ボタンも同時に押すと不安定になったりハングアップしたりすることがあったのを修正。
(前バージョン V1.50 ← 2011/11/11 V1.40 からの変更点)
- WASAPI (Windows Audio Session API) に対応。 (Windows
Vista SP1、Windows 7 のみ)
排他モード専用 (イベント駆動モード、タイマー駆動モード
両方)
- ファイルアドレッシングを64bit化し、2GB以上のWaveファイル、4GB以上の
RF64フォーマット に対応。(再生/録音共)
ファイルへの録音時、従来通りの2GB毎での分割(99までに変更)の他に、4GBを超えると自動的にRF64フォーマットになるモードを追加。
- BWF(Broadcast Wave Format)フォーマットのファイルに対応。(再生/録音共)
- 多チャンネルのWaveファイル(WAVEFORMATEXTENSIBLE 形式)に対応。(再生/録音共 8chまで)
- 設定ダイアログ の 録音/再生 タブ で、使用可能フォーマットボタン を押したときの表示ウィンドウを変更。 ウィンドウを先に表示し、現在チェック中の箇所をリアルタイムで表示するようにした。
また、S,M等の表示から、サポートされるチャンネル番号の数字での表示に変更した。
- 設定ダイアログ の 録音/再生 タブ で、使用可能フォーマット を 384kHz まで拡大。(内部的には10MHzまで可能)
- 設定ダイアログ の 録音/再生 タブ で、Info/Panel ボタンをそれぞれに分離した。(ASIO、WASAPI)
- これまで Monoファイルは常に Stereo で再生されていたのを、Mono
のまま再生されるように変更。
設定ダイアログ の 録音/再生 タブ - 再生 で、"MonoはStereoで再生" にチェックを入れると、従来どおりになる。
(チェック無しの設定でも、MME、DirectSound の時は、必ず Stereo で再生されるようである)
- これまで、再生できないフォーマットの時は必ず分析モード(精細位置指定モード)で開くようになっていたのを、そうならないように選択できるようにした。
設定ダイアログ の 録音/再生 タブ - 再生 で、"再生できないフォーマットの時は自動的に分析モードで開く" にチェックを入れると、従来どおり。
- 設定ダイアログ の 録音/再生 タブ "ファイルへの録音"
で、"定期的ヘッダ更新" のOn/Offができるようにした。
- 設定ダイアログの Wave と Spectrum タブ で、描画方法の自動設定ボタン追加。
(最初の起動時にも自動的に設定ウィンドウが開くようにした)
- 設定ダイアログの Wave タブ - Waveファイル情報ウィンドウ の 表示 ボタンで、Waveファイルの詳細情報(チャンクの内容)を表示するウィンドウを開くようにした。
- 設定ダイアログ の その他 タブで、"タイマー/休止 の分解能" のチェック機能と設定機能 を追加。
- 設定ダイアログ の その他 タブで、"WaveSpectra:2" の同期機能 を追加。
2番目の WaveSpectra:2 の動作を
1番目からコントロールして同時に行うことができるようになり、簡易的に Lch、Rch 両方のスペクトラムを同時に観測することもできるようになった。
- 設定ダイアログで 設定 ボタンを押したとき、即時にProfile書き込みするように変更。
- レベルメーター を縦方向にも表示できるようにした。 縦横とも8chまで表示可能になった。
- 測定モード Spectrum の Max、および リードアウト
の時に、"補間して精度を向上" させる機能を追加。
設定ダイアログ の Spectrum タブ - 数値表示
(Max、リードアウト) で、x16、x128 に設定可能。
- 目盛りの上では サンプリング周波数 Fs 100〜10MHz
まで、FFTサンプルデータ数 128 まで対応。
- メインウィンドウ Wave: 欄の表示を変更。
BWFフォーマットの時は最後に B の表示追加、RF64フォーマットの時は
64 の表示を追加。
Wave: 欄を右クリックするとファイルの詳細情報を表示。
(設定ダイアログの Wave タブ Waveファイル情報ウィンドウ
の 表示 ボタン と同じ機能)
- プレイリスト ウィンドウへ演奏位置を変える 前へ(Prev)、次へ(Next)、巻戻し(REW)、早送り(FF)
ボタン を追加。
(巻戻し と 早送りは、押し続けると加速する)
- MME だけでなく全てのドライバで 精細位置指定機能(分析モード)になるようにした。
- 精細位置指定機能の時に現在位置の先頭部分の音が再生できるようになった。(約0.1秒間)
MMEの時のみ、FFTサンプルデータ数の長さの分だけ波形再生することも可能。
- 精細位置指定機能(分析モード)において、マーカー機能を変更、30個まで記録できるように追加。
WaveファイルにCueチャンクが有る時にはそのCueリストを読込んでマーカーとして使用可能。
またマーカーリストを編集して元のファイルにCueリストとして書き込むことも可能。
- TrackBar の部分を、ウィンドウ横サイズの変化に対応して伸縮可能にする機能を追加。
- Spectrum の表示エリアにコメント行を表示できるようにした。(3種類まで記憶)
- コマンドラインからのファイル演奏に対応。複数ファイルもOK。
1ファイルのみならAutoPlayに関わらず自動演奏する。
(アイコンへのDrag&Drop、関連付けをしてのコマンドライン演奏に対応)
- ファイルへの録音時の最大時間表示を 999m59s
へ拡大。
- ファイルへの録音時に、Ctrl + D キーで 強制的にファイル分割できるようにした。
(2GB分割モードの時のみ。RF64モードでは働かない)
[改良]
- 再生、録音、の内部処理を共通化。
- 一部、外部DLLとして分離。 (高速化)
- 録音時、ウィンドウタイトル(WSではレベルメーターやリサジューウィンドウでも同じ)をマウスで掴んだままにするなどして負荷を与えた場合に音飛び状態になっていたのを改良。(バッファサイズ変更)
- TrackBar で位置を変える時の応答を高速化。
- Wave/Spectrum 目盛り表示を改良。
- Wave リードアウト の時間軸表示精度を改良。
- レベルメーター の描画方法を改良。
- タイトルバーのファイル名表示を改良。 (CompactPath)
- L/R ボタンのイメージを少し変更。(画面のテーマによっては凹凸が見難いことに対応)
- WS.INI への Windowサイズの記録方法を改良。
(Client size)
- バージョン番号を WS.INI へ記録し、バージョンが変わると初期メッセージ+ヘルプを表示するようにした。
また、最初の実行時、描画方法の自動設定ウィンドウを実行するようにした。
- 見かけを少し今風にした。(テーマ)
[バグ修正]
- プレイリストで Fs が変わっても目盛が変わらないのを修正。
- プレイリストの演奏において、無音長 0 で ASIO
の時 "Unable to create ASIO Buffer"
エラーになっていたのを修正。
- メインウィンドウへプレイリストファイルを
Drag&Drop するとエラーになっていたのを修正。
- 再生中にプレイリストファイルを Drag&Drop
すると、再生が止まらなかったのを修正。
- XPのバグで、MME での録音時に、時間表示が
05m49s(192k/32bit) 07m46s(192k/24bit)
11m39s(192k/16bit) 11m39s(96k/32bit) 46m36s(48k/16bit) で止まるのを修正。
以下はβ版 V1.49b1
(2011/09/03) から変更された部分のまとめです。
- 設定ダイアログ の その他 タブで、"WaveSpectra:2" の同期機能 を追加。
2番目の WaveSpectra:2 の動作を
1番目からコントロールして同時に行うことができるようになり、簡易的に Lch、Rch 両方のスペクトラムを同時に観測することもできるようになった。
- 精細位置指定機能(分析モード)において、マーカーリストを編集して元のファイルにCueリストとして書き込むことが可能になった。
- 録音時、ウィンドウタイトル(WSではレベルメーターやリサジューウィンドウでも同じ)をマウスで掴んだままにするなどして負荷を与えた場合に音飛び状態になることがあったのを改良。(バッファサイズ変更)
- TrackBar で位置を変える時の応答を高速化。
- L/R ボタンのイメージを少し変更。(画面のテーマによっては凹凸が見難いことに対応)
- コマンドライン引数が正常に働かなかったのを修正。
.WAVにファイルの関連付けをして.WAVをダブルクリックした時、一度目はファイルを読み込んで起動するが、起動後にダブルクリックしてもファイルを読み込まないようになっていたのを修正。
- 測定モード で Peakボタン(PeakHold)
を押した状態で終了した時、次の実行でメモリーアクセス違反で起動できなかったのを修正。
これ関連し、Peakボタン、Avgコンボボックスの設定が INI
ファイルに保存されているにもかかわらず、次の実行時に再現できていなかったのを修正。
- 描画方法自動設定ウィンドウで、測定スレッドとスペクトル表示スレッドの間で描画方法の設定切替の際にデッドロックが起こりハングアップすることがあったのを修正。
- 一部のデバイスを ASIO4ALL
で使用した場合、スタート時に波形表示がずれるのを修正。(スタートまでに時間が掛かる場合の再生位置検出部を改良)
同じ原因で位置指定ウィンドウでの 現在位置の先頭部分を約0.1秒間再生 の音が出ない場合があったのを修正。
- 各所のメモリーアクセスエラー部分を修正。
※ このソフトはフリーウェアです。
|
※ セキュリティ/ウィルスチェックソフトによっては単に新規ソフトというだけで無条件に削除する(使用者が少ないというだけで、ちゃんと動作を検査しているわけではないのは明らか)ものもあるようですのでご注意ください。
もちろん危険なものではありませんので、その場合は大変ご面倒ですが、そのソフトのヘルプを参照して "WS.EXE を信頼する"
という処理を行ってください。
|
注: V1.50 から、Windows 95/98/Me (/2000) では動作しなくなりました。
その場合は V1.40 をお使いください。
[バグ情報] V1.40 において現在確認されているバグは以下の通りです。
- プレイリストでの演奏において、"無音長" が 0 以外でサウンドデバイスのドライバが ASIO の場合、次の曲に移る時に
"Unable to create ASIO Buffer" エラーになります。
対策: "無音長" を 0 にすると正常に動作しますので、とりあえずこの状態で使っておいて下さい。
- ヘルプファイルの "プレイリスト"
のページ
"Shiftキーを押しながら プレイボタン を押すと..." は、
"Shiftキーを押しながら Waveファイルを開くボタン を押すと..."
の間違いです。
|
|
※ 5.1ch (6ch) のWaveファイルサンプルです。 もし必要な場合はテスト用にお使いください。
(WAVE_FORMAT_EXTENSIBLE 形式 10秒間 詳しくは中のTEST_5_1ch.TXT を参照ください)
|
●ヘルプファイル WS.CHM が表示されない場合の対処方法はこちらを参照してください。
