class_docstr: Beat tracking with RNNs and a dynamic Bayesian network (DBN) approximated
  by a Hidden Markov Model (HMM).
  
  Parameters
  ----------
  min_bpm : float, optional
      Minimum tempo used for beat tracking [bpm].
  max_bpm : float, optional
      Maximum tempo used for beat tracking [bpm].
  num_tempi : int, optional
      Number of tempi to model; if set, limit the number of tempi and use a
      log spacing, otherwise a linear spacing.
  transition_lambda : float, optional
      Lambda for the exponential tempo change distribution (higher values
      prefer a constant tempo from one beat to the next one).
  observation_lambda : int, optional
      Split one beat period into `observation_lambda` parts, the first
      representing beat states and the remaining non-beat states.
  threshold : float, optional
      Threshold the observations before Viterbi decoding.
  correct : bool, optional
      Correct the beats (i.e. align them to the nearest peak of the beat
      activation function).
  fps : float, optional
      Frames per second.
  online : bool, optional
      Use the forward algorithm (instead of Viterbi) to decode the beats.
  
  Notes
  -----
  Instead of the originally proposed state space and transition model for
  the DBN [1]_, the more efficient version proposed in [2]_ is used.
  
  References
  ----------
  .. [1] Sebastian Böck, Florian Krebs and Gerhard Widmer,
         "A Multi-Model Approach to Beat Tracking Considering Heterogeneous
         Music Styles",
         Proceedings of the 15th International Society for Music Information
         Retrieval Conference (ISMIR), 2014.
  .. [2] Florian Krebs, Sebastian Böck and Gerhard Widmer,
         "An Efficient State Space Model for Joint Tempo and Meter Tracking",
         Proceedings of the 16th International Society for Music Information
         Retrieval Conference (ISMIR), 2015.
  
  Examples
  --------
  Create a DBNBeatTrackingProcessor. The returned array represents the
  positions of the beats in seconds, thus the expected sampling rate has to
  be given.
  
  >>> proc = DBNBeatTrackingProcessor(fps=100)
  >>> proc  # doctest: +ELLIPSIS
  <madmom.features.beats.DBNBeatTrackingProcessor object at 0x...>
  
  Call this DBNBeatTrackingProcessor with the beat activation function
  returned by RNNBeatProcessor to obtain the beat positions.
  
  >>> act = RNNBeatProcessor()('tests/data/audio/sample.wav')
  >>> proc(act)
  array([0.1 , 0.45, 0.8 , 1.12, 1.48, 1.8 , 2.15, 2.49])
class_docstr_tok: ["Beat","tracking","with","RNNs","and","a","dynamic","Bayesian","network","(","DBN",")","approximated","by","a","Hidden","Markov","Model","(","HMM",")",".","Parameters","--","--","--","--","--","min_bpm",":","float",",","optional","Minimum","tempo","used","for","beat","tracking","[","bpm","]",".","max_bpm",":","float",",","optional","Maximum","tempo","used","for","beat","tracking","[","bpm","]",".","num_tempi",":","int",",","optional","Number","of","tempi","to","model",";","if","set",",","limit","the","number","of","tempi","and","use","a","log","spacing",",","otherwise","a","linear","spacing",".","transition_lambda",":","float",",","optional","Lambda","for","the","exponential","tempo","change","distribution","(","higher","values","prefer","a","constant","tempo","from","one","beat","to","the","next","one",")",".","observation_lambda",":","int",",","optional","Split","one","beat","period","into","`","observation_lambda","`","parts",",","the","first","representing","beat","states","and","the","remaining","non-beat","states",".","threshold",":","float",",","optional","Threshold","the","observations","before","Viterbi","decoding",".","correct",":","bool",",","optional","Correct","the","beats","(","i.e",".","align","them","to","the","nearest","peak","of","the","beat","activation","function",")",".","fps",":","float",",","optional","Frames","per","second",".","online",":","bool",",","optional","Use","the","forward","algorithm","(","instead","of","Viterbi",")","to","decode","the","beats",".","Notes","--","--","-","Instead","of","the","originally","proposed","state","space","and","transition","model","for","the","DBN","[","1","]","_",",","the","more","efficient","version","proposed","in","[","2","]","_","is","used",".","References","--","--","--","--","--","..","[","1","]","Sebastian","B\u00f6ck",",","Florian","Krebs","and","Gerhard","Widmer",",","``","A","Multi-Model","Approach","to","Beat","Tracking","Considering","Heterogeneous","Music","Styles","''",",","Proceedings","of","the","15th","International","Society","for","Music","Information","Retrieval","Conference","(","ISMIR",")",",","2014",".","..","[","2","]","Florian","Krebs",",","Sebastian","B\u00f6ck","and","Gerhard","Widmer",",","``","An","Efficient","State","Space","Model","for","Joint","Tempo","and","Meter","Tracking","''",",","Proceedings","of","the","16th","International","Society","for","Music","Information","Retrieval","Conference","(","ISMIR",")",",","2015",".","Examples","--","--","--","--","Create","a","DBNBeatTrackingProcessor",".","The","returned","array","represents","the","positions","of","the","beats","in","seconds",",","thus","the","expected","sampling","rate","has","to","be","given",".",">",">",">","proc","=","DBNBeatTrackingProcessor","(","fps=100",")",">",">",">","proc","#","doctest",":","+ELLIPSIS","<","madmom.features.beats.DBNBeatTrackingProcessor","object","at","0x","...",">","Call","this","DBNBeatTrackingProcessor","with","the","beat","activation","function","returned","by","RNNBeatProcessor","to","obtain","the","beat","positions",".",">",">",">","act","=","RNNBeatProcessor","(",")","(","'tests\/data\/audio\/sample.wav","'",")",">",">",">","proc","(","act",")","array","(","[","0.1",",","0.45",",","0.8",",","1.12",",","1.48",",","1.8",",","2.15",",","2.49","]",")"]
docstr: Reset the DBNBeatTrackingProcessor.
docstr_tok: ["Reset","the","DBNBeatTrackingProcessor","."]
code: def reset(self):
      """Reset the DBNBeatTrackingProcessor."""
      # pylint: disable=attribute-defined-outside-init
      # reset the HMM
      self.hmm.reset()
      # reset other variables
      self.counter = 0
      self.beat_counter = 0
      self.strength = 0
      self.last_beat = 0
      self.tempo = 0
  
imports: from __future__ import absolute_import, division, print_function
  import sys
  import numpy
  from ..audio.signal import signal_frame, smooth
  from ..ml.nn import average_predictions
  from ..processors import OnlineProcessor, ParallelProcessor, Processor, SequentialProcessor
label_desc: Use image node_id 2 for calling the DBNBeatTrackingProcessor obj's underlying member method code with example usage: obj.reset() without return types