key=lambda x: int(x.replace('.', '-').split('-')[1])) # midi file midi_path = os.path.join('midi', filename + '.mid') # Convert to annotation df_score, df_audio = process(filename, xml_path, svg_paths, midi_path) # Write to csv df_score.to_csv(os.path.join('annot_sheet', '{:}_beats.csv'.format(filename)), index=False) if not os.path.exists('annot_audio/{:}'.format(filename)): os.mkdir('annot_audio/{:}'.format(filename)) df_audio.to_csv(os.path.join('annot_audio', filename, '{:}.csv'.format(filename)), index=False) if not os.path.exists('annot_sheet'): os.mkdir('annot_sheet') if not os.path.exists('annot_audio'): os.mkdir('annot_audio') xml_paths = glob.glob('xml/*.xml') try: parallel_process(xml_paths, f, front_num=0) except: # pylint: disable=bare-except pass
import os import subprocess from parallel_utils import parallel_process # Set environment variable to prevent QXcbConnection: Could not connect to # display problem os.environ['QT_QPA_PLATFORM'] = 'offscreen' if not os.path.exists('svg'): os.mkdir('svg') if not os.path.exists('midi'): os.mkdir('midi') def f(xml_path): """ A function that converts a single XML file to MIDI and SVG. """ filename = os.path.splitext(os.path.basename(xml_path))[0] subprocess.call("musescore {:} -r 300 -f -o midi/{:}.mid".format( xml_path, filename), shell=False) subprocess.call("musescore {:} -r 300 -f -o svg/{:}.svg".format( xml_path, filename), shell=False) xml_paths = glob.glob('xml/*.xml') parallel_process(xml_paths, f)
import subprocess import lxml.etree from parallel_utils import parallel_process # Set environment variable to prevent QXcbConnection: Could not connect to # display problem os.environ['QT_QPA_PLATFORM'] = 'offscreen' if not os.path.exists('xml'): os.mkdir('xml') def f(mxl_path): """ This function converts a single MXL file to a single XML file. The XML invalid file is ignored. """ filename = os.path.splitext(os.path.basename(mxl_path))[0] subprocess.call( "musescore {:} -r 300 -f -o xml/{:}.xml".format(mxl_path, filename), shell=False) try: lxml.etree.parse("xml/{:}.xml".format(filename)) # pylint: disable=c-extension-no-member except lxml.etree.XMLSyntaxError: # pylint: disable=c-extension-no-member os.remove("xml/{:}.xml".format(filename)) return 0 mxl_paths = glob.glob('mxl/*.mxl') parallel_process(mxl_paths, f)
import lxml.etree from parallel_utils import parallel_process # Set environment variable to prevent QXcbConnection: Could not connect to # display problem os.environ['QT_QPA_PLATFORM'] = 'offscreen' if not os.path.exists('xml'): os.mkdir('xml') def f(mscz_path): """ This function converts a single mscz file to an XML file. The XML file that is parsed incorrectly is ignored. """ filename = os.path.splitext(os.path.basename(mscz_path))[0] subprocess.call("musescore {:} -r 300 -f -o xml/{:}.xml".format( mscz_path, filename), shell=False) try: lxml.etree.parse("xml/{:}.xml".format(filename)) # pylint: disable=c-extension-no-member except lxml.etree.XMLSyntaxError: # pylint: disable=c-extension-no-member os.remove("xml/{:}.xml".format(filename)) return 0 mscz_paths = glob.glob('mscz/*.mscz') parallel_process(mscz_paths, f)