从musicxml生成pdf和midi

问题描述 投票:0回答:2

我一直在尝试加载一个 MusicXML 文件,对其进行编辑(删除几个部分),并创建一个 PDF 表格文档 + midi/mp3,所有这些都使用 Python。

我首先查看了

music21
,它会正确加载我的MusicXML文件,但据我所知,不会输出正确的文件(输出文件中的所有细节都消失了,剩下的只是音符和标题)

然后我发现

abjad
看起来很有希望。它确实输出了高质量的 ly/pdf 文件,但没有导入 musicxml。

然后,我发现Lilypond带有一个

musicxml2ly
脚本。我能够调用它并使用
sh
(很棒的库!)在 python 中获取结果 lilypond 文件,但是
abjad
lilypond
解析器不会解析它(文档说它解析 lilypond 的“大子集”) ,没有更高的精度)。

最后,我发现

music21
有一个 abjad python 对象的导出器,但它似乎不再出现在代码库中,并且导出器的源代码显然只是导出了注释。

我有点别无选择,我能做些什么来实现这些目标?

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

python lilypond music21 music-notation musicxml
2个回答
4
投票

如果你有MuseScore 2+,你可以在python中设置它

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

0
投票

%运行/mnt/data/add_libraries_py 从 ai_song_maker 导入 Song_maker

为介绍部分定义 ABC 表示法

abc_notation_intro = """ 中号:4/4 长:1/4 问:1/4=70 钾:C V:1 谱号=高音 name=“钢琴” snm=“钢琴” | [C2E2G2]4 | [G2B2D2]4 | [A2C2E2]4 | [F2A2C2]4 | ”“”

ordered_part_instrument_intro = {'钢琴': '钢琴'}

musicxml_path_intro = '/mnt/data/song_intro_musicxml.xml' midi_path_intro = '/mnt/data/song_intro_midi.mid'

处理 ABC 表示法以创建 MusicXML 和 MIDI 文件

parts_data_intro,score_data_intro = Song_maker.process_abc(abc_notation_intro,ordered_part_instrument_intro,musicxml_path_intro,midi_path_intro)

musicxml_path_intro、midi_path_intro

© www.soinside.com 2019 - 2024. All rights reserved.