QuantAsylum QA400 and QA401

A couple of questions here. I still have a QA400 and a win10 laptop. Can I still use that device with the new software? Any issues found? Then anyone who bought the RTX and since you have that aren't going to be using your QA401 any longer could you PM me with your price for that as I could probably use the newer QA401? Or if not please tell me what I can't do with my QA400 that I could do with the QA401. Thank you for your patience and understanding. I don't have the cash flow to keep up with the Jones.

Cheers
 
QA401 noise measurement

Is there any guidance or are there certain best practices for how to measure amplifier output noise with the QA401?

I have a headphone amplifier that SPICE shows should have a total noise of 2.7 μVrms with the input shorted to ground over a bandwidth of 20 Hz to 20 kHz. I would like to verify this. Is this achievable? And how would you best go about this?
 
Member
Joined 2004
Paid Member
I would do some basics to figure that out. I usually prefer to work in root Hz levels so bandwidth drops out and you can look at specific band points.

Your SIM should give some numbers that make this pretty simple.

On the QA401 you can short both inputs and measure the level in the 48 KHz mode as a basic starting point. The best way in my experience to get a measure of input noise is to connect a variable resistor across the input and increase the value until the measured voltage at target frequency (marker) increases by 3 dB. Then calculate the noise generated by that resistance. There are thermal noise calculators on the web that make this pretty painless.

Essentially you need the internal noise of the QA401 at least 6 dB less that your headphone amp to get meaningful measurements.

You can build a low noise preamp to put in front of the QA401 but that's not simple. There is a project on Diyaudio for one.
 
Is there any guidance or are there certain best practices for how to measure amplifier output noise with the QA401?

I have a headphone amplifier that SPICE shows should have a total noise of 2.7 μVrms with the input shorted to ground over a bandwidth of 20 Hz to 20 kHz. I would like to verify this. Is this achievable? And how would you best go about this?

Agree with Demian, the definitive answer would probably need a pre-amp for your anticipated spec.

You can try the following:

1) Reset the QA401 to defaults via File->Reset Startup Defaults
2) Short all inputs on the QA401
3) Increase FFT size to 64K and run
4) In the upper left corner you can read the RMS. It should be around -115 dBV, which is about 1.7 uVrms. Note this measurement.

Then

1) Select Edit -> Snapshot left channel data.
2) Connect your DUT and set to max gain with input of DUT shorted
3) Measure the new RMS. You are looking for a meaningful rise over the -115 dBV figure.

You can compare the new data (your DUT) in yellow with the green data (the noise floor of the analyzer).

If your calcs are for 2.7uVrms, then that's about -111 dBV. You can probably make that out. But to be definitive, as Demian says, you want 6 dB or more of margin to your tester

If you want to make a a-weighted measurment, just hit the A Weighting button. Usually people report noise measurements with A weighting, but my personal preference is to look at them with no weighting.
 
I keep looking at the QA401, the REST interface looks useful, it should be possible to automate some amp testing with this.

The only downside seems to be that it *still* needs some random windows .DLL loading over Mono or something. I'm not even sure I want to look at that now ... I've heard of Mono, it appears to be some ghastly system for running Windows .dlls on Linux .. why? Why not just publish the actual interface to the unit, it can only be commands and parameters sent over USB, what's so hard about that?

As far as I can tell, the basic problem with this analyzer is that there is no known interface to it. Even the designers don't seem to be aware of how the interface itself talks to the PC and the protocols and messages used. They talk about "dot net remoting" which no one seems to understand at the hardware level, and I've never seen a command interface for the unit itself published anywhere. Presumably they have just let .NET manage the comms between the unit and the PC and load some firmware to the unit itself and what is actually travelling over the wire is opaque to them, or varies too much with each update to be reliably documented, so you can either use their .NET stuff ... or ?

The result is it is almost unuseable for measurement automation. I'd like a system with some scripting to automate amplifier testing in production, but what the QA401 seems to offer is the ability to write custom software in C# ... do I really want to fire up Visual Studio and produce new binaries etc every time I decide to tweak a test scenario?

It would be nice if there was a simple scripting interface that ran a Lua script or similar, so it could just be tweaked with a text editor ... I'm sure I could write a C# program that loaded Lua scripts up processed them calling the appropriate QA401 functions over .NET ,,, but honestly, my days of doing other peoples development for them are long gone ...

For now, I'll stick with my trusty Neutrik A2, the QA401 looks a nice unit, but it's opaque interface and deep dependency on the Windows subsystem is a big mistake in my opinion. Probably great as a desktop GUI analyser .. but frankly a decent soundcard and a copy of REW can do a lot too. For production automation testing, it simply requires too much work as they haven't provided a simple scripting interface. The REST interface looks useful, a step in the right direction, I'll look again when they have got rid of that ghastly Mono nonsense.
 
How does the QA401 FPGA get updated?

A question here for Matt or anyone else who knows. Never has been clear to me how the QA401 FPGA gets updated. A few of the QA401 updates mention including an update to the FPGA, like the most recent V1.729:

V QA401 V1.729 which mentions updating the FPGA

which says: "After installing this version, please re-plug the QA401 to ensure the FPGA is updated!"

Does that mean... "unplug the QA401 USB cable from the PC, if it is already connected when this V1.729 updated is installed on the PC, then plug the QA401's USB cable back into the PC. The QA401/PC software will then somehow figure out the QA401 FPGA needs to be updated and proceed to do it?" :) That is my read on it anyway. Or does it mean something else?

Thanks is advance!
 
Last edited:
An FPGA's configuration is stored in non volatile memory and is loaded at power up. It is the configuration in the nvm which is updated. The QA401 must be power cycled for the FPGA to get the update. Since QA401 is USB powered then one would unplug the USB cable, wait a bit and plug the USB cable back in. Alternatively, reboot your PC or laptop.
 
I keep looking at the QA401, the REST interface looks useful, it should be possible to automate some amp testing with this

Hi rszemeti, yes, that is the motivation and goal: A clean interface that is supported by just about every programming language on every platform.

The only downside seems to be that it *still* needs some random windows .DLL loading over Mono or something. I'm not even sure I want to look at that now ... I've heard of Mono, it appears to be some ghastly system for running Windows .dlls on Linux .. why? Why not just publish the actual interface to the unit, it can only be commands and parameters sent over USB, what's so hard about that?

If you want the raw audio stream, then you can get it via 3rd party Asio401 on Github (the author KNOWS Asio!). The source code for the Asio driver is there too, and so you can see what is required to talk to the QA401.

But the QA401 is more valuable, IMO, when the hardware (the box) and software (running on your desktop) are working together to actually compute the THD for you. So, over the both the dotnet remoting *or* REST interfaces, you tell the QA401 box to do the following:

1) Set the parameters for acquisition (generator level, FFT size, etc)
2) Perform the acquisition
3) Query the THD

In that scenario, you WANT a desktop in the path because the desktop can do incredible things that the box by itself could never do. Your desktop processor is 10X faster that what could ever be in the QA401 box, your desktop has 40X more memory bandwidth, you desktop has 4X more cores. Working memory sets can grow to 100 MBytes or so, which would absolutely crush whatever processor you could put into a box.

And so, having something on the PC to do all this makes a lot of sense from a compute perspective. But that means something--either a GUI or a headless command line app--needs to run in order to take advantage of the desktop.

You don't need Mono to run the headless app on the PC or Linux--you just need to install the dotnet runtime. I'm pretty sure it will run as-is on a Win10 machine: Just type 'dotnet qa401.dll' in the dll directory and it will config the QA401 and you are ready to control via REST. It's still alpha but getting closer. More here

The result is it is almost unuseable for measurement automation. I'd like a system with some scripting to automate amplifier testing in production, but what the QA401 seems to offer is the ability to write custom software in C# ... do I really want to fire up Visual Studio and produce new binaries etc every time I decide to tweak a test scenario?

Tractor will do much of this for you without having to write any code.

You add tests (such as THD, gain, etc) and specify parameters for each test (eg 1 KHz, -10 dBV output level, pass fail range, etc)

Once you have assembled a collection of these tests, you can run them on the amp under test and you get a pass/fail at the end. The next checkin of Tractor will automatically log test results to a cloud database or a local sql database. It also allows you to scan in barcodes before testing.

And if you have a QA450, then you also easily do amp output impedance tests, amp efficiency tests, etc. Watch more here:

YouTube

So, you pretty much get turnkey with Tractor:

1) Scan a product barcode
2) Run a list of tests with parameters you specify
3) All tests can get logged to a cloud or local database if you want
4) You get a pass/fail at the end. Connect another amp, run it again.

To recap:

QA401 GUI: The app used for making basic measurements, with some automation via plug-ins (eg graph THD+N versus power output). App can be controlled via Dotnet Remoting if you want to write code to control it directly. Windows only. This is more for lab use by an engineer on their desktop.

QA401H: Headless version of QA401 app, cross platform, REST interface. Still alpha. This is more for a factory floor, driven by code you write.

Tractor: Open source framework for driving test boxes. You don't need to write any code to use the QA401 and QA450. But if you wanted to add in a SCPI power supply, you'd need to write code. Tractor currently uses the QA401 Dotnet remoting to the control the QA401, but in the future it will use REST too. Still alpha, but we use everyday to test QA401 hardware before shipping.

Long term, the Dotnet remoting goes away and everything moves to REST.

It would be nice if there was a simple scripting interface that ran a Lua script or similar, so it could just be tweaked with a text editor ...

I've not used Lua, but I see there are REST libraries for Lua. In the end, if you can issue the following HTTP commands via the Lua lib (connecting to the QA401H), you can make an automated THD measurement:

1. HTTP PUT localhost:9401/Settings/AudioGen/1/1/1000/0
2. HTTP PUT localhost:9401/Settings/BufferSize/32768
3. HTTP POST localhost:9401/Acquisition
4. GET localhost:9401/ThdDb/1000/20000

Line 1 enables the first audio generator at 0 dBV and 1 KHz.
Line 2 sets the FFT size to 32K
Line 3 starts the acquisition and blocks until finished.
Line 4 asks "what is the THD (in dB) of the acquisition if the fundamental is 1 KHz and the max bandwidth for harmonics is 20 KHz?"

In response to the Line 4 GET, the QA401H software returns:
{"SessionId":"286930", "Left":"-101.929476869617", "Right":"-98.8973249362777"}

This is a well-formed JSON response, and from that, your Lua REST library can extract the THD was -101.9 dB on the left channel.

There are a lot of pieces for sure and it can get confusing no doubt. But if your goal is to automate the testing of amps, then I think Tractor is the way. If you can PM me a list of measurements you want to make, I could tell you which we could make out of the box, and give an estimate on how long it would take to add others if they made sense. If you are a manufacturer, if you send a a loaner amp we'll automate the testing and send you a test plan script with measurements you can review. And then, if you decide to buy, you can run that same test plan against a few dozen units at your place and analyze the results and see if it makes sense. If not, there's a no questions asked return policy.

I don't know of a faster and lower-cost way to automate amp testing today.
 
And to follow up, yes we are an amp manufacturer Matrix Amplification ... you'll find us on the web, we sell a few amps from time to time ( PA amps 500 to 5,000W per channel) and guitar amps 400W to 1000W per channel, we have a few small bands using our gear ( Metallica, Linkin Park etc, ) but we currently do our amp testing manually. Automating the process would save us a lot of time and improve quality control and traceability.

I think a REST interface would work best, because I can script the various additional commands to switch the sources around (we have 4 channel amps as well as 2 channel, infact most of the PA stuff is 4 channel) and switch the loads around etc and log the entries to a MySQL database, produce a PDF etc. I suspect Tractor would not support driving the additional external switching?

I don't think we need to send a loaner amp in, I think we'd prefer to craft our own tests and tweak as we go along. I can easily find a batch of 50 of any particular type to test and get a spread of results ... I suspect building the external interface (input and output switching load switching etc) will be the majority of the effort.
 
That seems like it might do what I want ... infact, it sounds like Tractor might do exactly what I need. I have however looked all over your site, and quite possibly I am blind, but I can't find a download link for the "Tractor" installer, perhaps you could point me in the right direction?

Hi rszemeti, Tractor and the QA401H are both on github, and yes, hard to find for now. Once both are out of early testing they'll be easier to find from the main site.

Tractor is >>here<<
and QA401H is >>here<<


Looking at the Tractor release I can see it doesn't have the cloud database code checkin yet. I'll make sure both are updated by end of week with the latest builds. The next checkin also has the ability to audition WAV files. The way this works is you'd record some dry line-level guitar wav files, and then those wav files play and the operator is instructed to sweep the pots listening for scratchiness. It's not a required test, but it's in the toolbox of Tractor.

And to follow up, yes we are an amp manufacturer Matrix Amplification ... you'll find us on the web, we sell a few amps from time to time ( PA amps 500 to 5,000W per channel) and guitar amps 400W to 1000W per channel, we have a few small bands using our gear ( Metallica, Linkin Park etc, ) but we currently do our amp testing manually. Automating the process would save us a lot of time and improve quality control and traceability.

Oh yea! I've gone to NAMM the last few years to meet with boutique stomp-box and amp vendors and definitely see where you want to go. For us, it's a sizable market--we just need to make sure we can get the pieces in place that companies like yours need.

I think a REST interface would work best, because I can script the various additional commands to switch the sources around (we have 4 channel amps as well as 2 channel, infact most of the PA stuff is 4 channel) and switch the loads around etc and log the entries to a MySQL database, produce a PDF etc. I suspect Tractor would not support driving the additional external switching?

For a company such as yours, we'd happily put the stubs to enable whatever switching you might want into Tractor. But yes, you could go the REST route with the QA401H too and roll everything yourself.

Feel free to send mail to our support at quantasylum dot com alias if you'd like to discuss more there, or we can continue here.

Thanks, Matt
 
Hi Matt,

Sorry, but I went to the Tractor GitHub page and it appears to be source code, not an installer. I doubt many amp designers have VS2017, but for various reasons, I do. I could not get it to build though, some complaints about files having "the mark of the web" on them, and I don't really have the time or inclination to work out what/why that is.

Providing source code is great if you are targeting amp designers who also happen to be Windows C# developers (a very small target market I may suggest) and it certainly is very useful to be able to get in there and chnage stuff if you really want to ... but I suspect most simply want a solution they can install and use, and as such an actual useable installer for the software might be the way forward. Certainly the Neutrik A2 came with its own software ready to go, and the Audio Precision I demo'd did too ... requiring the user to compile it themselves is perhaps a step too far for some?

Anyway when I get ten minutes I'll have another go at compililng it ... I did look at the 401H stuff already, but it appears to be missing the .dll from the repo.
 
UfayhTo.png
 
Hi rszemeti,

You need to go to the "releases" page for both the QA401H and Tractor repos. From the home page for each project, there are some links above the green bar just above the repo listing. Click on the "releases" text and it will take you to the release for each project. I've pasted both below:

QA401H Releases >HERE<


Tractor release >HERE<

For the QA401H, it's a zip file under the "assets" section of the release. Unzip to a directory of your choice, navigate into the "publish" subdir (the only one) and then open a command shell in that directory and type 'dotnet qa401h.dll' (no quotes).

If you don't have a QA401, then it will complain that it cannot find a QA401 and close after about 5 seconds. BUT!

If you type the 'dotnet qa401h.dll' and then immediately go to your browser and paste 'http://localhost:9401/' (no quotes) then you can fetch the REST api to your browser from the QA401H app.

Alternately, you can view the API here: >HERE< on github

For the tractor app, there is a full installer in the assets of the releases section. It should be very friendly to install.

That will let you see what it feels like to create tests.

To jump start, try the following after launch:

1) Click "Add Test" button at bottom
2) Section the test category filter and pick "LevelGain"
3) Select "Test to Add" and pick Gain01
4) Click OK
5) Back at the main screen, you will see the list of tests on the left, and the details of the selected tests on the right.
6) You can change the parameters you see on the right. The test by default will emit a -30 dBV tone at 1 KHz, and the test expects to see a gain between -10.5 to -9.5 dB. You may change all this as your hardware dictates.
7) Click the "Run Tests" button. A new screen will open.
8) Click start. If you have a QA401 and it is set up, then it will do the test you just entered and give a pass fail.

Add other tests, including THD, IMD, noise floor, etc.

Be aware that lots of breaking changes are coming, and whatever files you saved will probably not load again when the next release comes out. As I said, I hope the next release will go up before the weekend.

Thanks, Matt
 
PS. If you want to build the source, you just need to remove the "mark of the web" from the xml file. That can be done by closing VS, right clicking on the indicated file in explorer, properties->security->unlock the file and hit apply.

And then, VS is saying you need to add a reference to the QA401 gui application. Start VS and load the project again, go into the project solution explorer, right click on references, select 'add reference' and the browse to the install location of the QAAnalyzer.EXE (the QA401.exe app---NOT the QA401H.dll).

Let me know if you need more details.