Wave Master




Ver.1.0






作:森川 浩

連絡先:morikawa@mb.kcom.ne.jp

最新版:http://w3mb.kcom.ne.jp/~morikawa/wm.html










第0章:どんなソフトか


 このソフトは他のWAVEツールと相補的なソフトです。 フリーソフトにはあまり見られない周波数解析、音程を変えない速度変更、速度を変えない音程変更、 特定の楽器音消し、ボーカル消し、等の機能を持ちます。しかし、これだけで、かなり大きなサイズの プログラムになってしまいましたので、いくつかの基本的な機能(フォーマット変換、コピー、 切り取り、貼り付け、録音、など)はばっさりと省きました。

 本ソフトはフリーソフトです。ただし、以下のことをお願い致します。

1.

 Wave Master使用例のホームページ「音を見る」を1度は見てください。直接のURLは  http://www.hongo.ecc.u-tokyo.ac.jp/~s61570/oto.html  ですが、このURLは99年2月を以って消えてしまうので、「数理科学美術館」  http://w3mb.kcom.ne.jp/~morikawa/subi.html  から辿ってください。

2.

 再現可能なページ違反のエラーが出た場合、作者にその再現方法を連絡してください。

3.

 このソフトは作者が本気のマジになっているため、将来的にシェアウェアに なる可能性があることの了解をお願いします。

4.

 本ソフトは極めてハイスペックなハードを必要とします。バージョンアップ次第で少しずつ 改善していきたいと思いますが、現時点では、以下のハードウェア程度が揃っていないと 快適な処理は行えませんので、あらかじめご了承ください。

CPU : 最低 Pentium200MHz
RAM : 最低 64MB
ビデオカード : 800×600×ハイカラー以上(必須)










第1章:本説明書を読むための準備


 このソフトを使うにはWAVEデータの基礎知識に加えて、 以下の本ソフト固有名詞が必要です。



「波形データ」

 波形データとは、WAVEファイルのデータそのものを指すものとします。 モノラルを扱う時は、下側のウインドウ、ステレオを扱う時は、画面中央に 2列に表示されます。



「FFT」

 FFTとは離散フーリエ変換を高速に行うアルゴリズムであり、 コンピューターやデジタル回路による世のフーリエ変換は ほとんどがこの手法で行われているはずです。したがって、 FFTは本来一般的な単語ですが、WaveMasterでFFTと 言った場合、波形データをFFT処理することを指すものとします。



「FFTデータ」

 FFTデータとは、波形データをFFTにより周波数解析したデータのことを指します。 モノラルを扱う時は、上側のウインドウ、ステレオを扱う時は、上下の両端 に表示されます。



「FFTサイズ」

 FFTを行なうには後で述べるように、波形データを時間的にいくつかまとめて処理 する必要があります。このまとめる要素の数をFFTサイズと呼ぶことにします。 ありふれたFFTはそのアルゴリズムの都合上、FFTサイズが2のn乗に限られます。 波形データを時間方向に拡大すると縦線が表示されますが、この縦線で区切られる 区間2個分がFFTサイズに相当します。縦線はFFTが処理できる時間的な解像度を 表しています。



「逆FFT」

 FFTデータをFFT処理して元の波形データに戻す処理を逆FFTするなどと 言うことにします。波形データを見ていてはいつまでたっても処理できないような処理も、 FFTデータを処理して逆FFTすることで、実現可能になることがあります。



「領域」

 領域とは、マウスの左クリック&ドラッグで選択できる範囲のことを指し ます。領域を選択すると、各ウインドウの左上にランプが点灯します。 領域が解除されると、ランプは消えます。このソフトでは領域が重要な 意味を持つので、ランプを見て、現在、領域が選択されているかどうかを 確認してください。



「時間領域」

 時間領域とは、選択した領域において、周波数の範囲を全周波数に広げた 領域のことです。つまり、FFTデータにおいて、時間領域とは、縦に つついっぱいに伸びた領域のことです。



「波数領域」

 波数領域とは、選択した領域において、時間の範囲を全時間に広げた領域の ことです。つまり、波形画像、FFTデータにおいて、時間領域とは、横に つついっぱいに伸びた領域のことです。


   ※ 「領域」「時間領域」「波数領域」の差に十分注意してください。


「演算」

 本ソフトでは、ウインドウ右上のスライダーを移動させて音程や速度を 変えることを演算と呼びます。反対語は「ノーマル」とします。










第2章:画面構成の説明


 画面はモノラルデータを扱う時とステレオデータを扱う時で、以下の ように構成が決定します。





 画面左上には以下の5つの大き目のボタンがあります。

 既存のWAVファイルを開きます。既にファイルが開かれている時は、 保存するかどうかを確認してきます。



 現在の波形データを保存します。FFTデータは保存されません。 FFTデータを保存するときは、FFTデータ→波形データの変換を行って 波形データを保存してください。



 波形データの時間領域を自動で選択してステレオ演算再生 します。音程や速度は右上にあるスライダーで調整します。 領域が選択されていない時は波形データの最初から最後まで 再生します。この再生のボタンは、領域を右クリックして 出て来る再生メニューの中の「時間領域を自動選択して ステレオ演算再生」と等価です。



 種々の設定をします。



 終了します。保存してないデータは保存されません。







 画面右上には2本のスライダーがあります。

 上側のスライダーが音程のコントロールです。右につついっぱい動かすと 値が2.0になり、1オクターブあがります。左につついっぱい動かすと 値が0.5になり、1オクターブ下がります。再生中は変更できません。

 下側のスライダーは再生速度のコントロールです。右につついっぱい動かすと 値が2.0になり、再生時間はちょうど半分になります。左につついっぱい動かすと 値が0.5になり、再生時間は2倍になります。再生中は変更できません。

 上側のスライダーと下側のスライダーの値を正確に揃えると、単純な早回し再生や 遅送り再生と同じことになります。値が揃ってない時は、アプリケーションで 元データを計算し直している都合上、再生の音はぎこちなくなりますが(この ぎこちなさをいかに取り去るかがソフトの性能でもある)、上下で値を正確に 揃えると、自然な音で再生されます。





 画面左端には4個のボタン(ステレオデータを扱う時は×2で8個)があります。

 これは波形データをFFTデータにFFT変換します。領域が選択されているときは、 その時間領域をFFT変換し、領域が選択されていないときは全時間領域をFFT変換 します。FFTデータは波形データで必要とされるメモリの4倍~8倍のメモリを必要とします。



 これはFFTデータを波形データに逆FFT変換します。領域が選択されているときは、 その時間領域を逆FFT変換し、領域が選択されていないときは全時間領域を逆FFT変換 します。



 上側のウインドウの目盛りを下側のウインドウに移します。すなわち、モノラルデータ または、ステレオの左チャンネルを扱っている時は、波形データの目盛りをFFTデータ の目盛りにあわせ、右チャンネルを扱っている時は、FFTデータの目盛りを波形データ の目盛りにあわせます。



 下向きの矢印の逆のことをします。





 波形データのウインドウには12個のボタンがあります。



 これらはデータを移動させます。



 これらはデータの拡大縮小をします。拡縮の原点はデータの中心です。



 これはデータの全領域を表示します。



 これはFFTデータにおいて、時間領域は固定したまま、全周波数領域を 表示します。



 これはFFTデータにおいて、1情報を1ドットで表示します。



 これは縦方向を自動で表示します。FFTデータにおいては 設定パネルで設定した値までの周波数領域を表示し、波形データにおいては 振幅の全範囲を表示します。時間領域はどちらも変化しません。



 これはFFTデータにおいて、明るさを買えます。中央のボタンはデフォルトに戻します。



 これは後述の「表示モード」を変更します。












第3章:波形データの説明




 波形データは耳に届く空気の振動の様子を表しています。 領域を選択し、領域の上で右クリックすると「再生」「選択」「表示」「エディット」 「保存」のメニューが出てきます。このうち「再生」「選択」「表示」「保存」 は見ればわかる機能なので、説明は省かせていただきます。 以下、「エディット」の主な項目について説明します。



「簡易エコーをかける」

 この処理は、選択した時間領域にエコーのような効果を加えます。 一口にエコーと言っても、実際にはいろいろな種類のエコーが あります。作者が知る限りのエコーとは、リバーブ(残響音)と ディレイ(再生を時間的に遅らせる)の組み合わせです。 純粋なリバーブは、現在の作者の能力では作れませんので、 Wave Masterでは、ディレイのみのエコーをサポート しました。ディレイを何回かけるかは設定プロパティシート中で 行なってください。

 むろん、「このようにしたらリバーブが実現できる」という情報が あり、かつそれが、ハードウェア的に実現可能なアルゴリズムであれば、 すぐにバージョンアップはできます。



「演算音を加える」

 この機能を実行するにはステレオの場合、選択領域は 左右で一致している必要があります。また、処理結果は一般にデータ サイズが変わりますので、データと同じだけの作業用メモリが必要と なります。

 この処理は、その名の通り、演算した結果を元データにミックスします。 ミックスの度合いは 0.0 から 1.0 までの範囲を設定プロパティシート中で 指定してください。0.0 が全ミックスせず、1.0 が元データと 完全に入れ替わります。0.5 が半々です。

 このパラメーターが 1.0 の、元データと完全に入れ替える処理は、 「選択した時間領域を演算する」でも行なえます。

 音程のスライダーを 0.5 にして半々にミックスさせると、一オクターブ 低い音がミックスされ、音程のスライダーを 2.0 にして半々にミックス させると、一オクターブ高い音がミックスされます。人の声のデータにおいて、 音程のスライダーを 1.2 とか、0.8 など中途半端な値にしてミックスさせると、 宇宙人の声みたいになります。



「逆再生をする」

 この処理は、選択した時間領域の時間軸を反転させます。人の声に対して反転させると 独特の音になります。逆再生した音は、広く効果音として使われて いますので、これは逆再生だな、とわかるデータがあれば、 それを元に戻して、どんな音が使われているか聞いてみるのも 面白いです。



「モノラル成分を除去」

 この機能は、ステレオの波形データを扱っている時に使えます。 選択領域は左右で一致している必要があります。また、処理結果は、 アルゴリズムの都合上、フォーマットはステレオのままで、 モノラル音になります。

 この処理は、ボーカルなど、モノラル部分を消去します。 多くの歌において、この処理をするとボーカルだけが消えます。 ただし、消すべきでない重要な部分も一緒に消えてしまう こともあります。



「領域を2倍、1/2倍」

 この処理は、振幅を2倍、もしくは半分にします。Wave Masterの多くの処理は スケール(大きさ)に関していいかげんなので、処理結果がオーバー フローしそうな時は、この機能であらかじめ値を半分にするなどして、 工夫をしてください。



「領域を無音」

 この処理は、選択した時間領域を無音にします。 無音とは値に依存せず、時間的に一定値の状態を指すので、 無音状態の決定には任意性がありますが、 WaveMasterでは 8bitフォーマットなら 128 、 16bitフォーマットなら 0 を無音としました。



「選択した時間領域をFFT」

この処理は、選択した時間領域のみをFFT処理します。 FFT処理は、設定プロパティシート中で指定したFFTサイズ 以上の要素が時間領域として選択される必要があります。 波形データを時間方向に拡大すると縦線が表示されますが、 この縦線で区切った時間区間2個分がFFTサイズに相当します。 縦線は、FFT処理される位置の解像度を表しています。












第4章:FFTデータの説明


 このソフトの目玉でもあるFFTデータについて説明します。

 適当な曲データを読み込み、を押してFFTデータに変換すると、以下のような 図が得られます。

 横軸は波形データと共通仕様の時間軸で、縦軸はこの場合、周波数です。 つまり、MIDIエディタのようなものと思って下さい。下の方にある 横線なら低い音、上のほうにある横線なら高い音、縦線はいろいろな 周波数成分の混ざった時間的に短い音(典型的にはドラム)、を指します。 この図をみれば、WAVファイルから一種の楽譜を読み取ることが できます。和音なら横線が縦に並ぶし、音譜の違いは横線の長さの 違いから読み取れます。

 この画像を例に取ってみます。9.07 秒から 13.61 秒までの時間領域を 見ると、下の方に3本の細かい横線があり、少し上に明るい横線があります。 これはピアノの伴奏にホルンの音でメロディーを奏でている場面なのですが、 まさにそれを表しています。少し上には別の横線もありますが、これは ホルンの倍音です。一般に、いわゆるきれいな音には 倍音が必ず入っています。全く倍音が入っていない音は「サイン波」あるいは 「正弦波」と呼ばれます。

 周波数から音がイメージ付く人は小数でしょうから、 ある場所がどの程度の高さの音を表しているかを調べる機能をつけて おきました。調べたい高さにマウスを配置して、その場で右クリック すると再生メニューの中に「この位置の正弦波をモノラルノーマル再生」 がありますから、それを選択してください。すると、メニューを 出す時に右クリックした位置の音が一定時間再生されます。

 FFTデータに対してもいくつかのエディットが行なえます。 先に説明したほとんどの機能はここでは選択できませんが、 以下の強力なエディットが行なえます。



「選択した領域を消す」

 これは、FFTデータから、特定の楽器音、メロディ、を消すときに 使います。FFTデータの画像を見、その部分を再生させると どの部分がどの音に対応するかがわかりますから、消したい音に対応 する部分を消して、逆FFT変換すれば、その音が消えます。 ただし、普通、音色は、倍音の組み合わせで決定されていますので、 どこをどのように消すと、どういう音が消えるかは、経験とコツが 必要です。ドラムや人の声など、ノイズに近い音ほど、取るのは 困難です。



「コントラストの変更」

 この処理は、FFTのデータにおいて、値の大きい部分はより 大きく、小さい部分はより小さくする機能です。コントラスト 処理をしたFFTデータを逆FFTして波形データに戻し、 再生すると、多くの場合、音の輪郭がはっきりしてきます。 背景のぼんやりした音は消え、声などくっきりした音は残ります。 処理の度合いは 0.0 以上の範囲を設定プロパティシート中で 指定してください。0.0 が全く処理せず、0.5 がデフォルト値です。 負の値も可能ですが、負の値にするとコントラストは逆に悪くなります。 これは波形データに戻した時、ノイズに近づくことを意味するので、 負の値を指定してもあまり良いことは無いでしょう。



「選択した領域をモノラルノーマル再生」

 再生メニューの中に「選択した領域をモノラルノーマル再生」があります。 これを選択すると、時間領域でなく、まさに選択した部分のみ、再生します。 低周波数領域を選択してこれを実行すると、「もごもご」というような 低周波音が聞こえます。どの領域がどんな音を作っているかを簡易的に 調べたい時に使います。










第5章:FFTデータの表示モード


 FFTデータの表示はいくつかのモードがあります。 モードを変える時は以下のボタンを押して、各内容の組み合わせで 決定します。

 これを押してを点灯させると、値の大きさ( 複素数の絶対値 )を明るさで 表示します。OFFにすると、位相を見るとき、絶対値の小さい部分まで見えるようになります。



 これを押してを点灯させると、値の大きさのLogを明るさで表示します。 別の言い方にすれば、dBで明るさを表示していると言えます。 LogをONにすると、暗くてよくわからない領域と、 明るすぎて判別できない領域が、同時に見えるようになります。



 これを押してを点灯させると、位相( 複素数の偏角 )を色で表示します。 ただし、生の位相データはあまり意味がありませんので、次に説明する 微分モードをONにすると見やすくなります。



 これを押してを点灯させると、位相を時間で微分( 正確には差分 )したものを 表示します。位相と微分がONになっていると、音の塊が一つの色に なる傾向があるようなので、音のエディットが楽になるかもしれません。



 これを押してを消灯させると、色をつけません。 開発当初は色を付けないのがデフォルトだったことの名残です。




 よく使う組み合わせは、大きさのみを調べる と、位相の変化を見たい時の です。 は時と場合によって使い分けてください。










第6章:FFTサイズの調整


 FFTはある時間領域の波形データを周波数データに変換しますから、 いわゆる不確定性関係によって時間の解像度と周波数の解像度は反比例の 関係にあります。つまり、時間変化を細かく追って行きたいなら周波数を 細かく切ることはできず、周波数分布を細かく見たいなら時間幅を細かく 取ることはできません。それで、対象とするデータに対して、ユーザーが 適切な時間幅を定めてやる必要があります。Wave Masterでは、 デフォルトはサンプリング周波数を元に、時間幅が1/20秒程度に なるようにデフォルトで設定されますが、対象とするデータによって は、この自動設定だけでは不十分ですので、必要に応じて時間幅を 変えてください。変え方は後述の設定プロパティシート2枚目のFFTの 設定で、「FFTのサイズ」を変更してください。その時の時間幅が 「参考」として表示されます。

 サンプリング周波数44100Hzの場合の例を以下に載せます。これらは 同一の領域を、異なるFFTサイズでFFTしたものです。





FFTサイズ=256

時間幅が短すぎるので、周波数の解像度が粗い。





FFTサイズ=8192

周波数の解像度は良いが、時間変化が追いにくい。





FFTサイズ=2048

この場合、これくらいが適当と言える。










第7章:設定プロパティーシート


プロパティーシートは全部で5枚あります。



 1枚目は全体の設定です。

 バイアス保証とは、フォーマットが 8bit の時、 安直に種々の処理をすると、無音状態が0でないことによる 不具合がでまくりますので、これを回避するための機能です。 チェックを外すとろくなことが無いので、外せないように しました。どうしても外したいときは、ini ファイルを 直接エディットしてください。

 「ファイルを開いたら即FFT」をチェックすると WAVデータを開いてすぐにFFTの変換を実行します。 FFTへの変換は常には必要で無いことから、このチェック ボックスを設けました。音程の変更など、波形データのみの 処理が目的の場合は、このチェックボックスを外しておいた ほうが、時間短縮になるでしょう。また、FFTデータはメモリを大量に必要とします。 FFTデータへの変換の計算は、最初に計算されるまで必要となるメモリのアロケートを 行ないませんので、FFTの計算をするだけのメモリが無い時は、かならずチェックを外してください。 さもないと、搭載メモリの少ないマシンで大きい画像をペイントで開いた 時のように延々とHDへのスワップが続く事態になってしまいます。

 「選択解除の時、BEEPを鳴らす」は、領域が解除された ことを確認するための機能です。なんでこんなものがあるのか という印象を受けるかもしれませんが、あるとたしかに便利です。

 「使用メモリが以下を超えたら警告」は、WaveMasterが 内部で使っているメモリが指定の量を超えそうになった時、 作業続行の確認ダイアログを出します。ちなみに、現在の 使用中メモリ量はウインドウのタイトル部分に表示されています。 波形データが20メガで、マシン搭載メモリが64メガなら、 波形データのみなら余裕で処理できますが、FFTデータを 扱おうとすると、その数倍のメモリが必要になり、下手すると HDのスワップ領域確保が延々と始まるという事態になりかねないので、 このチェックボックスを設けました。


 2枚目は、FFTについての設定です。 ここではFFTのサイズの設定のみを行ないます。 これについては既に説明しました。


 3枚目は各処理についてのパラメーターを設定します。 これについては既に説明しました。


 4枚目はデータ表示に関する色の設定をします。 思い切りカスタマイズできますので、好みの配色に 変更してください。


 5枚目は主にキャプションに関する設定です。 ここの設定は変更しないでください。 変更してもろくなことがありません。










第8章:フォーマットと必要なメモリの関係(参考)


 指定のフォーマットで、10秒間のWAVEファイルを扱った時の各種の値を記載します。


データのタイプ波形データメモリサイズFFTデータメモリサイズ
8bit モノラル 11.025kHz108kB861kB
8bit モノラル 22.050kHz215kB1,723kB
8bit モノラル 44.100kHz431kB3,445kB
8bit ステレオ 11.025kHz215kB1,723kB
8bit ステレオ 22.050kHz431kB3,445kB
8bit ステレオ 44.100kHz861kB6,891kB
16bit モノラル 11.025kHz215kB861kB
16bit モノラル 22.050kHz431kB1,723kB
16bit モノラル 44.100kHz861kB3,445kB
16bit ステレオ 11.025kHz431kB1,723kB
16bit ステレオ 22.050kHz861kB3,445kB
16bit ステレオ 44.100kHz1,723kB6,891kB









第9章:最後に


 現段階のWaveMasterは必要な人はとことん必要であるが、 多くの方は全く必要としない機能が詰まっています。これから 徐々に多くの方も必要とする機能( フォーマット変換、MDI、録音、など ) も付けていって、バージョンアップしていきたいと思います。

 ご意見ご要望は morikawa@mb.kcom.ne.jp 森川浩までお願いいたします。

最新版は http://w3mb.kcom.ne.jp/~morikawa/wm.html にあります。

私が作った他のソフトは http://w3mb.kcom.ne.jp/~morikawa/soft.html にあります。