希望使用PYQT5创建一个基于GUI的25键键盘,该键盘可以支持MIDI控制器键盘。然而,我不知道从哪里开始(我应该使用什么库,以及如何找到一种支持所有MIDI控制器键盘的通用方法(。我计划潜在地使用Mido Library或PyUSB,但我仍然不知道如何让这一切发挥作用。任何入门指南都将不胜感激。
MIDI是所有制造商共享的通用标准,因此您不必担心"支持所有MIDI控制器键盘";,您只需要担心支持系统的MIDI工作室。
您必须扫描您的环境才能获得现有的MIDI端口。通过现有端口列表,您可以让用户选择将键盘生成的事件发送到哪个端口和/或从哪个端口接收将使键盘动画化的事件(例如,从连接到计算机的物理MIDI键盘(,可能是所有可用的输入端口。
为了支持输入事件,您需要一种回调,以便随时接收传入的音符(它们是键盘的主要相关消息(。这也意味着你必须过滤接收到的不是这些类型的事件,因为在MIDI中,一系列事件可能会包含许多与音符混合的其他事件(音高弯曲、控制器、程序更改等(。
最后注意MIDI本身不会产生任何声音。因此,如果你在键盘上演奏时想听到一些东西,那么产生的MIDI事件应该通过该设备接收的端口发送到一个产生声音的设备主体(例如合成器或虚拟乐器(。
对于图书馆来说,Mido似乎是一个不错的选择:它拥有这样一个项目所需的所有功能。