在 python 中从 MIDI 文件预览乐谱

Posted

技术标签:

【中文标题】在 python 中从 MIDI 文件预览乐谱【英文标题】:Preview Score from MIDI file in python 【发布时间】:2020-08-05 02:10:43 【问题描述】:

我希望能够从 python 程序中的 MIDI 文件中获取乐谱的 png。

另外,我知道 MuseScore 能够打开 MIDI 文件并将它们转换为乐谱,所以理论上这应该是可能的。

我目前的解决方案是只使用 lilypond 函数 !midi2ly 和 !lilypond -fpng,但由于存在的声音数量,midi2ly 与我使用的 midis 有点困难。

!midi2ly "sample from g.midi"
!lilypond -fpng "sample from g-midi.ly"

这是理想的输出(来自 MuseScore)和 lilypond 的尝试输出 https://imgur.com/a/9fqJLSA

【问题讨论】:

您能发布您当前的解决方案吗? 我已编辑问题以包含我当前的解决方案和输出 MuseScore 是否直接从 midi 文件生成该文件?得到正确的调号和拍号真是令人印象深刻! lilypond 可能有多个参数来预设音符和调号和声音的量化,以尝试更好地近似乐谱。但是你知道,从乐谱到中音是简单而准确的。从 midi 到得分包括很多猜测。 MuseScore 从同一个 MIDI 生成该文件! 【参考方案1】:

试试音乐 21!

import music21
parsed = music21.converter.parse('source.mid')
parsed.show('musicxml.png')

如果您不想启动查看器,请使用 .write() 而不是 .show()

【讨论】:

以上是关于在 python 中从 MIDI 文件预览乐谱的主要内容,如果未能解决你的问题,请参考以下文章

music21:从平面乐谱中获取 midi 声音的声音/程序/乐器?

从 MIDI 中提取音符开始

用 Lua 控制 MIDI 合成器来播放自定义格式乐谱

在 Android 中从钢琴中读取 MIDI 消息

如何用FL studio和已有的midi文件做音乐

笔记本电脑退出休眠后 Java MIDI 音频延迟