当前位置:  开发笔记 > 编程语言 > 正文

适用于Python的简单跨平台MIDI库

如何解决《适用于Python的简单跨平台MIDI库》经验,为你挑选了5个好方法。

我想建立一个创建MIDI声音的小应用程序.我从来没有处理过编程中的声音,所以我想从一些基本的东西开始,并且有很好的文档.我想坚持使用Python,因为我最熟悉它并且最初不想压倒自己.

我的时间在Windows和Ubuntu之间分成大约50/50,所以在两个平台上"正常工作"的东西真的很有帮助.

有什么建议?



1> 小智..:

该MIDIUtil库(托管在这里,在谷歌代码),你想要做什么:从一个纯Python库编写MIDI文件.关于它的一件好事(并且完全披露:我是作者)是你不必跟踪低级MID事件,例如音符开和音符关:它会为你处理它们.

作为编写笔记的示例,您可以执行以下操作:

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

希望这可以帮助


发布这篇文章真的很晚,但它可以处理和弦吗?如果可以,我可能会在我的软件中实现这个...
你可以轻松定义和弦,对吗?`用于投球:midi.addNote(..,pitch,...)`

2> dbr..:

我正在寻找一个纯Python库来生成一个MIDI文件,mxm的Python MIDI库就是这样.

从这个dzone片段中,有一个上述库的单文件版本,smidi.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上测试过它



3> unwind..:

pyPortMidi是PortMidi的Python包装器,被描述为"用于实时MIDI控制的跨平台C库".我自己没有用过,但看起来非常有前景.明确提到能够实时发送MIDI数据.


对于通过Google找到此页面的人:请注意,pyPortMidi最后一次更新是在2005年3月15日.我怀疑它已被放弃.
pyGame中包含了一个稍微更新的pyPortMidi版本,我已经成功使用了它.

4> fccoelho..:

如果您只需要生成Midi或处理midi文件,请尝试mingus,这是一个很棒的包,它还允许更高的抽象,如和弦,和弦进行,音阶等.



5> Sanjay Manoh..:

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

最全面的

最好的教程

最容易在Windows上安装

但至于你的简单要求,我认为这不是最简单的.但我无法让任何其他程序以健壮的方式阅读midi文件(我有各种奇怪和精彩的midi文件格式)

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有