
如何使用Musescore在Ipython/Python中使用Music21显示音乐符号,而无需每次重新打开。-英雄云拓展知识分享
我在ipython笔记本中使用Music21与Musescore。它运行良好,唯一的问题是,每次创建流并运行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,但我不知道该用它替换为Music21可以找到已运行的Musescore实例。
一样的问题毛病。在这里指的是一个问题 github:
...改变
os.system(musescoreRun)
subconverters.py的第891行subprocess.run(musescoreRun)
。您仍需要在subconverters.py的开头导入子进程。
或许它对您有用!
暂时没有评论,来抢沙发吧~