[Tutor] Sound problems

Dave Angel davea at ieee.org
Thu Dec 10 15:40:25 CET 2009


Tim Goddard wrote:
> I'm still learning, and this may be better served on a pygame mailing
> list but I thought I'd try here first.
>
> I'm following the python programming for absolute beginners which uses
> livewires and pygame to do some simple games.  My difficulty comes
> from not using the module versions used in the book and using the
> latest online offerings.
>
> The book creates a simple program to play music and sound in a console
> environment.
>
> initially the code was (shortened for brevity):
>
> from livewires import games
>
> # load a sound file
> missile = games.load_sound("missile.wav")
>
> #load the music file
> games.load_music("theme.mid")
>
> choice == None
> while choice != "0":
>     print """
>     1 - play missile sound
>     2 - play music
>     """
>     choice = raw_input("Choose your selection: ")
>     if choice == "1":
>         missile.play()
>     elif choice == "2":
>         games.play_music()
>
> Which gives an error because the load_music is not part of the latest
> games.py module.  So after reading through games.py I discovered that
> most of it is a pass through to pygames.  Also the sound does not
> play.
>
> My modified code which plays music but still not sound is:
> from livewires import games
> # If I don't keep the above line, I get an error that pygame.mixer is
> not initialized properly
>
> import pygame
>
> # load a sound file
> missile = pygame.mixer.Sound('pickup.wav')
>
> # load the music file
> pygame.mixer.music.load("theme.mid")
>
> <menu code>
>
>     if choice == "1":
>         missile.play(3)  # loop .wav three times.
>         print "Playing missile sound"
>
>     elif choice == "2":
>         pygame.mixer.music.play()
>         print "Playing theme music"
>
> My question is why won't the sound play in the console?  When I use
> the same code in a program with a screen, it plays normally.
>
> Thanks in advance!
>
>   
If I may make a guess (I've never used pygame), I'd suggest that the 
sound playing logic counts on using the event loop for its timing.  So 
without an event loop, no sound.

DaveA



More information about the Tutor mailing list