"Turn the lights down. Hit play on anything. Watch your desktop melt."
RUMI is an open-source macOS desktop companion that continuously recognizes whatever music is playing in your room and projects millisecond-accurate, auto-scrolling karaoke lyrics onto a floating hardware-accelerated liquid-glass HUD with continuous ~2–4s live acoustic tracking and LRCLIB synchronized lyrics.
You're at your desk at 2:00 AM. A track comes on. Maybe it's on Spotify. Maybe it’s a dusty vinyl rip playing through your monitors. Maybe it’s an unreleased SoundCloud leak blaring through your headphones.
You want the lyrics. Right fucking now. Not in a clunky browser tab. Not behind a paywall. Not through Spotify’s sluggish lyric widget. And definitely not like Shazam—which just pops up a song title and leaves you hanging with zero lyrics.
RUMI sits silently in your macOS menu bar like a predatory acoustic radar.
The moment audio touches the air:
- It hears it. Sub-second ambient acoustic detection via native macOS CoreAudio.
- It maps the song's sonic DNA. It indexes landmark peaks and fetches synced lyrics.
- It locks on in ~2 to 4 seconds. The acoustic radar calculates the exact live playhead position and feeds lyrics continuously.
- It floats. A borderless, hardware-accelerated liquid-glass HUD materializes over your apps, feeding you millisecond-synced lyrics with butter-smooth 30fps spring physics.
You don’t click anything. You don’t search anything. You just sing your fucking heart out.
How does RUMI compare to existing players? For anyone wondering why this exists:
| Feature | RUMI ✦ | Apple Shazam (Mac) | Spotify Lyrics | Musixmatch Desktop |
|---|---|---|---|---|
| Source Agnostic (Vinyl, YT, Radio, Leak) | Yes (Ambient Mic) | Yes (Ambient Mic) | No (Spotify only) | Partial (Desktop sound) |
| Live Synced Karaoke Lyrics | Yes (Auto-scrolling HUD) | ❌ No (Title & link only) | Yes (Locked in app) | Yes (Floating widget) |
| Detection & Tracking Mode | Always-On Acoustic Radar | Manual click per song | Playback bound | Periodic cloud poll |
| Live Playhead Re-Syncing | Continuous (~2-4s live sync) | ❌ None (One-shot) | Player bound | Periodic poll |
| UI Design | macOS Liquid Glass HUD | Static menubar dropdown | Bulky desktop app | Heavy Electron overlay |
| Custom Audio Nudge ( |
Instant hotkey | ❌ None | ❌ None | ❌ None |
| Privacy & Telemetry | Zero Telemetry | Apple ecosystem telemetry | High tracking | High tracking |
| Price | 100% Free & Open Source | Closed Apple proprietary | $11.99/mo Premium | $4.99/mo subscription |
Most desktop apps look like tax software wrapped in Electron bloat. RUMI is an angel.
┌──────────────────────────────────────────────────────────────┐
│ ● ● ● [ ♫ Starboy — The Weeknd ] [ 43% ] [ ∿∿∿ 12ms ]│
├──────────────────────────────────────────────────────────────┤
│ │
│ I'm tryna put you in the worst mood, P1 │
│ │
│ ✦ CLEANER THAN A CHURCH SHOE, MILLI POINT TWO ✦ │
│ │
│ House so empty need a centerpiece │
│ │
├──────────────────────────────────────────────────────────────┤
│ ◄ -0.5s [● REC: LOCAL LOCK] +0.5s ► ⌘ STUDIO │
└──────────────────────────────────────────────────────────────┘
- Hardware Compositor Glass (
NSVisualEffectView): Real Apple WindowServer vibrancy. Pure dark blur that bleeds ambient album artwork through your wallpaper. - 220ms Predictive Syllable Lookahead: Human eyes take ~200ms to parse motion and trigger vocal cords. RUMI computes predictive lookahead compensation so the words hit the hero focal slot the exact millisecond the vocal drops.
- Dynamic 9-Bar Reactive Audio Equalizer: A living, breathing visualizer in the header bar driven in real-time by incoming microphone RMS amplitude.
- Micro-Spring Kinetic Typography: Smooth SwiftUI spring physics (
response: 0.34, damping: 0.88) that snap into place without jarring layout jumps.
Other apps send your audio to a server every 5 seconds. That’s slow, brittle, and privacy-invasive.
RUMI runs on a Local-Map-First Constellation Architecture:
graph TD
A[Ambient Audio in Room / Mic] -->|1.6s Rolling Buffer| B(Native Audio Radar)
B -->|Fast PCM Stream| C{Local Map Exists?}
C -->|NO: First Time Seen| D[ShazamIO Cloud Hit]
D -->|Song Key + Metadata| E[LRCLIB Synced Lyrics Engine]
D -->|Async Background Fetch| F[In-Process yt-dlp Audio Stream]
F -->|Constellation Landmark Extractor| G[Build Local In-Memory Peak Hash Map]
G -->|Persist to SSD Cache| H[(.fingerprint_cache)]
C -->|YES: Track Locked| I[Local Constellation Matcher]
H -->|Warm Cache Hit <5ms| I
I -->|12ms Peak Alignment| J[Sub-50ms Playhead Clock]
E -->|Time-Indexed LRC Lines| K[30fps Spring Compositor HUD]
J -->|Precise Millisecond Offset| K
K -->|Liquid Glass Rendering| L[The Screen Melts]
RUMI listens via low-overhead CoreAudio in native Swift. It never hoards gigabytes of RAM or hogs CPU cycles.
On the very first encounter with an unknown track, it asks the cloud for identity and initial time-offset.
Behind the scenes, RUMI pulls the stream into a warm 16kHz mono audio representation and extracts Shazam landmark peak constellations (FFT local energy maxima indexed by frequency pairs and delta-time).
Most lyric apps identify a song once and then run a blind stopwatch. The second you pause, rewind, or scrub forward, their lyrics drift and break.
RUMI does not use a stopwatch. It tracks your exact position in the song acoustically, live, all the time:
- Every 1.6s buffer is matched against the local constellation map in 12ms.
- Scrub 45s forward in Spotify or YouTube? RUMI detects the jump instantly and snaps the lyrics to the exact new millisecond.
- Pause or loop a chorus? The playhead holds and tracks the live acoustic reality.
- Track ends? It immediately notices the acoustic shift and seamlessly transitions to the next track.
- All running 100% locally with zero cloud lag and zero bandwidth.
- macOS Sonoma (14.0+) or macOS Sequoia (15.0+)
- Python 3.12+
- uv (recommended) or standard
pip - Xcode Command Line Tools (
xcode-select --install)
git clone https://github.com/instant-karaoke/rumi.git
cd rumi# Fast install with uv:
uv sync
# Or using standard venv:
python3 -m venv .venv
source .venv/bin/activate
pip install -r pyproject.tomlchmod +x bin/singnow
./bin/singnow startThat’s it. The native binary compiles automatically, links against SwiftUI and AppKit, launches the local FastAPI constellation daemon, and docks into your menu bar.
| Action | Control |
|---|---|
| Summon / Dismiss HUD | Click the soundwave menu bar icon or press ESC
|
| Drag & Position HUD | Click and drag anywhere on the glass background |
| Nudge Sync Offset ( |
Click ◄ / ► in the footer bar |
| Switch Glass Contrast | Click contrast icon in header (Subtle ➔ Balanced ➔ High Contrast) |
| Force Rescan / Reset | Click the circular radar reset button |
| Toggle Mic Radar | Click the microphone badge |
| Open Studio Dashboard | Click Studio or open http://127.0.0.1:8765
|
Yes. Because RUMI captures ambient acoustic input through your Mac's microphone or internal loopback audio, it works with Spotify, Apple Music, YouTube, SoundCloud, Vinyl players, DJ decks, Twitch streams, or local MP3 files.
No. All raw audio is processed strictly on-device in a temporary 1.6-second rolling circular buffer. When an unrecognized song plays, a signature hash (not raw audio) is resolved once. Once the local constellation map is built, playhead tracking runs 100% offline at 12ms latency.
RUMI continuously listens via a rolling audio buffer, matching acoustic landmarks against the song's constellation map. From the moment a song starts playing in the room or jumps to a new section, RUMI locks onto the exact live position within ~2 to 4 seconds. A native 30fps monotonic clock with 220ms visual lead-time smoothly interpolates lyrics syllable-by-syllable so the text matches the vocal perfectly.
Lyrics are pulled from the open-source LRCLIB database, providing millisecond-timestamped synced LRC files. For tracks with title/artist discrepancies, RUMI employs intelligent fallback query sanitization and OST stripping.
├── bin/
│ ├── singnow # Zero-dependency launcher & compiler script
│ └── SingNow.app # Standalone compiled macOS bundle
├── menubar/
│ ├── main.swift # Floating NSPanel & AppKit lifecycle
│ ├── OverlayViews.swift # SwiftUI Liquid Glass & kinetic typography
│ ├── KaraokeStore.swift # 30fps monotonic playhead clock & RMS physics
│ ├── AudioRadarService.swift # AVFoundation native microphone capture
│ └── Models.swift # Immutable playhead states & LRCLIB models
├── local_fingerprint.py # In-memory Shazam constellation matcher
├── main.py # FastAPI real-time pipeline coordinator
└── static/
├── index.html # Web companion studio
└── styles.css # Cyberpunk studio UI
Music wasn't meant to be consumed passively while staring at an algorithmic feed.
It was meant to be screamed in cars, whispered at 3 AM, and sung word-for-word until your throat hurts.
RUMI gives your Mac eyes and ears for what you love.
No telemetry. No subscription. No bullshit. Just sound.
Crafted with obsessive precision for audiophiles, late-night crooners, and hackers.