class WavFmt
Attributes
bit_rate[R]
Public Class Methods
new(data)
click to toggle source
# File lib/wav_fmt.rb, line 5 def initialize(data) # Byte Number Size Description Value # 0-3 4 Chunk ID "fmt " (0x666D7420) #@chunk_id = data[0..3] # 4-7 4 Chunk Data Size Length Of format Chunk (always 0x10) #@chunk_size = data[4..7] # 8-9 2 Compression code Always 0x01 #puts data @compression_code = data[0..1].unpack("C")[0] # 10 - 11 2 Channel Numbers 0x01=Mono, 0x02=Stereo #puts data[2..3].inspect @channels = data[2..3].unpack("C")[0] # 12 - 15 4 Sample Rate Binary, in Hz @sample_rate = data[4..7].unpack("L")[0]/1000 # 16 - 19 4 Bytes Per Second @kbps = data[8..11].unpack("L")[0]/1000*8 @bit_rate = @kbps # 20 - 21 2 Bytes Per Sample 1=8 bit Mono, 2=8 bit Stereo or 16 bit Mono, 4=16 bit Stereo @bytes_per_sample = data[12..13].unpack("C")[0] # 22 - 23 2 Bits Per Sample @bits_per_sample = data[14..15].unpack("C")[0] end
Public Instance Methods
to_s()
click to toggle source
# File lib/wav_fmt.rb, line 30 def to_s puts "\n\tcompression_code: #{@compression_code}" puts "\t channels: #{(@channels == 1) ? "Mono" : "Stereo"}" puts "\t Sample Rate: #{@sample_rate} kHz" puts "\t Bit Rate: #{@kbps} kbps" puts "\tbytes_per_sample: #{@bytes_per_sample}" print "\t bits_per_sample: #{@bits_per_sample}" end