如何在ipython/python中使用music21和MuseScore来显示乐谱,而无需每次调用MuseScore.show()时重新打开?
我在ipython笔记本中使用music21和Musecore。它工作得很好,唯一的问题是,每次我创建一个流,然后运行我的_Stream.show(),都需要一段时间,因为它会等待打开MuseScore应用程序。即使MuseScore已经打开(它打开应用程序的第二个副本,然后在打印图像后自动关闭),也会发生这种情况 如何防止music21每次重新打开MuseScore,并让它使用已打开的应用程序 编辑:添加版本/操作系统信息 我在mac(OSX 10.10.4)上使用MuseScore 2.1.0版 我也尝试过在ipython笔记本上打印乐谱的方法,但同样的事情发生了 至少对于第二种方法来说,问题似乎在这里 在 这一部分:如何在ipython/python中使用music21和MuseScore来显示乐谱,而无需每次调用MuseScore.show()时重新打开?,ipython,music21,Ipython,Music21,我在ipython笔记本中使用music21和Musecore。它工作得很好,唯一的问题是,每次我创建一个流,然后运行我的_Stream.show(),都需要一段时间,因为它会等待打开MuseScore应用程序。即使MuseScore已经打开(它打开应用程序的第二个副本,然后在打印图像后自动关闭),也会发生这种情况 如何防止music21每次重新打开MuseScore,并让它使用已打开的应用程序 编辑:添加版本/操作系统信息 我在mac(OSX 10.10.4)上使用MuseScore 2.1.
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,但我不知道用什么替换它,这将允许music21找到已经运行的MuseScore实例。同样的问题错误。这里提到一个问题: 。。。通过
subprocess.run(musescoreRun)
更改subconverters.py的os.system(musescoreRun)
行891。您还需要在subconverters.py的开头导入子流程
也许它对你有用 这可能与您的操作系统有关。在Mac电脑上运行良好,上次我检查时,在PC上也运行良好。关于操作系统等的更多信息需要在那里。好的,我添加了更多关于版本/操作系统的信息,以及我怀疑问题出在哪里。顺便说一句,谢谢你的音乐,迈克尔!这真的很有帮助。
os.system(musescoreRun)