如何从 Linux 程序中实时执行 MIDI 命令

How to have midi commands executed in real time from a Linux program

在 Windows 中,我有 OpenMidi CloseMidiSendMidi 命令。 在 OpenMidi 之后,我得到一个句柄,然后我可以使用 SendMidi 发送类似 90 52 64 的 MIDI 消息,我会听到默认原声三角钢琴的音符。

我如何在 Linux 上执行等效操作,在我的程序(例如游戏)选择时执行 midi 命令?这是实时执行的,即在给出命令的确切时间执行。

在我的分发包列表中快速搜索字符串 "midi" 至少提供了两个可能的候选者:

你看过这些吗?

在Linux中,内核的声音驱动程序和库是ALSA project的一部分。

MIDI 将由 sequencer API 处理,这没有很好的记录。
(some example code in C)

在 Python 中,使用 alsa-python 包中的 alsaseq 模块。

在 C++ 中,您可以尝试使用 RtMidi library

我看到的大部分答案都在标记旁边,因为它们需要指定播放音符的时间,而不是实时发送事件。 除了此处答案中提到的 rtmid 之外, 已批准的链接问题 "send midi messages from C++" 的答案也是此问题的答案,