4

我在streammusic21. 我阅读了文档并使用它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生成一个文件,而不是图形。

编辑:

带有环境变量的代码

from music21 import *

us = environment.UserSettings()
us['lilypondPath'] = 'C:/Program Files (x86)/LilyPond/usr/bin/lilypond.exe'
us['musescoreDirectPNGPath'] = 'C:/Program Files (x86)/MuseScore 2/bin/MuseScore.exe'
us['musicxmlPath'] = 'C:/Program Files (x86)/MuseScore 2/bin/MuseScore.exe'

d7 = chord.Chord(['D4', 'F4', 'A4', 'C5'])

stream = stream.Stream()
stream.show('musicxml.png')
4

2 回答 2

0

对于所有难以在 Linux(例如 Ubuntu)上的 Jupyter Notebook 中显示 music21 的乐谱的人,请按照以下步骤操作:

1) 安装 MuseScore ( https://musescore.org/en/download ),例如使用 snappy :

sudo snap install musescore

2)在你的文件系统中找到musescore:

whereis musescore

就我而言,它是“ usr/bin/musescore”。

3)设置环境变量告诉music21如何定位music21。在您的 Jupyter Notebook 中执行此操作:

environment.set("musescoreDirectPNGPath", "/usr/bin/musescore")

4) 现在您可以使用 musescore 从 music21 渲染乐谱:

bwv295 = corpus.parse('bach/bwv295')
bwv295.show()
于 2018-11-03T05:39:35.360 回答
0

最好的接口是通过调用:

chords.show('lily.png')

这将运行一切。但是 Lilypond 接口不是那么强大,所以最好安装 MuseScore 并将 MusescoreDirectPNGPath 设置.music21rc为指向mscore可执行文件和刚刚调用chords.show('musicxml.png'),它会通过MusicXML.

于 2018-04-20T15:50:15.200 回答