Testing and analysing the audio performance of speakers, amplifiers and other equipment requires different pieces of hardware and software. My main system is centered around a computer equipped a high-quality audio interface and a dedicated audio analysis software, and a measurement microphone for acoustic tests. Of course, I also use an oscilloscope and a multimeter.
Schematic of a typical testing setup (from the MATAA manual). In this example, the device under test (DUT) is a loudspeaker, which is fed with a test signal from a computer equipped with a sound card or external audio interface via a power amplifier (A). The test signal reproduced by the loudspeaker is recorded with a microphone (B) via a suitable suitable pre-amplifier (C) and an anti-aliasing filter (D). The signal is then digitized using the computer hardware, and is then analyzed using the different computer algorithms.
Acoustic analysis of a loudspeaker using a microphone. The loudspeaker is placed on a chair to increase the distance to the floor, which results in a better separation of the signal reproduced by the speaker and its echo from the floor.
The audio interface provides the digital/analog and analog/digital converters that link the computer with the test devices. In many cases, the sound card built into most computers is all you need. If you want more, or if you want to protect the computer from funky test equipment frying the motherboard of your computer, you may use an external audio interface. I mostly use an external M-Audio FireWire 410 Audio Interface (FW-410) for my audio measurements. This interface was designed with music production in mind. However, the FW-410 is very well suited for audio testing purposes due to it’s high-precision audio hardware. The following are some useful application notes when using the FW-410 for audio testing (these notes may also be useful with other audio interfaces):
- Signal input is either microphone at front panel or line level at rear of the FW-410 (there is no line-level input at the front). Choose input using the “Mic/Line” switch on the front panel.
- Headphone output on the front panel is for monitoring during sound recording. Don’t use this as signal output for audio measurements. Use the line level ports at the rear of the FW-410 instead.
- Sample rates higher than 96 kHz may not work well with asynchronous sound I/O. Just use 96 kHz or less if possible.
- The driver software comes with an elaborate software mixer program. As far as I can tell, this is used to route the different audio ports to the headphones / monitoring port on the front panel of the FW-410. For audio measurements, just use the default settings of the software (click «reset» if you screwed up the settings). The software also displays the signal levels at the different sound I/O ports, which is useful with audio measurements.
- M-Audio tends to be slow with maintaining the driver software. Let’s hope the driver still works with future releases of Mac OS X. Linux support for the FW-410 may be better (I have not tested this yet).
I mostly use MATAA, which I prefer over ARTA, FuzzMeasure Pro, HBX, etc, due to its versatility and functionality.
I use a Behringer ECM-8000 measurement microphone. This microphone does not cost an arm and a leg, but it still provides decent measurement performance. Like many other measurement microphones, the ECM-8000 requires a phantom voltage and a microphone pre-amplifier. I use the Stage Line MPA-102 microphone amplifier, or the built-in microphone amplifier of the audio interface.
FuzzMeasure is an audio measurement software for Mac OS X. The operational princple behind FuzzMeasure is the same as with most other computer based audio analyzers (e.g., MLSSA, CLIO, ARTA, or my own MATAA). FuzzMeasure sends a test signal (sine sweep) to the speaker, records the signal produced by the speaker, and calculates the impulse response by deconvolution of the original and the recorded signals. The impulse response measurements are stored in a project file, and each measurement can be evaluated using different analyses either in the time domain or in the frequency domain (this is very similar to what I did with MacSpeaker in the good old times of Mac OS 7). For instance, FuzzMeasure can filter the impulse response using different window functions, calculates step or frequency response, and produces waterfall plots.
I decided to try FuzzMeasure Pro 3 to see how I get along with it when I did some work on my AOS S24 speakers recently. After playing around with the free demo, I pulled the trigger and payed 120 EUR for the full version.
Here are some random notes from my first days with FuzzMeasure:
- Using FuzzMeasure is very easy and straightforward most of the time. I didn’t need a manual while getting started with the first few measurements. This is not only because I know how this stuff works from my experience with programming MacSpeaker and MATAA, but also because the user interface is designed very carefully. However, there are a few things that didn’t work, most likely because I couldn’t figure out how to achieve them (see below).
- FuzzMeasure is very nicely integrated into the whole Mac OS environment. Exporting plots or configuring the audio devices is a piece of cake (except if you’re left with an M-Audio FW410 interface, which starves the microphone with poor phantom voltage and comes with the worst driver software, which tends to crash your computer every few minutes even in the year 2014 – but I can’t blame FuzzMeasure for that).
- Repeating measurements that need to be evaluated in the same way over and over can be cumbersome. FuzzMeasure just applies it’s (hard-wired?) default time window to every new measurement. When I optimized the crossover filter of my speakers and measured the effects of my modifications, I had to adjust the window manually for every new measurement, which takes a minute or two to get everything right. My life would have been much easier if new measurements would just inherit the window settings from the previous measurement, or if a default window setting could be specified. With MATAA, I’d just put the window function into the script that handles the measurement and the subsequent processing and analysis – no tweaking and fiddling necessary.
- FuzzMeasure exports frequency domain data to *.frd data files, a file format that is commonly used by other audio analysis tools. Time domain data, however, are exported to *.aiff sound files, which are pretty useless for most audio analysis tools. Why is there no *.tmd export, or even a *.tmd import?
- The only test signal available with FuzzMeasure is a sine sweep. Sometimes it would be nicer to have other signals, too. I like using noise signals (red, pink or white), maximum length signals (MLS), sine bursts, square or sawtooth waves, etc. Such signals can provide a wealth of information that is hard to get with a sine sweep.
- How on earth do electrical impedance analyses work? I was able to dig out a very brief description of an impedance jig for impedance measurements. But how do I tell FuzzMeasure Pro 3 to actually do the impedance analysis? This functionality seems to be hidden in a quirky «plugin», but it’s use is a mystery to me.
- Frequency plots extend to ranges below the minimum frequency equal to the inverse of length of time window. If an impulse response (or step response) is cropped to length T, the result does not contain any sensible information about frequencies lower than 1/T. Plotting data at lower frequencies is misleading and just wrong.
- Measurements seem to go very wrong if the sound devices for input and output are set to different sampling rates. I can’t see a need for different rates, but users that are similarly stupid as me will have a hard time to understand what’s wrong. FuzzMeasure should check for equal sample rate settings of the input and output to avoid wrong measurements.
- Newbies (and everyone else) would probably love to see a list of different audio interfaces, microphones and other hardware with a brief description of their strengths and weaknesses and their suitability for specific applications.
- I couldn’t find a manual for FuzzMeasure Pro 3! Yes, there is a manual for version 2 floating around the internet in the form of a PDF file. And yes, I was able to get me started without the manual. But no, that’s not enough. There are a few quirky operations that are not obvious to me, as mentioned in the points above. And here are a few more: What are the different curves in the distortion plots? Why can I set colors for some plots, but not for others? Why do the measurement notes sometimes apply to the currently selected measurement, and sometimes they go into the next (new) measurement? FuzzMeasure costs a lot of money, so a manual is mandatory!
Overall, FuzzMeasure is a shiny and convenient software tool for audio engineers and DIY enthusiasts like me. While FuzzMeasure provides a number of elaborate and useful analyses, its use is mostly straightforward (if you know the theory behind its operation and how to use the software), but does not work as expected in some other cases (even if you know what you’re doing). The functionality of FuzzMeasure Pro is not unlimited, however.
My conclusion is that FuzzMeasure may be SuperMegaUltraGroovy and stuff, but I still prefer MATAA for serious work. At the end of the day, MATAA is a workhorse that does everything I want and need, the way I like it. If I need more, it’s easy to add new functionality due to the GNU Octave / Matlab foundation. MATAA is way more powerful and convenient for me due to the its seemingly endless scripting, data processing, and plotting possibilities.
After my somewhat disappointing conclusion, I asked Chris Liscio for a refund which he allowed with no issues. Nice touch, Chris!
is was a program for audio measurements, above all, loudspeaker measurements. However, I stopped maintaining MacSpeaker a long time ago. I lost all the program-code because of a disk crash (thank you Quantum). MacSpeaker was designed for the ‘Classic’ Mac OS 7–9 and does not work anymore with current Macs. As a replacement for MacSpeaker I recommend MATAA, which is a much more powerful tool than MacSpeaker.
This is how I described MacSpeaker in in the good old times of Classic MacOS 7: MacSpeaker makes use of the Macintosh sound hardware so that you do not need an expensive Analog-Digital conversion card. You only need a measuring microphone and perhaps a microphone amplifier. You will get a professional measuring system at a fraction of the price of comparable systems! Because the Macintosh has excellent sound hardware, the measurement accuracy of MacSpeaker is comparable to professional systems: 44.1 kHz 16-bit sampling; that is, CD quality. MacSpeaker controls all important loudspeaker measurements: From the measurement of the impulse response, a Fourier transform computes the frequency response of the loudspeaker (absolute and phase). Measurement errors due to unavoidable sound reflection from the walls can be filtered out. Thus, with MacSpeaker, you can measure the «frequency response in an anechoic chamber». Additionally, MacSpeaker can compute a so-called «waterfall diagram». This reveals the resonance behavior of the loudspeaker plotting time over frequency and amplitude. As a special feature, MacSpeaker can use an optional user-defined signal as measurement signal. Thus, for example, you can make burst or distortional measurements. With a little bit of imagination, you can fulfill your various desires.
MATAA is an extremely flexible and versatile audio analysis system. Similarly to many other computer-based audio analysis systems, MATAA applies a test signal to the device under test and simultaneously records the response signal for subsequent analysis. MATAA uses the computers built-in soundcard (or an external audio module) to play and record test signals to and from a device under test.
MATAA runs on all sorts of computer platforms because it uses Matlab or GNU Octave as a base (these are powerful number crunching programs which provide a huge toolbox of routines for data analysis and processing). This explains why MATAA is so flexible and easily extendible with custom test signals, data analyses, plotting procedures, and scrips to automate routine measurements.
MATAA is distributed as free software under the GNU General Public License.
For further information read the MATAA article in the audioXpress journal (I also provide the original version of this article, where the command examples are easier to read).
Obtaining and installing MATAA
- Make sure you’ve got Matlab or GNU Octave installed on your computer. I tested MATAA on Matlab version 6 and 7 as well as Octave 2.1, 2.9, 3.x, and 4 (I highly recommend Octave 3.0 or newer). Matlab is a commercial and proprietary software, whereas Octave is free and open source. See below to find out how to obtian and install Octave for your computer platform.
- Download MATAA. There are two methods to obtain MATAA:
- Download a recent version of MATAA as a zip archive from the MATAA project website at GitHub. Unpack the archive (if your browser didn’t do so already). If you later need to update to a more current version, download the most current package file, expand it and replace your previous version with the new one.
- Use subversion to download and track the most current version of MATAA with the following commands:
- Download MATAA: svn checkout https://github.com/mbrennwa/mataa/trunk
- Then rename trunk to mataa (on Linux or Mac OS X run: mv trunk mataa)
- If you later need to update to the current version: svn update
- Follow the instructions in the manual included with the files you downloaded in the previous step to install MATAA in your Matlab/Octave environment.
Further information on MATAA is available at the MATAA project website at GitHub. In particular, you can access and subscribe to the MATAA mailing list, where all sorts of things about MATAA can be asked and discussed. Using the mailing list is preferred to contacting me privately by email because:
- Other users subscribed to the mailing list can respond and participate in the discussion.
- Mailing list contributions will archived and will always be publicly accessible through archive.
If for some reason you cannot use the mailing list, you can still try contacting me directly by email.
The picture at the top of this page shows a screenshot of MATAA in action (with Octave 2.1 on Mac OS X).
MATAA needs your help!
- Complain if something does not work as expected! Chances are you found a bug, or the documentation is unclear. These things can only be fixed if you report them.
- Suggest new functions and tools for MATAA.
- Linux is fully supported.
MATAA supports sound input and output on Mac OS X and Windows (thanks to Shu Sang [firstname.lastname@example.org] for enabling sound I/O on Windows using ASIO! ), but not yet on other operating systems (e.g. Linux). Someone needs to enable sound input and output for MATAA on Linux (and other operating systems). The program(s) that handle the sound input and output from the soundcard are based on PortAudio, which provides a platform-independent environment for audio programming. Compiling the MATAA programs for sound in/out for different Linux distributions should be straightforward. I can’t do this, however, because I do not have a Linux computer.
If you think you can help in any way, please get in touch through the MATAA mailing list (see above).
Where to get Octave and how to install it
There are different ways to get and install Octave:
- The official Octave site has instructions on how to obtain and install Octave.
- Most Linux distributions have recent versions of Octave in their repositories. Use the package manager for your flavour of Linux to install it.