3

我想了解可用于对 MIDI 文件执行一些简单任务的开源库:

  1. 一次读取一个音符或和弦的文件;
  2. 提取给定的乐器以在新文件中单独重新编码;
  3. 允许产生一个“可定制的”乐谱——我的意思是我应该能够改变使用库从 midi 制作活页乐谱的方式......我认为这将需要与 Lilypond 或 Musixtex 进行交互。

我真的没有首选的语言,只要让应用程序跨平台不会太痛苦。欢迎其他建议——最好现在学习它,而不是在我已经编写了很多代码时学习它。到目前为止,我一直在尝试挖掘 MuseScore 的(C++)源代码,但似乎 GUI 代码渗透到大多数文件中,虽然发现相关文件很容易,但我很难提取出我需要的东西(我是现在只针对命令行应用程序,稍后我会看到接口)。

有任何想法吗?

谢谢!

4

2 回答 2

2

好吧,我才刚刚开始,但这在 Python 中)似乎很有希望。

于 2010-03-09T13:19:55.340 回答
2

如果你还在做这个项目并且语言不是问题,你可以试试 Python 的跨平台music21,它可以将 midi 文件解析为 Note、Chord、Instrument 等对象,让你操纵乐谱,然后R/T 回到 MIDI 或输出到 Lilypond 等(完全公开,我是该工具包的作者;但我不知道有多少其他语言会在给你的同时接受 MIDI 并把 Lilypond 输出有机会将 MIDI 元素视为同时进行操作的对象。)。

将 MIDI 文件中的所有乐器声音搞砸然后播放并从中制作 lilypond.pdf 的示例代码:

 import music21
 mf = music21.converter.parse('pathToMidiFile.mid')
 for x in mf.recurse():
     if 'Instrument' in x.classes:
         x.midiProgram = (x.midiProgram * 2) % 128
 mf.show('midi')
 mf.show('lily.pdf')

希望有帮助。

于 2012-10-04T21:47:41.723 回答