Skip to main content

A fast, lightweight CLI music player built with miniaudio and Textual

Project description

Veridis: High-Performance CLI Audio Engine

PyPI version Python 3.13+

Veridis is a fast, lightweight Terminal User Interface (TUI) music player designed for low-latency audio playback and flexible resource management.

Technical Architecture

Veridis has a separate, multi-threaded structure. This design keeps the user interface responsive while delivering high-quality audio output:

  • Concurrency Model: It uses a dual-thread architecture. A background daemon thread manages the C-bound Miniaudio backend. The main event loop handles the reactive TUI. This setup prevents UI jerkiness during hardware-intensive playback.
  • Memory Optimization: Uses Python generators to index libraries, which keeps memory use at O(1) while traversing the filesystem. This makes sure that boot times are almost instant, even with libraries that have more than 10,000 files.
  • Reactive Design System: Made with the Textual framework and a custom CSS-in-TUI design system. It uses dynamic layout reflows to change the way it looks based on the size of the terminal without messing up the visual hierarchy.

Tech Stack

Installation & Setup

Veridis is packaged as a standard Python module.

1.System Dependencies

Depending on your OS, you may need the following audio developement headers:

Linux(Debian/Ubuntu/EndeavourOS)

# Debian/Ubuntu
sudo apt-get install python3-dev libasound2-dev build-essential

#Arch/EndeavourOS
sudo pacman -S alsa-lib base-devel

MacOS(untested)

brew install pkg-config

Windows(untested)

# Install via Chocolatey
# Requires C++ build tools for miniaudio compilation
choco install visualcpp-build-tools

2. Option A: Quick install (via PyPI)

pip install veridis

3. Option B: Build and Install

Ensure you have Poetry installed.

# Clone the repository
git clone [https://github.com/Vaibhavtripathi7/veridis](https://github.com/Vaibhavtripathi7/veridis)
cd py-cli-music-player

# Install dependencies using poetry
poetry install

4. Execution

poetry run veridis

Control Interface

Key Function
Space Play/Pause
N Increment to Next Track
Enter Select Directory/Initialize Playback
D Toggle Dark/Light mode
Q Shutdown

Verification(Unit testing)

We use Mocking to simulate the audio engine, allowing tests to run in headless CI environments.

poetry run pytest -v

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

veridis-0.1.1.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

veridis-0.1.1-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file veridis-0.1.1.tar.gz.

File metadata

  • Download URL: veridis-0.1.1.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.1 CPython/3.13.11 Linux/6.12.63-1-lts

File hashes

Hashes for veridis-0.1.1.tar.gz
Algorithm Hash digest
SHA256 b987f57be7a79025baa8ab4cebb6f026bc62d64b99225e61ab8c449210e31b6d
MD5 7be931f649af64ccf092cab529aa0ebe
BLAKE2b-256 eaba0e034b3b6772421dc994cf3bad64b77a982430c9521ec2abd4708eb6437b

See more details on using hashes here.

File details

Details for the file veridis-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: veridis-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.1 CPython/3.13.11 Linux/6.12.63-1-lts

File hashes

Hashes for veridis-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6032f984e0ef5ff3a7110e53164d460410b9e9cff54726ae9bf9443316e2f7b3
MD5 bfef60191ef100d5b5d48d8073a04993
BLAKE2b-256 83718fc21f69ea23fce7633be95b0dfe5ef761b461e2a48f1ea03bfad63d3496

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page