Beep也疯狂,让你的主板也Happy起来吧
来源:互联网 发布:掌商大数据 编辑:程序博客网 时间:2024/06/06 00:51
主板能唱歌,而且能根据简谱播放出美妙的旋律,你信吗?不管你信不信,反正我是信啦,^_^。
Windows API 就提供了一个这样奇妙的发音函数,它就是Beep函数。Beep可以通过控制主板扬声器的发声频率和节拍来演奏美妙的旋律,本文根据音乐简谱来演奏几首优美的歌曲,用以展现Beep的疯狂魅力。
首先我们来Beep的函数原型:
BOOL Beep( DWORD dwFreq, DWORD dwDuration);
参数说明:
dwFreq 指定要发出的频率(从37Hz到32767Hz)
dwDuration 指定发音的时长,以毫秒为单位。
根据简谱知识,我们知道音乐演奏用的乐谱就是有音节和节拍组成,不同的音节就是不同频率的声音,下面我们来看看PC主板扬声器的模仿音节:
程序实现:
/******************************************************************* * Copyright (C) Jerry Jiang * File Name : MultiThreadDlg.cpp * Author : Jerry Jiang * Create Time : 2011-10-7 14:41:02 * Mail : jbiaojerry@gmail.com * Blog : http://blog.csdn.net/jerryjbiao * Description : Beep函数播放《送别》、《传奇》和《生日快乐歌》 ******************************************************************/#include <iostream>#include <windows.h>using namespace std;//定义低音const int A1 = 131;const int A2 = 147;const int A3 = 165;const int A4 = 175;const int A5 = 196;const int A6 = 220;const int A7 = 247;//定义中音const int B1 = 262;const int B2 = 296;const int B3 = 330;const int B4 = 349;const int B5 = 392;const int B6 = 440;const int B7 = 494;//定义高音const int C1 = 523;const int C2 = 587;const int C3 = 659;const int C4 = 698;const int C5 = 784;const int C6 = 880;const int C7 = 988;//定义高二度const int D1 = 1047;const int D2 = 1175;const int D3 = 1319;const int D4 = 1397;const int D5 = 1568;const int D6 = 1760;const int D7 = 1976;//定义节拍const int OneBeat = 600;const int HalfBeat = 300;void HappyBirthday();void Legend();void SendOff();int main(){cout << "**************************" << endl;cout << "* 1 - 送别 *" << endl;cout << "* 2 - 传奇 *" << endl;cout << "* 3 - 祝你生日快乐 *" << endl;cout << "**************************" << endl;cout << "请选择歌曲:" << endl;int num = 0;cin >> num;switch (num){case 1:cout << "你选择了:1 - 送别" << endl;SendOff();break;case 2:cout << "你选择了:2 - 传奇" << endl;Legend();break;case 3:cout << "你选择了:3 - 祝你生日快乐" << endl;HappyBirthday();break;default:break;}return 0;}void HappyBirthday(){Beep(C5, HalfBeat);Beep(C5, HalfBeat);Beep(C6, OneBeat);Beep(C5, OneBeat);Beep(D1, OneBeat);Beep(C7, OneBeat * 2);Beep(C5, HalfBeat);Beep(C5, HalfBeat);Beep(C6, OneBeat);Beep(C5, OneBeat);Beep(D2, OneBeat);Beep(D1, OneBeat * 2);Beep(C5, HalfBeat);Beep(C5, HalfBeat);Beep(D5, OneBeat);Beep(D3, OneBeat);Beep(D1, OneBeat);Beep(C7, OneBeat);Beep(D4, HalfBeat);Beep(D4, HalfBeat);Beep(D3, OneBeat);Beep(D1, OneBeat);Beep(D2, OneBeat);Beep(D1, OneBeat * 2);Beep(C5, HalfBeat);Beep(C5, HalfBeat);Beep(D5, OneBeat);Beep(D3, OneBeat);Beep(D1, OneBeat);Beep(C7, HalfBeat);Beep(C6, OneBeat * 2);Beep(D4, HalfBeat);Beep(D4, HalfBeat);Beep(D3, OneBeat);Beep(D1, OneBeat);Beep(D2, OneBeat);Beep(D1, OneBeat * 3);}void Legend(){//只是因为在人群中多看了你一眼Beep(C1, HalfBeat);Beep(C1, OneBeat);Beep(C1, OneBeat);Beep(C3, OneBeat);Beep(C2, OneBeat);Beep(C2, HalfBeat);Beep(C2, HalfBeat / 2);Beep(C1, HalfBeat);Beep(C1, OneBeat);Beep(C1, HalfBeat);Beep(C2, OneBeat);Beep(C2, OneBeat);Beep(C1, HalfBeat);Beep(B6, HalfBeat);Beep(B6, HalfBeat / 2);Beep(B6, OneBeat * 2);//再也没能忘掉你容颜Beep(B7, HalfBeat);Beep(B7, HalfBeat);Beep(B7, OneBeat);Beep(C1, HalfBeat);Beep(C2, HalfBeat);Beep(C2, OneBeat);Beep(B7, OneBeat);Beep(B6, HalfBeat);Beep(B5, HalfBeat);Beep(B3, HalfBeat);Beep(B3, OneBeat * 2);//梦想着偶然能有一天再相见Beep(C3, HalfBeat);Beep(C2, HalfBeat);Beep(C3, OneBeat);Beep(C3, HalfBeat);Beep(C3, HalfBeat / 2);Beep(C2, HalfBeat);Beep(C2, OneBeat);Beep(C2, HalfBeat / 2);Beep(C1, HalfBeat);Beep(C1, OneBeat);Beep(C2, OneBeat);Beep(B6, OneBeat);Beep(B6, HalfBeat);Beep(B6, HalfBeat / 2);Beep(C2, HalfBeat);Beep(C1, HalfBeat / 2);Beep(C1, OneBeat * 2);//从此我开始孤单思念Beep(B7, HalfBeat);Beep(B7, HalfBeat);Beep(B7, OneBeat);Beep(C1, HalfBeat);Beep(C2, HalfBeat / 2);Beep(C2, OneBeat);Beep(C2, OneBeat);Beep(B6, HalfBeat);Beep(B5, OneBeat);Beep(B3, OneBeat * 2);//想你时你在天边Beep(C5, OneBeat);Beep(C2, HalfBeat / 2);Beep(C2, OneBeat);Beep(C3, OneBeat);Beep(C5, OneBeat);Beep(C2, HalfBeat);Beep(C2, OneBeat);Beep(D1, HalfBeat);Beep(B6, OneBeat * 2);Sleep(50);//想你时你在眼前Beep(C2, OneBeat);Beep(B6, HalfBeat / 2);Beep(B6, OneBeat);Beep(C3, OneBeat);Beep(C2, OneBeat);Beep(C1, HalfBeat / 2);Beep(C1, OneBeat);Beep(C1, OneBeat);Beep(B5, OneBeat * 2);//想你时你在脑海Beep(C5, OneBeat);Beep(C2, HalfBeat / 2);Beep(C2, OneBeat);Beep(C3, OneBeat);Beep(C5, OneBeat);Beep(C2, HalfBeat);Beep(C2, OneBeat);Beep(D1, OneBeat);Beep(B6, OneBeat * 2);Sleep(50);//想你时你在心田Beep(C2, OneBeat);Beep(B6, HalfBeat / 2);Beep(B6, OneBeat);Beep(C3, OneBeat);Beep(C2, OneBeat);Beep(C1, HalfBeat / 2);Beep(C1, OneBeat);Beep(C1, OneBeat);Beep(B5, OneBeat * 2);//宁愿相信我们前世有约Beep(C1, HalfBeat);Beep(C1, HalfBeat);Beep(C1, OneBeat);Beep(B5, HalfBeat);Beep(C1, HalfBeat / 2);Beep(C1, OneBeat);Beep(C5, OneBeat);Beep(D4, OneBeat);Beep(C3, OneBeat);Beep(C2, OneBeat);Beep(C1, HalfBeat / 2);Beep(C1, OneBeat * 2);//今生的爱情故事不会再改变Beep(C1, HalfBeat);Beep(C3, HalfBeat);Beep(C5, HalfBeat);Beep(C6, OneBeat);Beep(C5, HalfBeat);Beep(C6, HalfBeat / 2);Beep(C6, HalfBeat);Beep(C5, OneBeat);Beep(C6, OneBeat);Beep(C5, HalfBeat);Beep(C3, HalfBeat);Beep(C3, HalfBeat);Beep(C2, OneBeat);Beep(C3, HalfBeat / 2);Beep(C3, OneBeat * 2);//宁愿用这一生等你发现Beep(C1, HalfBeat);Beep(C1, HalfBeat);Beep(C1, OneBeat);Beep(B5, HalfBeat);Beep(C1, HalfBeat / 2);Beep(C1, OneBeat);Beep(C5, OneBeat);Beep(D4, OneBeat);Beep(C3, OneBeat);Beep(C2, OneBeat);Beep(C1, HalfBeat / 2);Beep(C1, OneBeat * 2);//我一直在你身边从未走远Beep(C1, HalfBeat);Beep(C3, HalfBeat);Beep(C5, HalfBeat);Beep(C6, OneBeat);Beep(C5, HalfBeat);Beep(C6, HalfBeat / 2);Beep(C6, HalfBeat);Beep(C5, OneBeat);Beep(C6, OneBeat);Beep(C5, HalfBeat);Beep(C3, HalfBeat / 2);Beep(C5, OneBeat);Beep(C5, OneBeat * 4);}void SendOff(){//送别const int ONE_BEEP = 600;const int HALF_BEEP = 300;const int NOTE_1 = 440;const int NOTE_2 = 495;const int NOTE_3 = 550;const int NOTE_4 = 587;const int NOTE_5 = 660;const int NOTE_6 = 733;const int NOTE_7 = 825;//长亭外Beep(NOTE_5, ONE_BEEP);Beep(NOTE_3, HALF_BEEP);Beep(NOTE_5, HALF_BEEP);Beep(NOTE_1 * 2, ONE_BEEP * 2);//古道边Beep(NOTE_6, ONE_BEEP);Beep(NOTE_1 * 2, ONE_BEEP);Beep(NOTE_5, ONE_BEEP * 2);//芳草碧连天Beep(NOTE_5, ONE_BEEP);Beep(NOTE_1, HALF_BEEP);Beep(NOTE_2, HALF_BEEP);Beep(NOTE_3, ONE_BEEP);Beep(NOTE_2, HALF_BEEP);Beep(NOTE_1, HALF_BEEP);Beep(NOTE_2, ONE_BEEP * 4);//晚风扶柳笛声残Beep(NOTE_5, ONE_BEEP);Beep(NOTE_3, HALF_BEEP);Beep(NOTE_5, HALF_BEEP);Beep(NOTE_1 * 2, HALF_BEEP * 3);Beep(NOTE_7, HALF_BEEP);Beep(NOTE_6, ONE_BEEP);Beep(NOTE_1 * 2, ONE_BEEP);Beep(NOTE_5, ONE_BEEP * 2);//夕阳山外山Beep(NOTE_5, ONE_BEEP);Beep(NOTE_2, HALF_BEEP);Beep(NOTE_3, HALF_BEEP);Beep(NOTE_4, HALF_BEEP * 3);Beep((int)(NOTE_7 / 2 + 0.5), HALF_BEEP);Beep(NOTE_1, ONE_BEEP * 4);//天之涯Beep(NOTE_6, ONE_BEEP);Beep(NOTE_1 * 2, ONE_BEEP);Beep(NOTE_1 * 2, ONE_BEEP * 2);//地之角 Beep(NOTE_7, ONE_BEEP); Beep(NOTE_6, HALF_BEEP); Beep(NOTE_7, HALF_BEEP); Beep(NOTE_1 * 2, ONE_BEEP * 2); //知交半零落 Beep(NOTE_6, HALF_BEEP);Beep(NOTE_7, HALF_BEEP);Beep(NOTE_1 * 2, HALF_BEEP);Beep(NOTE_6, HALF_BEEP);Beep(NOTE_6, HALF_BEEP); Beep(NOTE_5, HALF_BEEP);Beep(NOTE_3, HALF_BEEP); Beep(NOTE_1, HALF_BEEP); Beep(NOTE_2, ONE_BEEP * 4); //一壶浊酒尽余欢 Beep(NOTE_5, ONE_BEEP); Beep(NOTE_3, HALF_BEEP);Beep(NOTE_5, HALF_BEEP); Beep(NOTE_1 * 2, HALF_BEEP * 3); Beep(NOTE_7, HALF_BEEP); Beep(NOTE_6, ONE_BEEP); Beep(NOTE_1 * 2, ONE_BEEP); Beep(NOTE_5, ONE_BEEP * 2); //今宵别梦寒 Beep(NOTE_5, ONE_BEEP); Beep(NOTE_2, HALF_BEEP); Beep(NOTE_3, HALF_BEEP); Beep(NOTE_4, HALF_BEEP * 3); Beep((int)(NOTE_7 / 2 + 0.5), HALF_BEEP); Beep(NOTE_1, ONE_BEEP * 3); Sleep(10000);}
- Beep也疯狂,让你的主板也Happy起来吧 (挺有意思的)
- Beep也疯狂,让你的主板也Happy起来吧
- 如何让select的样式也漂亮起来
- 让你的优盘也有背景!
- 让你也有百万富翁的生活
- 让他也了解你的动态
- 让你的站点也支持MarkDown
- 单身狗也疯狂!黑科技让你天天过七夕!
- 让你的控制台程序也支持自动补齐
- 让你的输入文本框也具有记忆功能
- 让你的OpenAmf也能支持Session
- 让你的程序也能执行脚本
- 让你的ASP.NET虚拟主机也支持子网站
- 让你的ASP.NET虚拟主机也支持子网站
- 让你的ASP.NET虚拟主机也支持子网站
- 让你的输入文本框也具有记忆功能
- Win32汇编让你的VB也支持滚轮
- 如何将你了解的也让别人了解
- 微软WP业务总裁:苹果iOS操作系统正在抄袭WP
- 苹果将发布新iPhone 邀请函引中国产业链躁动
- C99的restrict关键词
- 推荐三个 Steve Jobs 的 Chrome 主题
- 2013年社交网站广告营收达百亿美元
- Beep也疯狂,让你的主板也Happy起来吧
- 调查发现女人比男人更喜欢使用社交网站(组图)
- __restrict__ 或 __restrict 来识别 C99 中的这个特性
- FileRide——与众不同的社交网站
- C# (值类型/应用类型/内存框图)与对象深度/浅度复制/系列化/反系列化)
- 社交网站Quepasa以1亿美元收购myYearbook
- 现在可用:2011年9月更新的Windows Azure Platform Training Kit和新的Training Kit Web Installe预览
- KMP--字符匹配
- 织梦中通过dede:pagelist实现中英文分页效果