def SaveTrack(self, mid, ch): track = MidiTrack() track.type = 1 mid.tracks.append(track) for i in range(self.num_steps): if (self.rests[i] == 1): delta_time = delta_time + self.ppq[i] else: delta_time = 0.0 if (self.repeats[i] > 0): for j in range(self.repeats[i]): if (self.rests[i] == 1): delta_time = delta_time + self.ppq[i] else: track.append( Message('note_on', note=self.notes[i], channel=ch, velocity=100, time=1)) track.append( Message('note_off', note=self.notes[i], channel=ch, velocity=127, time=int(delta_time + self.ppq[i] - 1))) if (rests[i] == 1): track.append( Message('note_off', note=self.notes[i], channel=ch, velocity=127, time=int(delta_time))) else: track.append( Message('note_on', note=self.notes[i], channel=ch, velocity=100, time=1)) track.append( Message('note_off', note=self.notes[i], channel=ch, velocity=127, time=int(self.ppq[i] - 1)))