469,360 Members | 1,807 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,360 developers. It's quick & easy.

How to play sound in Python?

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).

===========================
file='tada.wav'
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')
try:
from ossaudiodev import AFMT_S16_NE
except ImportError:
if byteorder == "little":
AFMT_S16_NE = ossaudiodev.AFMT_S16_LE
else:
AFMT_S16_NE = ossaudiodev.AFMT_S16_BE
dsp.setparameters(AFMT_S16_NE, nc, fr)
data = s.readframes(nf)
s.close()
dsp.write(data)
dsp.close()
===============================

Bill
Jul 18 '05 #1
3 7029
"Bill Dandreta" <wj********@att.net> wrote in message
news:Ms******************@bgtnsc05-news.ops.worldnet.att.net...
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.


Take a look: http://pymedia.org/
Dmitry/
Jul 18 '05 #2
Bill Dandreta:
The winsound module lets you play .wav files under windows.


Thank you.
You can also create "on the fly" memory-mapped wav files (with wave
and mmap modules, I think), and play them.

How to use the flag SND_PURGE for WAVs loaded from filename or memory
mapped?

Bear hugs,
Bearophile
Jul 18 '05 #3

just a quick note....

Bill Dandreta <wj********@att.net> writes:
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.


I remember that somebody has implemented Python bindings for the
portaudio library, which is a cross-platform library for real-time
audio.
Johannes
Jul 18 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

1 post views Thread by Askari | last post: by
22 posts views Thread by The Road To Utopia | last post: by
1 post views Thread by Ron Provost | last post: by
1 post views Thread by Lam | last post: by
1 post views Thread by CARIGAR | last post: by
reply views Thread by zhoujie | last post: by
reply views Thread by suresh191 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.