Music

SparkPlayer – visually appealing media player

SparkPlayer is a terminal-based media player for local music and video collections. It combines filesystem browsing, playlist management, album artwork, video playback and colourful audio visualisers in a keyboard-driven interface.

This is free and open source software.

Installation

SparkPlayer is straightforward to build. First, clone the project’s GitHub repository.

$ git clone https://github.com/dividebysandwich/sparkplayer.git

Clone the project's GitHub repository

Change into the newly created directory.

$ cd sparkplayer

Build the source code.

$ cargo build --release

Build SparkPlayer from source

In Operation

SparkPlayer in action

I constrained the terminal size so that the screenshot fits well on LinuxLinks, but this omits some of the buttons and keyboard shortcuts. For most of my testing, I switched to Kitty, as Hyper struggled with the application. The following screenshot shows album artwork and a different visualiser.

SparkPlayer with album artwork
Click image for full size

The player supports common audio, video and playlist formats. Terminals implementing the Kitty, Sixel or iTerm2 graphics protocols can display artwork and video as images, while other terminals use a 24-bit colour half-block fallback.

The code waits until the current player reports that it is empty and then calls next_track(). Loading the next track stops the existing player, creates a new one, opens and decodes the next file, and then starts playback. This process introduces a short gap between tracks. If gapless playback is important to you, you will probably want to choose a different media player. Gapless playback would be a welcome addition.

Key Features

  • Plays MP3, WAV, Ogg Vorbis, FLAC, M4A, AAC, Opus and WMA audio files.
  • Supports MP4, MKV, AVI, MOV, WebM and M4V video files.
  • Loads M3U, M3U8 and PLS playlists.
  • Provides integrated filesystem browsing and playlist management.
  • Displays artwork embedded in audio tags or stored as image files alongside the music.
  • Offers video playback with seeking, pausing and full-screen viewing.
  • Supports multiple audio and subtitle tracks in video files.
  • Provides adjustable audio and video synchronisation.
  • Includes 13 audio visualisers, including spectrum, waveform, spectrogram, VU meter, plasma and cassette displays. SparkPlayer has no “Off” visualiser mode; pressing v only cycles through the 13 visualiser types.
  • Includes 41 colour themes: Default Neon, Matrix, Amber CRT, Deep Ocean, Monochrome, Apprentice, Ayu Dark, Catppuccin Mocha, Cobalt2, Deus, Dracula, Everforest Dark, GitHub Dark, Gotham, Gruvbox Dark, Iceberg Dark, Jellybeans, Kanagawa Wave, Lucario, Miasma, Moonfly, Night Owl, Nightfly, Nightfox, Noctis, Nord, Nordic, One Dark, One Half Dark, Panda, Posterpole, Rosé Pine, Seoul256 Dark, Shades of Purple, Solarized Dark, Sonokai, Srcery, Tender, Tokyo Night, Tomorrow Night and Zenbones Zenwritten Dark.
  • Filters long file and playlist listings using text searches.
  • Restores the previous directory, playlist, track position and playback modes between sessions.
  • Supports repeat, shuffle, volume control and keyboard-driven navigation.
  • Renders images using the Kitty, Sixel and iTerm2 graphics protocols.
  • Falls back to 24-bit colour half-block graphics on other terminals.
  • Offers a browser-based WebAssembly version.

Summary

SparkPlayer is a polished terminal media player, particularly for people who value presentation and visual effects.

Its strengths include unusually broad format support, integrated file browsing, playlist handling, album artwork, video playback, subtitles, multiple audio tracks, session restoration, extensive keyboard control, numerous visualisers and a large selection of themes. This is a strong feature set for a relatively lightweight terminal application. Mouse support is also good.

However, I would not call it a great music player yet. The lack of gapless playback is a significant weakness for albums whose tracks flow into one another. The inability to disable the visualiser also makes the interface less flexible than it should be. Its playlist-first, folder-based design is useful, but it lacks the deeper library management and audio-focused options found in more mature players.

Video playback is an interesting addition, but its current implementation is far from ideal. Playback using Kitty’s native image protocol is not smooth, leaving the feature with more novelty value than practical usefulness.

ps_mem reports memory usage of around 29 MB. That’s frugal!

Website: github.com/dividebysandwich/sparkplayer
Support:
Developer: dividebysandwich
License: GNU General Public License v2.0

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


Related Software

Terminal-Based Music Players
musikcubeSublime audio engine, library, player and server written in C++
tapThe lightest music player with gapless playback
TizoniaPowerful cloud music player based on OpenMAX IL 1.2 written in C and C++
cmusGreat set of features including the essential gapless playback
termusicMusic Player TUI written in Rust
kewMusic player written in C
spectrumSimple and intuitive music player for tech enthusiasts
ncmpcFrugal Music Player Daemon client
ncmpyMusic Player Daemon client
MOCDesigned to be powerful and easy to use
RMuPSimple music player lacking gapless playback
SirenExtremely frugal with system resources
grumpCLI audio player written in Go
GomuAnother Go music player
mpvcmpc-like control interface for mpv
RustPlayerAudio and radio player written in Rust

Read our verdict in the software roundup.


Best Free and Open Source Software Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.

This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk.

You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more.

Discovered a useful open source Linux program that we haven’t covered yet? Let us know by completing this form.
Subscribe

Please read our Comment Policy before commenting.

Notify of
guest
0 Comments
Oldest
Newest Most Voted