2011-10-16 38 views
0

如何製作一個播放我定義的音調的程序,同時按住一個鍵?我可以用winsound.Beep()播放不同的音符,但我不認爲這真的有幫助。基本的Python聲音編程

+0

「我不認爲這真的有幫助」,根據您的標準是什麼, –

+0

我只是想說,我已經嘗試使用winsound庫這個無濟於事。 – Paul

回答

1

如果您只是想使用標準庫並使用它,則可以使用msvcrt獲取當前按鍵並將其映射到某個頻率。

import msvcrt 
import time 
import winsound 

notes = {'a': 440, 's': 935, 'd': 1039} 

while True: 
    key = msvcrt.getch() 
    try: 
     note = notes[key] 
    except KeyError: 
     note = 0 

    winsound.Beep(note, 10) 
    time.sleep(0.01) 
+0

當按鈕被按下時,這隻會重複發出嗶嗶聲(或者它在我的電腦上播放,更多的是點擊)。我的意思是在音符被壓下時有平滑的音調。這是可能的winsound或將我需要一個不同的圖書館? – Paul

+0

我做了部分內存不足,我目前的電腦似乎不支持嗶聲功能,我認爲有一點我認爲它是恆定的,但我可能是錯的。 – smunk

+0

@Paul winsound.Beep()的第二個參數是以毫秒爲單位的嗶聲持續時間。你可以通過embiggen這個數來得到更長的音符,但是如果你使用'getch()'輸入,程序就沒有辦法知道你按下了一個鍵的長度。 –

0

winsound模塊可以讓你多玩就會發出蜂鳴聲,看看winsound.PlaySound

winsound.PlaySound('mySound.wav', winsound.SND_FILENAME) 

當用戶按下一個鍵,你通常會得到在短時間內多個按鍵事件。

+0

我已經研究過PlaySound,但我只是想在該程序描述的頻率下獲得平滑的音調。 – Paul