c++ - 读取 MIDI 文件

标签 c++ midi sdl-mixer

我正在尝试帮助一位 friend 创建一个程序。我们需要读取一些 MIDI 文件数据。我已经搜索了整整 2 个小时,但似乎找不到任何直接的方法。

我已经下载并希望正确安装了 SDL_mixer。并成功地播放了一首歌:

//Initialize sound
SDL_Init(SDL_INIT_AUDIO);
Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 1024);
Mix_VolumeMusic(100);

//Load song
string midiFile = LIB_AUDIO + "redlottery.mid";
Mix_Music *song = Mix_LoadMUS(midiFile.c_str());

//Play song
Mix_PlayMusic(song, 1);

所以,我想知道的是......是否可以使用它来提取数据? 我需要诸如记下时间之类的东西。我真的不知道它们是如何构造的,但我想访问数据。你建议我如何尝试这样做?

谢谢!

最佳答案

有用于读取 MIDI 文件的开源库。以下是一些:

midifile.sapp.org

naudio.codeplex.com

www.juce.com

关于c++ - 读取 MIDI 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22487687/

相关文章:

ios - 将 MIDI 输出从 iOS 应用程序发送到 Garageband

audio - 有没有办法使用一些 SDL_Mixer 的功能来加速音频 .wav 文件?

c - SDL_混音器 : Mix_FreeChunk() crashing on sample created in memory

c++ - 通过 Box2d 中的 NSNotificationCenter 发送 C++ 类对象。错误 : No viable conversion from 'MyContact' to 'id'

c++在哪里/如何正确定义静态文本

c++ - VS2012 预编译头文件 : how does my . h 文件知道包含在 stdafx.h 中吗?

c++ - 将两个 vector<double> 转换为 vector<complex<double>>

delphi - 如何在delphi上访问midi percussion?

c# - 如何从 DryWetMidi 库中的特定 MIDI 文件 block 中获取程序/乐器标题?