//圣诞音乐贺卡beepMusic_v6d;
本文下载链接:
prj_tst1–圣诞贺卡beepMusic_v6d.exe (调试优化版)
prj_tst1–生日贺卡beepMusic_v5.exe
beepMusic-我和我的祖国_v2.exe
相关链接:
音乐贺卡midiMusic_v0.exe;
/*/重要说明:
1.在版本号v6前加*号可切换到生日快乐歌;
2.程序结构;:
本程序分三部分;
(1)项目自定义;
(2)项目主程序;
(3)项目子函数;
//----------------------------------------------*/
//v5;20201203;"音乐贺卡beepMusic_v5";[src@beepMusic.cpp;]
//升级;--扩展键盘=22键;修改多数宏定义;降低函数耦合;增加简谱音符宏;
//----------------------------------------------*/
//proj用户自定义部分;--可修改部分;包括乐曲数据song[];键盘定义keyb[];
//----------------------------------------------*/
//v5;定义键盘keyb[];--休止符&键位;[键盘音符常量数组;默认keyb[];*名称不能随意改变;]
const int keyb[] //键盘音阶0,1~7,`1;[小字2组c2~c3;]
={
131,147,165,175,196,220,247, //c0低音组1~7=>0~6;对应keyb[1~7];
262,294,330,349,392,440,494, //c1中音组1~7=>0~6;对应keyb[8~14];
523,587,659,698,784,880,988, //c2高音组1~7=>0~6;对应keyb[15~21];
1047,
};
//v5;定义简谱音符宏;
//换调;--C调d=0;F调d=4;C调低8度d=-7;C调高8度d=7;
//不能任意换调;[要能任意换调,键盘定义keyb必须使用12平均律;]
#define d 7 //如d>0时,则无休止符;
#define l(n) (n-1+0*7+d) //低音组1~7=>0~6;对应keyb[ 1~7 ];
#define m(n) (n-1+1*7+d) //中音组1~7=>0~6;对应keyb[ 8~14];
#define h(n) (n-1+2*7+d) //高音组1~7=>0~6;对应keyb[15~21];
//v6;定义歌曲简谱song[];--铃儿响叮当;
#define t 150 //定义歌曲演奏速度;--音符最小延时ms;[默认t=250ms;典型范围100~300ms;]
const int song[] //歌曲的音符数据;--音符频率+时值;[默认歌曲音符数组song[];*名称不能随意改变;]
={
// 等效简谱d=G;4/4;|,53 21 ,5-|,53 21 ,6-|,64 32 ,7- |55 42 3- |
// |,53 21 ,5-|,53 21 ,6-|,64 32 55 5|65 42 1- |
// ||:33 3 33 3| 35 12 3-| 44 44 43 3| 1.|32 21 2 5:||
// 2.|55 42 1- ||
l(5),t, m(3),t, m(2),t, m(1),t, l(5),t*6, l(5),t, m(3),t, m(2),t, m(1),t, l(6),t*6,
l(6),t, m(4),t, m(3),t, m(2),t, l(7),t*6, m(5),t, m(5),t, m(4),t, m(2),t, m(3),t*6,
l(