微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决通过 64 位 Delphi 发送 MIDI 控制信息

需要在Delphi中发送类似91.17.00的midi消息。 GitHub 上有一个 midiio-master 包,它适用于 32 位的输入和输出。输入函数也适用于 64 位,但不适用于输出。尝试设置输出设备时会引发异常。有一个新包“NativeMidi”似乎具有 64 位功能,但没有文档或示例,我无法弄清楚如何使用它。修复 midiio-master 或 NativeMidi 控制输出的示例都会有很大帮助。

解决方法

通过更改 Midiout.pas 包中的模块 midiio-master 解决了问题。

第 580 行说

for TestDeviceID := -1 to (MidiOutGetNumDevs - 1) do

需要改成

for TestDeviceID := 0 to (MidiOutGetNumDevs - 1) do

在 32 位世界中,-1 触发测试以查看是否存在任何 Midi 接口,但在 64 位中失败。

解压缩包后,为 64 位源创建一个子文件夹并将所有 .pas 文件复制到其中。相应地更改工具 > 选项 > 语言 > Delphi 选项 > 库中的库文件引用。这样您就可以拥有两个版本的 Midiout.pas

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。