code: def __match_frequencies(
      target_mid: np.ndarray,
      target_side: np.ndarray,
      target_mid_loudest_pieces: np.ndarray,
      reference_mid_loudest_pieces: np.ndarray,
      target_side_loudest_pieces: np.ndarray,
      reference_side_loudest_pieces: np.ndarray,
      config: Config,
  ) -> (np.ndarray, np.ndarray):
      debug_line()
      info(Code.INFO_MATCHING_FREQS)
  
      mid_fir = get_fir(
          target_mid_loudest_pieces,
          reference_mid_loudest_pieces,
          "mid",
          config,
      )
      side_fir = get_fir(
          target_side_loudest_pieces,
          reference_side_loudest_pieces,
          "side",
          config,
      )
  
      del (
          target_mid_loudest_pieces,
          reference_mid_loudest_pieces,
          target_side_loudest_pieces,
          reference_side_loudest_pieces,
      )
  
      result, result_mid = convolve(
          target_mid, mid_fir, target_side, side_fir
      )
  
      return result, result_mid
  
file_path: matchering/matchering/stages.py
imports: import numpy
  from .log import Code, info, debug, debug_line
  from .None import Config
  from .utils import to_db
  from .dsp import amplify, normalize, clip
  from .stage_helpers import normalize_reference, analyze_levels, get_fir, convolve, get_average_rms, get_lpis_and_match_rms, get_rms_c_and_amplify_pair
  from .limiter import limit
label_desc: Use image node_id 2 for calling a global function with example usage: __match_frequencies(target_mid, target_side, target_mid_loudest_pieces, reference_mid_loudest_pieces, target_side_loudest_pieces, reference_side_loudest_pieces, config) and returns: result,  result_mid