У меня проблема с созданием файла png из объекта stream в 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 генерирует файл, а не графику.
Обновлено:
Код со средой var
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 и настроить MusescoreDirectPNGPath в .music21rc так, чтобы он указывал на исполняемый файл mscore, а просто вызовите chords.show('musicxml.png'), и он будет намного лучше переводить через MusicXML.
Плохо мне. Плохо мне. Я должен указывать на интерфейс python для изменения environment.UserSettings (). См. web.mit.edu/music21/doc/usersGuide/…
И я думаю, что в некоторых версиях вам стоит показывать (‘musicxml.png’)
Я использую stream.show('musicxml.png'), но он показывает черный экран в моем средстве просмотра фотографий по умолчанию. Я поставил свой код под сомнение.
music21.base.Music21ObjectException: cannot support showing in this format yet: lily.pngДля всех, кому будет сложно отображать партитуры из music21 в Jupyter Notebook в Linux (например, Ubuntu), выполните следующие действия:
1) Установите MuseScore (https://musescore.org/en/download), например используя мгновенно:
sudo snap install musescore
2) Найдите musescore в своей файловой системе:
whereis musescore
В моем случае это «usr/bin/musescore».
3) Задайте переменную окружения, чтобы сообщить music21, как найти музыку21. Сделайте это в своем блокноте Jupyter:
environment.set("musescoreDirectPNGPath", "/usr/bin/musescore")
4) Теперь вы можете использовать musescore для рендеринга нот из music21:
bwv295 = corpus.parse('bach/bwv295')
bwv295.show()
OP спрашивает, как сгенерировать вывод png. Простая установка Musescore и вызов .show() не генерируют png ...
Спасибо за ответ. Я работаю в Windows, где мне найти
.music21rc? Я добавляюus['musescoreDirectPNGPath'] = 'C:/Program Files (x86)/MuseScore 2/bin/MuseScore.exe' us['musicxmlPath'] = 'C:/Program Files (x86)/MuseScore 2/bin/MuseScore.exe'в свой сценарий, но это не работает. Еще та же ошибкаcannot support showing in this format yet: png