跳轉到內容

Futurebasic/語言/參考/聲音訊率

來自華夏公益教科書,自由的教科書

SOUND <frequency>

[編輯 | 編輯原始碼]

SOUND pitch,duration [,[volume][,async]]

此語句播放給定音高、持續時間和音量的音調。

pitch 以每秒迴圈數表示頻率。您指定的頻率將轉換為最接近的“MIDI 音符值”,這將確定實際播放的音符。中間“C”對應於 261.625 的頻率。

duration 以滴答表示,範圍為 0 到 32,767。但是,工具箱聲音命令要求 FB 將滴答轉換為整數以表示半毫秒。這意味著您可以播放不超過 32.8 秒的音符。

volume 的範圍為 0 到 127。指定 0 將導致靜音,而 127 將在“聲音”控制面板中指定的最大音量播放聲音。如果您省略此引數,它將被視為 127。

如果 async_zTrue,聲音將非同步播放。如果 async_false,或者您省略此引數,聲音將同步播放。當您非同步播放時,您的程式會立即開始執行下一條語句,而聲音在後臺播放。當您同步播放時,程式中的下一條語句只有在聲音播放完畢後才會執行。

如果您非同步播放音符,並且在另一個聲音仍在後臺播放時執行第二個 SOUND 語句,新的聲音將不會在第一個聲音結束之前開始播放。請注意,在某些機器上,此技術會導致聲音丟失。非同步播放時,最好使用 SOUND% 函式來確定一個聲音何時結束,然後再嘗試播放下一個聲音。

播放聲音訊率的一種方法是使用負數(從 -1 到 -127)來表示您想要播放的音符。下表顯示瞭如何使用這些值。

圖片在這裡

使用 MIDI 表作為指南,我們可以建立“倫敦橋倒下來”的版本,如下所示

<code><b>PRINT</b> "Pop! "; : <b>SOUND</b> -70, 45 ,,_false<br>
<b>PRINT</b> "Goes "; : <b>SOUND</b> -64, 30 ,,_false<br>
<b>PRINT</b> "the "; : <b>SOUND</b> -67, 15 ,,_false<br>
<b>PRINT</b> "wea"; : <b>SOUND</b> -66, 40 ,,_false<br>
<b>PRINT</b> "sel "; : <b>SOUND</b> -62, 45 ,,_false</code>

另請參閱

[編輯 | 編輯原始碼]

SOUND%; SOUND END; SOUND<snd>

華夏公益教科書