//圣诞音乐贺卡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(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, m(5),t, m(5),t, m(5),t*4,   m(6),t, m(5),t, m(4),t, m(2),t, m(1),t*6,m(3),t,    m(3),t, m(3),t*4,   m(3),t, m(3),t, m(3),t*4,   m(3),t, m(5),t, m(1),t, m(2),t, m(3),t*6,m(4),t,    m(4),t, m(4),t, m(4),t, m(4),t, m(3),t, m(3),t*4,   m(3),t, m(2),t, m(2),t, m(1),t, m(2),t*4,m(5),t*4,m(3),t,   m(3),t, m(3),t*4,   m(3),t, m(3),t, m(3),t*4,   m(3),t, m(5),t, m(1),t, m(2),t, m(3),t*6,m(4),t,    m(4),t, m(4),t, m(4),t, m(4),t, m(3),t, m(3),t*4,   m(5),t, m(5),t, m(4),t, m(2),t, m(1),t*6,l(0),0     //休止符<0;时值=0歌曲结束;--音符时值t*n针对beep优化;
};/*/v5;定义歌曲简谱song[];--祝你生日快乐;
define t 150        //定义歌曲演奏速度;--音符最小延时ms;[默认t=250ms;典型范围100~300ms;]
c#onst int song[]   //歌曲的音符数据;--音符频率+时值;[默认歌曲音符数组song[];*名称不能随意改变;]
={
//  等效简谱d=C;3/4;|11 2 1| 4 3- |11 2 1| 5 4- |11 `1  6| 4 3 2|  77  6  4| 5  4- ||
//  等效简谱d=F;3/4;|55 6 5|`1 7- |55 6 5|`2`1- |55 `5 `3|`1 7 6|`4`4 `3 `1|`2 `1- || m(1),t*3/2,  m(1),t/2,   m(2),t*3,   m(1),t*2,   m(4),t*2,   m(3),t*6,m(1),t*3/2,    m(1),t/2,   m(2),t*3,   m(1),t*2,   m(5),t*2,   m(4),t*6,m(1),t*3/2,    m(1),t/2,   h(1),t*3,   m(6),t*2,   m(4),t*2,   m(3),t*2,   m(2),t*6,m(7),t*3/2,    m(7),t/2,   m(6),t*3,   m(4),t*2,   m(5),t*2,   m(4),t*6,l(0),0     //休止符<0;时值=0歌曲结束;--音符时值t*n针对beep优化;
};
/*///v5;定义数据结构隔离宏;--发声参数的计算宏;[源数据@歌曲数据song[]&键盘定义keyb[];]
//[带参数的宏函数;简称带参宏;]
#define kf(p)   (keyb[song[p]])     //取音符1=频率Hz;--键盘音高;
#define ms(p)   (song[p+1])            //取音符2=时值ms;--音符时长;为0歌曲结束;
#define is(p)   (song[p]>=0)        //判断is音符;--为假是休止符<0;可用l(0)表示;//----------------------------------------------*/
//proj主程序;
//----------------------------------------------*/
//包含库函数;
#include <stdio.h>            //标准I/O库;--包含printf()和scanf();[默认终端窗口console;]
#include <stdlib.h>           //标准C库; --包含system()和_sleep();_beep(Hz,ms);[frequency,delay;]
//声明本地函数;
void xcolor(int p);         //自动变色子程序;--简谱1~7映射到颜色case 8~14;
void shape();               //形状显示子程序;--图形轮廓曲线s[]=shape;
void noteSound(int p);      //音符发声子程序;--音符指针p;//v5;主函数;
int main()
{    system("title 音乐贺卡beepMusic_v6");        //设置cmd窗口标题;system("mode con cols=43 lines=20");        //设置cmd窗口宽高=字符数;while(1)               //公式0: for循环次数n=(终值-初值)/步长;[n=(iend-i0)/step;]{int p=0;                              //定义音符指针;同时赋初值0;--即从0号音符开始播放;while(ms(p))                           //判断当前音符时值ms是否为0,就结束播放;{xcolor(p);                          //自动变色子程序;--简谱1~7映射到颜色case 8~14;shape();                            //形状显示子程序;--图形轮廓曲线s=shape;noteSound(p);                        //音符发声子程序;--音符指针p;[实参&形参可同名;]p=p+2;                               //让p指向下一个音符;--每个音符占2个单元;    }}return 0;
}
//----------------------------------------------*/
//proj本地函数;
//----------------------------------------------*/
//v5;音符发声子程序;[音乐核心函数;]
//函数接口&引用;
//形参;       [音符指针p;]
//全局常量; [歌曲数据song[];键盘定义keyb[];最小单位延时t;]
//库函数;  [蜂鸣器发声_beep(frequency,delay)@<stdlib.h>;]void noteSound(int p)       //音符发声子程序;--音符指针p;
{printf("%4d,%4d",kf(p),ms(p));   //显示printf();--格式串(频率Hz,时值ms);if(is(p))_beep(kf(p),ms(p));  //发声Hz;--频率Hz+时值ms;[如果is(p)为假,则为休止符,不需发声;]_sleep(ms(p)-t/2);               //休眠ms;--时值tsleep=(ms(p)-t/2)为提前从sleep醒来;
}
//----------------------------------------------*/
//v6;圣诞树显示子程序;--3级注释;[窗口尺寸43*20;单位是字符;其中,心形尺寸=35字符宽*15行;]
//字符串带格式打印;[函数原型printf(const char *, ...);--变参函数;%和*均可增加参数;]
//printf格式串("%*.*s")=>(tLen(i).sLen(i),a);[*号增加2个参数,%增加1个参数;共4个参数;]
//
//定义常量数组;--圣诞树字串a;树形轮廓数据s;
//const char a[]={"We wish you a Merry Christmas And Happy New Year !"}; //主体字串alpha;[共35字符;]
const char a[]={"Merry Christmas & Happy New Year!"};    //主体字串alpha;[共35字符;]
const int  s[]={17,15,13,11,13,11,9,7,9,7,5,3,1,15,15};    //轮廓shape[15];[共15行;]
//定义宏;
#define X0      4               //左边距;--预留4个字符;[命名X0;意为起始x坐标从0开始;]
#define sLen(i) (35-s[i]*2)     //宏函数;--计算第i行字符串长度 string Length;[公式1;]
#define tLen(i) (X0+35-s[i])   //宏函数;--计算第i行加左边总长度 total Length;[公式2;]void shape() //形状显示子程序;--图形轮廓曲线s[]=shape;
{//  打印祝福语英文;--从0~14行,依次逐行打印字符图形;
//  printf("\n\n%*.*s\n", tLen(0), sLen(0), h);       //头部h[];--单独打印第0行;printf("\n\n\n");       //头部空行;--空3行;[为了上下对称,后边文字也留3行;]for(int i=0;i<15;i++)                          //图形高15行;行数i=0~14;printf("%*.*s\n", tLen(i), sLen(i), a);        //主体a[];--循环打印第0~14行;
//  打印祝福语中文;printf("\n恭祝圣诞与新年快乐!\n");             //下部3行;--空1行,文字1行;音符显示预留1行;
}
//----------------------------------------------*/
/*/v5;心形显示子程序;--3级注释;[窗口尺寸45*20;单位是字符;其中,心形尺寸=35字符宽*15行;]
//字符串带格式打印;[函数原型printf(const char *, ...);--变参函数;%和*均可增加参数;]
//printf格式串("%*.*s")=>(tLen(i).sLen(i),a);[*号增加2个参数,%增加1个参数;共4个参数;]//定义常量数组;--心形字串h,a;心形轮廓数据s;
const char h[]={"Happy          to You !"};              //头部字串head;[仅占第0行;]
const char a[]={"Happy Birthday to You ! Happy Birth"};  //主体字串alpha;[共35字符;]
const int  s[]={7,3,1,0,0,1,3,5,7,9,11,13,15,16,17};   //轮廓shape[15];[共15行;]
//
//定义宏;
#define X0 5                    //左边距;--预留5个字符;[命名X0;意为起始x坐标从0开始;]
#define sLen(i) (35-s[i]*2)     //宏函数;--计算第i行字符串长度 string Length;[公式1;]
#define tLen(i) (X0+35-s[i])   //宏函数;--计算第i行加左边总长度 total Length;[公式2;]void shape() //形状显示子程序;--图形轮廓曲线s[]=shape;
{
//  打印祝福语英文;--从0~14行,依次逐行打印心形;printf("\n\n%*.*s\n", tLen(0), sLen(0), h);     //头部h[];--单独打印第0行;for(int i=1;i<15;i++)                           //行数i=1~14;printf("%*.*s\n", tLen(i), sLen(i), a);       //主体a[];--循环打印第1~14行;
//  打印祝福语中文;printf("\n祝你生日快乐!\n");
}
//----------------------------------------------*/
//v5;自动变色子程序;--默认16色重新排序;[频率升序;集中亮色;]
//  system("pause");
//  system("color 0##c"); //设置cmd窗口背景色/前景色;--青色3/亮白f;
//  c=(c+1)%16;               //c=0~15;取16的余数;//定义宏;
#define c_idx   (song[p]%7+8)  //颜色索引宏;简谱1~7=>0~6映射到颜色8~14;[公式3;]
//随简谱音符1~7变色;
void xcolor(int p)      //自动变色子程序;--简谱1~7映射到颜色case 8~14;
{if(is(p))switch(c_idx) //变色索引参数c_idx;--如果is(p)为假,则为休止符;{                                         case  1: system("color 04");break;      //4 = 红色    case  2: system("color 06");break;       //6 = 黄色    case  3: system("color 02");break;       //2 = 绿色    case  4: system("color 03");break;       //3 = 青色  case  5: system("color 01");break;     //1 = 蓝色    case  6: system("color 05");break;       //5 = 紫色    case  7: system("color 07");break;       //7 = 白色    case  8: system("color 0c");break;       //C = 亮红色case  9: system("color 0e");break;      //E = 亮黄色case 10: system("color 0a");break;      //A = 亮绿色case 11: system("color 0b");break;      //B = 亮青色case 12: system("color 09");break;      //9 = 亮蓝色case 13: system("color 0d");break;      //D = 亮紫色case 14: system("color 0f");break;      //F = 亮白色case 15: system("color 08");break;      //8 = 灰色default: system("color");break;          //0 = 黑色;[恢复con默认色;]  }else system("cls");   //休止符清屏;
}//----------------------------------------------*/

圣诞音乐贺卡beepMusic_v6d;--铃儿响叮当;相关推荐

  1. 圣诞节音乐计算机铃儿响叮当,铃儿响叮当(圣诞 少儿音乐)

    铃儿响叮当(圣诞 少儿音乐) - 圣诞歌曲 Vive le vent vive le vent Vive le vent dhiver Qui sen va sifflant soufflant Da ...

  2. 计算机弹音乐铃儿响叮当简谱,歌曲铃儿响叮当简谱

    歌曲铃儿响叮当简谱 导语:1857年,美国波士顿假日学校的学生在教堂有一场感恩节演出,学生们请邻居皮尔彭特写了一首新歌,轻快的'旋律让孩子们马上就学会了,这首名为"One Horse Ope ...

  3. 【圣诞专场】—— 用python海龟库实现圣诞装饰(圣诞树,拐杖糖,圣诞火车,圣诞雪人,圣诞祝福)~~c++《铃儿响叮当》

    本文主要介绍了圣诞装饰的python实现,展示出最终效果.实验步骤.及相关知识,在文末附录中,小编还会介绍一些这次活动没有运用到的海龟库知识.用c++编译出圣诞树.用c++编译出<铃儿响叮当&g ...

  4. 圣诞节音乐计算机铃儿响叮当,圣诞节歌曲铃儿响叮当歌词

    圣诞节歌曲铃儿响叮当歌词 铃儿响叮当有很多的版本,是一首经典的`圣诞节歌曲,但是旋律相同,我们从中可以感受到愉悦.轻松的气氛.yuwenmi小编整理了<铃儿响叮当>中文歌词,快来看看吧. ...

  5. 这平安夜,我们来用python演奏一首铃儿响叮当吧

    <铃儿响叮当>是一首脍炙人口的经典圣诞歌曲,今晚平安夜我来用python奏起来-- 用最原始的winsound库函数Beep()来演奏,用法如下: >>> import ...

  6. 铃儿响叮当c语言编程,铃儿响叮当吉他谱C调简单版儿歌

    铃儿响叮当 曲目介绍 1857年,美国波士顿假日学校的学生在教堂有一场感恩节演出,学生们请邻居皮尔彭特写了一首新歌,轻快的旋律让孩子们马上就学会了,这首名为"One Horse Open S ...

  7. 铃儿响叮当用计算机怎么弹,铃儿响叮当钢琴弹奏教学视频

    圣诞节到了,大街小巷都放起了<铃儿响叮当>,那轻松欢快的旋律在空中飘荡让人感受着节日的气氛.今天学习啦小编给大家整理了铃儿响叮当钢琴弹奏教学视频,希望对大家有所帮助. 铃儿响叮当钢琴弹奏教 ...

  8. 跨平台移动开发 Adobe Edge制作HTML5圣诞音乐贺卡DEMO

    1.新建项目 2.添加背景,图片,音频 var au_to_play=new Audio(); au_to_play.src="audio/lap.mp3"; //指定文件名,这里 ...

  9. Postcard:简单的音乐贺卡制作

    一个十分小巧,但效果很棒的在线音乐制作服务,简单的三步就能制作出自己的贺卡,通过email发送给你的朋友.你所要做的仅仅是: 上传图片 (jpeg.png.gif),上传音乐(mp3,20M以内),填 ...

最新文章

  1. 参照STM32时钟树配置STM32CubeMX Clock Configuration(STM32L011G4U6为例)
  2. html三列布局中间固定,常见的三列布局(左右固定宽度,中间自适应)
  3. 怎么装python的keras库_matlab调用keras深度学习模型(环境搭建)
  4. 【树莓派】更新系统镜像下载地址,可能是最简单粗暴的树莓派搭建个人网站教程...
  5. C语言实现Trie字典树 (附完整源码)
  6. python之闭包的实现
  7. c语言实现二分法_C语言实现二分法求解方程在区间内的根
  8. Format Currency Sample
  9. DOCKER-COMPOSE搭建MONGODB分片集群(单机版)
  10. Axure工具概述以及Axure RP9的安装汉化和授权
  11. MySQL建表语句综合
  12. 100G QSFP28 AOC有源光缆的分类及应用
  13. html5怎么唤起支付宝支付,H5唤起支付宝支付
  14. 「Python」利用高德地图做你想做之事
  15. linux can 总线socket接口测试使用
  16. TypeScript值比较、泛型函数类型和签名
  17. 三、Cypher的使用(知识图谱构建射雕人物关系)
  18. 名词从句:主语从句、宾语从句、表语从句、同位语从句
  19. 面试宝典之高分回答面试题(一)
  20. 思科网络模拟器EVE安装(附安装包)

热门文章

  1. 视频教程-【吴刚大讲堂】电商品牌文案设计方法-电子商务
  2. 微众银行AI团队领衔推动人工智能国际标准的制定
  3. eclipse的jdt简介
  4. CSS绘制常见的几何图形
  5. 上岸快手,我选择一条不一样的路
  6. JS基础-循环精灵图
  7. LeetCode 43. 字符串相乘【c++/java详细题解】
  8. 时间把回忆开成花海,谁的等待,恰逢花开
  9. Unity场景渲染之自发光材质
  10. java ssm野生动物公益保护网站系统