
Voice & audio
basic-pitch
Turns a recording of an instrument into a MIDI transcription
★ 5.4k
November 2025
Apache-2.0
Voice & audio
What it does
Feed it audio and it estimates the notes being played and writes a MIDI file, pitch bends included. It handles polyphonic material and is instrument-agnostic, though it works best on one instrument at a time. Released by Spotify's Audio Intelligence Lab, the model is deliberately lightweight and runs on ordinary hardware. It is a library rather than an app - installed via pip (or npm for the JavaScript port). Apache-2.0.
Summary based on the project's own description. The Japanese page has a fuller beginner guide: setup difficulty, what to prepare, and a step-by-step start.
Screenshots & visuals

Before you start
- Setup difficultyEasy to start
- Command lineRequired
- API keyNot required
- Sends data onlineNo
Judged automatically from the project's own metadata. Always confirm on the official page.
basic-pitch FAQ
- Is basic-pitch free?
- Yes. It runs on your own machine, so there is no usage-based cost either.
- Do I need to install anything or write code to use basic-pitch?
- It needs the command line. If you are not comfortable typing commands, expect to get stuck during setup.
- Does basic-pitch work on a phone?
- No. It needs a computer.
- Can I use basic-pitch commercially?
- The licence is Apache-2.0, which permits commercial use. Conditions such as keeping the copyright notice still apply, so read the licence text before shipping it inside something.
How it compares
The conditions that decide whether you can actually use it, side by side.
| Tool | Command line | API key | Sends data out | Phone | Commercial use |
|---|---|---|---|---|---|
| basic-pitch (this page) | Required | Not needed | No | No | Yes |
| midi-composer | Not needed | Not needed | Yes | Yes | Not verified |
| ultimate-rvc | Not needed | Not needed | Yes | Yes | Not verified |
| multitrack-midi-music-generator | Not needed | Not needed | Yes | Yes | Not verified |
"Sends data out" means your input is uploaded to someone's server. Pick "No" when the material cannot leave your organisation.