            Installation notes on MP3X (the LAME frame analyzer) for WIN32

===========================================================================
Document History:
===========================================================================

Initial version by Albert Faber, March 30, 2000

Update by Albert Faber (Sept 07 2000), changed instructions
to compile with latest glib/gtk libraries.

Update by Albert Faber (Sept 07 2000), changed instructions
to compile with latest glib/gtk libraries.

Update by Albert Faber (Oct 20 2000), small adaptions to be conform
the new lame directory structure.

Update by Gabriel Bouvigne (Jan 07 2004), changes to be conform to the
VC6 worspace structure.

Update by Gabriel Bouvigne (Nov 11 2006), changes to be conform to the
VC8 worspace structure. Tested with gtk+-dev-1.3.0-20030115 and glib-dev-2.12.4


===========================================================================
How to compile the MP3 frame analyzer (MP3x):
===========================================================================

You first need to get hold of the latest GTK and GLIB include files and lib
files. You can download them freely from the WINGTK project WEB site.
(see http://www.gtk.org, and click on the WINGTK link.)

Download:  glib-dev-VERSION.zip, gtk+-dev-VERSION.zip and extralibs-dev-VERSION.zip
where VERSION indicates the release data, so it will look something like 20000805

unzip all three zip files in a WinGTK subdirectory, which is created from the lame
analyzer directory (for example, D:\CVS\lame\WinGtk)

You will end up with the following directory tree
  D:\CVS\lame\analyzer\WinGtk\src\glib
  D:\CVS\lame\analyzer\WinGtk\src\gtk+\glib
  D:\CVS\lame\analyzer\WinGtk\src\gtk+

Set Mp3x as your current active project, recompile everything, and you're done.


===========================================================================
How to run and use the MP3 Frame analyzer
===========================================================================

To run MP3x.exe, you need
the GTK DLL files:  Either instal them on your system,
or put them in the same directory as mp3x.exe resides.



Example:
mp3x.exe myfile

myfile can be a mp3 file, or a wav file.



                                === End of Document ===



