Skip to main content

A wrapper for the MAD (mpeg audio decoder) library.

Project description

pymad - a Python wrapper for the MPEG Audio Decoder library

ci pymad is a Python module that allows Python programs to use the MPEG Audio Decoder library. pymad provides a high-level API, similar to the pyogg module, which makes reading PCM data from MPEG audio streams a piece of cake.

MAD is available at http://www.mars.org/home/rob/proj/mpeg/

Access this module via import mad. To decode an mp3 stream, you'll want to create a mad.MadFile object and read data from that. You can then write the data to a sound device. See the example program in test/ for a simple mp3 player that uses the python-pyao wrapper around libao for the sound device.

pymad wrapper isn't as low level as the C MAD API is, for example, you don't have to concern yourself with fixed point conversion -- this was done to make pymad easy to use.

import sys

import ao
import mad

mf = mad.MadFile(sys.argv[1])
dev = ao.AudioDevice(0, rate=mf.samplerate())
while 1:
    buf = mf.read()
    if buf is None:  # eof
        break
    dev.play(buf, len(buf))

To build, you need the distutils package, availible from http://www.python.org/sigs/distutils-sig/download.html (it comes with Python 2.0). Run python setup.py build to build and then as root run python setup.py install.

if you've installed your mad stuff someplace weird you may need to run the config_unix.py script, passing it a --prefix value to create a setup.cfg file with the correct include and link dirs:

# python config_unix.py --prefix /usr/local
# python setup.py build
# python setup.py install --prefix /usr/local

Remember to make sure /usr/local/python/site-packages/ is in your Python search path in that example.

Alternately, you can write setup.cfg yourself. E.g.:

[build_ext]
library_dirs=/opt/mad/lib
include_dirs=/opt/mad/include
libraries=name_of_library_mad_might_depend_on

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pymad-0.11.1.tar.gz (31.3 kB view details)

Uploaded Source

File details

Details for the file pymad-0.11.1.tar.gz.

File metadata

  • Download URL: pymad-0.11.1.tar.gz
  • Upload date:
  • Size: 31.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for pymad-0.11.1.tar.gz
Algorithm Hash digest
SHA256 8c28827cdb391451e672e6d3347390daaa914452e8825fd2d52e39b3ca8e3824
MD5 0b8178d6086693b00c34274ed48c481d
BLAKE2b-256 72e74b9a8ae75ae03c48feaed0c2eb50aac45d3f58b91cc45f8224d8cb3e3dad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page