【问题标题】:Getting input from MIDI devices live (Python)从 MIDI 设备实时获取输入(Python)
【发布时间】:2009-10-12 14:23:45
【问题描述】:

我有一个触发手指(MIDI 平板电脑),我希望能够实时读取其输入并根据按下的键使 python 执行操作。

我需要它用于 Windows,最好使用 python 2.5 +

谢谢

【问题讨论】:

标签: python midi


【解决方案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 事件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-19
  • 1970-01-01
  • 1970-01-01
  • 2016-09-12
  • 2013-10-22
相关资源
最近更新 更多