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 , "how much this person would like patch ". The four signals differ only in how they connect an answer to that utility.
| Signal | Where | What it says |
|---|---|---|
| A/B duel | EVOLVE, or the quick-pick strip in PLAY | scores higher than |
| ★ stars | Any bank row | This patch's utility falls in the band that rating covers |
| keep / kill | no surface yet | This patch is above / below where I'm drawing the line today |
| edit beats original | my edit is better, on commit | My 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
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.
What moves the model most
Roughly in order:
- Duels between genuinely different patches. The most information per answer.
- The warm start. Eighteen observations for thirty seconds, available once per reset.
- 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.
- Stars, in volume. Weaker per observation, but cheap, and they anchor the absolute scale that duels alone cannot pin down.
- 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.