Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

What the model learns from

Four kinds of answer, one model, and a few things that feel like teaching but are not.

The four signals

Everything you tell Auracle enters one observation log and conditions one latent quantity: a utility u(x)u(x), "how much this person would like patch xx". The four signals differ only in how they connect an answer to that utility.

SignalWhereWhat it says
A/B duelEVOLVE, or the quick-pick strip in PLAYAA scores higher than BB
★ starsAny bank rowThis patch's utility falls in the band that rating covers
keep / killno surface yetThis patch is above / below where I'm drawing the line today
edit beats originalmy edit is better, on commitMy edited version scores higher than what I started from

Duels are the primary signal. They have the best statistical properties and the lowest cognitive load: people compare two things reliably, and assign absolute numbers to one thing inconsistently, including against themselves an hour later.

If you only ever do one thing, do duels.

About stars

A star rating is not treated as the number three. It is treated as "this patch's utility sits between two learned cutpoints", and the cutpoints are fitted alongside everything else. That is what makes the scale survive drift: if you go through a generous phase and then a harsh one, the model can move the cutpoints instead of concluding your taste changed.

Rate honestly, including low. A star is a judgement, and rating things you dislike is information.

About keep / kill

Keep/kill is modelled against a per-session threshold the model also fits. "Feeling picky today" is represented rather than treated as noise, so a session where you kill almost everything is read as a strict session rather than a change in your taste.

Nothing in the app records one yet. The likelihood and the threshold are implemented, but the triage screens that would emit them have not been built, so today you teach it with duels, stars and edits.

What is not a signal

Listen time, replays, exports and how long you hovered are not recorded as preferences. They are cheap to collect and easy to misread: a long listen can mean fascination or confusion.

Saving a patch is also not a signal. See stars are not saves.

The warm start

On first run you pick 3 of 9 presets.

That single ~30-second interaction is worth 18 pairwise observations: each of your three picks is recorded as beating each of the six you did not pick. It exists because the cold start is severe. From nothing it takes hundreds of duels, and eighteen observations before you have answered a single one is the difference between a model that has an opinion by the end of your first session and one that does not.

The nine are drawn one per family first from the 61-patch library, then filled from what is left, so the first thirty seconds span the space rather than landing in one corner. Only those nine are loaded, which keeps the first run short and most of the pool free for what the search finds.

Re-run it any time from Re-run the three-pick warm start.

When it learns

Two mechanisms, at two speeds.

Between refits: reweighting. Every vote is folded in immediately by importance sampling, where the draws the model already has get reweighted by how well each one predicted your answer. It costs almost nothing, and it is what makes the next question respond to the last answer. Without it the pairing rule would read a frozen model and re-ask the same question until the next full fit.

At a refit: inference. Full Markov-chain inference over the entire log, a few seconds of work off the audio thread. This is where the model can change its mind, discover a new style lens, or re-fit the star cutpoints.

The teaching meter counts down to the next refit: at most every six duels, and only when the between-fit reweighting has run out of road. That condition is measurable. The effective sample size of the reweighted draws falls as the weights concentrate on fewer and fewer of them, and once it has collapsed far enough the model would be claiming more certainty than it has. That is the trigger to pay for a real fit. The wordmark's E lights while one runs.

Recency

Old votes fade. An observation h places back in the log carries weight

wh=0.5h/150w_h = 0.5^{,h / 150}

so about 150 observations ago is worth half as much as your latest. Your taste is allowed to change, and a model that weighted a vote from three sessions ago equally with one from a minute ago would fight you when it did.

How long what you told it keeps mattering. At a half-life of 150, a vote from three hundred observations back still carries a quarter of a fresh one's weight.

What moves the model most

Roughly in order:

  1. Duels between genuinely different patches. The most information per answer.
  2. The warm start. Eighteen observations for thirty seconds, available once per reset.
  3. Duels the model got wrong. A surprising answer moves a posterior further than a confirming one. This is also why the pairing rule serves near-ties.
  4. Stars, in volume. Weaker per observation, but cheap, and they anchor the absolute scale that duels alone cannot pin down.
  5. Hand edits committed with my edit is better. These carry a lot: a direction in genome space, and the claim that the direction was good. TRUST scores them separately, because an asserted improvement and a heard one may not be equally reliable.

What it cannot learn

Worth knowing, so you do not spend a session teaching something that cannot be received.

The model sees each patch through a fixed set of measurements: fifteen perceptual descriptors of a standard render plus twenty-five structural counts. If a preference is not visible in those coordinates, no amount of voting will convey it. The clearest case is stereo width: the feature vector has no coordinate for it, so the model will never learn that you like chorus for its width. The chorus module's spec card says so in its heard as line.

Preferences about performance are largely invisible too — how a patch responds to velocity, how it behaves in a fast run — because the audition phrase is fixed and modest. What the phrase does and does not reveal is spelled out in the reference.

How to check

Before spending a session teaching a preference, read the heard as line on the modules involved. If it says the model cannot pick it up, believe it, and use save and your own naming instead.