caslabs's picture
Upload 37 files
f35cc94
def setup_musescore(musescore_path=None):
if not is_ipython(): return
import platform
from music21 import environment
from pathlib import Path
system = platform.system()
if system == 'Linux':
import os
os.environ['QT_QPA_PLATFORM']='offscreen' # https://musescore.org/en/node/29041
existing_path = environment.get('musicxmlPath')
if existing_path: return
if musescore_path is None:
if system == 'Darwin':
app_paths = list(Path('/Applications').glob('MuseScore *.app'))
if len(app_paths): musescore_path = app_paths[-1]/'Contents/MacOS/mscore'
elif system == 'Linux':
musescore_path = '/usr/bin/musescore'
if musescore_path is None or not Path(musescore_path).exists():
print('Warning: Could not find musescore installation. Please install musescore (see README) and/or update music21 environment paths')
else :
environment.set('musicxmlPath', musescore_path)
environment.set('musescoreDirectPNGPath', musescore_path)
def is_ipython():
try: get_ipython
except: return False
return True
def is_colab():
try: import google.colab
except: return False
return True
def setup_fluidsynth():
from midi2audio import FluidSynth
from IPython.display import Audio
def play_wav(stream):
out_midi = stream.write('midi')
out_wav = str(Path(out_midi).with_suffix('.wav'))
FluidSynth("font.sf2").midi_to_audio(out_midi, out_wav)
return Audio(out_wav)