docs: def as_sound(self, filename, speed=60, cutoff=50):
          """
          Convert AstonFrame into a WAV file.
  
          Parameters
          ----------
          filename : str
              Name of wavfile to create.
          speed : float, optional
              How much to speed up for sound recording, e.g. a value of 60
              will turn an hour-long AstonFrame into a minute-long sound clip.
          cutoff : float, optional
              m/z's under this value will be clipped out.
          """
          # make a 1d array for the sound
          def to_t(t):
              return (t - self.index[0]) / speed
  
          wav_len = int(to_t(self.index[-1]) * 60 * 44100)
          wav = np.zeros(wav_len)
  
          # create an artificial array to interpolate times out of
          tmask = np.linspace(0, 1, self.shape[0])
  
          # come up with a mapping from mz to tone
          min_hz, max_hz = 50, 1000
          min_mz, max_mz = min(self.columns), max(self.columns)
  
          def mz_to_wv(mz):
              """
              Maps a wavelength/mz to a tone.
              """
              try:
                  mz = float(mz)
              except:
                  return 100
              wv = (mz * (max_hz - min_hz) -
                    max_hz * min_mz + min_hz * max_mz) / (max_mz - min_mz)
              return int(44100 / wv)
  
          # go through each trace and map it into the sound array
          for i, mz in enumerate(self.columns):
              if float(mz) < cutoff:
                  # clip out mz/wv below a certain threshold
                  # handy if data has low level noise
                  continue
              print(str(i) + '/' + str(self.shape[1]))
              inter_x = np.linspace(0, 1, wav[::mz_to_wv(mz)].shape[0])
              wav[::mz_to_wv(mz)] += np.interp(inter_x, tmask, self.values[:, i])
  
          # scale the new array and write it out
          scaled = wav / np.max(np.abs(wav))
          scaled = scipy.signal.fftconvolve(scaled, np.ones(5) / 5, mode='same')
          scaled = np.int16(scaled * 32767)
          scipy.io.wavfile.write(filename, 44100, scaled)