从music21
中的stream
对象生成png文件时遇到问题。我阅读文档并使用ConverterLilypond
来完成此操作。在
chords = stream.Stream()
d7 = chord.Chord(['D4', 'F4', 'A4', 'C5'])
dmin7 = chord.Chord(['D4', 'F-4', 'A4', 'C5'])
dmaj7 = chord.Chord(['D4', 'F#4', 'A4', 'C#5'])
chords.append(d7)
chords.append(dmin7)
chords.append(dmaj7)
conv = converter.subConverters.ConverterLilypond()
conv.write(chords, fmt='lilypond', fp='file', subformats=['png'])
此代码将生成png文件、eps文件计数文件、tex和texi文件。为什么?我怎样才能只生成一个文件,PNG文件?在
当我尝试在jupyter中运行这个代码时,我会使用chords.show()
来显示图像,但通常在脚本中,show
生成一个文件,而不是图形。在
编辑:
带环境变量的代码
^{pr2}$
对于那些想在Linux(例如Ubuntu)上用Jupyter笔记本电脑显示music21乐谱的人来说,请遵循以下步骤:
1)安装MuseScore(https://musescore.org/en/download),例如使用snappy:
2)在文件系统中找到musescore:
^{pr2}$在我的例子中是“
usr/bin/musescore
”。在3)设置环境变量,告诉music21如何找到music21。在你的Jupyter笔记本上做:
4)现在可以使用musescore渲染music21中的乐谱:
最好的接口是调用:
chords.show('lily.png')
它将运行一切。但是Lilypond接口不是很强大,所以最好安装MuseScore并在
.music21rc
中设置MusescoreDirectPNGPath指向mscore
可执行文件和刚刚调用的chords.show('musicxml.png')
,它通过MusicXML
进行更好的转换。在相关问题 更多 >
编程相关推荐