Portal and facade for audio-to-symbol tools (MIDI, chords, pitch from audio)
Project description
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))
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file denote-0.0.2.tar.gz.
File metadata
- Download URL: denote-0.0.2.tar.gz
- Upload date:
- Size: 65.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86dd7bbc6c090e0b0ae30317320cd3b04878829be2a5c35792dd3882f2cd38de
|
|
| MD5 |
bec495879fc795c5f3cb666997c9fe97
|
|
| BLAKE2b-256 |
b816a8d870409b51c0ce97813ac54cee0642b4ffe67ff86b23c30ac6edfec41c
|
File details
Details for the file denote-0.0.2-py3-none-any.whl.
File metadata
- Download URL: denote-0.0.2-py3-none-any.whl
- Upload date:
- Size: 20.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a3d2ad215d245ce3ba9349bdf29783c00394e2337f861a1b222f1ae022c019c
|
|
| MD5 |
b94161bf8704bd53aa1348d5965d7d3d
|
|
| BLAKE2b-256 |
911862020fcee582e3dd2fbf7076376c9fbc8434e40fefb4d64620fc0ef5cbe6
|