Freedom251 › Music Theory Software
music21

What music21 is
music21 is a free, BSD-licensed Python toolkit for computer-aided musicology. It helps users study music datasets, generate musical examples, teach music theory, edit notation, analyze music, and compose. Its corpus contains thousands of encoded musical works, and its analysis tools include corpus searches, pitch plotting, and advanced functions such as nPVI. It works with common music formats including MIDI and MusicXML, with room to extend support to other formats.
For notation workflows, the documentation recommends MuseScore for viewing and editing scores and describes support for MusicXML readers such as Finale, Sibelius, and Dorico. Optional integrations include LilyPond, Matplotlib, SciPy, PyAudio, and Pygame for activities such as score rendering, plotting, audio searching, recording, and realtime MIDI. The toolkit can also be used in the web-based Jupyter Notebook. Users need some familiarity with Python; potential users and contributors include musicologists, programmers, composers, performers, and music enthusiasts. music21 primarily works with symbolic musical data rather than sound waves, and it cannot read music directly from images or PDFs. While the toolkit itself is BSD-licensed, some corpus encodings may have commercial-use or other restrictions, so users should check the terms for individual works or directories. Community help is available through a mailing list, and paid consulting rates vary by project.
Who it suits
music21 suits people with some Python familiarity who work with symbolic music, including musicologists, programmers, composers, performers, and music enthusiasts. It is useful for analysis, teaching, composition, notation workflows, and work with encoded music collections.
What it does well
- Free BSD-licensed toolkit.
- Includes a corpus of thousands of encoded musical works.
- Supports MIDI and MusicXML.
- Provides corpus search, pitch plotting, and nPVI analysis.
- Can be used in web-based Jupyter Notebook.
- Optional integrations cover score rendering, plotting, recording, and realtime MIDI.
What to know first
- Requires some familiarity with Python.
- Primarily handles symbolic music data rather than sound waves.
- Cannot read notation directly from images or PDFs.
- Some corpus works may have separate commercial-use or other restrictions.
Limits
The toolkit focuses on symbolic musical data rather than sound waves and cannot read notation from images or PDFs. Individual corpus works may carry commercial-use or other restrictions.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| music21 | BSD-licensed toolkit · corpus works may have separate restrictions | Free |
As music21.org lists them, read 8 Oct 2026. The maker's own page has the final word.
Getting started
- Visit the music21 website.
- Install or use the Python toolkit in a supported environment.
- Use MIDI or MusicXML files, or explore the included corpus.
- Use it in web-based Jupyter Notebook if that suits your workflow.
- Check the license terms for individual corpus works or directories you plan to use.
music21 is a Python toolkit for studying, teaching, analyzing, and composing with symbolic music. It suits people comfortable working in Python who want to ask questions of encoded scores or build music into code; its analytical range comes with a clear boundary around audio and scanned notation.
Overview
At its best, music21 connects a large body of encoded music with tools for searching and analysis. Musicologists can explore patterns across works, while teachers and composers can generate examples or manipulate notation programmatically. It is a flexible toolkit rather than a finished score editor, so users should expect to work through code and other music software as needed.
The toolkit is BSD-licensed and free. Its corpus has its own terms: some works or directories restrict commercial use or carry other conditions. Check the license for the material you plan to use, especially when building a commercial project.
Key features
Corpus research and analysis
Corpus search, pitch plotting, and advanced functions such as nPVI give users several ways to examine encoded works. The included corpus of thousands of pieces makes it practical to investigate music beyond a single score, and to turn findings into teaching examples or compositional material. These tools depend on symbolic data, so they do not analyze sound waves from recordings.
Formats and notation workflows
music21 works with MIDI and MusicXML, supports part extraction and tablature, and can be extended to other formats. For reading or editing scores, its documentation points users to MuseScore and describes support for MusicXML readers such as Finale, Sibelius, and Dorico. That is a useful bridge to established notation applications, though it means score editing is not the toolkit’s central strength.
Optional integrations
Optional connections to LilyPond, Matplotlib, SciPy, PyAudio, and Pygame support tasks including score rendering, plotting, audio searching, recording, and realtime MIDI. Jupyter Notebook can also be used for web-based work. This breadth gives technically minded users room to assemble a workflow around a particular project, but makes Python familiarity a real prerequisite rather than a bonus.
Pricing
music21: free. The BSD-licensed toolkit has no paid tier to unlock its core use. Community mailing-list help is available, and paid consulting is offered at project-dependent rates. Corpus works may have separate restrictions, so free software does not make every included score available for every use.
Platforms
music21 supports Linux, macOS, Windows, and web use, including through Jupyter Notebook. It is available for both self-managed and hosted deployment. The configuration assistant asks whether the toolkit may access the Internet, but Internet access is not required.
Who it's for
Musicologists, programmers, composers, performers, teachers, and music enthusiasts can all find uses for music21, provided they have some familiarity with Python. It is especially well suited to research and instruction involving encoded scores, and to composition workflows that benefit from programmatic analysis or example generation. Choose a notation application for direct score editing, and an audio or optical music recognition tool if your starting point is a recording, image, or PDF.
Pros and cons
- Pros: A free, BSD-licensed toolkit combines a corpus of thousands of works with search and analysis functions, supporting research and teaching without a software fee.
- Pros: MIDI and MusicXML support, part extraction, tablature, and optional integrations give Python users several ways to connect analysis with notation and other workflows.
- Cons: Some Python familiarity is needed, which makes it a poor fit for someone seeking a ready-to-use graphical music application.
- Cons: It works primarily with symbolic musical data; it cannot read notation directly from images or PDFs or work directly from audio waveforms.
- Cons: Corpus licenses vary, so users must check individual works before commercial use or other restricted applications.
Alternatives
For broader options, browse Music Theory Software or Music notation software.
For structured practice rather than Python-based score analysis, Harmonia offers a free independent-practice plan and a Classroom Connect option priced at 20.95 for up to four weeks; its free plan omits advanced analyzing and feedback features. note-noodle may suit ear-training practice: its free tier allows 10 sessions a day and three personal Play Along uploads per month, with the first four lessons available without an account.
ChordIQ is another freemium option for readers comparing music-learning apps. Music Master offers free website lessons and practice questions without an account, while Musicca makes all content free and lets a free account unlock it and remove ads. For exercise-based study, MyMusicTheory has more than 100 free exercises, and Study Music Theory offers a full course and eight trainers without ads or paywalls. Teoria provides free website content with optional sign-in.
Verdict
Choose music21 if you know some Python and want a free, capable toolkit for exploring, teaching, or creating with encoded music. Its corpus and analysis tools are the strongest reasons to use it. Look elsewhere when the job starts with recorded audio or scanned notation, or when you need a dedicated graphical score editor.
Verdict
Choose music21 if you want a free Python toolkit for analyzing, teaching, editing, or composing with symbolic music data. Its corpus and optional integrations support a range of musicology and notation tasks. Look elsewhere if you need to work directly from audio waveforms or read notation from images or PDFs.
Questions
How much does music21 cost?
The music21 toolkit is free and is BSD-licensed.
Which music formats does it support?
It works with common formats including MIDI and MusicXML, and can be extended to support more.
Can it read notation from a scan or PDF?
No. music21 cannot read music directly from images or PDFs.
Does the corpus have any licensing restrictions?
Some corpus encodings may not be used commercially or may have other restrictions. Check the license terms for individual works or directories.
What software works with music21?
The 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.
Where can users get help?
The community mailing list offers help. Paid consulting is available at rates that vary by project.
Facts from music21's own pages
- Analysis
- Its tools include corpus searching, pitch plotting, and advanced analysis functions such as nPVI. · music21.org, 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, 8 Oct 2026
- Corpus
- The toolkit includes a corpus of thousands of encoded musical works. · music21.org, 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, 8 Oct 2026
- Deployment
- both · music21.org, 22 Sept 2026
- Formats
- The FAQ says music21 can work with common formats including MIDI and MusicXML, and can be extended to support more. · music21.org, 8 Oct 2026
- Free plan
- Yes · music21.org, 22 Sept 2026
- Jupyter
- The documentation describes using music21 in the web-based Jupyter Notebook. · music21.org, 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, 8 Oct 2026
- MIDI support
- Yes · music21.org, 22 Sept 2026
- MusicXML support
- Yes · music21.org, 22 Sept 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, 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, 8 Oct 2026
- Parts extraction
- Yes · music21.org, 22 Sept 2026
- Purpose
- music21 is a Python-based toolkit for computer-aided musicology. · music21.org, 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, 8 Oct 2026
- Support
- The community mailing list offers help, while paid consulting is available at rates that vary by project. · music21.org, 8 Oct 2026
- Tablature support
- Yes · music21.org, 22 Sept 2026
- Uses
- People use it to study music datasets, generate musical examples, teach music theory, edit notation, analyze music, and compose. · music21.org, 8 Oct 2026
Where music21 stands on Freedom251
- Music Theory Software#4 of 27
- Music notation software#14 of 38