WAVファイルをビットマップファイルへ変換

WAVファイルをビットマップファイルへ変換します.


WAV
ファイルをBMPファイルへ変換する

WAVファイルをBMPファイル(ビットマップファイル)へ変換する.以降にプログラムの機能をイメージ図で示す.

WAVファイルから生成するBMPファイルの名前は,引数で指定するプログラムと,自動的に命名するプログラムが存在します.本プログラムは通常は引数は二つで構いません.最初の引数は入力のWAVファイル名です.二番目の引数は出力用のBMPファイル名です.

wav2bmp  <入力ファイル名1>  <出力ファイル名>

さらに,二つの引数を与えることが可能です.この追加の引数は出力BMPファイルの幅と高さを指定することができます.

wav2bmp  <入力ファイル名1>  <出力ファイル名>  [ <>    <高さ> ]

以降に,実行例を示します.続いて、16ビット・ステレオのWAVファイルをBMPファイルへ変換します.以降に動作の様子を示します.

C:\>wav2bmp 異邦人_10msec.wav wav2bmp02.bmp

ファイル名[異邦人_10msec.wav]

 "fmt "の長さ: 16 [bytes]

             データ形式: 1 (1 = PCM)

           チャンネル数: 2

     サンプリング周波数: 44100 [Hz]

          バイト数 / 秒: 176400 [bytes/sec]

 バイト数×チャンネル数: 4 [bytes]

    ビット数 / サンプル: 16 [bits/sample]

 "data" の長さ: 1760 [bytes]

 時間=0.010

[異邦人_10msec.wav] を [wav2bmp02.bmp] へ変換しました.

出力のビットマップファイル:

出力BMPファイル

続いて,大きさを指定してBMPファイルへ変換します.以降に動作の様子を示します.

C:\>wav2bmp 月16_10msec.wav wav2bmp03.bmp 1000 500

ファイル名[月16_10msec.wav]

 "fmt "の長さ: 16 [bytes]

             データ形式: 1 (1 = PCM)

           チャンネル数: 2

     サンプリング周波数: 44100 [Hz]

          バイト数 / 秒: 176400 [bytes/sec]

 バイト数×チャンネル数: 4 [bytes]

    ビット数 / サンプル: 16 [bits/sample]

 "data" の長さ: 1760 [bytes]

 時間=0.010

[月16_10msec.wav] を [wav2bmp03.bmp] へ変換しました.

出力のビットマップファイル:

出力BMPファイル(wav2bmp03.bmp

 

サイズを指定できるため,大きなビットマップファイルを作成することも可能です.


BITMAPファイルの概要・その2

先のプログラムと違い,右チャンネルと左チャンネルを別々のBMPファイルへ変換します.入力WAVファイルがモノラルの場合,ひとつのBMPファイル(ビットマップファイル)が生成されます.

本プログラムは通常は引数は一つで構いません.出力のBMPファイル名は自動で命名されます.入力ファイルがステレオの場合,左チャンネルがleftWave.bmp,右チャンネルはrightWave.bmpという二つのBMPファイルが生成されます.入力ファイルがモノラルの場合,monoWave.bmpという一つのBMPファイルが生成されます.

wav2bmp2  <入力ファイル名1>

 

さらに,二つの引数を与えることが可能です.この追加の引数は出力BMPファイルの幅と高さを指定することができます.

wav2bmp2  <入力ファイル名1>  [ <>    <高さ> ]

 

 

以降に,実行例を示します.8ビット・ステレオの1002 [Hz]Sin波をBMPファイルへ変換します.以降に動作の様子を示します。

C:\>wav2bmp2 sin1002Hz8_10msec.wav

 

ファイル名[sin1002Hz8_10msec.wav]

 "fmt "の長さ: 16 [bytes]

             データ形式: 1 (1 = PCM)

           チャンネル数: 2

     サンプリング周波数: 44100 [Hz]

          バイト数 / 秒: 88200 [bytes/sec]

 バイト数×チャンネル数: 2 [bytes]

    ビット数 / サンプル: 8 [bits/sample]

 

 "data" の長さ: 880 [bytes]

 

 時間=0.010

 

[sin1002Hz8_10msec.wav] を変換しました.

 

出力のビットマップファイル:

出力BMPファイル・左チャンネル(leftWave.bmp

出力BMPファイル・右チャンネル(rightWave.bmp

16ビット・ステレオのWAVファイルをBMPファイルへ変換します.以降に動作の様子を示します。

C:\>wav2bmp2 異邦人_10msec.wav

 

ファイル名[異邦人_10msec.wav]

 "fmt "の長さ: 16 [bytes]

             データ形式: 1 (1 = PCM)

           チャンネル数: 2

     サンプリング周波数: 44100 [Hz]

          バイト数 / 秒: 176400 [bytes/sec]

 バイト数×チャンネル数: 4 [bytes]

    ビット数 / サンプル: 16 [bits/sample]

 

 "data" の長さ: 1760 [bytes]

 

 時間=0.010

 

[異邦人_10msec.wav] を変換しました.

 

出力のビットマップファイル:

出力BMPファイル・左チャンネル(leftWave.bmp

出力BMPファイル・右チャンネル(rightWave.bmp

続いて、16ビット・ステレオのWAVファイルを,大きさを指定してBMPファイルへ変換します.以降に動作の様子を示します。

C:\>wav2bmp2 月16_10msec.wav 1200 600

ファイル名[月16_10msec.wav]

 "fmt "の長さ: 16 [bytes]

             データ形式: 1 (1 = PCM)

           チャンネル数: 2

     サンプリング周波数: 44100 [Hz]

          バイト数 / 秒: 176400 [bytes/sec]

 バイト数×チャンネル数: 4 [bytes]

    ビット数 / サンプル: 16 [bits/sample]

 "data" の長さ: 1760 [bytes]

 時間=0.010

[月16_10msec.wav] を変換しました.

出力のビットマップファイル:

出力BMPファイル・左チャンネル(leftWave.bmp

出力BMPファイル・右チャンネル(rightWave.bmp

 

サイズを指定できるため,大きなビットマップファイルを作成することも可能です.

 

これまでは短いWAVファイルを試していましたが,CDなどに収められている通常の3分程度の曲をBMPファイルへ変換します.以降に動作の様子を示します。

C:\>wav2bmp2 異邦人.wav

 

ファイル名[異邦人.wav]

 "LIST"の長さ: 238 [bytes]

 "fmt "の長さ: 18 [bytes]

             データ形式: 1 (1 = PCM)

           チャンネル数: 2

     サンプリング周波数: 44100 [Hz]

          バイト数 / 秒: 176400 [bytes/sec]

 バイト数×チャンネル数: 4 [bytes]

    ビット数 / サンプル: 16 [bits/sample]

 

 "data" の長さ: 39400704 [bytes]

 

 時間=223.360

 

[異邦人.wav] を変換しました.

出力のビットマップファイル:

出力BMPファイル・左チャンネル(leftWave.bmp

出力BMPファイル・右チャンネル(rightWave.bmp

BITMAPファイルの概要・その3

直前のプログラムを拡張し,WAVファイルの一部を抜き出せるようにしました.本プログラムは通常引数は三つでかまいません.出力のBMPファイル名は以前のプログラム同様,自動で命名されます.入力ファイルの次に与えるのが,BMPファイル化する範囲です.この二つの引数には実数を指定できます.たとえば,入力WAVファイルの10.1秒目から0.5秒間をBMPファイルかしたければ,「10.1   0.5」を指定します.

wav2bmp2  <入力ファイル名>  <開始位置:>  <長さ:>

さらに,二つの引数を与えることが可能です.この追加の引数は出力BMPファイルの幅と高さです.

wav2bmp2  <入力ファイル名>  <開始位置:>  <長さ:>   [ <>    <高さ> ]

「開始位置:秒」には,入力WAVファイルの対象開始秒位置を実数で指定します.「長さ:秒」には,開始秒位置から何秒をBMPファイル化するか指定します.以降に概要を図で示します.

 

以降に,実行例を示します.まずは、16ビット・ステレオの音源の一部を,BMPファイルへ変換してみます.以降に動作の様子を示します。

C:\>wav2bmp3 異邦人.wav 53.3 1.11

 

ファイル名[異邦人.wav]

 "LIST"の長さ: 238 [bytes]

 "fmt "の長さ: 18 [bytes]

             データ形式: 1 (1 = PCM)

           チャンネル数: 2

     サンプリング周波数: 44100 [Hz]

          バイト数 / 秒: 176400 [bytes/sec]

 バイト数×チャンネル数: 4 [bytes]

    ビット数 / サンプル: 16 [bits/sample]

 

 "data" の長さ: 39400704 [bytes]

 

 時間=223.360

 

[異邦人.wav] を変換しました.

出力のビットマップファイル:

左チャンネル(leftWave.bmp

右チャンネル(rightWave.bmp

生成されたBMPファイルは,異邦人.wav53.3 秒目から1.11秒間の波形です.

 


続いて、16ビット・ステレオのWAVファイルをBMPファイルへ変換します.BMPファイルのサイズも指定します.以降に動作の様子を示します。

C:\>wav2bmp3 "11 さよなら.wav" 100  0.015  2000  500

 

ファイル名[11 さよなら.wav]

 "LIST"の長さ: 242 [bytes]

 "fmt "の長さ: 18 [bytes]

             データ形式: 1 (1 = PCM)

           チャンネル数: 2

     サンプリング周波数: 44100 [Hz]

          バイト数 / 秒: 176400 [bytes/sec]

 バイト数×チャンネル数: 4 [bytes]

    ビット数 / サンプル: 16 [bits/sample]

 

 "data" の長さ: 53345712 [bytes]

 

 時間=302.413

 

[11 さよなら.wav] を変換しました.

 

出力のビットマップファイル:

出力BMPファイル・左チャンネルleftWave.bmp

出力BMPファイル・右チャンネルrightWave.bmp

開始位置に100 秒目から0.015秒間です.そしてBMPファイルサイズに幅2000ピクセル,高さ500ピクセルを指定しました.入力ファイルがステレオのため,左チャンネルがleftWave.bmp,右チャンネルはrightWave.bmpというBMPファイルで生成されます.