def read_frames(self, nframes, dtype=np.float64):
        """Read nframes frames of the file.

        :Parameters:
            nframes : int
                number of frames to read.
            dtype : numpy dtype
                dtype of the returned array containing read data (see note).

        Notes
        -----

        - read_frames updates the read pointer.
        - One column is one channel (one row per channel after 0.9)
        - if float are requested when the file contains integer data, you will
          get normalized data (that is the max possible integer will be 1.0,
          and the minimal possible value -1.0).
        - if integers are requested when the file contains floating point data,
          it may give wrong results because there is an ambiguity: if the
          floating data are normalized, you can get a file with only 0 !
          Getting integer data from files encoded in normalized floating point
          is not supported (yet: sndfile supports it)."""
        return self._sndfile.read_frames(nframes, dtype)