我的目标是编写一个像这样的简单(控制台)程序:
- 从 MIDI 输入获取 MIDI 信息
- 修改消息(或添加消息)
- 将消息写入 MIDI 输出
由于我对 C++ 完全陌生,并且距离我上次编写一些 C 代码已经 15 年了,所以我搜索了一段时间,发现了我认为的 RtMidi ( http://www.music.mcgill.ca/~gary/rtmidi/ )可以帮助我达到我的目标。
我正在使用 Xcode 进行编译和处理。
我还认为使用回调函数是有意义的。
RtMidi 的代码开箱即用。我可以打开虚拟 MIDI 端口,并将我的 MIDI 消息输入到回调函数中,然后将其输出到控制台。
但是现在我被困住了,因为我还不了解回调实现的工作原理(我认为)。
我的问题是:
- 我是否必须在回调函数中修改 MIDI 消息?
- 如果是,我如何从回调函数中写入 MIDI?
- 如果不是:如何将 MIDI 消息放入我的 cpp 代码中(可能通过将指针传递给用户数据字段)?
- 但是,当消息到达回调函数时,我的主要代码是如何触发来处理消息的?