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()
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()

许可证

rtmidi python在mit许可下获得许可,请参阅许可。

它使用RtMidi,在经过修改的mit许可下获得许可,请参见 rtmidi/rtmidi.h.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Ruby/Java中的OData提供程序   Java Box类中的方法   java NoClassDefFoundError:scala/math/Ordering with springkafkatest 2.5.7   如何读取本地Java软件中交换的协议消息?   java为Android webview隔离网站DIV   java Tomcat使用HSQLDB数据库部署应用程序,提供JDBCConnectionException   检查可选和返回字符串Java Stream API中是否存在null属性   JavaJMS队列轮询示例   来自Java的Windows 10上的通知   java IllegalArgumentException:布局:showcaseview中的998896<0   java如何克隆同步的集合?   java如何根据您在上一个活动中所做的操作显示另一个活动的对话框   数据库中的java更新项,但未在ContentValues中设置所有列