C++中發(fā)聲函數(shù)Beep用法
•以前,我聽過一個(gè)神犇用C++函數(shù)做的音樂,當(dāng)時(shí)的心里就十分激動(dòng):哇,好厲害啊,好神啊。
•這次,我終于通過自己無助的盲目的摸索、研究,寫出了這篇文章
下面是正文:
•其實(shí)啊,Windows API 就提供了一個(gè)這樣奇妙的發(fā)音函數(shù),它就是Beep函數(shù)。Beep可以通過控制主板揚(yáng)聲器的發(fā)聲頻率和節(jié)拍來演奏美妙的旋律,本文根據(jù)音樂簡(jiǎn)譜來演奏幾首優(yōu)美的歌曲,用以展現(xiàn)Beep的瘋狂魅力。
首先我們來Beep的函數(shù)原型:
BOOL Beep( DWORD dwFreq; DWORD dwDuration; );
參數(shù)說明:
•dwFreq 指定要發(fā)出的頻率(HZ)
•dwDuration 指定發(fā)音的時(shí)長(zhǎng),以毫秒為單位。
Beep的實(shí)際應(yīng)用
•比如說我要發(fā)do這個(gè)音,do應(yīng)該是523hz,且如果要發(fā)一拍的話,就相當(dāng)于400毫秒。
•那這個(gè)函數(shù)就成了這樣:Beep(523,400);
•但是,如果我們要連續(xù)的發(fā)出多個(gè)音的話,比如說像這樣:
Beep(523,400);//do Beep(578,400);//re Beep(659,400);//mi
•那豈不是太麻煩了,所以,我建議大家用define函數(shù)宏定義一下這些音,比如說這樣:#define re 578和#define mi 659,這樣,上面的三行語句就簡(jiǎn)化了成這樣:
Beep(do,400); Beep(re,400); Beep(mi,400);
最終,給親們送上一份表(借別人的 劃去)
其中,q前綴為低音,1后綴為高音,s前綴為半音階
#define qdo 262 #define qre 294 #define qmi 330 #define qfa 349 #define qso 392 #define qla 440 #define qsi 494 #define do 523 #define re 578 #define mi 659 #define fa 698 #define so 784 #define la 880 #define si 988 #define do1 1046 #define re1 1175 #define mi1 1318 #define fa1 1480 #define so1 1568 #define la1 1760 #define si1 1976 #define sqdo 277 #define sqre 311 #define sqfa 370 #define sqso 415 #define sqla 466 #define sdo 554 #define sre 622 #define sfa 740 #define sso 831 #define sla 932 #define sdo1 1046 #define sre1 1245 #define sfa1 1480 #define sso1 1661 #define sla1 1865
最后,(嘿,同志們,別跑,后面還有彩蛋呢?。?/p>
好吧,是一首用Beep函數(shù)演奏的天空之城
#include <cstdio> #include <windows.h> #define qdo 262 #define qre 294 #define qmi 330 //q前綴為低音,1后綴為高音,s前綴為半音階 #define qfa 349 #define qso 392 #define qla 440 #define qsi 494 #define do 523 #define re 578 #define mi 659 #define fa 698 #define so 784 #define la 880 #define si 988 #define do1 1046 #define re1 1175 #define mi1 1318 #define fa1 1480 #define so1 1568 #define la1 1760 #define si1 1976 #define sqdo 277 #define sqre 311 #define sqfa 370 #define sqso 415 #define sqla 466 #define sdo 554 #define sre 622 #define sfa 740 #define sso 831 #define sla 932 #define sdo1 1046 #define sre1 1245 #define sfa1 1480 #define sso1 1661 #define sla1 1865 int main() { int pai=400,ban=200; int ting=128; Sleep(1000); Beep(la,ban); Beep(si,ban); Sleep(ting); Beep(do1,pai+ban); Beep(si,ban); Sleep(ting); Beep(do1,pai); Sleep(ting); Beep(mi1,pai); Sleep(ting); Beep(si,3*pai); Sleep(ting); Beep(mi,ban); Beep(mi,ban); Beep(la,ban+pai); Beep(so,ban); Sleep(ting); Beep(la,pai); Sleep(ting); Beep(do1,pai); Sleep(ting); Beep(so,2*pai); Sleep(ting); Sleep(pai); Beep(mi,ban); Sleep(ting/2); Beep(mi,ban); Sleep(ting/2); Beep(fa,pai+ban); Beep(mi,ban); Sleep(ting); Beep(fa,ban); Beep(do1,ban+pai); Sleep(ting); Beep(mi,2*pai); Sleep(ting); Sleep(ban); Beep(do1,ban); Sleep(ting/2); Beep(do1,ban); Sleep(ting/2); Beep(do1,ban); Sleep(ting/2); Beep(si,ban+pai); Beep(sfa,ban); Sleep(ting); Beep(sfa,pai); Beep(si,pai); Sleep(ting); Beep(si,2*pai); Sleep(ting); Sleep(pai); Beep(la,ban); Beep(si,ban); Sleep(ting); Beep(do1,pai+ban); Beep(si,ban); Sleep(ting); Beep(do1,pai); Sleep(ting); Beep(mi1,pai); Sleep(ting); Beep(si,2*pai); Sleep(ting); Sleep(pai); Beep(mi,ban); Sleep(20); Beep(mi,ban); Sleep(ting); Beep(la,pai+ban); Beep(so,ban); Sleep(ting); Beep(la,pai); Sleep(ting); Beep(do1,pai); Sleep(ting); Beep(so,3*pai); Sleep(ting+ban); Beep(mi,ban); Sleep(ting/2); Beep(fa,pai); Sleep(ting); Beep(do1,ban); Beep(si,ban); Sleep(20); Beep(si,pai); Sleep(ting); Beep(do1,pai); Sleep(ting); Beep(re1,ban); Sleep(20); Beep(re1,ban); Sleep(20); Beep(mi1,ban); Sleep(ting/2); Beep(do1,pai); Sleep(ting+pai); Beep(do1,pai); Beep(si,ban); Sleep(ting); Beep(la,ban); Sleep(20); Beep(la,ban); Sleep(ting); Beep(si,pai); Sleep(ting); Beep(sso,pai); Sleep(ting); Beep(sso,2*pai); Sleep(ting+pai); Beep(do1,ban); Beep(re1,ban); Sleep(ting); Beep(mi1,pai+ban); Beep(re1,ban); Sleep(ting); Beep(mi1,pai); Sleep(ting); Beep(fa1,pai); Sleep(ting); Beep(re1,2*pai); Sleep(pai+ting); Beep(so,ban); Sleep(20); Beep(so,ban); Sleep(ting); Beep(do1,ban); Beep(si,ban); Sleep(ting); Beep(do1,pai); Sleep(ting); Beep(mi1,pai); Sleep(ting); Beep(mi1,2*pai); Sleep(ting+2*pai); Beep(la,ban); Beep(si,ban); Sleep(ting); Beep(do1,pai); Sleep(ting); Beep(si,pai); Sleep(ting); Beep(re1,ban); Sleep(20); Beep(re1,ban); Sleep(ting); Beep(do1,pai+ban); Beep(so,ban); Sleep(20); Beep(so,pai); Sleep(pai+ting); Beep(fa1,pai); Sleep(ting); Beep(mi1,pai); Sleep(ting); Beep(re1,pai); Sleep(ting); Beep(do1,pai); Sleep(ting); Beep(mi1,4*pai); Beep(mi1,pai*2); Sleep(pai+ting); Beep(mi1,pai); Sleep(ting); Beep(la1,2*pai); Sleep(ting); Beep(so1,pai); Sleep(ting); Beep(so1,pai); Sleep(ting); Beep(mi1,ban); Sleep(ting/2); Beep(re1,ban); Sleep(ting); Beep(do1,pai); Sleep(ting+ban); Beep(do1,ban); Sleep(ting); Beep(re1,pai); Sleep(ting); Beep(do1,ban); Beep(re1,ban); Sleep(20); Beep(re1,ban); Sleep(ting); Beep(so1,pai); Sleep(ting); Beep(mi1,2*pai); Sleep(ting+pai); Beep(mi,pai); Sleep(ting); Beep(la1,2*pai); Sleep(ting); Beep(so1,2*pai); Sleep(ting); Beep(mi1,ban); Beep(re1,ban); Sleep(ting); Beep(do1,2*pai); Sleep(ting+ban); Beep(do1,ban); Sleep(ting); Beep(re1,pai); Sleep(ting); Beep(do1,ban); Beep(re1,ban); Sleep(20); Beep(re1,ban); Sleep(ting); Beep(si,pai); Sleep(ting); Beep(la,2*pai); Sleep(ting); Beep(la,ban); Beep(si,ban); Beep(do1,pai+ban); Beep(si,ban); Sleep(ting); Beep(do1,pai); Sleep(ting); Beep(mi1,pai); Sleep(ting); Beep(si,3*pai); Sleep(ting); Beep(mi,ban); Beep(mi,ban); Beep(la,ban+pai); Beep(so,ban); Sleep(ting); Beep(la,pai); Sleep(ting); Beep(do1,pai); Sleep(ting); Beep(so,2*pai); Sleep(ting); Sleep(pai); Beep(mi,ban); Sleep(ting/2); Beep(mi,ban); Sleep(ting/2); Beep(fa,pai+ban); Beep(mi,ban); Sleep(ting); Beep(fa,ban); Beep(do1,ban+pai); Sleep(ting); Beep(mi,2*pai); Sleep(ting); Sleep(ban); Beep(do1,ban); Sleep(ting/2); Beep(do1,ban); Sleep(ting/2); Beep(do1,ban); Sleep(ting/2); Beep(si,ban+pai); Beep(sfa,ban); Sleep(ting); Beep(sfa,pai); Beep(si,pai); Sleep(ting); Beep(si,2*pai); Sleep(ting); Sleep(pai); Beep(la,ban); Beep(si,ban); Sleep(ting); Beep(do1,pai+ban); Beep(si,ban); Sleep(ting); Beep(do1,pai); Sleep(ting); Beep(mi1,pai); Sleep(ting); Beep(si,2*pai); Sleep(ting); Sleep(pai); Beep(mi,ban); Sleep(20); Beep(mi,ban); Sleep(ting); Beep(la,pai+ban); Beep(so,ban); Sleep(ting); Beep(la,pai); Sleep(ting); Beep(do1,pai); Sleep(ting); Beep(so,3*pai); Sleep(ting+ban); Beep(mi,ban); Sleep(ting/2); Beep(fa,pai); Sleep(ting); Beep(do1,ban); Beep(si,ban); Sleep(20); Beep(si,pai); Sleep(ting); Beep(do1,pai); Sleep(ting); Beep(re1,ban); Sleep(20); Beep(re1,ban); Sleep(20); Beep(mi1,ban); Sleep(ting/2); Beep(do1,pai); Sleep(ting+pai); Beep(la,4*pai); Sleep(1000); main(); }
相關(guān)文章
VC中實(shí)現(xiàn)GB2312、BIG5、Unicode編碼轉(zhuǎn)換的方法
這篇文章主要介紹了VC中實(shí)現(xiàn)GB2312、BIG5、Unicode編碼轉(zhuǎn)換的方法,該功能非常實(shí)用,需要的朋友可以參考下2014-07-07C語言對(duì)CSV文件從最后往前一行一行讀取的實(shí)現(xiàn)方法
今天小編就為大家分享一篇關(guān)于C語言對(duì)CSV文件從最后往前一行一行讀取的實(shí)現(xiàn)方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12C++ leetcode之刪除并獲得點(diǎn)數(shù)的示例代碼
這篇文章主要介紹了C++ leetcode之刪除并獲得點(diǎn)數(shù)的示例代碼,本文給大家分享問題解析及解決方案,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05C語言內(nèi)存管理及初始化細(xì)節(jié)示例詳解
這篇文章主要為大家介紹了C語言內(nèi)存管理及初始化細(xì)節(jié)示例的詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-02-02