ABX – A Box Of Taboo

So over the past few months I have been working with a fellow technical nerd, Tom Day, to create our version of an ABX tester. Now I know you’re all going to get into a huff about how flawed the test is, or how not random it is, or blah blah blah. I’m not going to debate those arguments, they’ve been done to death. The purpose, at least for me, wasn’t about making people look foolish (which is why 90% of people who won’t be subjected to the test don’t do it); but rather about listening. Listening intently for what I found appealing, whether it’s “right” or “wrong” isn’t a concern, but rather about proving to myself that I’m not tricking myself into believing something that wasn’t happening. And hell, if I could take a few people with me down that path, that’s not the worst thing in the world.For those of you who don’t know. ABX testing can be described best as a random sampling in order to determine major differences between A and B. The box is supplied with an “A” source, a “B” source and then randomly supplies an “X” output. If the box is doing it’s job, then the user won’t know what A or B is without some attentive listening. IE there should be silent switching. To use an example – User takes a microphone, mults it into 2 mic pres; then takes the output of those mic pres and supplies the box with mic pre “A” and mic pre “B”; the box decides an X (which can be plugged into your DAW or monitoring system), the user cycles between A, B and X before choosing what X is. The test repeats itself as set up by testing parameters. If at the end of the test the user successfully chose X 95% or better, then the user hears a discernible difference, good or bad. If not, then they did not. If repeated amongst a sampling of users and yields similar results in 95% of cases. The difference could be considered true or not true.

–Again I am not going to debate semantics of the test, let’s just agree to this. There is no “right” or “wrong” there is only what you hear or dont. Is this bad? No. It’s observations.

Anyways, back on task. The box, the controller, and the data. The main purpose of this article is to provide you with enough resources that you can build your own, for your own entertainment or real shootouts – might be some rather practical purpose in comparing mic pres or something of the sort. Before we go any further is must be said that one should have a basic understanding of soldering and circuits to build the box itself (I’m not going to go into super fine detail). A knowledge of coding is also helpful, but being as it’s done and “stable;” it is not necessary. But if you do find errors, or can make it crash, by all means send me an email.


BOM (Build of Materials)

So below is a BOM and links to find it. I’m not claiming the links are necessarily the cheapest, just a place to purchase. It should be worth noting that the higher quality components you buy, the less susceptible to “interference” your ABX box will be. This will not be a cheap build, but is definitely dependent on the quality of parts you buy. Initial testing was also done on an Arduino UNO, not MEGA. So that could save you some money; but be warned the LCD (yes it’s built into the code, but not our build) will not work on the UNO.

1. Relays (ours were custom ordered by Tom Day many moons ago – still working on finding an equivalent)
2. Resistors – x2 10k ohm
3. Transistors – x2 NPN 2N4001
4. Circuit Board
5. Hookup Wire
6. 6pin DIN Cable
7. SPST Momentary Switch – x3
8. Blue LEDRed LED
9. LED bezel (It’s a package of 2)
10. Remote Enclosure
11. XLR/TRS Combo Panel Jack – x4
12. Male XLR Panel Jack – x2
13. 9v Battery holder – x3
14. DPDT Switch
15. 6pin DIN Connector Male
16. 6pin DIN Connector Female
17. Main Chasis Enclosure
18. Arduino Mega (possible with smaller board – but you’re on your own)
19. Arduino DataLogger


Using the schematic provided below, this should be pretty self explanatory. You will need items 1-5 on the BOM. The switching circuit itself is relatively simple. The most important thing to note is the pinout of the relays you purchase. Odds are they are not the same as the ones we used. Pay particular attention to the diagram of the relays (in circuit) and make adjustments based on the relays you purchased. Your relays may also change the voltage required for power – so look for that as well. We got away with 2 9v batteries.


Again fairly simple. I did not provide a schematic for this. You will need items 6-10 on the BOM. The entire circuit shares a common ground and the 5 remaining wires from the cable will connect the 3 switches and 2 LEDs. You’re on your own for drilling the chasis out and placing the components. The tricky step here will be the cable color coding. Make your adjustments based on the cable you use. Testing can be done on the remote by running the code (connect the Arduino to USB) and the wires to the headers of the card. I used header pins (available from any Arduino supplier) to help make a more secure and detachable connections.


This one is pretty simple. Drill holes for your XLRs and a couple through holes for cabling (See pictures). Plot your points for where you want your Arduino to live, drill and use stand-offs to keep the Arduino from shorting out to the chasis. We chose to have ours on the outside to not interfere with the audio path. Once you have holes and everything mounted then run your cabling to the circuit and Arduino.


The Arduino board really communicates with the remote and then fires a voltage to 1 point in the main circuit (the trigger) and needs a common ground with the circuit. So use the schematic to get the pinouts for the board to the remote and how to connect the board to the circuit. The Arduino gets it’s power from an external power supply or USB, not the 9v batteries. So make sure you hook one of those up. You could also wire up a separate 9v to the switch.


Here’s some photos to hopefully add some clarification to the process.
High Resolution Photos


Now how do you know whether you’re right or wrong? Well for one, the programming will show you via the remote. After the testing phase completes all LEDs will blink and then A and B flash in order of testing. Then it will repeat the all LED blink and blink a new pattern of A and B, which will denote user choices. Now this will happen pretty fast, you probably won’t be able be able to write it down. That’s where the SD logger comes in. All testing will be time stamped and saved. You can then import those files into the ABX Analysis spreadsheet provided below and it will map appropriately across the grid. Oh the joys of CSV files.


Now there will and should be a lot of self discovery here, both in the building and in the ABX’ing. I left alot of grey area not for the sake of being incomplete, but because I expect you to want to learn a few things in this process. Otherwise you wouldn’t be doing this project to begin with. Now if you find yourself stuck, I’m happy to help along the way, send me an email.

If you’re not interested in building said ABX tester and just want to subject your skills to its deception. Well email me still and I’ll bring mine over and we’ll test both our poor levels of understanding.

Last but not least – all of this should be considered Beta versions. I make no guarantees that what you build will work like mine, or that this won’t bruise/boost your ego.


Good Luck!




ABX Schematic
ABX Analysis
ABX Software (Text File)
ABX Software (Arduino File)