Skip to main content

🎼 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)

Source distribution for symphonix 1.0.5
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)

Table of built distributions (wheels) for symphonix 1.0.5
File Interpreter ABI Platform Actions
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 log

Release 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 log

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

Select from 2 files

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 log

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

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