
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

For the purposes of the copyright statement in the preamble of each source
code file comprising projectM, the projectM team are:

Carmelo Piccione
    Parser
    Evaluator
    Pulse Audio support (projectM-pulseaudio)
    Qt GUI (projectM-qt)
	
Peter Sperl
    Beat Detection
    Rendering
    XMMS Support (projectM-xmms)
    libvisual Support (projectM-libvisual)   

Alligator Descartes
    Media Player Support (iTunes, Winamp, Windows Media Player)
    Test application frameworks (projectM-wxvis, projectM-sdlvis)
    DVD application (projectM-movie)
    Win32 screensaver (projectM-screensaver)

Roger Dannenburg
    Advice & Support
