Noise Lower v1.06


雑誌掲載履歴

ネットランナー 2003年10月号
DOS/V USER DELUXE 10月号
PC JACK 2003年8月号
Windows2000World 2003年4月号
Windows2000World 2003年3月号
Windows ROM 2003年9月号

noiselower106.lzh



作成のきっかけ

私のパソコンの使用目的の一つにビデオキャプチャーがあります。
キャプチャーボードにAD-TVK52Pro、キャプチャーソフトにWinDVRを使用しています。
何がきっかけだったかよく分かりませんが、いつからか、キャプチャーしたMPEG動画にノイズが入るようになりました。
※もちろん、全部のキャプチャーに入る訳ではありません。
(例1) (例2)

例1は、誰が聴いてもノイズと分かると思います。
例2はちょっとボリュームを大きくすると例1と同じようなノイズが聴き採れると思います。
これをそのままにしていても、該当部分で耳障りなノイズが発生するだけなので、これまでは、SoundEngine (窓の杜で唯一フリーとして紹介)でノイズ部分を無音にすることで何とか凌いできました。
ただ、このSoundEngineの挙動が時々おかしくて、保存したはずのファイルが消えていたり、1曲中に複数箇所のノイズがある場合、1つ無音にするたびにファイルの保存を行っているようで、なかなか大変な操作が必要になります。多分、環境設定内容に問題があるのかもしれませんが。
それで、WAVEファイルの内部構造について調べ、ノイズ部分を自力で消してみたいと思いました。

Noise Lowerの基本姿勢

このソフトには、ノイズを自動的に検出する機能は一切ついていません。多分、周波数特性だとか、フーリエ変換だとか、そういう難しそうな理論が分かれば実装できるのでしょうが、一切分かりません。ですから、ノイズの場所を特定するのは、ユーザーであるあなたの耳です。
また、個人的に使いやすいように作ったものなので、使い勝手があまり。。。というのはご容赦ください。


基本機能

WAVEファイルを読み込み、ノイズの場所を、分,秒,サンプル位置,スケール幅を調整することで特定し、スケールに収まった部分を、左、右チャンネル独立して目立たなくします。
ノイズを目立たなくする方法ですが、log(対数)を使用し、音量の大きいノイズ音ほどよりボリュームレベルを落とします。そうすることで、ノイズ自体は存在しますが、ほとんど耳に聴こえない(はずの)ボリュームに下がります。
これは、私が自分で考えた理論です。ただ、理論どおりに動いてくれていれば。。。の話です。

機能説明

ファイル-WAV読み込み
WAVEファイルを読み込みます。
(注意事項)
1. 16bit/Stereo仕様のWAVEで、1秒以上に限定します。
2. WAVEのデータをすべてメモリーに読み込みますので、空きメモリー容量の半分以上のWAVEを読み込もうとすると、確認のダイアログが表示されます。
ファイル-WAV保存

ノイズを修正したWAVEを保存します。
同名ファイルのチェックは行っていませんので、上書き保存されます。

スケール内波形
WAV出力 スケール内に表示されている波形を一時ファイルtmpdata.wavとして、NoiseLowerと同じフォルダーに保存し、再生します。
つまり、スケール内の波形のモニターリングとして使用します。
再生 WAV出力では、ファイルの保存&再生ということで、毎回ディスクアクセスが生じるので、tmpdata.wavの再生のみを行います。

消去-左ch
字のごとく、左チャンネルの音(ノイズ)のボリュームを下げます。
消去-右ch
字のごとく、右チャンネルの音(ノイズ)のボリュームを下げます。
消去-Undo
前回の消去を取り消せます。

波形再表示
いろんな理由で、波形の表示が欠けたり乱れたりするとき、もしくは、波形表示関係の数値を手入力で変更した場合にクリックします。
そうしないと、数値の変更が波形表示に反映しません。

バージョン情報
Noise Lowerのバージョン情報、copyright情報です。

波形表示開始位置
スケール表示の開始位置を示します。
WAVファイルを読込時には、0分0秒0/44100(サンプル)に設定されます。※44100はサンプリング周波数になります。
右下にある「波形表示開始ダイレクト指定」をクリックした場合その値が直接入ります。
もちろん、直接入力してもOKです。ただし、数値のチェックは、現在のバージョンではしていませんので、マイナスや範囲外の数値入力をすると、強制終了する可能性があります。

スケール幅

スケール内に何サンプル表示するかを設定、表示します。標準値はサンプリング周波数値(1秒)です。
サンプリング周波数値以上の数値にすると、CPUやビデオカードの性能にも依りますが、表示しきるまでに時間が掛かる場合があります。
このスケール幅が、消去(ノイズ)の対象になっています。
このスケール幅の文字(水色のラベル背景含む)をクリックすることで、スケール幅を標準の44100に設定できます。

拡大倍率

波形の縦方向の拡大率を設定します。コンボボックスで、1,2,5,10倍から選べます。
なお、選び終わった状態で、波形の再表示が自動で実行されます。

スケール幅調整

スケール内の波形で特定の部分を拡大(スケールいっぱいに表示)したい場合に、波形表示エリア内でドラッグすると、波形表示エリアの上の細長い四角に灰色で領域の幅が表示されます。※ドラッグ中は変化しませんが、マウスボタンを放した段階で灰色で範囲が表示されます。
その状態で、スケール幅調整の文字をクリックすることで、その範囲が新たなスケール範囲になり、波形の再表示がされます。なお、範囲指定がうまく行っていなかった場合は、一番右に Undo が表示されているので、それをクリックすると、1つだけ元に戻ります。Undoは1回だけなので、2回以上は元に戻りません。

演奏時間

読み込んだWAVファイルの演奏時間です。

波形表示開始ダイレクト指定

演奏時間に合わせて、分と10秒ごとに縦棒が、表示されます。読み込んですぐの時に曲の頭になっているので、曲の途中にスキップできます。
クリックすれば、該当の位置にスケール表示が変わります。なお、あまり精度はよくないようなので、あくまでスキップの目安にしてください。

消去方法

・log使用
従来の方法、log関数を使い、音量の大きいノイズほど小さくします。
レベルを3段階選べます。

・直前サンプル
ノイズの始まる直前の1サンプルの値で、ノイズ部分を埋めます。
必然的に、耳障りなノイズ音は、消えます。


操作の流れ

NoiseLowerを使用する前に、あらかじめ、処理したいノイズのおおまかな発生位置を確認しておいてください。
1.WAVファイルとして読込ます。
2.あらかじめ確認した、分、秒にスキップします。
波形表示開始位置に入力後、波形再表示。
3.スケール内にノイズの原因になる波形の異常を探します。

例1で紹介したノイズはこんな感じです。
一目でノイズっぽい波形であると分かります。
実際にWAV出力で音声を聴けば、よりはっきりします。
4.ドラッグにより、スケール内の範囲を狭めるか、サンプル、スケールを手入力するかして、そのノイズと思われる波形がスケールいっぱいに表示されるように調整します。
下の波形のように。


ここで、WAV出力して、該当するノイズのみが聴こえるようならば、ノイズの部分の特定は終わりです。
5.消去
ノイズが左ch、右chどちらにあるかのよって、左と右のボタンを使い分けてください。

6.WAVファイルの保存
消去し終わったら、保存します。

7.最後に保存したWAVファイルを再生してみて、ノイズの音の程度を確認してください。
思ったほどノイズが小さくなっていない場合は、残念ながら、Noise Lowerでは、対応できないものと思います。
また、ノイズ以外の音がおかしくなっている場合は、Noise Lowerのバグの可能性と、ノイズの場所確認がうまく行っていなかった可能性があります。



インストール・アンインストール

当アーカイブを解凍後、Noiselower.exeを実行してください。
レジストリは一切いじりませんので、アンインストールはNoiselower.exeを削除するだけで済みます。

開発環境

Windows2000 SP2
Visual Basic V6 Learning Edition (Visual Studio SP5)

動作環境

Windows98SE,Me,2000,XPで確認しています。
当アーカイブにはランタイムを添付しておりませんので、起動時に
DLLに関係するエラーが発生する場合は、
http://www.vector.co.jp/soft/win95/util/se152941.html
にあるランタイムセット等を使用するといいでしょう。
まれに文字化けが発生する場合も上記ランタイムをインストールすると
直る可能性があります。


免責・その他

このソフトは、フリーソフトとして公開します。
著作権は、作者が保有します。
このソフトに起因すると思われるトラブルにより、何らかの損害が生じたとしても
作者は責任を負えません。すべては、自己責任の上、お願いします。
特に、読込元WAVファイルは、読み込んだ後は、一切アクセスしないので、安全かと思いますが、
読込元のWAVファイルがおかしくなった!というトラブルには一切感知しません。
二次配布は自由に行って構いませんが、その際にアーカイブを改変することは禁止します。
なお、雑誌やCD−ROMにて、ソフトを紹介する場合は、なるべく、事前に(どうしても
無理な場合は事後でもいいので、 )メール(yakki_@hotmail.com)で連絡ください。
これは、 どの雑誌で紹介されているのか作者として把握したいことが第一の理由です。


更新履歴

v1.06 2003.7.31
・波形表示部分へのD&Dで、WAVファイル読み込みをするようにした。
・稀に波形表示中に強制終了してしまう現象を回避した。

v1.05 2003.5.17
・読み込み対象WAVEを16bit/Stereoに広げた(サンプリング周波数に制限なし)
・一部のWAVEファイルで演奏時間を正しく読み取れなかったのを修正した
・消去した位置のログを表示するようにした
・フォーム拡大時の波形表示の大きさの調整方法を変更した

v1.04 2003.2.11
・消去時にオーバーフローを起こしてしまうことがあるのを修正

v1.03 2003.2.2
・WAVデータの内部での処理方法を変えました。
・log使用の消去にレベルを設定しました。(従来のレベルは2(標準))
・消去にUndo機能をつけました。

v1.02 2003.2.1
ノイズ消去方法に、別の手段を1つ加えた

v1.01 2003.1.25
コマンドボタンの一部メニューに移動した

v1.00 2002.12.11
とりあえず、基本機能の装備ができたので、公開。