Validators

How validators score each line and route it — pass, fail, and retry, shared by every validator.

Family: Operator

A validator scores each generated line and routes it. Add one when “it produced audio” isn’t enough — when the audio must clear a bar before it ships. Onepin has three, and they all work the same way; this page covers the shared behavior, then each has its own page:

Two outputs: pass and fail

Every validator has two output ports:

  • pass — the line cleared the bar. Wire it onward; its path must reach Export.
  • fail — the line didn’t. Wire it back to the Generator to regenerate the line, or leave it unwired to drop failing lines instead of retrying.
┌───────────────── fail ─────────────────┐
▼ │
Generator ──▶ Validator ──▶ pass ──▶ Export

pass and fail can’t feed the same downstream port — that would erase the distinction. And a pass output must reach Export, or lines that cleared the check would be silently dropped.

Threshold and retry

Threshold is the score a line must reach to pass. Raise it for a stricter bar, lower it to let more through.

Retry is what happens on a fail. max_retries is how many times a failing line is regenerated — each retry re-runs the Generator for that line, then re-scores it. When the budget runs out and the line still hasn’t cleared the bar, it leaves through pass anyway. You get the best attempt made, and a run never stalls on one stubborn line.

Both are set in the node’s config:

1node["config"] = {"threshold": 90.0, "max_retries": 3}

Chaining and parallel checks

Wire validators in a row (Accuracy, then Naturalness, then Noise) or run them side by side off one Generator. Either way, a line is delivered only once every validator on its path has passed it, and each validator keeps its own retry budget.

What you’ll see after a run

Each line shows its score from every validator and how many retries it took to clear the bar — so you can see exactly which lines were regenerated and why.