ipython ノートブックで MuseScore を使用して music21 を使用しています。これは問題なく動作します。唯一の問題は、Stream を作成してから my_stream.show() を実行するたびに、MuseScore アプリケーションを開くのを待機するため、永遠に時間がかかることです。これは、MuseScore が既に開いている場合でも発生します (アプリの 2 つ目のコピーが開き、画像が印刷された後、アプリ自体が閉じます)。
music21 が毎回 MuseScore を再度開くのを防ぎ、代わりにすでに開いているアプリを使用するようにするにはどうすればよいですか?
編集:バージョン/ OS情報の追加
MuseScore バージョン 2.1.0 を使用している Mac (OSX 10.10.4) を使用しています。
ここで概説されている方法を試して、ipython ノートブックで楽譜を印刷しましたが、同じことが起こりました。
少なくとも 2 番目の方法では、問題はmusic21/converter/subConverter.pyにあるようです。
下
class ConverterMusicXML(SubConverter):
このセクションがあります:
musescoreRun = '"' + musescorePath + '" ' + fp + " -o " + fpOut + " -T 0 "
if 'dpi' in keywords:
musescoreRun += " -r " + str(keywords['dpi'])
if common.runningUnderIPython():
musescoreRun += " -r " + str(defaults.ipythonImageDpi)
storedStrErr = sys.stderr
fileLikeOpen = six.StringIO()
sys.stderr = fileLikeOpen
os.system(musescoreRun)
fileLikeOpen.close()
sys.stderr = storedStrErr
私はこの行を特に信じています
os.system(musescoreRun)
毎回独立して MuseScore を開いていますが、muses21 がすでに実行中の MuseScore のインスタンスを見つけられるようにするには、何に置き換えるかわかりません。