Survey of use of Python Language in Open-source / Free Music Software

Alia Khouri alia_khouri at
Sat Oct 30 04:20:55 CEST 2004


Here are the results (in no particular order) of an informal survey of
open-source / free music applications which use python in some form or
the other. If you know of any other other examples please add them to
the list.

Enjoy (-;


Survey of use of Python Language in Open-source / Free Music Software

Pymps is the PYthon Music Playing System - a web based mp3/ogg
jukebox. It's written in Python and utilises the PostgreSQL database.
m3ute2 is program for copying, moving, and otherwise organizing M3U
playlists and directories. m3ute2 can also generate detailed reports
about lists of files.

FMOD is the fastest, most powerful and easiest to use sound system on
Windows, Linux, and Windows CE there is,   and now Macintosh,
GameCube, PS2 & XBox!. FMOD supports 3d sound, midi, mods, mp3, ogg
vorbis, wma, aiff, recording, obstruction/occlusion, cd playback
(analog or digital), cd ripping, mmx, internet streaming, dsp effects,
spectrum analysis, user created samples and streams, synchronization
support, ASIO, EAX 2&3, C/C++/VB/Delphi and more.

pySonic is a Python wrapper around the high performance, cross
platform FMOD sound library. You get all the benefits of the FMOD
library, but in a Pythonic, object oriented package.

The PMIDI library allows the generation of short MIDI sequences in
Python code.The interface allows a programmer to specify songs,
instruments, measures, and notes. Playback is handled by the Windows 
MIDI stream API so proper playback timing is handled by the OS rather
than by client code. The library is especially useful for generating

The Python Midi package is a collection of classes handling Midi in
and output in the Python programming language.

The Python Sound Project aims to develop a productive community around
Python, Csound and other synthesis engines as tools for algorithmic
and computer assisted composition of electroacoustic music.
AthenaCL is an open-source, cross-platform, command-line program that
functions as both a pitch (class) set theory utility (capable of both
set and voice-leading modeling and analysis) as well as an
object-orientated, Python-scriptable algorithmic front-end to Csound.
Combining these features allows rapid and flexible scoring of Csound
instruments with the elegance of Python-written texture algorithms.
These simple algorithms allow the organization of pitch-materials by
ordered content-groups, employing 12-tone set-class and pitch-class
notations. Rather than writing its own music, AthenaCL is a
compositional assistant: the algorithms create complex textural
surfaces, leaving the limitless mixture and placement of these
textures and their attributes entirely in the hands of the composer.
This is a Python C extension module which provides an interface to the
Jack Audio Server. It is possible to access the Jack graph to perform
port connections/disconnections, monitor graph change events, and to
perform realtime audio capture and playback using Numeric Python
arrays. This is released under the GPL.

Csound / CsoundVST
Csound is a programming language designed and optimized for sound
rendering and signal processing. The language consists of over 450
opcodes - the operational codes that the sound designer uses to build
"instruments" or patches. Although there are an increasing number of
graphical "front-ends" for the language, you typically design and
modify your patches using a word processor. Usually, you create two
text files - a .orc (orchestra) file containing the "instruments," and
a .sco (score) file containing the "notes." In Csound, the complexity
of your patches is limited by your knowledge, interest, and need, but
never by the language itself. For instance, a 22,050 oscillator
additive synthesizer with 1024 stage envelope generators on each is
merely a copy-and-paste operation. The same goes for a 1 million voice
granular texture! Have you ever dreamed of sounds such as these? Well
in Csound you can. And in Csound these dreams can come true!

Dublin is an object oriented framework to generate events in pd. Every
objects is defined in python and then it interacts with other objects
in pure-data. The goal is not only the provide an external python
facility to pd but also to give the functionality of a sequencer. As
for the user interface, it uses Idle, the Python IDE to edit and run
event scripts.

The MusicKit is an object-oriented software system for building music,
sound, signal processing, and MIDI applications. It has been used in
such diverse commercial applications as music sequencers, computer
games, and document processors. Professors and students in academia
have used the MusicKit in a host of areas, including music
performance, scientific experiments, computer-aided instruction, and
physical modeling. Using the Python to Objective C bridge PyObjC
enables applications and utilities to be written in Python, an
interpreted object-oriented language.

GNU Solfege
GNU Solfege is a computer program written to help you practice ear
training.It can be useful when practicing the simple and mechanical

The Snack Sound Toolkit is designed to be used with a scripting
language such as Tcl/Tk or Python. Using Snack you can create powerful
multi-platform audio applications with just a few lines of code. Snack
has commands for basic sound handling, such as playback, recording,
file and socket I/O. Snack also provides primitives for sound
visualization, e.g. waveforms and spectrograms. It was developed
mainly to handle digital recordings of speech, but is just as useful
for general audio. Snack has also successfully been applied to other
one-dimensional signals. The combination of Snack and a scripting
language makes it possible to create sound tools and applications with
a minimum of effort. This is due to the rapid development nature of
scripting languages. As a bonus you get an application that is
cross-platform from start. It is also easy to integrate Snack based
applications with existing sound analysis software.

Pygame is a set of Python modules designed for writing games. It is
written on top of the excellent SDL library. This allows you to create
fully featured games and multimedia programs in the python language.
Pygame is highly portable and runs on nearly every platform and
operating system.

Pyper is a musical development environment. It allows you to write
Python scripts that generates music in real-time. Pyper uses QuickTime
Musical Instruments for synthesis.

More information about the Python-list mailing list