1樓:水晶扇
只要你有樂譜。根據樂理,就可以走在調上。比如:
你可以寫乙個檔案,儲存你自己的聲音格式:
struct tagsound
;1。音符與頻率的關係
*****===低音部分
低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。頻率的產生
利用定時器來控制io口的高低變化實現
週期=1/頻率
半週期中斷產生io口電平
定時時間常數按照微控制器的方式計算
3。**節拍的產生
每個音符用1個位元組,位元組的高4位代表音符的高低,低4位代表
音符的節拍,如果 1節拍是0.4秒,則1/4拍就是0.1秒。
其他節拍為1/4拍的整數倍。
4。節拍與節拍碼對照表
節拍 節拍數 節拍數
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
曲調 1/4拍的延遲時間 1/8拍的延遲時間
4/4 125ms 62ms
3/4 187ms 94ms
2/4 250ms 125ms
不過,真的好不准。
這樣就可以編輯檔案了。
送你乙個函式:
void mydelay(long tt) /*暫停tt個百分之一秒*/
}這個函式可以暫停 0.01*tt 秒。
迴圈使用下面的句子:
beep(frequency,sounddelay);
mydelay(nosounddelay/10);
就可以模擬那個**了。
在c語言裡可以迴圈使用:
sound(frequency);
mydelay(sounddelay/10);
nosound();
mydelay(nosounddelay/10);
就可以了
2樓:
beep有兩個引數
第乙個控制頻率(1-32767)單位hz。
第二個控制延長 單位ms。
第乙個引數低於20你聽不到
vb中beep函式問題
3樓:
調整他的頻率
beep 1000, 150
他的響度還是有你的喇叭決定的
4樓:清山媚水
你說 beep 可以使主機發聲,主機發聲指的是不是 音效卡+音箱 發聲 ? 如果這樣,增加音量好辦,軟體(如音量滑塊)硬體(音箱音量旋鈕)都可。
使喇叭像主機一樣發聲,你指的是不是計算機箱內的小喇叭?那個聲音無法大,主機板提供的訊號很小,喇叭本身也很小,總不能加硬體電路放大吧?
vb beep 函式問題,呼叫beep函式後沒有聲音。 30
5樓:匿名使用者
private declare function beep lib "kernel32" (byval dwfreq as long, byval dwduration as long) as long
private sub command1_click()beep 800, 2000 ' 以bai80hz的頻
du率zhi
響dao
專2秒鐘
屬end sub
private sub command2_click()endend sub
6樓:匿名使用者
不用api:
private sub command1_click()beep
end sub
7樓:匿名使用者
程式沒問題,檢視你的系統音量控制,是否調到最大,或選了靜音
php,函式問題
8樓:匿名使用者
函式返回值用return, 不用echo
function total($maxinum_number)return $sum;}
9樓:兄弟連教育北京總校
先說下**為什麼這樣寫
遞迴分為二步:
1.遞推 2.回歸
遞推:遞推為正向的推導,即從前向後的分析問題,尋找遞推的條件。
1-3求和為例
sum(1) = 1 + 0
sum(2) = 2 + 1
sum(3) = 3 + 2 + 1
可發現sum(1) = 1 + 0
sum(2) = 2 + sum(2-1)
sum(3) = 3 + sum(3-1)
這樣一來把求 sum(3) 轉為求sum(2)的把求sum(2)的轉為求sum(1)
回歸自後向前再追逆一遍。論證前期推導的正確性。
經過以上分析所以得函式sum的公式為:
sum(n) = n + sum(n-1)
所以sum(n)的函式原型為:
function sum($n)
但這段**還是有問題,因為還缺少了退出條件。所以寫遞迴的時候注意了。一定要寫乙個 if 語句用來判斷遞迴何時退出。沒有退出條件的遞迴就是死迴圈。
怎麼退出呢?退出條件是什麼?這裡由於是計算1-3之和所以這個函式的成立條件為 00)
return $n + sum($n-1);
return
return $a; //這裡讓它的最後一次迴圈加了0而不是-1,我這裡執行的跟你的不一樣吧。。呵呵。。因為你的if條件是$n > 1 所在 else 裡 $n <= 1 所以你的最後加了1就退出了。。
}最後總結下執行過程
用一行表示下,也許這樣表達你能明白,這段**就相當於如下的公式。
sum(3+sum(2+sum(1)))
如果讓你去執行你會如何呢?
你會先看到外層的sum(3+當看到+號了發現後面還有乙個函式沒有求,哎算了。。。sum(3)現在求不了我把sum(2)求出來再求sum(3)吧,於
是你看sum(2
又是看到+號後面又有了乙個sum函式是求sum(1)的心想這回看你還有沒有了。。嘻嘻。。。好了sum(1)求出來了再把sum(1)的值返回再加上
2 也就是求出了sum(2),sum(2)求出來了再加上3,sum(3)也求出了最後函式執行終止。。。。
講了這麼多。。只是為了你理解的透徹些
VB提示音beep,觀於VB中beep
小小木哦 這個本來就是呼叫主機板報警音得。你應該可以想象得到,因為就算你沒有音響得時候,也是可以聽到哪個提示音,是可大可小,可是哪個根據高低位音,比較複雜,建議你用別得提示音,比如多 控制元件。觀於vb中beep 禕正誼 vb中,beep聲音與windows的自身設定有關。比如98和xp就不一樣。通...
在vb裡,我呼叫beep函式,為什麼發不出聲音啊,我是希望當文字框的輸出的數值大於某個數時就發出聲音
vb裡,不能寫成call beep 2000,3000 直接寫beep即可。if temptext.text 13 thenbeep end if 如果嫌聲音不好,想改變聲音,就得使用api了。private declare function beep lib kernel32 byval dwfr...
VB中的EXP函式
exp arg 表示自然對數 e的arg次方,e 2.71828182845905因此exp 1 就是e的一次方,以此類推exp 0 1exp 1 0.367879441171442exp 2 0.135335283236613 我是個vb初學者誰能給我解釋一下vb中的 exp,log,是幹什麼的還...