MDFourier is an open source software solution created to compare audio signatures and generate a series of graphs that show how they differ. The software consists of two separate programs, one that produces the signal for recording from the console and the other that analyses and displays the audio comparisons.
The information gathered from the comparison results can be used in a variety of ways: to identify how audio signatures vary between systems, to detect if the audio signals are modified by audio equipment, to find if modifications resulted in audible changes, to help tune emulators, FPGA implementations or mods, etc.
MDFourier needs a few libraries to be compiled. In Linux, UN*X based systems and MinGW2; you can link it against the latest versions of the libraries.
- Fastest Fourier Transform in the West. (fftw): http://www.fftw.org/download.html
- The GNU plotutils package: https://ftp.gnu.org/gnu/plotutils/
- PNG Reference Library: libpng http://www.libpng.org/pub/png/libpng.html
- FLAC Reference Library: libFLAC https://ftp.osuosl.org/pub/xiph/releases/flac/
The following implementations are also used and included with the source files:
- sort.h for tim sort.
- Incomplete Beta Function.
The pre-compiled executable of the Analysis Software for Windows is created with MinGW, and statically linked for distribution against these libraries:
- fftw-3.3.8
- plotutils-2.6
- libpng-1.5.30
- flac-1.3.3
The makefiles to compile either version are provided with the source code.
Please read the documentation available at http://junkerhq.net/MDFourier/
If you haven't installed XCode or the Command Line Tools already, open a Terminal and just run make
.
A prompt will ask you to install the Command Line Tools, say yes and it will install all the necessary development tools without installing the whole XCode package.
Install Homebrew, follow the instructions.
Then install the following libraries using brew install <package name>
- fttw
- plotutils
- libpng
- flac
- libogg
Dependencies will be automatically resolved and installed by Homebrew.
Clone this repository and run make
Install XCode 2.5
Install X11 from your Mac OS X installation DVD/CD (Look for "Optional Installs" package)
Run the system updater to make sure you have the last version of XCode and X11
Install Tigerbrew and carefully follow the instructions.
Then install the following libraries using brew install <package name>
- fttw
- plotutils
- libpng
- flac
- libogg
Dependencies will be automatically resolved and installed by Tigerbrew.
Clone this repository and run make
Please refer to this post for a guide on how to create a redistributable MDFourier binary with the libraries needed statically linked.
If you have them available for install from the system, go for that. If building the libraries from source, here is what has worked for me.
For all four libraries use:
./configure CPPFLAGS='-I/usr/local/include' LDFLAGS='-L/usr/local/lib'
In order to compile fftw, you need gcc and fortran installed.
Edit configure and remove the HAVE_SOLARIS lines
Edit file plotutils-2.6\libplot\z_write.c and change both occurances of:
png_ptr->jmpbuf
to:
png_jmpbuf(png_ptr)
I don't compile with ogg support to minimize dependencies. change:
CPPFLAGS="$CPPFLAGS -D_FORTIFY_SOURCE=2"
to
CPPFLAGS="$CPPFLAGS"
And for static linking move:
flac-1.3.3\src\libFLAC\.libs\libFLAC-static.a
to
msys64\mingw64\lib\libFLAC.a