[英]Python music21 library create png from stream
我在從music21
stream
對象生成 png 文件時music21
。 我閱讀了文檔並使用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')
最好的接口是通過調用:
chords.show('lily.png')
這將運行一切。 但是 Lilypond 接口不是那么強大,所以最好安裝 MuseScore 並在.music21rc
設置 MusescoreDirectPNGPath 以指向mscore
可執行文件,只需調用chords.show('musicxml.png')
它將做得更好通過MusicXML
翻譯。
對於所有那些在 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()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.