This sequence measures the anechoic response of a loudspeaker in an ordinary room using both a near field and time-windowed far field measurement “spliced” together to cover the full bandwidth of the loudspeaker’s response from 20 Hz to 40 kHz. First, the microphone is placed very close to the low frequency driver (less than an inch from the woofer), and the near field frequency response measured using a 1/12th octave stepped sine). Next, the microphone is placed in the far field and the frequency response is measured using a continuous log sweep with the Time Selective Response analysis algorithm. An option is available for measuring a ported loudspeaker. The sequence displays both measurements on a graph, showing the overlap range where the measurements are equal. From this, the user selects the precise frequency at which to splice the two halves of the measurements together to obtain the full range free field response of the loudspeaker.
The purpose of this sequence is to compare the response of an artificial mouth when face masks of different construction are mounted on the mouth. The sequence assumes a lightweight disposable mask and a heavy multi-layer cloth mask. A stepped sinewave from 10 kHz – 100 Hz is played from the unoccluded mouth and the operator is then prompted to mount and measure the two masks over the mouth. The three mouth responses are then displayed on one x-y graph and the difference curves (unoccluded mouth vs masked mouth) are displayed on another. Finally, the average attenuation created by each mask across the measurement range is displayed on a table.
Note that the curve names are constructed by selecting the “Use Input Data Name” option on the Curves tab of the Analysis editors. The appended text in parentheses (No Mask, Disposable Mask, Cloth Mask) comes from the custom naming of the three Recorded Time Waveforms so if you wish to edit these, it can be done by editing the Waveform names in the Acquisition steps.
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.
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
This sequence, inspired by AES papers on statistical models to predict listener preference by Sean E. Olive, Todd Welti, and Omid Khonsaripour of Harman International, applies the Harman target curve for in-ear, on-ear and over-ear headphones to a measurement made in SoundCheck to yield the predicted user preference for the device under test. The measurements are made in SoundCheck and then saved to an Excel template which performs the necessary calculations to produce a Predicted Preference score using a scale of 0 to 100. The spreadsheet calculates an Error curve which is derived from subtracting the target curve from an average of the headphone left/right response. The standard deviation, slope and average of the Error curve are calculated and used to calculate the predicted preference score. The sequence also provides the option to recall data rather than making a measurement, which saves time for engineers who already have large quantities of saved data, and enables historical comparison with obsolete products.
This sequence characterizes a microphone’s ability to passively and/or actively reject noise in the user’s environment. Unlike traditional microphone SNR measurements which calculate a ratio based upon a reference signal and the microphone’s noise floor, this method utilizes a signal (speech played from a mouth simulator) and noise (background noise played from two or more equalized source speakers) captured by both a reference microphone and the DUT microphone.
First a recording of the baseline ambient noise in the test environment is made and a 1/3 octave RTA spectrum is calculated from the recording. Next, the speech signal (mouth simulator) and noise signals (Left and Right speakers) are played consecutively and recorded separately using the reference microphone. A 1/3 octave RTA spectrum is calculated from each recorded time waveform. Next the same measurements are repeated using the DUT microphone. The resulting RTA spectra are then post processed to produce a signal gain spectrum and a noise gain spectrum which are then used to derive the SNR spectrum of the DUT mic. For best accuracy, the Signal and Noise spectra should be at least 5 dB above the ambient noise floor of the measurement environment.
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.
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.
This sequence allows you to test devices without an analog input such as smart speakers, tablets, cellphones and MP3 players using SoundCheck’s frequency-based trigger functionality. This method offers improved accuracy over previous level-based triggering, especially in noisy environments. A stimulus WAV file is created in SoundCheck, and copied to the device under test, where it is played and the response recorded in SoundCheck as if the stimulus were played directly from SoundCheck. The stimulus WAV file to be used on the device under test (DUT) may be customized in the stimulus step.
Note that this sequence uses the level-based trigger available in SoundCheck 16.1 and later. If you are using version 16.0 or earlier, please see the level-based trigger sequence.
This sequence allows you to measure a playback system without analog inputs using a 6 microphone array. Specifically, the sequence is designed to measure an in-car audio system. A stimulus WAV file is created in SoundCheck and transferred to the device under test (DUT) where it is played back and the response captured by SoundCheck using a triggered record function. The 6 recordings are batch analyzed to produce individual fundamental curves and the curves are post-processed to produce a single average curve from which an average sensitivity value is calculated.