■88055 |
Re[4]: C#でのwaveファイルの波形表示 |
□投稿者/ akaveco -(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だと思われます。 |
|