
projectM -- Milkdrop-esque visualisation SDK
Copyright (C)2003-2007 projectM Team

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
See 'LICENSE.txt' included within this release

---------------------------------------------------
                projectM v.0.94.20 FAQ
                ------------------
    written by Peter Sperl and Carmelo Piccione
---------------------------------------------------

Q1: What is projectM?
Q2: What? This preset doesn't look like it does on Milkdrop.
Q3: Where can I get more presets?
Q4: What are the system requirements?
Q5: Why is projectM so slow!!!
Q6: How can I increase the rendering quality to make projectM look better?
Q7: How can I configure projectM? (where's the config file?)
Q8: Where are the presets?

Q1: What is projectM?
--------------------
A: projectM makes pretty pictures from music in realtime.
   Specifically it uses iterative image-based rendering techniques which
   are hardware accelerated via OpenGL.  projectM was developed with
   cross-platform support in mind, using SDL and OpenGL. The only port
   right now is Linux/XMMS, but it should be easy to plug-in to other
   music players on other platforms (even windows and Mac OS X).

   projectM aims for compatability with MilkDrop's latest release (1.04b at
   this time), but we have always intended to surpass it.  This program was
   inspired by Ryan Geiss' wonderful program MilkDrop. www.geisswerks.com

Q2: What? This preset doesn't look like it does on Milkdrop.
-----------------------------------------------------------
A: We know. Some of the simple waveforms (1,2,3,4,5)  are not even close to
   correct. They are similiar, but not exactly the same. Also, the solarize,
   brighten, and darken filters aren't done yet either.

   Sometimes things just don't look right because we might, for example, draw
   shapes a tiny bit too big or small. Small errors propagate and become HUGE
   after a few manipulations. But who knows because it takes forever to tweak
   things like this.

Q3: Where can I get more presets?
--------------------------------
A:  www.milkdrop.co.uk is a great place to start.  However, all their
    presets are packaged in self-unzipping .exe's for win32. I
    extracted them with wine and it worked wonderfully.

    Check out the milkdrop forums at www.winamp.com to find new presets
    daily. The URL is below

	http://forums.winamp.com/forumdisplay.php?forumid=81

Q4: What are the system requirements?
------------------------------------
A: To run projectM you need a Linux system w/a sound card and a video card
   with OpenGL hardware acceleration. We find that projectM runs MUCH better
   with the 2.6 series kernel and ALSA sound.

   What does that mean? Well...

   projectM has only been tested prior to me writing this on 4 computers.

   All those computers used some form of Redhat (8,9, & Fedora 1),
   although this should make no differance if you run a differant distro.

   Also, all of them used Nvidia (Geforce 3 Ti200, Geforce 4 MX440 & Ti4200)

   WE STRONGLY RECCOMEND THE USE OF ALSA AND THE 2.6 SERIES KERNEL

Q5: Why is projectM so slow!!!
-----------------------------
A: If projectM is slow for you all the time, and not just on a select few
   presets, you can try lowering the rendering quality, and this will speed
   things up A LOT. To do this, lower the texsize and gridsize (gx,gy) in
   /etc/projectM/config

   Texsize controls the size of the rendered image.  If you think your video
   card is too slow or doesn't have enough memory, then change this. A middle
   value for texsize is 512. 1024 is nice looking, and 256 is for VERY slow
   computers.

   If your processor is the bottleneck, then lower gx and gy. gx and gy
   control the size of the interpolated per-pixel mesh. 24/18 is a low-middle
   value. I run at 48/32 some times on my Athlon 64 3200, and I could
   probably go higher, although some presets slow down for me at this VERY
   high setting.

   Certain presets can be processor hogs and slow the framerate down to
   almost 0.  In this situation my best advice is not to use those presets.
   All the presets that come with projectM should be slim enough to run on
   nearly all machines capable of running projectM in the first place.

Q6:How can I increase the rendering quality to make projectM look better?
-------------------------------------------------------------------------
A: Read Q5 and do the opposite!

Q7: How can I configure projectM? (where's the config file?)
------------------------------------------------------------
A: /etc/projectM/config

Q8: Where are the presets?
--------------------------
A: /usr/share/projectM/presets
