需要在Delphi中发送类似91.17.00的midi消息。GitHub上有一个midio -master包,它可以很好地用于32位输入和输出。输入函数也适用于64位,但不适用于输出。当您尝试设置输出设备时将抛出异常。有一个新的软件包,"原生emidi",似乎有64位功能,但没有文档或示例,我不知道如何使用它。修复midio -master或一个native - emidi控件输出的例子将会很有帮助。
通过更改midiio-master
包中的模块Midiout.pas
来解决问题。
第580行说
for TestDeviceID := -1 to (MidiOutGetNumDevs - 1) do
需要改成
for TestDeviceID := 0 to (MidiOutGetNumDevs - 1) do
在32位世界中,-1
触发测试以查看是否有任何Midi接口存在,但在64位环境中失败。
解压缩包后,创建64位源的子文件夹,并将所有.pas
文件复制到其中。在Tools >中更改库文件引用;选择比;语言比;Delphi Options>相应的图书馆。这样你就可以有两个版本的Midiout.pas
。