100 Things #70: Make Smarter Tests with Sequence Logic

SoundCheck has sequence logic integration through every step. The ability to use If/Then logic with sequence steps means sequences expand beyond a linear path. Loops are easily created, perfect for using turntables to create polar plots. Incrementing and measuring level increases means it’s easy to automate testing devices to specific SPL, distortion, and perceptual distortion levels. Conditional branching can also help production line efficiency, where operators can be guided through calibration procedures if DUTs change.

Make Smarter Tests with Sequence Logic

Learn more about sequence logic in SoundCheck

If you want to see sequence logic in action, check out conditional branching in our pre-written M-Noise sequence.

Video Script:

Conditional branching is a powerful tool that lets you alter the order of step execution in the sequence based on the pass or fail status of a particular step. Using sequence logic in this way offers unrivaled flexibility in complex sequences.

If we right click on any step in our sequence, we can see a variety of options within the configuration window. These two options, Jump on Pass and Jump on Fail, let us use conditional branching and looping within our sequence. From the dropdown, we can select any other step for the current step to jump on pass or fail to. This can be used to skip particular sections of the sequence, or even to create loops.

For example, if I am measuring the frequency response of a loudspeaker, I can configure the Analysis step to “jump on pass” back to our stimulus step. I can then define the loop to last for a certain amount of repetitions and then end the loop. So here I could say after 4 repetitions, jump to my final display. This will give us a total of 5 runs through our stimulus and acquisition.

Every time the loop occurs, our index will increment. This can be used to simply track the number of times the sequence has looped. It will start at 0, then increase by 1. But we can reference this value in other steps in the sequence. I could define a starting level, and then increment that level by 3dB on each one of our loops. I’ll point to this value in the stimulus step, and now when I run my sequence I play the signal out 5 times, each time increasing the level by 3dB.

Conditional branching can also be used to jump around entire sections of sequences. For example, the sequence could ask the operator if they need to run a pre-conditioning test and jump accordingly. Another application would be to check for a signal near the beginning of a long sequence and if it fails then jump to a message step that warns the user that no signal was detected instead of running the entire sequence.. This way, the operator doesn’t waste time testing a bad device, and different autosave steps can be used to mark the data as a failure.