Music

Kronos Is A Terminal Music Player Written in Rust

We often review software that’s in an alpha stage of development. Some projects fizzle out without ever reaching a mature release. Others grow into mighty oaks. That’s the nature of open source.

I’ve reviewed a smorgasbord array of music players for Linux. So many, in fact, that I’ve honestly lost count of the number. Yet visitors to LinuxLinks are keen to share their finds with me. I love that. This music player, however, I stumbled upon myself by sheer accident. I was looking for Rust based tools to try to expand the alternatives to popular CLI tools series. I’ve no idea how I ended up at Kronos’s GitHub repository. Them are the breaks.

Kronos is a terminal-based music player that’s designed for playing locally stored audio files. This is not an internet streaming player. It’s written in Rust and published under an open source license.

There’s a package in the Arch User Repository called satori-kronos-git which can installed in a variety of ways including the yay or paru AUR helpers. If you’re not running Arch or an Arch-based distro, you can either download the developer’s binary release, or build the software from source using cargo, Rust’s package manager.

In Operation

Here’s an image of Kronos at startup after navigating to a music folder. This is a file-system based browser player, so it’ll be of interest to music lovers who have their collection organised by folders with inconsistent music tags.

Kronos

The software supports FLAC, my preferred lossless audio format, and there’s also support for OGG, MP3, MP4, WAV, AAC, M4A, and WAV files. It’s far from comprehensive in that regard but more than sufficient for most people.

If you play a track from the browser, Kronos just stops playing after that track, and doesn’t carry on playing the other tracks in the folder. There’s definitely room for improvement here.

To listen to more than one song, you have to add the tracks to the queue with the A key. Every track has to be manually added though. As there’s currently no way of playing all the tracks in a folder with a single key, every song has to be added to the queue, which is a royal pain where an album has lots of songs. The developer has said he’s willing to rectify matters.

Kronos

Unfortunately, there’s an elephant in the room. Kronos doesn’t support gapless playback. I raised an issue on the project’s GitHub repository about this omission, together with a couple of other issues. The developer has not stated if he plans to add this functionality.

Gapless playback is the uninterrupted playback of consecutive audio tracks, such that relative time distances in the original audio source are preserved over track boundaries on playback. It’s essential if you listen to classical, electronic music, concept albums, and progressive rock.

If you want to customize the player, create a file ~/.config/kronos/config.toml where you can specify the theme and layout. By default I find the progress bar too deep, so I reduce the progress_bar from 20 to 10. Alternatively, you can remove the progress bar entirely by setting progress_bar to 0.

Kronos

Here are the keyboard shortcuts.

Kronos

Summary

Kronos is very much a bare-bones music player. It’s actually refreshing to see a music player without all the usual bells and whistles. If you’re hoping for cover art, playlists, tag editor, a graphic equalizer etc you’ll want to look elsewhere, as Kronos is bereft of any frippery whatsoever. If you actually want to just enjoy listening to your music, it might be right up your street.

Sadly without gapless playback support, I’m unable to recommend Kronos. That’s a shame particularly given that ps_mem reports memory usage to be around 8.5MB. That’s the most frugal music player I’ve ever reviewed.

If gapless playback is added, I’ll definitely reevaluate the software.

Website: github.com/TrevorSatori/kronos
Support:
Developer: Trevor Satori
License: GNU General Public License v3.0

Kronos is written in Rust. Learn Rust with our recommended free books and free tutorials

Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Please read our Comment FAQ before posting a comment.

3 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Josh
Josh
1 year ago

I love that Kronos doesn’t even have things like shuffle play.

Kronos seems almost ideal for my needs, but like you Luke, I gotta have gapless playback.

Mahdi
Mahdi
1 year ago
Reply to  Josh

Shuffle: Jumping from a dance song to the most heart-breaking song in 1 second 😀