code: def excitement(pool):
      # this describes if a song is exciting or not on 3 levels: 1 (not exciting), 2 or 3 (very exciting)
      spectral_centroid_mean = pool.value(
          "lowlevel.spectral_centroid.mean"
      )
      tempotap_bpm_value = pool.value("rhythm.bpm.value")
      rhythm_beats_loudness_mean = pool.value(
          "rhythm.beats_loudness.mean"
      )
      rhythm_onset_rate_value = pool.value("rhythm.onset_rate.value")
  
      # Weka tree J48 calculated with essentia_0.4.0:2875
      if spectral_centroid_mean <= 2254.374756:
          if rhythm_onset_rate_value <= 4.521962:
              if spectral_centroid_mean <= 1932.181519:
                  excitement = 1
              else:
                  if rhythm_beats_loudness_mean <= 0.032491:
                      excitement = 1
                  else:
                      excitement = 2
          else:
              if rhythm_beats_loudness_mean <= 0.051655:
                  excitement = 3
              else:
                  excitement = 2
      else:
          if spectral_centroid_mean <= 2477.170654:
              excitement = 2
          else:
              if tempotap_bpm_value <= 128.839981:
                  if rhythm_beats_loudness_mean <= 0.041298:
                      excitement = 3
                  else:
                      excitement = 2
              else:
                  excitement = 3
  
      pool.add(namespace + "." + "excitement", excitement)
  
imports: import essentia
  from essentia import INFO
label_desc: Use image node_id 2 for calling a global function with example usage: excitement(pool) without return types