tags:

views:

163

answers:

2

quick question.

I'm running pygame under linux just to play some audio files. I've got some .wav files and I'm having problems playing them back at the right speed.

import pygame.mixer, sys, time

#plays too fast
pygame.mixer.init(44100)
pygame.mixer.music.load(sys.argv[1])
pygame.mixer.music.play()
time.sleep(5)
pygame.mixer.quit()

#plays too slow
pygame.mixer.init(22100)
pygame.mixer.music.load(sys.argv[1])
pygame.mixer.music.play()
time.sleep(5)
pygame.mixer.quit()

I've ggogle code saerched some stuff but everybody seems to be fine calling the init function with its default parameters. Can others try running this script and seeing if they get the same behavior or not? Does anybody know how to speed it up? Or adjust the speed for each file?

Thanks.

+2  A: 

Open your audio file in a free audio tool like Audacity. It will tell you the sampling rate of your media. It will also allow you to convert to a different sampling rate so all your sounds can be the same.

Pace
but is that the only way?
Chris H
Not neccesarily. I'm sure you could figure out some way to calculate the sample rate of the input media in Python and then resample the media appropriately. This would allow you to handle foreign media supplied by your users properly. However, pygame must playback media at a consistent rate and that rate must match the sampling rate of the media itself. There is no way around that fact.
Pace
+1  A: 

I figured it out... There is a wave module http://docs.python.org/library/wave.html and it can read the sample rate for wav files.

Chris H