def Audio.length(f)
  mciSendString = Win32API.new('winmm', 'mciSendString', 'ppLp', 'i')
  return 0 if mciSendString.call("open #{f.inspect} alias add8e6", '', 0, 0) != 0
  mciSendString.call("status add8e6 length", (buf = [].pack('x128')), 128, 0)
  mciSendString.call("close add8e6", "", 0, 0)
  buf.to_i
end