explaingit

eresende/eurhythm

0RustAudience · developerComplexity · 2/5ActiveLicenseSetup · 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

Things people build with this

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

Tech stack

RustCargorodiorustfftcrosstermlofty

Getting 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
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.