scoreseek
Find a musical score by metadata — across many sources, behind one call.
import scoreseek
hits = scoreseek.search("Cooley's") # out of the box: The Session (CC-BY-SA)
ref = hits[0]
path = ref.fetch() # -> a local .abc file
# hand straight to audiate.render(path) to hear it
Every hit is a license-tagged ScoreRef, so public-domain / permissive
results stay cleanly separated from copyrighted / gray ones — searches are
copyright-safe by default.
Install
pip install scoreseek # zero required dependencies
pip install "scoreseek[render]" # + audiate, to render hits to audio
Why
Scores live in many places — public-domain corpora (PDMX, IMSLP, OpenScore),
downloadable datasets, chord/lyric collections, and your own folders. scoreseek
puts them behind one pluggable-source interface and tags every result with a
license, so you can ask for "only what I can legally build on" or opt into
copyrighted material explicitly.
Sources
A source answers search(query) -> [ScoreRef] and optionally fetch(ref) -> path.
Register any object with that shape.
| Source | What | License | Status |
|---|---|---|---|
thesession |
thesession.org traditional tunes (ABC) | CC-BY-SA 4.0 | built in, on by default |
LocalFolderSource |
a folder of .mid/MusicXML/ABC/kern files |
you set it | built in |
| PDMX · OpenScore Lieder · IMSLP · MusicBrainz (normalizer) | public-domain / CC0 corpora + APIs | PD/CC0 | planned |
from scoreseek import register_source, License
from scoreseek.sources import LocalFolderSource
register_source(LocalFolderSource("~/scores", license=License.PUBLIC_DOMAIN))
hits = scoreseek.search("prelude", sources=["local"])
hits = scoreseek.search("hey jude", allow_copyrighted=True) # opt into gray/copyrighted
Write your own source
from scoreseek.sources import Source
from scoreseek.base import License
class MySource(Source):
name = "mine"
license = License.CC0
def search(self, query="", *, title="", composer="", limit=10):
return [self._ref(title="...", id="...", formats=("musicxml",))]
def fetch(self, ref, *, fmt=None):
...
return "/path/to/score.musicxml"
License tags
License classifies each hit: PUBLIC_DOMAIN, CC0, PERMISSIVE (CC-BY/-SA,
MIT, …), NONCOMMERCIAL (CC-BY-NC), COPYRIGHTED, GRAY (scrapes/unspecified),
UNKNOWN. search(..., allow_copyrighted=False) (the default) drops
COPYRIGHTED and GRAY hits.
Where it fits
scoreseek is the search stage of a larger pipeline:
scoreseek (find a score) → audiate
(render to audio) → arioso
(AI-enhance).
License
MIT
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 scoreseek-0.0.2.tar.gz.
File metadata
- Download URL: scoreseek-0.0.2.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","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 |
ca2314c99511e3c0129e52bd202a2ebb31fe2bc40aae22b09d0b998890df4acd
|
|
| MD5 |
04c1d121a57d96b3355f852d6bc73603
|
|
| BLAKE2b-256 |
3bf95dc17fcf5ff92361a0e07664e5c46f422dab404a7f1b92c07345c9b53da8
|
File details
Details for the file scoreseek-0.0.2-py3-none-any.whl.
File metadata
- Download URL: scoreseek-0.0.2-py3-none-any.whl
- Upload date:
- Size: 12.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","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 |
602862d19e69af65741ae0c1923156541cba3e1ba177db5f9c591ba62891d58b
|
|
| MD5 |
63e0beb2e2e10242fcd8a6864a4677f4
|
|
| BLAKE2b-256 |
63641713cd355f7bc6af3e7e0c85e3c0d47cd9156ae13617b0b873e225043a72
|