class_docstr: Spectrogram image builder with an extensible buffer based on tables
  
  Parameters
  ----------
  input_blocksize : int, optional
      Blocksize of the input signal, default to 2048
  input_stepsize : str, optional
      The second parameter, default to half blocksize.
  fft_size : int, optional
      The size of the fft, default to blocksize.
  
  Examples
  --------
  >>> import timeside
  >>> from timeside.core import get_processor
  >>> from timeside.core.tools.test_samples import samples
  >>> audio_source = samples['sweep.wav']
  >>> decoder = get_processor('file_decoder')(uri=audio_source)
  >>> spectrogram = get_processor('spectrogram_analyzer_buffer')(input_blocksize=2048, input_stepsize=1024)
  >>> pipe = (decoder | spectrogram)
  >>> pipe.run()
  >>> 'spectrogram_analyzer_buffer' in spectrogram.results.keys()
  True
  >>> result = spectrogram.results['spectrogram_analyzer_buffer']
  >>> result.data.shape
  (345, 1025)
  
   .. plot::
  
    import timeside
    from timeside.core import get_processor
    from timeside.core.tools.test_samples import samples
    audio_source = samples['sweep.wav']
    decoder = get_processor('file_decoder')(uri=audio_source)
    spectrogram = get_processor('spectrogram_analyzer_buffer')(input_blocksize=2048,
                                                        input_stepsize=1024)
    pipe = (decoder | spectrogram)
    pipe.run()
    res = spectrogram.results['spectrogram_analyzer_buffer']
    res.render()
class_docstr_tok: ["Spectrogram","image","builder","with","an","extensible","buffer","based","on","tables","Parameters","--","--","--","--","--","input_blocksize",":","int",",","optional","Blocksize","of","the","input","signal",",","default","to","2048","input_stepsize",":","str",",","optional","The","second","parameter",",","default","to","half","blocksize",".","fft_size",":","int",",","optional","The","size","of","the","fft",",","default","to","blocksize",".","Examples","--","--","--","--",">",">",">","import","timeside",">",">",">","from","timeside.core","import","get_processor",">",">",">","from","timeside.core.tools.test_samples","import","samples",">",">",">","audio_source","=","samples","[","'sweep.wav","'","]",">",">",">","decoder","=","get_processor","(","'file_decoder","'",")","(","uri=audio_source",")",">",">",">","spectrogram","=","get_processor","(","'spectrogram_analyzer_buffer","'",")","(","input_blocksize=2048",",","input_stepsize=1024",")",">",">",">","pipe","=","(","decoder","|","spectrogram",")",">",">",">","pipe.run","(",")",">",">",">","'spectrogram_analyzer_buffer","'","in","spectrogram.results.keys","(",")","True",">",">",">","result","=","spectrogram.results","[","'spectrogram_analyzer_buffer","'","]",">",">",">","result.data.shape","(","345",",","1025",")","..","plot",":",":","import","timeside","from","timeside.core","import","get_processor","from","timeside.core.tools.test_samples","import","samples","audio_source","=","samples","[","'sweep.wav","'","]","decoder","=","get_processor","(","'file_decoder","'",")","(","uri=audio_source",")","spectrogram","=","get_processor","(","'spectrogram_analyzer_buffer","'",")","(","input_blocksize=2048",",","input_stepsize=1024",")","pipe","=","(","decoder","|","spectrogram",")","pipe.run","(",")","res","=","spectrogram.results","[","'spectrogram_analyzer_buffer","'","]","res.render","(",")"]
code: def process(self, frames, eod=False):
      stft = np.fft.rfft(frames, self.fft_size)
      self.values.append("stft", stft)
      return frames, eod
  
file_path: TimeSide/timeside/plugins/analyzer/spectrogram_buffer.py
imports: from __future__ import division
  from timeside.core import implements, interfacedoc
  from timeside.core.analyzer import Analyzer
  from timeside.core.api import IAnalyzer
  from timeside.core.preprocessors import downmix_to_mono, frames_adapter
  from timeside.core.tools.parameters import store_parameters, Int, HasTraits
  from timeside.core.tools.buffering import BufferTable
  from timeside.plugins.analyzer.spectrogram import Spectrogram
  import numpy
label_desc: Use image node_id 5 for calling the SpectrogramBuffer obj's underlying member method code with example usage: obj.process(frames, eod) and returns: frames,  eod