簡體   English   中英

Python music21庫從流創建png

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM