denote
Portal and facade for audio-to-symbol tools (MIDI, chords, pitch from audio).
Denote wraps multiple audio analysis backends behind a unified Python interface. Each backend is an optional dependency — install only what you need.
Install
pip install denote # core only (librosa)
pip install denote[basic_pitch] # + MIDI transcription
pip install denote[torchcrepe] # + GPU pitch estimation
pip install denote[all] # everything
Quick Start
import denote
# Audio to MIDI (requires basic-pitch)
result = denote.transcribe("song.wav")
result.midi # pretty_midi.PrettyMIDI object
result.notes # list of NoteEvent(start_time, end_time, pitch, velocity)
# Pitch estimation (requires torchcrepe, or falls back to librosa pYIN)
pitch = denote.get_pitch("vocal.wav")
pitch.times # timestamps in seconds
pitch.frequencies # Hz (NaN for unvoiced)
pitch.confidence # voicing confidence
# Beat tracking (uses librosa, no extra install needed)
beats = denote.get_beats("song.wav")
beats.beats # beat times in seconds
beats.tempo # BPM estimate
Choose Your Backend
# See what's available
denote.list_backends() # all registered backends
denote.list_backends("pitch") # ['librosa_pyin', 'torchcrepe']
# Specify a backend explicitly
pitch = denote.get_pitch("vocal.wav", backend="librosa_pyin")
Service-Level Access
For more control, access backends via the service layer:
# Per-backend service handle
denote.services.basic_pitch.transcribe("song.wav", onset_threshold=0.3)
denote.services.torchcrepe.get_pitch("vocal.wav", model="tiny", device="cuda")
# Native adapter (full backend API)
denote.services.basic_pitch.adapter
Supported Backends
| Backend | Task | License | Install |
|---|---|---|---|
| Basic Pitch (Spotify) | MIDI transcription | Apache 2.0 | pip install denote[basic_pitch] |
| torchcrepe | Pitch estimation | MIT | pip install denote[torchcrepe] |
| librosa pYIN | Pitch estimation | ISC | (included) |
| librosa beats | Beat tracking | ISC | (included) |
More backends coming: pesto-pitch, madmom, autochord, beat-this, demucs.
Plugin System
Register your own backends:
import denote
denote.register_backend(
"my_tool",
config={
"name": "my_tool",
"tasks": ["transcribe"],
"pip_install": "my-tool",
},
adapter=MyAdapter(config),
)
Metadata
Release files for denote 0.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| denote-0.0.5.tar.gz | 74.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| denote-0.0.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 102.3 kB
Release files / denote-0.0.5.tar.gz
| Download URL | denote-0.0.5.tar.gz |
|---|---|
| Size | 74.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4bc65b1db815a790ec22b499908c24670893434119ca51adfb880765681e144a
|
|
BLAKE2b-256 checksum How to use checksums |
446b4967b8b5fac971ef94b970da563d71ddf841259594a9ba250a7925b44e91
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / denote-0.0.5-py3-none-any.whl
| Download URL | denote-0.0.5-py3-none-any.whl |
|---|---|
| Size | 27.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
338c12b833d623dd9df258095c8aca42a4e5e5fa0506ed23b821e612da867b5a
|
|
BLAKE2b-256 checksum How to use checksums |
90c6161f5bfec3e1476414836f8d2105a4086d7bf44468d9e214dbdc21a61e37
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|