Fiat Lux: Initial commit

svn co https://projectm.svn.sf.net/svnroot/projectm/trunk projectM-Trunk

Snapshot of trunk rev 1387 + obsessive squashing of execute permission
bits where they're not needed.
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..389de2e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+# Ignore SVN subdirs.
+.svn
diff --git a/AUTHORS.txt b/AUTHORS.txt
new file mode 100644
index 0000000..e0ae79c
--- /dev/null
+++ b/AUTHORS.txt
@@ -0,0 +1,42 @@
+

+projectM -- Milkdrop-esque visualisation SDK

+Copyright (C)2003-2007 projectM Team

+

+This library is free software; you can redistribute it and/or

+modify it under the terms of the GNU Lesser General Public

+License as published by the Free Software Foundation; either

+version 2.1 of the License, or (at your option) any later version.

+

+This library is distributed in the hope that it will be useful,

+but WITHOUT ANY WARRANTY; without even the implied warranty of

+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU

+Lesser General Public License for more details.

+

+You should have received a copy of the GNU Lesser General Public

+License along with this library; if not, write to the Free Software

+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

+See 'LICENSE.txt' included within this release

+

+For the purposes of the copyright statement in the preamble of each source

+code file comprising projectM, the projectM team are:

+

+Carmelo Piccione

+    Parser

+    Evaluator

+    Pulse Audio support (projectM-pulseaudio)

+    Qt GUI (projectM-qt)

+	

+Peter Sperl

+    Beat Detection

+    Rendering

+    XMMS Support (projectM-xmms)

+    libvisual Support (projectM-libvisual)   

+

+Alligator Descartes

+    Media Player Support (iTunes, Winamp, Windows Media Player)

+    Test application frameworks (projectM-wxvis, projectM-sdlvis)

+    DVD application (projectM-movie)

+    Win32 screensaver (projectM-screensaver)

+

+Roger Dannenburg

+    Advice & Support

diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..dcda29d
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,12 @@
+PROJECT(projectM-complete)
+cmake_minimum_required(VERSION 2.4.0)
+cmake_policy(SET CMP0005 OLD)
+
+if(COMMAND cmake_policy)
+       cmake_policy(SET CMP0003 NEW)
+endif(COMMAND cmake_policy)
+
+
+include(src/cmake/CPack-projectM.cmake)
+
+add_subdirectory(src)
diff --git a/COPYING.txt b/COPYING.txt
new file mode 100644
index 0000000..47fb6af
--- /dev/null
+++ b/COPYING.txt
@@ -0,0 +1,504 @@
+		  GNU LESSER GENERAL PUBLIC LICENSE

+		       Version 2.1, February 1999

+

+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.

+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

+ Everyone is permitted to copy and distribute verbatim copies

+ of this license document, but changing it is not allowed.

+

+[This is the first released version of the Lesser GPL.  It also counts

+ as the successor of the GNU Library Public License, version 2, hence

+ the version number 2.1.]

+

+			    Preamble

+

+  The licenses for most software are designed to take away your

+freedom to share and change it.  By contrast, the GNU General Public

+Licenses are intended to guarantee your freedom to share and change

+free software--to make sure the software is free for all its users.

+

+  This license, the Lesser General Public License, applies to some

+specially designated software packages--typically libraries--of the

+Free Software Foundation and other authors who decide to use it.  You

+can use it too, but we suggest you first think carefully about whether

+this license or the ordinary General Public License is the better

+strategy to use in any particular case, based on the explanations below.

+

+  When we speak of free software, we are referring to freedom of use,

+not price.  Our General Public Licenses are designed to make sure that

+you have the freedom to distribute copies of free software (and charge

+for this service if you wish); that you receive source code or can get

+it if you want it; that you can change the software and use pieces of

+it in new free programs; and that you are informed that you can do

+these things.

+

+  To protect your rights, we need to make restrictions that forbid

+distributors to deny you these rights or to ask you to surrender these

+rights.  These restrictions translate to certain responsibilities for

+you if you distribute copies of the library or if you modify it.

+

+  For example, if you distribute copies of the library, whether gratis

+or for a fee, you must give the recipients all the rights that we gave

+you.  You must make sure that they, too, receive or can get the source

+code.  If you link other code with the library, you must provide

+complete object files to the recipients, so that they can relink them

+with the library after making changes to the library and recompiling

+it.  And you must show them these terms so they know their rights.

+

+  We protect your rights with a two-step method: (1) we copyright the

+library, and (2) we offer you this license, which gives you legal

+permission to copy, distribute and/or modify the library.

+

+  To protect each distributor, we want to make it very clear that

+there is no warranty for the free library.  Also, if the library is

+modified by someone else and passed on, the recipients should know

+that what they have is not the original version, so that the original

+author's reputation will not be affected by problems that might be

+introduced by others.

+

+  Finally, software patents pose a constant threat to the existence of

+any free program.  We wish to make sure that a company cannot

+effectively restrict the users of a free program by obtaining a

+restrictive license from a patent holder.  Therefore, we insist that

+any patent license obtained for a version of the library must be

+consistent with the full freedom of use specified in this license.

+

+  Most GNU software, including some libraries, is covered by the

+ordinary GNU General Public License.  This license, the GNU Lesser

+General Public License, applies to certain designated libraries, and

+is quite different from the ordinary General Public License.  We use

+this license for certain libraries in order to permit linking those

+libraries into non-free programs.

+

+  When a program is linked with a library, whether statically or using

+a shared library, the combination of the two is legally speaking a

+combined work, a derivative of the original library.  The ordinary

+General Public License therefore permits such linking only if the

+entire combination fits its criteria of freedom.  The Lesser General

+Public License permits more lax criteria for linking other code with

+the library.

+

+  We call this license the "Lesser" General Public License because it

+does Less to protect the user's freedom than the ordinary General

+Public License.  It also provides other free software developers Less

+of an advantage over competing non-free programs.  These disadvantages

+are the reason we use the ordinary General Public License for many

+libraries.  However, the Lesser license provides advantages in certain

+special circumstances.

+

+  For example, on rare occasions, there may be a special need to

+encourage the widest possible use of a certain library, so that it becomes

+a de-facto standard.  To achieve this, non-free programs must be

+allowed to use the library.  A more frequent case is that a free

+library does the same job as widely used non-free libraries.  In this

+case, there is little to gain by limiting the free library to free

+software only, so we use the Lesser General Public License.

+

+  In other cases, permission to use a particular library in non-free

+programs enables a greater number of people to use a large body of

+free software.  For example, permission to use the GNU C Library in

+non-free programs enables many more people to use the whole GNU

+operating system, as well as its variant, the GNU/Linux operating

+system.

+

+  Although the Lesser General Public License is Less protective of the

+users' freedom, it does ensure that the user of a program that is

+linked with the Library has the freedom and the wherewithal to run

+that program using a modified version of the Library.

+

+  The precise terms and conditions for copying, distribution and

+modification follow.  Pay close attention to the difference between a

+"work based on the library" and a "work that uses the library".  The

+former contains code derived from the library, whereas the latter must

+be combined with the library in order to run.

+

+		  GNU LESSER GENERAL PUBLIC LICENSE

+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

+

+  0. This License Agreement applies to any software library or other

+program which contains a notice placed by the copyright holder or

+other authorized party saying it may be distributed under the terms of

+this Lesser General Public License (also called "this License").

+Each licensee is addressed as "you".

+

+  A "library" means a collection of software functions and/or data

+prepared so as to be conveniently linked with application programs

+(which use some of those functions and data) to form executables.

+

+  The "Library", below, refers to any such software library or work

+which has been distributed under these terms.  A "work based on the

+Library" means either the Library or any derivative work under

+copyright law: that is to say, a work containing the Library or a

+portion of it, either verbatim or with modifications and/or translated

+straightforwardly into another language.  (Hereinafter, translation is

+included without limitation in the term "modification".)

+

+  "Source code" for a work means the preferred form of the work for

+making modifications to it.  For a library, complete source code means

+all the source code for all modules it contains, plus any associated

+interface definition files, plus the scripts used to control compilation

+and installation of the library.

+

+  Activities other than copying, distribution and modification are not

+covered by this License; they are outside its scope.  The act of

+running a program using the Library is not restricted, and output from

+such a program is covered only if its contents constitute a work based

+on the Library (independent of the use of the Library in a tool for

+writing it).  Whether that is true depends on what the Library does

+and what the program that uses the Library does.

+

+  1. You may copy and distribute verbatim copies of the Library's

+complete source code as you receive it, in any medium, provided that

+you conspicuously and appropriately publish on each copy an

+appropriate copyright notice and disclaimer of warranty; keep intact

+all the notices that refer to this License and to the absence of any

+warranty; and distribute a copy of this License along with the

+Library.

+

+  You may charge a fee for the physical act of transferring a copy,

+and you may at your option offer warranty protection in exchange for a

+fee.

+

+  2. You may modify your copy or copies of the Library or any portion

+of it, thus forming a work based on the Library, and copy and

+distribute such modifications or work under the terms of Section 1

+above, provided that you also meet all of these conditions:

+

+    a) The modified work must itself be a software library.

+

+    b) You must cause the files modified to carry prominent notices

+    stating that you changed the files and the date of any change.

+

+    c) You must cause the whole of the work to be licensed at no

+    charge to all third parties under the terms of this License.

+

+    d) If a facility in the modified Library refers to a function or a

+    table of data to be supplied by an application program that uses

+    the facility, other than as an argument passed when the facility

+    is invoked, then you must make a good faith effort to ensure that,

+    in the event an application does not supply such function or

+    table, the facility still operates, and performs whatever part of

+    its purpose remains meaningful.

+

+    (For example, a function in a library to compute square roots has

+    a purpose that is entirely well-defined independent of the

+    application.  Therefore, Subsection 2d requires that any

+    application-supplied function or table used by this function must

+    be optional: if the application does not supply it, the square

+    root function must still compute square roots.)

+

+These requirements apply to the modified work as a whole.  If

+identifiable sections of that work are not derived from the Library,

+and can be reasonably considered independent and separate works in

+themselves, then this License, and its terms, do not apply to those

+sections when you distribute them as separate works.  But when you

+distribute the same sections as part of a whole which is a work based

+on the Library, the distribution of the whole must be on the terms of

+this License, whose permissions for other licensees extend to the

+entire whole, and thus to each and every part regardless of who wrote

+it.

+

+Thus, it is not the intent of this section to claim rights or contest

+your rights to work written entirely by you; rather, the intent is to

+exercise the right to control the distribution of derivative or

+collective works based on the Library.

+

+In addition, mere aggregation of another work not based on the Library

+with the Library (or with a work based on the Library) on a volume of

+a storage or distribution medium does not bring the other work under

+the scope of this License.

+

+  3. You may opt to apply the terms of the ordinary GNU General Public

+License instead of this License to a given copy of the Library.  To do

+this, you must alter all the notices that refer to this License, so

+that they refer to the ordinary GNU General Public License, version 2,

+instead of to this License.  (If a newer version than version 2 of the

+ordinary GNU General Public License has appeared, then you can specify

+that version instead if you wish.)  Do not make any other change in

+these notices.

+

+  Once this change is made in a given copy, it is irreversible for

+that copy, so the ordinary GNU General Public License applies to all

+subsequent copies and derivative works made from that copy.

+

+  This option is useful when you wish to copy part of the code of

+the Library into a program that is not a library.

+

+  4. You may copy and distribute the Library (or a portion or

+derivative of it, under Section 2) in object code or executable form

+under the terms of Sections 1 and 2 above provided that you accompany

+it with the complete corresponding machine-readable source code, which

+must be distributed under the terms of Sections 1 and 2 above on a

+medium customarily used for software interchange.

+

+  If distribution of object code is made by offering access to copy

+from a designated place, then offering equivalent access to copy the

+source code from the same place satisfies the requirement to

+distribute the source code, even though third parties are not

+compelled to copy the source along with the object code.

+

+  5. A program that contains no derivative of any portion of the

+Library, but is designed to work with the Library by being compiled or

+linked with it, is called a "work that uses the Library".  Such a

+work, in isolation, is not a derivative work of the Library, and

+therefore falls outside the scope of this License.

+

+  However, linking a "work that uses the Library" with the Library

+creates an executable that is a derivative of the Library (because it

+contains portions of the Library), rather than a "work that uses the

+library".  The executable is therefore covered by this License.

+Section 6 states terms for distribution of such executables.

+

+  When a "work that uses the Library" uses material from a header file

+that is part of the Library, the object code for the work may be a

+derivative work of the Library even though the source code is not.

+Whether this is true is especially significant if the work can be

+linked without the Library, or if the work is itself a library.  The

+threshold for this to be true is not precisely defined by law.

+

+  If such an object file uses only numerical parameters, data

+structure layouts and accessors, and small macros and small inline

+functions (ten lines or less in length), then the use of the object

+file is unrestricted, regardless of whether it is legally a derivative

+work.  (Executables containing this object code plus portions of the

+Library will still fall under Section 6.)

+

+  Otherwise, if the work is a derivative of the Library, you may

+distribute the object code for the work under the terms of Section 6.

+Any executables containing that work also fall under Section 6,

+whether or not they are linked directly with the Library itself.

+

+  6. As an exception to the Sections above, you may also combine or

+link a "work that uses the Library" with the Library to produce a

+work containing portions of the Library, and distribute that work

+under terms of your choice, provided that the terms permit

+modification of the work for the customer's own use and reverse

+engineering for debugging such modifications.

+

+  You must give prominent notice with each copy of the work that the

+Library is used in it and that the Library and its use are covered by

+this License.  You must supply a copy of this License.  If the work

+during execution displays copyright notices, you must include the

+copyright notice for the Library among them, as well as a reference

+directing the user to the copy of this License.  Also, you must do one

+of these things:

+

+    a) Accompany the work with the complete corresponding

+    machine-readable source code for the Library including whatever

+    changes were used in the work (which must be distributed under

+    Sections 1 and 2 above); and, if the work is an executable linked

+    with the Library, with the complete machine-readable "work that

+    uses the Library", as object code and/or source code, so that the

+    user can modify the Library and then relink to produce a modified

+    executable containing the modified Library.  (It is understood

+    that the user who changes the contents of definitions files in the

+    Library will not necessarily be able to recompile the application

+    to use the modified definitions.)

+

+    b) Use a suitable shared library mechanism for linking with the

+    Library.  A suitable mechanism is one that (1) uses at run time a

+    copy of the library already present on the user's computer system,

+    rather than copying library functions into the executable, and (2)

+    will operate properly with a modified version of the library, if

+    the user installs one, as long as the modified version is

+    interface-compatible with the version that the work was made with.

+

+    c) Accompany the work with a written offer, valid for at

+    least three years, to give the same user the materials

+    specified in Subsection 6a, above, for a charge no more

+    than the cost of performing this distribution.

+

+    d) If distribution of the work is made by offering access to copy

+    from a designated place, offer equivalent access to copy the above

+    specified materials from the same place.

+

+    e) Verify that the user has already received a copy of these

+    materials or that you have already sent this user a copy.

+

+  For an executable, the required form of the "work that uses the

+Library" must include any data and utility programs needed for

+reproducing the executable from it.  However, as a special exception,

+the materials to be distributed need not include anything that is

+normally distributed (in either source or binary form) with the major

+components (compiler, kernel, and so on) of the operating system on

+which the executable runs, unless that component itself accompanies

+the executable.

+

+  It may happen that this requirement contradicts the license

+restrictions of other proprietary libraries that do not normally

+accompany the operating system.  Such a contradiction means you cannot

+use both them and the Library together in an executable that you

+distribute.

+

+  7. You may place library facilities that are a work based on the

+Library side-by-side in a single library together with other library

+facilities not covered by this License, and distribute such a combined

+library, provided that the separate distribution of the work based on

+the Library and of the other library facilities is otherwise

+permitted, and provided that you do these two things:

+

+    a) Accompany the combined library with a copy of the same work

+    based on the Library, uncombined with any other library

+    facilities.  This must be distributed under the terms of the

+    Sections above.

+

+    b) Give prominent notice with the combined library of the fact

+    that part of it is a work based on the Library, and explaining

+    where to find the accompanying uncombined form of the same work.

+

+  8. You may not copy, modify, sublicense, link with, or distribute

+the Library except as expressly provided under this License.  Any

+attempt otherwise to copy, modify, sublicense, link with, or

+distribute the Library is void, and will automatically terminate your

+rights under this License.  However, parties who have received copies,

+or rights, from you under this License will not have their licenses

+terminated so long as such parties remain in full compliance.

+

+  9. You are not required to accept this License, since you have not

+signed it.  However, nothing else grants you permission to modify or

+distribute the Library or its derivative works.  These actions are

+prohibited by law if you do not accept this License.  Therefore, by

+modifying or distributing the Library (or any work based on the

+Library), you indicate your acceptance of this License to do so, and

+all its terms and conditions for copying, distributing or modifying

+the Library or works based on it.

+

+  10. Each time you redistribute the Library (or any work based on the

+Library), the recipient automatically receives a license from the

+original licensor to copy, distribute, link with or modify the Library

+subject to these terms and conditions.  You may not impose any further

+restrictions on the recipients' exercise of the rights granted herein.

+You are not responsible for enforcing compliance by third parties with

+this License.

+

+  11. If, as a consequence of a court judgment or allegation of patent

+infringement or for any other reason (not limited to patent issues),

+conditions are imposed on you (whether by court order, agreement or

+otherwise) that contradict the conditions of this License, they do not

+excuse you from the conditions of this License.  If you cannot

+distribute so as to satisfy simultaneously your obligations under this

+License and any other pertinent obligations, then as a consequence you

+may not distribute the Library at all.  For example, if a patent

+license would not permit royalty-free redistribution of the Library by

+all those who receive copies directly or indirectly through you, then

+the only way you could satisfy both it and this License would be to

+refrain entirely from distribution of the Library.

+

+If any portion of this section is held invalid or unenforceable under any

+particular circumstance, the balance of the section is intended to apply,

+and the section as a whole is intended to apply in other circumstances.

+

+It is not the purpose of this section to induce you to infringe any

+patents or other property right claims or to contest validity of any

+such claims; this section has the sole purpose of protecting the

+integrity of the free software distribution system which is

+implemented by public license practices.  Many people have made

+generous contributions to the wide range of software distributed

+through that system in reliance on consistent application of that

+system; it is up to the author/donor to decide if he or she is willing

+to distribute software through any other system and a licensee cannot

+impose that choice.

+

+This section is intended to make thoroughly clear what is believed to

+be a consequence of the rest of this License.

+

+  12. If the distribution and/or use of the Library is restricted in

+certain countries either by patents or by copyrighted interfaces, the

+original copyright holder who places the Library under this License may add

+an explicit geographical distribution limitation excluding those countries,

+so that distribution is permitted only in or among countries not thus

+excluded.  In such case, this License incorporates the limitation as if

+written in the body of this License.

+

+  13. The Free Software Foundation may publish revised and/or new

+versions of the Lesser General Public License from time to time.

+Such new versions will be similar in spirit to the present version,

+but may differ in detail to address new problems or concerns.

+

+Each version is given a distinguishing version number.  If the Library

+specifies a version number of this License which applies to it and

+"any later version", you have the option of following the terms and

+conditions either of that version or of any later version published by

+the Free Software Foundation.  If the Library does not specify a

+license version number, you may choose any version ever published by

+the Free Software Foundation.

+

+  14. If you wish to incorporate parts of the Library into other free

+programs whose distribution conditions are incompatible with these,

+write to the author to ask for permission.  For software which is

+copyrighted by the Free Software Foundation, write to the Free

+Software Foundation; we sometimes make exceptions for this.  Our

+decision will be guided by the two goals of preserving the free status

+of all derivatives of our free software and of promoting the sharing

+and reuse of software generally.

+

+			    NO WARRANTY

+

+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO

+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.

+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR

+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY

+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE

+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR

+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE

+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME

+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

+

+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN

+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY

+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU

+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR

+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE

+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING

+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A

+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF

+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH

+DAMAGES.

+

+		     END OF TERMS AND CONDITIONS

+

+           How to Apply These Terms to Your New Libraries

+

+  If you develop a new library, and you want it to be of the greatest

+possible use to the public, we recommend making it free software that

+everyone can redistribute and change.  You can do so by permitting

+redistribution under these terms (or, alternatively, under the terms of the

+ordinary General Public License).

+

+  To apply these terms, attach the following notices to the library.  It is

+safest to attach them to the start of each source file to most effectively

+convey the exclusion of warranty; and each file should have at least the

+"copyright" line and a pointer to where the full notice is found.

+

+    <one line to give the library's name and a brief idea of what it does.>

+    Copyright (C) <year>  <name of author>

+

+    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

+

+Also add information on how to contact you by electronic and paper mail.

+

+You should also get your employer (if you work as a programmer) or your

+school, if any, to sign a "copyright disclaimer" for the library, if

+necessary.  Here is a sample; alter the names:

+

+  Yoyodyne, Inc., hereby disclaims all copyright interest in the

+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.

+

+  <signature of Ty Coon>, 1 April 1990

+  Ty Coon, President of Vice

+

+That's all there is to it!

+

+

diff --git a/FAQ.txt b/FAQ.txt
new file mode 100644
index 0000000..b689677
--- /dev/null
+++ b/FAQ.txt
@@ -0,0 +1,120 @@
+

+projectM -- Milkdrop-esque visualisation SDK

+Copyright (C)2003-2007 projectM Team

+

+This library is free software; you can redistribute it and/or

+modify it under the terms of the GNU Lesser General Public

+License as published by the Free Software Foundation; either

+version 2.1 of the License, or (at your option) any later version.

+

+This library is distributed in the hope that it will be useful,

+but WITHOUT ANY WARRANTY; without even the implied warranty of

+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU

+Lesser General Public License for more details.

+

+You should have received a copy of the GNU Lesser General Public

+License along with this library; if not, write to the Free Software

+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

+See 'LICENSE.txt' included within this release

+

+---------------------------------------------------

+                projectM v.0.94.20 FAQ

+                ------------------

+    written by Peter Sperl and Carmelo Piccione

+---------------------------------------------------

+

+Q1: What is projectM?

+Q2: What? This preset doesn't look like it does on Milkdrop.

+Q3: Where can I get more presets?

+Q4: What are the system requirements?

+Q5: Why is projectM so slow!!!

+Q6: How can I increase the rendering quality to make projectM look better?

+Q7: How can I configure projectM? (where's the config file?)

+Q8: Where are the presets?

+

+Q1: What is projectM?

+--------------------

+A: projectM makes pretty pictures from music in realtime.

+   Specifically it uses iterative image-based rendering techniques which

+   are hardware accelerated via OpenGL.  projectM was developed with

+   cross-platform support in mind, using SDL and OpenGL. The only port

+   right now is Linux/XMMS, but it should be easy to plug-in to other

+   music players on other platforms (even windows and Mac OS X).

+

+   projectM aims for compatability with MilkDrop's latest release (1.04b at

+   this time), but we have always intended to surpass it.  This program was

+   inspired by Ryan Geiss' wonderful program MilkDrop. www.geisswerks.com

+

+Q2: What? This preset doesn't look like it does on Milkdrop.

+-----------------------------------------------------------

+A: We know. Some of the simple waveforms (1,2,3,4,5)  are not even close to

+   correct. They are similiar, but not exactly the same. Also, the solarize,

+   brighten, and darken filters aren't done yet either.

+

+   Sometimes things just don't look right because we might, for example, draw

+   shapes a tiny bit too big or small. Small errors propagate and become HUGE

+   after a few manipulations. But who knows because it takes forever to tweak

+   things like this.

+

+Q3: Where can I get more presets?

+--------------------------------

+A:  www.milkdrop.co.uk is a great place to start.  However, all their

+    presets are packaged in self-unzipping .exe's for win32. I

+    extracted them with wine and it worked wonderfully.

+

+    Check out the milkdrop forums at www.winamp.com to find new presets

+    daily. The URL is below

+

+	http://forums.winamp.com/forumdisplay.php?forumid=81

+

+Q4: What are the system requirements?

+------------------------------------

+A: To run projectM you need a Linux system w/a sound card and a video card

+   with OpenGL hardware acceleration. We find that projectM runs MUCH better

+   with the 2.6 series kernel and ALSA sound.

+

+   What does that mean? Well...

+

+   projectM has only been tested prior to me writing this on 4 computers.

+

+   All those computers used some form of Redhat (8,9, & Fedora 1),

+   although this should make no differance if you run a differant distro.

+

+   Also, all of them used Nvidia (Geforce 3 Ti200, Geforce 4 MX440 & Ti4200)

+

+   WE STRONGLY RECCOMEND THE USE OF ALSA AND THE 2.6 SERIES KERNEL

+

+Q5: Why is projectM so slow!!!

+-----------------------------

+A: If projectM is slow for you all the time, and not just on a select few

+   presets, you can try lowering the rendering quality, and this will speed

+   things up A LOT. To do this, lower the texsize and gridsize (gx,gy) in

+   /etc/projectM/config

+

+   Texsize controls the size of the rendered image.  If you think your video

+   card is too slow or doesn't have enough memory, then change this. A middle

+   value for texsize is 512. 1024 is nice looking, and 256 is for VERY slow

+   computers.

+

+   If your processor is the bottleneck, then lower gx and gy. gx and gy

+   control the size of the interpolated per-pixel mesh. 24/18 is a low-middle

+   value. I run at 48/32 some times on my Athlon 64 3200, and I could

+   probably go higher, although some presets slow down for me at this VERY

+   high setting.

+

+   Certain presets can be processor hogs and slow the framerate down to

+   almost 0.  In this situation my best advice is not to use those presets.

+   All the presets that come with projectM should be slim enough to run on

+   nearly all machines capable of running projectM in the first place.

+

+Q6:How can I increase the rendering quality to make projectM look better?

+-------------------------------------------------------------------------

+A: Read Q5 and do the opposite!

+

+Q7: How can I configure projectM? (where's the config file?)

+------------------------------------------------------------

+A: /etc/projectM/config

+

+Q8: Where are the presets?

+--------------------------

+A: /usr/share/projectM/presets

diff --git a/INSTALL-iTunes-macos.txt b/INSTALL-iTunes-macos.txt
new file mode 100644
index 0000000..db3e2c6
--- /dev/null
+++ b/INSTALL-iTunes-macos.txt
@@ -0,0 +1,73 @@
+

+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

+

+Installation of projectM iTunes plugin for MacOS X

+==================================================

+

+Simply drag the projectM.bundle folder from the mounted disk image

+to the folder called "Library/iTunes/iTunes Plug-ins" in your home

+folder in Finder.

+

+Restart iTunes

+

+In the "Visualizer" menu, you should now see an entry called "projectM".

+Select this option.

+

+Now, turn the visualiser on and enjoy the visuals!

+

+Special Keys

+============

+

+' ': Pauses/unpauses music

+F1: Show help screen

+F3: Toggle preset name rendering

+F5: Toggle frame rate rendering

+F8: Toggle between screen and studio modes. Useful for debugging per-pixel

+    equations

+R: Jump to a new random preset

+N: Go to the next alphanumeric preset

+P: Go to the previous alphanumeric preset

+

+Presets

+=======

+

+A selection of presets are installed in 

+

+Library/iTunes/iTunes Plug-ins/projectM.bundle/Contents/Resources/presets

+

+Feel free to remove files from this folder or copy different presets in

+place. After altering the contents of this folder, you must restart projectM

+by turning off, then on, the visualiser in iTunes to refresh the preset

+list.

+

+Caveats

+=======

+

+ATI 3D accelerator cards are known to *NOT WORK* with this plugin currently.

+We are investigating the reasons behind this and a fix will be released

+as soon as the problem is sorted.

+

+Fullscreen resolution is fixed at 1280x1024. Future releases will enable you

+to change this on-the-fly

+

+Mesh size is fixed at 48x36. This generates an acceptable tradeoff between

+visual quality and frame rate. Again, this will be selectable in a 

+configuration dialog in the near future.

+

+Returning from Fullscreen mode can shift windows around

diff --git a/INSTALL-xmms.txt b/INSTALL-xmms.txt
new file mode 100644
index 0000000..f3846d9
--- /dev/null
+++ b/INSTALL-xmms.txt
@@ -0,0 +1,229 @@
+Copyright 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software

+Foundation, Inc.

+

+   This file is free documentation; the Free Software Foundation gives

+unlimited permission to copy, distribute and modify it.

+

+Basic Installation

+==================

+

+   These are generic installation instructions.

+

+   The `configure' shell script attempts to guess correct values for

+various system-dependent variables used during compilation.  It uses

+those values to create a `Makefile' in each directory of the package.

+It may also create one or more `.h' files containing system-dependent

+definitions.  Finally, it creates a shell script `config.status' that

+you can run in the future to recreate the current configuration, and a

+file `config.log' containing compiler output (useful mainly for

+debugging `configure').

+

+   It can also use an optional file (typically called `config.cache'

+and enabled with `--cache-file=config.cache' or simply `-C') that saves

+the results of its tests to speed up reconfiguring.  (Caching is

+disabled by default to prevent problems with accidental use of stale

+cache files.)

+

+   If you need to do unusual things to compile the package, please try

+to figure out how `configure' could check whether to do them, and mail

+diffs or instructions to the address given in the `README' so they can

+be considered for the next release.  If you are using the cache, and at

+some point `config.cache' contains results you don't want to keep, you

+may remove or edit it.

+

+   The file `configure.ac' (or `configure.in') is used to create

+`configure' by a program called `autoconf'.  You only need

+`configure.ac' if you want to change it or regenerate `configure' using

+a newer version of `autoconf'.

+

+The simplest way to compile this package is:

+

+  1. `cd' to the directory containing the package's source code and type

+     `./configure' to configure the package for your system.  If you're

+     using `csh' on an old version of System V, you might need to type

+     `sh ./configure' instead to prevent `csh' from trying to execute

+     `configure' itself.

+

+     Running `configure' takes awhile.  While running, it prints some

+     messages telling which features it is checking for.

+

+  2. Type `make' to compile the package.

+

+  3. Optionally, type `make check' to run any self-tests that come with

+     the package.

+

+  4. Type `make install' to install the programs and any data files and

+     documentation.

+

+  5. You can remove the program binaries and object files from the

+     source code directory by typing `make clean'.  To also remove the

+     files that `configure' created (so you can compile the package for

+     a different kind of computer), type `make distclean'.  There is

+     also a `make maintainer-clean' target, but that is intended mainly

+     for the package's developers.  If you use it, you may have to get

+     all sorts of other programs in order to regenerate files that came

+     with the distribution.

+

+Compilers and Options

+=====================

+

+   Some systems require unusual options for compilation or linking that

+the `configure' script does not know about.  Run `./configure --help'

+for details on some of the pertinent environment variables.

+

+   You can give `configure' initial values for configuration parameters

+by setting variables in the command line or in the environment.  Here

+is an example:

+

+     ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix

+

+   *Note Defining Variables::, for more details.

+

+Compiling For Multiple Architectures

+====================================

+

+   You can compile the package for more than one kind of computer at the

+same time, by placing the object files for each architecture in their

+own directory.  To do this, you must use a version of `make' that

+supports the `VPATH' variable, such as GNU `make'.  `cd' to the

+directory where you want the object files and executables to go and run

+the `configure' script.  `configure' automatically checks for the

+source code in the directory that `configure' is in and in `..'.

+

+   If you have to use a `make' that does not support the `VPATH'

+variable, you have to compile the package for one architecture at a

+time in the source code directory.  After you have installed the

+package for one architecture, use `make distclean' before reconfiguring

+for another architecture.

+

+Installation Names

+==================

+

+   By default, `make install' will install the package's files in

+`/usr/local/bin', `/usr/local/man', etc.  You can specify an

+installation prefix other than `/usr/local' by giving `configure' the

+option `--prefix=PATH'.

+

+   You can specify separate installation prefixes for

+architecture-specific files and architecture-independent files.  If you

+give `configure' the option `--exec-prefix=PATH', the package will use

+PATH as the prefix for installing programs and libraries.

+Documentation and other data files will still use the regular prefix.

+

+   In addition, if you use an unusual directory layout you can give

+options like `--bindir=PATH' to specify different values for particular

+kinds of files.  Run `configure --help' for a list of the directories

+you can set and what kinds of files go in them.

+

+   If the package supports it, you can cause programs to be installed

+with an extra prefix or suffix on their names by giving `configure' the

+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.

+

+Optional Features

+=================

+

+   Some packages pay attention to `--enable-FEATURE' options to

+`configure', where FEATURE indicates an optional part of the package.

+They may also pay attention to `--with-PACKAGE' options, where PACKAGE

+is something like `gnu-as' or `x' (for the X Window System).  The

+`README' should mention any `--enable-' and `--with-' options that the

+package recognizes.

+

+   For packages that use the X Window System, `configure' can usually

+find the X include and library files automatically, but if it doesn't,

+you can use the `configure' options `--x-includes=DIR' and

+`--x-libraries=DIR' to specify their locations.

+

+Specifying the System Type

+==========================

+

+   There may be some features `configure' cannot figure out

+automatically, but needs to determine by the type of machine the package

+will run on.  Usually, assuming the package is built to be run on the

+_same_ architectures, `configure' can figure that out, but if it prints

+a message saying it cannot guess the machine type, give it the

+`--build=TYPE' option.  TYPE can either be a short name for the system

+type, such as `sun4', or a canonical name which has the form:

+

+     CPU-COMPANY-SYSTEM

+

+where SYSTEM can have one of these forms:

+

+     OS KERNEL-OS

+

+   See the file `config.sub' for the possible values of each field.  If

+`config.sub' isn't included in this package, then this package doesn't

+need to know the machine type.

+

+   If you are _building_ compiler tools for cross-compiling, you should

+use the `--target=TYPE' option to select the type of system they will

+produce code for.

+

+   If you want to _use_ a cross compiler, that generates code for a

+platform different from the build platform, you should specify the

+"host" platform (i.e., that on which the generated programs will

+eventually be run) with `--host=TYPE'.

+

+Sharing Defaults

+================

+

+   If you want to set default values for `configure' scripts to share,

+you can create a site shell script called `config.site' that gives

+default values for variables like `CC', `cache_file', and `prefix'.

+`configure' looks for `PREFIX/share/config.site' if it exists, then

+`PREFIX/etc/config.site' if it exists.  Or, you can set the

+`CONFIG_SITE' environment variable to the location of the site script.

+A warning: not all `configure' scripts look for a site script.

+

+Defining Variables

+==================

+

+   Variables not defined in a site shell script can be set in the

+environment passed to `configure'.  However, some packages may run

+configure again during the build, and the customized values of these

+variables may be lost.  In order to avoid this problem, you should set

+them in the `configure' command line, using `VAR=value'.  For example:

+

+     ./configure CC=/usr/local2/bin/gcc

+

+will cause the specified gcc to be used as the C compiler (unless it is

+overridden in the site shell script).

+

+`configure' Invocation

+======================

+

+   `configure' recognizes the following options to control how it

+operates.

+

+`--help'

+`-h'

+     Print a summary of the options to `configure', and exit.

+

+`--version'

+`-V'

+     Print the version of Autoconf used to generate the `configure'

+     script, and exit.

+

+`--cache-file=FILE'

+     Enable the cache: use and save the results of the tests in FILE,

+     traditionally `config.cache'.  FILE defaults to `/dev/null' to

+     disable caching.

+

+`--config-cache'

+`-C'

+     Alias for `--cache-file=config.cache'.

+

+`--quiet'

+`--silent'

+`-q'

+     Do not print messages saying which checks are being made.  To

+     suppress all normal output, redirect it to `/dev/null' (any error

+     messages will still be shown).

+

+`--srcdir=DIR'

+     Look for the package's source code in directory DIR.  Usually

+     `configure' can determine that directory automatically.

+

+`configure' also accepts some other, not widely useful, options.  Run

+`configure --help' for more details.

+

diff --git a/TODO.txt b/TODO.txt
new file mode 100644
index 0000000..efa31c2
--- /dev/null
+++ b/TODO.txt
@@ -0,0 +1,32 @@
+===========================
+$Id$
+
+projectM TODO List
+
+$Log$
+===========================
+
+projectM-engine
+===============
+
+Correct errors in remaining presets
+Correct waveforms 4,5
+Soft transitions
+Refactor browser/console interfaces
+General post-refactor clean up
+
+projectM-iTunes
+======
+
+Fullscreen on MacOS
+Stability fixes on MacOS
+
+projectM-wmp
+============
+
+Needs written
+
+projectM-movie
+==============
+
+Finish this off -- MOV write needs completed with audio/video sync
diff --git a/docs/projectM.dox b/docs/projectM.dox
new file mode 100644
index 0000000..9dc925e
--- /dev/null
+++ b/docs/projectM.dox
@@ -0,0 +1,1218 @@
+# Doxyfile 1.4.2

+

+# This file describes the settings to be used by the documentation system

+# doxygen (www.doxygen.org) for a project

+#

+# All text after a hash (#) is considered a comment and will be ignored

+# The format is:

+#       TAG = value [value, ...]

+# For lists items can also be appended using:

+#       TAG += value [value, ...]

+# Values that contain spaces should be placed between quotes (" ")

+

+#---------------------------------------------------------------------------

+# Project related configuration options

+#---------------------------------------------------------------------------

+

+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 

+# by quotes) that should identify the project.

+

+PROJECT_NAME           = projectM

+

+# The PROJECT_NUMBER tag can be used to enter a project or revision number. 

+# This could be handy for archiving the generated documentation or 

+# if some version control system is used.

+

+PROJECT_NUMBER         = 

+

+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 

+# base path where the generated documentation will be put. 

+# If a relative path is entered, it will be relative to the location 

+# where doxygen was started. If left blank the current directory will be used.

+

+OUTPUT_DIRECTORY       = c:/tmp/projectM-1.00/src/doxygen/

+

+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 

+# 4096 sub-directories (in 2 levels) under the output directory of each output 

+# format and will distribute the generated files over these directories. 

+# Enabling this option can be useful when feeding doxygen a huge amount of 

+# source files, where putting all generated files in the same directory would 

+# otherwise cause performance problems for the file system.

+

+CREATE_SUBDIRS         = NO

+

+# The OUTPUT_LANGUAGE tag is used to specify the language in which all 

+# documentation generated by doxygen is written. Doxygen will use this 

+# information to generate all constant output in the proper language. 

+# The default language is English, other supported languages are: 

+# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, 

+# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, 

+# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, 

+# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, 

+# Swedish, and Ukrainian.

+

+OUTPUT_LANGUAGE        = English

+

+# This tag can be used to specify the encoding used in the generated output. 

+# The encoding is not always determined by the language that is chosen, 

+# but also whether or not the output is meant for Windows or non-Windows users. 

+# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES 

+# forces the Windows encoding (this is the default for the Windows binary), 

+# whereas setting the tag to NO uses a Unix-style encoding (the default for 

+# all platforms other than Windows).

+

+USE_WINDOWS_ENCODING   = YES

+

+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 

+# include brief member descriptions after the members that are listed in 

+# the file and class documentation (similar to JavaDoc). 

+# Set to NO to disable this.

+

+BRIEF_MEMBER_DESC      = YES

+

+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 

+# the brief description of a member or function before the detailed description. 

+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 

+# brief descriptions will be completely suppressed.

+

+REPEAT_BRIEF           = YES

+

+# This tag implements a quasi-intelligent brief description abbreviator 

+# that is used to form the text in various listings. Each string 

+# in this list, if found as the leading text of the brief description, will be 

+# stripped from the text and the result after processing the whole list, is 

+# used as the annotated text. Otherwise, the brief description is used as-is. 

+# If left blank, the following values are used ("$name" is automatically 

+# replaced with the name of the entity): "The $name class" "The $name widget" 

+# "The $name file" "is" "provides" "specifies" "contains" 

+# "represents" "a" "an" "the"

+

+ABBREVIATE_BRIEF       = 

+

+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 

+# Doxygen will generate a detailed section even if there is only a brief 

+# description.

+

+ALWAYS_DETAILED_SEC    = NO

+

+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 

+# inherited members of a class in the documentation of that class as if those 

+# members were ordinary class members. Constructors, destructors and assignment 

+# operators of the base classes will not be shown.

+

+INLINE_INHERITED_MEMB  = NO

+

+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 

+# path before files name in the file list and in the header files. If set 

+# to NO the shortest path that makes the file name unique will be used.

+

+FULL_PATH_NAMES        = NO

+

+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 

+# can be used to strip a user-defined part of the path. Stripping is 

+# only done if one of the specified strings matches the left-hand part of 

+# the path. The tag can be used to show relative paths in the file list. 

+# If left blank the directory from which doxygen is run is used as the 

+# path to strip.

+

+STRIP_FROM_PATH        = 

+

+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 

+# the path mentioned in the documentation of a class, which tells 

+# the reader which header file to include in order to use a class. 

+# If left blank only the name of the header file containing the class 

+# definition is used. Otherwise one should specify the include paths that 

+# are normally passed to the compiler using the -I flag.

+

+STRIP_FROM_INC_PATH    = 

+

+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 

+# (but less readable) file names. This can be useful is your file systems 

+# doesn't support long names like on DOS, Mac, or CD-ROM.

+

+SHORT_NAMES            = NO

+

+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 

+# will interpret the first line (until the first dot) of a JavaDoc-style 

+# comment as the brief description. If set to NO, the JavaDoc 

+# comments will behave just like the Qt-style comments (thus requiring an 

+# explicit @brief command for a brief description.

+

+JAVADOC_AUTOBRIEF      = NO

+

+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 

+# treat a multi-line C++ special comment block (i.e. a block of //! or /// 

+# comments) as a brief description. This used to be the default behaviour. 

+# The new default is to treat a multi-line C++ comment block as a detailed 

+# description. Set this tag to YES if you prefer the old behaviour instead.

+

+MULTILINE_CPP_IS_BRIEF = NO

+

+# If the DETAILS_AT_TOP tag is set to YES then Doxygen 

+# will output the detailed description near the top, like JavaDoc.

+# If set to NO, the detailed description appears after the member 

+# documentation.

+

+DETAILS_AT_TOP         = NO

+

+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 

+# member inherits the documentation from any documented member that it 

+# re-implements.

+

+INHERIT_DOCS           = YES

+

+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 

+# tag is set to YES, then doxygen will reuse the documentation of the first 

+# member in the group (if any) for the other members of the group. By default 

+# all members of a group must be documented explicitly.

+

+DISTRIBUTE_GROUP_DOC   = NO

+

+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce 

+# a new page for each member. If set to NO, the documentation of a member will 

+# be part of the file/class/namespace that contains it.

+

+SEPARATE_MEMBER_PAGES  = NO

+

+# The TAB_SIZE tag can be used to set the number of spaces in a tab. 

+# Doxygen uses this value to replace tabs by spaces in code fragments.

+

+TAB_SIZE               = 8

+

+# This tag can be used to specify a number of aliases that acts 

+# as commands in the documentation. An alias has the form "name=value". 

+# For example adding "sideeffect=\par Side Effects:\n" will allow you to 

+# put the command \sideeffect (or @sideeffect) in the documentation, which 

+# will result in a user-defined paragraph with heading "Side Effects:". 

+# You can put \n's in the value part of an alias to insert newlines.

+

+ALIASES                = 

+

+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 

+# sources only. Doxygen will then generate output that is more tailored for C. 

+# For instance, some of the names that are used will be different. The list 

+# of all members will be omitted, etc.

+

+OPTIMIZE_OUTPUT_FOR_C  = NO

+

+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources 

+# only. Doxygen will then generate output that is more tailored for Java. 

+# For instance, namespaces will be presented as packages, qualified scopes 

+# will look different, etc.

+

+OPTIMIZE_OUTPUT_JAVA   = NO

+

+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 

+# the same type (for instance a group of public functions) to be put as a 

+# subgroup of that type (e.g. under the Public Functions section). Set it to 

+# NO to prevent subgrouping. Alternatively, this can be done per class using 

+# the \nosubgrouping command.

+

+SUBGROUPING            = YES

+

+#---------------------------------------------------------------------------

+# Build related configuration options

+#---------------------------------------------------------------------------

+

+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 

+# documentation are documented, even if no documentation was available. 

+# Private class members and static file members will be hidden unless 

+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES

+

+EXTRACT_ALL            = YES

+

+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 

+# will be included in the documentation.

+

+EXTRACT_PRIVATE        = YES

+

+# If the EXTRACT_STATIC tag is set to YES all static members of a file 

+# will be included in the documentation.

+

+EXTRACT_STATIC         = YES

+

+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 

+# defined locally in source files will be included in the documentation. 

+# If set to NO only classes defined in header files are included.

+

+EXTRACT_LOCAL_CLASSES  = YES

+

+# This flag is only useful for Objective-C code. When set to YES local 

+# methods, which are defined in the implementation section but not in 

+# the interface are included in the documentation. 

+# If set to NO (the default) only methods in the interface are included.

+

+EXTRACT_LOCAL_METHODS  = NO

+

+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 

+# undocumented members of documented classes, files or namespaces. 

+# If set to NO (the default) these members will be included in the 

+# various overviews, but no documentation section is generated. 

+# This option has no effect if EXTRACT_ALL is enabled.

+

+HIDE_UNDOC_MEMBERS     = NO

+

+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 

+# undocumented classes that are normally visible in the class hierarchy. 

+# If set to NO (the default) these classes will be included in the various 

+# overviews. This option has no effect if EXTRACT_ALL is enabled.

+

+HIDE_UNDOC_CLASSES     = NO

+

+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 

+# friend (class|struct|union) declarations. 

+# If set to NO (the default) these declarations will be included in the 

+# documentation.

+

+HIDE_FRIEND_COMPOUNDS  = NO

+

+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 

+# documentation blocks found inside the body of a function. 

+# If set to NO (the default) these blocks will be appended to the 

+# function's detailed documentation block.

+

+HIDE_IN_BODY_DOCS      = NO

+

+# The INTERNAL_DOCS tag determines if documentation 

+# that is typed after a \internal command is included. If the tag is set 

+# to NO (the default) then the documentation will be excluded. 

+# Set it to YES to include the internal documentation.

+

+INTERNAL_DOCS          = NO

+

+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 

+# file names in lower-case letters. If set to YES upper-case letters are also 

+# allowed. This is useful if you have classes or files whose names only differ 

+# in case and if your file system supports case sensitive file names. Windows 

+# and Mac users are advised to set this option to NO.

+

+CASE_SENSE_NAMES       = YES

+

+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 

+# will show members with their full class and namespace scopes in the 

+# documentation. If set to YES the scope will be hidden.

+

+HIDE_SCOPE_NAMES       = NO

+

+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 

+# will put a list of the files that are included by a file in the documentation 

+# of that file.

+

+SHOW_INCLUDE_FILES     = YES

+

+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 

+# is inserted in the documentation for inline members.

+

+INLINE_INFO            = YES

+

+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 

+# will sort the (detailed) documentation of file and class members 

+# alphabetically by member name. If set to NO the members will appear in 

+# declaration order.

+

+SORT_MEMBER_DOCS       = YES

+

+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 

+# brief documentation of file, namespace and class members alphabetically 

+# by member name. If set to NO (the default) the members will appear in 

+# declaration order.

+

+SORT_BRIEF_DOCS        = NO

+

+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 

+# sorted by fully-qualified names, including namespaces. If set to 

+# NO (the default), the class list will be sorted only by class name, 

+# not including the namespace part. 

+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.

+# Note: This option applies only to the class list, not to the 

+# alphabetical list.

+

+SORT_BY_SCOPE_NAME     = NO

+

+# The GENERATE_TODOLIST tag can be used to enable (YES) or 

+# disable (NO) the todo list. This list is created by putting \todo 

+# commands in the documentation.

+

+GENERATE_TODOLIST      = YES

+

+# The GENERATE_TESTLIST tag can be used to enable (YES) or 

+# disable (NO) the test list. This list is created by putting \test 

+# commands in the documentation.

+

+GENERATE_TESTLIST      = YES

+

+# The GENERATE_BUGLIST tag can be used to enable (YES) or 

+# disable (NO) the bug list. This list is created by putting \bug 

+# commands in the documentation.

+

+GENERATE_BUGLIST       = YES

+

+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 

+# disable (NO) the deprecated list. This list is created by putting 

+# \deprecated commands in the documentation.

+

+GENERATE_DEPRECATEDLIST= YES

+

+# The ENABLED_SECTIONS tag can be used to enable conditional 

+# documentation sections, marked by \if sectionname ... \endif.

+

+ENABLED_SECTIONS       = 

+

+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 

+# the initial value of a variable or define consists of for it to appear in 

+# the documentation. If the initializer consists of more lines than specified 

+# here it will be hidden. Use a value of 0 to hide initializers completely. 

+# The appearance of the initializer of individual variables and defines in the 

+# documentation can be controlled using \showinitializer or \hideinitializer 

+# command in the documentation regardless of this setting.

+

+MAX_INITIALIZER_LINES  = 30

+

+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 

+# at the bottom of the documentation of classes and structs. If set to YES the 

+# list will mention the files that were used to generate the documentation.

+

+SHOW_USED_FILES        = YES

+

+# If the sources in your project are distributed over multiple directories 

+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 

+# in the documentation.

+

+SHOW_DIRECTORIES       = YES

+

+# The FILE_VERSION_FILTER tag can be used to specify a program or script that 

+# doxygen should invoke to get the current version for each file (typically from the 

+# version control system). Doxygen will invoke the program by executing (via 

+# popen()) the command <command> <input-file>, where <command> is the value of 

+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file 

+# provided by doxygen. Whatever the progam writes to standard output 

+# is used as the file version. See the manual for examples.

+

+FILE_VERSION_FILTER    = 

+

+#---------------------------------------------------------------------------

+# configuration options related to warning and progress messages

+#---------------------------------------------------------------------------

+

+# The QUIET tag can be used to turn on/off the messages that are generated 

+# by doxygen. Possible values are YES and NO. If left blank NO is used.

+

+QUIET                  = NO

+

+# The WARNINGS tag can be used to turn on/off the warning messages that are 

+# generated by doxygen. Possible values are YES and NO. If left blank 

+# NO is used.

+

+WARNINGS               = YES

+

+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 

+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 

+# automatically be disabled.

+

+WARN_IF_UNDOCUMENTED   = YES

+

+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 

+# potential errors in the documentation, such as not documenting some 

+# parameters in a documented function, or documenting parameters that 

+# don't exist or using markup commands wrongly.

+

+WARN_IF_DOC_ERROR      = YES

+

+# This WARN_NO_PARAMDOC option can be abled to get warnings for 

+# functions that are documented, but have no documentation for their parameters 

+# or return value. If set to NO (the default) doxygen will only warn about 

+# wrong or incomplete parameter documentation, but not about the absence of 

+# documentation.

+

+WARN_NO_PARAMDOC       = NO

+

+# The WARN_FORMAT tag determines the format of the warning messages that 

+# doxygen can produce. The string should contain the $file, $line, and $text 

+# tags, which will be replaced by the file and line number from which the 

+# warning originated and the warning text. Optionally the format may contain 

+# $version, which will be replaced by the version of the file (if it could 

+# be obtained via FILE_VERSION_FILTER)

+

+WARN_FORMAT            = "$file:$line: $text"

+

+# The WARN_LOGFILE tag can be used to specify a file to which warning 

+# and error messages should be written. If left blank the output is written 

+# to stderr.

+

+WARN_LOGFILE           = 

+

+#---------------------------------------------------------------------------

+# configuration options related to the input files

+#---------------------------------------------------------------------------

+

+# The INPUT tag can be used to specify the files and/or directories that contain 

+# documented source files. You may enter file names like "myfile.cpp" or 

+# directories like "/usr/src/myproject". Separate the files or directories 

+# with spaces.

+

+INPUT                  = c:/tmp/projectM-1.00/src/libprojectM/

+

+# If the value of the INPUT tag contains directories, you can use the 

+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 

+# and *.h) to filter out the source-files in the directories. If left 

+# blank the following patterns are tested: 

+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx 

+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm

+

+FILE_PATTERNS          = 

+

+# The RECURSIVE tag can be used to turn specify whether or not subdirectories 

+# should be searched for input files as well. Possible values are YES and NO. 

+# If left blank NO is used.

+

+RECURSIVE              = NO

+

+# The EXCLUDE tag can be used to specify files and/or directories that should 

+# excluded from the INPUT source files. This way you can easily exclude a 

+# subdirectory from a directory tree whose root is specified with the INPUT tag.

+

+EXCLUDE                = 

+

+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or 

+# directories that are symbolic links (a Unix filesystem feature) are excluded 

+# from the input.

+

+EXCLUDE_SYMLINKS       = NO

+

+# If the value of the INPUT tag contains directories, you can use the 

+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 

+# certain files from those directories.

+

+EXCLUDE_PATTERNS       = 

+

+# The EXAMPLE_PATH tag can be used to specify one or more files or 

+# directories that contain example code fragments that are included (see 

+# the \include command).

+

+EXAMPLE_PATH           = 

+

+# If the value of the EXAMPLE_PATH tag contains directories, you can use the 

+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 

+# and *.h) to filter out the source-files in the directories. If left 

+# blank all files are included.

+

+EXAMPLE_PATTERNS       = 

+

+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 

+# searched for input files to be used with the \include or \dontinclude 

+# commands irrespective of the value of the RECURSIVE tag. 

+# Possible values are YES and NO. If left blank NO is used.

+

+EXAMPLE_RECURSIVE      = NO

+

+# The IMAGE_PATH tag can be used to specify one or more files or 

+# directories that contain image that are included in the documentation (see 

+# the \image command).

+

+IMAGE_PATH             = 

+

+# The INPUT_FILTER tag can be used to specify a program that doxygen should 

+# invoke to filter for each input file. Doxygen will invoke the filter program 

+# by executing (via popen()) the command <filter> <input-file>, where <filter> 

+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 

+# input file. Doxygen will then use the output that the filter program writes 

+# to standard output.  If FILTER_PATTERNS is specified, this tag will be 

+# ignored.

+

+INPUT_FILTER           = 

+

+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 

+# basis.  Doxygen will compare the file name with each pattern and apply the 

+# filter if there is a match.  The filters are a list of the form: 

+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 

+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER 

+# is applied to all files.

+

+FILTER_PATTERNS        = 

+

+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 

+# INPUT_FILTER) will be used to filter the input files when producing source 

+# files to browse (i.e. when SOURCE_BROWSER is set to YES).

+

+FILTER_SOURCE_FILES    = NO

+

+#---------------------------------------------------------------------------

+# configuration options related to source browsing

+#---------------------------------------------------------------------------

+

+# If the SOURCE_BROWSER tag is set to YES then a list of source files will 

+# be generated. Documented entities will be cross-referenced with these sources. 

+# Note: To get rid of all source code in the generated output, make sure also 

+# VERBATIM_HEADERS is set to NO.

+

+SOURCE_BROWSER         = NO

+

+# Setting the INLINE_SOURCES tag to YES will include the body 

+# of functions and classes directly in the documentation.

+

+INLINE_SOURCES         = NO

+

+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 

+# doxygen to hide any special comment blocks from generated source code 

+# fragments. Normal C and C++ comments will always remain visible.

+

+STRIP_CODE_COMMENTS    = YES

+

+# If the REFERENCED_BY_RELATION tag is set to YES (the default) 

+# then for each documented function all documented 

+# functions referencing it will be listed.

+

+REFERENCED_BY_RELATION = YES

+

+# If the REFERENCES_RELATION tag is set to YES (the default) 

+# then for each documented function all documented entities 

+# called/used by that function will be listed.

+

+REFERENCES_RELATION    = YES

+

+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 

+# will generate a verbatim copy of the header file for each class for 

+# which an include is specified. Set to NO to disable this.

+

+VERBATIM_HEADERS       = YES

+

+#---------------------------------------------------------------------------

+# configuration options related to the alphabetical class index

+#---------------------------------------------------------------------------

+

+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 

+# of all compounds will be generated. Enable this if the project 

+# contains a lot of classes, structs, unions or interfaces.

+

+ALPHABETICAL_INDEX     = NO

+

+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 

+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 

+# in which this list will be split (can be a number in the range [1..20])

+

+COLS_IN_ALPHA_INDEX    = 5

+

+# In case all classes in a project start with a common prefix, all 

+# classes will be put under the same header in the alphabetical index. 

+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 

+# should be ignored while generating the index headers.

+

+IGNORE_PREFIX          = 

+

+#---------------------------------------------------------------------------

+# configuration options related to the HTML output

+#---------------------------------------------------------------------------

+

+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 

+# generate HTML output.

+

+GENERATE_HTML          = YES

+

+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 

+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 

+# put in front of it. If left blank `html' will be used as the default path.

+

+HTML_OUTPUT            = html

+

+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 

+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 

+# doxygen will generate files with .html extension.

+

+HTML_FILE_EXTENSION    = .html

+

+# The HTML_HEADER tag can be used to specify a personal HTML header for 

+# each generated HTML page. If it is left blank doxygen will generate a 

+# standard header.

+

+HTML_HEADER            = 

+

+# The HTML_FOOTER tag can be used to specify a personal HTML footer for 

+# each generated HTML page. If it is left blank doxygen will generate a 

+# standard footer.

+

+HTML_FOOTER            = 

+

+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 

+# style sheet that is used by each HTML page. It can be used to 

+# fine-tune the look of the HTML output. If the tag is left blank doxygen 

+# will generate a default style sheet. Note that doxygen will try to copy 

+# the style sheet file to the HTML output directory, so don't put your own 

+# stylesheet in the HTML output directory as well, or it will be erased!

+

+HTML_STYLESHEET        = 

+

+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 

+# files or namespaces will be aligned in HTML using tables. If set to 

+# NO a bullet list will be used.

+

+HTML_ALIGN_MEMBERS     = YES

+

+# If the GENERATE_HTMLHELP tag is set to YES, additional index files 

+# will be generated that can be used as input for tools like the 

+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 

+# of the generated HTML documentation.

+

+GENERATE_HTMLHELP      = NO

+

+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 

+# be used to specify the file name of the resulting .chm file. You 

+# can add a path in front of the file if the result should not be 

+# written to the html output directory.

+

+CHM_FILE               = 

+

+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 

+# be used to specify the location (absolute path including file name) of 

+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 

+# the HTML help compiler on the generated index.hhp.

+

+HHC_LOCATION           = 

+

+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 

+# controls if a separate .chi index file is generated (YES) or that 

+# it should be included in the master .chm file (NO).

+

+GENERATE_CHI           = NO

+

+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 

+# controls whether a binary table of contents is generated (YES) or a 

+# normal table of contents (NO) in the .chm file.

+

+BINARY_TOC             = NO

+

+# The TOC_EXPAND flag can be set to YES to add extra items for group members 

+# to the contents of the HTML help documentation and to the tree view.

+

+TOC_EXPAND             = NO

+

+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 

+# top of each HTML page. The value NO (the default) enables the index and 

+# the value YES disables it.

+

+DISABLE_INDEX          = NO

+

+# This tag can be used to set the number of enum values (range [1..20]) 

+# that doxygen will group on one line in the generated HTML documentation.

+

+ENUM_VALUES_PER_LINE   = 4

+

+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be

+# generated containing a tree-like index structure (just like the one that 

+# is generated for HTML Help). For this to work a browser that supports 

+# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 

+# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 

+# probably better off using the HTML help feature.

+

+GENERATE_TREEVIEW      = NO

+

+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 

+# used to set the initial width (in pixels) of the frame in which the tree 

+# is shown.

+

+TREEVIEW_WIDTH         = 250

+

+#---------------------------------------------------------------------------

+# configuration options related to the LaTeX output

+#---------------------------------------------------------------------------

+

+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 

+# generate Latex output.

+

+GENERATE_LATEX         = NO

+

+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 

+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 

+# put in front of it. If left blank `latex' will be used as the default path.

+

+LATEX_OUTPUT           = latex

+

+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 

+# invoked. If left blank `latex' will be used as the default command name.

+

+LATEX_CMD_NAME         = latex

+

+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 

+# generate index for LaTeX. If left blank `makeindex' will be used as the 

+# default command name.

+

+MAKEINDEX_CMD_NAME     = makeindex

+

+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 

+# LaTeX documents. This may be useful for small projects and may help to 

+# save some trees in general.

+

+COMPACT_LATEX          = NO

+

+# The PAPER_TYPE tag can be used to set the paper type that is used 

+# by the printer. Possible values are: a4, a4wide, letter, legal and 

+# executive. If left blank a4wide will be used.

+

+PAPER_TYPE             = a4wide

+

+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 

+# packages that should be included in the LaTeX output.

+

+EXTRA_PACKAGES         = 

+

+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 

+# the generated latex document. The header should contain everything until 

+# the first chapter. If it is left blank doxygen will generate a 

+# standard header. Notice: only use this tag if you know what you are doing!

+

+LATEX_HEADER           = 

+

+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 

+# is prepared for conversion to pdf (using ps2pdf). The pdf file will 

+# contain links (just like the HTML output) instead of page references 

+# This makes the output suitable for online browsing using a pdf viewer.

+

+PDF_HYPERLINKS         = NO

+

+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 

+# plain latex in the generated Makefile. Set this option to YES to get a 

+# higher quality PDF documentation.

+

+USE_PDFLATEX           = NO

+

+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 

+# command to the generated LaTeX files. This will instruct LaTeX to keep 

+# running if errors occur, instead of asking the user for help. 

+# This option is also used when generating formulas in HTML.

+

+LATEX_BATCHMODE        = NO

+

+# If LATEX_HIDE_INDICES is set to YES then doxygen will not 

+# include the index chapters (such as File Index, Compound Index, etc.) 

+# in the output.

+

+LATEX_HIDE_INDICES     = NO

+

+#---------------------------------------------------------------------------

+# configuration options related to the RTF output

+#---------------------------------------------------------------------------

+

+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 

+# The RTF output is optimized for Word 97 and may not look very pretty with 

+# other RTF readers or editors.

+

+GENERATE_RTF           = NO

+

+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 

+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 

+# put in front of it. If left blank `rtf' will be used as the default path.

+

+RTF_OUTPUT             = rtf

+

+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 

+# RTF documents. This may be useful for small projects and may help to 

+# save some trees in general.

+

+COMPACT_RTF            = NO

+

+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 

+# will contain hyperlink fields. The RTF file will 

+# contain links (just like the HTML output) instead of page references. 

+# This makes the output suitable for online browsing using WORD or other 

+# programs which support those fields. 

+# Note: wordpad (write) and others do not support links.

+

+RTF_HYPERLINKS         = NO

+

+# Load stylesheet definitions from file. Syntax is similar to doxygen's 

+# config file, i.e. a series of assignments. You only have to provide 

+# replacements, missing definitions are set to their default value.

+

+RTF_STYLESHEET_FILE    = 

+

+# Set optional variables used in the generation of an rtf document. 

+# Syntax is similar to doxygen's config file.

+

+RTF_EXTENSIONS_FILE    = 

+

+#---------------------------------------------------------------------------

+# configuration options related to the man page output

+#---------------------------------------------------------------------------

+

+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 

+# generate man pages

+

+GENERATE_MAN           = NO

+

+# The MAN_OUTPUT tag is used to specify where the man pages will be put. 

+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 

+# put in front of it. If left blank `man' will be used as the default path.

+

+MAN_OUTPUT             = man

+

+# The MAN_EXTENSION tag determines the extension that is added to 

+# the generated man pages (default is the subroutine's section .3)

+

+MAN_EXTENSION          = .3

+

+# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 

+# then it will generate one additional man file for each entity 

+# documented in the real man page(s). These additional files 

+# only source the real man page, but without them the man command 

+# would be unable to find the correct page. The default is NO.

+

+MAN_LINKS              = NO

+

+#---------------------------------------------------------------------------

+# configuration options related to the XML output

+#---------------------------------------------------------------------------

+

+# If the GENERATE_XML tag is set to YES Doxygen will 

+# generate an XML file that captures the structure of 

+# the code including all documentation.

+

+GENERATE_XML           = NO

+

+# The XML_OUTPUT tag is used to specify where the XML pages will be put. 

+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 

+# put in front of it. If left blank `xml' will be used as the default path.

+

+XML_OUTPUT             = xml

+

+# The XML_SCHEMA tag can be used to specify an XML schema, 

+# which can be used by a validating XML parser to check the 

+# syntax of the XML files.

+

+XML_SCHEMA             = 

+

+# The XML_DTD tag can be used to specify an XML DTD, 

+# which can be used by a validating XML parser to check the 

+# syntax of the XML files.

+

+XML_DTD                = 

+

+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 

+# dump the program listings (including syntax highlighting 

+# and cross-referencing information) to the XML output. Note that 

+# enabling this will significantly increase the size of the XML output.

+

+XML_PROGRAMLISTING     = YES

+

+#---------------------------------------------------------------------------

+# configuration options for the AutoGen Definitions output

+#---------------------------------------------------------------------------

+

+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 

+# generate an AutoGen Definitions (see autogen.sf.net) file 

+# that captures the structure of the code including all 

+# documentation. Note that this feature is still experimental 

+# and incomplete at the moment.

+

+GENERATE_AUTOGEN_DEF   = NO

+

+#---------------------------------------------------------------------------

+# configuration options related to the Perl module output

+#---------------------------------------------------------------------------

+

+# If the GENERATE_PERLMOD tag is set to YES Doxygen will 

+# generate a Perl module file that captures the structure of 

+# the code including all documentation. Note that this 

+# feature is still experimental and incomplete at the 

+# moment.

+

+GENERATE_PERLMOD       = NO

+

+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 

+# the necessary Makefile rules, Perl scripts and LaTeX code to be able 

+# to generate PDF and DVI output from the Perl module output.

+

+PERLMOD_LATEX          = NO

+

+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 

+# nicely formatted so it can be parsed by a human reader.  This is useful 

+# if you want to understand what is going on.  On the other hand, if this 

+# tag is set to NO the size of the Perl module output will be much smaller 

+# and Perl will parse it just the same.

+

+PERLMOD_PRETTY         = YES

+

+# The names of the make variables in the generated doxyrules.make file 

+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 

+# This is useful so different doxyrules.make files included by the same 

+# Makefile don't overwrite each other's variables.

+

+PERLMOD_MAKEVAR_PREFIX = 

+

+#---------------------------------------------------------------------------

+# Configuration options related to the preprocessor   

+#---------------------------------------------------------------------------

+

+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 

+# evaluate all C-preprocessor directives found in the sources and include 

+# files.

+

+ENABLE_PREPROCESSING   = YES

+

+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 

+# names in the source code. If set to NO (the default) only conditional 

+# compilation will be performed. Macro expansion can be done in a controlled 

+# way by setting EXPAND_ONLY_PREDEF to YES.

+

+MACRO_EXPANSION        = NO

+

+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 

+# then the macro expansion is limited to the macros specified with the 

+# PREDEFINED and EXPAND_AS_PREDEFINED tags.

+

+EXPAND_ONLY_PREDEF     = NO

+

+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 

+# in the INCLUDE_PATH (see below) will be search if a #include is found.

+

+SEARCH_INCLUDES        = YES

+

+# The INCLUDE_PATH tag can be used to specify one or more directories that 

+# contain include files that are not input files but should be processed by 

+# the preprocessor.

+

+INCLUDE_PATH           = 

+

+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 

+# patterns (like *.h and *.hpp) to filter out the header-files in the 

+# directories. If left blank, the patterns specified with FILE_PATTERNS will 

+# be used.

+

+INCLUDE_FILE_PATTERNS  = 

+

+# The PREDEFINED tag can be used to specify one or more macro names that 

+# are defined before the preprocessor is started (similar to the -D option of 

+# gcc). The argument of the tag is a list of macros of the form: name 

+# or name=definition (no spaces). If the definition and the = are 

+# omitted =1 is assumed. To prevent a macro definition from being 

+# undefined via #undef or recursively expanded use the := operator 

+# instead of the = operator.

+

+PREDEFINED             = 

+

+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 

+# this tag can be used to specify a list of macro names that should be expanded. 

+# The macro definition that is found in the sources will be used. 

+# Use the PREDEFINED tag if you want to use a different macro definition.

+

+EXPAND_AS_DEFINED      = 

+

+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 

+# doxygen's preprocessor will remove all function-like macros that are alone 

+# on a line, have an all uppercase name, and do not end with a semicolon. Such 

+# function macros are typically used for boiler-plate code, and will confuse 

+# the parser if not removed.

+

+SKIP_FUNCTION_MACROS   = YES

+

+#---------------------------------------------------------------------------

+# Configuration::additions related to external references   

+#---------------------------------------------------------------------------

+

+# The TAGFILES option can be used to specify one or more tagfiles. 

+# Optionally an initial location of the external documentation 

+# can be added for each tagfile. The format of a tag file without 

+# this location is as follows: 

+#   TAGFILES = file1 file2 ... 

+# Adding location for the tag files is done as follows: 

+#   TAGFILES = file1=loc1 "file2 = loc2" ... 

+# where "loc1" and "loc2" can be relative or absolute paths or 

+# URLs. If a location is present for each tag, the installdox tool 

+# does not have to be run to correct the links.

+# Note that each tag file must have a unique name

+# (where the name does NOT include the path)

+# If a tag file is not located in the directory in which doxygen 

+# is run, you must also specify the path to the tagfile here.

+

+TAGFILES               = 

+

+# When a file name is specified after GENERATE_TAGFILE, doxygen will create 

+# a tag file that is based on the input files it reads.

+

+GENERATE_TAGFILE       = 

+

+# If the ALLEXTERNALS tag is set to YES all external classes will be listed 

+# in the class index. If set to NO only the inherited external classes 

+# will be listed.

+

+ALLEXTERNALS           = NO

+

+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 

+# in the modules index. If set to NO, only the current project's groups will 

+# be listed.

+

+EXTERNAL_GROUPS        = YES

+

+# The PERL_PATH should be the absolute path and name of the perl script 

+# interpreter (i.e. the result of `which perl').

+

+PERL_PATH              = /usr/bin/perl

+

+#---------------------------------------------------------------------------

+# Configuration options related to the dot tool   

+#---------------------------------------------------------------------------

+

+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 

+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base 

+# or super classes. Setting the tag to NO turns the diagrams off. Note that 

+# this option is superseded by the HAVE_DOT option below. This is only a 

+# fallback. It is recommended to install and use dot, since it yields more 

+# powerful graphs.

+

+CLASS_DIAGRAMS         = YES

+

+# If set to YES, the inheritance and collaboration graphs will hide 

+# inheritance and usage relations if the target is undocumented 

+# or is not a class.

+

+HIDE_UNDOC_RELATIONS   = YES

+

+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 

+# available from the path. This tool is part of Graphviz, a graph visualization 

+# toolkit from AT&T and Lucent Bell Labs. The other options in this section 

+# have no effect if this option is set to NO (the default)

+

+HAVE_DOT               = YES

+

+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 

+# will generate a graph for each documented class showing the direct and 

+# indirect inheritance relations. Setting this tag to YES will force the 

+# the CLASS_DIAGRAMS tag to NO.

+

+CLASS_GRAPH            = YES

+

+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 

+# will generate a graph for each documented class showing the direct and 

+# indirect implementation dependencies (inheritance, containment, and 

+# class references variables) of the class with other documented classes.

+

+COLLABORATION_GRAPH    = YES

+

+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen 

+# will generate a graph for groups, showing the direct groups dependencies

+

+GROUP_GRAPHS           = YES

+

+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 

+# collaboration diagrams in a style similar to the OMG's Unified Modeling 

+# Language.

+

+UML_LOOK               = NO

+

+# If set to YES, the inheritance and collaboration graphs will show the 

+# relations between templates and their instances.

+

+TEMPLATE_RELATIONS     = YES

+

+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 

+# tags are set to YES then doxygen will generate a graph for each documented 

+# file showing the direct and indirect include dependencies of the file with 

+# other documented files.

+

+INCLUDE_GRAPH          = YES

+

+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 

+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 

+# documented header file showing the documented files that directly or 

+# indirectly include this file.

+

+INCLUDED_BY_GRAPH      = YES

+

+# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will 

+# generate a call dependency graph for every global function or class method. 

+# Note that enabling this option will significantly increase the time of a run. 

+# So in most cases it will be better to enable call graphs for selected 

+# functions only using the \callgraph command.

+

+CALL_GRAPH             = NO

+

+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 

+# will graphical hierarchy of all classes instead of a textual one.

+

+GRAPHICAL_HIERARCHY    = YES

+

+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES 

+# then doxygen will show the dependencies a directory has on other directories 

+# in a graphical way. The dependency relations are determined by the #include

+# relations between the files in the directories.

+

+DIRECTORY_GRAPH        = YES

+

+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 

+# generated by dot. Possible values are png, jpg, or gif

+# If left blank png will be used.

+

+DOT_IMAGE_FORMAT       = png

+

+# The tag DOT_PATH can be used to specify the path where the dot tool can be 

+# found. If left blank, it is assumed the dot tool can be found in the path.

+

+DOT_PATH               = 

+

+# The DOTFILE_DIRS tag can be used to specify one or more directories that 

+# contain dot files that are included in the documentation (see the 

+# \dotfile command).

+

+DOTFILE_DIRS           = 

+

+# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width 

+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 

+# this value, doxygen will try to truncate the graph, so that it fits within 

+# the specified constraint. Beware that most browsers cannot cope with very 

+# large images.

+

+MAX_DOT_GRAPH_WIDTH    = 1024

+

+# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height 

+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 

+# this value, doxygen will try to truncate the graph, so that it fits within 

+# the specified constraint. Beware that most browsers cannot cope with very 

+# large images.

+

+MAX_DOT_GRAPH_HEIGHT   = 1024

+

+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 

+# graphs generated by dot. A depth value of 3 means that only nodes reachable 

+# from the root by following a path via at most 3 edges will be shown. Nodes 

+# that lay further from the root node will be omitted. Note that setting this 

+# option to 1 or 2 may greatly reduce the computation time needed for large 

+# code bases. Also note that a graph may be further truncated if the graph's 

+# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH 

+# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), 

+# the graph is not depth-constrained.

+

+MAX_DOT_GRAPH_DEPTH    = 0

+

+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 

+# background. This is disabled by default, which results in a white background. 

+# Warning: Depending on the platform used, enabling this option may lead to 

+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to 

+# read).

+

+DOT_TRANSPARENT        = NO

+

+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 

+# files in one run (i.e. multiple -o and -T options on the command line). This 

+# makes dot run faster, but since only newer versions of dot (>1.8.10) 

+# support this, this feature is disabled by default.

+

+DOT_MULTI_TARGETS      = NO

+

+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 

+# generate a legend page explaining the meaning of the various boxes and 

+# arrows in the dot generated graphs.

+

+GENERATE_LEGEND        = YES

+

+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 

+# remove the intermediate dot files that are used to generate 

+# the various graphs.

+

+DOT_CLEANUP            = YES

+

+#---------------------------------------------------------------------------

+# Configuration::additions related to the search engine   

+#---------------------------------------------------------------------------

+

+# The SEARCHENGINE tag specifies whether or not a search engine should be 

+# used. If set to NO the values of all tags below this one will be ignored.

+

+SEARCHENGINE           = NO

diff --git a/fonts/CMakeLists.txt b/fonts/CMakeLists.txt
new file mode 100644
index 0000000..9c199ab
--- /dev/null
+++ b/fonts/CMakeLists.txt
@@ -0,0 +1,11 @@
+PROJECT(fonts)
+cmake_minimum_required(VERSION 2.4.0)
+cmake_policy(SET CMP0005 OLD)
+
+if(COMMAND cmake_policy)
+       cmake_policy(SET CMP0003 NEW)
+endif(COMMAND cmake_policy)
+
+
+Include(../src/cmake/CPack-projectM.cmake)
+
diff --git a/fonts/Vera.ttf b/fonts/Vera.ttf
new file mode 100644
index 0000000..58cd6b5
--- /dev/null
+++ b/fonts/Vera.ttf
Binary files differ
diff --git a/fonts/VeraMono.ttf b/fonts/VeraMono.ttf
new file mode 100644
index 0000000..139f0b4
--- /dev/null
+++ b/fonts/VeraMono.ttf
Binary files differ
diff --git a/playlists/presetplaylist.xsd b/playlists/presetplaylist.xsd
new file mode 100644
index 0000000..31dee05
--- /dev/null
+++ b/playlists/presetplaylist.xsd
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+	<xs:element name="presetplaylist">
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element name="description" type="xs:string"/>
+				<xs:element name="item" maxOccurs="unbounded">
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="url" type="xs:string"/>
+							<xs:element name="rating" type="xs:integer"/>
+						</xs:sequence>
+					</xs:complexType>
+				</xs:element>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>	
+</xs:schema>
+
diff --git a/playlists/sample.ppl b/playlists/sample.ppl
new file mode 100644
index 0000000..3f2318e
--- /dev/null
+++ b/playlists/sample.ppl
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><presetplaylist><description></description><item><url>/usr/share/projectM/presets/A.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/AA.milk</url><rating>5</rating></item><item><url>/usr/share/projectM/presets/AAA.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Agitator.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Aimless (Gravity Directive Mix).milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Aimless (Spirogravity Mix).milk</url><rating>5</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Airhandler (Menagerie Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Airs (Windy Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Airs.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Anchorpulse (Pulse Of A Ghast II Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Anchorpulse (Verified Mix).milk</url><rating>5</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Anomalous Material Science (Pure Splinter Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Antidote (Aqualung Mix).milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Antidote (Side Effects Mix).milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Antidote.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Antique Abyss.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Arise! (Padded Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Ashes Of Air (Remix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Bitterfeld (Crystal Border Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Blender.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Bow To Gravity.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Brakefreak.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Candy Avian.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Causeway Of Dreams (Nightmare Mix).milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Causeway Of Dreams (REMix).milk</url><rating>5</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Causeway Of Dreams.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Chromatic Abyss (The Other Side).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Circlefacade.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Contortion (Xenomorph Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Contortion.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Crystal Storm.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Dark Matter (Converse Mix).milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Elastoid.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Floater Society.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Flowing Form.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Making Time (Swamp Mix).milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Paintsphere.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Potion of Spirits.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Songflower (Moss Posy).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - Spillswirl.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - What Cannot Be Undone.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Aderrasi - What cannot be.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/B.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/baked - mushroom rainbows[2].milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Bmelgren </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Bmelgren </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Bmelgren - Godhead.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Bmelgren - Hmmm.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Bmelgren - Pentultimate Nerual Slipstream (Tweak 2).milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Bmelgren - Take This Highway.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/che - adela the flower.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/che - barcode infidelity.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/che - burning hus (oil mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Che - Burning Hus.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Che - Escape.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Che - Geology.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/che - terracarbon stream.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Che - Watch </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/CrystalHigh - mad ravetriping.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/DaNOnE - Highway to Heaven (rotating).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/EMPR - Random - Changing Polyevolution.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/EMPR - Random - Light Speed Racer.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/EMPR - Random - Look mama I'm on TV! 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/EMPR - Random - They're so cute Dad can I keep one!.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/EMPR - Random - Turbulence Sandwich.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Eo.S. + Phat - chasers 18 hallway.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Eo.S. - glowsticks v2 03 music.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Eo.S. - glowsticks v2 04 music minimal.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Eo.S. - glowsticks v2 05 and proton lights (+Krash's beat code) _Phat_remix02b.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Eo.S. - glowsticks v2 05 and proton lights (+Krash's beat code) _Phat_remix07 recursive demons.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Eo.S. - heater core C_Phat's_class + sparks_mix.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Eo.S. - heater core C_Phat's_on route_mix+beam.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Eo.S. - repeater 05 - rave on acid.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Eo.S. - repeater 15 - kaleidoscope b.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Eo.S.+Phat - Arm_upgrades - transformer.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Eo.S.+Phat Cool Bug v2 + (Krash's beat detection).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/EvilJim - Follow the ball.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/EvilJim - Ice Drops.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/fiShbRaiN - blueprint.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Fvese </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Fvese - 0 To 60.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Fvese - A Blur.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Fvese - Lifesavor Anyone.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Fvese - Multi Circle.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Fvese - New meetings.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Fvese - Quicksand.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Fvese - Round and Round (geiss gamma mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Fvese - simple.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Fvese - Stand Still!.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Fvese - The Tunnel (Final Stage Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Fvese - Window Reflection 6.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Fvese - Zoom Effects (Remix 2).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Geiss </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Geiss </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Geiss </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Geiss </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Geiss - Aieeeeee!!!.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Anomaly 1.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Anomaly 2.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Approach.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Asymptote.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Bass Kaleidosphere.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Bass Zoom.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Bipolar 1.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Bipolar 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Bipolar 3.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Bipolar 4.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Bipolar 5.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Blasto.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Bonfire.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Bright Fiber Matrix 1.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Bright Fiber Matrix 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Calligraphy.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Cartographie.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Casino.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Cepiasound.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Churn.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Color Tones 1.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Color Tones 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Constant Velocity.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Coral.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Corpus Callosum.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Cosmic Dust 1.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Cosmic Dust 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Cruzin'.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Cycloid 1.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Cycloid 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Davod The Pod.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - De La Moutard 1.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - De La Moutard 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Demonic Distortion.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Descent.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Destruction.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Diffraction.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Digital Smoke.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Downward Spiral.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Drift.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Dynamic Swirls 1.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Dynamic Swirls 2.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Eddies 1.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Eddies 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Eggs.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - El Cubismo.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Feedback 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Feedback.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Festive.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Fiberglass.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Flotsam.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Flower Blossom.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Flower.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Fog Tunnel.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Four Kinds of Amphetamines.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Galaxy 1.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Galaxy 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Greenland.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Happy Drops.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Heavenly 1.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Heavenly 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Heavenly 3.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - High Dynamic Range.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Hovering.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Hurricane.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Hyperion.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Inkblot.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Iris.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Journey.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Julia Fractal 1.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Julia Fractal 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Luz.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Many Colors 1.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Many Colors 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Mega Swirl 1.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Mega Swirl 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Mega Swirl 3.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Microcosm.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Monotone Ripples.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Music Box.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Nautilus.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Octopus Blue.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Octopus Ever Changing.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Octopus Fat and Ever Changing.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Octopus Gold with Dots.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Octopus Gold.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Octopus.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Oldskool Mellowstyle.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Pelota De Fuego.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Pinch.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Pistons.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Planet 1.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Planet 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Quasilinear Submanifolds.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Reducto Absurdum.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Reducto Ad Nauseum.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Rocket.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Runoff.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Scary.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Script.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Serpent.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Shake.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Shift.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Sinews 1.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Sinews 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Smoke.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Solar Flare (Blue).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Solar Flare (Reptile).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Solar Flare.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Sound And The Fury.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Space Voyage (High-Warp).milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Space Voyage Bright.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Space Voyage.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Spacedust.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Starfish 1.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Starfish 2.milk</url><rating>5</rating></item><item><url>/usr/share/projectM/presets/Geiss - Sunsets.milk</url><rating>5</rating></item><item><url>/usr/share/projectM/presets/Geiss - Supernova 1.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Supernova 2.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Surface.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Swirl 1.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Swirl 2.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Swirlie 1.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Swirlie 2.milk</url><rating>5</rating></item><item><url>/usr/share/projectM/presets/Geiss - Swirlie 3.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Swirlie 4.milk</url><rating>5</rating></item><item><url>/usr/share/projectM/presets/Geiss - Swirlie 5.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Symmetry.milk</url><rating>5</rating></item><item><url>/usr/share/projectM/presets/Geiss - The Fatty Lumpkin Sunkle Tweaker.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Three And A Half Kinds Of Amphetamines.milk</url><rating>5</rating></item><item><url>/usr/share/projectM/presets/Geiss - Three Kinds Of Amphetamines.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Tokamak.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Tornado.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Toy.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Trampoline.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Tube.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss - Two-Pointed Pulsagon.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Ultrafast.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Volume Zoom.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Vortex 1.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Vortex 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Warp Of Dali 1.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Warp Of Dali 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Warp Of Dali Bright.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Geiss - Waterfall.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Geiss and Rovastar - The Chaos Of Colours (sprouting diment.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Idiot </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Idiot </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Idiot </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Idiot </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Idiot - 9-7-02 (Remix) (sustain fixed).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Idiot - Cortex (Spiritual Visions Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/idiot - Dwarf of Annon (before the star).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Idiot - Madness Within The Void (Remix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Idiot - MOTIVATION!.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/idiot - Nothing Yet - 02 - Shifting Squares of idiot.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/idiot - Nothing Yet - 03 - The worst of the pack.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/idiot - Nucleus.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/idiot - Shadows of Annon.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/idiot - Sinful Code (unchained style).milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/idiot - Some big word I learned.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/idiot - Spectrum.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Idiot - Tentacle Dreams (Remix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Idiot - Texture Boxes (Remix 2).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Idiot - Texture Boxes (Remix).milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Idiot - Typomatic (Remix 2).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/idiot - Waterfalls (remix2).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/idiot - Waterfalls.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Idiot - What Is.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Idiot - What Shall Come.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Idiot24-7 - Ascending to heaven 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Idiot24-7 - Just plain cool 3.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Idiot24-7 - Meeting place.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Illusion </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Illusion </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Illusion </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Illusion </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Illusion </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/illusion </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/illusion </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Illusion </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Illusion </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Illusion </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Illusion - Figure Eight.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Illusion - Heavenly Eye.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Jess - Trying To Trap A Twister.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Krash </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Krash </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Krash </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Krash </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Krash </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Krash </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Krash </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Krash </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Krash </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Krash </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Krash </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Krash - 3D Shapes Demo 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Krash - 3D Shapes Demo.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Krash - cardiac rhythm.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Krash - Chronoshift.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Krash - Digital Flame.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Krash - Dynamic Borders 1.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Krash - Framed Geometry.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Krash - Heatwaves.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Krash - interwoven (nightmare weft).milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Krash - interwoven.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Krash - Molten Indecision (Rozzor Hot Fast tweak).milk</url><rating>5</rating></item><item><url>/usr/share/projectM/presets/Krash - molten indecision.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Krash - Pulse.milk</url><rating>5</rating></item><item><url>/usr/share/projectM/presets/Krash - Season's Greetings 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Krash - Snowflake Halo.milk</url><rating>5</rating></item><item><url>/usr/share/projectM/presets/Krash - systolic pressure.milk</url><rating>5</rating></item><item><url>/usr/share/projectM/presets/Krash - Twisting Indecision.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Krash - Vinyl Disk.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Krash - War Machine (Shifting Complexity Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Krash - Windowframe To Mega Swirl 2.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Krash and Fvese - Molten Indecision (Fvese Remix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Krash and Rovastar - Rainbow Orb 2 Peacock (Bmelgren's Comp.milk</url><rating>5</rating></item><item><url>/usr/share/projectM/presets/Krash and Rovastar - Rainbow Orb.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Krash and Telek - Real Noughts and Crosses (Random Ending).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Mstress </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Mstress </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Mstress </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Mstress </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Mstress - Acid Universes (Big Bang Interferences Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/mstress - Acid Universes.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Mstress - Acoustic Nerve Impulses (Under Drug Effetcs (Hypn.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Mstress - Aurora Boreale.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Mstress - Curtain.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Mstress - Snowing Fiber City.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Mstress - Super nova self control.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/neuro - blackhole bass.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/nil </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/nil </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/nil </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/nil - Can't Stop the Blithering.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/nil - Can't Stop the Cramming.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/nil - Cid and Lucy.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/nil - Did You Speak with the Orb.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/nil - Disco Comet.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/nil - Singularity in My Oscilloscope.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/nil - Tim Leary's Amazing Waterslide.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/nil - Vortex of Vortices.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/nil - Wyrm.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Phat+fiShbRaiN+Eo.S_Mandala_Chasers_remix - www.eos4life.com.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Phat+fiShbRaiN+Eo.S_Mandala_Chasers_remix.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/PieturP - triptrap_(getting_concrete_visions_through_a_diafragma_version).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/PieturP - triptrap_(ultimate-trip-mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Redi Jedi - acid in your brain.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Redi Jedi - multiple points of origin, one destination.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Reenen - phoenix.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rocke - Answer.42.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rocke - Answer42.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rocke - Cold Love (Tei Zwaa).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rocke - Personal Comet.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rovastar - A Million Miles From Earth (Drift Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - A Million Miles from Earth (Pathfinder Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - A Million Miles From Earth (Wormhole Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - A Million Miles from Earth.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Altars Of Harlequin's Maddess.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Altars Of Harlequin's Madness (Dark Disorder Mix.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Altars Of Madness (A Million Miles From Earth Mi.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Altars Of Madness (Boxfresh Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Altars Of Madness (Duel Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Altars Of Madness (Surealist Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Altars Of Madness 2 (Frozen Time Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Altars Of Madness 4 (Spirit Of Twisted Madness M.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Altars Of Madness.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Attacking Freedom.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Bellanova (New Wave Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Biohazard Warning.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Braindance 1.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Bytes.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Chapel Of Ghouls.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Chemical Spirituality.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Clouded Judgement 3.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Cosmic Echoes 1.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Cosmic Echoes 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Cosmic Havoc.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Cosmic Mosaic (Active Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Dark Ritual (Star Of Destiny Denied Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Dark Ritual (Star Of Destiny Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Decreasing Dreams (Extended Movement Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Dreamcatcher.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - eclectic interface (despair mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Explosive Minds.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Forgotten Moon.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Fractopia (Fantic Dancing Lights Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Fractopia (Galaxy Swirl Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Fractopia (Upspoken Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Fractopia (Upspoken Mix)_Phat_Speak_When_Spoken_2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Frozen Rapture .milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Future Speakers.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Halcyon Dreams 3.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Hallucinogenic Pyramids (Beat Time Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Harlequin's Delight (Endless Tunnel Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Harlequin's Dynamic Fractal (Crazed Spiral Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Harlequin's Dynamic Fractal (Dual Spiral Mix ).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Harlequin's Dynamic Fractal 1.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Harlequin's Dynamic Fractal 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Harlequin's Dynamic Fractal 3.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Harlequin's Fractal Encounter 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Harlequin's Fractal Encounter.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Harlequin's Liquid Dragon.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Harlequin's Living Wall.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Harlequin's Spirit (Twisted Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Harlequin's Spirit.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Hyperspace (Frozen Rapture Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Hyperspace (Hyper Speed Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Hyperspace.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Inner Thoughts (Clouded Judgement Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Inner Thoughts (Clouded Judgement Mix).milk~</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Inner Thoughts (Dark Secret Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Inner Thoughts (Distant Memories Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Inner Thoughts (Frantic Thoughts Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Inner Thoughts (Strange Cargo Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Intense Desire.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Jester's Awakening.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Jester's Calling 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Jester's Calling 3.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Jester's Surreal Tornado (Further Vortex Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Kalideostars (Altars Of Madness MIx).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Kalideostars (Round  Round Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Kalideostars.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - LabFunk.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Lost Souls of the Bermuda Triangle (Darkest Soul.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Magic Carpet.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Mosaics Of Ages.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Multiverse Starfield 1.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Multiverse Starfield 3.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Omnipresence Resurrection (Raw Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Omnipresence Resurrection.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Oozing Resistance.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Pandora's Volcano.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Paradigm Sphere.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Parallel Universe.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - paranormal diffusion analyser.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Power Trip.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Ritual Of Life.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Sea Life (Evoluation Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Sea Life.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Sea Shells.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Shadows Portal.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Snapshot Of Space.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Solarized Space (Space DNA Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Solarized Space.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Space (Twisted Dimension Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Space.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Starquake (Sunquake Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - The Awakening.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - The Chaos Of Colours (Drifting Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - The Chaos Of Colours.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - The Shroomery.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Timeless Voyage.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Touchdown on Mars (Detailed Pictures Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Tripmaker.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Trippy S..milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Trippy S.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - twisted bytes.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Violent Relaxation.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Visions Beyond.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Visions Of The Future.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - VooV's Brainwaves.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - VooV's Movement (After Dark Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - VooV's Movement.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - VooV's Organic Light.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar - Xeper.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar and Krash - Hallucinogenic Pyramids (Extra Beat Ti.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar and Krash - Rainbow Deflection.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar and Unchained - Braindance Visions.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rovastar and Unchained - Life After Pie (Remix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rozzer </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rozzer </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rozzor </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rozzor </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rozzor </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rozzor </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Rozzor - Color Breaks its Boycott (shape mod).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rozzor - Learning Curve (Invert tweak).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rozzor and che - Inside the House of nil.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rozzor and Idiot - Any Other Deep Rising.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rozzor and Rovastar - Altars Of Madness 3 (ooze tweak with .milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rozzor and Rovastar - Altars Of Madness 3 (ooze tweak).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rozzor and StudioMusic - Vertigyny (Geiss shape mod).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Rozzor and Zylot - Associative Order.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Scanner (@ztec)2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/shifter - escape the worm - Eo.S. + Phat - Before_It_Eats_Your_Brain_Mix_v2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/shifter - escape the worm - Eo.S. + Phat 5362.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Studio Music - Cherished Desires.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Studio Music and Unchained - Rapid Alteration.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/StudioMusic </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/StudioMusic </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/StudioMusic </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/StudioMusic </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/StudioMusic </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/StudioMusic - Harmonic Bliss (elated mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/StudioMusic - It's Only Make Believe.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/StudioMusic - Numerosity.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/StudioMusic - Twisted Galaxy.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/StudioMusic Aderrasi </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/TEcHNO and SandStorm - Psychodelic Highway.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Telek - City Helix Lattice.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Telek - Directive Swagger (Spectral Inferno) (fix...) maybe.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Telek - Flicker (@xis).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Telek - Flicker.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Telek - Globetrotting (Sailors Delight Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Telek - Lost Star (Flash).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Telek - Recirculate (Cool).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Telek - Sine Wave.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Telek - Slow Shift Matrix (bb4.5).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Telek - Slow Shift Matrix (Ethereal Drift).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Telek - Slow Shift Matrix.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Telek - Slow Thing (Spiderman Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Telek - Spiral Tabletop (New and Improved!).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Telek - Spokes (More Dynamic).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Telek - Target Practice (tracking retreat slide).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Telek EMPR - Scanner - Trust me I've got a Melways.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/TobiasWolfBoi - Cataract.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/TobiasWolfBoi - The Pit.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Tschoey - Music Flower.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Unchained </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Unchained </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Unchained </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Unchained </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Unchained </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Unchained </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Unchained </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Unchained </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Unchained </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Unchained </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Unchained </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Unchained </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Unchained </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Unchained - A Matter Of Taste (Remix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - All You Can Eat.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Bad Karma Oddnezz Style.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Beat Demo (Demonology Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Beat Demo 1.0.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Unchained - Beat Demo 10.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Beat Demo 2.0.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Beat Demo 2.1.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Beat Demo 2.2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Beat Demo 2.3.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Cartoon Factory.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Cranked On Failure.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Custom Gramatix (Remix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Deeper Logic.milk</url><rating>1</rating></item><item><url>/usr/share/projectM/presets/Unchained - elite vectronics.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Free to Feel (Valium Remix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - French Clothing.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Games With Light </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Unchained - Ghostlight Whisper.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - God Of The Game (Remix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Goo Kung Fu.milk</url><rating>5</rating></item><item><url>/usr/share/projectM/presets/Unchained - Goofy Beat Detection.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Housed In A Childish Mind.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - In Memory Of Peg.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Invariant Under Rigorous Motions.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Jaded Emotion.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Jaundice.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Making a Science of It 4.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Morat's Final Voyage.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Non-Professional Music Analyzer.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Painful Plasma (Multi-Wave Mirrored Rage) -- Ro.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Perverted Dialect.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Picture Of Exile.milk</url><rating>5</rating></item><item><url>/usr/share/projectM/presets/Unchained - Picture Of Nectar.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Picture Of Poison.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - ReAwoke.milk</url><rating>6</rating></item><item><url>/usr/share/projectM/presets/Unchained - Resistance.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Unchained - Ribald Ballad.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Shaping The Grid.milk</url><rating>1</rating></item><item><url>/usr/share/projectM/presets/Unchained - Subjective Experience Of The Manifold.milk</url><rating>2</rating></item><item><url>/usr/share/projectM/presets/Unchained - Unclaimed Wreckage 2 (Shamanic).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - Unclaimed Wreckage.milk</url><rating>6</rating></item><item><url>/usr/share/projectM/presets/Unchained - Unified Drag 2.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Unchained - ventilation.milk</url><rating>4</rating></item><item><url>/usr/share/projectM/presets/Unchained - Working the Grid.milk</url><rating>1</rating></item><item><url>/usr/share/projectM/presets/Vovan - Bass With Flover.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 010 - Symphonic innerverse.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 011 - Symphonic innerverse (deaf mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 020 - I have no feet and I must dance.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 030 - Dance with the ocean.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 040 - Myopic infected 3d VU meters.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 041 - Myopic infected 3d VU meters (remix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 050 - Van Gogh's nightmare.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 051 - Van Gogh's nightmare (in depth).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 060 - PLU.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 070 - Speaks for itsself.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 080 - Dream Universe.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 090 - Exit eternity.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 100 - Through the ether.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 101 - Through the ether (Phase Two).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 102 - Through the ether (The separation).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 110 - Survival of the fastest.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 111 - Survival of the fastest (Volume gravity).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 112 - Survival of the fastest (Sudden death).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 113 - Survival of the fastest (The Grand Arena).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 114 - Survival of the fastest (feat. Guest Star).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 115 - Survival of the fastest (feat. Collapsing Guest Star).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 116 - Survival of the fastest (is watched!).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 120 - Resonant consciousness.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 130 - Karmic energies.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 140 - Ohm to the stars.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 141 - Ohm to the stars (ESP).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 150 - Pap says there's no centrifugal.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 160 - Controversial.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 170 - Take a deep breath.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 180 - Pyrotechnics.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 181 - Pyrotechnics (windy mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 190 - Temporal fluctuations.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 191 - Temporal singularities.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 200 - The all seeing eye.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 210 - Beat it.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 220 - Enter the silence.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - 230 - First impression.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/yin - Beat Detective 007 demo.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Zylot </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Zylot </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Zylot </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Zylot </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Zylot </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Zylot </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Zylot </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Zylot </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Zylot </url><rating>10957</rating></item><item><url>/usr/share/projectM/presets/Zylot - Azirphaeli's Mirror.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Block Of Sound (Abstract Architecture Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Block Of Sound (Fractal Construction Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Burning Passion.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Color Of Music.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Crystal Ball (Magical Reaction Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - De(-a)range(d)(ment) complex.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - De(-a)range(d)(ment) strain.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Digiscape Advanced Processor.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Ether Storm.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Global Earthquake.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Hollow Shell.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Inside The Planar Portal.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - light of the path.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Magladon.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Magma Crawl.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Magma Vein.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Mixing Pot.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - New Star.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - PinWheel.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Present for Saddam.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Puddle Of Music.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Rainbow Planet Under Attack.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Riding The Sound Waves.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Rush.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - S Pulse Virus.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - S. Pulse Virus.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - String.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - String.milk~</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Tangent Universe (Collapsed With Artifact Mix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - The Deeper.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - The Inner Workings of my New Computer.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Tunnel Of Illusion.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Visionarie (geiss aspect ratio fix).milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Waves Of Blood.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Winding Path Over The Blue Abyss.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot - Wisps.milk</url><rating>3</rating></item><item><url>/usr/share/projectM/presets/Zylot and Rovastar - Iouo Stone Morphic Fusion.milk</url><rating>3</rating></item></presetplaylist>
diff --git a/presets/Aderrasi - Agitator.milk b/presets/Aderrasi - Agitator.milk
new file mode 100644
index 0000000..11f469e
--- /dev/null
+++ b/presets/Aderrasi - Agitator.milk
@@ -0,0 +1,69 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.504000

+fDecay=0.900000

+fVideoEchoZoom=0.999592

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=3

+nWaveMode=0

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=1

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=0.311604

+fWaveSmoothing=0.450000

+fWaveParam=-0.500000

+fModWaveAlphaStart=0.710000

+fModWaveAlphaEnd=1.300000

+fWarpAnimSpeed=0.010000

+fWarpScale=0.438651

+fZoomExponent=0.999994

+fShader=0.000000

+zoom=1.000156

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=0.010000

+sx=0.990099

+sy=0.990099

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.100000

+ob_r=0.000000

+ob_g=0.600000

+ob_b=0.500000

+ob_a=0.100000

+ib_size=0.050000

+ib_r=0.000000

+ib_g=1.000000

+ib_b=1.000000

+ib_a=0.100000

+nMotionVectorsX=12.799995

+nMotionVectorsY=9.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=5.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.5*sin(1.2*frame) + 0.3*sin(1.9*frame);

+per_frame_2=wave_g = wave_g + 0.7*sin(1.1*frame) + 0.4*cos(1.6*frame);

+per_frame_3=wave_b = wave_b + 0.2*sin(1.3*frame) + 0.4*sin(2*frame);

+per_pixel_1=rot=rot + (0.5 + 0.1*sin(bass)-rad)*pow(bass,3)/50;

+per_pixel_2=zoom= zoom + (0.5 + 0.3*tan(3*bass_att)-rad)*(cos(pow(rad,2.4))+(0.2*mid_att));

+per_pixel_3=warp = warp + if (above(bass,1.34), 0.5*(0.5+ 0.1*sin(bass)-rad)*(cos(pow(rad,2.4))+(5*bass_att)), 0);

diff --git "a/presets/Aderrasi - Aimless \050Gravity Directive Mix\051.milk" "b/presets/Aderrasi - Aimless \050Gravity Directive Mix\051.milk"
new file mode 100644
index 0000000..f0f7457
--- /dev/null
+++ "b/presets/Aderrasi - Aimless \050Gravity Directive Mix\051.milk"
@@ -0,0 +1,75 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.000000

+fDecay=1.000000

+fVideoEchoZoom=1.000000

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=3

+nWaveMode=0

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=1

+bTexWrap=0

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=0.611434

+fWaveSmoothing=0.000000

+fWaveParam=-0.500000

+fModWaveAlphaStart=0.710000

+fModWaveAlphaEnd=1.300000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=0.900000

+fShader=1.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.005000

+ob_r=0.010000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.260000

+ib_r=0.250000

+ib_g=0.250000

+ib_b=0.250000

+ib_a=0.000000

+nMotionVectorsX=64.000000

+nMotionVectorsY=48.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_x = wave_x + 0.12*sin(0.2*time) - 0.15*cos(0.1*time) + 0.1*sin(0.2*time);

+per_frame_2=wave_y = wave_y + 0.1*sin(0.3*time) - 0.2*sin(0.88*time) + 0.13*cos(0.7*time);

+per_frame_3=dx = dx + 0.04*sin(1.24*time);

+per_frame_4=dy = dy + 0.04*sin(1.12*time);

+per_frame_5=wave_r = wave_r + 0.35*sin(1.13*time) + 0.1245*sin(2.34*time);

+per_frame_6=wave_g = wave_g + 0.35*sin(1.23*time) + 0.12*sin(2.134*time);

+per_frame_7=wave_b = wave_b + 0.35*sin(1.33*time) + 0.12*sin(2.5*time);

+per_frame_8=wave_mystery = wave_mystery + 0.00*sin(time);

+per_frame_9=turn = above(bass_att,turn)*2 + (1-above(bass_att,turn))*((turn-1.3)*0.96+1.3);

+per_frame_10=turnr = equal(turn,2)*0.089*sin(time*6.6) + (1-equal(turn,2))*turnr;

+per_frame_11=simp = simp * 0.35*sin(1.2*time) - 0.62*sin(0.7*time) + 1.5*sin(turn);

+per_frame_12=rot = rot + 1.05*((0.25*simp)*10*turnr);

diff --git "a/presets/Aderrasi - Aimless \050Spirogravity Mix\051.milk" "b/presets/Aderrasi - Aimless \050Spirogravity Mix\051.milk"
new file mode 100644
index 0000000..f0f7457
--- /dev/null
+++ "b/presets/Aderrasi - Aimless \050Spirogravity Mix\051.milk"
@@ -0,0 +1,75 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.000000

+fDecay=1.000000

+fVideoEchoZoom=1.000000

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=3

+nWaveMode=0

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=1

+bTexWrap=0

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=0.611434

+fWaveSmoothing=0.000000

+fWaveParam=-0.500000

+fModWaveAlphaStart=0.710000

+fModWaveAlphaEnd=1.300000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=0.900000

+fShader=1.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.005000

+ob_r=0.010000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.260000

+ib_r=0.250000

+ib_g=0.250000

+ib_b=0.250000

+ib_a=0.000000

+nMotionVectorsX=64.000000

+nMotionVectorsY=48.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_x = wave_x + 0.12*sin(0.2*time) - 0.15*cos(0.1*time) + 0.1*sin(0.2*time);

+per_frame_2=wave_y = wave_y + 0.1*sin(0.3*time) - 0.2*sin(0.88*time) + 0.13*cos(0.7*time);

+per_frame_3=dx = dx + 0.04*sin(1.24*time);

+per_frame_4=dy = dy + 0.04*sin(1.12*time);

+per_frame_5=wave_r = wave_r + 0.35*sin(1.13*time) + 0.1245*sin(2.34*time);

+per_frame_6=wave_g = wave_g + 0.35*sin(1.23*time) + 0.12*sin(2.134*time);

+per_frame_7=wave_b = wave_b + 0.35*sin(1.33*time) + 0.12*sin(2.5*time);

+per_frame_8=wave_mystery = wave_mystery + 0.00*sin(time);

+per_frame_9=turn = above(bass_att,turn)*2 + (1-above(bass_att,turn))*((turn-1.3)*0.96+1.3);

+per_frame_10=turnr = equal(turn,2)*0.089*sin(time*6.6) + (1-equal(turn,2))*turnr;

+per_frame_11=simp = simp * 0.35*sin(1.2*time) - 0.62*sin(0.7*time) + 1.5*sin(turn);

+per_frame_12=rot = rot + 1.05*((0.25*simp)*10*turnr);

diff --git "a/presets/Aderrasi - Airhandler \050Menagerie Mix\051.milk" "b/presets/Aderrasi - Airhandler \050Menagerie Mix\051.milk"
new file mode 100644
index 0000000..b918ff2
--- /dev/null
+++ "b/presets/Aderrasi - Airhandler \050Menagerie Mix\051.milk"
@@ -0,0 +1,77 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.700000

+fDecay=0.990000

+fVideoEchoZoom=0.999600

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=3

+nWaveMode=1

+bAdditiveWaves=0

+bWaveDots=1

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=1.053726

+fWaveSmoothing=0.000000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.710000

+fModWaveAlphaEnd=1.300000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.331000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=0.999513

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=0.010100

+sx=1.000000

+sy=1.000000

+wave_r=0.650000

+wave_g=0.650000

+wave_b=0.650000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.005000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=0.900000

+ib_size=0.005000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.900000

+nMotionVectorsX=12.000000

+nMotionVectorsY=9.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=0.900000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.5*sin(time*1.13);

+per_frame_2=wave_g = wave_g + 0.5*sin(time*1.23);

+per_frame_3=wave_b = wave_b + 0.5*sin(time*1.33);

+per_frame_4=

+per_frame_5=wave_x = wave_x + 0.05*sin(time);

+per_frame_6=wave_y = wave_y + 0.05*cos(time);

+per_frame_7=

+per_frame_8=ib_r = ib_r + 0.25*sin(time);

+per_frame_9=ib_g = ib_g + 0.25*cos(time);

+per_frame_10=ib_b = ib_b + 0.25*sin(0.5*time);

+per_pixel_1=zoom = zoom + 0.05*(sin(abs(50*sin(0.1*time))*rad) * sin(sin(time*2*sin(24*ang)*-rad))*3 * cos(rad));

+per_pixel_2=rot = rot + 0.1*sin(0.2+ 0.5*sin(time)-rad);

+per_pixel_3=cx = cx + 1.1*(0.99*(0.5-rad))*sin(0.733*time)*below(sin(time),cos(time));

+per_pixel_4=cy = cy + 1.1*(0.99*(0.5-rad))*cos(0.953*time)*above(sin(time),cos(0.5*time));

diff --git "a/presets/Aderrasi - Airs \050Windy Mix\051.milk" "b/presets/Aderrasi - Airs \050Windy Mix\051.milk"
new file mode 100644
index 0000000..7d9c2ee
--- /dev/null
+++ "b/presets/Aderrasi - Airs \050Windy Mix\051.milk"
@@ -0,0 +1,82 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.000000

+fDecay=1.000000

+fVideoEchoZoom=1.220183

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=0

+nWaveMode=3

+bAdditiveWaves=1

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=0

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=0.241455

+fWaveSmoothing=0.000000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000000

+fShader=1.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.004500

+ob_r=1.000000

+ob_g=0.800000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.005000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.500000

+nMotionVectorsX=3.000000

+nMotionVectorsY=48.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=5.000000

+mv_r=0.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.35*sin(1.4*time) + 0.15*sin(1.5*time);

+per_frame_2=wave_g = wave_g + 0.35*sin(1.7*time) + 0.15*sin(2.11*time);

+per_frame_3=wave_b = wave_b + 0.35*sin(1.84*time) + 0.15*sin(2.3*time);

+per_frame_4=

+per_frame_5=ib_r = wave_g;

+per_frame_6=ib_g = wave_b;

+per_frame_7=ib_b = wave_r;

+per_frame_8=ob_r = wave_b;

+per_frame_9=ob_g = wave_r;

+per_frame_10=ob_b = wave_g;

+per_pixel_1=thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_pixel_2=dx_r = equal(thresh,2)*0.015*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_pixel_3=dy_r = equal(thresh,2)*0.015*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_pixel_4=

+per_pixel_5=randomize = sin(time) - 0.75*cos(1.52*time) + 1.52*sin(5.5*time) - rand(2);

+per_pixel_6=dx = dx + 0.07*pow(rad,x*2)*sin(time) + dx_r*1.75*sin(0.25-rad*randomize);

+per_pixel_7=dy = dy + 0.07*pow(rad,x*2)*cos(time) + dy_r*1.75*sin(0.25-rad*randomize);

+per_pixel_8=zoom = zoom - 0.1*pow(rad,x*0.6 + y*0.6)*cos(rad*randomize)*2*sin(time);

+per_pixel_9=rot = rot - 0.25*(0.75*sin(1.25*time)*pow(rad,x)*sin(1.45*time))*sin(time);

diff --git "a/presets/Aderrasi - Anchorpulse \050Pulse Of A Ghast II Mix\051.milk" "b/presets/Aderrasi - Anchorpulse \050Pulse Of A Ghast II Mix\051.milk"
new file mode 100644
index 0000000..ef82576
--- /dev/null
+++ "b/presets/Aderrasi - Anchorpulse \050Pulse Of A Ghast II Mix\051.milk"
@@ -0,0 +1,84 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.700000

+fDecay=0.990000

+fVideoEchoZoom=0.451116

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=3

+nWaveMode=5

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=1

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=0.535239

+fWaveSmoothing=0.000000

+fWaveParam=-0.800000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.005000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=0.000000

+ib_size=0.005000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=1.000000

+nMotionVectorsX=0.000000

+nMotionVectorsY=0.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.25*sin(1.4*time) + 0.25*sin(2.25*time);

+per_frame_2=wave_g = wave_g + 0.25*sin(1.7*time) + 0.25*sin(2.11*time);

+per_frame_3=wave_b = wave_b + 0.25*sin(1.84*time) + 0.25*sin(2.3*time);

+per_frame_4=warp = 0;

+per_frame_5=

+per_frame_6=ob_r = wave_b;

+per_frame_7=ob_g = wave_r;

+per_frame_8=ob_b = wave_g;

+per_pixel_1=thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_pixel_2=dx_r = equal(thresh,2)*0.015*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_pixel_3=dy_r = equal(thresh,2)*0.015*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_pixel_4=

+per_pixel_5=orb = ((0.5 - 0.5*sin(12*(sin(rad*time+ang))*(ang*time+rad)*time+rad))-2*rad);

+per_pixel_6=

+per_pixel_7=zoom = zoom + 0.1*sin(0.6*cos(0.33*(0.6*sin(1.52*time)*orb + (orb*0.8*cos(2.2*time))+ ((cos(orb))*0.7*sin(time)))))*(above(zoom,0.3)*0);

+per_pixel_8=

+per_pixel_9=sx = sx + (orb)*0.2*abs((above(sin(1.2*time),0))*sin(0.8*time));

+per_pixel_10=sy = sy + (-orb)*0.2*abs((below(sin(1.45*time),0))*cos(0.63*time));

+per_pixel_11=

+per_pixel_12=dx = dx + 2*dx_r;

+per_pixel_13=dy = dy+ 2*dy_r;

diff --git "a/presets/Aderrasi - Anchorpulse \050Verified Mix\051.milk" "b/presets/Aderrasi - Anchorpulse \050Verified Mix\051.milk"
new file mode 100644
index 0000000..8d60b5d
--- /dev/null
+++ "b/presets/Aderrasi - Anchorpulse \050Verified Mix\051.milk"
@@ -0,0 +1,80 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.000000

+fDecay=0.950000

+fVideoEchoZoom=1.347848

+fVideoEchoAlpha=0.600000

+nVideoEchoOrientation=0

+nWaveMode=2

+bAdditiveWaves=0

+bWaveDots=1

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=0

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=0.266718

+fWaveSmoothing=0.500000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.000000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.000000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.000000

+nMotionVectorsX=0.000000

+nMotionVectorsY=0.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.25*sin(1.4*time) + 0.25*sin(2.25*time);

+per_frame_2=wave_g = wave_g + 0.25*sin(1.7*time) + 0.25*sin(2.11*time);

+per_frame_3=wave_b = wave_b + 0.25*sin(1.84*time) + 0.25*sin(2.3*time);

+per_frame_4=warp = 0;

+per_pixel_1=thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_pixel_2=dx_r = equal(thresh,2)*0.015*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_pixel_3=dy_r = equal(thresh,2)*0.015*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_pixel_4=

+per_pixel_5=orb = (0.05 + 0.25*sin(0.6*time + 0.62*cos(time))-(0.5/rad));

+per_pixel_6=

+per_pixel_7=zoom = zoom + (bass_att)*abs(0.33*(0.6*sin(1.52*time)*(0.25-rad) + ((0.5-rad)*0.8*cos(2.2*time))+ ((2*orb+(2-rad))*0.7*sin(time))))*0.4;

+per_pixel_8=

+per_pixel_9=sx = sx + (0.5-rad)*0.2*abs((above(sin(time),0))*sin(time));

+per_pixel_10=sy = sy + (0.5-rad)*0.2*abs((below(sin(time),0))*cos(time));

+per_pixel_11=

+per_pixel_12=dx = dx + dx_r;

+per_pixel_13=dy = dy+ dy_r;

diff --git "a/presets/Aderrasi - Anomalous Material Science \050Pure Splinter Mix\051.milk" "b/presets/Aderrasi - Anomalous Material Science \050Pure Splinter Mix\051.milk"
new file mode 100644
index 0000000..8b97981
--- /dev/null
+++ "b/presets/Aderrasi - Anomalous Material Science \050Pure Splinter Mix\051.milk"
@@ -0,0 +1,77 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.490000

+fDecay=1.000000

+fVideoEchoZoom=1.000000

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=3

+nWaveMode=3

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=0

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=0.972362

+fWaveSmoothing=0.500000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=0.999998

+fShader=0.000000

+zoom=0.999998

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.005000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.000000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.000000

+nMotionVectorsX=64.000000

+nMotionVectorsY=48.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.050000

+mv_r=0.000000

+mv_g=0.000000

+mv_b=0.800000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.4*(0.25*sin(1.4*time)) + 0.25*sin(7.25*time);

+per_frame_2=wave_g = wave_g + 0.34*(0.25*sin(1.7*time)) + 0.25*sin(6.11*time);

+per_frame_3=wave_b = wave_b + 0.3*(0.25*sin(1.84*time)) + 0.25*sin(9.3*time);

+per_frame_4=warp = 0;

+per_pixel_1=thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_pixel_2=dx_r = equal(thresh,2)*0.025*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_pixel_3=dy_r = equal(thresh,2)*0.025*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_pixel_4=

+per_pixel_5=dx = dx + dx_r*(above(x,0.45+0.45*sin(1.5*time))*below(x,0.55+0.45*sin(1.5*time)));

+per_pixel_6=dy = dy + dy_r*(above(y,0.45+0.45*cos(1.25*time))*below(y,0.55+0.45*cos(1.25*time)));

+per_pixel_7=cx = cx + bass*(above(x,0.35+0.45*sin(1.05*time))*below(x,0.65+0.45*sin(1.05*time)));

+per_pixel_8=cy = cy + bass*(above(y,0.35+0.45*cos(1.75*time))*below(y,0.65+0.45*cos(1.75*time)));

+per_pixel_9=rot = rot + 0.15*((0.43*rad)*(5*cos(dx*dy-bass_att+(0.5-rad))*2-rad))*abs(0.5*(2*sin(0.2*time)));

+per_pixel_10=zoom = zoom - 0.02*(abs(cos(12*ang))+0.4*rad);

diff --git "a/presets/Aderrasi - Antidote \050Aqualung Mix\051.milk" "b/presets/Aderrasi - Antidote \050Aqualung Mix\051.milk"
new file mode 100644
index 0000000..7a009c0
--- /dev/null
+++ "b/presets/Aderrasi - Antidote \050Aqualung Mix\051.milk"
@@ -0,0 +1,81 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.000000

+fDecay=1.000000

+fVideoEchoZoom=0.999837

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=3

+nWaveMode=5

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=1.599171

+fWaveSmoothing=0.900000

+fWaveParam=1.000000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=20.009382

+fWarpScale=5.427911

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.000000

+wave_g=0.100000

+wave_b=1.000000

+wave_x=0.400000

+wave_y=0.500000

+ob_size=0.005000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.005000

+ib_r=0.000000

+ib_g=1.000000

+ib_b=0.000000

+ib_a=1.000000

+nMotionVectorsX=6.400000

+nMotionVectorsY=4.800000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=5.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.35*sin(4*time) + 0.15*sin(2.5*time);

+per_frame_2=wave_g = wave_g + 0.35*sin(3.7*time) + 0.15*sin(2.11*time);

+per_frame_3=wave_b = wave_b + 0.35*sin(3.84*time) + 0.15*sin(2.3*time);

+per_frame_4=//wave_y = wave_y + 0.24*sin(2.5*time);

+per_frame_5=wave_x = 0.5 + 0.25*sin(time);

+per_frame_6=wave_y = 0.5 + 0.25*cos(time);

+per_frame_7=ib_r = above(sin(0.2*time),-0.333)*1*below(sin(0.2*time),0.333);

+per_frame_8=ib_g = below(sin(0.2*time),-0.333)*1;

+per_frame_9=ib_b = above(sin(0.2*time),0.333)*1;

+per_pixel_1=thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_pixel_2=dx_r = equal(thresh,2)*0.015*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_pixel_3=dy_r = equal(thresh,2)*0.015*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_pixel_4=dy = dy + 0.001;

+per_pixel_5=//warp = warp + dy_r*50* (if (above(x*cos(1.2*time), sin(1.62*time)), if(below(x*sin(1.72*time),cos(1.8*time)), if(below(y,sin(3*time)), + 1*bass, 0), 0), 0));

+per_pixel_6=rot = rot + 0.4*(1-rad)*0.5*sin(70*dy_r+dx_r*60);

+per_pixel_7=zoom = zoom + 0.01*(1-rad*2)*0.03*(0.5-rad*0.1*sin(time));

+per_pixel_8=dy = dy + (0.005*sin(cos(x*time)*1.76*sin(0.52*time*cos(max(0.075*bass_att,0.0005*time)))));

+per_pixel_9=dx = dx + (0.005*cos(sin(y*time)*1.54*sin(0.79*time*sin(max(0.075*treb_att,0.0005*time)))));

diff --git "a/presets/Aderrasi - Antidote \050Side Effects Mix\051.milk" "b/presets/Aderrasi - Antidote \050Side Effects Mix\051.milk"
new file mode 100644
index 0000000..3758912
--- /dev/null
+++ "b/presets/Aderrasi - Antidote \050Side Effects Mix\051.milk"
@@ -0,0 +1,79 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.000000

+fDecay=1.000000

+fVideoEchoZoom=5.427025

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=3

+nWaveMode=6

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=1

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=0.972360

+fWaveSmoothing=0.500000

+fWaveParam=1.000000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=0.010000

+fWarpScale=1.766487

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.000000

+wave_g=0.000000

+wave_b=0.000000

+wave_x=0.400000

+wave_y=0.500000

+ob_size=0.000000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.000000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.000000

+nMotionVectorsX=6.400000

+nMotionVectorsY=4.800000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=5.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.35*sin(1.4*time) + 0.15*sin(2.5*time+2*mid);

+per_frame_2=wave_g = wave_g + 0.35*sin(1.7*time) + 0.15*sin(2.11*time+2.2*treb);

+per_frame_3=wave_b = wave_b + 0.35*sin(1.84*time) + 0.15*sin(2.3*time+2*bass);

+per_frame_4=//wave_y = wave_y + 0.24*sin(2.5*time);

+per_frame_5=wave_x = 0.75 + 0.45*sin(sin(0.5*bass_att-0.4*treb_att)*sin(time));

+per_frame_6=//warp = warp + (0.8*bass_att - 0.8*treb_att)*0.25;

+per_pixel_1=//thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_pixel_2=//dx_r = equal(thresh,2)*0.015*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_pixel_3=//dy_r = equal(thresh,2)*0.015*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_pixel_4=

+per_pixel_5=//warp = warp + dy_r*50* (if (above(x*cos(1.2*time), sin(1.62*time)), if(below(x*sin(1.72*time),cos(1.8*time)), if(below(y,sin(3*time)), + 1*bass, 0), 0), 0));

+per_pixel_6=

+per_pixel_7=dy = dy + (0.004*sin(cos(x*2.25*time)*0.86*sin(0.52*time*cos(max(0.075*bass_att,0.0005*time)))));

+per_pixel_8=dx = dx + (0.004*cos(sin(y*2.25*time)*0.94*sin(0.79*time*sin(max(0.075*treb_att,0.0005*time)))));

+per_pixel_9=dy = dy - sin((1+x)*time*0.94)*(0.005*above(y,sin(1.14*time+0.02*treb_att)));

+per_pixel_10=dx = dx + sin((0.25-y)*time*0.97)*(0.005*above(x,cos(1.2*time+0.02*bass_att)));

diff --git a/presets/Aderrasi - Antidote.milk b/presets/Aderrasi - Antidote.milk
new file mode 100644
index 0000000..a7ff1eb
--- /dev/null
+++ b/presets/Aderrasi - Antidote.milk
@@ -0,0 +1,76 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.000000

+fDecay=1.000000

+fVideoEchoZoom=0.999837

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=3

+nWaveMode=6

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=0.972360

+fWaveSmoothing=0.500000

+fWaveParam=1.000000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=20.009382

+fWarpScale=5.427911

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.400000

+wave_y=0.500000

+ob_size=0.000000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.000000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.000000

+nMotionVectorsX=6.400000

+nMotionVectorsY=4.800000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=5.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.35*sin(4*time) + 0.15*sin(2.5*time);

+per_frame_2=wave_g = wave_g + 0.35*sin(3.7*time) + 0.15*sin(2.11*time);

+per_frame_3=wave_b = wave_b + 0.35*sin(3.84*time) + 0.15*sin(2.3*time);

+per_frame_4=//wave_y = wave_y + 0.24*sin(2.5*time);

+per_frame_5=wave_x = 0.5 + 0.15*sin(time);

+per_pixel_1=//thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_pixel_2=//dx_r = equal(thresh,2)*0.015*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_pixel_3=//dy_r = equal(thresh,2)*0.015*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_pixel_4=

+per_pixel_5=//warp = warp + dy_r*50* (if (above(x*cos(1.2*time), sin(1.62*time)), if(below(x*sin(1.72*time),cos(1.8*time)), if(below(y,sin(3*time)), + 1*bass, 0), 0), 0));

+per_pixel_6=

+per_pixel_7=dy = dy + (0.005*sin(cos(x*time)*1.76*sin(0.52*time*cos(max(0.075*bass_att,0.0005*time)))));

+per_pixel_8=dx = dx + (0.005*cos(sin(y*time)*1.54*sin(0.79*time*sin(max(0.075*treb_att,0.0005*time)))));

diff --git a/presets/Aderrasi - Antique Abyss.milk b/presets/Aderrasi - Antique Abyss.milk
new file mode 100644
index 0000000..e2b93bf
--- /dev/null
+++ b/presets/Aderrasi - Antique Abyss.milk
@@ -0,0 +1,79 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.700000

+fDecay=0.980000

+fVideoEchoZoom=1.000000

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=3

+nWaveMode=7

+bAdditiveWaves=1

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=2.000454

+fWaveSmoothing=0.540000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000000

+fShader=1.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.700000

+ob_size=0.005000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.300000

+ob_a=0.200000

+ib_size=0.050000

+ib_r=0.000000

+ib_g=0.200000

+ib_b=0.300000

+ib_a=0.100000

+nMotionVectorsX=25.599995

+nMotionVectorsY=33.600002

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=5.000000

+mv_r=0.300000

+mv_g=0.000000

+mv_b=0.000000

+mv_a=0.150000

+per_frame_1=wave_r = wave_r + (0.35*sin(1.4*time*bass) + 0.25*sin(2.5*time))*4*treb*time;

+per_frame_2=wave_g = wave_g + (0.35*sin(1.7*time*mid) - 0.25*sin(1.11*time))*4*bass*time;

+per_frame_3=wave_b = wave_b + (0.35*sin(1.84*time*treb) + 0.25*sin(2.3*time))*4*mid*time;

+per_frame_4=warp = 0;

+per_frame_5=mv_g = 0.3 + 0.25*sin(wave_r);

+per_frame_6=mv_r = 0.3 + 0.25*cos(wave_b);

+per_frame_7=mv_b = 0.3 + 0.15*sin(wave_g);

+per_frame_8=mv_x = mv_x - 3*bass;

+per_frame_9=mv_y = mv_y - 4*treb;

+per_pixel_1=thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_pixel_2=dx_r = equal(thresh,2)*0.015*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_pixel_3=dy_r = equal(thresh,2)*0.015*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_pixel_4=zoom = zoom - 0.26*rad*(0.7+0.1*sin(4*bass*time)-rad);

+per_pixel_5=dy= dy + 1.99*dy_r*(rad*sin(5*treb_att))*(1-rad);

+per_pixel_6=dx = dx + 1.5*dx_r *(rad*cos(5*bass_att))*(0.6*rad-0.7-rad);

+per_pixel_7=rot = rot + abs(0.8*(0.7*sin(bass*treb)*x-0.033*cos(ang))*(1-rad));

diff --git "a/presets/Aderrasi - Arise\041 \050Padded Mix\051.milk" "b/presets/Aderrasi - Arise\041 \050Padded Mix\051.milk"
new file mode 100644
index 0000000..9a98e79
--- /dev/null
+++ "b/presets/Aderrasi - Arise\041 \050Padded Mix\051.milk"
@@ -0,0 +1,80 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.350000

+fDecay=1.000000

+fVideoEchoZoom=1.503739

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=1

+nWaveMode=6

+bAdditiveWaves=1

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=1

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=2.905225

+fWaveSmoothing=0.360000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=0.408391

+fShader=1.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.005000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.000000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.000000

+nMotionVectorsX=0.000000

+nMotionVectorsY=0.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.25*sin(1.4*time) + 0.25*sin(2.25*time);

+per_frame_2=wave_g = wave_g + 0.25*sin(1.7*time) + 0.25*sin(2.11*time);

+per_frame_3=wave_b = wave_b + 0.25*sin(1.84*time) + 0.25*sin(2.3*time);

+per_frame_4=warp = 0;

+per_frame_5=//decay = 0.995 + 0.004*sin(0.5*time);

+per_frame_6=wave_x = 0.01;

+per_pixel_1=thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_pixel_2=dx_r = equal(thresh,2)*0.015*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_pixel_3=dy_r = equal(thresh,2)*0.015*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_pixel_4=

+per_pixel_5=dy = dy - 0.025*(1-y)*above(y,0.95);

+per_pixel_6=dy = dy - 0.025*(y)*below(y,0.94);

+per_pixel_7=

+per_pixel_8=warp = warp + 0.25*(bass-treb)*above(y,0.9);

+per_pixel_9=zoom = zoom - 0.02*(rad)*(above(y,0.9));

+per_pixel_10=sx = sx - above(x, 0.35 + 0.35*sin(time))*below(x,0.65 + 0.35*sin(time))*

+per_pixel_11=above(y,0.8)*0.008*sin(time);

diff --git "a/presets/Aderrasi - Ashes Of Air \050Remix\051.milk" "b/presets/Aderrasi - Ashes Of Air \050Remix\051.milk"
new file mode 100644
index 0000000..ed1777b
--- /dev/null
+++ "b/presets/Aderrasi - Ashes Of Air \050Remix\051.milk"
@@ -0,0 +1,70 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=2.001000

+fDecay=1.000000

+fVideoEchoZoom=1.469141

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=3

+nWaveMode=5

+bAdditiveWaves=0

+bWaveDots=1

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=0

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=1.386134

+fWaveScale=1.568857

+fWaveSmoothing=0.000000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.710000

+fModWaveAlphaEnd=1.300000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.331000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=0.999513

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=0.010100

+sx=1.000000

+sy=1.000000

+wave_r=0.650000

+wave_g=0.650000

+wave_b=0.650000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.005000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=0.800000

+ib_size=0.000000

+ib_r=0.250000

+ib_g=0.250000

+ib_b=0.250000

+ib_a=0.000000

+nMotionVectorsX=12.000000

+nMotionVectorsY=9.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=0.900000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.5*sin(time*1.13);

+per_frame_2=wave_g = wave_g + 0.5*sin(time*1.23);

+per_frame_3=wave_b = wave_b + 0.5*sin(time*1.33);

+per_pixel_1=zoom = zoom + 0.25*(0.05*bass_att + sin(sin(time+rad))*0.3 - cos(rad)*0.1);

+per_pixel_2=rot = 0.06*sin(rad);

+per_pixel_3=dx = dx + 0.008*(0.99*1-rad)*sin(0.733*time);

+per_pixel_4=dy = dy + 0.008*(0.99*1-rad)*cos(0.953*time);

diff --git "a/presets/Aderrasi - Bitterfeld \050Crystal Border Mix\051.milk" "b/presets/Aderrasi - Bitterfeld \050Crystal Border Mix\051.milk"
new file mode 100644
index 0000000..79a2f22
--- /dev/null
+++ "b/presets/Aderrasi - Bitterfeld \050Crystal Border Mix\051.milk"
@@ -0,0 +1,80 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.000000

+fDecay=1.000000

+fVideoEchoZoom=2.448626

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=0

+nWaveMode=7

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=1.310603

+fWaveSmoothing=0.900000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=0.999900

+fShader=0.000000

+zoom=0.999999

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.005000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.050000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.200000

+nMotionVectorsX=64.000000

+nMotionVectorsY=48.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=0.000000

+mv_r=1.000000

+mv_g=0.600000

+mv_b=0.000000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.25*sin(1.4*time) + 0.25*sin(2.25*time);

+per_frame_2=wave_g = wave_g + 0.25*sin(1.7*time) + 0.25*sin(2.11*time);

+per_frame_3=wave_b = wave_b + 0.25*sin(1.84*time) + 0.25*sin(2.3*time);

+per_frame_4=warp = 0;

+per_frame_5=ib_r =wave_r;

+per_frame_6=ib_g = wave_g;

+per_frame_7=ib_b = wave_b;

+per_frame_8=wave_mystery = wave_mystery + 0.3*time;

+per_pixel_1=thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_pixel_2=dx_r = equal(thresh,2)*0.015*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_pixel_3=dy_r = equal(thresh,2)*0.015*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_pixel_4=

+per_pixel_5=zoom = zoom - 0.2*(1.5-rad)*sin(bass/2*treb_att)*(rad*2*(rad*abs(sin(9*ang))));

+per_pixel_6=rot = rot + dy_r*(2-zoom)*0.3*cos(bass)*20;

+per_pixel_7=rot = rot - 0.4*(rad*cos(abs(12*ang)))*below(rad,0.3+ 0.4*sin(bass));

+per_pixel_8=dx = dx + 0.5*abs(rad+x-0.5*(bass/y*0.2))*dx_r;

+per_pixel_9=dy = dy + 0.5*abs(rad+y-0.5*(treb/x*0.2))*dy_r;

diff --git a/presets/Aderrasi - Blender.milk b/presets/Aderrasi - Blender.milk
new file mode 100644
index 0000000..806b4c1
--- /dev/null
+++ b/presets/Aderrasi - Blender.milk
@@ -0,0 +1,73 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.000000

+fDecay=0.980000

+fVideoEchoZoom=0.999997

+fVideoEchoAlpha=0.400000

+nVideoEchoOrientation=0

+nWaveMode=0

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=1

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=3.915820

+fWaveSmoothing=0.500000

+fWaveParam=-0.400000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=1.000000

+wave_g=1.000000

+wave_b=1.000000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.005000

+ob_r=1.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.005000

+ib_r=1.000000

+ib_g=1.000000

+ib_b=1.000000

+ib_a=1.000000

+nMotionVectorsX=0.000000

+nMotionVectorsY=0.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_x = wave_x + 0.15*sin(time);

+per_frame_2=wave_y = wave_y + 0.15*cos(time);

+per_frame_3=wave_r = wave_r + 0.9;

+per_frame_4=wave_g = 0.9 - 0.5*bass;

+per_frame_5=wave_b = 0.9 - 0.5*bass;

+per_pixel_1=rot = rot - 0.1*min((2-rad)*bass_att,(2-rad)*treb_att);

+per_pixel_2=grad = sqrt(x*x + y*y)*2;

+per_pixel_3=dx = dx - 0.02*(1-rad);

+per_pixel_4=dy = dy + 0.02*(1-rad);

+per_pixel_5=zoom = zoom - max(grad*(bass/8 - treb/8), 0);

diff --git a/presets/Aderrasi - Bow To Gravity.milk b/presets/Aderrasi - Bow To Gravity.milk
new file mode 100644
index 0000000..9eb205a
--- /dev/null
+++ b/presets/Aderrasi - Bow To Gravity.milk
@@ -0,0 +1,85 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.000000

+fDecay=0.930000

+fVideoEchoZoom=0.999837

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=1

+nWaveMode=6

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=1

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=0.796896

+fWaveSmoothing=0.000000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=0.999995

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.010000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=0.500000

+ib_size=0.010000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.500000

+nMotionVectorsX=0.000000

+nMotionVectorsY=0.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.900000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.25*sin(1.4*time) + 0.25*sin(2.25*time);

+per_frame_2=wave_g = wave_g + 0.25*sin(1.7*time) + 0.25*sin(2.11*time);

+per_frame_3=wave_b = wave_b + 0.25*sin(1.84*time) + 0.25*sin(2.3*time);

+per_frame_4=warp = 0;

+per_frame_5=ob_r = 0.5*wave_r;

+per_frame_6=ob_b = 0.5*wave_g;

+per_frame_7=ob_g = 0.5*wave_b;

+per_frame_8=ib_r = wave_g;

+per_frame_9=ib_g = wave_b;

+per_frame_10=ib_b = wave_r;

+per_frame_11=wave_mystery = wave_mystery + 25*sin(3-1*(sin(0.001*time)));

+per_pixel_1=thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_pixel_2=dx_r = equal(thresh,2)*0.015*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_pixel_3=dy_r = equal(thresh,2)*0.015*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_pixel_4=dx = dx + above(x,0.5)*x*0.005;

+per_pixel_5=dx = dx - below(x,0.5)*(1-x)*0.005;

+per_pixel_6=dy = dy + above(y,0.5)*y*0.005;

+per_pixel_7=dy = dy + below(y,0.5)*(1-y)*0.005;

+per_pixel_8=zoom = zoom - 100*((1-rad)*((1.5*rad)*0.005 + 0.004*sin(0.5*bass_att)));

+per_pixel_9=

+per_pixel_10=rot = rot + (cos(bass_att*treb_att)/(1-treb)+0.5*time)*0.0005;

+per_pixel_11=zoomexp = 0.8 + 1+sin(treb_att);

diff --git a/presets/Aderrasi - Brakefreak.milk b/presets/Aderrasi - Brakefreak.milk
new file mode 100644
index 0000000..506a3e3
--- /dev/null
+++ b/presets/Aderrasi - Brakefreak.milk
@@ -0,0 +1,81 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.000000

+fDecay=0.980000

+fVideoEchoZoom=1.000000

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=3

+nWaveMode=2

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=1

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=0.880270

+fWaveSmoothing=0.500000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.020000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=1.000000

+ob_a=1.000000

+ib_size=0.020000

+ib_r=1.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=1.000000

+nMotionVectorsX=0.000000

+nMotionVectorsY=0.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.25*sin(1.4*time) + 0.25*sin(2.25*time);

+per_frame_2=wave_g = wave_g + 0.25*sin(1.7*time) + 0.25*sin(2.11*time);

+per_frame_3=wave_b = wave_b + 0.25*sin(1.84*time) + 0.25*sin(2.3*time);

+per_frame_4=ib_r = wave_r*0.5;

+per_frame_5=ib_g = wave_g*0.5;

+per_frame_6=ib_b = wave_b*0.5;

+per_frame_7=ob_r = wave_b;

+per_frame_8=ob_g = wave_r;

+per_frame_9=ob_b = wave_g;

+per_pixel_1=thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_pixel_2=dx_r = equal(thresh,2)*0.015*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_pixel_3=dy_r = equal(thresh,2)*0.015*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_pixel_4=

+per_pixel_5=rot = rot + 0.06*(0.1*(time))+(0.5*(0.5-rad))+rad;

+per_pixel_6=rot = rot - 0.1*sqr(0.5*cos(ang*time)*bass_att);

+per_pixel_7=zoom = zoom - 0.04*(sin(rad));

+per_pixel_8=zoom = zoom - 0.1*above(y,0.5)*sqr(0.5*sin(ang*time)*bass_att);

+per_pixel_9=zoom = zoom - 0.1*below(y,0.5)*sqr(0.5*cos(ang*time)*treb_att);

diff --git a/presets/Aderrasi - Candy Avian.milk b/presets/Aderrasi - Candy Avian.milk
new file mode 100644
index 0000000..88082ba
--- /dev/null
+++ b/presets/Aderrasi - Candy Avian.milk
@@ -0,0 +1,81 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.000000

+fDecay=1.000000

+fVideoEchoZoom=0.923483

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=0

+nWaveMode=5

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=0

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=2.063785

+fWaveScale=0.724297

+fWaveSmoothing=0.500000

+fWaveParam=-0.300000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=2.500333

+fZoomExponent=1.000000

+fShader=0.100000

+zoom=0.990099

+rot=0.000000

+cx=0.500000

+cy=0.410000

+dx=-0.003990

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=1.000000

+wave_g=1.000000

+wave_b=0.000000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.005000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=0.200000

+ib_size=0.050000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.100000

+nMotionVectorsX=55.680000

+nMotionVectorsY=47.999996

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=0.250000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.4*sin(1.5*time) + 0.25*sin(2.14*time);

+per_frame_2=wave_b = wave_b + 0.41*sin(1.2*time) + 0.26*sin(2.11*time);

+per_frame_3=wave_g = wave_g + 0.4*sin(1.34*time) + 0.25*sin(2.34*time);

+per_frame_4=ib_r = 4;

+per_frame_5=ib_g = 0;

+per_frame_6=ib_b = 0;

+per_frame_7=wave_x = wave_x +

+per_frame_8=if(above(wave_y,0.75),0.40*sin(time), 0.15*sin(time));

+per_frame_9=wave_y = wave_y + 0.30*cos(0.9*time);

+per_frame_10=cx = cx +

+per_frame_11=if(above(wave_x,0.5), +0.0*sin(7*treb_att), -0.0*sin(7*mid_att));

+per_frame_12=cy = cy +

+per_frame_13=if(above(wave_x,0.5), +0.0*cos(7*bass_att), -0.0*cos(7*mid_att));

+per_frame_14=ob_r = 0.5*sin(treb)*time;

+per_frame_15=ob_b = 0.5*sin(mid)*0.9*time;

+per_frame_16=ob_g = 0.5*sin(bass)*0.8*time;

+per_frame_17=warp = warp + if (above(bass_att,1.5), 1.5, 0);

+per_frame_18=rot = rot + 0.08*sin(3*time);

diff --git "a/presets/Aderrasi - Causeway Of Dreams \050Nightmare Mix\051.milk" "b/presets/Aderrasi - Causeway Of Dreams \050Nightmare Mix\051.milk"
new file mode 100644
index 0000000..1b9a194
--- /dev/null
+++ "b/presets/Aderrasi - Causeway Of Dreams \050Nightmare Mix\051.milk"
@@ -0,0 +1,88 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.000000

+fDecay=1.000000

+fVideoEchoZoom=2.006758

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=0

+nWaveMode=1

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=1

+bSolarize=0

+bInvert=1

+fWaveAlpha=100.000000

+fWaveScale=0.999835

+fWaveSmoothing=0.500000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.005000

+ob_r=1.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=0.010000

+ib_size=0.005000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=1.000000

+ib_a=0.010000

+nMotionVectorsX=0.000000

+nMotionVectorsY=0.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=basstrip = above(bass_att,basstrip)*2 + (1-above(bass_att,basstrip))*((basstrip-1.3)*0.96+1.3);

+per_frame_2=basswack = equal(basstrip,2)*0.97*sin(time*2) + (1-equal(basstrip,2))*basswack;

+per_frame_3=trebtrip = above(treb_att,trebtrip)*2 + (1-above(treb_att,trebtrip))*((trebtrip-1.3)*0.96+1.3);

+per_frame_4=trebwack = equal(trebtrip,2)*0.97*sin(time*2.5) + (1-equal(trebtrip,2))*trebwack;

+per_frame_5=midtrip = above(mid_att,midtrip)*2 + (1-above(mid_att,midtrip))*((midtrip-1.3)*0.96+1.3);

+per_frame_6=midwack = equal(midtrip,2)*0.97*sin(time*2.75) + (1-equal(midtrip,2))*midwack;

+per_frame_7=wave_r = wave_r + 0.75*basswack;

+per_frame_8=wave_g = wave_g + 0.75*trebwack;

+per_frame_9=wave_b = wave_b + 0.75*midwack;

+per_frame_10=ob_r = 1- wave_r;

+per_frame_11=ob_g = 1 - wave_g;

+per_frame_12=ob_b = 1-wave_b;

+per_frame_13=ib_r = 0.9*ob_r;

+per_frame_14=ib_g = 0.9*ob_g;

+per_frame_15=ib_b = 0.9*ob_b;

+per_frame_16=volt = (bass_att+treb_att+mid_att)/3;

+per_frame_17=zoom = zoom - 0.005;

+per_frame_18=zoom = zoom + if (above(volt,0.75),- 0.005*(1-rad), 0);

+per_frame_19=sy = sy + if (below(volt,0.83), - 0.01*(0.5-rad), 0);

+per_pixel_1=//thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_pixel_2=//dx_r = equal(thresh,2)*0.015*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_pixel_3=//dy_r = equal(thresh,2)*0.015*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_pixel_4=rot = rot + 0.05*sin(time*(rad*cos(time*12*ang)));

+per_pixel_5=zoom = zoom + 0.025*cos(time*(0.5-rad));

+per_pixel_6=rot = rot - 0.05*((sin(time)-rad)*(0.9+abs(sin(rad*12))));

diff --git "a/presets/Aderrasi - Causeway Of Dreams \050REMix\051.milk" "b/presets/Aderrasi - Causeway Of Dreams \050REMix\051.milk"
new file mode 100644
index 0000000..dbfe5ef
--- /dev/null
+++ "b/presets/Aderrasi - Causeway Of Dreams \050REMix\051.milk"
@@ -0,0 +1,81 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.000000

+fDecay=1.000000

+fVideoEchoZoom=1.000000

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=1

+nWaveMode=1

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=0.400279

+fWaveSmoothing=0.500000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.200000

+wave_g=0.200000

+wave_b=0.200000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.030000

+ob_r=1.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=0.100000

+ib_size=0.030000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=1.000000

+ib_a=0.100000

+nMotionVectorsX=0.000000

+nMotionVectorsY=0.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.4*sin(0.622*time) + 0.3*sin(0.155*time);

+per_frame_2=wave_g = wave_g + 0.4*sin(0.45*time) + 0.3*sin(0.674*time);

+per_frame_3=wave_b = wave_b + 0.4*sin(0.256*time) + 0.3*sin(0.35*time);

+per_frame_4=ob_r = 1- wave_r;

+per_frame_5=ob_g = 1 - wave_g;

+per_frame_6=ob_b = 1-wave_b;

+per_frame_7=ib_r = 0.9*ob_r;

+per_frame_8=ib_g = 0.9*ob_g;

+per_frame_9=ib_b = 0.9*ob_b;

+per_frame_10=thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_frame_11=dx_r = equal(thresh,2)*0.015*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_frame_12=dy_r = equal(thresh,2)*0.015*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_frame_13=dx = dx + 0.0*dx_r + if(above(gup,0), + 0.8*gup*dx_r, 0) + if(above(gslup,0), + 0.535*gslup*dx_r, 0);

+per_frame_14=dy = dy + 0.0*dy_r + if(above(gup,0), + 0.8*gup*dy_r, 0) + if(above(glsup,0), + 0.535*gslup*dy_r, 0);

+per_frame_15=gup = +2*sin(time) + sin(0.75*time);

+per_frame_16=gslup = sin(0.655*time) - sin(0.176*time);

+per_pixel_1=rot = rot + 0.04*sin(time*(rad));

+per_pixel_2=zoom = zoom + 0.025*cos(time*(rad));

diff --git a/presets/Aderrasi - Causeway Of Dreams.milk b/presets/Aderrasi - Causeway Of Dreams.milk
new file mode 100644
index 0000000..9d834ee
--- /dev/null
+++ b/presets/Aderrasi - Causeway Of Dreams.milk
@@ -0,0 +1,79 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.000000

+fDecay=1.000000

+fVideoEchoZoom=1.000000

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=1

+nWaveMode=1

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=0.325446

+fWaveSmoothing=0.500000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.200000

+wave_g=0.200000

+wave_b=0.200000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.030000

+ob_r=1.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=0.100000

+ib_size=0.030000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=1.000000

+ib_a=0.100000

+nMotionVectorsX=0.000000

+nMotionVectorsY=0.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.4*sin(0.622*time) + 0.3*sin(0.155*time);

+per_frame_2=wave_g = wave_g + 0.4*sin(0.45*time) + 0.3*sin(0.674*time);

+per_frame_3=wave_b = wave_b + 0.4*sin(0.256*time) + 0.3*sin(0.35*time);

+per_frame_4=ob_r = 1- wave_r;

+per_frame_5=ob_g = 1 - wave_g;

+per_frame_6=ob_b = 1-wave_b;

+per_frame_7=ib_r = 0.9*ob_r;

+per_frame_8=ib_g = 0.9*ob_g;

+per_frame_9=ib_b = 0.9*ob_b;

+per_frame_10=thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_frame_11=dx_r = equal(thresh,2)*0.015*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_frame_12=dy_r = equal(thresh,2)*0.015*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_frame_13=dx = dx + dx_r;

+per_frame_14=dy = dy + dy_r;

+per_pixel_1=rot = rot + 0.04*sin(time*(rad));

+per_pixel_2=zoom = zoom + 0.025*cos(time*(rad));

diff --git "a/presets/Aderrasi - Chromatic Abyss \050The Other Side\051.milk" "b/presets/Aderrasi - Chromatic Abyss \050The Other Side\051.milk"
new file mode 100644
index 0000000..4101386
--- /dev/null
+++ "b/presets/Aderrasi - Chromatic Abyss \050The Other Side\051.milk"
@@ -0,0 +1,70 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.000000

+fDecay=1.000000

+fVideoEchoZoom=1.000000

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=3

+nWaveMode=0

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=1

+bMaximizeWaveColor=0

+bTexWrap=0

+bDarkenCenter=1

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=1.868317

+fWaveScale=0.484545

+fWaveSmoothing=0.000000

+fWaveParam=-0.500000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=0.010000

+fShader=1.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.005000

+ob_r=0.010000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.250000

+ib_r=0.250000

+ib_g=0.250000

+ib_b=0.250000

+ib_a=0.000000

+nMotionVectorsX=64.000000

+nMotionVectorsY=48.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=0.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + (0.5*sin(12*treb)*3.12*time)/5;

+per_frame_2=wave_b = wave_b + (0.5*sin(12*bass)*3.17*time)/5;

+per_frame_3=wave_g =wave_g + (0.5*sin(12*mid)*3.22*time)/5;

+per_frame_4=zoom = zoom + 0.01;

+per_pixel_1=sx = sx + if (above(rad, 0.38), +0.01, 0);

+per_pixel_2=sy = sy + if (above(rad, 0.38), +0.01, 0);

+per_pixel_3=warp = warp + if (above(rad,0.56 + 0.05*sin(time)), +0.5*(sin(rad)), 0);

diff --git a/presets/Aderrasi - Circlefacade.milk b/presets/Aderrasi - Circlefacade.milk
new file mode 100644
index 0000000..2a84c3d
--- /dev/null
+++ b/presets/Aderrasi - Circlefacade.milk
@@ -0,0 +1,73 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.000000

+fDecay=1.000000

+fVideoEchoZoom=1.220186

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=0

+nWaveMode=0

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=0.459160

+fWaveScale=0.010000

+fWaveSmoothing=0.900000

+fWaveParam=-0.340000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=1.000000

+wave_g=1.000000

+wave_b=1.000000

+wave_x=0.100000

+wave_y=0.900000

+ob_size=0.070000

+ob_r=1.000000

+ob_g=1.000000

+ob_b=1.000000

+ob_a=0.100000

+ib_size=0.010000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.000000

+nMotionVectorsX=0.000000

+nMotionVectorsY=0.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_x = 0.5 + 0.3*sin(0.75*time);

+per_frame_2=wave_y = 0.5 + 0.3*cos(0.75*time);

+per_frame_3=ob_r = ob_r + 0.445*sin(1.52*time);

+per_frame_4=ob_g = ob_g + 0.436*sin(1.062*time);

+per_frame_5=ob_b = ob_b + 0.325*sin(1.22*time);

+per_frame_6=ib_a = ib_a + 5*tan(0.5*time);

+per_frame_7=zoom = zoom - 0.1*zoom;

+per_pixel_1=dx = dx + (sin(rad)*0.05)*0.76*sin(1.2255*time);

+per_pixel_2=dy = dy + (sin(rad)*0.05)*0.76*cos(1.435*time);

+per_pixel_3=rot = rot + (0.1*max(above(dx,dy),above(dy,dx))*bass_att)*(0.75-rad);

diff --git "a/presets/Aderrasi - Contortion \050Xenomorph Mix\051.milk" "b/presets/Aderrasi - Contortion \050Xenomorph Mix\051.milk"
new file mode 100644
index 0000000..6c1f321
--- /dev/null
+++ "b/presets/Aderrasi - Contortion \050Xenomorph Mix\051.milk"
@@ -0,0 +1,84 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.301000

+fDecay=1.000000

+fVideoEchoZoom=0.999996

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=1

+nWaveMode=5

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=0

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=5.003415

+fWaveScale=2.630066

+fWaveSmoothing=0.900000

+fWaveParam=-0.400000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=100.000000

+fWarpScale=0.010000

+fZoomExponent=11.202057

+fShader=1.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.010000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.010000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=1.000000

+nMotionVectorsX=63.936001

+nMotionVectorsY=47.952000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.050000

+mv_r=0.000000

+mv_g=0.000000

+mv_b=0.800000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.25*sin(1.4*time) + 0.25*sin(2.25*time);

+per_frame_2=wave_g = wave_g + 0.25*sin(1.7*time) + 0.25*sin(2.11*time);

+per_frame_3=wave_b = wave_b + 0.25*sin(1.84*time) + 0.25*sin(2.3*time);

+per_frame_4=warp = 0;

+per_frame_5=ob_r = 0.3 + 0.3*sin(1.56*time);

+per_frame_6=ob_g = 0.3 + 0.3*sin(2.15*time);

+per_frame_7=ob_b = 0.3 + 0.3*cos(1.4*time);

+per_frame_8=ib_r = 0.3 + 0.3*cos(1.83*time);

+per_frame_9=ib_g = 0.3 + 0.3*cos(1.02*time);

+per_frame_10=ib_b = 0.3 + 0.3*sin(2*time);

+per_frame_11=ing = 2*sin(0.25*time);

+per_frame_12=wave_x = wave_x + 0.2*sin(time);

+per_frame_13=wave_y = wave_y + 0.2*cos(time);

+per_pixel_1=thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_pixel_2=dx_r = equal(thresh,2)*0.015*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_pixel_3=dy_r = equal(thresh,2)*0.015*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_pixel_4=

+per_pixel_5=rot = rot + 0.5*(0.5-rad)*(5*sin(0.48*time*dy_r)*sin(time));

+per_pixel_6=zoom = zoom - 0.015*(0.65 - 0.25*sin((dx_r+dy_r)*20*bass)+rad);

+per_pixel_7=cx = cx + .45*sin(time)*(0.75*sin(1.25*time*dy_r)*cos(0.74*sin(dx_r*2*time)));

+per_pixel_8=cy = cy + .45*cos(time)*(0.75*cos(1.6*time*dx_r)*sin(0.74*cos(dy_r*2*time)));

diff --git a/presets/Aderrasi - Contortion.milk b/presets/Aderrasi - Contortion.milk
new file mode 100644
index 0000000..9dc6125
--- /dev/null
+++ b/presets/Aderrasi - Contortion.milk
@@ -0,0 +1,84 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.000000

+fDecay=1.000000

+fVideoEchoZoom=0.999996

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=2

+nWaveMode=0

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=1

+bTexWrap=0

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=1.691364

+fWaveSmoothing=0.000000

+fWaveParam=-0.400000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000000

+fShader=1.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.010000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=0.100000

+ib_size=0.000000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.200000

+nMotionVectorsX=0.000000

+nMotionVectorsY=0.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.25*sin(1.4*time) + 0.25*sin(2.25*time);

+per_frame_2=wave_g = wave_g + 0.25*sin(1.7*time) + 0.25*sin(2.11*time);

+per_frame_3=wave_b = wave_b + 0.25*sin(1.84*time) + 0.25*sin(2.3*time);

+per_frame_4=warp = 0;

+per_frame_5=ob_r = 0.3 + 0.3*sin(1.56*time);

+per_frame_6=ob_g = 0.3 + 0.3*sin(2.15*time);

+per_frame_7=ob_b = 0.3 + 0.3*cos(1.4*time);

+per_frame_8=ib_r = 0.3 + 0.3*cos(1.83*time);

+per_frame_9=ib_g = 0.3 + 0.3*cos(1.02*time);

+per_frame_10=ib_b = 0.3 + 0.3*sin(2*time);

+per_frame_11=ing = 2*sin(0.25*time);

+per_frame_12=wave_x = wave_x + 0.57*sin(time);

+per_frame_13=wave_y = wave_y + 0.57*cos(time);

+per_pixel_1=thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_pixel_2=dx_r = equal(thresh,2)*0.015*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_pixel_3=dy_r = equal(thresh,2)*0.015*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_pixel_4=

+per_pixel_5=rot = rot + above(bass,1)*0.25*(1-rad)*(100*dx_r);

+per_pixel_6=zoom = zoom - 0.2*(1-rad);

+per_pixel_7=cx = cx + above(bass,1)*0.25*sin(time)*(100*dy_r);

+per_pixel_8=cy = cy + above(bass,1)*0.25*cos(time)*(100*dy_r);

diff --git a/presets/Aderrasi - Crystal Storm.milk b/presets/Aderrasi - Crystal Storm.milk
new file mode 100644
index 0000000..19f17b3
--- /dev/null
+++ b/presets/Aderrasi - Crystal Storm.milk
@@ -0,0 +1,72 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.000000

+fDecay=0.990000

+fVideoEchoZoom=0.649956

+fVideoEchoAlpha=0.300000

+nVideoEchoOrientation=0

+nWaveMode=0

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=1.691363

+fWaveSmoothing=0.000000

+fWaveParam=-0.500000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=0.931011

+fShader=1.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=1.000000

+wave_g=1.000000

+wave_b=1.000000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.001000

+ob_r=1.000000

+ob_g=1.000000

+ob_b=1.000000

+ob_a=0.500000

+ib_size=0.001000

+ib_r=0.500000

+ib_g=1.000000

+ib_b=1.000000

+ib_a=0.500000

+nMotionVectorsX=64.000000

+nMotionVectorsY=48.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.050000

+per_frame_1=rot = rot + 0.1*(0.4*sin(bass) - 0.4*sin(treb) / 0.4*sin(mid))*sin(5*time);

+per_frame_2=wave_x = wave_x + 0.1*sin(time) - 0.157*sin(1.73*time);

+per_frame_3=wave_y = wave_y - 0.126*sin(time) + 0.15*cos(1.1*time);

+per_frame_5=zoom = zoom + 0.01*bass*0.005*sqrt(treb/bass);

+per_pixel_1=rot = rot + 0.05*min(abs(1-rad*cos(bass))*tan(bass),-(abs(1-rad*sin(treb))*sin(time)));

+per_pixel_2=dx = dx + (0.025*sin(bass))*0.8*abs(5*bass-5*treb);

+per_pixel_3=dy = dy + (0.015*cos(treb))*0.8*abs(5*treb - 5*bass);

+per_pixel_4=cy = cy + (0.8*rad/time)*bass;

+per_pixel_5=zoom = zoom - 0.05*log(1.5-rad);
\ No newline at end of file
diff --git "a/presets/Aderrasi - Dark Matter \050Converse Mix\051.milk" "b/presets/Aderrasi - Dark Matter \050Converse Mix\051.milk"
new file mode 100644
index 0000000..d2ed71b
--- /dev/null
+++ "b/presets/Aderrasi - Dark Matter \050Converse Mix\051.milk"
@@ -0,0 +1,80 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.000000

+fDecay=0.990000

+fVideoEchoZoom=1.000000

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=1

+nWaveMode=5

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=1

+bTexWrap=0

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=1.074098

+fWaveSmoothing=0.500000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=0.451117

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.005000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.000000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.500000

+nMotionVectorsX=0.000000

+nMotionVectorsY=0.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.25*sin(1.4*time) + 0.25*sin(2.25*time);

+per_frame_2=wave_g = wave_g + 0.25*sin(1.7*time) + 0.25*sin(2.11*time);

+per_frame_3=wave_b = wave_b + 0.25*sin(1.84*time) + 0.25*sin(2.3*time);

+per_frame_4=warp = 0;

+per_frame_5=wave_x = wave_x + 0.12*sin(time);

+per_frame_6=wave_y = wave_y + 0.12*sin(1.24*time);

+per_pixel_1=thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_pixel_2=dx_r = equal(thresh,2)*0.015*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_pixel_3=dy_r = equal(thresh,2)*0.015*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_pixel_4=

+per_pixel_5=zoom = zoom - abs(0.6*sin(((sin(cos(time)+0.5*sin(1.6*bass)-0.44*cos(1.1*mid))+sin(-rad)))*

+per_pixel_6=(sin(bass)*(0.5-rad))));

+per_pixel_7=zoom = zoom + 0.02*(2-rad);

+per_pixel_8=dx = dx + dx_r;

+per_pixel_9=dy = dy + dy_r;

+per_pixel_10=dx = dx + abs(0.005*(1.2*cos(bass*0.73*time) + 1.2*sin((0.5-rad)*2.1*time)));

+per_pixel_11=dy = dy + abs(0.005*(1.2*sin(bass*0.73*time) + 1.2*cos((0.5-rad)*1.3*time)));

diff --git a/presets/Aderrasi - Elastoid.milk b/presets/Aderrasi - Elastoid.milk
new file mode 100644
index 0000000..9eaec2b
--- /dev/null
+++ b/presets/Aderrasi - Elastoid.milk
@@ -0,0 +1,81 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.000000

+fDecay=0.970000

+fVideoEchoZoom=1.000000

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=1

+nWaveMode=0

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=0

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=0.655694

+fWaveSmoothing=0.000000

+fWaveParam=-0.500000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=1.000000

+wave_g=1.000000

+wave_b=1.000000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.015000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.005000

+ib_r=1.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.000000

+nMotionVectorsX=64.000000

+nMotionVectorsY=48.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=0.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.35*sin(4*time) + 0.15*sin(2.5*time);

+per_frame_2=wave_g = wave_g + 0.35*sin(3.7*time) + 0.15*sin(2.11*time);

+per_frame_3=wave_b = wave_b + 0.35*sin(3.84*time) + 0.15*sin(2.3*time);

+per_frame_4=ob_r = wave_r;

+per_frame_5=ob_g = wave_g;

+per_frame_6=ob_b=wave_b;

+per_frame_7=zoom = zoom - 0.02;

+per_pixel_1=thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_pixel_2=dx_r = equal(thresh,2)*0.015*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_pixel_3=dy_r = equal(thresh,2)*0.015*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_pixel_4=

+per_pixel_5=m1 = 2*sin(1.25*time);

+per_pixel_6=m2 = 1.25*sin(4*time);

+per_pixel_7=m3 = 5*sin(0.33*time);

+per_pixel_8=sx = sx  + if (above(m1,m2), if (above(m1,m3), dx_r, -dx_r), dx_r*1.75)*(.75-rad);

+per_pixel_9=sy = sy + if (above(m2,m3), if (above(m3,m1), dy_r, dy_r*1.5), dy_r*0.75)*(.75-rad);

+per_pixel_10=dx = dx + if (above(m2,m1), if (below(m1,m3), dx_r, dx_r*0.66), dx_r*1.8)*(.75-rad);

+per_pixel_11=dy = dy + if (above(m3,m1), if(below(m2,m3), -dy_r, dy_r*1.25), dy_r*0.8)*(0.75-rad);

diff --git a/presets/Aderrasi - Floater Society.milk b/presets/Aderrasi - Floater Society.milk
new file mode 100644
index 0000000..218f6cf
--- /dev/null
+++ b/presets/Aderrasi - Floater Society.milk
@@ -0,0 +1,82 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.350000

+fDecay=0.950000

+fVideoEchoZoom=1.000000

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=1

+nWaveMode=3

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=1

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=0.294621

+fWaveSmoothing=0.500000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.050000

+ob_r=0.200000

+ob_g=0.300000

+ob_b=0.000000

+ob_a=0.100000

+ib_size=0.005000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.000000

+nMotionVectorsX=1.920000

+nMotionVectorsY=23.999998

+mv_dx=-0.060000

+mv_dy=0.000000

+mv_l=5.000000

+mv_r=1.000000

+mv_g=0.000000

+mv_b=0.000000

+mv_a=1.000000

+per_frame_1=wave_r = wave_r + 0.35*sin(4*time) + 0.25*sin(2.5*time);

+per_frame_2=wave_g = wave_g + 0.35*sin(3.7*time) + 0.25*sin(2.11*time);

+per_frame_3=wave_b = wave_b + 0.35*sin(3.84*time) + 0.25*sin(2.3*time);

+per_frame_4=wave_mystery = sin(time);

+per_frame_5=mv_l = mv_l + 2*sin(time);

+per_frame_6=mv_r = wave_r;

+per_frame_7=mv_g = wave_g;

+per_frame_8=mv_b = wave_b;

+per_frame_9=warp = 0;

+per_frame_10=thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_frame_11=dx_r = equal(thresh,2)*0.015*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_frame_12=dy_r = equal(thresh,2)*0.015*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_frame_13=bass_seek = below(bass_seek,bass) + bass_att - (above(bass_att,bass_seek) -bass);

+per_frame_14=trip = 0.4*bass_seek;

+per_frame_15=dy = dy + dy_r*trip*cos(time);

+per_frame_16=dx = dx + dx_r*trip*sin(time);

+per_frame_17=zoom = zoom - 0.025*trip*thresh;

+per_frame_18=rot = rot + 0.015*trip*thresh;

+per_pixel_1=dy = dy - 0.95-rad*dx;

diff --git a/presets/Aderrasi - Flowing Form.milk b/presets/Aderrasi - Flowing Form.milk
new file mode 100644
index 0000000..8d1a11f
--- /dev/null
+++ b/presets/Aderrasi - Flowing Form.milk
@@ -0,0 +1,75 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.000000

+fDecay=0.920000

+fVideoEchoZoom=1.343302

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=0

+nWaveMode=3

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=1

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=1.611957

+fWaveSmoothing=0.000000

+fWaveParam=0.080000

+fModWaveAlphaStart=0.750000

+fModWaveAlphaEnd=0.950000

+fWarpAnimSpeed=0.999834

+fWarpScale=100.000000

+fZoomExponent=1.200114

+fShader=1.000000

+zoom=1.010011

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.020000

+dy=0.020000

+warp=0.059958

+sx=0.999998

+sy=1.000000

+wave_r=0.600000

+wave_g=0.600000

+wave_b=0.300000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.100000

+ob_r=0.500000

+ob_g=0.500000

+ob_b=0.100000

+ob_a=0.500000

+ib_size=0.000000

+ib_r=0.550000

+ib_g=0.250000

+ib_b=0.050000

+ib_a=0.700000

+nMotionVectorsX=12.000000

+nMotionVectorsY=9.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=0.900000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.400*( 0.60*sin(0.933*time) + 0.40*sin(1.045*time) );

+per_frame_2=wave_g = wave_g + 0.400*( 0.60*sin(0.900*time) + 0.40*sin(0.956*time) );

+per_frame_3=wave_b = wave_b + 0.400*( 0.60*sin(0.910*time) + 0.40*sin(0.920*time) );

+per_frame_4=zoom = zoom + 0.023*( 0.60*sin(0.339*time) + 0.40*sin(0.276*time) );

+per_frame_5=rot = rot + 0.030*( 0.60*sin(0.381*time) + 0.40*sin(0.579*time) );

+per_frame_6=decay = decay - 0.01*equal(frame%200,0);

+per_frame_7=ob_r = wave_g;

+per_frame_8=ob_g = wave_b;

+per_frame_9=ob_b = wave_r;

+per_pixel_1=sx=sx+0.5*cos((y*2-1)*6+time*1.53+(x*2-1)*3.2);

+per_pixel_2=sy=sy+0.5*cos((x*2-1)*8+time*1.71+(y*2-1)*4.3);

+per_pixel_3=zoom = zoom - 0.01*ang;

diff --git "a/presets/Aderrasi - Making Time \050Swamp Mix\051.milk" "b/presets/Aderrasi - Making Time \050Swamp Mix\051.milk"
new file mode 100644
index 0000000..25e03b4
--- /dev/null
+++ "b/presets/Aderrasi - Making Time \050Swamp Mix\051.milk"
@@ -0,0 +1,85 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.000000

+fDecay=1.000000

+fVideoEchoZoom=1.000000

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=1

+nWaveMode=5

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=1

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=1.599181

+fWaveSmoothing=0.900000

+fWaveParam=-0.200000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.000000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.005000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.000000

+nMotionVectorsX=0.000000

+nMotionVectorsY=0.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=bass_tick = above(bass_att,bass_tick)*2 + (1-above(bass_att,bass_tick))*

+per_frame_2=((bass_tick-1.3)*0.96+1.3);

+per_frame_3=treb_tick = above(treb_att,treb_tick)*2 + (1-above(treb_att,treb_tick))*

+per_frame_4=((treb_tick-1.3)*0.96+1.3);

+per_frame_5=mid_tick = above(mid_att,mid_tick)*2 + (1-above(mid_att,mid_tick))*

+per_frame_6=((mid_tick-1.3)*0.96+1.3);

+per_frame_7=bass_shift = equal(bass_tick,2)*0.95*sin(time*5) + (1-equal(bass_tick,2))*bass_shift;

+per_frame_8=treb_shift = equal(treb_tick,2)*0.95*sin(time*5) + (1-equal(treb_tick,2))*treb_shift;

+per_frame_9=mid_shift = equal(mid_tick,2)*0.95*sin(time*5) + (1-equal(mid_tick,2))*mid_shift;

+per_frame_10=wave_mystery = wave_mystery + 0.15*sin(time) + 0.2*sin(0.2*time);

+per_frame_11=wave_r = wave_r +bass_shift+0.3;

+per_frame_12=wave_g = wave_g+treb_shift;

+per_frame_13=wave_b = wave_b +mid_shift;

+per_pixel_1=thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_pixel_2=dx_r = equal(thresh,2)*0.015*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_pixel_3=dy_r = equal(thresh,2)*0.015*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_pixel_4=rot = rot + 2*abs((0.9*dy_r)*bass)*sin(0.7*time);

+per_pixel_5=zoom = zoom + 10*(0.2*rad*(3-bass/cos(rad/12)*2*tan(12)))*(0.002*sin(ang*(12*sin(8*bass))));

+per_pixel_6=cx = cx + 0.3*sin(3*dy_r);

+per_pixel_7=cy = cy + 0.3*cos(3*dx_r);

+per_pixel_8=dy = dy + 1.7*dy_r;

+per_pixel_9=dx = dx + 1.7*dx_r;

diff --git a/presets/Aderrasi - Potion of Spirits.milk b/presets/Aderrasi - Potion of Spirits.milk
new file mode 100644
index 0000000..d0ee419
--- /dev/null
+++ b/presets/Aderrasi - Potion of Spirits.milk
@@ -0,0 +1,234 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.420000

+fDecay=1.000000

+fVideoEchoZoom=0.999823

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=1

+nWaveMode=5

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=0

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=1

+bSolarize=0

+bInvert=0

+fWaveAlpha=0.001185

+fWaveScale=0.325446

+fWaveSmoothing=0.900000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=2.630064

+fWarpScale=3.209168

+fZoomExponent=1.000158

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.005000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=0.500000

+ib_size=0.000000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.100000

+nMotionVectorsX=6.400000

+nMotionVectorsY=4.800000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=5.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+wavecode_0_enabled=0

+wavecode_0_samples=512

+wavecode_0_sep=0

+wavecode_0_bSpectrum=0

+wavecode_0_bUseDots=0

+wavecode_0_bDrawThick=0

+wavecode_0_bAdditive=0

+wavecode_0_scaling=1.000000

+wavecode_0_smoothing=0.500000

+wavecode_0_r=1.000000

+wavecode_0_g=1.000000

+wavecode_0_b=1.000000

+wavecode_0_a=1.000000

+wavecode_1_enabled=0

+wavecode_1_samples=512

+wavecode_1_sep=0

+wavecode_1_bSpectrum=0

+wavecode_1_bUseDots=0

+wavecode_1_bDrawThick=0

+wavecode_1_bAdditive=0

+wavecode_1_scaling=1.000000

+wavecode_1_smoothing=0.500000

+wavecode_1_r=1.000000

+wavecode_1_g=1.000000

+wavecode_1_b=1.000000

+wavecode_1_a=1.000000

+wavecode_2_enabled=0

+wavecode_2_samples=512

+wavecode_2_sep=0

+wavecode_2_bSpectrum=0

+wavecode_2_bUseDots=0

+wavecode_2_bDrawThick=0

+wavecode_2_bAdditive=0

+wavecode_2_scaling=1.000000

+wavecode_2_smoothing=0.500000

+wavecode_2_r=1.000000

+wavecode_2_g=1.000000

+wavecode_2_b=1.000000

+wavecode_2_a=1.000000

+wavecode_3_enabled=0

+wavecode_3_samples=512

+wavecode_3_sep=0

+wavecode_3_bSpectrum=0

+wavecode_3_bUseDots=0

+wavecode_3_bDrawThick=0

+wavecode_3_bAdditive=0

+wavecode_3_scaling=1.000000

+wavecode_3_smoothing=0.500000

+wavecode_3_r=1.000000

+wavecode_3_g=1.000000

+wavecode_3_b=1.000000

+wavecode_3_a=1.000000

+shapecode_0_enabled=0

+shapecode_0_sides=4

+shapecode_0_additive=0

+shapecode_0_thickOutline=0

+shapecode_0_textured=0

+shapecode_0_x=0.500000

+shapecode_0_y=0.500000

+shapecode_0_rad=0.100000

+shapecode_0_ang=0.000000

+shapecode_0_tex_ang=0.000000

+shapecode_0_tex_zoom=1.000000

+shapecode_0_r=1.000000

+shapecode_0_g=0.000000

+shapecode_0_b=0.000000

+shapecode_0_a=1.000000

+shapecode_0_r2=0.000000

+shapecode_0_g2=1.000000

+shapecode_0_b2=0.000000

+shapecode_0_a2=0.000000

+shapecode_0_border_r=1.000000

+shapecode_0_border_g=1.000000

+shapecode_0_border_b=1.000000

+shapecode_0_border_a=0.100000

+shapecode_1_enabled=0

+shapecode_1_sides=4

+shapecode_1_additive=0

+shapecode_1_thickOutline=0

+shapecode_1_textured=0

+shapecode_1_x=0.500000

+shapecode_1_y=0.500000

+shapecode_1_rad=0.100000

+shapecode_1_ang=0.000000

+shapecode_1_tex_ang=0.000000

+shapecode_1_tex_zoom=1.000000

+shapecode_1_r=1.000000

+shapecode_1_g=0.000000

+shapecode_1_b=0.000000

+shapecode_1_a=1.000000

+shapecode_1_r2=0.000000

+shapecode_1_g2=1.000000

+shapecode_1_b2=0.000000

+shapecode_1_a2=0.000000

+shapecode_1_border_r=1.000000

+shapecode_1_border_g=1.000000

+shapecode_1_border_b=1.000000

+shapecode_1_border_a=0.100000

+shapecode_2_enabled=0

+shapecode_2_sides=4

+shapecode_2_additive=0

+shapecode_2_thickOutline=0

+shapecode_2_textured=0

+shapecode_2_x=0.500000

+shapecode_2_y=0.500000

+shapecode_2_rad=0.100000

+shapecode_2_ang=0.000000

+shapecode_2_tex_ang=0.000000

+shapecode_2_tex_zoom=1.000000

+shapecode_2_r=1.000000

+shapecode_2_g=0.000000

+shapecode_2_b=0.000000

+shapecode_2_a=1.000000

+shapecode_2_r2=0.000000

+shapecode_2_g2=1.000000

+shapecode_2_b2=0.000000

+shapecode_2_a2=0.000000

+shapecode_2_border_r=1.000000

+shapecode_2_border_g=1.000000

+shapecode_2_border_b=1.000000

+shapecode_2_border_a=0.100000

+shapecode_3_enabled=0

+shapecode_3_sides=4

+shapecode_3_additive=0

+shapecode_3_thickOutline=0

+shapecode_3_textured=0

+shapecode_3_x=0.500000

+shapecode_3_y=0.500000

+shapecode_3_rad=0.100000

+shapecode_3_ang=0.000000

+shapecode_3_tex_ang=0.000000

+shapecode_3_tex_zoom=1.000000

+shapecode_3_r=1.000000

+shapecode_3_g=0.000000

+shapecode_3_b=0.000000

+shapecode_3_a=1.000000

+shapecode_3_r2=0.000000

+shapecode_3_g2=1.000000

+shapecode_3_b2=0.000000

+shapecode_3_a2=0.000000

+shapecode_3_border_r=1.000000

+shapecode_3_border_g=1.000000

+shapecode_3_border_b=1.000000

+shapecode_3_border_a=0.100000

+per_frame_1=wave_r = 0.5 + 0.5*sin(1.6*time);

+per_frame_2=wave_g = 0.5 + 0.5*sin(4.1*time);

+per_frame_3=wave_b = -1 + (1-wave_r + 1-wave_g);

+per_frame_4=warp = 2;

+per_frame_5=

+per_frame_6=ob_r = ob_r+wave_b*above(sin(0.1*time),0);

+per_frame_7=ob_b = ob_b+wave_g*above(sin(0.1*time),0);

+per_frame_8=ob_g = ob_g+wave_r*above(sin(0.1*time),0);

+per_frame_9=ob_r = ob_r+wave_g*below(sin(0.1*time),0);

+per_frame_10=ob_b = ob_b+wave_r*below(sin(0.1*time),0);

+per_frame_11=ob_g = ob_g+wave_b*below(sin(0.1*time),0);

+per_pixel_1=thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_pixel_2=dx_r = equal(thresh,2)*0.05*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_pixel_3=dy_r = equal(thresh,2)*0.056*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_pixel_4=tg1 = abs(sin(time));

+per_pixel_5=tg2 = 22*above(tg1,0.75) + 12*below(tg1,0.25) + 18*above(tg1,0.25)*below(tg1,0.5)+

+per_pixel_6=12*above(tg1,0.5)*below(tg1,0.75);

+per_pixel_7=tg3 = if(equal(thresh,2),tg2,tg3);

+per_pixel_8=

+per_pixel_9=six = sin(x);

+per_pixel_10=

+per_pixel_11=dx = dx + dx_r*sin(abs(tg3*y))*sin(time);

+per_pixel_12=dy = dy + dy_r*sin(abs(tg3*x))*cos(time);

+per_pixel_13=dx = dx + dx_r*pow(rad,y*2)*sin(time);

+per_pixel_14=dy = dy + dy_r*pow(rad,x*2)*sin(time);

+per_pixel_15=zoom = zoom - 0.0825*pow(rad,x*6)*cos(ang*6);

+per_pixel_16=rot = rot - 0.0525*(0.75*sin(1.25*time)*pow(rad,x)*sin(1.45*time))*sin(time);

diff --git "a/presets/Aderrasi - Songflower \050Moss Posy\051.milk" "b/presets/Aderrasi - Songflower \050Moss Posy\051.milk"
new file mode 100644
index 0000000..2d04026
--- /dev/null
+++ "b/presets/Aderrasi - Songflower \050Moss Posy\051.milk"
@@ -0,0 +1,242 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.000000

+fDecay=1.000000

+fVideoEchoZoom=1.000000

+fVideoEchoAlpha=1.000000

+nVideoEchoOrientation=1

+nWaveMode=5

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=0.001000

+fWaveScale=1.447722

+fWaveSmoothing=0.500000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000000

+fShader=1.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.015000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.010000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=1.000000

+nMotionVectorsX=0.000000

+nMotionVectorsY=0.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+wavecode_0_enabled=0

+wavecode_0_samples=512

+wavecode_0_sep=0

+wavecode_0_bSpectrum=0

+wavecode_0_bUseDots=0

+wavecode_0_bDrawThick=0

+wavecode_0_bAdditive=0

+wavecode_0_scaling=1.000000

+wavecode_0_smoothing=0.500000

+wavecode_0_r=1.000000

+wavecode_0_g=1.000000

+wavecode_0_b=1.000000

+wavecode_0_a=1.000000

+wavecode_1_enabled=0

+wavecode_1_samples=512

+wavecode_1_sep=0

+wavecode_1_bSpectrum=0

+wavecode_1_bUseDots=0

+wavecode_1_bDrawThick=0

+wavecode_1_bAdditive=0

+wavecode_1_scaling=1.000000

+wavecode_1_smoothing=0.500000

+wavecode_1_r=1.000000

+wavecode_1_g=1.000000

+wavecode_1_b=1.000000

+wavecode_1_a=1.000000

+wavecode_2_enabled=0

+wavecode_2_samples=512

+wavecode_2_sep=0

+wavecode_2_bSpectrum=0

+wavecode_2_bUseDots=0

+wavecode_2_bDrawThick=0

+wavecode_2_bAdditive=0

+wavecode_2_scaling=1.000000

+wavecode_2_smoothing=0.500000

+wavecode_2_r=1.000000

+wavecode_2_g=1.000000

+wavecode_2_b=1.000000

+wavecode_2_a=1.000000

+wavecode_3_enabled=0

+wavecode_3_samples=512

+wavecode_3_sep=0

+wavecode_3_bSpectrum=0

+wavecode_3_bUseDots=0

+wavecode_3_bDrawThick=0

+wavecode_3_bAdditive=0

+wavecode_3_scaling=1.000000

+wavecode_3_smoothing=0.500000

+wavecode_3_r=1.000000

+wavecode_3_g=1.000000

+wavecode_3_b=1.000000

+wavecode_3_a=1.000000

+shapecode_0_enabled=0

+shapecode_0_sides=4

+shapecode_0_additive=0

+shapecode_0_thickOutline=0

+shapecode_0_textured=0

+shapecode_0_x=0.500000

+shapecode_0_y=0.500000

+shapecode_0_rad=0.100000

+shapecode_0_ang=0.000000

+shapecode_0_tex_ang=0.000000

+shapecode_0_tex_zoom=1.000000

+shapecode_0_r=1.000000

+shapecode_0_g=0.000000

+shapecode_0_b=0.000000

+shapecode_0_a=1.000000

+shapecode_0_r2=0.000000

+shapecode_0_g2=1.000000

+shapecode_0_b2=0.000000

+shapecode_0_a2=0.000000

+shapecode_0_border_r=1.000000

+shapecode_0_border_g=1.000000

+shapecode_0_border_b=1.000000

+shapecode_0_border_a=0.100000

+shapecode_1_enabled=0

+shapecode_1_sides=4

+shapecode_1_additive=0

+shapecode_1_thickOutline=0

+shapecode_1_textured=0

+shapecode_1_x=0.500000

+shapecode_1_y=0.500000

+shapecode_1_rad=0.100000

+shapecode_1_ang=0.000000

+shapecode_1_tex_ang=0.000000

+shapecode_1_tex_zoom=1.000000

+shapecode_1_r=1.000000

+shapecode_1_g=0.000000

+shapecode_1_b=0.000000

+shapecode_1_a=1.000000

+shapecode_1_r2=0.000000

+shapecode_1_g2=1.000000

+shapecode_1_b2=0.000000

+shapecode_1_a2=0.000000

+shapecode_1_border_r=1.000000

+shapecode_1_border_g=1.000000

+shapecode_1_border_b=1.000000

+shapecode_1_border_a=0.100000

+shapecode_2_enabled=0

+shapecode_2_sides=4

+shapecode_2_additive=0

+shapecode_2_thickOutline=0

+shapecode_2_textured=0

+shapecode_2_x=0.500000

+shapecode_2_y=0.500000

+shapecode_2_rad=0.100000

+shapecode_2_ang=0.000000

+shapecode_2_tex_ang=0.000000

+shapecode_2_tex_zoom=1.000000

+shapecode_2_r=1.000000

+shapecode_2_g=0.000000

+shapecode_2_b=0.000000

+shapecode_2_a=1.000000

+shapecode_2_r2=0.000000

+shapecode_2_g2=1.000000

+shapecode_2_b2=0.000000

+shapecode_2_a2=0.000000

+shapecode_2_border_r=1.000000

+shapecode_2_border_g=1.000000

+shapecode_2_border_b=1.000000

+shapecode_2_border_a=0.100000

+shapecode_3_enabled=0

+shapecode_3_sides=4

+shapecode_3_additive=0

+shapecode_3_thickOutline=0

+shapecode_3_textured=0

+shapecode_3_x=0.500000

+shapecode_3_y=0.500000

+shapecode_3_rad=0.100000

+shapecode_3_ang=0.000000

+shapecode_3_tex_ang=0.000000

+shapecode_3_tex_zoom=1.000000

+shapecode_3_r=1.000000

+shapecode_3_g=0.000000

+shapecode_3_b=0.000000

+shapecode_3_a=1.000000

+shapecode_3_r2=0.000000

+shapecode_3_g2=1.000000

+shapecode_3_b2=0.000000

+shapecode_3_a2=0.000000

+shapecode_3_border_r=1.000000

+shapecode_3_border_g=1.000000

+shapecode_3_border_b=1.000000

+shapecode_3_border_a=0.100000

+per_frame_init_1=leafset = 3;

+per_frame_1=wave_r = 0.5 + 0.5*sin(1.6*time);

+per_frame_2=wave_g = 0.5 + 0.5*sin(4.1*time);

+per_frame_3=wave_b = -1 + (1-wave_r + 1-wave_g);

+per_frame_4=warp = 0;

+per_frame_5=pfthresh = above(bass_att,pfthresh)*3+(1-above(bass_att,pfthresh))*((pfthresh-1.3)*0.96+1.3);

+per_frame_6=pfdx_r = equal(pfthresh,3)*0.015*sin(5*time)+(1-equal(pfthresh,3))*pfdx_r;

+per_frame_7=pfdy_r = equal(pfthresh,3)*0.015*sin(6*time)+(1-equal(pfthresh,3))*pfdy_r;

+per_frame_8=q1 = wave_r;

+per_frame_9=q2 = wave_g;

+per_frame_10=q3 = wave_b;

+per_frame_11=

+per_frame_12=ob_r = 1-abs(q1)*0.75;

+per_frame_13=ob_g = 1-abs(q2)*0.75;

+per_frame_14=ob_b = 1-abs(q3)*0.75;

+per_frame_15=echo_zoom = echo_zoom + min(max(0.75,50*pfdx_r),1);

+per_frame_16=

+per_frame_17=echo_orient = echo_orient + 16*pfdy_r;

+per_frame_18=

+per_frame_19=dx = dx + 15.1*pfdx_r;

+per_frame_20=dy = dy + 15.1*pfdy_r;

+per_frame_21=ob_size = ob_size + 0.005*bass_att;

+per_frame_22=ib_a = ib_a - min(0.5,0.5-abs(dx+dy));

+per_pixel_1=thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_pixel_2=dx_r = equal(thresh,2)*0.015*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_pixel_3=dy_r = equal(thresh,2)*0.015*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_pixel_4=

+per_pixel_5=ladder = abs(sin(1*time));

+per_pixel_6=leaf = 5*below(ladder,0.2) + 8*above(ladder,0.2)*below(ladder,0.4) +

+per_pixel_7=12*above(ladder,0.4)*below(ladder,0.6) + 18*above(ladder,0.6)*below(ladder,0.8) +

+per_pixel_8=24*above(ladder,0.8);

+per_pixel_9=leafset = if(equal(thresh,2), leaf, leafset);

+per_pixel_10=

+per_pixel_11=zoom = zoom + 0.05*(0.75-cos(leafset*rad))*(1-rad);

+per_pixel_12=zoom = zoom - abs(0.05*(0.75-cos(4*rad)));

diff --git a/presets/Aderrasi - Spillswirl.milk b/presets/Aderrasi - Spillswirl.milk
new file mode 100644
index 0000000..04bf1a7
--- /dev/null
+++ b/presets/Aderrasi - Spillswirl.milk
@@ -0,0 +1,73 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.000000

+fDecay=1.000000

+fVideoEchoZoom=1.020100

+fVideoEchoAlpha=1.000000

+nVideoEchoOrientation=3

+nWaveMode=3

+bAdditiveWaves=0

+bWaveDots=1

+bWaveThick=0

+bModWaveAlphaByVolume=1

+bMaximizeWaveColor=0

+bTexWrap=0

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=0.499722

+fWaveSmoothing=0.900000

+fWaveParam=-0.080000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=27.429565

+fShader=1.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=-0.001990

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=1.000000

+wave_g=0.000000

+wave_b=0.000000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.005000

+ob_r=0.010000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.250000

+ib_r=0.250000

+ib_g=0.250000

+ib_b=0.250000

+ib_a=0.000000

+nMotionVectorsX=55.680000

+nMotionVectorsY=47.999996

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=5.000000

+mv_r=0.000000

+mv_g=0.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_x = wave_x  + if(above(wave_y,0.75), - 0.1*tan(time), + 0.1*tan(time));

+per_frame_2=wave_y = wave_y  + 0.40*sin(8*mid);

+per_frame_3=wave_r = wave_r   + if(above(3*bass,2), +1,-2);

+per_frame_4=wave_g = wave_g + if(above(3*mid,2), +1, -2);

+per_frame_5=wave_b = wave_b + if(above(3*treb,2), +1, -2);

+per_frame_6=warp = 0;

+per_frame_7=rot = rot - 0.05;

+per_pixel_1=zoom = zoom + if (below(rad,0.3), -0.2*(1-rad), 0);

+per_pixel_2=zoom = zoom + if(below(rad,0.6), -0.2*(0.5-rad), 0);

+per_pixel_3=rot = rot - if(below(rad,0.2), 0.1*(1-rad), 0);

diff --git a/presets/Aderrasi - What Cannot Be Undone.milk b/presets/Aderrasi - What Cannot Be Undone.milk
new file mode 100644
index 0000000..d8e8a65
--- /dev/null
+++ b/presets/Aderrasi - What Cannot Be Undone.milk
@@ -0,0 +1,76 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.000000

+fDecay=1.000000

+fVideoEchoZoom=2.216706

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=2

+nWaveMode=7

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=3.749272

+fWaveSmoothing=0.500000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.990000

+ob_size=0.000000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.000000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.000000

+nMotionVectorsX=0.000000

+nMotionVectorsY=0.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.35*sin(1.4*time) + 0.25*sin(2.5*time);

+per_frame_2=wave_g = wave_g + 0.35*sin(1.7*time) - 0.25*sin(1.11*time);

+per_frame_3=wave_b = wave_b + 0.35*sin(1.84*time) + 0.25*sin(2.3*time);

+per_frame_4=warp = 0;

+per_pixel_1=thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_pixel_2=dx_r = equal(thresh,2)*0.015*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_pixel_3=dy_r = equal(thresh,2)*0.015*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_pixel_4=dy = dy + dy_r +below(y,0.5)*0.005;

+per_pixel_5=dy = dy - dy_r -above(y,0.5)*0.005;

+per_pixel_6=dx = dx + dx_r+ above(y,sin(time))*0.005 - below(y,0.8*sin(time))*0.005;

+per_pixel_7=dx = dx + dx_r+ above(y,0.76*sin(1.2*time))*0.005 - below(y,0.55*sin(2*time))*0.005;

+per_pixel_8=nx = 0.8*x * sin(time) - 0.4*x *sin(1.22*time);

+per_pixel_9=ny = 0.8*y * cos(time) - 0.4*y *cos(1.4*time);

diff --git a/presets/Aderrasi - What cannot be.milk b/presets/Aderrasi - What cannot be.milk
new file mode 100644
index 0000000..c8d2ec4
--- /dev/null
+++ b/presets/Aderrasi - What cannot be.milk
@@ -0,0 +1,78 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.000000

+fDecay=1.000000

+fVideoEchoZoom=2.216706

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=2

+nWaveMode=7

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=3.749272

+fWaveSmoothing=0.500000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.990000

+ob_size=0.000000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.000000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.000000

+nMotionVectorsX=0.000000

+nMotionVectorsY=0.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.35*sin(1.4*time) + 0.25*sin(2.5*time);

+per_frame_2=wave_g = wave_g + 0.35*sin(1.7*time) - 0.25*sin(1.11*time);

+per_frame_3=wave_b = wave_b + 0.35*sin(1.84*time) + 0.25*sin(2.3*time);

+per_frame_4=warp = 0;

+per_pixel_1=thresh = above(bass_att,thresh)*2+(1-above(bass_att,thresh))*((thresh-1.3)*0.96+1.3);

+per_pixel_2=dx_r = equal(thresh,2)*0.015*sin(5*time)+(1-equal(thresh,2))*dx_r;

+per_pixel_3=dy_r = equal(thresh,2)*0.015*sin(6*time)+(1-equal(thresh,2))*dy_r;

+per_pixel_4=dy = dy + dy_r +below(y,0.5)*0.005;

+per_pixel_5=dy = dy - dy_r -above(y,0.5)*0.005;

+per_pixel_6=dx = dx + dx_r+ above(y,sin(time))*0.005 - below(y,0.8*sin(time))*0.005;

+per_pixel_7=dx = dx + dx_r+ above(y,0.76*sin(1.2*time))*0.005 - below(y,0.55*sin(2*time))*0.005;

+per_pixel_8=nx = 0.8*x * sin(time) - 0.4*x *sin(1.22*time);

+per_pixel_9=ny = 0.8*y * cos(time) - 0.4*y *cos(1.4*time);

+per_pixel_10=zoom = zoom + if(below(rad,0.4), + 0.05-rad, 0);

+per_pixel_11=zoom = zoom + if (below(rad,0.2), + 0.1-rad, 0);

diff --git "a/presets/Bmelgren & Krash - Rainbow Orb Peacock \050Centred Journey Mix.milk" "b/presets/Bmelgren & Krash - Rainbow Orb Peacock \050Centred Journey Mix.milk"
new file mode 100644
index 0000000..0e0016c
--- /dev/null
+++ "b/presets/Bmelgren & Krash - Rainbow Orb Peacock \050Centred Journey Mix.milk"
@@ -0,0 +1,76 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=2.000000

+fDecay=1.000000

+fVideoEchoZoom=1.000000

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=1

+nWaveMode=0

+bAdditiveWaves=0

+bWaveDots=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=0

+bDarkenCenter=1

+bRedBlueStereo=0

+bBrighten=0

+bDarken=1

+bSolarize=0

+bInvert=0

+fWaveAlpha=1.000000

+fWaveScale=5.277897

+fWaveSmoothing=0.000000

+fWaveParam=-0.400000

+fModWaveAlphaStart=0.850000

+fModWaveAlphaEnd=1.950000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=-0.240000

+cx=0.650000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=1.000000

+sx=0.887449

+sy=1.051010

+wave_r=0.400000

+wave_g=0.400000

+wave_b=0.400000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.005000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.000000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.000000

+nMotionVectorsX=64.000000

+nMotionVectorsY=1.000000

+mv_l=0.900000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=warp=warp/bass;

+per_frame_2=x_wave_x = 0.5+0.3*sin(bass+treb+mid);

+per_frame_3=wave_r = 1 + sin(-x_wave_x*6.28);

+per_frame_4=wave_g = abs(sin(2*x_wave_x*6.28));

+per_frame_5=wave_b = sin(x_wave_x*6.28);

+per_frame_6=treb_effect = if(above(treb_att,1.4),pow(0.99,treb_att),1);

+per_frame_7=net_effect = if(above(bass_att,0.8*treb_att),1,treb_effect);

+per_frame_8=zoom = net_effect;

+per_frame_9=rot = rot + rot_residual/1.5;

+per_frame_10=bass_thresh = above(bass_att,bass_thresh)*2 + (1-above(bass_att,bass_thresh))*((bass_thresh-1.3)*0.96+1.3);

+per_frame_11=shift = (tan(time*7)) -0.05;

+per_frame_12=shift = if(above(shift,0),0,if(below(shift,-0.1),-0.1,shift));

+per_frame_13=rot_residual = if(equal(bass_thresh,2),shift,rot_residual);

+per_frame_14=q1=net_effect;

+per_frame_15=q2=bass_thresh;

+per_pixel_1=rot = rot + if(equal(tan(ang), q1), rot, tan(q1-rad)/q2);

diff --git "a/presets/Bmelgren & Krash - Rainbow Orb Peacock \050Lonely Signal Gone .milk" "b/presets/Bmelgren & Krash - Rainbow Orb Peacock \050Lonely Signal Gone .milk"
new file mode 100644
index 0000000..20511f5
--- /dev/null
+++ "b/presets/Bmelgren & Krash - Rainbow Orb Peacock \050Lonely Signal Gone .milk"
@@ -0,0 +1,70 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.560000

+fDecay=1.000000

+fVideoEchoZoom=1.000000

+fVideoEchoAlpha=0.400000

+nVideoEchoOrientation=1

+nWaveMode=6

+bAdditiveWaves=0

+bWaveDots=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=1

+bTexWrap=0

+bDarkenCenter=1

+bMotionVectorsOn=0

+bRedBlueStereo=0

+nMotionVectorsX=64

+nMotionVectorsY=1

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=1.000000

+fWaveScale=1.599180

+fWaveSmoothing=0.750000

+fWaveParam=1.000000

+fModWaveAlphaStart=0.850000

+fModWaveAlphaEnd=1.950000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=1.000000

+sx=0.844378

+sy=1.061520

+wave_r=0.400000

+wave_g=0.400000

+wave_b=0.400000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.005000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.000000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.000000

+per_frame_1=warp=0;

+per_frame_2=x_wave_x = 0.5+0.3*sin(bass+treb+mid);

+per_frame_3=wave_r = 1 + sin(-x_wave_x*6.28);

+per_frame_4=wave_g = abs(sin(2*x_wave_x*6.28));

+per_frame_5=wave_b = sin(x_wave_x*6.28);

+per_frame_6=treb_effect = if(above(treb_att,1.4),pow(0.99,treb_att),1);

+per_frame_7=net_effect = if(above(bass_att,0.8*treb_att),1,treb_effect);

+per_frame_8=zoom = net_effect*1.027;

+per_frame_9=rot = rot + rot_residual;

+per_frame_10=bass_thresh = above(bass_att,bass_thresh)*2 + (1-above(bass_att,bass_thresh))*((bass_thresh-1.3)*0.96+1.3);

+per_frame_11=shift = (tan(time*7)) -0.05;

+per_frame_12=shift = if(above(shift,0),0,if(below(shift,-0.1),-0.1,shift));

+per_frame_13=rot_residual = if(equal(bass_thresh,2),shift,rot_residual);

+per_pixel_1=rot = rot + if(equal(sin(ang), 1), rot, sin(1-rad)/sqr(bass_att*1.5));

diff --git a/presets/Bmelgren - Godhead.milk b/presets/Bmelgren - Godhead.milk
new file mode 100644
index 0000000..7bae546
--- /dev/null
+++ b/presets/Bmelgren - Godhead.milk
@@ -0,0 +1,65 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=2.000000

+fDecay=0.975000

+fVideoEchoZoom=1.006596

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=1

+nWaveMode=5

+bAdditiveWaves=1

+bWaveDots=0

+bModWaveAlphaByVolume=1

+bMaximizeWaveColor=1

+bTexWrap=0

+bDarkenCenter=1

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=4.099998

+fWaveScale=1.285749

+fWaveSmoothing=0.900000

+fWaveParam=0.600000

+fModWaveAlphaStart=0.710000

+fModWaveAlphaEnd=1.300000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.331000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=0.380217

+rot=0.020000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=0.198054

+sx=1.000000

+sy=1.000000

+wave_r=0.650000

+wave_g=0.650000

+wave_b=0.650000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.010000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=0.000000

+ib_size=0.010000

+ib_r=0.250000

+ib_g=0.250000

+ib_b=0.250000

+ib_a=0.000000

+nMotionVectorsX=12.000000

+nMotionVectorsY=9.000000

+mv_l=0.900000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = bass-1;

+per_frame_2=wave_g = mid-1.2;

+per_frame_3=wave_b = treb-.5;

+per_pixel_1=rot=0.1*pow(ang,3);

+per_pixel_2=zoom=sin(pow(rad,mid))+.8;

diff --git "a/presets/Bmelgren - Pentultimate Nerual Slipstream \050Tweak 2\051.milk" "b/presets/Bmelgren - Pentultimate Nerual Slipstream \050Tweak 2\051.milk"
new file mode 100644
index 0000000..6f12561
--- /dev/null
+++ "b/presets/Bmelgren - Pentultimate Nerual Slipstream \050Tweak 2\051.milk"
@@ -0,0 +1,63 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=2.000000

+fDecay=0.950000

+fVideoEchoZoom=3.007504

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=1

+nWaveMode=0

+bAdditiveWaves=0

+bWaveDots=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=0

+bDarkenCenter=1

+bMotionVectorsOn=0

+bRedBlueStereo=0

+nMotionVectorsX=12

+nMotionVectorsY=9

+bBrighten=0

+bDarken=1

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=0.880224

+fWaveSmoothing=0.000000

+fWaveParam=-0.500000

+fModWaveAlphaStart=0.750000

+fModWaveAlphaEnd=0.950000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.074097

+fShader=1.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=1.000000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.010000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=0.000000

+ib_size=0.010000

+ib_r=0.250000

+ib_g=0.250000

+ib_b=0.250000

+ib_a=0.000000

+per_frame_1=warp = 0;

+per_frame_2=wave_r = wave_r + .5*sin(time*333) + bass*.3;

+per_frame_3=wave_g = wave_g + .5*sin(time*222) + treb*.3;

+per_frame_4=wave_b = wave_b + .5*sin(time*111) + mid*.3;

+per_frame_5=rot = .4*sin(mid_att*.05);

+per_pixel_1=ray = pow(rad,1.8)+.05;

+per_pixel_2=zoom = (ray/rad)*1.4 + .3*sin(ang*(bass*5))+(bass*.2);

diff --git a/presets/Bmelgren - Take This Highway.milk b/presets/Bmelgren - Take This Highway.milk
new file mode 100644
index 0000000..3f75694
--- /dev/null
+++ b/presets/Bmelgren - Take This Highway.milk
@@ -0,0 +1,66 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=2.000000

+fDecay=0.925000

+fVideoEchoZoom=1.006596

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=3

+nWaveMode=6

+bAdditiveWaves=1

+bWaveDots=0

+bModWaveAlphaByVolume=1

+bMaximizeWaveColor=1

+bTexWrap=1

+bDarkenCenter=1

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=4.099998

+fWaveScale=2.850142

+fWaveSmoothing=0.360000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.710000

+fModWaveAlphaEnd=1.300000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.331000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=0.380217

+rot=0.020000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=0.198054

+sx=1.000000

+sy=1.000000

+wave_r=0.650000

+wave_g=0.650000

+wave_b=0.650000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.010000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=0.000000

+ib_size=0.010000

+ib_r=0.250000

+ib_g=0.250000

+ib_b=0.250000

+ib_a=0.000000

+nMotionVectorsX=12.000000

+nMotionVectorsY=9.000000

+mv_l=0.900000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=ff = 0.01*frame;

+per_frame_2=wave_r = 0.5*sin(5*ff/bass)+0.5;

+per_frame_3=wave_g = 0.5*cos(ff/mid)+0.5;

+per_frame_4=wave_b = 0.5*cos(3*ff/treb)+0.5;

+per_pixel_1=rot=0.1*pow(ang,3);

+per_pixel_2=zoom=sin(pow(rad,3))+(.6*mid_att);

diff --git a/presets/CMakeLists.txt b/presets/CMakeLists.txt
new file mode 100644
index 0000000..1d6b425
--- /dev/null
+++ b/presets/CMakeLists.txt
@@ -0,0 +1,11 @@
+PROJECT(presets)
+cmake_minimum_required(VERSION 2.4.0)
+cmake_policy(SET CMP0005 OLD)
+
+if(COMMAND cmake_policy)
+       cmake_policy(SET CMP0003 NEW)
+endif(COMMAND cmake_policy)
+
+
+Include(../src/cmake/CPack-projectM.cmake)
+
diff --git a/presets/Che - Burning Hus.milk b/presets/Che - Burning Hus.milk
new file mode 100644
index 0000000..33d850d
--- /dev/null
+++ b/presets/Che - Burning Hus.milk
@@ -0,0 +1,97 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.000000

+fDecay=1.000000

+fVideoEchoZoom=1.000499

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=0

+nWaveMode=3

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=1.000416

+fWaveScale=1.000404

+fWaveSmoothing=0.000000

+fWaveParam=0.000000

+fModWaveAlphaStart=1.000000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000157

+fShader=0.000000

+zoom=1.010225

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=0.000000

+sx=1.000000

+sy=1.000000

+wave_r=0.800000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.000000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.000000

+ib_r=0.250000

+ib_g=0.250000

+ib_b=0.250000

+ib_a=1.000000

+nMotionVectorsX=2.048001

+nMotionVectorsY=47.999996

+mv_dx=-0.080000

+mv_dy=0.000000

+mv_l=5.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=q8=60/fps;

+per_frame_2=// timed sidon sensor

+per_frame_3=// le = signal level; desired average value = 2

+per_frame_4=le=1.4*bass_att+.1*bass+.5*treb;

+per_frame_5=pulse=above(le,th);

+per_frame_6=// pulsefreq = running average of interval between last 5 pulses

+per_frame_7=pulsefreq=if(equal(pulsefreq,0),2,

+per_frame_8=if(pulse,.8*pulsefreq+.2*(time-lastpulse),pulsefreq));

+per_frame_9=lastpulse=if(pulse,time,lastpulse);

+per_frame_10=// bt = relative time; 0 = prev beat; 1 = expected beat

+per_frame_11=bt=(time-lastbeat)/(.5*beatfreq+.5*pulsefreq);

+per_frame_12=// hccp = handcicap for th driven by bt

+per_frame_13=hccp=(.03/(bt+.2))+.5*if(band(above(bt,.8),below(bt,1.2)),

+per_frame_14=(pow(sin((bt-1)*7.854),4)-1),0);

+per_frame_15=beat=band(above(le,th+hccp),btblock);

+per_frame_16=btblock=1-above(le,th+hccp);

+per_frame_17=lastbeat=if(beat,time,lastbeat);

+per_frame_18=beatfreq=if(equal(beatfreq,0),2,

+per_frame_19=if(beat,.8*beatfreq+.2*(time-lastbeat),beatfreq));

+per_frame_20=// th = threshold

+per_frame_21=th=if(above(le,th),le+114/(le+10)-7.407,

+per_frame_22=th+th*.07/(th-12)+below(th,2.7)*.1*(2.7-th));

+per_frame_23=th=if(above(th,6),6,th);

+per_frame_24=thccl=thccl+q8*(th-2.5144);

+per_frame_25=leccl=leccl+q8*le;

+per_frame_26=btccl=btccl+beat;

+per_frame_27=q1=thccl;

+per_frame_28=q2=leccl;

+per_frame_29=q3=btccl;

+per_frame_30=wave_r=sqr(sin(1.5*time+.0037*leccl+3*bccl));

+per_frame_31=wave_g=.5+.5*sin(1.6*time+.0042*leccl+2*bccl);

+per_frame_32=wave_b=.5+.5*sin(1.7*time+.0056*leccl+4*bccl);

+per_pixel_1=zoom=1.01+q8*.13*sin(.1*q1)*(sin((8+3*sin(q3))*rad)+sin(.1*q2));

+per_pixel_2=rot=.05*q8*sin(.02*q1*sin(q3))*sin((4+3*sin(q3+.03*q2))*rad);

diff --git a/presets/Che - Escape.milk b/presets/Che - Escape.milk
new file mode 100644
index 0000000..27a6e72
--- /dev/null
+++ b/presets/Che - Escape.milk
@@ -0,0 +1,118 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.000000

+fDecay=0.950000

+fVideoEchoZoom=1.000498

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=1

+nWaveMode=5

+bAdditiveWaves=0

+bWaveDots=1

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=1.000416

+fWaveScale=0.608285

+fWaveSmoothing=0.900000

+fWaveParam=0.000000

+fModWaveAlphaStart=1.000000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000154

+fShader=0.000000

+zoom=1.000223

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=0.000000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.150000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=0.000000

+ib_size=0.050000

+ib_r=0.250000

+ib_g=0.250000

+ib_b=0.250000

+ib_a=1.000000

+nMotionVectorsX=6.400000

+nMotionVectorsY=14.400005

+mv_dx=0.000000

+mv_dy=-0.010000

+mv_l=0.350000

+mv_r=0.900000

+mv_g=0.500000

+mv_b=0.000000

+mv_a=1.000000

+per_frame_1=// timed sidon sensor

+per_frame_2=// le = signal level; desired average value = 2

+per_frame_3=le=1.4*bass_att+.1*bass+.5*treb;

+per_frame_4=pulse=above(le,th);

+per_frame_5=// pulsefreq = running average of interval between last 5 pulses

+per_frame_6=pulsefreq=if(equal(pulsefreq,0),2,

+per_frame_7=if(pulse,.8*pulsefreq+.2*(time-lastpulse),pulsefreq));

+per_frame_8=lastpulse=if(pulse,time,lastpulse);

+per_frame_9=// bt = relative time; 0 = prev beat; 1 = expected beat

+per_frame_10=bt=(time-lastbeat)/(.5*beatfreq+.5*pulsefreq);

+per_frame_11=// hccp = handcicap for th driven by bt

+per_frame_12=hccp=(.03/(bt+.2))+.5*if(band(above(bt,.8),below(bt,1.2)),

+per_frame_13=(pow(sin((bt-1)*7.854),4)-1),0);

+per_frame_14=beat=band(above(le,th+hccp),btblock);

+per_frame_15=btblock=1-above(le,th+hccp);

+per_frame_16=lastbeat=if(beat,time,lastbeat);

+per_frame_17=beatfreq=if(equal(beatfreq,0),2,

+per_frame_18=if(beat,.8*beatfreq+.2*(time-lastbeat),beatfreq));

+per_frame_19=// th = threshold

+per_frame_20=th=if(above(le,th),le+114/(le+10)-7.407,

+per_frame_21=th+th*.07/(th-12)+below(th,2.7)*.1*(2.7-th));

+per_frame_22=th=if(above(th,6),6,th);

+per_frame_23=

+per_frame_24=q8=30/fps;

+per_frame_25=ccl=ccl+beat;

+per_frame_26=minorccl=minorccl+le*q8;

+per_frame_27=q7=ccl+.0002*minorccl;

+per_frame_28=q6=3.7*ccl+.01*minorccl;

+per_frame_29=ob_size=.3+.3*sin(16*ccl+.007*minorccl);

+per_frame_30=ib_a=.5+.4*sin(.01*minorccl+ccl);

+per_frame_31=wave_r=.7+.3*sin(.04*ccl+.01*minorccl);

+per_frame_32=wave_g=.7+.3*sin(.02*ccl+.012*minorccl);

+per_frame_33=wave_b=.3+.3*sin(36*ccl+.013*minorccl);

+per_frame_34=ib_r=.25+.25*sin(72*ccl+.016*minorccl);

+per_frame_35=ib_g=.25+.25*sin(48*ccl+.021*minorccl);

+per_frame_36=ib_b=.5+.3*sin(86*ccl)+.2*(.028*minorccl);

+per_frame_37=

+per_frame_38=echo_alpha=.5+.5*cos(68*ccl+.0041*minorccl);

+per_frame_39=echo_zoom=exp(sin(13.7*ccl+.017*minorccl));

+per_frame_40=echo_orient=ccl%4;

+per_frame_41=

+per_frame_42=mvrot=ccl%6;

+per_frame_43=mv_r=if(above(mvrot,2),if(above(mvrot,4),.039,

+per_frame_44=if(equal(mvrot,3),.137,.835)),if(above(mvrot,1),.651,

+per_frame_45=if(equal(mvrot,0),1,.773)));

+per_frame_46=mv_g=if(above(mvrot,2),if(above(mvrot,4),.267,

+per_frame_47=if(equal(mvrot,3),.886,.176)),if(above(mvrot,1),.804,

+per_frame_48=if(equal(mvrot,0),1,.38)));

+per_frame_49=mv_b=if(above(mvrot,2),if(above(mvrot,4),.694,

+per_frame_50=if(equal(mvrot,3),.776,.851)),if(above(mvrot,1),.114,

+per_frame_51=if(equal(mvrot,0),1,.145)));

+per_pixel_1=zone=below(sin(sin(49*q7)*14*x-sin(36*q7)*14*y),-.2);

+per_pixel_2=zoom=1+.33*q8*if(zone,-.5+.1*sin(1.08*q6),.5+.1*sin(.96*q6));

+per_pixel_3=zoomexp=exp(sin(if(zone,q6,-q6)));

+per_pixel_4=rot=q8*.03*sin(q6+q7+q7*zone);

diff --git a/presets/Che - Watch & Fly.milk b/presets/Che - Watch & Fly.milk
new file mode 100644
index 0000000..506dc1f
--- /dev/null
+++ b/presets/Che - Watch & Fly.milk
@@ -0,0 +1,125 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.000000

+fDecay=1.000000

+fVideoEchoZoom=1.173164

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=0

+nWaveMode=0

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=1.000416

+fWaveScale=1.105069

+fWaveSmoothing=0.900000

+fWaveParam=-0.560000

+fModWaveAlphaStart=1.000000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000158

+fShader=0.000000

+zoom=1.000223

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=0.000000

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.100000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=0.000000

+ib_size=0.035000

+ib_r=1.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=1.000000

+nMotionVectorsX=8.959999

+nMotionVectorsY=7.200006

+mv_dx=0.080000

+mv_dy=0.060000

+mv_l=5.000000

+mv_r=1.000000

+mv_g=0.000000

+mv_b=0.000000

+mv_a=1.000000

+per_frame_1=// sensor - alpha

+per_frame_2=// le = signal level; desired average value = 2

+per_frame_3=// th = threshold

+per_frame_4=le=1.4*bass_att+.1*bass+.5*treb;

+per_frame_5=pulse=band(above(le,th),above(le-th,block));

+per_frame_6=block=le-th;

+per_frame_7=th=if(above(le,th),le+114/(le+10)-7.407,

+per_frame_8=th+th*.07/(th-12)+below(th,2.7)*.1*(2.7-th));

+per_frame_9=th=if(above(th,6),6,th);

+per_frame_10=

+per_frame_11=// pulse cycler

+per_frame_12=pcl=if(pulse,pcl+1,pcl);

+per_frame_13=q1=pcl;

+per_frame_14=

+per_frame_15=ib_r=.5+.5*sin(pcl)+.3*sin(time*2.2);

+per_frame_16=ib_g=.5+.5*sin(pcl*1.1)+.3*sin(time*2.1);

+per_frame_17=ib_b=.5+.5*sin(pcl*1.2)+.3*sin(time*2);

+per_frame_18=mv_r=ib_g;

+per_frame_19=mv_g=ib_b;

+per_frame_20=mv_b=ib_r;

+per_frame_21=wave_r=1-ib_r;

+per_frame_22=wave_g=1-ib_g;

+per_frame_23=wave_b=1-ib_b;

+per_frame_24=

+per_frame_25=// level cycler

+per_frame_26=levccl=levccl+le;

+per_frame_27=q2=.1*levccl;

+per_frame_28=

+per_frame_29=mvx=if(pulse,rand(2)*rand(25),mvx);mv_x=mvx;

+per_frame_30=mvy=if(pulse,rand(2)*rand(19),mvy);mv_y=mvy;

+per_frame_31=

+per_frame_32=q3=.5+.2*sin(23*pcl)+.2*sin(.023*levccl);

+per_frame_33=wave_x=q3;

+per_frame_34=q4=.5+.2*sin(24*pcl)+.2*sin(.02*levccl);

+per_frame_35=wave_y=1-q4;

+per_frame_36=thavg=.5*thavg+.5*th;

+per_frame_37=q6=.2*thavg;

+per_pixel_1=// coordinates transfomation

+per_pixel_2=// q3,q4 = position; q6 = 1/size;

+per_pixel_3=aang=atan2(y-q4,x-q3);

+per_pixel_4=arad=sqrt(sqr(y-q4)+sqr(x-q3))*q6;

+per_pixel_5=atx=cos(aang)*arad;

+per_pixel_6=aty=sin(aang)*arad;

+per_pixel_7=

+per_pixel_8=boxzone=below(arad,.1);

+per_pixel_9=

+per_pixel_10=fxzone=band(band(above(x,.1),below(x,.9)),

+per_pixel_11=band(above(y,.1),below(y,9)));

+per_pixel_12=

+per_pixel_13=

+per_pixel_14=zoom=zoom+(1-boxzone)*if(fxzone,(-.2+.3*sin(3*q1)),-.2);

+per_pixel_15=rot=(1-boxzone)*fxzone*(3.142*sin(12*q1));

+per_pixel_16=

+per_pixel_17=dx=.01*bor(band(above(x,.05),below(x,.1)),above

+per_pixel_18=(x,.95))-.01*bor(below(x,.05),band(above(x,.9),below(x,.95)));

+per_pixel_19=dy=.01*bor(band(above(y,.05),below(y,.1)),above

+per_pixel_20=(y,.95))-.01*bor(below(y,.05),band(above(y,.9),below(y,.95)));

+per_pixel_21=

+per_pixel_22=dx=if(boxzone,.1*atx,dx+fxzone*(.05*sin(q1+(9+4*sin(q1*2.3))*x+

+per_pixel_23=(6+3*sin(q1*2.4))*y+q2)+sin(q1*13)));

+per_pixel_24=dy=if(boxzone,.1*aty,dy+fxzone*(.05*sin(q1+(8+4*sin(q1*2.2))*x+

+per_pixel_25=(5+3*sin(q1*2.1))*y+q2*1.2)+sin(q1*14)));

diff --git a/presets/CrystalHigh - mad ravetriping.milk b/presets/CrystalHigh - mad ravetriping.milk
new file mode 100644
index 0000000..7d1afe3
--- /dev/null
+++ b/presets/CrystalHigh - mad ravetriping.milk
@@ -0,0 +1,86 @@
+[preset00]

+fRating=5.000000

+fGammaAdj=1.000000

+fDecay=0.963999

+fVideoEchoZoom=1.902700

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=0

+nWaveMode=0

+bAdditiveWaves=1

+bWaveDots=0

+bModWaveAlphaByVolume=1

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=33.469448

+fWaveScale=100.000000

+fWaveSmoothing=0.000000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.240000

+fModWaveAlphaEnd=1.300001

+fWarpAnimSpeed=1.000000

+fWarpScale=1.331000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.009514

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.650000

+wave_g=0.650000

+wave_b=0.650000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.035000

+ob_r=0.340000

+ob_g=0.340000

+ob_b=0.340000

+ob_a=0.380000

+ib_size=0.020000

+ib_r=0.340000

+ib_g=0.340000

+ib_b=0.340000

+ib_a=0.210000

+nMotionVectorsX=28.000000

+nMotionVectorsY=9.000000

+mv_l=0.900000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=MyVolume = min(bass+mid+treb,5);

+per_frame_2=decay = 1 - 0.01*MyVolume;

+per_frame_3=wave_r = 0.30 + 0.15*( 0.60*sin(0.980*time) + 0.40*sin(1.047*time) );

+per_frame_4=wave_r = if(above(bass,1.2),wave_r + 0.35,wave_r);

+per_frame_5=wave_g = 0.30 + 0.15*( 0.60*sin(0.835*time) + 0.40*sin(1.081*time) );

+per_frame_6=wave_b = 0.30 + 0.15*( 0.60*sin(0.814*time) + 0.40*sin(1.011*time) );

+per_frame_7=wave_b = if(above(wave_r,0.8),wave_b-0.25,wave_b);

+per_frame_8=ib_a = max(sin(time),0);

+per_frame_9=ib_size = 0.010 + 0.002*MyVolume;

+per_frame_10=ob_a = 0.380 + 0.1*MyVolume;

+per_frame_11=ob_size = 0.050 - 0.004*MyVoulme;

+per_frame_12=ib_r = 0.340 + 0.2*sin(time*0.5413);

+per_frame_13=ib_g = 0.340 + 0.2*sin(time*0.6459);

+per_frame_14=ib_b = 0.340 + 0.2*sin(time*0.7354);

+per_frame_15=ob_r = 0.340 + 0.2*sin(time*0.7251);

+per_frame_16=ob_r = if(above(bass,1.2),ob_r + 0.35,ob_r);

+per_frame_17=ob_g = 0.340 + 0.2*sin(time*0.5315);

+per_frame_18=ob_b = 0.340 + 0.2*sin(time*0.6349);

+per_frame_19=ob_b = if(above(ob_r,0.8),ob_b-0.25,ob_b);

+per_frame_20=zoom = max(sin(bass-bass_residual*10),0.2);

+per_frame_21=rot = mid_residual*2.5;

+per_frame_22=bass_thresh = above(bass_att,bass_thresh)*2 + (1-above(bass_att,bass_thresh))*((bass_thresh-1.3)*0.96+1.3);

+per_frame_23=bass_residual = equal(bass_thresh,2)*0.016*sin(time*7) + (1-equal(bass_thresh,2))*bass_residual;

+per_frame_24=mid_thresh = above(mid_att,mid_thresh)*2 + (1-above(mid_att,mid_thresh))*((mid_thresh-1.3)*0.92+1.3);

+per_frame_25=mid_residual = equal(mid_thresh,2)*0.013*sin(time*7) + (1-equal(mid_thresh,2))*mid_residual;

+per_frame_26=monitor = zoom;

diff --git "a/presets/DaNOnE - Highway to Heaven \050rotating\051.milk" "b/presets/DaNOnE - Highway to Heaven \050rotating\051.milk"
new file mode 100644
index 0000000..dd8b380
--- /dev/null
+++ "b/presets/DaNOnE - Highway to Heaven \050rotating\051.milk"
@@ -0,0 +1,59 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.900000

+fDecay=0.980000

+fVideoEchoZoom=1.169360

+fVideoEchoAlpha=0.300000

+nVideoEchoOrientation=3

+nWaveMode=5

+bAdditiveWaves=1

+bWaveDots=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=1

+bTexWrap=1

+bDarkenCenter=0

+bMotionVectorsOn=0

+bRedBlueStereo=0

+nMotionVectorsX=2

+nMotionVectorsY=2

+bBrighten=0

+bDarken=1

+bSolarize=0

+bInvert=0

+fWaveAlpha=1.220039

+fWaveScale=1.170433

+fWaveSmoothing=0.684000

+fWaveParam=-0.040000

+fModWaveAlphaStart=0.750000

+fModWaveAlphaEnd=0.950000

+fWarpAnimSpeed=1.000000

+fWarpScale=3.138000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.053000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=0.263000

+sx=1.000000

+sy=1.000000

+wave_r=0.010000

+wave_g=0.100000

+wave_b=0.900000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.000000

+ob_r=0.370000

+ob_g=0.460000

+ob_b=0.350000

+ob_a=0.000000

+ib_size=0.000000

+ib_r=0.100000

+ib_g=0.000000

+ib_b=0.300000

+ib_a=1.000000

+per_frame_1=ib_size = ib_size + (0.05*bass);

+per_frame_2=rot = rot + 0.3*sin(time);

+per_frame_3=warp = warp + treb

diff --git a/presets/EMPR - Random - Changing Polyevolution.milk b/presets/EMPR - Random - Changing Polyevolution.milk
new file mode 100644
index 0000000..0457c67
--- /dev/null
+++ b/presets/EMPR - Random - Changing Polyevolution.milk
@@ -0,0 +1,95 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.000000

+fDecay=1.000000

+fVideoEchoZoom=1.220183

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=0

+nWaveMode=3

+bAdditiveWaves=1

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=0

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=0.241455

+fWaveSmoothing=0.000000

+fWaveParam=-0.261032

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000000

+fShader=1.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000010

+dy=0.000010

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.526528

+wave_g=0.324083

+wave_b=0.134239

+wave_x=0.482812

+wave_y=0.467471

+ob_size=0.004500

+ob_r=0.071102

+ob_g=0.089654

+ob_b=0.514650

+ob_a=0.985207

+ib_size=0.005000

+ib_r=0.491715

+ib_g=0.022579

+ib_b=0.569085

+ib_a=0.949768

+nMotionVectorsX=3.000000

+nMotionVectorsY=48.000000

+mv_dx=-0.505893

+mv_dy=-0.993957

+mv_l=5.000000

+mv_r=0.835033

+mv_g=0.249397

+mv_b=0.055806

+mv_a=0.175581

+per_frame_1=wave_r = wave_r + 0.45*( 0.6*sin(1.517*time) + 0.4*mid_effect );

+per_frame_2=wave_b = wave_b + 0.45*( 0.6*sin(1.088*time) + 0.4*bass_effect );

+per_frame_3=wave_g = wave_g + 0.45*( 0.6*sin(1.037*time) + 0.4*treb_effect );

+per_frame_4=zoom = zoom + 0.013*( 0.60*sin(0.339*time) + 0.40*sin(0.276*time) );

+per_frame_5=rot = rot + 0.020*( 0.60*sin(0.381*time) + 0.40*sin(0.579*time) );

+per_frame_6=decay = decay - 0.01*below(frame%5,1);

+per_frame_7=volume = 0.3*(bass+mid+att);

+per_frame_8=beatrate = equal(beatrate,0) + (1-equal(beatrate,0))*(below(volume,0.01) + (1-below(volume,0.01))*beatrate);

+per_frame_9=lastbeat = lastbeat + equal(lastbeat,0)*time;

+per_frame_10=meanbass_att = 0.1*(meanbass_att*9 + bass_att);

+per_frame_11=peakbass_att = max(bass_att,peakbass_att);

+per_frame_12=beat = above(volume,0.8)*below(peakbass_att - bass_att, 0.05*peakbass_att)*above(time - lastbeat, 0.1 + 0.5*(beatrate - 0.1));

+per_frame_13=beatrate = max(if(beat,if(below(time-lastbeat,2*beatrate),0.1*(beatrate*9 + time - lastbeat),beatrate),beatrate),0.1);

+per_frame_14=peakbass_att = beat*bass_att + (1-beat)*peakbass_att*(above(time - lastbeat, 2*beatrate)*0.95 + (1-above(time - lastbeat, 2*beatrate))*0.995);

+per_frame_15=lastbeat = beat*time + (1-beat)*lastbeat;

+per_frame_16=peakbass_att = max(peakbass_att,1.1*meanbass_att);

+per_frame_17=effect = if(beat,effect+rand(5)+1,effect);

+per_frame_18=effect = if(above(effect,5),effect-6,effect);

+per_frame_19=q1 = effect+2;

+per_frame_20=monitor = q1;

+per_frame_21=wave_mode = wave_g * wave_b;

+per_frame_22=wave_r = time + treb;

+per_frame_23=wave_r=if(below(wave_r,0.0), 0.0, wave_r);

+per_frame_24=wave_r=if(above(wave_r,1.0), 1.0, wave_r);

+per_frame_25=wave_mode=if(below(wave_mode,0), 0, wave_mode);

+per_frame_26=wave_mode=if(above(wave_mode,7.0), 7.0, wave_mode);

+per_frame_27=wave_r=if(below(wave_r,0.0), 0.0, wave_r);

+per_frame_28=wave_r=if(above(wave_r,1.0), 1.0, wave_r);

+per_pixel_1=zoom=zoom+0.04*sin(ang*int(q1)+time*2.6);

+per_pixel_2=cy = x * b;

+per_pixel_3=cy=if(below(cy,-1.0), -1.0, cy);

+per_pixel_4=cy=if(above(cy,2.0), 2.0, cy);

diff --git "a/presets/EMPR - Random - Look mama I\047m on TV\041 2.milk" "b/presets/EMPR - Random - Look mama I\047m on TV\041 2.milk"
new file mode 100644
index 0000000..97c3088
--- /dev/null
+++ "b/presets/EMPR - Random - Look mama I\047m on TV\041 2.milk"
@@ -0,0 +1,98 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.000000

+fDecay=1.000000

+fVideoEchoZoom=100.000000

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=3

+nWaveMode=7

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=1

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=0.001000

+fWaveScale=0.640100

+fWaveSmoothing=0.270000

+fWaveParam=-0.250278

+fModWaveAlphaStart=0.750000

+fModWaveAlphaEnd=0.950000

+fWarpAnimSpeed=5.995700

+fWarpScale=1.331000

+fZoomExponent=1.010000

+fShader=0.000000

+zoom=0.998531

+rot=0.002000

+cx=0.500000

+cy=0.500000

+dx=1.000000

+dy=1.000000

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.840465

+wave_g=0.977183

+wave_b=0.577708

+wave_x=0.681590

+wave_y=0.841076

+ob_size=0.010000

+ob_r=0.364951

+ob_g=0.522256

+ob_b=0.961900

+ob_a=0.345787

+ib_size=0.000000

+ib_r=0.691402

+ib_g=0.523066

+ib_b=0.706478

+ib_a=0.808526

+nMotionVectorsX=0.000000

+nMotionVectorsY=48.000000

+mv_dx=0.479713

+mv_dy=-0.559295

+mv_l=5.000000

+mv_r=0.376825

+mv_g=0.651550

+mv_b=0.954265

+mv_a=0.602945

+per_frame_1=ob_r = 0.9 - 0.7*(0.5*sin(time*0.701)+ 0.3*cos(time*0.438));

+per_frame_2=ob_g = 0.6- 0.4*sin(time*2.924);

+per_frame_3=ob_b = 0.35 - 0.3*cos(time*0.816);

+per_frame_4=cx = cx - 0.4*sin(time*0.342);

+per_frame_5=cy = cy + 0.6*sin(time*0.433);

+per_frame_6=warp =0;

+per_frame_7=ib_size = 0.08;

+per_frame_8=ib_r = ib_r + 0.5*sin(time*3.034);

+per_frame_9=ib_g = ib_g + 0.5*sin(time*2.547);

+per_frame_10=ib_b = ib_b - 0.5*sin(time*1.431);

+per_frame_11=dx = dx -0.008*sin(time*0.23);

+per_frame_12=dy = dy - 0.008*sin(time*0.2);

+per_frame_13=dy = wave_r * wave_g;

+per_frame_14=wave_g = treb - wave_r;

+per_frame_15=wave_b = wave_r * bass;

+per_frame_16=dy=if(below(dy,-1), -1, dy);

+per_frame_17=dy=if(above(dy,1.0), 1.0, dy);

+per_frame_18=wave_b=if(below(wave_b,0.0), 0.0, wave_b);

+per_frame_19=wave_b=if(above(wave_b,1.0), 1.0, wave_b);

+per_frame_20=wave_g=if(below(wave_g,0.0), 0.0, wave_g);

+per_frame_21=wave_g=if(above(wave_g,1.0), 1.0, wave_g);

+per_frame_22=wave_g=if(below(wave_g,0.0), 0.0, wave_g);

+per_frame_23=wave_g=if(above(wave_g,1.0), 1.0, wave_g);

+per_frame_24=wave_b=if(below(wave_b,0.0), 0.0, wave_b);

+per_frame_25=wave_b=if(above(wave_b,1.0), 1.0, wave_b);

+per_pixel_1=box=(1-rad)+0.7*abs(x*3-0.4*sin(q1))%2 + 0.8*abs(y*3+0.4*sin(q1))%2;

+per_pixel_2=q1 = 8.05+(sin(x+0.137*time)-cos(y+0.513*time));

+per_pixel_3=zoom = if(above(box,1),q1*.1,zoom);

+per_pixel_4=rot = if(above(box,1),1*sin(0.385*time)-time*.1,rot);

+per_pixel_5=zoom = b + y*1.2;

+per_pixel_6=dx = time * a;

+per_pixel_7=zoom=if(below(zoom,0.01), 0.01, zoom);

+per_pixel_8=zoom=if(above(zoom,100), 100, zoom);

+per_pixel_9=dx=if(below(dx,-1), -1, dx);

+per_pixel_10=dx=if(above(dx,1.0), 1.0, dx);

diff --git "a/presets/EMPR - Random - They\047re so cute Dad can I keep one\041.milk" "b/presets/EMPR - Random - They\047re so cute Dad can I keep one\041.milk"
new file mode 100644
index 0000000..92df8f1
--- /dev/null
+++ "b/presets/EMPR - Random - They\047re so cute Dad can I keep one\041.milk"
@@ -0,0 +1,106 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=2.000000

+fDecay=0.940000

+fVideoEchoZoom=2.000000

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=0

+nWaveMode=4

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=2.651498

+fWaveSmoothing=0.000000

+fWaveParam=-0.180163

+fModWaveAlphaStart=0.750000

+fModWaveAlphaEnd=0.950000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=0.999997

+sx=0.578528

+sy=1.030301

+wave_r=0.610115

+wave_g=0.337971

+wave_b=0.298628

+wave_x=0.671479

+wave_y=0.725962

+ob_size=0.030000

+ob_r=0.148379

+ob_g=0.786533

+ob_b=0.637879

+ob_a=0.973918

+ib_size=0.045000

+ib_r=0.841289

+ib_g=0.297099

+ib_b=0.775799

+ib_a=0.238807

+nMotionVectorsX=12.000000

+nMotionVectorsY=9.000000

+mv_dx=0.598910

+mv_dy=0.978744

+mv_l=0.500000

+mv_r=0.296168

+mv_g=0.490016

+mv_b=0.461879

+mv_a=0.573571

+per_frame_1=wave_r = wave_r + 0.45*( 0.6*sin(1.517*time) + 0.4*mid_effect );

+per_frame_2=wave_b = wave_b + 0.45*( 0.6*sin(1.088*time) + 0.4*bass_effect );

+per_frame_3=wave_g = wave_g + 0.45*( 0.6*sin(1.037*time) + 0.4*treb_effect );

+per_frame_4=zoom = zoom + 0.013*( 0.60*sin(0.339*time) + 0.40*sin(0.276*time) );

+per_frame_5=rot = rot + 0.020*( 0.60*sin(0.381*time) + 0.40*sin(0.579*time) );

+per_frame_6=decay = decay - 0.01*below(frame%5,1);

+per_frame_7=volume = 0.3*(bass+mid+att);

+per_frame_8=beatrate = equal(beatrate,0) + (1-equal(beatrate,0))*(below(volume,0.01) + (1-below(volume,0.01))*beatrate);

+per_frame_9=lastbeat = lastbeat + equal(lastbeat,0)*time;

+per_frame_10=meanbass_att = 0.1*(meanbass_att*9 + bass_att);

+per_frame_11=peakbass_att = max(bass_att,peakbass_att);

+per_frame_12=beat = above(volume,0.8)*below(peakbass_att - bass_att, 0.05*peakbass_att)*above(time - lastbeat, 0.1 + 0.5*(beatrate - 0.1));

+per_frame_13=beatrate = max(if(beat,if(below(time-lastbeat,2*beatrate),0.1*(beatrate*9 + time - lastbeat),beatrate),beatrate),0.1);

+per_frame_14=peakbass_att = beat*bass_att + (1-beat)*peakbass_att*(above(time - lastbeat, 2*beatrate)*0.95 + (1-above(time - lastbeat, 2*beatrate))*0.995);

+per_frame_15=lastbeat = beat*time + (1-beat)*lastbeat;

+per_frame_16=peakbass_att = max(peakbass_att,1.1*meanbass_att);

+per_frame_17=effect = if(beat,effect+rand(5)+1,effect);

+per_frame_18=effect = if(above(effect,5),effect-6,effect);

+per_frame_19=q1 = effect+2;

+per_frame_20=monitor = q1;

+per_frame_21=wave_y = treb + wave_b;

+per_frame_22=wave_y=if(below(wave_y,0.0), 0.0, wave_y);

+per_frame_23=wave_y=if(above(wave_y,1.0), 1.0, wave_y);

+per_frame_24=wave_y=if(below(wave_y,0.0), 0.0, wave_y);

+per_frame_25=wave_y=if(above(wave_y,1.0), 1.0, wave_y);

+per_pixel_1=zoom=zoom+0.04*sin(ang*int(q1)+time*2.6);

+per_pixel_2=cy = q1 * warp;

+per_pixel_3=cy = cy * rad;

+per_pixel_4=cx = a * bass_att;

+per_pixel_5=dy = warp + time;

+per_pixel_6=zoomexp = bass_att + a;

+per_pixel_7=rot = a * bass_att;

+per_pixel_8=rot = rot * y;

+per_pixel_9=zoomexp=if(below(zoomexp,0.01), 0.01, zoomexp);

+per_pixel_10=zoomexp=if(above(zoomexp,100.0), 100.0, zoomexp);

+per_pixel_11=rot=if(below(rot,-1.0), -1.0, rot);

+per_pixel_12=rot=if(above(rot,1.0), 1.0, rot);

+per_pixel_13=cx=if(below(cx,-1.0), -1.0, cx);

+per_pixel_14=cx=if(above(cx,2.0), 2.0, cx);

+per_pixel_15=cy=if(below(cy,-1.0), -1.0, cy);

+per_pixel_16=cy=if(above(cy,2.0), 2.0, cy);

+per_pixel_17=dy=if(below(dy,-1), -1, dy);

+per_pixel_18=dy=if(above(dy,1.0), 1.0, dy);

diff --git a/presets/EMPR - Random - Turbulence Sandwich.milk b/presets/EMPR - Random - Turbulence Sandwich.milk
new file mode 100644
index 0000000..6ca71a5
--- /dev/null
+++ b/presets/EMPR - Random - Turbulence Sandwich.milk
@@ -0,0 +1,140 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=2.000000

+fDecay=0.950000

+fVideoEchoZoom=3.007504

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=1

+nWaveMode=0

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=0

+bDarkenCenter=1

+bRedBlueStereo=0

+bBrighten=0

+bDarken=1

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=0.880224

+fWaveSmoothing=0.000000

+fWaveParam=0.933237

+fModWaveAlphaStart=0.750000

+fModWaveAlphaEnd=0.950000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.074097

+fShader=1.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=1.000000

+sx=1.000000

+sy=1.000000

+wave_r=0.541826

+wave_g=0.907035

+wave_b=0.436348

+wave_x=0.911091

+wave_y=0.486312

+ob_size=0.010000

+ob_r=0.429397

+ob_g=0.567931

+ob_b=0.857834

+ob_a=0.309108

+ib_size=0.010000

+ib_r=0.331510

+ib_g=0.272420

+ib_b=0.199382

+ib_a=0.856912

+nMotionVectorsX=12.000000

+nMotionVectorsY=9.000000

+mv_dx=-0.523285

+mv_dy=-0.160162

+mv_l=0.055000

+mv_r=0.934155

+mv_g=0.462715

+mv_b=0.821308

+mv_a=0.850204

+per_frame_1=warp = 0;

+per_frame_2=wave_r = wave_r + .5*sin(time*333) + bass*.3;

+per_frame_3=wave_g = wave_g + .5*sin(time*222) + treb*.3;

+per_frame_4=wave_b = wave_b + .5*sin(time*111) + mid*.3;

+per_frame_5=rot = .4*sin(mid_att*.05);

+per_frame_6=wave_r = wave_r + 0.400*( 0.60*sin(0.933*time) + 0.40*sin(1.045*time) );

+per_frame_7=wave_g = wave_g + 0.400*( 0.60*sin(0.900*time) + 0.40*sin(0.956*time) );

+per_frame_8=wave_b = wave_b + 0.400*( 0.60*sin(0.910*time) + 0.40*sin(0.920*time) );

+per_frame_9=// Appended Code From C:\Program Files\Winamp\Plugins\MilkDrop\Self\Turbulence.milk

+per_frame_10=wave_b = if(equal(bass + wave_y , bass + bass) , min(min(bass * treb , time * treb_att) , time + wave_g) , treb_att * treb);

+per_frame_11=ob_g = max(if(below(frame - bass_att , wave_g * bass) , time + treb , wave_y * wave_g) , wave_y * wave_r);

+per_frame_12=wave_g = if(below(wave_r + time , treb - bass_att) , treb_att * treb , bass * bass);

+per_frame_13=ib_a = min(min(wave_g * wave_r , treb * mid) , wave_g - warp);

+per_frame_14=wave_r = if(below(bass + bass_att , wave_b + frame) , wave_b * bass_att , wave_g * treb);

+per_frame_15=mv_x = 12 + bass_att - warp;

+per_frame_16=ob_a = max(bass * time , bass_att * wave_b);

+per_frame_17=ib_G = treb + warp;

+per_frame_18=dy = 0 + if(equal(treb + bass , mid_att * zoom) , bass_att - bass , bass_att - treb);

+per_frame_19=wave_r = if(below(wave_r * treb_att , wave_b + frame) , min(zoom + wave_g , wave_g * bass) , wave_b - warp);

+per_frame_20=ob_g = max(if(equal(ob_g + wave_y , wave_b + wave_b) , wave_y + wave_b , wave_g * warp) , treb * wave_g);

+per_frame_21=wave_y = if(above(treb * treb , treb + treb) , wave_r * frame , mid * wave_x);

+per_frame_22=dy=if(below(dy,-1), -1, dy);

+per_frame_23=dy=if(above(dy,1.0), 1.0, dy);

+per_frame_24=wave_r=if(below(wave_r,0.0), 0.0, wave_r);

+per_frame_25=wave_r=if(above(wave_r,1.0), 1.0, wave_r);

+per_frame_26=wave_b=if(below(wave_b,0.0), 0.0, wave_b);

+per_frame_27=wave_b=if(above(wave_b,1.0), 1.0, wave_b);

+per_frame_28=wave_g=if(below(wave_g,0.0), 0.0, wave_g);

+per_frame_29=wave_g=if(above(wave_g,1.0), 1.0, wave_g);

+per_frame_30=wave_y=if(below(wave_y,0.0), 0.0, wave_y);

+per_frame_31=wave_y=if(above(wave_y,1.0), 1.0, wave_y);

+per_frame_32=ob_g=if(below(ob_g,0.0), 0.0, ob_g);

+per_frame_33=ob_g=if(above(ob_g,1.0), 1.0, ob_g);

+per_frame_34=ob_a=if(below(ob_a,0.0), 0.0, ob_a);

+per_frame_35=ob_a=if(above(ob_a,1.0), 1.0, ob_a);

+per_frame_36=ib_g=if(below(ib_g,0.0), 0.0, ib_g);

+per_frame_37=ib_g=if(above(ib_g,1.0), 1.0, ib_g);

+per_frame_38=ib_a=if(below(ib_a,0.0), 0.0, ib_a);

+per_frame_39=ib_a=if(above(ib_a,1.0), 1.0, ib_a);

+per_frame_40=mv_x=if(below(mv_x,0.0), 0.0, mv_x);

+per_frame_41=mv_x=if(above(mv_x,64.0), 64.0, mv_x);

+per_frame_42=wave_r=if(below(wave_r,0.0), 0.0, wave_r);

+per_frame_43=wave_r=if(above(wave_r,1.0), 1.0, wave_r);

+per_frame_44=wave_g=if(below(wave_g,0.0), 0.0, wave_g);

+per_frame_45=wave_g=if(above(wave_g,1.0), 1.0, wave_g);

+per_frame_46=wave_b=if(below(wave_b,0.0), 0.0, wave_b);

+per_frame_47=wave_b=if(above(wave_b,1.0), 1.0, wave_b);

+per_frame_48=ob_g=if(below(ob_g,0.0), 0.0, ob_g);

+per_frame_49=ob_g=if(above(ob_g,1.0), 1.0, ob_g);

+per_frame_50=wave_y=if(below(wave_y,0.0), 0.0, wave_y);

+per_frame_51=wave_y=if(above(wave_y,1.0), 1.0, wave_y);

+per_frame_52=wave_b=if(below(wave_b,0.0), 0.0, wave_b);

+per_frame_53=wave_b=if(above(wave_b,1.0), 1.0, wave_b);

+per_frame_54=wave_g=if(below(wave_g,0.0), 0.0, wave_g);

+per_frame_55=wave_g=if(above(wave_g,1.0), 1.0, wave_g);

+per_frame_56=wave_r=if(below(wave_r,0.0), 0.0, wave_r);

+per_frame_57=wave_r=if(above(wave_r,1.0), 1.0, wave_r);

+per_frame_58=ob_a=if(below(ob_a,0.0), 0.0, ob_a);

+per_frame_59=ob_a=if(above(ob_a,1.0), 1.0, ob_a);

+per_frame_60=ob_g=if(below(ob_g,0.0), 0.0, ob_g);

+per_frame_61=ob_g=if(above(ob_g,1.0), 1.0, ob_g);

+per_frame_62=ib_G=if(below(ib_G,0.0), 0.0, ib_G);

+per_frame_63=ib_G=if(above(ib_G,1.0), 1.0, ib_G);

+per_frame_64=wave_y=if(below(wave_y,0.0), 0.0, wave_y);

+per_frame_65=wave_y=if(above(wave_y,1.0), 1.0, wave_y);

+per_frame_66=ib_a=if(below(ib_a,0.0), 0.0, ib_a);

+per_frame_67=ib_a=if(above(ib_a,1.0), 1.0, ib_a);

+per_pixel_1=ray = pow(rad,1.8)+.05;

+per_pixel_2=zoom = (ray/rad)*1.4 + .3*sin(ang*(bass*5))+(bass*.2);

+per_pixel_3=rot=0;

+per_pixel_4=dx = ((x-.5)+(y-.5)*.25*sin(time/10))*(2+.1*treb_att);

+per_pixel_5=dy=(y-.5)*(2-.1*treb_att);

+per_pixel_6=zoom =1;

+per_pixel_7=;

+per_pixel_8=warp = 1 + if(above(q1 * b , sx * y) , zoomexp * a , bass_att * warp);

+per_pixel_9=warp=if(below(warp,0.01), 0.01, warp);

+per_pixel_10=warp=if(above(warp,100.0), 100.0, warp);

diff --git a/presets/Eo.S. + Phat - chasers 18 hallway.milk b/presets/Eo.S. + Phat - chasers 18 hallway.milk
new file mode 100644
index 0000000..c448f40
--- /dev/null
+++ b/presets/Eo.S. + Phat - chasers 18 hallway.milk
@@ -0,0 +1,633 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.280000

+fDecay=0.960000

+fVideoEchoZoom=0.996630

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=1

+nWaveMode=3

+bAdditiveWaves=0

+bWaveDots=1

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=0

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=1

+bSolarize=0

+bInvert=0

+fWaveAlpha=0.001000

+fWaveScale=0.011726

+fWaveSmoothing=0.900000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.750000

+fModWaveAlphaEnd=0.950000

+fWarpAnimSpeed=0.037492

+fWarpScale=0.014889

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=0.033004

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.400000

+wave_b=0.300000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.000000

+ob_r=0.110000

+ob_g=0.000000

+ob_b=0.100000

+ob_a=0.000000

+ib_size=0.000000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.000000

+nMotionVectorsX=0.000000

+nMotionVectorsY=0.000001

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=0.910000

+mv_b=0.710000

+mv_a=0.000000

+wavecode_0_enabled=1

+wavecode_0_samples=512

+wavecode_0_sep=0

+wavecode_0_bSpectrum=0

+wavecode_0_bUseDots=1

+wavecode_0_bDrawThick=1

+wavecode_0_bAdditive=1

+wavecode_0_scaling=1.000000

+wavecode_0_smoothing=0.500000

+wavecode_0_r=0.100000

+wavecode_0_g=0.500000

+wavecode_0_b=0.800000

+wavecode_0_a=1.000000

+wave_0_per_point1=n=sample*6.283;

+wave_0_per_point2=phs=-sample * 0.2;

+wave_0_per_point3=tm=q1 + ((phs*4)/q2)*0.1;

+wave_0_per_point4=

+wave_0_per_point5=flip=flip+1;

+wave_0_per_point6=flip=flip*below(flip,2);

+wave_0_per_point7=

+wave_0_per_point8=xp=0;

+wave_0_per_point9=yp=(flip*0.1-0.05)*(sample);

+wave_0_per_point10=zp=0;

+wave_0_per_point11=

+wave_0_per_point12=//spin;

+wave_0_per_point13=ang=tm*20 + sin(tm*76 + time*4)*0.4;

+wave_0_per_point14=sa=sin(ang);ca=cos(ang);

+wave_0_per_point15=xr=xp*sa + yp*ca;

+wave_0_per_point16=yr=xp*ca - yp*sa;

+wave_0_per_point17=zr=zp;

+wave_0_per_point18=

+wave_0_per_point19=xp=xr;

+wave_0_per_point20=yp=yr + 0.05 + (sin(tm)*0.5 + 0.5)*0.2 + 0.05;

+wave_0_per_point21=zp=zr;

+wave_0_per_point22=

+wave_0_per_point23=//wrist movement;

+wave_0_per_point24=ang=sin(tm*2);

+wave_0_per_point25=

+wave_0_per_point26=xq=xp;

+wave_0_per_point27=sa=sin(ang);ca=cos(ang);

+wave_0_per_point28=yq=yp*sa + zp*ca;

+wave_0_per_point29=zq=yp*ca - zp*sa;

+wave_0_per_point30=

+wave_0_per_point31=

+wave_0_per_point32=ang=tm*8;

+wave_0_per_point33=sa=sin(ang);ca=cos(ang);

+wave_0_per_point34=xp=xq*sa + yq*ca;

+wave_0_per_point35=yp=xq*ca - yq*sa;

+wave_0_per_point36=zp=zq;

+wave_0_per_point37=

+wave_0_per_point38=//forearm movement;

+wave_0_per_point39=zp=zp-0.3;

+wave_0_per_point40=ang=3.14 + sin(tm*2 - 0.5)*2.5;

+wave_0_per_point41=xq=xp;

+wave_0_per_point42=sa=sin(ang);ca=cos(ang);

+wave_0_per_point43=yq=yp*sa + zp*ca;

+wave_0_per_point44=zq=yp*ca - zp*sa;

+wave_0_per_point45=

+wave_0_per_point46=//upper arm twist

+wave_0_per_point47=ang=-1.0 + cos(tm*3 + 0.5);

+wave_0_per_point48=xp=xq*sa + yq*ca;

+wave_0_per_point49=yp=xq*ca - yq*sa;

+wave_0_per_point50=zp=zq;

+wave_0_per_point51=

+wave_0_per_point52=//upper arm outward;

+wave_0_per_point53=zp=zp-0.35;

+wave_0_per_point54=ang=cos(tm*1)*1.75 - 1.05;

+wave_0_per_point55=sa=sin(ang);ca=cos(ang);

+wave_0_per_point56=xq=xp*sa + zp*ca;

+wave_0_per_point57=yq=yp;

+wave_0_per_point58=zq=xp*ca - zp*sa;

+wave_0_per_point59=

+wave_0_per_point60=//upper arm up down;

+wave_0_per_point61=ang=cos(tm);

+wave_0_per_point62=xp=xq;

+wave_0_per_point63=sa=sin(ang);ca=cos(ang);

+wave_0_per_point64=yp=yq*ca - zq*sa;

+wave_0_per_point65=zp=yq*sa + zq*ca;

+wave_0_per_point66=

+wave_0_per_point67=yp=yp*0.1 - 0.2;

+wave_0_per_point68=

+wave_0_per_point69=

+wave_0_per_point70=//project into screenspace and draw on screen

+wave_0_per_point71=zp=zp+1.5;

+wave_0_per_point72=xs=xp/zp;

+wave_0_per_point73=ys=yp/zp;

+wave_0_per_point74=

+wave_0_per_point75=x=xs+0.5;

+wave_0_per_point76=y=ys*1.3+0.5;

+wave_0_per_point77=

+wave_0_per_point78=

+wave_0_per_point79=a=(1-sample)*0.3;

+wave_0_per_point80=

+wavecode_1_enabled=0

+wavecode_1_samples=512

+wavecode_1_sep=0

+wavecode_1_bSpectrum=0

+wavecode_1_bUseDots=1

+wavecode_1_bDrawThick=1

+wavecode_1_bAdditive=0

+wavecode_1_scaling=1.000000

+wavecode_1_smoothing=0.500000

+wavecode_1_r=1.000000

+wavecode_1_g=0.900000

+wavecode_1_b=0.800000

+wavecode_1_a=1.000000

+wave_1_per_point1=n=sample*6.283;

+wave_1_per_point2=phs=-sample * 0.4 ;

+wave_1_per_point3=tm=q1 +  ((phs*2)/q2)*0.1 - 0.01;

+wave_1_per_point4=

+wave_1_per_point5=flip=flip+1;

+wave_1_per_point6=flip=flip*below(flip,2);

+wave_1_per_point7=

+wave_1_per_point8=xp=0;

+wave_1_per_point9=yp=(flip*0.2-0.1)*(sample);

+wave_1_per_point10=zp=0;

+wave_1_per_point11=

+wave_1_per_point12=//spin;

+wave_1_per_point13=ang=-tm*29 + sin(tm*76 + time*4)*0.4;;

+wave_1_per_point14=sa=sin(ang);ca=cos(ang);

+wave_1_per_point15=xr=xp*sa + yp*ca;

+wave_1_per_point16=yr=xp*ca - yp*sa;

+wave_1_per_point17=zr=zp;

+wave_1_per_point18=

+wave_1_per_point19=xp=xr;

+wave_1_per_point20=yp=yr + 0.05 + (sin(tm)*0.5 + 0.5)*0.2 + 0.05;

+wave_1_per_point21=zp=zr;

+wave_1_per_point22=

+wave_1_per_point23=//wrist movement;

+wave_1_per_point24=ang=sin(tm*2);

+wave_1_per_point25=

+wave_1_per_point26=xq=xp;

+wave_1_per_point27=sa=sin(ang);ca=cos(ang);

+wave_1_per_point28=yq=yp*sa + zp*ca;

+wave_1_per_point29=zq=yp*ca - zp*sa;

+wave_1_per_point30=

+wave_1_per_point31=

+wave_1_per_point32=ang=tm*8;

+wave_1_per_point33=sa=sin(ang);ca=cos(ang);

+wave_1_per_point34=xp=xq*sa + yq*ca;

+wave_1_per_point35=yp=xq*ca - yq*sa;

+wave_1_per_point36=zp=zq;

+wave_1_per_point37=

+wave_1_per_point38=//forearm movement;

+wave_1_per_point39=zp=zp-0.3;

+wave_1_per_point40=ang=3.14 + sin(tm*2 - 0.5)*2.5;

+wave_1_per_point41=xq=xp;

+wave_1_per_point42=sa=sin(ang);ca=cos(ang);

+wave_1_per_point43=yq=yp*sa + zp*ca;

+wave_1_per_point44=zq=yp*ca - zp*sa;

+wave_1_per_point45=

+wave_1_per_point46=//upper arm twist

+wave_1_per_point47=ang=-1.0 + cos(tm*3 + 0.5);

+wave_1_per_point48=xp=xq*sa + yq*ca;

+wave_1_per_point49=yp=xq*ca - yq*sa;

+wave_1_per_point50=zp=zq;

+wave_1_per_point51=

+wave_1_per_point52=//upper arm outward;

+wave_1_per_point53=zp=zp-0.35;

+wave_1_per_point54=ang=cos(tm*1)*1.75 - 1.05;

+wave_1_per_point55=sa=sin(ang);ca=cos(ang);

+wave_1_per_point56=xq=xp*sa + zp*ca;

+wave_1_per_point57=yq=yp;

+wave_1_per_point58=zq=xp*ca - zp*sa;

+wave_1_per_point59=

+wave_1_per_point60=//upper arm up down;

+wave_1_per_point61=ang=cos(tm);

+wave_1_per_point62=xp=xq;

+wave_1_per_point63=sa=sin(ang);ca=cos(ang);

+wave_1_per_point64=yp=yq*ca - zq*sa;

+wave_1_per_point65=zp=yq*sa + zq*ca;

+wave_1_per_point66=

+wave_1_per_point67=//xp=xq;yp=yq;zp=zq;

+wave_1_per_point68=

+wave_1_per_point69=

+wave_1_per_point70=//project into screenspace and draw on screen

+wave_1_per_point71=zp=zp+1.5;

+wave_1_per_point72=xs=xp/zp;

+wave_1_per_point73=ys=yp/zp;

+wave_1_per_point74=

+wave_1_per_point75=x=xs+0.5;

+wave_1_per_point76=y=ys*1.3+0.5;

+wave_1_per_point77=

+wave_1_per_point78=

+wave_1_per_point79=a=(1-sample);

+wave_1_per_point80=

+wavecode_2_enabled=0

+wavecode_2_samples=512

+wavecode_2_sep=0

+wavecode_2_bSpectrum=0

+wavecode_2_bUseDots=1

+wavecode_2_bDrawThick=1

+wavecode_2_bAdditive=0

+wavecode_2_scaling=1.000000

+wavecode_2_smoothing=0.500000

+wavecode_2_r=1.000000

+wavecode_2_g=0.320000

+wavecode_2_b=0.000000

+wavecode_2_a=1.000000

+wave_2_per_point1=n=sample*6.283;

+wave_2_per_point2=phs=-sample * 0.4 ;

+wave_2_per_point3=tm=q1 +  ((phs*2)/q2)*0.1 - 2.02;

+wave_2_per_point4=

+wave_2_per_point5=flip=flip+1;

+wave_2_per_point6=flip=flip*below(flip,2);

+wave_2_per_point7=

+wave_2_per_point8=xp=0;

+wave_2_per_point9=yp=(flip*0.2-0.1)*(sample);

+wave_2_per_point10=zp=0;

+wave_2_per_point11=

+wave_2_per_point12=//spin;

+wave_2_per_point13=ang=tm*23 + sin(tm*76 + time*4)*0.3;;

+wave_2_per_point14=sa=sin(ang);ca=cos(ang);

+wave_2_per_point15=xr=xp*sa + yp*ca;

+wave_2_per_point16=yr=xp*ca - yp*sa;

+wave_2_per_point17=zr=zp;

+wave_2_per_point18=

+wave_2_per_point19=xp=xr;

+wave_2_per_point20=yp=yr + 0.05 + (sin(tm)*0.5 + 0.5)*0.2 + 0.05;

+wave_2_per_point21=zp=zr;

+wave_2_per_point22=

+wave_2_per_point23=//wrist movement;

+wave_2_per_point24=ang=sin(tm*2);

+wave_2_per_point25=

+wave_2_per_point26=xq=xp;

+wave_2_per_point27=sa=sin(ang);ca=cos(ang);

+wave_2_per_point28=yq=yp*sa + zp*ca;

+wave_2_per_point29=zq=yp*ca - zp*sa;

+wave_2_per_point30=

+wave_2_per_point31=

+wave_2_per_point32=ang=tm*8;

+wave_2_per_point33=sa=sin(ang);ca=cos(ang);

+wave_2_per_point34=xp=xq*sa + yq*ca;

+wave_2_per_point35=yp=xq*ca - yq*sa;

+wave_2_per_point36=zp=zq;

+wave_2_per_point37=

+wave_2_per_point38=//forearm movement;

+wave_2_per_point39=zp=zp-0.3;

+wave_2_per_point40=ang=3.14 + sin(tm*2 - 0.5)*2.5;

+wave_2_per_point41=xq=xp;

+wave_2_per_point42=sa=sin(ang);ca=cos(ang);

+wave_2_per_point43=yq=yp*sa + zp*ca;

+wave_2_per_point44=zq=yp*ca - zp*sa;

+wave_2_per_point45=

+wave_2_per_point46=//upper arm twist

+wave_2_per_point47=ang=-1.0 + cos(tm*3 + 0.5);

+wave_2_per_point48=xp=xq*sa + yq*ca;

+wave_2_per_point49=yp=xq*ca - yq*sa;

+wave_2_per_point50=zp=zq;

+wave_2_per_point51=

+wave_2_per_point52=//upper arm outward;

+wave_2_per_point53=zp=zp-0.35;

+wave_2_per_point54=ang=cos(tm*1)*1.75 - 1.05;

+wave_2_per_point55=sa=sin(ang);ca=cos(ang);

+wave_2_per_point56=xq=xp*sa + zp*ca;

+wave_2_per_point57=yq=yp;

+wave_2_per_point58=zq=xp*ca - zp*sa;

+wave_2_per_point59=

+wave_2_per_point60=//upper arm up down;

+wave_2_per_point61=ang=cos(tm);

+wave_2_per_point62=xp=xq;

+wave_2_per_point63=sa=sin(ang);ca=cos(ang);

+wave_2_per_point64=yp=yq*ca - zq*sa;

+wave_2_per_point65=zp=yq*sa + zq*ca;

+wave_2_per_point66=

+wave_2_per_point67=//xp=xq;yp=yq;zp=zq;

+wave_2_per_point68=

+wave_2_per_point69=

+wave_2_per_point70=//project into screenspace and draw on screen

+wave_2_per_point71=zp=zp+1.5;

+wave_2_per_point72=xs=xp/zp;

+wave_2_per_point73=ys=yp/zp;

+wave_2_per_point74=

+wave_2_per_point75=x=xs+0.5;

+wave_2_per_point76=y=ys*1.3+0.5;

+wave_2_per_point77=

+wave_2_per_point78=

+wave_2_per_point79=a=(1-sample);

+wavecode_3_enabled=1

+wavecode_3_samples=512

+wavecode_3_sep=0

+wavecode_3_bSpectrum=0

+wavecode_3_bUseDots=0

+wavecode_3_bDrawThick=0

+wavecode_3_bAdditive=1

+wavecode_3_scaling=1.000000

+wavecode_3_smoothing=0.500000

+wavecode_3_r=0.600000

+wavecode_3_g=0.700000

+wavecode_3_b=1.000000

+wavecode_3_a=1.000000

+wave_3_per_point1=n=sample*6.283;

+wave_3_per_point2=phs=-sample * 0.4 ;

+wave_3_per_point3=tm=q1 +  ((phs*2)/q2)*0.1 - 1.03;

+wave_3_per_point4=

+wave_3_per_point5=flip=flip+1;

+wave_3_per_point6=flip=flip*below(flip,2);

+wave_3_per_point7=

+wave_3_per_point8=xp=0;

+wave_3_per_point9=yp=(flip*0.15-0.075)*(sample);

+wave_3_per_point10=zp=0;

+wave_3_per_point11=

+wave_3_per_point12=//spin;

+wave_3_per_point13=ang=-tm*14 + sin(tm*76 + time*4)*0.2;;

+wave_3_per_point14=sa=sin(ang);ca=cos(ang);

+wave_3_per_point15=xr=xp*sa + yp*ca;

+wave_3_per_point16=yr=xp*ca - yp*sa;

+wave_3_per_point17=zr=zp;

+wave_3_per_point18=

+wave_3_per_point19=xp=xr;

+wave_3_per_point20=yp=yr + 0.05 + (sin(tm)*0.5 + 0.5)*0.2 + 0.05;

+wave_3_per_point21=zp=zr;

+wave_3_per_point22=

+wave_3_per_point23=//wrist movement;

+wave_3_per_point24=ang=sin(tm*2);

+wave_3_per_point25=

+wave_3_per_point26=xq=xp;

+wave_3_per_point27=sa=sin(ang);ca=cos(ang);

+wave_3_per_point28=yq=yp*sa + zp*ca;

+wave_3_per_point29=zq=yp*ca - zp*sa;

+wave_3_per_point30=

+wave_3_per_point31=

+wave_3_per_point32=ang=tm*8;

+wave_3_per_point33=sa=sin(ang);ca=cos(ang);

+wave_3_per_point34=xp=xq*sa + yq*ca;

+wave_3_per_point35=yp=xq*ca - yq*sa;

+wave_3_per_point36=zp=zq;

+wave_3_per_point37=

+wave_3_per_point38=//forearm movement;

+wave_3_per_point39=zp=zp-0.3;

+wave_3_per_point40=ang=3.14 + sin(tm*2 - 0.5)*2.5;

+wave_3_per_point41=xq=xp;

+wave_3_per_point42=sa=sin(ang);ca=cos(ang);

+wave_3_per_point43=yq=yp*sa + zp*ca;

+wave_3_per_point44=zq=yp*ca - zp*sa;

+wave_3_per_point45=

+wave_3_per_point46=//upper arm twist

+wave_3_per_point47=ang=-1.0 + cos(tm*3 + 0.5);

+wave_3_per_point48=xp=xq*sa + yq*ca;

+wave_3_per_point49=yp=xq*ca - yq*sa;

+wave_3_per_point50=zp=zq;

+wave_3_per_point51=

+wave_3_per_point52=//upper arm outward;

+wave_3_per_point53=zp=zp-0.35;

+wave_3_per_point54=ang=cos(tm*1)*1.75 - 1.05;

+wave_3_per_point55=sa=sin(ang);ca=cos(ang);

+wave_3_per_point56=xq=xp*sa + zp*ca;

+wave_3_per_point57=yq=yp;

+wave_3_per_point58=zq=xp*ca - zp*sa;

+wave_3_per_point59=

+wave_3_per_point60=//upper arm up down;

+wave_3_per_point61=ang=cos(tm)-3.5;

+wave_3_per_point62=xp=xq;

+wave_3_per_point63=sa=sin(ang);ca=cos(ang);

+wave_3_per_point64=yp=yq*ca - zq*sa;

+wave_3_per_point65=zp=yq*sa + zq*ca;

+wave_3_per_point66=

+wave_3_per_point67=//xp=xq;yp=yq;zp=zq;

+wave_3_per_point68=

+wave_3_per_point69=

+wave_3_per_point70=//project into screenspace and draw on screen

+wave_3_per_point71=zp=zp+1.5;

+wave_3_per_point72=xs=xp/zp;

+wave_3_per_point73=ys=yp/zp;

+wave_3_per_point74=

+wave_3_per_point75=x=xs+0.5;

+wave_3_per_point76=y=ys*1.3+0.5;

+wave_3_per_point77=

+wave_3_per_point78=

+wave_3_per_point79=a=(1-sample)*0.4;

+shapecode_0_enabled=0

+shapecode_0_sides=6

+shapecode_0_additive=1

+shapecode_0_thickOutline=0

+shapecode_0_textured=0

+shapecode_0_x=0.500000

+shapecode_0_y=0.500000

+shapecode_0_rad=0.045563

+shapecode_0_ang=0.000000

+shapecode_0_tex_ang=0.000000

+shapecode_0_tex_zoom=1.000000

+shapecode_0_r=1.000000

+shapecode_0_g=0.700000

+shapecode_0_b=0.300000

+shapecode_0_a=1.000000

+shapecode_0_r2=0.000000

+shapecode_0_g2=0.000000

+shapecode_0_b2=0.000000

+shapecode_0_a2=0.000000

+shapecode_0_border_r=1.000000

+shapecode_0_border_g=1.000000

+shapecode_0_border_b=1.000000

+shapecode_0_border_a=0.000000

+shape_0_per_frame1=tm=q1;

+shape_0_per_frame2=

+shape_0_per_frame3=flip=flip+1;

+shape_0_per_frame4=flip=flip*below(flip,2);

+shape_0_per_frame5=

+shape_0_per_frame6=xp=0;

+shape_0_per_frame7=yp=0;

+shape_0_per_frame8=zp=0;

+shape_0_per_frame9=

+shape_0_per_frame10=//spin;

+shape_0_per_frame11=ang=tm*20 + sin(tm*76 + time*4)*0.4;

+shape_0_per_frame12=sa=sin(ang);ca=cos(ang);

+shape_0_per_frame13=xr=xp*sa + yp*ca;

+shape_0_per_frame14=yr=xp*ca - yp*sa;

+shape_0_per_frame15=zr=zp;

+shape_0_per_frame16=

+shape_0_per_frame17=xp=xr;

+shape_0_per_frame18=yp=yr + 0.05 + (sin(tm)*0.5 + 0.5)*0.2 + 0.05;

+shape_0_per_frame19=zp=zr;

+shape_0_per_frame20=

+shape_0_per_frame21=//wrist movement;

+shape_0_per_frame22=ang=sin(tm*2);

+shape_0_per_frame23=

+shape_0_per_frame24=xq=xp;

+shape_0_per_frame25=sa=sin(ang);ca=cos(ang);

+shape_0_per_frame26=yq=yp*sa + zp*ca;

+shape_0_per_frame27=zq=yp*ca - zp*sa;

+shape_0_per_frame28=

+shape_0_per_frame29=

+shape_0_per_frame30=ang=tm*8;

+shape_0_per_frame31=sa=sin(ang);ca=cos(ang);

+shape_0_per_frame32=xp=xq*sa + yq*ca;

+shape_0_per_frame33=yp=xq*ca - yq*sa;

+shape_0_per_frame34=zp=zq;

+shape_0_per_frame35=

+shape_0_per_frame36=//forearm movement;

+shape_0_per_frame37=zp=zp-0.3;

+shape_0_per_frame38=ang=3.14 + sin(tm*2 - 0.5)*2.5;

+shape_0_per_frame39=xq=xp;

+shape_0_per_frame40=sa=sin(ang);ca=cos(ang);

+shape_0_per_frame41=yq=yp*sa + zp*ca;

+shape_0_per_frame42=zq=yp*ca - zp*sa;

+shape_0_per_frame43=

+shape_0_per_frame44=//upper arm twist

+shape_0_per_frame45=ang=-1.0 + cos(tm*3 + 0.5);

+shape_0_per_frame46=xp=xq*sa + yq*ca;

+shape_0_per_frame47=yp=xq*ca - yq*sa;

+shape_0_per_frame48=zp=zq;

+shape_0_per_frame49=

+shape_0_per_frame50=//upper arm outward;

+shape_0_per_frame51=zp=zp-0.35;

+shape_0_per_frame52=ang=cos(tm*1)*1.75 - 1.05;

+shape_0_per_frame53=sa=sin(ang);ca=cos(ang);

+shape_0_per_frame54=xq=xp*sa + zp*ca;

+shape_0_per_frame55=yq=yp;

+shape_0_per_frame56=zq=xp*ca - zp*sa;

+shape_0_per_frame57=

+shape_0_per_frame58=//upper arm up down;

+shape_0_per_frame59=ang=cos(tm);

+shape_0_per_frame60=xp=xq;

+shape_0_per_frame61=sa=sin(ang);ca=cos(ang);

+shape_0_per_frame62=yp=yq*ca - zq*sa;

+shape_0_per_frame63=zp=yq*sa + zq*ca;

+shape_0_per_frame64=

+shape_0_per_frame65=//xp=xq;yp=yq;zp=zq;

+shape_0_per_frame66=

+shape_0_per_frame67=

+shape_0_per_frame68=//project into screenspace and draw on screen

+shape_0_per_frame69=zp=zp+1.5;

+shape_0_per_frame70=xs=xp/zp;

+shape_0_per_frame71=ys=yp/zp;

+shape_0_per_frame72=

+shape_0_per_frame73=x=xs+0.5;

+shape_0_per_frame74=y=ys*1.3+0.5;

+shape_0_per_frame75=

+shape_0_per_frame76=

+shape_0_per_frame77=a=0.7;

+shape_0_per_frame78=

+shapecode_1_enabled=1

+shapecode_1_sides=5

+shapecode_1_additive=0

+shapecode_1_thickOutline=0

+shapecode_1_textured=1

+shapecode_1_x=0.500000

+shapecode_1_y=0.500000

+shapecode_1_rad=0.761306

+shapecode_1_ang=0.000000

+shapecode_1_tex_ang=0.000000

+shapecode_1_tex_zoom=1.000000

+shapecode_1_r=1.000000

+shapecode_1_g=1.000000

+shapecode_1_b=1.000000

+shapecode_1_a=1.000000

+shapecode_1_r2=1.000000

+shapecode_1_g2=1.000000

+shapecode_1_b2=1.000000

+shapecode_1_a2=0.000000

+shapecode_1_border_r=1.000000

+shapecode_1_border_g=1.000000

+shapecode_1_border_b=1.000000

+shapecode_1_border_a=0.000000

+shapecode_2_enabled=0

+shapecode_2_sides=4

+shapecode_2_additive=0

+shapecode_2_thickOutline=0

+shapecode_2_textured=0

+shapecode_2_x=0.500000

+shapecode_2_y=0.500000

+shapecode_2_rad=0.100000

+shapecode_2_ang=0.000000

+shapecode_2_tex_ang=0.000000

+shapecode_2_tex_zoom=1.000000

+shapecode_2_r=1.000000

+shapecode_2_g=0.000000

+shapecode_2_b=0.000000

+shapecode_2_a=1.000000

+shapecode_2_r2=0.000000

+shapecode_2_g2=1.000000

+shapecode_2_b2=0.000000

+shapecode_2_a2=0.000000

+shapecode_2_border_r=1.000000

+shapecode_2_border_g=1.000000

+shapecode_2_border_b=1.000000

+shapecode_2_border_a=0.100000

+shapecode_3_enabled=0

+shapecode_3_sides=4

+shapecode_3_additive=0

+shapecode_3_thickOutline=0

+shapecode_3_textured=0

+shapecode_3_x=0.500000

+shapecode_3_y=0.500000

+shapecode_3_rad=0.100000

+shapecode_3_ang=0.000000

+shapecode_3_tex_ang=0.000000

+shapecode_3_tex_zoom=1.000000

+shapecode_3_r=1.000000

+shapecode_3_g=0.000000

+shapecode_3_b=0.000000

+shapecode_3_a=1.000000

+shapecode_3_r2=0.000000

+shapecode_3_g2=1.000000

+shapecode_3_b2=0.000000

+shapecode_3_a2=0.000000

+shapecode_3_border_r=1.000000

+shapecode_3_border_g=1.000000

+shapecode_3_border_b=1.000000

+shapecode_3_border_a=0.100000

+per_frame_init_1=mv_x=64;mv_y=48;

+per_frame_init_2=nut=0;

+per_frame_init_3=stp=0;stq=0;

+per_frame_init_4=rtp=0;rtq=0;

+per_frame_init_5=wvr=0;

+per_frame_init_6=decay=0;

+per_frame_init_7=dcsp=0

+per_frame_init_8=

+per_frame_1=decay=0.98;

+per_frame_2=

+per_frame_3=vol=(bass+mid+treb)*0.25;

+per_frame_4=vol=vol*vol;

+per_frame_5=

+per_frame_6=vol2=(bass_att+mid_att+treb_att)*0.25;

+per_frame_7=vol2=vol2*vol2;

+per_frame_8=

+per_frame_9=q2=vol2;

+per_frame_10=

+per_frame_11=mtime=mtime+(0.03 * (sin(time)*0.5 + 0.5))*(75/fps);

+per_frame_12=

+per_frame_13=q1=mtime*1;

+per_frame_14=

+per_frame_15=

+per_frame_16=gamma=1 + min(vol*0.8,1)*0.7;

+per_frame_17=

+per_frame_18=

+per_pixel_1=zm=1.002;

+per_pixel_2=

+per_pixel_3=sx=-zm;

+per_pixel_4=sy=zm;

diff --git a/presets/Eo.S. - glowsticks v2 03 music.milk b/presets/Eo.S. - glowsticks v2 03 music.milk
new file mode 100644
index 0000000..9a2bb71
--- /dev/null
+++ b/presets/Eo.S. - glowsticks v2 03 music.milk
@@ -0,0 +1,540 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.000000

+fDecay=0.960000

+fVideoEchoZoom=1.006596

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=1

+nWaveMode=2

+bAdditiveWaves=0

+bWaveDots=1

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=0

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=1

+bSolarize=0

+bInvert=0

+fWaveAlpha=0.001000

+fWaveScale=0.011726

+fWaveSmoothing=0.900000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.750000

+fModWaveAlphaEnd=0.950000

+fWarpAnimSpeed=0.037492

+fWarpScale=0.014889

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=0.033004

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.400000

+wave_b=0.300000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.000000

+ob_r=0.110000

+ob_g=0.000000

+ob_b=0.100000

+ob_a=0.000000

+ib_size=0.000000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.000000

+nMotionVectorsX=3.000000

+nMotionVectorsY=2.000000

+mv_dx=0.020000

+mv_dy=-0.020000

+mv_l=0.150000

+mv_r=0.490000

+mv_g=0.480000

+mv_b=0.300001

+mv_a=0.000000

+wavecode_0_enabled=1

+wavecode_0_samples=512

+wavecode_0_sep=0

+wavecode_0_bSpectrum=0

+wavecode_0_bUseDots=0

+wavecode_0_bDrawThick=1

+wavecode_0_bAdditive=0

+wavecode_0_scaling=1.000000

+wavecode_0_smoothing=0.500000

+wavecode_0_r=0.100000

+wavecode_0_g=1.000000

+wavecode_0_b=0.700000

+wavecode_0_a=1.000000

+wave_0_per_frame1=t1=sin(time)*0.5+0.5;

+wave_0_per_frame2=t2=sin(time+2.1)*0.5+0.5;

+wave_0_per_frame3=t3=sin(time+4.2)*0.5+0.5;

+wave_0_per_frame4=

+wave_0_per_frame5=t4=sin(-time+1.1)*0.5+0.5;

+wave_0_per_frame6=t5=sin(-time+3.1)*0.5+0.5;

+wave_0_per_frame7=t6=sin(-time+5.2)*0.5+0.5;

+wave_0_per_point1=n=sample*6.283;

+wave_0_per_point2=phs=-sample * 0.2;

+wave_0_per_point3=tm=q1 + phs;

+wave_0_per_point4=

+wave_0_per_point5=flip=flip+1;

+wave_0_per_point6=flip=flip*below(flip,2);

+wave_0_per_point7=

+wave_0_per_point8=xp=0;

+wave_0_per_point9=yp=flip*0.1 + (sin(tm)*0.5 + 0.5)*0.2;

+wave_0_per_point10=zp=0;

+wave_0_per_point11=

+wave_0_per_point12=//wrist movement;

+wave_0_per_point13=ang=sin(tm*2)*0.5 +0.5;

+wave_0_per_point14=

+wave_0_per_point15=xq=xp;

+wave_0_per_point16=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point17=yq=yp*sinang + zp*cosang;

+wave_0_per_point18=zq=yp*cosang - zp*sinang;

+wave_0_per_point19=yq=yp;

+wave_0_per_point20=zq=zp;

+wave_0_per_point21=

+wave_0_per_point22=ang=tm*8;

+wave_0_per_point23=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point24=xp=xq*sinang + yq*cosang;

+wave_0_per_point25=yp=xq*cosang - yq*sinang;

+wave_0_per_point26=zp=zq;

+wave_0_per_point27=

+wave_0_per_point28=//forearm movement;

+wave_0_per_point29=zp=zp-0.3;

+wave_0_per_point30=ang=3.14 + sin(tm*2 - 0.5)*1.5;

+wave_0_per_point31=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point32=xq=xp;

+wave_0_per_point33=yq=yp*sinang + zp*cosang;

+wave_0_per_point34=zq=yp*cosang - zp*sinang;

+wave_0_per_point35=

+wave_0_per_point36=//upper arm twist

+wave_0_per_point37=ang=-1.0 + cos(tm*3.1 + 0.5);

+wave_0_per_point38=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point39=xp=xq*sinang + yq*cosang;

+wave_0_per_point40=yp=xq*cosang - yq*sinang;

+wave_0_per_point41=zp=zq;

+wave_0_per_point42=

+wave_0_per_point43=//upper arm outward;

+wave_0_per_point44=zp=zp-0.35;

+wave_0_per_point45=ang=cos(tm*2.3)*1.75 - 1.05;

+wave_0_per_point46=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point47=xq=xp*sinang + zp*cosang;

+wave_0_per_point48=yq=yp;

+wave_0_per_point49=zq=xp*cosang - zp*sinang;

+wave_0_per_point50=

+wave_0_per_point51=//upper arm up down;

+wave_0_per_point52=ang=cos(tm)*0.5 - 0.5;

+wave_0_per_point53=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point54=xp=xq;

+wave_0_per_point55=yp=yq*cosang - zq*sinang;

+wave_0_per_point56=zp=yq*sinang + zq*cosang;

+wave_0_per_point57=

+wave_0_per_point58=//xp=xq;yp=yq;zp=zq;

+wave_0_per_point59=

+wave_0_per_point60=

+wave_0_per_point61=//project into screenspace and draw on screen

+wave_0_per_point62=zp=zp+2;

+wave_0_per_point63=xs=xp/zp;

+wave_0_per_point64=ys=yp/zp;

+wave_0_per_point65=

+wave_0_per_point66=x=xs+0.5;

+wave_0_per_point67=y=ys*1.3+0.5;

+wave_0_per_point68=

+wave_0_per_point69=

+wave_0_per_point70=a=(1-sample);

+wave_0_per_point71=

+wave_0_per_point72=b=b+pow(1-sample,2)*0.3;

+wave_0_per_point73=

+wave_0_per_point74=

+wave_0_per_point75=

+wave_0_per_point76=r1=t1;

+wave_0_per_point77=g1=t2;

+wave_0_per_point78=b1=t3;

+wave_0_per_point79=r2=t4;

+wave_0_per_point80=g2=t5;

+wave_0_per_point81=b2=t6;

+wave_0_per_point82=

+wave_0_per_point83=r=r1*flip + r2*(1-flip);

+wave_0_per_point84=g=g1*flip + g2*(1-flip);

+wave_0_per_point85=b=b1*flip + b2*(1-flip);

+wavecode_1_enabled=1

+wavecode_1_samples=512

+wavecode_1_sep=0

+wavecode_1_bSpectrum=0

+wavecode_1_bUseDots=0

+wavecode_1_bDrawThick=1

+wavecode_1_bAdditive=0

+wavecode_1_scaling=1.000000

+wavecode_1_smoothing=0.500000

+wavecode_1_r=0.200000

+wavecode_1_g=1.000000

+wavecode_1_b=0.600000

+wavecode_1_a=1.000000

+wave_1_per_frame1=t1=sin(time)*0.5+0.5;

+wave_1_per_frame2=t2=sin(time+2.1)*0.5+0.5;

+wave_1_per_frame3=t3=sin(time+4.2)*0.5+0.5;

+wave_1_per_frame4=

+wave_1_per_frame5=t4=sin(-time+1.1)*0.5+0.5;

+wave_1_per_frame6=t5=sin(-time+3.1)*0.5+0.5;

+wave_1_per_frame7=t6=sin(-time+5.2)*0.5+0.5;

+wave_1_per_point1=n=sample*6.283;

+wave_1_per_point2=phs=-sample * 0.2;

+wave_1_per_point3=tm=q1 + phs;

+wave_1_per_point4=

+wave_1_per_point5=flip=flip+1;

+wave_1_per_point6=flip=flip*below(flip,2);

+wave_1_per_point7=

+wave_1_per_point8=xp=0;

+wave_1_per_point9=yp=flip*0.1 + (sin(tm)*0.5 + 0.5)*0.2 +0.1;

+wave_1_per_point10=yp=-yp;

+wave_1_per_point11=zp=0;

+wave_1_per_point12=

+wave_1_per_point13=//wrist movement;

+wave_1_per_point14=ang=sin(tm*2)*0.5 +0.5;

+wave_1_per_point15=

+wave_1_per_point16=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point17=xq=xp;

+wave_1_per_point18=yq=yp*sinang + zp*cosang;

+wave_1_per_point19=zq=yp*cosang - zp*sinang;

+wave_1_per_point20=yq=yp;

+wave_1_per_point21=zq=zp;

+wave_1_per_point22=

+wave_1_per_point23=ang=tm*8;

+wave_1_per_point24=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point25=xp=xq*sinang + yq*cosang;

+wave_1_per_point26=yp=xq*cosang - yq*sinang;

+wave_1_per_point27=zp=zq;

+wave_1_per_point28=

+wave_1_per_point29=//forearm movement;

+wave_1_per_point30=zp=zp-0.3;

+wave_1_per_point31=ang=3.14 + sin(tm*2 - 0.5)*1.5;

+wave_1_per_point32=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point33=xq=xp;

+wave_1_per_point34=yq=yp*sinang + zp*cosang;

+wave_1_per_point35=zq=yp*cosang - zp*sinang;

+wave_1_per_point36=

+wave_1_per_point37=//upper arm twist

+wave_1_per_point38=ang=-1.0 + cos(tm*3.1 + 0.5);

+wave_1_per_point39=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point40=xp=xq*sinang + yq*cosang;

+wave_1_per_point41=yp=xq*cosang - yq*sinang;

+wave_1_per_point42=zp=zq;

+wave_1_per_point43=

+wave_1_per_point44=//upper arm outward;

+wave_1_per_point45=zp=zp-0.35;

+wave_1_per_point46=ang=cos(tm*2.3)*1.75 - 1.05;

+wave_1_per_point47=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point48=xq=xp*sinang + zp*cosang;

+wave_1_per_point49=yq=yp;

+wave_1_per_point50=zq=xp*cosang - zp*sinang;

+wave_1_per_point51=

+wave_1_per_point52=//upper arm up down;

+wave_1_per_point53=ang=cos(tm)*0.5 - 0.5;

+wave_1_per_point54=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point55=xp=xq;

+wave_1_per_point56=yp=yq*cosang - zq*sinang;

+wave_1_per_point57=zp=yq*sinang + zq*cosang;

+wave_1_per_point58=

+wave_1_per_point59=//xp=xq;yp=yq;zp=zq;

+wave_1_per_point60=

+wave_1_per_point61=

+wave_1_per_point62=//project into screenspace and draw on screen

+wave_1_per_point63=zp=zp+2;

+wave_1_per_point64=xs=xp/zp;

+wave_1_per_point65=ys=yp/zp;

+wave_1_per_point66=

+wave_1_per_point67=x=xs+0.5;

+wave_1_per_point68=y=ys*1.3+0.5;

+wave_1_per_point69=

+wave_1_per_point70=

+wave_1_per_point71=a=(1-sample);

+wave_1_per_point72=

+wave_1_per_point73=

+wave_1_per_point74=b=b+pow(1-sample,2)*0.3;

+wave_1_per_point75=

+wave_1_per_point76=r1=t1;

+wave_1_per_point77=g1=t2;

+wave_1_per_point78=b1=t3;

+wave_1_per_point79=r2=t4;

+wave_1_per_point80=g2=t5;

+wave_1_per_point81=b2=t6;

+wave_1_per_point82=

+wave_1_per_point83=r=r1*flip + r2*(1-flip);

+wave_1_per_point84=g=g1*flip + g2*(1-flip);

+wave_1_per_point85=b=b1*flip + b2*(1-flip);

+wavecode_2_enabled=0

+wavecode_2_samples=512

+wavecode_2_sep=0

+wavecode_2_bSpectrum=0

+wavecode_2_bUseDots=0

+wavecode_2_bDrawThick=1

+wavecode_2_bAdditive=1

+wavecode_2_scaling=1.000000

+wavecode_2_smoothing=0.500000

+wavecode_2_r=1.000000

+wavecode_2_g=0.600000

+wavecode_2_b=0.100000

+wavecode_2_a=1.000000

+wave_2_per_point1=n=sample*6.283;

+wave_2_per_point2=tm=q1;

+wave_2_per_point3=phs=-sample*0.5;

+wave_2_per_point4=

+wave_2_per_point5=flip=flip+1;

+wave_2_per_point6=flip=flip*below(flip,2);

+wave_2_per_point7=

+wave_2_per_point8=xp=0;

+wave_2_per_point9=yp=flip*0.1;

+wave_2_per_point10=zp=0;

+wave_2_per_point11=

+wave_2_per_point12=//wrist movement;

+wave_2_per_point13=ang=sin(tm*2+phs - 2)*0.5 +0.5 + 2;

+wave_2_per_point14=

+wave_2_per_point15=xq=xp;

+wave_2_per_point16=yq=yp*sin(ang) + zp*cos(ang);

+wave_2_per_point17=zq=yp*cos(ang) - zp*sin(ang);

+wave_2_per_point18=

+wave_2_per_point19=ang=cos(tm*2+phs - 2)*1.5 ;

+wave_2_per_point20=xp=xq*sin(ang) + yq*cos(ang);

+wave_2_per_point21=yp=xq*cos(ang) - yq*sin(ang);

+wave_2_per_point22=zp=zq;

+wave_2_per_point23=

+wave_2_per_point24=//forearm movement;

+wave_2_per_point25=zp=zp-0.3;

+wave_2_per_point26=ang=3.14 + sin(tm*2+phs - 0.5)*1.5;

+wave_2_per_point27=xq=xp;

+wave_2_per_point28=yq=yp*sin(ang) + zp*cos(ang);

+wave_2_per_point29=zq=yp*cos(ang) - zp*sin(ang);

+wave_2_per_point30=

+wave_2_per_point31=//upper arm twist

+wave_2_per_point32=ang=-1.0 + cos(tm*3 + 0.5 +phs + 0.5);

+wave_2_per_point33=xp=xq*sin(ang) + yq*cos(ang);

+wave_2_per_point34=yp=xq*cos(ang) - yq*sin(ang);

+wave_2_per_point35=zp=zq;

+wave_2_per_point36=

+wave_2_per_point37=//upper arm outward;

+wave_2_per_point38=zp=zp-0.35;

+wave_2_per_point39=ang=cos(tm*2+phs)*0.75 - 1.05;

+wave_2_per_point40=xq=xp*sin(ang) + zp*cos(ang);

+wave_2_per_point41=yq=yp;

+wave_2_per_point42=zq=xp*cos(ang) - zp*sin(ang);

+wave_2_per_point43=

+wave_2_per_point44=//upper arm up down;

+wave_2_per_point45=ang=cos(tm+phs)*0.5 - 0.5;

+wave_2_per_point46=xp=xq;

+wave_2_per_point47=yp=yq*cos(ang) - zq*sin(ang);

+wave_2_per_point48=zp=yq*sin(ang) + zq*cos(ang);

+wave_2_per_point49=

+wave_2_per_point50=//xp=xq;yp=yq;zp=zq;

+wave_2_per_point51=

+wave_2_per_point52=

+wave_2_per_point53=//project into screenspace and draw on screen

+wave_2_per_point54=zp=zp+2;

+wave_2_per_point55=xs=xp/zp;

+wave_2_per_point56=ys=yp/zp;

+wave_2_per_point57=

+wave_2_per_point58=x=xs+0.5;

+wave_2_per_point59=y=ys*1.3+0.5;

+wave_2_per_point60=

+wave_2_per_point61=

+wave_2_per_point62=a=(1-sample)*0.05

+wave_2_per_point63=

+wavecode_3_enabled=0

+wavecode_3_samples=512

+wavecode_3_sep=0

+wavecode_3_bSpectrum=0

+wavecode_3_bUseDots=0

+wavecode_3_bDrawThick=1

+wavecode_3_bAdditive=1

+wavecode_3_scaling=1.000000

+wavecode_3_smoothing=0.500000

+wavecode_3_r=1.000000

+wavecode_3_g=0.300000

+wavecode_3_b=0.100000

+wavecode_3_a=1.000000

+wave_3_per_point1=n=sample*6.283;

+wave_3_per_point2=tm=q1 ;

+wave_3_per_point3=phs=-sample*0.5;

+wave_3_per_point4=

+wave_3_per_point5=flip=flip+1;

+wave_3_per_point6=flip=flip*below(flip,2);

+wave_3_per_point7=

+wave_3_per_point8=xp=0;

+wave_3_per_point9=yp=flip*0.1;

+wave_3_per_point10=zp=0;

+wave_3_per_point11=

+wave_3_per_point12=//wrist movement;

+wave_3_per_point13=ang=sin(tm*2+phs-2)*0.5 +0.5 + 2;

+wave_3_per_point14=

+wave_3_per_point15=xq=xp;

+wave_3_per_point16=yq=yp*sin(ang) + zp*cos(ang);

+wave_3_per_point17=zq=yp*cos(ang) - zp*sin(ang);

+wave_3_per_point18=

+wave_3_per_point19=ang=cos(tm*2+phs-2)*1.5;

+wave_3_per_point20=xp=xq*sin(ang) + yq*cos(ang);

+wave_3_per_point21=yp=xq*cos(ang) - yq*sin(ang);

+wave_3_per_point22=zp=zq;

+wave_3_per_point23=

+wave_3_per_point24=//forearm movement;

+wave_3_per_point25=zp=zp-0.3;

+wave_3_per_point26=ang=3.14 + sin(tm*2+phs-0.5)*1.5;

+wave_3_per_point27=xq=xp;

+wave_3_per_point28=yq=yp*sin(ang) + zp*cos(ang);

+wave_3_per_point29=zq=yp*cos(ang) - zp*sin(ang);

+wave_3_per_point30=

+wave_3_per_point31=//upper arm twist

+wave_3_per_point32=ang=-1.0 + cos(tm*3 + 0.5 +phs);

+wave_3_per_point33=xp=xq*sin(ang) + yq*cos(ang);

+wave_3_per_point34=yp=xq*cos(ang) - yq*sin(ang);

+wave_3_per_point35=zp=zq;

+wave_3_per_point36=

+wave_3_per_point37=//upper arm outward;

+wave_3_per_point38=zp=zp-0.35;

+wave_3_per_point39=ang=cos(tm*2+phs)*0.75 - 1.05;

+wave_3_per_point40=xq=xp*sin(ang) + zp*cos(ang);

+wave_3_per_point41=yq=yp;

+wave_3_per_point42=zq=xp*cos(ang) - zp*sin(ang);

+wave_3_per_point43=

+wave_3_per_point44=//upper arm up down;

+wave_3_per_point45=ang=cos(tm+phs)*0.5 - 0.5;

+wave_3_per_point46=xp=xq;

+wave_3_per_point47=yp=yq*cos(ang) - zq*sin(ang);

+wave_3_per_point48=zp=yq*sin(ang) + zq*cos(ang);

+wave_3_per_point49=

+wave_3_per_point50=//xp=xq;yp=yq;zp=zq;

+wave_3_per_point51=

+wave_3_per_point52=

+wave_3_per_point53=//project into screenspace and draw on screen

+wave_3_per_point54=zp=zp+2;

+wave_3_per_point55=xs=xp/zp;

+wave_3_per_point56=ys=yp/zp;

+wave_3_per_point57=

+wave_3_per_point58=x=-xs+0.5;

+wave_3_per_point59=y=ys*1.3+0.5;

+wave_3_per_point60=

+wave_3_per_point61=

+wave_3_per_point62=a=(1-sample)*0.05;

+wave_3_per_point63=

+shapecode_0_enabled=1

+shapecode_0_sides=5

+shapecode_0_additive=0

+shapecode_0_thickOutline=0

+shapecode_0_textured=1

+shapecode_0_x=0.500000

+shapecode_0_y=0.500000

+shapecode_0_rad=1.067790

+shapecode_0_ang=0.753982

+shapecode_0_tex_ang=0.000000

+shapecode_0_tex_zoom=0.779769

+shapecode_0_r=1.000000

+shapecode_0_g=1.000000

+shapecode_0_b=1.000000

+shapecode_0_a=1.000000

+shapecode_0_r2=1.000000

+shapecode_0_g2=1.000000

+shapecode_0_b2=1.000000

+shapecode_0_a2=0.000000

+shapecode_0_border_r=1.000000

+shapecode_0_border_g=1.000000

+shapecode_0_border_b=1.000000

+shapecode_0_border_a=0.000000

+shape_0_per_frame1=ang=sin(q1*0.15);

+shape_0_per_frame2=x=sin(q1*0.5) * 0.05 + 0.5;

+shape_0_per_frame3=y=cos(q1*0.63)* 0.05 + 0.5

+shapecode_1_enabled=0

+shapecode_1_sides=4

+shapecode_1_additive=0

+shapecode_1_thickOutline=0

+shapecode_1_textured=0

+shapecode_1_x=0.500000

+shapecode_1_y=0.500000

+shapecode_1_rad=0.100000

+shapecode_1_ang=0.000000

+shapecode_1_tex_ang=0.000000

+shapecode_1_tex_zoom=1.000000

+shapecode_1_r=1.000000

+shapecode_1_g=0.000000

+shapecode_1_b=0.000000

+shapecode_1_a=1.000000

+shapecode_1_r2=0.000000

+shapecode_1_g2=1.000000

+shapecode_1_b2=0.000000

+shapecode_1_a2=0.000000

+shapecode_1_border_r=1.000000

+shapecode_1_border_g=1.000000

+shapecode_1_border_b=1.000000

+shapecode_1_border_a=0.100000

+shapecode_2_enabled=0

+shapecode_2_sides=4

+shapecode_2_additive=0

+shapecode_2_thickOutline=0

+shapecode_2_textured=0

+shapecode_2_x=0.500000

+shapecode_2_y=0.500000

+shapecode_2_rad=0.100000

+shapecode_2_ang=0.000000

+shapecode_2_tex_ang=0.000000

+shapecode_2_tex_zoom=1.000000

+shapecode_2_r=1.000000

+shapecode_2_g=0.000000

+shapecode_2_b=0.000000

+shapecode_2_a=1.000000

+shapecode_2_r2=0.000000

+shapecode_2_g2=1.000000

+shapecode_2_b2=0.000000

+shapecode_2_a2=0.000000

+shapecode_2_border_r=1.000000

+shapecode_2_border_g=1.000000

+shapecode_2_border_b=1.000000

+shapecode_2_border_a=0.100000

+shapecode_3_enabled=0

+shapecode_3_sides=4

+shapecode_3_additive=0

+shapecode_3_thickOutline=0

+shapecode_3_textured=0

+shapecode_3_x=0.500000

+shapecode_3_y=0.500000

+shapecode_3_rad=0.100000

+shapecode_3_ang=0.000000

+shapecode_3_tex_ang=0.000000

+shapecode_3_tex_zoom=1.000000

+shapecode_3_r=1.000000

+shapecode_3_g=0.000000

+shapecode_3_b=0.000000

+shapecode_3_a=1.000000

+shapecode_3_r2=0.000000

+shapecode_3_g2=1.000000

+shapecode_3_b2=0.000000

+shapecode_3_a2=0.000000

+shapecode_3_border_r=1.000000

+shapecode_3_border_g=1.000000

+shapecode_3_border_b=1.000000

+shapecode_3_border_a=0.100000

+per_frame_init_1=mv_x=64;mv_y=48;

+per_frame_init_2=nut=0;

+per_frame_init_3=stp=0;stq=0;

+per_frame_init_4=rtp=0;rtq=0;

+per_frame_init_5=wvr=0;

+per_frame_init_6=decay=0;

+per_frame_init_7=dcsp=0

+per_frame_init_8=

+per_frame_1=decay=0.98;

+per_frame_2=zoom=1.002;

+per_frame_3=

+per_frame_4=vol=(bass_att+mid_att+treb_att)*0.25;

+per_frame_5=vol=vol*vol;

+per_frame_6=mtime=mtime+vol*0.1*(75/fps);

+per_frame_7=

+per_frame_8=q1=mtime*0.4;

+per_frame_9=

+per_frame_10=

+per_frame_11=

+per_frame_12=

diff --git a/presets/Eo.S. - glowsticks v2 04 music minimal.milk b/presets/Eo.S. - glowsticks v2 04 music minimal.milk
new file mode 100644
index 0000000..a88599e
--- /dev/null
+++ b/presets/Eo.S. - glowsticks v2 04 music minimal.milk
@@ -0,0 +1,541 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.000000

+fDecay=0.960000

+fVideoEchoZoom=1.006596

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=1

+nWaveMode=2

+bAdditiveWaves=0

+bWaveDots=1

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=0

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=1

+bSolarize=0

+bInvert=0

+fWaveAlpha=0.001000

+fWaveScale=0.011726

+fWaveSmoothing=0.900000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.750000

+fModWaveAlphaEnd=0.950000

+fWarpAnimSpeed=0.037492

+fWarpScale=0.014889

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=0.033004

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.400000

+wave_b=0.300000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.000000

+ob_r=0.110000

+ob_g=0.000000

+ob_b=0.100000

+ob_a=0.000000

+ib_size=0.000000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.000000

+nMotionVectorsX=6.400000

+nMotionVectorsY=43.199997

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=0.910000

+mv_b=0.710000

+mv_a=0.000000

+wavecode_0_enabled=1

+wavecode_0_samples=512

+wavecode_0_sep=0

+wavecode_0_bSpectrum=0

+wavecode_0_bUseDots=0

+wavecode_0_bDrawThick=0

+wavecode_0_bAdditive=0

+wavecode_0_scaling=1.000000

+wavecode_0_smoothing=0.500000

+wavecode_0_r=0.100000

+wavecode_0_g=1.000000

+wavecode_0_b=0.700000

+wavecode_0_a=1.000000

+wave_0_per_frame1=t1=sin(time)*0.5+0.5;

+wave_0_per_frame2=t2=sin(time+2.1)*0.5+0.5;

+wave_0_per_frame3=t3=sin(time+4.2)*0.5+0.5;

+wave_0_per_frame4=

+wave_0_per_frame5=t4=sin(time+1.1)*0.5+0.5;

+wave_0_per_frame6=t5=sin(time+3.1)*0.5+0.5;

+wave_0_per_frame7=t6=sin(time+5.2)*0.5+0.5;

+wave_0_per_point1=n=sample*6.283;

+wave_0_per_point2=phs=-sample * 0.2;

+wave_0_per_point3=tm=q1 + phs;

+wave_0_per_point4=

+wave_0_per_point5=flip=flip+1;

+wave_0_per_point6=flip=flip*below(flip,2);

+wave_0_per_point7=

+wave_0_per_point8=xp=0;

+wave_0_per_point9=yp=flip*0.1 + (sin(tm)*0.5 + 0.5)*0.2;

+wave_0_per_point10=zp=0;

+wave_0_per_point11=

+wave_0_per_point12=//wrist movement;

+wave_0_per_point13=ang=sin(tm*2)*0.5 +0.5;

+wave_0_per_point14=

+wave_0_per_point15=xq=xp;

+wave_0_per_point16=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point17=yq=yp*sinang + zp*cosang;

+wave_0_per_point18=zq=yp*cosang - zp*sinang;

+wave_0_per_point19=yq=yp;

+wave_0_per_point20=zq=zp;

+wave_0_per_point21=

+wave_0_per_point22=ang=tm*8;

+wave_0_per_point23=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point24=xp=xq*sinang + yq*cosang;

+wave_0_per_point25=yp=xq*cosang - yq*sinang;

+wave_0_per_point26=zp=zq;

+wave_0_per_point27=

+wave_0_per_point28=//forearm movement;

+wave_0_per_point29=zp=zp-0.3;

+wave_0_per_point30=ang=3.14 + sin(tm*2 - 0.5)*1.5;

+wave_0_per_point31=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point32=xq=xp;

+wave_0_per_point33=yq=yp*sinang + zp*cosang;

+wave_0_per_point34=zq=yp*cosang - zp*sinang;

+wave_0_per_point35=

+wave_0_per_point36=//upper arm twist

+wave_0_per_point37=ang=-1.0 + cos(tm*3.1 + 0.5);

+wave_0_per_point38=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point39=xp=xq*sinang + yq*cosang;

+wave_0_per_point40=yp=xq*cosang - yq*sinang;

+wave_0_per_point41=zp=zq;

+wave_0_per_point42=

+wave_0_per_point43=//upper arm outward;

+wave_0_per_point44=zp=zp-0.35;

+wave_0_per_point45=ang=cos(tm*2.3)*1.75 - 1.05;

+wave_0_per_point46=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point47=xq=xp*sinang + zp*cosang;

+wave_0_per_point48=yq=yp;

+wave_0_per_point49=zq=xp*cosang - zp*sinang;

+wave_0_per_point50=

+wave_0_per_point51=//upper arm up down;

+wave_0_per_point52=ang=cos(tm)*0.5 - 0.5;

+wave_0_per_point53=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point54=xp=xq;

+wave_0_per_point55=yp=yq*cosang - zq*sinang;

+wave_0_per_point56=zp=yq*sinang + zq*cosang;

+wave_0_per_point57=

+wave_0_per_point58=//xp=xq;yp=yq;zp=zq;

+wave_0_per_point59=

+wave_0_per_point60=

+wave_0_per_point61=//project into screenspace and draw on screen

+wave_0_per_point62=zp=zp+2;

+wave_0_per_point63=xs=xp/zp;

+wave_0_per_point64=ys=yp/zp;

+wave_0_per_point65=

+wave_0_per_point66=x=xs+0.5;

+wave_0_per_point67=y=ys*1.3+0.5;

+wave_0_per_point68=

+wave_0_per_point69=

+wave_0_per_point70=a=(1-sample);

+wave_0_per_point71=

+wave_0_per_point72=b=b+pow(1-sample,2)*0.3;

+wave_0_per_point73=

+wave_0_per_point74=

+wave_0_per_point75=

+wave_0_per_point76=r1=t1;

+wave_0_per_point77=g1=t2;

+wave_0_per_point78=b1=t3;

+wave_0_per_point79=r2=t4;

+wave_0_per_point80=g2=t5;

+wave_0_per_point81=b2=t6;

+wave_0_per_point82=

+wave_0_per_point83=r=r1*flip + r2*(1-flip);

+wave_0_per_point84=g=g1*flip + g2*(1-flip);

+wave_0_per_point85=b=b1*flip + b2*(1-flip);

+wavecode_1_enabled=1

+wavecode_1_samples=512

+wavecode_1_sep=0

+wavecode_1_bSpectrum=0

+wavecode_1_bUseDots=0

+wavecode_1_bDrawThick=1

+wavecode_1_bAdditive=0

+wavecode_1_scaling=1.000000

+wavecode_1_smoothing=0.500000

+wavecode_1_r=0.200000

+wavecode_1_g=1.000000

+wavecode_1_b=0.600000

+wavecode_1_a=1.000000

+wave_1_per_frame1=t1=sin(time)*0.5+0.5;

+wave_1_per_frame2=t2=sin(time+2.1)*0.5+0.5;

+wave_1_per_frame3=t3=sin(time+4.2)*0.5+0.5;

+wave_1_per_frame4=

+wave_1_per_frame5=t4=sin(time+1.1)*0.5+0.5;

+wave_1_per_frame6=t5=sin(time+3.1)*0.5+0.5;

+wave_1_per_frame7=t6=sin(time+5.2)*0.5+0.5;

+wave_1_per_point1=n=sample*6.283;

+wave_1_per_point2=phs=-sample * 0.2;

+wave_1_per_point3=tm=q1 + phs;

+wave_1_per_point4=

+wave_1_per_point5=flip=flip+1;

+wave_1_per_point6=flip=flip*below(flip,2);

+wave_1_per_point7=

+wave_1_per_point8=xp=0;

+wave_1_per_point9=yp=flip*0.1 + (sin(tm)*0.5 + 0.5)*0.2 +0.1;

+wave_1_per_point10=yp=-yp;

+wave_1_per_point11=zp=0;

+wave_1_per_point12=

+wave_1_per_point13=//wrist movement;

+wave_1_per_point14=ang=sin(tm*2)*0.5 +0.5;

+wave_1_per_point15=

+wave_1_per_point16=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point17=xq=xp;

+wave_1_per_point18=yq=yp*sinang + zp*cosang;

+wave_1_per_point19=zq=yp*cosang - zp*sinang;

+wave_1_per_point20=yq=yp;

+wave_1_per_point21=zq=zp;

+wave_1_per_point22=

+wave_1_per_point23=ang=tm*8;

+wave_1_per_point24=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point25=xp=xq*sinang + yq*cosang;

+wave_1_per_point26=yp=xq*cosang - yq*sinang;

+wave_1_per_point27=zp=zq;

+wave_1_per_point28=

+wave_1_per_point29=//forearm movement;

+wave_1_per_point30=zp=zp-0.3;

+wave_1_per_point31=ang=3.14 + sin(tm*2 - 0.5)*1.5;

+wave_1_per_point32=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point33=xq=xp;

+wave_1_per_point34=yq=yp*sinang + zp*cosang;

+wave_1_per_point35=zq=yp*cosang - zp*sinang;

+wave_1_per_point36=

+wave_1_per_point37=//upper arm twist

+wave_1_per_point38=ang=-1.0 + cos(tm*3.1 + 0.5);

+wave_1_per_point39=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point40=xp=xq*sinang + yq*cosang;

+wave_1_per_point41=yp=xq*cosang - yq*sinang;

+wave_1_per_point42=zp=zq;

+wave_1_per_point43=

+wave_1_per_point44=//upper arm outward;

+wave_1_per_point45=zp=zp-0.35;

+wave_1_per_point46=ang=cos(tm*2.3)*1.75 - 1.05;

+wave_1_per_point47=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point48=xq=xp*sinang + zp*cosang;

+wave_1_per_point49=yq=yp;

+wave_1_per_point50=zq=xp*cosang - zp*sinang;

+wave_1_per_point51=

+wave_1_per_point52=//upper arm up down;

+wave_1_per_point53=ang=cos(tm)*0.5 - 0.5;

+wave_1_per_point54=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point55=xp=xq;

+wave_1_per_point56=yp=yq*cosang - zq*sinang;

+wave_1_per_point57=zp=yq*sinang + zq*cosang;

+wave_1_per_point58=

+wave_1_per_point59=//xp=xq;yp=yq;zp=zq;

+wave_1_per_point60=

+wave_1_per_point61=

+wave_1_per_point62=//project into screenspace and draw on screen

+wave_1_per_point63=zp=zp+2;

+wave_1_per_point64=xs=xp/zp;

+wave_1_per_point65=ys=yp/zp;

+wave_1_per_point66=

+wave_1_per_point67=x=xs+0.5;

+wave_1_per_point68=y=ys*1.3+0.5;

+wave_1_per_point69=

+wave_1_per_point70=

+wave_1_per_point71=a=(1-sample);

+wave_1_per_point72=

+wave_1_per_point73=

+wave_1_per_point74=b=b+pow(1-sample,2)*0.3;

+wave_1_per_point75=

+wave_1_per_point76=r1=t1;

+wave_1_per_point77=g1=t2;

+wave_1_per_point78=b1=t3;

+wave_1_per_point79=r2=t4;

+wave_1_per_point80=g2=t5;

+wave_1_per_point81=b2=t6;

+wave_1_per_point82=

+wave_1_per_point83=r=r1*flip + r2*(1-flip);

+wave_1_per_point84=g=g1*flip + g2*(1-flip);

+wave_1_per_point85=b=b1*flip + b2*(1-flip);

+wavecode_2_enabled=0

+wavecode_2_samples=512

+wavecode_2_sep=0

+wavecode_2_bSpectrum=0

+wavecode_2_bUseDots=0

+wavecode_2_bDrawThick=1

+wavecode_2_bAdditive=1

+wavecode_2_scaling=1.000000

+wavecode_2_smoothing=0.500000

+wavecode_2_r=1.000000

+wavecode_2_g=0.600000

+wavecode_2_b=0.100000

+wavecode_2_a=1.000000

+wave_2_per_point1=n=sample*6.283;

+wave_2_per_point2=tm=q1;

+wave_2_per_point3=phs=-sample*0.5;

+wave_2_per_point4=

+wave_2_per_point5=flip=flip+1;

+wave_2_per_point6=flip=flip*below(flip,2);

+wave_2_per_point7=

+wave_2_per_point8=xp=0;

+wave_2_per_point9=yp=flip*0.1;

+wave_2_per_point10=zp=0;

+wave_2_per_point11=

+wave_2_per_point12=//wrist movement;

+wave_2_per_point13=ang=sin(tm*2+phs - 2)*0.5 +0.5 + 2;

+wave_2_per_point14=

+wave_2_per_point15=xq=xp;

+wave_2_per_point16=yq=yp*sin(ang) + zp*cos(ang);

+wave_2_per_point17=zq=yp*cos(ang) - zp*sin(ang);

+wave_2_per_point18=

+wave_2_per_point19=ang=cos(tm*2+phs - 2)*1.5 ;

+wave_2_per_point20=xp=xq*sin(ang) + yq*cos(ang);

+wave_2_per_point21=yp=xq*cos(ang) - yq*sin(ang);

+wave_2_per_point22=zp=zq;

+wave_2_per_point23=

+wave_2_per_point24=//forearm movement;

+wave_2_per_point25=zp=zp-0.3;

+wave_2_per_point26=ang=3.14 + sin(tm*2+phs - 0.5)*1.5;

+wave_2_per_point27=xq=xp;

+wave_2_per_point28=yq=yp*sin(ang) + zp*cos(ang);

+wave_2_per_point29=zq=yp*cos(ang) - zp*sin(ang);

+wave_2_per_point30=

+wave_2_per_point31=//upper arm twist

+wave_2_per_point32=ang=-1.0 + cos(tm*3 + 0.5 +phs + 0.5);

+wave_2_per_point33=xp=xq*sin(ang) + yq*cos(ang);

+wave_2_per_point34=yp=xq*cos(ang) - yq*sin(ang);

+wave_2_per_point35=zp=zq;

+wave_2_per_point36=

+wave_2_per_point37=//upper arm outward;

+wave_2_per_point38=zp=zp-0.35;

+wave_2_per_point39=ang=cos(tm*2+phs)*0.75 - 1.05;

+wave_2_per_point40=xq=xp*sin(ang) + zp*cos(ang);

+wave_2_per_point41=yq=yp;

+wave_2_per_point42=zq=xp*cos(ang) - zp*sin(ang);

+wave_2_per_point43=

+wave_2_per_point44=//upper arm up down;

+wave_2_per_point45=ang=cos(tm+phs)*0.5 - 0.5;

+wave_2_per_point46=xp=xq;

+wave_2_per_point47=yp=yq*cos(ang) - zq*sin(ang);

+wave_2_per_point48=zp=yq*sin(ang) + zq*cos(ang);

+wave_2_per_point49=

+wave_2_per_point50=//xp=xq;yp=yq;zp=zq;

+wave_2_per_point51=

+wave_2_per_point52=

+wave_2_per_point53=//project into screenspace and draw on screen

+wave_2_per_point54=zp=zp+2;

+wave_2_per_point55=xs=xp/zp;

+wave_2_per_point56=ys=yp/zp;

+wave_2_per_point57=

+wave_2_per_point58=x=xs+0.5;

+wave_2_per_point59=y=ys*1.3+0.5;

+wave_2_per_point60=

+wave_2_per_point61=

+wave_2_per_point62=a=(1-sample)*0.05

+wave_2_per_point63=

+wavecode_3_enabled=0

+wavecode_3_samples=512

+wavecode_3_sep=0

+wavecode_3_bSpectrum=0

+wavecode_3_bUseDots=0

+wavecode_3_bDrawThick=1

+wavecode_3_bAdditive=1

+wavecode_3_scaling=1.000000

+wavecode_3_smoothing=0.500000

+wavecode_3_r=1.000000

+wavecode_3_g=0.300000

+wavecode_3_b=0.100000

+wavecode_3_a=1.000000

+wave_3_per_point1=n=sample*6.283;

+wave_3_per_point2=tm=q1 ;

+wave_3_per_point3=phs=-sample*0.5;

+wave_3_per_point4=

+wave_3_per_point5=flip=flip+1;

+wave_3_per_point6=flip=flip*below(flip,2);

+wave_3_per_point7=

+wave_3_per_point8=xp=0;

+wave_3_per_point9=yp=flip*0.1;

+wave_3_per_point10=zp=0;

+wave_3_per_point11=

+wave_3_per_point12=//wrist movement;

+wave_3_per_point13=ang=sin(tm*2+phs-2)*0.5 +0.5 + 2;

+wave_3_per_point14=

+wave_3_per_point15=xq=xp;

+wave_3_per_point16=yq=yp*sin(ang) + zp*cos(ang);

+wave_3_per_point17=zq=yp*cos(ang) - zp*sin(ang);

+wave_3_per_point18=

+wave_3_per_point19=ang=cos(tm*2+phs-2)*1.5;

+wave_3_per_point20=xp=xq*sin(ang) + yq*cos(ang);

+wave_3_per_point21=yp=xq*cos(ang) - yq*sin(ang);

+wave_3_per_point22=zp=zq;

+wave_3_per_point23=

+wave_3_per_point24=//forearm movement;

+wave_3_per_point25=zp=zp-0.3;

+wave_3_per_point26=ang=3.14 + sin(tm*2+phs-0.5)*1.5;

+wave_3_per_point27=xq=xp;

+wave_3_per_point28=yq=yp*sin(ang) + zp*cos(ang);

+wave_3_per_point29=zq=yp*cos(ang) - zp*sin(ang);

+wave_3_per_point30=

+wave_3_per_point31=//upper arm twist

+wave_3_per_point32=ang=-1.0 + cos(tm*3 + 0.5 +phs);

+wave_3_per_point33=xp=xq*sin(ang) + yq*cos(ang);

+wave_3_per_point34=yp=xq*cos(ang) - yq*sin(ang);

+wave_3_per_point35=zp=zq;

+wave_3_per_point36=

+wave_3_per_point37=//upper arm outward;

+wave_3_per_point38=zp=zp-0.35;

+wave_3_per_point39=ang=cos(tm*2+phs)*0.75 - 1.05;

+wave_3_per_point40=xq=xp*sin(ang) + zp*cos(ang);

+wave_3_per_point41=yq=yp;

+wave_3_per_point42=zq=xp*cos(ang) - zp*sin(ang);

+wave_3_per_point43=

+wave_3_per_point44=//upper arm up down;

+wave_3_per_point45=ang=cos(tm+phs)*0.5 - 0.5;

+wave_3_per_point46=xp=xq;

+wave_3_per_point47=yp=yq*cos(ang) - zq*sin(ang);

+wave_3_per_point48=zp=yq*sin(ang) + zq*cos(ang);

+wave_3_per_point49=

+wave_3_per_point50=//xp=xq;yp=yq;zp=zq;

+wave_3_per_point51=

+wave_3_per_point52=

+wave_3_per_point53=//project into screenspace and draw on screen

+wave_3_per_point54=zp=zp+2;

+wave_3_per_point55=xs=xp/zp;

+wave_3_per_point56=ys=yp/zp;

+wave_3_per_point57=

+wave_3_per_point58=x=-xs+0.5;

+wave_3_per_point59=y=ys*1.3+0.5;

+wave_3_per_point60=

+wave_3_per_point61=

+wave_3_per_point62=a=(1-sample)*0.05;

+wave_3_per_point63=

+shapecode_0_enabled=0

+shapecode_0_sides=5

+shapecode_0_additive=0

+shapecode_0_thickOutline=0

+shapecode_0_textured=1

+shapecode_0_x=0.500000

+shapecode_0_y=0.500000

+shapecode_0_rad=1.067790

+shapecode_0_ang=0.753982

+shapecode_0_tex_ang=0.000000

+shapecode_0_tex_zoom=0.779769

+shapecode_0_r=1.000000

+shapecode_0_g=1.000000

+shapecode_0_b=1.000000

+shapecode_0_a=1.000000

+shapecode_0_r2=1.000000

+shapecode_0_g2=1.000000

+shapecode_0_b2=1.000000

+shapecode_0_a2=0.000000

+shapecode_0_border_r=1.000000

+shapecode_0_border_g=1.000000

+shapecode_0_border_b=1.000000

+shapecode_0_border_a=0.000000

+shape_0_per_frame1=ang=sin(q1*0.15);

+shape_0_per_frame2=x=sin(q1*0.5) * 0.05 + 0.5;

+shape_0_per_frame3=y=cos(q1*0.63)* 0.05 + 0.5

+shapecode_1_enabled=0

+shapecode_1_sides=4

+shapecode_1_additive=0

+shapecode_1_thickOutline=0

+shapecode_1_textured=0

+shapecode_1_x=0.500000

+shapecode_1_y=0.500000

+shapecode_1_rad=0.100000

+shapecode_1_ang=0.000000

+shapecode_1_tex_ang=0.000000

+shapecode_1_tex_zoom=1.000000

+shapecode_1_r=1.000000

+shapecode_1_g=0.000000

+shapecode_1_b=0.000000

+shapecode_1_a=1.000000

+shapecode_1_r2=0.000000

+shapecode_1_g2=1.000000

+shapecode_1_b2=0.000000

+shapecode_1_a2=0.000000

+shapecode_1_border_r=1.000000

+shapecode_1_border_g=1.000000

+shapecode_1_border_b=1.000000

+shapecode_1_border_a=0.100000

+shapecode_2_enabled=0

+shapecode_2_sides=4

+shapecode_2_additive=0

+shapecode_2_thickOutline=0

+shapecode_2_textured=0

+shapecode_2_x=0.500000

+shapecode_2_y=0.500000

+shapecode_2_rad=0.100000

+shapecode_2_ang=0.000000

+shapecode_2_tex_ang=0.000000

+shapecode_2_tex_zoom=1.000000

+shapecode_2_r=1.000000

+shapecode_2_g=0.000000

+shapecode_2_b=0.000000

+shapecode_2_a=1.000000

+shapecode_2_r2=0.000000

+shapecode_2_g2=1.000000

+shapecode_2_b2=0.000000

+shapecode_2_a2=0.000000

+shapecode_2_border_r=1.000000

+shapecode_2_border_g=1.000000

+shapecode_2_border_b=1.000000

+shapecode_2_border_a=0.100000

+shapecode_3_enabled=0

+shapecode_3_sides=4

+shapecode_3_additive=0

+shapecode_3_thickOutline=0

+shapecode_3_textured=0

+shapecode_3_x=0.500000

+shapecode_3_y=0.500000

+shapecode_3_rad=0.100000

+shapecode_3_ang=0.000000

+shapecode_3_tex_ang=0.000000

+shapecode_3_tex_zoom=1.000000

+shapecode_3_r=1.000000

+shapecode_3_g=0.000000

+shapecode_3_b=0.000000

+shapecode_3_a=1.000000

+shapecode_3_r2=0.000000

+shapecode_3_g2=1.000000

+shapecode_3_b2=0.000000

+shapecode_3_a2=0.000000

+shapecode_3_border_r=1.000000

+shapecode_3_border_g=1.000000

+shapecode_3_border_b=1.000000

+shapecode_3_border_a=0.100000

+per_frame_init_1=mv_x=64;mv_y=48;

+per_frame_init_2=nut=0;

+per_frame_init_3=stp=0;stq=0;

+per_frame_init_4=rtp=0;rtq=0;

+per_frame_init_5=wvr=0;

+per_frame_init_6=decay=0;

+per_frame_init_7=dcsp=0;

+per_frame_init_8=warp=0

+per_frame_init_9=

+per_frame_1=decay=0.98;

+per_frame_2=zoom=1.002;

+per_frame_3=

+per_frame_4=vol=(bass_att+mid_att+treb_att)*0.25;

+per_frame_5=vol=vol*vol;

+per_frame_6=mtime=mtime+vol*0.1*(75/fps);

+per_frame_7=

+per_frame_8=q1=mtime*0.4;

+per_frame_9=

+per_frame_10=warp=0

+per_frame_11=

+per_frame_12=

diff --git "a/presets/Eo.S. - glowsticks v2 05 and proton lights \050+Krash\047s beat code\051 _Phat_remix02b.milk" "b/presets/Eo.S. - glowsticks v2 05 and proton lights \050+Krash\047s beat code\051 _Phat_remix02b.milk"
new file mode 100644
index 0000000..28bad93
--- /dev/null
+++ "b/presets/Eo.S. - glowsticks v2 05 and proton lights \050+Krash\047s beat code\051 _Phat_remix02b.milk"
@@ -0,0 +1,682 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.210000

+fDecay=0.960000

+fVideoEchoZoom=0.996630

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=1

+nWaveMode=2

+bAdditiveWaves=0

+bWaveDots=1

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=1

+bDarken=0

+bSolarize=0

+bInvert=1

+fWaveAlpha=0.001000

+fWaveScale=0.011726

+fWaveSmoothing=0.900000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.750000

+fModWaveAlphaEnd=0.950000

+fWarpAnimSpeed=0.037492

+fWarpScale=0.014889

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=0.033004

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.400000

+wave_b=0.300000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.055000

+ob_r=1.000000

+ob_g=1.000000

+ob_b=1.000000

+ob_a=1.000000

+ib_size=0.000000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.000000

+nMotionVectorsX=0.000000

+nMotionVectorsY=43.199997

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=0.910000

+mv_b=0.710000

+mv_a=0.000000

+wavecode_0_enabled=1

+wavecode_0_samples=512

+wavecode_0_sep=0

+wavecode_0_bSpectrum=0

+wavecode_0_bUseDots=0

+wavecode_0_bDrawThick=0

+wavecode_0_bAdditive=0

+wavecode_0_scaling=1.000000

+wavecode_0_smoothing=0.500000

+wavecode_0_r=0.100000

+wavecode_0_g=1.000000

+wavecode_0_b=0.700000

+wavecode_0_a=1.000000

+wave_0_per_frame1=t1=sin(time)*0.5+0.5;

+wave_0_per_frame2=t2=sin(time+2.1)*0.5+0.5;

+wave_0_per_frame3=t3=sin(time+4.2)*0.5+0.5;

+wave_0_per_frame4=

+wave_0_per_frame5=t4=sin(time+1.1)*0.5+0.5;

+wave_0_per_frame6=t5=sin(time+3.1)*0.5+0.5;

+wave_0_per_frame7=t6=sin(time+5.2)*0.5+0.5;

+wave_0_per_point1=n=sample*6.283;

+wave_0_per_point2=phs=-sample * 0.2;

+wave_0_per_point3=tm=q1 + phs;

+wave_0_per_point4=

+wave_0_per_point5=flip=flip+1;

+wave_0_per_point6=flip=flip*below(flip,2);

+wave_0_per_point7=

+wave_0_per_point8=xp=0;

+wave_0_per_point9=yp=flip*0.1 + (sin(tm)*0.5 + 0.5)*0.2;

+wave_0_per_point10=zp=0;

+wave_0_per_point11=

+wave_0_per_point12=//wrist movement;

+wave_0_per_point13=ang=sin(tm*2 )*0.5 +0.5;

+wave_0_per_point14=

+wave_0_per_point15=xq=xp;

+wave_0_per_point16=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point17=yq=yp*sinang + zp*cosang;

+wave_0_per_point18=zq=yp*cosang - zp*sinang;

+wave_0_per_point19=yq=yp;

+wave_0_per_point20=zq=zp;

+wave_0_per_point21=

+wave_0_per_point22=ang=tm*8;

+wave_0_per_point23=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point24=xp=xq*sinang + yq*cosang;

+wave_0_per_point25=yp=xq*cosang - yq*sinang;

+wave_0_per_point26=zp=zq;

+wave_0_per_point27=

+wave_0_per_point28=//forearm movement;

+wave_0_per_point29=zp=zp-0.3;

+wave_0_per_point30=ang=3.14 + sin(tm*2 - 0.5)*1.5;

+wave_0_per_point31=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point32=xq=xp;

+wave_0_per_point33=yq=yp*sinang + zp*cosang;

+wave_0_per_point34=zq=yp*cosang - zp*sinang;

+wave_0_per_point35=

+wave_0_per_point36=//upper arm twist

+wave_0_per_point37=ang=-1.0 + cos(tm*3.1 + 0.5);

+wave_0_per_point38=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point39=xp=xq*sinang + yq*cosang;

+wave_0_per_point40=yp=xq*cosang - yq*sinang;

+wave_0_per_point41=zp=zq;

+wave_0_per_point42=

+wave_0_per_point43=//upper arm outward;

+wave_0_per_point44=zp=zp-0.35;

+wave_0_per_point45=ang=cos(tm*2.3)*1.75 - 1.05;

+wave_0_per_point46=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point47=xq=xp*sinang + zp*cosang;

+wave_0_per_point48=yq=yp;

+wave_0_per_point49=zq=xp*cosang - zp*sinang;

+wave_0_per_point50=

+wave_0_per_point51=//upper arm up down;

+wave_0_per_point52=ang=cos(tm)*0.5 - 0.5;

+wave_0_per_point53=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point54=xp=xq;

+wave_0_per_point55=yp=yq*cosang - zq*sinang;

+wave_0_per_point56=zp=yq*sinang + zq*cosang;

+wave_0_per_point57=

+wave_0_per_point58=//xp=xq;yp=yq;zp=zq;

+wave_0_per_point59=

+wave_0_per_point60=

+wave_0_per_point61=//project into screenspace and draw on screen

+wave_0_per_point62=zp=zp+2;

+wave_0_per_point63=xs=xp/zp;

+wave_0_per_point64=ys=yp/zp;

+wave_0_per_point65=

+wave_0_per_point66=x=xs+0.5;

+wave_0_per_point67=y=ys*1.3+0.5;

+wave_0_per_point68=

+wave_0_per_point69=

+wave_0_per_point70=a=if( equal(q8,1) , (1-sample) , sample);

+wave_0_per_point71=a=a*a;

+wave_0_per_point72=

+wave_0_per_point73=b=b+pow(1-sample,2)*0.3;

+wave_0_per_point74=

+wave_0_per_point75=

+wave_0_per_point76=

+wave_0_per_point77=r1=t1;

+wave_0_per_point78=g1=t2;

+wave_0_per_point79=b1=t3;

+wave_0_per_point80=r2=t4;

+wave_0_per_point81=g2=t5;

+wave_0_per_point82=b2=t6;

+wave_0_per_point83=

+wave_0_per_point84=r=r1*flip + r2*(1-flip);

+wave_0_per_point85=g=g1*flip + g2*(1-flip);

+wave_0_per_point86=b=b1*flip + b2*(1-flip);

+wavecode_1_enabled=1

+wavecode_1_samples=512

+wavecode_1_sep=0

+wavecode_1_bSpectrum=0

+wavecode_1_bUseDots=0

+wavecode_1_bDrawThick=0

+wavecode_1_bAdditive=0

+wavecode_1_scaling=1.000000

+wavecode_1_smoothing=0.500000

+wavecode_1_r=0.200000

+wavecode_1_g=1.000000

+wavecode_1_b=0.600000

+wavecode_1_a=1.000000

+wave_1_per_frame1=t1=sin(time)*0.5+0.5;

+wave_1_per_frame2=t2=sin(time+2.1)*0.5+0.5;

+wave_1_per_frame3=t3=sin(time+4.2)*0.5+0.5;

+wave_1_per_frame4=

+wave_1_per_frame5=t4=sin(time+1.1)*0.5+0.5;

+wave_1_per_frame6=t5=sin(time+3.1)*0.5+0.5;

+wave_1_per_frame7=t6=sin(time+5.2)*0.5+0.5;

+wave_1_per_point1=n=sample*6.283;

+wave_1_per_point2=phs=-sample * 0.2;

+wave_1_per_point3=tm=q1 + phs;

+wave_1_per_point4=

+wave_1_per_point5=flip=flip+1;

+wave_1_per_point6=flip=flip*below(flip,2);

+wave_1_per_point7=

+wave_1_per_point8=xp=0;

+wave_1_per_point9=yp=flip*0.1 + (sin(tm)*0.5 + 0.5)*0.2 +0.1;

+wave_1_per_point10=yp=-yp;

+wave_1_per_point11=zp=0;

+wave_1_per_point12=

+wave_1_per_point13=//wrist movement;

+wave_1_per_point14=ang=sin(tm*2)*0.5 +0.5;

+wave_1_per_point15=

+wave_1_per_point16=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point17=xq=xp;

+wave_1_per_point18=yq=yp*sinang + zp*cosang;

+wave_1_per_point19=zq=yp*cosang - zp*sinang;

+wave_1_per_point20=yq=yp;

+wave_1_per_point21=zq=zp;

+wave_1_per_point22=

+wave_1_per_point23=ang=tm*8;

+wave_1_per_point24=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point25=xp=xq*sinang + yq*cosang;

+wave_1_per_point26=yp=xq*cosang - yq*sinang;

+wave_1_per_point27=zp=zq;

+wave_1_per_point28=

+wave_1_per_point29=//forearm movement;

+wave_1_per_point30=zp=zp-0.3;

+wave_1_per_point31=ang=3.14 + sin(tm*2 - 0.5)*1.5;

+wave_1_per_point32=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point33=xq=xp;

+wave_1_per_point34=yq=yp*sinang + zp*cosang;

+wave_1_per_point35=zq=yp*cosang - zp*sinang;

+wave_1_per_point36=

+wave_1_per_point37=//upper arm twist

+wave_1_per_point38=ang=-1.0 + cos(tm*3.1 + 0.5);

+wave_1_per_point39=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point40=xp=xq*sinang + yq*cosang;

+wave_1_per_point41=yp=xq*cosang - yq*sinang;

+wave_1_per_point42=zp=zq;

+wave_1_per_point43=

+wave_1_per_point44=//upper arm outward;

+wave_1_per_point45=zp=zp-0.35;

+wave_1_per_point46=ang=cos(tm*2.3)*1.75 - 1.05;

+wave_1_per_point47=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point48=xq=xp*sinang + zp*cosang;

+wave_1_per_point49=yq=yp;

+wave_1_per_point50=zq=xp*cosang - zp*sinang;

+wave_1_per_point51=

+wave_1_per_point52=//upper arm up down;

+wave_1_per_point53=ang=cos(tm)*0.5 - 0.5;

+wave_1_per_point54=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point55=xp=xq;

+wave_1_per_point56=yp=yq*cosang - zq*sinang;

+wave_1_per_point57=zp=yq*sinang + zq*cosang;

+wave_1_per_point58=

+wave_1_per_point59=//xp=xq;yp=yq;zp=zq;

+wave_1_per_point60=

+wave_1_per_point61=

+wave_1_per_point62=//project into screenspace and draw on screen

+wave_1_per_point63=zp=zp+2;

+wave_1_per_point64=xs=xp/zp;

+wave_1_per_point65=ys=yp/zp;

+wave_1_per_point66=

+wave_1_per_point67=x=xs+0.5;

+wave_1_per_point68=y=ys*1.3+0.5;

+wave_1_per_point69=

+wave_1_per_point70=

+wave_1_per_point71=a=if( equal(q8,1) , (1-sample) , sample);

+wave_1_per_point72=a=a*a;

+wave_1_per_point73=

+wave_1_per_point74=

+wave_1_per_point75=b=b+pow(1-sample,2)*0.3;

+wave_1_per_point76=

+wave_1_per_point77=r1=t1;

+wave_1_per_point78=g1=t2;

+wave_1_per_point79=b1=t3;

+wave_1_per_point80=r2=t4;

+wave_1_per_point81=g2=t5;

+wave_1_per_point82=b2=t6;

+wave_1_per_point83=

+wave_1_per_point84=r=r1*flip + r2*(1-flip);

+wave_1_per_point85=g=g1*flip + g2*(1-flip);

+wave_1_per_point86=b=b1*flip + b2*(1-flip);

+wavecode_2_enabled=1

+wavecode_2_samples=512

+wavecode_2_sep=0

+wavecode_2_bSpectrum=0

+wavecode_2_bUseDots=1

+wavecode_2_bDrawThick=1

+wavecode_2_bAdditive=1

+wavecode_2_scaling=1.000000

+wavecode_2_smoothing=0.500000

+wavecode_2_r=1.000000

+wavecode_2_g=0.600000

+wavecode_2_b=0.100000

+wavecode_2_a=1.000000

+wave_2_per_frame1=t1=sin(time)*0.5+0.5;

+wave_2_per_frame2=t2=sin(time+2.1)*0.5+0.5;

+wave_2_per_frame3=t3=sin(time+4.2)*0.5+0.5;

+wave_2_per_frame4=

+wave_2_per_frame5=t4=sin(time+1.1)*0.5+0.5;

+wave_2_per_frame6=t5=sin(time+3.1)*0.5+0.5;

+wave_2_per_frame7=t6=sin(time+5.2)*0.5+0.5;

+wave_2_per_frame8=

+wave_2_per_frame9=

+wave_2_per_frame10=t8= int( sin(time*2)*2 + 3);

+wave_2_per_point1=n=sample*6.283;

+wave_2_per_point2=phs=-sample * 0.2;

+wave_2_per_point3=tm=q1 + phs;

+wave_2_per_point4=

+wave_2_per_point5=flip=flip+1;

+wave_2_per_point6=flip=flip*below(flip,2);

+wave_2_per_point7=

+wave_2_per_point8=xp=0;

+wave_2_per_point9=yp=flip*0.1 + (sin(tm)*0.5 + 0.5)*0.2;

+wave_2_per_point10=zp=0;

+wave_2_per_point11=

+wave_2_per_point12=//wrist movement;

+wave_2_per_point13=ang=sin(tm*2)*0.5 +0.5;

+wave_2_per_point14=

+wave_2_per_point15=xq=xp;

+wave_2_per_point16=sinang=sin(ang);cosang=cos(ang);

+wave_2_per_point17=yq=yp*sinang + zp*cosang;

+wave_2_per_point18=zq=yp*cosang - zp*sinang;

+wave_2_per_point19=yq=yp;

+wave_2_per_point20=zq=zp;

+wave_2_per_point21=

+wave_2_per_point22=ang=tm*8 + 1;

+wave_2_per_point23=sinang=sin(ang);cosang=cos(ang);

+wave_2_per_point24=xp=xq*sinang + yq*cosang;

+wave_2_per_point25=yp=xq*cosang - yq*sinang;

+wave_2_per_point26=zp=zq;

+wave_2_per_point27=

+wave_2_per_point28=//forearm movement;

+wave_2_per_point29=zp=zp-0.3;

+wave_2_per_point30=ang=3.14 + sin(tm*2 - 0.5)*1.5;

+wave_2_per_point31=sinang=sin(ang);cosang=cos(ang);

+wave_2_per_point32=xq=xp;

+wave_2_per_point33=yq=yp*sinang + zp*cosang;

+wave_2_per_point34=zq=yp*cosang - zp*sinang;

+wave_2_per_point35=

+wave_2_per_point36=//upper arm twist

+wave_2_per_point37=ang=-1.0 + cos(tm*3.1 + 0.5);

+wave_2_per_point38=sinang=sin(ang);cosang=cos(ang);

+wave_2_per_point39=xp=xq*sinang + yq*cosang;

+wave_2_per_point40=yp=xq*cosang - yq*sinang;

+wave_2_per_point41=zp=zq;

+wave_2_per_point42=

+wave_2_per_point43=//upper arm outward;

+wave_2_per_point44=zp=zp-0.35;

+wave_2_per_point45=ang=cos(tm*2.3)*1.75 - 1.05;

+wave_2_per_point46=sinang=sin(ang);cosang=cos(ang);

+wave_2_per_point47=xq=xp*sinang + zp*cosang;

+wave_2_per_point48=yq=yp;

+wave_2_per_point49=zq=xp*cosang - zp*sinang;

+wave_2_per_point50=

+wave_2_per_point51=//upper arm up down;

+wave_2_per_point52=ang=cos(tm)*0.5 - 0.5;

+wave_2_per_point53=sinang=sin(ang);cosang=cos(ang);

+wave_2_per_point54=xp=xq;

+wave_2_per_point55=yp=yq*cosang - zq*sinang;

+wave_2_per_point56=zp=yq*sinang + zq*cosang;

+wave_2_per_point57=

+wave_2_per_point58=//xp=xq;yp=yq;zp=zq;

+wave_2_per_point59=

+wave_2_per_point60=

+wave_2_per_point61=//project into screenspace and draw on screen

+wave_2_per_point62=zp=zp+2;

+wave_2_per_point63=xs=xp/zp;

+wave_2_per_point64=ys=yp/zp;

+wave_2_per_point65=

+wave_2_per_point66=x=xs+0.5;

+wave_2_per_point67=y=ys*1.3+0.5;

+wave_2_per_point68=

+wave_2_per_point69=a=if( equal(q8,1) , (1-sample) , sample);

+wave_2_per_point70=

+wave_2_per_point71=

+wave_2_per_point72=a=a* above( sin(tm*128*t8) , 0 );

+wave_2_per_point73=

+wave_2_per_point74=

+wave_2_per_point75=r=t4;

+wave_2_per_point76=g=t5;

+wave_2_per_point77=b=t6;

+wave_2_per_point78=

+wavecode_3_enabled=1

+wavecode_3_samples=512

+wavecode_3_sep=0

+wavecode_3_bSpectrum=0

+wavecode_3_bUseDots=1

+wavecode_3_bDrawThick=1

+wavecode_3_bAdditive=1

+wavecode_3_scaling=1.000000

+wavecode_3_smoothing=0.500000

+wavecode_3_r=1.000000

+wavecode_3_g=0.300000

+wavecode_3_b=0.100000

+wavecode_3_a=1.000000

+wave_3_per_frame1=t1=sin(time)*0.5+0.5;

+wave_3_per_frame2=t2=sin(time+2.1)*0.5+0.5;

+wave_3_per_frame3=t3=sin(time+4.2)*0.5+0.5;

+wave_3_per_frame4=

+wave_3_per_frame5=t4=sin(time+1.1)*0.5+0.5;

+wave_3_per_frame6=t5=sin(time+3.1)*0.5+0.5;

+wave_3_per_frame7=t6=sin(time+5.2)*0.5+0.5;

+wave_3_per_frame8=

+wave_3_per_frame9=

+wave_3_per_frame10=t8= int( sin(time*2)*2 + 3);

+wave_3_per_point1=n=sample*6.283;

+wave_3_per_point2=phs=-sample * 0.2;

+wave_3_per_point3=tm=q1 + phs;

+wave_3_per_point4=

+wave_3_per_point5=flip=flip+1;

+wave_3_per_point6=flip=flip*below(flip,2);

+wave_3_per_point7=

+wave_3_per_point8=xp=0;

+wave_3_per_point9=yp=flip*0.1 + (sin(tm)*0.5 + 0.5)*0.2 +0.1;

+wave_3_per_point10=yp=-yp;

+wave_3_per_point11=zp=0;

+wave_3_per_point12=

+wave_3_per_point13=//wrist movement;

+wave_3_per_point14=ang=sin(tm*2)*0.5 +0.5;

+wave_3_per_point15=

+wave_3_per_point16=sinang=sin(ang);cosang=cos(ang);

+wave_3_per_point17=xq=xp;

+wave_3_per_point18=yq=yp*sinang + zp*cosang;

+wave_3_per_point19=zq=yp*cosang - zp*sinang;

+wave_3_per_point20=yq=yp;

+wave_3_per_point21=zq=zp;

+wave_3_per_point22=

+wave_3_per_point23=ang=tm*8+1;

+wave_3_per_point24=sinang=sin(ang);cosang=cos(ang);

+wave_3_per_point25=xp=xq*sinang + yq*cosang;

+wave_3_per_point26=yp=xq*cosang - yq*sinang;

+wave_3_per_point27=zp=zq;

+wave_3_per_point28=

+wave_3_per_point29=//forearm movement;

+wave_3_per_point30=zp=zp-0.3;

+wave_3_per_point31=ang=3.14 + sin(tm*2 - 0.5)*1.5;

+wave_3_per_point32=sinang=sin(ang);cosang=cos(ang);

+wave_3_per_point33=xq=xp;

+wave_3_per_point34=yq=yp*sinang + zp*cosang;

+wave_3_per_point35=zq=yp*cosang - zp*sinang;

+wave_3_per_point36=

+wave_3_per_point37=//upper arm twist

+wave_3_per_point38=ang=-1.0 + cos(tm*3.1 + 0.5);

+wave_3_per_point39=sinang=sin(ang);cosang=cos(ang);

+wave_3_per_point40=xp=xq*sinang + yq*cosang;

+wave_3_per_point41=yp=xq*cosang - yq*sinang;

+wave_3_per_point42=zp=zq;

+wave_3_per_point43=

+wave_3_per_point44=//upper arm outward;

+wave_3_per_point45=zp=zp-0.35;

+wave_3_per_point46=ang=cos(tm*2.3)*1.75 - 1.05;

+wave_3_per_point47=sinang=sin(ang);cosang=cos(ang);

+wave_3_per_point48=xq=xp*sinang + zp*cosang;

+wave_3_per_point49=yq=yp;

+wave_3_per_point50=zq=xp*cosang - zp*sinang;

+wave_3_per_point51=

+wave_3_per_point52=//upper arm up down;

+wave_3_per_point53=ang=cos(tm)*0.5 - 0.5;

+wave_3_per_point54=sinang=sin(ang);cosang=cos(ang);

+wave_3_per_point55=xp=xq;

+wave_3_per_point56=yp=yq*cosang - zq*sinang;

+wave_3_per_point57=zp=yq*sinang + zq*cosang;

+wave_3_per_point58=

+wave_3_per_point59=//xp=xq;yp=yq;zp=zq;

+wave_3_per_point60=

+wave_3_per_point61=

+wave_3_per_point62=//project into screenspace and draw on screen

+wave_3_per_point63=zp=zp+2;

+wave_3_per_point64=xs=xp/zp;

+wave_3_per_point65=ys=yp/zp;

+wave_3_per_point66=

+wave_3_per_point67=x=xs+0.5;

+wave_3_per_point68=y=ys*1.3+0.5;

+wave_3_per_point69=

+wave_3_per_point70=

+wave_3_per_point71=a=if( equal(q8,1) , (1-sample) , sample);

+wave_3_per_point72=a=a*a;

+wave_3_per_point73=

+wave_3_per_point74=a=a* above( sin(tm*128*t8) , 0 );

+wave_3_per_point75=

+wave_3_per_point76=

+wave_3_per_point77=r=t4;

+wave_3_per_point78=g=t5;

+wave_3_per_point79=b=t6;

+shapecode_0_enabled=0

+shapecode_0_sides=5

+shapecode_0_additive=0

+shapecode_0_thickOutline=0

+shapecode_0_textured=1

+shapecode_0_x=0.500000

+shapecode_0_y=0.500000

+shapecode_0_rad=1.067790

+shapecode_0_ang=0.753982

+shapecode_0_tex_ang=0.000000

+shapecode_0_tex_zoom=0.779769

+shapecode_0_r=1.000000

+shapecode_0_g=1.000000

+shapecode_0_b=1.000000

+shapecode_0_a=1.000000

+shapecode_0_r2=1.000000

+shapecode_0_g2=1.000000

+shapecode_0_b2=1.000000

+shapecode_0_a2=0.000000

+shapecode_0_border_r=1.000000

+shapecode_0_border_g=1.000000

+shapecode_0_border_b=1.000000

+shapecode_0_border_a=0.000000

+shape_0_per_frame1=ang=sin(q1*0.15);

+shape_0_per_frame2=x=sin(q1*0.5) * 0.05 + 0.5;

+shape_0_per_frame3=y=cos(q1*0.63)* 0.05 + 0.5

+shapecode_1_enabled=0

+shapecode_1_sides=4

+shapecode_1_additive=0

+shapecode_1_thickOutline=0

+shapecode_1_textured=0

+shapecode_1_x=0.500000

+shapecode_1_y=0.500000

+shapecode_1_rad=0.100000

+shapecode_1_ang=0.000000

+shapecode_1_tex_ang=0.000000

+shapecode_1_tex_zoom=1.000000

+shapecode_1_r=1.000000

+shapecode_1_g=0.000000

+shapecode_1_b=0.000000

+shapecode_1_a=1.000000

+shapecode_1_r2=0.000000

+shapecode_1_g2=1.000000

+shapecode_1_b2=0.000000

+shapecode_1_a2=0.000000

+shapecode_1_border_r=1.000000

+shapecode_1_border_g=1.000000

+shapecode_1_border_b=1.000000

+shapecode_1_border_a=0.100000

+shapecode_2_enabled=0

+shapecode_2_sides=4

+shapecode_2_additive=0

+shapecode_2_thickOutline=0

+shapecode_2_textured=0

+shapecode_2_x=0.500000

+shapecode_2_y=0.500000

+shapecode_2_rad=0.100000

+shapecode_2_ang=0.000000

+shapecode_2_tex_ang=0.000000

+shapecode_2_tex_zoom=1.000000

+shapecode_2_r=1.000000

+shapecode_2_g=0.000000

+shapecode_2_b=0.000000

+shapecode_2_a=1.000000

+shapecode_2_r2=0.000000

+shapecode_2_g2=1.000000

+shapecode_2_b2=0.000000

+shapecode_2_a2=0.000000

+shapecode_2_border_r=1.000000

+shapecode_2_border_g=1.000000

+shapecode_2_border_b=1.000000

+shapecode_2_border_a=0.100000

+shapecode_3_enabled=0

+shapecode_3_sides=5

+shapecode_3_additive=1

+shapecode_3_thickOutline=0

+shapecode_3_textured=0

+shapecode_3_x=0.500000

+shapecode_3_y=0.500000

+shapecode_3_rad=0.038091

+shapecode_3_ang=0.000000

+shapecode_3_tex_ang=0.000000

+shapecode_3_tex_zoom=1.000000

+shapecode_3_r=1.000000

+shapecode_3_g=1.000000

+shapecode_3_b=1.000000

+shapecode_3_a=1.000000

+shapecode_3_r2=0.000000

+shapecode_3_g2=0.600000

+shapecode_3_b2=1.000000

+shapecode_3_a2=0.000000

+shapecode_3_border_r=1.000000

+shapecode_3_border_g=1.000000

+shapecode_3_border_b=1.000000

+shapecode_3_border_a=0.100000

+shape_3_per_frame1=tm=q1;

+shape_3_per_frame2=

+shape_3_per_frame3=xp=0;

+shape_3_per_frame4=yp=0.1;

+shape_3_per_frame5=zp=0;

+shape_3_per_frame6=

+shape_3_per_frame7=//wrist movement;

+shape_3_per_frame8=ang=sin(tm*2 )*0.5 +0.5;

+shape_3_per_frame9=

+shape_3_per_frame10=xq=xp;

+shape_3_per_frame11=sinang=sin(ang);cosang=cos(ang);

+shape_3_per_frame12=yq=yp*sinang + zp*cosang;

+shape_3_per_frame13=zq=yp*cosang - zp*sinang;

+shape_3_per_frame14=yq=yp;

+shape_3_per_frame15=zq=zp;

+shape_3_per_frame16=

+shape_3_per_frame17=ang=tm*8;

+shape_3_per_frame18=sinang=sin(ang);cosang=cos(ang);

+shape_3_per_frame19=xp=xq*sinang + yq*cosang;

+shape_3_per_frame20=yp=xq*cosang - yq*sinang;

+shape_3_per_frame21=zp=zq;

+shape_3_per_frame22=

+shape_3_per_frame23=//forearm movement;

+shape_3_per_frame24=zp=zp-0.3;

+shape_3_per_frame25=ang=3.14 + sin(tm*2 - 0.5)*1.5;

+shape_3_per_frame26=sinang=sin(ang);cosang=cos(ang);

+shape_3_per_frame27=xq=xp;

+shape_3_per_frame28=yq=yp*sinang + zp*cosang;

+shape_3_per_frame29=zq=yp*cosang - zp*sinang;

+shape_3_per_frame30=

+shape_3_per_frame31=//upper arm twist

+shape_3_per_frame32=ang=-1.0 + cos(tm*3.1 + 0.5);

+shape_3_per_frame33=sinang=sin(ang);cosang=cos(ang);

+shape_3_per_frame34=xp=xq*sinang + yq*cosang;

+shape_3_per_frame35=yp=xq*cosang - yq*sinang;

+shape_3_per_frame36=zp=zq;

+shape_3_per_frame37=

+shape_3_per_frame38=//upper arm outward;

+shape_3_per_frame39=zp=zp-0.35;

+shape_3_per_frame40=ang=cos(tm*2.3)*1.75 - 1.05;

+shape_3_per_frame41=sinang=sin(ang);cosang=cos(ang);

+shape_3_per_frame42=xq=xp*sinang + zp*cosang;

+shape_3_per_frame43=yq=yp;

+shape_3_per_frame44=zq=xp*cosang - zp*sinang;

+shape_3_per_frame45=

+shape_3_per_frame46=//upper arm up down;

+shape_3_per_frame47=ang=cos(tm)*0.5 - 0.5;

+shape_3_per_frame48=sinang=sin(ang);cosang=cos(ang);

+shape_3_per_frame49=xp=xq;

+shape_3_per_frame50=yp=yq*cosang - zq*sinang;

+shape_3_per_frame51=zp=yq*sinang + zq*cosang;

+shape_3_per_frame52=

+shape_3_per_frame53=//xp=xq;yp=yq;zp=zq;

+shape_3_per_frame54=

+shape_3_per_frame55=

+shape_3_per_frame56=//project into screenspace and draw on screen

+shape_3_per_frame57=zp=zp+2;

+shape_3_per_frame58=xs=xp/zp;

+shape_3_per_frame59=ys=yp/zp;

+shape_3_per_frame60=

+shape_3_per_frame61=x=xs+0.5;

+shape_3_per_frame62=y=ys*1.3+0.5;

+shape_3_per_frame63=

+shape_3_per_frame64=

+shape_3_per_frame65=

+shape_3_per_frame66=

+per_frame_init_1=mv_x=64;mv_y=48;

+per_frame_init_2=nut=0;

+per_frame_init_3=stp=0;stq=0;

+per_frame_init_4=rtp=0;rtq=0;

+per_frame_init_5=wvr=0;

+per_frame_init_6=decay=0;

+per_frame_init_7=dcsp=0;

+per_frame_init_8=warp=0

+per_frame_init_9=

+per_frame_1=

+per_frame_2=//krash's beat detection code

+per_frame_3=volume = 0.3*(bass+mid+att);

+per_frame_4=beatrate = equal(beatrate,0) + (1-equal(beatrate,0))*(below(volume,0.01) + (1-below(volume,0.01))*beatrate);

+per_frame_5=lastbeat = lastbeat + equal(lastbeat,0)*time;

+per_frame_6=meanbass_att = 0.1*(meanbass_att*9 + bass_att);

+per_frame_7=peakbass_att = max(bass_att,peakbass_att);

+per_frame_8=beatrate = max(if(beat,if(below(time-lastbeat,2*beatrate),0.1*(beatrate*9 + time - lastbeat),beatrate),beatrate),0.1);

+per_frame_9=peakbass_att = beat*bass_att + (1-beat)*peakbass_att*(above(time - lastbeat, 2*beatrate)*0.95 + (1-above(time - lastbeat, 2*beatrate))*0.995);

+per_frame_10=lastbeat = beat*time + (1-beat)*lastbeat;

+per_frame_11=peakbass_att = max(peakbass_att,1.1*meanbass_att);

+per_frame_12=beat = above(volume,0.8)*below(peakbass_att - bass_att, 0.05*peakbass_att)*above(time - lastbeat, 0.1 + 0.5*(beatrate - 0.1));

+per_frame_13=beatcounter = beatcounter + beat;

+per_frame_14=mode = if(beat*equal(beatcounter%2,0),1-mode,mode);

+per_frame_15=flip = 2*mode-1;

+per_frame_16=monitor=flip;

+per_frame_17=q8=flip;

+per_frame_18=

+per_frame_19=

+per_frame_20=decay=1;

+per_frame_21=zoom=1.002;

+per_frame_22=

+per_frame_23=vol=(bass_att+mid_att+treb_att)*0.25;

+per_frame_24=vol=vol*vol;

+per_frame_25=mtime=mtime+vol*0.1*flip*(55/fps);

+per_frame_26=

+per_frame_27=q1=mtime*0.4;

+per_frame_28=

+per_frame_29=warp=0.0

+per_pixel_1=//tm=time+(sin(time)*rad);

+per_pixel_2=var=tan(time)*treb*treb;

+per_pixel_3=

+per_pixel_4=zoom=1+(rad/40)+(var/40);

+per_pixel_5=//rot=((rad/100)*var)*sin(time);

diff --git "a/presets/Eo.S. - glowsticks v2 05 and proton lights \050+Krash\047s beat code\051 _Phat_remix07 recursive demons.milk" "b/presets/Eo.S. - glowsticks v2 05 and proton lights \050+Krash\047s beat code\051 _Phat_remix07 recursive demons.milk"
new file mode 100644
index 0000000..caf8ffb
--- /dev/null
+++ "b/presets/Eo.S. - glowsticks v2 05 and proton lights \050+Krash\047s beat code\051 _Phat_remix07 recursive demons.milk"
@@ -0,0 +1,719 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.560000

+fDecay=0.960000

+fVideoEchoZoom=0.996630

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=1

+nWaveMode=2

+bAdditiveWaves=0

+bWaveDots=1

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=1

+bDarken=1

+bSolarize=0

+bInvert=0

+fWaveAlpha=0.001000

+fWaveScale=0.011726

+fWaveSmoothing=0.900000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.750000

+fModWaveAlphaEnd=0.950000

+fWarpAnimSpeed=0.037492

+fWarpScale=0.014889

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=0.033004

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.400000

+wave_b=0.300000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.005000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=0.000000

+ib_size=0.005000

+ib_r=0.000000

+ib_g=1.000000

+ib_b=0.000000

+ib_a=0.000000

+nMotionVectorsX=0.000000

+nMotionVectorsY=43.199997

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=0.910000

+mv_b=0.710000

+mv_a=0.000000

+wavecode_0_enabled=1

+wavecode_0_samples=512

+wavecode_0_sep=0

+wavecode_0_bSpectrum=0

+wavecode_0_bUseDots=0

+wavecode_0_bDrawThick=0

+wavecode_0_bAdditive=0

+wavecode_0_scaling=1.000000

+wavecode_0_smoothing=0.500000

+wavecode_0_r=0.100000

+wavecode_0_g=1.000000

+wavecode_0_b=0.700000

+wavecode_0_a=1.000000

+wave_0_per_frame1=t1=sin(time)*0.5+0.5;

+wave_0_per_frame2=t2=sin(time+2.1)*0.5+0.5;

+wave_0_per_frame3=t3=sin(time+4.2)*0.5+0.5;

+wave_0_per_frame4=

+wave_0_per_frame5=t4=sin(time+1.1)*0.5+0.5;

+wave_0_per_frame6=t5=sin(time+3.1)*0.5+0.5;

+wave_0_per_frame7=t6=sin(time+5.2)*0.5+0.5;

+wave_0_per_point1=n=sample*6.283;

+wave_0_per_point2=phs=-sample * 0.2;

+wave_0_per_point3=tm=q1 + phs;

+wave_0_per_point4=

+wave_0_per_point5=flip=flip+1;

+wave_0_per_point6=flip=flip*below(flip,2);

+wave_0_per_point7=

+wave_0_per_point8=xp=0;

+wave_0_per_point9=yp=flip*0.1 + (sin(tm)*0.5 + 0.5)*0.2;

+wave_0_per_point10=zp=0;

+wave_0_per_point11=

+wave_0_per_point12=//wrist movement;

+wave_0_per_point13=ang=sin(tm*2 )*0.5 +0.5;

+wave_0_per_point14=

+wave_0_per_point15=xq=xp;

+wave_0_per_point16=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point17=yq=yp*sinang + zp*cosang;

+wave_0_per_point18=zq=yp*cosang - zp*sinang;

+wave_0_per_point19=yq=yp;

+wave_0_per_point20=zq=zp;

+wave_0_per_point21=

+wave_0_per_point22=ang=tm*8;

+wave_0_per_point23=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point24=xp=xq*sinang + yq*cosang;

+wave_0_per_point25=yp=xq*cosang - yq*sinang;

+wave_0_per_point26=zp=zq;

+wave_0_per_point27=

+wave_0_per_point28=//forearm movement;

+wave_0_per_point29=zp=zp-0.3;

+wave_0_per_point30=ang=3.14 + sin(tm*2 - 0.5)*1.5;

+wave_0_per_point31=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point32=xq=xp;

+wave_0_per_point33=yq=yp*sinang + zp*cosang;

+wave_0_per_point34=zq=yp*cosang - zp*sinang;

+wave_0_per_point35=

+wave_0_per_point36=//upper arm twist

+wave_0_per_point37=ang=-1.0 + cos(tm*3.1 + 0.5);

+wave_0_per_point38=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point39=xp=xq*sinang + yq*cosang;

+wave_0_per_point40=yp=xq*cosang - yq*sinang;

+wave_0_per_point41=zp=zq;

+wave_0_per_point42=

+wave_0_per_point43=//upper arm outward;

+wave_0_per_point44=zp=zp-0.35;

+wave_0_per_point45=ang=cos(tm*2.3)*1.75 - 1.05;

+wave_0_per_point46=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point47=xq=xp*sinang + zp*cosang;

+wave_0_per_point48=yq=yp;

+wave_0_per_point49=zq=xp*cosang - zp*sinang;

+wave_0_per_point50=

+wave_0_per_point51=//upper arm up down;

+wave_0_per_point52=ang=cos(tm)*0.5 - 0.5;

+wave_0_per_point53=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point54=xp=xq;

+wave_0_per_point55=yp=yq*cosang - zq*sinang;

+wave_0_per_point56=zp=yq*sinang + zq*cosang;

+wave_0_per_point57=

+wave_0_per_point58=//xp=xq;yp=yq;zp=zq;

+wave_0_per_point59=

+wave_0_per_point60=

+wave_0_per_point61=//project into screenspace and draw on screen

+wave_0_per_point62=zp=zp+2;

+wave_0_per_point63=xs=xp/zp;

+wave_0_per_point64=ys=yp/zp;

+wave_0_per_point65=

+wave_0_per_point66=x=xs+0.5;

+wave_0_per_point67=y=ys*1.3+0.5;

+wave_0_per_point68=

+wave_0_per_point69=

+wave_0_per_point70=a=if( equal(q8,1) , (1-sample) , sample);

+wave_0_per_point71=a=a*a;

+wave_0_per_point72=

+wave_0_per_point73=b=b+pow(1-sample,2)*0.3;

+wave_0_per_point74=

+wave_0_per_point75=

+wave_0_per_point76=

+wave_0_per_point77=r1=t1;

+wave_0_per_point78=g1=t2;

+wave_0_per_point79=b1=t3;

+wave_0_per_point80=r2=t4;

+wave_0_per_point81=g2=t5;

+wave_0_per_point82=b2=t6;

+wave_0_per_point83=

+wave_0_per_point84=r=r1*flip + r2*(1-flip);

+wave_0_per_point85=g=g1*flip + g2*(1-flip);

+wave_0_per_point86=b=b1*flip + b2*(1-flip);

+wavecode_1_enabled=1

+wavecode_1_samples=512

+wavecode_1_sep=0

+wavecode_1_bSpectrum=0

+wavecode_1_bUseDots=0

+wavecode_1_bDrawThick=0

+wavecode_1_bAdditive=0

+wavecode_1_scaling=1.000000

+wavecode_1_smoothing=0.500000

+wavecode_1_r=0.200000

+wavecode_1_g=1.000000

+wavecode_1_b=0.600000

+wavecode_1_a=1.000000

+wave_1_per_frame1=t1=sin(time)*0.5+0.5;

+wave_1_per_frame2=t2=sin(time+2.1)*0.5+0.5;

+wave_1_per_frame3=t3=sin(time+4.2)*0.5+0.5;

+wave_1_per_frame4=

+wave_1_per_frame5=t4=sin(time+1.1)*0.5+0.5;

+wave_1_per_frame6=t5=sin(time+3.1)*0.5+0.5;

+wave_1_per_frame7=t6=sin(time+5.2)*0.5+0.5;

+wave_1_per_point1=n=sample*6.283;

+wave_1_per_point2=phs=-sample * 0.2;

+wave_1_per_point3=tm=q1 + phs;

+wave_1_per_point4=

+wave_1_per_point5=flip=flip+1;

+wave_1_per_point6=flip=flip*below(flip,2);

+wave_1_per_point7=

+wave_1_per_point8=xp=0;

+wave_1_per_point9=yp=flip*0.1 + (sin(tm)*0.5 + 0.5)*0.2 +0.1;

+wave_1_per_point10=yp=-yp;

+wave_1_per_point11=zp=0;

+wave_1_per_point12=

+wave_1_per_point13=//wrist movement;

+wave_1_per_point14=ang=sin(tm*2)*0.5 +0.5;

+wave_1_per_point15=

+wave_1_per_point16=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point17=xq=xp;

+wave_1_per_point18=yq=yp*sinang + zp*cosang;

+wave_1_per_point19=zq=yp*cosang - zp*sinang;

+wave_1_per_point20=yq=yp;

+wave_1_per_point21=zq=zp;

+wave_1_per_point22=

+wave_1_per_point23=ang=tm*8;

+wave_1_per_point24=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point25=xp=xq*sinang + yq*cosang;

+wave_1_per_point26=yp=xq*cosang - yq*sinang;

+wave_1_per_point27=zp=zq;

+wave_1_per_point28=

+wave_1_per_point29=//forearm movement;

+wave_1_per_point30=zp=zp-0.3;

+wave_1_per_point31=ang=3.14 + sin(tm*2 - 0.5)*1.5;

+wave_1_per_point32=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point33=xq=xp;

+wave_1_per_point34=yq=yp*sinang + zp*cosang;

+wave_1_per_point35=zq=yp*cosang - zp*sinang;

+wave_1_per_point36=

+wave_1_per_point37=//upper arm twist

+wave_1_per_point38=ang=-1.0 + cos(tm*3.1 + 0.5);

+wave_1_per_point39=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point40=xp=xq*sinang + yq*cosang;

+wave_1_per_point41=yp=xq*cosang - yq*sinang;

+wave_1_per_point42=zp=zq;

+wave_1_per_point43=

+wave_1_per_point44=//upper arm outward;

+wave_1_per_point45=zp=zp-0.35;

+wave_1_per_point46=ang=cos(tm*2.3)*1.75 - 1.05;

+wave_1_per_point47=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point48=xq=xp*sinang + zp*cosang;

+wave_1_per_point49=yq=yp;

+wave_1_per_point50=zq=xp*cosang - zp*sinang;

+wave_1_per_point51=

+wave_1_per_point52=//upper arm up down;

+wave_1_per_point53=ang=cos(tm)*0.5 - 0.5;

+wave_1_per_point54=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point55=xp=xq;

+wave_1_per_point56=yp=yq*cosang - zq*sinang;

+wave_1_per_point57=zp=yq*sinang + zq*cosang;

+wave_1_per_point58=

+wave_1_per_point59=//xp=xq;yp=yq;zp=zq;

+wave_1_per_point60=

+wave_1_per_point61=

+wave_1_per_point62=//project into screenspace and draw on screen

+wave_1_per_point63=zp=zp+2;

+wave_1_per_point64=xs=xp/zp;

+wave_1_per_point65=ys=yp/zp;

+wave_1_per_point66=

+wave_1_per_point67=x=xs+0.5;

+wave_1_per_point68=y=ys*1.3+0.5;

+wave_1_per_point69=

+wave_1_per_point70=

+wave_1_per_point71=a=if( equal(q8,1) , (1-sample) , sample);

+wave_1_per_point72=a=a*a;

+wave_1_per_point73=

+wave_1_per_point74=

+wave_1_per_point75=b=b+pow(1-sample,2)*0.3;

+wave_1_per_point76=

+wave_1_per_point77=r1=t1;

+wave_1_per_point78=g1=t2;

+wave_1_per_point79=b1=t3;

+wave_1_per_point80=r2=t4;

+wave_1_per_point81=g2=t5;

+wave_1_per_point82=b2=t6;

+wave_1_per_point83=

+wave_1_per_point84=r=r1*flip + r2*(1-flip);

+wave_1_per_point85=g=g1*flip + g2*(1-flip);

+wave_1_per_point86=b=b1*flip + b2*(1-flip);

+wavecode_2_enabled=0

+wavecode_2_samples=512

+wavecode_2_sep=0

+wavecode_2_bSpectrum=0

+wavecode_2_bUseDots=0

+wavecode_2_bDrawThick=0

+wavecode_2_bAdditive=0

+wavecode_2_scaling=1.000000

+wavecode_2_smoothing=0.500000

+wavecode_2_r=0.100000

+wavecode_2_g=1.000000

+wavecode_2_b=0.700000

+wavecode_2_a=1.000000

+wave_2_per_frame1=t1=sin(time)*0.5+0.5;

+wave_2_per_frame2=t2=sin(time+2.1)*0.5+0.5;

+wave_2_per_frame3=t3=sin(time+4.2)*0.5+0.5;

+wave_2_per_frame4=

+wave_2_per_frame5=t4=sin(time+1.1)*0.5+0.5;

+wave_2_per_frame6=t5=sin(time+3.1)*0.5+0.5;

+wave_2_per_frame7=t6=sin(time+5.2)*0.5+0.5;

+wave_2_per_point1=n=sample*6.283;

+wave_2_per_point2=phs=-sample * 0.2;

+wave_2_per_point3=tm=q1 + phs;

+wave_2_per_point4=

+wave_2_per_point5=flip=flip+1;

+wave_2_per_point6=flip=flip*below(flip,2);

+wave_2_per_point7=

+wave_2_per_point8=xp=0;

+wave_2_per_point9=yp=flip*0.1 + (sin(tm)*0.5 + 0.5)*0.2;

+wave_2_per_point10=zp=0;

+wave_2_per_point11=

+wave_2_per_point12=//wrist movement;

+wave_2_per_point13=ang=sin(tm*2 )*0.5 +0.5;

+wave_2_per_point14=

+wave_2_per_point15=xq=xp;

+wave_2_per_point16=sinang=sin(ang);cosang=cos(ang);

+wave_2_per_point17=yq=yp*sinang + zp*cosang;

+wave_2_per_point18=zq=yp*cosang - zp*sinang;

+wave_2_per_point19=yq=yp;

+wave_2_per_point20=zq=zp;

+wave_2_per_point21=

+wave_2_per_point22=ang=tm*8;

+wave_2_per_point23=sinang=sin(ang);cosang=cos(ang);

+wave_2_per_point24=xp=xq*sinang + yq*cosang;

+wave_2_per_point25=yp=xq*cosang - yq*sinang;

+wave_2_per_point26=zp=zq;

+wave_2_per_point27=

+wave_2_per_point28=//forearm movement;

+wave_2_per_point29=zp=zp-0.3;

+wave_2_per_point30=ang=3.14 + sin(tm*2 - 0.5)*1.5;

+wave_2_per_point31=sinang=sin(ang);cosang=cos(ang);

+wave_2_per_point32=xq=xp;

+wave_2_per_point33=yq=yp*sinang + zp*cosang;

+wave_2_per_point34=zq=yp*cosang - zp*sinang;

+wave_2_per_point35=

+wave_2_per_point36=//upper arm twist

+wave_2_per_point37=ang=-1.0 + cos(tm*3.1 + 0.5);

+wave_2_per_point38=sinang=sin(ang);cosang=cos(ang);

+wave_2_per_point39=xp=xq*sinang + yq*cosang;

+wave_2_per_point40=yp=xq*cosang - yq*sinang;

+wave_2_per_point41=zp=zq;

+wave_2_per_point42=

+wave_2_per_point43=//upper arm outward;

+wave_2_per_point44=zp=zp-0.35;

+wave_2_per_point45=ang=cos(tm*2.3)*1.75 - 1.05;

+wave_2_per_point46=sinang=sin(ang);cosang=cos(ang);

+wave_2_per_point47=xq=xp*sinang + zp*cosang;

+wave_2_per_point48=yq=yp;

+wave_2_per_point49=zq=xp*cosang - zp*sinang;

+wave_2_per_point50=

+wave_2_per_point51=//upper arm up down;

+wave_2_per_point52=ang=cos(tm)*0.5 - 0.5;

+wave_2_per_point53=sinang=sin(ang);cosang=cos(ang);

+wave_2_per_point54=xp=xq;

+wave_2_per_point55=yp=yq*cosang - zq*sinang;

+wave_2_per_point56=zp=yq*sinang + zq*cosang;

+wave_2_per_point57=

+wave_2_per_point58=//xp=xq;yp=yq;zp=zq;

+wave_2_per_point59=

+wave_2_per_point60=

+wave_2_per_point61=//project into screenspace and draw on screen

+wave_2_per_point62=zp=zp+2;

+wave_2_per_point63=xs=-xp/zp;

+wave_2_per_point64=ys=yp/zp;

+wave_2_per_point65=

+wave_2_per_point66=x=xs+0.5;

+wave_2_per_point67=y=ys*1.3+0.5;

+wave_2_per_point68=

+wave_2_per_point69=

+wave_2_per_point70=a=if( equal(q8,1) , (1-sample) , sample);

+wave_2_per_point71=a=a*a;

+wave_2_per_point72=

+wave_2_per_point73=b=b+pow(1-sample,2)*0.3;

+wave_2_per_point74=

+wave_2_per_point75=

+wave_2_per_point76=

+wave_2_per_point77=r1=t1;

+wave_2_per_point78=g1=t2;

+wave_2_per_point79=b1=t3;

+wave_2_per_point80=r2=t4;

+wave_2_per_point81=g2=t5;

+wave_2_per_point82=b2=t6;

+wave_2_per_point83=

+wave_2_per_point84=r=r1*flip + r2*(1-flip);

+wave_2_per_point85=g=g1*flip + g2*(1-flip);

+wave_2_per_point86=b=b1*flip + b2*(1-flip);

+wavecode_3_enabled=0

+wavecode_3_samples=512

+wavecode_3_sep=0

+wavecode_3_bSpectrum=0

+wavecode_3_bUseDots=0

+wavecode_3_bDrawThick=0

+wavecode_3_bAdditive=0

+wavecode_3_scaling=1.000000

+wavecode_3_smoothing=0.500000

+wavecode_3_r=0.200000

+wavecode_3_g=1.000000

+wavecode_3_b=0.600000

+wavecode_3_a=1.000000

+wave_3_per_frame1=t1=sin(time)*0.5+0.5;

+wave_3_per_frame2=t2=sin(time+2.1)*0.5+0.5;

+wave_3_per_frame3=t3=sin(time+4.2)*0.5+0.5;

+wave_3_per_frame4=

+wave_3_per_frame5=t4=sin(time+1.1)*0.5+0.5;

+wave_3_per_frame6=t5=sin(time+3.1)*0.5+0.5;

+wave_3_per_frame7=t6=sin(time+5.2)*0.5+0.5;

+wave_3_per_point1=n=sample*6.283;

+wave_3_per_point2=phs=-sample * 0.2;

+wave_3_per_point3=tm=q1 + phs;

+wave_3_per_point4=

+wave_3_per_point5=flip=flip+1;

+wave_3_per_point6=flip=flip*below(flip,2);

+wave_3_per_point7=

+wave_3_per_point8=xp=0;

+wave_3_per_point9=yp=flip*0.1 + (sin(tm)*0.5 + 0.5)*0.2 +0.1;

+wave_3_per_point10=yp=-yp;

+wave_3_per_point11=zp=0;

+wave_3_per_point12=

+wave_3_per_point13=//wrist movement;

+wave_3_per_point14=ang=sin(tm*2)*0.5 +0.5;

+wave_3_per_point15=

+wave_3_per_point16=sinang=sin(ang);cosang=cos(ang);

+wave_3_per_point17=xq=xp;

+wave_3_per_point18=yq=yp*sinang + zp*cosang;

+wave_3_per_point19=zq=yp*cosang - zp*sinang;

+wave_3_per_point20=yq=yp;

+wave_3_per_point21=zq=zp;

+wave_3_per_point22=

+wave_3_per_point23=ang=tm*8;

+wave_3_per_point24=sinang=sin(ang);cosang=cos(ang);

+wave_3_per_point25=xp=xq*sinang + yq*cosang;

+wave_3_per_point26=yp=xq*cosang - yq*sinang;

+wave_3_per_point27=zp=zq;

+wave_3_per_point28=

+wave_3_per_point29=//forearm movement;

+wave_3_per_point30=zp=zp-0.3;

+wave_3_per_point31=ang=3.14 + sin(tm*2 - 0.5)*1.5;

+wave_3_per_point32=sinang=sin(ang);cosang=cos(ang);

+wave_3_per_point33=xq=xp;

+wave_3_per_point34=yq=yp*sinang + zp*cosang;

+wave_3_per_point35=zq=yp*cosang - zp*sinang;

+wave_3_per_point36=

+wave_3_per_point37=//upper arm twist

+wave_3_per_point38=ang=-1.0 + cos(tm*3.1 + 0.5);

+wave_3_per_point39=sinang=sin(ang);cosang=cos(ang);

+wave_3_per_point40=xp=xq*sinang + yq*cosang;

+wave_3_per_point41=yp=xq*cosang - yq*sinang;

+wave_3_per_point42=zp=zq;

+wave_3_per_point43=

+wave_3_per_point44=//upper arm outward;

+wave_3_per_point45=zp=zp-0.35;

+wave_3_per_point46=ang=cos(tm*2.3)*1.75 - 1.05;

+wave_3_per_point47=sinang=sin(ang);cosang=cos(ang);

+wave_3_per_point48=xq=xp*sinang + zp*cosang;

+wave_3_per_point49=yq=yp;

+wave_3_per_point50=zq=xp*cosang - zp*sinang;

+wave_3_per_point51=

+wave_3_per_point52=//upper arm up down;

+wave_3_per_point53=ang=cos(tm)*0.5 - 0.5;

+wave_3_per_point54=sinang=sin(ang);cosang=cos(ang);

+wave_3_per_point55=xp=xq;

+wave_3_per_point56=yp=yq*cosang - zq*sinang;

+wave_3_per_point57=zp=yq*sinang + zq*cosang;

+wave_3_per_point58=

+wave_3_per_point59=//xp=xq;yp=yq;zp=zq;

+wave_3_per_point60=

+wave_3_per_point61=

+wave_3_per_point62=//project into screenspace and draw on screen

+wave_3_per_point63=zp=zp+2;

+wave_3_per_point64=xs=-xp/zp;

+wave_3_per_point65=ys=yp/zp;

+wave_3_per_point66=

+wave_3_per_point67=x=xs+0.5;

+wave_3_per_point68=y=ys*1.3+0.5;

+wave_3_per_point69=

+wave_3_per_point70=

+wave_3_per_point71=a=if( equal(q8,1) , (1-sample) , sample);

+wave_3_per_point72=a=a*a;

+wave_3_per_point73=

+wave_3_per_point74=

+wave_3_per_point75=b=b+pow(1-sample,2)*0.3;

+wave_3_per_point76=

+wave_3_per_point77=r1=t1;

+wave_3_per_point78=g1=t2;

+wave_3_per_point79=b1=t3;

+wave_3_per_point80=r2=t4;

+wave_3_per_point81=g2=t5;

+wave_3_per_point82=b2=t6;

+wave_3_per_point83=

+wave_3_per_point84=r=r1*flip + r2*(1-flip);

+wave_3_per_point85=g=g1*flip + g2*(1-flip);

+wave_3_per_point86=b=b1*flip + b2*(1-flip);

+shapecode_0_enabled=0

+shapecode_0_sides=5

+shapecode_0_additive=0

+shapecode_0_thickOutline=0

+shapecode_0_textured=1

+shapecode_0_x=0.500000

+shapecode_0_y=0.500000

+shapecode_0_rad=1.067790

+shapecode_0_ang=0.753982

+shapecode_0_tex_ang=0.000000

+shapecode_0_tex_zoom=0.779769

+shapecode_0_r=1.000000

+shapecode_0_g=1.000000

+shapecode_0_b=1.000000

+shapecode_0_a=1.000000

+shapecode_0_r2=1.000000

+shapecode_0_g2=1.000000

+shapecode_0_b2=1.000000

+shapecode_0_a2=0.000000

+shapecode_0_border_r=1.000000

+shapecode_0_border_g=1.000000

+shapecode_0_border_b=1.000000

+shapecode_0_border_a=0.000000

+shape_0_per_frame1=ang=sin(q1*0.15);

+shape_0_per_frame2=x=sin(q1*0.5) * 0.05 + 0.5;

+shape_0_per_frame3=y=cos(q1*0.63)* 0.05 + 0.5

+shapecode_1_enabled=0

+shapecode_1_sides=4

+shapecode_1_additive=0

+shapecode_1_thickOutline=0

+shapecode_1_textured=0

+shapecode_1_x=0.500000

+shapecode_1_y=0.500000

+shapecode_1_rad=0.100000

+shapecode_1_ang=0.000000

+shapecode_1_tex_ang=0.000000

+shapecode_1_tex_zoom=1.000000

+shapecode_1_r=1.000000

+shapecode_1_g=0.000000

+shapecode_1_b=0.000000

+shapecode_1_a=1.000000

+shapecode_1_r2=0.000000

+shapecode_1_g2=1.000000

+shapecode_1_b2=0.000000

+shapecode_1_a2=0.000000

+shapecode_1_border_r=1.000000

+shapecode_1_border_g=1.000000

+shapecode_1_border_b=1.000000

+shapecode_1_border_a=0.100000

+shapecode_2_enabled=0

+shapecode_2_sides=4

+shapecode_2_additive=0

+shapecode_2_thickOutline=0

+shapecode_2_textured=0

+shapecode_2_x=0.500000

+shapecode_2_y=0.500000

+shapecode_2_rad=0.100000

+shapecode_2_ang=0.000000

+shapecode_2_tex_ang=0.000000

+shapecode_2_tex_zoom=1.000000

+shapecode_2_r=1.000000

+shapecode_2_g=0.000000

+shapecode_2_b=0.000000

+shapecode_2_a=1.000000

+shapecode_2_r2=0.000000

+shapecode_2_g2=1.000000

+shapecode_2_b2=0.000000

+shapecode_2_a2=0.000000

+shapecode_2_border_r=1.000000

+shapecode_2_border_g=1.000000

+shapecode_2_border_b=1.000000

+shapecode_2_border_a=0.100000

+shapecode_3_enabled=0

+shapecode_3_sides=5

+shapecode_3_additive=1

+shapecode_3_thickOutline=0

+shapecode_3_textured=0

+shapecode_3_x=0.500000

+shapecode_3_y=0.500000

+shapecode_3_rad=0.038091

+shapecode_3_ang=0.000000

+shapecode_3_tex_ang=0.000000

+shapecode_3_tex_zoom=1.000000

+shapecode_3_r=1.000000

+shapecode_3_g=1.000000

+shapecode_3_b=1.000000

+shapecode_3_a=1.000000

+shapecode_3_r2=0.000000

+shapecode_3_g2=0.600000

+shapecode_3_b2=1.000000

+shapecode_3_a2=0.000000

+shapecode_3_border_r=1.000000

+shapecode_3_border_g=1.000000

+shapecode_3_border_b=1.000000

+shapecode_3_border_a=0.100000

+shape_3_per_frame1=tm=q1;

+shape_3_per_frame2=

+shape_3_per_frame3=xp=0;

+shape_3_per_frame4=yp=0.1;

+shape_3_per_frame5=zp=0;

+shape_3_per_frame6=

+shape_3_per_frame7=//wrist movement;

+shape_3_per_frame8=ang=sin(tm*2 )*0.5 +0.5;

+shape_3_per_frame9=

+shape_3_per_frame10=xq=xp;

+shape_3_per_frame11=sinang=sin(ang);cosang=cos(ang);

+shape_3_per_frame12=yq=yp*sinang + zp*cosang;

+shape_3_per_frame13=zq=yp*cosang - zp*sinang;

+shape_3_per_frame14=yq=yp;

+shape_3_per_frame15=zq=zp;

+shape_3_per_frame16=

+shape_3_per_frame17=ang=tm*8;

+shape_3_per_frame18=sinang=sin(ang);cosang=cos(ang);

+shape_3_per_frame19=xp=xq*sinang + yq*cosang;

+shape_3_per_frame20=yp=xq*cosang - yq*sinang;

+shape_3_per_frame21=zp=zq;

+shape_3_per_frame22=

+shape_3_per_frame23=//forearm movement;

+shape_3_per_frame24=zp=zp-0.3;

+shape_3_per_frame25=ang=3.14 + sin(tm*2 - 0.5)*1.5;

+shape_3_per_frame26=sinang=sin(ang);cosang=cos(ang);

+shape_3_per_frame27=xq=xp;

+shape_3_per_frame28=yq=yp*sinang + zp*cosang;

+shape_3_per_frame29=zq=yp*cosang - zp*sinang;

+shape_3_per_frame30=

+shape_3_per_frame31=//upper arm twist

+shape_3_per_frame32=ang=-1.0 + cos(tm*3.1 + 0.5);

+shape_3_per_frame33=sinang=sin(ang);cosang=cos(ang);

+shape_3_per_frame34=xp=xq*sinang + yq*cosang;

+shape_3_per_frame35=yp=xq*cosang - yq*sinang;

+shape_3_per_frame36=zp=zq;

+shape_3_per_frame37=

+shape_3_per_frame38=//upper arm outward;

+shape_3_per_frame39=zp=zp-0.35;

+shape_3_per_frame40=ang=cos(tm*2.3)*1.75 - 1.05;

+shape_3_per_frame41=sinang=sin(ang);cosang=cos(ang);

+shape_3_per_frame42=xq=xp*sinang + zp*cosang;

+shape_3_per_frame43=yq=yp;

+shape_3_per_frame44=zq=xp*cosang - zp*sinang;

+shape_3_per_frame45=

+shape_3_per_frame46=//upper arm up down;

+shape_3_per_frame47=ang=cos(tm)*0.5 - 0.5;

+shape_3_per_frame48=sinang=sin(ang);cosang=cos(ang);

+shape_3_per_frame49=xp=xq;

+shape_3_per_frame50=yp=yq*cosang - zq*sinang;

+shape_3_per_frame51=zp=yq*sinang + zq*cosang;

+shape_3_per_frame52=

+shape_3_per_frame53=//xp=xq;yp=yq;zp=zq;

+shape_3_per_frame54=

+shape_3_per_frame55=

+shape_3_per_frame56=//project into screenspace and draw on screen

+shape_3_per_frame57=zp=zp+2;

+shape_3_per_frame58=xs=xp/zp;

+shape_3_per_frame59=ys=yp/zp;

+shape_3_per_frame60=

+shape_3_per_frame61=x=xs+0.5;

+shape_3_per_frame62=y=ys*1.3+0.5;

+shape_3_per_frame63=

+shape_3_per_frame64=

+shape_3_per_frame65=

+shape_3_per_frame66=

+per_frame_init_1=mv_x=64;mv_y=48;

+per_frame_init_2=nut=0;

+per_frame_init_3=stp=0;stq=0;

+per_frame_init_4=rtp=0;rtq=0;

+per_frame_init_5=wvr=0;

+per_frame_init_6=decay=0;

+per_frame_init_7=dcsp=0;

+per_frame_init_8=warp=0

+per_frame_init_9=

+per_frame_1=zoom=1;

+per_frame_2=//krash's beat detection code

+per_frame_3=volume = 0.3*(bass+mid+att);

+per_frame_4=beatrate = equal(beatrate,0) + (1-equal(beatrate,0))*(below(volume,0.01) + (1-below(volume,0.01))*beatrate);

+per_frame_5=lastbeat = lastbeat + equal(lastbeat,0)*time;

+per_frame_6=meanbass_att = 0.1*(meanbass_att*9 + bass_att);

+per_frame_7=peakbass_att = max(bass_att,peakbass_att);

+per_frame_8=beatrate = max(if(beat,if(below(time-lastbeat,2*beatrate),0.1*(beatrate*9 + time - lastbeat),beatrate),beatrate),0.1);

+per_frame_9=peakbass_att = beat*bass_att + (1-beat)*peakbass_att*(above(time - lastbeat, 2*beatrate)*0.95 + (1-above(time - lastbeat, 2*beatrate))*0.995);

+per_frame_10=lastbeat = beat*time + (1-beat)*lastbeat;

+per_frame_11=peakbass_att = max(peakbass_att,1.1*meanbass_att);

+per_frame_12=beat = above(volume,0.8)*below(peakbass_att - bass_att, 0.05*peakbass_att)*above(time - lastbeat, 0.1 + 0.5*(beatrate - 0.1));

+per_frame_13=beatcounter = beatcounter + beat;

+per_frame_14=mode = if(beat*equal(beatcounter%2,0),1-mode,mode);

+per_frame_15=flip = 2*mode-1;

+per_frame_16=monitor=flip;

+per_frame_17=q8=flip;

+per_frame_18=

+per_frame_19=angadv=angadv+beat;

+per_frame_20=angadv=if( above(angadv,5) , 2 , angadv );

+per_frame_21=q7=angadv;

+per_frame_22=

+per_frame_23=

+per_frame_24=decay=0.95;

+per_frame_25=zoom=1.002;

+per_frame_26=

+per_frame_27=vol=(bass_att+mid_att+treb_att)*0.25;

+per_frame_28=vol=vol*vol;

+per_frame_29=mtime=mtime+vol*0.1*flip*(37/fps);

+per_frame_30=

+per_frame_31=q1=mtime*0.4;

+per_frame_32=

+per_frame_33=warp=0.0;

+per_frame_34=

+per_frame_35=cx=sin(mtime*0.2)*0.4 + 0.5;

+per_frame_36=cy=sin(mtime*0.33);

+per_frame_37=cys=sign(cy);

+per_frame_38=cy=cy*cy*cys;

+per_frame_39=cy=cy*0.4+0.5;

+per_frame_40=

+per_frame_41=//cx=sin(time)*0.5+0.5;

+per_frame_42=//cy=cos(time)*0.5+0.5;

+per_frame_43=//cx=0.5;

+per_frame_44=//cy=0.5;

+per_frame_45=rot=sin(time*0.25)*0.31

+per_frame_46=

+per_pixel_1=//tm=time+(sin(time)*rad);

+per_pixel_2=//var=tan(time)*treb;

+per_pixel_3=tbr=0.7+treb*0.3;

+per_pixel_4=var=-2*tbr*0.75;

+per_pixel_5=

+per_pixel_6=ag=atan( (y-0.5-(cy-0.5))/(x-0.5-(cx-0.5)) )*1.75;

+per_pixel_7=star=sin(ang*q7)*tbr;

+per_pixel_8=

+per_pixel_9=rdd=max( abs(x-0.5) , abs(y-0.5) )*4 ;

+per_pixel_10=zm=1+(rdd/40)+(var/40)+star*0.003 ;

+per_pixel_11=

+per_pixel_12=//sx=zm;

+per_pixel_13=//sy=zm;

+per_pixel_14=//sx=1+star*0.1;sy=1+star*0.1;

+per_pixel_15=sx=0.8;sy=sx;

+per_pixel_16=//rot=star*0.01*tbr

diff --git "a/presets/Eo.S. - heater core C_Phat\047s_class + sparks_mix.milk" "b/presets/Eo.S. - heater core C_Phat\047s_class + sparks_mix.milk"
new file mode 100644
index 0000000..d492558
--- /dev/null
+++ "b/presets/Eo.S. - heater core C_Phat\047s_class + sparks_mix.milk"
@@ -0,0 +1,445 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.980001

+fDecay=0.900000

+fVideoEchoZoom=0.999999

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=2

+nWaveMode=6

+bAdditiveWaves=1

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=1

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=0.311600

+fWaveScale=1.228910

+fWaveSmoothing=0.000000

+fWaveParam=0.200000

+fModWaveAlphaStart=0.710000

+fModWaveAlphaEnd=1.300000

+fWarpAnimSpeed=1.459526

+fWarpScale=2.006761

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=0.999902

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=-1.000000

+warp=0.010000

+sx=0.999998

+sy=1.000000

+wave_r=0.000000

+wave_g=0.000000

+wave_b=0.000000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.000000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.260000

+ib_r=0.250000

+ib_g=0.250000

+ib_b=0.250000

+ib_a=0.000000

+nMotionVectorsX=64.000000

+nMotionVectorsY=48.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.850000

+mv_r=0.499900

+mv_g=0.499900

+mv_b=0.499900

+mv_a=0.000000

+wavecode_0_enabled=1

+wavecode_0_samples=512

+wavecode_0_sep=0

+wavecode_0_bSpectrum=0

+wavecode_0_bUseDots=1

+wavecode_0_bDrawThick=1

+wavecode_0_bAdditive=1

+wavecode_0_scaling=1.000000

+wavecode_0_smoothing=0.500000

+wavecode_0_r=0.000000

+wavecode_0_g=0.900000

+wavecode_0_b=0.800000

+wavecode_0_a=1.000000

+wave_0_per_point1=n=sample*6.283;

+wave_0_per_point2=

+wave_0_per_point3=freq=sin(q7*0.5)*4+4;

+wave_0_per_point4=

+wave_0_per_point5=scale=sin(n*freq)*0.3+0.7;

+wave_0_per_point6=xp=sin(n*1)*0.3*scale;

+wave_0_per_point7=yp=cos(n*1)*0.3*scale;

+wave_0_per_point8=zp=abs(sin(n*freq+time)*0.1);

+wave_0_per_point9=

+wave_0_per_point10=//rotate on y

+wave_0_per_point11=ang=(q7+time*0.01)*0.2;

+wave_0_per_point12=xp2=xp*sin(ang) + zp*cos(ang);

+wave_0_per_point13=yp2=yp;

+wave_0_per_point14=zp2=xp*cos(ang) - zp*sin(ang);

+wave_0_per_point15=

+wave_0_per_point16=//rotate on x

+wave_0_per_point17=ang=(q7+time*0.01)*0.3;

+wave_0_per_point18=xp3=xp2;

+wave_0_per_point19=yp3=yp2*sin(ang) + zp2*cos(ang);

+wave_0_per_point20=zp3=yp2*cos(ang) - zp2*sin(ang);

+wave_0_per_point21=

+wave_0_per_point22=

+wave_0_per_point23=xp=xp3;

+wave_0_per_point24=yp=yp3;

+wave_0_per_point25=zp=zp3;

+wave_0_per_point26=zp=zp+2.1;

+wave_0_per_point27=xs=xp/zp;

+wave_0_per_point28=ys=yp/zp;

+wave_0_per_point29=

+wave_0_per_point30=x=xs+0.5;

+wave_0_per_point31=y=ys*1.3+0.5;

+wave_0_per_point32=

+wave_0_per_point33=

+wave_0_per_point34=aflux=sin(n*8+time)*0.5+0.5;

+wave_0_per_point35=a=1 - (aflux*aflux)*q8*3

+wavecode_1_enabled=1

+wavecode_1_samples=512

+wavecode_1_sep=0

+wavecode_1_bSpectrum=0

+wavecode_1_bUseDots=1

+wavecode_1_bDrawThick=1

+wavecode_1_bAdditive=0

+wavecode_1_scaling=1.000000

+wavecode_1_smoothing=0.500000

+wavecode_1_r=0.700000

+wavecode_1_g=0.000000

+wavecode_1_b=1.000000

+wavecode_1_a=1.000000

+wave_1_per_point1=n=sample*6.283;

+wave_1_per_point2=

+wave_1_per_point3=freq=sin(q7*0.5)*4+4;

+wave_1_per_point4=

+wave_1_per_point5=scale=sin(n*freq)*0.3+0.7;

+wave_1_per_point6=xp=sin(n*1)*0.3*scale;

+wave_1_per_point7=yp=cos(n*1)*0.3*scale;

+wave_1_per_point8=zp=-abs(sin(n*freq+time)*0.1);

+wave_1_per_point9=

+wave_1_per_point10=//rotate on y

+wave_1_per_point11=ang=(q7+time*0.01)*0.2;

+wave_1_per_point12=xp2=xp*sin(ang) + zp*cos(ang);

+wave_1_per_point13=yp2=yp;

+wave_1_per_point14=zp2=xp*cos(ang) - zp*sin(ang);

+wave_1_per_point15=

+wave_1_per_point16=//rotate on x

+wave_1_per_point17=ang=(q7+time*0.01)*0.3;

+wave_1_per_point18=xp3=xp2;

+wave_1_per_point19=yp3=yp2*sin(ang) + zp2*cos(ang);

+wave_1_per_point20=zp3=yp2*cos(ang) - zp2*sin(ang);

+wave_1_per_point21=

+wave_1_per_point22=

+wave_1_per_point23=xp=xp3;

+wave_1_per_point24=yp=yp3;

+wave_1_per_point25=zp=zp3;

+wave_1_per_point26=zp=zp+2.1;

+wave_1_per_point27=xs=xp/zp;

+wave_1_per_point28=ys=yp/zp;

+wave_1_per_point29=

+wave_1_per_point30=x=xs+0.5;

+wave_1_per_point31=y=ys*1.3+0.5;

+wave_1_per_point32=

+wave_1_per_point33=

+wave_1_per_point34=aflux=sin(n*8+time)*0.5+0.5;

+wave_1_per_point35=a=1 - (aflux*aflux)*q8*3

+wavecode_2_enabled=1

+wavecode_2_samples=512

+wavecode_2_sep=0

+wavecode_2_bSpectrum=0

+wavecode_2_bUseDots=0

+wavecode_2_bDrawThick=0

+wavecode_2_bAdditive=1

+wavecode_2_scaling=1.000000

+wavecode_2_smoothing=0.500000

+wavecode_2_r=1.000000

+wavecode_2_g=1.000000

+wavecode_2_b=1.000000

+wavecode_2_a=1.000000

+wave_2_per_point1=n=sample*6.283;

+wave_2_per_point2=

+wave_2_per_point3=freq=sin(q7*0.5)*4+4;

+wave_2_per_point4=

+wave_2_per_point5=aflux=sin(n*0.5);

+wave_2_per_point6=

+wave_2_per_point7=scale=sin(n*freq)*0.3+0.7;

+wave_2_per_point8=xp=rand(10)-5;

+wave_2_per_point9=xp=xp*0.0008*aflux;

+wave_2_per_point10=yp=rand(10)-5;

+wave_2_per_point11=yp=yp*0.0008*aflux;

+wave_2_per_point12=zp=sample*3-1.5;

+wave_2_per_point13=

+wave_2_per_point14=//rotate on y

+wave_2_per_point15=ang=(q7+time*0.01)*0.2;

+wave_2_per_point16=xp2=xp*sin(ang) + zp*cos(ang);

+wave_2_per_point17=yp2=yp;

+wave_2_per_point18=zp2=xp*cos(ang) - zp*sin(ang);

+wave_2_per_point19=

+wave_2_per_point20=//rotate on x

+wave_2_per_point21=ang=(q7+time*0.01)*0.3;

+wave_2_per_point22=xp3=xp2;

+wave_2_per_point23=yp3=yp2*sin(ang) + zp2*cos(ang);

+wave_2_per_point24=zp3=yp2*cos(ang) - zp2*sin(ang);

+wave_2_per_point25=

+wave_2_per_point26=

+wave_2_per_point27=xp=xp3;

+wave_2_per_point28=yp=yp3;

+wave_2_per_point29=zp=zp3;

+wave_2_per_point30=

+wave_2_per_point31=zp=zp+2.1;

+wave_2_per_point32=xs=xp/zp;

+wave_2_per_point33=ys=yp/zp;

+wave_2_per_point34=

+wave_2_per_point35=x=xs+0.5;

+wave_2_per_point36=y=ys*1.3+0.5;

+wave_2_per_point37=

+wave_2_per_point38=

+wave_2_per_point39=

+wave_2_per_point40=a=aflux

+wavecode_3_enabled=1

+wavecode_3_samples=512

+wavecode_3_sep=0

+wavecode_3_bSpectrum=0

+wavecode_3_bUseDots=1

+wavecode_3_bDrawThick=1

+wavecode_3_bAdditive=1

+wavecode_3_scaling=1.000000

+wavecode_3_smoothing=0.500000

+wavecode_3_r=1.000000

+wavecode_3_g=0.600000

+wavecode_3_b=0.150000

+wavecode_3_a=1.000000

+wave_3_per_frame1=spark=rand(40);

+wave_3_per_frame2=spark= above(spark,37);

+wave_3_per_frame3=

+wave_3_per_frame4=t1=spark;

+wave_3_per_frame5=t2=0;

+wave_3_per_frame6=t3=0;

+wave_3_per_point1=n=sample*6.283;

+wave_3_per_point2=offran=1-t1*0.1;

+wave_3_per_point3=sparkcycle=above( sin(n*2) , 0);

+wave_3_per_point4=

+wave_3_per_point5=zran=(rand(8) - 4);

+wave_3_per_point6=xran=(rand(8) - 4);

+wave_3_per_point7=yran=(rand(8) - 4);

+wave_3_per_point8=alp=min( 1-abs(zran*0.25), min( 1-abs(xran*0.25),1-abs(yran*0.25) ));

+wave_3_per_point9=alp=alp*alp;

+wave_3_per_point10=a=alp*(1-t1) + t1;

+wave_3_per_point11=zran=zran*0.001*offran;

+wave_3_per_point12=xran=xran*0.001*offran;

+wave_3_per_point13=yran=yran*0.001*offran;

+wave_3_per_point14=

+wave_3_per_point15=xseed=sin(sample*3.14+time*15)+sin(sample*11)*0.4;

+wave_3_per_point16=yseed=cos(sample*3.14+time*9)+sin(sample*17+time)*0.4;

+wave_3_per_point17=t2=t2+xseed*sparkcycle;

+wave_3_per_point18=t3=t3+yseed*sparkcycle;

+wave_3_per_point19=xspark=t2*0.002;

+wave_3_per_point20=yspark=t3*0.008;

+wave_3_per_point21=

+wave_3_per_point22=scale=sin(n*freq)*0.3+0.7;

+wave_3_per_point23=zp=sin(time)+ zran;

+wave_3_per_point24=zp=zp + yspark*t1*sparkcycle;

+wave_3_per_point25=

+wave_3_per_point26=aflux=sin(zp*3.14 + 3.14);

+wave_3_per_point27=xp=sin(n)*0.1*aflux + xran;

+wave_3_per_point28=xp=xp + xspark*t1*sparkcycle;

+wave_3_per_point29=yp=cos(n)*0.1*aflux + yran;

+wave_3_per_point30=

+wave_3_per_point31=//rotate on y

+wave_3_per_point32=ang=(q7+time*0.01)*0.2;

+wave_3_per_point33=xp2=xp*sin(ang) + zp*cos(ang);

+wave_3_per_point34=yp2=yp;

+wave_3_per_point35=zp2=xp*cos(ang) - zp*sin(ang);

+wave_3_per_point36=

+wave_3_per_point37=//rotate on x

+wave_3_per_point38=ang=(q7+time*0.01)*0.3;

+wave_3_per_point39=xp3=xp2;

+wave_3_per_point40=yp3=yp2*sin(ang) + zp2*cos(ang);

+wave_3_per_point41=zp3=yp2*cos(ang) - zp2*sin(ang);

+wave_3_per_point42=

+wave_3_per_point43=

+wave_3_per_point44=xp=xp3;

+wave_3_per_point45=yp=yp3;

+wave_3_per_point46=zp=zp3;

+wave_3_per_point47=

+wave_3_per_point48=zp=zp+2.1;

+wave_3_per_point49=xs=xp/zp;

+wave_3_per_point50=xs=xs+0.5;

+wave_3_per_point51=ys=yp/zp;

+wave_3_per_point52=ys=ys*1.3 + 0.5;

+wave_3_per_point53=

+wave_3_per_point54=x=xs;

+wave_3_per_point55=y=ys;

+wave_3_per_point56=

+wave_3_per_point57=

+wave_3_per_point58=

+wave_3_per_point59=

+shapecode_0_enabled=0

+shapecode_0_sides=4

+shapecode_0_additive=0

+shapecode_0_thickOutline=1

+shapecode_0_textured=0

+shapecode_0_x=0.800000

+shapecode_0_y=0.500000

+shapecode_0_rad=6.650134

+shapecode_0_ang=3.644249

+shapecode_0_tex_ang=3.141593

+shapecode_0_tex_zoom=0.274293

+shapecode_0_r=0.500000

+shapecode_0_g=0.500000

+shapecode_0_b=1.000000

+shapecode_0_a=0.000000

+shapecode_0_r2=0.000000

+shapecode_0_g2=0.000000

+shapecode_0_b2=0.000000

+shapecode_0_a2=0.000000

+shapecode_0_border_r=1.000000

+shapecode_0_border_g=0.000000

+shapecode_0_border_b=0.500000

+shapecode_0_border_a=0.000000

+shape_0_init1=t1 = rand(100)*0.01;

+shape_0_init2=t2 = rand(100)*0.01;

+shape_0_per_frame1=border_a=treb;

+shape_0_per_frame2=rad=bass;

+shapecode_1_enabled=1

+shapecode_1_sides=3

+shapecode_1_additive=0

+shapecode_1_thickOutline=1

+shapecode_1_textured=0

+shapecode_1_x=0.370000

+shapecode_1_y=0.490000

+shapecode_1_rad=0.749999

+shapecode_1_ang=3.644249

+shapecode_1_tex_ang=0.000000

+shapecode_1_tex_zoom=2.216712

+shapecode_1_r=1.000000

+shapecode_1_g=1.000000

+shapecode_1_b=1.000000

+shapecode_1_a=0.000000

+shapecode_1_r2=1.000000

+shapecode_1_g2=1.000000

+shapecode_1_b2=1.000000

+shapecode_1_a2=0.000000

+shapecode_1_border_r=0.000000

+shapecode_1_border_g=0.000000

+shapecode_1_border_b=1.000000

+shapecode_1_border_a=0.000000

+shape_1_init1=t1 = rand(100)*0.01;

+shape_1_init2=t2 = rand(100)*0.01;

+shape_1_init3=te = 1;

+shape_1_init4=poly = 4;

+shape_1_per_frame1=

+shape_1_per_frame2=rate = fps/(fps+1/2);

+shape_1_per_frame3=beat = above(bass,bassthresh);

+shape_1_per_frame4=bassthresh = beat*4 + (1-beat)*((bassthresh - 1.5)*rate+1.5);

+shape_1_per_frame5=ran = rand(8)+4;

+shape_1_per_frame6=poly = if(beat,if(equal(ran,poly),poly+1,ran),poly);

+shape_1_per_frame7=//poly = if(above(poly,8),4,poly);

+shape_1_per_frame8=sides = poly;

+shape_1_per_frame9=

+shape_1_per_frame10=rate2 = fps/(fps+10);

+shape_1_per_frame11=out = (1-beat)*rate2*out + beat;

+shape_1_per_frame12=border_a = out;

+shape_1_per_frame13=te = bass/fps/2 + te;

+shape_1_per_frame14=x = x + 0.056*sin(te*1.67);

+shape_1_per_frame15=y = y + 0.043*sin(te*1.23);

+shape_1_per_frame16=ang = 3*sin(-te*0.67) + 3*cos(te*0.4);

+shape_1_per_frame17=rad = rad * (0.9 + 0.2*t2) - 0.1*sin(te*1.51);;

+shape_1_per_frame18=r = min(1,max(0,r + 0.3*sin(time*0.427 + 1)));

+shape_1_per_frame19=g = min(1,max(0,g + 0.3*sin(time*0.401 + 2)));

+shape_1_per_frame20=b = min(1,max(0,b + 0.3*sin(time*0.452 + 4)));

+shape_1_per_frame21=r2 = min(1,max(0,r2 + 0.3*sin(time*0.417 + 3)));

+shape_1_per_frame22=g2 = min(1,max(0,g2 + 0.3*sin(time*0.457 + 5)));

+shape_1_per_frame23=b2 = min(1,max(0,b2 + 0.3*sin(time*0.434 + 6)));

+shapecode_2_enabled=1

+shapecode_2_sides=40

+shapecode_2_additive=0

+shapecode_2_thickOutline=1

+shapecode_2_textured=1

+shapecode_2_x=0.500000

+shapecode_2_y=0.500000

+shapecode_2_rad=0.853568

+shapecode_2_ang=0.000000

+shapecode_2_tex_ang=0.000000

+shapecode_2_tex_zoom=1.220190

+shapecode_2_r=0.980000

+shapecode_2_g=0.000000

+shapecode_2_b=0.890000

+shapecode_2_a=1.000000

+shapecode_2_r2=0.920000

+shapecode_2_g2=1.000000

+shapecode_2_b2=1.000000

+shapecode_2_a2=0.050000

+shapecode_2_border_r=1.000000

+shapecode_2_border_g=1.000000

+shapecode_2_border_b=0.000000

+shapecode_2_border_a=0.000000

+shape_2_init1=t1 = rand(100)*0.01;

+shape_2_init2=t2 = rand(100)*0.01;

+shape_2_init3=te = 1;

+shape_2_init4=poly = 5;

+shape_2_per_frame1=ang=sin(time*0.4)*0.05 * (sin(time*0.4)*0.5+0.5)

+shapecode_3_enabled=0

+shapecode_3_sides=3

+shapecode_3_additive=0

+shapecode_3_thickOutline=0

+shapecode_3_textured=0

+shapecode_3_x=0.500000

+shapecode_3_y=0.500000

+shapecode_3_rad=0.265151

+shapecode_3_ang=0.000000

+shapecode_3_tex_ang=0.000000

+shapecode_3_tex_zoom=1.000000

+shapecode_3_r=1.000000

+shapecode_3_g=1.000000

+shapecode_3_b=0.000000

+shapecode_3_a=1.000000

+shapecode_3_r2=1.000000

+shapecode_3_g2=0.000000

+shapecode_3_b2=0.000000

+shapecode_3_a2=0.000000

+shapecode_3_border_r=0.000000

+shapecode_3_border_g=0.000000

+shapecode_3_border_b=1.000000

+shapecode_3_border_a=1.000000

+shape_3_per_frame1=rate = fps/(fps+1/2);

+shape_3_per_frame2=

+shape_3_per_frame3=ang = time*0.5;

+shape_3_per_frame4=vol = (bass_att+mid_att+treb_att)/6;

+shape_3_per_frame5=te = vol/fps + te;

+shape_3_per_frame6=x = x + 0.2*sin(te*1.14);

+shape_3_per_frame7=y = y + 0.2*sin(te*0.96+2);

+shape_3_per_frame8=

+shape_3_per_frame9=beat = above(vol*1.5,bassthresh);

+shape_3_per_frame10=bassthresh = beat*4 + (1-beat)*((bassthresh - 1.4)*rate+1.4);

+shape_3_per_frame11=poly = if(beat,rand(5)+3,poly);

+shape_3_per_frame12=poly = if(equal(poly,7),rand(50)+7,poly);

+shape_3_per_frame13=sides = poly;

+shape_3_per_frame14=rad = rad-log(poly)/100;

+shape_3_per_frame15=

+shape_3_per_frame16=a=pow(vol*2,2);

+shape_3_per_frame17=border_a=a;

+shape_3_per_frame18=rad=rad*0.7+a*0.015

+per_frame_1=decay=1;

+per_frame_2=

+per_frame_3=vol=(bass+mid+treb)*0.25;

+per_frame_4=vol=vol*vol;

+per_frame_5=mtime=mtime+vol*0.018*(70/fps);

+per_frame_6=q7=mtime;

+per_frame_7=q8=vol

+per_pixel_1=zoom=-1.02 + rad*10;

+per_pixel_2=//rot=rad*500;

diff --git "a/presets/Eo.S. - heater core C_Phat\047s_on route_mix+beam.milk" "b/presets/Eo.S. - heater core C_Phat\047s_on route_mix+beam.milk"
new file mode 100644
index 0000000..0120872
--- /dev/null
+++ "b/presets/Eo.S. - heater core C_Phat\047s_on route_mix+beam.milk"
@@ -0,0 +1,453 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.980001

+fDecay=0.900000

+fVideoEchoZoom=0.999999

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=2

+nWaveMode=6

+bAdditiveWaves=1

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=1

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=0.311600

+fWaveScale=1.228910

+fWaveSmoothing=0.000000

+fWaveParam=0.200000

+fModWaveAlphaStart=0.710000

+fModWaveAlphaEnd=1.300000

+fWarpAnimSpeed=1.459526

+fWarpScale=2.006761

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=0.999902

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=-1.000000

+warp=0.010000

+sx=0.999998

+sy=1.000000

+wave_r=0.000000

+wave_g=0.000000

+wave_b=0.000000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.055000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.260000

+ib_r=0.250000

+ib_g=0.250000

+ib_b=0.250000

+ib_a=0.000000

+nMotionVectorsX=64.000000

+nMotionVectorsY=48.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.850000

+mv_r=0.499900

+mv_g=0.499900

+mv_b=0.499900

+mv_a=0.000000

+wavecode_0_enabled=1

+wavecode_0_samples=512

+wavecode_0_sep=0

+wavecode_0_bSpectrum=0

+wavecode_0_bUseDots=1

+wavecode_0_bDrawThick=1

+wavecode_0_bAdditive=1

+wavecode_0_scaling=1.000000

+wavecode_0_smoothing=0.500000

+wavecode_0_r=0.000000

+wavecode_0_g=0.900000

+wavecode_0_b=0.800000

+wavecode_0_a=1.000000

+wave_0_per_point1=n=sample*6.283;

+wave_0_per_point2=

+wave_0_per_point3=freq=sin(q7*0.5)*4+4;

+wave_0_per_point4=

+wave_0_per_point5=scale=sin(n*freq)*0.3+0.7;

+wave_0_per_point6=xp=sin(n*1)*0.3*scale;

+wave_0_per_point7=yp=cos(n*1)*0.3*scale;

+wave_0_per_point8=zp=abs(sin(n*freq+time)*0.1);

+wave_0_per_point9=

+wave_0_per_point10=//rotate on y

+wave_0_per_point11=ang=(q7+time*0.01)*0.2;

+wave_0_per_point12=xp2=xp*sin(ang) + zp*cos(ang);

+wave_0_per_point13=yp2=yp;

+wave_0_per_point14=zp2=xp*cos(ang) - zp*sin(ang);

+wave_0_per_point15=

+wave_0_per_point16=//rotate on x

+wave_0_per_point17=ang=(q7+time*0.01)*0.3;

+wave_0_per_point18=xp3=xp2;

+wave_0_per_point19=yp3=yp2*sin(ang) + zp2*cos(ang);

+wave_0_per_point20=zp3=yp2*cos(ang) - zp2*sin(ang);

+wave_0_per_point21=

+wave_0_per_point22=

+wave_0_per_point23=xp=xp3;

+wave_0_per_point24=yp=yp3;

+wave_0_per_point25=zp=zp3;

+wave_0_per_point26=zp=zp+2.1;

+wave_0_per_point27=xs=xp/zp;

+wave_0_per_point28=ys=yp/zp;

+wave_0_per_point29=

+wave_0_per_point30=x=xs+0.5;

+wave_0_per_point31=y=ys*1.3+0.5;

+wave_0_per_point32=

+wave_0_per_point33=

+wave_0_per_point34=aflux=sin(n*8+time)*0.5+0.5;

+wave_0_per_point35=a=1 - (aflux*aflux)*q8*3

+wavecode_1_enabled=1

+wavecode_1_samples=512

+wavecode_1_sep=0

+wavecode_1_bSpectrum=0

+wavecode_1_bUseDots=1

+wavecode_1_bDrawThick=1

+wavecode_1_bAdditive=0

+wavecode_1_scaling=1.000000

+wavecode_1_smoothing=0.500000

+wavecode_1_r=0.700000

+wavecode_1_g=0.000000

+wavecode_1_b=1.000000

+wavecode_1_a=1.000000

+wave_1_per_point1=n=sample*6.283;

+wave_1_per_point2=

+wave_1_per_point3=freq=sin(q7*0.5)*4+4;

+wave_1_per_point4=

+wave_1_per_point5=scale=sin(n*freq)*0.3+0.7;

+wave_1_per_point6=xp=sin(n*1)*0.3*scale;

+wave_1_per_point7=yp=cos(n*1)*0.3*scale;

+wave_1_per_point8=zp=-abs(sin(n*freq+time)*0.1);

+wave_1_per_point9=

+wave_1_per_point10=//rotate on y

+wave_1_per_point11=ang=(q7+time*0.01)*0.2;

+wave_1_per_point12=xp2=xp*sin(ang) + zp*cos(ang);

+wave_1_per_point13=yp2=yp;

+wave_1_per_point14=zp2=xp*cos(ang) - zp*sin(ang);

+wave_1_per_point15=

+wave_1_per_point16=//rotate on x

+wave_1_per_point17=ang=(q7+time*0.01)*0.3;

+wave_1_per_point18=xp3=xp2;

+wave_1_per_point19=yp3=yp2*sin(ang) + zp2*cos(ang);

+wave_1_per_point20=zp3=yp2*cos(ang) - zp2*sin(ang);

+wave_1_per_point21=

+wave_1_per_point22=

+wave_1_per_point23=xp=xp3;

+wave_1_per_point24=yp=yp3;

+wave_1_per_point25=zp=zp3;

+wave_1_per_point26=zp=zp+2.1;

+wave_1_per_point27=xs=xp/zp;

+wave_1_per_point28=ys=yp/zp;

+wave_1_per_point29=

+wave_1_per_point30=x=xs+0.5;

+wave_1_per_point31=y=ys*1.3+0.5;

+wave_1_per_point32=

+wave_1_per_point33=

+wave_1_per_point34=aflux=sin(n*8+time)*0.5+0.5;

+wave_1_per_point35=a=1 - (aflux*aflux)*q8*3

+wavecode_2_enabled=1

+wavecode_2_samples=512

+wavecode_2_sep=0

+wavecode_2_bSpectrum=0

+wavecode_2_bUseDots=0

+wavecode_2_bDrawThick=0

+wavecode_2_bAdditive=1

+wavecode_2_scaling=1.000000

+wavecode_2_smoothing=0.500000

+wavecode_2_r=1.000000

+wavecode_2_g=1.000000

+wavecode_2_b=1.000000

+wavecode_2_a=1.000000

+wave_2_per_point1=n=sample*6.283;

+wave_2_per_point2=

+wave_2_per_point3=freq=sin(q7*0.5)*4+4;

+wave_2_per_point4=

+wave_2_per_point5=aflux=sin(n*0.5);

+wave_2_per_point6=

+wave_2_per_point7=scale=sin(n*freq)*0.3+0.7;

+wave_2_per_point8=xp=rand(10)-5;

+wave_2_per_point9=xp=xp*0.0008*aflux;

+wave_2_per_point10=yp=rand(10)-5;

+wave_2_per_point11=yp=yp*0.0008*aflux;

+wave_2_per_point12=zp=sample*3-1.5;

+wave_2_per_point13=

+wave_2_per_point14=//rotate on y

+wave_2_per_point15=ang=(q7+time*0.01)*0.2;

+wave_2_per_point16=xp2=xp*sin(ang) + zp*cos(ang);

+wave_2_per_point17=yp2=yp;

+wave_2_per_point18=zp2=xp*cos(ang) - zp*sin(ang);

+wave_2_per_point19=

+wave_2_per_point20=//rotate on x

+wave_2_per_point21=ang=(q7+time*0.01)*0.3;

+wave_2_per_point22=xp3=xp2;

+wave_2_per_point23=yp3=yp2*sin(ang) + zp2*cos(ang);

+wave_2_per_point24=zp3=yp2*cos(ang) - zp2*sin(ang);

+wave_2_per_point25=

+wave_2_per_point26=

+wave_2_per_point27=xp=xp3;

+wave_2_per_point28=yp=yp3;

+wave_2_per_point29=zp=zp3;

+wave_2_per_point30=

+wave_2_per_point31=zp=zp+2.1;

+wave_2_per_point32=xs=xp/zp;

+wave_2_per_point33=ys=yp/zp;

+wave_2_per_point34=

+wave_2_per_point35=x=xs+0.5;

+wave_2_per_point36=y=ys*1.3+0.5;

+wave_2_per_point37=

+wave_2_per_point38=

+wave_2_per_point39=

+wave_2_per_point40=a=aflux

+wavecode_3_enabled=1

+wavecode_3_samples=512

+wavecode_3_sep=0

+wavecode_3_bSpectrum=0

+wavecode_3_bUseDots=0

+wavecode_3_bDrawThick=0

+wavecode_3_bAdditive=0

+wavecode_3_scaling=1.000000

+wavecode_3_smoothing=0.500000

+wavecode_3_r=1.000000

+wavecode_3_g=1.000000

+wavecode_3_b=1.000000

+wavecode_3_a=1.000000

+wave_3_per_point1=n=sample*6.283;

+wave_3_per_point2=

+wave_3_per_point3=

+wave_3_per_point4=

+wave_3_per_point5=scale=sin(n*freq)*0.3+0.7;

+wave_3_per_point6=zp=sin(time);

+wave_3_per_point7=aflux=sin(zp*3.1415+3.1415);

+wave_3_per_point8=xp=sin(n)*0.1*aflux;

+wave_3_per_point9=yp=cos(n)*0.1*aflux;

+wave_3_per_point10=

+wave_3_per_point11=

+wave_3_per_point12=//rotate on y

+wave_3_per_point13=ang=(q7+time*0.01)*0.2;

+wave_3_per_point14=xp2=xp*sin(ang) + zp*cos(ang);

+wave_3_per_point15=yp2=yp;

+wave_3_per_point16=zp2=xp*cos(ang) - zp*sin(ang);

+wave_3_per_point17=

+wave_3_per_point18=//rotate on x

+wave_3_per_point19=ang=(q7+time*0.01)*0.3;

+wave_3_per_point20=xp3=xp2;

+wave_3_per_point21=yp3=yp2*sin(ang) + zp2*cos(ang);

+wave_3_per_point22=zp3=yp2*cos(ang) - zp2*sin(ang);

+wave_3_per_point23=

+wave_3_per_point24=

+wave_3_per_point25=xp=xp3;

+wave_3_per_point26=yp=yp3;

+wave_3_per_point27=zp=zp3;

+wave_3_per_point28=

+wave_3_per_point29=zp=zp+2.1;

+wave_3_per_point30=xs=xp/zp;

+wave_3_per_point31=ys=yp/zp;

+wave_3_per_point32=

+wave_3_per_point33=x=xs+0.5;

+wave_3_per_point34=y=ys*1.3+0.5;

+wave_3_per_point35=

+wave_3_per_point36=

+wave_3_per_point37=

+wave_3_per_point38=a=aflux

+shapecode_0_enabled=0

+shapecode_0_sides=4

+shapecode_0_additive=0

+shapecode_0_thickOutline=0

+shapecode_0_textured=1

+shapecode_0_x=0.500000

+shapecode_0_y=0.500000

+shapecode_0_rad=6.650134

+shapecode_0_ang=3.644249

+shapecode_0_tex_ang=3.141593

+shapecode_0_tex_zoom=0.274293

+shapecode_0_r=0.500000

+shapecode_0_g=0.500000

+shapecode_0_b=1.000000

+shapecode_0_a=0.180000

+shapecode_0_r2=0.000000

+shapecode_0_g2=0.000000

+shapecode_0_b2=0.000000

+shapecode_0_a2=0.000000

+shapecode_0_border_r=1.000000

+shapecode_0_border_g=1.000000

+shapecode_0_border_b=1.000000

+shapecode_0_border_a=0.000000

+shape_0_init1=t1 = rand(100)*0.01;

+shape_0_init2=t2 = rand(100)*0.01;

+shape_0_per_frame1=rate = fps/(fps+1/3);

+shape_0_per_frame2=beat = above(bass,bassthresh);

+shape_0_per_frame3=bassthresh = beat*4 + (1-beat)*((bassthresh - 1.3)*rate+1.3);

+shape_0_per_frame4=poly = if(beat,rand(30)+6,poly);

+shape_0_per_frame5=sides = poly;

+shape_0_per_frame6=

+shape_0_per_frame7=te = te + max(bass/fps/3,0.003);

+shape_0_per_frame8=x = 0.5+0.45*sin(te*1.87)+0.07*sin(time*0.6);

+shape_0_per_frame9=y = 0.5+0.35*cos(te*1.87)+0.07*sin(time*1.3);

+shape_0_per_frame10=ang = 3*sin(-te*1.67) + 3*cos(te*0.4);

+shape_0_per_frame11=rad = rad * (0.9 + 0.2*t2);

+shape_0_per_frame12=r = min(1,max(0,r + 0.4*sin(time*0.517 + 1)));

+shape_0_per_frame13=g = min(1,max(0,g + 0.4*sin(time*0.491 + 2)));

+shape_0_per_frame14=b = min(1,max(0,b + 0.4*sin(time*0.532 + 4)));

+shape_0_per_frame15=r2 = min(1,max(0,r2 + 0.4*sin(time*0.457 + 3)));

+shape_0_per_frame16=g2 = min(1,max(0,g2 + 0.4*sin(time*0.437 + 5)));

+shape_0_per_frame17=b2 = min(1,max(0,b2 + 0.4*sin(time*0.484 + 6)));

+shapecode_1_enabled=0

+shapecode_1_sides=3

+shapecode_1_additive=0

+shapecode_1_thickOutline=1

+shapecode_1_textured=1

+shapecode_1_x=0.370000

+shapecode_1_y=0.490000

+shapecode_1_rad=0.749999

+shapecode_1_ang=3.644249

+shapecode_1_tex_ang=0.000000

+shapecode_1_tex_zoom=1.000000

+shapecode_1_r=1.000000

+shapecode_1_g=1.000000

+shapecode_1_b=1.000000

+shapecode_1_a=1.000000

+shapecode_1_r2=1.000000

+shapecode_1_g2=1.000000

+shapecode_1_b2=1.000000

+shapecode_1_a2=0.000000

+shapecode_1_border_r=0.000000

+shapecode_1_border_g=0.000000

+shapecode_1_border_b=1.000000

+shapecode_1_border_a=0.000000

+shape_1_init1=t1 = rand(100)*0.01;

+shape_1_init2=t2 = rand(100)*0.01;

+shape_1_init3=te = 1;

+shape_1_init4=poly = 4;

+shape_1_per_frame1=

+shape_1_per_frame2=rate = fps/(fps+1/2);

+shape_1_per_frame3=beat = above(bass,bassthresh);

+shape_1_per_frame4=bassthresh = beat*4 + (1-beat)*((bassthresh - 1.5)*rate+1.5);

+shape_1_per_frame5=ran = rand(8)+4;

+shape_1_per_frame6=poly = if(beat,if(equal(ran,poly),poly+1,ran),poly);

+shape_1_per_frame7=//poly = if(above(poly,8),4,poly);

+shape_1_per_frame8=sides = poly;

+shape_1_per_frame9=

+shape_1_per_frame10=rate2 = fps/(fps+10);

+shape_1_per_frame11=out = (1-beat)*rate2*out + beat;

+shape_1_per_frame12=border_a = out;

+shape_1_per_frame13=te = bass/fps/2 + te;

+shape_1_per_frame14=x = x + 0.056*sin(te*1.67);

+shape_1_per_frame15=y = y + 0.043*sin(te*1.23);

+shape_1_per_frame16=ang = 3*sin(-te*0.67) + 3*cos(te*0.4);

+shape_1_per_frame17=rad = rad * (0.9 + 0.2*t2) - 0.1*sin(te*1.51);;

+shape_1_per_frame18=r = min(1,max(0,r + 0.3*sin(time*0.427 + 1)));

+shape_1_per_frame19=g = min(1,max(0,g + 0.3*sin(time*0.401 + 2)));

+shape_1_per_frame20=b = min(1,max(0,b + 0.3*sin(time*0.452 + 4)));

+shape_1_per_frame21=r2 = min(1,max(0,r2 + 0.3*sin(time*0.417 + 3)));

+shape_1_per_frame22=g2 = min(1,max(0,g2 + 0.3*sin(time*0.457 + 5)));

+shape_1_per_frame23=b2 = min(1,max(0,b2 + 0.3*sin(time*0.434 + 6)));

+shapecode_2_enabled=1

+shapecode_2_sides=40

+shapecode_2_additive=0

+shapecode_2_thickOutline=1

+shapecode_2_textured=1

+shapecode_2_x=0.500000

+shapecode_2_y=0.500000

+shapecode_2_rad=0.853568

+shapecode_2_ang=0.000000

+shapecode_2_tex_ang=0.000000

+shapecode_2_tex_zoom=1.220190

+shapecode_2_r=0.980000

+shapecode_2_g=0.000000

+shapecode_2_b=0.890000

+shapecode_2_a=1.000000

+shapecode_2_r2=0.920000

+shapecode_2_g2=1.000000

+shapecode_2_b2=1.000000

+shapecode_2_a2=0.050000

+shapecode_2_border_r=1.000000

+shapecode_2_border_g=1.000000

+shapecode_2_border_b=0.000000

+shapecode_2_border_a=0.000000

+shape_2_init1=t1 = rand(100)*0.01;

+shape_2_init2=t2 = rand(100)*0.01;

+shape_2_init3=te = 1;

+shape_2_init4=poly = 5;

+shape_2_per_frame1=ang=sin(time*0.4)*0.05 * (sin(time*0.4)*0.5+0.5)

+shapecode_3_enabled=0

+shapecode_3_sides=3

+shapecode_3_additive=0

+shapecode_3_thickOutline=0

+shapecode_3_textured=0

+shapecode_3_x=0.500000

+shapecode_3_y=0.500000

+shapecode_3_rad=0.265151

+shapecode_3_ang=0.000000

+shapecode_3_tex_ang=0.000000

+shapecode_3_tex_zoom=1.000000

+shapecode_3_r=1.000000

+shapecode_3_g=1.000000

+shapecode_3_b=0.000000

+shapecode_3_a=1.000000

+shapecode_3_r2=0.100000

+shapecode_3_g2=0.000000

+shapecode_3_b2=0.000000

+shapecode_3_a2=0.000000

+shapecode_3_border_r=0.500000

+shapecode_3_border_g=0.500000

+shapecode_3_border_b=0.500000

+shapecode_3_border_a=1.000000

+shape_3_per_frame1=rate = fps/(fps+1/2);

+shape_3_per_frame2=

+shape_3_per_frame3=ang = time*0.5;

+shape_3_per_frame4=vol = (bass_att+mid_att+treb_att)/6;

+shape_3_per_frame5=te = vol/fps + te;

+shape_3_per_frame6=x = x + 0.2*sin(te*1.14);

+shape_3_per_frame7=y = y + 0.2*sin(te*0.96+2);

+shape_3_per_frame8=

+shape_3_per_frame9=beat = above(vol*1.5,bassthresh);

+shape_3_per_frame10=bassthresh = beat*4 + (1-beat)*((bassthresh - 1.4)*rate+1.4);

+shape_3_per_frame11=poly = if(beat,rand(5)+3,poly);

+shape_3_per_frame12=poly = if(equal(poly,7),rand(50)+7,poly);

+shape_3_per_frame13=sides = poly;

+shape_3_per_frame14=rad = rad-log(poly)/100;

+shape_3_per_frame15=

+shape_3_per_frame16=a=pow(vol*2,2);

+shape_3_per_frame17=border_a=a;

+shape_3_per_frame18=rad=rad*0.7+a*0.015

+per_frame_1=//This Preset is based on Geiss - Feedback and Geiss - Feedback 2

+per_frame_2=

+per_frame_3=//Ever since Geiss made those presets I've made slight changes

+per_frame_4=//to them and saved them. They were so cool, I used to watch

+per_frame_5=//them for hours. This preset is then one that flowed from

+per_frame_6=//changing and tweaking those.

+per_frame_7=

+per_frame_8=//Almost everything is changed, but the one shape, (shape 4)

+per_frame_9=//feeding back into the two bigger ones (shape 2 and 3) is

+per_frame_10=//obtained from the Feedback presets.

+per_frame_11=

+per_frame_12=//I've added a 4th shape (shape 1) that is the big 'filter'

+per_frame_13=//to change colours etc.  It is also textured, so thats why

+per_frame_14=//the 'triple' feedback is for.

+per_frame_15=

+per_frame_16=//Shapes 3 and 2 can have their borders displayed in a strobe

+per_frame_17=//like fashion on beats. They also change amount of sides.

+per_frame_18=

+per_frame_19=//-Reenen

+per_frame_20=

+per_frame_21=

+per_frame_22=decay=1;

+per_frame_23=

+per_frame_24=vol=(bass+mid+treb)*0.25;

+per_frame_25=vol=vol*vol;

+per_frame_26=mtime=mtime+vol*0.018*(68/fps);

+per_frame_27=q7=mtime;

+per_frame_28=q8=vol

+per_pixel_1=zoom=-1.02 + ((rad*(treb*10))*(bass*bass));

diff --git a/presets/Eo.S. - repeater 05 - rave on acid.milk b/presets/Eo.S. - repeater 05 - rave on acid.milk
new file mode 100644
index 0000000..a64327d
--- /dev/null
+++ b/presets/Eo.S. - repeater 05 - rave on acid.milk
@@ -0,0 +1,636 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.630000

+fDecay=0.960000

+fVideoEchoZoom=0.996630

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=1

+nWaveMode=2

+bAdditiveWaves=0

+bWaveDots=1

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=0

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=1

+bSolarize=0

+bInvert=0

+fWaveAlpha=0.001000

+fWaveScale=0.011726

+fWaveSmoothing=0.900000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.750000

+fModWaveAlphaEnd=0.950000

+fWarpAnimSpeed=0.037492

+fWarpScale=0.014889

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=0.033004

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.400000

+wave_b=0.300000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.000000

+ob_r=0.110000

+ob_g=0.000000

+ob_b=0.100000

+ob_a=0.000000

+ib_size=0.000000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.000000

+nMotionVectorsX=0.000000

+nMotionVectorsY=43.199997

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=0.910000

+mv_b=0.710000

+mv_a=0.000000

+wavecode_0_enabled=1

+wavecode_0_samples=512

+wavecode_0_sep=0

+wavecode_0_bSpectrum=0

+wavecode_0_bUseDots=0

+wavecode_0_bDrawThick=0

+wavecode_0_bAdditive=0

+wavecode_0_scaling=1.000000

+wavecode_0_smoothing=0.500000

+wavecode_0_r=0.100000

+wavecode_0_g=1.000000

+wavecode_0_b=0.700000

+wavecode_0_a=1.000000

+wave_0_per_frame1=t1=sin(time)*0.5+0.5;

+wave_0_per_frame2=t2=sin(time+2.1)*0.5+0.5;

+wave_0_per_frame3=t3=sin(time+4.2)*0.5+0.5;

+wave_0_per_frame4=

+wave_0_per_frame5=t4=sin(time+1.1)*0.5+0.5;

+wave_0_per_frame6=t5=sin(time+3.1)*0.5+0.5;

+wave_0_per_frame7=t6=sin(time+5.2)*0.5+0.5;

+wave_0_per_point1=n=sample*6.283;

+wave_0_per_point2=phs=-sample * 0.2;

+wave_0_per_point3=tm=q1 + phs;

+wave_0_per_point4=

+wave_0_per_point5=flip=flip+1;

+wave_0_per_point6=flip=flip*below(flip,2);

+wave_0_per_point7=

+wave_0_per_point8=xp=0;

+wave_0_per_point9=yp=flip*0.1 + (sin(tm)*0.5 + 0.5)*0.2;

+wave_0_per_point10=zp=0;

+wave_0_per_point11=

+wave_0_per_point12=//wrist movement;

+wave_0_per_point13=ang=sin(tm*2 )*0.5 +0.5;

+wave_0_per_point14=

+wave_0_per_point15=xq=xp;

+wave_0_per_point16=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point17=yq=yp*sinang + zp*cosang;

+wave_0_per_point18=zq=yp*cosang - zp*sinang;

+wave_0_per_point19=yq=yp;

+wave_0_per_point20=zq=zp;

+wave_0_per_point21=

+wave_0_per_point22=ang=tm*8;

+wave_0_per_point23=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point24=xp=xq*sinang + yq*cosang;

+wave_0_per_point25=yp=xq*cosang - yq*sinang;

+wave_0_per_point26=zp=zq;

+wave_0_per_point27=

+wave_0_per_point28=//forearm movement;

+wave_0_per_point29=zp=zp-0.3;

+wave_0_per_point30=ang=3.14 + sin(tm*2 - 0.5)*1.5;

+wave_0_per_point31=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point32=xq=xp;

+wave_0_per_point33=yq=yp*sinang + zp*cosang;

+wave_0_per_point34=zq=yp*cosang - zp*sinang;

+wave_0_per_point35=

+wave_0_per_point36=//upper arm twist

+wave_0_per_point37=ang=-1.0 + cos(tm*3.1 + 0.5);

+wave_0_per_point38=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point39=xp=xq*sinang + yq*cosang;

+wave_0_per_point40=yp=xq*cosang - yq*sinang;

+wave_0_per_point41=zp=zq;

+wave_0_per_point42=

+wave_0_per_point43=//upper arm outward;

+wave_0_per_point44=zp=zp-0.35;

+wave_0_per_point45=ang=cos(tm*2.3)*1.75 - 1.05;

+wave_0_per_point46=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point47=xq=xp*sinang + zp*cosang;

+wave_0_per_point48=yq=yp;

+wave_0_per_point49=zq=xp*cosang - zp*sinang;

+wave_0_per_point50=

+wave_0_per_point51=//upper arm up down;

+wave_0_per_point52=ang=cos(tm)*0.5 - 0.5;

+wave_0_per_point53=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point54=xp=xq;

+wave_0_per_point55=yp=yq*cosang - zq*sinang;

+wave_0_per_point56=zp=yq*sinang + zq*cosang;

+wave_0_per_point57=

+wave_0_per_point58=//xp=xq;yp=yq;zp=zq;

+wave_0_per_point59=

+wave_0_per_point60=

+wave_0_per_point61=//project into screenspace and draw on screen

+wave_0_per_point62=zp=zp+2;

+wave_0_per_point63=xs=xp/zp;

+wave_0_per_point64=ys=yp/zp;

+wave_0_per_point65=

+wave_0_per_point66=x=xs+0.5;

+wave_0_per_point67=y=ys*1.3+0.5;

+wave_0_per_point68=

+wave_0_per_point69=

+wave_0_per_point70=a=if( equal(q8,1) , (1-sample) , sample);

+wave_0_per_point71=a=a*a;

+wave_0_per_point72=

+wave_0_per_point73=b=b+pow(1-sample,2)*0.3;

+wave_0_per_point74=

+wave_0_per_point75=

+wave_0_per_point76=

+wave_0_per_point77=r1=t1;

+wave_0_per_point78=g1=t2;

+wave_0_per_point79=b1=t3;

+wave_0_per_point80=r2=t4;

+wave_0_per_point81=g2=t5;

+wave_0_per_point82=b2=t6;

+wave_0_per_point83=

+wave_0_per_point84=r=r1*flip + r2*(1-flip);

+wave_0_per_point85=g=g1*flip + g2*(1-flip);

+wave_0_per_point86=b=b1*flip + b2*(1-flip);

+wavecode_1_enabled=1

+wavecode_1_samples=512

+wavecode_1_sep=0

+wavecode_1_bSpectrum=0

+wavecode_1_bUseDots=0

+wavecode_1_bDrawThick=0

+wavecode_1_bAdditive=0

+wavecode_1_scaling=1.000000

+wavecode_1_smoothing=0.500000

+wavecode_1_r=0.200000

+wavecode_1_g=1.000000

+wavecode_1_b=0.600000

+wavecode_1_a=1.000000

+wave_1_per_frame1=t1=sin(time)*0.5+0.5;

+wave_1_per_frame2=t2=sin(time+2.1)*0.5+0.5;

+wave_1_per_frame3=t3=sin(time+4.2)*0.5+0.5;

+wave_1_per_frame4=

+wave_1_per_frame5=t4=sin(time+1.1)*0.5+0.5;

+wave_1_per_frame6=t5=sin(time+3.1)*0.5+0.5;

+wave_1_per_frame7=t6=sin(time+5.2)*0.5+0.5;

+wave_1_per_point1=n=sample*6.283;

+wave_1_per_point2=phs=-sample * 0.2;

+wave_1_per_point3=tm=q1 + phs;

+wave_1_per_point4=

+wave_1_per_point5=flip=flip+1;

+wave_1_per_point6=flip=flip*below(flip,2);

+wave_1_per_point7=

+wave_1_per_point8=xp=0;

+wave_1_per_point9=yp=flip*0.1 + (sin(tm)*0.5 + 0.5)*0.2 +0.1;

+wave_1_per_point10=yp=-yp;

+wave_1_per_point11=zp=0;

+wave_1_per_point12=

+wave_1_per_point13=//wrist movement;

+wave_1_per_point14=ang=sin(tm*2)*0.5 +0.5;

+wave_1_per_point15=

+wave_1_per_point16=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point17=xq=xp;

+wave_1_per_point18=yq=yp*sinang + zp*cosang;

+wave_1_per_point19=zq=yp*cosang - zp*sinang;

+wave_1_per_point20=yq=yp;

+wave_1_per_point21=zq=zp;

+wave_1_per_point22=

+wave_1_per_point23=ang=tm*8;

+wave_1_per_point24=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point25=xp=xq*sinang + yq*cosang;

+wave_1_per_point26=yp=xq*cosang - yq*sinang;

+wave_1_per_point27=zp=zq;

+wave_1_per_point28=

+wave_1_per_point29=//forearm movement;

+wave_1_per_point30=zp=zp-0.3;

+wave_1_per_point31=ang=3.14 + sin(tm*2 - 0.5)*1.5;

+wave_1_per_point32=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point33=xq=xp;

+wave_1_per_point34=yq=yp*sinang + zp*cosang;

+wave_1_per_point35=zq=yp*cosang - zp*sinang;

+wave_1_per_point36=

+wave_1_per_point37=//upper arm twist

+wave_1_per_point38=ang=-1.0 + cos(tm*3.1 + 0.5);

+wave_1_per_point39=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point40=xp=xq*sinang + yq*cosang;

+wave_1_per_point41=yp=xq*cosang - yq*sinang;

+wave_1_per_point42=zp=zq;

+wave_1_per_point43=

+wave_1_per_point44=//upper arm outward;

+wave_1_per_point45=zp=zp-0.35;

+wave_1_per_point46=ang=cos(tm*2.3)*1.75 - 1.05;

+wave_1_per_point47=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point48=xq=xp*sinang + zp*cosang;

+wave_1_per_point49=yq=yp;

+wave_1_per_point50=zq=xp*cosang - zp*sinang;

+wave_1_per_point51=

+wave_1_per_point52=//upper arm up down;

+wave_1_per_point53=ang=cos(tm)*0.5 - 0.5;

+wave_1_per_point54=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point55=xp=xq;

+wave_1_per_point56=yp=yq*cosang - zq*sinang;

+wave_1_per_point57=zp=yq*sinang + zq*cosang;

+wave_1_per_point58=

+wave_1_per_point59=//xp=xq;yp=yq;zp=zq;

+wave_1_per_point60=

+wave_1_per_point61=

+wave_1_per_point62=//project into screenspace and draw on screen

+wave_1_per_point63=zp=zp+2;

+wave_1_per_point64=xs=xp/zp;

+wave_1_per_point65=ys=yp/zp;

+wave_1_per_point66=

+wave_1_per_point67=x=xs+0.5;

+wave_1_per_point68=y=ys*1.3+0.5;

+wave_1_per_point69=

+wave_1_per_point70=

+wave_1_per_point71=a=if( equal(q8,1) , (1-sample) , sample);

+wave_1_per_point72=a=a*a;

+wave_1_per_point73=

+wave_1_per_point74=

+wave_1_per_point75=b=b+pow(1-sample,2)*0.3;

+wave_1_per_point76=

+wave_1_per_point77=r1=t1;

+wave_1_per_point78=g1=t2;

+wave_1_per_point79=b1=t3;

+wave_1_per_point80=r2=t4;

+wave_1_per_point81=g2=t5;

+wave_1_per_point82=b2=t6;

+wave_1_per_point83=

+wave_1_per_point84=r=r1*flip + r2*(1-flip);

+wave_1_per_point85=g=g1*flip + g2*(1-flip);

+wave_1_per_point86=b=b1*flip + b2*(1-flip);

+wavecode_2_enabled=1

+wavecode_2_samples=512

+wavecode_2_sep=0

+wavecode_2_bSpectrum=0

+wavecode_2_bUseDots=1

+wavecode_2_bDrawThick=1

+wavecode_2_bAdditive=1

+wavecode_2_scaling=1.000000

+wavecode_2_smoothing=0.500000

+wavecode_2_r=1.000000

+wavecode_2_g=0.600000

+wavecode_2_b=0.100000

+wavecode_2_a=1.000000

+wave_2_per_frame1=t1=sin(time)*0.5+0.5;

+wave_2_per_frame2=t2=sin(time+2.1)*0.5+0.5;

+wave_2_per_frame3=t3=sin(time+4.2)*0.5+0.5;

+wave_2_per_frame4=

+wave_2_per_frame5=t4=sin(time+1.1)*0.5+0.5;

+wave_2_per_frame6=t5=sin(time+3.1)*0.5+0.5;

+wave_2_per_frame7=t6=sin(time+5.2)*0.5+0.5;

+wave_2_per_frame8=

+wave_2_per_frame9=

+wave_2_per_frame10=t8= int( sin(time*2)*2 + 3);

+wave_2_per_point1=n=sample*6.283;

+wave_2_per_point2=phs=-sample * 0.2;

+wave_2_per_point3=tm=q1 + phs;

+wave_2_per_point4=

+wave_2_per_point5=flip=flip+1;

+wave_2_per_point6=flip=flip*below(flip,2);

+wave_2_per_point7=

+wave_2_per_point8=xp=0;

+wave_2_per_point9=yp=flip*0.1 + (sin(tm)*0.5 + 0.5)*0.2;

+wave_2_per_point10=zp=0;

+wave_2_per_point11=

+wave_2_per_point12=//wrist movement;

+wave_2_per_point13=ang=sin(tm*2)*0.5 +0.5;

+wave_2_per_point14=

+wave_2_per_point15=xq=xp;

+wave_2_per_point16=sinang=sin(ang);cosang=cos(ang);

+wave_2_per_point17=yq=yp*sinang + zp*cosang;

+wave_2_per_point18=zq=yp*cosang - zp*sinang;

+wave_2_per_point19=yq=yp;

+wave_2_per_point20=zq=zp;

+wave_2_per_point21=

+wave_2_per_point22=ang=tm*8 + 1;

+wave_2_per_point23=sinang=sin(ang);cosang=cos(ang);

+wave_2_per_point24=xp=xq*sinang + yq*cosang;

+wave_2_per_point25=yp=xq*cosang - yq*sinang;

+wave_2_per_point26=zp=zq;

+wave_2_per_point27=

+wave_2_per_point28=//forearm movement;

+wave_2_per_point29=zp=zp-0.3;

+wave_2_per_point30=ang=3.14 + sin(tm*2 - 0.5)*1.5;

+wave_2_per_point31=sinang=sin(ang);cosang=cos(ang);

+wave_2_per_point32=xq=xp;

+wave_2_per_point33=yq=yp*sinang + zp*cosang;

+wave_2_per_point34=zq=yp*cosang - zp*sinang;

+wave_2_per_point35=

+wave_2_per_point36=//upper arm twist

+wave_2_per_point37=ang=-1.0 + cos(tm*3.1 + 0.5);

+wave_2_per_point38=sinang=sin(ang);cosang=cos(ang);

+wave_2_per_point39=xp=xq*sinang + yq*cosang;

+wave_2_per_point40=yp=xq*cosang - yq*sinang;

+wave_2_per_point41=zp=zq;

+wave_2_per_point42=

+wave_2_per_point43=//upper arm outward;

+wave_2_per_point44=zp=zp-0.35;

+wave_2_per_point45=ang=cos(tm*2.3)*1.75 - 1.05;

+wave_2_per_point46=sinang=sin(ang);cosang=cos(ang);

+wave_2_per_point47=xq=xp*sinang + zp*cosang;

+wave_2_per_point48=yq=yp;

+wave_2_per_point49=zq=xp*cosang - zp*sinang;

+wave_2_per_point50=

+wave_2_per_point51=//upper arm up down;

+wave_2_per_point52=ang=cos(tm)*0.5 - 0.5;

+wave_2_per_point53=sinang=sin(ang);cosang=cos(ang);

+wave_2_per_point54=xp=xq;

+wave_2_per_point55=yp=yq*cosang - zq*sinang;

+wave_2_per_point56=zp=yq*sinang + zq*cosang;

+wave_2_per_point57=

+wave_2_per_point58=//xp=xq;yp=yq;zp=zq;

+wave_2_per_point59=

+wave_2_per_point60=

+wave_2_per_point61=//project into screenspace and draw on screen

+wave_2_per_point62=zp=zp+2;

+wave_2_per_point63=xs=xp/zp;

+wave_2_per_point64=ys=yp/zp;

+wave_2_per_point65=

+wave_2_per_point66=x=xs+0.5;

+wave_2_per_point67=y=ys*1.3+0.5;

+wave_2_per_point68=

+wave_2_per_point69=a=if( equal(q8,1) , (1-sample) , sample);

+wave_2_per_point70=

+wave_2_per_point71=

+wave_2_per_point72=a=a* above( sin(tm*128*t8) , 0 );

+wave_2_per_point73=

+wave_2_per_point74=

+wave_2_per_point75=r=t4;

+wave_2_per_point76=g=t5;

+wave_2_per_point77=b=t6;

+wave_2_per_point78=

+wavecode_3_enabled=1

+wavecode_3_samples=512

+wavecode_3_sep=0

+wavecode_3_bSpectrum=0

+wavecode_3_bUseDots=1

+wavecode_3_bDrawThick=1

+wavecode_3_bAdditive=1

+wavecode_3_scaling=1.000000

+wavecode_3_smoothing=0.500000

+wavecode_3_r=1.000000

+wavecode_3_g=0.300000

+wavecode_3_b=0.100000

+wavecode_3_a=1.000000

+wave_3_per_frame1=t1=sin(time)*0.5+0.5;

+wave_3_per_frame2=t2=sin(time+2.1)*0.5+0.5;

+wave_3_per_frame3=t3=sin(time+4.2)*0.5+0.5;

+wave_3_per_frame4=

+wave_3_per_frame5=t4=sin(time+1.1)*0.5+0.5;

+wave_3_per_frame6=t5=sin(time+3.1)*0.5+0.5;

+wave_3_per_frame7=t6=sin(time+5.2)*0.5+0.5;

+wave_3_per_frame8=

+wave_3_per_frame9=

+wave_3_per_frame10=t8= int( sin(time*2)*2 + 3);

+wave_3_per_point1=n=sample*6.283;

+wave_3_per_point2=phs=-sample * 0.2;

+wave_3_per_point3=tm=q1 + phs;

+wave_3_per_point4=

+wave_3_per_point5=flip=flip+1;

+wave_3_per_point6=flip=flip*below(flip,2);

+wave_3_per_point7=

+wave_3_per_point8=xp=0;

+wave_3_per_point9=yp=flip*0.1 + (sin(tm)*0.5 + 0.5)*0.2 +0.1;

+wave_3_per_point10=yp=-yp;

+wave_3_per_point11=zp=0;

+wave_3_per_point12=

+wave_3_per_point13=//wrist movement;

+wave_3_per_point14=ang=sin(tm*2)*0.5 +0.5;

+wave_3_per_point15=

+wave_3_per_point16=sinang=sin(ang);cosang=cos(ang);

+wave_3_per_point17=xq=xp;

+wave_3_per_point18=yq=yp*sinang + zp*cosang;

+wave_3_per_point19=zq=yp*cosang - zp*sinang;

+wave_3_per_point20=yq=yp;

+wave_3_per_point21=zq=zp;

+wave_3_per_point22=

+wave_3_per_point23=ang=tm*8+1;

+wave_3_per_point24=sinang=sin(ang);cosang=cos(ang);

+wave_3_per_point25=xp=xq*sinang + yq*cosang;

+wave_3_per_point26=yp=xq*cosang - yq*sinang;

+wave_3_per_point27=zp=zq;

+wave_3_per_point28=

+wave_3_per_point29=//forearm movement;

+wave_3_per_point30=zp=zp-0.3;

+wave_3_per_point31=ang=3.14 + sin(tm*2 - 0.5)*1.5;

+wave_3_per_point32=sinang=sin(ang);cosang=cos(ang);

+wave_3_per_point33=xq=xp;

+wave_3_per_point34=yq=yp*sinang + zp*cosang;

+wave_3_per_point35=zq=yp*cosang - zp*sinang;

+wave_3_per_point36=

+wave_3_per_point37=//upper arm twist

+wave_3_per_point38=ang=-1.0 + cos(tm*3.1 + 0.5);

+wave_3_per_point39=sinang=sin(ang);cosang=cos(ang);

+wave_3_per_point40=xp=xq*sinang + yq*cosang;

+wave_3_per_point41=yp=xq*cosang - yq*sinang;

+wave_3_per_point42=zp=zq;

+wave_3_per_point43=

+wave_3_per_point44=//upper arm outward;

+wave_3_per_point45=zp=zp-0.35;

+wave_3_per_point46=ang=cos(tm*2.3)*1.75 - 1.05;

+wave_3_per_point47=sinang=sin(ang);cosang=cos(ang);

+wave_3_per_point48=xq=xp*sinang + zp*cosang;

+wave_3_per_point49=yq=yp;

+wave_3_per_point50=zq=xp*cosang - zp*sinang;

+wave_3_per_point51=

+wave_3_per_point52=//upper arm up down;

+wave_3_per_point53=ang=cos(tm)*0.5 - 0.5;

+wave_3_per_point54=sinang=sin(ang);cosang=cos(ang);

+wave_3_per_point55=xp=xq;

+wave_3_per_point56=yp=yq*cosang - zq*sinang;

+wave_3_per_point57=zp=yq*sinang + zq*cosang;

+wave_3_per_point58=

+wave_3_per_point59=//xp=xq;yp=yq;zp=zq;

+wave_3_per_point60=

+wave_3_per_point61=

+wave_3_per_point62=//project into screenspace and draw on screen

+wave_3_per_point63=zp=zp+2;

+wave_3_per_point64=xs=xp/zp;

+wave_3_per_point65=ys=yp/zp;

+wave_3_per_point66=

+wave_3_per_point67=x=xs+0.5;

+wave_3_per_point68=y=ys*1.3+0.5;

+wave_3_per_point69=

+wave_3_per_point70=

+wave_3_per_point71=a=if( equal(q8,1) , (1-sample) , sample);

+wave_3_per_point72=a=a*a;

+wave_3_per_point73=

+wave_3_per_point74=a=a* above( sin(tm*128*t8) , 0 );

+wave_3_per_point75=

+wave_3_per_point76=

+wave_3_per_point77=r=t4;

+wave_3_per_point78=g=t5;

+wave_3_per_point79=b=t6;

+shapecode_0_enabled=1

+shapecode_0_sides=4

+shapecode_0_additive=0

+shapecode_0_thickOutline=0

+shapecode_0_textured=1

+shapecode_0_x=0.260000

+shapecode_0_y=0.809999

+shapecode_0_rad=0.892690

+shapecode_0_ang=0.000000

+shapecode_0_tex_ang=0.000000

+shapecode_0_tex_zoom=1.082857

+shapecode_0_r=1.000000

+shapecode_0_g=1.000000

+shapecode_0_b=1.000000

+shapecode_0_a=1.000000

+shapecode_0_r2=1.000000

+shapecode_0_g2=1.000000

+shapecode_0_b2=1.000000

+shapecode_0_a2=1.000000

+shapecode_0_border_r=1.000000

+shapecode_0_border_g=1.000000

+shapecode_0_border_b=1.000000

+shapecode_0_border_a=0.000000

+shape_0_per_frame1=x = 0.264;

+shape_0_per_frame2=

+shape_0_per_frame3=r2=r2*q4;

+shape_0_per_frame4=g2=g2*q4;

+shape_0_per_frame5=b2=b2*q4;

+shapecode_1_enabled=1

+shapecode_1_sides=4

+shapecode_1_additive=0

+shapecode_1_thickOutline=0

+shapecode_1_textured=1

+shapecode_1_x=0.740000

+shapecode_1_y=0.809999

+shapecode_1_rad=0.892690

+shapecode_1_ang=0.000000

+shapecode_1_tex_ang=0.000000

+shapecode_1_tex_zoom=1.082857

+shapecode_1_r=1.000000

+shapecode_1_g=1.000000

+shapecode_1_b=1.000000

+shapecode_1_a=1.000000

+shapecode_1_r2=1.000000

+shapecode_1_g2=1.000000

+shapecode_1_b2=1.000000

+shapecode_1_a2=1.000000

+shapecode_1_border_r=1.000000

+shapecode_1_border_g=1.000000

+shapecode_1_border_b=1.000000

+shapecode_1_border_a=0.000000

+shape_1_per_frame1=x=0.737;

+shape_1_per_frame2=

+shape_1_per_frame3=

+shape_1_per_frame4=r2=r2*q4;

+shape_1_per_frame5=g2=g2*q4;

+shape_1_per_frame6=b2=b2*q4;

+shapecode_2_enabled=1

+shapecode_2_sides=4

+shapecode_2_additive=0

+shapecode_2_thickOutline=0

+shapecode_2_textured=1

+shapecode_2_x=0.260000

+shapecode_2_y=0.179999

+shapecode_2_rad=0.892690

+shapecode_2_ang=0.000000

+shapecode_2_tex_ang=0.000000

+shapecode_2_tex_zoom=1.082857

+shapecode_2_r=1.000000

+shapecode_2_g=1.000000

+shapecode_2_b=1.000000

+shapecode_2_a=1.000000

+shapecode_2_r2=1.000000

+shapecode_2_g2=1.000000

+shapecode_2_b2=1.000000

+shapecode_2_a2=1.000000

+shapecode_2_border_r=1.000000

+shapecode_2_border_g=1.000000

+shapecode_2_border_b=1.000000

+shapecode_2_border_a=0.000000

+shape_2_per_frame1=x = 0.264;

+shape_2_per_frame2=y = 0.178;

+shape_2_per_frame3=

+shape_2_per_frame4=

+shape_2_per_frame5=r2=r2*q4;

+shape_2_per_frame6=g2=g2*q4;

+shape_2_per_frame7=b2=b2*q4;

+shapecode_3_enabled=1

+shapecode_3_sides=4

+shapecode_3_additive=0

+shapecode_3_thickOutline=0

+shapecode_3_textured=1

+shapecode_3_x=0.740000

+shapecode_3_y=0.809999

+shapecode_3_rad=0.892690

+shapecode_3_ang=0.000000

+shapecode_3_tex_ang=0.000000

+shapecode_3_tex_zoom=1.082857

+shapecode_3_r=1.000000

+shapecode_3_g=1.000000

+shapecode_3_b=1.000000

+shapecode_3_a=1.000000

+shapecode_3_r2=1.000000

+shapecode_3_g2=1.000000

+shapecode_3_b2=1.000000

+shapecode_3_a2=1.000000

+shapecode_3_border_r=1.000000

+shapecode_3_border_g=1.000000

+shapecode_3_border_b=1.000000

+shapecode_3_border_a=0.000000

+shape_3_per_frame1=x=0.737;

+shape_3_per_frame2=y = 0.178;

+shape_3_per_frame3=

+shape_3_per_frame4=

+shape_3_per_frame5=r2=r2*q4;

+shape_3_per_frame6=g2=g2*q4;

+shape_3_per_frame7=b2=b2*q4;

+per_frame_init_1=mv_x=64;mv_y=48;

+per_frame_init_2=nut=0;

+per_frame_init_3=stp=0;stq=0;

+per_frame_init_4=rtp=0;rtq=0;

+per_frame_init_5=wvr=0;

+per_frame_init_6=decay=0;

+per_frame_init_7=dcsp=0;

+per_frame_init_8=warp=0

+per_frame_init_9=

+per_frame_1=

+per_frame_2=//krash's beat detection code

+per_frame_3=volume = 0.3*(bass+mid+att);

+per_frame_4=beatrate = equal(beatrate,0) + (1-equal(beatrate,0))*(below(volume,0.01) + (1-below(volume,0.01))*beatrate);

+per_frame_5=lastbeat = lastbeat + equal(lastbeat,0)*time;

+per_frame_6=meanbass_att = 0.1*(meanbass_att*9 + bass_att);

+per_frame_7=peakbass_att = max(bass_att,peakbass_att);

+per_frame_8=beatrate = max(if(beat,if(below(time-lastbeat,2*beatrate),0.1*(beatrate*9 + time - lastbeat),beatrate),beatrate),0.1);

+per_frame_9=peakbass_att = beat*bass_att + (1-beat)*peakbass_att*(above(time - lastbeat, 2*beatrate)*0.95 + (1-above(time - lastbeat, 2*beatrate))*0.995);

+per_frame_10=lastbeat = beat*time + (1-beat)*lastbeat;

+per_frame_11=peakbass_att = max(peakbass_att,1.1*meanbass_att);

+per_frame_12=beat = above(volume,0.8)*below(peakbass_att - bass_att, 0.05*peakbass_att)*above(time - lastbeat, 0.1 + 0.5*(beatrate - 0.1));

+per_frame_13=beatcounter = beatcounter + beat;

+per_frame_14=mode = if(beat*equal(beatcounter%2,0),1-mode,mode);

+per_frame_15=flip = 2*mode-1;

+per_frame_16=monitor=flip;

+per_frame_17=q8=flip;

+per_frame_18=

+per_frame_19=

+per_frame_20=decay=0.98;

+per_frame_21=zoom=1.01;

+per_frame_22=

+per_frame_23=vol=(bass_att+mid_att+treb_att)*0.25;

+per_frame_24=vol=vol*vol;

+per_frame_25=mtime=mtime+vol*0.1*flip*(45/fps);

+per_frame_26=

+per_frame_27=q1=mtime*0.4;

+per_frame_28=

+per_frame_29=warp=0.0;

+per_frame_30=

+per_frame_31=

+per_frame_32=q4 = min( vol*0.8 , 1 )*0.1 + 0.9

diff --git a/presets/Eo.S. - repeater 15 - kaleidoscope b.milk b/presets/Eo.S. - repeater 15 - kaleidoscope b.milk
new file mode 100644
index 0000000..c7f306c
--- /dev/null
+++ b/presets/Eo.S. - repeater 15 - kaleidoscope b.milk
@@ -0,0 +1,640 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.980000

+fDecay=0.960000

+fVideoEchoZoom=0.996630

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=1

+nWaveMode=2

+bAdditiveWaves=0

+bWaveDots=1

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=0

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=1

+bSolarize=0

+bInvert=0

+fWaveAlpha=0.001000

+fWaveScale=0.011726

+fWaveSmoothing=0.900000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.750000

+fModWaveAlphaEnd=0.950000

+fWarpAnimSpeed=0.037492

+fWarpScale=0.014889

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=0.033004

+sx=1.000000

+sy=1.000000

+wave_r=0.500000

+wave_g=0.400000

+wave_b=0.300000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.000000

+ob_r=0.110000

+ob_g=0.000000

+ob_b=0.100000

+ob_a=0.000000

+ib_size=0.000000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.000000

+nMotionVectorsX=0.000000

+nMotionVectorsY=43.199997

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=0.910000

+mv_b=0.710000

+mv_a=0.000000

+wavecode_0_enabled=1

+wavecode_0_samples=512

+wavecode_0_sep=0

+wavecode_0_bSpectrum=0

+wavecode_0_bUseDots=0

+wavecode_0_bDrawThick=0

+wavecode_0_bAdditive=0

+wavecode_0_scaling=1.000000

+wavecode_0_smoothing=0.500000

+wavecode_0_r=0.100000

+wavecode_0_g=1.000000

+wavecode_0_b=0.700000

+wavecode_0_a=1.000000

+wave_0_per_frame1=t1=sin(time)*0.5+0.5;

+wave_0_per_frame2=t2=sin(time+2.1)*0.5+0.5;

+wave_0_per_frame3=t3=sin(time+4.2)*0.5+0.5;

+wave_0_per_frame4=

+wave_0_per_frame5=t4=sin(time+1.1)*0.5+0.5;

+wave_0_per_frame6=t5=sin(time+3.1)*0.5+0.5;

+wave_0_per_frame7=t6=sin(time+5.2)*0.5+0.5;

+wave_0_per_point1=n=sample*6.283;

+wave_0_per_point2=phs=-sample * 0.2;

+wave_0_per_point3=tm=q1 + phs;

+wave_0_per_point4=

+wave_0_per_point5=flip=flip+1;

+wave_0_per_point6=flip=flip*below(flip,2);

+wave_0_per_point7=

+wave_0_per_point8=xp=0;

+wave_0_per_point9=yp=flip*0.1 + (sin(tm)*0.5 + 0.5)*0.2;

+wave_0_per_point10=zp=0;

+wave_0_per_point11=

+wave_0_per_point12=//wrist movement;

+wave_0_per_point13=ang=sin(tm*2 )*0.5 +0.5;

+wave_0_per_point14=

+wave_0_per_point15=xq=xp;

+wave_0_per_point16=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point17=yq=yp*sinang + zp*cosang;

+wave_0_per_point18=zq=yp*cosang - zp*sinang;

+wave_0_per_point19=yq=yp;

+wave_0_per_point20=zq=zp;

+wave_0_per_point21=

+wave_0_per_point22=ang=tm*8;

+wave_0_per_point23=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point24=xp=xq*sinang + yq*cosang;

+wave_0_per_point25=yp=xq*cosang - yq*sinang;

+wave_0_per_point26=zp=zq;

+wave_0_per_point27=

+wave_0_per_point28=//forearm movement;

+wave_0_per_point29=zp=zp-0.3;

+wave_0_per_point30=ang=3.14 + sin(tm*2 - 0.5)*1.5;

+wave_0_per_point31=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point32=xq=xp;

+wave_0_per_point33=yq=yp*sinang + zp*cosang;

+wave_0_per_point34=zq=yp*cosang - zp*sinang;

+wave_0_per_point35=

+wave_0_per_point36=//upper arm twist

+wave_0_per_point37=ang=-1.0 + cos(tm*3.1 + 0.5);

+wave_0_per_point38=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point39=xp=xq*sinang + yq*cosang;

+wave_0_per_point40=yp=xq*cosang - yq*sinang;

+wave_0_per_point41=zp=zq;

+wave_0_per_point42=

+wave_0_per_point43=//upper arm outward;

+wave_0_per_point44=zp=zp-0.35;

+wave_0_per_point45=ang=cos(tm*2.3)*1.75 - 1.05;

+wave_0_per_point46=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point47=xq=xp*sinang + zp*cosang;

+wave_0_per_point48=yq=yp;

+wave_0_per_point49=zq=xp*cosang - zp*sinang;

+wave_0_per_point50=

+wave_0_per_point51=//upper arm up down;

+wave_0_per_point52=ang=cos(tm)*0.5 - 0.5;

+wave_0_per_point53=sinang=sin(ang);cosang=cos(ang);

+wave_0_per_point54=xp=xq;

+wave_0_per_point55=yp=yq*cosang - zq*sinang;

+wave_0_per_point56=zp=yq*sinang + zq*cosang;

+wave_0_per_point57=

+wave_0_per_point58=//xp=xq;yp=yq;zp=zq;

+wave_0_per_point59=

+wave_0_per_point60=

+wave_0_per_point61=//project into screenspace and draw on screen

+wave_0_per_point62=zp=zp+2;

+wave_0_per_point63=xs=xp/zp;

+wave_0_per_point64=ys=yp/zp;

+wave_0_per_point65=

+wave_0_per_point66=x=xs+0.5;

+wave_0_per_point67=y=ys*1.3+0.5;

+wave_0_per_point68=

+wave_0_per_point69=

+wave_0_per_point70=a=if( equal(q8,1) , (1-sample) , sample);

+wave_0_per_point71=a=a*a;

+wave_0_per_point72=

+wave_0_per_point73=b=b+pow(1-sample,2)*0.3;

+wave_0_per_point74=

+wave_0_per_point75=

+wave_0_per_point76=

+wave_0_per_point77=r1=t1;

+wave_0_per_point78=g1=t2;

+wave_0_per_point79=b1=t3;

+wave_0_per_point80=r2=t4;

+wave_0_per_point81=g2=t5;

+wave_0_per_point82=b2=t6;

+wave_0_per_point83=

+wave_0_per_point84=r=r1*flip + r2*(1-flip);

+wave_0_per_point85=g=g1*flip + g2*(1-flip);

+wave_0_per_point86=b=b1*flip + b2*(1-flip);

+wavecode_1_enabled=1

+wavecode_1_samples=512

+wavecode_1_sep=0

+wavecode_1_bSpectrum=0

+wavecode_1_bUseDots=0

+wavecode_1_bDrawThick=0

+wavecode_1_bAdditive=0

+wavecode_1_scaling=1.000000

+wavecode_1_smoothing=0.500000

+wavecode_1_r=0.100000

+wavecode_1_g=1.000000

+wavecode_1_b=0.700000

+wavecode_1_a=1.000000

+wave_1_per_frame1=t1=sin(time)*0.5+0.5;

+wave_1_per_frame2=t2=sin(time+2.1)*0.5+0.5;

+wave_1_per_frame3=t3=sin(time+4.2)*0.5+0.5;

+wave_1_per_frame4=

+wave_1_per_frame5=t4=sin(time+1.1)*0.5+0.5;

+wave_1_per_frame6=t5=sin(time+3.1)*0.5+0.5;

+wave_1_per_frame7=t6=sin(time+5.2)*0.5+0.5;

+wave_1_per_point1=n=sample*6.283;

+wave_1_per_point2=phs=-sample * 0.2;

+wave_1_per_point3=tm=q1 + phs;

+wave_1_per_point4=

+wave_1_per_point5=flip=flip+1;

+wave_1_per_point6=flip=flip*below(flip,2);

+wave_1_per_point7=

+wave_1_per_point8=xp=0;

+wave_1_per_point9=yp=flip*0.1 + (sin(tm)*0.5 + 0.5)*0.2;

+wave_1_per_point10=zp=0;

+wave_1_per_point11=

+wave_1_per_point12=//wrist movement;

+wave_1_per_point13=ang=sin(tm*2 )*0.5 +0.5;

+wave_1_per_point14=

+wave_1_per_point15=xq=xp;

+wave_1_per_point16=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point17=yq=yp*sinang + zp*cosang;

+wave_1_per_point18=zq=yp*cosang - zp*sinang;

+wave_1_per_point19=yq=yp;

+wave_1_per_point20=zq=zp;

+wave_1_per_point21=

+wave_1_per_point22=ang=tm*8;

+wave_1_per_point23=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point24=xp=xq*sinang + yq*cosang;

+wave_1_per_point25=yp=xq*cosang - yq*sinang;

+wave_1_per_point26=zp=zq;

+wave_1_per_point27=

+wave_1_per_point28=//forearm movement;

+wave_1_per_point29=zp=zp-0.3;

+wave_1_per_point30=ang=3.14 + sin(tm*2 - 0.5)*1.5;

+wave_1_per_point31=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point32=xq=xp;

+wave_1_per_point33=yq=yp*sinang + zp*cosang;

+wave_1_per_point34=zq=yp*cosang - zp*sinang;

+wave_1_per_point35=

+wave_1_per_point36=//upper arm twist

+wave_1_per_point37=ang=-1.0 + cos(tm*3.1 + 0.5);

+wave_1_per_point38=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point39=xp=xq*sinang + yq*cosang;

+wave_1_per_point40=yp=xq*cosang - yq*sinang;

+wave_1_per_point41=zp=zq;

+wave_1_per_point42=

+wave_1_per_point43=//upper arm outward;

+wave_1_per_point44=zp=zp-0.35;

+wave_1_per_point45=ang=cos(tm*2.3)*1.75 - 1.05;

+wave_1_per_point46=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point47=xq=xp*sinang + zp*cosang;

+wave_1_per_point48=yq=yp;

+wave_1_per_point49=zq=xp*cosang - zp*sinang;

+wave_1_per_point50=

+wave_1_per_point51=//upper arm up down;

+wave_1_per_point52=ang=cos(tm)*0.5 - 0.5;

+wave_1_per_point53=sinang=sin(ang);cosang=cos(ang);

+wave_1_per_point54=xp=xq;

+wave_1_per_point55=yp=yq*cosang - zq*sinang;

+wave_1_per_point56=zp=yq*sinang + zq*cosang;

+wave_1_per_point57=

+wave_1_per_point58=//xp=xq;yp=yq;zp=zq;

+wave_1_per_point59=

+wave_1_per_point60=

+wave_1_per_point61=//project into screenspace and draw on screen

+wave_1_per_point62=zp=zp+2;

+wave_1_per_point63=xs=-xp/zp;

+wave_1_per_point64=ys=yp/zp;

+wave_1_per_point65=

+wave_1_per_point66=x=xs+0.5;

+wave_1_per_point67=y=ys*1.3+0.5;

+wave_1_per_point68=

+wave_1_per_point69=

+wave_1_per_point70=a=if( equal(q8,1) , (1-sample) , sample);

+wave_1_per_point71=a=a*a;

+wave_1_per_point72=

+wave_1_per_point73=b=b+pow(1-sample,2)*0.3;

+wave_1_per_point74=

+wave_1_per_point75=

+wave_1_per_point76=

+wave_1_per_point77=r1=t1;

+wave_1_per_point78=g1=t2;

+wave_1_per_point79=b1=t3;

+wave_1_per_point80=r2=t4;

+wave_1_per_point81=g2=t5;

+wave_1_per_point82=b2=t6;

+wave_1_per_point83=

+wave_1_per_point84=r=r1*flip + r2*(1-flip);

+wave_1_per_point85=g=g1*flip + g2*(1-flip);

+wave_1_per_point86=b=b1*flip + b2*(1-flip);

+wavecode_2_enabled=0

+wavecode_2_samples=512

+wavecode_2_sep=0

+wavecode_2_bSpectrum=0

+wavecode_2_bUseDots=1

+wavecode_2_bDrawThick=1

+wavecode_2_bAdditive=1

+wavecode_2_scaling=1.000000

+wavecode_2_smoothing=0.500000

+wavecode_2_r=1.000000

+wavecode_2_g=0.600000

+wavecode_2_b=0.100000

+wavecode_2_a=1.000000

+wave_2_per_frame1=t1=sin(time)*0.5+0.5;

+wave_2_per_frame2=t2=sin(time+2.1)*0.5+0.5;

+wave_2_per_frame3=t3=sin(time+4.2)*0.5+0.5;

+wave_2_per_frame4=

+wave_2_per_frame5=t4=sin(time+1.1)*0.5+0.5;

+wave_2_per_frame6=t5=sin(time+3.1)*0.5+0.5;

+wave_2_per_frame7=t6=sin(time+5.2)*0.5+0.5;

+wave_2_per_frame8=

+wave_2_per_frame9=

+wave_2_per_frame10=t8= int( sin(time*2)*2 + 3);

+wave_2_per_point1=n=sample*6.283;

+wave_2_per_point2=phs=-sample * 0.2;

+wave_2_per_point3=tm=q1 + phs;

+wave_2_per_point4=

+wave_2_per_point5=flip=flip+1;

+wave_2_per_point6=flip=flip*below(flip,2);

+wave_2_per_point7=

+wave_2_per_point8=xp=0;

+wave_2_per_point9=yp=flip*0.1 + (sin(tm)*0.5 + 0.5)*0.2;

+wave_2_per_point10=zp=0;

+wave_2_per_point11=

+wave_2_per_point12=//wrist movement;

+wave_2_per_point13=ang=sin(tm*2)*0.5 +0.5;

+wave_2_per_point14=

+wave_2_per_point15=xq=xp;

+wave_2_per_point16=sinang=sin(ang);cosang=cos(ang);

+wave_2_per_point17=yq=yp*sinang + zp*cosang;

+wave_2_per_point18=zq=yp*cosang - zp*sinang;

+wave_2_per_point19=yq=yp;

+wave_2_per_point20=zq=zp;

+wave_2_per_point21=

+wave_2_per_point22=ang=tm*8 + 1;

+wave_2_per_point23=sinang=sin(ang);cosang=cos(ang);

+wave_2_per_point24=xp=xq*sinang + yq*cosang;

+wave_2_per_point25=yp=xq*cosang - yq*sinang;

+wave_2_per_point26=zp=zq;

+wave_2_per_point27=

+wave_2_per_point28=//forearm movement;

+wave_2_per_point29=zp=zp-0.3;

+wave_2_per_point30=ang=3.14 + sin(tm*2 - 0.5)*1.5;

+wave_2_per_point31=sinang=sin(ang);cosang=cos(ang);

+wave_2_per_point32=xq=xp;

+wave_2_per_point33=yq=yp*sinang + zp*cosang;

+wave_2_per_point34=zq=yp*cosang - zp*sinang;

+wave_2_per_point35=

+wave_2_per_point36=//upper arm twist

+wave_2_per_point37=ang=-1.0 + cos(tm*3.1 + 0.5);

+wave_2_per_point38=sinang=sin(ang);cosang=cos(ang);

+wave_2_per_point39=xp=xq*sinang + yq*cosang;

+wave_2_per_point40=yp=xq*cosang - yq*sinang;

+wave_2_per_point41=zp=zq;

+wave_2_per_point42=

+wave_2_per_point43=//upper arm outward;

+wave_2_per_point44=zp=zp-0.35;

+wave_2_per_point45=ang=cos(tm*2.3)*1.75 - 1.05;

+wave_2_per_point46=sinang=sin(ang);cosang=cos(ang);

+wave_2_per_point47=xq=xp*sinang + zp*cosang;

+wave_2_per_point48=yq=yp;

+wave_2_per_point49=zq=xp*cosang - zp*sinang;

+wave_2_per_point50=

+wave_2_per_point51=//upper arm up down;

+wave_2_per_point52=ang=cos(tm)*0.5 - 0.5;

+wave_2_per_point53=sinang=sin(ang);cosang=cos(ang);

+wave_2_per_point54=xp=xq;

+wave_2_per_point55=yp=yq*cosang - zq*sinang;

+wave_2_per_point56=zp=yq*sinang + zq*cosang;

+wave_2_per_point57=

+wave_2_per_point58=//xp=xq;yp=yq;zp=zq;

+wave_2_per_point59=

+wave_2_per_point60=

+wave_2_per_point61=//project into screenspace and draw on screen

+wave_2_per_point62=zp=zp+2;

+wave_2_per_point63=xs=xp/zp;

+wave_2_per_point64=ys=yp/zp;

+wave_2_per_point65=

+wave_2_per_point66=x=xs+0.5;

+wave_2_per_point67=y=ys*1.3+0.5;

+wave_2_per_point68=

+wave_2_per_point69=a=if( equal(q8,1) , (1-sample) , sample);

+wave_2_per_point70=

+wave_2_per_point71=

+wave_2_per_point72=a=a* above( sin(tm*128*t8) , 0 );

+wave_2_per_point73=

+wave_2_per_point74=

+wave_2_per_point75=r=t4;

+wave_2_per_point76=g=t5;

+wave_2_per_point77=b=t6;

+wave_2_per_point78=

+wavecode_3_enabled=0

+wavecode_3_samples=512

+wavecode_3_sep=0

+wavecode_3_bSpectrum=0

+wavecode_3_bUseDots=1

+wavecode_3_bDrawThick=1

+wavecode_3_bAdditive=1

+wavecode_3_scaling=1.000000

+wavecode_3_smoothing=0.500000

+wavecode_3_r=1.000000

+wavecode_3_g=0.600000

+wavecode_3_b=0.100000

+wavecode_3_a=1.000000

+wave_3_per_frame1=t1=sin(time)*0.5+0.5;

+wave_3_per_frame2=t2=sin(time+2.1)*0.5+0.5;

+wave_3_per_frame3=t3=sin(time+4.2)*0.5+0.5;

+wave_3_per_frame4=

+wave_3_per_frame5=t4=sin(time+1.1)*0.5+0.5;

+wave_3_per_frame6=t5=sin(time+3.1)*0.5+0.5;

+wave_3_per_frame7=t6=sin(time+5.2)*0.5+0.5;

+wave_3_per_frame8=

+wave_3_per_frame9=

+wave_3_per_frame10=t8= int( sin(time*2)*2 + 3);

+wave_3_per_point1=n=sample*6.283;

+wave_3_per_point2=phs=-sample * 0.2;

+wave_3_per_point3=tm=q1 + phs;

+wave_3_per_point4=

+wave_3_per_point5=flip=flip+1;

+wave_3_per_point6=flip=flip*below(flip,2);

+wave_3_per_point7=

+wave_3_per_point8=xp=0;

+wave_3_per_point9=yp=flip*0.1 + (sin(tm)*0.5 + 0.5)*0.2;

+wave_3_per_point10=zp=0;

+wave_3_per_point11=

+wave_3_per_point12=//wrist movement;

+wave_3_per_point13=ang=sin(tm*2)*0.5 +0.5;

+wave_3_per_point14=

+wave_3_per_point15=xq=xp;

+wave_3_per_point16=sinang=sin(ang);cosang=cos(ang);

+wave_3_per_point17=yq=yp*sinang + zp*cosang;

+wave_3_per_point18=zq=yp*cosang - zp*sinang;

+wave_3_per_point19=yq=yp;

+wave_3_per_point20=zq=zp;

+wave_3_per_point21=

+wave_3_per_point22=ang=tm*8 + 1;

+wave_3_per_point23=sinang=sin(ang);cosang=cos(ang);

+wave_3_per_point24=xp=xq*sinang + yq*cosang;

+wave_3_per_point25=yp=xq*cosang - yq*sinang;

+wave_3_per_point26=zp=zq;

+wave_3_per_point27=

+wave_3_per_point28=//forearm movement;

+wave_3_per_point29=zp=zp-0.3;

+wave_3_per_point30=ang=3.14 + sin(tm*2 - 0.5)*1.5;

+wave_3_per_point31=sinang=sin(ang);cosang=cos(ang);

+wave_3_per_point32=xq=xp;

+wave_3_per_point33=yq=yp*sinang + zp*cosang;

+wave_3_per_point34=zq=yp*cosang - zp*sinang;

+wave_3_per_point35=

+wave_3_per_point36=//upper arm twist

+wave_3_per_point37=ang=-1.0 + cos(tm*3.1 + 0.5);

+wave_3_per_point38=sinang=sin(ang);cosang=cos(ang);

+wave_3_per_point39=xp=xq*sinang + yq*cosang;

+wave_3_per_point40=yp=xq*cosang - yq*sinang;

+wave_3_per_point41=zp=zq;

+wave_3_per_point42=

+wave_3_per_point43=//upper arm outward;

+wave_3_per_point44=zp=zp-0.35;

+wave_3_per_point45=ang=cos(tm*2.3)*1.75 - 1.05;

+wave_3_per_point46=sinang=sin(ang);cosang=cos(ang);

+wave_3_per_point47=xq=xp*sinang + zp*cosang;

+wave_3_per_point48=yq=yp;

+wave_3_per_point49=zq=xp*cosang - zp*sinang;

+wave_3_per_point50=

+wave_3_per_point51=//upper arm up down;

+wave_3_per_point52=ang=cos(tm)*0.5 - 0.5;

+wave_3_per_point53=sinang=sin(ang);cosang=cos(ang);

+wave_3_per_point54=xp=xq;

+wave_3_per_point55=yp=yq*cosang - zq*sinang;

+wave_3_per_point56=zp=yq*sinang + zq*cosang;

+wave_3_per_point57=

+wave_3_per_point58=//xp=xq;yp=yq;zp=zq;

+wave_3_per_point59=

+wave_3_per_point60=

+wave_3_per_point61=//project into screenspace and draw on screen

+wave_3_per_point62=zp=zp+2;

+wave_3_per_point63=xs=-xp/zp;

+wave_3_per_point64=ys=yp/zp;

+wave_3_per_point65=

+wave_3_per_point66=x=xs+0.5;

+wave_3_per_point67=y=ys*1.3+0.5;

+wave_3_per_point68=

+wave_3_per_point69=a=if( equal(q8,1) , (1-sample) , sample);

+wave_3_per_point70=

+wave_3_per_point71=

+wave_3_per_point72=a=a* above( sin(tm*128*t8) , 0 );

+wave_3_per_point73=

+wave_3_per_point74=

+wave_3_per_point75=r=t4;

+wave_3_per_point76=g=t5;

+wave_3_per_point77=b=t6;

+wave_3_per_point78=

+shapecode_0_enabled=1

+shapecode_0_sides=4

+shapecode_0_additive=0

+shapecode_0_thickOutline=0

+shapecode_0_textured=1

+shapecode_0_x=0.260000

+shapecode_0_y=0.809999

+shapecode_0_rad=0.892690

+shapecode_0_ang=0.000000

+shapecode_0_tex_ang=0.000000

+shapecode_0_tex_zoom=1.082857

+shapecode_0_r=1.000000

+shapecode_0_g=1.000000

+shapecode_0_b=1.000000

+shapecode_0_a=1.000000

+shapecode_0_r2=1.000000

+shapecode_0_g2=1.000000

+shapecode_0_b2=1.000000

+shapecode_0_a2=1.000000

+shapecode_0_border_r=1.000000

+shapecode_0_border_g=1.000000

+shapecode_0_border_b=1.000000

+shapecode_0_border_a=0.000000

+shape_0_per_frame1=x = 0.264;

+shape_0_per_frame2=

+shape_0_per_frame3=r2=r2*q4;

+shape_0_per_frame4=g2=g2*q4;

+shape_0_per_frame5=b2=b2*q4;

+shape_0_per_frame6=

+shape_0_per_frame7=tex_ang= q2

+shapecode_1_enabled=0

+shapecode_1_sides=4

+shapecode_1_additive=0

+shapecode_1_thickOutline=0

+shapecode_1_textured=1

+shapecode_1_x=0.740000

+shapecode_1_y=0.809999

+shapecode_1_rad=0.892690

+shapecode_1_ang=0.000000

+shapecode_1_tex_ang=0.000000

+shapecode_1_tex_zoom=1.082857

+shapecode_1_r=1.000000

+shapecode_1_g=1.000000

+shapecode_1_b=1.000000

+shapecode_1_a=1.000000

+shapecode_1_r2=1.000000

+shapecode_1_g2=1.000000

+shapecode_1_b2=1.000000

+shapecode_1_a2=1.000000

+shapecode_1_border_r=1.000000

+shapecode_1_border_g=1.000000

+shapecode_1_border_b=1.000000

+shapecode_1_border_a=0.000000

+shape_1_per_frame1=x=0.737;

+shape_1_per_frame2=

+shape_1_per_frame3=

+shape_1_per_frame4=r2=r2*q4;

+shape_1_per_frame5=g2=g2*q4;

+shape_1_per_frame6=b2=b2*q4;

+shape_1_per_frame7=

+shape_1_per_frame8=

+shape_1_per_frame9=tex_ang= -q2

+shapecode_2_enabled=1

+shapecode_2_sides=4

+shapecode_2_additive=0

+shapecode_2_thickOutline=0

+shapecode_2_textured=1

+shapecode_2_x=0.260000

+shapecode_2_y=0.179999

+shapecode_2_rad=0.892690

+shapecode_2_ang=0.000000

+shapecode_2_tex_ang=0.000000

+shapecode_2_tex_zoom=1.082857

+shapecode_2_r=1.000000

+shapecode_2_g=1.000000

+shapecode_2_b=1.000000

+shapecode_2_a=1.000000

+shapecode_2_r2=1.000000

+shapecode_2_g2=1.000000

+shapecode_2_b2=1.000000

+shapecode_2_a2=1.000000

+shapecode_2_border_r=1.000000

+shapecode_2_border_g=1.000000

+shapecode_2_border_b=1.000000

+shapecode_2_border_a=0.000000

+shape_2_per_frame1=x = 0.264;

+shape_2_per_frame2=y = 0.178;

+shape_2_per_frame3=

+shape_2_per_frame4=

+shape_2_per_frame5=r2=r2*q4;

+shape_2_per_frame6=g2=g2*q4;

+shape_2_per_frame7=b2=b2*q4;

+shape_2_per_frame8=

+shape_2_per_frame9=

+shape_2_per_frame10=tex_ang= -q2/2

+shapecode_3_enabled=1

+shapecode_3_sides=4

+shapecode_3_additive=0

+shapecode_3_thickOutline=0

+shapecode_3_textured=1

+shapecode_3_x=0.500000

+shapecode_3_y=0.499999

+shapecode_3_rad=0.476930

+shapecode_3_ang=0.000000

+shapecode_3_tex_ang=0.000000

+shapecode_3_tex_zoom=2.026830

+shapecode_3_r=1.000000

+shapecode_3_g=1.000000

+shapecode_3_b=1.000000

+shapecode_3_a=1.000000

+shapecode_3_r2=1.000000

+shapecode_3_g2=1.000000

+shapecode_3_b2=1.000000

+shapecode_3_a2=1.000000

+shapecode_3_border_r=1.000000

+shapecode_3_border_g=1.000000

+shapecode_3_border_b=1.000000

+shapecode_3_border_a=0.000000

+shape_3_per_frame1=x=0.4998

+per_frame_init_1=mv_x=64;mv_y=48;

+per_frame_init_2=nut=0;

+per_frame_init_3=stp=0;stq=0;

+per_frame_init_4=rtp=0;rtq=0;

+per_frame_init_5=wvr=0;

+per_frame_init_6=decay=0;

+per_frame_init_7=dcsp=0;

+per_frame_init_8=warp=0

+per_frame_init_9=

+per_frame_1=

+per_frame_2=//krash's beat detection code

+per_frame_3=volume = 0.3*(bass+mid+att);

+per_frame_4=beatrate = equal(beatrate,0) + (1-equal(beatrate,0))*(below(volume,0.01) + (1-below(volume,0.01))*beatrate);

+per_frame_5=lastbeat = lastbeat + equal(lastbeat,0)*time;

+per_frame_6=meanbass_att = 0.1*(meanbass_att*9 + bass_att);

+per_frame_7=peakbass_att = max(bass_att,peakbass_att);

+per_frame_8=beatrate = max(if(beat,if(below(time-lastbeat,2*beatrate),0.1*(beatrate*9 + time - lastbeat),beatrate),beatrate),0.1);

+per_frame_9=peakbass_att = beat*bass_att + (1-beat)*peakbass_att*(above(time - lastbeat, 2*beatrate)*0.95 + (1-above(time - lastbeat, 2*beatrate))*0.995);

+per_frame_10=lastbeat = beat*time + (1-beat)*lastbeat;

+per_frame_11=peakbass_att = max(peakbass_att,1.1*meanbass_att);

+per_frame_12=beat = above(volume,0.8)*below(peakbass_att - bass_att, 0.05*peakbass_att)*above(time - lastbeat, 0.1 + 0.5*(beatrate - 0.1));

+per_frame_13=beatcounter = beatcounter + beat;

+per_frame_14=mode = if(beat*equal(beatcounter%2,0),1-mode,mode);

+per_frame_15=flip = 2*mode-1;

+per_frame_16=monitor=flip;

+per_frame_17=q8=flip;

+per_frame_18=

+per_frame_19=

+per_frame_20=decay=0.98;

+per_frame_21=zoom=1.01;

+per_frame_22=

+per_frame_23=vol=(bass_att+mid_att+treb_att)*0.25;

+per_frame_24=vol=vol*vol;

+per_frame_25=mtime=mtime+vol*0.05*flip*(65/fps);

+per_frame_26=mtimeb=mtimeb+vol*0.1*(65/fps);

+per_frame_27=

+per_frame_28=q1=time*3;

+per_frame_29=

+per_frame_30=warp=0.0;

+per_frame_31=

+per_frame_32=

+per_frame_33=q4 = min( vol*0.8 , 1 )*0.1 + 0.9;

+per_frame_34=q2 = mtimeb/30;

+per_frame_35=sx=-1

diff --git a/presets/Eo.S.+Phat - Arm_upgrades - transformer.milk b/presets/Eo.S.+Phat - Arm_upgrades - transformer.milk
new file mode 100644
index 0000000..0a9af1f
--- /dev/null
+++ b/presets/Eo.S.+Phat - Arm_upgrades - transformer.milk
@@ -0,0 +1,282 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.000000

+fDecay=0.940000

+fVideoEchoZoom=1.001822

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=1

+nWaveMode=0

+bAdditiveWaves=1

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=1

+bDarken=1

+bSolarize=0

+bInvert=1

+fWaveAlpha=0.001000

+fWaveScale=0.010000

+fWaveSmoothing=0.630000

+fWaveParam=-1.000000

+fModWaveAlphaStart=0.710000

+fModWaveAlphaEnd=1.300000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.331000

+fZoomExponent=0.999998

+fShader=0.000000

+zoom=13.290894

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=-0.280000

+dy=-0.320000

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.650000

+wave_g=0.650000

+wave_b=0.650000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.050000

+ob_r=1.000000

+ob_g=1.000000

+ob_b=1.000000

+ob_a=1.000000

+ib_size=0.050000

+ib_r=0.000000

+ib_g=1.000000

+ib_b=0.000000

+ib_a=0.000000

+nMotionVectorsX=0.000000

+nMotionVectorsY=0.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=0.000000

+mv_r=0.000000

+mv_g=0.700000

+mv_b=1.000000

+mv_a=0.000000

+wavecode_0_enabled=0

+wavecode_0_samples=512

+wavecode_0_sep=0

+wavecode_0_bSpectrum=0

+wavecode_0_bUseDots=0

+wavecode_0_bDrawThick=1

+wavecode_0_bAdditive=0

+wavecode_0_scaling=1.000000

+wavecode_0_smoothing=0.500000

+wavecode_0_r=1.000000

+wavecode_0_g=1.000000

+wavecode_0_b=1.000000

+wavecode_0_a=1.000000

+wave_0_per_point1=n=sample*6.283;

+wave_0_per_point2=size=0.165;

+wave_0_per_point3=

+wave_0_per_point4=x=sin(n)*size + 0.5;

+wave_0_per_point5=y=cos(n)*size*1.3333 + 0.5;

+wave_0_per_point6=

+wave_0_per_point7=flux=sin(n*2-time)*0.5+0.5;

+wave_0_per_point8=r=sin(n)*0.5 + 0.5;

+wave_0_per_point9=g=sin(n+2.1)*0.5+0.5;

+wave_0_per_point10=b=sin(n+4.2)*0.5 + 0.5;

+wave_0_per_point11=r=r*flux;

+wave_0_per_point12=g=g*flux;

+wave_0_per_point13=b=b*flux

+wavecode_1_enabled=0

+wavecode_1_samples=512

+wavecode_1_sep=0

+wavecode_1_bSpectrum=0

+wavecode_1_bUseDots=0

+wavecode_1_bDrawThick=1

+wavecode_1_bAdditive=1

+wavecode_1_scaling=1.000000

+wavecode_1_smoothing=0.500000

+wavecode_1_r=1.000000

+wavecode_1_g=1.000000

+wavecode_1_b=1.000000

+wavecode_1_a=1.000000

+wave_1_per_point1=n=sample*6.283;

+wave_1_per_point2=size=0.165;

+wave_1_per_point3=

+wave_1_per_point4=x=sin(n)*size + 0.5;

+wave_1_per_point5=y=cos(n)*size*1.3333 + 0.5;

+wave_1_per_point6=

+wave_1_per_point7=flux=sin(n*2-time)*0.5+0.5;

+wave_1_per_point8=r=sin(n)*0.5 + 0.5;

+wave_1_per_point9=g=sin(n+2.1)*0.5+0.5;

+wave_1_per_point10=b=sin(n+4.2)*0.5 + 0.5;

+wave_1_per_point11=r=r*flux;

+wave_1_per_point12=g=g*flux;

+wave_1_per_point13=b=b*flux

+wavecode_2_enabled=0

+wavecode_2_samples=512

+wavecode_2_sep=0

+wavecode_2_bSpectrum=0

+wavecode_2_bUseDots=0

+wavecode_2_bDrawThick=0

+wavecode_2_bAdditive=0

+wavecode_2_scaling=1.000000

+wavecode_2_smoothing=0.500000

+wavecode_2_r=1.000000

+wavecode_2_g=1.000000

+wavecode_2_b=1.000000

+wavecode_2_a=1.000000

+wavecode_3_enabled=0

+wavecode_3_samples=512

+wavecode_3_sep=0

+wavecode_3_bSpectrum=0

+wavecode_3_bUseDots=0

+wavecode_3_bDrawThick=0

+wavecode_3_bAdditive=0

+wavecode_3_scaling=1.000000

+wavecode_3_smoothing=0.500000

+wavecode_3_r=1.000000

+wavecode_3_g=1.000000

+wavecode_3_b=1.000000

+wavecode_3_a=1.000000

+shapecode_0_enabled=1

+shapecode_0_sides=100

+shapecode_0_additive=0

+shapecode_0_thickOutline=0

+shapecode_0_textured=0

+shapecode_0_x=0.500000

+shapecode_0_y=0.500000

+shapecode_0_rad=0.542785

+shapecode_0_ang=0.000000

+shapecode_0_tex_ang=0.000000

+shapecode_0_tex_zoom=1.000000

+shapecode_0_r=0.000000

+shapecode_0_g=1.000000

+shapecode_0_b=1.000000

+shapecode_0_a=1.000000

+shapecode_0_r2=0.000000

+shapecode_0_g2=1.000000

+shapecode_0_b2=0.000000

+shapecode_0_a2=0.000000

+shapecode_0_border_r=1.000000

+shapecode_0_border_g=1.000000

+shapecode_0_border_b=1.000000

+shapecode_0_border_a=0.000000

+shape_0_per_frame1=x=.5+q4;y=.5+q5;

+shapecode_1_enabled=1

+shapecode_1_sides=65

+shapecode_1_additive=0

+shapecode_1_thickOutline=0

+shapecode_1_textured=1

+shapecode_1_x=0.500000

+shapecode_1_y=0.500000

+shapecode_1_rad=0.724343

+shapecode_1_ang=6.283185

+shapecode_1_tex_ang=3.141593

+shapecode_1_tex_zoom=1.020088

+shapecode_1_r=1.000000

+shapecode_1_g=1.000000

+shapecode_1_b=1.000000

+shapecode_1_a=1.000000

+shapecode_1_r2=1.000000

+shapecode_1_g2=1.000000

+shapecode_1_b2=1.000000

+shapecode_1_a2=1.000000

+shapecode_1_border_r=0.000000

+shapecode_1_border_g=0.000000

+shapecode_1_border_b=0.000000

+shapecode_1_border_a=0.000000

+shape_1_per_frame1=tex_ang=0.01;

+shape_1_per_frame2=//tex_zoom=2.235;

+shape_1_per_frame3=x=.5-q4;

+shape_1_per_frame4=y=.5-q5;

+shape_1_per_frame5=

+shape_1_per_frame6=vol= (mid*mid+treb*treb);

+shape_1_per_frame7=vol=vol* above(vol,1);

+shape_1_per_frame8=//ang=ang+ vol*0.1;

+shape_1_per_frame9=ang=(sin(time/2)*0.5+0.5)*6.28;

+shapecode_2_enabled=1

+shapecode_2_sides=13

+shapecode_2_additive=0

+shapecode_2_thickOutline=0

+shapecode_2_textured=1

+shapecode_2_x=0.500000

+shapecode_2_y=0.500000

+shapecode_2_rad=0.444840

+shapecode_2_ang=0.000000

+shapecode_2_tex_ang=0.000000

+shapecode_2_tex_zoom=0.550441

+shapecode_2_r=1.000000

+shapecode_2_g=1.000000

+shapecode_2_b=1.000000

+shapecode_2_a=1.000000

+shapecode_2_r2=1.000000

+shapecode_2_g2=1.000000

+shapecode_2_b2=1.000000

+shapecode_2_a2=0.000000

+shapecode_2_border_r=1.000000

+shapecode_2_border_g=1.000000

+shapecode_2_border_b=1.000000

+shapecode_2_border_a=0.000000

+shapecode_3_enabled=1

+shapecode_3_sides=14

+shapecode_3_additive=0

+shapecode_3_thickOutline=0

+shapecode_3_textured=0

+shapecode_3_x=0.500000

+shapecode_3_y=0.500000

+shapecode_3_rad=0.100000

+shapecode_3_ang=0.000000

+shapecode_3_tex_ang=0.000000

+shapecode_3_tex_zoom=1.000000

+shapecode_3_r=0.000000

+shapecode_3_g=0.000000

+shapecode_3_b=1.000000

+shapecode_3_a=1.000000

+shapecode_3_r2=0.000000

+shapecode_3_g2=0.000000

+shapecode_3_b2=0.000000

+shapecode_3_a2=0.000000

+shapecode_3_border_r=1.000000

+shapecode_3_border_g=1.000000

+shapecode_3_border_b=1.000000

+shapecode_3_border_a=0.000000

+per_frame_init_1=

+per_frame_init_2=zoom=1;

+per_frame_init_3=xpos=0;

+per_frame_init_4=ypos=0;

+per_frame_1=decay=1;

+per_frame_2=

+per_frame_3=vol= (bass+mid+treb)*0.25;

+per_frame_4=vol=vol*vol;

+per_frame_5=

+per_frame_6=

+per_frame_7=mv_r = 0.5 + 0.4*sin(time*1.324);

+per_frame_8=mv_g = 0.5 + 0.4*cos(time*1.371);

+per_frame_9=

+per_frame_10=

+per_frame_11=

+per_frame_12=musictime=musictime+vol*(44/fps);

+per_frame_13=

+per_frame_14=q4=0;

+per_frame_15=q5=0;

+per_frame_16=//q4=sin(musictime*0.02)*0.3;

+per_frame_17=//q5=sin(musictime*0.01)*0.3;

+per_frame_18=

+per_frame_19=dx=sin(musictime*0.1)*0.07;

+per_frame_20=dy=cos(musictime*0.069)*0.01;

+per_frame_21=q1=sin(musictime*0.001)*0.4+0.5;

+per_frame_22=q2=cos(musictime*0.001)*0.5+0.5;

+per_frame_23=

+per_frame_24=q8=musictime;

+per_frame_25=zoom=.8;

+per_frame_26=

+per_frame_27=monitor=rot;

+per_frame_28=

+per_frame_29=

+per_frame_30=musictime=musictime+mid*0.1;

+per_frame_31=

+per_frame_32=xpos=sin(musictime*0.1)*0.2;

+per_frame_33=ypos=cos(musictime*0.1)*0.2;

+per_frame_34=q4=xpos;

+per_frame_35=q5=ypos

diff --git "a/presets/Eo.S.+Phat Cool Bug v2 + \050Krash\047s beat detection\051.milk" "b/presets/Eo.S.+Phat Cool Bug v2 + \050Krash\047s beat detection\051.milk"
new file mode 100644
index 0000000..adb7467
--- /dev/null
+++ "b/presets/Eo.S.+Phat Cool Bug v2 + \050Krash\047s beat detection\051.milk"
@@ -0,0 +1,261 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.000000

+fDecay=0.940000

+fVideoEchoZoom=0.498313

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=1

+nWaveMode=0

+bAdditiveWaves=1

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=0.001000

+fWaveScale=0.010000

+fWaveSmoothing=0.630000

+fWaveParam=-1.000000

+fModWaveAlphaStart=0.710000

+fModWaveAlphaEnd=1.300000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.331000

+fZoomExponent=0.999998

+fShader=1.000000

+zoom=13.290894

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=-0.280000

+dy=-0.320000

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.650000

+wave_g=0.650000

+wave_b=0.650000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.000000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.030000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=1.000000

+nMotionVectorsX=6.400000

+nMotionVectorsY=43.199997

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.000000

+mv_r=1.000000

+mv_g=0.910000

+mv_b=0.710000

+mv_a=0.000000

+wavecode_0_enabled=0

+wavecode_0_samples=512

+wavecode_0_sep=0

+wavecode_0_bSpectrum=0

+wavecode_0_bUseDots=0

+wavecode_0_bDrawThick=0

+wavecode_0_bAdditive=0

+wavecode_0_scaling=1.000000

+wavecode_0_smoothing=0.500000

+wavecode_0_r=1.000000

+wavecode_0_g=1.000000

+wavecode_0_b=1.000000

+wavecode_0_a=1.000000

+wavecode_1_enabled=0

+wavecode_1_samples=512

+wavecode_1_sep=0

+wavecode_1_bSpectrum=0

+wavecode_1_bUseDots=0

+wavecode_1_bDrawThick=0

+wavecode_1_bAdditive=0

+wavecode_1_scaling=1.000000

+wavecode_1_smoothing=0.500000

+wavecode_1_r=1.000000

+wavecode_1_g=1.000000

+wavecode_1_b=1.000000

+wavecode_1_a=1.000000

+wavecode_2_enabled=0

+wavecode_2_samples=512

+wavecode_2_sep=0

+wavecode_2_bSpectrum=0

+wavecode_2_bUseDots=0

+wavecode_2_bDrawThick=0

+wavecode_2_bAdditive=0

+wavecode_2_scaling=1.000000

+wavecode_2_smoothing=0.500000

+wavecode_2_r=1.000000

+wavecode_2_g=1.000000

+wavecode_2_b=1.000000

+wavecode_2_a=1.000000

+wavecode_3_enabled=0

+wavecode_3_samples=512

+wavecode_3_sep=0

+wavecode_3_bSpectrum=0

+wavecode_3_bUseDots=0

+wavecode_3_bDrawThick=0

+wavecode_3_bAdditive=0

+wavecode_3_scaling=1.000000

+wavecode_3_smoothing=0.500000

+wavecode_3_r=1.000000

+wavecode_3_g=1.000000

+wavecode_3_b=1.000000

+wavecode_3_a=1.000000

+shapecode_0_enabled=1

+shapecode_0_sides=100

+shapecode_0_additive=0

+shapecode_0_thickOutline=0

+shapecode_0_textured=0

+shapecode_0_x=0.500000

+shapecode_0_y=0.500000

+shapecode_0_rad=0.491382

+shapecode_0_ang=0.000000

+shapecode_0_tex_ang=0.000000

+shapecode_0_tex_zoom=1.000000

+shapecode_0_r=0.000000

+shapecode_0_g=0.000000

+shapecode_0_b=1.000000

+shapecode_0_a=1.000000

+shapecode_0_r2=0.000000

+shapecode_0_g2=1.000000

+shapecode_0_b2=0.000000

+shapecode_0_a2=0.000000

+shapecode_0_border_r=1.000000

+shapecode_0_border_g=1.000000

+shapecode_0_border_b=1.000000

+shapecode_0_border_a=0.000000

+shape_0_per_frame1=x=.5+q4;y=.5+q5;

+shapecode_1_enabled=1

+shapecode_1_sides=4

+shapecode_1_additive=0

+shapecode_1_thickOutline=0

+shapecode_1_textured=1

+shapecode_1_x=0.500000

+shapecode_1_y=0.500000

+shapecode_1_rad=0.444842

+shapecode_1_ang=0.000000

+shapecode_1_tex_ang=0.000000

+shapecode_1_tex_zoom=0.819541

+shapecode_1_r=1.000000

+shapecode_1_g=1.000000

+shapecode_1_b=1.000000

+shapecode_1_a=1.000000

+shapecode_1_r2=1.000000

+shapecode_1_g2=1.000000

+shapecode_1_b2=1.000000

+shapecode_1_a2=0.000000

+shapecode_1_border_r=1.000000

+shapecode_1_border_g=1.000000

+shapecode_1_border_b=1.000000

+shapecode_1_border_a=0.000000

+shape_1_per_frame1=tex_ang=0.01;

+shape_1_per_frame2=x=.5+q4;y=.5+q5;

+shape_1_per_frame3=ang = time/5

+shapecode_2_enabled=0

+shapecode_2_sides=4

+shapecode_2_additive=0

+shapecode_2_thickOutline=0

+shapecode_2_textured=0

+shapecode_2_x=0.500000

+shapecode_2_y=0.500000

+shapecode_2_rad=0.100000

+shapecode_2_ang=0.000000

+shapecode_2_tex_ang=0.000000

+shapecode_2_tex_zoom=1.000000

+shapecode_2_r=1.000000

+shapecode_2_g=0.000000

+shapecode_2_b=0.000000

+shapecode_2_a=1.000000

+shapecode_2_r2=0.000000

+shapecode_2_g2=1.000000

+shapecode_2_b2=0.000000

+shapecode_2_a2=0.000000

+shapecode_2_border_r=1.000000

+shapecode_2_border_g=1.000000

+shapecode_2_border_b=1.000000

+shapecode_2_border_a=0.100000

+shapecode_3_enabled=0

+shapecode_3_sides=4

+shapecode_3_additive=0

+shapecode_3_thickOutline=0

+shapecode_3_textured=0

+shapecode_3_x=0.500000

+shapecode_3_y=0.500000

+shapecode_3_rad=0.100000

+shapecode_3_ang=0.000000

+shapecode_3_tex_ang=0.000000

+shapecode_3_tex_zoom=1.000000

+shapecode_3_r=1.000000

+shapecode_3_g=0.000000

+shapecode_3_b=0.000000

+shapecode_3_a=1.000000

+shapecode_3_r2=0.000000

+shapecode_3_g2=1.000000

+shapecode_3_b2=0.000000

+shapecode_3_a2=0.000000

+shapecode_3_border_r=1.000000

+shapecode_3_border_g=1.000000

+shapecode_3_border_b=1.000000

+shapecode_3_border_a=0.100000

+per_frame_init_1=zoom=1;

+per_frame_init_2=xpos=0;

+per_frame_init_3=ypos=0;

+per_frame_1=decay=1;

+per_frame_2=

+per_frame_3=vol= (bass+mid+treb)*0.55;

+per_frame_4=vol=vol;

+per_frame_5=

+per_frame_6=

+per_frame_7=mv_r = 0.5 + 0.4*sin(time*1.324);

+per_frame_8=mv_g = 0.5 + 0.4*cos(time*1.371);

+per_frame_9=

+per_frame_10=

+per_frame_11=

+per_frame_12=

+per_frame_13=zoom=.9;

+per_frame_14=

+per_frame_15=musictime=musictime+vol*(75/fps);

+per_frame_16=

+per_frame_17=q4=sin(musictime*0.02)*0.3;

+per_frame_18=q5=sin(musictime*0.01)*0.3;

+per_frame_19=

+per_frame_20=dx=sin(musictime*0.1)*0.01;

+per_frame_21=dy=cos(musictime*0.069)*0.01;

+per_frame_22=

+per_frame_23=

+per_frame_24=

+per_frame_25=

+per_frame_26=monitor=rot;

+per_frame_27=

+per_frame_28=

+per_frame_29=

+per_frame_30=//krash's beat detection code

+per_frame_31=volume = 0.3*(bass+mid+att);

+per_frame_32=beatrate = equal(beatrate,0) + (1-equal(beatrate,0))*(below(volume,0.01) + (1-below(volume,0.01))*beatrate);

+per_frame_33=lastbeat = lastbeat + equal(lastbeat,0)*time;

+per_frame_34=meanbass_att = 0.1*(meanbass_att*9 + bass_att);

+per_frame_35=peakbass_att = max(bass_att,peakbass_att);

+per_frame_36=beatrate = max(if(beat,if(below(time-lastbeat,2*beatrate),0.1*(beatrate*9 + time - lastbeat),beatrate),beatrate),0.1);

+per_frame_37=peakbass_att = beat*bass_att + (1-beat)*peakbass_att*(above(time - lastbeat, 2*beatrate)*0.95 + (1-above(time - lastbeat, 2*beatrate))*0.995);

+per_frame_38=lastbeat = beat*time + (1-beat)*lastbeat;

+per_frame_39=peakbass_att = max(peakbass_att,1.1*meanbass_att);

+per_frame_40=beat = above(volume,0.8)*below(peakbass_att - bass_att, 0.05*peakbass_att)*above(time - lastbeat, 0.1 + 0.5*(beatrate - 0.1));

+per_frame_41=beatcounter = beatcounter + beat;

+per_frame_42=mode = if(beat*equal(beatcounter%2,0),1-mode,mode);

+per_frame_43=flip = 2*mode-1;

+per_frame_44=flip = flip*0.5+0.5;

+per_frame_45=

+per_frame_46=rot = -time/4 * flip;

+per_frame_47=

diff --git a/presets/EvilJim - Follow the ball.milk b/presets/EvilJim - Follow the ball.milk
new file mode 100644
index 0000000..acc49b7
--- /dev/null
+++ b/presets/EvilJim - Follow the ball.milk
@@ -0,0 +1,65 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.000000

+fDecay=0.980000

+fVideoEchoZoom=0.999608

+fVideoEchoAlpha=0.000000

+nVideoEchoOrientation=0

+nWaveMode=0

+bAdditiveWaves=0

+bWaveDots=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=0

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=1

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=0.800000

+fWaveScale=0.250302

+fWaveSmoothing=0.000000

+fWaveParam=-0.250000

+fModWaveAlphaStart=0.750000

+fModWaveAlphaEnd=0.950000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=0.010000

+sx=1.000000

+sy=0.990097

+wave_r=0.000000

+wave_g=0.000000

+wave_b=0.000000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.010000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=0.000000

+ib_size=0.010000

+ib_r=0.250000

+ib_g=0.250000

+ib_b=0.250000

+ib_a=0.000000

+nMotionVectorsX=12.000000

+nMotionVectorsY=9.000000

+mv_l=0.900000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r=bass*2;

+per_frame_2=wave_g=mid*4;

+per_frame_3=wave_b=treb*0.6;

+per_pixel_1=dx=if(above(x,bass*0.6),0.02,-0.02);

+per_pixel_2=dy=if(above(y,treb_att*0.5),0.02,-0.02);

diff --git a/presets/EvilJim - Ice Drops.milk b/presets/EvilJim - Ice Drops.milk
new file mode 100644
index 0000000..e92096a
--- /dev/null
+++ b/presets/EvilJim - Ice Drops.milk
@@ -0,0 +1,61 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.000000

+fDecay=0.990000

+fVideoEchoZoom=0.999601

+fVideoEchoAlpha=0.499900

+nVideoEchoOrientation=0

+nWaveMode=6

+bAdditiveWaves=0

+bWaveDots=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=0

+bDarkenCenter=1

+bMotionVectorsOn=0

+bRedBlueStereo=0

+nMotionVectorsX=12

+nMotionVectorsY=9

+bBrighten=1

+bDarken=1

+bSolarize=0

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=0.199862

+fWaveSmoothing=0.000000

+fWaveParam=0.000000

+fModWaveAlphaStart=2.000000

+fModWaveAlphaEnd=2.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000353

+fZoomExponent=1.000157

+fShader=0.000000

+zoom=0.999511

+rot=0.000000

+cx=0.500001

+cy=0.050000

+dx=0.000000

+dy=0.000000

+warp=0.010000

+sx=1.000158

+sy=1.000000

+wave_r=0.000000

+wave_g=0.000000

+wave_b=0.000000

+wave_x=0.999000

+wave_y=0.000000

+ob_size=0.500000

+ob_r=0.010000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=0.000000

+ib_size=0.260000

+ib_r=0.250000

+ib_g=0.250000

+ib_b=0.250000

+ib_a=0.000000

+per_frame_1=warp=0;

+per_frame_2=wave_r=treb;

+per_frame_3=wave_g=mid;

+per_frame_4=wave_b=bass;

+per_frame_5=dy=bass/50;

diff --git a/presets/Fvese & Idiot24-7 - Rearview Mirror.milk b/presets/Fvese & Idiot24-7 - Rearview Mirror.milk
new file mode 100644
index 0000000..4810294
--- /dev/null
+++ b/presets/Fvese & Idiot24-7 - Rearview Mirror.milk
@@ -0,0 +1,72 @@
+[preset00]

+fRating=2.000000

+fGammaAdj=1.280000

+fDecay=0.970000

+fVideoEchoZoom=1.006596

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=3

+nWaveMode=1

+bAdditiveWaves=1

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=1

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=4.099998

+fWaveScale=0.660119

+fWaveSmoothing=0.630000

+fWaveParam=-0.200000

+fModWaveAlphaStart=0.710000

+fModWaveAlphaEnd=1.300000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.331000

+fZoomExponent=100.000000

+fShader=0.000000

+zoom=0.607700

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=0.010000

+sx=0.999999

+sy=0.999900

+wave_r=0.600000

+wave_g=0.400000

+wave_b=0.800000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.000000

+ob_r=0.010000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=0.000000

+ib_size=0.000000

+ib_r=0.250000

+ib_g=0.250000

+ib_b=0.250000

+ib_a=0.000000

+nMotionVectorsX=0.000000

+nMotionVectorsY=0.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=5.000000

+mv_r=1.000000

+mv_g=1.000000

+mv_b=0.000000

+mv_a=0.000000

+per_frame_1=wave_r=wave_r*sin(bass+mid);

+per_frame_2=wave_b=wave_b-.4*sin(time*bass);

+per_frame_3=wave_g=wave_g+.6*cos(time*mid-bass);

+per_frame_4=bass_eff = max(max(bass,bass_att)-1,0);

+per_frame_5=bass_thresh = above(bass_att,bass_thresh)*2 + (1-above(bass_att,bass_thresh))*((bass_thresh-1.3)*0.96+1.3);

+per_frame_6=decay = decay - 0.05*equal(frame%16,0);

+per_frame_7=rot = rot + bass_eff/bass_thresh-0.05;

+per_frame_8=monitor = rot;

+per_pixel_1=zoom=pow(.8+x&.8+y,1+x&1+y)+.1;

diff --git a/presets/Fvese - 0 To 60.milk b/presets/Fvese - 0 To 60.milk
new file mode 100644
index 0000000..e0b8a15
--- /dev/null
+++ b/presets/Fvese - 0 To 60.milk
@@ -0,0 +1,81 @@
+[preset00]

+fRating=3.500000

+fGammaAdj=1.000000

+fDecay=0.970000

+fVideoEchoZoom=1.008000

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=0

+nWaveMode=2

+bAdditiveWaves=1

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=1.091679

+fWaveScale=0.721421

+fWaveSmoothing=0.900000

+fWaveParam=0.000000

+fModWaveAlphaStart=1.489999

+fModWaveAlphaEnd=0.750000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.007348

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.115109

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000005

+dy=0.000000

+warp=0.010000

+sx=0.999998

+sy=1.000000

+wave_r=0.760000

+wave_g=0.480000

+wave_b=0.390000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.005000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.010000

+ib_r=1.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=1.000000

+nMotionVectorsX=6.400000

+nMotionVectorsY=4.800000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=3.000000

+mv_r=0.669900

+mv_g=0.480000

+mv_b=0.390000

+mv_a=0.000000

+per_frame_1=wave_b = rand(100)/100;

+per_frame_2=wave_r = rand(100)/100;

+per_frame_3=wave_g = rand(100)/100;

+per_frame_4=wave_y = wave_y;

+per_frame_5=bass_eff = max(max(bass,bass_att)-1,0);

+per_frame_6=bass_thresh = above(bass_att,bass_thresh)*2 + (1-above(bass_att,bass_thresh))*((bass_thresh-1.3)*0.96+1.3);

+per_frame_7=vol =bass+treb+mid;

+per_frame_8=dx = 0.005 + 0.002*( 0.60*sin(0.234*time) + 0.40*sin(0.277*time) );

+per_frame_9=dy = 0.005 + 0.002*( 0.60*sin(0.234*time) + 0.40*sin(0.277*time) );

+per_frame_10=dx_r = equal(bass_thresh,2)*0.016*sin(time*3) + (1-equal(bass_eff,2))*dx_r;

+per_frame_11=dy_r = equal(bass_thresh,2)*0.012*sin(time*7) + (1-equal(bass_eff,2))*dy_r;

+per_frame_12=rot = rot + 0.070*( 0.60*sin(0.381*time) + 0.40*sin(0.479*time) );

+per_frame_13=q1=sin(time*.7*.5)+(dx_r*dy_r)+(dx*dy);

+per_frame_14=q2=sin(time*.7*.2)+(dx_r*dy_r);

+per_frame_15=q3=0.1*(atan(abs(-rad+.5)))*q2;

+per_pixel_1=zoom=zoom+.05*q3+.05*q1+bass_eff;

+per_pixel_2=dx = .01*atan((rad)/.1*sin((dx_r*dy_r)*20+time*5));

+per_pixel_3=zoom = zoom + bass_eff + rad*.2*(q2)-vol;

diff --git a/presets/Fvese - A Blur.milk b/presets/Fvese - A Blur.milk
new file mode 100644
index 0000000..befc1b0
--- /dev/null
+++ b/presets/Fvese - A Blur.milk
@@ -0,0 +1,80 @@
+[preset00]

+fRating=2.500000

+fGammaAdj=1.000000

+fDecay=0.985000

+fVideoEchoZoom=0.998100

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=1

+nWaveMode=3

+bAdditiveWaves=1

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=0

+bDarkenCenter=1

+bRedBlueStereo=0

+bBrighten=1

+bDarken=0

+bSolarize=1

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=0.597149

+fWaveSmoothing=0.000000

+fWaveParam=0.000000

+fModWaveAlphaStart=1.489999

+fModWaveAlphaEnd=0.750000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.331000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=0.999500

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000005

+dy=0.000000

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.000000

+wave_g=0.000000

+wave_b=0.000000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.000000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.200000

+ob_a=1.000000

+ib_size=0.000000

+ib_r=1.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=1.000000

+nMotionVectorsX=64.000000

+nMotionVectorsY=43.200001

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=4.500000

+mv_r=0.759900

+mv_g=0.480000

+mv_b=0.390000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.350*( 0.60*sin(0.825*time) + 0.40*sin(0.915*time) );

+per_frame_2=wave_g = wave_g + 0.350*( 0.60*sin(0.900*time) + 0.40*sin(1.025*time) );

+per_frame_3=wave_b = wave_b + 0.350*( 0.60*sin(0.810*time) + 0.40*sin(0.950*time) );

+per_frame_4=wave_x = wave_x + 0.4*sin(1.85*time);

+per_frame_5=wave_y = wave_y + 0.2*sin(1.85*time);

+per_frame_6=dx = 0.005 + 0.002*( 0.60*sin(0.234*time) + 0.40*sin(0.277*time) );

+per_frame_7=dy = 0.005 + 0.002*( 0.60*sin(0.234*time) + 0.40*sin(0.277*time) );

+per_frame_8=bass_eff = max(max(bass,bass_att)-1,0);

+per_frame_9=bass_thresh = above(bass_att,bass_thresh)*2 + (1-above(bass_att,bass_thresh))*((bass_thresh-1.3)*0.96+1.3);

+per_frame_10=decay = decay - 0.05*equal(frame%16,0);

+per_frame_11=zoom = zoom + 0.05 * cos(ang-ang);

+per_frame_12=rot = bass_eff/bass_thresh-0.05;

+per_frame_13=monitor=zoom;

+per_pixel_1=sx=sx+0.07*sin(rad*18 + time*9);

+per_pixel_2=sy=sy+0.07*sin(rad*18 + time*9);

+per_pixel_3=

+per_pixel_4=

diff --git a/presets/Fvese - Lifesavor Anyone.milk b/presets/Fvese - Lifesavor Anyone.milk
new file mode 100644
index 0000000..958bb3e
--- /dev/null
+++ b/presets/Fvese - Lifesavor Anyone.milk
@@ -0,0 +1,67 @@
+[preset00]

+fRating=2.500000

+fGammaAdj=1.000000

+fDecay=0.980000

+fVideoEchoZoom=1.008081

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=3

+nWaveMode=0

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=1

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=0.997766

+fWaveScale=0.653090

+fWaveSmoothing=0.900000

+fWaveParam=0.000000

+fModWaveAlphaStart=1.489999

+fModWaveAlphaEnd=0.750000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.331000

+fZoomExponent=100.000000

+fShader=0.000000

+zoom=0.999500

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000005

+dy=0.000000

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.350000

+wave_g=0.550000

+wave_b=0.450000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.000000

+ob_r=0.000000

+ob_g=1.000000

+ob_b=0.200000

+ob_a=0.000000

+ib_size=0.000000

+ib_r=1.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.000000

+nMotionVectorsX=64.000000

+nMotionVectorsY=43.200001

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=2.500000

+mv_r=0.759900

+mv_g=0.480000

+mv_b=0.390000

+mv_a=0.000000

+per_frame_1=wave_r = rand(100)/100;

+per_frame_2=wave_g = rand(100)/100;

+per_frame_3=wave_b = rand(100)/100;

+per_pixel_1=zoom = pow(rad,0.05)+.05/bass;

diff --git a/presets/Fvese - New meetings.milk b/presets/Fvese - New meetings.milk
new file mode 100644
index 0000000..c31a6f0
--- /dev/null
+++ b/presets/Fvese - New meetings.milk
@@ -0,0 +1,88 @@
+[preset00]

+fRating=2.500000

+fGammaAdj=1.000000

+fDecay=0.985000

+fVideoEchoZoom=0.998100

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=1

+nWaveMode=3

+bAdditiveWaves=1

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=1

+bMaximizeWaveColor=1

+bTexWrap=0

+bDarkenCenter=1

+bRedBlueStereo=0

+bBrighten=1

+bDarken=0

+bSolarize=1

+bInvert=0

+fWaveAlpha=4.050169

+fWaveScale=0.597149

+fWaveSmoothing=0.000000

+fWaveParam=0.000000

+fModWaveAlphaStart=1.489999

+fModWaveAlphaEnd=0.750000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.331000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=0.999500

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000005

+dy=0.000000

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.000000

+wave_g=0.000000

+wave_b=0.000000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.000000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.200000

+ob_a=1.000000

+ib_size=0.000000

+ib_r=1.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=1.000000

+nMotionVectorsX=64.000000

+nMotionVectorsY=43.200001

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=1.500001

+mv_r=0.759900

+mv_g=0.480000

+mv_b=0.390000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.350*( 0.60*sin(0.825*time) + 0.40*sin(0.915*time) );

+per_frame_2=wave_g = wave_g + 0.350*( 0.60*sin(0.900*time) + 0.40*sin(1.025*time) );

+per_frame_3=wave_b = wave_b + 0.350*( 0.60*sin(0.810*time) + 0.40*sin(0.950*time) );

+per_frame_4=wave_y = wave_y + 0.2*sin(1.85*time);

+per_frame_5=time = time/100;

+per_frame_6=cx = cx + 0.225*( 0.60*sin(0.350*time) + 0.40*sin(0.350*time) );

+per_frame_7=cy = cy + 0.225*( 0.60*sin(0.350*time) + 0.40*sin(0.350*time) );

+per_frame_8=dx = 0.05 + 0.009*( 0.60*sin(0.234*time) + 0.40*sin(0.277*time) );

+per_frame_9=dy = 0.0005 + 0.009*( 0.60*sin(0.234*time) + 0.40*sin(0.277*time) );

+per_frame_10=xwave_x = wave_x + 0.250*( 0.60*sin(2.112*time) + 0.40*sin(1.589*time) );

+per_frame_11=xwave_y = wave_y + 0.250*( 0.60*sin(1.752*time) + 0.40*sin(2.298*time) );

+per_frame_12=bass_eff = max(max(bass,bass_att)-1,0);

+per_frame_13=bass_thresh = above(bass_att,bass_thresh)*2 + (1-above(bass_att,bass_thresh))*((bass_thresh-1.3)*0.96+1.3);

+per_frame_14=decay = decay - 0.05*equal(frame%16,0);

+per_frame_15=zoom = decay;

+per_frame_16=rot = bass_eff/bass_thresh;

+per_frame_17=ob_size = rot-bass;

+per_frame_18=ib_a = 1-bass_eff;

+per_frame_19=ib_r = 1-wave_r;

+per_frame_20=ib_b = 1-wave_g;

+per_frame_21=ib_g = 1-wave_b;

+per_pixel_1=sx=sx+0.07*sin(rad*18 + time*9);

+per_pixel_2=sy=sy+0.07*sin(rad*18 + time*9);

+per_pixel_3=zoom=zoom + 0.005*tan(ang-ang);

+per_pixel_4=ray = pow(rad,1.85)+.037;

diff --git a/presets/Fvese - Quicksand.milk b/presets/Fvese - Quicksand.milk
new file mode 100644
index 0000000..0254b82
--- /dev/null
+++ b/presets/Fvese - Quicksand.milk
@@ -0,0 +1,78 @@
+[preset00]

+fRating=4.500000

+fGammaAdj=1.000000

+fDecay=0.992000

+fVideoEchoZoom=1.008000

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=0

+nWaveMode=3

+bAdditiveWaves=1

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=1

+bRedBlueStereo=0

+bBrighten=1

+bDarken=0

+bSolarize=1

+bInvert=0

+fWaveAlpha=100.000000

+fWaveScale=0.499226

+fWaveSmoothing=0.900000

+fWaveParam=0.000000

+fModWaveAlphaStart=1.489999

+fModWaveAlphaEnd=0.750000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.331000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=0.999500

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000005

+dy=0.000000

+warp=0.010000

+sx=1.000000

+sy=1.000000

+wave_r=0.760000

+wave_g=0.480000

+wave_b=0.390000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.000000

+ob_r=0.000000

+ob_g=1.000000

+ob_b=0.200000

+ob_a=0.000000

+ib_size=0.000000

+ib_r=1.000000

+ib_g=0.000000

+ib_b=0.000000

+ib_a=0.000000

+nMotionVectorsX=64.000000

+nMotionVectorsY=48.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=5.000000

+mv_r=0.669900

+mv_g=0.480000

+mv_b=0.390000

+mv_a=0.200000

+per_frame_1=wave_r = wave_r + 0.350*( 0.60*sin(0.825*time) + 0.40*sin(0.915*time) );

+per_frame_2=wave_g = wave_g + 0.350*( 0.60*sin(0.900*time) + 0.40*sin(1.025*time) );

+per_frame_3=vol = (5*bass + 3*mid + 2*treb)/10;

+per_frame_4=wave_x = wave_x + 0.03*vol*sin(0.727*time);

+per_frame_5=wave_y = wave_y + 0.04*vol*sin(0.777*time);

+per_frame_6=bass_thresh = above(bass_att,bass_thresh)*2 + (1-above(bass_att,bass_thresh))*((bass_thresh-1.3)*0.96+1.3);

+per_frame_7=dx = 0.005 + 0.002*( 0.60*sin(0.234*time) + 0.40*sin(0.277*time) );

+per_frame_8=dy = 0.005 + 0.002*( 0.60*sin(0.234*time) + 0.40*sin(0.277*time) );

+per_frame_9=monitor = time;

+per_pixel_1=cx = (0.25&(x*5-0.5))*0.1+0.025;

+per_pixel_2=cy = (0.25&(y*5-0.5))*0.1+0.025;

+per_pixel_3=sx = sx -.005-abs(x-1)*.01;

+per_pixel_4=sy = sy -.005-abs(x-1)*.01;

+per_pixel_5=zoom = pow(rad,0.05)+.050;

+per_pixel_6=rot = 0.03*sin(0.84*time)-0.013*cos(0.784*time)+0.02*sin(1-rad);

diff --git "a/presets/Fvese - Round and Round \050geiss gamma mix\051.milk" "b/presets/Fvese - Round and Round \050geiss gamma mix\051.milk"
new file mode 100644
index 0000000..c042d98
--- /dev/null
+++ "b/presets/Fvese - Round and Round \050geiss gamma mix\051.milk"
@@ -0,0 +1,224 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=1.980000

+fDecay=0.944900

+fVideoEchoZoom=1.000000

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=0

+nWaveMode=2

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=1

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=2.987793

+fWaveScale=1.008109

+fWaveSmoothing=0.000000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.001800

+fWarpScale=1.001800

+fZoomExponent=1.008149

+fShader=0.000000

+zoom=1.008148

+rot=0.000000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=0.010000

+sx=0.999900

+sy=0.999900

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.000000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.400000

+ob_a=0.000000

+ib_size=0.000000

+ib_r=0.000000

+ib_g=0.300000

+ib_b=0.000000

+ib_a=1.000000

+nMotionVectorsX=6.400000

+nMotionVectorsY=2.400001

+mv_dx=0.000000

+mv_dy=0.340000

+mv_l=0.999999

+mv_r=0.759900

+mv_g=0.480000

+mv_b=0.390000

+mv_a=0.000000

+wavecode_0_enabled=0

+wavecode_0_samples=512

+wavecode_0_sep=0

+wavecode_0_bSpectrum=0

+wavecode_0_bUseDots=0

+wavecode_0_bDrawThick=0

+wavecode_0_bAdditive=0

+wavecode_0_scaling=1.000000

+wavecode_0_smoothing=0.500000

+wavecode_0_r=1.000000

+wavecode_0_g=1.000000

+wavecode_0_b=1.000000

+wavecode_0_a=1.000000

+wavecode_1_enabled=0

+wavecode_1_samples=512

+wavecode_1_sep=0

+wavecode_1_bSpectrum=0

+wavecode_1_bUseDots=0

+wavecode_1_bDrawThick=0

+wavecode_1_bAdditive=0

+wavecode_1_scaling=1.000000

+wavecode_1_smoothing=0.500000

+wavecode_1_r=1.000000

+wavecode_1_g=1.000000

+wavecode_1_b=1.000000

+wavecode_1_a=1.000000

+wavecode_2_enabled=0

+wavecode_2_samples=512

+wavecode_2_sep=0

+wavecode_2_bSpectrum=0

+wavecode_2_bUseDots=0

+wavecode_2_bDrawThick=0

+wavecode_2_bAdditive=0

+wavecode_2_scaling=1.000000

+wavecode_2_smoothing=0.500000

+wavecode_2_r=1.000000

+wavecode_2_g=1.000000

+wavecode_2_b=1.000000

+wavecode_2_a=1.000000

+wavecode_3_enabled=0

+wavecode_3_samples=512

+wavecode_3_sep=0

+wavecode_3_bSpectrum=0

+wavecode_3_bUseDots=0

+wavecode_3_bDrawThick=0

+wavecode_3_bAdditive=0

+wavecode_3_scaling=1.000000

+wavecode_3_smoothing=0.500000

+wavecode_3_r=1.000000

+wavecode_3_g=1.000000

+wavecode_3_b=1.000000

+wavecode_3_a=1.000000

+shapecode_0_enabled=0

+shapecode_0_sides=4

+shapecode_0_additive=0

+shapecode_0_thickOutline=0

+shapecode_0_textured=0

+shapecode_0_x=0.500000

+shapecode_0_y=0.500000

+shapecode_0_rad=0.100000

+shapecode_0_ang=0.000000

+shapecode_0_tex_ang=0.000000

+shapecode_0_tex_zoom=1.000000

+shapecode_0_r=1.000000

+shapecode_0_g=0.000000

+shapecode_0_b=0.000000

+shapecode_0_a=1.000000

+shapecode_0_r2=0.000000

+shapecode_0_g2=1.000000

+shapecode_0_b2=0.000000

+shapecode_0_a2=0.000000

+shapecode_0_border_r=1.000000

+shapecode_0_border_g=1.000000

+shapecode_0_border_b=1.000000

+shapecode_0_border_a=0.100000

+shapecode_1_enabled=0

+shapecode_1_sides=4

+shapecode_1_additive=0

+shapecode_1_thickOutline=0

+shapecode_1_textured=0

+shapecode_1_x=0.500000

+shapecode_1_y=0.500000

+shapecode_1_rad=0.100000

+shapecode_1_ang=0.000000

+shapecode_1_tex_ang=0.000000

+shapecode_1_tex_zoom=1.000000

+shapecode_1_r=1.000000

+shapecode_1_g=0.000000

+shapecode_1_b=0.000000

+shapecode_1_a=1.000000

+shapecode_1_r2=0.000000

+shapecode_1_g2=1.000000

+shapecode_1_b2=0.000000

+shapecode_1_a2=0.000000

+shapecode_1_border_r=1.000000

+shapecode_1_border_g=1.000000

+shapecode_1_border_b=1.000000

+shapecode_1_border_a=0.100000

+shapecode_2_enabled=0

+shapecode_2_sides=4

+shapecode_2_additive=0

+shapecode_2_thickOutline=0

+shapecode_2_textured=0

+shapecode_2_x=0.500000

+shapecode_2_y=0.500000

+shapecode_2_rad=0.100000

+shapecode_2_ang=0.000000

+shapecode_2_tex_ang=0.000000

+shapecode_2_tex_zoom=1.000000

+shapecode_2_r=1.000000

+shapecode_2_g=0.000000

+shapecode_2_b=0.000000

+shapecode_2_a=1.000000

+shapecode_2_r2=0.000000

+shapecode_2_g2=1.000000

+shapecode_2_b2=0.000000

+shapecode_2_a2=0.000000

+shapecode_2_border_r=1.000000

+shapecode_2_border_g=1.000000

+shapecode_2_border_b=1.000000

+shapecode_2_border_a=0.100000

+shapecode_3_enabled=0

+shapecode_3_sides=4

+shapecode_3_additive=0

+shapecode_3_thickOutline=0

+shapecode_3_textured=0

+shapecode_3_x=0.500000

+shapecode_3_y=0.500000

+shapecode_3_rad=0.100000

+shapecode_3_ang=0.000000

+shapecode_3_tex_ang=0.000000

+shapecode_3_tex_zoom=1.000000

+shapecode_3_r=1.000000

+shapecode_3_g=0.000000

+shapecode_3_b=0.000000

+shapecode_3_a=1.000000

+shapecode_3_r2=0.000000

+shapecode_3_g2=1.000000

+shapecode_3_b2=0.000000

+shapecode_3_a2=0.000000

+shapecode_3_border_r=1.000000

+shapecode_3_border_g=1.000000

+shapecode_3_border_b=1.000000

+shapecode_3_border_a=0.100000

+per_frame_1=wave_r = wave_r + 0.45*(0.5*sin(time*0.701)+ 0.3*cos(time*0.438));

+per_frame_2=wave_b = wave_b - 0.4*(0.5*sin(time*4.782)+0.5*cos(time*0.722));

+per_frame_3=wave_g = wave_g + 0.4*sin(time*1.931);

+per_frame_4=vol=0.15*(bass_att+bass+mid+mid_att);

+per_frame_5=rot = rot+0.030*( 0.60*sin(0.381*time) + 0.40*sin(0.479*time) );

+per_frame_6=myeff=(q3+ if(above(q2,0.75), + q1*tan(time), + q2*tan(time))+.4+((cos(vol))/2) +q3 + 0.40*sin(8*mid)+.25+(vol/10));

+per_frame_7=mytime=.7;

+per_frame_8=q1=sin(mytime*4);

+per_frame_9=q2=sin(mytime*2);

+per_frame_10=q3=abs(rad-.1)*(mytime*myeff);

+per_frame_11=xpos=.5;

+per_frame_12=ypos=.5;

+per_frame_13=wave_x = wave_x + if(above(wave_y,.75), - 0.1*tan(time), + 0.1*tan(time))-.4+((cos(vol))/2)*myeff;

+per_frame_14=wave_y = wave_y + if(below(wave_x,.75), -0.1*tan(time), +0.1*tan(time))-.4+((cos(vol))/2)*myeff;

+per_pixel_1=dx=q3*atan((rad)/q2*sin((dx_r*dy_r)*q3+time*5));

+per_pixel_2=dy=q3*atan((rad)/q2*cos((dx*dy)*q3+time*5));

+per_pixel_3=

diff --git "a/presets/Fvese - Stand Still\041.milk" "b/presets/Fvese - Stand Still\041.milk"
new file mode 100644
index 0000000..921b53d
--- /dev/null
+++ "b/presets/Fvese - Stand Still\041.milk"
@@ -0,0 +1,80 @@
+[preset00]

+fRating=2.500000

+fGammaAdj=2.200000

+fDecay=0.980000

+fVideoEchoZoom=1.000000

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=3

+nWaveMode=3

+bAdditiveWaves=1

+bWaveDots=0

+bWaveThick=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=1

+bTexWrap=0

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=1

+bDarken=0

+bSolarize=1

+bInvert=0

+fWaveAlpha=1.000000

+fWaveScale=0.610095

+fWaveSmoothing=0.900000

+fWaveParam=0.000000

+fModWaveAlphaStart=1.000000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.000000

+cy=0.000000

+dx=0.000000

+dy=0.000000

+warp=0.000000

+sx=1.000000

+sy=1.000000

+wave_r=0.400000

+wave_g=0.400000

+wave_b=0.400000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.000000

+ob_r=0.500000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=0.000000

+ib_size=0.000000

+ib_r=0.000000

+ib_g=0.000000

+ib_b=0.500000

+ib_a=0.000000

+nMotionVectorsX=8.319999

+nMotionVectorsY=2.400000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=2.000000

+mv_r=0.000000

+mv_g=0.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = rand(100)/100;

+per_frame_2=wave_g = rand(100)/100;

+per_frame_3=wave_b = rand(100)/100;

+per_frame_4=wave_x = wave_x + if(above(wave_y,.75), - 0.1*tan(time), + 0.1*tan(time))-.4+((cos(vol))/2)*myeff;

+per_frame_5=wave_y = wave_y + if(below(wave_x,.75), -0.1*tan(time), +0.1*tan(time))-.4+((cos(vol))/2)*myeff;

+per_frame_6=cx = cx + 0.410*( 0.60*sin(0.374*time) + 0.40*sin(0.294*time)+vol );

+per_frame_7=cy = cy + 0.410*( 0.60*sin(0.393*time) + 0.40*sin(0.223*time)+vol );

+per_frame_8=zoom = zoom + 0.020*( 0.60*sin(0.339*time) + 0.40*sin(0.276*time)*vol );

+per_frame_9=rot = rot + 0.005*( 0.60*sin(0.281*time) + 0.40*sin(0.839*time)*vol );

+per_frame_10=vol = (bass_att+bass+mid+mid_att+treb+treb_att);

+per_frame_11=myeff=(wave_x + if(above(wave_y,0.75), + 0.1*tan(time), + 0.1*tan(time))+.4+((cos(vol))/2) & wave_y + 0.40*sin(8*mid)+.25+(vol/10));

+per_frame_12=dx = dx + 0.085*pow(rad,y*2)*sin(time)/vol;

+per_frame_13=dy = dy + 0.085*pow(rad,y*2)*cos(time)/vol;

+per_frame_14=sx = sx + 0.0555*pow(rad,x*2)*sin(time)/vol;

+per_frame_15=sy = sy + 0.0777*pow(rad,y*2)*sin(time);

+per_frame_16=monitor = vol;

+per_frame_17=

diff --git "a/presets/Fvese - The Tunnel \050Final Stage Mix\051.milk" "b/presets/Fvese - The Tunnel \050Final Stage Mix\051.milk"
new file mode 100644
index 0000000..8b4f7bb
--- /dev/null
+++ "b/presets/Fvese - The Tunnel \050Final Stage Mix\051.milk"
@@ -0,0 +1,83 @@
+[preset00]

+fRating=2

+fGammaAdj=1

+fDecay=0.995

+fVideoEchoZoom=1

+fVideoEchoAlpha=0.5

+nVideoEchoOrientation=1

+nWaveMode=3

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=1

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=1

+fWaveScale=0.241456

+fWaveSmoothing=0.09

+fWaveParam=0

+fModWaveAlphaStart=0.5

+fModWaveAlphaEnd=1

+fWarpAnimSpeed=1

+fWarpScale=1

+fZoomExponent=0.741921

+fShader=0

+zoom=1

+rot=0

+cx=0.5

+cy=0.5

+dx=0

+dy=0

+warp=0.01

+sx=0.9999

+sy=0.9999

+wave_r=0.5

+wave_g=0.5

+wave_b=0.5

+wave_x=0.5

+wave_y=0.5

+ob_size=0.005

+ob_r=0

+ob_g=0

+ob_b=0.4

+ob_a=0

+ib_size=0.005

+ib_r=0

+ib_g=0.3

+ib_b=0

+ib_a=1

+nMotionVectorsX=6.4

+nMotionVectorsY=1.440001

+mv_dx=0

+mv_dy=0

+mv_l=0

+mv_r=0.7599

+mv_g=0.48

+mv_b=0.39

+mv_a=0

+per_frame_1=wave_r = wave_r + 0.45*(0.5*sin(time*0.701)+ 0.3*cos(time*0.438));

+per_frame_2=wave_b = wave_b - 0.4*(0.5*sin(time*4.782)+0.5*cos(time*0.722));

+per_frame_3=wave_g = wave_g + 0.4*sin(time*1.931);

+per_frame_4=vol=0.15*(bass_att+bass+mid+mid_att);

+per_frame_5=dx_r=if(equal(q3,0),if(above(x,xpos),dx*q1-xpos,dx+q2-xpos),dx);

+per_frame_6=dy_r=if(equal(q3,0),if(above(y,ypos),dy*q1-ypos,dy+q2-ypos),dy);

+per_frame_7=rot = rot+0.05*( 0.60*sin(0.381*time) + 0.40*sin(0.479*time) );

+per_frame_8=mytime=.7;

+per_frame_9=q1=sin(time*mytime*4);

+per_frame_10=q2=cos(time*mytime*2);

+per_frame_11=q3=abs(rad-.5)*(q2*q1);

+per_frame_12=xpos=.5/vol;

+per_frame_13=ypos=.5/vol;

+per_frame_14=wave_x=.5+0.1*sin(time+rand(100)/100);

+per_frame_15=wave_y=.5+0.1*cos(time+rand(100)/100);

+per_frame_16=ib_r=q3+q2;

+per_frame_17=ib_b=q2+q1;

+per_frame_18=ib_g=q1+q3;

+per_pixel_1=zoom = if(below(q1,0),0.5*x,if(equal(q2,0),0.9*(1-x),if(above(q3,0),0.9*y,0.9*(1-y)))) + 0.6 - 0.13*(min(q3,0.3));

+per_pixel_2=

diff --git a/presets/Fvese - Window Reflection 6.milk b/presets/Fvese - Window Reflection 6.milk
new file mode 100644
index 0000000..e88b133
--- /dev/null
+++ b/presets/Fvese - Window Reflection 6.milk
@@ -0,0 +1,83 @@
+[preset00]

+fRating=5.000000

+fGammaAdj=1.000000

+fDecay=0.995000

+fVideoEchoZoom=0.199862

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=0

+nWaveMode=5

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=1

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=1.000000

+fWaveScale=0.149765

+fWaveSmoothing=0.900000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.500000

+fModWaveAlphaEnd=1.000000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=0.010000

+fShader=0.000000

+zoom=0.999800

+rot=0.800000

+cx=0.500000

+cy=0.500000

+dx=0.000000

+dy=0.000000

+warp=0.010000

+sx=0.999900

+sy=0.999800

+wave_r=0.500000

+wave_g=0.500000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.005000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.000000

+ib_r=0.000000

+ib_g=0.300000

+ib_b=0.000000

+ib_a=1.000000

+nMotionVectorsX=0.000000

+nMotionVectorsY=0.000000

+mv_dx=0.000000

+mv_dy=0.000000

+mv_l=0.000000

+mv_r=1.000000

+mv_g=0.000000

+mv_b=1.000000

+mv_a=0.000000

+per_frame_1=wave_r = wave_r + 0.45*(0.5*sin(time*0.701)+ 0.3*cos(time*0.438));

+per_frame_2=wave_b = wave_b - 0.4*(0.5*sin(time*4.782)+0.5*cos(time*0.722));

+per_frame_3=wave_g = wave_g + 0.4*sin(time*1.931);

+per_frame_4=vol=0.15*(bass_att+bass+mid+mid_att);

+per_frame_5=bass_eff = max(max(bass,bass_att)-1,0);

+per_frame_6=bass_thresh = above(bass_att,bass_thresh)*2 + (1-above(bass_att,bass_thresh))*((bass_thresh-1.3)*0.96+1.3);

+per_frame_7=q1=bass_eff+sin(time*mytime*4);

+per_frame_8=q2=bas_eff+cos(time*mytime*2);

+per_frame_9=q3=bass_eff+abs(rad+.5)+(q2*q5);

+per_frame_10=q4=bass_thresh+abs(.9*5)*(dx_r*dy_r)*(dx*dy);

+per_frame_11=q5=bass_tresh+cos(.2*2)*(dx_r*dy_r);

+per_frame_12=q6=bass_thresh+0.1*(atan(abs(-rad+.5)))*q1;

+per_frame_13=q7=if(above(bass+bass_att,2),-1.5+bass+bass_att,0);

+per_frame_14=q8=below(rad- 0.1*x,0.18);

+per_frame_15=q9=if(above(rad,.5),.9+rad,.5+bass*3%1000*.1);

+per_frame_16=dx=q8;

+per_frame_17=zoom=q9+0.4;

+per_frame_18=monitor=zoom;

+per_pixel_1=rot=zoom;

+per_frame_init_1=myzoom=if(below(q1,q6),0.3*dx,if(equal(q2,q5),0.2*(1-dx),if(above(q3,q4),0.3*dy,0.2*(1-dy)+if(equal(q4,q3),0.3* dx, if(above(q5,q2),0.25*(1-dx),if(below(q6,q1),0.3*dy,0.25*(1-dy)+if(equal(q7,q9),0.3*dx, if(below(q8,q7),0.2*(1-dx),if(equal(q9,q6),0.3*dy,0.2*(1-dy)))))))))) + .8 - 0.02*(min(q6+q1,.5))*bass_eff;

diff --git "a/presets/Fvese - Zoom Effects \050Remix 2\051.milk" "b/presets/Fvese - Zoom Effects \050Remix 2\051.milk"
new file mode 100644
index 0000000..b9ad314
--- /dev/null
+++ "b/presets/Fvese - Zoom Effects \050Remix 2\051.milk"
@@ -0,0 +1,91 @@
+[preset00]

+fRating=2

+fGammaAdj=1

+fDecay=0.98

+fVideoEchoZoom=1

+fVideoEchoAlpha=0.5

+nVideoEchoOrientation=1

+nWaveMode=3

+bAdditiveWaves=0

+bWaveDots=0

+bWaveThick=0

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=1

+bDarkenCenter=1

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=1

+fWaveScale=0.241456

+fWaveSmoothing=0.09

+fWaveParam=0

+fModWaveAlphaStart=0.5

+fModWaveAlphaEnd=1

+fWarpAnimSpeed=1

+fWarpScale=1

+fZoomExponent=0.5503

+fShader=0

+zoom=0.999899

+rot=0

+cx=0.5

+cy=0.5

+dx=0

+dy=0

+warp=0.01

+sx=0.9999

+sy=0.9999

+wave_r=0.5

+wave_g=0.5

+wave_b=0.5

+wave_x=0.5

+wave_y=0.5

+ob_size=0

+ob_r=0

+ob_g=0

+ob_b=0.4

+ob_a=0

+ib_size=0.005

+ib_r=0

+ib_g=0.3

+ib_b=0

+ib_a=1

+nMotionVectorsX=3.2

+nMotionVectorsY=2.400006

+mv_dx=0

+mv_dy=0

+mv_l=5

+mv_r=0.7599

+mv_g=0.48

+mv_b=0.39

+mv_a=0

+per_frame_1=wave_r = wave_r + 0.45*(0.5*sin(time*0.701)+ 0.3*cos(time*0.438));

+per_frame_2=wave_b = wave_b - 0.4*(0.5*sin(time*4.782)+0.5*cos(time*0.722));

+per_frame_3=wave_g = wave_g + 0.4*sin(time*1.931);

+per_frame_4=vol=0.15*(bass_att+bass+mid+mid_att);

+per_frame_5=bass_eff = max(max(bass,bass_att)-1,0);

+per_frame_6=bass_thresh = above(bass_att,bass_thresh)*2 + (1-above(bass_att,bass_thresh))*((bass_thresh-1.3)*0.96+1.3);

+per_frame_7=dx = 0.005 + 0.002*( 0.60*sin(0.234*time) + 0.40*sin(0.277*time) );

+per_frame_8=dy = 0.005 + 0.002*( 0.60*sin(0.234*time) + 0.40*sin(0.277*time) );

+per_frame_9=dx_r=if(equal(q3,0),if(above(x,xpos),dx*q1-xpos,dx+q2-xpos),dx);

+per_frame_10=dy_r=if(equal(q3,0),if(above(y,ypos),dy*q1-ypos,dy+q2-ypos),dy);

+per_frame_11=rot = rot+0.15*( 0.60*sin(0.381*time) + 0.40*sin(0.479*time) );

+per_frame_12=mytime=.9;

+per_frame_13=xpos=.5/vol;

+per_frame_14=ypos=.5/vol;

+per_frame_15=q1=sin(time*mytime*4);

+per_frame_16=q2=cos(time*mytime*2);

+per_frame_17=q3=abs(rad+.5)+(q2*q5);

+per_frame_18=q4=abs(.9*5)*(dx_r*dy_r)*(dx*dy);

+per_frame_19=q5=cos(.2*2)*(dx_r*dy_r);

+per_frame_20=q6=0.1*(atan(abs(-rad+.5)))*q1;

+per_frame_21=q7=q1+q2+q3+q4+q5+q6;

+per_frame_22=wave_x=.5+0.1*sin(time+rand(100)/100);

+per_frame_23=wave_y=.5+0.1*cos(time+rand(100)/100);

+per_frame_24=ib_r=q3+q2;

+per_frame_25=ib_b=q2+q1;

+per_frame_26=ib_g=q1+q3;

+per_frame_27=monitor=q3;

+per_pixel_1=zoom= if(below(q1,q6),0.5*x,if(equal(q2,q5),0.9*(1-x),if(above(q3,q4),0.5*y,0.9*(1-y)+if(below(q4,q3),0.5* xpos, if(equal(q5,q2),0.9*(1-xpos),if(above(q6,q1),0.9*ypos,0.3*(1-ypos))))))) + .8 - 0.03*(min(q7+q1,1));

diff --git a/presets/Fvese - simple.milk b/presets/Fvese - simple.milk
new file mode 100644
index 0000000..321be3e
--- /dev/null
+++ b/presets/Fvese - simple.milk
@@ -0,0 +1,77 @@
+[preset00]

+fRating=3.000000

+fGammaAdj=2.000000

+fDecay=0.999000

+fVideoEchoZoom=2.000000

+fVideoEchoAlpha=0.500000

+nVideoEchoOrientation=0

+nWaveMode=5

+bAdditiveWaves=0

+bWaveDots=1

+bModWaveAlphaByVolume=0

+bMaximizeWaveColor=0

+bTexWrap=0

+bDarkenCenter=0

+bRedBlueStereo=0

+bBrighten=0

+bDarken=0

+bSolarize=0

+bInvert=0

+fWaveAlpha=4.796630

+fWaveScale=0.543759

+fWaveSmoothing=0.630000

+fWaveParam=0.000000

+fModWaveAlphaStart=0.750000

+fModWaveAlphaEnd=0.950000

+fWarpAnimSpeed=1.000000

+fWarpScale=1.000000

+fZoomExponent=1.000000

+fShader=0.000000

+zoom=1.000000

+rot=0.000000

+cx=0.020000

+cy=0.020001

+dx=0.000000

+dy=0.000000

+warp=1.000000

+sx=1.000000

+sy=1.000000

+wave_r=0.100000

+wave_g=0.400000

+wave_b=0.500000

+wave_x=0.500000

+wave_y=0.500000

+ob_size=0.005000

+ob_r=0.000000

+ob_g=0.000000

+ob_b=0.000000

+ob_a=1.000000

+ib_size=0.000000

+ib_r=0.600000