Exemplo n.º 1
0
def load_from_pair(tracks_path, quantization, binarize_piano, binarize_orch, temporal_granularity):
    ############################################################
    # Read piano midi file and orchestra score if defined
    ############################################################
    pr_piano, event_piano, duration_piano, _, name_piano, pr_orch, _, _, instru_orch, _, duration =\
        build_data_aux.process_folder(tracks_path, quantization, binarize_piano, binarize_orch, temporal_granularity)
    return pr_piano, event_piano, duration_piano, name_piano, pr_orch, instru_orch, duration
Exemplo n.º 2
0
def build_split_matrices(folder_paths, quantization, temporal_granularity):
	file_counter = 0
	train_only_files={}
	train_and_valid_files={}

	for folder_path in folder_paths:
		#############
		# Read file
		folder_path = folder_path.rstrip()
		print(folder_path)
		if not os.path.isdir(folder_path):
			continue

		# Is there an original piano score or do we have to create it ?
		num_music_file = max(len(glob.glob(folder_path + '/*.mid')), len(glob.glob(folder_path + '/*.xml')))
		if num_music_file == 2:
			is_piano = True
		elif num_music_file == 1:
			is_piano = False
		else:
			raise Exception("CAVAVAVAMAVAL")

		# Get pr, warped and duration
		if is_piano:
			new_pr_piano, _, _, _, new_name_piano, _, _, _, _, _, duration\
				= build_data_aux.process_folder(folder_path, quantization, binary_piano, binary_orch, temporal_granularity, gapopen=3, gapextend=1)
		else:
			new_pr_piano, _, _, _, new_name_piano, _, _, _, _, _, duration\
				= build_data_aux_no_piano.process_folder_NP(folder_path, quantization, binary_piano, binary_orch, temporal_granularity)

		if new_pr_piano is None:
			print("FAIL !")
			continue

		split_name = re.split("/", new_name_piano)
		folder_name = "Piano_files_for_embeddings/" + split_name[-3]
		file_name = split_name[-1] + '.mid'
		if not os.path.isdir(folder_name):
			os.makedirs(folder_name)
		write_midi(new_pr_piano, 1000,  folder_name + '/' + file_name, tempo=80)
	return