• Welcome to ASR. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Reference ABX hardware design and implementation

So what exactly is the intention? Is this to be a 'blameless' open hardware reference design, or something else?
The intention is to get to a design and a prototype board for an ABX device which has ASR community input. The point being that every time ABX tests get done elsewhere this community is rightly sceptical of the tolerances and designs and possible accidental cues of the ABX devices used.

So level matching acrosss DUTs and between channels comes first.

Then basics around calibration, accuracy, reproducibility, error checking have to happen before testing and aren't reasonable to expect to be done well by an individual reviewer/tester, so those need to be on-device. Polarity checks for example.

And then we get have cue mitigation! It's super important to ensure the tester isn't given a subliminal cue as to the identity of A and B. This requires very careful design of fade in/out, switching etc. Even different ground noise patterns can be cues.

So yes "blameless" is a good word.
 
Last edited:
Here's my proposal for hardware fade in/out. Feedback appreciated!

Upstream ABX software may do its own thing, this is the ABX device ensuring it doesn't provide any cues. The diagram shows the state when listening to input A. The broad idea is the the LDR has ~60ohm on resistance, and 25MOhm off resistance, and can be controlled via PWM.

Cutover should be 100us or better, and calibration of the precise PWM level required to make the S_LISTEN/S_AUX resistance switch match is possible because we have a calibration tap (not shown) at LINE_OUTPUT, and an arbitrary waveform generator (also not shown) at SELECTED_INPUT.


Screenshot 2026-08-04 at 15.26.20.png
 
Thank you! Good point on safety during testing.

For the gain setting a MUSES + small extra trim network comes out about the same cost as the 12-bit MELF ladder I've currently specced, but it's:
  • Expensive ($20 at Mouser)
  • Unavailable for JLC assembly
  • Still requires a trim network (if used in the trim network, obviously not applicable as a fader)
  • Doesn't meet the -130dB e2e transparency ask
I really don't want to add an XLR input unless it's safe. Users _will_ plug a standard balanced output source into an XLR input, possibly damaging their source as on our side if pin 1 and pin 3 are connected. Or if we don't connect 1&3, they'll get an unpredictable experience. Maybe a specialised connector & cable?
I agree that it is overkill for a device that is used only 100ms (or less) during a mute operation.
Another option that could handle 4VRMS is the MUSES72320 that can be sourced for about USD 6 from https://gb.profusion.uk/uk/muses72320v-te2
JLCPCB can do that for you.
With a proper volume control like this the ABX tester could double up as a very good preamp, and you will have a mute sequence that is "quiet" since these chips have built in zero-cross detection. But it comes at an extra cost that may be uneccessary.

Your last suggestion looks good. With ~100us mute times zero-cross noise and other noises from the muting device should not be a problem.
I am not sure how it feels for the listener with such short transition. On the ABX devices I have built I kind of like the "soft" feeling from a longer mute time in the 100's of ms range but that may be just something I have become used to. I don't mind the "zero" time switch in the Foobar ABX test either, so that may be the way to go.

Looking forward to see how this will turn out. It will for sure be the most transparent ABX tester ever made, and with todays possibilities to make software to remote control the thing and set up secure ABX-tests from your phone or computer it will be something else entirely :)
 
... With ~100us mute times zero-cross noise and other noises from the muting device should not be a problem.
I am not sure how it feels for the listener with such short transition. On the ABX devices I have built I kind of like the "soft" feeling from a longer mute time in the 100's of ms range but that may be just something I have become used to...
100us is the maximum crossover time for the switches to cut over, after which the the ramp duration is totally controllable through PWM from the MCU. Maybe 200ms would be a sensible default? That gives 200ms ramp down, 50ms of muting for the input selection relay switching and settling, and 200ms ramp up. It's all just settings in an app.
 
Here's my proposal for hardware fade in/out. Feedback appreciated!

Upstream ABX software may do its own thing, this is the ABX device ensuring it doesn't provide any cues. The diagram shows the state when listening to input A. The broad idea is the the LDR has ~60ohm on resistance, and 25MOhm off resistance, and can be controlled via PWM.

Cutover should be 100us or better, and calibration of the precise PWM level required to make the S_LISTEN/S_AUX resistance switch match is possible because we have a calibration tap (not shown) at LINE_OUTPUT, and an arbitrary waveform generator (also not shown) at SELECTED_INPUT.


View attachment 549074
Why switching the inputs? When doubling the line buffer and switch at their outputs less relais necessary and the DC input problem is gone.
 
  • Like
Reactions: pma
Why switching the inputs? When doubling the line buffer and switch at their outputs less relais necessary and the DC input problem is gone.
The input switching is for isolation and protection, they're the only two physical relays on the whole board. But are you asking if we would be better off using two opamps? If so then part of the answer is that each needs its own gain ladder, which is 24 resistors (12 per mono signal). It's a good question though. Always good to think outside the box...
 
Last edited:
The input switching is for isolation and protection, they're the only two physical relays on the whole board. But are you asking if we would be better off using two opamps? If so then part of the answer is that each needs its own gain ladder, which is 24 resistors (12 per mono signal). It's a good question though. Always good to think outside the box...
OK, tweaking 12 resistor ladders for congruence is not easy. Thus the single line buffer seems to be easier made.
 
Some renders of the power/control and analog boards. Analog is 150mm deep and 70mm wide, so quite compact. Speaker control board is coming soon!
Analog.pngPower & control.png
 
Some renders of the power/control and analog boards. Analog is 150mm deep and 70mm wide, so quite compact. Speaker control board is coming soon!
View attachment 549307View attachment 549306
Fun fact - there are only two audio ICs on there - the OPA1612 and a PCM1808 ADC for calibration purposes. All the other ICs are muxes, GPIO expanders etc. The majority of the board space is those and the precision ladder resistors, the relays and the fader circuit. It really brings home how much complexity there is in an ABX design vs a basic preamp.
 
Looks nice. Creative way of doing the muting. With PWM above 20kHz it should work fine. Will be interesting to see how much bleeds out in audio path during muting.
Do you solder it yourself?
How about Susumu 0805 resistors with low tempco ? I did some measurements on them a few years ago and they were just as good as MELF for a fraction of the price. Well below the -130dB requirement. I can see if I find the test I did.
 
Looks nice. Creative way of doing the muting. With PWM above 20kHz it should work fine.
Yep, PWM will be well above that, 100kHz at least.
Will be interesting to see how much bleeds out in audio path during muting.
Managing the switch from the default path to the fader path is the harder bit - both have to be nicely matched impedance-wise at the point of switchover. During the fade there's surprisingly little impact on THD+N. Definitely less than -60dB, I'll have to sim it properly to get a better number. The fade itself would perceptually dominate any timbre change is the point, and the change is the same for both DUTs
Do you solder it yourself?
JLC assembly for all the SMD parts. Hand soldering for some through hole parts that have to be sourced elsewhere like the DC/DC converter.
How about Susumu 0805 resistors with low tempco ? I did some measurements on them a few years ago and they were just as good as MELF for a fraction of the price. Well below the -130dB requirement. I can see if I find the test I did.
Oh yes, chip thin film would be fine too. But it only saves $1 per board in parts, and no saving in assembly costs. The board layout is constrained by ICs and routing as well, so no real advantage. And MELFs look cool.
 
I found the test of resistor distortion i did in 2019.
The test was Vishay MELF (0,1% 0,25W) vs Susumu RG2012P-102-B-T5 (0,5% 0,1W 25PPM)
This was the test setup. The gain resistor R3 was changed in the tests. The peak power in the resitor is 100mW.
1785950681302.png


To my surprise the lower power rated Susumu performed better than the MELF at frequencies below 200Hz.
1785947408623.png

0.0001% is -120dB, so it will never be audible, but it might be worth considering if the power in the resistors are high.
 
I found the test of resistor distortion i did in 2019.
The test was Vishay MELF (0,1% 0,25W) vs Susumu RG2012P-102-B-T5 (0,5% 0,1W 25PPM)
This was the test setup. The gain resistor R3 was changed in the tests. The peak power in the resitor is 100mW.
View attachment 549412

To my surprise the lower power rated Susumu performed better than the MELF at frequencies below 200Hz.
View attachment 549401
0.0001% is -120dB, so it will never be audible, but it might be worth considering if the power in the resistors are high.
Nice, am I reading it right that the green trace is at ~14Vrms? The primary distortion mechanism is electric field related, so scales with voltage not current
 
I figure folks might find the analysis driving the resistor choices interesting. Basically we take some reasonable bounds on distortion based on TI's published presentation in "Low Distortion Design – 4". They were taken with a thin film 0603 chip resistor vs a thick film equivalent at 3Vrms, and show obviously why thin film is needed. Vishay have some other papers but the test conditions published are so vague as to make them not very useful. We can fairly safely assume MELF 0204 has lower voltage-dependent distortion than 0603, just because the much larger pin-to-pin distance reduces field change with distance. So let's say -125dB at 3Vrms for an 0204 MELF. Making a simple linear line back to 0V and -150dB (just a choice), gives us a conservative model for the resistor THD at various voltages.

That then needs folding in with the actual gain contribution of each resistor in the ladder at different gains. Looking at the worst case where each resistor is the only one selected, we get this chart (details in table below).
Screenshot 2026-08-06 at 14.34.03.png
\

Long and short, MELF 0204 looks fine on this hopefully conservative model apart from on the feedback resistor, which I've now switched to 0207. But this is not my primary skill so critiques and suggestions welcome as ever!

Rich (BB code):
PositionResistanceGain aloneResistor voltageGain sensitivityAssumed local HD3Output contributionExceeds -140 dB?
Bit 0120 kΩ1.0015003.994 Vrms0.150%-125.0 dB-181.5 dBNo
Bit 162 kΩ1.0029033.988 Vrms0.289%-125.0 dB-175.8 dBNo
Bit 233.2 kΩ1.0054223.978 Vrms0.539%-125.0 dB-170.4 dBNo
Bit 318.2 kΩ1.0098903.961 Vrms0.979%-125.0 dB-165.2 dBNo
Bit 410 kΩ1.0179983.929 Vrms1.768%-125.0 dB-160.1 dBNo
Bit 55.1 kΩ1.0352873.863 Vrms3.408%-125.0 dB-154.4 dBNo
Bit 62.74 kΩ1.0656673.752 Vrms6.160%-125.0 dB-149.2 dBNo
Bit 71.5 kΩ1.1199123.569 Vrms10.699%-125.0 dB-144.4 dBNo
Bit 8820 Ω1.2192183.276 Vrms17.956%-125.0 dB-139.9 dBBorderline
Bit 9430 Ω1.4175372.815 Vrms29.380%-126.5 dB-137.2 dBYes
Bit 10220 Ω1.8141112.194 Vrms44.653%-131.7 dB-138.7 dBYes
Bit 11120 Ω2.4863751.594 Vrms59.238%-136.7 dB-141.3 dBNo
Feedback at maximum gain180 Ω4.1958193.047 Vrms76.167%-125.0 dB*-127.4 dB*Yes
 
Nice, am I reading it right that the green trace is at ~14Vrms? The primary distortion mechanism is electric field related, so scales with voltage not current
The prominent rise under 200Hz points rather to temperature driven distortion. Which is surprising since the MELF has over double specced power rating. If it was the field it would not be so frequency dependent. If there is a field difference it is under my noise floor.
 
Time for another progress update:

Firstly I've had a conversation with Erin about the HDMI requirement. If you've watched his videos you'll know he uses an Apple TV as his main source, so then the primary output of that is the ARC connection from the TV itself. If he wants to compare two devices (lets say a WiiM amp ultra and another integrated amp/streamer) then both need to receive the same audio signal. Something like this. So I've shared this picture with him and we'll see if it's accurate, because if it is we can simplify out some redundant ARC/SPDIF conversions. Watch this space.

abx-pure-hdmi-customer.png


Secondly, it's clear the Van Alstine device is not really an ABX device. It plays A and B in a random sequence and asks the listener to decide if they heard a difference. The listener can go back to a previous "trial", but each trial is just one signal. That's fine as far as it goes but causes user fatigue in keeping track of the choices made, and doesn't offer a true A/B/X selection during each trial.

Thirdly, the automated fade in/out, delay compensation, source/speaker level synchronised switching, phase mismatch detection, level calibration, signal generation etc of the new box are simply absent from any device available. Then we have the automated audit trail with timestamps, extra outputs for recording the session, app control, etc. There's a huge amount of work in doing a decent ABX test with hardware, and our proposed device genuinely makes that a lot easier. This isn't just about trying to discern negligible differences between DACs, it's about practical testing of e.g. different room correction settings, or whether an amp struggles to drive certain speakers.

Fourthly, I've created a CMOS speaker-level switching module as an option. The relay based module is effectively unlimited for domestic audio purposes in the voltages and currents it can handle (150V, 20A), but does make switching noise which can be annoying. The CMOS version will be rated to only 60V P-P (42Vrms) and 10A. Which is still a ludicrously loud 400Wrms into 4ohms. It's also a bit more expensive.

Screenshot 2026-08-10 at 16.43.45.png
 
Digital module using a pico 2 running DSPi, with USB Audio in (up to 8 channels), 1 x SPDIF optical in, 2 x SPDIF optical out, and 1 x SPDIF coaxial out

Screenshot 2026-08-10 at 16.57.49.png
 
Firstly I've had a conversation with Erin about the HDMI requirement. If you've watched his videos you'll know he uses an Apple TV as his main source, so then the primary output of that is the ARC connection from the TV itself. If he wants to compare two devices (lets say a WiiM amp ultra and another integrated amp/streamer) then both need to receive the same audio signal. Something like this. So I've shared this picture with him and we'll see if it's accurate, because if it is we can simplify out some redundant ARC/SPDIF conversions. Watch this space.
All that complexity so one can use an Apple TV??? Why not use a streamer with S/PDIF out and split/repeat that? The moment you put HDMI in there, complexity goes through the roof and technically you need a license to sell it. The source for example wants to exchange EDID and capabilities with the renderer. In your diagram, which would that be? The first or second box? And we have not even touched on HDCP, key exchange, etc. You are basically building the front-end of a dual zone AVR -- not an easy job.
 
Secondly, it's clear the Van Alstine device is not really an ABX device. It plays A and B in a random sequence and asks the listener to decide if they heard a difference. The listener can go back to a previous "trial", but each trial is just one signal. That's fine as far as it goes but causes user fatigue in keeping track of the choices made, and doesn't offer a true A/B/X selection during each trial.
I was afraid it was this bad. It is not even "AX."
 
That analog board again - headers updated due to a rework of the power and control board.

Screenshot 2026-08-10 at 17.04.21.png
 
Back
Top Bottom