A fast, lightweight CLI music player built with miniaudio and Textual
Project description
Veridis: High-Performance CLI Audio Engine
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
- Core: Python 3.13+
- Audio Engine: Miniaudio
- UI Framework: Textual
- Build System: Poetry
- Testing: Pytest & Unittest.mock
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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b987f57be7a79025baa8ab4cebb6f026bc62d64b99225e61ab8c449210e31b6d
|
|
| MD5 |
7be931f649af64ccf092cab529aa0ebe
|
|
| BLAKE2b-256 |
eaba0e034b3b6772421dc994cf3bad64b77a982430c9521ec2abd4708eb6437b
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6032f984e0ef5ff3a7110e53164d460410b9e9cff54726ae9bf9443316e2f7b3
|
|
| MD5 |
bfef60191ef100d5b5d48d8073a04993
|
|
| BLAKE2b-256 |
83718fc21f69ea23fce7633be95b0dfe5ef761b461e2a48f1ea03bfad63d3496
|