所以我有一个带有 USB MIDI 接口的小(音乐)键盘。我知道您可以对此进行编程(许多程序通过 USB 接口接受来自 midi 设备的输入)但是您从哪里开始对 midi 设备进行编程?
理想情况下,我正在寻找一个独立于平台的 api,通过 Python 或其他方式。
所以我有一个带有 USB MIDI 接口的小(音乐)键盘。我知道您可以对此进行编程(许多程序通过 USB 接口接受来自 midi 设备的输入)但是您从哪里开始对 midi 设备进行编程?
理想情况下,我正在寻找一个独立于平台的 api,通过 Python 或其他方式。
如果您想与 MIDI 设备实时交互,最好的办法是使用现有的库。该任务比第一次看起来更复杂,涉及事件的计时和调度。
您可以查看 PortMidi(PortMedia 项目的一部分:http://portmedia.sourceforge.net/ )或 MidiShare(http://midishare.sourceforge.net/)。
当然,您应该了解 MIDI 协议本身。网络上有许多简短的描述,您可以从 MMA 站点(监督 MIDI 标准的组织)http://www.midi.org/aboutmidi/tut_techomidi.php(或者只是谷歌的“midi 协议”)开始。
考虑到这些是非常高级的描述,您可能想购买更详细的书,例如“Maximum MIDI - C++ 中的音乐应用程序”(http://www.amazon.com/Maximum-MIDI-Music-Applications-C/dp /1884777449)。这是一本旧书,它解释了如何使用标准 Windows API 创建 MIDI 应用程序,但概念都在那里。