rtmidi的python包装器
rtmidi-python的Python项目详细描述
python包装器,RtMidi,轻量级的跨平台midi i/o 图书馆。对于Linux、Mac OS X和Windows。
设置
包装器是用Cython写成的,但是生成的C++代码是 包括,因此您可以像往常一样安装模块:
python setup.py install
如果您想从cython源代码构建,请确保 cython的最新版本(>;=0.17),并运行:
python setup.py install --from-cython
用法示例
rtmidi python使用与RtMidi相同的api,只重新格式化以符合 加上pep-8,再加上一些小的变化,让它更像是Python。
打印所有输出端口
import rtmidi_python as rtmidi midi_out = rtmidi.MidiOut() for port_name in midi_out.ports: print port_name
发送消息
import rtmidi_python as rtmidi midi_out = rtmidi.MidiOut() midi_out.open_port(0) midi_out.send_message([0x90, 48, 100]) # Note on midi_out.send_message([0x80, 48, 100]) # Note off
通过轮询获取传入消息
import rtmidi_python as rtmidi midi_in = rtmidi.MidiIn() midi_in.open_port(0) while True: message, delta_time = midi_in.get_message() if message: print message, delta_time
注意,get_message()的签名与原始签名不同 RtMidiapi:它返回元组,而不是使用返回参数。
使用回调获取传入消息
import rtmidi_python as rtmidi def callback(message, time_stamp): print message, time_stamp midi_in = rtmidi.MidiIn() midi_in.callback = callback midi_in.open_port(0) # do something else here (but don't quit)
注意,回调的签名不同于原始的RtMidi api:message现在是第一个参数,就像 get_message()。