- Home
- Music Theory Software
- music21
music21
What it is
music21 is a free, BSD-licensed Python toolkit for computer-aided musicology. It can help users examine music datasets, create musical examples, teach theory, edit notation, analyze music, and compose. Its corpus contains thousands of encoded works, and tools include corpus searches, pitch plots, and advanced analysis such as nPVI. The toolkit works with MIDI and MusicXML and can be extended to support other formats. For notation, its documentation recommends MuseScore and describes MusicXML readers such as Finale, Sibelius, and Dorico. Optional integrations include LilyPond, Matplotlib, SciPy, PyAudio, and Pygame for tasks including score rendering, plotting, audio searching, recording, and realtime MIDI. It can also be used in web-based Jupyter Notebook. Users need some familiarity with Python. music21 focuses on symbolic music data rather than sound waves, and it cannot read notation from images or PDFs. Some corpus works may have separate licensing restrictions; users should check the terms for individual works or directories.
For and against
For
- Free and BSD-licensed.
- Includes a corpus of thousands of encoded works.
- Supports MIDI and MusicXML.
- Can be used in web-based Jupyter Notebook.
Against
- Requires some familiarity with Python.
- Cannot read notation from images or PDFs.
- Corpus works may have separate usage restrictions.
- Focuses on symbolic data, not sound waves.
The verdict
music21 brings analysis, notation, and composition workflows together in a free Python toolkit, with a substantial corpus and optional integrations. Its focus is symbolic music data, and corpus licensing can vary by work.
Who it suits
music21 suits musicologists, programmers, composers, performers, and music enthusiasts who have some familiarity with Python. It is for work with symbolic musical data rather than direct analysis of sound waves or notation images.
Plans and prices
music21
BSD-licensed toolkit · corpus works may have separate restrictions
Read 8 Oct 2026 · music21.org
On the record
- Analysis
- Its tools include corpus searching, pitch plotting, and advanced analysis functions such as nPVI.music21.org · read 8 Oct 2026
- Audience and requirements
- The documentation says users need some familiarity with Python and identifies musicologists, programmers, composers, performers, and music enthusiasts among potential contributors.music21.org · read 8 Oct 2026
- Corpus
- The toolkit includes a corpus of thousands of encoded musical works.music21.org · read 8 Oct 2026
- 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.music21.org · read 8 Oct 2026
- Deployment
- bothmusic21.org · read 22 Sep 2026
- Formats
- The FAQ says music21 can work with common formats including MIDI and MusicXML, and can be extended to support more.music21.org · read 8 Oct 2026
- Jupyter
- The documentation describes using music21 in the web-based Jupyter Notebook.music21.org · read 8 Oct 2026
- Limits
- music21 primarily manipulates symbolic musical data rather than sound waves, and it cannot read music directly from images or PDFs.music21.org · read 8 Oct 2026
- MIDI support
- Yesmusic21.org · read 22 Sep 2026
- MusicXML support
- Yesmusic21.org · read 22 Sep 2026
- Notation integrations
- The documentation recommends MuseScore for viewing and editing notation and describes support for MusicXML readers including Finale, Sibelius, and Dorico.music21.org · read 8 Oct 2026
- 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.music21.org · read 8 Oct 2026
- Parts extraction
- Yesmusic21.org · read 22 Sep 2026
- Purpose
- music21 is a Python-based toolkit for computer-aided musicology.music21.org · read 8 Oct 2026
- 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.music21.org · read 8 Oct 2026
- Support
- The community mailing list offers help, while paid consulting is available at rates that vary by project.music21.org · read 8 Oct 2026
- Tablature support
- Yesmusic21.org · read 22 Sep 2026
- Uses
- People use it to study music datasets, generate musical examples, teach music theory, edit notation, analyze music, and compose.music21.org · read 8 Oct 2026