# File lib/as_sound.rb, line 10
  def initialize(filename)
    open(filename) do|f|
      raise "RIFF tag not found in #{filename}" unless f.read(4)=='RIFF'
      size = f.read(4).unpack('V')[0]
      
      raise "WAVE tag not found in #{filename}" unless f.read(4)=='WAVE'
      raise "Format tag not found in #{filename}" unless f.read(4)=='fmt '
      
      tableSize = f.read(4).unpack('V')[0]
      raise "Bad table size in #{filename}: found #{tableSize} expected 16" unless tableSize==16
      raise "Unknown or compressed format for #{filename}" unless f.read(2).unpack('v')[0]==1
      
      @channels = f.read(2).unpack('v')[0]
      @rate = f.read(4).unpack('V')[0]
      #f.read(6)
      f.seek(6, IO::SEEK_CUR)
      @bps = f.read(2).unpack('v')[0]
      
      raise "Data tag not found in #{filename}" unless f.read(4)=='data'
      @bytes = f.read(4).unpack('V')[0]
      @data = f.read(@bytes)
      
      @data = @data.unpack("v*").pack("S*") if @bps==16 and RUBY_PLATFORM =~ /powerpc/
    end
  end