你可以寫一個文件,存儲你自己的聲音格式:
武義ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
struct tagSound
{
int frequency; //頻率
int soundDelay; //發(fā)音時間(單位ms)
int nosoundDelay; //發(fā)完音之后暫停的時間(單位ms)
};
1。音符與頻率的關(guān)系
========低音部分
低1DO:262
#1DO#:277
低2RE:294
#2RE#:311
低3MI:330
低4FA:349
#4FA#:370
低5SO:392
#5SO#:415
低6LA:440
#6LA#:466
低7SI:494
========中音部分=低音X2
中1DO:523 956us FC44;
#1DO#:554 902us
中2RE:578 865us FC9F;
#2RE#:622 803us
中3MI:659 759us FD09;
中4FA:698 716us FD34
#4FA#:740
中5SO:784 638us FD82
#5SO#:831
中6LA:880 568us FDC8
#6LA#:932
中7SI:988 506us FE06
========高音部分=中音X2
高1DO:1046
#1DO#:1109
高2RE:1175
#2RE#:1245
高3MI:1318
高4FA:1480
#4FA#:1480
高5SO:1568
#5SO#:1661
高6LA:1760
#6LA#:1865
高7SI:1976
“#”表示半音,用于上升或下降半個音
2。頻率的產(chǎn)生
利用定時器來控制IO口的高低變化實現(xiàn)
周期=1/頻率
半周期中斷產(chǎn)生IO口電平
定時時間常數(shù)按照單片機的方式計算
3。音樂節(jié)拍的產(chǎn)生
每個音符用1個字節(jié),字節(jié)的高4位代表音符的高低,低4位代表
音符的節(jié)拍,如果 1節(jié)拍是0.4秒,則1/4拍就是0.1秒。
其他節(jié)拍為1/4拍的整數(shù)倍。
4。節(jié)拍與節(jié)拍碼對照表
節(jié)拍 節(jié)拍數(shù) 節(jié)拍數(shù)
1 1/4 1/8
2 2/4 2/8
3 3/4 3/8
4 1 1/2
5 5/4 5/8
6 6/4 6/8
8 2 1
A 10/4 5/4
C 3 12/8
F 15/4
曲調(diào) 1/4拍的延遲時間 1/8拍的延遲時間
4/4 125ms 62ms
3/4 187ms 94ms
2/4 250ms 125ms
不過,真的好不準。
這樣就可以編輯文件了。
送你一個函數(shù):
void MyDelay(long tt) /*暫停tt個百分之一秒*/
{
struct time now,last;
gettime(last);
gettime(now);
while((((now.ti_sec-last.ti_sec)*100+now.ti_hund-last.ti_hund))tt)
{
gettime(now);
}
}
這個函數(shù)可以暫停 0.01*tt 秒。
循環(huán)使用下面的句子:
Beep(frequency,soundDelay);
MyDelay(nosoundDelay/10);
就可以模擬那個音樂了。
在C語言里可以循環(huán)使用:
sound(frequency);
MyDelay(soundDelay/10);
nosound();
MyDelay(nosoundDelay/10);
就可以了
轉(zhuǎn)義字符 意義 ASCII碼值(十進制)
\a 響鈴(BEL) 007
#include stdio.h
int main()
{
printf("test:\a");
return 0;
}
測試的時候,會聽到嘟的一聲,它不能自動播放音樂的,就一個“嘟”
樓主我用Dev-Cpp是有響聲的。
然后我再VC++6.0運行了一遍,還是有響聲的。
不知道振鈴和蜂鳴的區(qū)別。
#include?stdio.h
#includewindows.h????//?包含windows頭文件
int?main()
{
int?n;
int?b=20;
for(n=0;n21;n++)
{
printf("\a");
printf("%d\n",?b?-?n);
Sleep(500);????//?延遲?500?毫秒
}
getchar();
return?0;
}
你是想聲音和數(shù)字都慢慢的出來嗎?你的程序太短小,在一瞬間就執(zhí)行完了,其實聲音可能響了20下,但是是在一瞬間同時發(fā)出來的,你分辨不出來而已??梢园瑆indows頭文件,調(diào)用sleep函數(shù)延遲發(fā)聲和打印,就可以出現(xiàn)有節(jié)奏的效果。一次發(fā)聲只需要打印一個'\a'就可以了。
char d=7 -- d 等于 十進制 7
char d='\007' -- d值 等于 八進制 007
char d='\07' -- d值 等于 八進制 07
d='\7' -- d值 等于 八進制 7
八進制 7,07, 007 值一樣大小,都等于 十進制 7。
ASCII 碼 7 ,是響鈴符。所以打印效果一樣。
#include windows.h //使用windowsAPI函數(shù)Beep();
/*
BOOL Beep(
DWORD dwFreq, // sound frequency, in hertz
DWORD dwDuration // sound duration, in milliseconds
);
*/
Beep(5500,150);