in ar-cnn/utils/midi_utils.py [0:0]
def process_midi(midi_file, beat_resolution):
'''Takes path to an input midi file and parses it to pianoroll
:param input_midi: Path to midi file
:param beat_resolution
:return: parsed painoroll
'''
multi_track = pypianoroll.Multitrack(beat_resolution=beat_resolution)
try:
multi_track.parse_midi(midi_file,
algorithm='custom',
first_beat_time=0)
except:
print("midi file: {} is invalid. Ignoring during preprocessing".format(
midi_file))
pass
# Convert the PianoRoll to binary ignoring the values of velocities
multi_track.binarize()
track_indices = list(np.arange(len(
multi_track.tracks))) # Merge multiple tracks into a single track
multi_track.merge_tracks(track_indices=track_indices,
mode='any',
remove_merged=True)
pianoroll = multi_track.tracks[0].pianoroll
return pianoroll