Features

Everything Stellody does.

Stated as what it does rather than as what it is like. Where a thing is measured, the measurement is given; where something is not built, it says so on this page rather than being left out of it.

Reading your library

Scanning

Incremental rescans

Choose a music folder once. A rescan compares each file's size and modification time against what Stellody already knows, so a folder whose files are all unchanged is reused without opening a single one of them.

A folder is one album

Grouping by tags was tried first and measured: classical rips frequently carry the composer in the album tag and a different date on every track, which fragmented one Mozart folder into five albums. A folder boundary is what a ripper actually records, so that is what is trusted.

Multi-disc sets merged

Sibling folders whose names differ only by a disc marker, CD1 and CD2 or (Disc 1) and (Disc 2), merge into one album. The tags then supply the title, artist, date and genre, each taken as the most common value the tracks carry.

What it skips is named

An earlier version treated a leading dot as hidden and silently swallowed two real albums. It now skips a fixed list of system directories plus macOS AppleDouble stubs; nothing else.

Damaged tags

Reported, never repaired

Tags name things. They do not decide structure: where they contradict something physical, the physical thing wins. Each rule was measured against real damage in a real library.

Two tracks claiming one number

The leading number in the file name wins. In every observed case of tag damage the file names stayed correct and distinct.

A disc number against its folder

The folder wins. One such folder holds tags claiming discs 1, 2 and 3; the folder name was written by a person, the tag by software.

A duplicated title

The file name wins. A bulk tag overwrite copies the title along with the number.

Every fallback is listed

Each one is recorded and surfaced in a health report, so you get a precise list of what to repair in a tagger of your own choosing. Accepting those repairs inside Stellody is planned and not built; the two buttons that would do it are drawn and disabled.

Looking through it

Two views and a search

List or sleeves

Albums, discs and tracks ordered either way, else a grid of covers at three sizes cycled from the bottom strip. Picking a sleeve opens that album underneath the grid with its tracks running down two columns, so the sleeves stay where they were; picking it again rolls the pane back up.

Search that narrows as you type

From a box that opens in the top tray and closes again, which restores everything. Pressing Return asks the same phrase again, which is how to get back to what it found after moving off it.

No index, measured rather than assumed

A pass over the whole library, 482 albums of 6,877 tracks, costs under half a millisecond against the hundred and twenty milliseconds a typed character allows. An index would also hold the wrong text, since the store keeps raw tags while the library shows resolved ones.

An album is kept whole

A phrase that hits one track leaves every track in place, so the album reads as it always does. The hit is selected as though it were about to play and its row flashes, which gives you somewhere to look rather than a shorter album.

Playing

The transport

Start it any way you like

Double click, Return, the right click menu, the toolbar across the top, else the play button in an open album's own header. Stellody then works through the album on its own.

Back means the beginning first

Back returns to the beginning of the track in hand and waits there; pressing it again from there goes to the track before, waiting at its beginning too.

Volume, mute, shuffle and repeat

Each remembered between sessions. Shuffle leads its scattered run with the track already playing, so next reaches the whole of the rest of the album. Repeat plays the album again rather than the track, scattering it afresh each time round when shuffle is on.

The waveform, built as it is read

A line marks where playback has reached, with the time either side of it; clicking anywhere along it moves there. Measured cold, an ordinary 28 megabyte track put its first picture up at 0.02 seconds. The figure is corrected for the buffer the engine runs ahead by, so it follows what is audible rather than what has been decoded.

Keeping your own opinion

Ratings and play counts

Five stars for a track

From a rectangle at the right of the position bar. The stars are about whichever track you have picked out rather than whichever is playing, so a track you have never heard can be rated. Pressing the star a track already sits on takes the rating back.

An album rated on its own

Set from the stars in the album's own header, with a caption saying which rating it is. Neither is worked out from the other: a record with one poor track on it is not a poor record.

Reaching the end is a play

Skipping through an album counts nothing. The count sits on the track's own row beside the rest of its detail, so a record can be read down for the tracks you keep coming back to. A track that has never played out says nothing there rather than nought.

Kept against the album, not a path

Both live in Stellody's own store against the album's identity, so renaming a folder loses neither; neither ever reaches your music files.

Cover art

Local first, with a chooser you open

Read from what you already have

From a file next to the music or from the picture inside the audio itself, then kept so it is read once. An album with neither keeps a plain square rather than a gap.

A chooser, never a fetch

No file in a typical library carries a MusicBrainz identifier, so a search has nothing exact to match on and could attach the wrong cover without knowing it had. You pick, from every picture on offer, each labelled with the release it belongs to.

A chosen picture outlives a rescan

It has no file beside the music to be checked against, so it is kept apart from a read one and preferred to whatever the folder holds, which is the whole point of having gone looking.

A refusal is not an absence

Measured, MusicBrainz refused 6 of 10 asks for one release at the rate its own terms request. So a search is asked up to five times with a growing pause; what survives all five is carried as a refusal rather than as an empty result: a service that would not answer has made no claim about your album.

Living on your desktop

The window and the tray

Opens where you left it

At the size it was left at, maximised again if that is how it was left. A size is clamped to the screen actually attached, so a window sized for a monitor that has since gone opens somewhere you can reach it.

The notification area

Stellody can run there and start there. The setup program offers to start it when you sign in, which brings it up in the notification area rather than over whatever Windows has just finished drawing. Opening it again while it is running brings that window back rather than starting a second copy.

The close button asks once

The first time you press it, offering the notification area or a full quit. Staying is the default and the answer can be remembered so it stops asking; Ask again when I close takes that answer back.

Help, About and updates

One Help button at the right of the top tray drops a menu carrying About and Check for updates. The menu bar's Help menu carries both as well, along with the library health report and the two licences.