🎼 symphonix
Find, play, download and use public-domain classical music — entirely from your terminal. 24 legendary composers. Animated ASCII portraits. A real-time equalizer driven by the actual audio. Works on Linux, macOS, Windows — anything that runs Python.
pip install symphonix
⚡ quickstart
sx # splash screen + menu of ideas
sx search chopin nocturne # colorful results table
sx play mozart requiem # streams instantly + animated equalizer
sx download bach brandenburg # download to a local cache
sx quiz # guess-the-composer game (music plays!)
sx theme vaporwave # repaint the whole app
Prefer not installing yet? python -m symphonix play bach air works too.
🎨 the cool part — command tour
| command | what it does |
|---|---|
sx banner [bach] |
giant animated composer portrait (or a surprise one) |
sx composers --art |
the full gallery — 24 ASCII masterpieces, colored |
sx search <q> -n 10 |
search archive.org + musopen + imslp at once |
sx search <q> --json |
JSON output → use in YOUR python projects |
sx play <q> --shuffle |
queue with real reactive equalizer + note animations |
keys during play |
space pause · n skip · s stop+next · q quit |
sx download <q> --all |
batch download withprogress bars |
sx cache list|clear|path |
manage the offline cache (~/.symphonix/cache) |
sx playlist add lofi <q> sx playlist play lofi |
save/replay lists; .m3u export for VLC |
sx info beethoven |
composer facts pulled from Wikipedia |
sx theme list|set <t>|custom <hex...> |
🎨 full color control, even per-composer |
sx quiz --rounds 5 |
music assassin: recording plays, you name the maestro |
sx doctor |
check audio engine, network, themes |
🌎 what "public domain" is used
Audio comes from three wonderful projects:
- archive.org — 100k+ classical recordings, stable API, direct mp3/ogg/flac
- musopen.org — royalty-free recordings (their license icons still apply per track)
- imslp.org — the Petrucci Library: sheet music + community recordings
Composer facts via Wikipedia. All playback uses miniaudio (a pure pip wheel — no system
libraries needed). If the wheel is missing for your platform, symphonix automatically falls back
to ffplay / mpv / mpg123 if installed.
🔌 use it inside your own python code
from symphonix import search, Track
tracks = search("beethoven symphony 5", limit=3)
best: Track = tracks[0]
print(best.title, "|", best.composer, "|", best.url)
best.cache_path() # stable local path after sx download
Also: symphonix.player.Player (play by track), symphonix.art.COMPOSERS (the portraits),
symphonix.config.THEMES. The CLI is just the tip.
🖥 platforms
| OS | status | notes |
|---|---|---|
| Linux | ✅ | pulseaudio/pipewire/alsa; falls back gracefully |
| macOS | ✅ | coreaudio via miniaudio wheel |
| Windows 10/11 | ✅ | WASAPI; rich does ANSI fine |
Requires just Python 3.9+.
🧪 development
git clone https://github.com/thisisforlearn/classical && cd classical
pip install -e .[dev]
pytest # offline tests
pytest --live # include home-tested network tests
🛟 licensing
symphonix is GPL-3.0-or-later (see LICENSE).
The recordings are public-domain recordings per their source, but every country's
implementation differs (especially on performance rights). Each track row shows the source;
--json includes the license URL when the upstream provides one. Do the polite thing and
respect whatever the source icon says.
🔴 the fun part
cd classical && sx quiz — the library plays a real recording, hides the composer, and
you guess. Highest score is saved on your machine forever. Beat it.
Metadata
Release files for symphonix 1.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 | Provenance | Actions |
|---|---|---|---|---|
| symphonix-1.0.5.tar.gz | 61.7 kB | With provenance | Details for symphonix-1.0.5.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| symphonix-1.0.5-py3-none-any.whl | Python 3 | none | any | Details for symphonix-1.0.5-py3-none-any.whl |
Total release size: 126.0 kB
Release files / symphonix-1.0.5.tar.gz
| Download URL | symphonix-1.0.5.tar.gz |
|---|---|
| Size | 61.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f172125b9190f9c3aa78803f6c2f7eaa156e433381e989582c0cd57eb0ef7036
|
|
BLAKE2b-256 checksum How to use checksums |
52afbbac86be3303a0e717ba74ef14e8b1d33356fa60e82086f809873efcbf21
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.
Transparency logRelease files / symphonix-1.0.5-py3-none-any.whl
| Download URL | symphonix-1.0.5-py3-none-any.whl |
|---|---|
| Size | 64.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
939d947f912b4a3aaa2b941b443a3c25570d234378abde8ce5c657bcc8b3324e
|
|
BLAKE2b-256 checksum How to use checksums |
1b272ed283004bfdd43e3b6297bde6065a4f9a68fe2fc9032547f542037c13d5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.
Transparency logSecurity for symphonix 1.0.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for symphonix-1.0.5.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.