explaingit

eresende/eurhythm

Analysis updated 2026-06-24

0RustAudience · developerComplexity · 2/5LicenseSetup · easy

TLDR

A Rust terminal music player with a real time FFT spectrum visualizer, 24-bit gradient themes, ID3 metadata, shuffle and repeat, and keyboard playlist controls.

Mindmap

mindmap
  root((eurhythm))
    Inputs
      Music directory path
      Audio files
      Keyboard commands
    Outputs
      Audio playback
      Spectrum visualizer
      Progress bar
      Playlist view
    Use Cases
      Play music from the terminal
      Watch live FFT bars
      Filter and shuffle playlists
      Theme a coding setup
    Tech Stack
      Rust
      Cargo
      rodio
      rustfft
      crossterm
      lofty
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Play a local music library from the terminal without any GUI

USE CASE 2

Watch a live FFT spectrum visualizer while coding in the same window

USE CASE 3

Cycle four gradient themes to match a true-color terminal setup

USE CASE 4

Filter and shuffle a playlist using only the keyboard

What is it built with?

RustCargorodiorustfftcrosstermlofty

How does it compare?

eresende/eurhythmbakome-hub/bakome-crypto-quant-enginedarthchudi/lob
Stars000
LanguageRustRustRust
Setup difficultyeasyeasyeasy
Complexity2/53/53/5
Audiencedeveloperdeveloperresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Needs Rust edition 2024 or newer and a true-color capable terminal for the gradients to render correctly.

MIT means anyone can use, copy, modify, and redistribute the code commercially as long as the original copyright notice is included.

In plain English

Eurhythm is a music player that runs in your terminal. The acronym TUI in the README means Terminal User Interface, so instead of opening a graphical window, eurhythm draws its progress bar, playlist, and audio spectrum visualizer using colored text characters in a terminal window. It is written in Rust and uses 24-bit true-color gradients, which is the modern color mode supported by most terminal emulators. The visualizer reacts in real time to the music using a Fast Fourier Transform, or FFT, which is a math technique that turns a chunk of audio into a frequency breakdown so you can see the bass, mids, and highs as separate bars. There are four built-in gradient themes that you cycle through with the t key: Cyberpunk Neon (violet to teal with hot pink peak caps), Golden Sunset (yellow to orange with white caps), Northern Aurora (forest green to mint), and Classic Vintage (neon teal to golden orange to crimson). The interface includes a playing or paused status glyph, a progress bar with a white playhead dot, and a volume meter that grows past five slots into a red overdrive zone when you push past 100 percent, up to 200 percent. Playback management covers a shuffle mode using a linear congruential generator, a repeat mode that toggles between Off, All, and One, and metadata extraction from ID3 tags via the lofty library. You move around with arrow keys, seek with left and right, change volume with plus and minus, type slash to filter the playlist, and press q or Esc to quit. To run it, you need Rust and Cargo installed, with Rust edition 2024 or newer. You clone the repository, then run cargo run with the path to your music directory as an argument. The underlying audio engine is rodio, the FFT comes from rustfft, terminal drawing uses crossterm, and metadata parsing uses lofty. The project is MIT-licensed and credited to Eusebio Resende.

Copy-paste prompts

Prompt 1
Clone eurhythm and run cargo run with a path to my Music folder to start playback
Prompt 2
Add a fifth gradient theme to eurhythm and wire it into the t key cycle
Prompt 3
Swap the linear congruential shuffle in eurhythm for a Fisher Yates shuffle and explain the diff
Prompt 4
Trace how eurhythm feeds rodio audio frames into rustfft and renders the spectrum bars with crossterm
Prompt 5
Add a keybinding to eurhythm that exports the current playlist filter to a .m3u file

Frequently asked questions

What is eurhythm?

A Rust terminal music player with a real time FFT spectrum visualizer, 24-bit gradient themes, ID3 metadata, shuffle and repeat, and keyboard playlist controls.

What language is eurhythm written in?

Mainly Rust. The stack also includes Rust, Cargo, rodio.

What license does eurhythm use?

MIT means anyone can use, copy, modify, and redistribute the code commercially as long as the original copyright notice is included.

How hard is eurhythm to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is eurhythm for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.