class_docstr: Map state numbers to actual states.
  
  State 0 refers to silence, the ADSR states (attack, decay, sustain,
  release) are numbered from 1 onwards.
  
  Parameters
  ----------
  attack_length : int, optional
      Length of the attack phase.
  decay_length : int, optional
      Length of the decay phase.
  release_length : int, optional
      Length of the release phase.
  
  Sustain phase has no specific minimum length, since self-transitions from
  this state are used to model the note length.
code: def num_states(self):
      return self.release + 1
  
file_path: madmom/madmom/features/notes_hmm.py
imports: from __future__ import absolute_import, division, print_function
  import numpy
  from madmom.ml.hmm import TransitionModel, ObservationModel
label_desc: Use image node_id 2 for calling the ADSRStateSpace obj's underlying member method code with example usage: obj.num_states() and returns: unknown