Features Studio Pricing Docs — Studio Docs — Music Player Docs Tunings Reference Compare Blog About Support
↓ Download iOS / iPadOS macOS visionOS Companion App

Algorithm Tuner

Most music apps infer your taste by watching you and never tell you what they concluded. Homecrate inverts that. The Algorithm Tuner — titled My Listening Algorithm in the app — is a set of rules you write: what mood you want in the morning, what you want when it’s raining, how much a skip should count against a song, how long before a track can repeat. Homecrate then obeys those rules against your own play history. Nothing is inferred behind your back, and you can see and change every input.

It runs entirely on-device. See Analytics Settings & Privacy.


Opening the Tuner

Go to Settings → Analytics & Privacy and tap Edit Your Music Algo.

[SCREENSHOT: "My Listening Algorithm" modal header and intro copy]

Connect your listening context to the music you love. These preferences guide shuffle order and auto-generated playlists — all on-device.

If Enhanced Analytics is off, a blue banner at the top offers to turn it on — the Weather Context section and the Weather Mood game need it. Tap Continue and you’ll get the standard explanation sheet before iOS asks for location.


Time of Day

Four time windows, each with three choices: Calm, No pref, Upbeat.

WindowHours
Morning5–11 am
Afternoon11 am–5 pm
Evening5–10 pm
Late Night10 pm–5 am

[SCREENSHOT: Time of Day section with Calm / No pref / Upbeat chips]

Setting a window to Calm or Upbeat tells Homecrate that when this window is active, weight tracks you’ve historically played during this window. It doesn’t filter by genre tag — it uses your own behaviour during those hours as the definition of what fits.


Weather Context

The same three chips, applied to four weather buckets:

BucketMatches
Sunny daysClear, sunny, mostly clear
Rainy daysRain, drizzle, thunderstorms, hail
Cold / snowSnow, blizzard, frigid, or ≤ 2 °C
Cloudy / overcastEverything else with a recorded condition

[SCREENSHOT: Weather Context section with four condition rows]

Requires Enhanced Analytics. Weather is only stored alongside listening events while that tier is on, so without it there’s nothing to match against.

How time and weather combine

The two preferences have to agree before either bonus applies:

  • Both say the same thing → that mood is used
  • One says No pref → the other one wins
  • They disagree (one Calm, one Upbeat) → the result is “no preference” and both the time-of-day and weather bonuses are skipped for that queue

So a conflict is resolved by backing off, not by picking a side.


Skip Learning

How much your skips count against a track.

SettingEffect
OffSkips are ignored entirely in scoring
ModerateLight adjustment (default)
AggressiveHeavy down-weight

[SCREENSHOT: Skip Learning section with Off / Moderate / Aggressive chips]

Aggressive applies roughly three times the penalty of Moderate. Whichever you pick, the penalty is never a flat “you skipped it once, it’s dead” — see How Scoring Works below.


Shuffle Behaviour

Avoid recently played tracks

Off, 1 hr (default), 4 hrs, or 8 hrs. A track played inside the window is penalised on a sliding scale — heavily if it was seconds ago, barely at all as the window runs out.

[SCREENSHOT: Shuffle Behaviour section with Off / 1 hr / 4 hrs / 8 hrs chips]

Boost favourites

Default: on. Surfaces your most-listened tracks more often in shuffle. Specifically, it adds a bonus based on your completion rate for each track — a song you played 10 times and finished 9 of them scores better than one played 50 times and abandoned half of them.

Auto-generate next playlist

Default: on. When a queue runs out, Homecrate builds a fresh 30-track queue using this algorithm instead of just stopping. It appears in Up Next as “Recommended for You”, with a one-line explanation of what it was built around — e.g. “Built around your evening listening patterns, rainy weather, your most-played tracks.”


Weather Tastes

The bottom section lists songs you’ve explicitly associated with a weather condition.

[SCREENSHOT: Weather Tastes list with condition label, track, and delete button]

You build this list by playing the Weather Mood game: tap the weather pill in the app header. It’s a 3-round game — four tracks per round, pick the one that fits the current weather. Each pick is saved as a weather taste for that condition.

The pill shows a small bell badge when the current condition doesn’t have many saved tastes yet, and it only nudges you once per condition.

Tap the trash icon on any row to remove a taste.


Saving

Changes are not live — tap Save Algorithm at the bottom. The button turns green and reads Algorithm saved! to confirm. Closing the sheet without saving discards your edits.

[SCREENSHOT: Save Algorithm button in its saved state]


Defaults

ControlDefault
Morning / Afternoon / Evening / Late Night moodNo pref
Sunny / Rainy / Cold / Cloudy moodNo pref
Skip LearningModerate
Avoid recently played1 hr
Boost favouritesOn
Auto-generate next playlistOn

Out of the box, then, shuffle is driven by play history, completion rate and a 1-hour repeat guard — the contextual rules only kick in once you set them.


Where the Algorithm Applies

SituationBehaviour
Shuffle an existing queueThe currently playing track stays pinned at the top; everything after it is re-ranked by score
Queue runs outIf auto-generate is on, a new 30-track queue is built from your whole library
Explicit album / playlist playbackUntouched — playing an album in order plays it in order

Two kinds of tracks are never candidates: hidden tracks, and tracks marked Omit from Songs & recommendations.


How Scoring Works

Every candidate track gets a score, and the queue is drawn from the results. Worth understanding, because it explains why the tuner doesn’t behave like a filter.

Signals that raise a score

SignalWeight
Play countA saturating curve, capped — a track played 100 times doesn’t crush one played 20 times, because both are clearly liked
Completion rateUp to a moderate bonus, only when Boost favourites is on
Plays during the same time-of-day windowApplies only when a mood preference is active
Plays during matching weatherApplies only when a mood preference is active, and is scaled by season (below)
Audio-mood alignmentWhen a session mood context exists, tracks whose analyzed mood matches get a bonus — needs library analysis
RandomnessA deliberate random component, large enough that mid-tier tracks regularly beat your top-played ones

Signals that lower a score

SignalWeight
Early skips (before 25% of the track)The strongest negative signal
Later skipsRoughly a third as heavy — hearing most of a song then moving on isn’t dislike
Played recentlyScaled by how far into your Avoid recently played window it was

Three things that protect songs you love

  1. Trust amnesty. Every play where you heard 85% or more of a track builds trust. At 10 such plays the track is fully trusted and its skip penalty is cut by three quarters. One bad-mood skip won’t crater a favourite. The cut caps at 75%, not 100% — a sustained pattern of skips still carries signal.

  2. Browsing mode. If you’ve been cycling through tracks in the last 45 minutes, you’re mood-seeking, not expressing dislike. Once your session skip rate passes 30%, skip penalties start being attenuated across the board; by 65% they’re cut to a fraction. Hunting for the right song doesn’t poison every track you passed over.

  3. Skip intent. Where in a track you skipped matters more than the fact that you skipped, which is why the 25% boundary exists at all.

Seasonal weather weighting

The weather bonus isn’t applied uniformly year-round. Research on weather and music preference finds the association strongest when weather changes are most noticeable, so the signal is scaled:

SeasonWeight
Autumn (Sep–Nov)Strongest
Spring (Mar–May)Strong
Winter (Dec–Feb)Moderate
Summer (Jun–Aug)Weakest

When the season makes the weather signal particularly meaningful, the queue’s explanation line says so.

Selection is weighted, not top-N

Homecrate doesn’t just take the highest-scoring tracks. It builds a pool of roughly three times the queue length, then draws from that pool with probability proportional to score. High scorers are likelier to appear, but the queue stays varied and doesn’t hand you the same 30 songs every time.