docs: def data_from_file(file):
      """Return (first channel data, sample frequency, sample width) from a .wav
      file."""
      fp = wave.open(file, 'r')
      data = fp.readframes(fp.getnframes())
      channels = fp.getnchannels()
      freq = fp.getframerate()
      bits = fp.getsampwidth()
  
      # Unpack bytes -- warning currently only tested with 16 bit wavefiles. 32
      # bit not supported.
      data = struct.unpack(('%sh' % fp.getnframes()) * channels, data)
  
      # Only use first channel
      channel1 = []
      n = 0
      for d in data:
          if n % channels == 0:
              channel1.append(d)
          n += 1
      fp.close()
      return (channel1, freq, bits)