How to play sound in Python?

Bill Dandreta wjdandreta at
Sat Oct 23 18:15:40 CEST 2004

I posted a message ("Help with my 1st Tkinter program") a few days ago 
complaining that Python did not have any built in basic cross platform 
sound capability. I was wrong (at least partly). Python comes with some 
sound playing ability for some platforms.

Since no one responded to my post, I assume the capability is not well 
known so I will post a code snippet from my practice program that 
demonstrates how I play a sound file with Python on both Windows and 
Linux. It may save someone else some time.

The winsound module lets you play .wav files under windows. The 
ossaudiodev module in combination with the wave module lets you play 
.wav files under Linux (and some other nix's as well).

if platform.startswith('win'):
   from winsound import PlaySound, SND_FILENAME, SND_ASYNC
   PlaySound(file, SND_FILENAME|SND_ASYNC)
elif platform.find('linux')>-1:
   from wave import open as waveOpen
   from ossaudiodev import open as ossOpen
   s = waveOpen('tada.wav','rb')
   (nc,sw,fr,nf,comptype, compname) = s.getparams( )
   dsp = ossOpen('/dev/dsp','w')
     from ossaudiodev import AFMT_S16_NE
   except ImportError:
     if byteorder == "little":
       AFMT_S16_NE = ossaudiodev.AFMT_S16_LE
       AFMT_S16_NE = ossaudiodev.AFMT_S16_BE
   dsp.setparameters(AFMT_S16_NE, nc, fr)
   data = s.readframes(nf)


More information about the Python-list mailing list