成就中心 DouJin Terraria! 社区服务 统计排行 帮助
  • 4856阅读
  • 2回复

[心得交流]求助一下如何实现MIDI文件播放并得到信息

发帖
59
信仰
0
蓝点
17
符卡
0
不是只是播放一下MIDI文件,这个好找。我想问的是如何播放文件时得到MIDI信息,主要是想显示出来,并且播放MIDI文件不把声音输出到声卡,或者说只是空播放只为得到他的MIDI信息,并且图形化显示出来,其实就是问一下如何实现real time display without sound.



网上找的一些都是如何midiin,midiout,这样,接受来自MIDI键盘的消息,或者发送消息到波表。


我想要的是,得到当前MIDI文件播放的信息,比如note on,note off,力度,声像之类的,但是不输出声音,只得到信息。
然后处理一下这些得到的信息,比如note on时根据音高显示按哪个键,比如C3,那么现在C3键就高亮显示,note off时就正常显示不高亮。


网上MIDI方面的资料太少,实在搜不到所以发贴求助一下。
发帖
179
信仰
0
蓝点
171
符卡
0
只看该作者 沙发  发表于: 2012-04-02
midi文件格式很简单的,可以考虑找个标准看看。想用现成的可以找点库,比如

https://github.com/search?utf8=%E2%9C%93&q=midi&repo=&langOverride=&start_value=1&type=Everything&language=C%2B%2B
发帖
59
信仰
0
蓝点
17
符卡
0
只看该作者 板凳  发表于: 2012-04-03
谢谢,那啥,简单这词是相对的吧.....对我来说一点都不简单啊....


然后问下,是不是windows没有这种监听MIDI播放时MIDI事件的函数?要自己写一个分析器,类似MIDI编辑器的功能么?


比如说一边播放MIDI一边分析就像主流音序器那样,其实是他们自己实现的这种功能么?


导入MIDI文件后先分析出乐谱,然后播放乐谱实时演奏实际上是实时发送midiout消息实现的,这样?


我想的简单了,我以为windows会有一个播放MIDI文件就自动监听MIDI事件的功能或函数,如果没有要自己写的话,那要实现一边播一边得到事件就真得自己写一个MIDI分析器才行啊?
[ 此帖被elegame在2012-04-03 14:07重新编辑 ]
描述
快速回复

您目前还是游客,请 登录注册
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
认证码: