10-band equalizer
With presets, applied as you listen.
Rainy is the music server you run yourself. Every song you own, on every screen you have.
1:16
No subscription. No cloud. Just your music, on your machine.
Library, mixes, history and playlists. Fast, quiet, and all yours.
Rainy turns what you play, like and skip into a shelf of mixes, rebuilt every time you open it. All of it is worked out on your server.
A traditional shuffle plays songs at random, so a quiet track can land right after a loud one. Rainy shuffle plays each song next to the one it sounds most like, so a mix moves instead of jumping around. Here are the same fourteen songs both ways.
next = random(remaining)
next = arg maxs ∈ remaining sim(now, s)
sim(a, b) = a · b‖a‖ ‖b‖
Each square compares two songs: the brighter, the more alike. The covers on the diagonal are the songs in play order, so the squares touching it are the transitions you actually hear.
| Traditional | Rainy | |
|---|---|---|
| Average match between songs that play back to back | — | — |
| Roughest jump the least alike pair in a row | — | — |
Match is sim as a percentage: −1 is 0%, 1 is 100%.
Open the fullscreen player and hit the lights. The song’s key and genre pick the colours.
Auto follows each song’s energy, Chill keeps it slow, Hype turns every chorus into a drop.
Analysing a 3:36 song
Start on your laptop, carry on from your phone, finish on the TV. Rainy Connect finds your other devices and hands playback over.
With presets, applied as you listen.
Aligned on your machine with Whisper, highlighted word by word.
Every window kept your name
Hold the chorus, hold the flame
Songs overlap. Silence doesn’t.
Every song gets a genre out of 400 styles, worked out on your machine.
Same song, two sources? Rainy hears it.
Same recording, matched by audio fingerprint
Bring in playlists from YouTube and Spotify, and keep them up to date on their own.
Invite people, share playlists, set who can edit.
Every action in Rainy has a shortcut.
Two containers: the app and a database. Your music stays a folder on your disk, so rebuilds lose nothing. No database server? Set RAINY_DB=sqlite and everything lives in one file.
6969 by default, configurable in .env