从 MIDI 设备实时获取输入(Python)
Posted
技术标签:
【中文标题】从 MIDI 设备实时获取输入(Python)【英文标题】:Getting input from MIDI devices live (Python) 【发布时间】:2009-10-12 14:23:45 【问题描述】:我有一个触发手指(MIDI 平板电脑),我希望能够实时读取其输入并根据按下的键使 python 执行操作。
我需要它用于 Windows,最好使用 python 2.5 +
谢谢
【问题讨论】:
您可以编辑旧问题,而不是再次发布相同的问题。 ***.com/questions/1554362/reading-midi-input 的副本 【参考方案1】:PyGame 包含一个内置的midi module,可用于 Linux、Windows 和 MacOS,并且得到很好的支持。
例如,这里是pygame.midi.Input的文档:
Input is used to get midi input from midi devices.
Input(device_id)
Input(device_id, buffer_size)
Input.close - closes a midi stream, flushing any pending buffers. closes a midi stream, flushing any pending buffers.
Input.poll - returns true if there's data, or false if not. returns true if there's data, or false if not.
Input.read - reads num_events midi events from the buffer. reads num_events midi events from the buffer.
如果您正在寻找替代方案,请查看 Python wiki 中的 PythonInMusic。
那里有各种不同的与 MIDI 输入和输出相关的项目,其中一些也适用于 Windows。 (点击每个项目后的小>号,点击进入项目主页的链接)
我个人没有使用过其中的任何一个,但我相信它会帮助您入门。
【讨论】:
我如何知道设备ID? 查看该页面上的其他功能。有一个返回默认输入设备:pygame.org/docs/ref/midi.html#pygame.midi.get_default_input_id 请记住,如果您使用 PyGame,您将不得不通过 polling 来处理事件,因此它不会像您希望的那样实时。理想情况下,应该有一个库来hook 函数到 midi 事件。以上是关于从 MIDI 设备实时获取输入(Python)的主要内容,如果未能解决你的问题,请参考以下文章