docs: def _join_summary_file(data, summary_filename="msd_summary_file.h5"):
      """ Gets the trackinfo array by joining taste profile to the track summary file """
      msd = h5py.File(summary_filename)
  
      # create a lookup table of trackid -> position
      track_lookup = dict((t.encode("utf8"), i) for i, t in enumerate(data['track'].cat.categories))
  
      # join on trackid to the summary file to get the artist/album/songname
      track_info = np.empty(shape=(len(track_lookup), 4), dtype=np.object)
      with tqdm.tqdm(total=len(track_info)) as progress:
          for song in msd['metadata']['songs']:
              trackid = song[17]
              if trackid in track_lookup:
                  pos = track_lookup[trackid]
                  track_info[pos] = [x.decode("utf8") for x in (trackid, song[9], song[14], song[18])]
                  progress.update(1)
  
      return track_info