機能が少ないので特に説明するまでもないと思いますが、要点のみ簡単に説明しておきます。
WAVファイルの読み込み
[ファイルを開く]ボタンをクリックしてWAVファイルを選択します。またファイルをウィンドウ内にドラッグ&ドロップすることによっても読み込めます。正常に読み込まれるとソースファイルの欄にファイル名が表示されます(表示だけで編集はできません)。WAVファイル以外には対応していませんので、MP3などは適当なソフトでWAVファイルに変換してからお使い下さい。
WAVファイルのフォーマットは8/16/24bitの各ビット深度、ステレオ/モノラル、および任意のサンプリングレートに対応しています。ただし48kHz以上のサンプリングレートはサウンドカードが対応していなければ再生できません。
再生
[再生]ボタンをクリックすると再生が開始します。同時にスペクトルがリアルタイムで表示されます。再生中に[一時停止]ボタンをクリックすると再生が停止し、その瞬間のスペクトルが表示されます。[停止]ボタンをクリックすると再生を停止してファイルの先頭に戻ります。
スペクトルグラフ
横軸は周波数、縦軸は強さ(パワー)を表します。デシベルの定義は1で正規化されたパワーの常用対数をとって10倍したものとしています。グラフの上部には最大のレベルと周波数が表示されます。
音高表示
スペクトルから推定された音高を鍵盤上にハイライト表示します。範囲はピアノの音域と完全に一致しています。それより外側の音域は表示されません。中央の「ド」がMIDIで言うところのC3を表します。
複数の音が同時に鳴っている状態で音高を推定するのは無理です。単音であれば「ほぼ」正確に推定することができます。
単音のサンプルをご用意しましたのでお試し下さい(右クリックで保存)。
音高検出感度
本アプリケーションではスペクトルの最大値を検出して音高を推定しています。そのピーク値がここで指定するレベルを超えたときに音高表示を行います。それより低いレベルでは表示されません。
グラフ保存
現在表示されているスペクトルグラフをPNG画像として出力します。瞬間スペクトル、積算スペクトルともに出力可能です。
スペクトルデータ保存
現在表示されているスペクトルグラフのデータをCSV形式で出力します。瞬間スペクトル、積算スペクトルともに出力可能です。データの内容は周波数と振幅です。周波数はHz単位です。振幅はデシベルではなく、1で正規化された絶対値を表します。
積算スペクトル
[計算実行]ボタンをクリックすると、ファイルの全体にわたって瞬間スペクトルを積算し、平均化して表示します。これで曲全体の周波数分布を大まかに知ることができます。
性能
- スペクトル解析は4096サンプルを1フレームとして計算しています。
- 周波数分解能はサンプリングレートが44100Hzの場合、約10.8Hzです。
- 時間分解能はサンプリングレートが44100Hzの場合、約93ミリ秒です。
- スペクトルの更新頻度はサンプリングレートが44100Hzの場合、約10.8フレーム/秒です。
- 実際の楽器は倍音成分を多く含んでいるため、音高推定は大変難しい技術です。本アプリケーションでは独自のアルゴリズムにより倍音の影響をできるだけ少なくしていますが、楽器によっては実際の音高より1オクターブ高く表示される場合があります。
コメント