  EQ - A graphic equalizer plugin for XMMS (C) 2002 Felipe Rivera 
			<liebremx at users.sourceforge.net>

  Disclaimer
  ==========
  #include <standard_disclaimer.h>

  Aknowledgements
  ===============
  See the file 'AUTHORS'

  Introduction
  ============

  EQ is a graphic equalizer effect plugin for XMMS that equalizes everything
  that XMMS sends to the output, not just MP3s. 
  This means that your OGG, WAV, etc. files are also equalized.

  It features

  - Four different equalizer modes (configurable):

    Number of 	Bandwidth 		Central frequencies
	bands		(in octaves)
	--------	------------	-------------------
  		10			1			XMMS original ones
  		10			1				ISO
		15			2/3				ISO
		31			1/3				ISO

  - Independent gain settings for left and right channels (configurable)
  - More than +-14dB of gain per band

  The latest version should be available from

	http://equ.sourceforge.net/

  Requirements
  ============
  - Any platform where XMMS runs on should be able to compile and execute the 
    plugin.
    Please report in what platform you are running the plugin other than Linux 
	for x86 to add it here.
	
  - XMMS 1.2.7 (Recommended)
  These code was developed using XMMS 1.2.7, but it should work with previous
  versions that support Effect plugins.
  If you use it with an older version of XMMS, please let me know.
  
  - These code is CPU intensive, so the newer and faster the processor is the
  	better for you.
    In a PIII @ 900MHz, 'top' reports ~16%-20% of CPU usage (yes, 'top' is 
	not a good benchmark).
    I would like to hear about the CPU characteristics of your box if you 
	were not able to run the plugin 'comfortably'.

  
  Compiling/Installing
  ====================
	This software is 'configure'ified, which means that it uses autoconf and
	all the family of auto* tools.
	So read the INSTALL file first if you're not familiar with it (although 
	you can skip its lecture).

	If you want to have the plugin installed in your own '.xmms' directory
	or wherever you desire other than XMMS's own installation directory
	structure, pass the option 

		--libdir=<directory>

	to the configure script, where '<directory>' is the place where you want it.
	Be sure of course that XMMS knows that you have a plugin in '<directory>'.

	NOTE: Specify the whole path, don't use ~ because is not recognized
		  by the configure script

	To compile and install:
  	#./configure; make; make install

	Available options:

	--enable-debug		
		Enables the '-g' flag for GCC to have debug support added to the code
		(usually I should use that only) but is there in case you need it

	Since this code was developed on a PIII, a few compilation flags where 
	added for GCC for this architecture and they worked ok.
	The same kind of compilation flags where added for the rest of the x86 
	platforms but have not been tested.
	Please report any changes you have made to the configure.in to support
	platforms other than Linux on x86.


  Using
  =====
  Go to the Preferences menu and select the Effect/General Plugins tab.
  Select the EQ Plugin from the list and mark the 'Use plugins' next to
  the list.
  Since XMMS doesn't tell an Effect plugin when it has been selected, you
  will have to quit XMMS and run it again in order to see the GUI of the
  Equalizer.
  From the Effect/General Plugins tab you can select Configure to
  change the following settings:

	- Numer of bands the equalizer uses
	  Here you have four options:
		  	10 bands, original XMMS frequencies
			10 bands, ISO spaced frequencies
			15 bands, ISO spaced frequencies
			31 bands, ISO spaced frequencies
	  Default is: 15 bands, ISO spaced frequencies

	- Use independent channels
	  When selected independent gain settings for the left and right channels
	  are available. Otherwise use the same settings for both
	  Default is: use the same for both channels

	- Lock sliders
	  When selected locks the sliders so when you adjust the gain in one of the
	  channels the other changes at the same time. It has meaning only when 
	  'Use independent channels' is selected.
	  Default is: ON

  The presets menu: XXX Pending

  If you use Crossfade as your output plugin and you select EQ Plugin as the 
  Effect Plugin INSIDE Crossfade's configuration, EQ won't work.
  Select EQ from XMMS's own configuration and everything will be ok.


  History
  =======
  Well, one day I was sitting in front of the computer listening to some music
  with XMMS (using XMMS's own equalizer) and then I started playing a CD from
  the CD-ROM unit and thought: wouldn't it be cool to equalize the CD output as
  well? (I don't have a nice shelf EQ as part of my sound system mind you)
  And then started finding out things.. and saw sadly that the EQ in XMMS
  only worked for MP3's, since it was something that each Input plugin
  programmer should provide.
  Also the equalizer is implemented for the frequency domain.
  So then I decided to modify XMMS so that the output PCM audio could be
  equalized, not just the MP3's, so all the files that XMMS can play would be
  equalized. (Have you tried to listen those cool Ogg files lately and realized
  that they were not equalized? :P). And also wanted to add some extra features.
  And well, this is the result :) I hope you enjoy listening as much as I do.


  Technical stuff
  ===============
  The EQ is implemented as two cascaded sets of band pass second order IIR 
  digital filters working on the time domain.
  Each stage provides about +-14dB of gain/attenuation, but since they are all
  normalized for unity gain at the output, the original signal is attenuated at
  the output. This means that the volume level at the end is lower than the
  original unequalized audio.
  The bands are ISO spaced and also XMMS's Equalizer original frequencies are
  supported.
  The bandwidth of each of the supported number of bands are:
  10 bands - 1 octave
  15 bands - 2/3 octave
  31 bands - 1/3 octave

  Read the following documents (I'm not related to these companies in any way):
  - Constant-Q Graphic Equalizers, Rane Corporation. 
  	http://www.rane.com
  - The application note from Motorola 'DSP based 10-Band equalizer' has a lot
  of interesting information, although some of the math they do on the 
  application note had errors,
  	http://www.harmony-central.com/Computer/Programming/apr2-d.pdf
  - The DSPGuide is quite useful: 
  	http://www.dspguide.com
