Stellody app icon
Windows

Your own music,
left exactly as it is.

Stellody reads your music folder and never writes to it. What it learns about your library, the problems it finds in your tags and your own settings live in Stellody's own store, so a bug in this player cannot damage a file you spent years ripping and tagging.

Download GitHub
Stellody showing a grid of album sleeves, with the album Pump by Aerosmith opened in a pane beneath it: its title, artist and album rating above its ten tracks running down two columns; the waveform bar runs along the bottom.

Picking a sleeve opens that album underneath the grid, its tracks running down two columns, so the sleeves stay where they were.

0 writes
To your music files
Cue sheets
A main path, not an edge case
100%
Branch coverage where it counts
0
Accounts, cloud or scrobbling
GPL + LGPL
Open source

A player broke a library.
This one cannot.

Stellody was written after a player wrote tags back into a real collection, duplicating and overwriting metadata across 21 albums. So it describes a damaged tag; it never repairs one.

  • The tag-writing surface is unreachable from any module that can read tags, held by a structural test rather than by good intentions.
  • Nothing on the scanning or probing path writes to disk at all.
  • Damaged metadata is reported to you, precisely, so you can repair it in a tagger of your own choosing.
  • Nothing is ever written into your music folder, cache included.
Why it is built this way

The shapes a real
library actually takes.

A track is a slice of a file rather than a file, so an album ripped as one FLAC with a cue sheet is not a special case: the queue, the transport and shuffle are written once and work for both.

  • One file per track, else a single file per album with a sidecar cue sheet.
  • Multi-disc sets split across sibling folders, merged back into one album.
  • A bonus disc whose folder names no number among them.
  • Compilations and tracks with several credited artists.
Everything it does
In the window

Built for a large library
you already own.

Two views of the same library

Albums, discs and tracks in a list, else a grid of covers at three sizes. Picking a sleeve opens that album underneath the grid with its tracks in two columns, so the sleeves stay where they were. The view and the size are both remembered.

Search that keeps an album whole

Type and the library narrows as you go. An album that matches keeps all of its tracks, so it reads the way it always does; the track your phrase hit is highlighted and its row flashes to take your eye to it. The whole library is read on every keystroke, measured at under half a millisecond.

The track's own waveform

Drawn along the bottom with a line marking where playback has reached. The shape builds from the left as the file is read, so a picture is there at once. A track merely highlighted draws its shape too, so you can see what it looks like before deciding to play it.

Ratings and play counts

Five stars for a track, plus its own rating for an album, since a record with one poor track on it is not a poor record. Reaching the end is what counts as a play; the count sits on the track's own row so a record can be read down for what you keep coming back to.

Covers, local first

Taken from a file beside the music or from the picture inside the audio itself, then kept so it is read once. For an album whose own files carry none, a chooser you open yourself shows every picture MusicBrainz and the Cover Art Archive have for it.

Reachable from the keyboard

Everything, in the order the window is drawn. A focus ring belongs to a control, never to the pane holding it, which is held by a test. Stellody opens with nothing highlighted rather than a menu dropped open.

The whole library, one row an album.

Albums, discs and tracks in one tree, ordered either way, each album carrying its own sleeve and saying what it holds: the year, the genre where there is one, how many tracks and how many discs. Expanding an album shows its tracks; the same right click menu is on every row.

Stellody's list view: one row per album with its cover, its artist, then a detail column giving the year, genre, track count and disc count, with the length at the right.

The list view, with the transport across the top and the switches along the bottom strip.

What reaches outward,
and what it carries.

Stellody sends nothing about you or your library anywhere. No scrobbling, no telemetry, no account and no identifier of any kind. Three things reach outward and each is named here rather than left to be discovered. A structural test permits exactly two modules to hold the machinery for a connection, each named in that test with what it is for.

The cover chooser

Only when you open it, from an album's right click menu. It asks MusicBrainz and the Cover Art Archive about that album and shows you what they have.

The update check

Asks GitHub whether a newer Stellody has been published. The request carries nothing at all, not even which version you are running: it reads one small public document and the comparison happens on your machine. It says nothing unless there is something to offer.

The donation link

Not really a third. The address goes outward to your browser and the browser does the asking; Stellody opens no connection of its own for it.

Honest about

What it does not do.

FLAC, nothing else yet

A folder of MP3, M4A or WMA scans to nothing today. Widening that is planned work and its size is measured rather than guessed at.

Windows only

The one platform built today. The audio layer speaks to WASAPI; the port it sits behind is already the seam a second output goes in at.

Not a library manager

No streaming, no ripping, no syncing to devices and no managing a library by rewriting its tags. Stellody does none of those and is not going to.

Still early

An equalizer, gapless transitions and accepting the repairs the health report describes are not built. Where a control for one of those is on screen it is disabled and says so.