モノラルをステレオ化 モノラルWAVをステレオ化する.
|
|||||
ノラルのWAVファイルを擬似的にステレオに変換する. 1)時間差を与えるのみ. 2)遅れた音と合成,左チャンネルには加算,右チャンネルには減算 3)遅れた音と係数を乗算し合成,左チャンネルには加算,右チャンネルには減算 4)エコーをかけ,左右チャンネルに時間差を与える 5)エコーをかけ,さらに左右チャンネルに時間差を与える 使用法(pdf) インストール:圧縮してあるだけです.適当なディレクトリで解凍し,実行してください. アンインストール:レジストリなどは操作しません,単純にファイルを削除してください. |
モノラルを疑似ステレオ化
モノラルのWAVファイルを擬似的にステレオに変換する.プログラムの機能をイメージ図で示す.
左右チャンネルに時間差を与えて疑似ステレオ化
モノラルのWAVファイルをステレオのWAVファイルへ変換します.アルゴリズムは非常に簡単で,左右のチャンネルに微妙な時間差を与えるだけです.以降に処理概要を示します.
上記処理のブロック図とインパルス応答を示します.
ブロック図
インパルス応答
本プログラムは,通常二つの引数を要求します.最初の引数は入力のWAVファイル名です.二番目の引数は出力用のWAVファイル名です.
mono2stereo <入力ファイル名1> <出力ファイル名> |
さらに,一つの引数を与えることが可能です.この追加の引数は,左右のチャンネルの時間差を秒で指定します.通常は,この引数は与える必要はありません.
mono2stereo <入力ファイル名1> <出力ファイル名> [ <時間差:秒> ] |
「時間差:秒」は,左右のチャンネルの時間差を指定します.
以降に,実行例を示します.インパルスへの応答を試してみます.無音の50 [msec]の中心にパルスが乗っている波形を,本プログラムに入力し結果を表示してみましょう.
C:\>mono2stereo glitch16mono_50msec.wav mono2stereo03.wav 0.01 0.9
ファイル名[glitch16mono_50msec.wav] "fmt "の長さ: 16 [bytes] データ形式: 1 (1 = PCM) チャンネル数: 1 サンプリング周波数: 44100 [Hz] バイト数 / 秒: 88200 [bytes/sec] バイト数×チャンネル数: 2 [bytes] ビット数 / サンプル: 16 [bits/sample]
"data" の長さ: 4410 [bytes]
時間=0.050
ファイル名[glitch16mono_50msec.wav] "fmt "の長さ: 16 [bytes] データ形式: 1 (1 = PCM) チャンネル数: 1 サンプリング周波数: 44100 [Hz] バイト数 / 秒: 88200 [bytes/sec] バイト数×チャンネル数: 2 [bytes] ビット数 / サンプル: 16 [bits/sample]
"data" の長さ: 4410 [bytes]
時間=0.050
モノラルファイル [glitch16mono_50msec.wav] を [mono2stereo03.wav] へステレオ変換しました. |
入力波形:
入力WAVファイル
出力波形:
出力WAVファイル
入力波形は,無音モノラルの50 [msec]の中心(25 [msec]付近)にパルスが乗っている波形です.時間差に10 [msec]を指定しました.入力のパルスに対し,左チャンネルは,そのまま,右チャンネルは10 [msec]遅れた部分にパルスが現れます.最初に説明したインパルス応答通りの結果になりました.
遅れた音と合成,左チャンネルには加算,右チャンネルには減算
直前のプログラムに更に改良を加え,オリジナルの音源にエコーをかけたのち,直前と同様の処理を行います.櫛形フィルタですが,理論はさておいて,以降にブロック図とインパルス応答を示します.
ブロック図
インパルス応答
コマンドラインの形式を示します.
mono2stereo2 <入力ファイル名1> <出力ファイル名> |
エコーまでの時間差を秒で指定できます.通常は,この引数は与える必要はありません.
mono2stereo2 <入力ファイル名1> <出力ファイル名> [ <時間差:秒> ] |
「時間差:秒」は,エコーに使用する音源までの時間差を指定します.
以降に,実行例を示します.インパルスへの応答を試してみます.無音の50 [msec]の中心にパルスが乗っている波形を,本プログラムに入力し結果を表示してみましょう.
C:\>mono2stereo2 glitch16mono_50msec.wav mono2stereo2_01.wav 0.01 0.9
ファイル名[glitch16mono_50msec.wav] "fmt "の長さ: 16 [bytes] データ形式: 1 (1 = PCM) チャンネル数: 1 サンプリング周波数: 44100 [Hz] バイト数 / 秒: 88200 [bytes/sec] バイト数×チャンネル数: 2 [bytes] ビット数 / サンプル: 16 [bits/sample]
"data" の長さ: 4410 [bytes]
時間=0.050
ファイル名[glitch16mono_50msec.wav] "fmt "の長さ: 16 [bytes] データ形式: 1 (1 = PCM) チャンネル数: 1 サンプリング周波数: 44100 [Hz] バイト数 / 秒: 88200 [bytes/sec] バイト数×チャンネル数: 2 [bytes] ビット数 / サンプル: 16 [bits/sample]
"data" の長さ: 4410 [bytes]
時間=0.050
モノラルファイル [glitch16mono_50msec.wav] を [mono2stereo2_01.wav] へステレオ変換しました. |
入力波形:
入力WAVファイル
出力波形:
出力WAVファイル(mono2stereo2_01.wav)
入力波形は,無音モノラルの50 [msec]の中心(25 [msec]付近)にパルスが乗っている波形です.時間差に10 [msec]を指定しました.最初に説明したインパルス応答通りの結果になりました.
次に,通常の16ビット・モノラル音源を使用して処理してみましょう。
C:\>mono2stereo2 さよならmono.wav mono2stereo2_02.wav
ファイル名[さよならmono.wav] "fmt "の長さ: 16 [bytes] データ形式: 1 (1 = PCM) チャンネル数: 1 サンプリング周波数: 44100 [Hz] バイト数 / 秒: 88200 [bytes/sec] バイト数×チャンネル数: 2 [bytes] ビット数 / サンプル: 16 [bits/sample]
"data" の長さ: 26672856 [bytes]
時間=302.413
ファイル名[さよならmono.wav] "fmt "の長さ: 16 [bytes] データ形式: 1 (1 = PCM) チャンネル数: 1 サンプリング周波数: 44100 [Hz] バイト数 / 秒: 88200 [bytes/sec] バイト数×チャンネル数: 2 [bytes] ビット数 / サンプル: 16 [bits/sample]
"data" の長さ: 26672856 [bytes]
時間=302.413
モノラルファイル [さよならmono.wav] を [mono2stereo2_02.wav] へステレオ変換しました. |
入力波形:
入力WAVファイル(さよならmono.wav)さよならmono全体.gif
出力波形:
出力WAVファイル(mono2stereo2_02.wav)さよならmono全体左チャンネル.gif, さよならmono全体左チャンネル.gif
曲が長いので分かりにくいです.一部を拡大してみましょう.入出力波形の100秒目から10ミリ秒を拡大してみます.
入力波形:
入力WAVファイル(さよならmono.wavの一部)
出力波形:
出力WAVファイル(mono2stereo2_01.wavの一部)
遅れた音と係数を乗算し合成,左チャンネルには加算,右チャンネルには減算
前節のプログラムに更に改良を加え,オリジナルの音源にエコーをかけたのち,前節と同様の処理を行います.前節と異なるのはエコー量を調整できることです.以降にブロック図とインパルス応答を示します.
ブロック図
インパルス応答
三番目の引数までは前節と同様です四番目の引数は,エコーさせる音の大きさを調整するの使用します.1.0を指定すると,直前と等価になります.引数の指定方法を以降に示します.引数の指定方法を以降に示します.
mono2stereo2 <入力ファイル名1> <出力ファイル名> |
mono2stereo2 <入力ファイル名1> <出力ファイル名> <時間差:秒> |
mono2stereo2 <入力ファイル名1> <出力ファイル名> <時間差:秒> <エコー量:実数> |
以降に,実行例を示します.インパルスへの応答を試してみます.無音の50 [msec]の中心にパルスが乗っている波形を,本プログラムに入力し結果を表示してみましょう.
C:\>mono2stereo3 glitch16mono_50msec.wav mono2stereo3_01.wav 0.01 0.6
ファイル名[glitch16mono_50msec.wav] "fmt "の長さ: 16 [bytes] データ形式: 1 (1 = PCM) チャンネル数: 1 サンプリング周波数: 44100 [Hz] バイト数 / 秒: 88200 [bytes/sec] バイト数×チャンネル数: 2 [bytes] ビット数 / サンプル: 16 [bits/sample]
"data" の長さ: 4410 [bytes]
時間=0.050
ファイル名[glitch16mono_50msec.wav] "fmt "の長さ: 16 [bytes] データ形式: 1 (1 = PCM) チャンネル数: 1 サンプリング周波数: 44100 [Hz] バイト数 / 秒: 88200 [bytes/sec] バイト数×チャンネル数: 2 [bytes] ビット数 / サンプル: 16 [bits/sample]
"data" の長さ: 4410 [bytes]
時間=0.050
モノラルファイル [glitch16mono_50msec.wav] を [mono2stereo3_01.wav] へステレオ変換しました. |
入力波形:
入力WAVファイル
出力波形:
出力WAVファイル(mono2stereo3_01.wav)
入力波形は,無音モノラルの50 [msec]の中心(25 [msec]付近)にパルスが乗っている波形です.時間差に10 [msec]を,エコー量の大きさに0.6を指定しました.このため,遅れた波形は,元の波形の6割のレベルとなります.最初に説明したインパルス応答通りの結果になりました.エコー量に1.0を指定すると,出力ファイルは前節と同じ内容になります.
次に,通常の16ビット・モノラル音源を使用して処理してみましょう。
C:\>mono2stereo3 さよならmono.wav mono2stereo3_02.wav
ファイル名[さよならmono.wav] "fmt "の長さ: 16 [bytes] データ形式: 1 (1 = PCM) チャンネル数: 1 サンプリング周波数: 44100 [Hz] バイト数 / 秒: 88200 [bytes/sec] バイト数×チャンネル数: 2 [bytes] ビット数 / サンプル: 16 [bits/sample]
"data" の長さ: 26672856 [bytes]
時間=302.413
ファイル名[さよならmono.wav] "fmt "の長さ: 16 [bytes] データ形式: 1 (1 = PCM) チャンネル数: 1 サンプリング周波数: 44100 [Hz] バイト数 / 秒: 88200 [bytes/sec] バイト数×チャンネル数: 2 [bytes] ビット数 / サンプル: 16 [bits/sample]
"data" の長さ: 26672856 [bytes]
時間=302.413
モノラルファイル [さよならmono.wav] を [mono2stereo3_02.wav] へステレオ変換しました. |
入力波形:
入力WAVファイル(さよならmono.wav)さよならmono全体.gif(同前)
出力波形:
出力WAVファイル(mono2stereo3_02.wav)さよならmono全体左チャンネル.gif, さよならmono全体左チャンネル.gif
一部を拡大してみましょう.入出力波形の100秒目から10ミリ秒を拡大してみます.
入力波形:
入力WAVファイル(さよならmono.wavの一部)
出力波形:
出力WAVファイル(mono2stereo3_02.wavの一部)
エコーをかけ,左右チャンネルに時間差を与える
前節のプログラムに更に改良を加え,さらに左右のチャンネルの時間的ズレを多くします.以降にブロック図とインパルス応答を示します.
ブロック図
インパルス応答
以降に,実行例を示します.インパルスへの応答を試してみます.無音の50 [msec]の中心にパルスが乗っている波形を,本プログラムに入力し結果を表示してみましょう.
C:\>mono2stereo4 glitch16mono_50msec.wav mono2stereo4_01.wav 0.01 0.6
ファイル名[glitch16mono_50msec.wav] "fmt "の長さ: 16 [bytes] データ形式: 1 (1 = PCM) チャンネル数: 1 サンプリング周波数: 44100 [Hz] バイト数 / 秒: 88200 [bytes/sec] バイト数×チャンネル数: 2 [bytes] ビット数 / サンプル: 16 [bits/sample]
"data" の長さ: 4410 [bytes]
時間=0.050
ファイル名[glitch16mono_50msec.wav] "fmt "の長さ: 16 [bytes] データ形式: 1 (1 = PCM) チャンネル数: 1 サンプリング周波数: 44100 [Hz] バイト数 / 秒: 88200 [bytes/sec] バイト数×チャンネル数: 2 [bytes] ビット数 / サンプル: 16 [bits/sample]
"data" の長さ: 4410 [bytes]
時間=0.050
モノラルファイル [glitch16mono_50msec.wav] を [mono2stereo4_01.wav] へステレオ変換しました. |
入力波形:
入力WAVファイル
出力波形:
出力WAVファイル
入力波形は,無音モノラルの50 [msec]の中心(25 [msec]付近)にパルスが乗っている波形です.時間差に10 [msec]を,エコー量の大きさに0.6を指定しました.このため,遅れた波形は,元の波形の6割のレベルとなります.説明したインパルス応答通りの結果になりました.
次に,通常の16ビット・モノラル音源を使用して処理してみましょう。
C:\>mono2stereo4 さよならmono.wav mono2stereo4_02.wav
ファイル名[さよならmono.wav] "fmt "の長さ: 16 [bytes] データ形式: 1 (1 = PCM) チャンネル数: 1 サンプリング周波数: 44100 [Hz] バイト数 / 秒: 88200 [bytes/sec] バイト数×チャンネル数: 2 [bytes] ビット数 / サンプル: 16 [bits/sample]
"data" の長さ: 26672856 [bytes]
時間=302.413
ファイル名[さよならmono.wav] "fmt "の長さ: 16 [bytes] データ形式: 1 (1 = PCM) チャンネル数: 1 サンプリング周波数: 44100 [Hz] バイト数 / 秒: 88200 [bytes/sec] バイト数×チャンネル数: 2 [bytes] ビット数 / サンプル: 16 [bits/sample]
"data" の長さ: 26672856 [bytes]
時間=302.413
モノラルファイル [さよならmono.wav] を [mono2stereo4_02.wav] へステレオ変換しました. |
入力波形:
入力WAVファイル(さよならmono.wav)
出力波形:
出力WAVファイル(mono2stereo4_02.wav)
一部を拡大してみましょう.入出力波形の100秒目から10ミリ秒を拡大してみます.
入力波形:
入力WAVファイル(さよならmono.wavの一部)
出力波形:
出力WAVファイル(mono2stereo4_02.wavの一部)
エコーをかけ,さらに左右チャンネルに時間差を与える
前節のプログラムに更に改良を加え,さらに左右のチャンネルの時間的ズレを多くします.前節では,左チャンネルのエコーした音と,右チャンネルの原音が同期していましたので,さらに時間をズラしてみます.以降にブロック図とインパルス応答を示します.
ブロック図
インパルス応答
以降に,実行例を示します.インパルスへの応答を試してみます.無音の50 [msec]の中心にパルスが乗っている波形を,本プログラムに入力し結果を表示してみましょう.
C:\>mono2stereo5 glitch16mono_50msec.wav mono2stereo5_01.wav 0.005 0.6
ファイル名[glitch16mono_50msec.wav] "fmt "の長さ: 16 [bytes] データ形式: 1 (1 = PCM) チャンネル数: 1 サンプリング周波数: 44100 [Hz] バイト数 / 秒: 88200 [bytes/sec] バイト数×チャンネル数: 2 [bytes] ビット数 / サンプル: 16 [bits/sample]
"data" の長さ: 4410 [bytes]
時間=0.050
ファイル名[input_wav\glitch16mono_50msec.wav] "fmt "の長さ: 16 [bytes] データ形式: 1 (1 = PCM) チャンネル数: 1 サンプリング周波数: 44100 [Hz] バイト数 / 秒: 88200 [bytes/sec] バイト数×チャンネル数: 2 [bytes] ビット数 / サンプル: 16 [bits/sample]
"data" の長さ: 4410 [bytes]
時間=0.050
モノラルファイル [glitch16mono_50msec.wav] を [mono2stereo5_01.wav] へステレオ変換しました. |
入力波形:
入力WAVファイル(glitch16mono_50msec.wav)
出力波形:
出力WAVファイル(mono2stereo5_01.wav)
入力波形は,無音モノラルの50 [msec]の中心(25 [msec]付近)にパルスが乗っている波形です.時間差に5 [msec]を指定します.エコー量の大きさに0.6を指定します.このため,遅れた波形は,元の波形の6割のレベルとなります.
次に,通常の16ビット・モノラル音源を使用して処理してみましょう。
C:\>mono2stereo5 さよならmono.wav mono2stereo5_02.wav
ファイル名[さよならmono.wav] "fmt "の長さ: 16 [bytes] データ形式: 1 (1 = PCM) チャンネル数: 1 サンプリング周波数: 44100 [Hz] バイト数 / 秒: 88200 [bytes/sec] バイト数×チャンネル数: 2 [bytes] ビット数 / サンプル: 16 [bits/sample]
"data" の長さ: 26672856 [bytes]
時間=302.413
ファイル名[さよならmono.wav] "fmt "の長さ: 16 [bytes] データ形式: 1 (1 = PCM) チャンネル数: 1 サンプリング周波数: 44100 [Hz] バイト数 / 秒: 88200 [bytes/sec] バイト数×チャンネル数: 2 [bytes] ビット数 / サンプル: 16 [bits/sample]
"data" の長さ: 26672856 [bytes]
時間=302.413
モノラルファイル [さよならmono.wav] を [mono2stereo5_02.wav] へステレオ変換しました. |
入力波形:
入力WAVファイル(さよならmono.wav)
出力波形:
出力WAVファイル(mono2stereo5_02.wav)
曲が長いので,一部を拡大してみましょう.入出力波形の100秒目から10ミリ秒を拡大してみます.
入力波形:
入力WAVファイル(さよならmono.wavの一部)
出力波形:
出力WAVファイル(mono2stereo5_02.wavの一部)
どのプログラムでも,モノラルがステレオに聞こえます.効果の程度は自分の耳で確かめてください.