跳轉到內容

QBasic/Sound

來自華夏公益教科書,開放的書籍,開放的世界

QBasic 有三種發出聲音的方法。

  • BEEP 命令
  • SOUND 命令
  • PLAY 命令

以前用 PRINT CHR$(07) ,現在可以使用 BEEP 命令發出蜂鳴聲。它通常用於在顯示重要資訊時引起注意。

'Syntax example
BEEP 
PRINT CHR$(07)

這兩個命令,正如在計算機上執行此程式所見,完全相同。


SOUND 命令從 PC 揚聲器產生特定頻率和持續時間的特定聲音。一次只能播放一個聲音。如果連續發出多個 SOUND 語句,則第一個語句之後的每個語句都不會執行,直到上一個語句完成。

SOUND f, d
  • f - 頻率,以赫茲為單位,範圍從 37 到 32767
  • d - 持續時間,以滴答聲為單位,範圍從 0 到 65535,每秒有 18.2 滴答聲
SOUND 100, 18.2

播放 100 赫茲波形持續 18.2 滴答聲,大約 1 秒。

QBasic 允許的最低頻率為 37 赫茲,大約是第二八度的 D 音。最高頻率為 32 767 赫茲,但這種音調無法聽到,因為正常人耳的聽力範圍在 20 000 赫茲以下。

SOUND 命令的另一個功能是使用它來控制程式中的時間。

   For x% = 1 TO 10
    Print x%
    Sound 3200,18.2
   NEXT

此程式將列印數字 1 到 10,每個數字之間延遲 1 秒,並播放 3200 赫茲的音訊,間隔 1 秒。(由 FalcoN 編輯)

PLAY 命令用於播放音符、八度音。它一次只能播放一個音符。

PLAY 命令還可以播放複雜的儲存“歌曲”。這是透過使用歌曲字串實現的。有關字串命令的詳細資訊,請參見QBasic/Appendix#PLAY

Qbasic 中的簡單音樂鍵盤

[編輯 | 編輯原始碼]
rem Music keyboard
do 
note$ = inkey$
select case ucase$(note$)
case "A"
Play "A"

case "B"
Play "B"

case "C"
Play "C"

case "D"
Play "D"

case "E"
Play "E"

case "F"
Play "F"

case "G"
Play "G"

end select 

loop until ucase$(note$) = "Q"

end

此程式碼使用 select case 命令來檢查 note$ 的值。Ucase$ 用於確保無論是否應用 Caps Lock 都沒有區別。PLAY 命令用於播放不同的音符。這裡沒有使用 PLAY 的其他功能。

華夏公益教科書