Python in Free Music Software

Alia Khouri alia_khouri at
Sun Oct 31 17:27:56 CET 2004

I just realized how badly worded the subject line of the prior posting
was on this topic... ;-)


Here's an update to the list (which is not comprehensive at this
stage), but which includes items that haven't been mentioned in Pypi
or in Parnassus:

> Hi,
> 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 (-;
> AK
> ----------------------------------------------------------------------
> Survey of use of Python Language in Open-source / Free Music Software
> ----------------------------------------------------------------------
> pymps
> Pymps is the PYthon Music Playing System - a web based mp3/ogg
> jukebox. It's written in Python and utilises the PostgreSQL database.
> m3ute2
> m3ute2 is program for copying, moving, and otherwise organizing M3U
> playlists and directories. m3ute2 can also generate detailed reports
> about lists of files.
> fmod
> 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
> 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
> earcons.
> PythonMIDI
> The Python Midi package is a collection of classes handling Midi in
> and output in the Python programming language.
> PythonSound
> 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
> 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.
> PyJack
> 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 
> 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.
> MusicKit
> 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
> exercises.
> Snack
> 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
> 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
> 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.

blue is a java program for use with Csound. It's interface is much
like a digital multitrack, but differs in that there timelines within
timelines (polyObjects). This allows for a compositional organization
in time that seems to me to be very intuitive, informative, and
flexible. soundObjects are the building blocks within blue's score
timeline. soundObjects can be lists of notes, algorithmic generators,
python script code, csound instrument definitions, and whatever
plugins that are developed for blue. these soundObjects may be text
based, but they can be completely GUI based as well.
This module allows one to read and manipulate so-called ID3
informational tags on MP3 files through an object-oriented Python 
interface. is a Python module that reads ID3 metadata tags in MP3
files. It can read ID3v1, ID3v2.2, ID3v2.3, or ID3v2.4 tags. It does
not write tags at all.

pyid3 is a pure python library for reading and writing id3 tags
(version 1.0, 1.1, 2.3, 2.4, readonly support for 2.2). What makes
this better than all the others?  Testing!  This library has been
tested against some 200+ MB of just tags.
Python classes for OpenSoundControl library client functionality. The
OSC homepage is at

Python implementation of CMask, a stochastic event generator for

A demo? of a python extension interfacing to the native windows midi
libs. This was probably a development from this point

The MIDI module provides MIDI input parsers for Python.

Nam: not about music
A Python Extension for Digital Music Applications. Its purpose is 
Flexible realtime MIDI and audio processing and sequencing.
Python MIDI classes: meaningful data structures that represent MIDI
events and other objects. You can read MIDI files to create such
objects, or generate a collection of objects and use them to write a
MIDI file.

hYPerSonic is for building and manipulating sound processing
pipelines. It is designed for real-time control. It includes objects
for oscillators, filters, file-io, soundcard and memory operations.

pyTTS is a Python wrapper for the Microsoft Speech API (SAPI). The
library requires Mark Hammond's  win32com extension and SAPI 5.1+.

see also: 
    The Vaults of Parnassus:

More information about the Python-list mailing list