【问题标题】:How to implement a MIDI keyboard into python [closed]如何在 python 中实现 MIDI 键盘 [关闭]
【发布时间】:2020-11-25 09:51:23
【问题描述】:

希望使用 PYQT5 创建一个基于 GUI 的 25 键键盘,它可以支持 MIDI 控制器键盘。但是,我不知道从哪里开始(我应该使用哪些库以及如何找到一种通用方法来支持所有 MIDI 控制器键盘)。我计划潜在地使用 Mido 库或 PyUSB,但我仍然对如何使这一切发挥作用感到困惑。任何入门指南将不胜感激。

【问题讨论】:

  • 你的问题不是很清楚。你说你想创建一个支持 MIDI controller 键盘的基于 GUI 的键盘。那有什么意义呢?是为了你的教育目的吗?否则,我认为这样做没有任何好处。另一方面,请记住,要求推荐的问题(包括图书馆)通常是封闭的。

标签: python pyqt5 midi libusb piano


【解决方案1】:

MIDI 是所有制造商共享的通用标准,因此您不必担心“支持所有 MIDI 控制器键盘”,您只需要担心支持您系统的 MIDI 工作室即可。

您必须扫描您的环境以获取现有的 MIDI 端口。使用现有端口列表,您可以让用户选择他希望将键盘生成的事件发送到哪个端口和/或他希望从哪个端口接收将激活键盘的事件(例如从连接的物理 MIDI 键盘到您的计算机),可能是所有可用的输入端口。

为了支持输入事件,您需要一种准备好随时接收打开和关闭传入音符(这是键盘的主要相关消息)的回调。这也意味着您必须过滤接收到的不属于这些类型的事件,因为在 MIDI 中,事件流可能包含许多与音符混合的其他事件(弯音、控制器、程序更改等)开)。

最后请注意,MIDI 本身不会产生任何声音。因此,如果您在键盘上弹奏时想要听到某些声音,则应将生成的 MIDI 事件发送到受控设备(例如合成器或虚拟乐器),通过该设备接收的端口来产生声音。

对于该库,Mido 似乎是一个不错的选择:它具有此类项目所需的所有功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 2011-11-28
    • 2017-01-01
    • 2019-03-08
    相关资源
    最近更新 更多