Waveform Windowing

This sequence demonstrates how SoundCheck’s Windowing post-processing function is applied to waveforms to remove measurement artifacts that might otherwise create false auto delay values and subsequent analysis errors.

This sequence uses data from a customer who was measuring the directivity of a hearing aid-type device by mounting it on a rotating HATS and using a short duration log sweep. The DUT does not have a perfect seal in the HATS ear and the devices signal processing produces a latency of around 35ms. When viewing the Recorded Time waveforms, both the leakage signal and the amplified signal can be seen. As the DUT approaches 180° the magnitude of the leakage into the HATS ear exceeds that of the amplified signal, creating false Record Delay values and subsequent analysis errors. This sequence applies a window to the Recorded Time Waveform to remove the early-arrival leakage, and calculates the true Record Delay values of the amplified signal, obtaining consistent analysis results at all angles of rotation. This sequence can be adapted to your other requirements, for example, removing early arrival signals from a waveform or editing out excessive delay in a waveform.


External Control of SoundCheck via TCP/IP

TCP/IP control of SoundCheck provides a powerful and expandable command format for controlling and interacting with SoundCheck via any programming language (C#, C++, MATLAB, VB.net, LabVIEW, Python, etc.), on any operating system, either locally or through a network. This is valuable for anyone wishing to control SoundCheck from an external program, e.g. as part of an overall test plan or for factory automation. Using this feature, a single computer can control multiple SoundCheck systems, simplifying production line measurements.

The ability to connect to, and control SoundCheck via TCP/IP first appeared in SoundCheck over 3 years ago, but for version 18, it has been enhanced with the ability to pass test configuration data into the memory list from external programs. This means, for example, that by externally storing parameters such as limits, test levels, and test signals, a single sequence can be used for multiple products, or testing the same product multiple times, simplifying sequence maintenance, and reducing test configuration time.

This application note and accompanying demo scripts walk you through how to use Python to:

  • Control a simple loudspeaker test setup, launching SoundCheck and running a sequence
  • Run a simple frequency response sequence from a command line interface, creating placeholder curves, values, results and waveforms in the MemoryList and pass values into the placeholders via external control.
  • Read a WAV file and use it as a stimulus for performing an FFT Spectrum measurement in SoundCheck


Triggered Record Using Chirp Trigger and WAV File (Version 17 and later)

This test sequence demonstrates SoundCheck’s Triggered Record – Chirp Trigger function for open loop testing of devices without analog inputs such as smart speakers, wearables, smart home devices, tablets and cellphones.  A stimulus WAV file is created in SoundCheck and transferred to the device under test, where it is played back and the response recorded in SoundCheck as if the stimulus were played directly from SoundCheck. The Acquisition step is triggered by the chirp in the stimulus file. Chirp triggers are more robust than level and frequency triggers which are susceptible to false triggering due to background noise.


Measuring Max SPL versus Frequency

This sequence measures the Max SPL of a transducer versus frequency that a device can play back with acceptable distortion. It is particularly valuable for designers using DSP algorithms to optimize the performance of their speakers.

It characterizes the Max SPL of a transducer by setting limits on specific metrics (THD, Rub & Buzz, Perceptual Rub & Buzz, Input Voltage and Compression) and then driving the transducer at a series of standard ISO frequencies, increasing the stimulus level until the one of the limits is surpassed. The sequence begins by measuring the frequency response and impedance of the DUT. The user is asked if they wish to use the -3dB from resonance frequency as the test Start Frequency or manually enter another value. The user is then prompted to enter a Stop Frequency, initial test level and limit values for the metrics of interest. The sequence then plays the stimulus Start Frequency in a loop, increasing the level +3dB with each loop iteration until one of the limits is exceeded.  The stimulus level is then adjusted -3dB and the sequence continues to a second loop which increases the stimulus level +0.5 dB with each loop iteration until the limit is exceeded. At this point, the limit results are saved to an Excel file, the stimulus frequency is incremented by a constant multiplication step and the process is repeated until the Stop Frequency is achieved. Every time the main loop is completed, the individual SPL and Stimulus Level x-y pairs are concatenated to master curves. At the end of the sequence, the Max SPL and Stimulus Level curves are autosaved in .dat format.