「MXV」もどきの Java Wave Viewer(JWV)です。 Wave波形の全体を見渡す事が出来ます。 ついでに FFTでも見えるようになっています。
a110[Hz]
makewavex プログラムで作成したものです。 (a110[Hz]の 10倍音・打弦点 1/8・1.5秒・サンプリング周波数 11025[Hz]・「インハーモニシティあり」で作成しています) 波形の再現・FFTの周波数のキャリブレーション(確認)用です。
(3.4KB)ピアノの和音 (Piano chord)
(156KB)ピアノ 1 (Piano 1)
(184KB)ピアノ 2 (Piano 2)
(116KB)G - D 5度のうなり
(6.6KB)下のボタンで Javaアプレットが動作します。
HTML5版です。v1.4.4['15/05/22]「3.Piano1 (f-vedernikov.wav)」は「6.間奏曲 (Intermezzo)」で参照する様に変更しました。
上段左から [ <12.5%> 1.5[sec] ]テキストフィールド:
カーソルが画面外では [ <12.5%> 1.5[sec] ]
表示波形の%と信号全体の時間を
画面内では
[サンプリング周波数:データ数:データタイプ]を表示します。
エラー情報の表示も行います。
[ a110.wav ]セレクタ:表示する waveファイルを選びます。
(ステレオでも読めます)
[ 14 ]セレクタ:[FFT]時のサンプル数を選びます。
右側面 「+ | -」ボタン:グラフの垂直方向([Wave] では振幅を [FFT] ではスペクトル高さ)を増減します。
「< | >」ボタン:[Wave] ではセンターラインの位置を上下します。
(直流成分のある波形が センターをずれている場合に使用します)
[FFT] では周波数の幅を 1/2又は 2倍にします。
下段上 位置スライドバー:[Wave] で表示を開始する位置を選びます。 バーの幅が表示している信号の長さを表しています。
下段下左 [FFT]で左右のずれを変更します。
下段下右 [FFT]で上下の表示範囲を変更します。
「Zoom in | Zoom out」ボタン: ([><][<>]ボタンに変更しました。)
「Wave / FFT」トグルボタン: ([Wave][FFT]ボタンに変更しました。)
画面左「Wave」ボタン:Wave波形を表示します。
「FFT」ボタン:FFTスペクトルを表示します。 再度のクリックで FFT表示を線グラフと棒グラフで切替えます。
「Color | Green」トグルボタン: [FFT]で 表示色をグラデーション 又は 緑色に切替えます。
「><」ボタン:「Zoom in」で 表示するWave波形範囲を狭くします。
「<>」ボタン:「Zoom out」で 表示するWave波形範囲を広くします。
[Wave] 画面では 左右へのドラッグで 表示する範囲を選択します。その時はカーソル線を表示します。
[FFT] 画面では ドラッグでFFT表示位置が移動します。
例えば「ピアノ 1(Fille.wav)」の音は 以下(Fig-1)のように見えます。(サンプル数 2048)
Fig-1それを サンプル数 8192 で行うと Fig-2のようになります。
Fig-2波形の図(Fig-3)では
Fig-3最初の打鍵音の方が大きいのに
FFTではしばらくしてから基音のスペクトルが増加してる様に見えます。
(参照〉ウェーヴレット序奏
(Wavelet Introduction))
Waveファイルについて:
「makewavex.c」で作成した時のヘッダー数は58ビットでしたが 一般(ステレオ)のWaveファイルでは76ビットあります。 (再生では影響ありません)
% hd a110.wav | jless 00000000 52 49 46 46 ca 09 04 00 57 41 56 45 66 6d 74 20 |RIFFハ...WAVEfmt | 00000010 12 00 00 00 01 00 01 00 44 ac 00 00 88 58 01 00 |........Dャ...X..| 00000020 02 00 10 00 00 00 66 61 63 74 04 00 00 00 cc 04 |......fact....フ.| 00000030 02 00 64 61 74 61 98 09 04 00 00 00 58 06 a5 0c |..data......X.・.| …
% hex audio_08.wav | jless 0x00000000: 52 49 46 46 d4 9b d6 01 - 57 41 56 45 66 6d 74 20 RIFF....WAVEfmt 0x00000010: 10 00 00 00 01 00 02 00 - 44 ac 00 00 10 b1 02 00 ........D....... 0x00000020: 04 00 10 00 64 61 74 61 - b0 9b d6 01 e6 ff c3 ff ....data........ 0x00000030: dd ff df ff ed ff ee ff - db ff c4 ff ea ff f1 ff ................ ...
また“sox”と言うソフトでステレオからモノラルに変換すると 44ビットになるのですが その当たりの規格は...以下の様です。
ファイルを読み込んでいる時 makewavex で作成した場合は テキストフィールドに<fact> モノラルの場合は<mono> ステレオ時は<WAVE>と表示しています。 (切替えなくても先頭にノイズが入るだけですが 転用・流用時には御確認下さい)
---------------------------------------------------------------------- Num | Name |bytes| ---------------------------------------------------------------------- 0-3 | ChunkID | 4 | "RIFF" 4-7 | ChunkSize | 4 | (以降の全データサイズ 58-8+Data) 8-11| formType | 4 | "WAVE" 12-15| ChunkID_fmt | 4 | "fmt " 16-19| ChunkSize_fmt | 4 | (fact/data/fmt までのサイズ) 20-21| WaveFormatType| 2 | フォーマットID (※2) 22-23| Channel | 2 | Mono/Stereo (1/2) 24-27| SampFreq | 4 | サンプリング周波数 28-31| BytesPerSec | 4 | 1バイト当たりのサンプリング数 32-33| BlockSize | 2 | データのバイト長 (1/2) 34-35| BitsPerSample | 2 | データのビット長 (8/16) 36-37| ChunkSize_Ext | 2 | (拡張部サイズ Monoは無く"data"以降となる) 38-41| ChunkID_fact | 4 | "fact" 42-45| ChunkSize_fact| 4 | (dataまでのサイズ) 46-49| Num Of Data | 4 | 量子化ビット数 50-53| ChunkID_data | 4 | "data" 54-57| ChunkSize_data| 4 | データサイズ 58-~ | Data | | (これ以降音声信号データ ) ----------------------------------------------------------------------
0001h: リニア PCM 0002h: MS ADPCM 0005h: IBM CSVD 0006h: A-Law 0007h: μ-Law 0010h: OKI ADPCM 0011h: ADPCM(IMA/DVI) 0012h: MediaSpace ADPCM 0013h: Sierra ADPCM 0014h: ADPCM(G.723) 0020h: YAMAHA ADPCM 0022h: TrueSpeech 0030h: DOLBY AC2 0031h: GSM 6.10 0040h: ADPCM(G.721) 0050h: MPEG 0200h: CREATIVE ADPCM 0300h: FM-TOWNS SND ... etc.