class_docstr: Simple class for extracting pitch class profiles (PCP), i.e. chroma
  vectors from a spectrogram.
  
  Parameters
  ----------
  spectrogram : :class:`.audio.spectrogram.Spectrogram` instance
      :class:`.audio.spectrogram.Spectrogram` instance.
  filterbank : :class:`.audio.filters.Filterbank` class or instance
      :class:`.audio.filters.Filterbank` class or instance.
  num_classes : int, optional
      Number of pitch classes.
  fmin : float, optional
      Minimum frequency of the PCP filterbank [Hz].
  fmax : float, optional
      Maximum frequency of the PCP filterbank [Hz].
  fref : float, optional
      Reference frequency for the first PCP bin [Hz].
  kwargs : dict, optional
      If no :class:`.audio.spectrogram.Spectrogram` instance was given,
      one is instantiated with these additional keyword arguments.
  
  Notes
  -----
  If `fref` is 'None', the reference frequency is estimated from the given
  spectrogram.
  
  References
  ----------
  .. [1] T. Fujishima,
         "Realtime chord recognition of musical sound: a system using Common
         Lisp Music",
         Proceedings of the International Computer Music Conference (ICMC),
         1999.
class_docstr_tok: ["Simple","class","for","extracting","pitch","class","profiles","(","PCP",")",",","i.e",".","chroma","vectors","from","a","spectrogram",".","Parameters","--","--","--","--","--","spectrogram",":",":","class",":","`",".audio.spectrogram.Spectrogram","`","instance",":","class",":","`",".audio.spectrogram.Spectrogram","`","instance",".","filterbank",":",":","class",":","`",".audio.filters.Filterbank","`","class","or","instance",":","class",":","`",".audio.filters.Filterbank","`","class","or","instance",".","num_classes",":","int",",","optional","Number","of","pitch","classes",".","fmin",":","float",",","optional","Minimum","frequency","of","the","PCP","filterbank","[","Hz","]",".","fmax",":","float",",","optional","Maximum","frequency","of","the","PCP","filterbank","[","Hz","]",".","fref",":","float",",","optional","Reference","frequency","for","the","first","PCP","bin","[","Hz","]",".","kwargs",":","dict",",","optional","If","no",":","class",":","`",".audio.spectrogram.Spectrogram","`","instance","was","given",",","one","is","instantiated","with","these","additional","keyword","arguments",".","Notes","--","--","-","If","`","fref","`","is","'None","'",",","the","reference","frequency","is","estimated","from","the","given","spectrogram",".","References","--","--","--","--","--","..","[","1","]","T.","Fujishima",",","``","Realtime","chord","recognition","of","musical","sound",":","a","system","using","Common","Lisp","Music","''",",","Proceedings","of","the","International","Computer","Music","Conference","(","ICMC",")",",","1999","."]
code: def __init__(
      self,
      spectrogram,
      filterbank=PCP,
      num_classes=PCP.CLASSES,
      fmin=PCP.FMIN,
      fmax=PCP.FMAX,
      fref=A4,
      **kwargs,
  ):
      # this method is for documentation purposes only
      pass
  
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 1 to create a new PitchClassProfile object from inherited base classes: FilteredSpectrogram with example: obj = PitchClassProfile(spectrogram, filterbank, num_classes, fmin, fmax, fref)