呵呵 歌曲音符和节拍数组 这个数组是我读大二的时候 写的一个PC机程序上面的 当时写的程序是调用主板BIOS的sound()函数 用电脑主板上的小喇叭播放歌曲 呵呵 附件里我也贴上来了 大家可以下载了在电脑上听 MIDI的声音哦 呵呵
// 播放一个歌曲
void Sing_A_Song(void)
{
/* 数组里数据为音高和节拍 累啊 */
u16 my_music[]={
low_5,HALF,mid_2,HALF,mid_1,HALF,mid_1,HALF,mid_3,ONE_HALF,/**/
low_5,HALF,mid_1,HALF,low_7,HALF,mid_1,HALF,mid_3,ONE_HALF,
mid_3,ONE,/**/mid_1,_HALF,low_7,_HALF,low_6,HALF,mid_1,HALF,
mid_1,HALF,low_6,_HALF,mid_4,_HALF,mid_4,HALF,mid_3,HALF,mid_3,ONE_HALF,
mid_1,_HALF,mid_5,HALF,mid_4,HALF,mid_3,_HALF,mid_2,_HALF,
mid_2,ONE_HALF,/**/mid_6,_HALF,mid_3,HALF,low_6,HALF,low_6,HALF,
low_5,HALF,low_6,HALF,mid_3,ONE,mid_1,_HALF,low_7,_HALF,
mid_1,HALF,low_7,HALF,mid_1,HALF,mid_5,ONE,mid_1,HALF,mid_1,HALF,
mid_1,_HALF,mid_1,_HALF,mid_5,HALF,mid_6,_HALF,mid_5,_HALF,
mid_5,HALF,mid_1,HALF,mid_5,HALF,mid_4,ONE,mid_3,_HALF,
mid_1,_HALF,mid_1,_HALF,low_5,_HALF,low_5,HALF,low_5,ONE,/**/
mid_1,HALF,mid_5,HALF,mid_6,HALF,mid_6,HALF,mid_1,HALF,
mid_3,ONE,low_5,HALF,low_6,HALF,mid_1,HALF,mid_2,_HALF,
mid_1,_HALF,mid_1,_HALF,mid_3,_HALF,mid_3,TWO,/**/mid_3,ONE_HALF,
mid_1,_HALF,high_1,HALF,mid_7,_HALF,mid_7,_HALF,mid_7,HALF,
mid_6,HALF,mid_6,_HALF,mid_7,_HALF,mid_6,HALF,mid_3,_HALF,
mid_2,_HALF,mid_1,HALF,mid_2,HALF,mid_2,HALF,mid_1,_HALF,
mid_5,_HALF,mid_5,HALF,mid_2,ONE,/**/mid_3,_HALF,mid_2,_HALF,
mid_3,HALF,mid_6,HALF,mid_6,_HALF,high_1,_HALF,mid_6,HALF,
mid_6,ONE_HALF,/**/mid_5,HALF,mid_6,HALF,mid_5,HALF,mid_5,HALF,
mid_5,_HALF,mid_3,_HALF,mid_2,_HALF,mid_1,THREE_HALF,mid_1,HALF,
low_6,_HALF,mid_1,_HALF,mid_2,HALF,mid_3,_HALF,low_6,_HALF,
low_6,HALF,low_6,_HALF,mid_1,_HALF,mid_2,ONE_HALF,low_5,_HALF,
low_5,_HALF,mid_5,_HALF,mid_6,_HALF,mid_5,HALF,mid_5,HALF,
mid_6,HALF,mid_2,HALF,mid_2,ONE_HALF,/*repare*/mid_3,_HALF,mid_5,_HALF,
mid_5,HALF,mid_3,_HALF,mid_3,_HALF,mid_3,HALF,mid_2,HALF,
mid_1,_HALF,mid_2,_HALF,mid_1,HALF,mid_3,_HALF,mid_6,_HALF,
mid_6,HALF,mid_3,HALF,mid_5,ONE_HALF,mid_3,HALF,mid_6,HALF,
mid_7,_HALF,mid_6,_HALF,mid_6,THREE_HALF,mid_3,_HALF,mid_6,HALF,
mid_7,HALF,mid_6,HALF,mid_6,HALF,mid_3,HALF,mid_2,HALF,mid_1,HALF,
low_6,HALF,mid_2,HALF,mid_2,ONE,mid_2,_HALF,mid_3,_HALF,low_6,HALF,
mid_1,_HALF,low_6,_HALF,mid_1,HALF,mid_1,_HALF,low_6,_HALF,
mid_2,HALF,mid_3,ONE,mid_1,_HALF,low_7,_HALF,mid_1,HALF,mid_5,HALF,
mid_5,HALF,mid_6,_HALF,mid_2,_HALF,mid_2,HALF,mid_3,HALF,mid_3,HALF,
mid_1,_HALF,low_7,_HALF,low_6,HALF,mid_2,HALF,mid_2,HALF,mid_2,_HALF,
mid_1,_HALF,mid_2,_HALF,mid_3,HALF,mid_2,_HALF,mid_2,HALF,
mid_1,HALF,mid_1,HALF,mid_2,ONE_HALF,mid_2,TWO,/**/mid_3,_HALF,mid_5,_HALF,
mid_5,HALF,mid_3,_HALF,mid_3,_HALF,mid_3,HALF,mid_2,HALF,
mid_1,_HALF,mid_2,_HALF,mid_1,HALF,mid_3,_HALF,mid_6,_HALF,
mid_6,HALF,mid_3,HALF,mid_5,ONE_HALF,mid_3,HALF,mid_6,HALF,
mid_7,_HALF,mid_6,_HALF,mid_6,THREE_HALF,mid_3,_HALF,mid_6,HALF,
mid_7,HALF,mid_6,HALF,mid_6,HALF,mid_3,HALF,mid_2,HALF,mid_1,HALF,
low_6,HALF,mid_2,HALF,mid_2,ONE,mid_2,_HALF,mid_3,_HALF,low_6,HALF,
mid_1,_HALF,low_6,_HALF,mid_1,HALF,mid_1,_HALF,low_6,_HALF,
mid_2,HALF,mid_3,ONE,mid_1,_HALF,low_7,_HALF,mid_5,HALF,
mid_5,HALF,mid_5,HALF,mid_6,_HALF,mid_2,_HALF,mid_2,HALF,
mid_1,HALF,low_6,_HALF,mid_3,_HALF,mid_2,ONE_HALF,mid_2,_HALF,
mid_1,_HALF,mid_2,_HALF,mid_3,_HALF,mid_2,HALF,mid_2,HALF,
mid_1,_HALF,mid_2,_HALF,mid_1,HALF,mid_1,ONE_HALF,mid_1,ONE,1
};
u16 i=0;
while( my_music != 1 )
{
Sing_A_Note(my_music,my_music[i+1]);
i=i+2;
}
}
|