我想构建一个创建 MIDI 声音的小应用程序。我从来没有在编程中处理过声音,所以我想从一些基本的并且有良好文档的东西开始。我想坚持使用 Python,因为我对它最熟悉,并且一开始不想让自己不知所措。

我的时间在 Windows 和 Ubuntu 上各占一半,所以在这两个平台上“都能正常工作”的东西会非常有帮助。

有什么建议么?

有帮助吗?

解决方案

在MIDIUtil库(托管这里在谷歌代码),你想要做什么:写MIDI从纯Python库文件。它(和充分披露:我是作者)一旦好处是,你不必跟踪较低级别的MID事件,如音符开和音符关的:这将为你进行处理

作为一个例子写纸条,你会做这样的事情:

MyMIDI = MIDIFile(1)
track = 0
channel = 0
pitch = 60
time = 0
duration = 1
volume = 100
MyMIDI.addNote(track,channel,pitch,time,duration,volume)

希望这有助于

其他提示

我正在寻找一个纯Python库来生成MIDI文件, mxm 的 Python MIDI 库 正是如此。

这个 dzone 片段, ,上述库有一个单文件版本, 斯米迪.py (要点在这里 为了后代)

用法非常简单:

>>> import smidi
>>> m = smidi.MidiOutFile('out.mid')
>>> m.header()
>>> m.start_of_track()
>>> m.update_time(0)
>>> m.note_on(note=0x40)  # single note
>>> m.update_time(192)
>>> m.note_off(note=0x40) # stop it after 192
>>> m.update_time(0)
>>> m.end_of_track()
>>> m.eof()

大概可以在 Windows 上运行(正如原始示例使用的那样) C:\out.mid 作为输出文件名),我已经在 OS X 上测试了它

pyPortMidi 是PortMidi的Python包装,其被描述为一个“一个跨平台的C库实时MIDI控制”。我没有用它自己,但它看起来非常有前途。的能够实时发送MIDI数据明确提及。

如果您只需要生成密或处理MIDI文件,尝试明格斯, 这是一个很大的包,它也允许更高的抽象,例如和弦,和声,秤等。

我尝试了 wiki 上列出的八个软件包 http://wiki.python.org/moin/PythonInMusic。我发现那个 music21 (http://web.mit.edu/music21/) 曾是

  • 最全面的
  • 最好的教程
  • 最容易在 Windows 上安装

但至于你要求的简单性,我认为这并不是最简单的。但我无法让任何其他程序以可靠的方式读取 MIDI 文件(我有各种奇怪而美妙的 MIDI 文件格式)

支持MIDI(进出)已经被添加到对于pyGame 1.9,虽然它主要是在发展阶段,是不是非常有据可查的是,但它的作品。

MIDI支持也被在对于pyGame后继显影,pgreloaded(或pygame2)。

另外要注意的是,即使对于pyGame有“游戏”的称号,它的用途舒展远远超出游戏设计。

cSounds

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top