code: def compute(
      source,
      pool,
      startTime=0,
      endTime=1e6,
      namespace="",
      sampleRate=analysisSampleRate,
  ):
      """3rd pass: HPCP & beats loudness (depend on some descriptors that
      have been computed during the 2nd pass)"""
  
      if namespace:
          tonalspace = namespace + ".tonal."
          rhythmspace = namespace + ".rhythm."
      else:
          tonalspace = "tonal."
          rhythmspace = "rhythm."
  
      tuning_frequency = 440.0
      if pool.containsKey(tonalspace + "tuning_frequency"):
          tuning_frequency = pool[tonalspace + "tuning_frequency"][-1]
      tonalDescriptors = TonalDescriptorsExtractor(
          tuningFrequency=tuning_frequency
      )
      source >> tonalDescriptors.signal
      for desc, output in tonalDescriptors.outputs.items():
          output >> (pool, tonalspace + desc)
  
      ticks = pool[rhythmspace + "beats_position"]
      beatsLoudness = streaming.BeatsLoudness(
          sampleRate=sampleRate, beats=ticks
      )
      source >> beatsLoudness.signal
      beatsLoudness.loudness >> (pool, rhythmspace + "beats_loudness")
      beatsLoudness.loudnessBass >> (
          pool,
          rhythmspace + "beats_loudness_bass",
      )
  
file_path: essentia/src/examples/python/outdated/streaming_extractor/midlevel.py
imports: import sys, os
  import essentia
  from essentia import *
  from essentia.streaming import *
  from metadata import getAnalysisMetadata
  from tonaldescriptors import TonalDescriptorsExtractor
label_desc: Use image node_id 1 for calling a global function with example usage: compute(source, pool, startTime, endTime, namespace, sampleRate) without return types