music21
music21.org
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
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
- Music Theory Software#5 of 278.3
- Music notation software#17 of 388.1