从MusicXML生成PDF和MIDI

6 投票
1 回答
4310 浏览
提问于 2025-04-18 01:29

我一直在尝试加载一个MusicXML文件,编辑它(去掉几个部分),然后用Python创建一个PDF乐谱文件和midi/mp3文件。

我首先看了看music21,它可以正确加载我的MusicXML文件,但我发现它输出的文件不太对劲(输出文件里的细节都没了,只剩下音符和标题)。

接着我发现了abjad,看起来很有希望。它能输出高质量的ly/pdf文件,但就是不能导入musicxml文件。

然后,我发现Lilypond自带一个musicxml2ly脚本。我能够在Python中调用它,并通过sh(这个库真不错!)得到结果的lilypond文件,但abjadlilypond解析器却无法解析这个文件(文档上说它能解析“一个大部分”的lilypond文件,但没有更详细的说明)。

最后,我发现music21有一个可以导出为abjad Python对象的功能,但似乎在代码库中已经不存在了,而且这个导出的源代码显然只导出了音符。

我现在有点无计可施,不知道该怎么做才能实现这些目标。

(补充一点:我仍然不知道如何将第二部分转换为midi/mp3,使用音色库,但这可能不是最难的部分。有什么建议吗?)

1 个回答

4

如果你有 MuseScore 2 及以上版本,你可以在 Python 中进行设置。

import music21
c = music21.converter.parse('path_to_musicxml.xml')
c.show('musicxml.pdf')
c.show('midi')

撰写回答