= Audio in Python =


This page tries to provide a starting point for those who want to work with audio in combination with Python.


If you are creating a game, most of what you are looking for may already be included in the many [[PythonGameLibraries|PythonGameLibraries]] that are available.


If you are looking for podcasts related to Python, go to the [[PythonAudioMaterial|PythonAudioMaterial]] page.


== Built in modules ==


The [[http://docs.python.org/3/library/mm.html|Multimedia Services]] allow for some basic audio functionality in Python. It consists of the following modules:



||[[http://docs.python.org/3/library/audioop.html|audioop]] ||Manipulate raw audio data. ||
||[[http://docs.python.org/3/library/aifc.html|aifc]] ||Read and write audio files in AIFF or AIFC format. ||
||[[http://docs.python.org/3/library/sunau.html|sunau]] ||Provide an interface to the Sun AU sound format. ||
||[[http://docs.python.org/3/library/wave.html|wave]] ||Provide an interface to the WAV sound format. ||
||[[http://docs.python.org/3/library/chunk.html|chunk]] ||Module to read IFF (e.g. AIFF) chunks. ||
||[[http://docs.python.org/3/library/chunk.html|colorsys]] ||Conversions between colour systems. ||
||[[http://docs.python.org/3/library/chunk.html|imghdr]] ||Determine the type of a image file. ||
||[[http://docs.python.org/3/library/sndhdr.html|sndhdr]] ||Determine the type of a sound file. ||
||[[http://docs.python.org/3/library/ossaudiodev.html|ossaudiodev]] ||Access to OSS-compatible audio devices (mainly important for Linux / FreeBSD) ||
||[[http://docs.python.org/3/library/winsound.html|winsound]] ||Access to the basic sound-playing machinery provided by Windows platforms. ||





== Beyond the default modules ==


Alternatively, you might want to learn about audio programming in Python. There is a veritable forest of stuff out there, but here are some good starting points.


For a complete overview have a look at [[PythonInMusic|PythonInMusic]].


=== Platform independent ===



||[[http://nsound.sourceforge.net|Nsound]] ||C++ library with Python module for audio synthesis. ||
||[[http://pypi.python.org/pypi/pyaudiere/0.2|PyAudiere]] ||A high-level audio interface for Python. (deadlink) ||
||[[http://pydub.com|Pydub]] ||A high-level audio interface for Python. Uses ffmpeg for formats other than WAVE ||
||[[http://people.csail.mit.edu/hubert/pyaudio/|pyAudio]] ||Python bindings for [[PortAudio|PortAudio]] audio input and output ||
||[[http://www.speech.kth.se/snack/|Snack]] ||Playback, recording, file and socket I/O, waveforms and spectrograms. "Last release 2004-12-01. Dead?" ||
||[[http://sourceforge.net/projects/audiotools/|Python Audio Tools]] ||Programs for CD-ripping and conversion between audio file formats. ||
||[[https://pypi.python.org/pypi/musicplayer|musicplayer module]] ||Part of a [[http://albertz.github.com/music-player/|music player]]. It uses FFmpeg for decoding and [[PortAudio|PortAudio]] for output. It supports gapless playback and high sample rates (96kHz or 192kHz). It also has the functionality to calculate the [[ReplayGain|ReplayGain]] value and do loudness normalization, to calculate the [[AcoustId|AcoustId]] fingerprint, to get the metadata (via FFmpeg) and to calculate a visual representation for a sound file. ||
||[[http://python-sounddevice.rtfd.org/|sounddevice]] ||This module provides bindings for the [[http://www.portaudio.com/|PortAudio]] library (using [[https://cffi.rtfd.org/|CFFI]]) and a few convenience functions to play and record [[http://www.numpy.org/|NumPy]] arrays containing audio signals. ||
|| [[http://simpleaudio.readthedocs.org/en/latest/|simpleaudio]] || Simple, dependency-free audio playback for Python 3 ||
|| [[https://github.com/mytja/libwinmedia-py|libwinmedia]] || Tiny and simple audio and video playback for Windows and Linux. Uses [[https://github.com/harmonoid/libwinmedia|libwinmedia]] library. ||



=== Platform dependent ===


http://gstreamer.freedesktop.org/modules/gst-python.html


http://pyalsaaudio.sourceforge.net/


http://pypi.python.org/pypi/audiosocket/ - pure Python solution to play audio on Windows


=== Modules relying on closed source ===


[[http://pysonic.sourceforge.net/|pysonic]] - A wrapper around the [[http://www.fmod.org|FMOD]]-library offering plenty of options including 3D sound and effects. FMOD is a popular closed, but free for own use, that is used in many commercial game titles.



----

[[CategoryDocumentation|CategoryDocumentation]]