次バージョン予告:FFT 関連オプションの変更2008年02月03日 13:15

次バージョンでは、FFT の点数(ライン数)などを指定するオプションを変更します。
 1. [キャプチャー間隔/解析間隔] と [FFT 窓倍率] ではなく、[FFT ブロックサイズ] と [解析間隔] で指定する。
 2. リアルタイム解析用のオプションと録音データ解析用のオプションを統一する。

1 については、[FFT ブロックサイズ] = [解析間隔] × [FFT 窓倍率] の関係があるので、単に指定方法が変わっただけです。
ブロックサイズを固定したまま窓倍率(オーバーラップ率)を簡単に変更することができなかったのを、改善するのが目的です。

一般的にはライン数とオーバーラップ率で指定するもののようですが、設計の都合上、そこまですることはできませんでした。
データのサンプリングレートが一定の場合は、使い勝手はほぼ同じになるものと思います。
この辺りについては、以下の記事も参考にしてください。
 http://cessna373.asablo.jp/blog/2006/02/08/246067
 http://cessna373.asablo.jp/blog/2007/05/10/1499595

2 はまた別の話で、[リアルタイム] タブとその他のタブで、指定するオプションが分かれていたのを統一したというものです。
[リアルタイム] タブで解析間隔をあまり小さくすると、パフォーマンス上の問題が出る。一方、録音データに対しては、できるだけ詳細に解析したい。そういう事情を考えて、今までは別々に設定するようにしていました。
しかしあまり分かりやすくはなく、混乱もあったようなので、今回分かりやすさを優先して統一することになりました。

デフォルトのブロックサイズ(オーバーラップ率 0 のとき解析間隔と同じ)は、以前はリアルタイムが 100ms, 録音データが 20ms だったのを、46ms にしました。これは、サンプリングレート 44100Hz で、FFT 点数が 2048 にできるだけ近くなるようにした値です。

RH1FFT 英語版2008年02月03日 13:23

別に英語版を作る予定があるという話ではありません。
しかし、作ること自体は可能です。手間がかかって大変な作業ではありますが。
ただ、ネイティブの監修者がいるわけではないので、適当な英語になると思います。
需要があるようなら検討します。

Ver2.30リリースのお知らせ2008年02月04日 00:00

本日バージョン2.30をリリースいたしました。
ダウンロードは上記公式サイトからお願いします。
主な内容は

- [編集]-[表示範囲をコピー], [表示範囲を貼り付け] を追加
- [録音/再生]-[連続録音] を追加
- [ツール]-[録音データ切り出し] を追加
- [表示]-[表示範囲] を廃止
- メインダイアログで表示範囲を直接入力できるようにする
- ダイアログデザインの全般的な修正
- オーバーラップ解析設定の変更
  - 従来の窓倍率を廃止して、ブロックサイズと解析間隔に変更
  - キャプチャー設定と解析設定を統一
- バグ修正
  - 特定の状況で、時間グラフが正しく表示されない
  - 録音待機中に、レベルメーターの録音停止閾値で、録音待機が解除される
  - 録音トリガー待機中にキャンセルすると、時間グラフの目盛りの色がおかしくなる
  - 録音トリガー閾値ラインが目盛り領域に描画される
  - ソノグラフの [バッファサイズ調節] が動作しない場合がある
- 周波数グラフのコンテキストメニューににスナップショットを追加

です。
大幅に機能を強化いたしましたのでぜひお試しください
よろしくお願いします。

RH1FFT V2.30 報告2008年02月07日 23:45

「Ver2.30リリースのお知らせ」
 http://cessna373.asablo.jp/blog/2008/02/04/2598927
で、特に補足するものはないのですが、ブログの記事へのリンクだけ追加しておきます。

- [編集]-[表示範囲をコピー], [表示範囲を貼り付け] を追加
  http://cessna373.asablo.jp/blog/2008/01/19/2567105
- [録音/再生]-[連続録音] を追加
  http://cessna373.asablo.jp/blog/2008/01/12/2557260
- [ツール]-[録音データ切り出し] を追加
  http://cessna373.asablo.jp/blog/2008/01/12/2557822
- [表示]-[表示範囲] を廃止
- メインダイアログで表示範囲を直接入力できるようにする
  http://cessna373.asablo.jp/blog/2008/01/19/2567100
- ダイアログデザインの全般的な修正
- オーバーラップ解析設定の変更
  - 従来の窓倍率を廃止して、ブロックサイズと解析間隔に変更
  - キャプチャー設定と解析設定を統一
  http://cessna373.asablo.jp/blog/2008/02/03/2598554
- バグ修正
  - 特定の状況で、時間グラフが正しく表示されない
    http://cessna373.asablo.jp/blog/2007/11/21/2451050
  - 録音待機中に、レベルメーターの録音停止閾値で、録音待機が解除される
    http://cessna373.asablo.jp/blog/2008/01/03/2543649
  - 録音トリガー待機中にキャンセルすると、時間グラフの目盛りの色がおかしくなる
    http://cessna373.asablo.jp/blog/2007/10/19/1860831
  - 録音トリガー閾値ラインが目盛り領域に描画される
    http://cessna373.asablo.jp/blog/2008/01/03/2543650
  - ソノグラフの [バッファサイズ調節] が動作しない場合がある
    http://cessna373.asablo.jp/blog/2008/01/12/2557232
- 周波数グラフのコンテキストメニューににスナップショットを追加
  http://cessna373.asablo.jp/blog/2008/01/25/2579149

ダイアログデザインの修正は、不要なステータスバーを削除したりとか、
 http://cessna373.asablo.jp/blog/2008/01/25/2579161
入力項目のラベルを右揃えにしたりとか、そういうものです。

ソースコードの規模 (V2.30)2008年02月07日 23:46

V2.30 のソースコードの規模を調べました。
 V2.30 : ファイル数 284, ステップ数 57,288

旧バージョンについては以下を参照してください。
 http://cessna373.asablo.jp/blog/2007/08/31/1762345

やはり今回は大きかったですね。
以前に順調に増えていた頃のペースです。
増えればいいという訳でもないのですが。

ちなみに、ステップ数の計測には、Blue Step Counter を使用しています。
 http://bluecard.no-ip.com/freeware/bluestepcounter/
他のところでステップ数の計測が必要になったときに、いくつか試してみた…記憶があるのですが、これが一番良かった…記憶があります。ちょっと曖昧ですが。
実際、とてもよくできていて十分な機能を持っているので、今のところは特に他のものを探そうという気はありません。

RH1FFT V2.40 予告2008年02月07日 23:47

V2.30 の予告は
 http://cessna373.asablo.jp/blog/2007/10/26/1873155
でしていましたが、ウィザード関連以外は概ね実現できました。

現在の TODO 項目は以下のような感じです。
 - ウィザード (録音ボリューム設定など)
 - メインダイアログでブロックサイズと解析間隔を設定(?)
 - メタ情報ファイル
 - マクロ、プラグイン
 - 周波数別閾値オーバー警告 (マクロ実行)
 - 複数プロセス同期 (縦軸/横軸設定)
 - 画面更新間隔倍率の自動設定 (CPU使用率)
 - 自己相関関数リアルタイム表示
 - ピーク周波数表示 --> 音階表示
 - 録音データ加工でフィルター入力時に周波数グラフにカーソル表示
 - 複数の録音データを比較して平均化、コヒーレンス計算して信頼性算出
 - 平均値フィルター
 - オクターブ解析、バンド別倍率
 - Wavelet 変換
 - 周波数別歪み表示 (with 相関関数による位置あわせ)
 - 再生と録音を同時に行ってひずみや遅れを計測

実現性の高いものは…ちょっと見当たらないですね。
とりあえずはウィザードでしょうか。
あとは、周波数解析データに関する機能 (周波数別閾値、ピーク表示、ピークホールドなど) を充実させられればいいのですが。

ウィザードについて2008年02月09日 21:43

記事にウィザードに言及したものがあったので、
どうやって実装するのか考えてみました。

ベスト
簡単なマクロ機能を追加し、それを用いてウィザードを実現する
メリット
ユーザー側で自由に使いやすく仕様を変更できる
デメリット
マクロの実装が必要なため単純に実装するよりハードルが高い

次に現実的
マクロ機能を使わずにウィザードを実現する
メリット
マクロを実装するのに比べてハードルは低い
デメリット
ユーザーが仕様を変更できない

ここまで書いてきて思いついたのですが、プログラムの変更を
最低限にしてある程度使いやすさを改善できると思いました。

割とすぐにできること
レンジの設定などを行う方法をまとめて、
判定方法等含めてヘルプファイルに追加する

とりあえずできるところからやってみたいと思います