def __init__(self, onset_prob=0.8, note_prob=0.8, offset_prob=0.15, end_prob=0.8, attack_length=0.04, decay_length=0.04, release_length=0.02, onset_threshold=None, note_threshold=None, complete=True, fps=50., **kwargs): # state space self.st = ADSRStateSpace(attack_length=int(attack_length * fps), decay_length=int(decay_length * fps), release_length=int(release_length * fps)) # transition model self.tm = ADSRTransitionModel(self.st, onset_prob=onset_prob, note_prob=note_prob, offset_prob=offset_prob, end_prob=end_prob) # observation model self.om = ADSRObservationModel(self.st) # instantiate a HMM self.hmm = HiddenMarkovModel(self.tm, self.om, None) # save variables self.onset_threshold = onset_threshold self.note_threshold = note_threshold self.complete = complete self.fps = fps