[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Noticeable lag between key press events and sound events



If I recall I had a lag in a game and solved it by loading the sound when the game started rather than when the key was pressed.

In my case though, the sound file was small.


On Dec 12, 2010, at 10:09 AM, Brian Gryder wrote:

"""
I am experimenting with playing/changing drum loops with pygame. In the program below, beat1.wav is played when the up arrow key is pressed and beat2.wav is played when the down arrow key is pressed. There is a noticeable lag between the key press events and the sound changes. I am running the program in a linux terminal with "-u" and the ALSA sound driver ( "SDL_AUDIODRIVER=alsa && python -u sampler.py" ). What can I do to make the sounds change quicker? Any suggestions, links, or code snippets would be greatly appreciated.
"""

#---------------------------------------------------------
import pygame
from pygame.locals import *
from sys import exit

pygame.mixer.pre_init(44100, -16, 1, 512)
pygame.mixer.init()
sound1 = pygame.mixer.Sound("beat1.wav")
sound2 = pygame.mixer.Sound("beat2.wav")

SCREEN_SIZE = (400, 300)
screen = pygame.display.set_mode(SCREEN_SIZE, RESIZABLE, 32)

while True:
        for event in pygame.event.get():
                if event.type == QUIT:
                        exit()
                if event.type == KEYDOWN:
                        if event.key == K_UP:
                                sound2.stop()
                                sound1.play(-1,0,0)
                        if event.key == K_DOWN:
                                sound1.stop()
                                sound2.play(-1,0,0)
#-----------------------------------------------------------