symbolic music analysis and composition library in Python
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
projects PEP8 compliance Jul 15, 2014
sebastian PEP8 compliance Jul 15, 2014
tests PEP8 compliance Jul 15, 2014
.travis.yml Travis CI support Mar 19, 2013
requirements.txt PEP8 compliance Jul 15, 2014
tox.ini PEP8 compliance Jul 15, 2014


Sebastian is a symbolic music analysis and composition library written in Python.

I partly think of it as being a "Mathematica for music". By symbolic, I mean that it is focused more on the sorts of abstractions made by music notation and theories of harmony and counterpoint than lower level numerical operations that one might use in, say, music synthesis.

I hope it to be very practical as an analysis tool for existing compositions (especially from the common practice period) and also a tool for computer-assisted composition. It will also be a bit of a test bed for ideas I've had for a while around applying linguistics and abstract algebra to music.

PyCon 2013 Talk

I spoke about Sebastian at PyCon 2013 and my slides are available at:

The video of the talk is available on YouTube at:

Mailing List

You can join the Sebastian mailing list by emailing

IRC Channel

We're using #sebastian-dev on Freenode.


Sebastian is open source under an MIT license. See the LICENSE file.

Running Tests

pip install nose

or with coverage:

nosetests --with-coverage --cover-erase --cover-package=sebastian --cover-html
open cover/index.html

IPython Notebook Integration

pip install ipython
pip install tornado
pip install pyzmq

and install Lilypond, making sure commandline lilypond is on your path then:

ipython notebook