예제 #1
0
def event_indeces_to_midi_file(event_indeces, midi_file_name, velocity_scale=0.8):
    event_seq = EventSeq.from_array(event_indeces)
    note_seq = event_seq.to_note_seq()
    for note in note_seq.notes:
        note.velocity = int((note.velocity - 64) * velocity_scale + 64)
    note_seq.to_midi_file(midi_file_name)
    return len(note_seq.notes)
예제 #2
0
            return
        except:
            print(' Error')
            continue

    for path, future in Bar('Processing').iter(results):
        print(' ', end='[{}]'.format(path), flush=True)
        name = os.path.basename(path)
        code = hashlib.md5(path.encode()).hexdigest()
        save_path = os.path.join(save_dir, out_fmt.format(name, code))
        torch.save(future.result(), save_path)

    print('Done')
"""

if __name__ == '__main__':
    """
    preprocess_midi_files_under(
        midi_root=sys.argv[1],
        save_dir=sys.argv[2],
        num_workers=int(sys.argv[3],
        type='event'))
    """
    path = "../../../egs/dataset/tmp_res/test_seq_bef.midi"
    save_path =  "../../../egs/dataset/tmp_res/test_seq_aft.midi"
    event_seq_array = preprocess_midi_event(path)
    event_seq = EventSeq.from_array(event_seq_array)
    note_seq = event_seq.to_note_seq()
    note_seq.to_midi_file(save_path)