Music text banner

Cue Is A Command Line Music Player With Gapless Playback

In Operation

In my Music directory there are a small collection of albums published under a Creative Commons license. I use this collection for like-for-like memory comparisons between music players as some players load all the album art into memory.

To listen to the Junpei album by Candlegravity, I can simply type at the command line:

$ cue junpei

This is what we see in the terminal. There’s the album art, together with details of the song, artist, album, as well as track position and length.

Cue playing an album

Hyper, my preferred terminal emulator, doesn’t display the album art well. Instead, the screenshots are using the Konsole terminal emulator. But other terminal emulators such as Kitty and Alacritty display the album art equally well as Konsole. There’s the option to display album covers as ASCII art if that floats your boat.

As you can see, the F1 keyboard shortcut displays the playlist. The cue junpei command automatically populated the playlist with the tracks in the Junpei album.

Cue playlist

You don’t have to listen to music with $ cue album-name

For example, issuing $ cue with no arguments plays all songs in your library in shuffle mode. But equally you could specify an artist e.g. $ cue madonna or $ cue dir madonna to listen to all music files under the “madonna” directory.

The project’s GitHub page offers other examples of commands to listen to selected parts of your music collection.

Here are the keyboard shortcuts (accessed by F2 shortcut).

Cue keyboard shortcuts

One of the keyboard shortcuts (V) toggles the spectrum visualizer which is shown below.

Cue in action with its spectrum visualizer

I’m not interested in graphics frippery such as a spectrum visualizer. Essential functionality for me include things like gapless playback, 24-bit audio support, and playlists.

The term gapless playback sometimes causes confusion. Gapless playback means tracks flow into the next song without pause. This allows seamless transitions from track to track. This is so important for albums that were designed to have the tracks run together. It’s not just classical music that so often mandates gapless playback. Listening to electronic music, concept albums, and progressive rock is often ruined when artificial gaps are inserted between tracks.

The great news is that Cue supports gapless playback, 24-bit audio, and playlists. There’s also support for MPRIS.

Summary

I really love Cue in many respects. It ticks most of my boxes. It’s quick to start listening to an album, amazingly frugal with resources, supports gapless playback and, depending on how your music is organized, it’s extremely efficient at playing what you want with the absolute minimum fuss and bother.

However, there are downsides to its approach. With a large music collection, sometimes it’s hard for the playlist to be populated with the album I actually want to listen to.

I’d love to see more flexibility such as the ability to browse my music collection by folders, as you see in a file manager. The software would also benefit from being able to scroll through the songs in the playlist, as well as fast forward/backward by X seconds in a track.

The other main issue is that Cue needs work in improving its stability. It’s too easy for Cue to bomb out with the message “Aborted (core dumped)”. I’ve experienced this issue regularly with specific albums encoded with FLAC, and occasionally even just pressing a key shortcut.

The wonderful ps_mem utility reports that Cue uses around 18MB of RAM. That makes it one of the lightest music players available.

Cue is definitely a project I’m going to monitor. I’ve given it a star on GitHub. It’s not up there with the likes of musikcube or termusic but with a bit more spit and polish it will be!

Website: github.com/ravachol/kew
Support:
Developer: Ravachol
License: GNU General Public License v2.0

Cue is written in C. Learn C with our recommended free books and free tutorials.

Pages in this article:
Page 1 – Introduction and Installation
Page 2 – In Operation and Summary

Subscribe
Notify of
guest

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

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments