Measuring Amplifier for 2-Way Speaker with Tractor

Hi, I try to make a test setup measuring an amplifier with 1 input, integrated DSP and outputs with diffrent EQs for a 2-way speaker.
Because of the diffrent EQs I need diffrent masks for both channels, so I have to measure the frequency response seperatly. When I want to measure the channel 2 on input R the output L is automaticly muted and I have to change the connoction to from out L to R.

Is there a way to use diffrent masks for In L and R or to leave Out L unmuted while measuring In R?


Hi @passmedien,

In the FreqResponseA0 test, for example, you will see the Measure Left and Measure Right check boxes. If you uncheck the Measure Right Channel checkbox, then the test won’t care if the right channel fails.

So, you can have one test to measure left channel with one mask, and another test to measure right channel with a different mask.

But there’s not an option to mute one channel via Tractor. At best you can ignore the results. You’d need to write your own code to do something like that.

Thanks Matt,
I´m thinking of writing my tests in python to be more flexibel, but Tractor is so fast :slight_smile:
I did a workaround with a USB-relay and a shell command for now.

OK, understood! If you get a few minutes, it’d be interesting to learn what USB relay you used and what the shell command looks like to control it.

Optionally, in case you aren’t aware, there is source to Tractor, and the FreqResponseA01 test is at the link below. Note at line 44 you can see the call to TestMask. That call takes a single mask file argument, MaskFileName. But, you could make your own test called FreqResponseA73.cs (for example) and then add another text box (around line 20) to collect a mask file for the left channel and another maks file for the right channel.

        [ObjectEditorAttribute(Index = 215, DisplayText = "Left Mask File Name", IsFileName = true, MaxLength = 512)]
        public string LeftMaskFileName = "";
        [ObjectEditorAttribute(Index = 216, DisplayText = "Right Mask File Name", IsFileName = true, MaxLength = 512)]
        public string RightMaskFileName = "";

And then around line 44, instead of calling TestMask() once, call it twice (it’s very fast) and it can compute the test on the simultaneously acquired data. Maybe something like:

((IAudioAnalyzer)Tm.TestClass).TestMask(LeftMaskFileName, LeftChannel, RightChannel, false, out bool passLeft, out _, out _);
 ((IAudioAnalyzer)Tm.TestClass).TestMask(RightMaskFileName, LeftChannel, RightChannel, false, out _, out bool passRight, out _);

And then, a few lines before that where you see the DoFrAcquisition, you could mute the channel by calling SetMuting(bool muteLeft, bool muteRight) in case you absolutely needed the other channel to be muted. Then you’d need to run the acquisition twice (once for left, once for right). But you get the gist…

Let me know if anything above isn’t clear.

Hi Matt,
thanks for sharing your thoughts.
I will have a look in programming the test when I have a bit more time.

We are often using serial control relais for QCs with Clio, WinMF or LabView. Because I was to lazy to investigated how to send serial commands throug a shell command I used a KMTronic 8ch USB Relay.

There is a small exe which is controllable through arguments.

This is what it looks like in Tractor: