libmls is a multi platform library that you can use to measure frequency response of a loudspeaker or a room using your computer and an ordinary soundcard. With libmls you can do both MLS (Maximum Length Sequence) and Sinus sweep measurements.
libmls is meant to be linked into a host application. The souce package comes with a couple of sample programs that show how to use the library in an application.
libmls is tested on Linux and Windows XP. On a Unix system you can build libmls for OSS or ALSA so you should be able to build libmls on most Linux systems.


You need fftw2 or fftw3. You also need the development packages for your sound subsystem. If you are running Linux you should be able to get installation packages from your distribution's installation media.


Please use the Sourceforge download area. Be sure that you read the README file carefully so that you know how to set up your mixer for successful measurements. You also need a good quality microphone to be able to get reliable results.
Please note that libmls currently is licensed under the terms of the GNU Public License (GPL). This means that if you want to use libmls your program must also be licensed with GPL or with a GPL compatible license. If this is a problem for you, please contact the developers and we might work out a solution that fit your needs.

Installation instructions:

On Linux:


make install
Then you should be able to compile the examples.
On windows we use static linking at the moment. There is a binary package on the download page that you can download which contains executable example programs. However, to be able to use this binary you have to get fftw3.dll from the above fftw homepage.
If you want to use libmls in your own project you might have to compile it yourself. If so, download the windows source package. The project is written in standard C++ so it should compile in most modern C++ compilers. Note that it is currently only tested with the MINGW compilers running in MSYS on Windows XP.

Mixer settings

The following is from the README file:
Mixer settings are very important for MLS testing. Run alsamixer to
adjust. All cards are different so I will try to generalise as best as
I can. The following tips about mixer settings applies if you use 
OSS or if you use Windows too.

* Start by turning everything down to zero and also mute everything.  

* Unmute master volume and turn up to 74%. 

* Unmute PCM and turn up to 74%.  

* For microphone tests, enable capture on the microphone channel but 
  LEAVE IT MUTED. Mic boost is optional. 

* For impedance or line tests enable capture on the line channel but 

***Don't enable both microphone and line capture.*** 

* If there is an additional channel labelled Capture, also unmute it. 

* Turn off ADC/DAC loopback or anything that resembles it. 

As I said, all cards are different and you may have to experiment until 
you get a good signal level and response.


Please report bugs on the mailinglist or directly to a developer: dss at home dot se.