Code style cleanup -- NO FUNCTIONAL CHANGES

Massive cleanup of code formatting style.  This was deemed necessary, as
the original codebase is a mix of styles varying from file to file, and
occasionally from line to line.  Honestly, it was messy enough to be a
major distraction.

This is a styling change only, and is functionally identical to the
immediately previous version.  (The only change that could be described
as a functional change was to collect all the various 'isnan'
definitions in one place.)

The style employed is a Google-ewhac hybrid.  Indentation is now two
spaces per level.  All TAB characters and (nearly all) trailing blanks
have been removed.  All files now use UNIX-style newlines.

Some effort was made to improve inline spacing and formatting,
including:
	- Spaces before non-consecutive open-parens,
	- No space after open-parens,
	- No space before close-parens,
	- Two spaces after the semicolon in each 'for' clause,
	- Two spaces surrounding each logic op (&& and ||),
	- Return type on separate line from function declaration,
	- Open-brace for function on its own line.

This effort was applied irregularly.

ewhac's style has been developed over 30 years, and is optimized for C.
It falls apart a bit for C++.  But then, pure ewhac style uses 8-space
TAB characters, so shaddup.
diff --git a/src/libprojectM/Common.hpp b/src/libprojectM/Common.hpp
index b325f80..843422b 100644
--- a/src/libprojectM/Common.hpp
+++ b/src/libprojectM/Common.hpp
@@ -26,20 +26,22 @@
 
 #ifndef COMMON_HPP
 #define COMMON_HPP
+
 #include <vector>
 #include <typeinfo>
 #include <cstdarg>
 #include <cassert>
+
 #ifdef _MSC_sVER
-#define strcasecmp(s, t) _strcmpi(s, t)
+#define strcasecmp(s, t)    _strcmpi(s, t)
 #endif
 
 #ifdef _MSC_VER
-	#pragma warning( disable : 4244 4305 4996; once : 4018 )
-	#define WIN32_LEAN_AND_MEAN
-	#define NOMINMAX
-	#include <windows.h>
-	typedef unsigned int uint;
+  #pragma warning( disable : 4244 4305 4996; once : 4018 )
+  #define WIN32_LEAN_AND_MEAN
+  #define NOMINMAX
+  #include <windows.h>
+  typedef unsigned int uint;
 #endif
 
 #ifdef DEBUG
@@ -48,193 +50,180 @@
 
 #ifdef MACOS
 #include <cstdio>
-extern FILE *fmemopen(void *buf, size_t len, const char *pMode);
+extern FILE *fmemopen (void *buf, size_t len, const char *pMode);
 #endif /** MACOS */
 
 #include "dlldefs.h"
 
-#define DEFAULT_FONT_PATH "/home/carm/fonts/courier1.glf"
-#define MAX_TOKEN_SIZE 512
-#define MAX_PATH_SIZE 4096
+#define DEFAULT_FONT_PATH   "/home/carm/fonts/courier1.glf"
+#define MAX_TOKEN_SIZE      512
+#define MAX_PATH_SIZE       4096
 
-#define STRING_BUFFER_SIZE 1024*150
-#define STRING_LINE_SIZE 1024
+#define STRING_BUFFER_SIZE  1024*150
+#define STRING_LINE_SIZE    1024
 
 
 #ifdef LINUX
 #include <cstdlib>
-#define projectM_isnan std::isnan
-
+#define projectM_isnan      std::isnan
+#define projectM_fmax       fmax
+#define projectM_fmin       fmin
 #endif
 
 #ifdef WIN32
-#define projectM_isnan(x) ((x) != (x))
+#define projectM_isnan(x)   ((x) != (x))
+#define projectM_fmax(x,y)  ((x) >= (y) ? (x): (y))
+#define projectM_fmin(x,y)  ((x) <= (y) ? (x): (y))
 #endif
 
 #ifdef MACOS
-#define projectM_isnan(x) ((x) != (x))
-#endif
-
-#ifdef LINUX
-#define projectM_fmax fmax
-#endif
-
-#ifdef WIN32
-#define projectM_fmax(x,y) ((x) >= (y) ? (x): (y))
-#endif
-
-#ifdef MACOS
-#define projectM_fmax(x,y) ((x) >= (y) ? (x): (y))
-#endif
-
-#ifdef LINUX
-#define projectM_fmin fmin
-#endif
-
-#ifdef WIN32
-#define projectM_fmin(x,y) ((x) <= (y) ? (x): (y))
-#endif
-
-#ifdef MACOS
-#define projectM_fmin(x,y) ((x) <= (y) ? (x): (y))
+#define projectM_isnan(x)   ((x) != (x))
+#define projectM_fmax(x,y)  ((x) >= (y) ? (x): (y))
+#define projectM_fmin(x,y)  ((x) <= (y) ? (x): (y))
 #endif
 
 #ifndef TRUE
-#define TRUE true
+#define TRUE                true
 #endif
 
 #ifndef FALSE
-#define FALSE false
+#define FALSE               false
 #endif
 
 
-#define MAX_DOUBLE_SIZE  10000000.0
-#define MIN_DOUBLE_SIZE -10000000.0
+#define MAX_DOUBLE_SIZE      10000000.0
+#define MIN_DOUBLE_SIZE     -10000000.0
 
-#define MAX_INT_SIZE  10000000
-#define MIN_INT_SIZE -10000000
+#define MAX_INT_SIZE         10000000
+#define MIN_INT_SIZE        -10000000
 
 /* default float initial value */
-#define DEFAULT_DOUBLE_IV 0.0
+#define DEFAULT_DOUBLE_IV   0.0
 
 /* default float lower bound */
-#define DEFAULT_DOUBLE_LB MIN_DOUBLE_SIZE
+#define DEFAULT_DOUBLE_LB   MIN_DOUBLE_SIZE
 
 /* default float upper bound */
-#define DEFAULT_DOUBLE_UB MAX_DOUBLE_SIZE
+#define DEFAULT_DOUBLE_UB   MAX_DOUBLE_SIZE
 
 #ifdef WIN32
 #include <float.h>
-#define isnan _isnan
+#define isnan               _isnan
 #endif /** WIN32 */
 
 /** Per-platform path separators */
-#define WIN32_PATH_SEPARATOR '\\'
-#define UNIX_PATH_SEPARATOR '/'
+#define WIN32_PATH_SEPARATOR  '\\'
+#define UNIX_PATH_SEPARATOR   '/'
 #ifdef WIN32
-#define PATH_SEPARATOR WIN32_PATH_SEPARATOR
+#define PATH_SEPARATOR        WIN32_PATH_SEPARATOR
 #else
-#define PATH_SEPARATOR UNIX_PATH_SEPARATOR
+#define PATH_SEPARATOR        UNIX_PATH_SEPARATOR
 #endif /** WIN32 */
+
 #include <string>
 
-const unsigned int NUM_Q_VARIABLES(32);
-const std::string PROJECTM_FILE_EXTENSION("prjm");
-const std::string MILKDROP_FILE_EXTENSION("milk");
-const std::string PROJECTM_MODULE_EXTENSION("so");
 
- template <class TraverseFunctor, class Container>
-  void traverse(Container & container)
+const unsigned int  NUM_Q_VARIABLES (32);
+const std::string   PROJECTM_FILE_EXTENSION ("prjm");
+const std::string   MILKDROP_FILE_EXTENSION ("milk");
+const std::string   PROJECTM_MODULE_EXTENSION ("so");
+
+
+template <class TraverseFunctor, class Container>
+void traverse (Container & container)
+{
+  TraverseFunctor functor;
+
+  for (typename Container::iterator pos = container.begin ();
+       pos != container.end ();
+       ++pos)
   {
-
-    TraverseFunctor functor;
-
-    for (typename Container::iterator pos = container.begin(); pos != container.end(); ++pos)
-    {
-      assert(pos->second);
-      functor(pos->second);
-    }
-
+    assert (pos->second);
+    functor (pos->second);
   }
 
-
-  template <class TraverseFunctor, class Container>
-  void traverseVector(Container & container)
-  {
-
-    TraverseFunctor functor;
-
-    for (typename Container::iterator pos = container.begin(); pos != container.end(); ++pos)
-    {
-      assert(*pos);
-      functor(*pos);
-    }
-
-  }
-
-  template <class TraverseFunctor, class Container>
-  void traverse(Container & container, TraverseFunctor & functor)
-  {
-
-    for (typename Container::iterator pos = container.begin(); pos != container.end(); ++pos)
-    {
-      assert(pos->second);
-      functor(pos->second);
-    }
-
-  }
-
-  namespace TraverseFunctors
-  {
-    template <class Data>
-    class Delete
-    {
-
-    public:
-
-      void operator() (Data * data)
-      {
-        assert(data);
-        delete(data);
-      }
-
-    };
-  }
-
-
-inline std::string parseExtension(const std::string & filename) {
-
-const std::size_t start = filename.find_last_of('.');
-
-if (start == std::string::npos || start >= (filename.length()-1))
-	return "";
-else
-	return filename.substr(start+1, filename.length());
-
 }
 
-inline std::string parseFilename(const std::string & filename) {
 
-const std::size_t start = filename.find_last_of('/');
+template <class TraverseFunctor, class Container>
+void traverseVector (Container & container)
+{
+  TraverseFunctor functor;
 
-if (start == std::string::npos || start >= (filename.length()-1))
-	return "";
-else
-	return filename.substr(start+1, filename.length());
+  for (typename Container::iterator pos = container.begin ();
+       pos != container.end ();
+       ++pos)
+  {
+    assert (*pos);
+    functor (*pos);
+  }
 
 }
 
-inline double meanSquaredError(const double & x, const double & y) {
-		return (x-y)*(x-y);
+template <class TraverseFunctor, class Container>
+void traverse (Container & container, TraverseFunctor & functor)
+{
+  for (typename Container::iterator pos = container.begin ();
+       pos != container.end ();
+       ++pos)
+  {
+    assert (pos->second);
+    functor (pos->second);
+  }
+
+}
+
+namespace TraverseFunctors
+{
+  template <class Data>
+  class Delete
+  {
+
+  public:
+
+    void
+    operator () (Data * data)
+    {
+      assert (data);
+      delete (data);
+    }
+
+  };
+} /*  namespace TraverseFunctors  */
+
+
+inline std::string
+parseExtension (const std::string & filename) {
+  const std::size_t start = filename.find_last_of ('.');
+
+  if (start == std::string::npos  ||  start >= (filename.length ()-1))
+    return "";
+  else
+    return filename.substr (start+1, filename.length ());
+}
+
+inline std::string
+parseFilename (const std::string & filename) {
+  const std::size_t start = filename.find_last_of ('/');
+
+  if (start == std::string::npos || start >= (filename.length ()-1))
+    return "";
+  else
+    return filename.substr (start+1, filename.length ());
+}
+
+inline double
+meanSquaredError (const double & x, const double & y) {
+  return (x-y)*(x-y);
 }
 
 
 enum PresetRatingType {
-	FIRST_RATING_TYPE = 0,
-	HARD_CUT_RATING_TYPE = FIRST_RATING_TYPE,
-	SOFT_CUT_RATING_TYPE,
-	LAST_RATING_TYPE = SOFT_CUT_RATING_TYPE,
-	TOTAL_RATING_TYPES = SOFT_CUT_RATING_TYPE+1
+  FIRST_RATING_TYPE     = 0,
+  HARD_CUT_RATING_TYPE  = FIRST_RATING_TYPE,
+  SOFT_CUT_RATING_TYPE,
+  LAST_RATING_TYPE      = SOFT_CUT_RATING_TYPE,
+  TOTAL_RATING_TYPES    = SOFT_CUT_RATING_TYPE+1
 };
 
 
diff --git a/src/libprojectM/ConfigFile.cpp b/src/libprojectM/ConfigFile.cpp
index f041064..c10662d 100644
--- a/src/libprojectM/ConfigFile.cpp
+++ b/src/libprojectM/ConfigFile.cpp
@@ -1,142 +1,158 @@
-// ConfigFile.cpp

-

-#include "ConfigFile.h"

-

-using std::string;

-

-ConfigFile::ConfigFile( string filename, string delimiter,

-                        string comment, string sentry )

-	: myDelimiter(delimiter), myComment(comment), mySentry(sentry)

-{

-	// Construct a ConfigFile, getting keys and values from given file

-	

-	std::ifstream in( filename.c_str() );

-	

-	if( !in ) throw file_not_found( filename ); 

-	

-	in >> (*this);

-}

-

-

-ConfigFile::ConfigFile()

-	: myDelimiter( string(1,'=') ), myComment( string(1,'#') )

-{

-	// Construct a ConfigFile without a file; empty

-}

-

-

-void ConfigFile::remove( const string& key )

-{

-	// Remove key and its value

-	myContents.erase( myContents.find( key ) );

-	return;

-}

-

-

-bool ConfigFile::keyExists( const string& key ) const

-{

-	// Indicate whether key is found

-	mapci p = myContents.find( key );

-	return ( p != myContents.end() );

-}

-

-

-/* static */

-void ConfigFile::trim( string& s )

-{

-	// Remove leading and trailing whitespace

-	static const char whitespace[] = " \n\t\v\r\f";

-	s.erase( 0, s.find_first_not_of(whitespace) );

-	s.erase( s.find_last_not_of(whitespace) + 1U );

-}

-

-

-std::ostream& operator<<( std::ostream& os, const ConfigFile& cf )

-{

-	// Save a ConfigFile to os

-	for( ConfigFile::mapci p = cf.myContents.begin();

-	     p != cf.myContents.end();

-		 ++p )

-	{

-		os << p->first << " " << cf.myDelimiter << " ";

-		os << p->second << std::endl;

-	}

-	return os;

-}

-

-

-std::istream& operator>>( std::istream& is, ConfigFile& cf )

-{

-	// Load a ConfigFile from is

-	// Read in keys and values, keeping internal whitespace

-	typedef string::size_type pos;

-	const string& delim  = cf.myDelimiter;  // separator

-	const string& comm   = cf.myComment;    // comment

-	const string& sentry = cf.mySentry;     // end of file sentry

-	const pos skip = delim.length();        // length of separator

-	

-	string nextline = "";  // might need to read ahead to see where value ends

-	

-	while( is || nextline.length() > 0 )

-	{

-		// Read an entire line at a time

-		string line;

-		if( nextline.length() > 0 )

-		{

-			line = nextline;  // we read ahead; use it now

-			nextline = "";

-		}

-		else

-		{

-			std::getline( is, line );

-		}

-		

-		// Ignore comments

-		line = line.substr( 0, line.find(comm) );

-		

-		// Check for end of file sentry

-		if( sentry != "" && line.find(sentry) != string::npos ) return is;

-		

-		// Parse the line if it contains a delimiter

-		pos delimPos = line.find( delim );

-		if( delimPos < string::npos )

-		{

-			// Extract the key

-			string key = line.substr( 0, delimPos );

-			line.replace( 0, delimPos+skip, "" );

-			

-			// See if value continues on the next line

-			// Stop at blank line, next line with a key, end of stream,

-			// or end of file sentry

-			bool terminate = false;

-			while( !terminate && is )

-			{

-				std::getline( is, nextline );

-				terminate = true;

-				

-				string nlcopy = nextline;

-				ConfigFile::trim(nlcopy);

-				if( nlcopy == "" ) continue;

-				

-				nextline = nextline.substr( 0, nextline.find(comm) );

-				if( nextline.find(delim) != string::npos )

-					continue;

-				if( sentry != "" && nextline.find(sentry) != string::npos )

-					continue;

-				

-				nlcopy = nextline;

-				ConfigFile::trim(nlcopy);

-				if( nlcopy != "" ) line += "\n";

-				line += nextline;

-				terminate = false;

-			}

-			

-			// Store key and value

-			ConfigFile::trim(key);

-			ConfigFile::trim(line);

-			cf.myContents[key] = line;  // overwrites if key is repeated

-		}

-	}

-	

-	return is;

-}

+// ConfigFile.cpp
+
+#include "ConfigFile.h"
+
+
+using std::string;
+
+ConfigFile::ConfigFile (
+string filename,
+string delimiter,
+string comment,
+string sentry
+)
+  : myDelimiter (delimiter),
+    myComment (comment),
+    mySentry (sentry)
+{
+  // Construct a ConfigFile, getting keys and values from given file
+
+  std::ifstream in (filename.c_str ());
+
+  if (!in) throw file_not_found (filename);
+
+  in >> (*this);
+}
+
+
+ConfigFile::ConfigFile ()
+  : myDelimiter (string (1,'=')),
+    myComment (string (1,'#'))
+{
+  // Construct a ConfigFile without a file; empty
+}
+
+
+void
+ConfigFile::remove (const string& key)
+{
+  // Remove key and its value
+  myContents.erase (myContents.find (key));
+  return;
+}
+
+
+bool
+ConfigFile::keyExists (const string& key) const
+{
+  // Indicate whether key is found
+  mapci p = myContents.find (key);
+
+  return (p != myContents.end ());
+}
+
+
+/* static */
+void
+ConfigFile::trim (string& s)
+{
+  // Remove leading and trailing whitespace
+  static const char whitespace[] = " \n\t\v\r\f";
+
+  s.erase (0, s.find_first_not_of (whitespace));
+  s.erase (s.find_last_not_of (whitespace) + 1U);
+}
+
+
+std::ostream&
+operator<< (std::ostream& os, const ConfigFile& cf)
+{
+  // Save a ConfigFile to os
+  for (ConfigFile::mapci p = cf.myContents.begin ();
+       p != cf.myContents.end ();
+       ++p)
+  {
+    os << p->first << " " << cf.myDelimiter << " ";
+    os << p->second << std::endl;
+  }
+  return os;
+}
+
+
+std::istream&
+operator>> (std::istream& is, ConfigFile& cf)
+{
+  // Load a ConfigFile from is
+  // Read in keys and values, keeping internal whitespace
+  typedef string::size_type pos;
+  const string              &delim  = cf.myDelimiter; // separator
+  const string              &comm   = cf.myComment;   // comment
+  const string              &sentry = cf.mySentry;    // end of file sentry
+  const pos                 skip = delim.length ();   // length of separator
+
+  string nextline = "";  // might need to read ahead to see where value ends
+
+  while (is  ||  nextline.length () > 0)
+  {
+    // Read an entire line at a time
+    string line;
+
+    if (nextline.length () > 0)
+    {
+      line = nextline;  // we read ahead; use it now
+      nextline = "";
+    }
+    else
+    {
+      std::getline (is, line);
+    }
+
+    // Ignore comments
+    line = line.substr (0, line.find (comm));
+
+    // Check for end of file sentry
+    if (sentry != ""  &&  line.find (sentry) != string::npos) return is;
+
+    // Parse the line if it contains a delimiter
+    pos delimPos = line.find (delim);
+    if (delimPos < string::npos)
+    {
+      // Extract the key
+      string key = line.substr (0, delimPos);
+      line.replace (0, delimPos+skip, "");
+
+      // See if value continues on the next line
+      // Stop at blank line, next line with a key, end of stream,
+      // or end of file sentry
+      bool terminate = false;
+      while (!terminate  &&  is)
+      {
+        std::getline (is, nextline);
+        terminate = true;
+
+        string nlcopy = nextline;
+        ConfigFile::trim (nlcopy);
+        if (nlcopy == "") continue;
+
+        nextline = nextline.substr (0, nextline.find (comm));
+        if (nextline.find (delim) != string::npos)
+          continue;
+        if (sentry != ""  &&  nextline.find (sentry) != string::npos)
+          continue;
+
+        nlcopy = nextline;
+        ConfigFile::trim (nlcopy);
+        if (nlcopy != "") line += "\n";
+        line += nextline;
+        terminate = false;
+      }
+
+      // Store key and value
+      ConfigFile::trim (key);
+      ConfigFile::trim (line);
+      cf.myContents[key] = line;  // overwrites if key is repeated
+    }
+  }
+
+  return is;
+}
diff --git a/src/libprojectM/ConfigFile.h b/src/libprojectM/ConfigFile.h
index c2f0024..7e93ae4 100644
--- a/src/libprojectM/ConfigFile.h
+++ b/src/libprojectM/ConfigFile.h
@@ -1,253 +1,258 @@
-// ConfigFile.h

-// Class for reading named values from configuration files

-// Richard J. Wagner  v2.1  24 May 2004  wagnerr@umich.edu

-

-// Copyright (c) 2004 Richard J. Wagner

-// 

-// Permission is hereby granted, free of charge, to any person obtaining a copy

-// of this software and associated documentation files (the "Software"), to

-// deal in the Software without restriction, including without limitation the

-// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or

-// sell copies of the Software, and to permit persons to whom the Software is

-// furnished to do so, subject to the following conditions:

-// 

-// The above copyright notice and this permission notice shall be included in

-// all copies or substantial portions of the Software.

-// 

-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS

-// IN THE SOFTWARE.

-

-// Typical usage

-// -------------

-// 

-// Given a configuration file "settings.inp":

-//   atoms  = 25

-//   length = 8.0  # nanometers

-//   name = Reece Surcher

-// 

-// Named values are read in various ways, with or without default values:

-//   ConfigFile config( "settings.inp" );

-//   int atoms = config.read<int>( "atoms" );

-//   double length = config.read( "length", 10.0 );

-//   string author, title;

-//   config.readInto( author, "name" );

-//   config.readInto( title, "title", string("Untitled") );

-// 

-// See file example.cpp for more examples.

-

-#ifndef CONFIGFILE_H

-#define CONFIGFILE_H

-

-#include <string>

-#include <map>

-#include <iostream>

-#include <fstream>

-#include <sstream>

-

-using std::string;

-

-class ConfigFile {

-// Data

-protected:

-	string myDelimiter;  // separator between key and value

-	string myComment;    // separator between value and comments

-	string mySentry;     // optional string to signal end of file

-	std::map<string,string> myContents;  // extracted keys and values

-	

-	typedef std::map<string,string>::iterator mapi;

-	typedef std::map<string,string>::const_iterator mapci;

-

-// Methods

-public:

-	ConfigFile( string filename,

-	            string delimiter = "=",

-	            string comment = "#",

-				string sentry = "EndConfigFile" );

-	ConfigFile();

-	

-	// Search for key and read value or optional default value

-	template<class T> T read( const string& key ) const;  // call as read<T>

-	template<class T> T read( const string& key, const T& value ) const;

-	template<class T> bool readInto( T& var, const string& key ) const;

-	template<class T>

-	bool readInto( T& var, const string& key, const T& value ) const;

-	

-	// Modify keys and values

-	template<class T> void add( string key, const T& value );

-	void remove( const string& key );

-	

-	// Check whether key exists in configuration

-	bool keyExists( const string& key ) const;

-	

-	// Check or change configuration syntax

-	string getDelimiter() const { return myDelimiter; }

-	string getComment() const { return myComment; }

-	string getSentry() const { return mySentry; }

-	string setDelimiter( const string& s )

-		{ string old = myDelimiter;  myDelimiter = s;  return old; }  

-	string setComment( const string& s )

-		{ string old = myComment;  myComment = s;  return old; }

-	

-	// Write or read configuration

-	friend std::ostream& operator<<( std::ostream& os, const ConfigFile& cf );

-	friend std::istream& operator>>( std::istream& is, ConfigFile& cf );

-	

-protected:

-	template<class T> static string T_as_string( const T& t );

-	template<class T> static T string_as_T( const string& s );

-	static void trim( string& s );

-

-

-// Exception types

-public:

-	struct file_not_found {

-		string filename;

-		file_not_found( const string& filename_ = string() )

-			: filename(filename_) {} };

-	struct key_not_found {  // thrown only by T read(key) variant of read()

-		string key;

-		key_not_found( const string& key_ = string() )

-			: key(key_) {} };

-};

-

-

-/* static */

-template<class T>

-string ConfigFile::T_as_string( const T& t )

-{

-	// Convert from a T to a string

-	// Type T must support << operator

-	std::ostringstream ost;

-	ost << t;

-	return ost.str();

-}

-

-

-/* static */

-template<class T>

-T ConfigFile::string_as_T( const string& s )

-{

-	// Convert from a string to a T

-	// Type T must support >> operator

-	T t;

-	std::istringstream ist(s);

-	ist >> t;

-	return t;

-}

-

-

-/* static */

-template<>

-inline string ConfigFile::string_as_T<string>( const string& s )

-{

-	// Convert from a string to a string

-	// In other words, do nothing

-	return s;

-}

-

-

-/* static */

-template<>

-inline bool ConfigFile::string_as_T<bool>( const string& s )

-{

-	// Convert from a string to a bool

-	// Interpret "false", "F", "no", "n", "0" as false

-	// Interpret "true", "T", "yes", "y", "1", "-1", or anything else as true

-	bool b = true;

-	string sup = s;

-	for( string::iterator p = sup.begin(); p != sup.end(); ++p )

-		*p = toupper(*p);  // make string all caps

-	if( sup==string("FALSE") || sup==string("F") ||

-	    sup==string("NO") || sup==string("N") ||

-	    sup==string("0") || sup==string("NONE") )

-		b = false;

-	return b;

-}

-

-

-template<class T>

-T ConfigFile::read( const string& key ) const

-{

-	// Read the value corresponding to key

-	mapci p = myContents.find(key);

-	if( p == myContents.end() ) throw key_not_found(key);

-	return string_as_T<T>( p->second );

-}

-

-

-template<class T>

-T ConfigFile::read( const string& key, const T& value ) const

-{

-	// Return the value corresponding to key or given default value

-	// if key is not found

-	mapci p = myContents.find(key);

-	if( p == myContents.end() ) return value;

-	return string_as_T<T>( p->second );

-}

-

-

-template<class T>

-bool ConfigFile::readInto( T& var, const string& key ) const

-{

-	// Get the value corresponding to key and store in var

-	// Return true if key is found

-	// Otherwise leave var untouched

-	mapci p = myContents.find(key);

-	bool found = ( p != myContents.end() );

-	if( found ) var = string_as_T<T>( p->second );

-	return found;

-}

-

-

-template<class T>

-bool ConfigFile::readInto( T& var, const string& key, const T& value ) const

-{

-	// Get the value corresponding to key and store in var

-	// Return true if key is found

-	// Otherwise set var to given default

-	mapci p = myContents.find(key);

-	bool found = ( p != myContents.end() );

-	if( found )

-		var = string_as_T<T>( p->second );

-	else

-		var = value;

-	return found;

-}

-

-

-template<class T>

-void ConfigFile::add( string key, const T& value )

-{

-	// Add a key with given value

-	string v = T_as_string( value );

-	trim(key);

-	trim(v);

-	myContents[key] = v;

-	return;

-}

-

-#endif  // CONFIGFILE_H

-

-// Release notes:

-// v1.0  21 May 1999

-//   + First release

-//   + Template read() access only through non-member readConfigFile()

-//   + ConfigurationFileBool is only built-in helper class

-// 

-// v2.0  3 May 2002

-//   + Shortened name from ConfigurationFile to ConfigFile

-//   + Implemented template member functions

-//   + Changed default comment separator from % to #

-//   + Enabled reading of multiple-line values

-// 

-// v2.1  24 May 2004

-//   + Made template specializations inline to avoid compiler-dependent linkage

-//   + Allowed comments within multiple-line values

-//   + Enabled blank line termination for multiple-line values

-//   + Added optional sentry to detect end of configuration file

-//   + Rewrote messy trimWhitespace() function as elegant trim()

+// ConfigFile.h
+// Class for reading named values from configuration files
+// Richard J. Wagner  v2.1  24 May 2004  wagnerr@umich.edu
+
+// Copyright (c) 2004 Richard J. Wagner
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to
+// deal in the Software without restriction, including without limitation the
+// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+// sell copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+// IN THE SOFTWARE.
+
+// Typical usage
+// -------------
+//
+// Given a configuration file "settings.inp":
+//   atoms  = 25
+//   length = 8.0  # nanometers
+//   name = Reece Surcher
+//
+// Named values are read in various ways, with or without default values:
+//   ConfigFile config ("settings.inp");
+//   int atoms = config.read<int>( "atoms");
+//   double length = config.read ("length", 10.0);
+//   string author, title;
+//   config.readInto (author, "name");
+//   config.readInto (title, "title", string("Untitled"));
+//
+// See file example.cpp for more examples.
+
+#ifndef CONFIGFILE_H
+#define CONFIGFILE_H
+
+#include <string>
+#include <map>
+#include <iostream>
+#include <fstream>
+#include <sstream>
+
+using std::string;
+
+class ConfigFile {
+// Data
+protected:
+  string                  myDelimiter;  // separator between key and value
+  string                  myComment;    // separator between value and comments
+  string                  mySentry;     // optional string to signal end of file
+  std::map<string,string> myContents;   // extracted keys and values
+
+  typedef std::map<string,string>::iterator mapi;
+  typedef std::map<string,string>::const_iterator mapci;
+
+// Methods
+public:
+  ConfigFile (string filename,
+              string delimiter = "=",
+              string comment = "#",
+              string sentry = "EndConfigFile");
+  ConfigFile();
+
+  // Search for key and read value or optional default value
+  template<class T> T     read (const string& key) const;  // call as read<T>
+  template<class T> T     read (const string& key, const T& value) const;
+  template<class T> bool  readInto (T& var, const string& key) const;
+  template<class T> bool  readInto (T& var, const string& key, const T& value) const;
+
+  // Modify keys and values
+  template<class T> void  add (string key, const T& value);
+  void                    remove (const string& key);
+
+  // Check whether key exists in configuration
+  bool keyExists (const string& key) const;
+
+  // Check or change configuration syntax
+  string getDelimiter() const { return myDelimiter; }
+  string getComment() const { return myComment; }
+  string getSentry() const { return mySentry; }
+  string setDelimiter (const string& s)
+    { string old = myDelimiter;  myDelimiter = s;  return old; }
+  string setComment (const string& s)
+    { string old = myComment;  myComment = s;  return old; }
+
+  // Write or read configuration
+  friend std::ostream& operator<<(std::ostream& os, const ConfigFile& cf);
+  friend std::istream& operator>>(std::istream& is, ConfigFile& cf);
+
+protected:
+  template<class T> static string T_as_string (const T& t);
+  template<class T> static T      string_as_T (const string& s);
+  static void                     trim (string& s);
+
+
+// Exception types
+public:
+  struct file_not_found {
+    string filename;
+    file_not_found (const string& filename_ = string())
+      : filename(filename_) {} };
+  struct key_not_found {  // thrown only by T read(key) variant of read()
+    string key;
+    key_not_found (const string& key_ = string())
+      : key(key_) {} };
+};
+
+
+/* static */
+template<class T>
+string ConfigFile::T_as_string (const T& t)
+{
+  // Convert from a T to a string
+  // Type T must support << operator
+  std::ostringstream ost;
+
+  ost << t;
+  return ost.str();
+}
+
+
+/* static */
+template<class T>
+T ConfigFile::string_as_T (const string& s)
+{
+  // Convert from a string to a T
+  // Type T must support >> operator
+  T t;
+  std::istringstream ist (s);
+
+  ist >> t;
+  return t;
+}
+
+
+/* static */
+template<>
+inline string ConfigFile::string_as_T<string>(const string& s)
+{
+  // Convert from a string to a string
+  // In other words, do nothing
+  return s;
+}
+
+
+/* static */
+template<>
+inline bool ConfigFile::string_as_T<bool>(const string& s)
+{
+  // Convert from a string to a bool
+  // Interpret "false", "F", "no", "n", "0" as false
+  // Interpret "true", "T", "yes", "y", "1", "-1", or anything else as true
+  bool b = true;
+  string sup = s;
+
+  for (string::iterator p = sup.begin();  p != sup.end();  ++p)
+    *p = toupper (*p);  // make string all caps
+  if (    sup==string ("FALSE")  ||  sup==string ("F")
+      ||  sup==string ("NO")  ||  sup==string ("N")
+      ||  sup==string ("0")  ||  sup==string ("NONE"))
+    b = false;
+  return b;
+}
+
+
+template<class T>
+T ConfigFile::read (const string& key) const
+{
+  // Read the value corresponding to key
+  mapci p = myContents.find (key);
+  if (p == myContents.end()) throw key_not_found (key);
+  return string_as_T<T>(p->second);
+}
+
+
+template<class T>
+T ConfigFile::read (const string& key, const T& value) const
+{
+  // Return the value corresponding to key or given default value
+  // if key is not found
+  mapci p = myContents.find (key);
+  if (p == myContents.end()) return value;
+  return string_as_T<T>(p->second);
+}
+
+
+template<class T>
+bool ConfigFile::readInto (T& var, const string& key) const
+{
+  // Get the value corresponding to key and store in var
+  // Return true if key is found
+  // Otherwise leave var untouched
+  mapci p = myContents.find (key);
+  bool found = (p != myContents.end());
+
+  if (found) var = string_as_T<T>(p->second);
+  return found;
+}
+
+
+template<class T>
+bool ConfigFile::readInto (T& var, const string& key, const T& value) const
+{
+  // Get the value corresponding to key and store in var
+  // Return true if key is found
+  // Otherwise set var to given default
+  mapci p = myContents.find (key);
+  bool found = (p != myContents.end());
+
+  if (found)
+    var = string_as_T<T>(p->second);
+  else
+    var = value;
+  return found;
+}
+
+
+template<class T>
+void ConfigFile::add (string key, const T& value)
+{
+  // Add a key with given value
+  string v = T_as_string (value);
+
+  trim (key);
+  trim (v);
+  myContents[key] = v;
+  return;
+}
+
+#endif  // CONFIGFILE_H
+
+// Release notes:
+// v1.0  21 May 1999
+//   + First release
+//   + Template read() access only through non-member readConfigFile()
+//   + ConfigurationFileBool is only built-in helper class
+//
+// v2.0  3 May 2002
+//   + Shortened name from ConfigurationFile to ConfigFile
+//   + Implemented template member functions
+//   + Changed default comment separator from % to #
+//   + Enabled reading of multiple-line values
+//
+// v2.1  24 May 2004
+//   + Made template specializations inline to avoid compiler-dependent linkage
+//   + Allowed comments within multiple-line values
+//   + Enabled blank line termination for multiple-line values
+//   + Added optional sentry to detect end of configuration file
+//   + Rewrote messy trimWhitespace() function as elegant trim()
diff --git a/src/libprojectM/HungarianMethod.hpp b/src/libprojectM/HungarianMethod.hpp
index 4b6b93c..e68f5d8 100644
--- a/src/libprojectM/HungarianMethod.hpp
+++ b/src/libprojectM/HungarianMethod.hpp
@@ -1,11 +1,13 @@
 #ifndef HUNGARIAN_METHOD_HPP
 #define HUNGARIAN_METHOD_HPP
+//
 //#include "Common.hpp"
 #include <cstdlib>
 #include <cstdio>
 #include <cstring>
 #include <limits>
 
+
 /// A function object which calculates the maximum-weighted bipartite matching between
 /// two sets via the hungarian method.
 template <int N=20>
@@ -14,15 +16,15 @@
 static const int MAX_SIZE = N;
 
 private:
-int n, max_match;        //n workers and n jobs
-double lx[N], ly[N];        //labels of X and Y parts
-int xy[N];               //xy[x] - vertex that is matched with x,
-int yx[N];               //yx[y] - vertex that is matched with y
-bool S[N], T[N];         //sets S and T in algorithm
-double slack[N];            //as in the algorithm description
-double slackx[N];           //slackx[y] such a vertex, that
-                         // l(slackx[y]) + l(y) - w(slackx[y],y) = slack[y]
-int prev[N];             //array for memorizing alternating paths
+int     n, max_match;       // n workers and n jobs
+double  lx[N], ly[N];       // labels of X and Y parts
+int     xy[N];              // xy[x] - vertex that is matched with x,
+int     yx[N];              // yx[y] - vertex that is matched with y
+bool    S[N], T[N];         // sets S and T in algorithm
+double  slack[N];           // as in the algorithm description
+double  slackx[N];          // slackx[y] such a vertex, that
+                            //  l(slackx[y]) + l(y) - w(slackx[y],y) = slack[y]
+int     prev[N];            // array for memorizing alternating paths
 
 void init_labels(const double cost[N][N])
 {
@@ -56,7 +58,7 @@
         slack[y] = lx[root] + ly[y] - cost[root][y];
         slackx[y] = root;
     }
-   while (true)                                                        //main cycle
+    while (true)                                                        //main cycle
     {
         while (rd < wr)                                                 //building tree with bfs cycle
         {
@@ -174,7 +176,7 @@
 /// \param i the index of the ith element in the first set (passed in operator())
 /// \returns an index j, denoting the matched jth element of the 2nd set
 inline int matching(int i) const {
-	return xy[i];
+  return xy[i];
 }
 
 
@@ -183,7 +185,7 @@
 /// \returns an index i, denoting the matched ith element of the 1st set
 /// \note inverseMatching(matching(i)) == i
 inline int inverseMatching(int j) const {
-	return yx[j];
+  return yx[j];
 }
 
 };
diff --git a/src/libprojectM/KeyHandler.cpp b/src/libprojectM/KeyHandler.cpp
index 3661f2b..5ff80a4 100644
--- a/src/libprojectM/KeyHandler.cpp
+++ b/src/libprojectM/KeyHandler.cpp
@@ -18,7 +18,6 @@
  * See 'LICENSE.txt' included within this release
  *
  */
-
 #include <stdio.h>
 
 #include "Common.hpp"
@@ -34,17 +33,19 @@
 #include "TimeKeeper.hpp"
 
 
+void selectRandom (const bool hardCut);
+void selectNext (const bool hardCut);
+void selectPrevious (const bool hardCut);
+
+
 class Preset;
 interface_t current_interface = DEFAULT_INTERFACE;
 
-void selectRandom(const bool hardCut);
-void selectNext(const bool hardCut);
-void selectPrevious(const bool hardCut);
 
-void refreshConsole() {
-
+void
+refreshConsole ()
+{
   switch (current_interface) {
-
   case MENU_INTERFACE:
     // unimplemented
     break;
@@ -62,192 +63,223 @@
   default:
     break;
   }
-
 }
 
-void projectM::key_handler( projectMEvent event,
-                            projectMKeycode keycode, projectMModifier modifier ) {
+void
+projectM::key_handler (
+projectMEvent     event,
+projectMKeycode   keycode,
+projectMModifier  modifier
+)
+{
+  switch (event) {
+  case PROJECTM_KEYDOWN:
 
-	switch( event ) {
+    //default_key_handler ();
+    switch (current_interface) {
+    case MENU_INTERFACE:
+//    menu_key_handler (this, event, keycode);
+      break;
 
+    case SHELL_INTERFACE:
+//    shell_key_handler ();
+      break;
 
-	case PROJECTM_KEYDOWN:
+    case EDITOR_INTERFACE:
+//    editor_key_handler (event,keycode);
+      break;
 
-	  //default_key_handler();
-	  switch (current_interface)
-	    {
+    case BROWSER_INTERFACE:
+//    browser_key_handler (event,keycode,modifier);
+      break;
 
-	    case MENU_INTERFACE:
-//	      menu_key_handler(this, event, keycode);
-	      break;
-	    case SHELL_INTERFACE:
-	      //shell_key_handler();
-	      break;
-	    case EDITOR_INTERFACE:
-//	      editor_key_handler(event,keycode);
-	      break;
-	    case BROWSER_INTERFACE:
-//	      browser_key_handler(event,keycode,modifier);
-	      break;
-	    case DEFAULT_INTERFACE:
-	      default_key_handler(event,keycode);
-	      break;
-	    default:
-	      default_key_handler(event,keycode);
-	      break;
+    case DEFAULT_INTERFACE:
+      default_key_handler (event, keycode);
+      break;
 
-	    }
-	  break;
-	default:
-		break;
+    default:
+      default_key_handler (event, keycode);
+      break;
+    }
+    break;
 
-	}
+  default:
+    break;
+  }
 }
 
-void projectM::default_key_handler( projectMEvent event, projectMKeycode keycode) {
+void
+projectM::default_key_handler (projectMEvent event, projectMKeycode keycode)
+{
+  switch (event) {
 
-	switch( event ) {
+  case PROJECTM_KEYDOWN:
 
-	case PROJECTM_KEYDOWN:
+    switch (keycode) {
+    case PROJECTM_K_UP:
+      beatDetect->beat_sensitivity += 0.25;
+      if (beatDetect->beat_sensitivity > 5.0) beatDetect->beat_sensitivity = 5.0;
+      break;
 
-	  switch( keycode )
-	    {
-	    case PROJECTM_K_UP:
-            beatDetect->beat_sensitivity += 0.25;
-			if (beatDetect->beat_sensitivity > 5.0) beatDetect->beat_sensitivity = 5.0;
-	      break;
-	    case PROJECTM_K_DOWN:
-            beatDetect->beat_sensitivity -= 0.25;
-			if (beatDetect->beat_sensitivity < 0) beatDetect->beat_sensitivity = 0;
-	      break;
-		case PROJECTM_K_h:
- 		  renderer->showhelp = !renderer->showhelp;
-	      renderer->showstats= false;
-	      renderer->showfps=false;
-	    case PROJECTM_K_F1:
-	      renderer->showhelp = !renderer->showhelp;
-	      renderer->showstats=false;
-	      renderer->showfps=false;
-	      break;
-	    case PROJECTM_K_y:
-		this->setShuffleEnabled(!this->isShuffleEnabled());
-		 break;
+    case PROJECTM_K_DOWN:
+      beatDetect->beat_sensitivity -= 0.25;
+      if (beatDetect->beat_sensitivity < 0) beatDetect->beat_sensitivity = 0;
+      break;
 
-	    case PROJECTM_K_F5:
-	      if (!renderer->showhelp)
-		      renderer->showfps = !renderer->showfps;
-	      break;
-	    case PROJECTM_K_F4:
-		if (!renderer->showhelp)
-	       		renderer->showstats = !renderer->showstats;
-	      break;
-	    case PROJECTM_K_F3: {
-	      renderer->showpreset = !renderer->showpreset;
-	      break;
-	     }
-	    case PROJECTM_K_F2:
-	      renderer->showtitle = !renderer->showtitle;
-	      break;
+    case PROJECTM_K_h:
+      renderer->showhelp  = !renderer->showhelp;
+      renderer->showstats = false;
+      renderer->showfps   = false;
+      /*  FIXME: should be 'break' here or folded into following case.  */
+
+    case PROJECTM_K_F1:
+      renderer->showhelp  = !renderer->showhelp;
+      renderer->showstats = false;
+      renderer->showfps   = false;
+      break;
+
+    case PROJECTM_K_y:
+      this->setShuffleEnabled (!this->isShuffleEnabled());
+      break;
+
+    case PROJECTM_K_F5:
+      if (!renderer->showhelp)
+        renderer->showfps = !renderer->showfps;
+      break;
+
+    case PROJECTM_K_F4:
+      if (!renderer->showhelp)
+        renderer->showstats = !renderer->showstats;
+      break;
+
+    case PROJECTM_K_F3:
+     {
+      renderer->showpreset = !renderer->showpreset;
+      break;
+     }
+
+    case PROJECTM_K_F2:
+      renderer->showtitle = !renderer->showtitle;
+      break;
 #ifndef MACOS
-	    case PROJECTM_K_F9:
+    case PROJECTM_K_F9:
 #else
-        case PROJECTM_K_F8:
+    case PROJECTM_K_F8:
 #endif
 
-	      renderer->studio = !renderer->studio;
-	      break;
+      renderer->studio = !renderer->studio;
+      break;
 
-	    case PROJECTM_K_ESCAPE: {
-//	        exit( 1 );
-	        break;
-	      }
-	    case PROJECTM_K_f:
+    case PROJECTM_K_ESCAPE:
+     {
+      //          exit (1);
+      break;
+     }
 
-	      break;
-	    case PROJECTM_K_a:
-		    renderer->correction = !renderer->correction;
-	        break;
-	    case PROJECTM_K_b:
-	      break;
-            case PROJECTM_K_n:
-		selectNext(true);
-	      break;
-            case PROJECTM_K_N:
-		selectNext(false);
-	      break;
-	    case PROJECTM_K_r:
-		selectRandom(true);
-		break;
-	    case PROJECTM_K_R:
-		selectRandom(false);
-		break;
-	    case PROJECTM_K_p:
-	      selectPrevious(true);
-	      break;
-	    case PROJECTM_K_P:
-	      selectPrevious(false);
-	      break;
-	    case PROJECTM_K_l:
-		renderer->noSwitch=!renderer->noSwitch;
-	      break;
-	    case PROJECTM_K_s:
-            	renderer->studio = !renderer->studio;
-	    case PROJECTM_K_i:
-	        break;
-	    case PROJECTM_K_z:
-	      break;
-	    case PROJECTM_K_0:
-//	      nWaveMode=0;
-	      break;
-	    case PROJECTM_K_6:
-//	      nWaveMode=6;
-	      break;
-	    case PROJECTM_K_7:
-//	      nWaveMode=7;
-	      break;
-	    case PROJECTM_K_m:
-	      break;
-	    case PROJECTM_K_t:
-	      break;
-	    case PROJECTM_K_EQUALS:
-	    case PROJECTM_K_PLUS:
+    case PROJECTM_K_f:
+      break;
 
-	    	unsigned int index;
+    case PROJECTM_K_a:
+      renderer->correction = !renderer->correction;
+      break;
 
-	    	if (selectedPresetIndex(index)) {
+    case PROJECTM_K_b:
+      break;
 
-	    		const int oldRating = getPresetRating(index, HARD_CUT_RATING_TYPE);
+    case PROJECTM_K_n:
+      selectNext (true);
+      break;
 
-	    		if (oldRating >= 6)
-	    			  break;
+    case PROJECTM_K_N:
+      selectNext (false);
+      break;
 
-	    		const int rating = oldRating + 1;
+    case PROJECTM_K_r:
+      selectRandom (true);
+      break;
 
-	    		changePresetRating(index, rating, HARD_CUT_RATING_TYPE);
-	    	}
+    case PROJECTM_K_R:
+      selectRandom (false);
+      break;
 
-	    	break;
+    case PROJECTM_K_p:
+      selectPrevious (true);
+      break;
 
-	    case PROJECTM_K_MINUS:
-	    	if (selectedPresetIndex(index)) {
+    case PROJECTM_K_P:
+      selectPrevious (false);
+      break;
 
-	    		const int oldRating = getPresetRating(index, HARD_CUT_RATING_TYPE);
+    case PROJECTM_K_l:
+      renderer->noSwitch=!renderer->noSwitch;
+      break;
 
-	    		if (oldRating <= 1)
-	    			  break;
+    case PROJECTM_K_s:
+      renderer->studio = !renderer->studio;
 
-	    		const int rating = oldRating - 1;
+    case PROJECTM_K_i:
+      break;
 
-	    		changePresetRating(index, rating, HARD_CUT_RATING_TYPE);
-	    	}
-	    	break;
+    case PROJECTM_K_z:
+      break;
 
-	    default:
-	      break;
-	    }
-	default:
-		break;
+    case PROJECTM_K_0:
+      //        nWaveMode=0;
+      break;
 
-	}
+    case PROJECTM_K_6:
+      //        nWaveMode=6;
+      break;
+
+    case PROJECTM_K_7:
+      //        nWaveMode=7;
+      break;
+
+    case PROJECTM_K_m:
+      break;
+
+    case PROJECTM_K_t:
+      break;
+
+    case PROJECTM_K_EQUALS:
+    case PROJECTM_K_PLUS:
+     {
+      unsigned int index;
+
+      if (selectedPresetIndex (index)) {
+        const int oldRating = getPresetRating (index, HARD_CUT_RATING_TYPE);
+
+        if (oldRating >= 6)
+          break;
+
+        const int rating = oldRating + 1;
+
+        changePresetRating (index, rating, HARD_CUT_RATING_TYPE);
+      }
+      break;
+     }
+
+    case PROJECTM_K_MINUS:
+     {
+      unsigned int index;
+
+      if (selectedPresetIndex (index)) {
+        const int oldRating = getPresetRating (index, HARD_CUT_RATING_TYPE);
+
+        if (oldRating <= 1)
+          break;
+
+        const int rating = oldRating - 1;
+
+        changePresetRating (index, rating, HARD_CUT_RATING_TYPE);
+      }
+      break;
+     }
+
+    default:
+      break;
+    }
+  default:
+    break;
+  }
 }
-
diff --git a/src/libprojectM/KeyHandler.hpp b/src/libprojectM/KeyHandler.hpp
index b9a7563..7143e56 100644
--- a/src/libprojectM/KeyHandler.hpp
+++ b/src/libprojectM/KeyHandler.hpp
@@ -1,39 +1,39 @@
-/**

- * 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

- *

- */

-/**

- * $Id: console_interface.h,v 1.1.1.1 2005/12/23 18:05:03 psperl Exp $

- *

- * $Log$

- */

-

-#ifndef _KEY_HANDLER_HPP

-#define _KEY_HANDLER_HPP

-

-#include "event.h"

-class projectM;

-void default_key_handler(projectM *PM, projectMEvent event, projectMKeycode keycode);

-void refreshConsole();

-#if defined(__CPLUSPLUS) && !defined(MACOS)

-extern "C" void key_handler(projectM *PM, projectMEvent event, projectMKeycode keycode, projectMModifier modifier );

-#else

-extern void key_handler(projectM *PM, projectMEvent event, projectMKeycode keycode, projectMModifier modifier );

-#endif

-#endif /** !_KEY_HANDLER_HPP */

+/**
+ * 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
+ *
+ */
+/**
+ * $Id: console_interface.h,v 1.1.1.1 2005/12/23 18:05:03 psperl Exp $
+ *
+ * $Log$
+ */
+
+#ifndef _KEY_HANDLER_HPP
+#define _KEY_HANDLER_HPP
+
+#include "event.h"
+class projectM;
+void default_key_handler(projectM *PM, projectMEvent event, projectMKeycode keycode);
+void refreshConsole();
+#if defined(__CPLUSPLUS) && !defined(MACOS)
+extern "C" void key_handler(projectM *PM, projectMEvent event, projectMKeycode keycode, projectMModifier modifier );
+#else
+extern void key_handler(projectM *PM, projectMEvent event, projectMKeycode keycode, projectMModifier modifier );
+#endif
+#endif /** !_KEY_HANDLER_HPP */
diff --git a/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.cpp b/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.cpp
index 1063fd9..a539154 100644
--- a/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.cpp
+++ b/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.cpp
@@ -1,8 +1,8 @@
 //
 // C++ Implementation: BuiltinFuncs
 //
-// Description: 
-//  
+// Description:
+//
 //
 // Author: Carmelo Piccione <carmelo.piccione@gmail.com>, (C) 2007
 //
@@ -19,97 +19,104 @@
 #include <iostream>
 #include "fatal.h"
 
+
 std::map<std::string, Func*> BuiltinFuncs::builtin_func_tree;
 
-int BuiltinFuncs::load_builtin_func(const std::string & name, float (*func_ptr)(float*), int num_args) {
-	
-  Func * func; 
-  int retval; 
+
+int
+BuiltinFuncs::load_builtin_func (
+const std::string & name,
+float             (*func_ptr)(float*),
+int               num_args
+)
+{
+  Func * func;
+  int retval;
 
   /* Create new function */
-  func = new Func(name, func_ptr, num_args);
+  func = new Func (name, func_ptr, num_args);
 
   if (func == 0)
     return PROJECTM_OUTOFMEM_ERROR;
 
-  retval = insert_func( func );
+  retval = insert_func (func);
 
   return retval;
-
 }
 
-Func * BuiltinFuncs::find_func(const std::string & name) {
-
-  std::map<std::string, Func*>::iterator pos = builtin_func_tree.find(name);
+Func *
+BuiltinFuncs::find_func (const std::string & name)
+{
+  std::map<std::string, Func*>::iterator pos = builtin_func_tree.find (name);
 
   // Case: function not found, return null
   if (pos == builtin_func_tree.end())
-	return 0;
+  return 0;
 
   // Case: function found, return a pointer to it
   return pos->second;
-
 }
 
-int BuiltinFuncs::load_all_builtin_func() {
-
-  if (load_builtin_func("int", FuncWrappers::int_wrapper, 1) < 0)
+int
+BuiltinFuncs::load_all_builtin_func()
+{
+  if (load_builtin_func ("int", FuncWrappers::int_wrapper, 1) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("abs", FuncWrappers::abs_wrapper, 1) < 0)
+  if (load_builtin_func ("abs", FuncWrappers::abs_wrapper, 1) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("sin", FuncWrappers::sin_wrapper, 1) < 0)
+  if (load_builtin_func ("sin", FuncWrappers::sin_wrapper, 1) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("cos", FuncWrappers::cos_wrapper, 1) < 0)
+  if (load_builtin_func ("cos", FuncWrappers::cos_wrapper, 1) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("tan", FuncWrappers::tan_wrapper, 1) < 0)
+  if (load_builtin_func ("tan", FuncWrappers::tan_wrapper, 1) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("asin", FuncWrappers::asin_wrapper, 1) < 0)
+  if (load_builtin_func ("asin", FuncWrappers::asin_wrapper, 1) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("acos", FuncWrappers::acos_wrapper, 1) < 0)
+  if (load_builtin_func ("acos", FuncWrappers::acos_wrapper, 1) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("atan", FuncWrappers::atan_wrapper, 1) < 0)
+  if (load_builtin_func ("atan", FuncWrappers::atan_wrapper, 1) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("sqr", FuncWrappers::sqr_wrapper, 1) < 0)
+  if (load_builtin_func ("sqr", FuncWrappers::sqr_wrapper, 1) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("sqrt", FuncWrappers::sqrt_wrapper, 1) < 0)
+  if (load_builtin_func ("sqrt", FuncWrappers::sqrt_wrapper, 1) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("pow", FuncWrappers::pow_wrapper, 2) < 0)
+  if (load_builtin_func ("pow", FuncWrappers::pow_wrapper, 2) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("exp", FuncWrappers::exp_wrapper, 1) < 0)
+  if (load_builtin_func ("exp", FuncWrappers::exp_wrapper, 1) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("log", FuncWrappers::log_wrapper, 1) < 0)
+  if (load_builtin_func ("log", FuncWrappers::log_wrapper, 1) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("log10", FuncWrappers::log10_wrapper, 1) < 0)
+  if (load_builtin_func ("log10", FuncWrappers::log10_wrapper, 1) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("sign", FuncWrappers::sign_wrapper, 1) < 0)
+  if (load_builtin_func ("sign", FuncWrappers::sign_wrapper, 1) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("min", FuncWrappers::min_wrapper, 2) < 0)
+  if (load_builtin_func ("min", FuncWrappers::min_wrapper, 2) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("max", FuncWrappers::max_wrapper, 2) < 0)
+  if (load_builtin_func ("max", FuncWrappers::max_wrapper, 2) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("sigmoid", FuncWrappers::sigmoid_wrapper, 2) < 0)
+  if (load_builtin_func ("sigmoid", FuncWrappers::sigmoid_wrapper, 2) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("atan2", FuncWrappers::atan2_wrapper, 2) < 0)
+  if (load_builtin_func ("atan2", FuncWrappers::atan2_wrapper, 2) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("rand", FuncWrappers::rand_wrapper, 1) < 0)
+  if (load_builtin_func ("rand", FuncWrappers::rand_wrapper, 1) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("band", FuncWrappers::band_wrapper, 2) < 0)
+  if (load_builtin_func ("band", FuncWrappers::band_wrapper, 2) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("bor", FuncWrappers::bor_wrapper, 2) < 0)
+  if (load_builtin_func ("bor", FuncWrappers::bor_wrapper, 2) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("bnot", FuncWrappers::bnot_wrapper, 1) < 0)
+  if (load_builtin_func ("bnot", FuncWrappers::bnot_wrapper, 1) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("if", FuncWrappers::if_wrapper, 3) < 0)
+  if (load_builtin_func ("if", FuncWrappers::if_wrapper, 3) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("equal", FuncWrappers::equal_wrapper, 2) < 0)
+  if (load_builtin_func ("equal", FuncWrappers::equal_wrapper, 2) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("above", FuncWrappers::above_wrapper, 2) < 0)
+  if (load_builtin_func ("above", FuncWrappers::above_wrapper, 2) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("below", FuncWrappers::below_wrapper, 2) < 0)
+  if (load_builtin_func ("below", FuncWrappers::below_wrapper, 2) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("nchoosek", FuncWrappers::nchoosek_wrapper, 2) < 0)
+  if (load_builtin_func ("nchoosek", FuncWrappers::nchoosek_wrapper, 2) < 0)
     return PROJECTM_ERROR;
-  if (load_builtin_func("fact", FuncWrappers::fact_wrapper, 1) < 0)
+  if (load_builtin_func ("fact", FuncWrappers::fact_wrapper, 1) < 0)
     return PROJECTM_ERROR;
 
   return PROJECTM_SUCCESS;
@@ -119,14 +126,16 @@
 
 /* Initialize the builtin function database.
    Should only be necessary once */
-int BuiltinFuncs::init_builtin_func_db() {
+int
+BuiltinFuncs::init_builtin_func_db()
+{
   int retval;
 
   if (initialized) {
     return 0;
   } else
     initialized = true;
-  
+
   retval = load_all_builtin_func();
   return retval;
 }
@@ -135,40 +144,40 @@
 
 /* Destroy the builtin function database.
    Generally, do this on projectm exit */
-int BuiltinFuncs::destroy_builtin_func_db() {
+int
+BuiltinFuncs::destroy_builtin_func_db()
+{
+  traverse<TraverseFunctors::Delete<Func> >(builtin_func_tree);
 
-traverse<TraverseFunctors::Delete<Func> >(builtin_func_tree);
-
-builtin_func_tree.clear();
-initialized = false;
-return PROJECTM_SUCCESS;
+  builtin_func_tree.clear();
+  initialized = false;
+  return PROJECTM_SUCCESS;
 }
 
 /* Insert a function into the database */
-int BuiltinFuncs::insert_func( Func *func ) {
+int
+BuiltinFuncs::insert_func (Func *func)
+{
+  assert (func);
 
-  assert(func);
-  
   if (func == 0) {
-      std::cerr << "Received a null function object, ignoring...." << std::endl;
-      return PROJECTM_ERROR;
+    std::cerr << "Received a null function object, ignoring...." << std::endl;
+    return PROJECTM_ERROR;
   }
-  
+
 //   //std::cout << "inserting function " << func->getName() << std::endl;
-  
-  const std::pair<std::string, Func*> pair = std::make_pair(std::string(func->getName()), func);
-  
-  assert(pair.second);
-  
+
+  const std::pair<std::string, Func*> pair = std::make_pair (std::string (func->getName()), func);
+
+  assert (pair.second);
+
   const std::pair<std::map<std::string, Func*>::iterator, bool> inserteePair =
-  	builtin_func_tree.insert(pair);
-  	
+    builtin_func_tree.insert (pair);
+
   if (!inserteePair.second) {
-	std::cerr << "Failed to insert builtin function \"" << func->getName() << "\" into collection! Bailing..." << std::endl;
-	abort();
+    std::cerr << "Failed to insert builtin function \"" << func->getName() << "\" into collection! Bailing..." << std::endl;
+    abort();
   }
 
   return PROJECTM_SUCCESS;
 }
-
-
diff --git a/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.hpp b/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.hpp
index 8b1e7e2..777eb5c 100644
--- a/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.hpp
+++ b/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.hpp
@@ -21,6 +21,7 @@
 
 #include "RandomNumberGenerators.hpp"
 
+
 /* Wrappers for all the builtin functions
    The arg_list pointer is a list of floats. Its
    size is equal to the number of arguments the parameter
@@ -33,203 +34,252 @@
 
 public:
 
-static inline float int_wrapper(float * arg_list) {
-
-return floor(arg_list[0]);
-
-}
-
-
-static inline float sqr_wrapper(float * arg_list) {
-	return pow(arg_list[0], 2);
-}
-
-
-static inline float sigmoid_wrapper(float * arg_list)
+static inline float
+int_wrapper(float * arg_list)
 {
-	const double t = (1+exp(-arg_list[0]*arg_list[1]));
-	return (fabs(t) > 0.00001) ? 1.0/t : 0;
-}
-
-static inline float sign_wrapper(float * arg_list) {
-
-return -arg_list[0];
-}
-
-static inline float min_wrapper(float * arg_list) {
-
-if (arg_list[0] > arg_list[1])
-return arg_list[1];
-
-return arg_list[0];
-}
-
-static inline float max_wrapper(float * arg_list) {
-
-if (arg_list[0] > arg_list[1])
-return arg_list[0];
-
-return arg_list[1];
+  return floor(arg_list[0]);
 }
 
 
-static inline float bor_wrapper(float * arg_list) {
-
-return (float)((int)arg_list[0] || (int)arg_list[1]);
-}
-
-static inline float band_wrapper(float * arg_list) {
-return (float)((int)arg_list[0] && (int)arg_list[1]);
-}
-
-static inline float bnot_wrapper(float * arg_list) {
-return (float)(!(int)arg_list[0]);
-}
-
-static inline float if_wrapper(float * arg_list) {
-
-if ((int)arg_list[0] == 0)
-return arg_list[2];
-return arg_list[1];
+static inline float
+sqr_wrapper(float * arg_list)
+{
+  return pow(arg_list[0], 2);
 }
 
 
-static inline float rand_wrapper(float * arg_list) {
-float l=1;
-
-//  printf("RAND ARG:(%d)\n", (int)arg_list[0]);
-if ((int)arg_list[0] > 0)
-	l  = (float) RandomNumberGenerators::uniformInteger((int)arg_list[0]);
-
-return l;
+static inline float
+sigmoid_wrapper(float * arg_list)
+{
+  const double t = (1+exp(-arg_list[0]*arg_list[1]));
+  return (fabs(t) > 0.00001) ? 1.0/t : 0;
 }
 
-static inline float equal_wrapper(float * arg_list) {
-	return (arg_list[0] == arg_list[1]);
+static inline float
+sign_wrapper(float * arg_list)
+{
+  return -arg_list[0];
+}
+
+static inline float
+min_wrapper(float * arg_list)
+{
+  if (arg_list[0] > arg_list[1])
+    return arg_list[1];
+
+  return arg_list[0];
+}
+
+static inline float
+max_wrapper(float * arg_list)
+{
+  if (arg_list[0] > arg_list[1])
+    return arg_list[0];
+
+  return arg_list[1];
 }
 
 
-static inline float above_wrapper(float * arg_list) {
+static inline float
+bor_wrapper(float * arg_list)
+{
+  return (float)((int)arg_list[0] || (int)arg_list[1]);
+}
 
-return (arg_list[0] > arg_list[1]);
+static inline float
+band_wrapper(float * arg_list)
+{
+  return (float)((int)arg_list[0] && (int)arg_list[1]);
+}
+
+static inline float
+bnot_wrapper(float * arg_list)
+{
+  return (float)(!(int)arg_list[0]);
+}
+
+static inline float
+if_wrapper(float * arg_list)
+{
+  if ((int)arg_list[0] == 0)
+    return arg_list[2];
+  return arg_list[1];
 }
 
 
-static inline float below_wrapper(float * arg_list) {
+static inline float
+rand_wrapper(float * arg_list)
+{
+  float l=1;
 
-return (arg_list[0] < arg_list[1]);
+  //  printf("RAND ARG:(%d)\n", (int)arg_list[0]);
+  if ((int)arg_list[0] > 0)
+    l  = (float) RandomNumberGenerators::uniformInteger((int)arg_list[0]);
+
+  return l;
 }
 
-static float sin_wrapper(float * arg_list) {
+static inline float
+equal_wrapper(float * arg_list)
+{
+  return (arg_list[0] == arg_list[1]);
+}
 
+
+static inline float
+above_wrapper(float * arg_list)
+{
+  return (arg_list[0] > arg_list[1]);
+}
+
+
+static inline float
+below_wrapper(float * arg_list)
+{
+  return (arg_list[0] < arg_list[1]);
+}
+
+static float
+sin_wrapper(float * arg_list)
+{
   assert(arg_list);
-//return .5;
-float d = sinf(*arg_list);
-return d;
-//return (sin (arg_list[0]));
+  //return .5;
+  float d = sinf(*arg_list);
+  return d;
+  //return (sin (arg_list[0]));
 }
 
 
-static inline float cos_wrapper(float * arg_list) {
-return (cos (arg_list[0]));
-}
-
-static inline float tan_wrapper(float * arg_list) {
-return (tan(arg_list[0]));
-}
-
-static inline float asin_wrapper(float * arg_list) {
-return (asin (arg_list[0]));
-}
-
-static inline float acos_wrapper(float * arg_list) {
-return (acos (arg_list[0]));
-}
-
-static inline float atan_wrapper(float * arg_list) {
-return (atan (arg_list[0]));
-}
-
-static inline float atan2_wrapper(float * arg_list) {
-return (atan2 (arg_list[0], arg_list[1]));
-}
-
-static inline float pow_wrapper(float * arg_list) {
-return (pow (arg_list[0], arg_list[1]));
-}
-
-static inline float exp_wrapper(float * arg_list) {
-return (exp(arg_list[0]));
-}
-
-static inline float abs_wrapper(float * arg_list) {
-return (fabs(arg_list[0]));
-}
-
-static inline float log_wrapper(float* arg_list) {
-return (log (arg_list[0]));
-}
-
-static inline float log10_wrapper(float * arg_list) {
-return (log10 (arg_list[0]));
-}
-
-static inline float sqrt_wrapper(float * arg_list) {
-return (sqrt (arg_list[0]));
-}
-
-
-static inline float nchoosek_wrapper(float * arg_list) {
-unsigned long cnm = 1UL;
-int i, f;
-int n, m;
-
-n = (int)arg_list[0];
-m = (int)arg_list[1];
-
-if (m*2 >n) m = n-m;
-for (i=1 ; i <= m; n--, i++)
+static inline float
+cos_wrapper(float * arg_list)
 {
-if ((f=n) % i == 0)
-f   /= i;
-else  cnm /= i;
-cnm *= f;
+  return (cos (arg_list[0]));
 }
-return (float)cnm;
+
+static inline float
+tan_wrapper(float * arg_list)
+{
+  return (tan(arg_list[0]));
+}
+
+static inline float
+asin_wrapper(float * arg_list)
+{
+  return (asin (arg_list[0]));
+}
+
+static inline float
+acos_wrapper(float * arg_list)
+{
+  return (acos (arg_list[0]));
+}
+
+static inline float
+atan_wrapper(float * arg_list)
+{
+  return (atan (arg_list[0]));
+}
+
+static inline float
+atan2_wrapper(float * arg_list)
+{
+  return (atan2 (arg_list[0], arg_list[1]));
+}
+
+static inline float
+pow_wrapper(float * arg_list)
+{
+  return (pow (arg_list[0], arg_list[1]));
+}
+
+static inline float
+exp_wrapper(float * arg_list)
+{
+  return (exp(arg_list[0]));
+}
+
+static inline float
+abs_wrapper(float * arg_list)
+{
+  return (fabs(arg_list[0]));
+}
+
+static inline float
+log_wrapper(float* arg_list)
+{
+  return (log (arg_list[0]));
+}
+
+static inline float
+log10_wrapper(float * arg_list)
+{
+  return (log10 (arg_list[0]));
+}
+
+static inline float
+sqrt_wrapper(float * arg_list)
+{
+  return (sqrt (arg_list[0]));
 }
 
 
-static inline float fact_wrapper(float * arg_list) {
+static inline float
+nchoosek_wrapper(float * arg_list)
+{
+  unsigned long cnm = 1UL;
+  int           i, f;
+  int           n, m;
 
+  n = (int)arg_list[0];
+  m = (int)arg_list[1];
 
-int result = 1;
-
-int n = (int)arg_list[0];
-
-while (n > 1) {
-result = result * n;
-n--;
+  if (m * 2 > n)
+    m = n - m;
+  for (i = 1;  i <= m;  n--, i++)
+  {
+    if ((f = n) % i == 0)
+      f   /= i;
+    else
+      cnm /= i;
+    cnm *= f;
+  }
+  return (float)cnm;
 }
-return (float)result;
+
+
+static inline float
+fact_wrapper(float * arg_list)
+{
+  int result = 1;
+
+  int n = (int)arg_list[0];
+
+  while (n > 1) {
+    result = result * n;
+    n--;
+  }
+  return (float)result;
 }
-};
+
+};  /*  class FuncWrappers  */
 
 #include <map>
+
+
 class BuiltinFuncs {
-
 public:
-    
-    static int init_builtin_func_db();
-    static int destroy_builtin_func_db();
-    static int load_all_builtin_func();
-    static int load_builtin_func( const std::string & name, float (*func_ptr)(float*), int num_args );
+  static int  init_builtin_func_db();
+  static int  destroy_builtin_func_db();
+  static int  load_all_builtin_func();
+  static int  load_builtin_func( const std::string & name, float (*func_ptr)(float*), int num_args );
 
-    static int insert_func( Func *func );
-    static int remove_func( Func *func );
-    static Func *find_func( const std::string & name );
+  static int  insert_func( Func *func );
+  static int  remove_func( Func *func );
+  static Func *find_func( const std::string & name );
+
 private:
-     static std::map<std::string, Func*> builtin_func_tree;
-     static volatile bool initialized;
+  static std::map<std::string, Func*> builtin_func_tree;
+  static volatile bool                initialized;
 };
 
 #endif
diff --git a/src/libprojectM/MilkdropPresetFactory/BuiltinParams.cpp b/src/libprojectM/MilkdropPresetFactory/BuiltinParams.cpp
index e33149b..880caa7 100644
--- a/src/libprojectM/MilkdropPresetFactory/BuiltinParams.cpp
+++ b/src/libprojectM/MilkdropPresetFactory/BuiltinParams.cpp
@@ -1,4 +1,3 @@
-
 #include "fatal.h"
 #include "BuiltinParams.hpp"
 #include <cassert>
@@ -9,18 +8,18 @@
 #include <stdio.h>
 #include "Common.hpp"
 
+
 BuiltinParams::BuiltinParams() {}
 
 BuiltinParams::BuiltinParams(PresetInputs & presetInputs, PresetOutputs & presetOutputs)
 {
-
   presetInputs.Initialize(presetOutputs.gx, presetOutputs.gy);
 
   int ret;
   if ((ret = init_builtin_param_db(presetInputs, presetOutputs)) != PROJECTM_SUCCESS)
   {
-	std::cout << "failed to allocate builtin parameter database with error " << ret << std::endl;;
-        throw ret;
+    std::cout << "failed to allocate builtin parameter database with error " << ret << std::endl;;
+    throw ret;
   }
 
 }
@@ -31,12 +30,20 @@
 }
 
 /* Loads a float parameter into the builtin database */
-int BuiltinParams::load_builtin_param_float(const std::string & name, void * engine_val, void * matrix, short int flags,
-    float init_val, float upper_bound, float lower_bound, const std::string & alt_name)
+int
+BuiltinParams::load_builtin_param_float (
+const std::string & name,
+void              * engine_val,
+void              * matrix,
+short int         flags,
+float             init_val,
+float             upper_bound,
+float             lower_bound,
+const std::string & alt_name
+)
 {
-
-  Param * param = NULL;
-  CValue iv, ub, lb;
+  Param   * param = NULL;
+  CValue  iv, ub, lb;
 
   iv.float_val = init_val;
   ub.float_val = upper_bound;
@@ -49,8 +56,9 @@
     fflush(stdout);
   }
 
-std::string lowerName(name);
-std::transform(lowerName.begin(), lowerName.end(), lowerName.begin(), tolower);
+  std::string lowerName(name);
+
+  std::transform(lowerName.begin(), lowerName.end(), lowerName.begin(), tolower);
 
   if ((param = new Param(lowerName, P_TYPE_DOUBLE, flags, engine_val, matrix, iv, ub, lb)) == NULL)
   {
@@ -82,6 +90,7 @@
   if (alt_name != "")
   {
     std::string alt_lower_name(alt_name);
+
     std::transform(alt_lower_name.begin(), alt_lower_name.end(), alt_lower_name.begin(), tolower);
     insert_param_alt_name(param,alt_lower_name);
 
@@ -90,8 +99,6 @@
       printf("alt_name inserted...");
       fflush(stdout);
     }
-
-
   }
 
   if (BUILTIN_PARAMS_DEBUG == 2) printf("finished\n");
@@ -104,18 +111,18 @@
 
 /* Destroy the builtin parameter database.
    Generally, do this on projectm exit */
-int BuiltinParams::destroy_builtin_param_db()
+int
+BuiltinParams::destroy_builtin_param_db()
 {
-
   traverse<TraverseFunctors::Delete<Param> >(builtin_param_tree);
   return PROJECTM_SUCCESS;
 }
 
 
 /* Insert a parameter into the database with an alternate name */
-int BuiltinParams::insert_param_alt_name(Param * param, const std::string & alt_name)
+int
+BuiltinParams::insert_param_alt_name(Param * param, const std::string & alt_name)
 {
-
   assert(param);
 
   aliasMap.insert(std::make_pair(alt_name, param->name));
@@ -123,45 +130,49 @@
   return PROJECTM_SUCCESS;
 }
 
-Param * BuiltinParams::find_builtin_param(const std::string & name)
+Param *
+BuiltinParams::find_builtin_param(const std::string & name)
 {
+  AliasMap::iterator  pos = aliasMap.find(name);
+  Param               * param = 0;
 
-
-
-  AliasMap::iterator pos = aliasMap.find(name);
-  Param * param = 0;
   //std::cerr << "[BuiltinParams] find_builtin_param: name is " << name << std::endl;
   if (pos == aliasMap.end())
   {
     std::map<std::string, Param*>::iterator builtinPos = builtin_param_tree.find(name);
 
     if (builtinPos != builtin_param_tree.end()) {
-    //  std::cerr << "[BuiltinParams] find_builtin_param: found it directly." << std::endl;
+      //  std::cerr << "[BuiltinParams] find_builtin_param: found it directly." << std::endl;
       param = builtinPos->second;
-     }
+    }
   }
   else
   {
-
     std::map<std::string, Param*>::iterator builtinPos = builtin_param_tree.find(pos->second);
 
     if (builtinPos != builtin_param_tree.end()) {
       //std::cerr << "[BuiltinParams] find_builtin_param: found it indirectly." << std::endl;
       param = builtinPos->second;
-
-}
+    }
   }
   return param;
 }
 
 
 /* Loads a integer parameter into the builtin database */
-int BuiltinParams::load_builtin_param_int(const std::string & name, void * engine_val, short int flags,
-    int init_val, int upper_bound, int lower_bound, const std::string &alt_name)
+int
+BuiltinParams::load_builtin_param_int (
+const std::string &name,
+void              *engine_val,
+short int         flags,
+int               init_val,
+int               upper_bound,
+int               lower_bound,
+const std::string &alt_name
+)
 {
-
-  Param * param;
-  CValue iv, ub, lb;
+  Param   * param;
+  CValue  iv, ub, lb;
 
   iv.int_val = init_val;
   ub.int_val = upper_bound;
@@ -169,6 +180,7 @@
 
   // normalize to lower case as milkdrop scripts depend on this
   std::string lowerName(name);
+
   std::transform(lowerName.begin(), lowerName.end(), lowerName.begin(), tolower);
 
   param = new Param(lowerName, P_TYPE_INT, flags, engine_val, NULL, iv, ub, lb);
@@ -187,42 +199,52 @@
   if (alt_name != "")
   {
     std::string alt_lower_name(alt_name);
+
     std::transform(alt_lower_name.begin(), alt_lower_name.end(), alt_lower_name.begin(), tolower);
     insert_param_alt_name(param,alt_lower_name);
-
   }
 
   return PROJECTM_SUCCESS;
-
 }
 
-int BuiltinParams::load_builtin_param_string( const std::string & name, std::string * engine_val, short int flags) {
+int
+BuiltinParams::load_builtin_param_string (
+const std::string &name,
+std::string       *engine_val,
+short int         flags
+)
+{
+  /* Creates a new parameter of type string */
+  Param * param = Param::new_param_string(name.c_str(), flags, engine_val);
 
-	/* Creates a new parameter of type string */
-	Param * param = Param::new_param_string(name.c_str(), flags, engine_val);
-
-	if (insert_builtin_param( param ) < 0)
-	{
-		delete param;
-		return PROJECTM_ERROR;
-	}
-	return PROJECTM_SUCCESS;
+  if (insert_builtin_param( param ) < 0)
+  {
+    delete param;
+    return PROJECTM_ERROR;
+  }
+  return PROJECTM_SUCCESS;
 }
 
 /* Loads a boolean parameter */
-int BuiltinParams::load_builtin_param_bool(const std:: string & name, void * engine_val, short int flags,
-    int init_val, const std::string &alt_name)
+int
+BuiltinParams::load_builtin_param_bool (
+const std::string &name,
+void              *engine_val,
+short int         flags,
+int               init_val,
+const std::string &alt_name
+)
 {
-
-  Param * param;
-  CValue iv, ub, lb;
+  Param   * param;
+  CValue  iv, ub, lb;
 
   iv.int_val = init_val;
   ub.int_val = TRUE;
   lb.int_val = false;
 
-std::string lowerName(name);
-std::transform(lowerName.begin(), lowerName.end(), lowerName.begin(), tolower);
+  std::string lowerName(name);
+
+  std::transform(lowerName.begin(), lowerName.end(), lowerName.begin(), tolower);
 
   param = new Param(lowerName, P_TYPE_BOOL, flags, engine_val, NULL, iv, ub, lb);
 
@@ -240,16 +262,17 @@
   if (alt_name != "")
   {
     std::string alt_lower_name(alt_name);
+
     std::transform(alt_lower_name.begin(), alt_lower_name.end(), alt_lower_name.begin(), tolower);
     insert_param_alt_name(param,alt_lower_name);
   }
 
   return PROJECTM_SUCCESS;
-
 }
 
 /* Inserts a parameter into the builtin database */
-int BuiltinParams::insert_builtin_param( Param *param )
+int
+BuiltinParams::insert_builtin_param( Param *param )
 {
   std::pair<std::map<std::string, Param*>::iterator, bool> inserteePos = builtin_param_tree.insert(std::make_pair(param->name, param));
 
@@ -260,9 +283,12 @@
 
 /* Initialize the builtin parameter database.
    Should only be necessary once */
-int BuiltinParams::init_builtin_param_db(const PresetInputs & presetInputs, PresetOutputs & presetOutputs)
+int
+BuiltinParams::init_builtin_param_db (
+const PresetInputs  & presetInputs,
+PresetOutputs       & presetOutputs
+)
 {
-
   if (BUILTIN_PARAMS_DEBUG)
   {
     printf("init_builtin_param: loading database...");
@@ -273,7 +299,7 @@
   if (load_all_builtin_param(presetInputs, presetOutputs) < 0)
   {
     if (BUILTIN_PARAMS_DEBUG) printf("failed loading builtin parameters (FATAL)\n");
-    return PROJECTM_ERROR;
+      return PROJECTM_ERROR;
   }
 
   if (BUILTIN_PARAMS_DEBUG) printf("success!\n");
@@ -285,9 +311,12 @@
 
 
 /* Loads all builtin parameters, limits are also defined here */
-int BuiltinParams::load_all_builtin_param(const PresetInputs & presetInputs, PresetOutputs & presetOutputs)
+int
+BuiltinParams::load_all_builtin_param (
+const PresetInputs  & presetInputs,
+PresetOutputs       & presetOutputs
+)
 {
-
   load_builtin_param_float("frating", (void*)&presetOutputs.fRating, NULL, P_FLAG_NONE, 0.0 , 5.0, 0.0, "");
   load_builtin_param_float("fwavescale", (void*)&presetOutputs.wave.scale, NULL, P_FLAG_NONE, 0.0, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, "");
   load_builtin_param_float("gamma", (void*)&presetOutputs.fGammaAdj, NULL, P_FLAG_NONE, 0.0, MAX_DOUBLE_SIZE, 0, "fGammaAdj");
@@ -386,19 +415,25 @@
   load_builtin_param_int("fps", (void*)&presetInputs.fps, P_FLAG_READONLY, 15, MAX_INT_SIZE, 0, "");
 
   load_builtin_param_float("x", (void*)&presetInputs.x_per_pixel, presetInputs.origx,  P_FLAG_PER_PIXEL |P_FLAG_ALWAYS_MATRIX | P_FLAG_READONLY | P_FLAG_NONE,
-                           0, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, "");
+  0, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, "");
   load_builtin_param_float("y", (void*)&presetInputs.y_per_pixel, presetInputs.origy,  P_FLAG_PER_PIXEL |P_FLAG_ALWAYS_MATRIX |P_FLAG_READONLY | P_FLAG_NONE,
-                           0, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, "");
+  0, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, "");
   load_builtin_param_float("ang", (void*)&presetInputs.ang_per_pixel, presetInputs.origtheta,  P_FLAG_PER_PIXEL |P_FLAG_ALWAYS_MATRIX | P_FLAG_READONLY | P_FLAG_NONE,
-                           0, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, "");
+  0, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, "");
   load_builtin_param_float("rad", (void*)&presetInputs.rad_per_pixel, presetInputs.origrad,  P_FLAG_PER_PIXEL |P_FLAG_ALWAYS_MATRIX | P_FLAG_READONLY | P_FLAG_NONE,
-                           0, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, "");
+  0, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, "");
 
-  for (unsigned int i = 0; i < NUM_Q_VARIABLES;i++) {
-	std::ostringstream os;
-	os << "q" << i;
-	load_builtin_param_float(os.str().c_str(), (void*)&presetOutputs.q[i],  NULL, P_FLAG_PER_PIXEL |P_FLAG_QVAR, 0, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, "");
+  for (unsigned int i = 0;  i < NUM_Q_VARIABLES;  i++) {
+    std::ostringstream os;
 
+    os << "q" << i;
+    load_builtin_param_float (os.str().c_str(),
+                              (void*)&presetOutputs.q[i],
+                              NULL,
+                              P_FLAG_PER_PIXEL | P_FLAG_QVAR,
+                              0,
+                              MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE,
+                              "");
   }
 
   /* variables added in 1.04 */
@@ -406,6 +441,4 @@
   load_builtin_param_int("meshy", (void*)&presetInputs.gy, P_FLAG_READONLY, 24, 72, 6, "");
 
   return PROJECTM_SUCCESS;
-
 }
-
diff --git a/src/libprojectM/MilkdropPresetFactory/BuiltinParams.hpp b/src/libprojectM/MilkdropPresetFactory/BuiltinParams.hpp
index dbe60f1..3cf3f9d 100644
--- a/src/libprojectM/MilkdropPresetFactory/BuiltinParams.hpp
+++ b/src/libprojectM/MilkdropPresetFactory/BuiltinParams.hpp
@@ -33,54 +33,56 @@
 #include <map>
 #include <cstdio>
 
+
 class BuiltinParams {
 
 public:
-   typedef std::map<std::string, std::string> AliasMap;
+  typedef std::map<std::string, std::string> AliasMap;
 
-    /** Default constructor leaves database in an uninitialized state.  */
-    BuiltinParams();
+  /** Default constructor leaves database in an uninitialized state.  */
+  BuiltinParams();
 
-    /** Construct a new builtin parameter database with variables references given by
-     * the preset input and output structures */
-     BuiltinParams(PresetInputs &  presetInputs, PresetOutputs & presetOutputs);
+  /** Construct a new builtin parameter database with variables references given by
+  * the preset input and output structures */
+  BuiltinParams(PresetInputs &  presetInputs, PresetOutputs & presetOutputs);
 
-    ~BuiltinParams();
+  ~BuiltinParams();
 
-    /** Param database initalizer / destructor functions */
-    int init_builtin_param_db(const PresetInputs & presetInputs, PresetOutputs & presetOutputs);
-    int load_all_builtin_param(const PresetInputs & presetInputs, PresetOutputs & presetOutputs);
-    int destroy_builtin_param_db();
+  /** Param database initalizer / destructor functions */
+  int init_builtin_param_db(const PresetInputs & presetInputs, PresetOutputs & presetOutputs);
+  int load_all_builtin_param(const PresetInputs & presetInputs, PresetOutputs & presetOutputs);
+  int destroy_builtin_param_db();
 
-    int insert_param_alt_name( Param *param, const std::string& salt_name );
-    Param *find_builtin_param( const std::string & name );
-    int load_builtin_param_float( const std::string & name, void *engine_val, void *matrix,
-                                  short int flags,
-                                  float init_val, float upper_bound,
-                                  float lower_bound, const std::string & alt_name );
-    int load_builtin_param_int( const std::string & name, void *engine_val, short int flags,
-                                int init_val, int upper_bound,
-                                int lower_bound, const std::string & alt_name );
-    int load_builtin_param_bool( const std::string & name, void *engine_val, short int flags,
-                                int init_val, const std::string & alt_name );
+  int insert_param_alt_name( Param *param, const std::string& salt_name );
+  Param *find_builtin_param( const std::string & name );
+  int load_builtin_param_float( const std::string & name, void *engine_val, void *matrix,
+                                short int flags,
+                                float init_val, float upper_bound,
+                                float lower_bound, const std::string & alt_name );
+  int load_builtin_param_int( const std::string & name, void *engine_val, short int flags,
+                              int init_val, int upper_bound,
+                              int lower_bound, const std::string & alt_name );
+  int load_builtin_param_bool( const std::string & name, void *engine_val, short int flags,
+                               int init_val, const std::string & alt_name );
 
-    int load_builtin_param_string( const std::string & name, std::string * engine_val, short int flags);
+  int load_builtin_param_string( const std::string & name, std::string * engine_val, short int flags);
 
-    int insert_builtin_param( Param *param );
+  int insert_builtin_param( Param *param );
 
-    template <class Fun>
-    void apply(Fun & fun) {
-	traverse(builtin_param_tree, fun);
-    }
+  template <class Fun>
+  void apply(Fun & fun) {
+    traverse(builtin_param_tree, fun);
+  }
 
 
 private:
-    static const bool BUILTIN_PARAMS_DEBUG = false;
+  static const bool BUILTIN_PARAMS_DEBUG = false;
 
-    // Used to associate multiple string names to one parameter
-    AliasMap aliasMap;
+  // Used to associate multiple string names to one parameter
+  AliasMap aliasMap;
 
-    // Internal datastructure to store the parameters
-    std::map<std::string,Param*> builtin_param_tree;
+  // Internal datastructure to store the parameters
+  std::map<std::string,Param*> builtin_param_tree;
 };
+
 #endif
diff --git a/src/libprojectM/MilkdropPresetFactory/CValue.hpp b/src/libprojectM/MilkdropPresetFactory/CValue.hpp
index 7c2f557..aa8eb5b 100644
--- a/src/libprojectM/MilkdropPresetFactory/CValue.hpp
+++ b/src/libprojectM/MilkdropPresetFactory/CValue.hpp
@@ -30,9 +30,9 @@
 #define _CVALUE_H
 
 typedef union CValue_t {
-    bool bool_val;
-    int int_val;
-    float float_val;
-  } CValue;
+  bool  bool_val;
+  int   int_val;
+  float float_val;
+} CValue;
 
 #endif /** _CVALUE_H */
diff --git a/src/libprojectM/MilkdropPresetFactory/CustomShape.cpp b/src/libprojectM/MilkdropPresetFactory/CustomShape.cpp
index 4d2c283..5be0daa 100644
--- a/src/libprojectM/MilkdropPresetFactory/CustomShape.cpp
+++ b/src/libprojectM/MilkdropPresetFactory/CustomShape.cpp
@@ -39,217 +39,216 @@
 
 CustomShape::CustomShape() : Shape()
 {
-	CustomShape(0);
+  CustomShape(0);
 };
 
 CustomShape::CustomShape ( int id ) : Shape()
 {
+  Param * param;
 
-	Param * param;
+  this->id = id;
+  this->per_frame_count = 0;
 
-	this->id = id;
-	this->per_frame_count = 0;
-
-	/* Start: Load custom shape parameters */
-	param = Param::new_param_float ( "r", P_FLAG_NONE, &this->r, NULL, 1.0, 0.0, 0.5 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_float ( "g", P_FLAG_NONE, &this->g, NULL, 1.0, 0.0, .5 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_float ( "b", P_FLAG_NONE, &this->b, NULL, 1.0, 0.0, .5 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_float ( "a", P_FLAG_NONE, &this->a, NULL, 1.0, 0.0, .5 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_float ( "border_r", P_FLAG_NONE, &this->border_r, NULL, 1.0, 0.0, .5 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_float ( "border_g", P_FLAG_NONE, &this->border_g, NULL, 1.0, 0.0, .5 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_float ( "border_b", P_FLAG_NONE, &this->border_b, NULL, 1.0, 0.0, .5 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_float ( "border_a", P_FLAG_NONE, &this->border_a, NULL, 1.0, 0.0, .5 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_float ( "r2", P_FLAG_NONE, &this->r2, NULL, 1.0, 0.0, .5 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_float ( "g2", P_FLAG_NONE, &this->g2, NULL, 1.0, 0.0, .5 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_float ( "b2", P_FLAG_NONE, &this->b2, NULL, 1.0, 0.0, .5 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_float ( "a2", P_FLAG_NONE, &this->a2, NULL, 1.0, 0.0, .5 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_float ( "x", P_FLAG_NONE, &this->x, NULL, 1.0, 0.0, .5 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_float ( "y", P_FLAG_NONE, &this->y, NULL, 1.0, 0.0, .5 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_bool ( "thickoutline", P_FLAG_NONE, &this->thickOutline, 1, 0, 0 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_bool ( "enabled", P_FLAG_NONE, &this->enabled, 1, 0, 0 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_int ( "sides", P_FLAG_NONE, &this->sides, 100, 3, 3 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_bool ( "additive", P_FLAG_NONE, &this->additive, 1, 0, 0 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_bool ( "textured", P_FLAG_NONE, &this->textured, 1, 0, 0 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_float ( "rad", P_FLAG_NONE, &this->radius, NULL, MAX_DOUBLE_SIZE, 0, 0.0 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_float ( "ang", P_FLAG_NONE, &this->ang, NULL, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_float ( "tex_zoom", P_FLAG_NONE, &this->tex_zoom, NULL, MAX_DOUBLE_SIZE, .00000000001, 0.0 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_float ( "tex_ang", P_FLAG_NONE, &this->tex_ang, NULL, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-
-	param = Param::new_param_float ( "t1", P_FLAG_TVAR, &this->t1, NULL, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_float ( "t2", P_FLAG_TVAR, &this->t2, NULL, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_float ( "t3", P_FLAG_TVAR, &this->t3, NULL, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_float ( "t4", P_FLAG_TVAR, &this->t4, NULL, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_float ( "t5", P_FLAG_TVAR, &this->t5, NULL, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_float ( "t6", P_FLAG_TVAR, &this->t6, NULL, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_float ( "t7", P_FLAG_TVAR, &this->t7, NULL, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-	param = Param::new_param_float ( "t8", P_FLAG_TVAR, &this->t8, NULL, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0 );
-	if ( !ParamUtils::insert( param, &this->param_tree ) )
-	{
-		abort();
-	}
-
-   for (unsigned int i = 1; i <= NUM_Q_VARIABLES;i++) {
-	std::ostringstream os;
-	os << "q" << i;
-	param = Param::new_param_float ( os.str().c_str(), P_FLAG_QVAR, &this->q[i], NULL, MAX_DOUBLE_SIZE,
-		 -MAX_DOUBLE_SIZE, 0.0 );
-	if ( ParamUtils::insert ( param, &this->param_tree ) < 0 )
-	{
-		abort();
-	}
+  /* Start: Load custom shape parameters */
+  param = Param::new_param_float ( "r", P_FLAG_NONE, &this->r, NULL, 1.0, 0.0, 0.5 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_float ( "g", P_FLAG_NONE, &this->g, NULL, 1.0, 0.0, .5 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_float ( "b", P_FLAG_NONE, &this->b, NULL, 1.0, 0.0, .5 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_float ( "a", P_FLAG_NONE, &this->a, NULL, 1.0, 0.0, .5 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_float ( "border_r", P_FLAG_NONE, &this->border_r, NULL, 1.0, 0.0, .5 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_float ( "border_g", P_FLAG_NONE, &this->border_g, NULL, 1.0, 0.0, .5 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_float ( "border_b", P_FLAG_NONE, &this->border_b, NULL, 1.0, 0.0, .5 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_float ( "border_a", P_FLAG_NONE, &this->border_a, NULL, 1.0, 0.0, .5 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_float ( "r2", P_FLAG_NONE, &this->r2, NULL, 1.0, 0.0, .5 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_float ( "g2", P_FLAG_NONE, &this->g2, NULL, 1.0, 0.0, .5 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_float ( "b2", P_FLAG_NONE, &this->b2, NULL, 1.0, 0.0, .5 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_float ( "a2", P_FLAG_NONE, &this->a2, NULL, 1.0, 0.0, .5 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_float ( "x", P_FLAG_NONE, &this->x, NULL, 1.0, 0.0, .5 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_float ( "y", P_FLAG_NONE, &this->y, NULL, 1.0, 0.0, .5 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_bool ( "thickoutline", P_FLAG_NONE, &this->thickOutline, 1, 0, 0 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_bool ( "enabled", P_FLAG_NONE, &this->enabled, 1, 0, 0 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_int ( "sides", P_FLAG_NONE, &this->sides, 100, 3, 3 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_bool ( "additive", P_FLAG_NONE, &this->additive, 1, 0, 0 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_bool ( "textured", P_FLAG_NONE, &this->textured, 1, 0, 0 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_float ( "rad", P_FLAG_NONE, &this->radius, NULL, MAX_DOUBLE_SIZE, 0, 0.0 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_float ( "ang", P_FLAG_NONE, &this->ang, NULL, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_float ( "tex_zoom", P_FLAG_NONE, &this->tex_zoom, NULL, MAX_DOUBLE_SIZE, .00000000001, 0.0 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_float ( "tex_ang", P_FLAG_NONE, &this->tex_ang, NULL, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
   }
 
-	param = Param::new_param_string ( "imageurl", P_FLAG_NONE, &this->imageUrl);
-	if ( !ParamUtils::insert( param, &this->text_properties_tree ) )
-	{
-		abort();
-	}
+  param = Param::new_param_float ( "t1", P_FLAG_TVAR, &this->t1, NULL, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_float ( "t2", P_FLAG_TVAR, &this->t2, NULL, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_float ( "t3", P_FLAG_TVAR, &this->t3, NULL, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_float ( "t4", P_FLAG_TVAR, &this->t4, NULL, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_float ( "t5", P_FLAG_TVAR, &this->t5, NULL, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_float ( "t6", P_FLAG_TVAR, &this->t6, NULL, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_float ( "t7", P_FLAG_TVAR, &this->t7, NULL, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
+  param = Param::new_param_float ( "t8", P_FLAG_TVAR, &this->t8, NULL, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0 );
+  if ( !ParamUtils::insert( param, &this->param_tree ) )
+  {
+    abort();
+  }
 
+  for (unsigned int i = 1;  i <= NUM_Q_VARIABLES;  i++) {
+    std::ostringstream os;
+
+    os << "q" << i;
+    param = Param::new_param_float ( os.str().c_str(), P_FLAG_QVAR, &this->q[i], NULL,
+                                     MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0 );
+    if ( ParamUtils::insert ( param, &this->param_tree ) < 0 )
+    {
+      abort();
+    }
+  }
+
+  param = Param::new_param_string ( "imageurl", P_FLAG_NONE, &this->imageUrl);
+  if ( !ParamUtils::insert( param, &this->text_properties_tree ) )
+  {
+    abort();
+  }
 }
 
 /* Frees a custom shape form object */
 CustomShape::~CustomShape()
 {
-
-	traverseVector<TraverseFunctors::Delete<PerFrameEqn> > ( per_frame_eqn_tree );
-	traverse<TraverseFunctors::Delete<InitCond> > ( init_cond_tree );
-	traverse<TraverseFunctors::Delete<Param> > ( param_tree );
-	traverse<TraverseFunctors::Delete<InitCond> > ( per_frame_init_eqn_tree );
-	traverse<TraverseFunctors::Delete<Param> > ( text_properties_tree );
-
+  traverseVector<TraverseFunctors::Delete<PerFrameEqn> > ( per_frame_eqn_tree );
+  traverse<TraverseFunctors::Delete<InitCond> > ( init_cond_tree );
+  traverse<TraverseFunctors::Delete<Param> > ( param_tree );
+  traverse<TraverseFunctors::Delete<InitCond> > ( per_frame_init_eqn_tree );
+  traverse<TraverseFunctors::Delete<Param> > ( text_properties_tree );
 }
 
-void CustomShape::loadUnspecInitConds()
+void
+CustomShape::loadUnspecInitConds()
 {
-
-	InitCondUtils::LoadUnspecInitCond fun ( this->init_cond_tree, this->per_frame_init_eqn_tree );
-	traverse ( param_tree, fun );
+  InitCondUtils::LoadUnspecInitCond fun ( this->init_cond_tree, this->per_frame_init_eqn_tree );
+  traverse ( param_tree, fun );
 }
 
-void CustomShape::evalInitConds()
+void
+CustomShape::evalInitConds()
 {
-	// NOTE: This is verified to be same behavior as trunk
-	for ( std::map<std::string, InitCond*>::iterator pos = per_frame_init_eqn_tree.begin(); 
-		     pos != per_frame_init_eqn_tree.end();++pos )
-		pos->second->evaluate();
+  // NOTE: This is verified to be same behavior as trunk
+  for (std::map<std::string, InitCond*>::iterator pos = per_frame_init_eqn_tree.begin();
+       pos != per_frame_init_eqn_tree.end();
+       ++pos)
+    pos->second->evaluate();
 }
diff --git a/src/libprojectM/MilkdropPresetFactory/CustomShape.hpp b/src/libprojectM/MilkdropPresetFactory/CustomShape.hpp
index eb9a8e8..6fbbe34 100644
--- a/src/libprojectM/MilkdropPresetFactory/CustomShape.hpp
+++ b/src/libprojectM/MilkdropPresetFactory/CustomShape.hpp
@@ -25,7 +25,6 @@
  *
  * $Log$
  */
-
 #ifndef _CUSTOM_SHAPE_H
 #define _CUSTOM_SHAPE_H
 
@@ -37,54 +36,53 @@
 #include "Renderer/Renderable.hpp"
 #include <vector>
 
+
 class Preset;
 
 
 class CustomShape : public Shape {
 public:
-    /* Numerical id */
-    int id;
-    int per_frame_count;
+  /* Numerical id */
+  int id;
+  int per_frame_count;
 
-    /* Parameter tree associated with this custom shape */
-    std::map<std::string,Param*> param_tree;
+  /* Parameter tree associated with this custom shape */
+  std::map<std::string,Param*> param_tree;
 
-    /* Engine variables */
+  /* Engine variables */
 
-    bool enabled;
+  bool enabled;
 
-    /* stupid t variables */
-    float t1;
-    float t2;
-    float t3;
-    float t4;
-    float t5;
-    float t6;
-    float t7;
-    float t8;
+  /* stupid t variables */
+  float t1;
+  float t2;
+  float t3;
+  float t4;
+  float t5;
+  float t6;
+  float t7;
+  float t8;
 
-    /* stupider q variables */
-    float q[NUM_Q_VARIABLES];
+  /* stupider q variables */
+  float q[NUM_Q_VARIABLES];
 
-    // Data structure to hold per frame  / per frame init equations
-    std::map<std::string,InitCond*>  init_cond_tree;
-    std::vector<PerFrameEqn*>  per_frame_eqn_tree;
-    std::map<std::string,InitCond*>  per_frame_init_eqn_tree;
+  // Data structure to hold per frame  / per frame init equations
+  std::map<std::string,InitCond*> init_cond_tree;
+  std::vector<PerFrameEqn*>       per_frame_eqn_tree;
+  std::map<std::string,InitCond*> per_frame_init_eqn_tree;
 
-    std::map<std::string, Param*> text_properties_tree;
+  std::map<std::string, Param*>   text_properties_tree;
 
 
-    /// Allocate a new custom shape, including param associations, per point equations, and initial values.
-    /// \param id an integer id to associate with this custom wave. Future line parsing uses this as a reference key.
-    CustomShape( int id );
-    CustomShape();
-    ~CustomShape();
+  /// Allocate a new custom shape, including param associations, per point equations, and initial values.
+  /// \param id an integer id to associate with this custom wave. Future line parsing uses this as a reference key.
+  CustomShape( int id );
+  CustomShape();
+  ~CustomShape();
 
-    void loadUnspecInitConds();
-    void evalInitConds();
-
-  };
+  void loadUnspecInitConds();
+  void evalInitConds();
+};
 
 
 #endif /** !_CUSTOM_SHAPE_H */
-
diff --git a/src/libprojectM/MilkdropPresetFactory/CustomWave.cpp b/src/libprojectM/MilkdropPresetFactory/CustomWave.cpp
index 935cea7..305d663 100644
--- a/src/libprojectM/MilkdropPresetFactory/CustomWave.cpp
+++ b/src/libprojectM/MilkdropPresetFactory/CustomWave.cpp
@@ -40,10 +40,12 @@
 #include "ParamUtils.hpp"
 #include "InitCondUtils.hpp"
 #include "wipemalloc.h"
+
 #define MAX_SAMPLE_SIZE 4096
 
 
-CustomWave::CustomWave(int _id) : Waveform(512),
+CustomWave::CustomWave(int _id)
+  : Waveform(512),
     id(_id),
     per_frame_count(0),
     r(0),
@@ -51,7 +53,6 @@
     b(0),
     a(0)
 {
-
   Param * param;
 
   /// @bug deprecate the use of wipemalloc
@@ -147,10 +148,8 @@
   if (ParamUtils::insert(param, &this->param_tree) < 0)
   {
     ;
-
     /// @bug make exception
     abort();
-
   }
 
   if ((param = Param::new_param_bool("enabled", P_FLAG_NONE, &this->enabled, 1, 0, 0)) == NULL)
@@ -158,17 +157,13 @@
     ;
     /// @bug make exception
     abort();
-
-
   }
 
   if (ParamUtils::insert(param, &this->param_tree) < 0)
   {
     ;
-
     /// @bug make exception
     abort();
-
   }
 
   if ((param = Param::new_param_int("sep", P_FLAG_NONE, &this->sep, 100, -100, 0)) == NULL)
@@ -176,8 +171,6 @@
     ;
     /// @bug make exception
     abort();
-
-
   }
 
   if (ParamUtils::insert(param, &this->param_tree) < 0)
@@ -185,23 +178,18 @@
     ;
     /// @bug make exception
     abort();
-
-
   }
 
   if ((param = Param::new_param_bool("bspectrum", P_FLAG_NONE, &this->spectrum, 1, 0, 0)) == NULL)
   {
     /// @bug make exception
     abort();
-
-
   }
 
   if (ParamUtils::insert(param, &this->param_tree) < 0)
   {
     /// @bug make exception
     abort();
-
   }
 
   if ((param = Param::new_param_bool("bdrawthick", P_FLAG_NONE, &this->thick, 1, 0, 0)) == NULL)
@@ -214,12 +202,10 @@
   {
     /// @bug make exception
     abort();
-
   }
 
   if ((param = Param::new_param_bool("busedots", P_FLAG_NONE, &this->dots, 1, 0, 0)) == NULL)
   {
-
     /// @bug make exception
     abort();
   }
@@ -255,7 +241,7 @@
   }
 
   if ((param = Param::new_param_float("sample", P_FLAG_READONLY | P_FLAG_NONE | P_FLAG_ALWAYS_MATRIX | P_FLAG_PER_POINT,
-                                      &this->sample, this->sample_mesh, 1.0, 0.0, 0.0)) == NULL)
+                      &this->sample, this->sample_mesh, 1.0, 0.0, 0.0)) == NULL)
   {
     ;
     abort();
@@ -341,12 +327,11 @@
 
   if (ParamUtils::insert(param, &this->param_tree) < 0)
   {
-
     abort();
   }
+
   if ((param = Param::new_param_float("t4",  P_FLAG_PER_POINT |P_FLAG_TVAR, &this->t4, NULL, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0)) == NULL)
   {
-
     abort();
   }
 
@@ -354,6 +339,7 @@
   {
     abort();
   }
+
   if ((param = Param::new_param_float("t5", P_FLAG_TVAR, &this->t5, NULL, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0)) == NULL)
   {
     abort();
@@ -363,7 +349,7 @@
   {
     abort();
   }
-  
+
   if ((param = Param::new_param_float("t6", P_FLAG_TVAR | P_FLAG_PER_POINT, &this->t6, NULL, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0)) == NULL)
   {
     abort();
@@ -371,12 +357,11 @@
 
   if (ParamUtils::insert(param, &this->param_tree) < 0)
   {
-
     abort();
   }
+
   if ((param = Param::new_param_float("t7", P_FLAG_TVAR | P_FLAG_PER_POINT, &this->t7, NULL, MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0)) == NULL)
   {
-
     abort();
   }
 
@@ -398,27 +383,25 @@
     abort();
   }
 
-  for (unsigned int i = 1; i <= NUM_Q_VARIABLES;i++) {
-	std::ostringstream os;
-	os << "q" << i;
-	param = Param::new_param_float ( os.str().c_str(), P_FLAG_QVAR, &this->q[i], NULL, MAX_DOUBLE_SIZE,
-		 -MAX_DOUBLE_SIZE, 0.0 );
-	if ( ParamUtils::insert ( param, &this->param_tree ) < 0 )
-	{
-		abort();
-	}
+  for (unsigned int i = 1;  i <= NUM_Q_VARIABLES;  i++) {
+    std::ostringstream os;
+
+    os << "q" << i;
+    param = Param::new_param_float ( os.str().c_str(), P_FLAG_QVAR, &this->q[i], NULL,
+                                     MAX_DOUBLE_SIZE, -MAX_DOUBLE_SIZE, 0.0 );
+    if ( ParamUtils::insert ( param, &this->param_tree ) < 0 )
+    {
+      abort();
+    }
   }
-	
-     /* End of parameter loading. Note that the read only parameters associated
+
+  /* End of parameter loading. Note that the read only parameters associated
      with custom waves (ie, sample) are variables stored in PresetFrameIO.hpp,
      and not specific to the custom wave datastructure. */
-
 }
 
 CustomWave::~CustomWave()
 {
-
-
   for (std::vector<PerPointEqn*>::iterator pos = per_point_eqn_tree.begin(); pos != per_point_eqn_tree.end(); ++pos)
     delete(*pos);
 
@@ -434,23 +417,23 @@
   for (std::map<std::string, Param*>::iterator pos = param_tree.begin(); pos != param_tree.end(); ++pos)
     delete(pos->second);
 
-  free(r_mesh);
-  free(g_mesh);
-  free(b_mesh);
-  free(a_mesh);
-  free(x_mesh);
-  free(y_mesh);
-  free(value1);
-  free(value2);
-  free(sample_mesh);
-
+  free (r_mesh);
+  free (g_mesh);
+  free (b_mesh);
+  free (a_mesh);
+  free (x_mesh);
+  free (y_mesh);
+  free (value1);
+  free (value2);
+  free (sample_mesh);
 }
 
 
 
 
 // Comments: index is not passed, so we assume monotonic increment by 1 is ok here
-int CustomWave::add_per_point_eqn(char * name, GenExpr * gen_expr)
+int
+CustomWave::add_per_point_eqn(char * name, GenExpr * gen_expr)
 {
 
   PerPointEqn * per_point_eqn;
@@ -469,9 +452,9 @@
 
   if ((param = ParamUtils::find<ParamUtils::AUTO_CREATE>(name,&param_tree)) == NULL)
   {
-    if (CUSTOM_WAVE_DEBUG) printf("add_per_point_eqn: failed to allocate a new parameter!\n");
+    if (CUSTOM_WAVE_DEBUG)
+      printf("add_per_point_eqn: failed to allocate a new parameter!\n");
     return PROJECTM_FAILURE;
-
   }
 
   /* Get largest index in the tree */
@@ -480,6 +463,7 @@
   /* Create the per point equation given the index, parameter, and general expression */
   if ((per_point_eqn = new PerPointEqn(index, param, gen_expr, samples)) == NULL)
     return PROJECTM_FAILURE;
+
   if (CUSTOM_WAVE_DEBUG)
     printf("add_per_point_eqn: created new equation (index = %d) (name = \"%s\")\n", per_point_eqn->index, per_point_eqn->param->name.c_str());
 
@@ -492,48 +476,51 @@
 }
 
 
-void CustomWave::evalInitConds()
+void
+CustomWave::evalInitConds()
 {
-
-  for (std::map<std::string, InitCond*>::iterator pos = per_frame_init_eqn_tree.begin(); pos != per_frame_init_eqn_tree.end(); ++pos)
+  for (std::map<std::string, InitCond*>::iterator pos = per_frame_init_eqn_tree.begin();
+       pos != per_frame_init_eqn_tree.end();
+       ++pos)
   {
     assert(pos->second);
     pos->second->evaluate();
   }
-
 }
 
-ColoredPoint CustomWave::PerPoint(ColoredPoint p, const WaveformContext context)
+ColoredPoint
+CustomWave::PerPoint (ColoredPoint p, const WaveformContext context)
 {
-	    r_mesh[context.sample_int] = r;
-	    g_mesh[context.sample_int] = g;
-	    b_mesh[context.sample_int] = b;
-	    a_mesh[context.sample_int] = a;
-	    x_mesh[context.sample_int] = x;
-	    y_mesh[context.sample_int] = y;
-	    sample = context.sample;
-	    sample_mesh[context.sample_int] = context.sample;
-	    v1 = context.left;
-	    v2 = context.right;
+  r_mesh[context.sample_int] = r;
+  g_mesh[context.sample_int] = g;
+  b_mesh[context.sample_int] = b;
+  a_mesh[context.sample_int] = a;
+  x_mesh[context.sample_int] = x;
+  y_mesh[context.sample_int] = y;
+  sample = context.sample;
+  sample_mesh[context.sample_int] = context.sample;
+  v1 = context.left;
+  v2 = context.right;
 
-	for (std::vector<PerPointEqn*>::iterator pos = per_point_eqn_tree.begin(); pos != per_point_eqn_tree.end();++pos)
-	    (*pos)->evaluate(context.sample_int);
+  for (std::vector<PerPointEqn*>::iterator pos = per_point_eqn_tree.begin();
+       pos != per_point_eqn_tree.end();
+       ++pos)
+    (*pos)->evaluate(context.sample_int);
 
-	    p.a = a_mesh[context.sample_int];
-	    p.r = r_mesh[context.sample_int];
-	    p.g = g_mesh[context.sample_int];
-	    p.b = b_mesh[context.sample_int];
-	    p.x = x_mesh[context.sample_int];
-	    p.y = y_mesh[context.sample_int];
+  p.a = a_mesh[context.sample_int];
+  p.r = r_mesh[context.sample_int];
+  p.g = g_mesh[context.sample_int];
+  p.b = b_mesh[context.sample_int];
+  p.x = x_mesh[context.sample_int];
+  p.y = y_mesh[context.sample_int];
 
-	    return p;
+  return p;
 }
 
 
-void CustomWave::loadUnspecInitConds()
+void
+CustomWave::loadUnspecInitConds()
 {
-
   InitCondUtils::LoadUnspecInitCond fun(this->init_cond_tree, this->per_frame_init_eqn_tree);
   traverse(param_tree, fun);
 }
-
diff --git a/src/libprojectM/MilkdropPresetFactory/CustomWave.hpp b/src/libprojectM/MilkdropPresetFactory/CustomWave.hpp
index a951fed..a29a4e3 100644
--- a/src/libprojectM/MilkdropPresetFactory/CustomWave.hpp
+++ b/src/libprojectM/MilkdropPresetFactory/CustomWave.hpp
@@ -29,6 +29,7 @@
 #ifndef _CUSTOM_WAVE_H
 #define _CUSTOM_WAVE_H
 
+
 #define CUSTOM_WAVE_DEBUG 0
 
 class CustomWave;
@@ -45,84 +46,84 @@
 
 #include <map>
 
+
 class CustomWave : public Waveform
 {
-public:
+  public:
 
-     /** Empty constructor leaves wave in undefined state **/
-     //CustomWave() {}
+  /** Empty constructor leaves wave in undefined state **/
+  //CustomWave() {}
 
-     /** Initializes a custom wave id given the integer id */
-     CustomWave(int id);
+  /** Initializes a custom wave id given the integer id */
+  CustomWave(int id);
 
-    /** Destructor is necessary so we can free the per point matrices **/
-    ~CustomWave();
+  /** Destructor is necessary so we can free the per point matrices **/
+  ~CustomWave();
 
-    ColoredPoint PerPoint(ColoredPoint p, const WaveformContext context);
+  ColoredPoint PerPoint(ColoredPoint p, const WaveformContext context);
 
-    /* Numerical id */
-    int id;
-    int per_frame_count;
+  /* Numerical id */
+  int id;
+  int per_frame_count;
 
-    /* Parameter tree associated with this custom wave */
-    std::map<std::string,Param*> param_tree;
+  /* Parameter tree associated with this custom wave */
+  std::map<std::string,Param*> param_tree;
 
-    /* Engine variables */
-    float x; /* x position for per point equations */
-    float y; /* y position for per point equations */
-    float r; /* red color value */
-    float g; /* green color value */
-    float b; /* blue color value */
-    float a; /* alpha color value */
-    float * x_mesh;
-    float * y_mesh;
-    float * r_mesh;
-    float * b_mesh;
-    float * g_mesh;
-    float * a_mesh;
-    float * value1;
-    float * value2;
-    float * sample_mesh;
+  /* Engine variables */
+  float x; /* x position for per point equations */
+  float y; /* y position for per point equations */
+  float r; /* red color value */
+  float g; /* green color value */
+  float b; /* blue color value */
+  float a; /* alpha color value */
+  float * x_mesh;
+  float * y_mesh;
+  float * r_mesh;
+  float * b_mesh;
+  float * g_mesh;
+  float * a_mesh;
+  float * value1;
+  float * value2;
+  float * sample_mesh;
 
-    bool enabled; /* if true then wave is visible, hidden otherwise */
+  bool  enabled; /* if true then wave is visible, hidden otherwise */
 
-    float sample;
+  float sample;
 
-    /* stupid t variables */
-    float t1;
-    float t2;
-    float t3;
-    float t4;
-    float t5;
-    float t6;
-    float t7;
-    float t8;
+  /* stupid t variables */
+  float t1;
+  float t2;
+  float t3;
+  float t4;
+  float t5;
+  float t6;
+  float t7;
+  float t8;
 
 
-    /* stupider q variables */
-    float q[NUM_Q_VARIABLES];
+  /* stupider q variables */
+  float q[NUM_Q_VARIABLES];
 
-    float v1,v2;
+  float v1,v2;
 
-    /* Data structures to hold per frame and per point equations */
-    std::map<std::string,InitCond*>  init_cond_tree;
-    std::vector<PerFrameEqn*>  per_frame_eqn_tree;
-    std::vector<PerPointEqn*>  per_point_eqn_tree;
-    std::map<std::string,InitCond*>  per_frame_init_eqn_tree;
+  /* Data structures to hold per frame and per point equations */
+  std::map<std::string,InitCond*> init_cond_tree;
+  std::vector<PerFrameEqn*>       per_frame_eqn_tree;
+  std::vector<PerPointEqn*>       per_point_eqn_tree;
+  std::map<std::string,InitCond*> per_frame_init_eqn_tree;
 
-    /* Denotes the index of the last character for each string buffer */
-    int per_point_eqn_string_index;
-    int per_frame_eqn_string_index;
-    int per_frame_init_eqn_string_index;
+  /* Denotes the index of the last character for each string buffer */
+  int per_point_eqn_string_index;
+  int per_frame_eqn_string_index;
+  int per_frame_init_eqn_string_index;
 
-    int add_per_point_eqn(char * name, GenExpr * gen_expr);
-    void evalCustomWaveInitConditions(Preset *preset);
-    
+  int add_per_point_eqn(char * name, GenExpr * gen_expr);
+  void evalCustomWaveInitConditions(Preset *preset);
 
-    void loadUnspecInitConds();
 
-    void evalInitConds();
+  void loadUnspecInitConds();
 
+  void evalInitConds();
 };
 
 #endif /** !_CUSTOM_WAVE_H */
diff --git a/src/libprojectM/MilkdropPresetFactory/Eval.cpp b/src/libprojectM/MilkdropPresetFactory/Eval.cpp
index 1810f74..3183754 100644
--- a/src/libprojectM/MilkdropPresetFactory/Eval.cpp
+++ b/src/libprojectM/MilkdropPresetFactory/Eval.cpp
@@ -34,58 +34,61 @@
 
 #include "BuiltinFuncs.hpp"
 
-InfixOp *Eval::infix_add = NULL;
-InfixOp *Eval::infix_minus = NULL;
-InfixOp *Eval::infix_div = NULL;
-InfixOp *Eval::infix_mult = NULL;
-InfixOp *Eval::infix_or = NULL;
-InfixOp *Eval::infix_and = NULL;
-InfixOp *Eval::infix_mod = NULL;
+
+InfixOp *Eval::infix_add      = NULL;
+InfixOp *Eval::infix_minus    = NULL;
+InfixOp *Eval::infix_div      = NULL;
+InfixOp *Eval::infix_mult     = NULL;
+InfixOp *Eval::infix_or       = NULL;
+InfixOp *Eval::infix_and      = NULL;
+InfixOp *Eval::infix_mod      = NULL;
 InfixOp *Eval::infix_negative = NULL;
 InfixOp *Eval::infix_positive = NULL;
 
+
 /* Initializes all infix operators */
-int Eval::init_infix_ops() {
+int
+Eval::init_infix_ops()
+{
+  Eval::infix_add       = new InfixOp (INFIX_ADD, 4);
+  Eval::infix_minus     = new InfixOp (INFIX_MINUS, 3);
+  Eval::infix_div       = new InfixOp (INFIX_DIV, 2);
+  Eval::infix_or        = new InfixOp (INFIX_OR, 5);
+  Eval::infix_and       = new InfixOp (INFIX_AND,4);
+  Eval::infix_mod       = new InfixOp (INFIX_MOD, 1);
+  Eval::infix_mult      = new InfixOp (INFIX_MULT, 2);
 
-	Eval::infix_add = new InfixOp(INFIX_ADD, 4);
-	Eval::infix_minus = new InfixOp(INFIX_MINUS, 3);
-	Eval::infix_div = new InfixOp(INFIX_DIV, 2);
-	Eval::infix_or = new InfixOp(INFIX_OR, 5);
-	Eval::infix_and = new InfixOp(INFIX_AND,4);
-	Eval::infix_mod = new InfixOp(INFIX_MOD, 1);
-	Eval::infix_mult = new InfixOp(INFIX_MULT, 2);
-	
-	/* Prefix operators */
-	Eval::infix_positive = new InfixOp(INFIX_ADD, 0);
-	Eval::infix_negative = new InfixOp(INFIX_MINUS, 0);
+  /* Prefix operators */
+  Eval::infix_positive  = new InfixOp (INFIX_ADD, 0);
+  Eval::infix_negative  = new InfixOp (INFIX_MINUS, 0);
 
-	return PROJECTM_SUCCESS;
+  return PROJECTM_SUCCESS;
 }
 
 /* Destroys the infix operator list. This should
    be done on program exit */
-int Eval::destroy_infix_ops()
+int
+Eval::destroy_infix_ops()
 {
+  delete (Eval::infix_add);
+  delete (Eval::infix_minus);
+  delete (Eval::infix_div);
+  delete (Eval::infix_or);
+  delete (Eval::infix_and);
+  delete (Eval::infix_mod);
+  delete (Eval::infix_mult);
+  delete (Eval::infix_positive);
+  delete (Eval::infix_negative);
 
-  delete(Eval::infix_add);
-  delete(Eval::infix_minus);
-  delete(Eval::infix_div);
-  delete(Eval::infix_or);
-  delete(Eval::infix_and);
-  delete(Eval::infix_mod);
-  delete(Eval::infix_mult);
-  delete(Eval::infix_positive);
-  delete(Eval::infix_negative);
-
-  Eval::infix_add = NULL;
-  Eval::infix_minus = NULL;
-  Eval::infix_div = NULL;
-  Eval::infix_or = NULL;
-  Eval::infix_and = NULL;
-  Eval::infix_mod = NULL;
-  Eval::infix_mult = NULL;
-  Eval::infix_positive = NULL;
-  Eval::infix_negative = NULL;
+  Eval::infix_add       = NULL;
+  Eval::infix_minus     = NULL;
+  Eval::infix_div       = NULL;
+  Eval::infix_or        = NULL;
+  Eval::infix_and       = NULL;
+  Eval::infix_mod       = NULL;
+  Eval::infix_mult      = NULL;
+  Eval::infix_positive  = NULL;
+  Eval::infix_negative  = NULL;
 
   return PROJECTM_SUCCESS;
 }
diff --git a/src/libprojectM/MilkdropPresetFactory/Eval.hpp b/src/libprojectM/MilkdropPresetFactory/Eval.hpp
index 51bd22f..6be653c 100644
--- a/src/libprojectM/MilkdropPresetFactory/Eval.hpp
+++ b/src/libprojectM/MilkdropPresetFactory/Eval.hpp
@@ -36,59 +36,62 @@
 #include "Func.hpp"
 #include "Param.hpp"
 
-#define EVAL_DEBUG 0
+
+#define EVAL_DEBUG      0
 //#define EVAL_DEBUG_DOUBLE 2
 
-#define VAL_T 1
-#define PREFUN_T 3
-#define TREE_T 4
-#define NONE_T 0
+#define VAL_T           1
+#define PREFUN_T        3
+#define TREE_T          4
+#define NONE_T          0
 
 #define CONSTANT_TERM_T 0
-#define PARAM_TERM_T 1
+#define PARAM_TERM_T    1
 
-#define INFIX_ADD 0
-#define INFIX_MINUS 1
-#define INFIX_MOD 2
-#define INFIX_DIV 3
-#define INFIX_MULT 4
-#define INFIX_OR 5
-#define INFIX_AND 6
+#define INFIX_ADD       0
+#define INFIX_MINUS     1
+#define INFIX_MOD       2
+#define INFIX_DIV       3
+#define INFIX_MULT      4
+#define INFIX_OR        5
+#define INFIX_AND       6
+
 
 class DLLEXPORT InfixOp;
 
+
 class Eval {
 public:
-    static InfixOp *infix_add,
-                   *infix_minus,
-                   *infix_div,
-                   *infix_mult,
-                   *infix_or,
-                   *infix_and,
-                   *infix_mod,
-                   *infix_negative,
-                   *infix_positive;
+  static InfixOp *infix_add,
+                 *infix_minus,
+                 *infix_div,
+                 *infix_mult,
+                 *infix_or,
+                 *infix_and,
+                 *infix_mod,
+                 *infix_negative,
+                 *infix_positive;
 
-    float eval_gen_expr(GenExpr * gen_expr);
-    inline GenExpr * opt_gen_expr(GenExpr * gen_expr, int ** param_list);
+  float eval_gen_expr(GenExpr * gen_expr);
+  inline GenExpr * opt_gen_expr(GenExpr * gen_expr, int ** param_list);
 
-    GenExpr * const_to_expr(float val);
-    GenExpr * param_to_expr(Param * param);
-    GenExpr * prefun_to_expr(float (*func_ptr)(), GenExpr ** expr_list, int num_args);
+  GenExpr * const_to_expr(float val);
+  GenExpr * param_to_expr(Param * param);
+  GenExpr * prefun_to_expr(float (*func_ptr)(), GenExpr ** expr_list, int num_args);
 
-    static TreeExpr * new_tree_expr(InfixOp * infix_op, GenExpr * gen_expr, TreeExpr * left, TreeExpr * right);
-    static GenExpr * new_gen_expr(int type, void * item);
-    static ValExpr * new_val_expr(int type, Term *term);
+  static TreeExpr * new_tree_expr(InfixOp * infix_op, GenExpr * gen_expr, TreeExpr * left, TreeExpr * right);
+  static GenExpr * new_gen_expr(int type, void * item);
+  static ValExpr * new_val_expr(int type, Term *term);
 
-    static InfixOp * new_infix_op(int type, int precedence);
-    static int init_infix_ops();
-    static int destroy_infix_ops();
-    void reset_engine_vars();
-    
-    GenExpr * clone_gen_expr(GenExpr * gen_expr);
-    TreeExpr * clone_tree_expr(TreeExpr * tree_expr);
-    ValExpr * clone_val_expr(ValExpr * val_expr);
-    PrefunExpr * clone_prefun_expr(PrefunExpr * prefun_expr);
-  };
+  static InfixOp * new_infix_op(int type, int precedence);
+  static int init_infix_ops();
+  static int destroy_infix_ops();
+  void reset_engine_vars();
+
+  GenExpr * clone_gen_expr(GenExpr * gen_expr);
+  TreeExpr * clone_tree_expr(TreeExpr * tree_expr);
+  ValExpr * clone_val_expr(ValExpr * val_expr);
+  PrefunExpr * clone_prefun_expr(PrefunExpr * prefun_expr);
+};
 
 #endif /** !_EVAL_H */
diff --git a/src/libprojectM/MilkdropPresetFactory/Expr.cpp b/src/libprojectM/MilkdropPresetFactory/Expr.cpp
index 58142ad..877fc12 100644
--- a/src/libprojectM/MilkdropPresetFactory/Expr.cpp
+++ b/src/libprojectM/MilkdropPresetFactory/Expr.cpp
@@ -27,308 +27,310 @@
 #include <iostream>
 #include "Eval.hpp"
 
-float GenExpr::eval_gen_expr ( int mesh_i, int mesh_j )
+
+float
+GenExpr::eval_gen_expr ( int mesh_i, int mesh_j )
 {
-	float l;
+  float l;
 
-	assert ( item );
-	switch ( this->type )
-	{
-		case VAL_T:
-			return ( ( ValExpr* ) item )->eval_val_expr ( mesh_i, mesh_j );
-		case PREFUN_T:
-			l = ( ( PrefunExpr * ) item )->eval_prefun_expr ( mesh_i, mesh_j );
-			//if (EVAL_DEBUG) DWRITE( "eval_gen_expr: prefix function return value: %f\n", l);
-			return l;
-		case TREE_T:
-			return ( ( TreeExpr* ) ( item ) )->eval_tree_expr ( mesh_i, mesh_j );
-		default:
-			return EVAL_ERROR;
-	}
-
+  assert ( item );
+  switch ( this->type )
+  {
+  case VAL_T:
+    return ( ( ValExpr* ) item )->eval_val_expr ( mesh_i, mesh_j );
+  case PREFUN_T:
+    l = ( ( PrefunExpr * ) item )->eval_prefun_expr ( mesh_i, mesh_j );
+    //if (EVAL_DEBUG) DWRITE( "eval_gen_expr: prefix function return value: %f\n", l);
+    return l;
+  case TREE_T:
+    return ( ( TreeExpr* ) ( item ) )->eval_tree_expr ( mesh_i, mesh_j );
+  default:
+    return EVAL_ERROR;
+  }
 }
 
 /* Evaluates functions in prefix form */
-float PrefunExpr::eval_prefun_expr ( int mesh_i, int mesh_j )
+float
+PrefunExpr::eval_prefun_expr ( int mesh_i, int mesh_j )
 {
+  assert ( func_ptr );
 
+  float * arg_list = new float[this->num_args];
 
-	assert ( func_ptr );
+  assert(arg_list);
 
-	float * arg_list = new float[this->num_args];
+  //printf("numargs %d", num_args);
 
-	assert(arg_list);
+  /* Evaluate each argument before calling the function itself */
+  for ( int i = 0; i < num_args; i++ )
+  {
+    arg_list[i] = expr_list[i]->eval_gen_expr ( mesh_i, mesh_j );
+    //printf("numargs %x", arg_list[i]);
+  }
+  /* Now we call the function, passing a list of
+     floats as its argument */
 
-	//printf("numargs %d", num_args);
+  const float value = ( func_ptr ) ( arg_list );
 
-	/* Evaluate each argument before calling the function itself */
-	for ( int i = 0; i < num_args; i++ )
-	{
-		arg_list[i] = expr_list[i]->eval_gen_expr ( mesh_i, mesh_j );
-		//printf("numargs %x", arg_list[i]);
-
-
-	}
-	/* Now we call the function, passing a list of
-	   floats as its argument */
-
-	const float value = ( func_ptr ) ( arg_list );
-
-	delete[](arg_list);
-	return value;
+  delete[](arg_list);
+  return value;
 }
 
 
 /* Evaluates a value expression */
-float ValExpr::eval_val_expr ( int mesh_i, int mesh_j )
+float
+ValExpr::eval_val_expr ( int mesh_i, int mesh_j )
 {
+  /* Value is a constant, return the float value */
+  if ( type == CONSTANT_TERM_T )
+  {
+    return ( term.constant );
+  }
 
+  /* Value is variable, dereference it */
+  if ( type == PARAM_TERM_T )
+  {
+    switch ( term.param->type )
+    {
+    case P_TYPE_BOOL:
+      return ( float ) ( * ( ( bool* ) ( term.param->engine_val ) ) );
 
-	/* Value is a constant, return the float value */
-	if ( type == CONSTANT_TERM_T )
-	{
-		return ( term.constant );
-	}
+    case P_TYPE_INT:
+      return ( float ) ( * ( ( int* ) ( term.param->engine_val ) ) );
 
-	/* Value is variable, dereference it */
-	if ( type == PARAM_TERM_T )
-	{
-		switch ( term.param->type )
-		{
+    case P_TYPE_DOUBLE:
+      if ( term.param->matrix_flag | ( term.param->flags & P_FLAG_ALWAYS_MATRIX ) )
+      {
+        /* Sanity check the matrix is there... */
+        assert ( term.param->matrix != NULL );
 
-			case P_TYPE_BOOL:
+        /// @slow boolean check could be expensive in this critical (and common) step of evaluation
+        if ( mesh_i >= 0 )
+        {
+          if ( mesh_j >= 0 )
+          {
+            return ( ( ( float** ) term.param->matrix ) [mesh_i][mesh_j] );
+          }
+          else
+          {
+            return ( ( ( float* ) term.param->matrix ) [mesh_i] );
+          }
+        }
+        //assert(mesh_i >=0);
+      }
+      //std::cout << term.param->name << ": " << (*((float*)term.param->engine_val)) << std::endl;
+      return * ( ( float* ) ( term.param->engine_val ) );
 
-
-				return ( float ) ( * ( ( bool* ) ( term.param->engine_val ) ) );
-			case P_TYPE_INT:
-
-
-				return ( float ) ( * ( ( int* ) ( term.param->engine_val ) ) );
-			case P_TYPE_DOUBLE:
-
-				
-				if ( term.param->matrix_flag | ( term.param->flags & P_FLAG_ALWAYS_MATRIX ) )
-				{
-
-					/* Sanity check the matrix is there... */
-					assert ( term.param->matrix != NULL );
-
-					/// @slow boolean check could be expensive in this critical (and common) step of evaluation
-					if ( mesh_i >= 0 )
-					{
-						if ( mesh_j >= 0 )
-						{
-							return ( ( ( float** ) term.param->matrix ) [mesh_i][mesh_j] );
-						}
-						else
-						{
-							return ( ( ( float* ) term.param->matrix ) [mesh_i] );
-						}
-					}
-					//assert(mesh_i >=0);
-				}
-				//std::cout << term.param->name << ": " << (*((float*)term.param->engine_val)) << std::endl;
-				return * ( ( float* ) ( term.param->engine_val ) );			
-			default:
-				return EVAL_ERROR;
-		}
-	}
-	/* Unknown type, return failure */
-	return PROJECTM_FAILURE;
+    default:
+      return EVAL_ERROR;
+    }
+  }
+  /* Unknown type, return failure */
+  return PROJECTM_FAILURE;
 }
 
 /* Evaluates an expression tree */
-float TreeExpr::eval_tree_expr ( int mesh_i, int mesh_j )
+float
+TreeExpr::eval_tree_expr ( int mesh_i, int mesh_j )
 {
 
-	float left_arg, right_arg;
+  float left_arg, right_arg;
 
-	/* A leaf node, evaluate the general expression. If the expression is null as well, return zero */
-	if ( infix_op == NULL )
-	{
-		if ( gen_expr == NULL )
-			return 0;
-		else
-			return gen_expr->eval_gen_expr ( mesh_i, mesh_j );
-	}
+  /* A leaf node, evaluate the general expression. If the expression is null as well, return zero */
+  if ( infix_op == NULL )
+  {
+    if ( gen_expr == NULL )
+      return 0;
+    else
+      return gen_expr->eval_gen_expr ( mesh_i, mesh_j );
+  }
 
-	/* Otherwise, this node is an infix operator. Evaluate
-	   accordingly */
+  /* Otherwise, this node is an infix operator. Evaluate
+     accordingly */
 
-	assert(left);
-	left_arg = left->eval_tree_expr ( mesh_i, mesh_j );
+  assert(left);
+  left_arg = left->eval_tree_expr ( mesh_i, mesh_j );
 
-	assert(right);
-	right_arg = right->eval_tree_expr ( mesh_i, mesh_j );
+  assert(right);
+  right_arg = right->eval_tree_expr ( mesh_i, mesh_j );
 
 
-	switch ( infix_op->type )
-	{
-		case INFIX_ADD:
-			return ( left_arg + right_arg );
-		case INFIX_MINUS:
-			return ( left_arg - right_arg );
-		case INFIX_MULT:
-			return ( left_arg * right_arg );
-		case INFIX_MOD:
-			if ( ( int ) right_arg == 0 )
-			{
-				return PROJECTM_DIV_BY_ZERO;
-			}
-			return ( ( int ) left_arg % ( int ) right_arg );
-		case INFIX_OR:
-			return ( ( int ) left_arg | ( int ) right_arg );
-		case INFIX_AND:
-			return ( ( int ) left_arg & ( int ) right_arg );
-		case INFIX_DIV:
-			if ( right_arg == 0 )
-			{
-				return MAX_DOUBLE_SIZE;
-			}
-			return ( left_arg / right_arg );
-		default:
-			return EVAL_ERROR;
-	}
+  switch ( infix_op->type )
+  {
+  case INFIX_ADD:
+    return ( left_arg + right_arg );
+  case INFIX_MINUS:
+    return ( left_arg - right_arg );
+  case INFIX_MULT:
+    return ( left_arg * right_arg );
+  case INFIX_MOD:
+    if ( ( int ) right_arg == 0 )
+    {
+      return PROJECTM_DIV_BY_ZERO;
+    }
+    return ( ( int ) left_arg % ( int ) right_arg );
+  case INFIX_OR:
+    return ( ( int ) left_arg | ( int ) right_arg );
+  case INFIX_AND:
+    return ( ( int ) left_arg & ( int ) right_arg );
+  case INFIX_DIV:
+    if ( right_arg == 0 )
+    {
+      return MAX_DOUBLE_SIZE;
+    }
+    return ( left_arg / right_arg );
+  default:
+    return EVAL_ERROR;
+  }
 
-	return EVAL_ERROR;
+  return EVAL_ERROR;
 }
 
 /* Converts a float value to a general expression */
-GenExpr * GenExpr::const_to_expr ( float val )
+GenExpr *
+GenExpr::const_to_expr ( float val )
 {
 
-	GenExpr * gen_expr;
-	ValExpr * val_expr;
-	Term term;
+  GenExpr * gen_expr;
+  ValExpr * val_expr;
+  Term term;
 
-	term.constant = val;
+  term.constant = val;
 
-	if ( ( val_expr = new ValExpr ( CONSTANT_TERM_T, &term ) ) == NULL )
-		return NULL;
+  if ( ( val_expr = new ValExpr ( CONSTANT_TERM_T, &term ) ) == NULL )
+    return NULL;
 
-	gen_expr = new GenExpr ( VAL_T, ( void* ) val_expr );
+  gen_expr = new GenExpr ( VAL_T, ( void* ) val_expr );
 
-	if ( gen_expr == NULL )
-	{
-		delete val_expr;
-	}
+  if ( gen_expr == NULL )
+  {
+    delete val_expr;
+  }
 
-	return gen_expr;
+  return gen_expr;
 }
 
 /* Converts a regular parameter to an expression */
-GenExpr * GenExpr::param_to_expr ( Param * param )
+GenExpr *
+GenExpr::param_to_expr ( Param * param )
 {
 
-	GenExpr * gen_expr = NULL;
-	ValExpr * val_expr = NULL;
-	Term term;
+  GenExpr * gen_expr = NULL;
+  ValExpr * val_expr = NULL;
+  Term term;
 
-	if ( param == NULL )
-		return NULL;
+  if ( param == NULL )
+    return NULL;
 
-	/* This code is still a work in progress. We need
-	   to figure out if the initial condition is used for
-	   each per frame equation or not. I am guessing that
-	   it isn't, and it is thusly implemented this way */
+  /* This code is still a work in progress. We need
+     to figure out if the initial condition is used for
+     each per frame equation or not. I am guessing that
+     it isn't, and it is thusly implemented this way */
 
-	/* Current guess of true behavior (08/01/03) note from carm
-	   First try to use the per_pixel_expr (with cloning)
-	   If it is null however, use the engine variable instead. */
+  /* Current guess of true behavior (08/01/03) note from carm
+     First try to use the per_pixel_expr (with cloning)
+     If it is null however, use the engine variable instead. */
 
-	/* 08/20/03 : Presets are now objects, as well as per pixel equations. This ends up
-	   making the parser handle the case where parameters are essentially per pixel equation
-	   substitutions */
+  /* 08/20/03 : Presets are now objects, as well as per pixel equations. This ends up
+     making the parser handle the case where parameters are essentially per pixel equation
+     substitutions */
 
 
-	term.param = param;
-	if ( ( val_expr = new ValExpr ( PARAM_TERM_T, &term ) ) == NULL )
-		return NULL;
+  term.param = param;
+  if ( ( val_expr = new ValExpr ( PARAM_TERM_T, &term ) ) == NULL )
+    return NULL;
 
-	if ( ( gen_expr = new GenExpr ( VAL_T, ( void* ) val_expr ) ) == NULL )
-	{
-		delete val_expr;
-		return NULL;
-	}
-	return gen_expr;
+  if ( ( gen_expr = new GenExpr ( VAL_T, ( void* ) val_expr ) ) == NULL )
+  {
+    delete val_expr;
+    return NULL;
+  }
+  return gen_expr;
 }
 
 /* Converts a prefix function to an expression */
-GenExpr * GenExpr::prefun_to_expr ( float ( *func_ptr ) ( void * ), GenExpr ** expr_list, int num_args )
+GenExpr *
+GenExpr::prefun_to_expr ( float ( *func_ptr ) ( void * ), GenExpr ** expr_list, int num_args )
 {
 
-	GenExpr * gen_expr;
-	PrefunExpr * prefun_expr;
+  GenExpr * gen_expr;
+  PrefunExpr * prefun_expr;
 
-	prefun_expr = new PrefunExpr();
+  prefun_expr = new PrefunExpr();
 
-	if ( prefun_expr == NULL )
-		return NULL;
+  if ( prefun_expr == NULL )
+    return NULL;
 
-	prefun_expr->num_args = num_args;
-	prefun_expr->func_ptr = ( float ( * ) ( void* ) ) func_ptr;
-	prefun_expr->expr_list = expr_list;
+  prefun_expr->num_args = num_args;
+  prefun_expr->func_ptr = ( float ( * ) ( void* ) ) func_ptr;
+  prefun_expr->expr_list = expr_list;
 
-	gen_expr = new GenExpr ( PREFUN_T, ( void* ) prefun_expr );
+  gen_expr = new GenExpr ( PREFUN_T, ( void* ) prefun_expr );
 
-	if ( gen_expr == NULL )
-		delete prefun_expr;
+  if ( gen_expr == NULL )
+    delete prefun_expr;
 
-	return gen_expr;
+  return gen_expr;
 }
 
 /* Creates a new tree expression */
-TreeExpr::TreeExpr ( InfixOp * _infix_op, GenExpr * _gen_expr, TreeExpr * _left, TreeExpr * _right ) :
-		infix_op ( _infix_op ), gen_expr ( _gen_expr ),
-	left ( _left ), right ( _right ) {}
+TreeExpr::TreeExpr (
+InfixOp   * _infix_op,
+GenExpr   * _gen_expr,
+TreeExpr  * _left,
+TreeExpr  * _right
+)
+  : infix_op ( _infix_op ),
+    gen_expr ( _gen_expr ),
+    left ( _left ),
+    right ( _right )
+{}
 
 
 /* Creates a new value expression */
 ValExpr::ValExpr ( int _type, Term * _term ) :type ( _type )
 {
+  //val_expr->type = _type;
+  term.constant = _term->constant;
+  term.param = _term->param;
 
-
-	//val_expr->type = _type;
-	term.constant = _term->constant;
-	term.param = _term->param;
-
-	//return val_expr;
+  //return val_expr;
 }
 
 /* Creates a new general expression */
 
-GenExpr::GenExpr ( int _type, void * _item ) :type ( _type ), item ( _item ) {}
+GenExpr::GenExpr ( int _type, void * _item )
+  : type ( _type ), item ( _item )
+{}
 
 /* Frees a general expression */
 GenExpr::~GenExpr()
 {
-
-	switch ( type )
-	{
-		case VAL_T:
-			delete ( ( ValExpr* ) item );
-			break;
-		case PREFUN_T:
-			delete ( ( PrefunExpr* ) item );
-			break;
-		case TREE_T:
-			delete ( ( TreeExpr* ) item );
-			break;
-	}
+  switch ( type )
+  {
+  case VAL_T:
+    delete ( ( ValExpr* ) item );
+    break;
+  case PREFUN_T:
+    delete ( ( PrefunExpr* ) item );
+    break;
+  case TREE_T:
+    delete ( ( TreeExpr* ) item );
+    break;
+  }
 }
 
 /* Frees a function in prefix notation */
 PrefunExpr::~PrefunExpr()
 {
+  int i;
 
-	int i;
-
-	/* Free every element in expression list */
-	for ( i = 0 ; i < num_args; i++ )
-	{
-		delete expr_list[i];
-	}
-	free ( expr_list );
+  /* Free every element in expression list */
+  for ( i = 0 ; i < num_args; i++ )
+  {
+    delete expr_list[i];
+  }
+  free ( expr_list );
 }
 
 /* Frees values of type VARIABLE and CONSTANT */
@@ -338,36 +340,34 @@
 /* Frees a tree expression */
 TreeExpr::~TreeExpr()
 {
+  /* free left tree */
+  if ( left != NULL )
+  {
+    delete left;
+  }
 
-	/* free left tree */
-	if ( left != NULL )
-	{
-		delete left;
-	}
+  /* free general expression object */
+  if ( gen_expr != NULL )
+  {
+    delete gen_expr;
+  }
 
-	/* free general expression object */
-	if ( gen_expr != NULL )
-	{
-		delete gen_expr;
-	}
+  /* Note that infix operators are always
+     stored in memory unless the program
+     exits, so we don't remove them here */
 
-	/* Note that infix operators are always
-	   stored in memory unless the program
-	   exits, so we don't remove them here */
-
-	/* free right tree */
-	if ( right != NULL )
-	{
-		delete right;
-	}
+  /* free right tree */
+  if ( right != NULL )
+  {
+    delete right;
+  }
 }
 
 /* Initializes an infix operator */
 InfixOp::InfixOp ( int type, int precedence )
 {
-
-	this->type = type;
-	this->precedence = precedence;
+  this->type = type;
+  this->precedence = precedence;
 }
 
 
diff --git a/src/libprojectM/MilkdropPresetFactory/Expr.hpp b/src/libprojectM/MilkdropPresetFactory/Expr.hpp
index b732531..be6af29 100644
--- a/src/libprojectM/MilkdropPresetFactory/Expr.hpp
+++ b/src/libprojectM/MilkdropPresetFactory/Expr.hpp
@@ -25,13 +25,13 @@
  *
  * $Log$
  */
-
 #ifndef _EXPR_H
 #define _EXPR_H
 
 #include "dlldefs.h"
 #include "CValue.hpp"
 
+
 class Param;
 
 #define CONST_STACK_ELEMENT 0
@@ -39,6 +39,7 @@
 
 #define EVAL_ERROR -1
 
+
 /* Infix Operator Function */
 class InfixOp
 {
@@ -70,7 +71,7 @@
 
   GenExpr( int type, void *item );
   float eval_gen_expr(int mesh_i, int mesh_j);
- 
+
   static GenExpr *const_to_expr( float val );
   static GenExpr *param_to_expr( Param *param );
   static GenExpr *prefun_to_expr( float (*func_ptr)(void *), GenExpr **expr_list, int num_args );
@@ -85,7 +86,7 @@
 
   ~ValExpr();
   ValExpr( int type, Term *term );
-  
+
   float eval_val_expr(int mesh_i, int mesh_j);
 };
 
@@ -100,7 +101,7 @@
   ~TreeExpr();
   TreeExpr( InfixOp *infix_op, GenExpr *gen_expr,
                                   TreeExpr *left, TreeExpr *right );
-  
+
   float eval_tree_expr(int mesh_i, int mesh_j);
 };
 
diff --git a/src/libprojectM/MilkdropPresetFactory/Func.cpp b/src/libprojectM/MilkdropPresetFactory/Func.cpp
index 71a9b29..4385f6f 100644
--- a/src/libprojectM/MilkdropPresetFactory/Func.cpp
+++ b/src/libprojectM/MilkdropPresetFactory/Func.cpp
@@ -30,8 +30,9 @@
 #include "Func.hpp"
 #include <map>
 
+
 Func::Func (const std::string & _name, float (*_func_ptr)(float*), int _num_args):
-	name(_name), func_ptr(_func_ptr), num_args(_num_args) {}
+  name(_name), func_ptr(_func_ptr), num_args(_num_args) {}
 
 /* Frees a function type, real complicated... */
 Func::~Func() {}
diff --git a/src/libprojectM/MilkdropPresetFactory/Func.hpp b/src/libprojectM/MilkdropPresetFactory/Func.hpp
index ae571b7..6a240f4 100644
--- a/src/libprojectM/MilkdropPresetFactory/Func.hpp
+++ b/src/libprojectM/MilkdropPresetFactory/Func.hpp
@@ -32,32 +32,33 @@
 #include "Common.hpp"
 #include <string>
 
+
 /* Function Type */
 class DLLEXPORT Func {
 public:
 
-    /// Create a new function wrapper object
-    /// \param name a name to uniquely identify the function. 
-    /// \param func_ptr a pointer to a function of floating point arguments
-    /// \param num_args the number of floating point arguments this function requires
-    Func(const std::string & name, float (*func_ptr)(float*), int num_args );
+  /// Create a new function wrapper object
+  /// \param name a name to uniquely identify the function.
+  /// \param func_ptr a pointer to a function of floating point arguments
+  /// \param num_args the number of floating point arguments this function requires
+  Func(const std::string & name, float (*func_ptr)(float*), int num_args );
 
-    /* Public Prototypes */
-    ~Func();
+  /* Public Prototypes */
+  ~Func();
 
-	inline const std::string & getName() const {
-		return name;
-	}
+  inline const std::string & getName() const {
+    return name;
+  }
 
-	inline int getNumArgs() const {
-		return num_args;
-	}
+  inline int getNumArgs() const {
+    return num_args;
+  }
 
-    float (*func_ptr)(float*);
-private:	
-    std::string name;
-    int num_args;
+  float (*func_ptr)(float*);
 
+private:
+  std::string name;
+  int num_args;
 };
 
 #endif /** !_FUNC_H */
diff --git a/src/libprojectM/MilkdropPresetFactory/IdlePreset.cpp b/src/libprojectM/MilkdropPresetFactory/IdlePreset.cpp
index 5a48532..4dcd008 100644
--- a/src/libprojectM/MilkdropPresetFactory/IdlePreset.cpp
+++ b/src/libprojectM/MilkdropPresetFactory/IdlePreset.cpp
@@ -2,208 +2,211 @@
 #include <sstream>
 #include <string>
 #include "MilkdropPreset.hpp"
+
+
 const std::string IdlePresets::IDLE_PRESET_NAME
-	("Geiss & Sperl - Feedback (projectM idle HDR mix).milk");
+  ("Geiss & Sperl - Feedback (projectM idle HDR mix).milk");
 
-std::string IdlePresets::presetText() {
 
-std::ostringstream out;
+std::string
+IdlePresets::presetText()
+{
+  std::ostringstream out;
 
-out << "[preset00]\n" <<
-"fRating=2.000000\n" <<
-"fGammaAdj=1.700000\n" <<
-"fDecay=0.940000\n" <<
-"fVideoEchoZoom=1.000000\n" <<
-"fVideoEchoAlpha=0.000000\n" <<
-"nVideoEchoOrientation=0\n" <<
-"nWaveMode=0\n" <<
-"bAdditiveWaves=1\n" <<
-"bWaveDots=0\n" <<
-"bWaveThick=0\n" <<
-"bModWaveAlphaByVolume=0\n" <<
-"bMaximizeWaveColor=0\n" <<
-"bTexWrap=1\n" <<
-"bDarkenCenter=0\n" <<
-"bRedBlueStereo=0\n" <<
-"bBrighten=0\n" <<
-"bDarken=0\n" <<
-"bSolarize=0\n" <<
-"bInvert=0\n" <<
-"fWaveAlpha=0.001000\n" <<
-"fWaveScale=0.010000\n" <<
-"fWaveSmoothing=0.630000\n" <<
-"fWaveParam=-1.000000\n" <<
-"fModWaveAlphaStart=0.710000\n" <<
-"fModWaveAlphaEnd=1.300000\n" <<
-"fWarpAnimSpeed=1.000000\n" <<
-"fWarpScale=1.331000\n" <<
-"fZoomExponent=1.000000\n" <<
-"fShader=0.000000\n" <<
-"zoom=13.290894\n" <<
-"rot=-0.020000\n" <<
-"cx=0.500000\n" <<
-"cy=0.500000\n" <<
-"dx=-0.280000\n" <<
-"dy=-0.320000\n" <<
-"warp=0.010000\n" <<
-"sx=1.000000\n" <<
-"sy=1.000000\n" <<
-"wave_r=0.650000\n" <<
-"wave_g=0.650000\n" <<
-"wave_b=0.650000\n" <<
-"wave_x=0.500000\n" <<
-"wave_y=0.500000\n" <<
-"ob_size=0.000000\n" <<
-"ob_r=0.010000\n" <<
-"ob_g=0.000000\n" <<
-"ob_b=0.000000\n" <<
-"ob_a=1.000000\n" <<
-"ib_size=0.000000\n" <<
-"ib_r=0.950000\n" <<
-"ib_g=0.850000\n" <<
-"ib_b=0.650000\n" <<
-"ib_a=1.000000\n" <<
-"nMotionVectorsX=64.000000\n" <<
-"nMotionVectorsY=0.000000\n" <<
-"mv_dx=0.000000\n" <<
-"mv_dy=0.000000\n" <<
-"mv_l=0.900000\n" <<
-"mv_r=1.000000\n" <<
-"mv_g=1.000000\n" <<
-"mv_b=1.000000\n" <<
-"mv_a=0.000000\n" <<
-"shapecode_3_enabled=1\n" <<
-"shapecode_3_sides=20\n" <<
-"shapecode_3_additive=0\n" <<
-"shapecode_3_thickOutline=0\n" <<
-"shapecode_3_textured=1\n" <<
-"shapecode_3_ImageURL=M.tga\n" <<
-"shapecode_3_x=0.68\n" <<
-"shapecode_3_y=0.5\n" <<
-"shapecode_3_rad=0.41222\n" <<
-"shapecode_3_ang=0\n" <<
-"shapecode_3_tex_ang=0\n" <<
-"shapecode_3_tex_zoom=0.71\n" <<
-"shapecode_3_r=1\n" <<
-"shapecode_3_g=1\n" <<
-"shapecode_3_b=1\n" <<
-"shapecode_3_a=1\n" <<
-"shapecode_3_r2=1\n" <<
-"shapecode_3_g2=1\n" <<
-"shapecode_3_b2=1\n" <<
-"shapecode_3_a2=1\n" <<
-"shapecode_3_border_r=0\n" <<
-"shapecode_3_border_g=0\n" <<
-"shapecode_3_border_b=0\n" <<
-"shapecode_3_border_a=0\n" <<
-"shape_3_per_frame1=x = x + q1;\n" <<
-"shape_3_per_frame2=y = y + q2;\n" <<
-"shape_3_per_frame3=r =0.5 + 0.5*sin(q8*0.613 + 1);\n" <<
-"shape_3_per_frame4=g = 0.5 + 0.5*sin(q8*0.763 + 2);\n" <<
-"shape_3_per_frame5=b = 0.5 + 0.5*sin(q8*0.771 + 5);\n" <<
-"shape_3_per_frame6=r2 = 0.5 + 0.5*sin(q8*0.635 + 4);\n" <<
-"shape_3_per_frame7=g2 = 0.5 + 0.5*sin(q8*0.616+ 1);\n" <<
-"shape_3_per_frame8=b2 = 0.5 + 0.5*sin(q8*0.538 + 3);\n" <<
-"shapecode_4_enabled=1\n" <<
-"shapecode_4_sides=4\n" <<
-"shapecode_4_additive=0\n" <<
-"shapecode_4_thickOutline=0\n" <<
-"shapecode_4_textured=1\n" <<
-"shapecode_4_ImageURL=headphones.tga\n" <<
-"shapecode_4_x=0.68\n" <<
-"shapecode_4_y=0.58\n" <<
-"shapecode_4_rad=0.6\n" <<
-"shapecode_4_ang=0\n" <<
-"shapecode_4_tex_ang=0\n" <<
-"shapecode_4_tex_zoom=0.71\n" <<
-"shapecode_4_r=1\n" <<
-"shapecode_4_g=1\n" <<
-"shapecode_4_b=1\n" <<
-"shapecode_4_a=1\n" <<
-"shapecode_4_r2=1\n" <<
-"shapecode_4_g2=1\n" <<
-"shapecode_4_b2=1\n" <<
-"shapecode_4_a2=1\n" <<
-"shapecode_4_border_r=0\n" <<
-"shapecode_4_border_g=0\n" <<
-"shapecode_4_border_b=0\n" <<
-"shapecode_4_border_a=0\n" <<
-"shape_4_per_frame1=x = x + q1;\n" <<
-"shape_4_per_frame2=y = y + q2;\n" <<
-"shape_4_per_frame3=rad = rad + bass * 0.1;\n" <<
-"shape_4_per_frame4=a = q3;\n" <<
-"shape_4_per_frame5=a2 = q3;\n" <<
-"shapecode_6_enabled=1\n" <<
-"shapecode_6_sides=4\n" <<
-"shapecode_6_additive=0\n" <<
-"shapecode_6_thickOutline=0\n" <<
-"shapecode_6_textured=1\n" <<
-"shapecode_6_ImageURL=project.tga\n" <<
-"shapecode_6_x=0.38\n" <<
-"shapecode_6_y=0.435\n" <<
-"shapecode_6_rad=0.8\n" <<
-"shapecode_6_ang=0\n" <<
-"shapecode_6_tex_ang=0\n" <<
-"shapecode_6_tex_zoom=0.71\n" <<
-"shapecode_6_r=1\n" <<
-"shapecode_6_g=1\n" <<
-"shapecode_6_b=1\n" <<
-"shapecode_6_a=1\n" <<
-"shapecode_6_r2=1\n" <<
-"shapecode_6_g2=1\n" <<
-"shapecode_6_b2=1\n" <<
-"shapecode_6_a2=1\n" <<
-"shapecode_6_border_r=0\n" <<
-"shapecode_6_border_g=0\n" <<
-"shapecode_6_border_b=0\n" <<
-"shapecode_6_border_a=0\n" <<
-"shape_6_per_frame1=x = x + q1;\n" <<
-"shape_6_per_frame2=y = y + q2;\n" <<
-"shape_6_per_frame3=a = q3;\n" <<
-"shape_6_per_frame4=a2 = q3;\n" <<
-"per_frame_1=ob_r = 0.5 + 0.4*sin(time*1.324);\n" <<
-"per_frame_2=ob_g = 0.5 + 0.4*cos(time*1.371);\n" <<
-"per_frame_3=ob_b = 0.5+0.4*sin(2.332*time);\n" <<
-"per_frame_4=ib_r = 0.5 + 0.25*sin(time*1.424);\n" <<
-"per_frame_5=ib_g = 0.25 + 0.25*cos(time*1.871);\n" <<
-"per_frame_6=ib_b = 1-ob_b;\n" <<
-"per_frame_7=volume = 0.15*(bass+bass_att+treb+treb_att+mid+mid_att);\n" <<
-"per_frame_8=xamptarg = if(equal(frame%15,0),min(0.5*volume*bass_att,0.5),xamptarg);\n" <<
-"per_frame_9=xamp = xamp + 0.5*(xamptarg-xamp);\n" <<
-"per_frame_10=xdir = if(above(abs(xpos),xamp),-sign(xpos),if(below(abs(xspeed),0.1),2*above(xpos,0)-1,xdir));\n" <<
-"per_frame_11=xaccel = xdir*xamp - xpos - xspeed*0.055*below(abs(xpos),xamp);\n" <<
-"per_frame_12=xspeed = xspeed + xdir*xamp - xpos - xspeed*0.055*below(abs(xpos),xamp);\n" <<
-"per_frame_13=xpos = xpos + 0.001*xspeed;\n" <<
-"per_frame_14=dx = xpos*0.05;\n" <<
-"per_frame_15=yamptarg = if(equal(frame%15,0),min(0.3*volume*treb_att,0.5),yamptarg);\n" <<
-"per_frame_16=yamp = yamp + 0.5*(yamptarg-yamp);\n" <<
-"per_frame_17=ydir = if(above(abs(ypos),yamp),-sign(ypos),if(below(abs(yspeed),0.1),2*above(ypos,0)-1,ydir));\n" <<
-"per_frame_18=yaccel = ydir*yamp - ypos - yspeed*0.055*below(abs(ypos),yamp);\n" <<
-"per_frame_19=yspeed = yspeed + ydir*yamp - ypos - yspeed*0.055*below(abs(ypos),yamp);\n" <<
-"per_frame_20=ypos = ypos + 0.001*yspeed;\n" <<
-"per_frame_21=dy = ypos*0.05;\n" <<
-"per_frame_22=wave_a = 0;\n" <<
-"per_frame_23=q8 = oldq8 + 0.0003*(pow(1+1.2*bass+0.4*bass_att+0.1*treb+0.1*treb_att+0.1*mid+0.1*mid_att,6)/fps);\n" <<
-"per_frame_24=oldq8 = q8;\n" <<
-"per_frame_25=q7 = 0.003*(pow(1+1.2*bass+0.4*bass_att+0.1*treb+0.1*treb_att+0.1*mid+0.1*mid_att,6)/fps);\n" <<
-"per_frame_26=rot = 0.4 + 1.5*sin(time*0.273) + 0.4*sin(time*0.379+3);\n" <<
-"per_frame_27=q1 = 0.05*sin(time*1.14);\n" <<
-"per_frame_28=q2 = 0.03*sin(time*0.93+2);\n" <<
-"per_frame_29=q3 = if(above(frame,60),1, frame/60.0);\n" <<
-"per_frame_30=oldq8 = if(above(oldq8,1000),0,oldq8);\n" <<
-"per_pixel_1=zoom =( log(sqrt(2)-rad) -0.24)*1;\n";
+  out << "[preset00]\n"
+      << "fRating=2.000000\n"
+      << "fGammaAdj=1.700000\n"
+      << "fDecay=0.940000\n"
+      << "fVideoEchoZoom=1.000000\n"
+      << "fVideoEchoAlpha=0.000000\n"
+      << "nVideoEchoOrientation=0\n"
+      << "nWaveMode=0\n"
+      << "bAdditiveWaves=1\n"
+      << "bWaveDots=0\n"
+      << "bWaveThick=0\n"
+      << "bModWaveAlphaByVolume=0\n"
+      << "bMaximizeWaveColor=0\n"
+      << "bTexWrap=1\n"
+      << "bDarkenCenter=0\n"
+      << "bRedBlueStereo=0\n"
+      << "bBrighten=0\n"
+      << "bDarken=0\n"
+      << "bSolarize=0\n"
+      << "bInvert=0\n"
+      << "fWaveAlpha=0.001000\n"
+      << "fWaveScale=0.010000\n"
+      << "fWaveSmoothing=0.630000\n"
+      << "fWaveParam=-1.000000\n"
+      << "fModWaveAlphaStart=0.710000\n"
+      << "fModWaveAlphaEnd=1.300000\n"
+      << "fWarpAnimSpeed=1.000000\n"
+      << "fWarpScale=1.331000\n"
+      << "fZoomExponent=1.000000\n"
+      << "fShader=0.000000\n"
+      << "zoom=13.290894\n"
+      << "rot=-0.020000\n"
+      << "cx=0.500000\n"
+      << "cy=0.500000\n"
+      << "dx=-0.280000\n"
+      << "dy=-0.320000\n"
+      << "warp=0.010000\n"
+      << "sx=1.000000\n"
+      << "sy=1.000000\n"
+      << "wave_r=0.650000\n"
+      << "wave_g=0.650000\n"
+      << "wave_b=0.650000\n"
+      << "wave_x=0.500000\n"
+      << "wave_y=0.500000\n"
+      << "ob_size=0.000000\n"
+      << "ob_r=0.010000\n"
+      << "ob_g=0.000000\n"
+      << "ob_b=0.000000\n"
+      << "ob_a=1.000000\n"
+      << "ib_size=0.000000\n"
+      << "ib_r=0.950000\n"
+      << "ib_g=0.850000\n"
+      << "ib_b=0.650000\n"
+      << "ib_a=1.000000\n"
+      << "nMotionVectorsX=64.000000\n"
+      << "nMotionVectorsY=0.000000\n"
+      << "mv_dx=0.000000\n"
+      << "mv_dy=0.000000\n"
+      << "mv_l=0.900000\n"
+      << "mv_r=1.000000\n"
+      << "mv_g=1.000000\n"
+      << "mv_b=1.000000\n"
+      << "mv_a=0.000000\n"
+      << "shapecode_3_enabled=1\n"
+      << "shapecode_3_sides=20\n"
+      << "shapecode_3_additive=0\n"
+      << "shapecode_3_thickOutline=0\n"
+      << "shapecode_3_textured=1\n"
+      << "shapecode_3_ImageURL=M.tga\n"
+      << "shapecode_3_x=0.68\n"
+      << "shapecode_3_y=0.5\n"
+      << "shapecode_3_rad=0.41222\n"
+      << "shapecode_3_ang=0\n"
+      << "shapecode_3_tex_ang=0\n"
+      << "shapecode_3_tex_zoom=0.71\n"
+      << "shapecode_3_r=1\n"
+      << "shapecode_3_g=1\n"
+      << "shapecode_3_b=1\n"
+      << "shapecode_3_a=1\n"
+      << "shapecode_3_r2=1\n"
+      << "shapecode_3_g2=1\n"
+      << "shapecode_3_b2=1\n"
+      << "shapecode_3_a2=1\n"
+      << "shapecode_3_border_r=0\n"
+      << "shapecode_3_border_g=0\n"
+      << "shapecode_3_border_b=0\n"
+      << "shapecode_3_border_a=0\n"
+      << "shape_3_per_frame1=x = x + q1;\n"
+      << "shape_3_per_frame2=y = y + q2;\n"
+      << "shape_3_per_frame3=r =0.5 + 0.5*sin(q8*0.613 + 1);\n"
+      << "shape_3_per_frame4=g = 0.5 + 0.5*sin(q8*0.763 + 2);\n"
+      << "shape_3_per_frame5=b = 0.5 + 0.5*sin(q8*0.771 + 5);\n"
+      << "shape_3_per_frame6=r2 = 0.5 + 0.5*sin(q8*0.635 + 4);\n"
+      << "shape_3_per_frame7=g2 = 0.5 + 0.5*sin(q8*0.616+ 1);\n"
+      << "shape_3_per_frame8=b2 = 0.5 + 0.5*sin(q8*0.538 + 3);\n"
+      << "shapecode_4_enabled=1\n"
+      << "shapecode_4_sides=4\n"
+      << "shapecode_4_additive=0\n"
+      << "shapecode_4_thickOutline=0\n"
+      << "shapecode_4_textured=1\n"
+      << "shapecode_4_ImageURL=headphones.tga\n"
+      << "shapecode_4_x=0.68\n"
+      << "shapecode_4_y=0.58\n"
+      << "shapecode_4_rad=0.6\n"
+      << "shapecode_4_ang=0\n"
+      << "shapecode_4_tex_ang=0\n"
+      << "shapecode_4_tex_zoom=0.71\n"
+      << "shapecode_4_r=1\n"
+      << "shapecode_4_g=1\n"
+      << "shapecode_4_b=1\n"
+      << "shapecode_4_a=1\n"
+      << "shapecode_4_r2=1\n"
+      << "shapecode_4_g2=1\n"
+      << "shapecode_4_b2=1\n"
+      << "shapecode_4_a2=1\n"
+      << "shapecode_4_border_r=0\n"
+      << "shapecode_4_border_g=0\n"
+      << "shapecode_4_border_b=0\n"
+      << "shapecode_4_border_a=0\n"
+      << "shape_4_per_frame1=x = x + q1;\n"
+      << "shape_4_per_frame2=y = y + q2;\n"
+      << "shape_4_per_frame3=rad = rad + bass * 0.1;\n"
+      << "shape_4_per_frame4=a = q3;\n"
+      << "shape_4_per_frame5=a2 = q3;\n"
+      << "shapecode_6_enabled=1\n"
+      << "shapecode_6_sides=4\n"
+      << "shapecode_6_additive=0\n"
+      << "shapecode_6_thickOutline=0\n"
+      << "shapecode_6_textured=1\n"
+      << "shapecode_6_ImageURL=project.tga\n"
+      << "shapecode_6_x=0.38\n"
+      << "shapecode_6_y=0.435\n"
+      << "shapecode_6_rad=0.8\n"
+      << "shapecode_6_ang=0\n"
+      << "shapecode_6_tex_ang=0\n"
+      << "shapecode_6_tex_zoom=0.71\n"
+      << "shapecode_6_r=1\n"
+      << "shapecode_6_g=1\n"
+      << "shapecode_6_b=1\n"
+      << "shapecode_6_a=1\n"
+      << "shapecode_6_r2=1\n"
+      << "shapecode_6_g2=1\n"
+      << "shapecode_6_b2=1\n"
+      << "shapecode_6_a2=1\n"
+      << "shapecode_6_border_r=0\n"
+      << "shapecode_6_border_g=0\n"
+      << "shapecode_6_border_b=0\n"
+      << "shapecode_6_border_a=0\n"
+      << "shape_6_per_frame1=x = x + q1;\n"
+      << "shape_6_per_frame2=y = y + q2;\n"
+      << "shape_6_per_frame3=a = q3;\n"
+      << "shape_6_per_frame4=a2 = q3;\n"
+      << "per_frame_1=ob_r = 0.5 + 0.4*sin(time*1.324);\n"
+      << "per_frame_2=ob_g = 0.5 + 0.4*cos(time*1.371);\n"
+      << "per_frame_3=ob_b = 0.5+0.4*sin(2.332*time);\n"
+      << "per_frame_4=ib_r = 0.5 + 0.25*sin(time*1.424);\n"
+      << "per_frame_5=ib_g = 0.25 + 0.25*cos(time*1.871);\n"
+      << "per_frame_6=ib_b = 1-ob_b;\n"
+      << "per_frame_7=volume = 0.15*(bass+bass_att+treb+treb_att+mid+mid_att);\n"
+      << "per_frame_8=xamptarg = if(equal(frame%15,0),min(0.5*volume*bass_att,0.5),xamptarg);\n"
+      << "per_frame_9=xamp = xamp + 0.5*(xamptarg-xamp);\n"
+      << "per_frame_10=xdir = if(above(abs(xpos),xamp),-sign(xpos),if(below(abs(xspeed),0.1),2*above(xpos,0)-1,xdir));\n"
+      << "per_frame_11=xaccel = xdir*xamp - xpos - xspeed*0.055*below(abs(xpos),xamp);\n"
+      << "per_frame_12=xspeed = xspeed + xdir*xamp - xpos - xspeed*0.055*below(abs(xpos),xamp);\n"
+      << "per_frame_13=xpos = xpos + 0.001*xspeed;\n"
+      << "per_frame_14=dx = xpos*0.05;\n"
+      << "per_frame_15=yamptarg = if(equal(frame%15,0),min(0.3*volume*treb_att,0.5),yamptarg);\n"
+      << "per_frame_16=yamp = yamp + 0.5*(yamptarg-yamp);\n"
+      << "per_frame_17=ydir = if(above(abs(ypos),yamp),-sign(ypos),if(below(abs(yspeed),0.1),2*above(ypos,0)-1,ydir));\n"
+      << "per_frame_18=yaccel = ydir*yamp - ypos - yspeed*0.055*below(abs(ypos),yamp);\n"
+      << "per_frame_19=yspeed = yspeed + ydir*yamp - ypos - yspeed*0.055*below(abs(ypos),yamp);\n"
+      << "per_frame_20=ypos = ypos + 0.001*yspeed;\n"
+      << "per_frame_21=dy = ypos*0.05;\n"
+      << "per_frame_22=wave_a = 0;\n"
+      << "per_frame_23=q8 = oldq8 + 0.0003*(pow(1+1.2*bass+0.4*bass_att+0.1*treb+0.1*treb_att+0.1*mid+0.1*mid_att,6)/fps);\n"
+      << "per_frame_24=oldq8 = q8;\n"
+      << "per_frame_25=q7 = 0.003*(pow(1+1.2*bass+0.4*bass_att+0.1*treb+0.1*treb_att+0.1*mid+0.1*mid_att,6)/fps);\n"
+      << "per_frame_26=rot = 0.4 + 1.5*sin(time*0.273) + 0.4*sin(time*0.379+3);\n"
+      << "per_frame_27=q1 = 0.05*sin(time*1.14);\n"
+      << "per_frame_28=q2 = 0.03*sin(time*0.93+2);\n"
+      << "per_frame_29=q3 = if(above(frame,60),1, frame/60.0);\n"
+      << "per_frame_30=oldq8 = if(above(oldq8,1000),0,oldq8);\n"
+      << "per_pixel_1=zoom =( log(sqrt(2)-rad) -0.24)*1;\n";
 
-return out.str();
-
+  return out.str();
 }
 
-std::auto_ptr<Preset> IdlePresets::allocate(const std::string & name, PresetOutputs & presetOutputs)
+std::auto_ptr<Preset>
+IdlePresets::allocate(const std::string & name, PresetOutputs & presetOutputs)
 {
-
   if (name == IDLE_PRESET_NAME) {
-  	std::istringstream in(presetText());
-  	return std::auto_ptr<Preset>(new MilkdropPreset(in, IDLE_PRESET_NAME, presetOutputs));
+    std::istringstream in(presetText());
+    return std::auto_ptr<Preset>(new MilkdropPreset(in, IDLE_PRESET_NAME, presetOutputs));
   }
   else
-	return std::auto_ptr<Preset>(0);
+    return std::auto_ptr<Preset>(0);
 }
diff --git a/src/libprojectM/MilkdropPresetFactory/IdlePreset.hpp b/src/libprojectM/MilkdropPresetFactory/IdlePreset.hpp
index 3231d43..31bb01a 100644
--- a/src/libprojectM/MilkdropPresetFactory/IdlePreset.hpp
+++ b/src/libprojectM/MilkdropPresetFactory/IdlePreset.hpp
@@ -3,18 +3,20 @@
 #include <memory>
 #include <string>
 
+
 class PresetOutputs;
 class Preset;
 /// A preset that does not depend on the file system to be loaded. This allows projectM to render
 /// something (ie. self indulgent project advertising) even when no valid preset directory is found.
 class IdlePresets {
 
-  public:
-	/// Allocate a new idle preset instance
-	/// \returns a newly allocated auto pointer of an idle preset instance
-	static std::auto_ptr<Preset> allocate(const std::string & path, PresetOutputs & outputs);
-  private:
-	static std::string presetText();
-	static const std::string IDLE_PRESET_NAME;
+public:
+  /// Allocate a new idle preset instance
+  /// \returns a newly allocated auto pointer of an idle preset instance
+  static std::auto_ptr<Preset> allocate(const std::string & path, PresetOutputs & outputs);
+private:
+  static std::string presetText();
+  static const std::string IDLE_PRESET_NAME;
 };
+
 #endif
diff --git a/src/libprojectM/MilkdropPresetFactory/InitCond.cpp b/src/libprojectM/MilkdropPresetFactory/InitCond.cpp
index 2dae471..e171ce5 100644
--- a/src/libprojectM/MilkdropPresetFactory/InitCond.cpp
+++ b/src/libprojectM/MilkdropPresetFactory/InitCond.cpp
@@ -36,15 +36,16 @@
 #include <cassert>
 #include <iostream>
 
+
 char InitCond::init_cond_string_buffer[STRING_BUFFER_SIZE];
 int InitCond::init_cond_string_buffer_index = 0;
 
+
 /* Creates a new initial condition */
-InitCond::InitCond( Param * _param, CValue _init_val ):param(_param), init_val(_init_val) {
-
-
+InitCond::InitCond( Param * _param, CValue _init_val ):param(_param), init_val(_init_val)
+{
   //  std::cerr <<  "InitCond::InitCond: " << this->param->name << std::endl;
- 
+
   assert(param);
   assert(param->engine_val);
 }
@@ -52,55 +53,55 @@
 /* Frees initial condition structure */
 InitCond::~InitCond() {}
 
-void InitCond::evaluate() 
+void
+InitCond::evaluate()
 {
   evaluate(false);
 }
 
 /* Evaluate an initial conditon */
-void InitCond::evaluate(bool evalUser) {
+void
+InitCond::evaluate(bool evalUser)
+{
+  assert(this);
+  assert(param);
 
+  if (param->flags & P_FLAG_USERDEF && !evalUser)
+    return;
 
-
-   assert(this);
-   assert(param);
-
-if (param->flags & P_FLAG_USERDEF && !evalUser)
-	return;
-
-   /* Set matrix flag to zero. This ensures
-     its constant value will be used rather than a matrix value 
+  /* Set matrix flag to zero. This ensures
+     its constant value will be used rather than a matrix value
   */
-param->matrix_flag = false;
-  
+  param->matrix_flag = false;
+
   /* Parameter is of boolean type, either true/false */
-  
+
   if (param->type == P_TYPE_BOOL) {
 
-    //        printf( "init_cond: %s = %d (TYPE BOOL)\n", param->name.c_str(), init_val.bool_val); 
-	//std::cerr << "[InitCond] param is a boolean of with name " 
-	//	<< param->name << std::endl;
+    //        printf( "init_cond: %s = %d (TYPE BOOL)\n", param->name.c_str(), init_val.bool_val);
+    //std::cerr << "[InitCond] param is a boolean of with name "
+    //  << param->name << std::endl;
 
-	assert(param->engine_val);
+    assert(param->engine_val);
 
-	 *((bool*)param->engine_val) = init_val.bool_val;
+    *((bool*)param->engine_val) = init_val.bool_val;
 
-     return;
+    return;
   }
-  
+
   /* Parameter is an integer type, just like C */
-  
+
   if ( param->type == P_TYPE_INT) {
- 	assert(param->engine_val);
-	 *((int*)param->engine_val) = init_val.int_val;
-     return;
+    assert(param->engine_val);
+    *((int*)param->engine_val) = init_val.int_val;
+    return;
   }
 
   /* Parameter is of a float type, just like C */
 
   if (param->type == P_TYPE_DOUBLE) {
-	assert(param->engine_val);
-	*((float*)param->engine_val) = init_val.float_val;
+    assert(param->engine_val);
+    *((float*)param->engine_val) = init_val.float_val;
     return;
   }
 
@@ -109,39 +110,39 @@
 }
 
 /* WIP */
-void InitCond::init_cond_to_string() {
-	
-	int string_length;
-	char string[MAX_TOKEN_SIZE];
-	
-	/* Create a string "param_name=val" */
-	switch (param->type) {
-		
-		case P_TYPE_BOOL:
-			sprintf(string, "%s=%d\n", param->name.c_str(), init_val.bool_val);
-			break; 
-		case P_TYPE_INT:
-			sprintf(string, "%s=%d\n", param->name.c_str(), init_val.int_val);
-			break;
-		case P_TYPE_DOUBLE:
-			sprintf(string, "%s=%f\n", param->name.c_str(), init_val.float_val);
-			break;
-		default:
-			return;
-	}
-		
-	/* Compute the length of the string */
-	string_length = strlen(string);
-	
-	/* Buffer overflow check */
-	if ((init_cond_string_buffer_index + string_length + 1)  > (STRING_BUFFER_SIZE - 1))
-		return;
-	
-	/* Copy the string into the initial condition string buffer */	
-	strncpy(init_cond_string_buffer + init_cond_string_buffer_index, string, string_length);
-	
-	/* Increment the string buffer, offset by one for the null terminator, which will be
-	   overwritten by the next call to this function */
-	init_cond_string_buffer_index+= string_length + 1;
-}
+void
+InitCond::init_cond_to_string()
+{
+  int   string_length;
+  char  string[MAX_TOKEN_SIZE];
 
+  /* Create a string "param_name=val" */
+  switch (param->type) {
+
+  case P_TYPE_BOOL:
+    sprintf(string, "%s=%d\n", param->name.c_str(), init_val.bool_val);
+    break;
+  case P_TYPE_INT:
+    sprintf(string, "%s=%d\n", param->name.c_str(), init_val.int_val);
+    break;
+  case P_TYPE_DOUBLE:
+    sprintf(string, "%s=%f\n", param->name.c_str(), init_val.float_val);
+    break;
+  default:
+    return;
+  }
+
+  /* Compute the length of the string */
+  string_length = strlen(string);
+
+  /* Buffer overflow check */
+  if ((init_cond_string_buffer_index + string_length + 1)  > (STRING_BUFFER_SIZE - 1))
+    return;
+
+  /* Copy the string into the initial condition string buffer */
+  strncpy(init_cond_string_buffer + init_cond_string_buffer_index, string, string_length);
+
+  /* Increment the string buffer, offset by one for the null terminator, which will be
+     overwritten by the next call to this function */
+  init_cond_string_buffer_index+= string_length + 1;
+}
diff --git a/src/libprojectM/MilkdropPresetFactory/InitCond.hpp b/src/libprojectM/MilkdropPresetFactory/InitCond.hpp
index a4b124b..43717b3 100644
--- a/src/libprojectM/MilkdropPresetFactory/InitCond.hpp
+++ b/src/libprojectM/MilkdropPresetFactory/InitCond.hpp
@@ -39,22 +39,23 @@
 class Param;
 #include <map>
 
+
 class InitCond {
 public:
-    Param *param;
-    CValue init_val;
+  Param *param;
+  CValue init_val;
 
-    static char init_cond_string_buffer[STRING_BUFFER_SIZE];
-    static int init_cond_string_buffer_index;
+  static char init_cond_string_buffer[STRING_BUFFER_SIZE];
+  static int init_cond_string_buffer_index;
 
-    InitCond( Param * param, CValue init_val);
-    ~InitCond();
-    void evaluate();  //Wrapper around following declaration
-    void evaluate(bool evalUser);
+  InitCond( Param * param, CValue init_val);
+  ~InitCond();
+  void evaluate();  //Wrapper around following declaration
+  void evaluate(bool evalUser);
 
-    void init_cond_to_string();
-    void write_init();
-  };
+  void init_cond_to_string();
+  void write_init();
+};
 
 
 #endif /** !_INIT_COND_H */
diff --git a/src/libprojectM/MilkdropPresetFactory/InitCondUtils.hpp b/src/libprojectM/MilkdropPresetFactory/InitCondUtils.hpp
index 2186199..493d249 100644
--- a/src/libprojectM/MilkdropPresetFactory/InitCondUtils.hpp
+++ b/src/libprojectM/MilkdropPresetFactory/InitCondUtils.hpp
@@ -5,75 +5,78 @@
 #include <iostream>
 #include <stdlib.h>
 
+
 namespace InitCondUtils {
+
 class LoadUnspecInitCond {
-	public:
+public:
 
-	LoadUnspecInitCond(std::map<std::string,InitCond*> & initCondTree, std::map<std::string,InitCond*> & perFrameInitEqnTree):
-		 m_initCondTree(initCondTree), m_perFrameInitEqnTree(perFrameInitEqnTree) {}
+  LoadUnspecInitCond(std::map<std::string,InitCond*> & initCondTree, std::map<std::string,InitCond*> & perFrameInitEqnTree):
+    m_initCondTree(initCondTree), m_perFrameInitEqnTree(perFrameInitEqnTree) {}
 
-	void operator()(Param * param);
+  void operator()(Param * param);
 
-	private:
-		std::map<std::string,InitCond*> & m_initCondTree;
-		std::map<std::string,InitCond*> & m_perFrameInitEqnTree;
+private:
+  std::map<std::string,InitCond*> & m_initCondTree;
+  std::map<std::string,InitCond*> & m_perFrameInitEqnTree;
 };
 
 
-inline void LoadUnspecInitCond::operator() (Param * param) {
+inline void
+LoadUnspecInitCond::operator() (Param * param)
+{
+  InitCond  * init_cond = 0;
+  CValue    init_val;
 
-    InitCond * init_cond = 0;
-    CValue init_val;
-
-    assert(param);
-    assert(param->engine_val);
+  assert(param);
+  assert(param->engine_val);
 
 
-    /* Don't count these parameters as initial conditions */
-    if (param->flags & P_FLAG_READONLY)
-        return;
-    if (param->flags & P_FLAG_QVAR)
-        return;
-//    if (param->flags & P_FLAG_TVAR)
- //       return;
-    if (param->flags & P_FLAG_USERDEF)
-        return;
+  /* Don't count these parameters as initial conditions */
+  if (param->flags & P_FLAG_READONLY)
+    return;
+  if (param->flags & P_FLAG_QVAR)
+    return;
+  //if (param->flags & P_FLAG_TVAR)
+  //  return;
+  if (param->flags & P_FLAG_USERDEF)
+    return;
 
-    /* If initial condition was not defined by the preset file, force a default one
-       with the following code */
+  /* If initial condition was not defined by the preset file, force a default one
+     with the following code */
 
-    if (m_initCondTree.find(param->name) == m_initCondTree.end()) {
+  if (m_initCondTree.find(param->name) == m_initCondTree.end()) {
 
-        /* Make sure initial condition does not exist in the set of per frame initial equations */
-	if (m_perFrameInitEqnTree.find(param->name) != m_perFrameInitEqnTree.end())
-		return;
+    /* Make sure initial condition does not exist in the set of per frame initial equations */
+    if (m_perFrameInitEqnTree.find(param->name) != m_perFrameInitEqnTree.end())
+      return;
 
-	// Set an initial vialue via correct union member
-        if (param->type == P_TYPE_BOOL)
-            init_val.bool_val = param->default_init_val.bool_val;
-        else if (param->type == P_TYPE_INT)
-            init_val.int_val = param->default_init_val.int_val;
+    // Set an initial vialue via correct union member
+    if (param->type == P_TYPE_BOOL)
+      init_val.bool_val = param->default_init_val.bool_val;
+    else if (param->type == P_TYPE_INT)
+      init_val.int_val = param->default_init_val.int_val;
 
-        else if (param->type == P_TYPE_DOUBLE) {
-           		init_val.float_val = param->default_init_val.float_val;
-	}
+    else if (param->type == P_TYPE_DOUBLE) {
+      init_val.float_val = param->default_init_val.float_val;
+    }
 
-        //printf("%s\n", param->name);
-        /* Create new initial condition */
-	//std::cerr << "[InitCondUtils] creating an unspecified initial condition of name " << param->name << std::endl;
-        if ((init_cond = new InitCond(param, init_val)) == NULL) {
-	    abort();
-        }
+    //printf("%s\n", param->name);
+    /* Create new initial condition */
+    //std::cerr << "[InitCondUtils] creating an unspecified initial condition of name " << param->name << std::endl;
+    if ((init_cond = new InitCond(param, init_val)) == NULL) {
+      abort();
+    }
 
-        /* Insert the initial condition into this presets tree */
-	std::pair<std::map<std::string, InitCond*>::iterator, bool> inserteePair =
-		m_initCondTree.insert(std::make_pair(init_cond->param->name, init_cond));
-	assert(inserteePair.second);
-	assert(inserteePair.first->second);
-    } else
-	assert(m_initCondTree.find(param->name)->second);
+    /* Insert the initial condition into this presets tree */
+    std::pair<std::map<std::string, InitCond*>::iterator, bool> inserteePair =
+    m_initCondTree.insert(std::make_pair(init_cond->param->name, init_cond));
 
-
+    assert(inserteePair.second);
+    assert(inserteePair.first->second);
+  } else
+    assert(m_initCondTree.find(param->name)->second);
 }
-}
+
+}   /*  namespace InitCondUtils  */
 #endif
diff --git a/src/libprojectM/MilkdropPresetFactory/MilkdropPreset.cpp b/src/libprojectM/MilkdropPresetFactory/MilkdropPreset.cpp
index d6acc7b..8f2d429 100644
--- a/src/libprojectM/MilkdropPresetFactory/MilkdropPreset.cpp
+++ b/src/libprojectM/MilkdropPresetFactory/MilkdropPreset.cpp
@@ -18,7 +18,6 @@
  * See 'LICENSE.txt' included within this release
  *
  */
-
 #include <cstdio>
 #include <cstring>
 #include <cstdlib>
@@ -40,29 +39,27 @@
 
 #include "PresetFrameIO.hpp"
 
-MilkdropPreset::MilkdropPreset(std::istream & in, const std::string & presetName,  PresetOutputs & presetOutputs):
-	Preset(presetName),
-    	builtinParams(_presetInputs, presetOutputs),
-    	_presetOutputs(presetOutputs)
+
+MilkdropPreset::MilkdropPreset(std::istream & in, const std::string & presetName,  PresetOutputs & presetOutputs)
+  : Preset(presetName),
+    builtinParams(_presetInputs, presetOutputs),
+    _presetOutputs(presetOutputs)
 {
   initialize(in);
-
 }
 
-MilkdropPreset::MilkdropPreset(const std::string & absoluteFilePath, const std::string & presetName, PresetOutputs & presetOutputs):
-	Preset(presetName),
+MilkdropPreset::MilkdropPreset (const std::string & absoluteFilePath, const std::string & presetName, PresetOutputs & presetOutputs)
+  : Preset(presetName),
     builtinParams(_presetInputs, presetOutputs),
     _absoluteFilePath(absoluteFilePath),
     _presetOutputs(presetOutputs),
     _filename(parseFilename(absoluteFilePath))
 {
-
   initialize(absoluteFilePath);
-
 }
+
 MilkdropPreset::~MilkdropPreset()
 {
-
   traverse<TraverseFunctors::Delete<InitCond> >(init_cond_tree);
 
   traverse<TraverseFunctors::Delete<InitCond> >(per_frame_init_eqn_tree);
@@ -73,38 +70,41 @@
 
   traverse<TraverseFunctors::Delete<Param> >(user_param_tree);
 
-  /// Testing deletion of render items by the preset. would be nice if it worked, 
+  /// Testing deletion of render items by the preset. would be nice if it worked,
   /// and seems to be working if you use a mutex on the preset switching.
-  
-  for (PresetOutputs::cwave_container::iterator pos = customWaves.begin(); 
-	pos != customWaves.end(); ++pos ) {
-  //  __android_log_print(ANDROID_LOG_ERROR, "projectM", "not freeing wave %x", *pos);
+
+  for (PresetOutputs::cwave_container::iterator pos = customWaves.begin();
+       pos != customWaves.end();
+       ++pos )
+  {
+    //  __android_log_print(ANDROID_LOG_ERROR, "projectM", "not freeing wave %x", *pos);
     delete(*pos);
   }
 
-  for (PresetOutputs::cshape_container::iterator pos = customShapes.begin(); 
-	pos != customShapes.end(); ++pos ) {
-//__android_log_print(ANDROID_LOG_ERROR, "projectM", "not freeing shape %x", *pos);
-
-	delete(*pos);
+  for (PresetOutputs::cshape_container::iterator pos = customShapes.begin();
+       pos != customShapes.end();
+       ++pos )
+  {
+    //__android_log_print(ANDROID_LOG_ERROR, "projectM", "not freeing shape %x", *pos);
+    delete(*pos);
   }
-  customWaves.clear();
- customShapes.clear();
- presetOutputs().customWaves.clear();
- presetOutputs().customShapes.clear();
-  presetOutputs().drawables.clear();
 
+  customWaves.clear();
+  customShapes.clear();
+  presetOutputs().customWaves.clear();
+  presetOutputs().customShapes.clear();
+  presetOutputs().drawables.clear();
 }
 
 /* Adds a per pixel equation according to its string name. This
    will be used only by the parser */
 
-int MilkdropPreset::add_per_pixel_eqn(char * name, GenExpr * gen_expr)
+int
+MilkdropPreset::add_per_pixel_eqn(char * name, GenExpr * gen_expr)
 {
-
   PerPixelEqn * per_pixel_eqn = NULL;
-  int index;
-  Param * param = NULL;
+  int         index;
+  Param       * param = NULL;
 
   assert(gen_expr);
   assert(name);
@@ -117,7 +117,7 @@
   if ( !param )
   {
     if (PER_PIXEL_EQN_DEBUG) printf("add_per_pixel_eqn: failed to allocate a new parameter!\n");
-    return PROJECTM_FAILURE;
+      return PROJECTM_FAILURE;
   }
 
   index = per_pixel_eqn_tree.size();
@@ -126,14 +126,14 @@
   if ((per_pixel_eqn = new PerPixelEqn(index, param, gen_expr)) == NULL)
   {
     if (PER_PIXEL_EQN_DEBUG) printf("add_per_pixel_eqn: failed to create new per pixel equation!\n");
-    return PROJECTM_FAILURE;
+      return PROJECTM_FAILURE;
   }
 
 
 
   /* Insert the per pixel equation into the preset per pixel database */
-  std::pair<std::map<int, PerPixelEqn*>::iterator, bool> inserteeOption = per_pixel_eqn_tree.insert
-      (std::make_pair(per_pixel_eqn->index, per_pixel_eqn));
+  std::pair<std::map<int, PerPixelEqn*>::iterator, bool> inserteeOption =
+      per_pixel_eqn_tree.insert (std::make_pair(per_pixel_eqn->index, per_pixel_eqn));
 
   if (!inserteeOption.second)
   {
@@ -146,99 +146,124 @@
   return PROJECTM_SUCCESS;
 }
 
-void MilkdropPreset::evalCustomShapeInitConditions()
+void
+MilkdropPreset::evalCustomShapeInitConditions()
 {
 
-  for (PresetOutputs::cshape_container::iterator pos = customShapes.begin(); pos != customShapes.end(); ++pos) {
+  for (PresetOutputs::cshape_container::iterator pos = customShapes.begin();
+       pos != customShapes.end();
+       ++pos)
+  {
     assert(*pos);
     (*pos)->evalInitConds();
   }
 }
 
 
-void MilkdropPreset::evalCustomWaveInitConditions()
+void
+MilkdropPreset::evalCustomWaveInitConditions()
 {
 
-  for (PresetOutputs::cwave_container::iterator pos = customWaves.begin(); pos != customWaves.end(); ++pos) {
+  for (PresetOutputs::cwave_container::iterator pos = customWaves.begin();
+       pos != customWaves.end();
+       ++pos)
+  {
     assert(*pos);
-   (*pos)->evalInitConds();
-}
+    (*pos)->evalInitConds();
+  }
 }
 
 
-void MilkdropPreset::evalCustomWavePerFrameEquations()
+void
+MilkdropPreset::evalCustomWavePerFrameEquations()
 {
 
-  for (PresetOutputs::cwave_container::iterator pos = customWaves.begin(); pos != customWaves.end(); ++pos)
+  for (PresetOutputs::cwave_container::iterator pos = customWaves.begin();
+       pos != customWaves.end();
+       ++pos)
   {
-
     std::map<std::string, InitCond*> & init_cond_tree = (*pos)->init_cond_tree;
-    for (std::map<std::string, InitCond*>::iterator _pos = init_cond_tree.begin(); _pos != init_cond_tree.end(); ++_pos)
+
+    for (std::map<std::string, InitCond*>::iterator _pos = init_cond_tree.begin();
+         _pos != init_cond_tree.end();
+         ++_pos)
     {
       assert(_pos->second);
       _pos->second->evaluate();
     }
 
     std::vector<PerFrameEqn*> & per_frame_eqn_tree = (*pos)->per_frame_eqn_tree;
-    for (std::vector<PerFrameEqn*>::iterator _pos = per_frame_eqn_tree.begin(); _pos != per_frame_eqn_tree.end(); ++_pos)
+    for (std::vector<PerFrameEqn*>::iterator _pos = per_frame_eqn_tree.begin();
+         _pos != per_frame_eqn_tree.end();
+         ++_pos)
     {
       (*_pos)->evaluate();
     }
   }
-
 }
 
-void MilkdropPreset::evalCustomShapePerFrameEquations()
+void
+MilkdropPreset::evalCustomShapePerFrameEquations()
 {
 
-  for (PresetOutputs::cshape_container::iterator pos = customShapes.begin(); pos != customShapes.end(); ++pos)
+  for (PresetOutputs::cshape_container::iterator pos = customShapes.begin();
+       pos != customShapes.end();
+       ++pos)
   {
-
     std::map<std::string, InitCond*> & init_cond_tree = (*pos)->init_cond_tree;
-    for (std::map<std::string, InitCond*>::iterator _pos = init_cond_tree.begin(); _pos != init_cond_tree.end(); ++_pos)
+
+    for (std::map<std::string, InitCond*>::iterator _pos = init_cond_tree.begin();
+         _pos != init_cond_tree.end();
+         ++_pos)
     {
       assert(_pos->second);
       _pos->second->evaluate();
     }
 
     std::vector<PerFrameEqn*> & per_frame_eqn_tree = (*pos)->per_frame_eqn_tree;
-    for (std::vector<PerFrameEqn*>::iterator _pos = per_frame_eqn_tree.begin(); _pos != per_frame_eqn_tree.end(); ++_pos)
+    for (std::vector<PerFrameEqn*>::iterator _pos = per_frame_eqn_tree.begin();
+         _pos != per_frame_eqn_tree.end();
+         ++_pos)
     {
       (*_pos)->evaluate();
     }
   }
-
 }
 
-void MilkdropPreset::evalPerFrameInitEquations()
+void
+MilkdropPreset::evalPerFrameInitEquations()
 {
+  for (std::map<std::string, InitCond*>::iterator pos = per_frame_init_eqn_tree.begin();
+       pos != per_frame_init_eqn_tree.end();
+       ++pos)
+  {
+    assert(pos->second);
+    pos->second->evaluate();
+  }
+}
 
-  for (std::map<std::string, InitCond*>::iterator pos = per_frame_init_eqn_tree.begin(); pos != per_frame_init_eqn_tree.end(); ++pos)
+void
+MilkdropPreset::evalPerFrameEquations()
+{
+  for (std::map<std::string, InitCond*>::iterator pos = init_cond_tree.begin();
+       pos != init_cond_tree.end();
+       ++pos)
   {
     assert(pos->second);
     pos->second->evaluate();
   }
 
-}
-
-void MilkdropPreset::evalPerFrameEquations()
-{
-
-  for (std::map<std::string, InitCond*>::iterator pos = init_cond_tree.begin(); pos != init_cond_tree.end(); ++pos)
-  {
-    assert(pos->second);
-    pos->second->evaluate();
-  }
-
-  for (std::vector<PerFrameEqn*>::iterator pos = per_frame_eqn_tree.begin(); pos != per_frame_eqn_tree.end(); ++pos)
+  for (std::vector<PerFrameEqn*>::iterator pos = per_frame_eqn_tree.begin();
+       pos != per_frame_eqn_tree.end();
+       ++pos)
   {
     (*pos)->evaluate();
   }
-
 }
 
-void MilkdropPreset::preloadInitialize() {
-
+void
+MilkdropPreset::preloadInitialize()
+{
   /// @note commented this out because it should be unnecessary
   // Clear equation trees
   //init_cond_tree.clear();
@@ -246,12 +271,11 @@
   //per_frame_eqn_tree.clear();
   //per_pixel_eqn_tree.clear();
   //per_frame_init_eqn_tree.clear();
-
-
 }
 
-void MilkdropPreset::postloadInitialize() {
-
+void
+MilkdropPreset::postloadInitialize()
+{
   /* It's kind of ugly to reset these values here. Should definitely be placed in the parser somewhere */
   this->per_frame_eqn_count = 0;
   this->per_frame_init_eqn_count = 0;
@@ -261,41 +285,42 @@
   this->loadCustomShapeUnspecInitConds();
 
 
-/// @bug are you handling all the q variables conditions? in particular, the un-init case?
-//m_presetOutputs.q1 = 0;
-//m_presetOutputs.q2 = 0;
-//m_presetOutputs.q3 = 0;
-//m_presetOutputs.q4 = 0;
-//m_presetOutputs.q5 = 0;
-//m_presetOutputs.q6 = 0;
-//m_presetOutputs.q7 = 0;
-//m_presetOutputs.q8 = 0;
-
+  /// @bug are you handling all the q variables conditions? in particular, the un-init case?
+  //m_presetOutputs.q1 = 0;
+  //m_presetOutputs.q2 = 0;
+  //m_presetOutputs.q3 = 0;
+  //m_presetOutputs.q4 = 0;
+  //m_presetOutputs.q5 = 0;
+  //m_presetOutputs.q6 = 0;
+  //m_presetOutputs.q7 = 0;
+  //m_presetOutputs.q8 = 0;
 }
 
-void MilkdropPreset::Render(const BeatDetect &music, const PipelineContext &context)
+void
+MilkdropPreset::Render(const BeatDetect &music, const PipelineContext &context)
 {
-	_presetInputs.update(music, context);
+  _presetInputs.update(music, context);
 
-	evaluateFrame();
-	pipeline().Render(music, context);
-
+  evaluateFrame();
+  pipeline().Render(music, context);
 }
 
-void MilkdropPreset::initialize(const std::string & pathname)
+void
+MilkdropPreset::initialize(const std::string & pathname)
 {
   int retval;
 
   preloadInitialize();
 
-if (MILKDROP_PRESET_DEBUG)
-  std::cerr << "[Preset] loading file \"" << pathname << "\"..." << std::endl;
+  if (MILKDROP_PRESET_DEBUG)
+    std::cerr << "[Preset] loading file \"" << pathname << "\"..." << std::endl;
 
   if ((retval = loadPresetFile(pathname)) < 0)
   {
-if (MILKDROP_PRESET_DEBUG)
-     std::cerr << "[Preset] failed to load file \"" <<
-      pathname << "\"!" << std::endl;
+    if (MILKDROP_PRESET_DEBUG)
+      std::cerr << "[Preset] failed to load file \""
+                << pathname << "\"!"
+                << std::endl;
 
     /// @bug how should we handle this problem? a well define exception?
     throw retval;
@@ -304,7 +329,8 @@
   postloadInitialize();
 }
 
-void MilkdropPreset::initialize(std::istream & in)
+void
+MilkdropPreset::initialize(std::istream & in)
 {
   int retval;
 
@@ -313,8 +339,8 @@
   if ((retval = readIn(in)) < 0)
   {
 
-	if (MILKDROP_PRESET_DEBUG)
-     std::cerr << "[Preset] failed to load from stream " << std::endl;
+    if (MILKDROP_PRESET_DEBUG)
+      std::cerr << "[Preset] failed to load from stream " << std::endl;
 
     /// @bug how should we handle this problem? a well define exception?
     throw retval;
@@ -323,7 +349,9 @@
   postloadInitialize();
 }
 
-void MilkdropPreset::loadBuiltinParamsUnspecInitConds() {
+void
+MilkdropPreset::loadBuiltinParamsUnspecInitConds()
+{
 
   InitCondUtils::LoadUnspecInitCond loadUnspecInitCond(this->init_cond_tree, this->per_frame_init_eqn_tree);
 
@@ -332,22 +360,24 @@
 
 }
 
-void MilkdropPreset::loadCustomWaveUnspecInitConds()
+void
+MilkdropPreset::loadCustomWaveUnspecInitConds()
 {
-
-  for (PresetOutputs::cwave_container::iterator pos = customWaves.begin(); pos != customWaves.end(); ++pos)
+  for (PresetOutputs::cwave_container::iterator pos = customWaves.begin();
+       pos != customWaves.end();
+       ++pos)
   {
     assert(*pos);
     (*pos)->loadUnspecInitConds();
   }
-
 }
 
-void MilkdropPreset::loadCustomShapeUnspecInitConds()
+void
+MilkdropPreset::loadCustomShapeUnspecInitConds()
 {
-
   for (PresetOutputs::cshape_container::iterator pos = customShapes.begin();
-	pos != customShapes.end(); ++pos)
+       pos != customShapes.end();
+       ++pos)
   {
     assert(*pos);
     (*pos)->loadUnspecInitConds();
@@ -355,9 +385,9 @@
 }
 
 
-void MilkdropPreset::evaluateFrame()
+void
+MilkdropPreset::evaluateFrame()
 {
-
   // Evaluate all equation objects according to milkdrop flow diagram
 
   evalPerFrameInitEquations();
@@ -382,110 +412,102 @@
   /// @slow an extra O(N) per frame, could do this during eval
   _presetOutputs.customWaves = PresetOutputs::cwave_container(customWaves);
   _presetOutputs.customShapes = PresetOutputs::cshape_container(customShapes);
-
 }
 
-void MilkdropPreset::initialize_PerPixelMeshes()
+void
+MilkdropPreset::initialize_PerPixelMeshes()
 {
-
   int x,y;
-      for (x=0;x<presetInputs().gx;x++){
-	for(y=0;y<presetInputs().gy;y++){
-	  _presetOutputs.cx_mesh[x][y]=presetOutputs().cx;
-	}}
 
+  for (x=0;x<presetInputs().gx;x++){
+    for(y=0;y<presetInputs().gy;y++){
+      _presetOutputs.cx_mesh[x][y]=presetOutputs().cx;
+    }
+  }
 
+  for (x=0;x<presetInputs().gx;x++){
+    for(y=0;y<presetInputs().gy;y++){
+      _presetOutputs.cy_mesh[x][y]=presetOutputs().cy;
+    }
+  }
 
+  for (x=0;x<presetInputs().gx;x++){
+    for(y=0;y<presetInputs().gy;y++){
+      _presetOutputs.sx_mesh[x][y]=presetOutputs().sx;
+    }
+  }
 
-      for (x=0;x<presetInputs().gx;x++){
-	for(y=0;y<presetInputs().gy;y++){
-	  _presetOutputs.cy_mesh[x][y]=presetOutputs().cy;
-	}}
+  for (x=0;x<presetInputs().gx;x++){
+    for(y=0;y<presetInputs().gy;y++){
+      _presetOutputs.sy_mesh[x][y]=presetOutputs().sy;
+    }
+  }
 
+  for (x=0;x<presetInputs().gx;x++){
+    for(y=0;y<presetInputs().gy;y++){
+      _presetOutputs.dx_mesh[x][y]=presetOutputs().dx;
+    }
+  }
 
+  //std::cout<<presetOutputs().cx<<","<<presetOutputs().cy<<" "<<presetOutputs().dx<<","<<presetOutputs().dy<<std::endl;
 
-      for (x=0;x<presetInputs().gx;x++){
-	for(y=0;y<presetInputs().gy;y++){
-	  _presetOutputs.sx_mesh[x][y]=presetOutputs().sx;
-	}}
+  for (x=0;x<presetInputs().gx;x++){
+    for(y=0;y<presetInputs().gy;y++){
+      _presetOutputs.dy_mesh[x][y]=presetOutputs().dy;
+    }
+  }
 
+  for (x=0;x<presetInputs().gx;x++){
+    for(y=0;y<presetInputs().gy;y++){
+      _presetOutputs.zoom_mesh[x][y]=presetOutputs().zoom;
+    }
+  }
 
+  for (x=0;x<presetInputs().gx;x++){
+    for(y=0;y<presetInputs().gy;y++){
+      _presetOutputs.zoomexp_mesh[x][y]=presetOutputs().zoomexp;
+    }
+  }
 
+  for (x=0;x<presetInputs().gx;x++){
+    for(y=0;y<presetInputs().gy;y++){
+      _presetOutputs.rot_mesh[x][y]=presetOutputs().rot;
+    }
+  }
 
-      for (x=0;x<presetInputs().gx;x++){
-	for(y=0;y<presetInputs().gy;y++){
-	  _presetOutputs.sy_mesh[x][y]=presetOutputs().sy;
-	}}
-
-
-
-      for (x=0;x<presetInputs().gx;x++){
-	for(y=0;y<presetInputs().gy;y++){
-	  _presetOutputs.dx_mesh[x][y]=presetOutputs().dx;
-	}}
-
-//std::cout<<presetOutputs().cx<<","<<presetOutputs().cy<<" "<<presetOutputs().dx<<","<<presetOutputs().dy<<std::endl;
-
-      for (x=0;x<presetInputs().gx;x++){
-	for(y=0;y<presetInputs().gy;y++){
-	  _presetOutputs.dy_mesh[x][y]=presetOutputs().dy;
-	}}
-
-
-
-      for (x=0;x<presetInputs().gx;x++){
-	for(y=0;y<presetInputs().gy;y++){
-	  _presetOutputs.zoom_mesh[x][y]=presetOutputs().zoom;
-	}}
-
-
-
-
-      for (x=0;x<presetInputs().gx;x++){
-	for(y=0;y<presetInputs().gy;y++){
-	  _presetOutputs.zoomexp_mesh[x][y]=presetOutputs().zoomexp;
-	}}
-
-
-
-      for (x=0;x<presetInputs().gx;x++){
-	for(y=0;y<presetInputs().gy;y++){
-	  _presetOutputs.rot_mesh[x][y]=presetOutputs().rot;
-	}}
-
-
-      for (x=0;x<presetInputs().gx;x++){
-	for(y=0;y<presetInputs().gy;y++){
-	  _presetOutputs.warp_mesh[x][y]=presetOutputs().warp;
-	}}
-
-
-
+  for (x=0;x<presetInputs().gx;x++){
+    for(y=0;y<presetInputs().gy;y++){
+      _presetOutputs.warp_mesh[x][y]=presetOutputs().warp;
+    }
+  }
 }
-// Evaluates all per-pixel equations
-void MilkdropPreset::evalPerPixelEqns()
-{
 
+// Evaluates all per-pixel equations
+void
+MilkdropPreset::evalPerPixelEqns()
+{
   /* Evaluate all per pixel equations in the tree datastructure */
   for (int mesh_x = 0; mesh_x < presetInputs().gx; mesh_x++)
-	  for (int mesh_y = 0; mesh_y < presetInputs().gy; mesh_y++)
-  for (std::map<int, PerPixelEqn*>::iterator pos = per_pixel_eqn_tree.begin();
-       pos != per_pixel_eqn_tree.end(); ++pos)
-    pos->second->evaluate(mesh_x, mesh_y);
-
+    for (int mesh_y = 0; mesh_y < presetInputs().gy; mesh_y++)
+      for (std::map<int, PerPixelEqn*>::iterator pos = per_pixel_eqn_tree.begin();
+           pos != per_pixel_eqn_tree.end();
+           ++pos)
+        pos->second->evaluate(mesh_x, mesh_y);
 }
 
-int MilkdropPreset::readIn(std::istream & fs) {
-
+int
+MilkdropPreset::readIn(std::istream & fs)
+{
   line_mode_t line_mode;
+
   presetOutputs().compositeShader.programSource.clear();
   presetOutputs().warpShader.programSource.clear();
 
   /* Parse any comments */
   if (Parser::parse_top_comment(fs) < 0)
   {
-	if (MILKDROP_PRESET_DEBUG)
-    		std::cerr << "[Preset::readIn] no left bracket found..." << std::endl;
+    if (MILKDROP_PRESET_DEBUG)
+      std::cerr << "[Preset::readIn] no left bracket found..." << std::endl;
     return PROJECTM_FAILURE;
   }
 
@@ -512,35 +534,34 @@
     }
   }
 
-//  std::cerr << "loadPresetFile: finished line parsing successfully" << std::endl;
+  //  std::cerr << "loadPresetFile: finished line parsing successfully" << std::endl;
 
   /* Now the preset has been loaded.
      Evaluation calls can be made at appropiate
      times in the frame loop */
 
-return PROJECTM_SUCCESS;
+  return PROJECTM_SUCCESS;
 }
 
 /* loadPresetFile: private function that loads a specific preset denoted
    by the given pathname */
-int MilkdropPreset::loadPresetFile(const std::string & pathname)
+int
+MilkdropPreset::loadPresetFile(const std::string & pathname)
 {
-
-
   /* Open the file corresponding to pathname */
   std::ifstream fs(pathname.c_str());
+
   if (!fs || fs.eof()) {
     if (MILKDROP_PRESET_DEBUG)
-    	std::cerr << "loadPresetFile: loading of file \"" << pathname << "\" failed!\n";
+      std::cerr << "loadPresetFile: loading of file \"" << pathname << "\" failed!\n";
     return PROJECTM_ERROR;
   }
 
- return readIn(fs);
-
+  return readIn(fs);
 }
 
-const std::string & MilkdropPreset::name() const {
-	
-	return name().empty() ? filename() : name();
+const std::string &
+MilkdropPreset::name() const
+{
+  return name().empty() ? filename() : name();
 }
-
diff --git a/src/libprojectM/MilkdropPresetFactory/MilkdropPreset.hpp b/src/libprojectM/MilkdropPresetFactory/MilkdropPreset.hpp
index 89fc7f8..ddfbd52 100644
--- a/src/libprojectM/MilkdropPresetFactory/MilkdropPreset.hpp
+++ b/src/libprojectM/MilkdropPresetFactory/MilkdropPreset.hpp
@@ -1,4 +1,3 @@
-
 /**
  * projectM -- Milkdrop-esque visualisation SDK
  * Copyright (C)2003-2007 projectM Team
@@ -26,7 +25,6 @@
  *
  * $Log$
  */
-
 #ifndef _MilkdropPreset_HPP
 #define _MilkdropPreset_HPP
 
@@ -47,6 +45,7 @@
 #include "InitCond.hpp"
 #include "Preset.hpp"
 
+
 class CustomWave;
 class CustomShape;
 class InitCond;
@@ -109,18 +108,16 @@
   /// \returns A MilkdropPreset output instance with values computed from most recent evaluateFrame()
   PresetOutputs & presetOutputs() const
   {
-
     return _presetOutputs;
   }
 
   const PresetInputs & presetInputs() const
   {
-
     return _presetInputs;
   }
 
 
-// @bug encapsulate
+  // @bug encapsulate
 
   PresetOutputs::cwave_container customWaves;
   PresetOutputs::cshape_container customShapes;
@@ -134,13 +131,13 @@
   std::map<std::string,Param*> user_param_tree; /* user parameter splay tree */
 
 
-  PresetOutputs & pipeline() { return _presetOutputs; } 
+  PresetOutputs & pipeline() { return _presetOutputs; }
 
   void Render(const BeatDetect &music, const PipelineContext &context);
   const std::string & name() const;
-  const std::string & filename() const { return _filename; } 
-private:
-  std::string _filename; 
+  const std::string & filename() const { return _filename; }
+  private:
+  std::string _filename;
   PresetInputs _presetInputs;
   /// Evaluates the MilkdropPreset for a frame given the current values of MilkdropPreset inputs / outputs
   /// All calculated values are stored in the associated MilkdropPreset outputs instance
@@ -173,53 +170,52 @@
 
   void preloadInitialize();
   void postloadInitialize();
-  
+
   PresetOutputs & _presetOutputs;
 
-template <class CustomObject>
-void transfer_q_variables(std::vector<CustomObject*> & customObjects);
+  template <class CustomObject>
+  void transfer_q_variables(std::vector<CustomObject*> & customObjects);
 };
 
 
-template <class CustomObject>
-void MilkdropPreset::transfer_q_variables(std::vector<CustomObject*> & customObjects)
+template <class CustomObject> void
+MilkdropPreset::transfer_q_variables(std::vector<CustomObject*> & customObjects)
 {
- 	CustomObject * custom_object;
+  CustomObject * custom_object;
 
-	for (typename std::vector<CustomObject*>::iterator pos = customObjects.begin(); pos != customObjects.end();++pos) {
-
-		custom_object = *pos;
-		for (unsigned int i = 0; i < NUM_Q_VARIABLES; i++)
-			custom_object->q[i] = _presetOutputs.q[i];
-	}
-
-
+  for (typename std::vector<CustomObject*>::iterator pos = customObjects.begin();
+       pos != customObjects.end();
+       ++pos)
+  {
+    custom_object = *pos;
+    for (unsigned int i = 0; i < NUM_Q_VARIABLES; i++)
+      custom_object->q[i] = _presetOutputs.q[i];
+  }
 }
 
-template <class CustomObject>
-CustomObject * MilkdropPreset::find_custom_object(int id, std::vector<CustomObject*> & customObjects)
+template <class CustomObject> CustomObject *
+MilkdropPreset::find_custom_object(int id, std::vector<CustomObject*> & customObjects)
 {
-
   CustomObject * custom_object = NULL;
 
-
-  for (typename std::vector<CustomObject*>::iterator pos = customObjects.begin(); pos != customObjects.end();++pos) {
-	if ((*pos)->id == id) {
-		custom_object = *pos;
-		break;
-	}
+  for (typename std::vector<CustomObject*>::iterator pos = customObjects.begin();
+       pos != customObjects.end();
+       ++pos)
+  {
+    if ((*pos)->id == id) {
+      custom_object = *pos;
+      break;
+    }
   }
 
   if (custom_object == NULL)
   {
-
     if ((custom_object = new CustomObject(id)) == NULL)
     {
       return NULL;
     }
 
-      customObjects.push_back(custom_object);
-
+    customObjects.push_back(custom_object);
   }
 
   assert(custom_object);
@@ -227,5 +223,4 @@
 }
 
 
-
 #endif /** !_MilkdropPreset_HPP */
diff --git a/src/libprojectM/MilkdropPresetFactory/MilkdropPresetFactory.cpp b/src/libprojectM/MilkdropPresetFactory/MilkdropPresetFactory.cpp
index 0418a7c..3bcd620 100644
--- a/src/libprojectM/MilkdropPresetFactory/MilkdropPresetFactory.cpp
+++ b/src/libprojectM/MilkdropPresetFactory/MilkdropPresetFactory.cpp
@@ -17,211 +17,217 @@
 #include "IdlePreset.hpp"
 #include "PresetFrameIO.hpp"
 
-MilkdropPresetFactory::MilkdropPresetFactory(int gx, int gy): _usePresetOutputs(false)
+
+MilkdropPresetFactory::MilkdropPresetFactory(int gx, int gy)
+  : _usePresetOutputs(false)
 {
-	/* Initializes the builtin function database */
-	BuiltinFuncs::init_builtin_func_db();
+  /* Initializes the builtin function database */
+  BuiltinFuncs::init_builtin_func_db();
 
-	/* Initializes all infix operators */
-	Eval::init_infix_ops();
+  /* Initializes all infix operators */
+  Eval::init_infix_ops();
 
-	_presetOutputs = createPresetOutputs(gx,gy);
-	_presetOutputs2 = createPresetOutputs(gx, gy);
+  _presetOutputs = createPresetOutputs(gx,gy);
+  _presetOutputs2 = createPresetOutputs(gx, gy);
 }
 
-MilkdropPresetFactory::~MilkdropPresetFactory() {
-
-	std::cerr << "[~MilkdropPresetFactory] destroy infix ops" << std::endl;
-	Eval::destroy_infix_ops();
-	std::cerr << "[~MilkdropPresetFactory] destroy builtin func" << std::endl;
-	BuiltinFuncs::destroy_builtin_func_db();
-	std::cerr << "[~MilkdropPresetFactory] delete preset out puts" << std::endl;
-	delete(_presetOutputs);
-        delete(_presetOutputs2);
-	std::cerr << "[~MilkdropPresetFactory] done" << std::endl;
-
+MilkdropPresetFactory::~MilkdropPresetFactory()
+{
+  std::cerr << "[~MilkdropPresetFactory] destroy infix ops" << std::endl;
+  Eval::destroy_infix_ops();
+  std::cerr << "[~MilkdropPresetFactory] destroy builtin func" << std::endl;
+  BuiltinFuncs::destroy_builtin_func_db();
+  std::cerr << "[~MilkdropPresetFactory] delete preset out puts" << std::endl;
+  delete(_presetOutputs);
+  delete(_presetOutputs2);
+  std::cerr << "[~MilkdropPresetFactory] done" << std::endl;
 }
 
 /* Reinitializes the engine variables to a default (conservative and sane) value */
-void resetPresetOutputs(PresetOutputs * presetOutputs)
+void
+resetPresetOutputs(PresetOutputs * presetOutputs)
 {
+  presetOutputs->zoom               = 1.0;
+  presetOutputs->zoomexp            = 1.0;
+  presetOutputs->rot                = 0.0;
+  presetOutputs->warp               = 0.0;
 
-    presetOutputs->zoom=1.0;
-    presetOutputs->zoomexp = 1.0;
-    presetOutputs->rot= 0.0;
-    presetOutputs->warp= 0.0;
+  presetOutputs->sx                 = 1.0;
+  presetOutputs->sy                 = 1.0;
+  presetOutputs->dx                 = 0.0;
+  presetOutputs->dy                 = 0.0;
+  presetOutputs->cx                 = 0.5;
+  presetOutputs->cy                 = 0.5;
 
-    presetOutputs->sx= 1.0;
-    presetOutputs->sy= 1.0;
-    presetOutputs->dx= 0.0;
-    presetOutputs->dy= 0.0;
-    presetOutputs->cx= 0.5;
-    presetOutputs->cy= 0.5;
+  presetOutputs->screenDecay        = .98;
 
-    presetOutputs->screenDecay=.98;
+  presetOutputs->wave.r             = 1.0;
+  presetOutputs->wave.g             = 0.2;
+  presetOutputs->wave.b             = 0.0;
+  presetOutputs->wave.x             = 0.5;
+  presetOutputs->wave.y             = 0.5;
+  presetOutputs->wave.mystery       = 0.0;
 
-    presetOutputs->wave.r= 1.0;
-    presetOutputs->wave.g= 0.2;
-    presetOutputs->wave.b= 0.0;
-    presetOutputs->wave.x= 0.5;
-    presetOutputs->wave.y= 0.5;
-    presetOutputs->wave.mystery= 0.0;
+  presetOutputs->border.outer_size  = 0.0;
+  presetOutputs->border.outer_r     = 0.0;
+  presetOutputs->border.outer_g     = 0.0;
+  presetOutputs->border.outer_b     = 0.0;
+  presetOutputs->border.outer_a     = 0.0;
 
-    presetOutputs->border.outer_size= 0.0;
-    presetOutputs->border.outer_r= 0.0;
-    presetOutputs->border.outer_g= 0.0;
-    presetOutputs->border.outer_b= 0.0;
-    presetOutputs->border.outer_a= 0.0;
+  presetOutputs->border.inner_size  = 0.0;
+  presetOutputs->border.inner_r     = 0.0;
+  presetOutputs->border.inner_g     = 0.0;
+  presetOutputs->border.inner_b     = 0.0;
+  presetOutputs->border.inner_a     = 0.0;
 
-    presetOutputs->border.inner_size = 0.0;
-    presetOutputs->border.inner_r = 0.0;
-    presetOutputs->border.inner_g = 0.0;
-    presetOutputs->border.inner_b = 0.0;
-    presetOutputs->border.inner_a = 0.0;
-
-    presetOutputs->mv.a = 0.0;
-    presetOutputs->mv.r = 0.0;
-    presetOutputs->mv.g = 0.0;
-    presetOutputs->mv.b = 0.0;
-    presetOutputs->mv.length = 1.0;
-    presetOutputs->mv.x_num = 16.0;
-    presetOutputs->mv.y_num = 12.0;
-    presetOutputs->mv.x_offset = 0.02;
-    presetOutputs->mv.y_offset = 0.02;
+  presetOutputs->mv.a               = 0.0;
+  presetOutputs->mv.r               = 0.0;
+  presetOutputs->mv.g               = 0.0;
+  presetOutputs->mv.b               = 0.0;
+  presetOutputs->mv.length          = 1.0;
+  presetOutputs->mv.x_num           = 16.0;
+  presetOutputs->mv.y_num           = 12.0;
+  presetOutputs->mv.x_offset        = 0.02;
+  presetOutputs->mv.y_offset        = 0.02;
 
 
-    /* PER_FRAME CONSTANTS END */
-    presetOutputs->fRating = 0;
-    presetOutputs->fGammaAdj = 1.0;
-    presetOutputs->videoEcho.zoom = 1.0;
-    presetOutputs->videoEcho.a = 0;
-    presetOutputs->videoEcho.orientation = Normal;
+  /* PER_FRAME CONSTANTS END */
+  presetOutputs->fRating            = 0;
+  presetOutputs->fGammaAdj          = 1.0;
+  presetOutputs->videoEcho.zoom         = 1.0;
+  presetOutputs->videoEcho.a            = 0;
+  presetOutputs->videoEcho.orientation  = Normal;
 
-    presetOutputs->wave.additive = false;
-    presetOutputs->wave.dots = false;
-    presetOutputs->wave.thick = false;
-    presetOutputs->wave.modulateAlphaByVolume = 0;
-    presetOutputs->wave.maximizeColors = 0;
-    presetOutputs->textureWrap = 0;
-    presetOutputs->bDarkenCenter = 0;
-    presetOutputs->bRedBlueStereo = 0;
-    presetOutputs->bBrighten = 0;
-    presetOutputs->bDarken = 0;
-    presetOutputs->bSolarize = 0;
-    presetOutputs->bInvert = 0;
-    presetOutputs->bMotionVectorsOn = 1;
+  presetOutputs->wave.additive              = false;
+  presetOutputs->wave.dots                  = false;
+  presetOutputs->wave.thick                 = false;
+  presetOutputs->wave.modulateAlphaByVolume = 0;
+  presetOutputs->wave.maximizeColors        = 0;
+  presetOutputs->textureWrap        = 0;
+  presetOutputs->bDarkenCenter      = 0;
+  presetOutputs->bRedBlueStereo     = 0;
+  presetOutputs->bBrighten          = 0;
+  presetOutputs->bDarken            = 0;
+  presetOutputs->bSolarize          = 0;
+  presetOutputs->bInvert            = 0;
+  presetOutputs->bMotionVectorsOn   = 1;
 
-    presetOutputs->wave.a =1.0;
-    presetOutputs->wave.scale = 1.0;
-    presetOutputs->wave.smoothing = 0;
-    presetOutputs->wave.mystery = 0;
-    presetOutputs->wave.modOpacityEnd = 0;
-    presetOutputs->wave.modOpacityStart = 0;
-    presetOutputs->fWarpAnimSpeed = 0;
-    presetOutputs->fWarpScale = 0;
-    presetOutputs->fShader = 0;
+  presetOutputs->wave.a               =1.0;
+  presetOutputs->wave.scale           = 1.0;
+  presetOutputs->wave.smoothing       = 0;
+  presetOutputs->wave.mystery         = 0;
+  presetOutputs->wave.modOpacityEnd   = 0;
+  presetOutputs->wave.modOpacityStart = 0;
+  presetOutputs->fWarpAnimSpeed     = 0;
+  presetOutputs->fWarpScale         = 0;
+  presetOutputs->fShader            = 0;
 
-    /* PER_PIXEL CONSTANT END */
-    /* Q VARIABLES START */
+  /* PER_PIXEL CONSTANT END */
+  /* Q VARIABLES START */
 
-    for (int i = 0;i< 32;i++)
-        presetOutputs->q[i] = 0;
+  for (int i = 0;i< 32;i++)
+    presetOutputs->q[i] = 0;
 
-//	for ( std::vector<CustomWave*>::iterator pos = presetOutputs->customWaves.begin();
-//	        pos != presetOutputs->customWaves.end(); ++pos )
-//		if ( *pos != 0 ) delete ( *pos );
-	
-//	for ( std::vector<CustomShape*>::iterator pos = presetOutputs->customShapes.begin();
-//	        pos != presetOutputs->customShapes.end(); ++pos )
-//		if ( *pos != 0 ) delete ( *pos );
-	
-	presetOutputs->customWaves.clear();
-	presetOutputs->customShapes.clear();
+  //  for ( std::vector<CustomWave*>::iterator pos = presetOutputs->customWaves.begin();
+  //          pos != presetOutputs->customWaves.end(); ++pos )
+  //    if ( *pos != 0 ) delete ( *pos );
 
-    /* Q VARIABLES END */
+  //  for ( std::vector<CustomShape*>::iterator pos = presetOutputs->customShapes.begin();
+  //          pos != presetOutputs->customShapes.end(); ++pos )
+  //    if ( *pos != 0 ) delete ( *pos );
 
+  presetOutputs->customWaves.clear();
+  presetOutputs->customShapes.clear();
+
+  /* Q VARIABLES END */
 }
 
 
 /* Reinitializes the engine variables to a default (conservative and sane) value */
-void MilkdropPresetFactory::reset()
+void
+MilkdropPresetFactory::reset()
 {
-
-    resetPresetOutputs(_presetOutputs);
-    resetPresetOutputs(_presetOutputs2);
+  resetPresetOutputs(_presetOutputs);
+  resetPresetOutputs(_presetOutputs2);
 }
 
-PresetOutputs* MilkdropPresetFactory::createPresetOutputs(int gx, int gy)
+PresetOutputs*
+MilkdropPresetFactory::createPresetOutputs(int gx, int gy)
 {
+  PresetOutputs *presetOutputs = new PresetOutputs();
 
-	PresetOutputs *presetOutputs = new PresetOutputs();
+  presetOutputs->Initialize(gx,gy);
 
-	presetOutputs->Initialize(gx,gy);
+  /* PER FRAME CONSTANTS BEGIN */
+  presetOutputs->zoom               = 1.0;
+  presetOutputs->zoomexp            = 1.0;
+  presetOutputs->rot                = 0.0;
+  presetOutputs->warp               = 0.0;
 
-	/* PER FRAME CONSTANTS BEGIN */
-	presetOutputs->zoom=1.0;
-	presetOutputs->zoomexp = 1.0;
-	presetOutputs->rot= 0.0;
-	presetOutputs->warp= 0.0;
+  presetOutputs->sx                 = 1.0;
+  presetOutputs->sy                 = 1.0;
+  presetOutputs->dx                 = 0.0;
+  presetOutputs->dy                 = 0.0;
+  presetOutputs->cx                 = 0.5;
+  presetOutputs->cy                 = 0.5;
 
-	presetOutputs->sx= 1.0;
-	presetOutputs->sy= 1.0;
-	presetOutputs->dx= 0.0;
-	presetOutputs->dy= 0.0;
-	presetOutputs->cx= 0.5;
-	presetOutputs->cy= 0.5;
-
-	presetOutputs->screenDecay=.98;
+  presetOutputs->screenDecay        =.98;
 
 
-//_presetInputs.meshx = 0;
-//_presetInputs.meshy = 0;
+  //_presetInputs.meshx = 0;
+  //_presetInputs.meshy = 0;
 
 
-	/* PER_FRAME CONSTANTS END */
-	presetOutputs->fRating = 0;
-	presetOutputs->fGammaAdj = 1.0;
-	presetOutputs->videoEcho.zoom = 1.0;
-	presetOutputs->videoEcho.a = 0;
-	presetOutputs->videoEcho.orientation = Normal;
+  /* PER_FRAME CONSTANTS END */
+  presetOutputs->fRating            = 0;
+  presetOutputs->fGammaAdj          = 1.0;
+  presetOutputs->videoEcho.zoom         = 1.0;
+  presetOutputs->videoEcho.a            = 0;
+  presetOutputs->videoEcho.orientation  = Normal;
 
-	presetOutputs->textureWrap = 0;
-	presetOutputs->bDarkenCenter = 0;
-	presetOutputs->bRedBlueStereo = 0;
-	presetOutputs->bBrighten = 0;
-	presetOutputs->bDarken = 0;
-	presetOutputs->bSolarize = 0;
-	presetOutputs->bInvert = 0;
-	presetOutputs->bMotionVectorsOn = 1;
+  presetOutputs->textureWrap        = 0;
+  presetOutputs->bDarkenCenter      = 0;
+  presetOutputs->bRedBlueStereo     = 0;
+  presetOutputs->bBrighten          = 0;
+  presetOutputs->bDarken            = 0;
+  presetOutputs->bSolarize          = 0;
+  presetOutputs->bInvert            = 0;
+  presetOutputs->bMotionVectorsOn   = 1;
 
-    	presetOutputs->fWarpAnimSpeed = 0;
-	presetOutputs->fWarpScale = 0;
-	presetOutputs->fShader = 0;
+  presetOutputs->fWarpAnimSpeed     = 0;
+  presetOutputs->fWarpScale         = 0;
+  presetOutputs->fShader            = 0;
 
-	/* PER_PIXEL CONSTANTS BEGIN */
+  /* PER_PIXEL CONSTANTS BEGIN */
 
-	/* PER_PIXEL CONSTANT END */
+  /* PER_PIXEL CONSTANT END */
 
-	/* Q AND T VARIABLES START */
+  /* Q AND T VARIABLES START */
 
-	for (int i = 0;i<NUM_Q_VARIABLES;i++)
-		presetOutputs->q[i] = 0;
-	
-	/* Q AND T VARIABLES END */
-    return presetOutputs;
+  for (int i = 0;  i < NUM_Q_VARIABLES;  i++)
+    presetOutputs->q[i] = 0;
+
+  /* Q AND T VARIABLES END */
+  return presetOutputs;
 }
 
 
-std::auto_ptr<Preset> MilkdropPresetFactory::allocate(const std::string & url, const std::string & name, const std::string & author) {
+std::auto_ptr<Preset>
+MilkdropPresetFactory::allocate(
+const std::string & url,
+const std::string & name,
+const std::string & author
+)
+{
+  PresetOutputs *presetOutputs = _usePresetOutputs ? _presetOutputs : _presetOutputs2;
 
-    PresetOutputs *presetOutputs = _usePresetOutputs ? _presetOutputs : _presetOutputs2;
+  _usePresetOutputs = !_usePresetOutputs;
+  resetPresetOutputs(presetOutputs);
 
-	_usePresetOutputs = !_usePresetOutputs;
-	resetPresetOutputs(presetOutputs);
+  std::string path;
 
-	std::string path;
-	if (PresetFactory::protocol(url, path) == PresetFactory::IDLE_PRESET_PROTOCOL) {
-		return IdlePresets::allocate(path, *presetOutputs);
-	} else
-		return std::auto_ptr<Preset>(new MilkdropPreset(url, name, *presetOutputs));
+  if (PresetFactory::protocol(url, path) == PresetFactory::IDLE_PRESET_PROTOCOL) {
+    return IdlePresets::allocate(path, *presetOutputs);
+  } else
+    return std::auto_ptr<Preset>(new MilkdropPreset(url, name, *presetOutputs));
 }
diff --git a/src/libprojectM/MilkdropPresetFactory/MilkdropPresetFactory.hpp b/src/libprojectM/MilkdropPresetFactory/MilkdropPresetFactory.hpp
index 2a5a46a..4dff790 100644
--- a/src/libprojectM/MilkdropPresetFactory/MilkdropPresetFactory.hpp
+++ b/src/libprojectM/MilkdropPresetFactory/MilkdropPresetFactory.hpp
@@ -9,35 +9,37 @@
 // Copyright: See COPYING file that comes with this distribution
 //
 //
-
 #ifndef __MILKDROP_PRESET_FACTORY_HPP
 #define __MILKDROP_PRESET_FACTORY_HPP
 
 #include <memory>
 #include "../PresetFactory.hpp"
+
+
 class DLLEXPORT PresetOutputs;
 class DLLEXPORT PresetInputs;
 
+
 class MilkdropPresetFactory : public PresetFactory {
 
 public:
 
- MilkdropPresetFactory(int gx, int gy);
+  MilkdropPresetFactory(int gx, int gy);
 
- virtual ~MilkdropPresetFactory();
+  virtual ~MilkdropPresetFactory();
 
- std::auto_ptr<Preset> allocate(const std::string & url, const std::string & name = std::string(),
-	const std::string & author = std::string());
+  std::auto_ptr<Preset> allocate(const std::string & url, const std::string & name = std::string(),
+                                 const std::string & author = std::string());
 
- std::string supportedExtensions() const { return "milk prjm"; }
+  std::string supportedExtensions() const { return "milk prjm"; }
 
 private:
-    static PresetOutputs* createPresetOutputs(int gx, int gy);
-	void reset();
-	PresetOutputs * _presetOutputs;
-    PresetOutputs * _presetOutputs2;
-    bool _usePresetOutputs;
-	//PresetInputs _presetInputs;
+  static PresetOutputs* createPresetOutputs(int gx, int gy);
+  void reset();
+  PresetOutputs * _presetOutputs;
+  PresetOutputs * _presetOutputs2;
+  bool _usePresetOutputs;
+  //PresetInputs _presetInputs;
 };
 
 #endif
diff --git a/src/libprojectM/MilkdropPresetFactory/Param.cpp b/src/libprojectM/MilkdropPresetFactory/Param.cpp
index ca21e8f..ebc854f 100644
--- a/src/libprojectM/MilkdropPresetFactory/Param.cpp
+++ b/src/libprojectM/MilkdropPresetFactory/Param.cpp
@@ -39,161 +39,181 @@
 #include <iostream>
 #include <cassert>
 
+
 /** Constructor */
 Param::Param( std::string _name, short int _type, short int _flags, void * _engine_val, void * _matrix,
-              CValue _default_init_val, CValue _upper_bound, CValue _lower_bound):
-	name(_name),
-        type(_type),
-        flags (_flags),
-        matrix_flag (0),
-        engine_val(_engine_val),
-        matrix (_matrix),
-        default_init_val (_default_init_val),
-        upper_bound (_upper_bound),
-        lower_bound (_lower_bound)
-    {
+              CValue _default_init_val, CValue _upper_bound, CValue _lower_bound)
+  : name(_name),
+    type(_type),
+    flags (_flags),
+    matrix_flag (0),
+    engine_val(_engine_val),
+    matrix (_matrix),
+    default_init_val (_default_init_val),
+    upper_bound (_upper_bound),
+    lower_bound (_lower_bound)
+{
 
 }
 
 
 /* Creates a user defined parameter */
-Param::Param(std::string _name) :
-	name(_name),
-        type(P_TYPE_DOUBLE),
-	flags(P_FLAG_USERDEF),
-        matrix_flag(0),
-        matrix(0)
-        {
+Param::Param(std::string _name)
+  : name(_name),
+    type(P_TYPE_DOUBLE),
+    flags(P_FLAG_USERDEF),
+    matrix_flag(0),
+    matrix(0)
+{
+  engine_val = new float();
 
-	engine_val = new float();
+  default_init_val.float_val = DEFAULT_DOUBLE_IV;
+  upper_bound.float_val = DEFAULT_DOUBLE_UB;
+  lower_bound.float_val = DEFAULT_DOUBLE_LB;
 
-	default_init_val.float_val = DEFAULT_DOUBLE_IV;
-        upper_bound.float_val = DEFAULT_DOUBLE_UB;
-        lower_bound.float_val = DEFAULT_DOUBLE_LB;
-
-    /// @note may have fixed a recent bug. testing
-    *((float*)engine_val) = default_init_val.float_val;
-
-   
+  /// @note may have fixed a recent bug. testing
+  *((float*)engine_val) = default_init_val.float_val;
 }
 
 /* Free's a parameter type */
-Param::~Param() {
+Param::~Param()
+{
+  // I hate this, but will let it be for now
+  if (flags & P_FLAG_USERDEF) {
+    delete((double*)engine_val);
+  }
 
-    // I hate this, but will let it be for now
-    if (flags & P_FLAG_USERDEF) {
-        delete((double*)engine_val);
-    }
-
-    if (PARAM_DEBUG) printf("~Param: freeing \"%s\".\n", name.c_str());
+  if (PARAM_DEBUG) printf("~Param: freeing \"%s\".\n", name.c_str());
 }
 
 
 /* Returns nonzero if the string is valid parameter name */
-bool Param::is_valid_param_string( const char * string ) {
+bool
+Param::is_valid_param_string( const char * string )
+{
 
-    if (string == NULL)
-        return false;
+  if (string == NULL)
+    return false;
 
-    /* This ensures the first character is non numeric */
-    if ( ((*string) >= 48) && ((*string) <= 57))
-        return false;
+  /* This ensures the first character is non numeric */
+  if ( ((*string) >= 48) && ((*string) <= 57))
+    return false;
 
-    /* These probably should never happen */
-    if (*string == '.')
-        return false;
+  /* These probably should never happen */
+  if (*string == '.')
+    return false;
 
-    if (*string == '+')
-        return false;
+  if (*string == '+')
+    return false;
 
-    if (*string == '-')
-        return false;
+  if (*string == '-')
+    return false;
 
-    /* Could also add checks for other symbols. May do later */
+  /* Could also add checks for other symbols. May do later */
 
-    return true;
-
+  return true;
 }
 
 
 
 /* Loads a float parameter into the builtin database */
-Param * Param::new_param_float(const char * name, short int flags, void * engine_val, void * matrix,
-                               float upper_bound, float lower_bound, float init_val) {
+Param *
+Param::new_param_float (
+const char  * name,
+short int   flags,
+void        * engine_val,
+void        * matrix,
+float       upper_bound,
+float       lower_bound,
+float       init_val
+)
+{
+  Param   * param;
+  CValue  iv, ub, lb;
+  assert(engine_val);
 
-    Param * param;
-    CValue iv, ub, lb;
-    assert(engine_val);
+  iv.float_val = init_val;
+  ub.float_val = upper_bound;
+  lb.float_val = lower_bound;
 
-    iv.float_val = init_val;
-    ub.float_val = upper_bound;
-    lb.float_val = lower_bound;
-
-    if ((param = new Param(name, P_TYPE_DOUBLE, flags, engine_val, matrix,iv, ub, lb)) == NULL)
-        return NULL;
+  if ((param = new Param(name, P_TYPE_DOUBLE, flags, engine_val, matrix,iv, ub, lb)) == NULL)
+    return NULL;
 
 
-    /* Finished, return success */
-    return param;
+  /* Finished, return success */
+  return param;
 }
 
 /* Creates a new parameter of type int */
-Param * Param::new_param_int(const char * name, short int flags, void * engine_val,	
-                             int upper_bound, int lower_bound, int init_val) {
+Param *
+Param::new_param_int (
+const char  * name,
+short int   flags,
+void        * engine_val,
+int         upper_bound,
+int         lower_bound,
+int         init_val
+)
+{
+  Param   * param;
+  CValue  iv, ub, lb;
+  assert(engine_val);
 
-    Param * param;
-    CValue iv, ub, lb;
-    assert(engine_val);
+  iv.int_val = init_val;
+  ub.int_val = upper_bound;
+  lb.int_val = lower_bound;
 
-    iv.int_val = init_val;
-    ub.int_val = upper_bound;
-    lb.int_val = lower_bound;
-
-    if ((param = new Param(name, P_TYPE_INT, flags, engine_val, NULL, iv, ub, lb)) == NULL)
-        return NULL;
+  if ((param = new Param(name, P_TYPE_INT, flags, engine_val, NULL, iv, ub, lb)) == NULL)
+    return NULL;
 
 
-    /* Finished, return success */
-    return param;
+  /* Finished, return success */
+  return param;
 }
 
 /* Creates a new parameter of type bool */
-Param * Param::new_param_bool(const char * name, short int flags, void * engine_val,
-                              bool upper_bound, bool lower_bound, bool init_val) {
+Param *
+Param::new_param_bool (
+const char  * name,
+short int   flags,
+void        * engine_val,
+bool        upper_bound,
+bool        lower_bound,
+bool        init_val
+)
+{
+  Param   * param;
+  CValue  iv, ub, lb;
+  assert(engine_val);
 
-    Param * param;
-    CValue iv, ub, lb;
-    assert(engine_val);
+  iv.bool_val = init_val;
+  ub.bool_val = upper_bound;
+  lb.bool_val = lower_bound;
 
-    iv.bool_val = init_val;
-    ub.bool_val = upper_bound;
-    lb.bool_val = lower_bound;
-
-    if ((param = new Param(name, P_TYPE_BOOL, flags, engine_val, NULL, iv, ub, lb)) == NULL)
-        return NULL;
+  if ((param = new Param(name, P_TYPE_BOOL, flags, engine_val, NULL, iv, ub, lb)) == NULL)
+    return NULL;
 
 
-    /* Finished, return success */
-    return param;
+  /* Finished, return success */
+  return param;
 }
 
 /* Creates a new parameter of type string */
-Param * Param::new_param_string(const char * name, short int flags, void * engine_val) {
+Param *
+Param::new_param_string (const char * name, short int flags, void * engine_val)
+{
+  Param   * param;
+  CValue  iv, ub, lb;
+  assert(engine_val);
 
-    Param * param;
-    CValue iv, ub, lb;
-    assert(engine_val);
+  iv.bool_val = 0;
+  ub.bool_val = 0;
+  lb.bool_val = 0;
 
-    iv.bool_val = 0;
-    ub.bool_val = 0;
-    lb.bool_val = 0;
-
-    if ((param = new Param(name, P_TYPE_STRING, flags, engine_val, NULL, iv, ub, lb)) == NULL)
-        return NULL;
+  if ((param = new Param(name, P_TYPE_STRING, flags, engine_val, NULL, iv, ub, lb)) == NULL)
+    return NULL;
 
 
-    /* Finished, return success */
-    return param;
+  /* Finished, return success */
+  return param;
 }
-
-
diff --git a/src/libprojectM/MilkdropPresetFactory/Param.hpp b/src/libprojectM/MilkdropPresetFactory/Param.hpp
index 1f6bcf2..c422819 100644
--- a/src/libprojectM/MilkdropPresetFactory/Param.hpp
+++ b/src/libprojectM/MilkdropPresetFactory/Param.hpp
@@ -25,7 +25,6 @@
  *
  * $Log$
  */
-
 #ifndef _PARAM_H
 #define _PARAM_H
 
@@ -54,6 +53,8 @@
 #include "Common.hpp"
 #include <cmath>
 #include <string>
+
+
 class InitCond;
 class Param;
 class Preset;
@@ -62,90 +63,88 @@
 /* Parameter Type */
 class Param {
 public:
-    std::string name; /* name of the parameter, not necessary but useful neverthless */
-    short int type; /* parameter number type (int, bool, or float) */
-    short int flags; /* read, write, user defined, etc */
-    short int matrix_flag; /* for optimization purposes */
-    void * engine_val; /* pointer to the engine variable */
-    void * matrix; /* per pixel / per point matrix for this variable */
-    CValue default_init_val; /* a default initial condition value */
-    CValue upper_bound; /* this parameter's upper bound */
-    CValue lower_bound; /* this parameter's lower bound */
+  std::string name; /* name of the parameter, not necessary but useful neverthless */
+  short int type; /* parameter number type (int, bool, or float) */
+  short int flags; /* read, write, user defined, etc */
+  short int matrix_flag; /* for optimization purposes */
+  void * engine_val; /* pointer to the engine variable */
+  void * matrix; /* per pixel / per point matrix for this variable */
+  CValue default_init_val; /* a default initial condition value */
+  CValue upper_bound; /* this parameter's upper bound */
+  CValue lower_bound; /* this parameter's lower bound */
 
-    /// Create a new parameter
-    Param(std::string name, short int type, short int flags,
-           void * eqn_val, void *matrix,
-           CValue default_init_val, CValue upper_bound,
-           CValue lower_bound);
+  /// Create a new parameter
+  Param (std::string name, short int type, short int flags,
+         void * eqn_val, void *matrix,
+         CValue default_init_val, CValue upper_bound,
+         CValue lower_bound);
 
-    ~Param();
+  ~Param();
 
-    /// Create a user defined floating point parameter
-    Param( std::string name );
+  /// Create a user defined floating point parameter
+  Param( std::string name );
 
-    static bool is_valid_param_string( const char *string );
-    void set_param( float val );
+  static bool is_valid_param_string( const char *string );
+  void set_param( float val );
 
-    static Param *new_param_float( const char *name, short int flags, void *engine_val,
-                             void *matrix, float upper_bound,
-                             float lower_bound,
-                             float init_val );
-    static Param *new_param_double(const char *name, short int flags, void *engine_val,
-                             void *matrix, double upper_bound,
-                             double lower_bound,
-                             double init_val );
-    static Param * new_param_int(const char * name, short int flags, void * engine_val,
-                           int upper_bound, int lower_bound, int init_val );
-    static Param * new_param_bool(const char * name, short int flags, void * engine_val,
-                            bool upper_bound, bool lower_bound, bool init_val );
-    static Param * new_param_string(const char * name, short int flags, void * engine_val);
-
+  static Param *new_param_float( const char *name, short int flags, void *engine_val,
+                                 void *matrix, float upper_bound,
+                                 float lower_bound,
+                                 float init_val );
+  static Param *new_param_double(const char *name, short int flags, void *engine_val,
+                                 void *matrix, double upper_bound,
+                                 double lower_bound,
+                                 double init_val );
+  static Param * new_param_int(const char * name, short int flags, void * engine_val,
+                               int upper_bound, int lower_bound, int init_val );
+  static Param * new_param_bool(const char * name, short int flags, void * engine_val,
+                                bool upper_bound, bool lower_bound, bool init_val );
+  static Param * new_param_string(const char * name, short int flags, void * engine_val);
 };
 
 
 /* Sets the parameter engine value to value val.
-	clipping occurs if necessary */
-inline void Param::set_param( float val) {
+  clipping occurs if necessary */
+inline void
+Param::set_param( float val)
+{
+  switch (type) {
+  case P_TYPE_BOOL:
+    if (val < 0)
+      *((bool*)engine_val) = false;
+    else if (val > 0)
+      *((bool*)engine_val) = true;
+    else
+      *((bool*)engine_val) = false;
+    break;
 
-    switch (type) {
+  case P_TYPE_INT:
+    /* Make sure value is an integer */
+    val = floor(val);
+    if (val < lower_bound.int_val)
+      *((int*)engine_val) = lower_bound.int_val;
+    else if (val > upper_bound.int_val)
+      *((int*)engine_val) = upper_bound.int_val;
+    else
+      *((int*)engine_val) = (int)val;
+    break;
 
-    case P_TYPE_BOOL:
-        if (val < 0)
-            *((bool*)engine_val) = false;
-        else if (val > 0)
-            *((bool*)engine_val) = true;
-        else
-            *((bool*)engine_val) = false;
-        break;
-    case P_TYPE_INT:
-        /* Make sure value is an integer */
-        val = floor(val);
-        if (val < lower_bound.int_val)
-            *((int*)engine_val) = lower_bound.int_val;
-        else if (val > upper_bound.int_val)
-            *((int*)engine_val) = upper_bound.int_val;
-        else
-            *((int*)engine_val) = (int)val;
-        break;
-    case P_TYPE_DOUBLE:
-        /* Make sure value is an integer */
+  case P_TYPE_DOUBLE:
+    /* Make sure value is an integer */
+    if (val < lower_bound.float_val)
+      *((float*)engine_val) = lower_bound.float_val;
+    else if (val > upper_bound.float_val)
+      *((float*)engine_val) = upper_bound.float_val;
+    else
+      *((float*)engine_val) = val;
+    break;
 
+  default:
+    //abort();
+    break;
+  }
 
-        if (val < lower_bound.float_val)
-            *((float*)engine_val) = lower_bound.float_val;
-        else if (val > upper_bound.float_val)
-            *((float*)engine_val) = upper_bound.float_val;
-        else
-            *((float*)engine_val) = val;
-        break;
-    default:
-	//abort();
-        break;
-
-    }
-
-    return;
+  return;
 }
 
 #endif /** !_PARAM_TYPES_H */
-
diff --git a/src/libprojectM/MilkdropPresetFactory/ParamUtils.hpp b/src/libprojectM/MilkdropPresetFactory/ParamUtils.hpp
index dd94ff7..2a574e4 100644
--- a/src/libprojectM/MilkdropPresetFactory/ParamUtils.hpp
+++ b/src/libprojectM/MilkdropPresetFactory/ParamUtils.hpp
@@ -10,34 +10,33 @@
 #include <cassert>
 #include "BuiltinParams.hpp"
 
+
 class ParamUtils
 {
 public:
-  static bool insert(Param * param, std::map<std::string,Param*> * paramTree)
+  static bool
+  insert(Param * param, std::map<std::string,Param*> * paramTree)
   {
-
     assert(param);
     assert(paramTree);
 
-    
-    return ((paramTree->insert(std::make_pair(param->name,param))).second);
 
+    return ((paramTree->insert(std::make_pair(param->name,param))).second);
   }
 
   static const int AUTO_CREATE = 1;
   static const int NO_CREATE = 0;
 
-  template <int FLAGS>
-  static Param * find(std::string name, std::map<std::string,Param*> * paramTree)
+  template <int FLAGS> static Param *
+  find(std::string name, std::map<std::string,Param*> * paramTree)
   {
-
     assert(paramTree);
 
     Param * param;
 
     /* First look in the suggested database */
     std::map<std::string,Param*>::iterator pos = paramTree->find(name);
-		
+
 
     if ((FLAGS == AUTO_CREATE) && ((pos == paramTree->end())))
     {
@@ -50,26 +49,24 @@
         return NULL;
 
       /* Finally, insert the new parameter into this preset's parameter tree */
-      std::pair<std::map<std::string,Param*>::iterator, bool>  insertRetPair = 
-		paramTree->insert(std::make_pair(param->name, param));
+      std::pair<std::map<std::string,Param*>::iterator, bool>  insertRetPair =
+          paramTree->insert(std::make_pair(param->name, param));
 
       assert(insertRetPair.second);
-	
+
     } else if (pos != paramTree->end())
-	param = pos->second;
+      param = pos->second;
     else
-	param = NULL;	
+      param = NULL;
 
     /* Return the found (or created) parameter. Note that this could be null */
     return param;
-
-
   }
 
 
-  static Param * find(const std::string & name, BuiltinParams * builtinParams, std::map<std::string,Param*> * insertionTree)
+  static Param *
+  find(const std::string & name, BuiltinParams * builtinParams, std::map<std::string,Param*> * insertionTree)
   {
-
     Param * param;
 
     // Check first db
@@ -78,7 +75,6 @@
 
     // Check second db, create if necessary
     return find<AUTO_CREATE>(name, insertionTree);
-
   }
 
 };
diff --git a/src/libprojectM/MilkdropPresetFactory/Parser.cpp b/src/libprojectM/MilkdropPresetFactory/Parser.cpp
index 16c3c82..8a71f6d 100644
--- a/src/libprojectM/MilkdropPresetFactory/Parser.cpp
+++ b/src/libprojectM/MilkdropPresetFactory/Parser.cpp
@@ -19,7 +19,6 @@
  *
  */
 /* parser.c */
-
 #include <stdio.h>
 #include <string>
 #include <cstring>
@@ -47,29 +46,31 @@
 #include <sstream>
 #include "BuiltinFuncs.hpp"
 
+
 /* Grabs the next token from the file. The second argument points
    to the raw string */
 
-line_mode_t Parser::line_mode;
-CustomWave *Parser::current_wave;
-CustomShape *Parser::current_shape;
-int Parser::string_line_buffer_index;
-char Parser::string_line_buffer[STRING_LINE_SIZE];
-unsigned int Parser::line_count;
-int Parser::per_frame_eqn_count;
-int Parser::per_frame_init_eqn_count;
-int Parser::last_custom_wave_id;
-int Parser::last_custom_shape_id;
-char Parser::last_eqn_type[MAX_TOKEN_SIZE];
-int Parser::last_token_size;
+line_mode_t   Parser::line_mode;
+CustomWave    *Parser::current_wave;
+CustomShape   *Parser::current_shape;
+int           Parser::string_line_buffer_index;
+char          Parser::string_line_buffer[STRING_LINE_SIZE];
+unsigned int  Parser::line_count;
+int           Parser::per_frame_eqn_count;
+int           Parser::per_frame_init_eqn_count;
+int           Parser::last_custom_wave_id;
+int           Parser::last_custom_shape_id;
+char          Parser::last_eqn_type[MAX_TOKEN_SIZE];
+int           Parser::last_token_size;
 
 std::string Parser::lastLinePrefix("");
 
 bool Parser::tokenWrapAroundEnabled(false);
 
-token_t Parser::parseToken(std::istream &  fs, char * string)
-{
 
+token_t
+Parser::parseToken(std::istream &  fs, char * string)
+{
   int c;
   int i;
 
@@ -128,7 +129,6 @@
             return tEOL;
           }
         }
-
       }
 
       /* Otherwise, just a regular division operator */
@@ -166,43 +166,44 @@
 
       if (tokenWrapAroundEnabled)
       {
-	std::ostringstream buffer;
+        std::ostringstream buffer;
 
         if (PARSE_DEBUG) std::cerr << "token wrap! line " << line_count << std::endl;
         while (c != '=')
         {
-
           if (!fs || fs.eof())
           {
             line_count = 1;
             line_mode = UNSET_LINE_MODE;
-        if (PARSE_DEBUG)     std::cerr << "token wrap: end of file" << std::endl;
+            if (PARSE_DEBUG)     std::cerr << "token wrap: end of file" << std::endl;
             return tEOF;
           }
-
           else {
-	    c = fs.get();
-	    if ( c != '=')
-            	buffer << (char)c;
-	}
-
+            c = fs.get();
+            if ( c != '=')
+            buffer << (char)c;
+          }
         }
-        if (PARSE_DEBUG) std::cerr << "parseToken: parsed away equal sign, line prefix is \""  << buffer.str()
-		<< "\"" << std::endl;
+
+        if (PARSE_DEBUG)
+          std::cerr << "parseToken: parsed away equal sign, line prefix is \""
+                    << buffer.str()
+                    << "\""
+                    << std::endl;
         --i;
 
-	if (!wrapsToNextLine(buffer.str())) {
-		tokenWrapAroundEnabled = false;
-		int buf_size = (int)buffer.str().length();
-		// <= to also remove equal sign parsing from stream
-		for (int k = 0; k <= buf_size; k++) {
-			if (fs)
-				fs.unget();
-			else
-				abort();
-		}
-		return tEOL;
-	}
+        if (!wrapsToNextLine(buffer.str())) {
+          tokenWrapAroundEnabled = false;
+          int buf_size = (int)buffer.str().length();
+          // <= to also remove equal sign parsing from stream
+          for (int k = 0; k <= buf_size; k++) {
+            if (fs)
+              fs.unget();
+            else
+              abort();
+          }
+          return tEOL;
+        }
 
 
         break;
@@ -228,29 +229,28 @@
     case '\r':
       i--;
       break;
-    default:
-    	if (c == EOF)
-    		std::cerr << "shouldn't happen: " << c << "(LINE " << line_count << ")" << std::endl;
-        string[i] = tolower(c);
-        //string[i+1] = 0;
-        //std::cerr << "string is \n\"" << string << "\"" << std::endl;
-      }
+      default:
+      if (c == EOF)
+        std::cerr << "shouldn't happen: " << c << "(LINE " << line_count << ")" << std::endl;
+      string[i] = tolower(c);
+      //string[i+1] = 0;
+      //std::cerr << "string is \n\"" << string << "\"" << std::endl;
+    }
 
 
   }
 
   /* String reached maximum length, return special token error */
   return tStringTooLong;
-
 }
 
 /* Parse input in the form of "exp, exp, exp, ...)"
    Returns a general expression list */
 
-GenExpr **Parser::parse_prefix_args(std::istream &  fs, int num_args, MilkdropPreset * preset)
+GenExpr **
+Parser::parse_prefix_args(std::istream &  fs, int num_args, MilkdropPreset * preset)
 {
-
-  int i, j;
+  int     i, j;
   GenExpr ** expr_list; /* List of arguments to function */
   GenExpr * gen_expr;
 
@@ -287,7 +287,8 @@
 }
 
 /* Parses a comment at the top of the file. Stops when left bracket is found */
-int Parser::parse_top_comment(std::istream &  fs)
+int
+Parser::parse_top_comment(std::istream &  fs)
 {
 
   char string[MAX_TOKEN_SIZE];
@@ -306,9 +307,9 @@
 
 /* Right Bracket is parsed by this function.
    puts a new string into name */
-int Parser::parse_preset_name(std::istream &  fs, char * name)
+int
+Parser::parse_preset_name(std::istream &  fs, char * name)
 {
-
   token_t token;
 
   if (name == NULL)
@@ -322,21 +323,18 @@
 
 
 /* Parses per pixel equations */
-int Parser::parse_per_pixel_eqn(std::istream &  fs, MilkdropPreset * preset, char * init_string)
+int
+Parser::parse_per_pixel_eqn(std::istream &  fs, MilkdropPreset * preset, char * init_string)
 {
-
-
   char string[MAX_TOKEN_SIZE];
   GenExpr * gen_expr;
 
-
   if (init_string != 0)
   {
     strncpy(string, init_string, strlen(init_string));
   }
   else
   {
-
     if (parseToken(fs, string) != tEq)
     { /* parse per pixel operator name */
       return PROJECTM_PARSE_ERROR;
@@ -364,12 +362,13 @@
 }
 
 /* Parses an equation line, this function is way too big, should add some helper functions */
-int Parser::parse_line(std::istream &  fs, MilkdropPreset * preset)
+int
+Parser::parse_line(std::istream &  fs, MilkdropPreset * preset)
 {
 
-  char eqn_string[MAX_TOKEN_SIZE];
-  token_t token;
-  InitCond * init_cond;
+  char        eqn_string[MAX_TOKEN_SIZE];
+  token_t     token;
+  InitCond    * init_cond;
   PerFrameEqn * per_frame_eqn;
 
   /* Clear the string line buffer */
@@ -379,7 +378,7 @@
   tokenWrapAroundEnabled = false;
 
   token = parseToken( fs, eqn_string );
-  switch (token )
+  switch (token)
   {
 
     /* Invalid Cases */
@@ -397,7 +396,7 @@
   case tDiv:
 
     if (PARSE_DEBUG) std::cerr << "parse_line: invalid token found at start of line (LINE "
-      << line_count << ")" << std::endl;
+    << line_count << ")" << std::endl;
 
     /* Invalid token found, return a parse error */
     return PROJECTM_PARSE_ERROR;
@@ -425,35 +424,36 @@
     if (!fs)
       return PROJECTM_PARSE_ERROR;
 
-//	char z = fs.get();
-	char tmpChar;
-	if ((tmpChar = fs.get()) == '\n') {
-		tokenWrapAroundEnabled = false;
-		return PROJECTM_PARSE_ERROR;
-	} else if (tmpChar == '\r') {
-		tokenWrapAroundEnabled = false;
-		return PROJECTM_PARSE_ERROR;
-	} else
-		fs.unget();
+    //  char z = fs.get();
+    char tmpChar;
+
+    if ((tmpChar = fs.get()) == '\n') {
+      tokenWrapAroundEnabled = false;
+      return PROJECTM_PARSE_ERROR;
+    } else if (tmpChar == '\r') {
+      tokenWrapAroundEnabled = false;
+      return PROJECTM_PARSE_ERROR;
+    } else
+      fs.unget();
 
 
 
-	/* CASE: WARP CODE */
-	if (!strncmp(eqn_string, WARP_STRING, WARP_STRING_LENGTH))
-	{
-		//std::cout << "parsing warp string block\n" << std::endl;
-		parse_string_block(fs, &preset->presetOutputs().warpShader.programSource);
-		return PROJECTM_SUCCESS;
-	}
+    /* CASE: WARP CODE */
+    if (!strncmp(eqn_string, WARP_STRING, WARP_STRING_LENGTH))
+    {
+      //std::cout << "parsing warp string block\n" << std::endl;
+      parse_string_block(fs, &preset->presetOutputs().warpShader.programSource);
+      return PROJECTM_SUCCESS;
+    }
 
 
-	/* CASE: COMPOSITE CODE */
-	if (!strncmp(eqn_string, COMPOSITE_STRING, COMPOSITE_STRING_LENGTH))
-	{
-		//std::cout << "parsing composite string block\n" << std::endl;
-		parse_string_block(fs, &preset->presetOutputs().compositeShader.programSource);
-		return PROJECTM_SUCCESS;
-	}
+    /* CASE: COMPOSITE CODE */
+    if (!strncmp(eqn_string, COMPOSITE_STRING, COMPOSITE_STRING_LENGTH))
+    {
+      //std::cout << "parsing composite string block\n" << std::endl;
+      parse_string_block(fs, &preset->presetOutputs().compositeShader.programSource);
+      return PROJECTM_SUCCESS;
+    }
 
     /* CASE: PER FRAME INIT EQUATION */
     if (!strncmp(eqn_string, PER_FRAME_INIT_STRING, PER_FRAME_INIT_STRING_LENGTH))
@@ -479,7 +479,7 @@
     /* Per frame equation case */
     if (!strncmp(eqn_string, PER_FRAME_STRING, PER_FRAME_STRING_LENGTH))
     {
-	tokenWrapAroundEnabled = true;
+      tokenWrapAroundEnabled = true;
       /* Sometimes per frame equations are implicitly defined without the
       per_frame_ prefix. This informs the parser that one could follow */
       line_mode = PER_FRAME_LINE_MODE;
@@ -504,28 +504,25 @@
     /* Wavecode initial condition case */
     if (!strncmp(eqn_string, WAVECODE_STRING, WAVECODE_STRING_LENGTH))
     {
-
       line_mode = CUSTOM_WAVE_WAVECODE_LINE_MODE;
 
       return parse_wavecode(eqn_string, fs, preset);
     }
 
     /* Custom Wave Prefix */
-    if ((!strncmp(eqn_string, WAVE_STRING, WAVE_STRING_LENGTH)) &&
-        ((eqn_string[5] >= 48) && (eqn_string[5] <= 57)))
+    if (    (!strncmp(eqn_string, WAVE_STRING, WAVE_STRING_LENGTH))
+        &&  ((eqn_string[5] >= 48)  &&  (eqn_string[5] <= 57)))
     {
-	tokenWrapAroundEnabled = true;
+      tokenWrapAroundEnabled = true;
       //    if (PARSE_DEBUG) printf("parse_line wave prefix found: \"%s\"\n", eqn_string);
 
       return parse_wave(eqn_string, fs, preset);
-
     }
 
 
     /* Shapecode initial condition case */
     if (!strncmp(eqn_string, SHAPECODE_STRING, SHAPECODE_STRING_LENGTH))
     {
-
       line_mode = CUSTOM_SHAPE_SHAPECODE_LINE_MODE;
 
       if (PARSE_DEBUG) printf("parse_line: shapecode prefix found: \"%s\"\n", eqn_string);
@@ -534,13 +531,12 @@
     }
 
     /* Custom Shape Prefix */
-    if ((!strncmp(eqn_string, SHAPE_STRING, SHAPE_STRING_LENGTH)) &&
-        ((eqn_string[6] >= 48) && (eqn_string[6] <= 57)))
+    if (    (!strncmp(eqn_string, SHAPE_STRING, SHAPE_STRING_LENGTH))
+        &&  ((eqn_string[6] >= 48)  &&  (eqn_string[6] <= 57)))
     {
       tokenWrapAroundEnabled = true;
       if (PARSE_DEBUG) printf("parse_line shape prefix found: \"%s\"\n", eqn_string);
       return parse_shape(eqn_string, fs, preset);
-
     }
 
     /* Per pixel equation case */
@@ -563,20 +559,20 @@
 
     /* Sometimes equations are written implicitly in milkdrop files, in the form
 
-    per_frame_1 = p1 = eqn1; p2 = eqn2; p3 = eqn3;..;
+       per_frame_1 = p1 = eqn1; p2 = eqn2; p3 = eqn3;..;
 
-    which is analagous to:
+       which is analagous to:
 
-    per_frame_1 = p1 = eqn1; per_frame_2 = p2 = eqn2; per_frame_3 = p3 = eqn3; ...;
+       per_frame_1 = p1 = eqn1; per_frame_2 = p2 = eqn2; per_frame_3 = p3 = eqn3; ...;
 
-    The following line mode hack allows such implicit declaration of the
-    prefix that specifies the equation type. An alternative method
-    may be to associate each equation line as list of equations separated
-    by semicolons (and a new line ends the list). Instead, however, a global
-    variable called "line_mode" specifies the last type of equation found,
-    and bases any implicitly typed input on this fact
+       The following line mode hack allows such implicit declaration of the
+       prefix that specifies the equation type. An alternative method
+       may be to associate each equation line as list of equations separated
+       by semicolons (and a new line ends the list). Instead, however, a global
+       variable called "line_mode" specifies the last type of equation found,
+       and bases any implicitly typed input on this fact
 
-    Note added by Carmelo Piccione (carmelo.piccione@gmail.com) 10/19/03
+       Note added by Carmelo Piccione (carmelo.piccione@gmail.com) 10/19/03
     */
 
     /* Per frame line mode previously, try to parse the equation implicitly */
@@ -594,7 +590,6 @@
 
 
       return PROJECTM_SUCCESS;
-
     }
     else if (line_mode == PER_FRAME_INIT_LINE_MODE)
     {
@@ -618,8 +613,6 @@
       tokenWrapAroundEnabled = true;
       if (PARSE_DEBUG) printf("parse_line: implicit per pixel eqn (LINE %d)\n", line_count);
       return parse_per_pixel_eqn(fs, preset, eqn_string);
-
-
     }
     else if (line_mode == CUSTOM_WAVE_PER_POINT_LINE_MODE)
     {
@@ -644,7 +637,6 @@
       if ((custom_wave = MilkdropPreset::find_custom_object(last_custom_wave_id, preset->customWaves)) == NULL)
         return PROJECTM_FAILURE;
       return parse_wave_per_frame_eqn(fs, custom_wave, preset);
-
     }
     else if (line_mode == CUSTOM_WAVE_WAVECODE_LINE_MODE)
     {
@@ -667,7 +659,6 @@
         return PROJECTM_FAILURE;
 
       return parse_shape_per_frame_eqn(fs, custom_shape, preset);
-
     }
     else if (line_mode == CUSTOM_SHAPE_PER_FRAME_INIT_LINE_MODE)
     {
@@ -679,7 +670,6 @@
         return PROJECTM_FAILURE;
 
       return parse_shape_per_frame_init_eqn(fs, custom_shape, preset);
-
     }
 
     if (PARSE_DEBUG) printf("parse_line: found initial condition: name = \"%s\" (LINE %d)\n", eqn_string, line_count);
@@ -713,16 +703,16 @@
 
 
 /* Parses a general expression, this function is the meat of the parser */
-GenExpr * Parser::parse_gen_expr ( std::istream &  fs, TreeExpr * tree_expr, MilkdropPreset * preset)
+GenExpr *
+Parser::parse_gen_expr ( std::istream &  fs, TreeExpr * tree_expr, MilkdropPreset * preset)
 {
-
-  int i;
-  char string[MAX_TOKEN_SIZE];
+  int     i;
+  char    string[MAX_TOKEN_SIZE];
   token_t token;
   GenExpr * gen_expr;
-  float val;
-  Param * param = NULL;
-  Func * func;
+  float   val;
+  Param   * param = NULL;
+  Func    * func;
   GenExpr ** expr_list;
 
   switch (token = parseToken(fs,string))
@@ -736,7 +726,9 @@
       if (PARSE_DEBUG)
       {
         std::cerr << "parse_gen_expr: found prefix function (name = \""
-        << func->getName() << "\") (LINE " << line_count << ")" << std::endl;
+                  << func->getName()
+                  << "\") (LINE " << line_count << ")"
+                  << std::endl;
       }
 
       /* Parse the functions arguments */
@@ -745,7 +737,8 @@
         if (PARSE_DEBUG)
         {
           std::cerr << "parse_prefix_args: failed to generate an expresion list! (LINE "
-          << line_count << ")" << std::endl;
+                    << line_count << ")"
+                    << std::endl;
         }
         if ( tree_expr != NULL )
         {
@@ -757,8 +750,8 @@
       /* Convert function to expression */
       if ((gen_expr = GenExpr::prefun_to_expr((float (*)(void *))func->func_ptr, expr_list, func->getNumArgs())) == NULL)
       {
-        if (PARSE_DEBUG) printf("parse_prefix_args: failed to convert prefix function to general expression (LINE %d) \n",
-                                  line_count);
+        if (PARSE_DEBUG)
+          printf("parse_prefix_args: failed to convert prefix function to general expression (LINE %d) \n", line_count);
         if (tree_expr)
           delete tree_expr;
         for (i = 0; i < func->getNumArgs();i++)
@@ -781,7 +774,7 @@
 
 
     /* Case 2: (Left Parentice), a string coupled with a left parentice. Either an error or implicit
-       multiplication operator. For now treat it as an error */
+    multiplication operator. For now treat it as an error */
     if (*string != 0)
     {
       std::cerr << "token prefix is " << *string << std::endl;
@@ -792,13 +785,13 @@
     }
 
     /* CASE 3 (Left Parentice): the following is enclosed parentices to change order
-       of operations. So we create a new expression tree */
+    of operations. So we create a new expression tree */
 
     if ((gen_expr = parse_gen_expr(fs, NULL, preset)) == NULL)
     {
       if (PARSE_DEBUG) printf("parse_gen_expr:  found left parentice, but failed to create new expression tree \n");
       if (tree_expr)
-      delete tree_expr;
+        delete tree_expr;
       return NULL;
     }
 
@@ -810,7 +803,6 @@
   case tPlus:
     if (*string == 0)
     {
-
       if (PARSE_DEBUG) printf("parse_gen_expr: plus used as prefix (LINE %d)\n", line_count);
 
       /* Treat prefix plus as implict 0 preceding operator */
@@ -823,7 +815,6 @@
   case tMinus:
     if (*string == 0)
     {
-
       /* Use the negative infix operator, but first add an implicit zero to the operator tree */
       gen_expr = GenExpr::const_to_expr(0);
       //return parse_gen_expr(fs, insert_gen_expr(gen_expr, &tree_expr), preset);
@@ -838,7 +829,7 @@
   case tComma:
 
     /* CASE 1 (terminal): string is empty, but not null. Not sure if this will actually happen
-       any more. */
+    any more. */
     if (*string == 0)
     {
       if (PARSE_DEBUG) printf("parse_gen_expr: empty string coupled with terminal (LINE %d) \n", line_count);
@@ -861,14 +852,13 @@
     {
       if ((gen_expr = GenExpr::const_to_expr(val)) == NULL)
       {
-        if (tree_expr)
-          delete tree_expr;
-        return NULL;
+      if (tree_expr)
+        delete tree_expr;
+      return NULL;
       }
 
       /* Parse the rest of the line */
       return parse_infix_op(fs, token, insert_gen_expr(gen_expr, &tree_expr), preset);
-
     }
 
 
@@ -881,7 +871,7 @@
           if ((param = ParamUtils::find<ParamUtils::AUTO_CREATE>(std::string(string), &current_shape->param_tree)) == NULL)
           {
             if (tree_expr)
-              delete tree_expr;
+            delete tree_expr;
             return NULL;
           }
       }
@@ -889,7 +879,8 @@
       if (PARSE_DEBUG)
       {
         std::cerr << "parse_gen_expr: custom shape parameter (name = "
-        << param->name << ")" << std::endl;
+                  << param->name << ")"
+                  << std::endl;
       }
 
 
@@ -915,7 +906,7 @@
           if ((param = ParamUtils::find<ParamUtils::AUTO_CREATE>(std::string(string), &current_wave->param_tree)) == NULL)
           {
             if (tree_expr)
-              delete tree_expr;
+            delete tree_expr;
             return NULL;
           }
       }
@@ -924,7 +915,6 @@
       if (PARSE_DEBUG)
       {
         std::cerr << "parse_gen_expr: custom wave parameter (name = " <<  param->name << ")" << std::endl;
-
       }
 
       /* Convert parameter to an expression */
@@ -938,13 +928,11 @@
 
       /* Parse the rest of the line */
       return parse_infix_op(fs, token, insert_gen_expr(gen_expr, &tree_expr), preset);
-
     }
 
     /* CASE 6: regular parameter. Will be created if necessary and the string has no invalid characters */
     if ((param = ParamUtils::find(string, &preset->builtinParams, &preset->user_param_tree)) != NULL)
     {
-
       if (PARSE_DEBUG)
       {
         std::cerr << "parse_gen_expr: parameter (name = \"" << param->name << "\")..." << std::endl;
@@ -961,14 +949,12 @@
 
       /* Parse the rest of the line */
       return parse_infix_op(fs, token, insert_gen_expr(gen_expr, &tree_expr), preset);
-
     }
 
     /* CASE 7: Bad string, give up */
     if (PARSE_DEBUG)
     {
       printf( "parse_gen_expr: syntax error [string = \"%s\"] (LINE %d)\n", string, line_count);
-
     }
     if (tree_expr)
       delete tree_expr;
@@ -981,9 +967,9 @@
 /* Inserts expressions into tree according to operator precedence.
    If root is null, a new tree is created, with infix_op as only element */
 
-TreeExpr * Parser::insert_infix_op(InfixOp * infix_op, TreeExpr **root)
+TreeExpr *
+Parser::insert_infix_op(InfixOp * infix_op, TreeExpr **root)
 {
-
   TreeExpr * new_root;
 
   /* Sanity check */
@@ -1027,13 +1013,12 @@
 
   insert_infix_rec(infix_op, *root);
   return *root;
-
 }
 
 
-TreeExpr * Parser::insert_gen_expr(GenExpr * gen_expr, TreeExpr ** root)
+TreeExpr *
+Parser::insert_gen_expr(GenExpr * gen_expr, TreeExpr ** root)
 {
-
   TreeExpr * new_root;
 
   /* If someone foolishly passes a null
@@ -1063,9 +1048,9 @@
 }
 
 /* A recursive helper function to insert general expression elements into the operator tree */
-int Parser::insert_gen_rec(GenExpr * gen_expr, TreeExpr * root)
+int
+Parser::insert_gen_rec(GenExpr * gen_expr, TreeExpr * root)
 {
-
   /* Trivial Case: root is null */
 
   if (root == NULL)
@@ -1110,9 +1095,9 @@
 
 
 /* A recursive helper function to insert infix arguments by operator precedence */
-int Parser::insert_infix_rec(InfixOp * infix_op, TreeExpr * root)
+int
+Parser::insert_infix_rec(InfixOp * infix_op, TreeExpr * root)
 {
-
   /* Shouldn't happen, implies a parse error */
 
   if (root == NULL)
@@ -1160,13 +1145,12 @@
 
   root->right = new TreeExpr(infix_op, NULL, root->right, NULL);
   return PROJECTM_SUCCESS;
-
 }
 
 /* Parses an infix operator */
-GenExpr * Parser::parse_infix_op(std::istream &  fs, token_t token, TreeExpr * tree_expr, MilkdropPreset * preset)
+GenExpr *
+Parser::parse_infix_op(std::istream &  fs, token_t token, TreeExpr * tree_expr, MilkdropPreset * preset)
 {
-
   GenExpr * gen_expr;
 
   switch (token)
@@ -1219,17 +1203,16 @@
 
   /* Will never happen */
   return NULL;
-
 }
 
 /* Parses an integer, checks for +/- prefix */
-int Parser::parse_int(std::istream &  fs, int * int_ptr)
+int
+Parser::parse_int(std::istream &  fs, int * int_ptr)
 {
-
-  char string[MAX_TOKEN_SIZE];
+  char    string[MAX_TOKEN_SIZE];
   token_t token;
-  int sign;
-  char * end_ptr = (char*)" ";
+  int     sign;
+  char    * end_ptr = (char*)" ";
 
   token = parseToken(fs, string);
 
@@ -1265,12 +1248,12 @@
     return PROJECTM_SUCCESS;
 
   return PROJECTM_PARSE_ERROR;
-
 }
-/* Parses a floating point number */
-int Parser::string_to_float(char * string, float * float_ptr)
-{
 
+/* Parses a floating point number */
+int
+Parser::string_to_float(char * string, float * float_ptr)
+{
   char ** error_ptr;
 
   if (*string == 0)
@@ -1295,13 +1278,13 @@
 }
 
 /* Parses a floating point number */
-int Parser::parse_float(std::istream &  fs, float * float_ptr)
+int
+Parser::parse_float(std::istream &  fs, float * float_ptr)
 {
-
-  char string[MAX_TOKEN_SIZE];
-  char ** error_ptr;
+  char    string[MAX_TOKEN_SIZE];
+  char    ** error_ptr;
   token_t token;
-  int sign;
+  int     sign;
 
   error_ptr =(char**) wipemalloc(sizeof(char**));
 
@@ -1344,17 +1327,16 @@
   free(error_ptr);
   error_ptr = NULL;
   return PROJECTM_PARSE_ERROR;
-
 }
 
 /* Parses a per frame equation. That is, interprets a stream of data as a per frame equation */
-PerFrameEqn * Parser::parse_per_frame_eqn(std::istream &  fs, int index, MilkdropPreset * preset)
+PerFrameEqn *
+Parser::parse_per_frame_eqn(std::istream &  fs, int index, MilkdropPreset * preset)
 {
-
-  char string[MAX_TOKEN_SIZE];
-  Param * param;
+  char        string[MAX_TOKEN_SIZE];
+  Param       * param;
   PerFrameEqn * per_frame_eqn;
-  GenExpr * gen_expr;
+  GenExpr     * gen_expr;
 
 
   if (parseToken(fs, string) != tEq)
@@ -1399,12 +1381,12 @@
 }
 
 /* Parses an 'implicit' per frame equation. That is, interprets a stream of data as a per frame equation without a prefix */
-PerFrameEqn * Parser::parse_implicit_per_frame_eqn(std::istream &  fs, char * param_string, int index, MilkdropPreset * preset)
+PerFrameEqn *
+Parser::parse_implicit_per_frame_eqn(std::istream &  fs, char * param_string, int index, MilkdropPreset * preset)
 {
-
-  Param * param;
+  Param       * param;
   PerFrameEqn * per_frame_eqn;
-  GenExpr * gen_expr;
+  GenExpr     * gen_expr;
 
   if (fs == NULL)
     return NULL;
@@ -1452,12 +1434,12 @@
 }
 
 /* Parses an initial condition */
-InitCond * Parser::parse_init_cond(std::istream &  fs, char * name, MilkdropPreset * preset)
+InitCond *
+Parser::parse_init_cond(std::istream &  fs, char * name, MilkdropPreset * preset)
 {
-
-  Param * param;
-  CValue init_val;
-  InitCond * init_cond;
+  Param     * param;
+  CValue    init_val;
+  InitCond  * init_cond;
 
   if (name == NULL)
     return NULL;
@@ -1479,7 +1461,7 @@
   }
 
   /* At this point, a parameter has been created or was found
-     in the database. */
+  in the database. */
 
   if (PARSE_DEBUG) printf("parsed_init_cond: parsing initial condition value... (LINE %d)\n", line_count);
 
@@ -1494,7 +1476,6 @@
     }
     init_val.bool_val = bool_test;
   }
-
   else if ((param->type == P_TYPE_INT))
   {
     if ((parse_int(fs, (int*)&init_val.int_val)) == PROJECTM_PARSE_ERROR)
@@ -1503,7 +1484,6 @@
       return NULL;
     }
   }
-
   /* float value */
   else if (param->type == P_TYPE_DOUBLE)
   {
@@ -1513,7 +1493,6 @@
       return NULL;
     }
   }
-
   /* Unknown value */
   else
   {
@@ -1533,30 +1512,29 @@
 }
 
 
-void Parser::parse_string_block(std::istream &  fs, std::string * out_string) {
+void
+Parser::parse_string_block(std::istream &  fs, std::string * out_string)
+{
+  char    name[MAX_TOKEN_SIZE];
+  token_t token;
 
+  std::set<char> skipList;
+  skipList.insert('`');
+  readStringUntil(fs, out_string, false, skipList);
 
-	char name[MAX_TOKEN_SIZE];
-	token_t token;
-
-	std::set<char> skipList;
-	skipList.insert('`');
-	readStringUntil(fs, out_string, false, skipList);
-
-	//std::cout << "out_string:\n " << *out_string << "\n" << std::endl;
-
+  //std::cout << "out_string:\n " << *out_string << "\n" << std::endl;
 }
 
-InitCond * Parser::parse_per_frame_init_eqn(std::istream &  fs, MilkdropPreset * preset, std::map<std::string,Param*> * database)
+InitCond *
+Parser::parse_per_frame_init_eqn(std::istream &  fs, MilkdropPreset * preset, std::map<std::string,Param*> * database)
 {
-
-  char name[MAX_TOKEN_SIZE];
-  Param * param = NULL;
-  CValue init_val;
-  InitCond * init_cond;
-  GenExpr * gen_expr;
-  float val;
-  token_t token;
+  char      name[MAX_TOKEN_SIZE];
+  Param     * param = NULL;
+  CValue    init_val;
+  InitCond  * init_cond;
+  GenExpr   * gen_expr;
+  float     val;
+  token_t   token;
 
 
   if (preset == NULL)
@@ -1589,7 +1567,7 @@
   }
 
   /* At this point, a parameter has been created or was found
-     in the database. */
+  in the database. */
 
   if (PARSE_DEBUG) printf("parse_per_frame_init_eqn: parsing right hand side of per frame init equation.. (LINE %d)\n", line_count);
 
@@ -1610,18 +1588,15 @@
   {
     init_val.bool_val = (bool)val;
   }
-
   else if ((param->type == P_TYPE_INT))
   {
     init_val.int_val = (int)val;
   }
-
   /* float value */
   else if (param->type == P_TYPE_DOUBLE)
   {
     init_val.float_val = val;
   }
-
   /* Unknown value */
   else
   {
@@ -1643,133 +1618,130 @@
   return init_cond;
 }
 
-bool Parser::scanForComment(std::istream & fs) {
-
+bool
+Parser::scanForComment(std::istream & fs)
+{
   int c;
+
   c = fs.get();
 
   if (c == '/') {
-	while (true)
-	{
-		if (!fs || fs.eof())
-			return true;
-		else
-			c = fs.get();
-		if (c == EOF)
-			return true;
+    while (true)
+    {
+      if (!fs || fs.eof())
+        return true;
+      else
+        c = fs.get();
+      if (c == EOF)
+        return true;
 
-		if (c == '\n')
-		{
-			return true;
-		}
-	}
+      if (c == '\n')
+      {
+        return true;
+      }
+    }
   } else {
-	fs.unget();
-	return false;
+    fs.unget();
+    return false;
   }
 }
 
-void Parser::readStringUntil(std::istream & fs, std::string * out_buffer, bool wrapAround, const std::set<char> & skipList) {
-
-	int string_line_buffer_index = 0;
-	int c;
-
-	/* Loop until a delimiter is found, or the maximum string size is found */
-	while (true)
-	{
-
-		if (!fs || fs.eof())
-			c = EOF;
-		else
-			c = fs.get();
-
-		/* Now interpret the character */
-		switch (c)
-		{
-			case '/':
-			{
-				bool commentExisted = scanForComment(fs);
-				if (!commentExisted) {
-					out_buffer->push_back(c);
-					break;
-				} else {
-					line_count++;
-					return;
-				}
-			}
-			case '\n':
-				if (!out_buffer->empty() && ((*out_buffer)[out_buffer->length() -1] == '\n'))
-					return;
-
-				line_count++;
-				if (wrapAround)
-				{
-					std::ostringstream buffer;
-
-		//			if (PARSE_DEBUG) std::cerr << "token wrap! line " << line_count << std::endl;
-					while (c != '=')
-					{
-
-						if (!fs || fs.eof())
-						{
-							line_count = 1;
-							line_mode = UNSET_LINE_MODE;
-		//					if (PARSE_DEBUG)     std::cerr << "token wrap: end of file" << std::endl;
-							return;
-						}
-
-						else {
-							c = fs.get();
-							if ( c != '=')
-								buffer << c;
-						}
-
-					}
-
-
-					if (!wrapsToNextLine(buffer.str())) {
-						wrapAround = false;
-						int buf_size = (int)buffer.str().length();
-						// <= to also remove equal sign parsing from stream
-						for (int k = 0; k <= buf_size; k++) {
-							if (fs)
-								fs.unget();
-							else
-								abort();
-						}
-						return;
-					}
-
-					break;
-				} else
-					out_buffer->push_back(c);
-				return;
-			case EOF:
-				line_count = 1;
-				return;
-			default:
-
-				if (out_buffer != NULL)
-				{
-					if (skipList.find(c) == skipList.end())
-						out_buffer->push_back(c);
-
-				}
-		}
-
-	}
-
-
-}
-int Parser::parse_wavecode(char * token, std::istream &  fs, MilkdropPreset * preset)
+void
+Parser::readStringUntil(std::istream & fs, std::string * out_buffer, bool wrapAround, const std::set<char> & skipList)
 {
+  int string_line_buffer_index = 0;
+  int c;
 
-  char * var_string;
-  InitCond * init_cond;
-  CustomWave * custom_wave;
-  int id;
-  CValue init_val;
-  Param * param;
+  /* Loop until a delimiter is found, or the maximum string size is found */
+  while (true)
+  {
+    if (!fs || fs.eof())
+      c = EOF;
+    else
+      c = fs.get();
+
+    /* Now interpret the character */
+    switch (c)
+    {
+    case '/':
+      {
+        bool commentExisted = scanForComment(fs);
+
+        if (!commentExisted) {
+          out_buffer->push_back(c);
+          break;
+        } else {
+          line_count++;
+          return;
+        }
+      }
+    case '\n':
+      if (!out_buffer->empty() && ((*out_buffer)[out_buffer->length() -1] == '\n'))
+        return;
+
+      line_count++;
+      if (wrapAround)
+      {
+        std::ostringstream buffer;
+
+        //      if (PARSE_DEBUG) std::cerr << "token wrap! line " << line_count << std::endl;
+        while (c != '=')
+        {
+          if (!fs || fs.eof())
+          {
+            line_count = 1;
+            line_mode = UNSET_LINE_MODE;
+            //          if (PARSE_DEBUG)     std::cerr << "token wrap: end of file" << std::endl;
+            return;
+          }
+          else {
+            c = fs.get();
+            if ( c != '=')
+              buffer << c;
+          }
+        }
+
+
+        if (!wrapsToNextLine(buffer.str())) {
+          wrapAround = false;
+          int buf_size = (int)buffer.str().length();
+          // <= to also remove equal sign parsing from stream
+          for (int k = 0; k <= buf_size; k++) {
+            if (fs)
+              fs.unget();
+            else
+              abort();
+          }
+          return;
+        }
+
+        break;
+      } else
+        out_buffer->push_back(c);
+      return;
+    case EOF:
+      line_count = 1;
+      return;
+    default:
+
+      if (out_buffer != NULL)
+      {
+        if (skipList.find(c) == skipList.end())
+          out_buffer->push_back(c);
+      }
+    }
+  }
+}
+
+int
+Parser::parse_wavecode(char * token, std::istream &  fs, MilkdropPreset * preset)
+{
+  char        * var_string;
+  InitCond    * init_cond;
+  CustomWave  * custom_wave;
+  int         id;
+  CValue      init_val;
+  Param       * param;
 
   assert(preset);
   assert(fs);
@@ -1789,7 +1761,8 @@
   if ((custom_wave = MilkdropPreset::find_custom_object(id, preset->customWaves)) == NULL)
   {
     std::cerr << "parse_wavecode: failed to load (or create) custom wave (id = "
-    << id << ")!\n" << std::endl;
+              << id << ")!\n"
+              << std::endl;
 
     return PROJECTM_FAILURE;
   }
@@ -1807,9 +1780,9 @@
   if ((param->type == P_TYPE_BOOL))
   {
     int bool_test;
+
     if ((parse_int(fs, &bool_test)) == PROJECTM_PARSE_ERROR)
     {
-
       if (PARSE_DEBUG) printf("parse_wavecode: error parsing integer!\n");
       return PROJECTM_PARSE_ERROR;
     }
@@ -1819,12 +1792,10 @@
   {
     if ((parse_int(fs, (int*)&init_val.int_val)) == PROJECTM_PARSE_ERROR)
     {
-
       if (PARSE_DEBUG) printf("parse_wavecode: error parsing integer!\n");
       return PROJECTM_PARSE_ERROR;
     }
   }
-
   /* float value */
   else if (param->type == P_TYPE_DOUBLE)
   {
@@ -1834,7 +1805,6 @@
       return PROJECTM_PARSE_ERROR;
     }
   }
-
   /* Unknown value */
   else
   {
@@ -1852,9 +1822,9 @@
   }
 
   std::pair<std::map<std::string, InitCond*>::iterator, bool> inserteePair =
-    custom_wave->init_cond_tree.insert(std::make_pair(init_cond->param->name, init_cond));
+      custom_wave->init_cond_tree.insert(std::make_pair(init_cond->param->name, init_cond));
 
- // assert(inserteePair.second);
+  // assert(inserteePair.second);
 
   line_mode = CUSTOM_WAVE_WAVECODE_LINE_MODE;
 
@@ -1862,15 +1832,16 @@
   return PROJECTM_SUCCESS;
 }
 
-int Parser::parse_shapecode(char * token, std::istream &  fs, MilkdropPreset * preset)
+int
+Parser::parse_shapecode(char * token, std::istream &  fs, MilkdropPreset * preset)
 {
 
-  char * var_string;
-  InitCond * init_cond;
+  char        * var_string;
+  InitCond    * init_cond;
   CustomShape * custom_shape;
-  int id;
-  CValue init_val;
-  Param * param;
+  int         id;
+  CValue      init_val;
+  Param       * param;
 
   /* Null argument checks */
   if (preset == NULL)
@@ -1892,7 +1863,7 @@
 
 
   /* Retrieve custom shape information from preset. The 3rd argument
-     if true creates a custom shape if one does not exist */
+  if true creates a custom shape if one does not exist */
 
   if ((custom_shape = MilkdropPreset::find_custom_object(id,  preset->customShapes)) == NULL)
   {
@@ -1903,7 +1874,6 @@
 
   if ((param = ParamUtils::find<ParamUtils::NO_CREATE>(var_string, &custom_shape->text_properties_tree)) != NULL)
   {
-
     std::string text;//[MAX_TOKEN_SIZE];
     //token_t token = parseToken(fs, text);
 
@@ -1912,7 +1882,8 @@
     *((std::string*)param->engine_val) = text;
     if (PARSE_DEBUG)
       std::cerr << "parse_shapecode: found image url, text is \""
-      << text << "\"" << std::endl;
+                << text << "\""
+                << std::endl;
 
     return PROJECTM_SUCCESS;
   }
@@ -1933,6 +1904,7 @@
   if ((param->type == P_TYPE_BOOL))
   {
     int bool_test;
+
     if ((parse_int(fs, &bool_test)) == PROJECTM_PARSE_ERROR)
     {
       if (PARSE_DEBUG) printf("parse_shapecode: error parsing integer!\n");
@@ -1948,7 +1920,6 @@
       return PROJECTM_PARSE_ERROR;
     }
   }
-
   /* float value */
   else if (param->type == P_TYPE_DOUBLE)
   {
@@ -1958,7 +1929,6 @@
       return PROJECTM_PARSE_ERROR;
     }
   }
-
   /* Unknown value */
   else
   {
@@ -1981,9 +1951,9 @@
 }
 
 
-int Parser::parse_wavecode_prefix(char * token, int * id, char ** var_string)
+int
+Parser::parse_wavecode_prefix(char * token, int * id, char ** var_string)
 {
-
   int len, i, j;
 
   if (token == NULL)
@@ -2022,13 +1992,12 @@
   *var_string = token + i + 1;
 
   return PROJECTM_SUCCESS;
-
 }
 
 
-int Parser::parse_shapecode_prefix(char * token, int * id, char ** var_string)
+int
+Parser::parse_shapecode_prefix(char * token, int * id, char ** var_string)
 {
-
   int len, i, j;
 
   if (token == NULL)
@@ -2067,12 +2036,11 @@
   *var_string = token + i + 1;
 
   return PROJECTM_SUCCESS;
-
 }
 
-int Parser::parse_wave_prefix(char * token, int * id, char ** eqn_string)
+int
+Parser::parse_wave_prefix(char * token, int * id, char ** eqn_string)
 {
-
   int len, i, j;
 
   if (token == NULL)
@@ -2110,12 +2078,11 @@
 
   if (PARSE_DEBUG) printf("parse_wave_prefix: prefix = %s\n (LINE %d)", *eqn_string, line_count);
   return PROJECTM_SUCCESS;
-
 }
 
-int Parser::parse_shape_prefix(char * token, int * id, char ** eqn_string)
+int
+Parser::parse_shape_prefix(char * token, int * id, char ** eqn_string)
 {
-
   int len, i, j;
 
   if (token == NULL)
@@ -2152,15 +2119,14 @@
   *eqn_string = token + i + 1;
 
   return PROJECTM_SUCCESS;
-
 }
 
 /* Parses custom wave equations */
-int Parser::parse_wave(char * token, std::istream &  fs, MilkdropPreset * preset)
+int
+Parser::parse_wave(char * token, std::istream &  fs, MilkdropPreset * preset)
 {
-
-  int id;
-  char * eqn_type;
+  int   id;
+  char  * eqn_type;
 
   if (PARSE_DEBUG) printf("parse_wave:begin\n");
 
@@ -2181,18 +2147,17 @@
   strncpy(last_eqn_type, eqn_type, MAX_TOKEN_SIZE);
 
   return parse_wave_helper(fs, preset, id, eqn_type, 0);
-
 }
 
-int Parser::parse_wave_helper(std::istream &  fs, MilkdropPreset  * preset, int id, char * eqn_type, char * init_string)
+int
+Parser::parse_wave_helper(std::istream &  fs, MilkdropPreset  * preset, int id, char * eqn_type, char * init_string)
 {
-
-  Param * param;
-  GenExpr * gen_expr;
-  char string[MAX_TOKEN_SIZE];
+  Param       * param;
+  GenExpr     * gen_expr;
+  char        string[MAX_TOKEN_SIZE];
   PerFrameEqn * per_frame_eqn;
-  CustomWave * custom_wave;
-  InitCond * init_cond;
+  CustomWave  * custom_wave;
+  InitCond    * init_cond;
 
   /* Retrieve custom wave associated with this id */
   if ((custom_wave = MilkdropPreset::find_custom_object(id,  preset->customWaves)) == NULL)
@@ -2204,7 +2169,6 @@
   /* per frame init equation case */
   if (!strncmp(eqn_type, WAVE_INIT_STRING, WAVE_INIT_STRING_LENGTH))
   {
-
     if (PARSE_DEBUG) printf("parse_wave_helper (per frame init): [begin] (LINE %d)\n", line_count);
 
     /* Parse the per frame init equation */
@@ -2220,13 +2184,11 @@
     line_mode = CUSTOM_WAVE_PER_FRAME_INIT_LINE_MODE;
     init_cond->evaluate(true);
     return PROJECTM_SUCCESS;
-
   }
 
   /* per frame equation case */
   if (!strncmp(eqn_type, PER_FRAME_STRING_NO_UNDERSCORE, PER_FRAME_STRING_NO_UNDERSCORE_LENGTH))
   {
-
     if (PARSE_DEBUG) printf("parse_wave_helper (per_frame): [start] (custom wave id = %d)\n", custom_wave->id);
 
     if (parseToken(fs, string) != tEq)
@@ -2275,11 +2237,11 @@
 
     custom_wave->per_frame_eqn_tree.push_back(per_frame_eqn);
     if (PARSE_DEBUG) printf("parse_wave (per_frame): equation %d associated with custom wave %d [success]\n",
-                              per_frame_eqn->index, custom_wave->id);
+                            per_frame_eqn->index, custom_wave->id);
 
 
     /* Need to add stuff to string buffer so the editor can read the equations.
-       Why not make a nice little helper function for this? - here it is: */
+    Why not make a nice little helper function for this? - here it is: */
 
     line_mode = CUSTOM_WAVE_PER_FRAME_LINE_MODE;
     return PROJECTM_SUCCESS;
@@ -2289,7 +2251,6 @@
   /* per point equation case */
   if (!strncmp(eqn_type, PER_POINT_STRING, PER_POINT_STRING_LENGTH))
   {
-
     if (PARSE_DEBUG) printf("parse_wave_helper (per_point): per_pixel equation parsing start...(LINE %d)\n", line_count);
 
     /// HACK the parse_line code already parsed the per_pixel variable name. This handles that case
@@ -2337,16 +2298,15 @@
 }
 
 /* Parses custom shape equations */
-int Parser::parse_shape(char * token, std::istream &  fs, MilkdropPreset * preset)
+int
+Parser::parse_shape(char * token, std::istream &  fs, MilkdropPreset * preset)
 {
-
-  int id;
-  char * eqn_type;
+  int         id;
+  char        * eqn_type;
   CustomShape * custom_shape;
 
 
   if (token == NULL)
-
     return PROJECTM_FAILURE;
   if (fs == NULL)
     return PROJECTM_FAILURE;
@@ -2392,9 +2352,9 @@
    Returns -1 if syntax error
 */
 
-int Parser::get_string_prefix_len(char * string)
+int
+Parser::get_string_prefix_len(char * string)
 {
-
   int i = 0;
 
   /* Null argument check */
@@ -2430,7 +2390,8 @@
   return i;
 }
 
-int Parser::parse_shape_per_frame_init_eqn(std::istream &  fs, CustomShape * custom_shape, MilkdropPreset * preset)
+int
+Parser::parse_shape_per_frame_init_eqn(std::istream &  fs, CustomShape * custom_shape, MilkdropPreset * preset)
 {
   InitCond * init_cond;
 
@@ -2450,11 +2411,11 @@
   return PROJECTM_SUCCESS;
 }
 
-int Parser::parse_shape_per_frame_eqn(std::istream & fs, CustomShape * custom_shape, MilkdropPreset * preset)
+int
+Parser::parse_shape_per_frame_eqn(std::istream & fs, CustomShape * custom_shape, MilkdropPreset * preset)
 {
-
-  Param * param;
-  GenExpr * gen_expr;
+  Param       * param;
+  GenExpr     * gen_expr;
   PerFrameEqn * per_frame_eqn;
 
   char string[MAX_TOKEN_SIZE];
@@ -2512,11 +2473,11 @@
   return PROJECTM_SUCCESS;
 }
 
-int Parser::parse_wave_per_frame_eqn(std::istream &  fs, CustomWave * custom_wave, MilkdropPreset * preset)
+int
+Parser::parse_wave_per_frame_eqn(std::istream &  fs, CustomWave * custom_wave, MilkdropPreset * preset)
 {
-
-  Param * param;
-  GenExpr * gen_expr;
+  Param       * param;
+  GenExpr     * gen_expr;
   PerFrameEqn * per_frame_eqn;
 
   char string[MAX_TOKEN_SIZE];
@@ -2568,29 +2529,26 @@
 
   custom_wave->per_frame_eqn_tree.push_back(per_frame_eqn);
   if (PARSE_DEBUG) printf("parse_wave (per_frame): equation %d associated with custom wave %d [success]\n",
-                            per_frame_eqn->index, custom_wave->id);
+                          per_frame_eqn->index, custom_wave->id);
 
 
   /* Need to add stuff to string buffer so the editor can read the equations.
-     Why not make a nice little helper function for this? - here it is: */
+  Why not make a nice little helper function for this? - here it is: */
 
   line_mode = CUSTOM_WAVE_PER_FRAME_LINE_MODE;
   return PROJECTM_SUCCESS;
 }
 
 
-bool Parser::wrapsToNextLine(const std::string & str) {
+bool
+Parser::wrapsToNextLine(const std::string & str)
+{
+  std::size_t lastLineEndIndex = lastLinePrefix.find_last_not_of("0123456789");
+  std::size_t thisLineEndIndex = str.find_last_not_of("0123456789");
+  std::size_t startIndex = 0;
 
-std::size_t lastLineEndIndex =
-	lastLinePrefix.find_last_not_of("0123456789");
-
-std::size_t thisLineEndIndex =
-	str.find_last_not_of("0123456789");
-
-std::size_t startIndex = 0;
-if ((str.compare(startIndex, lastLineEndIndex, lastLinePrefix.c_str(), thisLineEndIndex)) == 0)
-	return true;
-else
-	return false;
-
+  if ((str.compare(startIndex, lastLineEndIndex, lastLinePrefix.c_str(), thisLineEndIndex)) == 0)
+    return true;
+  else
+    return false;
 }
diff --git a/src/libprojectM/MilkdropPresetFactory/Parser.hpp b/src/libprojectM/MilkdropPresetFactory/Parser.hpp
index 8c0e19d..f9ff507 100644
--- a/src/libprojectM/MilkdropPresetFactory/Parser.hpp
+++ b/src/libprojectM/MilkdropPresetFactory/Parser.hpp
@@ -25,9 +25,9 @@
  *
  * $Log$
  */
-
 #ifndef _PARSER_H
 #define _PARSER_H
+
 //#define PARSE_DEBUG 2
 #define PARSE_DEBUG 0
 
@@ -38,46 +38,47 @@
 #include "InitCond.hpp"
 #include "MilkdropPreset.hpp"
 
+
 /* Strings that prefix (and denote the type of) equations */
-#define PER_FRAME_STRING "per_frame_"
-#define PER_FRAME_STRING_LENGTH 10
+#define PER_FRAME_STRING                      "per_frame_"
+#define PER_FRAME_STRING_LENGTH               10
 
-#define PER_PIXEL_STRING "per_pixel_"
-#define PER_PIXEL_STRING_LENGTH 10
+#define PER_PIXEL_STRING                      "per_pixel_"
+#define PER_PIXEL_STRING_LENGTH               10
 
-#define PER_FRAME_INIT_STRING "per_frame_init_"
-#define PER_FRAME_INIT_STRING_LENGTH 15
+#define PER_FRAME_INIT_STRING                 "per_frame_init_"
+#define PER_FRAME_INIT_STRING_LENGTH          15
 
-#define WAVECODE_STRING "wavecode_"
-#define WAVECODE_STRING_LENGTH 9
+#define WAVECODE_STRING                       "wavecode_"
+#define WAVECODE_STRING_LENGTH                9
 
-#define WAVE_STRING "wave_"
-#define WAVE_STRING_LENGTH 5
+#define WAVE_STRING                           "wave_"
+#define WAVE_STRING_LENGTH                    5
 
-#define PER_POINT_STRING "per_point"
-#define PER_POINT_STRING_LENGTH 9
+#define PER_POINT_STRING                      "per_point"
+#define PER_POINT_STRING_LENGTH               9
 
-#define PER_FRAME_STRING_NO_UNDERSCORE "per_frame"
+#define PER_FRAME_STRING_NO_UNDERSCORE        "per_frame"
 #define PER_FRAME_STRING_NO_UNDERSCORE_LENGTH 9
 
-#define SHAPECODE_STRING "shapecode_"
-#define SHAPECODE_STRING_LENGTH 10
+#define SHAPECODE_STRING                      "shapecode_"
+#define SHAPECODE_STRING_LENGTH               10
 
 
-#define WARP_STRING "warp_"
-#define WARP_STRING_LENGTH 5
+#define WARP_STRING                           "warp_"
+#define WARP_STRING_LENGTH                    5
 
-#define COMPOSITE_STRING "comp_"
-#define COMPOSITE_STRING_LENGTH 5
+#define COMPOSITE_STRING                      "comp_"
+#define COMPOSITE_STRING_LENGTH               5
 
-#define SHAPE_STRING "shape_"
-#define SHAPE_STRING_LENGTH 6
+#define SHAPE_STRING                          "shape_"
+#define SHAPE_STRING_LENGTH                   6
 
-#define SHAPE_INIT_STRING "init"
-#define SHAPE_INIT_STRING_LENGTH 4
+#define SHAPE_INIT_STRING                     "init"
+#define SHAPE_INIT_STRING_LENGTH              4
 
-#define WAVE_INIT_STRING "init"
-#define WAVE_INIT_STRING_LENGTH 4
+#define WAVE_INIT_STRING                      "init"
+#define WAVE_INIT_STRING_LENGTH               4
 
 #include <set>
 
@@ -98,27 +99,27 @@
 
 /** Token enumeration type */
 typedef enum {
-    tEOL,   /* end of a line, usually a '/n' or '/r' */
-    tEOF,   /* end of file */
-    tLPr,   /* ( */
-    tRPr,   /* ) */
-    tLBr,   /* [ */
-    tRBr,   /* ] */
-    tEq,    /* = */
-    tPlus,  /* + */
-    tMinus, /* - */
-    tMult,  /* * */
-    tMod,   /* % */
-    tDiv,   /* / */
-    tOr,    /* | */
-    tAnd,   /* & */
-    tComma, /* , */
-    tPositive, /* + as a prefix operator */
-    tNegative, /* - as a prefix operator */
-    tSemiColon, /* ; */
-    tStringTooLong, /* special token to indicate an invalid string length */
-    tStringBufferFilled /* the string buffer for this line is maxed out */
-  } token_t;
+  tEOL,   /* end of a line, usually a '/n' or '/r' */
+  tEOF,   /* end of file */
+  tLPr,   /* ( */
+  tRPr,   /* ) */
+  tLBr,   /* [ */
+  tRBr,   /* ] */
+  tEq,    /* = */
+  tPlus,  /* + */
+  tMinus, /* - */
+  tMult,  /* * */
+  tMod,   /* % */
+  tDiv,   /* / */
+  tOr,    /* | */
+  tAnd,   /* & */
+  tComma, /* , */
+  tPositive, /* + as a prefix operator */
+  tNegative, /* - as a prefix operator */
+  tSemiColon, /* ; */
+  tStringTooLong, /* special token to indicate an invalid string length */
+  tStringBufferFilled /* the string buffer for this line is maxed out */
+} token_t;
 
 class CustomShape;
 class CustomWave;
@@ -130,63 +131,62 @@
 
 class Parser {
 public:
-    static std::string lastLinePrefix;
-    static line_mode_t line_mode;
-    static CustomWave *current_wave;
-    static CustomShape *current_shape;
-    static int string_line_buffer_index;
-    static char string_line_buffer[STRING_LINE_SIZE];
-    static unsigned int line_count;
-    static int per_frame_eqn_count;
-    static int per_frame_init_eqn_count;
-    static int last_custom_wave_id;
-    static int last_custom_shape_id;
-    static char last_eqn_type[MAX_TOKEN_SIZE];
-    static int last_token_size;
-    static bool tokenWrapAroundEnabled;
+  static std::string lastLinePrefix;
+  static line_mode_t line_mode;
+  static CustomWave *current_wave;
+  static CustomShape *current_shape;
+  static int string_line_buffer_index;
+  static char string_line_buffer[STRING_LINE_SIZE];
+  static unsigned int line_count;
+  static int per_frame_eqn_count;
+  static int per_frame_init_eqn_count;
+  static int last_custom_wave_id;
+  static int last_custom_shape_id;
+  static char last_eqn_type[MAX_TOKEN_SIZE];
+  static int last_token_size;
+  static bool tokenWrapAroundEnabled;
 
-    static PerFrameEqn *parse_per_frame_eqn( std::istream & fs, int index,
-                                             MilkdropPreset * preset);
-    static int parse_per_pixel_eqn( std::istream & fs, MilkdropPreset * preset,
-                                    char * init_string);
-    static InitCond *parse_init_cond( std::istream & fs, char * name, MilkdropPreset * preset );
-    static int parse_preset_name( std::istream & fs, char * name );
-    static int parse_top_comment( std::istream & fs );
-    static int parse_line( std::istream & fs, MilkdropPreset * preset );
+  static PerFrameEqn *parse_per_frame_eqn( std::istream & fs, int index,
+                                           MilkdropPreset * preset);
+  static int parse_per_pixel_eqn( std::istream & fs, MilkdropPreset * preset,
+                                  char * init_string);
+  static InitCond *parse_init_cond( std::istream & fs, char * name, MilkdropPreset * preset );
+  static int parse_preset_name( std::istream & fs, char * name );
+  static int parse_top_comment( std::istream & fs );
+  static int parse_line( std::istream & fs, MilkdropPreset * preset );
 
-    static int get_string_prefix_len(char * string);
-    static TreeExpr * insert_gen_expr(GenExpr * gen_expr, TreeExpr ** root);
-    static TreeExpr * insert_infix_op(InfixOp * infix_op, TreeExpr ** root);
-    static token_t parseToken(std::istream & fs, char * string);
-    static GenExpr ** parse_prefix_args(std::istream & fs, int num_args, MilkdropPreset * preset);
-    static GenExpr * parse_infix_op(std::istream & fs, token_t token, TreeExpr * tree_expr, MilkdropPreset * preset);
-    static GenExpr * parse_sign_arg(std::istream & fs);
-    static int parse_float(std::istream & fs, float * float_ptr);
-    static int parse_int(std::istream & fs, int * int_ptr);
-    static int insert_gen_rec(GenExpr * gen_expr, TreeExpr * root);
-    static int insert_infix_rec(InfixOp * infix_op, TreeExpr * root);
-    static GenExpr * parse_gen_expr(std::istream & fs, TreeExpr * tree_expr, MilkdropPreset * preset);
-    static PerFrameEqn * parse_implicit_per_frame_eqn(std::istream & fs, char * param_string, int index, MilkdropPreset * preset);
-    static InitCond * parse_per_frame_init_eqn(std::istream & fs, MilkdropPreset * preset, std::map<std::string,Param*> * database);
-    static int parse_wavecode_prefix(char * token, int * id, char ** var_string);
-    static int parse_wavecode(char * token, std::istream & fs, MilkdropPreset * preset);
-    static int parse_wave_prefix(char * token, int * id, char ** eqn_string);
-    static int parse_wave_helper(std::istream & fs, MilkdropPreset * preset, int id, char * eqn_type, char * init_string);
-    static int parse_shapecode(char * eqn_string, std::istream & fs, MilkdropPreset * preset);
-    static int parse_shapecode_prefix(char * token, int * id, char ** var_string);
-    static void parse_string_block(std::istream &  fs, std::string * out_string);
-    static bool scanForComment(std::istream & fs);
-    static int parse_wave(char * eqn_string, std::istream & fs, MilkdropPreset * preset);
-    static int parse_shape(char * eqn_string, std::istream & fs, MilkdropPreset * preset);
-    static int parse_shape_prefix(char * token, int * id, char ** eqn_string);
-    static void readStringUntil(std::istream & fs, std::string * out_buffer, bool wrapAround = true, const std::set<char> & skipList = std::set<char>()) ;
+  static int get_string_prefix_len(char * string);
+  static TreeExpr * insert_gen_expr(GenExpr * gen_expr, TreeExpr ** root);
+  static TreeExpr * insert_infix_op(InfixOp * infix_op, TreeExpr ** root);
+  static token_t parseToken(std::istream & fs, char * string);
+  static GenExpr ** parse_prefix_args(std::istream & fs, int num_args, MilkdropPreset * preset);
+  static GenExpr * parse_infix_op(std::istream & fs, token_t token, TreeExpr * tree_expr, MilkdropPreset * preset);
+  static GenExpr * parse_sign_arg(std::istream & fs);
+  static int parse_float(std::istream & fs, float * float_ptr);
+  static int parse_int(std::istream & fs, int * int_ptr);
+  static int insert_gen_rec(GenExpr * gen_expr, TreeExpr * root);
+  static int insert_infix_rec(InfixOp * infix_op, TreeExpr * root);
+  static GenExpr * parse_gen_expr(std::istream & fs, TreeExpr * tree_expr, MilkdropPreset * preset);
+  static PerFrameEqn * parse_implicit_per_frame_eqn(std::istream & fs, char * param_string, int index, MilkdropPreset * preset);
+  static InitCond * parse_per_frame_init_eqn(std::istream & fs, MilkdropPreset * preset, std::map<std::string,Param*> * database);
+  static int parse_wavecode_prefix(char * token, int * id, char ** var_string);
+  static int parse_wavecode(char * token, std::istream & fs, MilkdropPreset * preset);
+  static int parse_wave_prefix(char * token, int * id, char ** eqn_string);
+  static int parse_wave_helper(std::istream & fs, MilkdropPreset * preset, int id, char * eqn_type, char * init_string);
+  static int parse_shapecode(char * eqn_string, std::istream & fs, MilkdropPreset * preset);
+  static int parse_shapecode_prefix(char * token, int * id, char ** var_string);
+  static void parse_string_block(std::istream &  fs, std::string * out_string);
+  static bool scanForComment(std::istream & fs);
+  static int parse_wave(char * eqn_string, std::istream & fs, MilkdropPreset * preset);
+  static int parse_shape(char * eqn_string, std::istream & fs, MilkdropPreset * preset);
+  static int parse_shape_prefix(char * token, int * id, char ** eqn_string);
+  static void readStringUntil(std::istream & fs, std::string * out_buffer, bool wrapAround = true, const std::set<char> & skipList = std::set<char>()) ;
 
-    static int string_to_float(char * string, float * float_ptr);
-    static int parse_shape_per_frame_init_eqn(std::istream & fs, CustomShape * custom_shape, MilkdropPreset * preset);
-    static int parse_shape_per_frame_eqn(std::istream & fs, CustomShape * custom_shape, MilkdropPreset * preset);
-    static int parse_wave_per_frame_eqn(std::istream & fs, CustomWave * custom_wave, MilkdropPreset * preset);
-    static bool wrapsToNextLine(const std::string & str);
-  };
+  static int string_to_float(char * string, float * float_ptr);
+  static int parse_shape_per_frame_init_eqn(std::istream & fs, CustomShape * custom_shape, MilkdropPreset * preset);
+  static int parse_shape_per_frame_eqn(std::istream & fs, CustomShape * custom_shape, MilkdropPreset * preset);
+  static int parse_wave_per_frame_eqn(std::istream & fs, CustomWave * custom_wave, MilkdropPreset * preset);
+  static bool wrapsToNextLine(const std::string & str);
+};
 
 #endif /** !_PARSER_H */
-
diff --git a/src/libprojectM/MilkdropPresetFactory/PerFrameEqn.cpp b/src/libprojectM/MilkdropPresetFactory/PerFrameEqn.cpp
index 30e2342..96bd10f 100644
--- a/src/libprojectM/MilkdropPresetFactory/PerFrameEqn.cpp
+++ b/src/libprojectM/MilkdropPresetFactory/PerFrameEqn.cpp
@@ -18,7 +18,6 @@
  * See 'LICENSE.txt' included within this release
  *
  */
-
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -35,33 +34,33 @@
 #include "wipemalloc.h"
 #include <cassert>
 
+
 /* Evaluate an equation */
-void PerFrameEqn::evaluate() {
+void
+PerFrameEqn::evaluate()
+{
+  if (PER_FRAME_EQN_DEBUG) {
+    printf("per_frame_%d=%s= ", index, param->name.c_str());
+    fflush(stdout);
+  }
 
-     if (PER_FRAME_EQN_DEBUG) { 
-		 printf("per_frame_%d=%s= ", index, param->name.c_str());
-		 fflush(stdout); 
-     }
-	 
-    //*((float*)per_frame_eqn->param->engine_val) = eval_gen_expr(per_frame_eqn->gen_expr);
-	assert(gen_expr);
-	assert(param);
-	param->set_param(gen_expr->eval_gen_expr(-1,-1));
+  //*((float*)per_frame_eqn->param->engine_val) = eval_gen_expr(per_frame_eqn->gen_expr);
+  assert(gen_expr);
+  assert(param);
+  param->set_param(gen_expr->eval_gen_expr(-1,-1));
 
-     if (PER_FRAME_EQN_DEBUG) printf(" = %.4f\n", *((float*)param->engine_val)); 
-		 
+  if (PER_FRAME_EQN_DEBUG) printf(" = %.4f\n", *((float*)param->engine_val));
 }
 
 
 /* Frees perframe equation structure. Warning: assumes gen_expr pointer is not freed by anyone else! */
-PerFrameEqn::~PerFrameEqn() {
-
+PerFrameEqn::~PerFrameEqn()
+{
   delete gen_expr;
 
   // param is freed in param_tree container of some other class
-
 }
 
 /* Create a new per frame equation */
-PerFrameEqn::PerFrameEqn(int _index, Param * _param, GenExpr * _gen_expr) :
-	index(_index), param(_param), gen_expr(_gen_expr) {}
+PerFrameEqn::PerFrameEqn(int _index, Param * _param, GenExpr * _gen_expr)
+  : index(_index), param(_param), gen_expr(_gen_expr) {}
diff --git a/src/libprojectM/MilkdropPresetFactory/PerFrameEqn.hpp b/src/libprojectM/MilkdropPresetFactory/PerFrameEqn.hpp
index 3964080..155560f 100644
--- a/src/libprojectM/MilkdropPresetFactory/PerFrameEqn.hpp
+++ b/src/libprojectM/MilkdropPresetFactory/PerFrameEqn.hpp
@@ -29,25 +29,27 @@
 #ifndef _PER_FRAME_EQN_H
 #define _PER_FRAME_EQN_H
 
+
 #define PER_FRAME_EQN_DEBUG 0
 
+
 class GenExpr;
 class Param;
 class PerFrameEqn;
 
 class PerFrameEqn {
 public:
-    int index; /* a unique id for each per frame eqn (generated by order in preset files) */
-    Param *param; /* parameter to be assigned a value */
-    GenExpr *gen_expr;   /* expression that paremeter is equal to */
-     
-    PerFrameEqn(int index, Param * param, GenExpr * gen_expr);
-    ~PerFrameEqn();
+  int index; /* a unique id for each per frame eqn (generated by order in preset files) */
+  Param *param; /* parameter to be assigned a value */
+  GenExpr *gen_expr;   /* expression that paremeter is equal to */
 
-    /// Evaluate the per frame equation
-    void evaluate();
+  PerFrameEqn(int index, Param * param, GenExpr * gen_expr);
+  ~PerFrameEqn();
 
-  };
+  /// Evaluate the per frame equation
+  void evaluate();
+
+};
 
 
 #endif /** !_PER_FRAME_EQN_H */
diff --git a/src/libprojectM/MilkdropPresetFactory/PerPixelEqn.cpp b/src/libprojectM/MilkdropPresetFactory/PerPixelEqn.cpp
index 3f7c7bd..8a0d760 100644
--- a/src/libprojectM/MilkdropPresetFactory/PerPixelEqn.cpp
+++ b/src/libprojectM/MilkdropPresetFactory/PerPixelEqn.cpp
@@ -18,7 +18,6 @@
  * See 'LICENSE.txt' included within this release
  *
  */
-
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
@@ -35,47 +34,48 @@
 
 #include "wipemalloc.h"
 #include <cassert>
-/* Evaluates a per pixel equation */
-void PerPixelEqn::evaluate(int mesh_i, int mesh_j) {
 
+
+/* Evaluates a per pixel equation */
+void
+PerPixelEqn::evaluate(int mesh_i, int mesh_j)
+{
   GenExpr * eqn_ptr = 0;
 
 
- eqn_ptr = this->gen_expr;
+  eqn_ptr = this->gen_expr;
 
- float ** param_matrix = (float**)this->param->matrix;
+  float ** param_matrix = (float**)this->param->matrix;
 
- if (param_matrix == 0) {
-	 assert(param->engine_val);
-	 (*(float*)param->engine_val) = eqn_ptr->eval_gen_expr(mesh_i, mesh_j);
+  if (param_matrix == 0) {
+    assert(param->engine_val);
+    (*(float*)param->engine_val) = eqn_ptr->eval_gen_expr(mesh_i, mesh_j);
 
   } else {
 
-  assert(!(eqn_ptr == NULL || param_matrix == NULL));
+    assert(!(eqn_ptr == NULL || param_matrix == NULL));
 
-  param_matrix[mesh_i][mesh_j] = eqn_ptr->eval_gen_expr(mesh_i, mesh_j);
+    param_matrix[mesh_i][mesh_j] = eqn_ptr->eval_gen_expr(mesh_i, mesh_j);
 
-  /* Now that this parameter has been referenced with a per
-     pixel equation, we let the evaluator know by setting
-     this flag */
-  /// @bug review and verify this behavior
-  param->matrix_flag = true;
-  param->flags |= P_FLAG_PER_PIXEL;
+    /* Now that this parameter has been referenced with a per
+    pixel equation, we let the evaluator know by setting
+    this flag */
+    /// @bug review and verify this behavior
+    param->matrix_flag = true;
+    param->flags |= P_FLAG_PER_PIXEL;
   }
 }
 
-PerPixelEqn::PerPixelEqn(int _index, Param * _param, GenExpr * _gen_expr):index(_index), param(_param), gen_expr(_gen_expr) {
-
-	assert(index >= 0);
-	assert(param != 0);
-	assert(gen_expr != 0);
-
+PerPixelEqn::PerPixelEqn(int _index, Param * _param, GenExpr * _gen_expr):index(_index), param(_param), gen_expr(_gen_expr)
+{
+  assert(index >= 0);
+  assert(param != 0);
+  assert(gen_expr != 0);
 }
 
 
 PerPixelEqn::~PerPixelEqn()
 {
-	if (gen_expr)
-		delete (gen_expr);
-
+  if (gen_expr)
+  delete (gen_expr);
 }
diff --git a/src/libprojectM/MilkdropPresetFactory/PerPixelEqn.hpp b/src/libprojectM/MilkdropPresetFactory/PerPixelEqn.hpp
index 9410d76..95ad52e 100644
--- a/src/libprojectM/MilkdropPresetFactory/PerPixelEqn.hpp
+++ b/src/libprojectM/MilkdropPresetFactory/PerPixelEqn.hpp
@@ -25,7 +25,6 @@
  *
  * $Log$
  */
-
 #ifndef _PER_PIXEL_EQN_H
 #define _PER_PIXEL_EQN_H
 
@@ -43,6 +42,7 @@
 #define WARP_OP 9
 #define NUM_OPS 10 /* obviously, this number is dependent on the number of existing per pixel operations */
 
+
 class GenExpr;
 class Param;
 class PerPixelEqn;
@@ -50,18 +50,18 @@
 
 class PerPixelEqn {
 public:
-    int index; /* used for splay tree ordering. */
-    int flags; /* primarily to specify if this variable is user-defined */
-    Param *param;
-    GenExpr *gen_expr;
+  int index; /* used for splay tree ordering. */
+  int flags; /* primarily to specify if this variable is user-defined */
+  Param *param;
+  GenExpr *gen_expr;
 
-    void evalPerPixelEqns( Preset *preset );
-    void evaluate(int mesh_i, int mesh_j);
-    virtual ~PerPixelEqn();
+  void evalPerPixelEqns( Preset *preset );
+  void evaluate(int mesh_i, int mesh_j);
+  virtual ~PerPixelEqn();
 
-    PerPixelEqn(int index, Param * param, GenExpr * gen_expr);
+  PerPixelEqn(int index, Param * param, GenExpr * gen_expr);
 
-  };
+};
 
 
 #endif /** !_PER_PIXEL_EQN_H */
diff --git a/src/libprojectM/MilkdropPresetFactory/PerPointEqn.cpp b/src/libprojectM/MilkdropPresetFactory/PerPointEqn.cpp
index e921916..eef886c 100644
--- a/src/libprojectM/MilkdropPresetFactory/PerPointEqn.cpp
+++ b/src/libprojectM/MilkdropPresetFactory/PerPointEqn.cpp
@@ -18,7 +18,6 @@
  * See 'LICENSE.txt' included within this release
  *
  */
-
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
@@ -37,11 +36,12 @@
 #include <iostream>
 #include "wipemalloc.h"
 
-/* Evaluates a per point equation for the current custom wave given by interface_wave ptr */
-void PerPointEqn::evaluate(int i)
-{
 
-  float * param_matrix;
+/* Evaluates a per point equation for the current custom wave given by interface_wave ptr */
+void
+PerPointEqn::evaluate(int i)
+{
+  float   * param_matrix;
   GenExpr * eqn_ptr;
 
   //  samples = CustomWave::interface_wave->samples;
@@ -53,35 +53,30 @@
     assert(param->matrix_flag == false);
     (*(float*)param->engine_val) = eqn_ptr->eval_gen_expr(i,-1);
 
-  
     return;
   }
-
   else
   {
     param_matrix = (float*)param->matrix;
-  
-      // -1 is because per points only use one dimension
-      param_matrix[i] = eqn_ptr->eval_gen_expr(i, -1);
-    
+
+    // -1 is because per points only use one dimension
+    param_matrix[i] = eqn_ptr->eval_gen_expr(i, -1);
+
 
     /* Now that this parameter has been referenced with a per
-       point equation, we let the evaluator know by setting
-       this flag */
+    point equation, we let the evaluator know by setting
+    this flag */
 
     if (!param->matrix_flag)
       param->matrix_flag = true;
-
   }
-
 }
 
-PerPointEqn::PerPointEqn(int _index, Param * _param, GenExpr * _gen_expr, int _samples):
-    index(_index),
+PerPointEqn::PerPointEqn(int _index, Param * _param, GenExpr * _gen_expr, int _samples)
+  : index(_index),
     samples(_samples),
     param(_param),
     gen_expr(_gen_expr)
-
 {}
 
 
diff --git a/src/libprojectM/MilkdropPresetFactory/PerPointEqn.hpp b/src/libprojectM/MilkdropPresetFactory/PerPointEqn.hpp
index 90ba5ca..60b1a43 100644
--- a/src/libprojectM/MilkdropPresetFactory/PerPointEqn.hpp
+++ b/src/libprojectM/MilkdropPresetFactory/PerPointEqn.hpp
@@ -25,10 +25,10 @@
  *
  * $Log$
  */
-
 #ifndef _PER_POINT_EQN_H
 #define _PER_POINT_EQN_H
 
+
 class CustomWave;
 class GenExpr;
 class Param;
@@ -36,14 +36,14 @@
 
 class PerPointEqn {
 public:
-    int index;
-    int samples; // the number of samples to iterate over
-    Param *param;
-    GenExpr * gen_expr;
-    ~PerPointEqn();
-    void evaluate(int i);
-    PerPointEqn( int index, Param *param, GenExpr *gen_expr, int samples);
- };
+  int index;
+  int samples; // the number of samples to iterate over
+  Param *param;
+  GenExpr * gen_expr;
+  ~PerPointEqn();
+  void evaluate(int i);
+  PerPointEqn( int index, Param *param, GenExpr *gen_expr, int samples);
+};
 
 
 //inline void eval_per_point_eqn_helper( void *per_point_eqn ) {
diff --git a/src/libprojectM/MilkdropPresetFactory/PresetFrameIO.cpp b/src/libprojectM/MilkdropPresetFactory/PresetFrameIO.cpp
index 5a4c882..fa0986e 100644
--- a/src/libprojectM/MilkdropPresetFactory/PresetFrameIO.cpp
+++ b/src/libprojectM/MilkdropPresetFactory/PresetFrameIO.cpp
@@ -6,102 +6,103 @@
 #include <cmath>
 #include "Renderer/BeatDetect.hpp"
 
+
 PresetInputs::PresetInputs() : PipelineContext()
 {
 }
 
-void PresetInputs::update(const BeatDetect & music, const PipelineContext & context) {
+void
+PresetInputs::update(const BeatDetect & music, const PipelineContext & context)
+{
 
-    // Reflect new values form the beat detection unit
-    this->bass = music.bass;
-    this->mid = music.mid;
-    this->treb = music.treb;
-    this->bass_att = music.bass_att;
-    this->mid_att = music.mid_att;
-    this->treb_att = music.treb_att;
+  // Reflect new values form the beat detection unit
+  this->bass      = music.bass;
+  this->mid       = music.mid;
+  this->treb      = music.treb;
+  this->bass_att  = music.bass_att;
+  this->mid_att   = music.mid_att;
+  this->treb_att  = music.treb_att;
 
-    // Reflect new values from the pipeline context
-    this->fps = context.fps;
-    this->time = context.time;
+  // Reflect new values from the pipeline context
+  this->fps       = context.fps;
+  this->time      = context.time;
 
-    this->frame = context.frame;
-    this->progress = context.progress;
+  this->frame     = context.frame;
+  this->progress  = context.progress;
 }
 
-void PresetInputs::Initialize ( int gx, int gy )
+void
+PresetInputs::Initialize ( int gx, int gy )
 {
-	int x, y;
+  int x, y;
 
-	this->gx =gx;
-	this->gy= gy;
+  this->gx =gx;
+  this->gy= gy;
 
 
-	/// @bug no clue if this block belongs here
-	// ***
-	progress = 0;
-	frame = 1;
+  /// @bug no clue if this block belongs here
+  // ***
+  progress = 0;
+  frame = 1;
 
-	x_per_pixel = 0;
-	y_per_pixel = 0;
-	rad_per_pixel = 0;
-	ang_per_pixel = 0;
-	// ***
+  x_per_pixel = 0;
+  y_per_pixel = 0;
+  rad_per_pixel = 0;
+  ang_per_pixel = 0;
+  // ***
 
-	this->x_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
-	for ( x = 0; x < gx; x++ )
-	{
-		this->x_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
-	}
-	this->y_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
-	for ( x = 0; x <gx; x++ )
-	{
-		this->y_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
-	}
-	this->rad_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
-	for ( x = 0; x < gx; x++ )
-	{
-		this->rad_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
-	}
-	this->theta_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
-	for ( x = 0; x <gx; x++ )
-	{
-		this->theta_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
-	}
+  this->x_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
+  for ( x = 0; x < gx; x++ )
+  {
+    this->x_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
+  }
+  this->y_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
+  for ( x = 0; x <gx; x++ )
+  {
+    this->y_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
+  }
+  this->rad_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
+  for ( x = 0; x < gx; x++ )
+  {
+    this->rad_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
+  }
+  this->theta_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
+  for ( x = 0; x <gx; x++ )
+  {
+    this->theta_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
+  }
 
-	this->origtheta= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
-	for ( x = 0; x < gx; x++ )
-	{
-		this->origtheta[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
-	}
-	this->origrad= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
-	for ( x = 0; x < gx; x++ )
-	{
-		this->origrad[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
-	}
-	this->origx= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
-	for ( x = 0; x < gx; x++ )
-	{
-		this->origx[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
-	}
-	this->origy= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
-	for ( x = 0; x < gx; x++ )
-	{
-		this->origy[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
-	}
+  this->origtheta= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
+  for ( x = 0; x < gx; x++ )
+  {
+    this->origtheta[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
+  }
+  this->origrad= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
+  for ( x = 0; x < gx; x++ )
+  {
+    this->origrad[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
+  }
+  this->origx= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
+  for ( x = 0; x < gx; x++ )
+  {
+    this->origx[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
+  }
+  this->origy= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
+  for ( x = 0; x < gx; x++ )
+  {
+    this->origy[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
+  }
 
-	for ( x=0;x<gx;x++ )
-	{
-		for ( y=0;y<gy;y++ )
-		{
-			this->origx[x][y]=x/ ( float ) ( gx-1 );
-			this->origy[x][y]=- ( ( y/ ( float ) ( gy-1 ) )-1 );
-			this->origrad[x][y]=hypot ( ( this->origx[x][y]-.5 ) *2, ( this->origy[x][y]-.5 ) *2 ) * .7071067;
-			this->origtheta[x][y]=atan2 ( ( ( this->origy[x][y]-.5 ) *2 ), ( ( this->origx[x][y]-.5 ) *2 ) );
-		}
-	}
-
-
-
+  for ( x=0;x<gx;x++ )
+  {
+    for ( y=0;y<gy;y++ )
+    {
+      this->origx[x][y]=x/ ( float ) ( gx-1 );
+      this->origy[x][y]=- ( ( y/ ( float ) ( gy-1 ) )-1 );
+      this->origrad[x][y]=hypot ( ( this->origx[x][y]-.5 ) *2, ( this->origy[x][y]-.5 ) *2 ) * .7071067;
+      this->origtheta[x][y]=atan2 ( ( ( this->origy[x][y]-.5 ) *2 ), ( ( this->origx[x][y]-.5 ) *2 ) );
+    }
+  }
 }
 
 PresetOutputs::PresetOutputs() : Pipeline()
@@ -109,341 +110,339 @@
 
 PresetOutputs::~PresetOutputs()
 {
-	assert(this->gx > 0);
+  assert(this->gx > 0);
 
-	for ( int x = 0; x < this->gx; x++ )
-	{
-		free(this->sx_mesh[x]);
-		free(this->sy_mesh[x]);
-		free(this->dy_mesh[x]);
-		free(this->dx_mesh[x]);
-		free(this->cy_mesh[x]);
-		free(this->cx_mesh[x]);
+  for ( int x = 0; x < this->gx; x++ )
+  {
+    free (this->sx_mesh[x]);
+    free (this->sy_mesh[x]);
+    free (this->dy_mesh[x]);
+    free (this->dx_mesh[x]);
+    free (this->cy_mesh[x]);
+    free (this->cx_mesh[x]);
 
-		free(this->warp_mesh[x]);
-		free(this->zoom_mesh[x]);
-		free(this->zoomexp_mesh[x]);
-		free(this->rot_mesh[x]);
-		free(this->orig_x[x]);
-		free(this->orig_y[x]);
-		free(this->rad_mesh[x]);
-	}
+    free (this->warp_mesh[x]);
+    free (this->zoom_mesh[x]);
+    free (this->zoomexp_mesh[x]);
+    free (this->rot_mesh[x]);
+    free (this->orig_x[x]);
+    free (this->orig_y[x]);
+    free (this->rad_mesh[x]);
+  }
 
-		free(this->rad_mesh);
-		free(this->sx_mesh);
-		free(this->sy_mesh);
-		free(this->dy_mesh);
-		free(this->dx_mesh);
-		free(this->cy_mesh);
-		free(this->cx_mesh);
-		free(this->warp_mesh);
-		free(this->zoom_mesh);
-		free(this->zoomexp_mesh);
-		free(this->rot_mesh);
-		free(this->orig_x);
-		free(this->orig_y);
+  free (this->rad_mesh);
+  free (this->sx_mesh);
+  free (this->sy_mesh);
+  free (this->dy_mesh);
+  free (this->dx_mesh);
+  free (this->cy_mesh);
+  free (this->cx_mesh);
+  free (this->warp_mesh);
+  free (this->zoom_mesh);
+  free (this->zoomexp_mesh);
+  free (this->rot_mesh);
+  free (this->orig_x);
+  free (this->orig_y);
 
 }
 
-void PresetOutputs::Render(const BeatDetect &music, const PipelineContext &context)
+void
+PresetOutputs::Render(const BeatDetect &music, const PipelineContext &context)
 {
-	PerPixelMath(context);
+  PerPixelMath(context);
 
-	drawables.clear();
+  drawables.clear();
 
-	drawables.push_back(&mv);
+  drawables.push_back(&mv);
 
-	for (PresetOutputs::cshape_container::iterator pos = customShapes.begin();
-			pos != customShapes.end(); ++pos)
-			{
-				if( (*pos)->enabled==1)	drawables.push_back((*pos));
-			}
+  for (PresetOutputs::cshape_container::iterator pos = customShapes.begin();
+       pos != customShapes.end();
+       ++pos)
+  {
+    if( (*pos)->enabled==1) drawables.push_back((*pos));
+  }
 
-	for (PresetOutputs::cwave_container::iterator pos = customWaves.begin();
-			pos != customWaves.end(); ++pos)
-			{
-				if( (*pos)->enabled==1)	drawables.push_back((*pos));
-			}
+  for (PresetOutputs::cwave_container::iterator pos = customWaves.begin();
+       pos != customWaves.end();
+       ++pos)
+  {
+    if( (*pos)->enabled==1) drawables.push_back((*pos));
+  }
 
-    	drawables.push_back(&wave);
-	if(bDarkenCenter==1) drawables.push_back(&darkenCenter);
-	drawables.push_back(&border);
+  drawables.push_back(&wave);
+  if(bDarkenCenter==1) drawables.push_back(&darkenCenter);
+  drawables.push_back(&border);
 
-	compositeDrawables.clear();
-	compositeDrawables.push_back(&videoEcho);
+  compositeDrawables.clear();
+  compositeDrawables.push_back(&videoEcho);
 
-	if (bBrighten==1)
-		compositeDrawables.push_back(&brighten);
+  if (bBrighten==1)
+    compositeDrawables.push_back(&brighten);
 
-	if (bDarken==1)
-		compositeDrawables.push_back(&darken);
+  if (bDarken==1)
+    compositeDrawables.push_back(&darken);
 
-	if (bSolarize==1)
-		compositeDrawables.push_back(&solarize);
+  if (bSolarize==1)
+    compositeDrawables.push_back(&solarize);
 
-	if (bInvert==1)
-		compositeDrawables.push_back(&invert);
+  if (bInvert==1)
+    compositeDrawables.push_back(&invert);
 }
 
 
-void PresetOutputs::PerPixelMath(const PipelineContext &context)
+void
+PresetOutputs::PerPixelMath(const PipelineContext &context)
 {
+  int   x, y;
+  float fZoom2, fZoom2Inv;
 
-	int x, y;
-	float fZoom2, fZoom2Inv;
+  for (x = 0; x < gx; x++)
+  {
+    for (y = 0; y < gy; y++)
+    {
+      fZoom2 = std::pow(this->zoom_mesh[x][y], std::pow(this->zoomexp_mesh[x][y],
+                                                        rad_mesh[x][y] * 2.0f - 1.0f));
+      fZoom2Inv = 1.0f / fZoom2;
+      this->x_mesh[x][y] = this->orig_x[x][y] * 0.5f * fZoom2Inv + 0.5f;
+      this->y_mesh[x][y] = this->orig_y[x][y] * 0.5f * fZoom2Inv + 0.5f;
+    }
+  }
 
-	for (x = 0; x < gx; x++)
-	{
-		for (y = 0; y < gy; y++)
-		{
-			fZoom2 = std::pow(this->zoom_mesh[x][y], std::pow(this->zoomexp_mesh[x][y],
-					rad_mesh[x][y] * 2.0f - 1.0f));
-			fZoom2Inv = 1.0f / fZoom2;
-			this->x_mesh[x][y] = this->orig_x[x][y] * 0.5f * fZoom2Inv + 0.5f;
-			this->y_mesh[x][y] = this->orig_y[x][y] * 0.5f * fZoom2Inv + 0.5f;
-		}
-	}
+  for (x = 0; x < gx; x++)
+  {
+    for (y = 0; y < gy; y++)
+    {
+      this->x_mesh[x][y] = (this->x_mesh[x][y] - this->cx_mesh[x][y])
+                         / this->sx_mesh[x][y] + this->cx_mesh[x][y];
+    }
+  }
 
-	for (x = 0; x < gx; x++)
-	{
-		for (y = 0; y < gy; y++)
-		{
-			this->x_mesh[x][y] = (this->x_mesh[x][y] - this->cx_mesh[x][y])
-					/ this->sx_mesh[x][y] + this->cx_mesh[x][y];
-		}
-	}
+  for (x = 0; x < gx; x++)
+  {
+    for (y = 0; y < gy; y++)
+    {
+      this->y_mesh[x][y] = (this->y_mesh[x][y] - this->cy_mesh[x][y])
+                         / this->sy_mesh[x][y] + this->cy_mesh[x][y];
+    }
+  }
 
-	for (x = 0; x < gx; x++)
-	{
-		for (y = 0; y < gy; y++)
-		{
-			this->y_mesh[x][y] = (this->y_mesh[x][y] - this->cy_mesh[x][y])
-					/ this->sy_mesh[x][y] + this->cy_mesh[x][y];
-		}
-	}
+  float fWarpTime = context.time * this->fWarpAnimSpeed;
+  float fWarpScaleInv = 1.0f / this->fWarpScale;
+  float f[4];
+  f[0] = 11.68f + 4.0f * cosf(fWarpTime * 1.413f + 10);
+  f[1] = 8.77f + 3.0f * cosf(fWarpTime * 1.113f + 7);
+  f[2] = 10.54f + 3.0f * cosf(fWarpTime * 1.233f + 3);
+  f[3] = 11.49f + 4.0f * cosf(fWarpTime * 0.933f + 5);
 
-	float fWarpTime = context.time * this->fWarpAnimSpeed;
-	float fWarpScaleInv = 1.0f / this->fWarpScale;
-	float f[4];
-	f[0] = 11.68f + 4.0f * cosf(fWarpTime * 1.413f + 10);
-	f[1] = 8.77f + 3.0f * cosf(fWarpTime * 1.113f + 7);
-	f[2] = 10.54f + 3.0f * cosf(fWarpTime * 1.233f + 3);
-	f[3] = 11.49f + 4.0f * cosf(fWarpTime * 0.933f + 5);
+  for (x = 0; x < gx; x++)
+  {
+    for (y = 0; y < gy; y++)
+    {
+      this->x_mesh[x][y] += this->warp_mesh[x][y] * 0.0035f * sinf(fWarpTime * 0.333f
+                          + fWarpScaleInv * (this->orig_x[x][y] * f[0] - this->orig_y[x][y] * f[3]));
+      this->y_mesh[x][y] += this->warp_mesh[x][y] * 0.0035f * cosf(fWarpTime * 0.375f
+                          - fWarpScaleInv * (this->orig_x[x][y] * f[2] + this->orig_y[x][y] * f[1]));
+      this->x_mesh[x][y] += this->warp_mesh[x][y] * 0.0035f * cosf(fWarpTime * 0.753f
+                          - fWarpScaleInv * (this->orig_x[x][y] * f[1] - this->orig_y[x][y] * f[2]));
+      this->y_mesh[x][y] += this->warp_mesh[x][y] * 0.0035f * sinf(fWarpTime * 0.825f
+                          + fWarpScaleInv * (this->orig_x[x][y] * f[0] + this->orig_y[x][y] * f[3]));
+    }
+  }
+  for (x = 0; x < gx; x++)
+  {
+    for (y = 0; y < gy; y++)
+    {
+      float u2 = this->x_mesh[x][y] - this->cx_mesh[x][y];
+      float v2 = this->y_mesh[x][y] - this->cy_mesh[x][y];
 
-	for (x = 0; x < gx; x++)
-	{
-		for (y = 0; y < gy; y++)
-		{
-			this->x_mesh[x][y] += this->warp_mesh[x][y] * 0.0035f * sinf(fWarpTime * 0.333f
-					+ fWarpScaleInv * (this->orig_x[x][y] * f[0] - this->orig_y[x][y] * f[3]));
-			this->y_mesh[x][y] += this->warp_mesh[x][y] * 0.0035f * cosf(fWarpTime * 0.375f
-					- fWarpScaleInv * (this->orig_x[x][y] * f[2] + this->orig_y[x][y] * f[1]));
-			this->x_mesh[x][y] += this->warp_mesh[x][y] * 0.0035f * cosf(fWarpTime * 0.753f
-					- fWarpScaleInv * (this->orig_x[x][y] * f[1] - this->orig_y[x][y] * f[2]));
-			this->y_mesh[x][y] += this->warp_mesh[x][y] * 0.0035f * sinf(fWarpTime * 0.825f
-					+ fWarpScaleInv * (this->orig_x[x][y] * f[0] + this->orig_y[x][y] * f[3]));
-		}
-	}
-	for (x = 0; x < gx; x++)
-	{
-		for (y = 0; y < gy; y++)
-		{
-			float u2 = this->x_mesh[x][y] - this->cx_mesh[x][y];
-			float v2 = this->y_mesh[x][y] - this->cy_mesh[x][y];
+      float cos_rot = cosf(this->rot_mesh[x][y]);
+      float sin_rot = sinf(this->rot_mesh[x][y]);
 
-			float cos_rot = cosf(this->rot_mesh[x][y]);
-			float sin_rot = sinf(this->rot_mesh[x][y]);
+      this->x_mesh[x][y] = u2 * cos_rot - v2 * sin_rot + this->cx_mesh[x][y];
+      this->y_mesh[x][y] = u2 * sin_rot + v2 * cos_rot + this->cy_mesh[x][y];
+    }
+  }
 
-			this->x_mesh[x][y] = u2 * cos_rot - v2 * sin_rot + this->cx_mesh[x][y];
-			this->y_mesh[x][y] = u2 * sin_rot + v2 * cos_rot + this->cy_mesh[x][y];
+  for (x = 0; x < gx; x++)
+    for (y = 0; y < gy; y++)
+      this->x_mesh[x][y] -= this->dx_mesh[x][y];
 
-		}
-	}
-
-	for (x = 0; x < gx; x++)
-		for (y = 0; y < gy; y++)
-			this->x_mesh[x][y] -= this->dx_mesh[x][y];
-
-	for (x = 0; x < gx; x++)
-		for (y = 0; y < gy; y++)
-			this->y_mesh[x][y] -= this->dy_mesh[x][y];
-
+  for (x = 0; x < gx; x++)
+    for (y = 0; y < gy; y++)
+      this->y_mesh[x][y] -= this->dy_mesh[x][y];
 }
 
 
-void PresetOutputs::Initialize ( int gx, int gy )
+void
+PresetOutputs::Initialize ( int gx, int gy )
 {
+  assert(gx > 0);
+  this->gx = gx;
+  this->gy= gy;
 
-	assert(gx > 0);
-	this->gx = gx;
-	this->gy= gy;
+  staticPerPixel = true;
+  setStaticPerPixel(gx,gy);
 
-	staticPerPixel = true;
-	setStaticPerPixel(gx,gy);
+  assert(this->gx > 0);
+  int x;
+  this->x_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
+  for ( x = 0; x < gx; x++ )
+  {
+    this->x_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
+  }
+  this->y_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
+  for ( x = 0; x < gx; x++ )
+  {
+    this->y_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
+  }
+  this->sx_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
+  for ( x = 0; x < gx; x++ )
+  {
+    this->sx_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
+  }
+  this->sy_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
+  for ( x = 0; x < gx; x++ )
+  {
+    this->sy_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
+  }
+  this->dx_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
+  for ( x = 0; x < gx; x++ )
+  {
+    this->dx_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
+  }
+  this->dy_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
+  for ( x = 0; x < gx; x++ )
+  {
+    this->dy_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
+  }
+  this->cx_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
+  for ( x = 0; x < gx; x++ )
+  {
+    this->cx_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
+  }
+  this->cy_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
+  for ( x = 0; x < gx; x++ )
+  {
+    this->cy_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
+  }
+  this->zoom_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
+  for ( x = 0; x < gx; x++ )
+  {
+    this->zoom_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
+  }
+  this->zoomexp_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
+  for ( x = 0; x < gx; x++ )
+  {
+    this->zoomexp_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
+  }
+  this->rot_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
+  for ( x = 0; x < gx; x++ )
+  {
+    this->rot_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
+  }
 
-	assert(this->gx > 0);
-	int x;
-	this->x_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
-	for ( x = 0; x < gx; x++ )
-	{
-		this->x_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
-	}
-	this->y_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
-	for ( x = 0; x < gx; x++ )
-	{
-		this->y_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
-	}
-	this->sx_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
-	for ( x = 0; x < gx; x++ )
-	{
-		this->sx_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
-	}
-	this->sy_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
-	for ( x = 0; x < gx; x++ )
-	{
-		this->sy_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
-	}
-	this->dx_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
-	for ( x = 0; x < gx; x++ )
-	{
-		this->dx_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
-	}
-	this->dy_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
-	for ( x = 0; x < gx; x++ )
-	{
-		this->dy_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
-	}
-	this->cx_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
-	for ( x = 0; x < gx; x++ )
-	{
-		this->cx_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
-	}
-	this->cy_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
-	for ( x = 0; x < gx; x++ )
-	{
-		this->cy_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
-	}
-	this->zoom_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
-	for ( x = 0; x < gx; x++ )
-	{
-		this->zoom_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
-	}
-	this->zoomexp_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
-	for ( x = 0; x < gx; x++ )
-	{
-		this->zoomexp_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
-	}
-	this->rot_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
-	for ( x = 0; x < gx; x++ )
-	{
-		this->rot_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
-	}
+  this->warp_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
+  for ( x = 0; x < gx; x++ )
+  {
+    this->warp_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
+  }
+  this->rad_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
+  for ( x = 0; x < gx; x++ )
+  {
+    this->rad_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
+  }
+  this->orig_x = (float **) wipemalloc(gx * sizeof(float *));
+  for (x = 0; x < gx; x++)
+  {
+    this->orig_x[x] = (float *) wipemalloc(gy * sizeof(float));
+  }
+  this->orig_y = (float **) wipemalloc(gx * sizeof(float *));
+  for (x = 0; x < gx; x++)
+  {
+    this->orig_y[x] = (float *) wipemalloc(gy * sizeof(float));
+  }
 
-	this->warp_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
-	for ( x = 0; x < gx; x++ )
-	{
-		this->warp_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
-	}
-	this->rad_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) );
-	for ( x = 0; x < gx; x++ )
-	{
-		this->rad_mesh[x] = ( float * ) wipemalloc ( gy * sizeof ( float ) );
-	}
-	this->orig_x = (float **) wipemalloc(gx * sizeof(float *));
-	for (x = 0; x < gx; x++)
-	{
-		this->orig_x[x] = (float *) wipemalloc(gy * sizeof(float));
-	}
-	this->orig_y = (float **) wipemalloc(gx * sizeof(float *));
-	for (x = 0; x < gx; x++)
-	{
-		this->orig_y[x] = (float *) wipemalloc(gy * sizeof(float));
-	}
+  //initialize reference grid values
+  for (x = 0; x < gx; x++)
+  {
+    for (int y = 0; y < gy; y++)
+    {
+      float origx = x / (float) (gx - 1);
+      float origy = -((y / (float) (gy - 1)) - 1);
 
-		//initialize reference grid values
-		for (x = 0; x < gx; x++)
-		{
-			for (int y = 0; y < gy; y++)
-			{
-				float origx = x / (float) (gx - 1);
-				float origy = -((y / (float) (gy - 1)) - 1);
-
-				rad_mesh[x][y]=hypot ( ( origx-.5 ) *2, ( origy-.5 ) *2 ) * .7071067;
-				orig_x[x][y] = (origx - .5) * 2;
-				orig_y[x][y] = (origy - .5) * 2;
-			}
-		}
+      rad_mesh[x][y]=hypot ( ( origx-.5 ) *2, ( origy-.5 ) *2 ) * .7071067;
+      orig_x[x][y] = (origx - .5) * 2;
+      orig_y[x][y] = (origy - .5) * 2;
+    }
+  }
 }
 
 PresetInputs::~PresetInputs()
 {
-	for ( int x = 0; x < this->gx; x++ )
-	{
+  for ( int x = 0; x < this->gx; x++ )
+  {
+    free ( this->origtheta[x] );
+    free ( this->origrad[x] );
+    free ( this->origx[x] );
+    free ( this->origy[x] );
+
+    free ( this->x_mesh[x] );
+    free ( this->y_mesh[x] );
+    free ( this->rad_mesh[x] );
+    free ( this->theta_mesh[x] );
+  }
 
 
-		free ( this->origtheta[x] );
-		free ( this->origrad[x] );
-		free ( this->origx[x] );
-		free ( this->origy[x] );
+  free ( this->origx );
+  free ( this->origy );
+  free ( this->origrad );
+  free ( this->origtheta );
 
-		free ( this->x_mesh[x] );
-		free ( this->y_mesh[x] );
-		free ( this->rad_mesh[x] );
-		free ( this->theta_mesh[x] );
+  free ( this->x_mesh );
+  free ( this->y_mesh );
+  free ( this->rad_mesh );
+  free ( this->theta_mesh );
 
-	}
+  this->origx = NULL;
+  this->origy = NULL;
+  this->origtheta = NULL;
+  this->origrad = NULL;
 
-
-	free ( this->origx );
-	free ( this->origy );
-	free ( this->origrad );
-	free ( this->origtheta );
-
-	free ( this->x_mesh );
-	free ( this->y_mesh );
-	free ( this->rad_mesh );
-	free ( this->theta_mesh );
-
-	this->origx = NULL;
-	this->origy = NULL;
-	this->origtheta = NULL;
-	this->origrad = NULL;
-
-	this->x_mesh = NULL;
-	this->y_mesh = NULL;
-	this->rad_mesh = NULL;
-	this->theta_mesh = NULL;
+  this->x_mesh = NULL;
+  this->y_mesh = NULL;
+  this->rad_mesh = NULL;
+  this->theta_mesh = NULL;
 }
 
 
 void PresetInputs::resetMesh()
 {
-	int x,y;
+  int x,y;
 
-	assert ( x_mesh );
-	assert ( y_mesh );
-	assert ( rad_mesh );
-	assert ( theta_mesh );
+  assert ( x_mesh );
+  assert ( y_mesh );
+  assert ( rad_mesh );
+  assert ( theta_mesh );
 
-	for ( x=0;x<this->gx;x++ )
-	{
-		for ( y=0;y<this->gy;y++ )
-		{
-			x_mesh[x][y]=this->origx[x][y];
-			y_mesh[x][y]=this->origy[x][y];
-			rad_mesh[x][y]=this->origrad[x][y];
-			theta_mesh[x][y]=this->origtheta[x][y];
-		}
-	}
-
+  for ( x=0;x<this->gx;x++ )
+  {
+    for ( y=0;y<this->gy;y++ )
+    {
+      x_mesh[x][y]=this->origx[x][y];
+      y_mesh[x][y]=this->origy[x][y];
+      rad_mesh[x][y]=this->origrad[x][y];
+      theta_mesh[x][y]=this->origtheta[x][y];
+    }
+  }
 }
 
 
 #ifdef USE_MERGE_PRESET_CODE
-void PresetMerger::MergePresets(PresetOutputs & A, PresetOutputs & B, double ratio, int gx, int gy)
+void
+PresetMerger::MergePresets(PresetOutputs & A, PresetOutputs & B, double ratio, int gx, int gy)
 {
 
-double invratio = 1.0 - ratio;
+  double invratio = 1.0 - ratio;
   //Merge Simple Waveforms
   //
   // All the mess is because of Waveform 7, which is two lines.
@@ -453,65 +452,69 @@
   //Merge Custom Shapes and Custom Waves
 
   for (PresetOutputs::cshape_container::iterator pos = A.customShapes.begin();
-	pos != A.customShapes.end(); ++pos)
-    {
-       (*pos)->a *= invratio;
-       (*pos)->a2 *= invratio;
-       (*pos)->border_a *= invratio;
-    }
+       pos != A.customShapes.end();
+       ++pos)
+  {
+    (*pos)->a *= invratio;
+    (*pos)->a2 *= invratio;
+    (*pos)->border_a *= invratio;
+  }
 
   for (PresetOutputs::cshape_container::iterator pos = B.customShapes.begin();
-	pos != B.customShapes.end(); ++pos)
-    {
-       (*pos)->a *= ratio;
-       (*pos)->a2 *= ratio;
-       (*pos)->border_a *= ratio;
+       pos != B.customShapes.end();
+       ++pos)
+  {
+    (*pos)->a *= ratio;
+    (*pos)->a2 *= ratio;
+    (*pos)->border_a *= ratio;
 
-        A.customShapes.push_back(*pos);
+    A.customShapes.push_back(*pos);
+  }
 
-    }
- for (PresetOutputs::cwave_container::iterator pos = A.customWaves.begin();
-	pos != A.customWaves.end(); ++pos)
+  for (PresetOutputs::cwave_container::iterator pos = A.customWaves.begin();
+       pos != A.customWaves.end();
+       ++pos)
+  {
+    (*pos)->a *= invratio;
+    for (int x=0; x <   (*pos)->samples; x++)
     {
-       (*pos)->a *= invratio;
-      for (int x=0; x <   (*pos)->samples; x++)
-	{
-	   (*pos)->a_mesh[x]= (*pos)->a_mesh[x]*invratio;
-	}
+      (*pos)->a_mesh[x]= (*pos)->a_mesh[x]*invratio;
     }
+  }
 
   for (PresetOutputs::cwave_container::iterator pos = B.customWaves.begin();
-	pos != B.customWaves.end(); ++pos)
+       pos != B.customWaves.end();
+       ++pos)
+  {
+    (*pos)->a *= ratio;
+    for (int x=0; x < (*pos)->samples; x++)
     {
-       (*pos)->a *= ratio;
-      for (int x=0; x < (*pos)->samples; x++)
-	{
-	   (*pos)->a_mesh[x]= (*pos)->a_mesh[x]*ratio;
-	}
-       A.customWaves.push_back(*pos);
+      (*pos)->a_mesh[x]= (*pos)->a_mesh[x]*ratio;
     }
+    A.customWaves.push_back(*pos);
+  }
 
 
   //Interpolate Per-Pixel mesh
 
   for (int x=0;x<gx;x++)
+  {
+    for(int y=0;y<gy;y++)
     {
-      for(int y=0;y<gy;y++)
-	{
-	  A.x_mesh[x][y]  = A.x_mesh[x][y]* invratio + B.x_mesh[x][y]*ratio;
-	}
+      A.x_mesh[x][y]  = A.x_mesh[x][y]* invratio + B.x_mesh[x][y]*ratio;
     }
- for (int x=0;x<gx;x++)
+  }
+  for (int x=0;x<gx;x++)
+  {
+    for(int y=0;y<gy;y++)
     {
-      for(int y=0;y<gy;y++)
-	{
-	  A.y_mesh[x][y]  = A.y_mesh[x][y]* invratio + B.y_mesh[x][y]*ratio;
-	}
+      A.y_mesh[x][y]  = A.y_mesh[x][y]* invratio + B.y_mesh[x][y]*ratio;
     }
+  }
 
 
 
- //Interpolate PerFrame floats
+  //Interpolate PerFrame floats
 
   A.screenDecay = A.screenDecay * invratio + B.screenDecay * ratio;
 
@@ -559,17 +562,17 @@
   //Switch bools and discrete values halfway.  Maybe we should do some interesting stuff here.
 
   if (ratio > 0.5)
-    {
-      A.videoEcho.orientation = B.videoEcho.orientation;
-      A.textureWrap = B.textureWrap;
-      A.bDarkenCenter = B.bDarkenCenter;
-      A.bRedBlueStereo = B.bRedBlueStereo;
-      A.bBrighten = B.bBrighten;
-      A.bDarken = B.bDarken;
-      A.bSolarize = B.bSolarize;
-      A.bInvert = B.bInvert;
-      A.bMotionVectorsOn = B.bMotionVectorsOn;
-    }
+  {
+    A.videoEcho.orientation = B.videoEcho.orientation;
+    A.textureWrap = B.textureWrap;
+    A.bDarkenCenter = B.bDarkenCenter;
+    A.bRedBlueStereo = B.bRedBlueStereo;
+    A.bBrighten = B.bBrighten;
+    A.bDarken = B.bDarken;
+    A.bSolarize = B.bSolarize;
+    A.bInvert = B.bInvert;
+    A.bMotionVectorsOn = B.bMotionVectorsOn;
+  }
 
   return;
 }
diff --git a/src/libprojectM/MilkdropPresetFactory/PresetFrameIO.hpp b/src/libprojectM/MilkdropPresetFactory/PresetFrameIO.hpp
index 229879c..9b7a5a4 100644
--- a/src/libprojectM/MilkdropPresetFactory/PresetFrameIO.hpp
+++ b/src/libprojectM/MilkdropPresetFactory/PresetFrameIO.hpp
@@ -1,5 +1,6 @@
 #ifndef PRESET_FRAME_IO_HPP
 #define PRESET_FRAME_IO_HPP
+
 #include <vector>
 #include "Renderer/MilkdropWaveform.hpp"
 #include "Renderer/Pipeline.hpp"
@@ -14,51 +15,51 @@
 class PresetInputs : public PipelineContext {
 
 public:
-    /* PER_PIXEL VARIBLES BEGIN */
+  /* PER_PIXEL VARIBLES BEGIN */
 
-    float x_per_pixel;
-    float y_per_pixel;
-    float rad_per_pixel;
-    float ang_per_pixel;
+  float x_per_pixel;
+  float y_per_pixel;
+  float rad_per_pixel;
+  float ang_per_pixel;
 
-    /* PER_PIXEL VARIBLES END */
+  /* PER_PIXEL VARIBLES END */
 
-    float bass;
-    float mid;
-    float treb;
-    float bass_att;
-    float mid_att;
-    float treb_att;
+  float bass;
+  float mid;
+  float treb;
+  float bass_att;
+  float mid_att;
+  float treb_att;
 
-    /* variables were added in milkdrop 1.04 */
-    int gx, gy;
+  /* variables were added in milkdrop 1.04 */
+  int gx, gy;
 
-    float **x_mesh;
-    float **y_mesh;
-    float **rad_mesh;
-    float **theta_mesh;
+  float **x_mesh;
+  float **y_mesh;
+  float **rad_mesh;
+  float **theta_mesh;
 
-    float **origtheta;  //grid containing interpolated mesh reference values
-    float **origrad;
-    float **origx;  //original mesh
-    float **origy;
+  float **origtheta;  //grid containing interpolated mesh reference values
+  float **origrad;
+  float **origx;  //original mesh
+  float **origy;
 
-    void resetMesh();
+  void resetMesh();
 
-    ~PresetInputs();
-    PresetInputs();
+  ~PresetInputs();
+  PresetInputs();
 
-    /// Initializes this preset inputs given a mesh size.
-    /// \param gx the width of the mesh 
-    /// \param gy the height of the mesh
-    /// \note This must be called before reading values from this class
-    void Initialize(int gx, int gy);
+  /// Initializes this preset inputs given a mesh size.
+  /// \param gx the width of the mesh
+  /// \param gy the height of the mesh
+  /// \note This must be called before reading values from this class
+  void Initialize(int gx, int gy);
 
-    /// Updates this preset inputs with the latest values from the
-    /// the pipeline context and beat detection unit
-    void update (const BeatDetect & music, const PipelineContext & context);
+  /// Updates this preset inputs with the latest values from the
+  /// the pipeline context and beat detection unit
+  void update (const BeatDetect & music, const PipelineContext & context);
 
-    private:
+private:
 };
 
 
@@ -67,77 +68,77 @@
 /// Every preset object needs a reference to one of these.
 class PresetOutputs : public Pipeline {
 public:
-    typedef std::vector<CustomWave*> cwave_container;
-    typedef std::vector<CustomShape*> cshape_container;
+  typedef std::vector<CustomWave*> cwave_container;
+  typedef std::vector<CustomShape*> cshape_container;
 
-    cwave_container customWaves;
-    cshape_container customShapes;
+  cwave_container customWaves;
+  cshape_container customShapes;
 
-    void Initialize(int gx, int gy);
-    PresetOutputs();
-    ~PresetOutputs();
-    virtual void Render(const BeatDetect &music, const PipelineContext &context);
-    void PerPixelMath( const PipelineContext &context);
-    /* PER FRAME VARIABLES BEGIN */
+  void Initialize(int gx, int gy);
+  PresetOutputs();
+  ~PresetOutputs();
+  virtual void Render(const BeatDetect &music, const PipelineContext &context);
+  void PerPixelMath( const PipelineContext &context);
+  /* PER FRAME VARIABLES BEGIN */
 
-    float zoom;
-    float zoomexp;
-    float rot;
-    float warp;
+  float zoom;
+  float zoomexp;
+  float rot;
+  float warp;
 
-    float sx;
-    float sy;
-    float dx;
-    float dy;
-    float cx;
-    float cy;
+  float sx;
+  float sy;
+  float dx;
+  float dy;
+  float cx;
+  float cy;
 
-    VideoEcho videoEcho;
+  VideoEcho videoEcho;
 
-    MilkdropWaveform wave;
-    Border border;
-    MotionVectors mv;
-    DarkenCenter darkenCenter;
+  MilkdropWaveform wave;
+  Border border;
+  MotionVectors mv;
+  DarkenCenter darkenCenter;
 
-    Brighten brighten;
-    Darken darken;
-    Invert invert;
-    Solarize solarize;
+  Brighten brighten;
+  Darken darken;
+  Invert invert;
+  Solarize solarize;
 
 
-    int gy,gx;
-    /* PER_FRAME VARIABLES END */
+  int gy,gx;
+  /* PER_FRAME VARIABLES END */
 
-    float fRating;
-    float fGammaAdj;
+  float fRating;
+  float fGammaAdj;
 
-    bool bDarkenCenter;
-    bool bRedBlueStereo;
-    bool bBrighten;
-    bool bDarken;
-    bool bSolarize;
-    bool bInvert;
-    bool bMotionVectorsOn;
+  bool bDarkenCenter;
+  bool bRedBlueStereo;
+  bool bBrighten;
+  bool bDarken;
+  bool bSolarize;
+  bool bInvert;
+  bool bMotionVectorsOn;
 
-    float fWarpAnimSpeed;
-    float fWarpScale;
-    float fShader;
+  float fWarpAnimSpeed;
+  float fWarpScale;
+  float fShader;
 
-    float **zoom_mesh;
-    float **zoomexp_mesh;
-    float **rot_mesh;
+  float **zoom_mesh;
+  float **zoomexp_mesh;
+  float **rot_mesh;
 
-    float **sx_mesh;
-    float **sy_mesh;
-    float **dx_mesh;
-    float **dy_mesh;
-    float **cx_mesh;
-    float **cy_mesh;
-    float **warp_mesh;
+  float **sx_mesh;
+  float **sy_mesh;
+  float **dx_mesh;
+  float **dy_mesh;
+  float **cx_mesh;
+  float **cy_mesh;
+  float **warp_mesh;
 
-    float **orig_x;  //original mesh
-    float **orig_y;
-    float **rad_mesh;
+  float **orig_x;  //original mesh
+  float **orig_y;
+  float **rad_mesh;
 };
 
 
diff --git a/src/libprojectM/PCM.cpp b/src/libprojectM/PCM.cpp
index 5ce9d9a..1caebd4 100644
--- a/src/libprojectM/PCM.cpp
+++ b/src/libprojectM/PCM.cpp
@@ -1,6 +1,6 @@
 /**
  * projectM -- Milkdrop-esque visualisation SDK
- * Copyright (C)2003-2004 projectM Team
+ * Copyright (C) 2003-2004 projectM Team
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -24,7 +24,6 @@
  * Takes sound data from wherever and hands it back out.
  * Returns PCM Data or spectrum data, or the derivative of the PCM data
  */
-
 #include <stdlib.h>
 #include <stdio.h>
 
@@ -33,225 +32,234 @@
 #include "fftsg.h"
 #include "PCM.hpp"
 #include <cassert>
+#include <iostream>
+
 
 int PCM::maxsamples = 2048;
 
-//initPCM(int samples)
+
+//initPCM (int samples)
 //
 //Initializes the PCM buffer to
 // number of samples specified.
-#include <iostream>
-PCM::PCM() {
-    initPCM( 2048 );
 
-    #ifdef DEBUG
-    std::cerr << "[PCM] MAX SAMPLES:" << maxsamples << std::endl;
-    #endif
-  }
+PCM::PCM ()
+{
+  initPCM (2048);
 
-void PCM::initPCM(int samples) {
+#ifdef DEBUG
+  std::cerr << "[PCM] MAX SAMPLES:" << maxsamples << std::endl;
+#endif
+}
+
+void
+PCM::initPCM (int samples)
+{
   int i;
 
-    waveSmoothing = 0;
+  waveSmoothing = 0;
 
   //Allocate memory for PCM data buffer
-    assert(samples == 2048);
-  PCMd = (float **)wipemalloc(2 * sizeof(float *));
-  PCMd[0] = (float *)wipemalloc(samples * sizeof(float));
-  PCMd[1] = (float *)wipemalloc(samples * sizeof(float));
+  assert (samples == 2048);
+  PCMd    = (float **) wipemalloc (2 * sizeof (float *));
+  PCMd[0] = (float *) wipemalloc (samples * sizeof (float));
+  PCMd[1] = (float *) wipemalloc (samples * sizeof (float));
 
   //maxsamples=samples;
-  newsamples=0;
-    numsamples = maxsamples;
+  newsamples = 0;
+  numsamples = maxsamples;
 
   //Initialize buffers to 0
-  for (i=0;i<samples;i++)
-    {
-      PCMd[0][i]=0;
-      PCMd[1][i]=0;
-    }
+  for (i = 0;  i < samples;  i++) {
+    PCMd[0][i] =
+    PCMd[1][i] = 0;
+  }
 
-  start=0;
+  start = 0;
 
   //Allocate FFT workspace
-  w=  (double *)wipemalloc(maxsamples*sizeof(double));
-  ip= (int *)wipemalloc(maxsamples*sizeof(int));
-  ip[0]=0;
+  w = (double *) wipemalloc (maxsamples * sizeof (double));
+  ip = (int *) wipemalloc (maxsamples * sizeof (int));
+  ip[0] = 0;
 
 
-    /** PCM data */
-//    this->maxsamples = 2048;
-//    this->numsamples = 0;
-//    this->pcmdataL = NULL;
-//    this->pcmdataR = NULL;
+  /** PCM data */
+  //    this->maxsamples = 2048;
+  //    this->numsamples = 0;
+  //    this->pcmdataL = NULL;
+  //    this->pcmdataR = NULL;
 
-    /** Allocate PCM data structures */
-    pcmdataL=(float *)wipemalloc(this->maxsamples*sizeof(float));
-    pcmdataR=(float *)wipemalloc(this->maxsamples*sizeof(float));
+  /** Allocate PCM data structures */
+  pcmdataL = (float *) wipemalloc (this->maxsamples * sizeof (float));
+  pcmdataR = (float *) wipemalloc (this->maxsamples * sizeof (float));
 
 }
 
-PCM::~PCM() {
-
-	free(pcmdataL);
-	free(pcmdataR);
-	free(w);
-	free(ip);
-
-	free(PCMd[0]);
-	free(PCMd[1]);
-	free(PCMd);
-
-}
-
-#include <iostream>
-
-void PCM::addPCMfloat(const float *PCMdata, int samples)
+PCM::~PCM ()
 {
-  int i,j;
+  free (pcmdataL);
+  free (pcmdataR);
+  free (w);
+  free (ip);
 
-  for(i=0;i<samples;i++)
-    {
-      j=i+start;
+  free (PCMd[0]);
+  free (PCMd[1]);
+  free (PCMd);
+}
 
-      if (PCMdata[i] != 0 ) {
 
-	PCMd[0][j%maxsamples] = PCMdata[i];
-	PCMd[1][j%maxsamples] = PCMdata[i];
+void
+PCM::addPCMfloat (const float *PCMdata, int samples)
+{
+  int i, j;
 
-      }
-      else
-	{
-	  PCMd[0][j % maxsamples] = 0;
-	  PCMd[1][j % maxsamples] = 0;
-	}
+  for (i = 0;  i < samples;  i++)
+  {
+    j = i + start;
+
+    if (PCMdata[i] != 0 ) {
+      PCMd[0][j % maxsamples] = PCMdata[i];
+      PCMd[1][j % maxsamples] = PCMdata[i];
+    } else {
+      PCMd[0][j % maxsamples] = 0;
+      PCMd[1][j % maxsamples] = 0;
     }
+  }
 
-  start+=samples;
-  start=start%maxsamples;
+  start += samples;
+  start = start % maxsamples;
 
- newsamples+=samples;
- if (newsamples>maxsamples) newsamples=maxsamples;
-  numsamples = getPCMnew(pcmdataR,1,0,waveSmoothing,0,0);
-    getPCMnew(pcmdataL,0,0,waveSmoothing,0,1);
-    getPCM(vdataL,512,0,1,0,0);
-    getPCM(vdataR,512,1,1,0,0);
+  newsamples += samples;
+  if (newsamples > maxsamples)
+    newsamples = maxsamples;
+
+  numsamples = getPCMnew (pcmdataR, 1, 0, waveSmoothing, 0, 0);
+  getPCMnew (pcmdataL, 0, 0, waveSmoothing, 0, 1);
+  getPCM (vdataL, 512, 0, 1, 0, 0);
+  getPCM (vdataR, 512, 1, 1, 0, 0);
 }
 
-void PCM::addPCM16Data(const short* pcm_data, short samples)  {
-   int i, j;
-
-   for (i = 0; i < samples; ++i) {
-      j=i+start;
-      PCMd[0][j % maxsamples]=(pcm_data[i * 2 + 0]/16384.0);
-      PCMd[1][j % maxsamples]=(pcm_data[i * 2 + 1]/16384.0);
-   }
-
-   start = (start + samples) % maxsamples;
-
-   newsamples+=samples;
-   if (newsamples>maxsamples) newsamples=maxsamples;
-     numsamples = getPCMnew(pcmdataR,1,0,waveSmoothing,0,0);
-    getPCMnew(pcmdataL,0,0,waveSmoothing,0,1);
-    getPCM(vdataL,512,0,1,0,0);
-    getPCM(vdataR,512,1,1,0,0);
-}
-
-
-void PCM::addPCM16(short PCMdata[2][512])
+void
+PCM::addPCM16Data (const short* pcm_data, short samples)
 {
-  int i,j;
+  int i, j;
+
+  for (i = 0;  i < samples;  ++i) {
+    j = i + start;
+    PCMd[0][j % maxsamples] = (pcm_data[i * 2 + 0] / 16384.0);
+    PCMd[1][j % maxsamples] = (pcm_data[i * 2 + 1] / 16384.0);
+  }
+
+  start = (start + samples) % maxsamples;
+
+  newsamples += samples;
+  if (newsamples > maxsamples)
+    newsamples = maxsamples;
+
+  numsamples = getPCMnew (pcmdataR, 1, 0, waveSmoothing, 0, 0);
+  getPCMnew (pcmdataL, 0, 0, waveSmoothing, 0, 1);
+  getPCM (vdataL, 512, 0, 1, 0, 0);
+  getPCM (vdataR, 512, 1, 1, 0, 0);
+}
+
+
+void
+PCM::addPCM16 (short PCMdata[2][512])
+{
+  int i, j;
   int samples=512;
 
-	 for(i=0;i<samples;i++)
-	   {
-	     j=i+start;
-         if ( PCMdata[0][i] != 0 && PCMdata[1][i] != 0 ) {
-	         PCMd[0][j%maxsamples]=(PCMdata[0][i]/16384.0);
-	         PCMd[1][j%maxsamples]=(PCMdata[1][i]/16384.0);
-          } else {
-             PCMd[0][j % maxsamples] = (float)0;
-             PCMd[1][j % maxsamples] = (float)0;
-          }
-	   }
+  for (i = 0;  i < samples; i++) {
+    j = i + start;
+    if (PCMdata[0][i] != 0  &&  PCMdata[1][i] != 0) {
+      PCMd[0][j % maxsamples] = (PCMdata[0][i] / 16384.0);
+      PCMd[1][j % maxsamples] = (PCMdata[1][i] / 16384.0);
+    } else {
+      PCMd[0][j % maxsamples] = (float) 0;
+      PCMd[1][j % maxsamples] = (float) 0;
+    }
+  }
 
-	 // printf("Added %d samples %d %d %f\n",samples,start,(start+samples)%maxsamples,PCM[0][start+10]);
+  // printf ("Added %d samples %d %d %f\n", samples, start,(start+samples)%maxsamples, PCM[0][start+10]);
 
- start+=samples;
- start=start%maxsamples;
+  start += samples;
+  start = start % maxsamples;
 
- newsamples+=samples;
- if (newsamples>maxsamples) newsamples=maxsamples;
+  newsamples += samples;
+  if (newsamples > maxsamples)
+    newsamples = maxsamples;
 
-    numsamples = getPCMnew(pcmdataR,1,0,waveSmoothing,0,0);
-    getPCMnew(pcmdataL,0,0,waveSmoothing,0,1);
-    getPCM(vdataL,512,0,1,0,0);
-    getPCM(vdataR,512,1,1,0,0);
+  numsamples = getPCMnew (pcmdataR, 1, 0, waveSmoothing, 0, 0);
+  getPCMnew (pcmdataL, 0, 0, waveSmoothing, 0, 1);
+  getPCM (vdataL, 512, 0, 1, 0, 0);
+  getPCM (vdataR, 512, 1, 1, 0, 0);
 }
 
 
-void PCM::addPCM8( unsigned char PCMdata[2][1024])
+void
+PCM::addPCM8 (unsigned char PCMdata[2][1024])
 {
-  int i,j;
-  int samples=1024;
+  int i, j;
+  int samples = 1024;
+
+  for (i = 0;  i < samples;  i++) {
+    j = i + start;
+    if (PCMdata[0][i] != 0  &&  PCMdata[1][i] != 0) {
+      PCMd[0][j % maxsamples] = ((float) (PCMdata[0][i] - 128.0) / 64);
+      PCMd[1][j % maxsamples] = ((float) (PCMdata[1][i] - 128.0) / 64);
+    } else {
+      PCMd[0][j % maxsamples] = 0;
+      PCMd[1][j % maxsamples] = 0;
+    }
+  }
 
 
-	 for(i=0;i<samples;i++)
-	   {
-	     j=i+start;
-         if ( PCMdata[0][i] != 0 && PCMdata[1][i] != 0 ) {
-	         PCMd[0][j%maxsamples]=( (float)( PCMdata[0][i] - 128.0 ) / 64 );
-	         PCMd[1][j%maxsamples]=( (float)( PCMdata[1][i] - 128.0 ) / 64 );
-          } else {
-             PCMd[0][j % maxsamples] = 0;
-             PCMd[1][j % maxsamples] = 0;
-          }
-	   }
+  // printf ("Added %d samples %d %d %f\n", samples, start,(start+samples)%maxsamples, PCM[0][start+10]);
 
+  start += samples;
+  start = start % maxsamples;
 
-	 // printf("Added %d samples %d %d %f\n",samples,start,(start+samples)%maxsamples,PCM[0][start+10]);
+  newsamples += samples;
+  if (newsamples > maxsamples)
+    newsamples = maxsamples;
 
- start+=samples;
- start=start%maxsamples;
-
- newsamples+=samples;
- if (newsamples>maxsamples) newsamples=maxsamples;
-    numsamples = getPCMnew(pcmdataR,1,0,waveSmoothing,0,0);
-    getPCMnew(pcmdataL,0,0,waveSmoothing,0,1);
-    getPCM(vdataL,512,0,1,0,0);
-    getPCM(vdataR,512,1,1,0,0);
+  numsamples = getPCMnew (pcmdataR, 1, 0, waveSmoothing, 0, 0);
+  getPCMnew (pcmdataL, 0, 0, waveSmoothing, 0, 1);
+  getPCM (vdataL, 512, 0, 1, 0, 0);
+  getPCM (vdataR, 512, 1, 1, 0, 0);
 }
 
-void PCM::addPCM8_512( const unsigned char PCMdata[2][512])
+void
+PCM::addPCM8_512 (const unsigned char PCMdata[2][512])
 {
-  int i,j;
-  int samples=512;
+  int i, j;
+  int samples = 512;
+
+  for (i = 0;  i < samples;  i++) {
+    j = i + start;
+    if (PCMdata[0][i] != 0  &&  PCMdata[1][i] != 0) {
+      PCMd[0][j % maxsamples] = ((float) (PCMdata[0][i] - 128.0) / 64);
+      PCMd[1][j % maxsamples] = ((float) (PCMdata[1][i] - 128.0) / 64);
+    } else {
+      PCMd[0][j % maxsamples] = 0;
+      PCMd[1][j % maxsamples] = 0;
+    }
+  }
 
 
-	 for(i=0;i<samples;i++)
-	   {
-	     j=i+start;
-         if ( PCMdata[0][i] != 0 && PCMdata[1][i] != 0 ) {
-	         PCMd[0][j%maxsamples]=( (float)( PCMdata[0][i] - 128.0 ) / 64 );
-	         PCMd[1][j%maxsamples]=( (float)( PCMdata[1][i] - 128.0 ) / 64 );
-          } else {
-             PCMd[0][j % maxsamples] = 0;
-             PCMd[1][j % maxsamples] = 0;
-          }
-	   }
+  // printf ("Added %d samples %d %d %f\n", samples, start,(start+samples)%maxsamples, PCM[0][start+10]);
 
+  start += samples;
+  start = start % maxsamples;
 
-	 // printf("Added %d samples %d %d %f\n",samples,start,(start+samples)%maxsamples,PCM[0][start+10]);
+  newsamples += samples;
+  if (newsamples > maxsamples)
+    newsamples = maxsamples;
 
- start+=samples;
- start=start%maxsamples;
-
- newsamples+=samples;
- if (newsamples>maxsamples) newsamples=maxsamples;
-    numsamples = getPCMnew(pcmdataR,1,0,waveSmoothing,0,0);
-    getPCMnew(pcmdataL,0,0,waveSmoothing,0,1);
-    getPCM(vdataL,512,0,1,0,0);
-    getPCM(vdataR,512,1,1,0,0);
+  numsamples = getPCMnew (pcmdataR, 1, 0, waveSmoothing, 0, 0);
+  getPCMnew (pcmdataL, 0, 0, waveSmoothing, 0, 1);
+  getPCM (vdataL, 512, 0, 1, 0, 0);
+  getPCM (vdataR, 512, 1, 1, 0, 0);
 }
 
 
@@ -264,46 +272,54 @@
 
 //returned values are normalized from -1 to 1
 
-void PCM::getPCM(float *PCMdata, int samples, int channel, int freq, float smoothing, int derive)
+void
+PCM::getPCM (
+float *PCMdata,
+int   samples,
+int   channel,
+int   freq,
+float smoothing,
+int   derive
+)
 {
-   int i,index;
+  int i, index;
 
-   index=start-1;
+  index = start - 1;
 
-   if (index<0) index=maxsamples+index;
+  if (index < 0)
+    index = maxsamples + index;
 
-   PCMdata[0]=PCMd[channel][index];
+  PCMdata[0] = PCMd[channel][index];
 
-   for(i=1;i<samples;i++)
-     {
-       index=start-1-i;
-       if (index<0) index=maxsamples+index;
+  for (i = 1;  i < samples;  i++) {
+    index = start - 1 - i;
+    if (index < 0)
+      index = maxsamples + index;
 
-       PCMdata[i]=(1-smoothing)*PCMd[channel][index]+smoothing*PCMdata[i-1];
-     }
+    PCMdata[i] = (1 - smoothing) * PCMd[channel][index]
+               + smoothing * PCMdata[i - 1];
+  }
 
-   //return derivative of PCM data
-   if(derive)
-     {
-       for(i=0;i<samples-1;i++)
-	 {
-	   PCMdata[i]=PCMdata[i]-PCMdata[i+1];
-	 }
-       PCMdata[samples-1]=0;
-     }
+  //return derivative of PCM data
+  if (derive) {
+    for (i = 0;  i < samples - 1;  i++) {
+      PCMdata[i] = PCMdata[i] - PCMdata[i + 1];
+    }
+    PCMdata[samples-1] = 0;
+  }
 
-   //return frequency data instead of PCM (perform FFT)
+  //return frequency data instead of PCM (perform FFT)
 
-   if (freq)
+  if (freq) {
+    double temppcm[1024];
 
-     {
-       double temppcm[1024];
-       for (int i=0;i<samples;i++)
-	 {temppcm[i]=(double)PCMdata[i];}
-       rdft(samples, 1, temppcm, ip, w);
-       for (int j=0;j<samples;j++)
-	 {PCMdata[j]=(float)temppcm[j];}
-     }
+    for (int i = 0;  i < samples;  i++)
+      {temppcm[i] = (double) PCMdata[i];}
+
+    rdft (samples, 1, temppcm, ip, w);
+    for (int j = 0;  j < samples;  j++)
+      {PCMdata[j] = (float) temppcm[j];}
+  }
 }
 
 //getPCMnew
@@ -311,49 +327,59 @@
 //Like getPCM except it returns all new samples in the buffer
 //the actual return value is the number of samples, up to maxsamples.
 //the passed pointer, PCMData, must bee able to hold up to maxsamples
-
-int PCM::getPCMnew(float *PCMdata, int channel, int freq, float smoothing, int derive, int reset)
+//
+int
+PCM::getPCMnew (
+float *PCMdata,
+int   channel,
+int   freq,
+float smoothing,
+int   derive,
+int   reset
+)
 {
-   int i,index;
+  int i, index;
 
-   index=start-1;
+  index = start - 1;
 
-   if (index<0) index=maxsamples+index;
+  if (index < 0)
+    index = maxsamples + index;
 
-   PCMdata[0]=PCMd[channel][index];
-   for(i=1;i<newsamples;i++)
-     {
-       index=start-1-i;
-       if (index<0) index=maxsamples+index;
+  PCMdata[0] = PCMd[channel][index];
+  for (i = 1;  i < newsamples;  i++) {
+    index = start - 1 - i;
+    if (index < 0)
+      index = maxsamples + index;
 
-       PCMdata[i]=(1-smoothing)*PCMd[channel][index]+smoothing*PCMdata[i-1];
-     }
+    PCMdata[i] = (1 - smoothing) * PCMd[channel][index]
+              + smoothing * PCMdata[i-1];
+  }
 
-   //return derivative of PCM data
-   if(derive)
-     {
-       for(i=0;i<newsamples-1;i++)
-	 {
-	   PCMdata[i]=PCMdata[i]-PCMdata[i+1];
-	 }
-       PCMdata[newsamples-1]=0;
-     }
+  //return derivative of PCM data
+  if (derive) {
+    for (i = 0;  i < newsamples - 1;  i++) {
+      PCMdata[i] = PCMdata[i] - PCMdata[i + 1];
+    }
+    PCMdata[newsamples-1] = 0;
+  }
 
-   //return frequency data instead of PCM (perform FFT)
-   //   if (freq) rdft(samples, 1, PCMdata, ip, w);
-   i=newsamples;
-   if (reset)  newsamples=0;
+  //return frequency data instead of PCM (perform FFT)
+  //   if (freq) rdft (samples, 1, PCMdata, ip, w);
+  i = newsamples;
+  if (reset)  newsamples = 0;
 
-   return i;
+  return i;
 }
 
 //Free stuff
-void PCM::freePCM() {
-  free(PCMd[0]);
-  free(PCMd[1]);
-  free(PCMd);
-  free(ip);
-  free(w);
+void
+PCM::freePCM ()
+{
+  free (PCMd[0]);
+  free (PCMd[1]);
+  free (PCMd);
+  free (ip);
+  free (w);
 
   PCMd = NULL;
   ip = NULL;
diff --git a/src/libprojectM/PCM.hpp b/src/libprojectM/PCM.hpp
index 5888e84..92330a6 100644
--- a/src/libprojectM/PCM.hpp
+++ b/src/libprojectM/PCM.hpp
@@ -29,46 +29,47 @@
 #ifndef _PCM_H
 #define _PCM_H
 
+
 #include "dlldefs.h"
 
+
 class 
 #ifdef WIN32 
 DLLEXPORT 
 #endif 
 PCM {
 public:
-    float **PCMd;
-    int start;
+  float   **PCMd;
+  int     start;
 
-    /** Use wave smoothing */
-    float waveSmoothing;
+  /** Use wave smoothing */
+  float   waveSmoothing;
 
-    int *ip;
-    double *w;
-    int newsamples;
+  int     *ip;
+  double  *w;
+  int     newsamples;
 
-    int numsamples; //size of new PCM info
-    float *pcmdataL;     //holder for most recent pcm data
-    float *pcmdataR;     //holder for most recent pcm data
+  int     numsamples; //size of new PCM info
+  float   *pcmdataL;     //holder for most recent pcm data
+  float   *pcmdataR;     //holder for most recent pcm data
 
-    /** PCM data */
-    float vdataL[512];  //holders for FFT data (spectrum)
-    float vdataR[512];
+  /** PCM data */
+  float   vdataL[512];  //holders for FFT data (spectrum)
+  float   vdataR[512];
 
-    static int maxsamples;
-    PCM();
-    ~PCM();
-    void initPCM(int maxsamples);
-    void addPCMfloat(const float *PCMdata, int samples);
-    void addPCM16(short [2][512]);
-    void addPCM16Data(const short* pcm_data, short samples);
-    void addPCM8( unsigned char [2][1024]);
-	void addPCM8_512( const unsigned char [2][512]);
-    void getPCM(float *data, int samples, int channel, int freq, float smoothing, int derive);
-    void freePCM();
-    int getPCMnew(float *PCMdata, int channel, int freq, float smoothing, int derive,int reset);
+  static int  maxsamples;
 
-
-  };
+        PCM();
+        ~PCM();
+  void  initPCM (int maxsamples);
+  void  addPCMfloat (const float *PCMdata, int samples);
+  void  addPCM16 (short [2][512]);
+  void  addPCM16Data (const short* pcm_data, short samples);
+  void  addPCM8 (unsigned char [2][1024]);
+  void  addPCM8_512 (const unsigned char [2][512]);
+  void  getPCM (float *data, int samples, int channel, int freq, float smoothing, int derive);
+  void  freePCM ();
+  int   getPCMnew (float *PCMdata, int channel, int freq, float smoothing, int derive,int reset);
+};
 
 #endif /** !_PCM_H */
diff --git a/src/libprojectM/PipelineMerger.cpp b/src/libprojectM/PipelineMerger.cpp
index 56640c9..ffb7be2 100644
--- a/src/libprojectM/PipelineMerger.cpp
+++ b/src/libprojectM/PipelineMerger.cpp
@@ -2,122 +2,134 @@
 #include "RenderItemMatcher.hpp"
 #include "RenderItemMergeFunction.hpp"
 
+
+/*  FIXME: Use math.h constants.  */
 const double PipelineMerger::e(2.71828182845904523536);
 const double PipelineMerger::s(0.5);
 
-void PipelineMerger::mergePipelines(const Pipeline & a, const Pipeline & b, Pipeline & out, RenderItemMatcher::MatchResults & results, RenderItemMergeFunction & mergeFunction, float ratio)
 
+void
+PipelineMerger::mergePipelines (
+const Pipeline                  &a,
+const Pipeline                  &b,
+Pipeline                        &out,
+RenderItemMatcher::MatchResults &results,
+RenderItemMergeFunction         &mergeFunction,
+float                           ratio
+)
 {
+  const double x = (ratio - 0.5) * 20;
+  const double sigmoid = 1.0 / (1.0 + e - s * x);
+  const double invratio = 1.0 - ratio;
 
-	const double x = ( ratio - 0.5 ) * 20;
-	const double sigmoid = 1.0 / ( 1.0 + e - s * x );
-	const double invratio = 1.0 - ratio;
+  out.textureWrap = (ratio < 0.5) ? a.textureWrap : b.textureWrap;
 
-	out.textureWrap = ( ratio < 0.5 ) ? a.textureWrap : b.textureWrap;
+  out.screenDecay = lerp (b.screenDecay, a.screenDecay, ratio);
 
-	out.screenDecay = lerp ( b.screenDecay, a.screenDecay, ratio );
+  out.drawables.clear();
+  out.compositeDrawables.clear();
 
-	out.drawables.clear();
-	out.compositeDrawables.clear();
+  for (std::vector<RenderItem*>::const_iterator pos = a.drawables.begin();
+       pos != a.drawables.end();
+       ++pos)
+  {
+    (*pos)->masterAlpha = invratio;
+    out.drawables.push_back (*pos);
+  }
 
-	for ( std::vector<RenderItem*>::const_iterator pos = a.drawables.begin();
-	        pos != a.drawables.end(); ++pos )
-	{
-		( *pos )->masterAlpha = invratio;
-		out.drawables.push_back ( *pos );
-	}
+  for (std::vector<RenderItem*>::const_iterator pos = b.drawables.begin();
+       pos != b.drawables.end();
+       ++pos)
+  {
+    (*pos)->masterAlpha = ratio;
+    out.drawables.push_back (*pos);
+  }
 
-	for ( std::vector<RenderItem*>::const_iterator pos = b.drawables.begin();
-	        pos != b.drawables.end();++pos )
-	{
-		( *pos )->masterAlpha = ratio;
-		out.drawables.push_back ( *pos );
-	}
+  if (ratio < 0.5) {
+    const double local_ratio = (invratio - 0.5) * 2;
 
-    if(ratio < 0.5)
+    for (std::vector<RenderItem*>::const_iterator pos = a.compositeDrawables.begin();
+         pos != a.compositeDrawables.end();
+         ++pos)
     {
-        const double local_ratio = (invratio - 0.5) * 2;
-
-        for (std::vector<RenderItem*>::const_iterator pos = a.compositeDrawables.begin();
-        pos != a.compositeDrawables.end(); ++pos)
-        {
-            (*pos)->masterAlpha = local_ratio;
-            out.compositeDrawables.push_back(*pos);
-        }
+      (*pos)->masterAlpha = local_ratio;
+      out.compositeDrawables.push_back (*pos);
     }
-    else
+  } else {
+    const double local_ratio = (ratio - 0.5) * 2;
+
+    for (std::vector<RenderItem*>::const_iterator pos = b.compositeDrawables.begin();
+         pos != b.compositeDrawables.end();
+         ++pos)
     {
-        const double local_ratio = (ratio - 0.5) * 2;
-
-        for (std::vector<RenderItem*>::const_iterator pos = b.compositeDrawables.begin();
-        pos != b.compositeDrawables.end();++pos)
-        {
-            (*pos)->masterAlpha = local_ratio;
-            out.compositeDrawables.push_back(*pos);
-        }
+      (*pos)->masterAlpha = local_ratio;
+      out.compositeDrawables.push_back (*pos);
     }
+  }
 
-	/*
-	for (RenderItemMatchList::iterator pos = results.matches.begin(); pos != results.matches.end(); ++pos) {
+  /*
+  for (RenderItemMatchList::iterator pos = results.matches.begin();
+       pos != results.matches.end();
+       ++pos)
+  {
+    RenderItem * itemA = pos->first;
+    RenderItem * itemB = pos->second;
 
-		RenderItem * itemA = pos->first;
-		RenderItem * itemB = pos->second;
+    RenderItem * itemC = mergeFunction(itemA, itemB, ratio);
 
-		RenderItem * itemC = mergeFunction(itemA, itemB, ratio);
-
-		if (itemC == 0) {
-			itemA->masterAlpha = ratio;
-	        	out.drawables.push_back(itemA);
-			itemB->masterAlpha = invratio;
-	        	out.drawables.push_back(itemB);
-		} else
-			out.drawables.push_back(itemC);
-
-	}
+    if (itemC == 0) {
+      itemA->masterAlpha = ratio;
+      out.drawables.push_back (itemA);
+      itemB->masterAlpha = invratio;
+      out.drawables.push_back (itemB);
+    } else
+      out.drawables.push_back (itemC);
+  }
 
 
-	for (std::vector<RenderItem*>::const_iterator pos = results.unmatchedLeft.begin();
-		pos != results.unmatchedLeft.end(); ++pos)
-	    {
-	       (*pos)->masterAlpha = invratio;
-	       out.drawables.push_back(*pos);
-	    }
+  for (std::vector<RenderItem*>::const_iterator pos = results.unmatchedLeft.begin();
+       pos != results.unmatchedLeft.end();
+       ++pos)
+  {
+    (*pos)->masterAlpha = invratio;
+    out.drawables.push_back (*pos);
+  }
 
-	for (std::vector<RenderItem*>::const_iterator pos = results.unmatchedRight.begin();
-		pos != results.unmatchedRight.end(); ++pos)
-		{
-		  (*pos)->masterAlpha = ratio;
-		   out.drawables.push_back(*pos);
-		}
-	*/
+  for (std::vector<RenderItem*>::const_iterator pos = results.unmatchedRight.begin();
+       pos != results.unmatchedRight.end();
+       ++pos)
+  {
+    (*pos)->masterAlpha = ratio;
+    out.drawables.push_back (*pos);
+  }
+  */
 
-	if (a.staticPerPixel && b.staticPerPixel)
-	{
-		out.staticPerPixel = true;
-		 for (int x=0;x<a.gx;x++)
-		    {
-		      for(int y=0;y<a.gy;y++)
-			{
-			  out.x_mesh[x][y]  = a.x_mesh[x][y]* invratio + b.x_mesh[x][y]*ratio;
-			}
-		    }
-		 for (int x=0;x<a.gx;x++)
-		    {
-		      for(int y=0;y<a.gy;y++)
-			{
-			  out.y_mesh[x][y]  = a.y_mesh[x][y]* invratio + b.y_mesh[x][y]*ratio;
-			}
-		    }
-	}
-
-    if(ratio < 0.5)
+  if (a.staticPerPixel  &&  b.staticPerPixel) {
+    out.staticPerPixel = true;
+    for (int x = 0;  x < a.gx;  x++)
     {
-	out.compositeShader = a.compositeShader;
-	out.warpShader = a.warpShader;
+      for (int y = 0;  y < a.gy;  y++)
+      {
+        out.x_mesh[x][y]  = a.x_mesh[x][y] * invratio + b.x_mesh[x][y] * ratio;
+      }
     }
-    else
+    for (int x = 0;  x < a.gx;  x++)
     {
-      out.compositeShader = b.compositeShader;
-      out.warpShader = b.warpShader;
+      for (int y = 0;  y < a.gy;  y++)
+      {
+        out.y_mesh[x][y]  = a.y_mesh[x][y] * invratio + b.y_mesh[x][y] * ratio;
+      }
     }
+  }
+
+  if (ratio < 0.5)
+  {
+    out.compositeShader = a.compositeShader;
+    out.warpShader = a.warpShader;
+  }
+  else
+  {
+    out.compositeShader = b.compositeShader;
+    out.warpShader = b.warpShader;
+  }
 }
diff --git a/src/libprojectM/PipelineMerger.hpp b/src/libprojectM/PipelineMerger.hpp
index a0bba91..5d37bae 100644
--- a/src/libprojectM/PipelineMerger.hpp
+++ b/src/libprojectM/PipelineMerger.hpp
@@ -1,28 +1,31 @@
 #ifndef PRESET_MERGE_HPP
 #define PRESET_MERGE_HPP
+
 #include "Preset.hpp"
 #include "Pipeline.hpp"
 #include "RenderItemMatcher.hpp"
 #include "RenderItemMergeFunction.hpp"
 
+
 class PipelineMerger
 {
- template <class T> inline static T lerp(T a, T b, float ratio)
-{
-  return a * ratio + b * (1 - ratio);
-}
+  template <class T> inline static T lerp(T a, T b, float ratio)
+  {
+    return a * ratio + b * (1 - ratio);
+  }
 
 public:
-    
-  static void mergePipelines(const Pipeline &a,  const Pipeline &b, Pipeline &out, 
-	RenderItemMatcher::MatchResults & matching, RenderItemMergeFunction & merger, float ratio);
 
-private :
+  static void mergePipelines(const Pipeline &a,  const Pipeline &b, Pipeline &out,
+                             RenderItemMatcher::MatchResults & matching,
+                             RenderItemMergeFunction & merger, float ratio);
 
-static const double s;
-static const double e;
+private:
+
+  static const double s;
+  static const double e;
 
 };
 
 
-#endif
+#endif  /*  PRESET_MERGE_HPP  */
diff --git a/src/libprojectM/Preset.cpp b/src/libprojectM/Preset.cpp
index 84e823a..91175d8 100644
--- a/src/libprojectM/Preset.cpp
+++ b/src/libprojectM/Preset.cpp
@@ -7,6 +7,7 @@
 
 #include "Preset.hpp"
 
+
 Preset::~Preset() {}
 
 Preset::Preset(const std::string & presetName, const std::string & presetAuthor):
@@ -19,5 +20,3 @@
 void Preset::setAuthor(const std::string & value) { _author = value; }
 
 const std::string & Preset::author() const { return _author; }
-
-
diff --git a/src/libprojectM/Preset.hpp b/src/libprojectM/Preset.hpp
index 4171e97..53ede8e 100644
--- a/src/libprojectM/Preset.hpp
+++ b/src/libprojectM/Preset.hpp
@@ -8,31 +8,32 @@
 #ifndef PRESET_HPP_
 #define PRESET_HPP_
 
+
 #include <string>
 
 #include "Renderer/BeatDetect.hpp"
 #include "Renderer/Pipeline.hpp"
 #include "Renderer/PipelineContext.hpp"
 
+
 class Preset {
 public:
+                      Preset(const std::string & name = std::string(),
+                             const std::string & author = std::string());
+  virtual             ~Preset();
 
-	
-	Preset(const std::string & name=std::string(), const std::string & author = std::string());
-	virtual ~Preset();
+  void                setName(const std::string & value);
+  const std::string & name() const;
 
-	void setName(const std::string & value);
-	const std::string & name() const;
+  void                setAuthor(const std::string & value);
+  const std::string & author() const;
 
-	void setAuthor(const std::string & value);
-	const std::string & author() const;
-
-	virtual Pipeline & pipeline() = 0;
-	virtual void Render(const BeatDetect &music, const PipelineContext &context) = 0;
+  virtual Pipeline &  pipeline() = 0;
+  virtual void        Render(const BeatDetect &music, const PipelineContext &context) = 0;
 
 private:
-	std::string _name;
-	std::string _author;
+  std::string _name;
+  std::string _author;
 };
 
 #endif /* PRESET_HPP_ */
diff --git a/src/libprojectM/PresetChooser.cpp b/src/libprojectM/PresetChooser.cpp
index b239759..253b2d9 100644
--- a/src/libprojectM/PresetChooser.cpp
+++ b/src/libprojectM/PresetChooser.cpp
@@ -11,4 +11,3 @@
 //
 
 #include "PresetChooser.hpp"
-
diff --git a/src/libprojectM/PresetChooser.hpp b/src/libprojectM/PresetChooser.hpp
index ab88b2a..8b645fb 100644
--- a/src/libprojectM/PresetChooser.hpp
+++ b/src/libprojectM/PresetChooser.hpp
@@ -8,46 +8,48 @@
 #include <cassert>
 #include <memory>
 #include <iostream>
+
+
 class PresetChooser;
 
 ///  A simple iterator class to traverse back and forth a preset directory
 class PresetIterator {
 
 public:
-    PresetIterator()  {}
+  PresetIterator()  {}
 
-    /// Instantiate a preset iterator at the given starting position
-    PresetIterator(std::size_t start);
+  /// Instantiate a preset iterator at the given starting position
+  PresetIterator(std::size_t start);
 
-    /// Move iterator forward
-    void operator++();
+  /// Move iterator forward
+  void        operator++();
 
-    /// Move iterator backword
-    void operator--() ;
+  /// Move iterator backword
+  void        operator--() ;
 
-    /// Not equal comparator
-    bool operator !=(const PresetIterator & presetPos) const ;
+  /// Not equal comparator
+  bool        operator !=(const PresetIterator & presetPos) const ;
 
-    /// Equality comparator
-    bool operator ==(const PresetIterator & presetPos) const ;
+  /// Equality comparator
+  bool        operator ==(const PresetIterator & presetPos) const ;
 
-    /// Returns an integer value representing the iterator position
-    /// @bug might become internal
-    /// \brief Returns the indexing value used by the current iterator.
-    std::size_t operator*() const;
+  /// Returns an integer value representing the iterator position
+  /// @bug might become internal
+  /// \brief Returns the indexing value used by the current iterator.
+  std::size_t operator*() const;
 
-    ///  Allocate a new preset given this iterator's associated preset name
-    /// \param presetInputs the preset inputs to associate with the preset upon construction
-    /// \param presetOutputs the preset outputs to associate with the preset upon construction
-    /// \returns an autopointer of the newly allocated preset
-    std::auto_ptr<Preset> allocate();
+  ///  Allocate a new preset given this iterator's associated preset name
+  /// \param presetInputs the preset inputs to associate with the preset upon construction
+  /// \param presetOutputs the preset outputs to associate with the preset upon construction
+  /// \returns an autopointer of the newly allocated preset
+  std::auto_ptr<Preset> allocate();
 
-    ///  Set the chooser asocciated with this iterator
-    void setChooser(const PresetChooser & chooser);
+  ///  Set the chooser asocciated with this iterator
+  void setChooser(const PresetChooser & chooser);
 
 private:
-    std::size_t _currentIndex;
-    const PresetChooser * _presetChooser;
+  std::size_t _currentIndex;
+  const PresetChooser * _presetChooser;
 
 };
 
@@ -55,187 +57,217 @@
 class PresetChooser {
 
 public:
-    typedef PresetIterator iterator;
+  typedef PresetIterator iterator;
 
-    /// Initializes a chooser with an established preset loader.
-    /// \param presetLoader an initialized preset loader to choose presets from
-    /// \note The preset loader is refreshed via events or otherwise outside this class's scope
-    PresetChooser(const PresetLoader & presetLoader, bool 	softCutRatingsEnabled);
+  /// Initializes a chooser with an established preset loader.
+  /// \param presetLoader an initialized preset loader to choose presets from
+  /// \note The preset loader is refreshed via events or otherwise outside this class's scope
+  PresetChooser(const PresetLoader & presetLoader, bool   softCutRatingsEnabled);
 
-    inline void setSoftCutRatingsEnabled(bool enabled) {
-	_softCutRatingsEnabled = enabled;
-    }
+  inline void setSoftCutRatingsEnabled(bool enabled) {
+    _softCutRatingsEnabled = enabled;
+  }
 
-    /// Choose a preset via the passed in index. Must be between 0 and num valid presets in directory
-    /// \param index An index lying in the interval [0, this->getNumPresets())
-    /// \param presetInputs the preset inputs to associate with the preset upon construction
-    /// \param presetOutputs the preset outputs to associate with the preset upon construction
-    /// \returns an auto pointer of the newly allocated preset
-    std::auto_ptr<Preset> directoryIndex(std::size_t index) const;
+  /// Choose a preset via the passed in index. Must be between 0 and num valid presets in directory
+  /// \param index An index lying in the interval [0, this->getNumPresets())
+  /// \param presetInputs the preset inputs to associate with the preset upon construction
+  /// \param presetOutputs the preset outputs to associate with the preset upon construction
+  /// \returns an auto pointer of the newly allocated preset
+  std::auto_ptr<Preset> directoryIndex(std::size_t index) const;
 
-    /// Gets the number of presets last believed to exist in the preset loader's filename collection
-    /// \returns the number of presets in the collection
-    std::size_t size() const;
+  /// Gets the number of presets last believed to exist in the preset loader's filename collection
+  /// \returns the number of presets in the collection
+  std::size_t size() const;
 
-    /// An STL-esque iterator to begin traversing presets from a directory
-    /// \param index the index to begin iterating at. Assumed valid between [0, num presets)
-    /// \returns the position of the first preset in the collection
-    PresetIterator begin(unsigned int index) const;
+  /// An STL-esque iterator to begin traversing presets from a directory
+  /// \param index the index to begin iterating at. Assumed valid between [0, num presets)
+  /// \returns the position of the first preset in the collection
+  PresetIterator begin(unsigned int index) const;
 
-    /// An STL-esque iterator to begin traversing presets from a directory
-    /// \returns the position of the first preset in the collection
-    PresetIterator begin();
+  /// An STL-esque iterator to begin traversing presets from a directory
+  /// \returns the position of the first preset in the collection
+  PresetIterator begin();
 
-    /// An STL-esque iterator to retrieve an end position from a directory
-    /// \returns the end position of the collection
-    PresetIterator end() const;
+  /// An STL-esque iterator to retrieve an end position from a directory
+  /// \returns the end position of the collection
+  PresetIterator end() const;
 
-    /// Perform a weighted sample to select a preset (uses preset rating values)
-    /// \returns an iterator to the randomly selected preset
-    iterator weightedRandom(bool hardCut) const;
+  /// Perform a weighted sample to select a preset (uses preset rating values)
+  /// \returns an iterator to the randomly selected preset
+  iterator weightedRandom(bool hardCut) const;
 
-    /// True if no presets in directory
-    bool empty() const;
+  /// True if no presets in directory
+  bool empty() const;
 
 
-    inline void nextPreset(PresetIterator & presetPos);
-    inline void previousPreset(PresetIterator & presetPos);
+  inline void nextPreset(PresetIterator & presetPos);
+  inline void previousPreset(PresetIterator & presetPos);
 
 private:
-    std::vector<float> sampleWeights;
-    const PresetLoader * _presetLoader;
-    bool _softCutRatingsEnabled;
+  std::vector<float> sampleWeights;
+  const PresetLoader * _presetLoader;
+  bool _softCutRatingsEnabled;
 };
 
 
-inline PresetChooser::PresetChooser(const PresetLoader & presetLoader, bool softCutRatingsEnabled):_presetLoader(&presetLoader), _softCutRatingsEnabled(softCutRatingsEnabled) {
+inline
+PresetChooser::PresetChooser (
+const PresetLoader  &presetLoader,
+bool                softCutRatingsEnabled
+)
+  : _presetLoader(&presetLoader),
+    _softCutRatingsEnabled(softCutRatingsEnabled)
+{
 
 }
 
-inline std::size_t PresetChooser::size() const {
-    return _presetLoader->size();
+inline std::size_t
+PresetChooser::size() const
+{
+  return _presetLoader->size();
 }
 
-inline void PresetIterator::setChooser(const PresetChooser & chooser) {
-    _presetChooser = &chooser;
+inline void
+PresetIterator::setChooser(const PresetChooser & chooser)
+{
+  _presetChooser = &chooser;
 }
 
-inline std::size_t PresetIterator::operator*() const {
-    return _currentIndex;
+inline std::size_t
+PresetIterator::operator*() const
+{
+  return _currentIndex;
 }
 
 inline PresetIterator::PresetIterator(std::size_t start):_currentIndex(start) {}
 
-inline void PresetIterator::operator++() {
-    assert(_currentIndex < _presetChooser->size());
-    _currentIndex++;
+inline void
+PresetIterator::operator++()
+{
+  assert(_currentIndex < _presetChooser->size());
+  _currentIndex++;
 }
 
-inline void PresetIterator::operator--() {
-    assert(_currentIndex > 0);
-    _currentIndex--;
+inline void
+PresetIterator::operator--()
+{
+  assert(_currentIndex > 0);
+  _currentIndex--;
 }
 
-inline bool PresetIterator::operator !=(const PresetIterator & presetPos) const {
-    return (*presetPos != **this);
+inline bool
+PresetIterator::operator !=(const PresetIterator & presetPos) const
+{
+  return (*presetPos != **this);
 }
 
 
-inline bool PresetIterator::operator ==(const PresetIterator & presetPos) const {
-    return (*presetPos == **this);
+inline bool
+PresetIterator::operator ==(const PresetIterator & presetPos) const
+{
+  return (*presetPos == **this);
 }
 
-inline std::auto_ptr<Preset> PresetIterator::allocate() {
-    return _presetChooser->directoryIndex(_currentIndex);
+inline std::auto_ptr<Preset>
+PresetIterator::allocate()
+{
+  return _presetChooser->directoryIndex(_currentIndex);
 }
 
-inline void PresetChooser::nextPreset(PresetIterator & presetPos) {
+inline void
+PresetChooser::nextPreset(PresetIterator & presetPos)
+{
+  if (this->empty()) {
+    return;
+  }
+  // Case: idle preset currently running, selected first preset of chooser
+  else if (presetPos == this->end())
+    presetPos = this->begin();
+  else
+    ++(presetPos);
 
-		if (this->empty()) {
-			return;
-		}
-
-		// Case: idle preset currently running, selected first preset of chooser
-		else if (presetPos == this->end())
-			presetPos = this->begin();
-		else
-			++(presetPos);
-
-		// Case: already at last preset, loop to beginning
-		if (((presetPos) == this->end())) {
-			presetPos = this->begin();
-		}
-
+  // Case: already at last preset, loop to beginning
+  if (((presetPos) == this->end())) {
+    presetPos = this->begin();
+  }
 }
 
 
-inline void PresetChooser::previousPreset(PresetIterator & presetPos) {
-		if (this->empty())
-			return;
+inline void
+PresetChooser::previousPreset(PresetIterator & presetPos)
+{
+  if (this->empty())
+    return;
 
-		// Case: idle preset currently running, selected last preset of chooser
-		else if (presetPos == this->end()) {
-			--(presetPos);
-		}
-
-		else if (presetPos != this->begin()) {
-			--(presetPos);
-		}
-
-		else {
-		   presetPos = this->end();
-		   --(presetPos);
-		}
+  // Case: idle preset currently running, selected last preset of chooser
+  else if (presetPos == this->end()) {
+    --(presetPos);
+  }
+  else if (presetPos != this->begin()) {
+    --(presetPos);
+  }
+  else {
+    presetPos = this->end();
+    --(presetPos);
+  }
 }
 
-inline PresetIterator PresetChooser::begin() {
-    PresetIterator pos(0);
-    pos.setChooser(*this);
-    return pos;
+inline PresetIterator
+PresetChooser::begin()
+{
+  PresetIterator pos(0);
+  pos.setChooser(*this);
+  return pos;
 }
 
-inline PresetIterator PresetChooser::begin(unsigned int index) const{
-    PresetIterator pos(index);
-    pos.setChooser(*this);
-    return pos;
+inline PresetIterator
+PresetChooser::begin(unsigned int index) const
+{
+  PresetIterator pos(index);
+  pos.setChooser(*this);
+  return pos;
 }
 
-inline PresetIterator PresetChooser::end() const {
-    PresetIterator pos(_presetLoader->size());
-    pos.setChooser(*this);
-    return pos;
+inline PresetIterator
+PresetChooser::end() const
+{
+  PresetIterator pos(_presetLoader->size());
+  pos.setChooser(*this);
+  return pos;
 }
 
 
-inline bool PresetChooser::empty() const {
-	return _presetLoader->size() == 0;
+inline bool
+PresetChooser::empty() const
+{
+  return _presetLoader->size() == 0;
 }
 
-inline std::auto_ptr<Preset> PresetChooser::directoryIndex(std::size_t index) const {
-
-	return _presetLoader->loadPreset(index);
+inline std::auto_ptr<Preset>
+PresetChooser::directoryIndex(std::size_t index) const
+{
+  return _presetLoader->loadPreset(index);
 }
 
 
-inline PresetChooser::iterator PresetChooser::weightedRandom(bool hardCut) const {
+inline PresetChooser::iterator
+PresetChooser::weightedRandom(bool hardCut) const
+{
+  // TODO make a sophisticated function object interface to determine why a certain rating
+  // category is chosen, or weighted distribution thereover.
+  const PresetRatingType ratingType = hardCut || (!_softCutRatingsEnabled) ?
+                                                 HARD_CUT_RATING_TYPE :
+                                                 SOFT_CUT_RATING_TYPE;    
 
-	
-	
+  const std::size_t ratingsTypeIndex = static_cast<std::size_t>(ratingType);
 
-	// TODO make a sophisticated function object interface to determine why a certain rating
-	// category is chosen, or weighted distribution thereover.
-	const PresetRatingType ratingType = hardCut || (!_softCutRatingsEnabled) ? 
-		HARD_CUT_RATING_TYPE : SOFT_CUT_RATING_TYPE;		
+  const std::vector<int> & weights = _presetLoader->getPresetRatings()[ratingsTypeIndex];
 
-	const std::size_t ratingsTypeIndex = static_cast<std::size_t>(ratingType);
-	
-	const std::vector<int> & weights = _presetLoader->getPresetRatings()[ratingsTypeIndex];
+  const std::size_t index = RandomNumberGenerators::weightedRandom
+                             (weights,
+                              _presetLoader->getPresetRatingsSums()[ratingsTypeIndex]);
 
-	const std::size_t index = RandomNumberGenerators::weightedRandom
-		(weights,
-		 _presetLoader->getPresetRatingsSums()[ratingsTypeIndex]);
-	
-	return begin(index);
+  return begin(index);
 }
 
 #endif
diff --git a/src/libprojectM/PresetFactory.cpp b/src/libprojectM/PresetFactory.cpp
index bd7ac16..78e5031 100644
--- a/src/libprojectM/PresetFactory.cpp
+++ b/src/libprojectM/PresetFactory.cpp
@@ -1,24 +1,25 @@
 #include "PresetFactory.hpp"
 
+
 const std::string PresetFactory::IDLE_PRESET_PROTOCOL("idle");
 
-std::string PresetFactory::protocol(const std::string & url, std::string & path) {
 
+std::string
+PresetFactory::protocol (const std::string & url, std::string & path)
+{
 #ifdef __APPLE__
-	// NOTE: Brian changed this from url.find_first_of to url.find, since presumably we want to find the first occurence of
-	// :// and not the first occurence of any colon or forward slash.  At least that fixed a bug in the Mac OS X build.
-	std::size_t pos = url.find("://");
+  // NOTE: Brian changed this from url.find_first_of to url.find, since presumably we want to find the first occurence of
+  // :// and not the first occurence of any colon or forward slash.  At least that fixed a bug in the Mac OS X build.
+  std::size_t pos = url.find("://");
 #else
-	std::size_t pos = url.find_first_of("://");
+  std::size_t pos = url.find_first_of("://");
 #endif
-	if (pos == std::string::npos)
-		return std::string();
-	else {
-		path = url.substr(pos + 3, url.length());
-		std::cout << "[PresetFactory] path is " << path << std::endl;
-		std::cout << "[PresetFactory] url is " << url << std::endl;
-		return url.substr(0, pos);
-	}
-
+  if (pos == std::string::npos)
+    return std::string();
+  else {
+    path = url.substr (pos + 3, url.length());
+    std::cout << "[PresetFactory] path is " << path << std::endl;
+    std::cout << "[PresetFactory] url is " << url << std::endl;
+    return url.substr (0, pos);
+  }
 }
-
diff --git a/src/libprojectM/PresetFactory.hpp b/src/libprojectM/PresetFactory.hpp
index e9c8a4c..4e883e2 100644
--- a/src/libprojectM/PresetFactory.hpp
+++ b/src/libprojectM/PresetFactory.hpp
@@ -9,33 +9,34 @@
 // Copyright: See COPYING file that comes with this distribution
 //
 //
-
 #include "Preset.hpp"
 #include <memory>
 
 #ifndef __PRESET_FACTORY_HPP
 #define __PRESET_FACTORY_HPP
 
+
 class PresetFactory {
 
 public:
- static const std::string IDLE_PRESET_PROTOCOL;
- static std::string protocol(const std::string & url, std::string & path);
+  static const std::string IDLE_PRESET_PROTOCOL;
+  static std::string protocol(const std::string & url, std::string & path);
 
- inline PresetFactory() {}
+  inline PresetFactory() {}
 
- inline virtual ~PresetFactory() {}
+  inline virtual ~PresetFactory() {}
 
- /// Constructs a new preset given an url and optional meta data
- /// \param url a locational identifier referencing the preset
- /// \param name the preset name
- /// \param author the preset author
- /// \returns a valid preset object
- virtual std::auto_ptr<Preset> allocate(const std::string & url, const std::string & name=std::string(),
-	 const std::string & author=std::string()) = 0;
+  /// Constructs a new preset given an url and optional meta data
+  /// \param url a locational identifier referencing the preset
+  /// \param name the preset name
+  /// \param author the preset author
+  /// \returns a valid preset object
+  virtual std::auto_ptr<Preset> allocate (const std::string & url,
+                                          const std::string & name=std::string(),
+                                          const std::string & author=std::string()) = 0;
 
- /// Returns a space separated list of supported extensions
- virtual std::string supportedExtensions() const = 0;
+  /// Returns a space separated list of supported extensions
+  virtual std::string supportedExtensions() const = 0;
 
 };
 
diff --git a/src/libprojectM/PresetFactoryManager.cpp b/src/libprojectM/PresetFactoryManager.cpp
index 7dea038..b383107 100644
--- a/src/libprojectM/PresetFactoryManager.cpp
+++ b/src/libprojectM/PresetFactoryManager.cpp
@@ -1,7 +1,7 @@
 //
 // C++ Implementation: PresetFactoryManager
 //
-// Description: 
+// Description:
 //
 //
 // Author: Carmelo Piccione <carmelo.piccione@gmail.com>, (C) 2008
@@ -20,71 +20,92 @@
 #endif
 
 #include <sstream>
-PresetFactoryManager::PresetFactoryManager() : _gx(0), _gy(0), initialized(false) {}
 
-PresetFactoryManager::~PresetFactoryManager() {
-	for (std::vector<PresetFactory *>::iterator pos = _factoryList.begin(); 
-		pos != _factoryList.end(); ++pos) {
-		assert(*pos);
-		delete(*pos);
-	}
+
+PresetFactoryManager::PresetFactoryManager()
+  : _gx (0), _gy (0), initialized (false)
+{}
+
+PresetFactoryManager::~PresetFactoryManager()
+{
+  for (std::vector<PresetFactory *>::iterator pos = _factoryList.begin();
+       pos != _factoryList.end();
+       ++pos)
+  {
+    assert (*pos);
+    delete (*pos);
+  }
 
   initialized = false;
 }
 
-void PresetFactoryManager::initialize(int gx, int gy) {
-	_gx = gx;
-	_gy = gy;
-	
-	if (!initialized) {
-	  initialized = true;
-	} else {
-	  std::cout << "already initialized " << std::endl;
-	  return;
-	}
-	  
-	PresetFactory * factory;
-	
-	#ifndef DISABLE_MILKDROP_PRESETS
-	factory = new MilkdropPresetFactory(_gx, _gy);
-	registerFactory(factory->supportedExtensions(), factory);		
-	#endif
-	
-	#ifndef DISABLE_NATIVE_PRESETS
-	factory = new NativePresetFactory();
-	registerFactory(factory->supportedExtensions(), factory);
-	#endif
+void
+PresetFactoryManager::initialize (int gx, int gy)
+{
+  _gx = gx;
+  _gy = gy;
+
+  if (!initialized) {
+    initialized = true;
+  } else {
+    std::cout << "already initialized " << std::endl;
+    return;
+  }
+
+  PresetFactory * factory;
+
+  #ifndef DISABLE_MILKDROP_PRESETS
+  factory = new MilkdropPresetFactory (_gx, _gy);
+  registerFactory (factory->supportedExtensions(), factory);
+  #endif
+
+  #ifndef DISABLE_NATIVE_PRESETS
+  factory = new NativePresetFactory();
+  registerFactory (factory->supportedExtensions(), factory);
+  #endif
 }
 
 // Current behavior if a conflict is occurs is to override the previous request
 
-void PresetFactoryManager::registerFactory(const std::string & extensions, PresetFactory * factory) {
-	
-	std::stringstream ss(extensions);	
-	std::string extension;
+void
+PresetFactoryManager::registerFactory
+(
+const std::string &extensions,
+PresetFactory     *factory
+)
+{
+  std::stringstream ss (extensions);
+  std::string       extension;
 
-	_factoryList.push_back(factory);
+  _factoryList.push_back (factory);
 
-	while (ss >> extension) {
-		if (_factoryMap.count(extension)) {
-			std::cerr << "[PresetFactoryManager] Warning: extension \"" << extension << 
-				"\" already has a factory. New factory handler ignored." << std::endl;			
-		} else {
-			_factoryMap.insert(std::make_pair(extension, factory));			
-		}
-	}
+  while (ss >> extension) {
+    if (_factoryMap.count (extension)) {
+      std::cerr << "[PresetFactoryManager] Warning: extension \""
+                << extension
+                << "\" already has a factory. New factory handler ignored."
+                << std::endl;
+    } else {
+      _factoryMap.insert (std::make_pair (extension, factory));
+    }
+  }
 }
 
-PresetFactory & PresetFactoryManager::factory(const std::string & extension) {
+PresetFactory &
+PresetFactoryManager::factory (const std::string & extension)
+{
 
-	if (!_factoryMap.count(extension)) {		
-		std::ostringstream os;
-		os << "No factory associated with \"" << extension << "\"." << std::endl;
-		throw PresetFactoryException(os.str());
-	}
-	return *_factoryMap[extension];
+  if (!_factoryMap.count (extension)) {
+    std::ostringstream os;
+
+    os << "No factory associated with \"" << extension << "\"." << std::endl;
+    throw PresetFactoryException (os.str());
+  }
+  return *_factoryMap[extension];
 }
 
-bool PresetFactoryManager::extensionHandled(const std::string & extension) const {		
-	return _factoryMap.count(extension);
+bool
+PresetFactoryManager::extensionHandled (const std::string & extension) const
+{
+  return _factoryMap.count (extension);
 }
diff --git a/src/libprojectM/PresetFactoryManager.hpp b/src/libprojectM/PresetFactoryManager.hpp
index 2dfa0a0..899b229 100644
--- a/src/libprojectM/PresetFactoryManager.hpp
+++ b/src/libprojectM/PresetFactoryManager.hpp
@@ -11,49 +11,53 @@
 //
 #ifndef __PRESET_FACTORY_MANAGER_HPP
 #define __PRESET_FACTORY_MANAGER_HPP
+
 #include "PresetFactory.hpp"
 
+
 /// A simple exception class to strongly type all preset factory related issues
 class PresetFactoryException : public std::exception
 {
-	public:
-		inline PresetFactoryException(const std::string & message) : _message(message) {}
-		virtual ~PresetFactoryException() throw() {}
-		const std::string & message() const { return _message; } 
+public:
+  inline            PresetFactoryException (const std::string & message) : _message(message) {}
+  virtual           ~PresetFactoryException() throw() {}
+  const std::string &message() const { return _message; } 
 
-	private:
-		std::string _message;
+private:
+  std::string _message;
 };
 
 /// A manager of preset factories
 class PresetFactoryManager {
 
-	public:
-		PresetFactoryManager();
-		~PresetFactoryManager();
+public:
+  PresetFactoryManager();
+  ~PresetFactoryManager();
 
-		/// Initializes the manager with mesh sizes specified
-		/// \param gx the width of the mesh
-		/// \param gy the height of the mesh
-		/// \note This must be called once before any other methods
-		void initialize(int gx, int gy);
-		
-		/// Requests a factory given a preset extension type
-		/// \param extension a string denoting the preset suffix type
-		/// \throws PresetFactoryException if the extension is unhandled
-		/// \returns a valid preset factory associated with the extension
-		PresetFactory & factory(const std::string & extension);
+  /// Initializes the manager with mesh sizes specified
+  /// \param gx the width of the mesh
+  /// \param gy the height of the mesh
+  /// \note This must be called once before any other methods
+  void initialize (int gx, int gy);
 
-		/// Tests if an extension has been registered with a factory
-		/// \param extension the file name extension to verify
-		/// \returns true if a factory exists, false otherwise
-		bool extensionHandled(const std::string & extension) const;
+  /// Requests a factory given a preset extension type
+  /// \param extension a string denoting the preset suffix type
+  /// \throws PresetFactoryException if the extension is unhandled
+  /// \returns a valid preset factory associated with the extension
+  PresetFactory & factory (const std::string & extension);
 
-	private:
-		int _gx, _gy;				
-		mutable std::map<std::string, PresetFactory *> _factoryMap;
-		mutable std::vector<PresetFactory *> _factoryList;
-		void registerFactory(const std::string & extension, PresetFactory * factory);
-		volatile bool initialized;
+  /// Tests if an extension has been registered with a factory
+  /// \param extension the file name extension to verify
+  /// \returns true if a factory exists, false otherwise
+  bool extensionHandled (const std::string & extension) const;
+
+private:
+  mutable std::map<std::string, PresetFactory *>  _factoryMap;
+  mutable std::vector<PresetFactory *>            _factoryList;
+  int             _gx, _gy;       
+  volatile bool   initialized;
+
+  void registerFactory (const std::string & extension, PresetFactory * factory);
 };
+
 #endif
diff --git a/src/libprojectM/PresetLoader.cpp b/src/libprojectM/PresetLoader.cpp
index e0afec5..1542db3 100644
--- a/src/libprojectM/PresetLoader.cpp
+++ b/src/libprojectM/PresetLoader.cpp
@@ -35,249 +35,281 @@
 
 #include "Common.hpp"
 
-PresetLoader::PresetLoader (int gx, int gy, std::string dirname = std::string()) :_dirname ( dirname ), _dir ( 0 )
+
+PresetLoader::PresetLoader (int gx, int gy, std::string dirname = std::string())
+ : _dirname (dirname),
+   _dir (0)
 {
-	_presetFactoryManager.initialize(gx,gy);
-	// Do one scan
-	if ( _dirname != std::string() )
-		rescan();
-	else
-		clear();
+  _presetFactoryManager.initialize (gx, gy);
+  // Do one scan
+  if (_dirname != std::string())
+    rescan();
+  else
+    clear();
 }
 
 PresetLoader::~PresetLoader()
 {
-	if ( _dir )
-		closedir ( _dir );
+  if (_dir)
+    closedir (_dir);
 }
 
-void PresetLoader::setScanDirectory ( std::string dirname )
+void
+PresetLoader::setScanDirectory (std::string dirname)
 {
-	_dirname = dirname;
+  _dirname = dirname;
 }
 
 
-void PresetLoader::rescan()
+void
+PresetLoader::rescan()
 {
-	// std::cerr << "Rescanning..." << std::endl;
+  // std::cerr << "Rescanning..." << std::endl;
 
-	// Clear the directory entry collection
-	clear();
-	
-	// If directory already opened, close it first
-	if ( _dir )
-	{
-		closedir ( _dir );
-		_dir = 0;
-	}
+  // Clear the directory entry collection
+  clear();
 
-	// Allocate a new a stream given the current directory name
-	if ( ( _dir = opendir ( _dirname.c_str() ) ) == NULL )
-	{
-		handleDirectoryError();
-		return; // no files loaded. _entries is empty
-	}
+  // If directory already opened, close it first
+  if (_dir)
+  {
+    closedir (_dir);
+    _dir = 0;
+  }
 
-	struct dirent * dir_entry;
-	std::set<std::string> alphaSortedFileSet;
-	std::set<std::string> alphaSortedPresetNameSet;
+  // Allocate a new a stream given the current directory name
+  if ((_dir = opendir (_dirname.c_str())) == NULL)
+  {
+    handleDirectoryError();
+    return; // no files loaded. _entries is empty
+  }
 
-	while ( ( dir_entry = readdir ( _dir ) ) != NULL )
-	{
+  struct dirent         *dir_entry;
+  std::set<std::string> alphaSortedFileSet;
+  std::set<std::string> alphaSortedPresetNameSet;
+
+  while ((dir_entry = readdir (_dir)) != NULL)
+  {
     if (dir_entry->d_name == 0)
       continue;
 
-		std::ostringstream out;
-		// Convert char * to friendly string
-		std::string filename ( dir_entry->d_name );
+    std::ostringstream  out;
+    // Convert char * to friendly string
+    std::string         filename (dir_entry->d_name);
 
-		// Verify extension is projectm or milkdrop
-		if (!_presetFactoryManager.extensionHandled(parseExtension(filename)))
-			continue;
+    // Verify extension is projectm or milkdrop
+    if (!_presetFactoryManager.extensionHandled (parseExtension (filename)))
+      continue;
 
-		if ( filename.length() > 0 && filename[0] == '.' )
-			continue;
+    if (filename.length() > 0  &&  filename[0] == '.')
+      continue;
 
-		// Create full path name
-		out << _dirname << PATH_SEPARATOR << filename;
+    // Create full path name
+    out << _dirname << PATH_SEPARATOR << filename;
 
-		// Add to our directory entry collection
-		alphaSortedFileSet.insert ( out.str() );
-		alphaSortedPresetNameSet.insert ( filename );
+    // Add to our directory entry collection
+    alphaSortedFileSet.insert (out.str());
+    alphaSortedPresetNameSet.insert (filename);
 
-		// the directory entry struct is freed elsewhere
-	}
+    // the directory entry struct is freed elsewhere
+  }
 
-	// Push all entries in order from the file set to the file entries member (which is an indexed vector)
-	for ( std::set<std::string>::iterator pos = alphaSortedFileSet.begin();
-	        pos != alphaSortedFileSet.end();++pos )
-		_entries.push_back ( *pos );
+  // Push all entries in order from the file set to the file entries member (which is an indexed vector)
+  for (std::set<std::string>::iterator pos = alphaSortedFileSet.begin();
+       pos != alphaSortedFileSet.end();
+       ++pos)
+  {
+    _entries.push_back (*pos);
+  }
 
-	// Push all preset names in similar fashion
-	for ( std::set<std::string>::iterator pos = alphaSortedPresetNameSet.begin();
-	        pos != alphaSortedPresetNameSet.end();++pos )
-		_presetNames.push_back ( *pos );
+  // Push all preset names in similar fashion
+  for (std::set<std::string>::iterator pos = alphaSortedPresetNameSet.begin();
+       pos != alphaSortedPresetNameSet.end();
+       ++pos)
+  {
+    _presetNames.push_back (*pos);
+  }
 
-	// Give all presets equal rating of 3 - why 3? I don't know
-	_ratings = std::vector<RatingList>(TOTAL_RATING_TYPES, RatingList( _presetNames.size(), 3 ));
-	_ratingsSums = std::vector<int>(TOTAL_RATING_TYPES, 3 * _presetNames.size());
-	
-
-	assert ( _entries.size() == _presetNames.size() );
+  // Give all presets equal rating of 3 - why 3? I don't know
+  _ratings = std::vector<RatingList>(TOTAL_RATING_TYPES, RatingList (_presetNames.size(), 3));
+  _ratingsSums = std::vector<int>(TOTAL_RATING_TYPES, 3 * _presetNames.size());
 
 
-
+  assert (_entries.size() == _presetNames.size());
 }
 
 
-std::auto_ptr<Preset> PresetLoader::loadPreset ( unsigned int index )  const
+std::auto_ptr<Preset>
+PresetLoader::loadPreset (unsigned int index)  const
 {
+  // Check that index isn't insane
+  assert (index >= 0);
+  assert (index < _entries.size());
 
-	// Check that index isn't insane
-	assert ( index >= 0 );
-	assert ( index < _entries.size() );
+  // Return a new autopointer to a preset
+  const std::string extension = parseExtension (_entries[index]);
 
-	// Return a new autopointer to a preset
-	const std::string extension = parseExtension ( _entries[index] );
-
-	return _presetFactoryManager.factory(extension).allocate
-		( _entries[index], _presetNames[index] );
-
+  return _presetFactoryManager
+         .factory (extension)
+         .allocate (_entries[index], _presetNames[index]);
 }
 
 
-std::auto_ptr<Preset> PresetLoader::loadPreset ( const std::string & url )  const
+std::auto_ptr<Preset>
+PresetLoader::loadPreset (const std::string & url)  const
 {
+  // Return a new autopointer to a preset
+  const std::string extension = parseExtension (url);
 
-	// Return a new autopointer to a preset
-	const std::string extension = parseExtension ( url );
-
-	/// @bug probably should not use url for preset name
-	return _presetFactoryManager.factory(extension).allocate
-		(url, url);
-
+  /// @bug probably should not use url for preset name
+  return _presetFactoryManager
+         .factory (extension)
+         .allocate (url, url);
 }
 
-void PresetLoader::handleDirectoryError()
+void
+PresetLoader::handleDirectoryError()
 {
 
 #ifdef WIN32
-	std::cerr << "[PresetLoader] warning: errno unsupported on win32 platforms. fix me" << std::endl;
+  std::cerr << "[PresetLoader] warning: errno unsupported on win32 platforms. fix me" << std::endl;
 #else
 
-	switch ( errno )
-	{
-		case ENOENT:
-			std::cerr << "[PresetLoader] ENOENT error. The path \"" << this->_dirname << "\" probably does not exist. \"man open\" for more info." << std::endl;
-			break;
-		case ENOMEM:
-			std::cerr << "[PresetLoader] out of memory! Are you running Windows?" << std::endl;
-			abort();
-		case ENOTDIR:
-			std::cerr << "[PresetLoader] directory specified is not a preset directory! Trying to continue..." << std::endl;
-			break;
-		case ENFILE:
-			std::cerr << "[PresetLoader] Your system has reached its open file limit. Trying to continue..." << std::endl;
-			break;
-		case EMFILE:
-			std::cerr << "[PresetLoader] too many files in use by projectM! Bailing!" << std::endl;
-			break;
-		case EACCES:
-			std::cerr << "[PresetLoader] permissions issue reading the specified preset directory." << std::endl;
-			break;
-		default:
-			break;
-	}
+  switch (errno) {
+  case ENOENT:
+    std::cerr << "[PresetLoader] ENOENT error. The path \""
+              << this->_dirname
+              << "\" probably does not exist. \"man open\" for more info."
+              << std::endl;
+    break;
+  case ENOMEM:
+    std::cerr << "[PresetLoader] out of memory! Are you running Windows?"
+              << std::endl;
+    abort();
+  case ENOTDIR:
+    std::cerr << "[PresetLoader] directory specified is not a preset directory! Trying to continue..."
+              << std::endl;
+    break;
+  case ENFILE:
+    std::cerr << "[PresetLoader] Your system has reached its open file limit. Trying to continue..."
+              << std::endl;
+    break;
+  case EMFILE:
+    std::cerr << "[PresetLoader] too many files in use by projectM! Bailing!"
+              << std::endl;
+    break;
+  case EACCES:
+    std::cerr << "[PresetLoader] permissions issue reading the specified preset directory."
+              << std::endl;
+    break;
+  default:
+    break;
+  }
 #endif
 }
 
-void PresetLoader::setRating(unsigned int index, int rating, const PresetRatingType ratingType)
+void
+PresetLoader::setRating (unsigned int index, int rating, const PresetRatingType ratingType)
 {
-	assert ( index >=0 );
-	
-	const unsigned int ratingTypeIndex = static_cast<unsigned int>(ratingType);
-	assert (index < _ratings[ratingTypeIndex].size());
- 
-	_ratingsSums[ratingTypeIndex] -= _ratings[ratingTypeIndex][index];
+  assert (index >=0);
 
-	_ratings[ratingTypeIndex][index] = rating;
-	_ratingsSums[ratingType] += rating;
+  const unsigned int ratingTypeIndex = static_cast<unsigned int>(ratingType);
+  assert (index < _ratings[ratingTypeIndex].size());
 
+  _ratingsSums[ratingTypeIndex] -= _ratings[ratingTypeIndex][index];
+
+  _ratings[ratingTypeIndex][index] = rating;
+  _ratingsSums[ratingType] += rating;
 }
 
 
-unsigned int PresetLoader::addPresetURL ( const std::string & url, const std::string & presetName, const std::vector<int> & ratings)
+unsigned int
+PresetLoader::addPresetURL (
+const std::string       & url,
+const std::string       & presetName,
+const std::vector<int>  & ratings
+)
 {
-	_entries.push_back(url);
-	_presetNames.push_back ( presetName );
+  _entries.push_back (url);
+  _presetNames.push_back (presetName);
 
-	assert(ratings.size() == TOTAL_RATING_TYPES);
-	assert(ratings.size() == _ratings.size());
+  assert (ratings.size() == TOTAL_RATING_TYPES);
+  assert (ratings.size() == _ratings.size());
 
-	for (int i = 0; i < _ratings.size(); i++)
-		_ratings[i].push_back(ratings[i]);
+  for (int i = 0;  i < _ratings.size();  i++)
+    _ratings[i].push_back (ratings[i]);
 
-	for (int i = 0; i < ratings.size(); i++)
-		_ratingsSums[i] += ratings[i];
-	
-	return _entries.size()-1;
+  for (int i = 0;  i < ratings.size();  i++)
+    _ratingsSums[i] += ratings[i];
+
+  return _entries.size() - 1;
 }
 
-void PresetLoader::removePreset ( unsigned int index )
+void
+PresetLoader::removePreset (unsigned int index)
 {
+  _entries.erase (_entries.begin() + index);
+  _presetNames.erase (_presetNames.begin() + index);
 
-	_entries.erase ( _entries.begin() + index );
-	_presetNames.erase ( _presetNames.begin() + index );
-	
-	for (int i = 0; i < _ratingsSums.size(); i++) {
-		_ratingsSums[i] -= _ratings[i][index];
-		_ratings[i].erase ( _ratings[i].begin() + index );
-	}
-	
-
+  for (int i = 0;  i < _ratingsSums.size();  i++) {
+    _ratingsSums[i] -= _ratings[i][index];
+    _ratings[i].erase (_ratings[i].begin() + index);
+  }
 }
 
-const std::string & PresetLoader::getPresetURL ( unsigned int index ) const
+const std::string &
+PresetLoader::getPresetURL (unsigned int index) const
 {
-	return _entries[index];
+  return _entries[index];
 }
 
-const std::string & PresetLoader::getPresetName ( unsigned int index ) const
+const std::string &
+PresetLoader::getPresetName (unsigned int index) const
 {
-	return _presetNames[index];
+  return _presetNames[index];
 }
 
-int PresetLoader::getPresetRating ( unsigned int index, const PresetRatingType ratingType ) const
+int
+PresetLoader::getPresetRating (
+unsigned int            index,
+const PresetRatingType  ratingType
+) const
 {
-	return _ratings[ratingType][index];
+  return _ratings[ratingType][index];
 }
 
-const std::vector<RatingList> & PresetLoader::getPresetRatings () const
+const std::vector<RatingList> &
+PresetLoader::getPresetRatings() const
 {
-	return _ratings;
+  return _ratings;
 }
 
-const std::vector<int> & PresetLoader::getPresetRatingsSums() const {
-	return _ratingsSums;
-}
-
-void PresetLoader::setPresetName(unsigned int index, std::string name) {
-	_presetNames[index] = name;
-}
-
-void PresetLoader::insertPresetURL ( unsigned int index, const std::string & url, const std::string & presetName, const RatingList & ratings)
+const std::vector<int> &
+PresetLoader::getPresetRatingsSums() const
 {
-	_entries.insert ( _entries.begin() + index, url );
-	_presetNames.insert ( _presetNames.begin() + index, presetName );
-	
-	
+  return _ratingsSums;
+}
 
-	for (int i = 0; i < _ratingsSums.size();i++) {
-		_ratingsSums[i] += _ratings[i][index];
-		_ratings[i].insert ( _ratings[i].begin() + index, ratings[i] );
-	}
+void
+PresetLoader::setPresetName (unsigned int index, std::string name)
+{
+  _presetNames[index] = name;
+}
 
-	assert ( _entries.size() == _presetNames.size() );
-	
-	
+void
+PresetLoader::insertPresetURL (
+unsigned int      index,
+const std::string & url,
+const std::string & presetName,
+const RatingList  & ratings
+)
+{
+  _entries.insert (_entries.begin() + index, url);
+  _presetNames.insert (_presetNames.begin() + index, presetName);
+
+  for (int i = 0;  i < _ratingsSums.size();  i++) {
+    _ratingsSums[i] += _ratings[i][index];
+    _ratings[i].insert (_ratings[i].begin() + index, ratings[i]);
+  }
+
+  assert (_entries.size() == _presetNames.size());
 }
diff --git a/src/libprojectM/PresetLoader.hpp b/src/libprojectM/PresetLoader.hpp
index 02d43c1..d83e548 100644
--- a/src/libprojectM/PresetLoader.hpp
+++ b/src/libprojectM/PresetLoader.hpp
@@ -21,98 +21,98 @@
 #include <map>
 #include "PresetFactoryManager.hpp"
 
+
 class Preset;
 class PresetFactory;
 
 
 class PresetLoader {
-	public:
-		
-		
-		/// Initializes the preset loader with the target directory specified 
-		PresetLoader(int gx, int gy, std::string dirname);
-				
-		~PresetLoader();
-	
-		/// Load a preset by specifying it's unique identifier given when the preset url
-		/// was added to this loader	
-		std::auto_ptr<Preset> loadPreset(unsigned int index) const;
-		std::auto_ptr<Preset> loadPreset ( const std::string & url )  const;
-		/// Add a preset to the loader's collection.
-		/// \param url an url referencing the preset
-		/// \param presetName a name for the preset
-		/// \param rating an integer representing the goodness of the preset
-		/// \returns The unique index assigned to the preset in the collection. Used with loadPreset
-		unsigned int addPresetURL ( const std::string & url, const std::string & presetName, const RatingList & ratings);
-			
-		/// Add a preset to the loader's collection.
-		/// \param index insertion index
-		/// \param url an url referencing the preset
-		/// \param presetName a name for the preset
-		/// \param rating an integer representing the goodness of the preset
-		void insertPresetURL (unsigned int index, const std::string & url, const std::string & presetName, const RatingList & ratings);
-	
-		/// Clears all presets from the collection
-		inline void clear() { 
-			_entries.clear(); _presetNames.clear(); 
-			_ratings = std::vector<RatingList>(TOTAL_RATING_TYPES, RatingList());
-			clearRatingsSum();
- 		}
+public:
 
-		inline void clearRatingsSum() {
-			_ratingsSums = std::vector<int>(TOTAL_RATING_TYPES, 0);
-		}
-		
-		const std::vector<RatingList> & getPresetRatings() const;		
-		const std::vector<int> & getPresetRatingsSums() const;
+  /// Initializes the preset loader with the target directory specified 
+  PresetLoader(int gx, int gy, std::string dirname);
 
-		/// Removes a preset from the loader
-		/// \param index the unique identifier of the preset url to be removed
-		void removePreset(unsigned int index);
+  ~PresetLoader();
 
-		/// Sets the rating of a preset to a new value
-		void setRating(unsigned int index, int rating, const PresetRatingType ratingType);
-		
-		/// Get a preset rating given an index
-		int getPresetRating ( unsigned int index, const PresetRatingType ratingType) const;
-		
-		/// Get a preset url given an index
-		const std::string & getPresetURL ( unsigned int index) const;
-		
-		/// Get a preset name given an index
-		const std::string & getPresetName ( unsigned int index) const;
-		
-		/// Returns the number of presets in the active directory 
-		inline std::size_t size() const {
-			return _entries.size();
-		}
-					
-		/// Sets the directory where the loader will search for files 
-		void setScanDirectory(std::string pathname);
+  /// Load a preset by specifying it's unique identifier given when the preset url
+  /// was added to this loader  
+  std::auto_ptr<Preset> loadPreset(unsigned int index) const;
+  std::auto_ptr<Preset> loadPreset ( const std::string & url )  const;
+  /// Add a preset to the loader's collection.
+  /// \param url an url referencing the preset
+  /// \param presetName a name for the preset
+  /// \param rating an integer representing the goodness of the preset
+  /// \returns The unique index assigned to the preset in the collection. Used with loadPreset
+  unsigned int addPresetURL ( const std::string & url, const std::string & presetName, const RatingList & ratings);
 
-		/// Returns the directory path associated with this preset chooser
-		inline const std::string & directoryName() const {
-			return _dirname;
-		}
-		
-		/// Rescans the active preset directory
-		void rescan();
-		void setPresetName(unsigned int index, std::string name);
-	private:
-		void handleDirectoryError();
-		std::string _dirname;
-		DIR * _dir;
-		std::vector<int> _ratingsSums;
-		mutable PresetFactoryManager _presetFactoryManager;
+  /// Add a preset to the loader's collection.
+  /// \param index insertion index
+  /// \param url an url referencing the preset
+  /// \param presetName a name for the preset
+  /// \param rating an integer representing the goodness of the preset
+  void insertPresetURL (unsigned int index, const std::string & url, const std::string & presetName, const RatingList & ratings);
 
-		// vector chosen for speed, but not great for reverse index lookups
-		std::vector<std::string> _entries;
-		std::vector<std::string> _presetNames;
+  /// Clears all presets from the collection
+  inline void clear() { 
+    _entries.clear(); _presetNames.clear(); 
+    _ratings = std::vector<RatingList>(TOTAL_RATING_TYPES, RatingList());
+    clearRatingsSum();
+  }
 
-		// Indexed by ratingType, preset position.
-		std::vector<RatingList> _ratings;
-		
+  inline void clearRatingsSum() {
+    _ratingsSums = std::vector<int>(TOTAL_RATING_TYPES, 0);
+  }
 
+  const std::vector<RatingList> & getPresetRatings() const;   
+  const std::vector<int> & getPresetRatingsSums() const;
+
+  /// Removes a preset from the loader
+  /// \param index the unique identifier of the preset url to be removed
+  void removePreset(unsigned int index);
+
+  /// Sets the rating of a preset to a new value
+  void setRating(unsigned int index, int rating, const PresetRatingType ratingType);
+
+  /// Get a preset rating given an index
+  int getPresetRating ( unsigned int index, const PresetRatingType ratingType) const;
+
+  /// Get a preset url given an index
+  const std::string & getPresetURL ( unsigned int index) const;
+
+  /// Get a preset name given an index
+  const std::string & getPresetName ( unsigned int index) const;
+
+  /// Returns the number of presets in the active directory 
+  inline std::size_t size() const {
+    return _entries.size();
+  }
+
+  /// Sets the directory where the loader will search for files 
+  void setScanDirectory(std::string pathname);
+
+  /// Returns the directory path associated with this preset chooser
+  inline const std::string & directoryName() const {
+    return _dirname;
+  }
+
+  /// Rescans the active preset directory
+  void rescan();
+  void setPresetName(unsigned int index, std::string name);
+
+private:
+  void handleDirectoryError();
+
+  std::string                   _dirname;
+  DIR                           *_dir;
+  std::vector<int>              _ratingsSums;
+  mutable PresetFactoryManager  _presetFactoryManager;
+
+  // vector chosen for speed, but not great for reverse index lookups
+  std::vector<std::string>      _entries;
+  std::vector<std::string>      _presetNames;
+
+  // Indexed by ratingType, preset position.
+  std::vector<RatingList>       _ratings;
 };
 
 #endif
diff --git a/src/libprojectM/RandomNumberGenerators.hpp b/src/libprojectM/RandomNumberGenerators.hpp
index 862e43b..008585a 100644
--- a/src/libprojectM/RandomNumberGenerators.hpp
+++ b/src/libprojectM/RandomNumberGenerators.hpp
@@ -7,116 +7,136 @@
 
 #define WEIGHTED_RANDOM_DEBUG 0
 
+
 namespace RandomNumberGenerators {
 
-inline float uniform()
-/* Uniform random number generator x(n+1)= a*x(n) mod c
-				with a = pow(7,5) and c = pow(2,31)-1.
-				Copyright (c) Tao Pang 1997. */
-	{
-		const int ia=16807,ic=2147483647,iq=127773,ir=2836;
-		int il,ih,it;
-		float rc;
-		static int iseed = rand();
-		ih = iseed/iq;
-		il = iseed%iq;
-		it = ia*il-ir*ih;
-		if (it > 0)
-		{
-			iseed = it;
-		}
-		else
-		{
-			iseed = ic+it;
-		}
-		rc = ic;
-		return iseed/rc;
-	}
 
-inline float gaussian(float mean, float sigma)
+inline float
+uniform()
+/* Uniform random number generator x(n+1)= a*x(n) mod c
+        with a = pow(7,5) and c = pow(2,31)-1.
+        Copyright (c) Tao Pang 1997. */
+{
+  const int   ia=16807,
+              ic=2147483647,
+              iq=127773,
+              ir=2836;
+  int         il,ih,it;
+  float       rc;
+  static int  iseed = rand();
+
+  ih = iseed / iq;
+  il = iseed % iq;
+  it = ia * il - ir * ih;
+  if (it > 0)
+  {
+    iseed = it;
+  }
+  else
+  {
+    iseed = ic+it;
+  }
+  rc = ic;
+  return iseed / rc;
+}
+
+inline float
+gaussian (float mean, float sigma)
 {
 
-	float x1, x2, w, y1, y2;
- 
-	do {
-		x1 = 2.0 * uniform() - 1.0;
-		x2 = 2.0 * uniform() - 1.0;
-		w = x1 * x1 + x2 * x2;
-	} while ( w >= 1.0 );
+  float x1, x2, w, y1, y2;
 
-	w = sqrt( (-2.0 * log( w ) ) / w );
-	y1 = x1 * w;
-	y2 = x2 * w;
-	
-	float ret = y1*sigma + mean;
+  do {
+    x1 = 2.0 * uniform() - 1.0;
+    x2 = 2.0 * uniform() - 1.0;
+    w = x1 * x1 + x2 * x2;
+  } while ( w >= 1.0 );
 
-	return ret;
+  w = sqrt( (-2.0 * log( w ) ) / w );
+  y1 = x1 * w;
+  y2 = x2 * w;
+
+  float ret = y1*sigma + mean;
+
+  return ret;
 }
 
-inline std::size_t uniformInteger(std::size_t upperBound=1) {
-
-	
-	/// @bug there was a man entry about how this leads to a lousy uniform
-	/// @bug distribution in practice. should probably review
-	assert(upperBound > 0);
-	return ((rand()) % ((int)upperBound));
+inline std::size_t
+uniformInteger (std::size_t upperBound = 1)
+{
+  /// @bug there was a man entry about how this leads to a lousy uniform
+  /// @bug distribution in practice. should probably review
+  assert(upperBound > 0);
+  return ((rand()) % ((int)upperBound));
 }
 
-	
-	
+
+
 
 /// Randomizes from probabilistically weighted distribution. Thus,
 /// sum of passed in weights should be 1.0
-inline std::size_t weightedRandomNormalized(std::vector<float> weights) {
+inline std::size_t
+weightedRandomNormalized(std::vector<float> weights)
+{
+  // Choose a random bounded mass between 0 and 1
+  float cutoff = ((float) (rand())) / (float) RAND_MAX;
 
-        // Choose a random bounded mass between 0 and 1
-	float cutoff = ((float)(rand())) / (float)RAND_MAX;
+  //std::cout << "cutoff : " << cutoff << std::endl;
 
-	//std::cout << "cutoff : " << cutoff << std::endl;
+  // Sum up mass, stopping when cutoff is reached. This is the typical
+  // weighted sampling algorithm.
+  float mass = 0;
+  for (std::size_t i = 0;  i < weights.size();   i++) {
+    mass += weights[i];
+    //std::cout << "mass: " << mass << std::endl;
+    if (mass >= cutoff)
+      return i;
+  }
 
-    // Sum up mass, stopping when cutoff is reached. This is the typical
-    // weighted sampling algorithm.
-	float mass = 0;
-	for (std::size_t i = 0; i< weights.size() ; i++) {
-		mass += weights[i];
-		//std::cout << "mass: " << mass << std::endl;
-		if (mass >= cutoff)
-			return i;
-	}
-
-    // Just in case something slips through the cracks
-	return weights.size()-1;
+  // Just in case something slips through the cracks
+  return weights.size()-1;
 }
 
-inline std::size_t weightedRandom(const std::vector<int> & weights, unsigned int weightTotalHint = 0) {
-	
+inline std::size_t
+weightedRandom (const std::vector<int> & weights, unsigned int weightTotalHint = 0)
+{
+  if (weightTotalHint == 0) {
+    for (std::size_t i = 0;  i < weights.size();  i++)
+      weightTotalHint += weights[i];
+  }
 
-	if (weightTotalHint == 0)	{		
-		for (std::size_t i = 0; i < weights.size();i++) 
-			weightTotalHint += weights[i];
-	}
-	
-	const int sampledSum = uniformInteger(weightTotalHint);
-	int sum = 0;
-	if (WEIGHTED_RANDOM_DEBUG) std::cout << "[RNG::weightedRandom()] weightTotal = " << weightTotalHint <<
-			 std::endl; 
+  const int sampledSum = uniformInteger(weightTotalHint);
+  int sum = 0;
 
-	for (std::size_t i = 0; i < weights.size();i++) {
-		if (WEIGHTED_RANDOM_DEBUG) 
-		std::cout << "[RNG::weightedRandom()] weight[" << i << "] = " << weights[i] <<
-			 std::endl; 
+  if (WEIGHTED_RANDOM_DEBUG)
+    std::cout << "[RNG::weightedRandom()] weightTotal = "
+              << weightTotalHint
+              << std::endl;
 
-		sum += weights[i];
-		if (sampledSum <= sum) {
-			if (WEIGHTED_RANDOM_DEBUG) 
-			std::cout << "[RNG::weightedRandom()] sampled index " << i << "(" <<
-			 "running sum = " << sum << ", sampled sum = " << sampledSum << std::endl;
-			return i;
-		}
-	}
+  for (std::size_t i = 0;  i < weights.size();  i++) {
+    if (WEIGHTED_RANDOM_DEBUG)
+      std::cout << "[RNG::weightedRandom()] weight[" << i << "] = "
+                << weights[i]
+                << std::endl;
 
-	return weights.size()-1;
+    sum += weights[i];
+    if (sampledSum <= sum) {
+      if (WEIGHTED_RANDOM_DEBUG)
+        std::cout << "[RNG::weightedRandom()] sampled index "
+                  << i
+                  << "("
+                  << "running sum = "
+                  << sum
+                  << ", sampled sum = "
+                  << sampledSum
+                  << std::endl;
+      return i;
+    }
+  }
+
+  return weights.size() - 1;
 }
 
-}
+}   /*  namespace RandomNumberGenerators  */
+
 #endif
diff --git a/src/libprojectM/Renderer/BeatDetect.cpp b/src/libprojectM/Renderer/BeatDetect.cpp
index 106b544..e7f79ea 100644
--- a/src/libprojectM/Renderer/BeatDetect.cpp
+++ b/src/libprojectM/Renderer/BeatDetect.cpp
@@ -21,11 +21,10 @@
 /**
  * Takes sound data from wherever and returns beat detection values
  * Uses statistical Energy-Based methods. Very simple
- * 
+ *
  * Some stuff was taken from Frederic Patin's beat-detection article,
  * you'll find it online
  */
-
 #include <stdlib.h>
 #include <stdio.h>
 
@@ -36,151 +35,153 @@
 #include <cmath>
 #include "BeatDetect.hpp"
 
-BeatDetect::BeatDetect(PCM *pcm) {
-  int x,y; 
+
+BeatDetect::BeatDetect (PCM *pcm)
+{
+  int x,y;
 
   this->pcm=pcm;
 
-  this->vol_instant=0;
-  this->vol_history=0;
+  this->vol_instant = 0;
+  this->vol_history = 0;
 
-  for (y=0;y<80;y++)
-    {
-      this->vol_buffer[y]=0;
-    }
-
-  this->beat_buffer_pos=0;
-
-  for (x=0;x<32;x++) {
-      this->beat_instant[x]=0;
-      this->beat_history[x]=0;
-      this->beat_val[x]=1.0;
-      this->beat_att[x]=1.0;
-      this->beat_variance[x]=0;
-      for (y=0;y<80;y++) {
-	    this->beat_buffer[x][y]=0;
-	    }
-    }
-
-    this->treb = 0;
-    this->mid = 0;
-    this->bass = 0;
-    this->vol_old = 0;
-    this->beat_sensitivity = 10.00;
-    this->treb_att = 0;
-    this->mid_att = 0;
-    this->bass_att = 0;
-    this->vol = 0;
-
-  
+  for (y = 0;  y < 80;  y++)
+  {
+    this->vol_buffer[y] = 0;
   }
 
-BeatDetect::~BeatDetect() 
+  this->beat_buffer_pos = 0;
+
+  for (x = 0;  x < 32;  x++) {
+    this->beat_instant[x] = 0;
+    this->beat_history[x] = 0;
+    this->beat_val[x] = 1.0;
+    this->beat_att[x] = 1.0;
+    this->beat_variance[x] = 0;
+    for (y = 0;  y < 80;  y++) {
+      this->beat_buffer[x][y] = 0;
+    }
+  }
+
+  this->treb = 0;
+  this->mid = 0;
+  this->bass = 0;
+  this->vol_old = 0;
+  this->beat_sensitivity = 10.00;
+  this->treb_att = 0;
+  this->mid_att = 0;
+  this->bass_att = 0;
+  this->vol = 0;
+}
+
+BeatDetect::~BeatDetect()
 {
 
 }
 
-void BeatDetect::reset() {
-  this->treb = 0;
-  this->mid = 0;
-  this->bass = 0;
-  this->treb_att = 0;
-  this->mid_att = 0;
-  this->bass_att = 0;
-  }
-
-void BeatDetect::detectFromSamples() {
-    vol_old = vol;
-    bass=0;mid=0;treb=0;
-
-    getBeatVals(pcm->pcmdataL,pcm->pcmdataR);
-  }
-
-void BeatDetect::getBeatVals( float *vdataL,float *vdataR ) {
-
-  int linear=0;
-  int x,y;
-  float temp2=0;
-
-  vol_instant=0;
-      for ( x=0;x<16;x++)
-	{
-	  
-	  beat_instant[x]=0;
-	  for ( y=linear*2;y<(linear+8+x)*2;y++)
-	    {
-	      beat_instant[x]+=((vdataL[y]*vdataL[y])+(vdataR[y]*vdataR[y]))*(1.0/(8+x)); 
-//	      printf( "beat_instant[%d]: %f %f %f\n", x, beat_instant[x], vdataL[y], vdataR[y] );
-	      vol_instant+=((vdataL[y]*vdataL[y])+(vdataR[y]*vdataR[y]))*(1.0/512.0);
-
-	    }
-//printf("1");	  
-	  linear=y/2;
-	  beat_history[x]-=(beat_buffer[x][beat_buffer_pos])*.0125;
-	  beat_buffer[x][beat_buffer_pos]=beat_instant[x];
-	  beat_history[x]+=(beat_instant[x])*.0125;
-	  
-	  beat_val[x]=(beat_instant[x])/(beat_history[x]);
-	  
-	  beat_att[x]+=(beat_instant[x])/(beat_history[x]);
-
-//printf("2\n");
- 	  
-	}
-//printf("b\n");      
-      vol_history-=(vol_buffer[beat_buffer_pos])*.0125;
-      vol_buffer[beat_buffer_pos]=vol_instant;
-      vol_history+=(vol_instant)*.0125;
-
-      mid=0;
-      for(x=1;x<10;x++)
-	{
-	 mid+=(beat_instant[x]);
-	  temp2+=(beat_history[x]);
-	 
-	}
-
-	 mid=mid/(1.5*temp2);
-	 temp2=0;
-	 treb=0;
- 	  for(x=10;x<16;x++)
-	    { 
-	      treb+=(beat_instant[x]);
-	      temp2+=(beat_history[x]);
-	    }
-//printf("c\n");
-	  treb=treb/(1.5*temp2);
-//	  *vol=vol_instant/(1.5*vol_history);
-	  vol=vol_instant/(1.5*vol_history);
-
-	  bass=(beat_instant[0])/(1.5*beat_history[0]);
-
-	  
-	  if ( projectM_isnan( treb ) ) {
-	    treb = 0.0;
-	  }
-	  if ( projectM_isnan( mid ) ) {
-	    mid = 0.0;
-	  }
-	  if ( projectM_isnan( bass ) ) {
-	    bass = 0.0;
-	  }
-	  treb_att=.6 * treb_att + .4 * treb;
-	  mid_att=.6 * mid_att + .4 * mid;
-	  bass_att=.6 * bass_att + .4 * bass;
-
-	  if(bass_att>100)bass_att=100;
-	  if(bass >100)bass=100;
-	  if(mid_att>100)mid_att=100;
-	  if(mid >100)mid=100;
-	  if(treb_att>100)treb_att=100;
-	  if(treb >100)treb=100;
-	  if(vol>100)vol=100;
-	  
-	   // *vol=(beat_instant[3])/(beat_history[3]);
-	  beat_buffer_pos++;
-	  if( beat_buffer_pos>79)beat_buffer_pos=0;
-	
+void
+BeatDetect::reset()
+{
+  this->treb      = 0;
+  this->mid       = 0;
+  this->bass      = 0;
+  this->treb_att  = 0;
+  this->mid_att   = 0;
+  this->bass_att  = 0;
 }
 
+void
+BeatDetect::detectFromSamples()
+{
+  vol_old = vol;
+  bass = 0;  mid = 0;  treb = 0;
 
+  getBeatVals (pcm->pcmdataL, pcm->pcmdataR);
+}
+
+void
+BeatDetect::getBeatVals (float *vdataL, float *vdataR)
+{
+  int   linear=0;
+  int   x,y;
+  float temp2=0;
+
+  vol_instant = 0;
+  for (x = 0;  x < 16;  x++)
+  {
+    beat_instant[x]=0;
+    for (y = linear * 2;  y < (linear + 8 + x) * 2;  y++)
+    {
+      beat_instant[x] += ((vdataL[y] * vdataL[y])
+                       + (vdataR[y] * vdataR[y])) * (1.0 / (8 + x));
+      //        printf ("beat_instant[%d]: %f %f %f\n", x, beat_instant[x], vdataL[y], vdataR[y]);
+      vol_instant += ((vdataL[y] * vdataL[y])
+                   + (vdataR[y] * vdataR[y])) * (1.0 / 512.0);
+
+    }
+    //printf ("1");
+    linear = y / 2;
+    beat_history[x] -= (beat_buffer[x][beat_buffer_pos])*.0125;
+    beat_buffer[x][beat_buffer_pos] = beat_instant[x];
+    beat_history[x] += (beat_instant[x]) * .0125;
+
+    beat_val[x] = (beat_instant[x]) / (beat_history[x]);
+
+    beat_att[x] += (beat_instant[x]) / (beat_history[x]);
+
+    //printf ("2\n");
+
+  }
+  //printf ("b\n");
+  vol_history -= (vol_buffer[beat_buffer_pos]) * .0125;
+  vol_buffer[beat_buffer_pos] = vol_instant;
+  vol_history += (vol_instant) * .0125;
+
+  mid = 0;
+  for (x = 1;  x < 10;  x++)
+  {
+    mid += (beat_instant[x]);
+    temp2 += (beat_history[x]);
+  }
+
+  mid = mid / (1.5 * temp2);
+  temp2 = 0;
+  treb = 0;
+  for (x = 10;  x < 16;  x++)
+  {
+    treb += (beat_instant[x]);
+    temp2 += (beat_history[x]);
+  }
+  //printf ("c\n");
+  treb = treb / (1.5 * temp2);
+  //    *vol=vol_instant/(1.5*vol_history);
+  vol = vol_instant / (1.5 * vol_history);
+
+  bass = (beat_instant[0]) / (1.5 * beat_history[0]);
+
+
+  if (projectM_isnan (treb)) {
+    treb = 0.0;
+  }
+  if (projectM_isnan (mid)) {
+    mid = 0.0;
+  }
+  if (projectM_isnan (bass)) {
+    bass = 0.0;
+  }
+  treb_att = .6 * treb_att + .4 * treb;
+  mid_att = .6 * mid_att + .4 * mid;
+  bass_att = .6 * bass_att + .4 * bass;
+
+  if (bass_att > 100) bass_att =100;
+  if (bass > 100)     bass = 100;
+  if (mid_att > 100)  mid_att = 100;
+  if (mid > 100)      mid = 100;
+  if (treb_att > 100) treb_att = 100;
+  if (treb > 100)     treb = 100;
+  if (vol > 100)      vol = 100;
+
+  // *vol=(beat_instant[3])/(beat_history[3]);
+  beat_buffer_pos++;
+  if (beat_buffer_pos > 79) beat_buffer_pos = 0;
+}
diff --git a/src/libprojectM/Renderer/BeatDetect.hpp b/src/libprojectM/Renderer/BeatDetect.hpp
index 4dc3881..5da9831 100644
--- a/src/libprojectM/Renderer/BeatDetect.hpp
+++ b/src/libprojectM/Renderer/BeatDetect.hpp
@@ -27,7 +27,6 @@
  * $Log$
  *
  */
-
 #ifndef _BEAT_DETECT_H
 #define _BEAT_DETECT_H
 
@@ -37,38 +36,39 @@
 
 class DLLEXPORT BeatDetect
 {
-	public:
-		float treb ;
-		float mid ;
-		float bass ;
-		float vol_old ;
-		float beat_sensitivity;
-		float treb_att ;
-		float mid_att ;
-		float bass_att ;
-		float vol;
+public:
+  float treb;
+  float mid;
+  float bass;
+  float vol_old;
+  float beat_sensitivity;
+  float treb_att;
+  float mid_att;
+  float bass_att;
+  float vol;
 
-		PCM *pcm;
+  PCM *pcm;
 
-		/** Methods */
-		BeatDetect(PCM *pcm);
-		~BeatDetect();
-		void initBeatDetect();
-		void reset();
-		void detectFromSamples();
-		void getBeatVals ( float *vdataL, float *vdataR );
-	private:
-		/** Vars */
-		float beat_buffer[32][80],
-		beat_instant[32],
-		beat_history[32];
-		float beat_val[32],
-		beat_att[32],
-		beat_variance[32];
-		int beat_buffer_pos;
-		float vol_buffer[80],
-		vol_instant,
-		vol_history;
+  /** Methods */
+  BeatDetect(PCM *pcm);
+  ~BeatDetect();
+  void initBeatDetect();
+  void reset();
+  void detectFromSamples();
+  void getBeatVals ( float *vdataL, float *vdataR );
+
+private:
+  /** Vars */
+  float beat_buffer[32][80],
+        beat_instant[32],
+        beat_history[32];
+  float beat_val[32],
+        beat_att[32],
+        beat_variance[32];
+  int   beat_buffer_pos;
+  float vol_buffer[80],
+        vol_instant,
+        vol_history;
 };
 
 #endif /** !_BEAT_DETECT_H */
diff --git a/src/libprojectM/Renderer/FBO.cpp b/src/libprojectM/Renderer/FBO.cpp
index 2bc1dd3..fe86e8f 100644
--- a/src/libprojectM/Renderer/FBO.cpp
+++ b/src/libprojectM/Renderer/FBO.cpp
@@ -23,7 +23,6 @@
  *
  * Render this methods
  */
-
 #include <stdio.h>
 //#include <GL/gl.h>
 #include <iostream>
@@ -32,274 +31,270 @@
 
 
 
-RenderTarget::~RenderTarget() {
-
-
-	glDeleteTextures( 1, &this->textureID[0]);
+RenderTarget::~RenderTarget()
+{
+  glDeleteTextures (1, &this->textureID[0]);
 
 #ifdef USE_FBO
-	if (useFBO) 
-         {
-		glDeleteTextures( 1, &this->textureID[1] );
-		glDeleteRenderbuffersEXT(1,  &this->depthb[0]);
-		glDeleteFramebuffersEXT(1, &this->fbuffer[0]);
-		if(renderToTexture)
-		  {
-		    glDeleteTextures( 1, &this->textureID[2] );
-		    glDeleteRenderbuffersEXT(1,  &this->depthb[1]);
-		    glDeleteFramebuffersEXT(1, &this->fbuffer[1]);
-		  }
-         }
+  if (useFBO)
+  {
+    glDeleteTextures (1, &this->textureID[1]);
+    glDeleteRenderbuffersEXT (1,  &this->depthb[0]);
+    glDeleteFramebuffersEXT (1, &this->fbuffer[0]);
+    if (renderToTexture)
+    {
+      glDeleteTextures (1, &this->textureID[2]);
+      glDeleteRenderbuffersEXT (1,  &this->depthb[1]);
+      glDeleteFramebuffersEXT (1, &this->fbuffer[1]);
+    }
+  }
 #endif
-
 }
 
 GLuint RenderTarget::initRenderToTexture()
 {
 #ifdef USE_FBO
-
   if (this->useFBO==1)
-    {
-      this->renderToTexture=1;
-      
-      GLuint   fb2, depth_rb2;
-      glGenFramebuffersEXT(1, &fb2);
-      glBindFramebufferEXT( GL_FRAMEBUFFER_EXT, fb2 );
-      glGenRenderbuffersEXT(1, &depth_rb2);
-      glBindRenderbufferEXT( GL_RENDERBUFFER_EXT, depth_rb2 );
-      
-      glRenderbufferStorageEXT( GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT, this->texsize,this->texsize  );
-      glFramebufferRenderbufferEXT( GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, depth_rb2 );         
-      this->fbuffer[1] = fb2;
-      this->depthb[1]=  depth_rb2;
-      glGenTextures(1, &this->textureID[2]);
-      glBindTexture(GL_TEXTURE_2D, this->textureID[2]); 
-      glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-      glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, texsize, texsize, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL );
-      glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-      glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
-      glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
-      glFramebufferTexture2DEXT( GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, this->textureID[2], 0 );
-      return this->textureID[2];
-    }
-#endif 
-return -1;
-      
+  {
+    this->renderToTexture=1;
+
+    GLuint   fb2, depth_rb2;
+
+    glGenFramebuffersEXT (1, &fb2);
+    glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, fb2);
+    glGenRenderbuffersEXT (1, &depth_rb2);
+    glBindRenderbufferEXT (GL_RENDERBUFFER_EXT, depth_rb2);
+
+    glRenderbufferStorageEXT (GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT, this->texsize,this->texsize );
+    glFramebufferRenderbufferEXT (GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, depth_rb2);
+    this->fbuffer[1] = fb2;
+    this->depthb[1]=  depth_rb2;
+    glGenTextures (1, &this->textureID[2]);
+    glBindTexture (GL_TEXTURE_2D, this->textureID[2]);
+    glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+    glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, texsize, texsize, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
+    glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+    glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
+    glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
+    glFramebufferTexture2DEXT (GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, this->textureID[2], 0);
+    return this->textureID[2];
+  }
+#endif
+  return -1;
 }
 
 /** Creates new pbuffers */
-RenderTarget::RenderTarget(int texsize, int width, int height) : useFBO(false) {
+RenderTarget::RenderTarget (int texsize, int width, int height)
+  : useFBO (false)
+{
+  int mindim = 0;
+  int origtexsize = 0;
 
-   int mindim = 0;
-   int origtexsize = 0;
-
-   this->renderToTexture = 0;
-   this->texsize = texsize;
+  this->renderToTexture = 0;
+  this->texsize = texsize;
 
 #ifdef USE_FBO
-      // Forceably disable FBO if user requested it but the video card / driver lacks
-      // the appropraite frame buffer extension.
-      useFBO = !!strstr ((char const *) glGetString (GL_EXTENSIONS),
+  // Forceably disable FBO if user requested it but the video card / driver lacks
+  // the appropraite frame buffer extension.
+  useFBO = !!strstr ((char const *) glGetString (GL_EXTENSIONS),
 #ifdef USE_GLES1
-                         "GL_OES_framebuffer_object"
+                     "GL_OES_framebuffer_object"
 #else
-                         "GL_EXT_framebuffer_object"
+                     "GL_EXT_framebuffer_object"
 #endif
-                        );
-      if (useFBO)
-	{	 
-
-	  GLuint   fb,  depth_rb, rgba_tex,  other_tex;
-	  glGenFramebuffersEXT(1, &fb);
-	  glBindFramebufferEXT( GL_FRAMEBUFFER_EXT, fb );
-	  
-	  glGenRenderbuffersEXT(1, &depth_rb);
-	  glBindRenderbufferEXT( GL_RENDERBUFFER_EXT, depth_rb );
-	  glRenderbufferStorageEXT( GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT, this->texsize,this->texsize  );
-	  glFramebufferRenderbufferEXT( GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, depth_rb );
-	  this->fbuffer[0] = fb;
-	  this->depthb[0]=  depth_rb;
-	  
-	  glGenTextures(1, &other_tex);
-	  glBindTexture(GL_TEXTURE_2D,other_tex);
-	  glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, texsize, texsize, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL );
-	  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-	  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-	  //glGenerateMipmapEXT(GL_TEXTURE_2D);
-	  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
-	  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
-	  
-	  
-	  
-	  glGenTextures(1, &rgba_tex);
-	  glBindTexture(GL_TEXTURE_2D, rgba_tex); 
-	  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-	  glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, texsize, texsize, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL );
-	  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-	  //glGenerateMipmapEXT(GL_TEXTURE_2D);
-	  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
-	  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
-	  
-	  
-	  
-	  glFramebufferTexture2DEXT( GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, rgba_tex, 0 );         
-	  this->textureID[0] = rgba_tex;
-	  this->textureID[1] = other_tex; 
-	  
-	  GLenum status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
-
-	  glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, 0);
-
-	  if (status == GL_FRAMEBUFFER_COMPLETE_EXT) {
-	    return;
-	  }	
-	  std::cerr << "[projecM] warning: FBO support not detected. Using fallback." << std::endl;
-	}
-
-#endif 
-
-// Can reach here via two code paths: 
-// (1) useFBO was set to false externally by cmake / system setting / etc.
-// (2) useFBO was true but forced to false as it failed to pass all the GLU extension checks.
-
-    /** Fallback pbuffer creation via teximage hack */
-    /** Check the texture size against the viewport size */
-    /** If the viewport is smaller, then we'll need to scale the texture size down */
-    /** If the viewport is larger, scale it up */
-    mindim = width < height ? width : height;
-    origtexsize = this->texsize;
-    this->texsize = nearestPower2( mindim, SCALE_MINIFY );
-        glGenTextures(1, &this->textureID[0] );
-
-        glBindTexture(GL_TEXTURE_2D, this->textureID[0] );
-        //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
-        //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
-
-	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-
-        glTexImage2D(GL_TEXTURE_2D,
-		    0,
-		    GL_RGBA,
-		    this->texsize, this->texsize,
-		    0,
-		    GL_RGBA,
-		    GL_UNSIGNED_BYTE,
-		    NULL);
-      
-
-   
-    return;
-  }
-
-  void RenderTarget::fallbackRescale(int width, int height)
+                   );
+  if (useFBO)
   {
-	int mindim = width < height ? width : height;
-    int origtexsize = this->texsize;
-    this->texsize = nearestPower2( mindim, SCALE_MINIFY );
+    GLuint   fb,  depth_rb, rgba_tex,  other_tex;
+    glGenFramebuffersEXT (1, &fb);
+    glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, fb);
 
-    if (origtexsize == texsize)
+    glGenRenderbuffersEXT (1, &depth_rb);
+    glBindRenderbufferEXT (GL_RENDERBUFFER_EXT, depth_rb);
+    glRenderbufferStorageEXT (GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT, this->texsize,this->texsize );
+    glFramebufferRenderbufferEXT (GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, depth_rb);
+    this->fbuffer[0] = fb;
+    this->depthb[0]=  depth_rb;
+
+    glGenTextures (1, &other_tex);
+    glBindTexture (GL_TEXTURE_2D,other_tex);
+    glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, texsize, texsize, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
+    glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+    glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+    //glGenerateMipmapEXT (GL_TEXTURE_2D);
+    glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
+    glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
+
+
+
+    glGenTextures (1, &rgba_tex);
+    glBindTexture (GL_TEXTURE_2D, rgba_tex);
+    glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+    glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, texsize, texsize, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
+    glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+    //glGenerateMipmapEXT (GL_TEXTURE_2D);
+    glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
+    glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
+
+
+
+    glFramebufferTexture2DEXT (GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, rgba_tex, 0);
+    this->textureID[0] = rgba_tex;
+    this->textureID[1] = other_tex;
+
+    GLenum status = glCheckFramebufferStatusEXT (GL_FRAMEBUFFER_EXT);
+
+    glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, 0);
+
+    if (status == GL_FRAMEBUFFER_COMPLETE_EXT) {
       return;
-
-    /* Create the texture that will be bound to the render this */
-    /*
-
-        if ( this->texsize != origtexsize ) {
-
-            glDeleteTextures( 1, &this->textureID[0] );
-          }
-    */
-
-        glGenTextures(1, &this->textureID[0] );
-
-        glBindTexture(GL_TEXTURE_2D, this->textureID[0] );
-        //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
-        //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
-
-	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-
-        glTexImage2D(GL_TEXTURE_2D,
-		    0,
-		    GL_RGBA,
-		    this->texsize, this->texsize,
-		    0,
-		    GL_RGBA,
-		    GL_UNSIGNED_BYTE,
-		    NULL);
-      
-
+    }
+    std::cerr << "[projecM] warning: FBO support not detected. Using fallback." << std::endl;
   }
+#endif  /*  USE_FBO  */
+
+  // Can reach here via two code paths:
+  // (1) useFBO was set to false externally by cmake / system setting / etc.
+  // (2) useFBO was true but forced to false as it failed to pass all the GLU extension checks.
+
+  /** Fallback pbuffer creation via teximage hack */
+  /** Check the texture size against the viewport size */
+  /** If the viewport is smaller, then we'll need to scale the texture size down */
+  /** If the viewport is larger, scale it up */
+  mindim = width < height ? width : height;
+  origtexsize = this->texsize;
+  this->texsize = nearestPower2 (mindim, SCALE_MINIFY);
+  glGenTextures (1, &this->textureID[0]);
+
+  glBindTexture (GL_TEXTURE_2D, this->textureID[0]);
+  //glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+  //glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+
+  glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+  glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+
+  glTexImage2D (GL_TEXTURE_2D,
+                0,
+                GL_RGBA,
+                this->texsize, this->texsize,
+                0,
+                GL_RGBA,
+                GL_UNSIGNED_BYTE,
+                NULL);
+
+  return;
+}
+
+void
+RenderTarget::fallbackRescale (int width, int height)
+{
+  int mindim = width < height ? width : height;
+  int origtexsize = this->texsize;
+
+  this->texsize = nearestPower2 (mindim, SCALE_MINIFY);
+
+  if (origtexsize == texsize)
+    return;
+
+  /* Create the texture that will be bound to the render this */
+  /*
+
+  if (this->texsize != origtexsize) {
+    glDeleteTextures (1, &this->textureID[0]);
+  }
+  */
+
+  glGenTextures (1, &this->textureID[0]);
+
+  glBindTexture (GL_TEXTURE_2D, this->textureID[0]);
+  //glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+  //glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+
+  glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+  glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+
+  glTexImage2D (GL_TEXTURE_2D,
+                0,
+                GL_RGBA,
+                this->texsize, this->texsize,
+                0,
+                GL_RGBA,
+                GL_UNSIGNED_BYTE,
+                NULL);
+}
 
 /** Destroys the pbuffer */
 
 /** Locks the pbuffer */
-void RenderTarget::lock() {
-
+void
+RenderTarget::lock()
+{
 #ifdef USE_FBO
-  if(this->useFBO)
-    { 
-      glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, this->fbuffer[0]);     
-    }
+  if (this->useFBO)
+  {
+    glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, this->fbuffer[0]);
+  }
 #endif
-    }
+}
 
 /** Unlocks the pbuffer */
-void RenderTarget::unlock() {
-
+void
+RenderTarget::unlock()
+{
 #ifdef USE_FBO
-  if(this->useFBO)
-    {
-      glBindTexture( GL_TEXTURE_2D, this->textureID[1] );
-      glCopyTexSubImage2D( GL_TEXTURE_2D,
-                         0, 0, 0, 0, 0, 
-                         this->texsize, this->texsize );
-      glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
-      return;
-    }
-#endif
-    /** Fallback texture path */
-    
-    glBindTexture( GL_TEXTURE_2D, this->textureID[0] );
-    
-	glCopyTexSubImage2D( GL_TEXTURE_2D, 0, 0, 0, 0, 0, this->texsize, this->texsize );
+  if (this->useFBO)
+  {
+    glBindTexture (GL_TEXTURE_2D, this->textureID[1]);
+    glCopyTexSubImage2D (GL_TEXTURE_2D,
+                         0, 0, 0, 0, 0,
+                         this->texsize, this->texsize);
+    glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, 0);
+    return;
   }
+#endif
+  /** Fallback texture path */
 
-/** 
+  glBindTexture (GL_TEXTURE_2D, this->textureID[0]);
+
+  glCopyTexSubImage2D (GL_TEXTURE_2D, 0, 0, 0, 0, 0, this->texsize, this->texsize);
+}
+
+/**
  * Calculates the nearest power of two to the given number using the
  * appropriate rule
  */
-int RenderTarget::nearestPower2( int value, TextureScale scaleRule ) {
+int
+RenderTarget::nearestPower2 (int value, TextureScale scaleRule)
+{
+  int x = value;
+  int power = 0;
 
-    int x = value;
-    int power = 0;
-
-    while ( ( x & 0x01 ) != 1 ) {
-        x >>= 1;
-      }
-
-    if ( x == 1 ) {
-        return value;
-      } else {
-        x = value;
-        while ( x != 0 ) {
-            x >>= 1;
-            power++;
-          }
-        switch ( scaleRule ) {
-            case SCALE_NEAREST:
-                if ( ( ( 1 << power ) - value ) <= ( value - ( 1 << ( power - 1 ) ) ) ) {
-                    return 1 << power;
-                  } else {
-                    return 1 << ( power - 1 );
-                  }
-            case SCALE_MAGNIFY:
-                return 1 << power;
-            case SCALE_MINIFY:
-                return 1 << ( power - 1 );
-            default:
-                break;
-          }
-      }
-    return 0;
+  while ((x & 0x01) != 1) {
+    x >>= 1;
   }
+
+  if (x == 1) {
+    return value;
+  } else {
+    x = value;
+    while (x != 0) {
+      x >>= 1;
+      power++;
+    }
+    switch (scaleRule) {
+    case SCALE_NEAREST:
+      if (((1 << power) - value) <= (value - (1 << (power - 1)))) {
+        return 1 << power;
+      } else {
+        return 1 << (power - 1);
+      }
+    case SCALE_MAGNIFY:
+      return 1 << power;
+    case SCALE_MINIFY:
+      return 1 << (power - 1);
+    default:
+      break;
+    }
+  }
+  return 0;
+}
diff --git a/src/libprojectM/Renderer/FBO.hpp b/src/libprojectM/Renderer/FBO.hpp
index 77a1272..21f13ec 100644
--- a/src/libprojectM/Renderer/FBO.hpp
+++ b/src/libprojectM/Renderer/FBO.hpp
@@ -24,7 +24,6 @@
  * Opaque render target
  *
  */
-
 #ifndef _RENDERTARGET_H
 #define _RENDERTARGET_H
 
@@ -47,15 +46,19 @@
 #endif
 #endif
 
-typedef enum { SCALE_NEAREST, SCALE_MAGNIFY, SCALE_MINIFY } TextureScale;
+
+typedef enum {
+  SCALE_NEAREST,
+  SCALE_MAGNIFY,
+  SCALE_MINIFY
+} TextureScale;
+
 
 class RenderTarget {
-
-
 public:
-    /** Texture size */
-    int texsize;
-  
+  /** Texture size */
+  int texsize;
+
   int useFBO;
   int renderToTexture;
 
@@ -68,22 +71,21 @@
   int nearestPower2( int value, TextureScale scaleRule );
   void fallbackRescale(int width, int height);
 
-    /** Opaque pbuffer context and pbuffer */
-/*
+  /** Opaque pbuffer context and pbuffer */
+  /*
 #ifdef MACOS
-    void *origContext;
-    void *pbufferContext;
-    void *pbuffer;
+  void *origContext;
+  void *pbufferContext;
+  void *pbuffer;
 #endif
-*/
-    /** Render target texture ID for non-pbuffer systems */
-    GLuint textureID[3];
+  */
+  /** Render target texture ID for non-pbuffer systems */
+  GLuint textureID[3];
 #ifdef USE_FBO
-    GLuint fbuffer[2]; 
-    GLuint depthb[2];
+  GLuint fbuffer[2];
+  GLuint depthb[2];
 #endif
-  };
-
+};
 
 
 #endif /** !_RENDERTARGET_H */
diff --git a/src/libprojectM/Renderer/Filters.cpp b/src/libprojectM/Renderer/Filters.cpp
index 3e831f9..f064552 100644
--- a/src/libprojectM/Renderer/Filters.cpp
+++ b/src/libprojectM/Renderer/Filters.cpp
@@ -4,7 +4,6 @@
  *  Created on: Jun 18, 2008
  *      Author: pete
  */
-
 #include "Common.hpp"
 
 #ifdef USE_GLES1
@@ -21,78 +20,82 @@
 
 #include "Filters.hpp"
 
-void Brighten::Draw(RenderContext &context)
+
+void
+Brighten::Draw(RenderContext &context)
 {
-	float points[4][2] = {{-0.5, -0.5},
-				      {-0.5,  0.5},
-				      { 0.5,  0.5},
-				      { 0.5,  -0.5}};
+  float points[4][2] = {{-0.5, -0.5},
+                        {-0.5,  0.5},
+                        { 0.5,  0.5},
+                        { 0.5,  -0.5}};
 
-	glEnableClientState(GL_VERTEX_ARRAY);
-	glVertexPointer(2,GL_FLOAT,0,points);
+  glEnableClientState(GL_VERTEX_ARRAY);
+  glVertexPointer(2,GL_FLOAT,0,points);
 
-	glColor4f(1.0, 1.0, 1.0, 1.0);
-	glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ZERO);
-	glDrawArrays(GL_TRIANGLE_FAN,0,4);
-	glBlendFunc(GL_ZERO, GL_DST_COLOR);
-	glDrawArrays(GL_TRIANGLE_FAN,0,4);
-	glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ZERO);
-	glDrawArrays(GL_TRIANGLE_FAN,0,4);
-	glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+  glColor4f(1.0, 1.0, 1.0, 1.0);
+  glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ZERO);
+  glDrawArrays(GL_TRIANGLE_FAN,0,4);
+  glBlendFunc(GL_ZERO, GL_DST_COLOR);
+  glDrawArrays(GL_TRIANGLE_FAN,0,4);
+  glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ZERO);
+  glDrawArrays(GL_TRIANGLE_FAN,0,4);
+  glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
 
-	glDisableClientState(GL_VERTEX_ARRAY);
+  glDisableClientState(GL_VERTEX_ARRAY);
 }
 
-void Darken::Draw(RenderContext &context)
+void
+Darken::Draw(RenderContext &context)
 {
-	float points[4][2] = {{-0.5, -0.5},
-				      {-0.5,  0.5},
-				      { 0.5,  0.5},
-				      { 0.5,  -0.5}};
+  float points[4][2] = {{-0.5, -0.5},
+                        {-0.5,  0.5},
+                        { 0.5,  0.5},
+                        { 0.5,  -0.5}};
 
-		glEnableClientState(GL_VERTEX_ARRAY);
-		glVertexPointer(2,GL_FLOAT,0,points);
-		glColor4f(1.0, 1.0, 1.0, 1.0);
-		glBlendFunc(GL_ZERO, GL_DST_COLOR);
-		glDrawArrays(GL_TRIANGLE_FAN,0,4);
-		glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-		glDisableClientState(GL_VERTEX_ARRAY);
+  glEnableClientState(GL_VERTEX_ARRAY);
+  glVertexPointer(2,GL_FLOAT,0,points);
+  glColor4f(1.0, 1.0, 1.0, 1.0);
+  glBlendFunc(GL_ZERO, GL_DST_COLOR);
+  glDrawArrays(GL_TRIANGLE_FAN,0,4);
+  glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+  glDisableClientState(GL_VERTEX_ARRAY);
 }
 
-void Invert::Draw(RenderContext &context)
+void
+Invert::Draw(RenderContext &context)
 {
-	float points[4][2] = {{-0.5, -0.5},
-				      {-0.5,  0.5},
-				      { 0.5,  0.5},
-				      { 0.5,  -0.5}};
+  float points[4][2] = {{-0.5, -0.5},
+                        {-0.5,  0.5},
+                        { 0.5,  0.5},
+                        { 0.5,  -0.5}};
 
-		glEnableClientState(GL_VERTEX_ARRAY);
-		glVertexPointer(2,GL_FLOAT,0,points);
-		glColor4f(1.0, 1.0, 1.0, 1.0);
-		glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ZERO);
-		glDrawArrays(GL_TRIANGLE_FAN,0,4);
-		glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+  glEnableClientState(GL_VERTEX_ARRAY);
+  glVertexPointer(2,GL_FLOAT,0,points);
+  glColor4f(1.0, 1.0, 1.0, 1.0);
+  glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ZERO);
+  glDrawArrays(GL_TRIANGLE_FAN,0,4);
+  glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
 
-		glDisableClientState(GL_VERTEX_ARRAY);
+  glDisableClientState(GL_VERTEX_ARRAY);
 }
 
-void Solarize::Draw(RenderContext &context)
+void
+Solarize::Draw(RenderContext &context)
 {
-	float points[4][2] = {{-0.5, -0.5},
-					      {-0.5,  0.5},
-					      { 0.5,  0.5},
-					      { 0.5,  -0.5}};
+  float points[4][2] = {{-0.5, -0.5},
+                        {-0.5,  0.5},
+                        { 0.5,  0.5},
+                        { 0.5,  -0.5}};
 
-	glEnableClientState(GL_VERTEX_ARRAY);
-	glVertexPointer(2,GL_FLOAT,0,points);
+  glEnableClientState(GL_VERTEX_ARRAY);
+  glVertexPointer(2,GL_FLOAT,0,points);
 
-	glColor4f(1.0, 1.0, 1.0, 1.0);
-	glBlendFunc(GL_ZERO, GL_ONE_MINUS_DST_COLOR);
-	glDrawArrays(GL_TRIANGLE_FAN,0,4);
-	glBlendFunc(GL_DST_COLOR, GL_ONE);
-	glDrawArrays(GL_TRIANGLE_FAN,0,4);
-	glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+  glColor4f(1.0, 1.0, 1.0, 1.0);
+  glBlendFunc(GL_ZERO, GL_ONE_MINUS_DST_COLOR);
+  glDrawArrays(GL_TRIANGLE_FAN,0,4);
+  glBlendFunc(GL_DST_COLOR, GL_ONE);
+  glDrawArrays(GL_TRIANGLE_FAN,0,4);
+  glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
 
-	glDisableClientState(GL_VERTEX_ARRAY);
+  glDisableClientState(GL_VERTEX_ARRAY);
 }
-
diff --git a/src/libprojectM/Renderer/Filters.hpp b/src/libprojectM/Renderer/Filters.hpp
index 6ce64da..c27668a 100644
--- a/src/libprojectM/Renderer/Filters.hpp
+++ b/src/libprojectM/Renderer/Filters.hpp
@@ -4,38 +4,38 @@
  *  Created on: Jun 18, 2008
  *      Author: pete
  */
-
 #ifndef FILTERS_HPP_
 #define FILTERS_HPP_
 
 #include "Renderable.hpp"
 
+
 class Brighten : public RenderItem
 {
 public:
-	Brighten(){}
-	void Draw(RenderContext &context);
+  Brighten(){}
+  void Draw(RenderContext &context);
 };
 
 class Darken : public RenderItem
 {
 public:
-	Darken(){}
-	void Draw(RenderContext &context);
+  Darken(){}
+  void Draw(RenderContext &context);
 };
 
 class Invert : public RenderItem
 {
 public:
-	Invert(){}
-	void Draw(RenderContext &context);
+  Invert(){}
+  void Draw(RenderContext &context);
 };
 
 class Solarize : public RenderItem
 {
 public:
-	Solarize(){}
-	void Draw(RenderContext &context);
+  Solarize(){}
+  void Draw(RenderContext &context);
 };
 
 #endif /* FILTERS_HPP_ */
diff --git a/src/libprojectM/Renderer/MilkdropWaveform.cpp b/src/libprojectM/Renderer/MilkdropWaveform.cpp
index db1181f..d6859c9 100644
--- a/src/libprojectM/Renderer/MilkdropWaveform.cpp
+++ b/src/libprojectM/Renderer/MilkdropWaveform.cpp
@@ -23,351 +23,366 @@
 #include "math.h"
 #include "BeatDetect.hpp"
 
-MilkdropWaveform::MilkdropWaveform(): RenderItem(),
-	x(0.5), y(0.5), r(1), g(0), b(0), a(1), mystery(0), mode(Line), scale(10), smoothing(0), rot(0), samples(0),modOpacityStart(0),modOpacityEnd(1),
-	modulateAlphaByVolume(false), maximizeColors(false), additive(false), dots(false), thick(false), loop(false) {}
 
-void MilkdropWaveform::Draw(RenderContext &context)
+MilkdropWaveform::MilkdropWaveform()
+  : RenderItem(),
+    x(0.5), y(0.5),
+    r(1), g(0), b(0), a(1),
+    mystery(0),
+    mode(Line),
+    scale(10),
+    smoothing(0),
+    rot(0),
+    samples(0),
+    modOpacityStart(0),
+    modOpacityEnd(1),
+    modulateAlphaByVolume(false),
+    maximizeColors(false),
+    additive(false),
+    dots(false),
+    thick(false),
+    loop(false)
+{}
+
+void
+MilkdropWaveform::Draw(RenderContext &context)
 {
-	  WaveformMath(context);
+  WaveformMath(context);
 
-	glMatrixMode( GL_MODELVIEW );
-		glPushMatrix();
-		glLoadIdentity();
+  glMatrixMode( GL_MODELVIEW );
+  glPushMatrix();
+  glLoadIdentity();
 
-		if(modulateAlphaByVolume) ModulateOpacityByVolume(context);
-		else temp_a = a;
-		MaximizeColors(context);
+  if (modulateAlphaByVolume)  ModulateOpacityByVolume(context);
+  else                        temp_a = a;
+  MaximizeColors(context);
 
-	#ifndef USE_GLES1
-		if(dots==1) glEnable(GL_LINE_STIPPLE);
-	#endif
+#ifndef USE_GLES1
+  if(dots==1) glEnable(GL_LINE_STIPPLE);
+#endif
 
-		//Thick wave drawing
-		if (thick==1)  glLineWidth( (context.texsize < 512 ) ? 2 : 2*context.texsize/512);
-		else glLineWidth( (context.texsize < 512 ) ? 1 : context.texsize/512);
+  //Thick wave drawing
+  if (thick == 1) glLineWidth( (context.texsize < 512 ) ? 2 : 2*context.texsize/512);
+  else            glLineWidth( (context.texsize < 512 ) ? 1 : context.texsize/512);
 
-		//Additive wave drawing (vice overwrite)
-		if (additive==1)glBlendFunc(GL_SRC_ALPHA, GL_ONE);
-		else glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+  //Additive wave drawing (vice overwrite)
+  if (additive == 1)  glBlendFunc(GL_SRC_ALPHA, GL_ONE);
+  else                glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
 
 
-		glTranslatef(.5, .5, 0);
-		glRotatef(rot, 0, 0, 1);
-		glScalef(aspectScale, 1.0, 1.0);
-		glTranslatef(-.5, -.5, 0);
+  glTranslatef(.5, .5, 0);
+  glRotatef(rot, 0, 0, 1);
+  glScalef(aspectScale, 1.0, 1.0);
+  glTranslatef(-.5, -.5, 0);
 
 
-		glEnableClientState(GL_VERTEX_ARRAY);
-		glDisableClientState(GL_TEXTURE_COORD_ARRAY);
-		glDisableClientState(GL_COLOR_ARRAY);
-		glVertexPointer(2,GL_FLOAT,0,wavearray);
+  glEnableClientState(GL_VERTEX_ARRAY);
+  glDisableClientState(GL_TEXTURE_COORD_ARRAY);
+  glDisableClientState(GL_COLOR_ARRAY);
+  glVertexPointer(2,GL_FLOAT,0,wavearray);
 
-		if (loop)
-		  glDrawArrays(GL_LINE_LOOP,0,samples);
-		else
-		  glDrawArrays(GL_LINE_STRIP,0,samples);
+  if (loop)
+    glDrawArrays(GL_LINE_LOOP,0,samples);
+  else
+    glDrawArrays(GL_LINE_STRIP,0,samples);
 
 
-		if (two_waves)
-		  {
-		    glVertexPointer(2,GL_FLOAT,0,wavearray2);
-		    if (loop)
-		      glDrawArrays(GL_LINE_LOOP,0,samples);
-		    else
-		      glDrawArrays(GL_LINE_STRIP,0,samples);
-		  }
+  if (two_waves)
+  {
+    glVertexPointer(2,GL_FLOAT,0,wavearray2);
+    if (loop)
+      glDrawArrays(GL_LINE_LOOP,0,samples);
+    else
+      glDrawArrays(GL_LINE_STRIP,0,samples);
+  }
 
 
-	#ifndef USE_GLES1
-		if(dots==1) glDisable(GL_LINE_STIPPLE);
-	#endif
+#ifndef USE_GLES1
+  if(dots==1) glDisable(GL_LINE_STIPPLE);
+#endif
 
-		glPopMatrix();
+  glPopMatrix();
 }
 
-void MilkdropWaveform::ModulateOpacityByVolume(RenderContext &context)
+void
+MilkdropWaveform::ModulateOpacityByVolume(RenderContext &context)
 {
+  //modulate volume by opacity
+  //
+  //set an upper and lower bound and linearly
+  //calculate the opacity from 0=lower to 1=upper
+  //based on current volume
 
-	//modulate volume by opacity
-	//
-	//set an upper and lower bound and linearly
-	//calculate the opacity from 0=lower to 1=upper
-	//based on current volume
-
-	if (context.beatDetect->vol<= modOpacityStart)  temp_a=0.0;
-	 else if (context.beatDetect->vol>=modOpacityEnd) temp_a=a;
-	 else temp_a=a*((context.beatDetect->vol-modOpacityStart)/(modOpacityEnd-modOpacityStart));
-
+  if (context.beatDetect->vol<= modOpacityStart)
+    temp_a=0.0;
+  else if (context.beatDetect->vol>=modOpacityEnd)
+    temp_a=a;
+  else
+    temp_a=a*((context.beatDetect->vol-modOpacityStart)/(modOpacityEnd-modOpacityStart));
 }
 
-void MilkdropWaveform::MaximizeColors(RenderContext &context)
+void
+MilkdropWaveform::MaximizeColors(RenderContext &context)
 {
+  float wave_r_switch=0, wave_g_switch=0, wave_b_switch=0;
 
-	float wave_r_switch=0, wave_g_switch=0, wave_b_switch=0;
-	//wave color brightening
-	//
-	//forces max color value to 1.0 and scales
-	// the rest accordingly
-	if(mode==Blob2 || mode==Blob5)
-		switch(context.texsize)
-		{
-			case 256:  temp_a *= 0.07f; break;
-			case 512:  temp_a *= 0.09f; break;
-			case 1024: temp_a *= 0.11f; break;
-			case 2048: temp_a *= 0.13f; break;
-		}
-	else if(mode==Blob3)
-	{
-		switch(context.texsize)
-		{
-			case 256:  temp_a *= 0.075f; break;
-			case 512:  temp_a *= 0.15f; break;
-			case 1024: temp_a *= 0.22f; break;
-			case 2048: temp_a *= 0.33f; break;
-		}
-		temp_a*=1.3f;
-		temp_a*=std::pow(context.beatDetect->treb , 2.0f);
-	}
+  //wave color brightening
+  //
+  //forces max color value to 1.0 and scales
+  // the rest accordingly
+  if (mode==Blob2 || mode==Blob5)
+    switch(context.texsize)
+    {
+    case 256:  temp_a *= 0.07f; break;
+    case 512:  temp_a *= 0.09f; break;
+    case 1024: temp_a *= 0.11f; break;
+    case 2048: temp_a *= 0.13f; break;
+    }
+  else if(mode==Blob3)
+  {
+    switch(context.texsize)
+    {
+    case 256:  temp_a *= 0.075f; break;
+    case 512:  temp_a *= 0.15f; break;
+    case 1024: temp_a *= 0.22f; break;
+    case 2048: temp_a *= 0.33f; break;
+    }
+    temp_a*=1.3f;
+    temp_a*=std::pow(context.beatDetect->treb , 2.0f);
+  }
 
-	if (maximizeColors==true)
-	{
-		if(r>=g && r>=b)   //red brightest
-		{
-			wave_b_switch=b*(1/r);
-			wave_g_switch=g*(1/r);
-			wave_r_switch=1.0;
-		}
-		else if   (b>=g && b>=r)         //blue brightest
-		{
-			wave_r_switch=r*(1/b);
-			wave_g_switch=g*(1/b);
-			wave_b_switch=1.0;
-
-		}
-
-		else  if (g>=b && g>=r)         //green brightest
-		{
-			wave_b_switch=b*(1/g);
-			wave_r_switch=r*(1/g);
-			wave_g_switch=1.0;
-		}
+  if (maximizeColors==true)
+  {
+    if(r>=g && r>=b)   //red brightest
+    {
+      wave_b_switch=b*(1/r);
+      wave_g_switch=g*(1/r);
+      wave_r_switch=1.0;
+    }
+    else if   (b>=g && b>=r)         //blue brightest
+    {
+      wave_r_switch=r*(1/b);
+      wave_g_switch=g*(1/b);
+      wave_b_switch=1.0;
+    }
+    else  if (g>=b && g>=r)         //green brightest
+    {
+      wave_b_switch=b*(1/g);
+      wave_r_switch=r*(1/g);
+      wave_g_switch=1.0;
+    }
 
 
-		glColor4f(wave_r_switch, wave_g_switch, wave_b_switch, temp_a * masterAlpha);
-	}
-	else
-	{
-		glColor4f(r, g, b, temp_a * masterAlpha);
-	}
+    glColor4f(wave_r_switch, wave_g_switch, wave_b_switch, temp_a * masterAlpha);
+  }
+  else
+  {
+    glColor4f(r, g, b, temp_a * masterAlpha);
+  }
 }
 
 
-void MilkdropWaveform::WaveformMath(RenderContext &context)
+void
+MilkdropWaveform::WaveformMath(RenderContext &context)
 {
+  int   i;
+  float r, theta;
 
-	int i;
+  float offset;
 
-	float r, theta;
+  float wave_x_temp=0;
+  float wave_y_temp=0;
 
-	float offset;
-
-	float wave_x_temp=0;
-	float wave_y_temp=0;
-
-	float cos_rot;
-	float sin_rot;
-
-	offset=x-.5;
-    float temp_y;
-
-	two_waves = false;
-	loop = false;
-
-	switch(mode)
-	{
-
-		case Circle:
-		  {
- 		    loop = true;
-			rot =   0;
-			aspectScale=1.0;
-			temp_y=-1*(y-1.0);
+  float cos_rot;
+  float sin_rot;
 
 
-			samples = 0? 512-32 : context.beatDetect->pcm->numsamples;
+  offset=x-.5;
+  float temp_y;
 
-			float inv_nverts_minus_one = 1.0f/(float)(samples);
+  two_waves = false;
+  loop = false;
 
-	       float last_value = context.beatDetect->pcm->pcmdataR[samples-1]+context.beatDetect->pcm->pcmdataL[samples-1];
-			float first_value = context.beatDetect->pcm->pcmdataR[0]+context.beatDetect->pcm->pcmdataL[0];
-			float offset = first_value-last_value;
-
-			for ( int i=0;i<samples;i++)
-			{
-
-			  float value = context.beatDetect->pcm->pcmdataR[i]+context.beatDetect->pcm->pcmdataL[i];
-			  value += offset * (i/(float)samples);
-
-			  r=(0.5 + 0.4f*.12*value*scale + mystery)*.5;
-			  theta=i*inv_nverts_minus_one*6.28f + context.time*0.2f;
-
-			  wavearray[i][0]=(r*cos(theta)*(context.aspectCorrect? context.aspectRatio : 1.0)+x);
-			  wavearray[i][1]=(r*sin(theta)+temp_y);
-			}
-		  }
-
-			break;
-
-		case RadialBlob://circularly moving waveform
-
-			rot =   0;
-			aspectScale = context.aspectRatio;
-
-			temp_y=-1*(y-1.0);
-
-			samples = 512-32;
-			for ( int i=0;i<512-32;i++)
-			{
-				theta=context.beatDetect->pcm->pcmdataL[i+32]*0.06*scale * 1.57 + context.time*2.3;
-				r=(0.53 + 0.43*context.beatDetect->pcm->pcmdataR[i]*0.12*scale+ mystery)*.5;
-
-				wavearray[i][0]=(r*cos(theta)*(context.aspectCorrect ? context.aspectRatio : 1.0)+x);
-				wavearray[i][1]=(r*sin(theta)+temp_y);
-			}
-
-			break;
-
-		case Blob2://EXPERIMENTAL
-
-			temp_y=-1*(y-1.0);
-			rot =   0;
-			aspectScale =1.0;
-			samples = 512-32;
-
-			for ( int i=0;i<512-32;i++)
-			{
-				wavearray[i][0]=(context.beatDetect->pcm->pcmdataR[i]*scale*0.5*(context.aspectCorrect ? context.aspectRatio : 1.0) + x);
-				wavearray[i][1]=(context.beatDetect->pcm->pcmdataL[i+32]*scale*0.5 + temp_y);
-			}
-
-			break;
-
-		case Blob3://EXPERIMENTAL
-
-			temp_y=-1*(y-1.0);
-
-			rot =   0;
-			aspectScale =1.0;
-
-			samples = 512-32;
-
-			for ( int i=0;i<512-32;i++)
-			{
-				wavearray[i][0]=(context.beatDetect->pcm->pcmdataR[i] * scale*0.5 + x);
-				wavearray[i][1]=( (context.beatDetect->pcm->pcmdataL[i+32]*scale*0.5 + temp_y));
-			}
-
-			break;
-
-		case DerivativeLine://single x-axis derivative waveform
-		{
-			rot =-mystery*90;
-			aspectScale=1.0;
-
-			temp_y=-1*(y-1.0);
-
-			float w1 = 0.45f + 0.5f*(mystery*0.5f + 0.5f);
-			float w2 = 1.0f - w1;
-			float xx[512], yy[512];
-			samples = 512-32;
-
-			for (int i=0; i<512-32; i++)
-			{
-				xx[i] = -1.0f + 2.0f*(i/(512.0-32.0)) + x;
-				yy[i] =0.4* context.beatDetect->pcm->pcmdataL[i]*0.47f*scale + temp_y;
-				xx[i] += 0.4*context.beatDetect->pcm->pcmdataR[i]*0.44f*scale;
-
-				if (i>1)
-				{
-					xx[i] = xx[i]*w2 + w1*(xx[i-1]*2.0f - xx[i-2]);
-					yy[i] = yy[i]*w2 + w1*(yy[i-1]*2.0f - yy[i-2]);
-				}
-				wavearray[i][0]=xx[i];
-				wavearray[i][1]=yy[i];
-			}											   		}
-		break;
-
-		case Blob5://EXPERIMENTAL
-
-			rot = 0;
-			aspectScale =1.0;
-
-			temp_y=-1*(y-1.0);
-
-			cos_rot = cosf(context.time*0.3f);
-			sin_rot = sinf(context.time*0.3f);
-			samples = 512-32;
-
-			for ( int i=0;i<512-32;i++)
-			{
-				float x0 = (context.beatDetect->pcm->pcmdataR[i]*context.beatDetect->pcm->pcmdataL[i+32] + context.beatDetect->pcm->pcmdataL[i+32]*context.beatDetect->pcm->pcmdataR[i]);
-				float y0 = (context.beatDetect->pcm->pcmdataR[i]*context.beatDetect->pcm->pcmdataR[i] - context.beatDetect->pcm->pcmdataL[i+32]*context.beatDetect->pcm->pcmdataL[i+32]);
-				wavearray[i][0]=((x0*cos_rot - y0*sin_rot)*scale*0.5*(context.aspectCorrect ? context.aspectRatio : 1.0) + x);
-				wavearray[i][1]=( (x0*sin_rot + y0*cos_rot)*scale*0.5 + temp_y);
-			}
-			break;
-
-		case Line://single waveform
+  switch(mode)
+  {
+  case Circle:
+    {
+      loop = true;
+      rot =   0;
+      aspectScale=1.0;
+      temp_y=-1*(y-1.0);
 
 
-			wave_x_temp=-2*0.4142*(fabs(fabs(mystery)-.5)-.5);
+      samples = 0? 512-32 : context.beatDetect->pcm->numsamples;
 
-			rot = -mystery*90;
-			aspectScale =1.0+wave_x_temp;
-			wave_x_temp=-1*(x-1.0);
-			samples = 0 ? 512-32 : context.beatDetect->pcm->numsamples;
+      float inv_nverts_minus_one = 1.0f/(float)(samples);
 
-			for ( int i=0;i<  samples;i++)
-			{
+      float last_value = context.beatDetect->pcm->pcmdataR[samples-1]+context.beatDetect->pcm->pcmdataL[samples-1];
+      float first_value = context.beatDetect->pcm->pcmdataR[0]+context.beatDetect->pcm->pcmdataL[0];
+      float offset = first_value-last_value;
 
-				wavearray[i][0]=i/(float)  samples;
-				wavearray[i][1]=context.beatDetect->pcm->pcmdataR[i]*.04*scale+wave_x_temp;
+      for ( int i=0;i<samples;i++)
+      {
+        float value = context.beatDetect->pcm->pcmdataR[i]+context.beatDetect->pcm->pcmdataL[i];
+        value += offset * (i/(float)samples);
 
-			}
-			//	  printf("%f %f\n",renderTarget->texsize*wave_y_temp,wave_y_temp);
+        r=(0.5 + 0.4f*.12*value*scale + mystery)*.5;
+        theta=i*inv_nverts_minus_one*6.28f + context.time*0.2f;
 
-			break;
+        wavearray[i][0]=(r*cos(theta)*(context.aspectCorrect? context.aspectRatio : 1.0)+x);
+        wavearray[i][1]=(r*sin(theta)+temp_y);
+      }
+    }
 
-		case DoubleLine://dual waveforms
+    break;
+
+  case RadialBlob://circularly moving waveform
+
+    rot =   0;
+    aspectScale = context.aspectRatio;
+
+    temp_y=-1*(y-1.0);
+
+    samples = 512-32;
+    for ( int i=0;i<512-32;i++)
+    {
+      theta=context.beatDetect->pcm->pcmdataL[i+32]*0.06*scale * 1.57 + context.time*2.3;
+      r=(0.53 + 0.43*context.beatDetect->pcm->pcmdataR[i]*0.12*scale+ mystery)*.5;
+
+      wavearray[i][0]=(r*cos(theta)*(context.aspectCorrect ? context.aspectRatio : 1.0)+x);
+      wavearray[i][1]=(r*sin(theta)+temp_y);
+    }
+
+    break;
+
+  case Blob2://EXPERIMENTAL
+
+    temp_y=-1*(y-1.0);
+    rot =   0;
+    aspectScale =1.0;
+    samples = 512-32;
+
+    for ( int i=0;i<512-32;i++)
+    {
+      wavearray[i][0]=(context.beatDetect->pcm->pcmdataR[i]*scale*0.5*(context.aspectCorrect ? context.aspectRatio : 1.0) + x);
+      wavearray[i][1]=(context.beatDetect->pcm->pcmdataL[i+32]*scale*0.5 + temp_y);
+    }
+
+    break;
+
+  case Blob3://EXPERIMENTAL
+
+    temp_y=-1*(y-1.0);
+
+    rot =   0;
+    aspectScale =1.0;
+
+    samples = 512-32;
+
+    for ( int i=0;i<512-32;i++)
+    {
+      wavearray[i][0]=(context.beatDetect->pcm->pcmdataR[i] * scale*0.5 + x);
+      wavearray[i][1]=( (context.beatDetect->pcm->pcmdataL[i+32]*scale*0.5 + temp_y));
+    }
+
+    break;
+
+  case DerivativeLine://single x-axis derivative waveform
+    {
+      rot =-mystery*90;
+      aspectScale=1.0;
+
+      temp_y=-1*(y-1.0);
+
+      float w1 = 0.45f + 0.5f*(mystery*0.5f + 0.5f);
+      float w2 = 1.0f - w1;
+      float xx[512], yy[512];
+      samples = 512-32;
+
+      for (int i=0; i<512-32; i++)
+      {
+        xx[i] = -1.0f + 2.0f*(i/(512.0-32.0)) + x;
+        yy[i] =0.4* context.beatDetect->pcm->pcmdataL[i]*0.47f*scale + temp_y;
+        xx[i] += 0.4*context.beatDetect->pcm->pcmdataR[i]*0.44f*scale;
+
+        if (i>1)
+        {
+          xx[i] = xx[i]*w2 + w1*(xx[i-1]*2.0f - xx[i-2]);
+          yy[i] = yy[i]*w2 + w1*(yy[i-1]*2.0f - yy[i-2]);
+        }
+        wavearray[i][0]=xx[i];
+        wavearray[i][1]=yy[i];
+      }
+    }
+    break;
+
+  case Blob5://EXPERIMENTAL
+
+    rot = 0;
+    aspectScale =1.0;
+
+    temp_y=-1*(y-1.0);
+
+    cos_rot = cosf(context.time*0.3f);
+    sin_rot = sinf(context.time*0.3f);
+    samples = 512-32;
+
+    for ( int i=0;i<512-32;i++)
+    {
+      float x0 = (  context.beatDetect->pcm->pcmdataR[i] * context.beatDetect->pcm->pcmdataL[i + 32]
+                  + context.beatDetect->pcm->pcmdataL[i + 32] * context.beatDetect->pcm->pcmdataR[i]);
+      float y0 = (  context.beatDetect->pcm->pcmdataR[i] * context.beatDetect->pcm->pcmdataR[i]
+                  - context.beatDetect->pcm->pcmdataL[i + 32] * context.beatDetect->pcm->pcmdataL[i + 32]);
+      wavearray[i][0] = ((x0*cos_rot - y0*sin_rot)*scale*0.5*(context.aspectCorrect ? context.aspectRatio : 1.0) + x);
+      wavearray[i][1] = ( (x0*sin_rot + y0*cos_rot)*scale*0.5 + temp_y);
+    }
+    break;
+
+  case Line://single waveform
+
+    wave_x_temp=-2*0.4142*(fabs(fabs(mystery)-.5)-.5);
+
+    rot = -mystery*90;
+    aspectScale =1.0+wave_x_temp;
+    wave_x_temp=-1*(x-1.0);
+    samples = 0 ? 512-32 : context.beatDetect->pcm->numsamples;
+
+    for ( int i=0;i<  samples;i++)
+    {
+      wavearray[i][0]=i/(float)  samples;
+      wavearray[i][1]=context.beatDetect->pcm->pcmdataR[i]*.04*scale+wave_x_temp;
+    }
+    //    printf("%f %f\n",renderTarget->texsize*wave_y_temp,wave_y_temp);
+
+    break;
+
+  case DoubleLine://dual waveforms
+
+    wave_x_temp=-2*0.4142*(fabs(fabs(mystery)-.5)-.5);
+
+    rot = -mystery*90;
+    aspectScale =1.0+wave_x_temp;
 
 
-			wave_x_temp=-2*0.4142*(fabs(fabs(mystery)-.5)-.5);
+    samples = 0 ? 512-32 : context.beatDetect->pcm->numsamples;
+    two_waves = true;
 
-			rot = -mystery*90;
-			aspectScale =1.0+wave_x_temp;
+    double y_adj = y*y*.5;
 
+    wave_y_temp=-1*(x-1);
 
-			samples = 0 ? 512-32 : context.beatDetect->pcm->numsamples;
-			two_waves = true;
+    for ( int i=0;i<samples;i++)
+    {
+      wavearray[i][0]=i/((float)  samples);
+      wavearray[i][1]= context.beatDetect->pcm->pcmdataL[i]*.04*scale+(wave_y_temp+y_adj);
+    }
 
-			double y_adj = y*y*.5;
+    for ( int i=0;i<samples;i++)
+    {
+      wavearray2[i][0]=i/((float)  samples);
+      wavearray2[i][1]=context.beatDetect->pcm->pcmdataR[i]*.04*scale+(wave_y_temp-y_adj);
+    }
 
-			wave_y_temp=-1*(x-1);
-
-			for ( int i=0;i<samples;i++)
-			{
-				wavearray[i][0]=i/((float)  samples);
-				wavearray[i][1]= context.beatDetect->pcm->pcmdataL[i]*.04*scale+(wave_y_temp+y_adj);
-			}
-
-			for ( int i=0;i<samples;i++)
-			{
-				wavearray2[i][0]=i/((float)  samples);
-				wavearray2[i][1]=context.beatDetect->pcm->pcmdataR[i]*.04*scale+(wave_y_temp-y_adj);
-			}
-
-			break;
-
-	}
+    break;
+  }
 }
diff --git a/src/libprojectM/Renderer/MilkdropWaveform.hpp b/src/libprojectM/Renderer/MilkdropWaveform.hpp
index cdafd93..13a499b 100644
--- a/src/libprojectM/Renderer/MilkdropWaveform.hpp
+++ b/src/libprojectM/Renderer/MilkdropWaveform.hpp
@@ -4,62 +4,68 @@
  *  Created on: Jun 25, 2008
  *      Author: pete
  */
-
 #ifndef MILKDROPWAVEFORM_HPP_
 #define MILKDROPWAVEFORM_HPP_
 
 #include "Renderable.hpp"
 
+
 enum MilkdropWaveformMode
-	{
-	  Circle=0, RadialBlob, Blob2, Blob3, DerivativeLine, Blob5, Line, DoubleLine
-	};
+{
+  Circle=0,
+  RadialBlob,
+  Blob2,
+  Blob3,
+  DerivativeLine,
+  Blob5,
+  Line,
+  DoubleLine
+};
 
 
 class MilkdropWaveform : public RenderItem
 {
 public:
+  float x;
+  float y;
 
+  float r;
+  float g;
+  float b;
+  float a;
 
-	float x;
-	float y;
+  float mystery;
 
-	float r;
-	float g;
-	float b;
-	float a;
+  MilkdropWaveformMode mode;
 
-	float mystery;
+  bool  additive;
+  bool  dots;
+  bool  thick;
+  bool  modulateAlphaByVolume;
+  bool  maximizeColors;
+  float scale;
+  float smoothing;
 
-    MilkdropWaveformMode mode;
+  MilkdropWaveform();
+  void Draw(RenderContext &context);
 
-	bool additive;
-	bool dots;
-	bool thick;
-	bool modulateAlphaByVolume;
-	bool maximizeColors;
-	float scale;
-	float smoothing;
-
-	MilkdropWaveform();
-	void Draw(RenderContext &context);
-
-	float modOpacityStart;
-	float modOpacityEnd;
+  float modOpacityStart;
+  float modOpacityEnd;
 
 private:
-	float temp_a;
-	float rot;
-	float aspectScale;
-	int samples;
-	bool two_waves;
-	bool loop;
-	float wavearray[2048][2];
-	float wavearray2[2048][2];
+  float temp_a;
+  float rot;
+  float aspectScale;
+  int   samples;
+  bool  two_waves;
+  bool  loop;
+  float wavearray[2048][2];
+  float wavearray2[2048][2];
 
-	void MaximizeColors(RenderContext &context);
-	void ModulateOpacityByVolume(RenderContext &context);
-	void WaveformMath(RenderContext &context);
+  void MaximizeColors(RenderContext &context);
+  void ModulateOpacityByVolume(RenderContext &context);
+  void WaveformMath(RenderContext &context);
 
 };
+
 #endif /* MILKDROPWAVEFORM_HPP_ */
diff --git a/src/libprojectM/Renderer/PerPixelMesh.cpp b/src/libprojectM/Renderer/PerPixelMesh.cpp
index c378133..1b89f0c 100644
--- a/src/libprojectM/Renderer/PerPixelMesh.cpp
+++ b/src/libprojectM/Renderer/PerPixelMesh.cpp
@@ -4,45 +4,49 @@
 #include "omptl/omptl"
 #include "omptl/omptl_algorithm"
 
-PerPixelMesh::PerPixelMesh(int width, int height) : width(width), height(height), size (width * height),
-		p(width * height, PixelPoint(0,0)),
-		p_original(width * height, PixelPoint(0,0)),
-		identity(width * height, PerPixelContext(0,0,0,0,0,0))
-		{
-		for (int j=0;j<height;j++)
-			for(int i=0;i<width;i++)
-			{
-				int index = j * width + i;
 
-						float xval=i/(float)(width-1);
-						float yval=-((j/(float)(height-1))-1);
-
-						p[index].x = xval;
-						p[index].y = yval;
-
-						p_original[index].x = xval;
-						p_original[index].y = yval;
-
-						identity[index].x= xval;
-						identity[index].y= yval;
-
-						//identity[index].x= (xval-.5)*2;
-						//identity[index].y= (yval-.5)*2;
-
-						identity[index].i= i;
-						identity[index].j= j;
-
-						identity[index].rad=hypot ( ( xval-.5 ) *2, ( yval-.5 ) *2 ) * .7071067;
-						identity[index].theta=atan2 ( ( yval-.5 ) *2 ,  ( xval-.5 ) *2  );
-			}
-		}
-
-void PerPixelMesh::Reset()
+PerPixelMesh::PerPixelMesh (int width, int height)
+  : width(width), height(height),
+    size (width * height),
+    p(width * height, PixelPoint(0,0)),
+    p_original(width * height, PixelPoint(0,0)),
+    identity(width * height, PerPixelContext(0,0,0,0,0,0))
 {
-	omptl::copy(p_original.begin(), p_original.end(), p.begin());
+  for (int j = 0;  j < height;  j++)
+    for (int i = 0;  i < width;  i++)
+    {
+      int index = j * width + i;
+
+      float xval = i / (float) (width - 1);
+      float yval = -((j / (float) (height - 1)) - 1);
+
+      p[index].x = xval;
+      p[index].y = yval;
+
+      p_original[index].x = xval;
+      p_original[index].y = yval;
+
+      identity[index].x= xval;
+      identity[index].y= yval;
+
+      //identity[index].x= (xval-.5)*2;
+      //identity[index].y= (yval-.5)*2;
+
+      identity[index].i= i;
+      identity[index].j= j;
+
+      identity[index].rad=hypot ( ( xval-.5 ) *2, ( yval-.5 ) *2 ) * .7071067;
+      identity[index].theta=atan2 ( ( yval-.5 ) *2 ,  ( xval-.5 ) *2  );
+    }
+}
+
+void
+PerPixelMesh::Reset()
+{
+  omptl::copy(p_original.begin(), p_original.end(), p.begin());
 }
 
 PixelPoint::PixelPoint(float x, float y)
-	: x(x), y(y) {}
+  : x(x), y(y) {}
 PerPixelContext::PerPixelContext(float x, float y, float rad, float theta, int i, int j)
-	: x(x), y(y), rad(rad), theta(theta), i(i), j(j) {}
+  : x(x), y(y), rad(rad), theta(theta), i(i), j(j) {}
diff --git a/src/libprojectM/Renderer/PerPixelMesh.hpp b/src/libprojectM/Renderer/PerPixelMesh.hpp
index f37a2b1..3b47a09 100644
--- a/src/libprojectM/Renderer/PerPixelMesh.hpp
+++ b/src/libprojectM/Renderer/PerPixelMesh.hpp
@@ -3,43 +3,43 @@
 
 #include <vector>
 
+
 struct PixelPoint
 {
-	float x;
-	float y;
+  float x;
+  float y;
 
-	PixelPoint(float x, float y);
+  PixelPoint(float x, float y);
 };
 
 struct PerPixelContext
 {
-	float x;
-	float y;
-	float rad;
-	float theta;
+  float x;
+  float y;
+  float rad;
+  float theta;
 
-	int i;
-	int j;
+  int i;
+  int j;
 
-	PerPixelContext(float x, float y, float rad, float theta, int i, int j);
+  PerPixelContext(float x, float y, float rad, float theta, int i, int j);
 };
 
 class PerPixelMesh
 {
 public:
-	int width;
-	int height;
-	int size;
+  int width;
+  int height;
+  int size;
 
-	std::vector<PixelPoint> p;
-	std::vector<PixelPoint> p_original;
-	std::vector<PerPixelContext> identity;
+  std::vector<PixelPoint> p;
+  std::vector<PixelPoint> p_original;
+  std::vector<PerPixelContext> identity;
 
-	PerPixelMesh(int width, int height);
+  PerPixelMesh(int width, int height);
 
-	void Reset();
+  void Reset();
 };
 
 
-
 #endif
diff --git a/src/libprojectM/Renderer/PerlinNoise.cpp b/src/libprojectM/Renderer/PerlinNoise.cpp
index a6bda55..2fefa2b 100644
--- a/src/libprojectM/Renderer/PerlinNoise.cpp
+++ b/src/libprojectM/Renderer/PerlinNoise.cpp
@@ -4,50 +4,50 @@
  *  Created on: Jul 11, 2008
  *      Author: pete
  */
-
 #include "PerlinNoise.hpp"
 #include <iostream>
 #include <stdlib.h>
 
+
 PerlinNoise::PerlinNoise()
 {
-	for (int x = 0; x < 256;x++)
-		for (int y = 0; y < 256;y++)
-			noise_lq[x][y] = noise(x , y);
+  for (int x = 0; x < 256;x++)
+    for (int y = 0; y < 256;y++)
+      noise_lq[x][y] = noise(x , y);
 
-	for (int x = 0; x < 32;x++)
-		for (int y = 0; y < 32;y++)
-			noise_lq_lite[x][y] = noise(4*x,16*y);
+  for (int x = 0; x < 32;x++)
+    for (int y = 0; y < 32;y++)
+      noise_lq_lite[x][y] = noise(4*x,16*y);
 
-	for (int x = 0; x < 256;x++)
-		for (int y = 0; y < 256;y++)
-			noise_mq[x][y] = InterpolatedNoise((float)x/(float)2.0,(float)y/(float)2.0);
+  for (int x = 0; x < 256;x++)
+    for (int y = 0; y < 256;y++)
+      noise_mq[x][y] = InterpolatedNoise((float)x/(float)2.0,(float)y/(float)2.0);
 
-	for (int x = 0; x < 256;x++)
-		for (int y = 0; y < 256;y++)
-			noise_hq[x][y] = InterpolatedNoise((float)x/(float)3.0,(float)y/(float)3.0);
+  for (int x = 0; x < 256;x++)
+    for (int y = 0; y < 256;y++)
+      noise_hq[x][y] = InterpolatedNoise((float)x/(float)3.0,(float)y/(float)3.0);
 
-	for (int x = 0; x < 32;x++)
-		for (int y = 0; y < 32;y++)
-			for (int z = 0; z < 32;z++)
-				noise_lq_vol[x][y][z] = noise(x,y,z);
+  for (int x = 0; x < 32;x++)
+    for (int y = 0; y < 32;y++)
+      for (int z = 0; z < 32;z++)
+        noise_lq_vol[x][y][z] = noise(x,y,z);
 
-	for (int x = 0; x < 32;x++)
-		for (int y = 0; y < 32;y++)
-			for (int z = 0; z < 32;z++)
-				noise_hq_vol[x][y][z] = noise(x,y,z);//perlin_noise_3d(x,y,z,6121,7,seed3,0.5,64);
+  for (int x = 0; x < 32;x++)
+    for (int y = 0; y < 32;y++)
+      for (int z = 0; z < 32;z++)
+        noise_hq_vol[x][y][z] = noise(x,y,z);//perlin_noise_3d(x,y,z,6121,7,seed3,0.5,64);
 
-	int seed = rand()%1000;
+  int seed = rand()%1000;
 
-	int size = 512;
-	int octaves = sqrt((double)size);
+  int size = 512;
+  int octaves = sqrt((double)size);
 
-		for (int x = 0; x < size;x++)
-			for (int y = 0; y < size;y++)
-				noise_perlin[x][y] = perlin_noise_2d(x,y,6321,octaves,seed,0.5,size/4);
+    for (int x = 0; x < size;x++)
+      for (int y = 0; y < size;y++)
+        noise_perlin[x][y] = perlin_noise_2d(x,y,6321,octaves,seed,0.5,size/4);
 }
 
 PerlinNoise::~PerlinNoise()
 {
-	// TODO Auto-generated destructor stub
+  // TODO Auto-generated destructor stub
 }
diff --git a/src/libprojectM/Renderer/PerlinNoise.hpp b/src/libprojectM/Renderer/PerlinNoise.hpp
index e1193d7..fc77808 100644
--- a/src/libprojectM/Renderer/PerlinNoise.hpp
+++ b/src/libprojectM/Renderer/PerlinNoise.hpp
@@ -10,232 +10,227 @@
 
 #include <math.h>
 
+
 class PerlinNoise
 {
 public:
-
-	float noise_lq[256][256];
-	float noise_lq_lite[32][32];
-	float noise_mq[256][256];
-	float noise_hq[256][256];
-	float noise_perlin[512][512];
-	float noise_lq_vol[32][32][32];
-	float noise_hq_vol[32][32][32];
+  float noise_lq[256][256];
+  float noise_lq_lite[32][32];
+  float noise_mq[256][256];
+  float noise_hq[256][256];
+  float noise_perlin[512][512];
+  float noise_lq_vol[32][32][32];
+  float noise_hq_vol[32][32][32];
 
 
-	PerlinNoise();
-	virtual ~PerlinNoise();
+  PerlinNoise();
+  virtual ~PerlinNoise();
 
 private:
 
-	static inline float noise( int x)
-	{
-	    x = (x<<13)^x;
-	    return (((x * (x * x * 15731 + 789221) + 1376312589) & 0x7fffffff) / 2147483648.0);
-	   }
+  static inline float noise( int x)
+  {
+    x = (x<<13)^x;
+    return (((x * (x * x * 15731 + 789221) + 1376312589) & 0x7fffffff) / 2147483648.0);
+  }
 
-	static inline float noise(int x, int y)
-	{
-		 int n = x + y * 57;
-		 return noise(n);
-	}
+  static inline float noise(int x, int y)
+  {
+    int n = x + y * 57;
+    return noise(n);
+  }
 
-	static inline float noise(int x, int y, int z)
-	{
-		 int n = x + y * 57 + z * 141;
-		 return noise(n);
-	}
+  static inline float noise(int x, int y, int z)
+  {
+    int n = x + y * 57 + z * 141;
+    return noise(n);
+  }
 
-	static inline float cos_interp(float a, float b, float x)
-	{
-		float ft = x * 3.1415927;
-		float f = (1 - cos(ft)) * .5;
+  static inline float cos_interp(float a, float b, float x)
+  {
+    float ft = x * 3.1415927;
+    float f = (1 - cos(ft)) * .5;
 
-		return  a*(1-f) + b*f;
-	}
+    return  a*(1-f) + b*f;
+  }
 
-	static inline float cubic_interp(float v0, float v1, float v2, float v3, float x)
-	{
-		float P = (v3 - v2) - (v0 - v1);
-		float Q = (v0 - v1) - P;
-		float R = v2 - v0;
+  static inline float cubic_interp(float v0, float v1, float v2, float v3, float x)
+  {
+    float P = (v3 - v2) - (v0 - v1);
+    float Q = (v0 - v1) - P;
+    float R = v2 - v0;
 
-		return P*pow(x,3) + Q * pow(x,2) + R*x + v1;
-	}
+    return P*pow(x,3) + Q * pow(x,2) + R*x + v1;
+  }
 
-	static inline float InterpolatedNoise(float x, float y)
-	{
-		int integer_X = int(x);
-		float fractional_X = x - integer_X;
+  static inline float InterpolatedNoise(float x, float y)
+  {
+    int integer_X = int(x);
+    float fractional_X = x - integer_X;
 
-		int integer_Y = int(y);
-		float fractional_Y = y - integer_Y;
+    int integer_Y = int(y);
+    float fractional_Y = y - integer_Y;
 
-		float a0 = noise(integer_X - 1,      integer_Y - 1);
-		float a1 = noise(integer_X,          integer_Y - 1);
-		float a2 = noise(integer_X + 1,      integer_Y - 1);
-		float a3 = noise(integer_X + 2,      integer_Y - 1);
+    float a0 = noise(integer_X - 1,      integer_Y - 1);
+    float a1 = noise(integer_X,          integer_Y - 1);
+    float a2 = noise(integer_X + 1,      integer_Y - 1);
+    float a3 = noise(integer_X + 2,      integer_Y - 1);
 
-		float x0 = noise(integer_X - 1,      integer_Y);
-		float x1 = noise(integer_X,          integer_Y);
-		float x2 = noise(integer_X + 1,      integer_Y);
-		float x3 = noise(integer_X + 2,      integer_Y);
+    float x0 = noise(integer_X - 1,      integer_Y);
+    float x1 = noise(integer_X,          integer_Y);
+    float x2 = noise(integer_X + 1,      integer_Y);
+    float x3 = noise(integer_X + 2,      integer_Y);
 
-		float y0 = noise(integer_X + 0,   	 integer_Y + 1);
-		float y1 = noise(integer_X,     	 integer_Y + 1);
-		float y2 = noise(integer_X + 1, 	 integer_Y + 1);
-		float y3 = noise(integer_X + 2, 	 integer_Y + 1);
+    float y0 = noise(integer_X + 0,      integer_Y + 1);
+    float y1 = noise(integer_X,        integer_Y + 1);
+    float y2 = noise(integer_X + 1,    integer_Y + 1);
+    float y3 = noise(integer_X + 2,    integer_Y + 1);
 
-		float b0 = noise(integer_X - 1,      integer_Y + 2);
-		float b1 = noise(integer_X,          integer_Y + 2);
-		float b2 = noise(integer_X + 1,      integer_Y + 2);
-		float b3 = noise(integer_X + 2,      integer_Y + 2);
+    float b0 = noise(integer_X - 1,      integer_Y + 2);
+    float b1 = noise(integer_X,          integer_Y + 2);
+    float b2 = noise(integer_X + 1,      integer_Y + 2);
+    float b3 = noise(integer_X + 2,      integer_Y + 2);
 
-		float i0 = cubic_interp(a0 , a1, a2, a3, fractional_X);
-		float i1 = cubic_interp(x0 , x1, x2, x3, fractional_X);
-		float i2 = cubic_interp(y0 , y1, y2, y3, fractional_X);
-		float i3 = cubic_interp(b0 , b1, b2, b3, fractional_X);
+    float i0 = cubic_interp(a0 , a1, a2, a3, fractional_X);
+    float i1 = cubic_interp(x0 , x1, x2, x3, fractional_X);
+    float i2 = cubic_interp(y0 , y1, y2, y3, fractional_X);
+    float i3 = cubic_interp(b0 , b1, b2, b3, fractional_X);
 
-		return cubic_interp(i0, i1 , i2 , i3, fractional_Y);
+    return cubic_interp(i0, i1 , i2 , i3, fractional_Y);
 
-	}
+  }
 
-	static inline float perlin_octave_2d(float x,float y, int width, int seed, float period)
-	{
+  static inline float perlin_octave_2d(float x,float y, int width, int seed, float period)
+  {
+    float freq=1/(float)(period);
 
-	           float freq=1/(float)(period);
+    int num=(int)(width*freq);
+    int step_x=(int)(x*freq);
+    int step_y=(int)(y*freq);
+    float zone_x=x*freq-step_x;
+    float zone_y=y*freq-step_y;
+    int box=step_x+step_y*num;
+    int noisedata=(box+seed);
 
-	           int num=(int)(width*freq);
-	           int step_x=(int)(x*freq);
-	           int step_y=(int)(y*freq);
-	           float zone_x=x*freq-step_x;
-	           float zone_y=y*freq-step_y;
-	           int box=step_x+step_y*num;
-	           int noisedata=(box+seed);
+    float u=cubic_interp(noise(noisedata-num-1),noise(noisedata-num),noise(noisedata-num+1),noise(noisedata-num+2),zone_x);
+    float a=cubic_interp(noise(noisedata-1),noise(noisedata),noise(noisedata+1),noise(noisedata+2),zone_x);
+    float b=cubic_interp(noise(noisedata+num -1),noise(noisedata+num),noise(noisedata+1+num),noise(noisedata+2+num),zone_x);
+    float v=cubic_interp(noise(noisedata+2*num -1),noise(noisedata+2*num),noise(noisedata+1+2*num),noise(noisedata+2+2*num),zone_x);
 
-	           float u=cubic_interp(noise(noisedata-num-1),noise(noisedata-num),noise(noisedata-num+1),noise(noisedata-num+2),zone_x);
-	           float a=cubic_interp(noise(noisedata-1),noise(noisedata),noise(noisedata+1),noise(noisedata+2),zone_x);
-	           float b=cubic_interp(noise(noisedata+num -1),noise(noisedata+num),noise(noisedata+1+num),noise(noisedata+2+num),zone_x);
-	           float v=cubic_interp(noise(noisedata+2*num -1),noise(noisedata+2*num),noise(noisedata+1+2*num),noise(noisedata+2+2*num),zone_x);
+    float value=cubic_interp(u,a,b,v,zone_y);
 
-	           float value=cubic_interp(u,a,b,v,zone_y);
-
-	          return value;
-	}
+    return value;
+  }
 
 
-	static inline float perlin_octave_2d_cos(float x,float y, int width, int seed, float period)
-		{
+  static inline float perlin_octave_2d_cos(float x,float y, int width, int seed, float period)
+  {
+    float freq=1/(float)(period);
 
-		           float freq=1/(float)(period);
+    int num=(int)(width*freq);
+    int step_x=(int)(x*freq);
+    int step_y=(int)(y*freq);
+    float zone_x=x*freq-step_x;
+    float zone_y=y*freq-step_y;
+    int box=step_x+step_y*num;
+    int noisedata=(box+seed);
 
-		           int num=(int)(width*freq);
-		           int step_x=(int)(x*freq);
-		           int step_y=(int)(y*freq);
-		           float zone_x=x*freq-step_x;
-		           float zone_y=y*freq-step_y;
-		           int box=step_x+step_y*num;
-		           int noisedata=(box+seed);
+    float a=cos_interp(noise(noisedata),noise(noisedata+1),zone_x);
+    float b=cos_interp(noise(noisedata+num),noise(noisedata+1+num),zone_x);
 
-		           float a=cos_interp(noise(noisedata),noise(noisedata+1),zone_x);
-		           float b=cos_interp(noise(noisedata+num),noise(noisedata+1+num),zone_x);
+    float value=cos_interp(a,b,zone_y);
 
-		           float value=cos_interp(a,b,zone_y);
-
-		          return value;
-		}
+    return value;
+  }
 
 
 
-	static inline float perlin_octave_3d(float x,float y, float z,int width, int seed, float period)
-		{
-		           float freq=1/(float)(period);
+  static inline float perlin_octave_3d(float x,float y, float z,int width, int seed, float period)
+  {
+    float freq=1/(float)(period);
 
-		           int num=(int)(width*freq);
-		           int step_x=(int)(x*freq);
-		           int step_y=(int)(y*freq);
-		           int step_z=(int)(z*freq);
-		           float zone_x=x*freq-step_x;
-		           float zone_y=y*freq-step_y;
-		           float zone_z=z*freq-step_z;
+    int num=(int)(width*freq);
+    int step_x=(int)(x*freq);
+    int step_y=(int)(y*freq);
+    int step_z=(int)(z*freq);
+    float zone_x=x*freq-step_x;
+    float zone_y=y*freq-step_y;
+    float zone_z=z*freq-step_z;
 
-		           int boxB=step_x+step_y+step_z*num;
-		           int boxC=step_x+step_y+step_z*(num+1);
-		           int boxD=step_x+step_y+step_z*(num+2);
-		           int boxA=step_x+step_y+step_z*(num-1);
+    int boxB=step_x+step_y+step_z*num;
+    int boxC=step_x+step_y+step_z*(num+1);
+    int boxD=step_x+step_y+step_z*(num+2);
+    int boxA=step_x+step_y+step_z*(num-1);
 
-		           float u,a,b,v,noisedata,box;
+    float u,a,b,v,noisedata,box;
 
-		           box = boxA;
-		           noisedata=(box+seed);
-		           u=cubic_interp(noise(noisedata-num-1),noise(noisedata-num),noise(noisedata-num+1),noise(noisedata-num+2),zone_x);
-		           a=cubic_interp(noise(noisedata-1),noise(noisedata),noise(noisedata+1),noise(noisedata+2),zone_x);
-		           b=cubic_interp(noise(noisedata+num -1),noise(noisedata+num),noise(noisedata+1+num),noise(noisedata+2+num),zone_x);
-		           v=cubic_interp(noise(noisedata+2*num -1),noise(noisedata+2*num),noise(noisedata+1+2*num),noise(noisedata+2+2*num),zone_x);
-		           float A=cubic_interp(u,a,b,v,zone_y);
+    box = boxA;
+    noisedata=(box+seed);
+    u=cubic_interp(noise(noisedata-num-1),noise(noisedata-num),noise(noisedata-num+1),noise(noisedata-num+2),zone_x);
+    a=cubic_interp(noise(noisedata-1),noise(noisedata),noise(noisedata+1),noise(noisedata+2),zone_x);
+    b=cubic_interp(noise(noisedata+num -1),noise(noisedata+num),noise(noisedata+1+num),noise(noisedata+2+num),zone_x);
+    v=cubic_interp(noise(noisedata+2*num -1),noise(noisedata+2*num),noise(noisedata+1+2*num),noise(noisedata+2+2*num),zone_x);
+    float A=cubic_interp(u,a,b,v,zone_y);
 
-		           box = boxB;
-		           noisedata=(box+seed);
-		           u=cubic_interp(noise(noisedata-num-1),noise(noisedata-num),noise(noisedata-num+1),noise(noisedata-num+2),zone_x);
-		           a=cubic_interp(noise(noisedata-1),noise(noisedata),noise(noisedata+1),noise(noisedata+2),zone_x);
-		           b=cubic_interp(noise(noisedata+num -1),noise(noisedata+num),noise(noisedata+1+num),noise(noisedata+2+num),zone_x);
-		           v=cubic_interp(noise(noisedata+2*num -1),noise(noisedata+2*num),noise(noisedata+1+2*num),noise(noisedata+2+2*num),zone_x);
-		           float B=cubic_interp(u,a,b,v,zone_y);
+    box = boxB;
+    noisedata=(box+seed);
+    u=cubic_interp(noise(noisedata-num-1),noise(noisedata-num),noise(noisedata-num+1),noise(noisedata-num+2),zone_x);
+    a=cubic_interp(noise(noisedata-1),noise(noisedata),noise(noisedata+1),noise(noisedata+2),zone_x);
+    b=cubic_interp(noise(noisedata+num -1),noise(noisedata+num),noise(noisedata+1+num),noise(noisedata+2+num),zone_x);
+    v=cubic_interp(noise(noisedata+2*num -1),noise(noisedata+2*num),noise(noisedata+1+2*num),noise(noisedata+2+2*num),zone_x);
+    float B=cubic_interp(u,a,b,v,zone_y);
 
-		           box = boxC;
-		           noisedata=(box+seed);
-		           u=cubic_interp(noise(noisedata-num-1),noise(noisedata-num),noise(noisedata-num+1),noise(noisedata-num+2),zone_x);
-		           a=cubic_interp(noise(noisedata-1),noise(noisedata),noise(noisedata+1),noise(noisedata+2),zone_x);
-		           b=cubic_interp(noise(noisedata+num -1),noise(noisedata+num),noise(noisedata+1+num),noise(noisedata+2+num),zone_x);
-		           v=cubic_interp(noise(noisedata+2*num -1),noise(noisedata+2*num),noise(noisedata+1+2*num),noise(noisedata+2+2*num),zone_x);
-		           float C=cubic_interp(u,a,b,v,zone_y);
+    box = boxC;
+    noisedata=(box+seed);
+    u=cubic_interp(noise(noisedata-num-1),noise(noisedata-num),noise(noisedata-num+1),noise(noisedata-num+2),zone_x);
+    a=cubic_interp(noise(noisedata-1),noise(noisedata),noise(noisedata+1),noise(noisedata+2),zone_x);
+    b=cubic_interp(noise(noisedata+num -1),noise(noisedata+num),noise(noisedata+1+num),noise(noisedata+2+num),zone_x);
+    v=cubic_interp(noise(noisedata+2*num -1),noise(noisedata+2*num),noise(noisedata+1+2*num),noise(noisedata+2+2*num),zone_x);
+    float C=cubic_interp(u,a,b,v,zone_y);
 
-		           box = boxD;
-		           noisedata=(box+seed);
-		           u=cubic_interp(noise(noisedata-num-1),noise(noisedata-num),noise(noisedata-num+1),noise(noisedata-num+2),zone_x);
-		           a=cubic_interp(noise(noisedata-1),noise(noisedata),noise(noisedata+1),noise(noisedata+2),zone_x);
-		           b=cubic_interp(noise(noisedata+num -1),noise(noisedata+num),noise(noisedata+1+num),noise(noisedata+2+num),zone_x);
-		           v=cubic_interp(noise(noisedata+2*num -1),noise(noisedata+2*num),noise(noisedata+1+2*num),noise(noisedata+2+2*num),zone_x);
-		           float D=cubic_interp(u,a,b,v,zone_y);
+    box = boxD;
+    noisedata=(box+seed);
+    u=cubic_interp(noise(noisedata-num-1),noise(noisedata-num),noise(noisedata-num+1),noise(noisedata-num+2),zone_x);
+    a=cubic_interp(noise(noisedata-1),noise(noisedata),noise(noisedata+1),noise(noisedata+2),zone_x);
+    b=cubic_interp(noise(noisedata+num -1),noise(noisedata+num),noise(noisedata+1+num),noise(noisedata+2+num),zone_x);
+    v=cubic_interp(noise(noisedata+2*num -1),noise(noisedata+2*num),noise(noisedata+1+2*num),noise(noisedata+2+2*num),zone_x);
+    float D=cubic_interp(u,a,b,v,zone_y);
 
-		           float value =cubic_interp(A,B,C,D,zone_z);
+    float value =cubic_interp(A,B,C,D,zone_z);
 
-		           return value;
-		}
+    return value;
+  }
 
 
-	static inline float perlin_noise_2d(int x, int y,  int width, int octaves, int seed, float persistance, float basePeriod)
-		{
-			float p = persistance;
-			float val = 0.0;
+  static inline float perlin_noise_2d(int x, int y,  int width, int octaves, int seed, float persistance, float basePeriod)
+  {
+    float p = persistance;
+    float val = 0.0;
 
-			for (int i = 0; i<octaves;i++)
-			{
-				val += perlin_octave_2d_cos(x,y,width,seed,basePeriod) * p;
+    for (int i = 0; i<octaves;i++)
+    {
+      val += perlin_octave_2d_cos(x,y,width,seed,basePeriod) * p;
 
-				basePeriod *= 0.5;
-				p *= persistance;
-			}
-			return val;
-		}
+      basePeriod *= 0.5;
+      p *= persistance;
+    }
+    return val;
+  }
 
-	static inline float perlin_noise_3d(int x, int y, int z, int width, int octaves, int seed, float persistance, float basePeriod)
-		{
-			float p = persistance;
-			float val = 0.0;
+  static inline float perlin_noise_3d(int x, int y, int z, int width, int octaves, int seed, float persistance, float basePeriod)
+  {
+    float p = persistance;
+    float val = 0.0;
 
-			for (int i = 0; i<octaves;i++)