code: def acoustic_similarity_directories(directories, analysis_function, distance_function, stop_check=None, call_back=None, multiprocessing=True):
      
  
      files = []
  
      if call_back is not None:
          call_back('Mapping directories...')
          call_back(0, len(directories))
          cur = 0
      for d in directories:
          if not os.path.isdir(d):
              continue
          if stop_check is not None and stop_check():
              return
          if call_back is not None:
              cur += 1
              if cur % 3 == 0:
                  call_back(cur)
  
          files += [os.path.join(d, x) for x in os.listdir(d) if x.lower().endswith('.wav')]
  
      if len(files) == 0:
          raise (ConchError("The directories specified do not contain any wav files"))
  
      if call_back is not None:
          call_back('Mapping directories...')
          call_back(0, len(files) * len(files))
          cur = 0
      path_mapping = list()
      for x in files:
          for y in files:
              if stop_check is not None and stop_check():
                  return
              if call_back is not None:
                  cur += 1
                  if cur % 20 == 0:
                      call_back(cur)
              if not x.lower().endswith('.wav'):
                  continue
              if not y.lower().endswith('.wav'):
                  continue
              if x == y:
                  continue
              path_mapping.append((x, y))
  
      result = acoustic_similarity_mapping(path_mapping, analysis_function, distance_function, stop_check, call_back, multiprocessing)
      return result
docs: Analyze many directories.
  
      Parameters
      ----------
      directories : list of str
          List of fully specified paths to the directories to be analyzed