docs: def append_load(self, *args, **kwargs):
          """Append data using loadfunc.
  
          args, kwargs:
              forward to the loadfunc. args[0] must be the filename, so it
              means that loadfunc must take the filename as it's first
              argument.
  
          If self is not already a loaded instance, call load and return.
  
          Make error if there is a mismatch of channels indexes or
          channels count.
  
          Append the data to selfs existing data. Set filename to the new
          file.
  
          Create new attribute - a dict with meta-data on all files loaded,
          'metamulti.'
  
          .. note::
             Updates the mask if not no_auto.
  
          """
          if not self.D:
              self.load(*args, **kwargs)
              return
  
          newD = self.loadfunc(*args, **kwargs)
  
          s1, s2 = set(self.D.keys()), set(newD.keys())
          offenders = s1 ^ s2
          if offenders:
              mess = ('Those keys (respectively) were in one of the dicts ' +
                      'but not the other: {}.')
              offs = ', '.join([str(n) for n in offenders])
              raise KeyError(mess.format(offs))
  
          # Append the data early to fail if fail before other actions.
          for k, a in self.D.iteritems():
              self.D[k] = np.append(a, newD.pop(k))
  
          if not hasattr(self, 'metamulti'):
              self.metamulti = dict(filenames=[], mtimestamps=[], mtimenames=[],
                                    slices=[])
  
              self.metamulti['filenames'].append(self.filename)
              self.metamulti['mtimestamps'].append(self.mtimestamp)
              self.metamulti['mtimenames'].append(self.mtimefs)
              self.metamulti['slices'].append(slice(0, self.rec_cnt))
  
          self.rec_cnt = len(self.D[self.keys[0]])
          self._set_filename(args[0])
          self.set_basefilemtime()
  
          start = self.metamulti['slices'][-1].stop
          stop = self.rec_cnt
  
          self.metamulti['filenames'].append(self.filename)
          self.metamulti['mtimestamps'].append(self.mtimestamp)
          self.metamulti['mtimenames'].append(self.mtimefs)
          self.metamulti['slices'].append(slice(start, stop))
  
          if not self.no_auto:
              self.make_mask()