A picky, unstable, yet simple music player.
OTO is designed for audiophiles who prefer direct hardware access (ALSA) for bit-perfect playback. This means:
- Exclusive Access: It requires exclusive control of the audio device. Other applications may not be able to play sound while OTO is running.
- Minimalist: It focuses on high-quality playback and does not include "fancy" features like visualizers, streaming integration, or complex library management.
If you need a more general-purpose MPD client or a feature-rich player, consider using rmpc.
- High-Resolution Audio: Native DSD (DSF) playback and Hi-Res PCM support
- Multiple Formats: FLAC, MP3, WAV, OGG, AAC, DSD/DSF
- ALSA Backend: Direct hardware access for optimal audio quality
- TUI Interface: Simple terminal UI built with ratatui
- MPRIS Support: D-Bus integration for media controls
- Fuzzy Search: Quick track search with Japanese romaji support
- Album Art: Display cover art in supported terminals
# Standard installation
cargo install --git https://github.com/ckaznable/oto
# Install without Japanese dictionary support (no romaji search)
cargo install --git https://github.com/ckaznable/oto --no-default-features- Rust 1.92.0+ (nightly recommended for
let_chainsfeature) - ALSA development libraries (
libasound2-devon Debian/Ubuntu) - D-Bus development libraries (
libdbus-1-devon Debian/Ubuntu) - Chafa (
libchafa-devorchafapackage) for image rendering
# Debian/Ubuntu
sudo apt install libasound2-dev libdbus-1-dev libchafa-dev
# Arch Linux
sudo pacman -S alsa-lib dbus chafa
# Fedora
sudo dnf install alsa-lib-devel dbus-devel chafa-devel# Play music from a directory
oto tui --path /path/to/music
# Use default device
oto tui --path ~/Music
# Specify audio device
oto tui --path ~/Music --device hw:1,0# Play without UI
oto play --path /path/to/music# Download and build dictionary for Japanese track search
oto initOTO automatically detects USB DACs and prioritizes them. To list available devices:
aplay -lUse the --device flag to specify a device:
oto tui --path ~/Music --device hw:2,0| Feature | Description |
|---|---|
dict-jp |
Japanese dictionary for romaji search (default) |
dict-jp-embed |
Embed dictionary into binary. No download needed, but increases binary size by ~15MB. |
# Build without Japanese support
cargo build --release --no-default-features
# Build with embedded dictionary
cargo build --release --features dict-jp-embed- Amberol - A small and simple music player for GNOME
- rmpc - A beautiful MPD client for the terminal
- inori - A beautiful MPD client for the terminal and support fuzzy search
MIT License - see LICENSE for details.