什么是MIDI音乐
MIDI音乐的产生原理
编写MIDI音乐
代码解读
HIDI(Musical Instrument Digital Interface)乐器数字接口
是20世纪80年代初为解决电声乐器之间的通信问题而提出的。
MIDI是编曲界最为广泛的音乐标准格式,可称为“计算机能理解的乐谱”。
它用音符的数字控制信号来记录音乐。一首完整的MIDI音乐只有几十KB大,
而能包含数十条音乐轨道。几乎所有的现代音乐都是用MIDI加上音色库来制作合成的。MIDI传输的不是音乐信号,而是音符、控制参数等指令,它指示MIDI设备要做什么,怎么做,如演奏哪个音符,多大音量等、。它们被统一表示成MIDI消息。
传输时采用异步串行通信,标准通信波特率32.25×(1±0.01)Kbaud。
MIDI音乐的产生的原理和上一节蜂鸣器发声的原理相同,都是让单片机控制蜂鸣器的端口产生高低变化的方波,来产生一定的频率周期,通过频率周期的改变发出不同音调的声音和改变周期的数量来改变声音的长短,把不同频率的声音组合在一起,就组成了声音的长短。
如果要编写某个MIDI音乐,我们需要找到该音乐的音乐简谱,把简谱上的每一个音符转换为相应的频率,再根据每一个音符的节拍,来控制该音符发出时间的长短,然后让单片机按照声音的顺序以此播放(依次输出高低电平,控制方波),如此便放出相应的MIDI音乐了。
相应程序的大致思路如下:
通常音符转换为的频率存放在数组中,以及该频率的音符执行时间的长短均放在数组中,二者相邻,然后对数组进行操作即可
利用双重循环:
第一个循环代表有多少个音符需要播放。
第二个循环代表该音符需要执行时间的长短
例子如下(出自洋桃电子)
uc16 music1[78]={ //音乐1的数据表(奇数是音调,偶数是长度)
330,750,
440,375,
494,375,
523,750,
587,375,
659,375,
587,750,
494,375,
392,375,
440,1500,
330,750,
440,375,
494,375,
523,750,
587,375,
659,375,
587,750,
494,375,
392,375,
784,1500,
659,750,
698,375,
784,375,
880,750,
784,375,
698,375,
659,750,
587,750,
659,750,
523,375,
494,375,
440,750,
440,375,
494,375,
523,750,
523,750,
494,750,
392,750,
440,3000
};
void MIDI_PLAY(void){ //MIDI音乐
u16 i,e;
for(i=0;i<39;i++){
for(e=0;e