class_docstr: Compressed Log Pitch (CLP) chroma as proposed in [1]_ and [2]_.
  
  Parameters
  ----------
  data : str, Signal, or SemitoneBandpassSpectrogram
      Input data.
  fps : int, optional
      Desired frame rate of the signal [Hz].
  fmin : float, optional
      Lowest frequency of the spectrogram [Hz].
  fmax : float, optional
      Highest frequency of the spectrogram [Hz].
  compression_factor : float, optional
      Factor for compression of the energy.
  norm : bool, optional
      Normalize the energy of each frame to one (divide by the L2 norm).
  threshold : float, optional
      If the energy of a frame is below a threshold, the energy is equally
      distributed among all chroma bins.
  
  Notes
  -----
  The resulting chromagrams differ slightly from those obtained by the
  MATLAB chroma toolbox [2]_ because of different resampling and filter
  methods.
  
  References
  ----------
  .. [1] Meinard Müller,
         "Information retrieval for music and motion", Springer, 2007.
  
  .. [2] Meinard Müller and Sebastian Ewert,
         "Chroma Toolbox: MATLAB Implementations for Extracting Variants of
         Chroma-Based Audio Features",
         Proceedings of the International Conference on Music Information
         Retrieval (ISMIR), 2011.
class_docstr_tok: ["Compressed","Log","Pitch","(","CLP",")","chroma","as","proposed","in","[","1","]","_","and","[","2","]","_.","Parameters","--","--","--","--","--","data",":","str",",","Signal",",","or","SemitoneBandpassSpectrogram","Input","data",".","fps",":","int",",","optional","Desired","frame","rate","of","the","signal","[","Hz","]",".","fmin",":","float",",","optional","Lowest","frequency","of","the","spectrogram","[","Hz","]",".","fmax",":","float",",","optional","Highest","frequency","of","the","spectrogram","[","Hz","]",".","compression_factor",":","float",",","optional","Factor","for","compression","of","the","energy",".","norm",":","bool",",","optional","Normalize","the","energy","of","each","frame","to","one","(","divide","by","the","L2","norm",")",".","threshold",":","float",",","optional","If","the","energy","of","a","frame","is","below","a","threshold",",","the","energy","is","equally","distributed","among","all","chroma","bins",".","Notes","--","--","-","The","resulting","chromagrams","differ","slightly","from","those","obtained","by","the","MATLAB","chroma","toolbox","[","2","]","_","because","of","different","resampling","and","filter","methods",".","References","--","--","--","--","--","..","[","1","]","Meinard","M\u00fcller",",","``","Information","retrieval","for","music","and","motion","''",",","Springer",",","2007",".","..","[","2","]","Meinard","M\u00fcller","and","Sebastian","Ewert",",","``","Chroma","Toolbox",":","MATLAB","Implementations","for","Extracting","Variants","of","Chroma-Based","Audio","Features","''",",","Proceedings","of","the","International","Conference","on","Music","Information","Retrieval","(","ISMIR",")",",","2011","."]
code: def __array_finalize__(self, obj):
      if obj is None:
          return
      # set default values here
      self.fps = getattr(obj, "fps", None)
      self.bin_labels = getattr(obj, "bin_labels", None)
  
imports: from __future__ import absolute_import, division, print_function
  import warnings
  import numpy
  from madmom.audio.filters import A4, Filterbank, PitchClassProfileFilterbank, HarmonicPitchClassProfileFilterbank
  from madmom.audio.spectrogram import Spectrogram, FilteredSpectrogram, SemitoneBandpassSpectrogram
  from madmom.processors import SequentialProcessor, Processor
label_desc: Use image node_id 3 for calling the CLPChroma obj's underlying member method code with example usage: obj.__array_finalize__(obj) without return types