Skip to main content

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)

Source distribution for denote 0.0.5
File Size Uploaded
denote-0.0.5.tar.gz 74.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for denote 0.0.5
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

0.0.5 This release

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page