C++ 中的 MIDI 音符消息
Posted
技术标签:
【中文标题】C++ 中的 MIDI 音符消息【英文标题】:MIDI Note Message in C++ 【发布时间】:2015-06-07 15:39:51 【问题描述】:我正在尝试使用 C++ 制作一个软件,该软件在按下某个 MIDI 键时播放 .wav 音频样本。我想到的最好方法是使用if
语句(如果有更简单的方法,我将不胜感激,但我是编程新手,所以请保持简单)。
上网查了一下,发现不同的 MIDI 键对应不同的 NOTE ON 信息(例如 NOTE ON 60 对应中间 C),所以基本上我只是在寻找如何说“当 NOTE ON 60 收到,播放 X .wav 文件”。我还发现 NOTE ON 的状态是 9n
,这是否意味着计算机会收到 9x60
(使用 60 = Middle C 示例)?
在此之后,我只需要了解如何使用sndfile.h
播放音频样本,我相信如下:
SNDFILE *sndFile = sf_open("Sample1.wav").
任何帮助将不胜感激。
【问题讨论】:
这里的问题是你的英语有点不对劲。实际上你的意思是"when NOTE ON 60 is received, play X .wave file" 并且“when”与“if”有很大不同,至少在C++ 编程。因此,这是一个广泛的问题。 嗯,好的,我现在编辑一下。 【参考方案1】:你可以使用 PortAudio 它拥有您可以使用 midi 和您的波形文件的所有内容
【讨论】:
啊太棒了!我将如何使用 PortAudio 编写“收到 NOTE ON 60 时,播放 X .wav 文件”的代码?非常感谢您的回复!【参考方案2】:您可以使用 portAudio 实现流功能,并使用 portMidi 检查当按下例如音符 c4 时,播放该文件 看看那里的文档
【讨论】:
以上是关于C++ 中的 MIDI 音符消息的主要内容,如果未能解决你的问题,请参考以下文章