C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■88055 / )  Re[4]: C#でのwaveファイルの波形表示
□投稿者/ akaveco (5回)-(2018/07/31(Tue) 11:34:44)
No88041 (魔界の仮面弁士 さん) に返信

>  case 8:
>   SByte int8 = (sbyte)data[n];
>   n++;
>   break;
>  case 16:
>   Int16 int16 = BitConverter.ToInt16(data, n);
>   n += 2;
>   break;
>  case 24:
>   data4[0] = data[n + 0];
>   data4[1] = data[n + 1];
>   data4[2] = data[n + 2];
>   data4[3] = (byte)0;
>   Int32 int24 = BitConverter.ToInt32(data4, 0);
>   n += 3;
>   break;
>  case 32:
>   Int32 int32 = BitConverter.ToInt32(data4, n);
>   n += 4;
>   break;
> のようなイメージになると思います。先のサンプルでは、変換結果を
>  int work;  // この変数が、上記の int8, int16, int24, int32 に相当
>  int[] valuesL;
>  int[] valuesR;
> へ代入しているようなので、適宜読み替えてみてください。

提案いただいたやり方でやってみても、どうもうまくいきません。
一応描画はされるのですが、明らかにそのファイルの波形とは似ても似つかない、矩形波のような繰り返しが出てきます。

モノラルでもステレオでも同じような図が描画されるので、チャンネルの割り当て時の問題ではないみたいです。
分析に使用している、音声フォーマットはおそらくPCMだと思います。
バイナリエディタで見てみたところ以下のようになっていました。

52 49 46 46 86 5E 00 00 57 41 56 45 66 6D 74 20 
10 00 00 00 01 00 01 00 44 AC 00 00 CC 04 02 00 
03 00 18 00 64 61 74 61 62 5E 00 00 5E 72 01 20

以下のサイトでの
http://sky.geocities.jp/kmaedam/directx9/waveform.html
フォーマットIDにあたるところが01 00なのでPCMだと思われます。

返信 編集キー/


管理者用

- Child Tree -