def process_midi()

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