记得很久很久以前编过一个计算机程序(语言好像是pascal,也可能是c或是basic,忘了。反正各种语言基本上都有这个函数),主要是调用一个 beep() 函数。参数好像有两个,一个是频率,另一个是长度。当时算频率的时候,大致是这样算的:
La =440Hz,
然后高音 La=440*2=880Hz
然后把2开12次方,算出一个数来,假设它为a;
然后,各个音的频率分别为
La=440 * a的0次方 =440Hz
升La=440 * a的1次方
Xi=440 * a的2次方
Do=440 * a的3次方 (高音)
升Do=440 * a的4次方 (高音)
Re=440 * a的5次方 (高音)
升Re=440 * a的6次方 (高音)
Mi=440 * a的7次方 (高音)
升Mi=440 * a的8次方 (高音)
Fa=440 * a的9次方 (高音)
So=440 * a的10次方 (高音)
升So=440 * a的11次方 (高音)
La=440 * a的12次方 既 440 *2=880Hz (高音)
低音区也是同样的算法,只不过首先是要除以2,也就是用220来乘a的多少多少次方。
然后再设好另一个参数(表示时值),然后反复调用这个函数,就可以让电脑发出想要的声音了。 |