def load_file(root_path): # parser the data dir_list = os.listdir(root_path) dir_list.sort() file_name = [] file_num = [] for dir in dir_list: tmp_name = os.listdir(os.path.join("./raw_classical_music_data",dir)) tmp_name.sort() file_name.append(tmp_name) file_num.append(len(tmp_name)) print("Num of file in each dir : " ,file_num) # Parse a MIDI file to a `pypianoroll.Multitrack` instance data_list = [] for i,dir in enumerate(dir_list): print("\rPhraser the data : %d/%d" %(i+1,len(dir_list)), end = "") for name in file_name[i]: file_path = os.path.join('./raw_classical_music_data',dir,name) tmp_pypianoroll = Multitrack(file_path) tmp_pypianoroll.remove_empty_tracks() tmp_pypianoroll.pad_to_multiple(length_Section*length_tab) tmp_np = tmp_pypianoroll.get_stacked_pianoroll() data_list.append(tmp_np) data_list = np.array(data_list) #np.save("all_data.npy",data_list) print("") print("finish praser the data...") return data_list
def test(): tmp_pypianoroll = Multitrack("./mz_545_1.mid") print(tmp_pypianoroll.tracks[0]) tmp_pypianoroll.remove_empty_tracks() tmp_np = tmp_pypianoroll.get_stacked_pianoroll() tarck1 = tmp_np[:960,:,0] tarck2 = tmp_np[:960,:,1] tarck1 = tarck1 > 0.1 tarck2 = tarck2 > 0.1 tarck1 = Track(tarck1, program=0, is_drum=False, name='unknown') tarck2 = Track(tarck2, program=0, is_drum=False, name='unknown') cc = Multitrack(tracks=[tarck1,tarck2], tempo=120.0,beat_resolution=24) #print(cc) cc.write('test_2.mid')