Wave File format help

来源:互联网 发布:linux samba 自启动 编辑:程序博客网 时间:2024/05/21 22:33
Convert Wave format file to Raw data format

This can be found on the

Convert Page. Wave File format help

From: BerndCordes@t-online.de

Here you go:


 TWaveHeader = record  Marker1: Array[0..3] of Char;  BytesFollowing: LongInt; Marker2: Array[0..3] of Char; Marker3: Array[0..3] of Char;  Fixed1: LongInt; FormatTag: Word;  Channels: Word; SampleRate: LongInt; BytesPerSecond: LongInt;  BytesPerSample: Word; BitsPerSample: Word;  Marker4: Array[0..3] of Char;  DataBytes: LongInt; end; 



To create your own WAV:


DataBytes := Channels; DataBytes := DataBytes * SampleRate; DataBytes := DataBytes * Resolution; DataBytes := DataBytes div 8; DataBytes := DataBytes * Duration; DataBytes := DataBytes div 1000; WaveHeader.Marker1 := 'RIFF'; WaveHeader.BytesFollowing := DataBytes + 36; WaveHeader.Marker2 := 'WAVE'; WaveHeader.Marker3 := 'fmt '; WaveHeader.Fixed1 := 16; WaveHeader.FormatTag := 1; WaveHeader.SampleRate := SampleRate; WaveHeader.Channels := Channels; WaveHeader.BytesPerSecond := Channels; WaveHeader.BytesPerSecond := WaveHeader.BytesPerSecond * SampleRate; WaveHeader.BytesPerSecond := WaveHeader.BytesPerSecond * Resolution; WaveHeader.BytesPerSecond := WaveHeader.BytesPerSecond div 8; WaveHeader.BytesPerSample := Channels * Resolution div 8; WaveHeader.BitsPerSample := Resolution; WaveHeader.Marker4 := 'data'; WaveHeader.DataBytes := DataBytes; 



The rest of the file is the wave data. Order is low-high for left channel, low-high for right channel, and so on. For mono or 8 bit files make the respective changes.

原创粉丝点击