我正在尝试使用flash midi文件进行可视化(使用外部midi-to-flash库)
有没有办法说出小提琴,中提琴,大提琴和小提琴之间的区别? midi文件中的低音提琴。我得到了仪器的这些值(忽略数字):
1长笛13
2 Oboe 15
3单簧管14
4 Bassoon 16
5法国号18
6小号17
7 Timpani 26
8 String Ensemble 1 3
9 String Ensemble 1 3
10 String Ensemble 1 3
11 String Ensemble 1 3
12 String Ensemble 1 3
13 poustic Grand Piano 5 14 poustic Grand Piano 515 Acoustic Grand Piano 5
16 poustic Grand Piano 5如您所见,所有字符串都获得相同的“String Ensemble”值...
一种方法是询问每个音符是高(65>)还是低(50 <)等,并且大致决定乐器类型(对于特定音符)。但由于这些值是随机的而且不准确 - 不能正确分离它们(特别是因为不同的工具仍然具有共享的音符高度值)。
是否在midi档案中写过(大提琴,小提琴......)?
有没有办法承担它?
我有5首曲目。是否可以假设(例如)前两个是小提琴,第三个是大提琴等?或者他们都是混合的?
答案 0 :(得分:5)
简而言之,没有。
您所看到的很简单General MIDI patches。但是,这些乐器的声音取决于产生声音的合成器,并且不是由MIDI定义的。完全可以选择与所示补丁完全不同的仪器。
话虽如此,41被定义为小提琴,42是中提琴,43是大提琴,44是低音提琴。但是,不要指望它们总是以这种方式使用。
至于第一/第二小提琴,这取决于该人决定如何制作MIDI文件,并且没有编程方式可以找到它。例如,如果乐器补丁是相同的,我希望该乐器的所有用法都在一个通道上。除非他们使用的软件由于某种原因决定将其拆分。 (例如,如果源分数已将其拆分。)
我相信一个MIDI文件有一些空间用于曲目名称等,但你不会在每个MIDI文件中看到它们,并且它们是自由格式的名称,所以它们不会以任何方式标记你可以以编程方式使用。
MIDI仅用于控制合成器,并不代表我们人类理解的乐谱。