【问题标题】:MIDI Note Message in C++C++ 中的 MIDI 音符消息
【发布时间】: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++ 编程。因此,这是一个广泛的问题。
  • 嗯,好的,我现在编辑一下。

标签: c++ audio midi libsndfile


【解决方案1】:

你可以使用 PortAudio 它拥有您可以使用 midi 和您的波形文件的所有内容

【讨论】:

  • 啊太棒了!我将如何使用 PortAudio 编写“收到 NOTE ON 60 时,播放 X .wav 文件”的代码?非常感谢您的回复!
【解决方案2】:

您可以使用 portAudio 实现流功能,并使用 portMidi 检查当按下例如音符 c4 时,播放该文件 看看那里的文档

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-04
    相关资源
    最近更新 更多