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.4

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.4
File Size Uploaded
denote-0.0.4.tar.gz 70.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for denote 0.0.4
File Interpreter ABI Platform
denote-0.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 94.5 kB

Release files / denote-0.0.4.tar.gz

Download URL denote-0.0.4.tar.gz
Size 70.4 kB
Tags Source
SHA-256 checksum
How to use checksums
44ad712c06b1dda6186467814e728487e7de849c8d4910f5a82a7c3b433cd15c
BLAKE2b-256 checksum
How to use checksums
c2a9c6a544d43865d94ad3d2364c6e2151904b66ac494184b5dcedb79f111884
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","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.4-py3-none-any.whl

Download URL denote-0.0.4-py3-none-any.whl
Size 24.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e1d424ad814347d35069566a606c4a2a8765cf394fb2900c96e76af1aa786d29
BLAKE2b-256 checksum
How to use checksums
9bc4d6c3abe18d1edaa31bbd83d8720b2beeb0d218ee96484d547c3eb78e8b4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","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

0.0.5

2 release files

This release

0.0.4 This release

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