通过64位Delphi发送MIDI控制消息



需要在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 &gt中更改库文件引用;选择比;语言比;Delphi Options>相应的图书馆。这样你就可以有两个版本的Midiout.pas

最新更新