Python: множественный звуковой процесс
Я хочу сделать какой-нибудь музыкальный инструмент, вот мой код:
import pygame, winsound, sys
pygame.init()
game_display = pygame.display.set_mode((250, 250))
crashed = False
while not crashed:
for event in pygame.event.get():
if event.type == pygame.QUIT:
crashed = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_a:
sys.stdout.write("a")
sys.stdout.flush()
winsound.Beep(600, 250)
elif event.key == pygame.K_s:
sys.stdout.write("s")
sys.stdout.flush()
winsound.Beep(700, 250)
elif event.key == pygame.K_d:
sys.stdout.write("d")
sys.stdout.flush()
winsound.Beep(800, 250)
elif event.key == pygame.K_w:
sys.stdout.write("w")
sys.stdout.flush()
winsound.Beep(900, 250)
Проблема в том, что python должен подождать пару секунд (точнее 250 миллисекунд), чтобы закончить вывод звука. Есть ли способ одновременно определить, были ли нажаты другие клавиши до того, как python завершил обработку?
Например, если я нажал a
, он играет звуковой сигнал 250 мс. Если я нажму еще одну клавишу до того, как закончится воспроизведение этого звукового сигнала, он будет звучать еще до того, как закончится первый.
(Я не хочу менять аргумент 250 миллисекунд, потому что, если я введу, скажем, 100 мс, он пойдет быстрее, но не звук, который я хочу)