| 長野隆の Spectrum Analyzer 改め |
現在の最新版:v1.21 build 218(開発室版) 2002年1月8日(火)
2001年6月23日(土)
2000年9月12日(火)
- 開発室版 v1.21 build 210 を公開。
1.21 正式版公開に向けてのプレビュー。
1.20での改良を踏まえてソースコードを全面的に見直し、基本的なコンセプトである「Windows標準アクセサリのような気軽に使えるコンパクトアプリ」という姿勢を維持したまま、音階表示の精度向上など基本機能のブラッシュアップを計りました。音階表示の低音部でもボケることなくきれいにピークが立ちます。
私はおカネがないので未だに VC++5.0 を使用していますが、本バージョンでは Platform SDK に付属の LINK.EXE Version 5.012.8181.0 の隠しオプション設定を使用することで、VC++5.0 でありながら WAlign 処理済みの 4KB アラインメントのバイナリを作成できました。
今回はとりあえずバイナリのみの公開です。ソースはもちろん公開する予定ですが、ドキュメント不備のためもうしばらくお待ち下さい。
1.20以降のバージョンでは、Cランタイム MSVCRT.DLL をダイナミックリンクしています。MSVCRT.DLL は、Win98/2000 以降の Windows ではシステム標準装備なので今後はダイナミックリンクでバイナリを作成する方針です。初期版 Win95 な方は、IE4 以降または MS Office がインストール済みであれば MSVCRT.DLL がシステムに存在しますが、そうでない場合は何らかの方法で MSVCRT.DLL を入手する必要があります。
録音部分のプログラムコードは DirectSound を使うように変更しました。このため、DirectX 5 以降のバージョンが必要です。← Win95な場合。 (WinNT4ってDirectSound使えるのかな?)
“虫めがねボタン”の機能を変更し、
「高感度モード」を追加しました。
対数軸モードを追加
2000年3月29日(水)
- 開発室版v1.20RC3/正式版v1.18a に改訂。
当サイト移転に伴い、Infoダイアログ内のURLを修正しました。それ以外に前バージョンからの変更点はありません。
2000年3月26日(日)
- バージョン1.20系列プレビュー(画像は1.20RC2です)→開発室でダウンロードできます。
- 表示色を選択できるようになりました。
- キーボードでも操作できるようになりました。
- 各種設定をショートカットに保存できます。(レジストリやINIファイルは使用しません)
- 音階表示低音域の計算法を見直し、高速化&精度向上を果たしました。
- DirectDrawが使用可能ならば使うようにし、一層の軽快動作になりました。("ddraw.dll" がなくても十分高速に動作します)
2000年3月24日(金)
- 開発室版が バージョン1.20RC1 になりました。
2000年3月22日(水)
- DirectDrawに対応して高速化を図り、設定の保存/復元や目盛の表示など新機能を追加した、Version 1.20β4を公開しました。(→開発室)
2000年3月13日(月)
- β版を公開する「開発室」を設置しました。
- バージョン1.18公開。
- 名称を「NY Spectrum Analyzer」に変更しました。
- サンプリングを16bitで行うように仕様変更しました。
- ウィンドウサイズを自由に変更できるようになりました。
- 電源ボタンが作動しないバグ(v1.17で混入)を修正し、電源ボタンを「一時停止ボタン」に意味合いを変更しました。
- v1.17より配布ファイル名を変更しています。(SPECTxxx.LZH → NYSAxxxx.LZH)
最近のカッコいいミニ・コンポで音楽を聞くと、サウンドのスペクトルがグラフィカルに表示されますよね。(なんかカタカナばっか。)
あれは、イイっすね。別になくてもいいけど、あれば嬉しいっすね。
で、最近のPCは、マルチメディア何とかとか言って、CDも聞けるしMIDIなんかで曲も鳴らせるわけで、それならば、あのグラフィカルな奴が欲しいな、とフト思ったのが事の始まり...。
1. このプログラムの動作条件
- Microsoft® Windows® 95/98 または Windows® NT 3.51/4.0/Windows® 2000 (日本語版)
Windows® NT/2000での動作は未確認です(v1.17以降)。v1.16は動作確認済。- Intel® Pentium® 以上の性能のCPU(動作クロック200MHz以上推奨)
FPUを酷使するので、AMD-K6系よりもIntel系またはAMD-Athlonの方が快適に動作します。- 22.05kHz 16bits モノラル で全二重動作可能なサウンドデバイス
(NY Spectrum Analyzer は、録音機能を使用します。全二重に対応していないサウンドカードでは、音を鳴らしながらサンプリングすることはできません。)- カラーディスプレイ
表示モードは 32,768色(Hi-Color) 以上を推奨。
256色モードでも動作しますが、色が美しく出ない場合があります。- Windows標準添付の「ボリュームコントロール」または同等のソフトウェアが必要です。タスクトレイにスピーカーのアイコンがあるか確認して下さい。
- 【オプション】 ソースコードをコンパイルするには、Microsoft® Visual C++® 5.0 が必要です。
2. 機能簡介
![]()
・周波数表示モード
・オシロスコープ表示
![]()
・音階表示モード
・スペクトル履歴表示
- サウンドデバイスから入力された音声をリアルタイムにスペクトル表示します。それだけです。
- サウンドの再生機能は一切ありませんので、別途「メディア プレーヤー」や「CD プレーヤー」を使うなり外部入力させるなりして音源を確保して下さい。
- スペクトル表示には、周波数表示と音階表示を選べます。
- オシロスコープ表示やスペクトルの履歴表示も可能です。
- また、プログラム本体はEXEファイル1つだけで、レジストリには全く手を加えないので、安心してインストールおよびアン・インストールできます。
- ちなみに、フリーソフトです。ソースコードも公開していますので、動作のしくみを確認した上で安心して使うことができます。
- このソフトはシンプルさを最優先に設計しています。本格的にスペクトル分析する用途には向きません(きっぱり ^^ゞ)。
そういった用途には、efuさん作の WaveSpectra がおすすめです。
→ efu さんのページへ(URL修正 on 2001/05/21)
3. ダウンロード
【 最新バージョン v1.18a 】
配布ファイル(ソースコード付) NYSA118A.LZH 112KB
【 旧バージョン v1.16a はこちらです 】
- ファイルはLHA書庫形式に圧縮されています。LhasaやLHMeltなどのLHA解凍ツールを使って展開して下さい。
- v1.17からは、実行ファイルセットの中にソースコードセットも含めて、配布ファイルを一本化しました。
- また、v1.16aより、配布ファイル名を変更しました。(SPECTxxx.LZH → NYSAxxxx.LZH)
実行ファイル NYSA116A.LZH 38KB ソースコード SRC116A.LZH 73KB 4. インストール
- 実行ファイルセットを適当な解凍ツールを使って解凍して下さい。
- まず、添付の「ReadMe.txt」ファイルをメモ帳などを使って読んで下さい。
- インストーラはありません。実行に際しては、Spectrum.exe単体で動作しますので他のファイルは削除して構いません。
- プログラム本体「Spectrum.exe」を適当なフォルダに置いて、直接実行して下さい。
- あとは各自で、デスクトップにショートカットを作るなり、スタートメニューに登録するなり、好きなようにして下さい。デスクトップやスタートメニューのフォルダに直接プログラム本体を置いておいても構いません。
- 他に必要な追加DLLファイルなどはありません。
5. アン・インストール
- プログラム本体をごみ箱に放り込んで下さい。
- レジストリは一切使用していないので、ファイルを消せば跡形もなくアン・インストールされます。
- なお、ショートカットを作成していた場合は、各自でそれも削除して下さい。
6. 使い方
- 説明は省略します。適当にいじってみて下さい。
- v1.18の新機能:
ウィンドウサイズを自由に変更できるようになりました。ウィンドウの枠をドラッグできます。ただし、標準サイズの整数倍以外の不定形に変形すると表示に歪みが生じます。また、画像の拡大縮小をハードウェアでサポートしていない古いビデオドライバを使っている場合はパフォーマンスが悪化します。「ウィンドウサイズ正規化」ボタンを押すことでいつでも標準サイズに戻すことができます。
- 「録音レベル調整」ボタンを押して、Windows のボリュームコントロールを呼び出して入力レベルを適宜調整して下さい。録音用に選択されている音源からしか入力されないことに注意して下さい。
- ノイズが多い場合は、マイク音声を入力しないように設定してみて下さい。
- 調整のコツは、オシロスコープ表示ができるだけ大きく振れ、しかも決して振り切れることのないように録音レベルを調整することです。
- サウンドカードのライン入力端子に、オーディオコンポなどを接続して使うと楽しめると思います。
- 「最前面に表示」ボタンを押すと、同時にマルチタスクの優先度も上がり他のプログラムよりも優先して実行されるので、スムーズに動作します。他のプログラムの動作があまりに遅くなる場合はこの機能は使わないでください。
- 「ウィンドウサイズ正規化」ボタンを押すと、交互に標準サイズ/2倍サイズに切り替わります。ただし、画面解像度640x480の環境では2倍サイズにはならず、横幅は画面の横幅に切り詰められます。
- なお、プログラムの性質上、録音機能を使用する他のソフトウェアとは同時に実行できません。同時実行しても支障はありませんが、スペクトル表示は作動しません。
また、ソフトウェアMIDIなどのWAVE出力を入力できるかどうかは、サウンドカードのハードウェアに依存します。お手持ちのサウンドカードのドライバを最新のものに更新すると改善される場合があります。
7. 謝辞
本プログラムの作成にあたって、大浦拓哉氏による General Purpose FFT Package を使用させていただきました。このライブラリなしでは、本プログラムは日の目を見ることはありませんでした。優れたコードを公開されている、大浦さんに感謝します。
General Purpose FFT (Fast Fourier Transform) Package
Copyright ©1996-1999 by Takuya OOURA
http://momonga.t.u-tokyo.ac.jp/~ooura/index-j.html
8. 改版履歴
※ バージョン番号のあとのデータは、実行ファイル Spectrum.exe のファイル サイズと日付を表しています。 v1.18a 73,728 bytes 00-09-12 01:18:10 ・サポートホームページ移転に伴い、Infoダイアログ内のURLを変更。 ・それ以外はv1.18から変更なし。 v1.18 73,728 bytes 00-03-13 01:18:00 ・名称を「NY Spectrum Analyzer」に変更 ・サンプリングを16bitで行うように仕様変更。 ・ウィンドウサイズを可変に。 ・電源ボタンが作動しないバグ(1.17で混入)を修正し、電源ボタンを 一時停止ボタンに意味合いを変更。 v1.17a 73,728 bytes 00-03-05 01:17:10 ・起動時に一瞬画面が乱れるバグを修正 v1.17 73,728 bytes 00-03-05 01:17:00 ・ウィンドウサイズを2倍に拡大できるようになりました。 ・細かいバグを修正しました。(バージョン1.16aでの修正と同じです) ・配布ファイルセットにソースコードを含めました。 v1.16a 73,216 bytes 00-03-05 01:16:10 ・使用するFFTライブラリを fft4g.c から fftsg.c に変更。 ・多賀奈由太様からのご指摘により、Spectrum.c の 162行の if 式 中に誤りがあり、配列サイズを超えてアクセスをしていたのを修正。 v1.16 63,488 bytes 98-09-09 18:58:04 ・音階表示モードの計算精度を低音域・高音域で分けることで、より 高精度に表示されるようになった。 ・精度が上がったので表示音域をピアノと同じ88音階に拡大。 ・周波数表示モードで不必要に計算精度が高かったのを修正して、応 答速度を改善した。 ・問題点として、高音域・低音域で二回に分けて計算をしているので、 CPUパワーの消費量が増えてしまった。(音階モードのみ) v1.15 62,976 bytes 98-09-04 11:09:08 ・大浦拓哉氏による以下の点の改良を加えた: 窓関数を Hanning窓から sin窓に変更し,使用するFFT関数を rdft() (実離散フーリエ変換) から ddst() (離散サイン変換) に 変更。 - 周波数解像度(特に低音)がよくなる 音階テーブルが 0.5 ずれていたのを修正。 - 低音で少し#するのがなくなる FFTの三角関数表を毎回計算していたのを修正(負荷が軽くなる)。 使用するFFTライブラリを fft8g から fft4g にする。 ・以上の変更を加えた結果、特に低音域の表示精度が向上したので、 表示の横幅を広げ、音階モードで80音階表示できるようになった。 v1.14 67,584 bytes 98-08-18 18:10:16 ・「優先タスク」機能を「最前面に表示」ボタンに統合。 ・新しい COMCTL32.DLL の機能を使って“平らなボタン”表示にした。 (ただし初期のWin95などでは従来通りのスタイルで表示される。) ・FFTライブラリを最新バージョンに変更。 v1.13 62,464 bytes 98-08-05 03:55:28 ・マルチタスクの優先度を上げるスイッチを追加。 ・録音コントロールを呼び出せるようにした。 ・設定変更によりFFTに渡すバッファサイズを従来の2倍にしたの で、低音域の解像度が少し改善され、時間軸の応答性が少し落とさ れた。従来よりもグラフの動作に「余韻」を感じるかもしれない。 v1.12 64,000 bytes 98-07-15 02:55:24 ・音階表示の単位を(W)から(dBm)に変更。 この修正により、周波数表示モードと音階表示モードの違いは、横 軸のスケーリングのみになった。 v1.11 64,000 bytes 98-07-12 10:06:08 ・計算誤差による低周波ノイズが混入していたのを軽減。 ・中低音帯域の拡大機能を追加。 ・「周波数表示モード」の感度を少し上げ、こちらを表示のデフォル トに設定。 v1.10 62,976 bytes 98-07-11 08:38:56 ・コンパイラを Borland C++ 5.0 から MS Visual C++ 5.0 に変更。 ・新機能の追加はせずに、細かい点をブラッシュアップして、動作の 軽快さ、正確さを改良。 ・FFTデータをグラフ化する際に、区間内を積分していたのを区間 内の最大値を採用するように変更。 ・バージョン情報表示からサポートWebページに行けるようにした。 v1.03 77,824 bytes 98-02-28 23:52:20 ・v1.02 の細かいバグを修正。 サンプリングバッファからデータを読み取る際に、時間軸に対して 逆順に誤ってデータを読んでいたのを修正。 ・音域を76音階に戻した。 v1.02 77,824 bytes 98-02-24 17:24:54 ・サンプリングデータをFFTにかける前に、“Hanning窓”関数でフィ ルタリングするようにし、スペクトル表示のノイズを減らした。 ・サンプリングバッファのサイズを大きくして、低音域での解像度を 上げた。 ・音階表示の音域をピアノと同じ88音階に拡大。 ・表示のデフォルトを音階表示に変更。 v1.01 77,824 bytes 98-02-22 15:18:32 ・256色モードにも対応。 ・描画部分を見直し、動作を軽快にした。 ・機能的にはv1.00から変化なし。 v1.00 76,288 bytes 98-02-02 00:35:48 ・正式バージョン初版。 ・内容はv0.40と同等。 v0.40 76,288 bytes 98-02-01 07:56:06 ・スペクトルの履歴(声紋のようなもの)の表示を追加。 ・表示の横幅を76音階に拡大。 ・対数計算のパラメータが0になる可能性があったので修正。 v0.33 75,264 bytes 98-01-30 9:33:24 ・バージョン情報をリソースに追加。 ・プログラムの複数起動を防止。 v0.32 73,216 bytes 98-01-29 6:53:08 ・コンパイルオプションを変えてみた、テストバージョン。 v0.31 73,216 bytes 98-01-29 3:22:58 ・音階・周波数のゲージ表示がずれていたのを修正。 ・その他、表示位置の細かい補正。 v0.1 〜 v0.3 初期ベータ版につき履歴なし。
|
Copyright ©1998-2000 by Nagano Yutaka |