src.preprocess
1import os 2from glob import glob 3 4from midi2audio import FluidSynth 5from tqdm import tqdm 6 7from src.helper import print_midi 8 9 10def convert_labeled_data_to_wav(): 11 """Converts the labeled data from MIDI format to WAV format.""" 12 13 fs = FluidSynth() 14 15 # Pathing of files 16 abs_dir = os.getcwd() 17 source_dir = "data/musicians" 18 19 # Create iterator for musician folders 20 parent_folders = os.listdir(source_dir) 21 musician_folders = tqdm(parent_folders, colour="green") 22 23 # Iterate over all musician folders 24 for top_folder in musician_folders: 25 musician_folders.set_description(f"Processing: {top_folder}") 26 27 # Ignore irrelevant files 28 if top_folder == ".DS_Store": 29 continue # this is a MacOSX generated file 30 31 # Create iterator for MIDI files 32 midi_files = tqdm(glob(source_dir + "/" + top_folder + "/*.mid"), colour="red") 33 34 # Iterate over all files under musician folders 35 for midi_file in midi_files: 36 midi_files.set_description(f"Processing: {midi_file.split('/')[-1]}") 37 input_file = abs_dir + "/" + midi_file 38 output_file = os.path.splitext(input_file)[0] + ".wav" 39 fs.midi_to_audio(input_file, output_file) 40 41 42def convert_unlabled_data_to_wav(): 43 """Converts the unlabled data from MIDI format to WAV format.""" 44 45 fs = FluidSynth() 46 47 # Pathing of files 48 abs_dir = os.getcwd() 49 source_dir = "data/test" 50 51 # Create iterator for MIDI files 52 midi_files = tqdm(glob(source_dir + "/*.mid"), colour="green") 53 54 # Iterate over all files under musician folders 55 for midi_file in midi_files: 56 midi_files.set_description(f"Processing: {midi_file.split('/')[-1]}") 57 input_file = abs_dir + "/" + midi_file 58 output_file = os.path.splitext(input_file)[0] + ".wav" 59 fs.midi_to_audio(input_file, output_file) 60 61 62# using the default sound font in 44100 Hz sample rate 63if __name__ == "__main__": 64 # First convert all MIDI files to WAV format 65 convert_labeled_data_to_wav() 66 convert_unlabled_data_to_wav() 67 68 # View Track Metadata 69 print_midi("data/test/0.002716920481628_adj.mid")
def
convert_labeled_data_to_wav():
11def convert_labeled_data_to_wav(): 12 """Converts the labeled data from MIDI format to WAV format.""" 13 14 fs = FluidSynth() 15 16 # Pathing of files 17 abs_dir = os.getcwd() 18 source_dir = "data/musicians" 19 20 # Create iterator for musician folders 21 parent_folders = os.listdir(source_dir) 22 musician_folders = tqdm(parent_folders, colour="green") 23 24 # Iterate over all musician folders 25 for top_folder in musician_folders: 26 musician_folders.set_description(f"Processing: {top_folder}") 27 28 # Ignore irrelevant files 29 if top_folder == ".DS_Store": 30 continue # this is a MacOSX generated file 31 32 # Create iterator for MIDI files 33 midi_files = tqdm(glob(source_dir + "/" + top_folder + "/*.mid"), colour="red") 34 35 # Iterate over all files under musician folders 36 for midi_file in midi_files: 37 midi_files.set_description(f"Processing: {midi_file.split('/')[-1]}") 38 input_file = abs_dir + "/" + midi_file 39 output_file = os.path.splitext(input_file)[0] + ".wav" 40 fs.midi_to_audio(input_file, output_file)
Converts the labeled data from MIDI format to WAV format.
def
convert_unlabled_data_to_wav():
43def convert_unlabled_data_to_wav(): 44 """Converts the unlabled data from MIDI format to WAV format.""" 45 46 fs = FluidSynth() 47 48 # Pathing of files 49 abs_dir = os.getcwd() 50 source_dir = "data/test" 51 52 # Create iterator for MIDI files 53 midi_files = tqdm(glob(source_dir + "/*.mid"), colour="green") 54 55 # Iterate over all files under musician folders 56 for midi_file in midi_files: 57 midi_files.set_description(f"Processing: {midi_file.split('/')[-1]}") 58 input_file = abs_dir + "/" + midi_file 59 output_file = os.path.splitext(input_file)[0] + ".wav" 60 fs.midi_to_audio(input_file, output_file)
Converts the unlabled data from MIDI format to WAV format.