ComfyUI Node

Egregora ABX Prepare

Build a blind test your ears can't cheat

By lucasgattas·Created 12 months ago·Updated 7 months ago· 60
Egregora ABX Prepare
  • audio_A
  • audio_B
  • audio_A
  • audio_B
  • audio_X
  • abx_meta
clip_seconds10.0
random_seed0
start_seconds0.0

Here's the uncomfortable truth about the whole Egregora pack: you cannot trust your own ears in an A/B test. You know which file is the "enhanced" one, so of course it sounds better - that's called expectation bias, and it's a professional-grade cognitive trap. The ABX test is the standard fix: you get a reference (A), an alternative (B), and a mystery sample (X) that is secretly one of the two, and you have to say which. If you can't reliably pick X out of the lineup, the difference isn't audible enough to matter.

This node runs the "prepare" half: it takes your two audio files, clips a section, and secretly assigns the mystery sample X to be either A or B based on a seed. Its partner node, ABX Judge, scores your guess.

How it works

The flow is dead simple:

  1. Feed in audio_A and audio_B - for this pack, typically your original and your enhanced version.
  2. start_seconds (default 0) and clip_seconds (default 10) pick the section you'll be listening to. A 10-second clip is a good size - long enough to form an impression, short enough to A/B multiple times.
  3. random_seed (default 0) decides whether X is secretly A or B. Same seed = same trial, which is useful if you want to repeat a test or share the exact trial with someone.
  4. The node outputs the clipped audio_A, audio_B, the mystery audio_X, and an abx_meta DICT that records the truth (x_is: "A" or "B") and the seed.

The catch, obviously: abx_meta contains the answer. The whole point is that you don't look at it while listening. Wire the outputs to a preview node, listen blind, form your guess, and only then check the meta - or better, pipe abx_meta straight into ABX Judge with your guess and let it tell you whether you were right.

The inputs that matter

  • audio_A / audio_B - the two candidates.
  • clip_seconds - how long the trial is.
  • random_seed - controls which one X is. 0 is fine; change it for a fresh trial.

Outputs: the three AUDIO buffers and abx_meta.

The honest protocol advice

A single blind trial proves almost nothing. Run several (different start_seconds and random_seed values), and tally: if you're right 8 out of 10 times, the difference is real and audible; if you're at coin-flip odds, stop spending hours tweaking enhancement settings nobody can hear. Also - and this is the part people skip - gain-match the two files first. If A is louder than B, you'll "hear" the difference, and it will be a loudness illusion, not a quality one. Use the pack's Audio Gain Match node before ABX Prepare. That's the difference between a real listening test and a louder-vs-quieter guessing game.

CategoryEgregora/Listening

Inputs (5)

NameTypeDefaultDescription
audio_AAUDIO
audio_BAUDIO
clip_secondsoptFLOAT10.01–60
random_seedoptINT00–2147483647
start_secondsoptFLOAT0.00–10000

Outputs (4)

NameTypeDescription
audio_AAUDIO
audio_BAUDIO
audio_XAUDIO
abx_metaDICT