Skip to content
SPECIFICTION
Get listed

music21

music21.org

Free plan WebWindowsmacOSLinux
Visit music21.org
Spec score 8.3 #5 of 27 in Music Theory Software

What it is

music21 is a free Python toolkit for computer-aided musicology, used to study music datasets, teach music theory, edit notation, analyze music, generate examples, and compose. It includes a corpus of thousands of encoded works, plus tools for searching that corpus, plotting pitch, and performing advanced analysis such as nPVI. The toolkit works with MIDI and MusicXML and can be extended to handle other formats. Its documentation recommends MuseScore for viewing and editing notation, and describes MusicXML readers including Finale, Sibelius, and Dorico. Optional integrations include LilyPond, Matplotlib, SciPy, PyAudio, and Pygame; music21 can also be used in web-based Jupyter Notebook. It runs on Linux, macOS, and Windows, with web use through Jupyter. The toolkit is BSD-licensed and costs nothing. Some corpus works have separate license restrictions. Users need some familiarity with Python, and music21 works primarily with symbolic music data rather than sound waves; it cannot read notation directly from images or PDFs.

Spec sheet

Purpose
music21 is a Python-based toolkit for computer-aided musicology.Read 8 Oct 2026 · music21.org
Deployment
bothRead 22 Sep 2026 · music21.org
Free plan
YesRead 22 Sep 2026 · music21.org
Support
The community mailing list offers help, while paid consulting is available at rates that vary by project.Read 8 Oct 2026 · music21.org
Analysis
Its tools include corpus searching, pitch plotting, and advanced analysis functions such as nPVI.Read 8 Oct 2026 · music21.org
Audience and requirements
The documentation says users need some familiarity with Python and identifies musicologists, programmers, composers, performers, and music enthusiasts among potential contributors.Read 8 Oct 2026 · music21.org
Corpus
The toolkit includes a corpus of thousands of encoded musical works.Read 8 Oct 2026 · music21.org
Corpus restrictions
Some corpus encodings may not be used commercially or may have other restrictions, so users are directed to check the licenses for individual works or directories.Read 8 Oct 2026 · music21.org
Formats
The FAQ says music21 can work with common formats including MIDI and MusicXML, and can be extended to support more.Read 8 Oct 2026 · music21.org
Jupyter
The documentation describes using music21 in the web-based Jupyter Notebook.Read 8 Oct 2026 · music21.org
Limits
music21 primarily manipulates symbolic musical data rather than sound waves, and it cannot read music directly from images or PDFs.Read 8 Oct 2026 · music21.org
MIDI support
YesRead 22 Sep 2026 · music21.org
MusicXML support
YesRead 22 Sep 2026 · music21.org
Notation integrations
The documentation recommends MuseScore for viewing and editing notation and describes support for MusicXML readers including Finale, Sibelius, and Dorico.Read 8 Oct 2026 · music21.org
Other integrations
The documentation describes optional integrations with LilyPond, Matplotlib, SciPy, PyAudio, and Pygame for tasks such as score rendering, plotting, audio searching, recording, and realtime MIDI.Read 8 Oct 2026 · music21.org
Parts extraction
YesRead 22 Sep 2026 · music21.org
Security and licensing
The toolkit is BSD-licensed; its configuration assistant asks whether music21 can access the Internet, and the documentation says Internet access is not required.Read 8 Oct 2026 · music21.org
Tablature support
YesRead 22 Sep 2026 · music21.org
Uses
People use it to study music datasets, generate musical examples, teach music theory, edit notation, analyze music, and compose.Read 8 Oct 2026 · music21.org

Plans and prices

music21 Free BSD-licensed toolkit · corpus works may have separate restrictions Read 8 Oct 2026 · music21.org

Every music21 plan and price →

Strong points and limits

Strong points

  • Includes thousands of encoded musical works
  • Supports MIDI and MusicXML
  • Provides corpus search and pitch plotting
  • Optional integrations cover rendering, plotting, and audio tasks
  • BSD-licensed and free

Limits

  • Requires some familiarity with Python
  • Does not manipulate sound waves as its primary focus
  • Cannot read notation from images or PDFs
  • Some corpus works have separate restrictions

Who it suits

It suits musicologists, programmers, composers, performers, and music enthusiasts who have some Python familiarity. It is useful for symbolic music analysis and notation work, rather than extracting notation from images or PDFs.

Verdict

music21 offers a broad set of tools for symbolic music study, teaching, notation, and composition at no cost. Check the licensing of individual corpus works and plan for Python use.

Where Specifiction places it

Alternatives to music21All alternatives →