-------------------------------------------------------------------- WaveFFT Version 1.40 Copyright (C) 1999-2001 By M.Imagawa -------------------------------------------------------------------- 1.はじめに ・WaveFFTは、FFTによるスペクトル計算を行ったり、リアルタイムにイコライザー をかけながら再生したりするソフトウェアです。録音もできます。 ・テクスチャーによるビデオファイル(avi, mpg等)の再生が可能です。 CPU、Direct3Dによるリアルタイムエフェクトをかけながら再生します。 DirectX 8.0 のピクセルシェーダによるプログラム可能な画像処理ができます。 (対応ビデオカードが必要) ・2Gバイトまでのファイルを扱えます。 ・オーディオ圧縮に対応しています。 ・AthlonのEnhanced 3DNow!命令に対応しています。 2.前バージョンからの主な変更点。 ●大幅な高速化 相性の悪かったGeForce系のビデオカードでの動作を改良。 また、再生時の各種処理を3DNow!化することにより、Athlon + GeForce2 GTS の組み合わせでは、Ver 1.12に比べて2倍以上高速になっています。 (FFTサイズ 16384) ●ビデオ再生に対応 テクスチャーにより表示するため、通常より負荷がかかりますが、Direct3Dの ハードウェアアクセラレーションによるエフェクト処理が可能です。 また、ビデオ表示とメインウィンドウの半透明表示の同期が行われています。 ●波形スクロールに応じた、自動FFT表示 ●リバーブの3重化 ●FFTの高速化 アルゴリズムの変更により、主に16384以上で大幅な速度向上 Athlon + AMD-761で実行した場合、 Intel Signal Processing Library v4.5のFFT + PentiumVよりも高速です。 3.動作環境   OS:Windows 2000 + DirectX 8.0以降 Windows 98、Me + DirectX 8.0以降 Windows 95は対象外です。 ハードウェア: PC/AT互換機 + PCM音源ボード PentiumV、またはAthlon 500MHz 以上 メインメモリ 128MB 以上 ビデオメモリ 8MB 以上(32ビットカラーの場合16MB以上)搭載した 最近のビデオカード(AGP接続) (古いビデオカードでは正常に動作しません) 自作機 Athlon 1.33GHz AMD-761 PC2100 DDR-SDRAM 256MB GeForce3、GeForce2 GTS、Radeon SoundBluster Live! Value で動作確認しています。 ・完全に動作するビデオカード GeForce3 ・ピクセルシェーダを除いて動作するビデオカード GeForce2 GTS、Radeon 等 ・ピクセルシェーダ以外にも動作しない機能が存在するビデオカード Rage128 GL 等 ・正常動作が期待できないビデオカード RagePro、Permedia2 等 最低、Rage128 GL 以上のビデオカードを推奨 4.付属ファイル README.TXT --- このファイル WaveFFT.exe --- 実行プログラム(DirectX 8.0用) WaveFFT7.exe --- 実行プログラム(DirectX 7.0用) WaveIO.dll --- Waveアクセス用DLL WaveFFT.chm --- Htmlヘルプ DskCache.dll --- ディスクキャッシュ用DLL Filter.dll --- フィルタ計算DLL FFT.dll --- FFT計算DLL (FPU) Athlonフォルダ FFT.dll --- FFT計算DLL (Enhanced 3DNow!) Filter.dll --- フィルタ計算DLL (Enhanced 3DNow!) pshフォルダ Blur.psh --- ピクセルシェーダ用のファイル群 Contrast.psh --- 〃 Emboss2x.psh --- 〃 Emboss2x Color.psh --- 〃 Emboss4x.psh --- 〃 Emboss4x Color.psh --- 〃 Gray.psh --- 〃 Sharp.psh --- 〃 Tmpフォルダ FFTBench.exe --- FFTのベンチマークプログラム Spec.exe --- 窓の特性を表示するプログラム 5.インストール方法など 1) まず、DirectX 8.0以降がインストールされているか確認してください。 起動時に、mfc42.dllで欠落エクスポート、と表示された場合、 VisualC++6.0 の mfc42.dll、msvcrt.dllを入手してインストール してください。 3) CPUがAthlonの場合は、さらに、AthlonフォルダにあるDLLを、 WaveFFT.exeと同じフォルダにコピーします。 注意) Enhanced 3DNow!命令が使用可能かどうかは、チェックしていません。      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Athlon以外のCPUでは、これらのDLLを使用しないで下さい。 Intel製CPUの場合は、不正な処理で強制終了します。 6.制限/注意事項 1) 実行中に、解像度や色数を変更したり、フルスクリーンでDirectXを使用する アプリケーションを起動しないでください。 2) DirectX 8.0版では、半透明表示機能をOffにできません。(処理未実装) 3) DirectX 8.0版が動作しない場合は、付属のDirectX 7.0版を試してください。 ただし、今後、DirectX 7.0版を更新する可能性はほとんどありません。 4) DirectX 8.0版では、ビデオ再生に、SSE、またはMMX拡張命令が必要です。 また、High Color(16bit)では、RGB565にのみ対応しています。RGB555には 未対応です。 DirectX 7.0版は、この制限はありません。 5) いくつか実装していない部分、手を抜いている部分があります。 7.転載について 転載をする場合は、作者へ連絡してください。 8.使用承諾条項 完全な無保証プログラムです。使用した結果がどうなろうと制作者 は一切責任を負いません。すべての責任(賠償責任なども含む、 一切の責任)は使用者が負うものとします。 使用者は、ご意見、ご感想、または、バグ報告をお願いします。 9.作者への連絡先 以下へ、メールにてお願いします。 E-Mail:imagawa@d1.dion.ne.jp 10.変更履歴 Ver 1.0 ・初公開 Ver 1.01 ・MP3データの読み込みに対応。 ・FFTのベンチマークを追加。 ・簡単なマニュアルを追加。 Ver 1.02 ・VC++6.0 SP3に変更。 ・MP3読み込み時の不具合を修正。 ・FFTをわずかに高速化。 ・Athlonの3DNow!拡張命令に対応。 ・CPU情報の表示。 Ver 1.03 ・L/R両チャネルの表示に対応。 ・イコライザーの修正。 ・正弦波作成の修正。 ・1.01→1.02で発生した不具合の修正。 Ver 1.04 ・アルファブレンディングによる背景の半透明表示。 ・Htmlヘルプの追加。 ・MPEG-1 Audio Layer-U(MP2)に対応。 ・MP3の読み込み速度をわずかに高速化。 ・イコライザーウィンドウのマルチスレッド化。 Ver 1.1 ・再生時にスペクトル計算を行うようにした。 ・再生時の波形の表示範囲やフレームレートを 変更できるようにした。 ・Direct3Dを使い半透明表示を行うようにした。 ・リアルタイムにリバーブを行う機能の追加。 ・FFTの高速化。 ・DskCache.dllの不具合修正。 ・半透明処理の際、「ドラッグ中にウィンドウの内容を表示する」 がオンになっていた場合の問題点を修正。 ・11kHz、22kHz、44kHz以外のサンプリング周波数に対応。 ・再生時間/音程の変更時、ユーザーが指定できるようにした。 ・複素数計算用のクラスを作成した。これにより、msvcp60.dll が不要になった。 Ver 1.11 ・スペクトル計算の際、落ちることがあるのを修正。 ・波形ウィンドウの左端に、黒線が出ることがあるのを修正。 ・DskCache.dllで共有メモリの使用を止め、仮想メモリで必要に 応じてメモリを割り当てるように変更。 ・リバーブ計算スレッドの優先度を変更できるようにした。 Ver 1.12 ・VC++6.0 SP4に変更 ・色の変更に対応 ・256色の際、起動に失敗することに対応。 ・背景テクスチャをビデオカードの最大テクスチャサイズに応じて 分割して所持するよう変更(最低4分割) ・ライン描画を自分で行うよう変更。 ・再生時のスペクトル表示の高速化。 ・ピークホールド計算の高速化。 ・時間間引き・周波数間引きFFTの組み合わせによるリバーブ 計算の高速化。 ・正規化コマンドの追加。 ・ノイズ除去がモノラル専用であったため、ステレオに対応。 ・一部、設定情報をレジストリに保存するよう修正。 ・再生データのディスクへの保存 Ver 1.2 ・可能な限りGDI的処理を排除(フォント描画など) ・Direct3Dによるライン描画 ・再生時の各種処理を3DNow!化 ・テクスチャマッピングの不具合を改善 ・波形表示のスクロール時の問題を改善 ・Direct Showによるデータの展開、これに伴い、MP3展開部の削除 ・ビデオ再生に対応(半透明合成表示のみ) ・リバーブの3重化 ・IIRフィルタを単精度から倍精度浮動小数点で計算するよう変更 ・低域通過フィルタによるサンプリング周波数変換時に、定期的に  音とびが発生する不具合の修正と、変換精度の向上(速度は低下) ・FFTの速度の向上 ・リバーブ用畳み込みの速度の向上 Ver 1.3 ・VC++6.0 SP5に変更 ・テクスチャマッピングの不具合を解決 ・メインウィンドウの半透明表示の際のDirect3Dによる特殊効果 ・ビデオ再生のウィンドウ表示と、メインウィンドウの半透明機能  との表示の同期 ・Direct3Dによるビデオエフェクト処理 ・波形表示のスクロール時の、自動FFT ・ピークホールドの際、保持期間を設定できるよう変更 ・Disk Cacheのページサイズを32KBに増加 Ver 1.4 ・DirectX 8.0に合わせて作り変え ・CPUによるビデオエフェクト処理のため、一旦24bitでビデオデータを 読み込み、テクスチャへロードの際、16bit、32bit変換するよう変更 (無条件にMMX、MMX拡張命令の使用) ・CPUによるビデオエフェクト処理 ・ピクセルシェーダによるビデオエフェクト処理 ・トランスフォーム済み頂点ではなく、未トランスフォーム頂点の使用 ・スクロール時の自動FFTの動作の改良