音の高さの表示ソフトdrawwaveの開発 part1

ツール制作
スポンサーリンク

音の高さを調べるソフトといえば、「おんかいくん」などが上げられますが、
今日はJavaで製作された「drawwave」というソフトを紹介します。(*^U^*)

何をするソフトかというと、リアルタイム(実時間)で音声を目で見るソフトです。
音声の波形を描く ということで draw wave というわけです。

まずは、メイン画面です。(o^∇^o)ノ

赤いボタンは、おなじみの録音ボタンです。これを押すと解析が始まります。
(現在、解析中なので赤く光ってます!!)
緑のボタンは、音圧レベルを解析するときのキャリブレーションを行うためのボタンです。
(アイコンが分かりづらい上、このボタンは消える可能性も。)
青いのは、設定ボタンです。色々いれます。
SPLは、「Sound Pressure Level」の略で音圧レベルの表示ウィンドウを表示します。
Pitchは、音高基本周波数)の表示ウィンドウを表示します。

つまり、「音圧レベル」と「音高」を調べることができます。
(将来機能増えることもあると思いますが)
ということは、drawwave と言う名前なのに、音声波形の表示はサポートしていないのです。εミ(っ>_<)っ

言語機能で、日本語を選べます。
←解析していない場合は、赤いボタンが点灯していません!
辞書ファイルはxmlで、
決められた書式にのっとって作成した辞書ファイルを
同ディレクトリに置けば対応言語を増やすことが出来ます。

では早速、解析中のウィンドウを紹介していきます。

これが音圧レベルです。

音の大きさをデシベルで表示します。目盛りがついていて分かりやすいですね。
時間軸もあるので、どんな感じで音圧レベルが変わっていくか分かります。
また、騒音計のように動特性があります。

次は、音の高さの表示ウィンドウです。

音の高さは、1音のみに対応しています。
表示形式は色々と設定できて、上のやつはMIDIノートナンバーで高さを表現しています。
ピアノでC4(60)を鳴らしているのですが、60.2と大体あっていますね。
周波数からMIDIノートナンバーへの変換は、
SMFプレイヤーをつくろう!リベンジ「出力ポート、MIDIと周波数の関係」」で紹介しています。
ちなみに音の高さなのですが、1オクターブの間違いが結構あったりする。

次は設定の紹介です。

デバイス→波形入力です

デバイスは、使用する音声入力用デバイスを変えることが出来ます。
チャンネルでは、そのデバイスの両チャンネル(モノラル)、Lチャンネル、Rチャンネルと選ぶことが出来ます。
FireFace 800とか大きなオーディオインターフェイスだと「Analog (9+10) (RME Fireface 800)」など、
LとRとで別々の入力があるので、こういう設定は助かります。

音圧レベルの設定ウィンドウです。

動特性は、騒音計と同じように、FAST(=125[ms])とSLOW(=1000[ms])とで変更が可能です。
同じく騒音計と同じように、A特性高域強調IIRフィルタを通した後に表示しています。
といっても、マイクの周波数特性は考慮していないので、騒音計代わりに使う場合は、考慮する必要があります。
さらに、周波数別感度が±0[dB]である1[KHz]のサイン波で、キャリブレーションする必要があります。

音の高さの設定です。

アルゴリズムは、基本ケプストラムを利用しているのですが、
FFTからケプストラムを求める方法と、LPCから求める方法の2種類選択できます。
メディアンフィルタの大きさを変えることで、誤表示を減らすことも出来ます。

最後に、表示の設定

結構いろいろと設定できます。
音の高さの表現では、MIDIノートナンバー以外に、
基本周波数表示や、オクターブセントメルスケールでの表示が可能です。

続く「音の高さの表示ソフト drawwaveの紹介2

drawwaveのダウンロードページへ

コメント

  1. Khoirulz Umams より:

    nice

タイトルとURLをコピーしました