def main(): c=0 for filename in (glob.glob('drive/My Drive/Synth pop MIDI/*.mid')): mtrack = Multitrack(filename) mtrack.to_pretty_midi() #mtrack = remove_short_tracks(mtrack) orchestra = group_by_program(mtrack) l=len(mtrack.tracks) trackid=[x for x in range(l)] newmtrack, inst = merge_instrument(mtrack,orchestra,trackid) filename=filename[30:] if len(newmtrack.tracks)==4: c+=1 print(filename, len(newmtrack.tracks), inst, orchestra) newmtrack.write('drive/My Drive/Synth pop MIDI/four tracks with drum sum/'+filename) print(c)
def tempo_unify(): midi_collection = get_midi_collection() root_dir = 'E:/free_midi_library/' test_path = './test.mid' unify_tempo = 90 original = Multitrack(test_path) original_tempo = get_midi_info(original.to_pretty_midi())['tempo'][0] merged_multi = get_merged(original) tracks_dict = {} length = 0 for track in merged_multi.tracks: if track.pianoroll.shape[0] != 0: length = track.pianoroll.shape[0] old_pianoroll = track.pianoroll for i in range(128): for j in range(length): print(track.pianoroll[j][i], end=' ') print() '''
tempo=np.full(track.pianoroll.shape[0], 6000), # beat_resolution=int(60.0 / midi_data.estimate_tempo() * 100) beat_resolution=int(60.0 / 6000 * 100) # tempo=midi_data.get_tempo_changes()[1], ) # %% multitrack.write("temp.mid") # %% test_track = Multitrack("temp.mid", tempo=6000, beat_resolution=int(60.0 / 6000 * 100)) # %% test_midi = test_track.to_pretty_midi() # %% # Play Midi import pygame pygame.init() # %% pygame.mixer.music.load(os.path.join(path_to_code, "Data/Train/chpn-p1.mid")) pygame.mixer.music.play() # %% pygame.mixer.music.stop() # %% pygame.mixer.music.load(os.path.join(path_to_code, "temp.mid"))
def pianoroll2midi(pianoroll, file_path): track = Track(pianoroll=pianoroll) multitrack = Multitrack(tracks=[track], tempo=GLOBAL_VAR.MIDI_TEMPO) multitrack.to_pretty_midi() multitrack.write(file_path)