我正在使用 asoundlib 在 C++ 中编写一个 MIDI 音序器。有时我希望我的应用程序停止所有声音,调用 All-Notes-Off 事件。我通过在每个通道的每个音符上调用一个音符来做到这一点,因为这是我知道的唯一方法,但由于某些原因,我不太乐意在某一时刻发送 16*128=2048 个事件。还有其他方法吗?如果我可以将事件发送到控制队列,那将是完美的,有吗?如果没有,那么应该怎么做?
欢迎任何帮助,因为 Internet 缺乏良好、详细的 ALSA 文档。
我正在使用 asoundlib 在 C++ 中编写一个 MIDI 音序器。有时我希望我的应用程序停止所有声音,调用 All-Notes-Off 事件。我通过在每个通道的每个音符上调用一个音符来做到这一点,因为这是我知道的唯一方法,但由于某些原因,我不太乐意在某一时刻发送 16*128=2048 个事件。还有其他方法吗?如果我可以将事件发送到控制队列,那将是完美的,有吗?如果没有,那么应该怎么做?
欢迎任何帮助,因为 Internet 缺乏良好、详细的 ALSA 文档。
根据midi 规范的速成课程,您只需发送一个事件“Z”并关闭所有注释,解释为
00 B0 7B 00
您可以在此处查看 MIDI 控制字节列表:MIDI 控制器编号
狩猎愉快!