[SCM] cecilia/master: Imported Upstream version 5.2.0

tiago at users.alioth.debian.org tiago at users.alioth.debian.org
Sat Aug 1 13:04:55 UTC 2015


The following commit has been merged in the master branch:
commit 8e9e2147ff400b7fef69696db8b904ccb57c4997
Author: Tiago Bortoletto Vaz <tiago at debian.org>
Date:   Tue Jul 28 19:52:22 2015 -0400

    Imported Upstream version 5.2.0

diff --git a/Cecilia5.py b/Cecilia5.py
index 9a93098..22d72bb 100755
--- a/Cecilia5.py
+++ b/Cecilia5.py
@@ -1,7 +1,7 @@
 #! /usr/bin/env python
 # encoding: utf-8
 """
-Copyright 2011 iACT, Universite de Montreal, Jean Piche, Olivier Belanger, Jean-Michel Dumas
+Copyright 2013 iACT, Universite de Montreal, Jean Piche, Olivier Belanger, Jean-Michel Dumas
 
 This file is part of Cecilia 5.
 
@@ -18,81 +18,46 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 along with Cecilia 5.  If not, see <http://www.gnu.org/licenses/>.
 """
-
+from Resources.constants import *
+from types import ListType
 import wx
 import os, sys, random
-from Resources.constants import *
 from Resources import audio, CeciliaMainFrame
 import Resources.CeciliaLib as CeciliaLib
+from Resources.splash import CeciliaSplashScreen
 
-def GetRoundBitmap( w, h, r ):
-    maskColor = wx.Colour(0,0,0)
-    shownColor = wx.Colour(5,5,5)
-    b = wx.EmptyBitmap(w,h)
-    dc = wx.MemoryDC(b)
-    dc.SetBrush(wx.Brush(maskColor))
-    dc.DrawRectangle(0,0,w,h)
-    dc.SetBrush(wx.Brush(shownColor))
-    dc.SetPen(wx.Pen(shownColor))
-    dc.DrawRoundedRectangle(0,0,w,h,r)
-    dc.SelectObject(wx.NullBitmap)
-    b.SetMaskColour(maskColor)
-    return b
-
-def GetRoundShape( w, h, r ):
-    return wx.RegionFromBitmap(GetRoundBitmap(w,h,r))
-
-class CeciliaApp(wx.PySimpleApp):
+class CeciliaApp(wx.App):
     def __init__(self, *args, **kwargs):
-        wx.PySimpleApp.__init__(self, *args, **kwargs)
-
-    def MacOpenFile(self, filename):
-        CeciliaLib.getVar("mainFrame").onOpen(filename)
-
-class CeciliaSplashScreen(wx.Frame):
-    def __init__(self, parent, y_pos):
-        wx.Frame.__init__(self, parent, -1, "", pos=(-1, y_pos),
-                         style = wx.FRAME_SHAPED | wx.SIMPLE_BORDER | wx.FRAME_NO_TASKBAR | wx.STAY_ON_TOP)
-        self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
-        self.Bind(wx.EVT_PAINT, self.OnPaint)
-
-        self.bmp = wx.Bitmap(os.path.join(RESOURCES_PATH, "Cecilia_splash.png"), wx.BITMAP_TYPE_PNG)
-        w, h = self.bmp.GetWidth(), self.bmp.GetHeight()
-        self.SetClientSize((w, h))
-
-        if CeciliaLib.getVar("systemPlatform") == 'linux2':
-            self.Bind(wx.EVT_WINDOW_CREATE, self.SetWindowShape)
-        else:
-            self.SetWindowShape()
-
-        dc = wx.ClientDC(self)
-        dc.DrawBitmap(self.bmp, 0,0,True)
-
-        self.fc = wx.FutureCall(3000, self.OnClose)
+        wx.App.__init__(self, *args, **kwargs)
 
-        self.Center(wx.HORIZONTAL)
-        if CeciliaLib.getVar("systemPlatform") == 'win32':
-            self.Center(wx.VERTICAL)
+    def MacOpenFiles(self, filenames):
+        if type(filenames) == ListType:
+            filenames = filenames[0]
+        if CeciliaLib.getVar("mainFrame") is not None:
+            CeciliaLib.getVar("mainFrame").onOpen(filenames)
 
-        self.Show(True)
+    def MacReopenApp(self):
+        try:
+            CeciliaLib.getVar("mainFrame").Raise()
+        except:
+            pass
 
-    def SetWindowShape(self, *evt):
-        r = GetRoundShape(512,256,18)
-        self.hasShape = self.SetShape(r)
+def onStart():
+    ceciliaMainFrame = CeciliaMainFrame.CeciliaMainFrame(None, -1)
+    CeciliaLib.setVar("mainFrame", ceciliaMainFrame)
 
-    def OnPaint(self, evt):
-        w,h = self.GetSize()
-        dc = wx.AutoBufferedPaintDC(self)
-        dc.SetPen(wx.Pen("#000000"))
-        dc.SetBrush(wx.Brush("#000000"))
-        dc.DrawRectangle(0,0,w,h)
-        dc.DrawBitmap(self.bmp, 0,0,True)
+    file = ""
+    if len(sys.argv) > 1:
+        file = sys.argv[1]
 
-    def OnClose(self):
-        self.Destroy()
-        # if not CeciliaLib.getVar("useMidi"):
-        #     CeciliaLib.showErrorDialog("Midi not initialized!",
-        #             "If you want to use Midi, please connect your interface and restart Cecilia5")
+    if os.path.isfile(file):
+        ceciliaMainFrame.onOpen(file)
+    else:
+        categories = [folder for folder in os.listdir(MODULES_PATH) if not folder.startswith(".")]
+        category = random.choice(categories)
+        files = [f for f in os.listdir(os.path.join(MODULES_PATH, category)) if f.endswith(FILE_EXTENSION)]
+        file = random.choice(files)
+        ceciliaMainFrame.onOpen(os.path.join(MODULES_PATH, category, file), True)
 
 if __name__ == '__main__':
     reload(sys)
@@ -106,10 +71,6 @@ if __name__ == '__main__':
     if not os.path.isdir(AUTOMATION_SAVE_PATH):
         os.mkdir(AUTOMATION_SAVE_PATH)
 
-    file = None
-    if len(sys.argv) >= 2:
-        file = sys.argv[1]
-
     audioServer = audio.AudioServer()
     CeciliaLib.setVar("audioServer", audioServer)
 
@@ -118,11 +79,11 @@ if __name__ == '__main__':
     except:
         pass
 
-    app = CeciliaApp()
+    app = CeciliaApp(redirect=False)
+    wx.Log.SetLogLevel(0)
     wx.SetDefaultPyEncoding('utf-8')
 
     try:
-        X,Y = wx.SystemSettingss.GetMetric(wx.SYS_SCREEN_X), wx.SystemSettings.GetMetric(wx.SYS_SCREEN_Y)
         display = wx.Display()
         numDisp = display.GetCount()
         if CeciliaLib.getVar("DEBUG"):
@@ -138,10 +99,10 @@ if __name__ == '__main__':
                 print 'display %d:' % i
                 print '    pos =', offset
                 print '    size =', size
+                print
             displayOffset.append(offset)
             displaySize.append(size)
     except:
-        X, Y = 1024, 768
         numDisp = 1
         displayOffset = [(0, 0)]
         displaySize = [(1024, 768)]
@@ -150,25 +111,6 @@ if __name__ == '__main__':
     CeciliaLib.setVar("displayOffset", displayOffset)
     CeciliaLib.setVar("displaySize", displaySize)
 
-    if CeciliaLib.getVar("systemPlatform") == 'linux2':
-        bmp = wx.Bitmap(os.path.join(RESOURCES_PATH, "Cecilia_splash.png"), wx.BITMAP_TYPE_PNG)
-        sp = wx.SplashScreen(bitmap=bmp, splashStyle=wx.SPLASH_TIMEOUT, milliseconds=3000, parent=None)
-        sp.Center()
-    else:
-        sp_y = Y/4
-        sp = CeciliaSplashScreen(None, sp_y)
-
-    ceciliaMainFrame = CeciliaMainFrame.CeciliaMainFrame(None, -1)
-    CeciliaLib.setVar("mainFrame", ceciliaMainFrame)
-
-    if file:
-        ceciliaMainFrame.onOpen(file)
-    else:
-        categories = [folder for folder in os.listdir(MODULES_PATH) if not folder.startswith(".")]
-        category = random.choice(categories)
-        files = [f for f in os.listdir(os.path.join(MODULES_PATH, category)) if f.endswith(FILE_EXTENSION)]
-        file = random.choice(files)
-        ceciliaMainFrame.onOpen(os.path.join(MODULES_PATH, category, file), True)
+    sp = CeciliaSplashScreen(None, img=CeciliaLib.ensureNFD(SPLASH_FILE_PATH), callback=onStart)
 
     app.MainLoop()
-
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..d4d2134
--- /dev/null
+++ b/README.md
@@ -0,0 +1,32 @@
+# Cecilia5 #
+
+Cecilia is an audio signal processing environment. Cecilia lets you create 
+your own GUI (grapher, sliders, toggles, popup menus) using a simple syntax. 
+Cecilia comes with many original builtin modules for sound effects and synthesis.
+
+Previously written in tcl/tk, Cecilia (version 4, named Cecilia4) was entirely 
+rewritten in Python/wxPython and uses the Csound API for communicating between 
+the interface and the audio engine. At this time, version 4.2 is the last 
+release of this branch.
+
+Cecilia5 now uses the pyo audio engine created for the Python programming 
+language. pyo allows a much more powerfull integration of the audio engine to 
+the graphical interface. Since it's a standard python module, there is no need 
+to use an API to communicate with the interface.
+
+# Official web site #
+
+To download the latest version of Cecilia5, go to 
+[the official web site!](http://ajaxsoundstudio.com/software/cecilia/)
+
+# Requirements #
+
+**Minimum versions (for running Cecilia5 from sources):**
+
+Python: 2.6 or 2.7
+
+wxPython: 3.0.0.0
+
+pyo: 0.7.5
+
+numpy: 1.6 to 1.8 (not 1.9)
diff --git a/Resources/API_interface.py b/Resources/API_interface.py
index f85da8f..d0f5227 100644
--- a/Resources/API_interface.py
+++ b/Resources/API_interface.py
@@ -21,82 +21,206 @@ along with Cecilia 5.  If not, see <http://www.gnu.org/licenses/>.
 """
 
 BaseModule_API = """
-Every module must be derived from the BaseModule class. The BaseModule's internals
-create the links between the interface and the module's processing. A Cecilia module
-must be declared like this:
+BaseModule_API
 
+Here are the explanations about the processing class under every cecilia5 module.
+
+# Declaration of the module's class
+
+Every module must contain a class named 'Module', where the audio processing
+will be developed. In order to work properly inside the environment, this 
+class must inherit from the `BaseModule` class, defined inside the Cecilia 
+source code. The BaseModule's internals create all links between the interface 
+and the module's processing. A Cecilia module must be declared like this:
+
+###########################################################################
 class Module(BaseModule):
+    '''
+    Module's documentation
+    '''
     def __init__(self):
         BaseModule.__init__(self)
-        # Here comes the processing chain...
+        ### Here comes the processing chain...
+###########################################################################
 
-The last object of the processing chain (ie the one producing the output sound) must be
-called "self.out". The audio server gets the sound from this variable and sends it to the
-Post-Processing plugins and from there, to the soundcard.
-
-Example of a typical output variable, where "self.snd" is the dry sound and "self.dsp" is 
-the processed sound. "self.drywet" is a mixing slider and "self.env" is the overall gain 
-from a grapher's line:
-
-self.out = Interp(self.snd, self.dsp, self.drywet, mul=self.env)
+The module file will be executed in an environment where both `BaseModule` and
+`pyo` are already available. No need to import anything specific to define the
+audio process of the module.
 
-Public attributes:
+# Module's output
 
-self.sr : Cecilia's current sampling rate.
-self.nchnls : Cecilia's current number of channels.
-self.totalTime : Cecilia's current duration.
-self.number_of_voices : Number of voices from the cpoly widget.
-self.polyphony_spread : Spread factor from the cpoly widget.
+The last object of the processing chain (ie the one producing the output sound) 
+must be called 'self.out'. The audio server gets the sound from this variable 
+and sends it to the Post-Processing plugins and from there, to the soundcard.
 
-Public methods:
+Here is an example of a typical output variable, where 'self.snd' is the dry 
+sound and 'self.dsp' is the processed sound. 'self.drywet' is a mixing slider 
+and 'self.env' is the overall gain from a grapher's line:
 
-self.addFilein(name) : Creates a SndTable object from the name of a cfilein widget.
-self.addSampler(name, pitch, amp) : Creates a sampler/looper from the name of a csampler widget.
-self.duplicate(seq, num) : Duplicates elements in a sequence according to the `num` parameter.
-self.setGlobalSeed(x) : Sets the Server's global seed used by objects from the random family.
+###########################################################################
+self.out = Interp(self.snd, self.dsp, self.drywet, mul=self.env)
+###########################################################################
+
+# Module's documentation
+
+The class should provide a __doc__ string giving relevant information about
+the processing implemented by the module. The user can show the documentation
+by selecting 'Help Menu' ---> 'Show Module Info'. Here is an example:
+
+###########################################################################
+    '''
+    "Convolution brickwall lowpass/highpass/bandpass/bandstop filter"
+    
+    Description
+
+    Convolution filter with a user-defined length sinc kernel. This
+    kind of filters are very CPU expensive but can give quite good
+    stopband attenuation.
+    
+    Sliders
+
+        # Cutoff Frequency :
+            Cutoff frequency, in Hz, of the filter.
+        # Bandwidth :
+            Bandwith, in Hz, of the filter. 
+            Used only by bandpass and pnadstop filters.
+        # Filter Order :
+            Number of points of the filter kernel. A longer kernel means
+            a sharper attenuation (and a higher CPU cost). This value is
+            only available at initialization time.
+
+    Graph Only
+    
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+
+    Popups & Toggles
+
+        # Filter Type :
+            Type of the filter (lowpass, highpass, bandpass, bandstop)
+        # Balance :
+            Compression mode. Off, balanced with a fixed signal
+            or balanced with the input source.
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+
+    '''
+###########################################################################
+
+Public Attributes
+
+These are the attributes, defined in the BaseModule class, available to the 
+user to help in the design of his custom modules.
+
+# self.sr : 
+    Cecilia's current sampling rate.
+# self.nchnls : 
+    Cecilia's current number of channels.
+# self.totalTime : 
+    Cecilia's current duration.
+# self.filepath :
+    Path to the directory where is saved the current cecilia file.
+# self.number_of_voices : 
+    Number of voices from the cpoly widget.
+# self.polyphony_spread : 
+    List of transposition factors from the cpoly widget.
+# self.polyphony_scaling : 
+    Amplitude value according to polyphony number of voices.
+
+Public Methods
+
+These are the methods, defined in the BaseModule class, available to the 
+user to help in the design of his custom modules.
+
+# self.addFilein(name) : 
+    Creates a SndTable object from the name of a cfilein widget.
+# self.addSampler(name, pitch, amp) : 
+    Creates a sampler/looper from the name of a csampler widget.
+# self.getSamplerDur(name) : 
+    Returns the duration of the sound used by the sampler `name`. 
+# self.duplicate(seq, num) : 
+    Duplicates elements in a sequence according to the `num` parameter.
+# self.setGlobalSeed(x) : 
+    Sets the Server's global seed used by objects from the random family.
+
+Template
+
+This template, saved in a file with the extension '.c5', created a basic 
+module where a sound can be load in a sampler for reading, with optional 
+polyphonic playback. A graph envelope modulates the amplitude of the sound 
+over the performance duration.
+ 
+###########################################################################
+class Module(BaseModule):
+    '''
+    Module's documentation
+    '''
+    def __init__(self):
+        BaseModule.__init__(self)
+        ### get the sound from a sampler/looper
+        self.snd = self.addSampler('snd')
+        ### mix the channels and apply the envelope from the graph
+        self.out = Mix(self.snd, voices=self.nchnls, mul=self.env)
+
+Interface = [
+    csampler(name='snd'),
+    cgraph(name='env', label='Amplitude', func=[(0,1),(1,1)], col='blue1'),
+    cpoly()
+]
+###########################################################################
 
 """
 
 Interface_API = """
+Interface_API
+
+The next functions describe every available widgets for building a Cecilia5 interface.
 
 """
 
 def cfilein(name="filein", label="Audio", help=""):
     """
-    Initline:
+    "Creates a popup menu to load a soundfile in a table"
+
+    Initline
     
-    cfilein(name="filein", label="Audio", help="")
+    cfilein(name='filein', label='Audio', help='')
     
-    Description:
+    Description
     
     This interactive menu allows the user to import a soundfile into the 
     processing module. When the user chooses a sound using the interface,
     Cecilia will scan the whole folder for soundfiles. A submenu containing 
-    all soundfiles present in the folder will allow a quicker access to them later on.
+    all soundfiles present in the folder will allow a quicker access to them 
+    later on.
 
-    More than one cfilein can be defined in a module. They will appear under the 
-    input label in the left side panel of the main window, in the order defined. 
+    More than one cfilein can be defined in a module. They will appear under 
+    the input label in the left side panel of the main window, in the order 
+    defined. 
 
     In the processing class, use the BaseModule's method `addFilein` to 
     retrieve the SndTable filled with the selected sound.
     
-        BaseModule.addFilein(name)
+        >>> BaseModule.addFilein(name)
     
-    For a cfilein created with name="mysound", the table is retrieved 
+    For a cfilein created with name='mysound', the table is retrieved 
     using a call like this one:
     
-        self.table = self.addFilein("mysound")
+        >>> self.table = self.addFilein('mysound')
 
-    Parameters:
+    Parameters
 
-        name : str
-            A string passed to the parameter `name` of the
-            BaseModule.addFilein method. This method returns a SndTable object 
-            containing Cecilia's number of channels filled with the selected 
-            sound in the interface.
-        label : str
+        # name : str
+            A string passed to the parameter `name` of the BaseModule.addFilein
+            method. This method returns a SndTable object containing Cecilia's
+            number of channels filled with the selected sound in the interface.
+        # label : str
             Label shown in the interface.
-        help : str
+        # help : str
             Help string shown in the widget's popup tooltip.
 
     """
@@ -108,54 +232,57 @@ def cfilein(name="filein", label="Audio", help=""):
 
 def csampler(name="sampler", label="Audio", help=""):
     """
-    Initline:
+    "Creates a popup menu to load a soundfile in a sampler"
+
+    Initline
 
-    csampler(name="sampler", label="Audio", help="")
+    csampler(name='sampler', label='Audio', help='')
     
-    Description:
+    Description
     
     This menu allows the user to choose a soundfile for processing in the 
-    module. More than one csampler can be defined in a module. They will appear 
-    under the input label in the left side panel of the main window, in the 
-    order they have been defined. When the user chooses a sound using the interface, 
-    Cecilia will scan the whole folder for soundfiles. A submenu containing 
-    all soundfiles present in the folder will allow a quicker access to them later on. 
-    Loop points, pitch and amplitude parameters of the loaded soundfile can be 
-    controlled by the csampler window that drops when clicking the triangle just
-    besides the name of the sound.
-    
-    A sampler returns an audio variable containing Cecilia's number of output 
-    channels regardless of the number of channels in the soundfile. A 
-    distribution algorithm is used to assign X number of channels to Y number 
-    of outputs.
+    module. More than one csampler can be defined in a module. They will 
+    appear under the input label in the left side panel of the main window, 
+    in the order they have been defined. When the user chooses a sound using 
+    the interface, Cecilia will scan the whole folder for soundfiles. A 
+    submenu containing all soundfiles present in the folder will allow a 
+    quicker access to them later on. Loop points, pitch and amplitude 
+    parameters of the loaded soundfile can be controlled by the csampler 
+    window that drops when clicking the triangle just besides the name of 
+    the sound.
+    
+    A sampler returns an audio variable containing Cecilia's number of 
+    output channels regardless of the number of channels in the soundfile. 
+    A distribution algorithm is used to assign X number of channels to Y 
+    number of outputs.
     
     In the processing class, use the BaseModule's method `addSampler` to 
     retrieve the audio variable containing all channels of the looped sound.
 
-        BaseModule.addSampler(name, pitch, amp)
+        >>> BaseModule.addSampler(name, pitch, amp)
 
-    For a csampler created with name="mysound", the audio variable is 
+    For a csampler created with name='mysound', the audio variable is 
     retrieved using a call like this one:
     
-        self.snd = self.addSampler("mysound")
+        >>> self.snd = self.addSampler('mysound')
   
     Audio LFOs on pitch and amplitude of the looped sound can be passed 
     directly to the addSampler method:
     
-        self.pitlf = Sine(freq=.1, mul=.25, add=1)
-        self.amplf = Sine(freq=.15, mul=.5, add=.5)
-        self.snd = self.addSampler("mysound", self.pitlf, self.amplf)
+        >>> self.pitlf = Sine(freq=.1, mul=.25, add=1)
+        >>> self.amplf = Sine(freq=.15, mul=.5, add=.5)
+        >>> self.snd = self.addSampler('mysound', self.pitlf, self.amplf)
             
-    Parameters:
-
-        name : str
-            A string passed to the parameter `name` of the
-            BaseModule.addSampler method. This method returns a Mix object 
-            containing Cecilia's number of channels as audio streams from a 
-            Looper object controlled with the sampler window of the interface.
-        label : str
+    Parameters
+
+        # name : str
+            A string passed to the parameter `name` of the BaseModule.addSampler
+            method. This method returns a Mix object containing Cecilia's 
+            number of channels as audio streams from a Looper object 
+            controlled with the sampler window of the interface.
+        # label : str
             Label shown in the interface.
-        help : str
+        # help : str
             Help string shown in the sampler popup's tooltip.
 
     """
@@ -167,51 +294,57 @@ def csampler(name="sampler", label="Audio", help=""):
 
 def cpoly(name="poly", label="Polyphony", min=1, max=10, init=1, help=""):
     """
-    Initline:
+    "Creates two popup menus used as polyphony manager"
+
+    Initline
 
-    cpoly(name="poly", label="Polyphony", min=1, max=10, init=1, help="")
+    cpoly(name='poly', label='Polyphony', min=1, max=10, init=1, help='')
     
-    Description:
+    Description
     
     cpoly is a widget conceived to help manage the voice polyphony of a 
     module. cpoly comes with a popup menu that allows the user to choose how 
     many instances (voices) of a process will be simultaneously playing. It 
-    also provides a mini slider to adjust the voice spread of those different 
-    voices.
+    also provides another popup to choose the type of polyphony (phasing, 
+    chorus, out-of-tune or one of the provided chords).
 
     cpoly has two values that are passed to the processing module: the number 
     of voices and the voice spread. The number of voices can be collected 
-    using `self.number_of_voices`. To access the voice deviation factor use 
-    `self.polyphony_spread`.
+    using `self.number_of_voices`. `self.polyphony_spread` gives access to 
+    the transposition factors defined by the type of polyphony.
 
     If a csampler is used, you don't need to take care of polyphony, it's 
     automatically handled inside the csampler. Without a csampler, user can 
-    retrieve polyphony popup and slider values with these builtin reserved 
+    retrieve polyphony popups values with these builtin reserved 
     variables :
         
-        self.number_of_voices : int. Number of layers of polyphony.
-        self.polyphony_spread : float. Deviation factor.
-    
-    No more than one `cpoly` can be declared in a module.
+        # self.number_of_voices : int
+            Number of layers of polyphony
+        # self.polyphony_spread : list of floats
+            Transposition factors as a list of floats
+        # self.polyphony_scaling : float
+            An amplitude factor based on the number of voices
 
-    Note: 
+    Notes 
     
     The cpoly interface object and its associated variables can be used in 
     the dsp module any way one sees fit.
 
-    Parameters:
+    No more than one `cpoly` can be declared in a module.
 
-        name : str
+    Parameters
+
+        # name : str
             Name of the widget.
-        label : str
+        # label : str
             Label shown in the interface.
-        min : int
+        # min : int
             Minimum value for the number of layers slider.
-        max : int
+        # max : int
             Maximum value for the number of layers slider.
-        init : int
+        # init : int
             Initial value for the number of layers slider.
-        help : str
+        # help : str
             Help string shown in the cpoly tooltip.
 
     """
@@ -227,12 +360,15 @@ def cpoly(name="poly", label="Polyphony", min=1, max=10, init=1, help=""):
 def cgraph(name="graph", label="Envelope", min=0.0, max=1.0, rel="lin", table=False, size=8192, 
             unit="x", curved=False, func=[(0, 0.), (.01, 1), (.99, 1), (1, 0.)], col="red"):
     """
-    Initline:
+    "Creates a graph only automated parameter or a shapeable envelope"
+    
+    Initline
 
-    cgraph(name="graph", label="Envelope", min=0.0, max=1.0, rel="lin", table=False, size=8192, 
-                unit="x", curved=False, func=[(0, 0.), (.01, 1), (.99, 1), (1, 0.)], col="red")
+    cgraph(name='graph', label='Envelope', min=0.0, max=1.0, rel='lin', 
+           table=False, size=8192, unit='x', curved=False, 
+           func=[(0, 0.), (.01, 1), (.99, 1), (1, 0.)], col='red')
 
-    Description:
+    Description
     
     A graph line represents the evolution of a variable during a Cecilia 
     performance. The value of the graph is passed to the module with a 
@@ -244,35 +380,35 @@ def cgraph(name="graph", label="Envelope", min=0.0, max=1.0, rel="lin", table=Fa
     be used for any purpose in the module by recalling its variable. The 
     `col` argument defines the color of the graph line using a color value.
     
-    Parameters:
+    Parameters
 
-        name : str
+        # name : str
             Name of the grapher line.
-        label : str
+        # label : str
             Label shown in the grapher popup.
-        min : float
+        # min : float
             Minimum value for the Y axis.
-        max : float
+        # max : float
             Maximum value for the Y axis.
-        rel : str {"lin", "log"}
+        # rel : str {'lin', 'log'}
             Y axis scaling.
-        table : boolean
+        # table : boolean
             If True, a PyoTableObject will be created instead of a 
             control variable.
-        size : int
+        # size : int
             Size, in samples, of the PyoTableObject.
-        unit : str
+        # unit : str
             Unit symbol shown in the interface.
-        curved : boolean
-            If True, a cosinus segments will be drawn between points. The curved
-            mode can be switched by double-click on the curve in the grapher.
-            Defaults to Flase
-        func : list of tuples
+        # curved : boolean
+            If True, a cosinus segments will be drawn between points. 
+            The curved mode can be switched by double-click on the curve 
+            in the grapher. Defaults to Flase
+        # func : list of tuples
             Initial graph line in break-points (serie of time/value points).
             Times must be in increasing order between 0 and 1.
-        col : str
+        # col : str
             Color of the widget.
-    
+
     """
     dic = {"type": "cgraph"}
     dic["name"] = name
@@ -291,63 +427,73 @@ def cgraph(name="graph", label="Envelope", min=0.0, max=1.0, rel="lin", table=Fa
 def cslider(name="slider", label="Pitch", min=20.0, max=20000.0, init=1000.0, rel="lin", res="float", 
             gliss=0.025, unit="x", up=False, func=None, midictl=None, half=False, col="red", help=""):
     """
-    Initline:
+    "Creates a slider, and its own graph line, for time-varying controls"
+    
+    Initline
 
-    cslider(name="slider", label="Pitch", min=20.0, max=20000.0, init=1000.0, rel="lin", res="float", 
-                gliss=0.025, unit="x", up=False, func=None, midictl=None, half=False, col="red", help="")
+    cslider(name='slider', label='Pitch', min=20.0, max=20000.0, init=1000.0, 
+            rel='lin', res='float', gliss=0.025, unit='x', up=False, 
+            func=None, midictl=None, half=False, col='red', help='')
 
-    Description:
+    Description
 
     When created, the slider is stacked in the slider pane of the main Cecilia
     window in the order it is defined. The value of the slider is passed to 
-    the module with a variable named `self.name`. The `up` argument passes the 
-    value of the slider on mouse up if set to True or continuously if set to 
-    False. The `gliss` argument determines the duration of the portamento 
-    (in seconds) applied between values. The portamento is automatically set to 0
-    if `up` is True. The resolution of the slider can be set to int or float 
-    using the `res` argument. Slider color can be set using the `col` 
+    the module with a variable named `self.name`. The `up` argument passes 
+    the value of the slider on mouse up if set to True or continuously if set 
+    to False. The `gliss` argument determines the duration of the portamento 
+    (in seconds) applied between values. The portamento is automatically set 
+    to 0 if `up` is True. The resolution of the slider can be set to int or 
+    float using the `res` argument. Slider color can be set using the `col` 
     argument and a color value. However, sliders with `up` set to True are 
     greyed out and the `col` argument is ignored.
 
+    If `up` is set to True, the cslider will not create an audio rate signal,
+    but will call a method named `widget_name` + '_up'. This method must be 
+    defined in the class `Module`. For a cslider with the name 'grains', the
+    method should be declared like this:
+
+    >>> def grains_up(self, value):
+    
     Every time a slider is defined with `up` set to False, a corresponding 
-    graph line is automatically defined for the grapher in the Cecilia interface.
-    The recording and playback of an automated slider is linked to its 
-    graph line.
+    graph line is automatically defined for the grapher in the Cecilia 
+    interface. The recording and playback of an automated slider is linked 
+    to its graph line.
     
-    Parameters:
+    Parameters
     
-        name : str
+        # name : str
             Name of the slider.
-        label : str
+        # label : str
             Label shown in the slider label and the grapher popup.
-        min : float
+        # min : float
             Minimum value of the slider.
-        max : float
+        # max : float
             Maximum value of the slider.
-        init : float
+        # init : float
             Slider's initial value.
-        rel : str {"lin", "log"}
-            Slider scaling. Defaults to "lin".
-        res : str {"int", "float"}
-            Slider resolution. Defaults to "float"
-        gliss : float
+        # rel : str {'lin', 'log'}
+            Slider scaling. Defaults to 'lin'.
+        # res : str {'int', 'float'}
+            Slider resolution. Defaults to 'float'
+        # gliss : float
             Portamento between values in seconds. Defaults to 0.025.
-        unit : str
+        # unit : str
             Unit symbol shown in the interface.
-        up : boolean
+        # up : boolean
             Value passed on mouse up if True. Defaults to False.
-        func : list of tuples
+        # func : list of tuples
             Initial automation in break-points format (serie of time/value 
             points). Times must be in increasing order between 0 and 1.
-        midictl : int 
+        # midictl : int 
             Automatically map a midi controller to this slider. 
             Defaults to None.
-        half : boolean
+        # half : boolean
             Determines if the slider is full-width or half-width. Set to True
             to get half-width slider. Defaults to False.
-        col : str
+        # col : str
             Color of the widget.
-        help : str
+        # help : str
             Help string shown in the cslider tooltip.
 
     """
@@ -372,24 +518,29 @@ def cslider(name="slider", label="Pitch", min=20.0, max=20000.0, init=1000.0, re
 def crange(name="range", label="Pitch", min=20.0, max=20000.0, init=[500.0, 2000.0], rel="log", 
            res="float", gliss=0.025, unit="x", up=False, func=None, midictl=None, col="red", help=""):
     """
-    Initline:
-
-    crange(name="range", label="Pitch", min=20.0, max=20000.0, init=[500.0, 2000.0], rel="log", 
-               res="float", gliss=0.025, unit="x", up=False, func=None, midictl=None, col="red", help="")
-
-    Description:
-    
-    When created, the range slider is stacked in the slider pane of the main 
-    Cecilia window in the order it is defined. The values of the range slider 
-    are passed to the module with a variable named `self.name`. The range
-    minimum is collected using `self.name[0]` and the range maximum is 
-    collected using `self.name[1]`. The `up` argument passes the values of 
-    the range on mouse up if set to True or continuously if set to False. 
-    The `gliss` argument determines the duration of the portamento (in sec)
-    applied on a new value. The resolution of the range slider can be set to 
-    int or float using the `res` argument. Slider color can be set using the 
-    `col` argument and a color value. However, sliders with `up` set to True 
-    are greyed out and the `col` argument is ignored.
+    "Two-sided slider, with its own graph lines, for time-varying controls"
+
+    Initline
+
+    crange(name='range', label='Pitch', min=20.0, max=20000.0, 
+           init=[500.0, 2000.0], rel='log', res='float', gliss=0.025, 
+           unit='x', up=False, func=None, midictl=None, col='red', help='')
+
+    Description
+    
+    This function creates a two-sided slider used to control a minimum and 
+    a maximum range at the sime time. When created, the range slider is 
+    stacked in the slider pane of the main Cecilia window in the order it 
+    is defined. The values of the range slider are passed to the module 
+    with a variable named `self.name`. The range minimum is collected using 
+    `self.name[0]` and the range maximum is collected using `self.name[1]`. 
+    The `up` argument passes the values of the range on mouse up if set to 
+    True or continuously if set to False. The `gliss` argument determines 
+    the duration of the portamento (in sec) applied on a new value. The 
+    resolution of the range slider can be set to 'int' or 'float' using the 
+    `res` argument. Slider color can be set using the `col` argument and a 
+    color value. However, sliders with `up` set to True are greyed out and 
+    the `col` argument is ignored.
 
     Every time a range slider is defined, two graph lines are automatically 
     defined for the grapher in the Cecilia interface. One is linked to the 
@@ -397,45 +548,45 @@ def crange(name="range", label="Pitch", min=20.0, max=20000.0, init=[500.0, 2000
     range. The recording and playback of an automated slider is linked to its 
     graph line.
 
-    Note: 
+    Notes 
     
-    In order to quickly select the minimum value (and graph line), the user can 
-    click on the left side of the crange label, to select the maximum value 
-    (and graph line), the right side of the label.
+    In order to quickly select the minimum value (and graph line), the user 
+    can click on the left side of the crange label, and on the right side of 
+    the label to select the maximum value (and graph line).
 
-    Parameters:
+    Parameters
     
-        name : str
+        # name : str
             Name of the range slider.
-        label : str
+        # label : str
             Label shown in the crange label and the grapher popup.
-        min : float
+        # min : float
             Minimum value of the range slider.
-        max : float
+        # max : float
             Maximum value of the range slider.
-        init : list of float
+        # init : list of float
             Range slider minimum and maximum initial values.
-        rel : str {"lin", "log"}
-            Range slider scaling. Defaults to "lin".
-        res : str {"int", "float"}
-            Range slider resolution. Defaults to "float"
-        gliss : float
+        # rel : str {'lin', 'log'}
+            Range slider scaling. Defaults to 'lin'.
+        # res : str {'int', 'float'}
+            Range slider resolution. Defaults to 'float'
+        # gliss : float
             Portamento between values in seconds. Defaults to 0.025.
-        unit : str
+        # unit : str
             Unit symbol shown in the interface.
-        up : boolean
+        # up : boolean
             Value passed on mouse up if True. Defaults to False.
-        func : list of list of tuples
+        # func : list of list of tuples
             Initial automation in break-points format (serie of time/value 
             points). Times must be in increasing order between 0 and 1.
             The list must contain two lists of points, one for the minimum
             value and one for the maximum value.
-        midictl : list of int
+        # midictl : list of int
             Automatically map two midi controllers to this range slider. 
             Defaults to None.
-        col : str
+        # col : str
             Color of the widget.
-        help : str
+        # help : str
             Help string shown in the crange tooltip.
 
     """
@@ -463,12 +614,15 @@ def crange(name="range", label="Pitch", min=20.0, max=20000.0, init=[500.0, 2000
 def csplitter(name="splitter", label="Pitch", min=20.0, max=20000.0, init=[500.0, 2000.0, 5000.0], 
               rel="log", res="float", gliss=0.025, unit="x", up=False, num_knobs=3, col="red", help=""):
     """
-    Initline:
+    "Creates a multi-knobs slider used to split the spectrum in sub-regions"
+    
+    Initline
 
-    csplitter(name="splitter", label="Pitch", min=20.0, max=20000.0, init=[500.0, 2000.0, 5000.0], 
-                  rel="log", res="float", gliss=0.025, unit="x", up=False, num_knobs=3, col="red", help="")
+    csplitter(name='splitter', label='Pitch', min=20.0, max=20000.0, 
+              init=[500.0, 2000.0, 5000.0], rel='log', res='float', 
+              gliss=0.025, unit='x', up=False, num_knobs=3, col='red', help='')
 
-    Description:
+    Description
     
     When created, the splitter is stacked in the slider pane of the main 
     Cecilia window in the order it is defined. The values of the splitter 
@@ -476,45 +630,46 @@ def csplitter(name="splitter", label="Pitch", min=20.0, max=20000.0, init=[500.0
     knob values are collected using `self.name[0]` to `self.name[num-knobs-1]`.
     The `up` argument passes the values of the splitter on mouse up if set to 
     True or continuously if set to False. The `gliss` argument determines the 
-    duration of the portamento (in seconds) applied between values. The resolution 
-    of the splitter slider can be set to int or float using the `res` argument. 
-    The slider color can be set using the `col` argument and a color value. 
-    However, sliders with `up` set to True are greyed out and the `col` argument 
-    is ignored.
+    duration of the portamento (in seconds) applied between values. The 
+    resolution of the splitter slider can be set to int or float using the 
+    `res` argument. The slider color can be set using the `col` argument and 
+    a color value. However, sliders with `up` set to True are greyed out and 
+    the `col` argument is ignored.
 
     The csplitter is designed to be used with the FourBand() object in
-    order to allow multi-band processing. Although the FourBand() parameters can be
-    changed at audio rate, it is not recommended. This filter is CPU intensive 
-    and can have erratic behavior when boundaries are changed too quickly.
+    order to allow multi-band processing. Although the FourBand() parameters 
+    can be changed at audio rate, it is not recommended. This filter is CPU 
+    intensive and can have erratic behavior when boundaries are changed too 
+    quickly.
 
-    Parameters:
+    Parameters
     
-        name : str
+        # name : str
             Name of the splitter slider.
-        label : str
+        # label : str
             Label shown in the csplitter label.
-        min : float
+        # min : float
             Minimum value of the splitter slider.
-        max : float
+        # max : float
             Maximum value of the splitter slider.
-        init : list of float
+        # init : list of float
             Splitter knobs initial values. List must be of length `num_knobs`.
             Defaults to [500.0, 2000.0, 5000.0].
-        rel : str {"lin", "log"}
-            Splitter slider scaling. Defaults to "lin".
-        res : str {"int", "float"}
-            Splitter slider resolution. Defaults to "float"
-        gliss : float
+        # rel : str {'lin', 'log'}
+            Splitter slider scaling. Defaults to 'lin'.
+        # res : str {'int', 'float'}
+            Splitter slider resolution. Defaults to 'float'
+        # gliss : float
             Portamento between values in seconds. Defaults to 0.025.
-        unit : str
+        # unit : str
             Unit symbol shown in the interface.
-        up : boolean
+        # up : boolean
             Value passed on mouse up if True. Defaults to False.
-        num_knobs : int
+        # num_knobs : int
             Number of junction knobs. Defaults to 3.
-        col : str
+        # col : str
             Color of the widget.
-        help : str
+        # help : str
             Help string shown in the csplitter tooltip.
 
     """
@@ -538,48 +693,54 @@ def csplitter(name="splitter", label="Pitch", min=20.0, max=20000.0, init=[500.0
 
 def ctoggle(name="toggle", label="Start/Stop", init=True, rate="k", stack=False, col="red", help=""):
     """
-    Initline:
+    "Creates a two-states button"
+    
+    Initline
 
-    ctoggle(name="toggle", label="Start/Stop", init=True, rate="k", stack=False, col="red", help="")
+    ctoggle(name='toggle', label='Start/Stop', init=True, rate='k', 
+            stack=False, col='red', help='')
 
-    Description:
+    Description
 
-    If `rate` argument is set to "i", a built-in reserved variable is created 
+    A toggle button is a two-states switch that can be used to start and stop
+    processes.
+    
+    If `rate` argument is set to 'i', a built-in reserved variable is created 
     at initialization time. The variable's name is constructed like this :
         
-        self.widget_name + "_value"
+        >>> self.widget_name + '_value'
         
-    If `name` is set to "foo", the variable's name will be:
+    If `name` is set to 'foo', the variable's name will be:
     
-        self.foo_value
+        >>> self.foo_value
 
-    If `rate` argument is set to "k", a module method using one argument
-    must be defined with the name `name`. If `name` is set to "foo", the 
+    If `rate` argument is set to 'k', a module method using one argument
+    must be defined with the name `name`. If `name` is set to 'foo', the 
     function should be defined like this :
     
-        def foo(self, value):
+        >>> def foo(self, value):
             
     value is an integer (0 or 1).
     
-    Parameters:
+    Parameters
 
-        name : str
-            Name of the widget. 
-            Used to defined the function or the reserved variable.
-        label : str
+        # name : str
+            Name of the widget used to defined the function or the 
+            reserved variable.
+        # label : str
             Label shown in the interface.
-        init : int
+        # init : int
             Initial state of the toggle.
-        rate : str {"k", "i"}
+        # rate : str {'k', 'i'}
             Indicates if the toggle is handled at initialization time only 
-            ("i") with a reserved variable or with a function ("k") that can 
+            ('i') with a reserved variable or with a function ('k') that can 
             be called at any time during playback.
-        stack : boolean
-            If True, the toggle will be added on the same row as the last toogle
-            with stack=True and a label not empty. Defaults to False
-        col : str
+        # stack : boolean
+            If True, the toggle will be added on the same row as the last 
+            toogle with stack=True and a label not empty. Defaults to False.
+        # col : str
             Color of the widget.
-        help : str
+        # help : str
             Help string shown in the toggle tooltip.
 
     """
@@ -596,51 +757,56 @@ def ctoggle(name="toggle", label="Start/Stop", init=True, rate="k", stack=False,
 def cpopup(name="popup", label="Chooser", value=["1", "2", "3", "4"],
            init="1", rate="k", col="red", help=""):
     """
-    Initline:
+    "Creates a popup menu offering a limited set of choices"
+
+    Initline
 
-    cpopup(name="popup", label="Chooser", value=["1", "2", "3", "4"],
-               init="1", rate="k", col="red", help="")
+    cpopup(name='popup', label='Chooser', value=['1', '2', '3', '4'],
+               init='1', rate='k', col='red', help='')
 
-    Description:
+    Description
 
-    If `rate` argument is set to "i", two built-in reserved variables are 
+    A popup menu offers a limited set choices that are available to modify
+    the state of the current module.
+
+    If `rate` argument is set to 'i', two built-in reserved variables are 
     created at initialization time. The variables' names are constructed 
     like this :
 
-        self.widget_name + "_index" for the selected position in the popup.
-        self.widget_name + "_value" for the selected string in the popup.
+        >>> self.widget_name + '_index' for the selected position in the popup.
+        >>> self.widget_name + '_value' for the selected string in the popup.
 
-    If `name` is set to "foo", the variables' names will be:
+    If `name` is set to 'foo', the variables names will be:
     
-        self.foo_index (this variable is an integer)
-        self.foo_value (this variable is a string)
+        >>> self.foo_index (this variable is an integer)
+        >>> self.foo_value (this variable is a string)
 
-    If `rate` argument is set to "k", a module method using two arguments
-    must be defined with the name `name`. If `name` is set to "foo", the 
+    If `rate` argument is set to 'k', a module method using two arguments
+    must be defined with the name `name`. If `name` is set to 'foo', the 
     function should be defined like this :
     
-        def foo(self, index, value):
-            index -> int
-            value -> str
+        >>> def foo(self, index, value):
+        >>>     index -> int
+        >>>     value -> str
 
-    Parameters:
+    Parameters
 
-        name : str
+        # name : str
             Name of the widget. 
             Used to defined the function or the reserved variables.
-        label : str
+        # label : str
             Label shown in the interface.
-        value : list of strings
+        # value : list of strings
             An array of strings with which to initialize the popup.
-        init : int
+        # init : int
             Initial state of the popup.
-        rate : str {"k", "i"}
+        # rate : str {'k', 'i'}
             Indicates if the popup is handled at initialization time only 
-            ("i") with reserved variables or with a function ("k") that can 
+            ('i') with reserved variables or with a function ('k') that can 
             be called at any time during playback.
-        col : str
+        # col : str
             Color of the widget.
-        help : str
+        # help : str
             Help string shown in the popup tooltip.
 
     """
@@ -656,30 +822,34 @@ def cpopup(name="popup", label="Chooser", value=["1", "2", "3", "4"],
 
 def cbutton(name="button", label="Trigger", col="red", help=""):
     """
-    Initline:
+    "Creates a button that can be used as an event trigger"
+
+    Initline
 
-    cbutton(name="button", label="Trigger", col="red", help="")
+    cbutton(name='button', label='Trigger', col='red', help='')
+    
+    Description
 
-    Description:
+    A button has no state, it only sends a trigger when it is clicked.
 
-    When the button is clicked, a function is called with the current state 
-    of the button as argument.
+    When the button is clicked, a function is called with the current 
+    state of the mouse (down or up) as argument.
     
-    If `name` is set to "foo", the function should be defined like this :
+    If `name` is set to 'foo', the function should be defined like this :
     
-        def foo(self, value):
+        >>> def foo(self, value):
             
     value is True on mouse pressed and False on mouse released.
     
-    Parameters:
+    Parameters
 
-        name : str
+        # name : str
             Name of the widget. Used to defined the function.
-        label : str
+        # label : str
             Label shown in the interface.
-        col : str
+        # col : str
             Color of the widget.
-        help : str
+        # help : str
             Help string shown in the button tooltip.
 
     """
@@ -693,51 +863,55 @@ def cbutton(name="button", label="Trigger", col="red", help=""):
 def cgen(name="gen", label="Wave shape", init=[1,0,.3,0,.2,0,.143,0,.111], 
          rate="k", popup=None, col="red", help=""):
     """
-    Initline:
+    "Creates a list entry useful to generate list of arbitrary values"
+    
+    Initline
 
-    cgen(name="gen", label="Wave shape", init=[1,0,.3,0,.2,0,.143,0,.111], 
-             rate="k", popup=None, col="red", help="")
+    cgen(name='gen', label='Wave shape', init=[1,0,.3,0,.2,0,.143,0,.111], 
+             rate='k', popup=None, col='red', help='')
 
-    Description:
+    Description
 
-    Widget used to create a list of floating-point values.
+    Widget that can be used to create a list of floating-point values. A 
+    left click on the widget will open a floating window to enter the desired
+    values. Values can be separated by commas or by spaces.
     
-    If `rate` argument is set to "i", a built-in reserved variable is created 
-    at initialization time. The variable's name is constructed like this :
+    If `rate` argument is set to 'i', a built-in reserved variable is created 
+    at initialization time. The variable name is constructed like this :
 
-        self.widget_name + "_value" for retrieving a list of floats.
+        >>> self.widget_name + '_value' for retrieving a list of floats.
 
-    If `name` is set to "foo", the variable's name will be:
+    If `name` is set to 'foo', the variable name will be:
     
-        self.foo_value (this variable is a list of floats)
+        >>> self.foo_value (this variable is a list of floats)
 
-    If `rate` argument is set to "k", a module method using one argument
-    must be defined with the name `name`. If `name` is set to "foo", the 
+    If `rate` argument is set to 'k', a module method using one argument
+    must be defined with the name `name`. If `name` is set to 'foo', the 
     function should be defined like this :
     
-        def foo(self, value):
-            value -> list of strings
+        >>> def foo(self, value):
+        >>>     value -> list of strings
 
-    Parameters:
+    Parameters
 
-        name : str
+        # name : str
             Name of the widget. 
             Used to defined the function or the reserved variable.
-        label : str
+        # label : str
             Label shown in the interface.
-        init : int
+        # init : int
             An array of number, separated with commas, with which to 
             initialize the widget.
-        rate : str {"k", "i"}
+        # rate : str {'k', 'i'}
             Indicates if the widget is handled at initialization time only 
-            ("i") with a reserved variable or with a function ("k") that can 
+            ('i') with a reserved variable or with a function ('k') that can 
             be called at any time during playback.
-        popup : tuple (str, int) -> (popup's name, index)
+        # popup : tuple (str, int) -> (popup's name, index)
             If a tuple is specified, and cgen is modified, the popup will 
             be automatically set to the given index.
-        col : str
+        # col : str
             Color of the widget.
-        help : str
+        # help : str
             Help string shown in the widget's tooltip.
 
     """
diff --git a/Resources/CeciliaInterface.py b/Resources/CeciliaInterface.py
index 833666b..951b1b8 100644
--- a/Resources/CeciliaInterface.py
+++ b/Resources/CeciliaInterface.py
@@ -1,6 +1,7 @@
 # encoding: utf-8
 """
-Copyright 2011 iACT, Universite de Montreal, Jean Piche, Olivier Belanger, Jean-Michel Dumas
+Copyright 2011 iACT, Universite de Montreal, Jean Piche, Olivier Belanger, 
+Jean-Michel Dumas
 
 This file is part of Cecilia 5.
 
@@ -18,26 +19,26 @@ You should have received a copy of the GNU General Public License
 along with Cecilia 5.  If not, see <http://www.gnu.org/licenses/>.
 """
 
-import wx, os
-import wx.aui
+import wx
 import CeciliaLib
+import Control
+import Preset
 from constants import *
 from Sliders import buildHorizontalSlidersBox
-from Grapher import buildGrapher
+from Grapher import getGrapher, buildGrapher
 from TogglePopup import buildTogglePopupBox
-import Control
-import Preset
 from menubar import InterfaceMenuBar
 
 class CeciliaInterface(wx.Frame):
     if CeciliaLib.getVar("systemPlatform") == "linux2":
-        style = wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER | wx.SYSTEM_MENU | wx.CAPTION | \
-                wx.CLIP_CHILDREN | wx.WANTS_CHARS
+        style = wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER | \
+                wx.SYSTEM_MENU | wx.CAPTION | wx.CLIP_CHILDREN | wx.WANTS_CHARS
     else:
-        style = wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER | wx.SYSTEM_MENU | wx.CAPTION | \
-                wx.NO_BORDER | wx.CLIP_CHILDREN | wx.WANTS_CHARS
-    def __init__(self, parent, id=-1, title='', mainFrame=None, pos=wx.DefaultPosition,
-                 size=wx.DefaultSize, style=style): 
+        style = wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER | \
+                wx.SYSTEM_MENU | wx.CAPTION | wx.BORDER_SUNKEN | \
+                wx.CLIP_CHILDREN | wx.WANTS_CHARS
+    def __init__(self, parent, id=-1, title='', mainFrame=None, 
+                 pos=wx.DefaultPosition, size=wx.DefaultSize, style=style): 
         wx.Frame.__init__(self, parent, id, title, pos, size, style)
 
         self.SetBackgroundColour(BACKGROUND_COLOUR)
@@ -45,82 +46,46 @@ class CeciliaInterface(wx.Frame):
         self.menubar = InterfaceMenuBar(self, self.ceciliaMainFrame)
         self.SetMenuBar(self.menubar)
 
-        self._mgr = wx.aui.AuiManager()
-        self._mgr.SetManagedWindow(self)
+        self.box = wx.GridBagSizer(0, 0)
 
-        self.hasScrollbar = False
-        self.controlPanel = Control.CECControl(self, -1)
+        self.controlBox = wx.BoxSizer(wx.VERTICAL)
 
-        togglePopupPanel, objs, tpsize = self.createTogglePopupPanel(self)        
-        self.horizontalSlidersPanel, slPanelSize = self.createHorizontalSlidersPanel(self)
-        self.grapher = self.createGrapher(self)
+        self.controlPanel = Control.CECControl(self, -1)
+        togglePopupPanel, objs, tpsize = self.createTogglePopupPanel()        
+        slidersPanel, slPanelSize = self.createSlidersPanel()
+        self.grapher = getGrapher(self)
+        CeciliaLib.setVar("grapher", self.grapher)
         presetPanel = Preset.CECPreset(self)
         CeciliaLib.setVar("presetPanel", presetPanel)
 
-        self._mgr.AddPane(self.horizontalSlidersPanel, wx.aui.AuiPaneInfo().
-                          Name("hslidersPanel").Caption("").
-                          Bottom().Position(2).CloseButton(False).MaximizeButton(False).
-                          Layer(1).MinSize(slPanelSize).CaptionVisible(False))
-
-        self._mgr.AddPane(self.grapher, wx.aui.AuiPaneInfo().
-                          Name("graphPanel").Caption("").
-                          CloseButton(False).MaximizeButton(True).Center().
-                          Layer(0))
-
-        self._mgr.AddPane(presetPanel, wx.aui.AuiPaneInfo().Name("presetPanel").Fixed().
-                          Left().Position(1).CloseButton(False).MaximizeButton(False).
-                          Layer(2).CaptionVisible(False).BestSize((-1,60)))
-
-        self._mgr.AddPane(togglePopupPanel, wx.aui.AuiPaneInfo().Name("togglePopup").Fixed().
-                          Left().Position(2).CloseButton(False).MaximizeButton(False).
-                          Layer(2).CaptionVisible(False).MaxSize(tpsize))
+        self.controlBox.Add(self.controlPanel, 1, wx.EXPAND | wx.RIGHT, -1)
+        self.controlBox.Add(presetPanel, 0, wx.EXPAND | wx.TOP | wx.RIGHT, -1)
+        self.controlBox.Add(togglePopupPanel, 0, wx.EXPAND | wx.TOP | wx.RIGHT, -1)
 
-        self._mgr.AddPane(self.controlPanel, wx.aui.AuiPaneInfo().
-                          Name("controlPanel").Left().Position(0).Fixed().
-                          CloseButton(False).MaximizeButton(False).MinSize((230,-1)).
-                          Layer(2).CaptionVisible(False))
-
-        pos, size = self.positionToClientArea(CeciliaLib.getVar("interfacePosition"), CeciliaLib.getVar("interfaceSize"))
+        self.box.Add(self.controlBox, (0,0), span=(2,1), flag=wx.EXPAND)
+        self.box.Add(self.grapher, (0,1), flag=wx.EXPAND)
+        self.box.Add(slidersPanel, (1,1), flag=wx.EXPAND|wx.TOP, border=-1)
+        
+        self.box.AddGrowableCol(1, 1)
+        self.box.AddGrowableRow(0, 1)
+        
+        pos = CeciliaLib.getVar("interfacePosition")
+        size = CeciliaLib.getVar("interfaceSize")
+        pos, size = self.positionToClientArea(pos, size)
 
+        self.SetSizer(self.box)        
         self.SetSize(size)
 
-        self._artProvider = wx.aui.AuiDefaultDockArt()
-        self._artProvider.SetMetric(wx.aui.AUI_DOCKART_SASH_SIZE, 0)
-        self._artProvider.SetColour(wx.aui.AUI_DOCKART_BACKGROUND_COLOUR, BORDER_COLOUR)
-        self._artProvider.SetColour(wx.aui.AUI_DOCKART_SASH_COLOUR, BORDER_COLOUR)
-        self._artProvider.SetColour(wx.aui.AUI_DOCKART_BORDER_COLOUR, BORDER_COLOUR)
-        self._artProvider.SetColour(wx.aui.AUI_DOCKART_INACTIVE_CAPTION_COLOUR, TITLE_BACK_COLOUR)
-        self._artProvider.SetColour(wx.aui.AUI_DOCKART_INACTIVE_CAPTION_GRADIENT_COLOUR, TITLE_BACK_COLOUR)
-        self._mgr.SetArtProvider(self._artProvider)
-                
-        # Update the frame using the manager
-        self._mgr.Update()
-
         self.Bind(wx.EVT_CLOSE, self.onClose)
-        self.Bind(wx.EVT_SIZE, self.OnSize)
 
         if pos == None:
             self.Center()
         else:
             self.SetPosition(pos)    
 
-    def OnSize(self, evt):
-        scrPt = {'win32': 1, 'cygwin': 1, 'linux2': 1, 'darwin': 0}
-        minSz = {'win32': 250, 'cygwin': 250, 'linux2': 245, 'darwin': 245}
-        platform = CeciliaLib.getVar("systemPlatform") 
-        if CeciliaLib.getVar("interface") != None:
-            if CeciliaLib.getControlPanel().GetScrollRange(wx.VERTICAL) <= scrPt[platform]:
-                hasScrollbar = False
-                self._mgr.GetPane('controlPanel').MinSize((230,-1))
-            else:
-                hasScrollbar = True
-                self._mgr.GetPane('controlPanel').MinSize((minSz[platform],-1))
-
-            if self.hasScrollbar != hasScrollbar:
-                self.hasScrollbar = hasScrollbar
+        self.Show(True)
 
-            wx.CallAfter(self._mgr.Update)
-        evt.Skip()
+        wx.CallAfter(self.createGrapher)
 
     def positionToClientArea(self, pos, size):
         position = None
@@ -131,7 +96,8 @@ class CeciliaInterface(wx.Frame):
                 dispsize = CeciliaLib.getVar("displaySize")[i]
                 Xbounds = [off[0], dispsize[0]+off[0]]
                 Ybounds = [off[1], dispsize[1]+off[1]]
-                if pos[0] >= Xbounds[0] and pos[0] <= Xbounds[1] and pos[1] >= Ybounds[0] and pos[1] <= Ybounds[1]:
+                if pos[0] >= Xbounds[0] and pos[0] <= Xbounds[1] and \
+                   pos[1] >= Ybounds[0] and pos[1] <= Ybounds[1]:
                     position = pos
                     screen = i
                     break
@@ -145,41 +111,43 @@ class CeciliaInterface(wx.Frame):
     def updateTitle(self, title):
         self.SetTitle(title)
 
-    def createTogglePopupPanel(self, parent, label='', size=(-1,-1), style=wx.SUNKEN_BORDER):
-        panel = wx.Panel(self, -1)
+    def createTogglePopupPanel(self):
+        if CeciliaLib.getVar("systemPlatform") == "win32":
+            BORDER = wx.DOUBLE_BORDER
+        else:
+            BORDER = wx.SIMPLE_BORDER
+        panel = wx.Panel(self, -1, style=BORDER)
         panel.SetBackgroundColour(BACKGROUND_COLOUR)
-        box, objs = buildTogglePopupBox(panel, CeciliaLib.getVar("interfaceWidgets"))
+        widgets = CeciliaLib.getVar("interfaceWidgets")
+        box, objs = buildTogglePopupBox(panel, widgets)
         panel.SetSizerAndFit(box)
         CeciliaLib.setVar("userTogglePopups", objs)
         size = panel.GetSize()
         return panel, objs, size
 
-    def createHorizontalSlidersPanel(self, parent, label='', size=(-1,-1), 
-                                     style=wx.SUNKEN_BORDER, name=''):
-        panel = wx.Panel(self, -1)
+    def createSlidersPanel(self):
+        if CeciliaLib.getVar("systemPlatform") == "win32":
+            BORDER = wx.DOUBLE_BORDER
+        else:
+            BORDER = wx.SIMPLE_BORDER
+        panel = wx.Panel(self, -1, style=BORDER)
         panel.SetBackgroundColour(BACKGROUND_COLOUR)
-        box, sl = buildHorizontalSlidersBox(panel, CeciliaLib.getVar("interfaceWidgets"))
+        widgets = CeciliaLib.getVar("interfaceWidgets")
+        box, sl = buildHorizontalSlidersBox(panel, widgets)
         CeciliaLib.setVar("userSliders", sl)
         panel.SetSizerAndFit(box)
-        #panel.Bind(wx.EVT_SIZE, self.onChangeSlidersPanelSize)
         size = panel.GetSize()
         return panel, size
-
-    def onChangeSlidersPanelSize(self, evt):
-        self.horizontalSlidersPanel.Layout()
-        self.horizontalSlidersPanel.Refresh()
         
-    def createGrapher(self, parent, label='', size=(-1,-1), style=wx.SUNKEN_BORDER):
-        graph = buildGrapher(self, CeciliaLib.getVar("interfaceWidgets"), CeciliaLib.getVar("totalTime"))
-        CeciliaLib.setVar("grapher", graph)
-        return graph
+    def createGrapher(self):
+        buildGrapher(self.grapher, CeciliaLib.getVar("interfaceWidgets"), 
+                     CeciliaLib.getVar("totalTime"))
 
     def onClose(self, event):
         CeciliaLib.setVar("interfaceSize", self.GetSize())
         CeciliaLib.setVar("interfacePosition", self.GetPosition())
         CeciliaLib.resetWidgetVariables()
         try:
-            self._mgr.UnInit()
             self.Destroy()
         except:
             pass
@@ -188,10 +156,7 @@ class CeciliaInterface(wx.Frame):
         
     def getControlPanel(self):
         return self.controlPanel
-    
-    def updateManager(self):
-        self._mgr.Update()
-    
+
     def onUndo(self, evt):
         self.grapher.plotter.undoRedo(1)
 
@@ -203,6 +168,9 @@ class CeciliaInterface(wx.Frame):
 
     def onPaste(self, event):
         self.grapher.plotter.onPaste()
+
+    def onSelectAll(self, event):
+        self.grapher.plotter.onSelectAll()
         
     def updateNchnls(self):
         self.controlPanel.updateNchnls()
diff --git a/Resources/CeciliaLib.py b/Resources/CeciliaLib.py
index 7574e99..2eb6f39 100644
--- a/Resources/CeciliaLib.py
+++ b/Resources/CeciliaLib.py
@@ -18,7 +18,7 @@ You should have received a copy of the GNU General Public License
 along with Cecilia 5.  If not, see <http://www.gnu.org/licenses/>.
 """
 
-import os, sys, wx, time, math, copy, codecs
+import os, sys, wx, time, math, copy, codecs, pdb
 from types import UnicodeType, IntType
 import pprint as pp
 from constants import *
@@ -26,6 +26,20 @@ import Variables as vars
 from API_interface import *
 import unicodedata
 from subprocess import Popen
+from pyolib._wxwidgets import SpectrumDisplay
+
+def buildFileTree():
+    root = MODULES_PATH
+    directories = []
+    files = {}
+    for dir in sorted(os.listdir(MODULES_PATH)):
+        if not dir.startswith('.'):
+            directories.append(dir)
+            files[dir] = []
+            for f in sorted(os.listdir(os.path.join(root, dir))):
+                if not f.startswith('.'):
+                    files[dir].append(f)
+    return root, directories, files
 
 def setVar(var, value):
     vars.CeciliaVar[var] = value
@@ -47,23 +61,109 @@ def setJackParams(client = None, inPortName = None, outPortName = None):
 def setPlugins(x, pos):
     vars.CeciliaVar['plugins'][pos] = x
 
-def getDayTime():
-    time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())
-
 def getControlPanel():
     return getVar('interface').getControlPanel()
 
 def writeVarToDisk():
     vars.writeCeciliaPrefsToFile()
 
+def chooseColour(i, numlines):
+    def clip(x):
+        val = int(x*255)
+        if val < 0: val = 0
+        elif val > 255: val = 255
+        else: val = val
+        return val
+
+    def colour(i, numlines, sat, bright):
+        hue = (i / float(numlines)) * 315
+        segment = math.floor(hue / 60) % 6
+        fraction = hue / 60 - segment
+        t1 = bright * (1 - sat)
+        t2 = bright * (1 - (sat * fraction))
+        t3 = bright * (1 - (sat * (1 - fraction)))
+        if segment == 0:
+            r, g, b = bright, t3, t1
+        elif segment == 1:
+            r, g, b = t2, bright, t1
+        elif segment == 2:
+            r, g, b = t1, bright, t3
+        elif segment == 3:
+            r, g, b = t1, t2, bright
+        elif segment == 4:
+            r, g, b = t3, t1, bright
+        elif segment == 5:
+            r, g, b = bright, t1, t2
+        return wx.Colour(clip(r),clip(g),clip(b))
+
+    lineColour = colour(i, numlines, 1, 1)
+    midColour = colour(i, numlines, .5, .5)
+    knobColour = colour(i, numlines, .8, .5)
+    sliderColour = colour(i, numlines, .5, .75)
+
+    return [lineColour, midColour, knobColour, sliderColour]
+
+def chooseColourFromName(name):
+    def clip(x):
+        val = int(x*255)
+        if val < 0: val = 0
+        elif val > 255: val = 255
+        else: val = val
+        return val
+
+    def colour(name):
+        vals = COLOUR_CLASSES[name]
+        hue = vals[0]
+        bright = vals[1]
+        sat = vals[2]
+        segment = int(math.floor(hue / 60))
+        fraction = hue / 60 - segment
+        t1 = bright * (1 - sat)
+        t2 = bright * (1 - (sat * fraction))
+        t3 = bright * (1 - (sat * (1 - fraction)))
+        if segment == 0:
+            r, g, b = bright, t3, t1
+        elif segment == 1:
+            r, g, b = t2, bright, t1
+        elif segment == 2:
+            r, g, b = t1, bright, t3
+        elif segment == 3:
+            r, g, b = t1, t2, bright
+        elif segment == 4:
+            r, g, b = t3, t1, bright
+        elif segment == 5:
+            r, g, b = bright, t1, t2
+        return wx.Colour(clip(r),clip(g),clip(b))
+
+    lineColour = colour(name)    
+    midColour = colour(name)
+    knobColour = colour(name)
+    sliderColour = colour(name)
+
+    return [lineColour, midColour, knobColour, sliderColour]
+
 ###### Start / Stop / Drivers ######
 def startCeciliaSound(timer=True, rec=False):
     # Check if soundfile is loaded
     for key in getVar("userInputs").keys():
-        if not os.path.isfile(getVar("userInputs")[key]['path']):
-            showErrorDialog('"%s", no input sound file!' % getControlPanel().getCfileinFromName(key).label, 'Please load one...')
-            getControlPanel().getCfileinFromName(key).onLoadFile()
+        if getVar("userInputs")[key]['mode'] == 0:
+            if not os.path.isfile(getVar("userInputs")[key]['path']):
+                showErrorDialog('No input sound file!', 'In/Out panel, "%s" has no input sound file, please load one...' % getControlPanel().getCfileinFromName(key).label)
+                ret = getControlPanel().getCfileinFromName(key).onLoadFile()
+                if not ret:
+                    resetControls()
+                    getVar("grapher").toolbar.loadingMsg.SetForegroundColour(TITLE_BACK_COLOUR)
+                    wx.CallAfter(getVar("grapher").toolbar.loadingMsg.Refresh)
+                    return
     getControlPanel().resetMeter()
+    if getVar('spectrumFrame') != None:
+        try:
+            getVar('spectrumFrame')._destroy(None)
+        except:
+            getVar('interface').menubar.spectrumSwitch(False)
+            setVar('showSpectrum', 0)
+        finally:
+            setVar('spectrumFrame', None)
     getVar("audioServer").shutdown()
     getVar("audioServer").reinit()
     getVar("audioServer").boot()
@@ -74,6 +174,11 @@ def startCeciliaSound(timer=True, rec=False):
     getVar("grapher").toolbar.convertSlider.Hide()
     getVar("presetPanel").presetChoice.setEnable(False)
     getVar("audioServer").start(timer=timer, rec=rec)
+    if getVar('showSpectrum'):
+        f = SpectrumDisplay(None, getVar("audioServer").spectrum)
+        getVar("audioServer").spectrum._setViewFrame(f)
+        setVar('spectrumFrame', f)
+        f.Show()
     getVar("grapher").toolbar.loadingMsg.SetForegroundColour(TITLE_BACK_COLOUR)
     wx.CallAfter(getVar("grapher").toolbar.loadingMsg.Refresh)
 
@@ -95,11 +200,6 @@ def resetControls():
         if getControlPanel().tmpTotalTime != getVar("totalTime"):
             getControlPanel().setTotalTime(getControlPanel().tmpTotalTime, True)
         wx.CallAfter(getControlPanel().vuMeter.reset)
-    
-def audioServerIsRunning(state):
-    if state == 1:
-        if getVar("interface"):
-            getControlPanel().transportButtons.setPlay(True)
 
 def queryAudioMidiDrivers():
     inputs, inputIndexes, defaultInput, outputs, outputIndexes, defaultOutput, midiInputs, midiInputIndexes, defaultMidiInput = getVar("audioServer").getAvailableAudioMidiDrivers()
@@ -208,7 +308,7 @@ def loadPlayerEditor(app_type):
     
     path = ''
     dlg = wx.FileDialog(None, message="Choose a %s..." % app_type,
-                             defaultDir=os.path.expanduser('~'),
+                             defaultDir=ensureNFD(os.path.expanduser('~')),
                              wildcard=wildcard, style=wx.OPEN)
 
     if dlg.ShowModal() == wx.ID_OK:
@@ -229,8 +329,6 @@ def listenSoundfile(soundfile):
         loadPlayerEditor('soundfile player')
     if os.path.isfile(soundfile):
         app = getVar("soundfilePlayer")
-        #app = slashifyText(getVar("soundfilePlayer"))
-        #soundfile = slashifyText(soundfile)
         if getVar("systemPlatform")  == 'darwin':
             cmd = 'open -a "%s" "%s"' % (app, soundfile)
             Popen(cmd, shell=True)
@@ -252,8 +350,6 @@ def editSoundfile(soundfile):
         loadPlayerEditor('soundfile editor')
     if os.path.isfile(soundfile):
         app = getVar("soundfileEditor")
-        #app = slashifyText(getVar("soundfileEditor"))
-        #soundfile = slashifyText(soundfile)
         if getVar("systemPlatform")  == 'darwin':
             cmd = 'open -a "%s" "%s"' % (app ,soundfile)
             Popen(cmd, shell=True)
@@ -368,6 +464,7 @@ def loadPresetFromDict(preset):
         getVar("presetPanel").setLabel(preset)
         getVar("grapher").getPlotter().draw()
         setVar("currentModule", currentModule)
+        getVar("grapher").setTotalTime(getVar("totalTime"))
 
 def savePresetToDict(presetName):
     presetDict = dict()
@@ -429,6 +526,7 @@ def savePresetToDict(presetName):
 
 def completeUserInputsDict():
     for i in getVar("userInputs"):
+        getVar("userInputs")[i]['mode'] = 0
         if getVar("userInputs")[i]['type'] == 'csampler':
             cfilein = getControlPanel().getCfileinFromName(i)
             getVar("userInputs")[i]['off'+cfilein.getName()] = cfilein.getOffset()
@@ -604,11 +702,6 @@ def resetWidgetVariables():
    
 def parseInterfaceText():
     interfaceWidgets = getVar("interfaceWidgets")
-    setVar("moduleDescription", '')
-    for widget in interfaceWidgets:
-        if widget['type'] == 'cmodule':
-            setVar("moduleDescription", widget['label'])
-            break
     return interfaceWidgets
 
 def updateNchnlsDevices():
@@ -671,14 +764,6 @@ def interpolateLog(lines, size, listlen, yrange):
     return list
 
 ###### Utility functions #######
-def removeExtraSpace(text):
-    li = text.split(' ')
-    text = ''
-    for ele in li:
-        if ele != '':
-            text += ele + ' '
-    return text
-
 def removeDuplicates(seq):
    result = []
    for item in seq:
@@ -686,23 +771,6 @@ def removeDuplicates(seq):
            result.append(item)
    return result
 
-def convertWindowsPath(path):
-    if getVar("systemPlatform")  == 'win32':
-        # C'est peut-etre ca qui fuck les paths avec accents sous Windows
-        return os.path.normpath(path)
-    else:
-        return path
-
-def slashifyText(text):
-    charsToSlashify = [' ', '(', ')']
-    newText = ''
-    for i in range(len(text)):
-        char = text[i]
-        if char in charsToSlashify:
-            char = '\\' + char
-        newText += char
-    return newText
-
 def autoRename(path, index=0, wrap=False):
     if os.path.exists(path):
         file = ensureNFD(os.path.split(path)[1])
diff --git a/Resources/CeciliaMainFrame.py b/Resources/CeciliaMainFrame.py
index e2cea40..d9dbd43 100755
--- a/Resources/CeciliaMainFrame.py
+++ b/Resources/CeciliaMainFrame.py
@@ -19,7 +19,7 @@ along with Cecilia 5.  If not, see <http://www.gnu.org/licenses/>.
 """
 
 import wx
-import os, sys, time, random
+import os, time, random
 from constants import *
 import CeciliaLib
 import PreferencePanel 
@@ -36,10 +36,8 @@ class CeciliaMainFrame(wx.Frame):
         self.updateTitle()
         self.prefs = None
         self.time = 0
-        self.gauge = None
-        self.doc_frame = ManualFrame()
-        self.interfacePosition = wx.DefaultPosition
-        self.interfaceSize = wx.DefaultSize
+        self.api_doc_frame = ManualFrame(kind="api")
+        self.mod_doc_frame = ManualFrame(kind="modules")
 
     def setTime(self,curTime=0):
         self.time = curTime
@@ -86,19 +84,31 @@ class CeciliaMainFrame(wx.Frame):
         num_snds = len(cfileins[0].fileMenu.choice)
         dlg = wx.ProgressDialog("Batch processing on sound folder", "", maximum = num_snds, parent=self,
                                style = wx.PD_APP_MODAL | wx.PD_AUTO_HIDE | wx.PD_SMOOTH)
-        if CeciliaLib.getVar("systemPlatform") == "win32":
-            dlg.SetSize((600, 125))
-        else:
-            dlg.SetSize((600,100))
+        dlg.SetMinSize((600,-1))
+        dlg.SetClientSize((600,100))
         count = 0
+        totaltime = CeciliaLib.getVar("totalTime")
         for snd in cfileins[0].fileMenu.choice:
             cfileins[0].onSelectSound(-1, snd)
+            if CeciliaLib.getVar("useSoundDur"):
+                cfileins[0].setTotalTime()
             path, dump = os.path.split(cfileins[0].filePath)
             name, ext = os.path.splitext(snd)
-            if ext in [".wav", ".wave", ".WAV", ".WAVE", ".Wav", ".Wave"]:
+            lext = ext.lower()
+            if lext in [".wav", ".wave"]:
                 CeciliaLib.setVar('audioFileType', "wav")
-            else:
+            elif lext in [".aif", ".aiff", ".aifc"]:
                 CeciliaLib.setVar('audioFileType', "aif")
+            elif lext in [".ogg"]:
+                CeciliaLib.setVar('audioFileType', "ogg")
+            elif lext in [".flac"]:
+                CeciliaLib.setVar('audioFileType', "flac")
+            elif lext in [".au"]:
+                CeciliaLib.setVar('audioFileType', "au")
+            elif lext in [".sd2"]:
+                CeciliaLib.setVar('audioFileType', "sd2")
+            elif lext in [".caf"]:
+                CeciliaLib.setVar('audioFileType', "caf")
             if not os.path.isdir(os.path.join(path, folderName)):
                 os.mkdir(os.path.join(path, folderName))
             filename = os.path.join(path, folderName, "%s-%s%s" % (name, folderName, ext))
@@ -107,6 +117,10 @@ class CeciliaMainFrame(wx.Frame):
             CeciliaLib.getControlPanel().onBatchProcessing(filename)
             while (CeciliaLib.getVar("audioServer").isAudioServerRunning()):
                 time.sleep(.1)
+        if CeciliaLib.getVar("useSoundDur"):
+            CeciliaLib.getControlPanel().setTotalTime(totaltime)
+            CeciliaLib.getControlPanel().updateDurationSlider()
+
         dlg.Destroy()
         CeciliaLib.setVar('audioFileType', old_file_type)
 
@@ -123,10 +137,8 @@ class CeciliaMainFrame(wx.Frame):
         num_presets = len(presets)
         dlg = wx.ProgressDialog("Batch processing on preset sequence", "", maximum = num_presets, parent=self,
                                style = wx.PD_APP_MODAL | wx.PD_AUTO_HIDE | wx.PD_SMOOTH)
-        if CeciliaLib.getVar("systemPlatform") == "win32":
-            dlg.SetSize((600, 125))
-        else:
-            dlg.SetSize((600,100))
+        dlg.SetMinSize((600,-1))
+        dlg.SetClientSize((600,100))
         count = 0
         for preset in presets:
             CeciliaLib.loadPresetFromDict(preset)
@@ -156,31 +168,26 @@ class CeciliaMainFrame(wx.Frame):
         f.CenterOnScreen()
         f.Show()
 
-    def onSelectOutputFilename(self):
-        if CeciliaLib.getVar("audioFileType") == 'wav':
-            wildcard = "Wave file|*.wav;*.wave;*.WAV;*.WAVE;*.Wav;*.Wave|" \
-                       "All files|*.*"
-        else:
-            wildcard = "AIFF file|*.aif;*.aiff;*.aifc;*.AIF;*.AIFF;*.Aif;*.Aiff|" \
-                       "All files|*.*"
-        
-        file = CeciliaLib.saveFileDialog(self, wildcard, type='Save audio')
+    def onUseSoundDuration(self, evt):
+        CeciliaLib.setVar("useSoundDur", evt.GetInt())
+
+    def onSelectOutputFilename(self):        
+        file = CeciliaLib.saveFileDialog(self, AUDIO_FILE_WILDCARD, type='Save audio')
         if file != None:
             CeciliaLib.setVar("saveAudioFilePath", os.path.split(file)[0])
         return file
 
     def closeInterface(self):
         if CeciliaLib.getVar("interface"):
-            self.interfaceSize = CeciliaLib.getVar("interface").GetSize()
-            self.interfacePosition = CeciliaLib.getVar("interface").GetPosition()
             CeciliaLib.getVar("interface").onClose(None)
             CeciliaLib.setVar("interface", None)
 
     def newRecent(self, file, remove=False):
+        file = CeciliaLib.ensureNFD(file)
         filename = os.path.join(TMP_PATH,'.recent.txt')
         try:
             f = open(filename, "r")
-            lines = [line[:-1] for line in f.readlines()]
+            lines = [CeciliaLib.ensureNFD(line[:-1]) for line in f.readlines()]
             f.close()
         except:
             lines = []
@@ -213,8 +220,11 @@ class CeciliaMainFrame(wx.Frame):
             for item in self.menubar.openRecentMenu.GetMenuItems():
                 self.menubar.openRecentMenu.DeleteItem(item)
             for file in recentFiles:
-                self.menubar.openRecentMenu.Append(subId2, file)
-                subId2 += 1
+                try:
+                    self.menubar.openRecentMenu.Append(subId2, file)
+                    subId2 += 1
+                except:
+                    pass
 
     def onOpen(self, event, builtin=False):
         if isinstance(event, wx.CommandEvent):
@@ -251,7 +261,7 @@ class CeciliaMainFrame(wx.Frame):
             if filename in filedict[key]:
                 dirname = key
                 break
-        name = os.path.join(MODULES_PATH, dirname, filename)
+        name = os.path.join(CeciliaLib.ensureNFD(MODULES_PATH), dirname, filename)
         CeciliaLib.openCeciliaFile(self, name, True)
         self.updateTitle()
 
@@ -305,15 +315,14 @@ class CeciliaMainFrame(wx.Frame):
                 for key in CeciliaLib.getVar("userInputs").keys():
                     if CeciliaLib.getVar("userInputs")[key]['path'] != '':
                         snds.append(CeciliaLib.getVar("userInputs")[key]['path'])
-        self.closeInterface()
         if CeciliaLib.getVar("audioServer").isAudioServerRunning():
             CeciliaLib.stopCeciliaSound()
+        self.closeInterface()
         CeciliaLib.parseInterfaceText()
         title = os.path.split(CeciliaLib.getVar("currentCeciliaFile", unicode=True))[1]
         ceciliaInterface = CeciliaInterface.CeciliaInterface(None, title='Interface - %s' % title, mainFrame=self)
-        ceciliaInterface.SetSize(self.interfaceSize)
-        ceciliaInterface.SetPosition(self.interfacePosition)
-        ceciliaInterface.Show(True)
+        ceciliaInterface.SetSize(CeciliaLib.getVar("interfaceSize"))
+        ceciliaInterface.SetPosition(CeciliaLib.getVar("interfacePosition"))
         CeciliaLib.setVar("interface", ceciliaInterface)
         if CeciliaLib.getVar("presets") != {}:
             CeciliaLib.getVar("presetPanel").loadPresets()
@@ -322,8 +331,13 @@ class CeciliaMainFrame(wx.Frame):
                 if i >= len(snds):
                     break
                 cfilein.onLoadFile(snds[i])
-        wx.CallAfter(ceciliaInterface.OnSize, wx.PaintEvent(wx.ID_ANY))
 
+    def onShowSpectrum(self, event):
+        if event.GetInt():
+            CeciliaLib.setVar('showSpectrum', 1)
+        else:
+            CeciliaLib.setVar('showSpectrum', 0)
+            
     def onQuit(self, event):
         if not CeciliaLib.closeCeciliaFile(self):
             return
@@ -333,8 +347,16 @@ class CeciliaMainFrame(wx.Frame):
             pass
         if CeciliaLib.getVar("audioServer").isAudioServerRunning():
             CeciliaLib.getVar("audioServer").stop()
-            time.sleep(.1)
-        self.doc_frame.Destroy()
+            time.sleep(.2)
+        if CeciliaLib.getVar('spectrumFrame') != None:
+            try:
+                CeciliaLib.getVar('spectrumFrame')._destroy(None)
+            except:
+                pass
+            finally:
+                CeciliaLib.setVar('spectrumFrame', None)
+        self.api_doc_frame.Destroy()
+        self.mod_doc_frame.Destroy()
         self.closeInterface()
         CeciliaLib.writeVarToDisk()
         self.Destroy()
@@ -348,27 +370,10 @@ class CeciliaMainFrame(wx.Frame):
         about.Show()
 
     def onModuleAbout(self, evt):
-        Y = CeciliaLib.getVar("displaySize")[0][1]
-        info = CeciliaLib.getVar("currentModuleRef").__doc__
-        if info == None:
-            info = "No module's info yet..."
-        elif "DOCSTRING PLACEHOLDER" in info or info == "":
-            info = "No module's info yet..."
-        f = TextPopupFrame(self, info)
-        f.CenterOnScreen()
-        f.Show()
+        file = os.path.split(CeciliaLib.getVar("currentCeciliaFile"))[1]
+        self.mod_doc_frame.Center()
+        self.mod_doc_frame.openPage(file)
 
     def onDocFrame(self, evt):
-        self.doc_frame.Show()
-
-    def onUndo(self, evt):
-        pass
-
-    def onRedo(self, event):
-        pass
-
-    def onCopy(self, event):
-        pass
-
-    def onPaste(self, event):
-        pass
+        self.api_doc_frame.Center()
+        self.api_doc_frame.Show()
diff --git a/Resources/CeciliaPlot.py b/Resources/CeciliaPlot.py
index 450b77f..a9d37d6 100644
--- a/Resources/CeciliaPlot.py
+++ b/Resources/CeciliaPlot.py
@@ -91,7 +91,7 @@ Zooming controls with mouse (when enabled):
 
 import  string as _string
 import  time as _time
-import  wx
+import  wx, pdb
 import CeciliaLib
 from Widgets import CECTooltip
 from constants import *
@@ -229,7 +229,7 @@ class PolyLine(PolyPoints):
         """
         PolyPoints.__init__(self, points, attr)
 
-    def draw(self, dc, printerScale, coord= None):
+    def draw(self, gc, printerScale, coord= None):
         colour = self.attributes['colour']
         width = self.attributes['width'] * printerScale
         style= self.attributes['style']
@@ -237,14 +237,12 @@ class PolyLine(PolyPoints):
             colour = wx.NamedColour(colour)
         pen = wx.Pen(colour, width, style)
         pen.SetCap(wx.CAP_BUTT)
-        dc.SetPen(pen)
+        gc.SetPen(pen)
         if coord == None:
-            # dc.DrawLines(self.scaled)
-            pts = self.scaled
-            pts = [(pts[i][0], pts[i][1], pts[i+1][0], pts[i+1][1]) for i in range(len(pts)-1)]
-            dc.DrawLineList(pts)
+            if len(self.scaled) >= 2:
+                gc.DrawLines(self.scaled)
         else:
-            dc.DrawLines(coord) # draw legend line
+            gc.DrawLines(coord) # draw legend line
 
     def getSymExtent(self, printerScale):
         """Width and Height of Marker"""
@@ -306,13 +304,14 @@ class PolyMarker(PolyPoints):
                 - 'plus'
                 - 'bmp' ---> Cecilia 5 grapher marker
                 - 'bmpsel' ---> Cecilia 5 grapher selected marker
+                - 'none' ---> Cecilia 5 grapher non selected lines
         """
       
         PolyPoints.__init__(self, points, attr)
         self.circleBitmap = GetCircleBitmap(6, 6, "#000000", "#000000")
         self.circleBitmapSel = GetCircleBitmap(8, 8, "#EEEEEE", "#000000")
 
-    def draw(self, dc, printerScale, coord= None):
+    def draw(self, gc, printerScale, coord= None):
         colour = self.attributes['colour']
         width = self.attributes['width'] * printerScale
         size = self.attributes['size'] * printerScale
@@ -326,32 +325,55 @@ class PolyMarker(PolyPoints):
         if fillcolour and not isinstance(fillcolour, wx.Colour):
             fillcolour = wx.NamedColour(fillcolour)
 
-        dc.SetPen(wx.Pen(colour, width))
+        gc.SetPen(wx.Pen(colour, width))
         if fillcolour:
-            dc.SetBrush(wx.Brush(fillcolour,fillstyle))
+            gc.SetBrush(wx.Brush(fillcolour,fillstyle))
         else:
-            dc.SetBrush(wx.Brush(colour, fillstyle))
+            gc.SetBrush(wx.Brush(colour, fillstyle))
         if coord == None:
-            self._drawmarkers(dc, self.scaled, marker, size)
+            self._drawmarkers(gc, self.scaled, marker, size)
         else:
-            self._drawmarkers(dc, coord, marker, size) # draw legend marker
+            self._drawmarkers(gc, coord, marker, size) # draw legend marker
 
     def getSymExtent(self, printerScale):
         """Width and Height of Marker"""
         s= 5*self.attributes['size'] * printerScale
         return (s,s)
 
-    def _drawmarkers(self, dc, coords, marker, size=1):
+    def _drawmarkers(self, gc, coords, marker, size=1):
         f = eval('self._' + marker)
-        f(dc, coords, size)
-
-    def _bmp(self, dc, coords, size=1):
-        coords = coords - [3, 3]
-        [dc.DrawBitmapPoint(self.circleBitmap, pt, True) for pt in coords]
-
-    def _bmpsel(self, dc, coords, size=1):
-        coords = coords - [4, 4]
-        [dc.DrawBitmapPoint(self.circleBitmapSel, pt, True) for pt in coords]
+        f(gc, coords, size)
+
+    def _bmp(self, gc, coords, size=1):
+        path = gc.CreatePath()
+        path.AddCircle(0, 0, 3)
+        gc.PushState()
+        last = (0, 0)
+        for c in coords:
+            dx, dy = c[0] - last[0], c[1] - last[1]
+            gc.Translate(dx, dy)
+            gc.FillPath(path)
+            last = c
+        gc.PopState()
+
+    def _bmpsel(self, gc, coords, size=1):
+        path = gc.CreatePath()
+        path.AddCircle(0, 0, 3.5)
+        gc.PushState()
+        last = (0, 0)
+        for c in coords:
+            dx, dy = c[0] - last[0], c[1] - last[1]
+            gc.Translate(dx, dy)
+            gc.DrawPath(path)
+            last = c
+        gc.PopState()
+
+    def _none(self, gc, coords, size=1):
+        pass
+
+    ### Not used within Cecilia 5 ###
+    def _dot(self, dc, coords, size=1):
+        dc.DrawPointList(coords)
 
     def _circle(self, dc, coords, size=1):
         fact= 2.5*size
@@ -360,9 +382,6 @@ class PolyMarker(PolyPoints):
         rect[:,0:2]= coords-[fact,fact]
         dc.DrawEllipseList(rect.astype(_Numeric.Int32))
 
-    def _dot(self, dc, coords, size=1):
-        dc.DrawPointList(coords)
-
     def _square(self, dc, coords, size=1):
         fact= 2.5*size
         wh= 5.0*size
@@ -395,6 +414,7 @@ class PolyMarker(PolyPoints):
         for f in [[-fact,0,fact,0],[0,-fact,0,fact]]:
             lines= _Numeric.concatenate((coords,coords),axis=1)+f
             dc.DrawLineList(lines.astype(_Numeric.Int32))
+    #################################
 
 class PlotGraphics:
     """Container to hold PolyXXX objects and graph labels
@@ -463,10 +483,10 @@ class PlotGraphics:
         """Get the title at the top of graph"""
         return self.title
 
-    def draw(self, dc):
+    def draw(self, gc):
         for o in self.objects:
             #t=_time.clock()          # profile info
-            o.draw(dc, self.printerScale)
+            o.draw(gc, self.printerScale)
             #dt= _time.clock()-t
             #print o, "time=", dt
 
@@ -615,6 +635,7 @@ class PlotCanvas(wx.Panel):
         self._gridEnabled= False
         self._legendEnabled= False
         self._titleEnabled= True
+        self._clientSize = (0, 0)
         
         # Fonts
         self._fontCache = {}
@@ -1095,18 +1116,11 @@ class PlotCanvas(wx.Panel):
         dc - drawing context - doesn't have to be specified.    
         If it's not, the offscreen buffer is used
         """
-
-        if dc == None:
-            # sets new dc and clears it 
-            dc = wx.BufferedDC(wx.ClientDC(self.canvas), self._Buffer)
-            dc.Clear()
-            
-        dc.BeginDrawing()
-        # dc.Clear()
-        
-        # set font size for every thing but title and legend
-        dc.SetFont(self._getFont(self._fontSizeAxis))
-
+        if self._zoomed:
+            minX, minY= _Numeric.minimum( self._zoomCorner1, self._zoomCorner2)
+            maxX, maxY= _Numeric.maximum( self._zoomCorner1, self._zoomCorner2)
+            xAxis = (minX,maxX)
+            yAxis = (minY,maxY)
         # sizes axis to axis type, create lower left and upper right corners of plot
         if xAxis == None or yAxis == None:
             # One or both axis not specified in Draw
@@ -1125,6 +1139,17 @@ class PlotCanvas(wx.Panel):
 
         self.last_draw = (graphics, _Numeric.array(xAxis), _Numeric.array(yAxis))       # saves most recient values
 
+        if dc == None:
+            # sets new dc and clears it 
+            dc = wx.BufferedDC(wx.ClientDC(self.canvas), self._Buffer)
+            dc.Clear()
+            gc = wx.GraphicsContext_Create(dc)
+            
+        dc.BeginDrawing()
+        
+        # set font size for every thing but title and legend
+        dc.SetFont(self._getFont(self._fontSizeAxis))
+
         # Get ticks and textExtents for axis if required
         if self._xSpec is not 'none':
             xticks = self._xticks(xAxis[0], xAxis[1])
@@ -1212,7 +1237,7 @@ class PlotCanvas(wx.Panel):
         dc.SetClippingRegion(ptx-5,pty-5,rectWidth+10,rectHeight+10)
 
         # Draw the lines and markers
-        graphics.draw(dc)
+        graphics.draw(gc)
 
         # Draw position values on graph ------------------------------
         pos1,pos2 = self._onePoint2ClientCoord(self._posToDrawValues)
@@ -1234,7 +1259,7 @@ class PlotCanvas(wx.Panel):
         dc.EndDrawing()
 
         self._adjustScrollbars()
-        
+
     def Redraw(self, dc=None):
         """Redraw the existing plot."""
         if self.last_draw is not None:
@@ -1429,14 +1454,14 @@ class PlotCanvas(wx.Panel):
     def OnSize(self,event):
         # The Buffer init is done here, to make sure the buffer is always
         # the same size as the Window
-        Size  = self.canvas.GetClientSize()
-        Size.width = max(1, Size.width)
-        Size.height = max(1, Size.height)
+        size  = self.canvas.GetClientSize()
+        size.width = max(1, size.width)
+        size.height = max(1, size.height)
         
         # Make new offscreen bitmap: this bitmap will always have the
         # current drawing in it, so it can be used to save the image to
         # a file, or whatever.
-        self._Buffer = wx.EmptyBitmap(Size.width, Size.height)
+        self._Buffer = wx.EmptyBitmap(size.width, size.height)
         self._setSize()
 
         self.last_PointLabel = None        #reset pointLabel
@@ -1444,8 +1469,10 @@ class PlotCanvas(wx.Panel):
         if self.last_draw is None:
             self.Clear()
         else:
-            graphics, xSpec, ySpec = self.last_draw
-            self._Draw(graphics,xSpec,ySpec)
+            if self._clientSize != size:
+                self._clientSize = size
+                graphics, xSpec, ySpec = self.last_draw
+                self._Draw(graphics,xSpec,ySpec)
 
     def OnLeave(self, event):
         """Used to erase pointLabel when mouse outside window"""
@@ -1595,7 +1622,7 @@ class PlotCanvas(wx.Panel):
     def _getFont(self,size):
         """Take font size, adjusts if printing and returns wx.Font"""
         s = size*self.printerScale
-        font = wx.Font(s, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE)
+        font = wx.Font(s, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE)
         #of = self.GetFont()
         # Linux speed up to get font from cache rather than X font server
         #key = (int(s), of.GetFamily (), of.GetStyle (), of.GetWeight ())
@@ -1867,6 +1894,7 @@ class PlotCanvas(wx.Panel):
         self.SetShowScrollbars(needScrollbars)
         self._adjustingSB = False
 
+# CHECK: Remove all about printer...
 #-------------------------------------------------------------------------------
 # Used to layout the printer page
 
diff --git a/Resources/Cecilia_splash.png b/Resources/Cecilia_splash.png
index 81b80fd..56f60dc 100644
Binary files a/Resources/Cecilia_splash.png and b/Resources/Cecilia_splash.png differ
diff --git a/Resources/Control.py b/Resources/Control.py
index ecaf1b3..6caa71e 100644
--- a/Resources/Control.py
+++ b/Resources/Control.py
@@ -18,7 +18,7 @@ You should have received a copy of the GNU General Public License
 along with Cecilia 5.  If not, see <http://www.gnu.org/licenses/>.
 """
 
-import wx, os, time, math, sys
+import wx, os, math, copy
 from constants import *
 import CeciliaLib
 from Widgets import *
@@ -26,56 +26,14 @@ from subprocess import Popen
 from types import ListType
 from TogglePopup import SamplerPopup, SamplerToggle  
 from Plugins import *
-import  wx.lib.scrolledpanel as scrolled
-
-def powerOf2(value):
-    for i in range(24):
-        p2 = int(math.pow(2,(i+1)))
-        if p2 > value:
-            break
-    return p2
-
-def chooseColourFromName(name):
-    def clip(x):
-        val = int(x*255)
-        if val < 0: val = 0
-        elif val > 255: val = 255
-        else: val = val
-        return val
-
-    def colour(name):
-        vals = COLOUR_CLASSES[name]
-        hue = vals[0]
-        bright = vals[1]
-        sat = vals[2]
-        segment = int(math.floor(hue / 60))
-        fraction = hue / 60 - segment
-        t1 = bright * (1 - sat)
-        t2 = bright * (1 - (sat * fraction))
-        t3 = bright * (1 - (sat * (1 - fraction)))
-        if segment == 0:
-            r, g, b = bright, t3, t1
-        elif segment == 1:
-            r, g, b = t2, bright, t1
-        elif segment == 2:
-            r, g, b = t1, bright, t3
-        elif segment == 3:
-            r, g, b = t1, t2, bright
-        elif segment == 4:
-            r, g, b = t3, t1, bright
-        elif segment == 5:
-            r, g, b = bright, t1, t2
-        return wx.Colour(clip(r),clip(g),clip(b))
-
-    lineColour = colour(name)    
-    midColour = colour(name)
-    knobColour = colour(name)
-    sliderColour = colour(name)
-
-    return [lineColour, midColour, knobColour, sliderColour]
+import wx.lib.scrolledpanel as scrolled
            
 class CECControl(scrolled.ScrolledPanel):
-    def __init__(self, parent, id=-1, size=(-1,-1), style = wx.NO_BORDER):
+    if CeciliaLib.getVar("systemPlatform") == "win32":
+        BORDER = wx.DOUBLE_BORDER
+    else:
+        BORDER = wx.SIMPLE_BORDER
+    def __init__(self, parent, id=-1, size=(-1,-1), style = BORDER):
         scrolled.ScrolledPanel.__init__(self, parent, id, size=size, style=style)
         self.SetBackgroundColour(BACKGROUND_COLOUR)
         self.parent = parent
@@ -88,7 +46,7 @@ class CECControl(scrolled.ScrolledPanel):
         self.bounce_dlg = None
         self.tmpTotalTime = CeciliaLib.getVar("totalTime")
 
-        self.sizerMain = wx.FlexGridSizer(3,1)
+        self.sizerMain = wx.FlexGridSizer(0,1)
 
         self.sizerMain.Add(Separator(self, (230,1), colour=TITLE_BACK_COLOUR), 1, wx.EXPAND)
 
@@ -165,6 +123,8 @@ class CECControl(scrolled.ScrolledPanel):
 
         self.SetAutoLayout(1)
         self.SetupScrolling(scroll_x = False)
+        self.bagSizer.SetEmptyCellSize(self.plugins[0].GetSize())
+
 
         wx.CallAfter(self.updateOutputFormat)
 
@@ -172,7 +132,7 @@ class CECControl(scrolled.ScrolledPanel):
         win = wx.FindWindowAtPointer()
         if win != None:
             win = win.GetTopLevelParent()
-            if win not in [CeciliaLib.getVar("mainFrame"), CeciliaLib.getVar("interface")]:
+            if win not in [CeciliaLib.getVar("mainFrame"), CeciliaLib.getVar("interface"), CeciliaLib.getVar("spectrumFrame")]:
                 win.Raise()
         event.Skip()
 
@@ -195,19 +155,19 @@ class CECControl(scrolled.ScrolledPanel):
         choice = grapher.toolbar.getPopupChoice()
         choice.extend([knob.getLongLabel() for knob in knobs])
         grapher.toolbar.setPopupChoice(choice)
-        for knob in knobs:
+        for j, knob in enumerate(knobs):
             func = '0 %f 1 %f' % (knob.GetValue(), knob.GetValue())
             func = [float(v.replace('"', '')) for v in func.split()]
             func = [[func[i*2] * CeciliaLib.getVar("totalTime"), func[i*2+1]] for i in range(len(func) / 2)]
             mini = knob.getRange()[0]
             maxi = knob.getRange()[1]
-            colour = chooseColourFromName('red')
+            colour = CeciliaLib.chooseColourFromName('orange%d' % (j+1))
             label = knob.getLongLabel()
             log = knob.getLog()
             name = knob.getName()
             grapher.plotter.createLine(func, (mini, maxi), colour, label, log, name, 8192, knob, '')
             grapher.plotter.getData()[-1].setShow(0)
-            grapher.plotter.draw()
+        grapher.plotter.draw()
 
     def removeGrapherLines(self, plugin):
         knobs = [plugin.knob1, plugin.knob2, plugin.knob3]
@@ -221,30 +181,95 @@ class CECControl(scrolled.ScrolledPanel):
         grapher.toolbar.setPopupChoice(choice)
         grapher.plotter.removeLines(names)
 
+    def movePlugin(self, vpos, dir):
+        i1 = vpos
+        i2 = vpos + dir
+
+        grapher = CeciliaLib.getVar("grapher")
+        choice = grapher.toolbar.getPopupChoice()
+
+        for i in [i1, i2]:
+            if self.plugins[i].pluginName != 'None':
+                for label in self.plugins[i].getKnobLongLabels():
+                    choice.remove(label)
+       
+        tmp = copy.deepcopy(self.pluginsParams[i1])
+        self.pluginsParams[i1] = copy.deepcopy(self.pluginsParams[i2])
+        self.pluginsParams[i2] = tmp
+        self.plugins[i1], self.plugins[i2] = self.plugins[i2], self.plugins[i1]
+        self.plugins[i1].vpos = i1
+        self.plugins[i2].vpos = i2
+
+        for i in [i1, i2]:
+            self.plugins[i].setKnobLabels()
+            self.plugins[i].checkArrows()
+
+        graphData = CeciliaLib.getVar("grapher").getPlotter().getData()
+        
+        if self.plugins[i1].pluginName == 'None':
+            CeciliaLib.setPlugins(None, i1)
+        else:
+            oldKnobNames = self.plugins[i1].getKnobNames()
+            self.plugins[i1].setKnobNames()
+            for i, old in enumerate(oldKnobNames):
+                for line in graphData:
+                    if line.name == old:
+                        line.name = self.plugins[i1].getKnobNames()[i]
+                        break
+            CeciliaLib.setPlugins(self.plugins[i1], i1)
+            choice.extend(self.plugins[i1].getKnobLongLabels())
+            
+        if self.plugins[i2].pluginName == 'None':
+            CeciliaLib.setPlugins(None, i2)
+        else:
+            oldKnobNames = self.plugins[i2].getKnobNames()
+            self.plugins[i2].setKnobNames()
+            for i, old in enumerate(oldKnobNames):
+                for line in graphData:
+                    if line.name == old:
+                        line.name = self.plugins[i2].getKnobNames()[i]
+                        break
+            CeciliaLib.setPlugins(self.plugins[i2], i2)
+            choice.extend(self.plugins[i2].getKnobLongLabels())
+
+        grapher.toolbar.setPopupChoice(choice)
+
+        p1pos = self.bagSizer.GetItemPosition(self.plugins[i1])
+        p2pos = self.bagSizer.GetItemPosition(self.plugins[i2])
+        self.bagSizer.SetItemPosition(self.plugins[i1], (8,0))
+        self.bagSizer.SetItemPosition(self.plugins[i2], p1pos)
+        self.bagSizer.SetItemPosition(self.plugins[i1], p2pos)
+        self.plugins[i1].Refresh()
+        self.plugins[i2].Refresh()
+        self.bagSizer.Layout()
+        
+        if CeciliaLib.getVar("audioServer").isAudioServerRunning():
+            CeciliaLib.getVar("audioServer").movePlugin(vpos, dir)
+
     def replacePlugin(self, order, new):
-        self.pluginsParams[order][self.oldPlugins[order]] = self.plugins[order].getParams()
-        oldPlugin = self.plugins[order]
-        if self.oldPlugins[order] != 0:
-            self.removeGrapherLines(oldPlugin)
+        ind = PLUGINS_CHOICE.index(self.plugins[order].getName())
+        self.pluginsParams[order][ind] = self.plugins[order].getParams()
+        if ind != 0:
+            self.removeGrapherLines(self.plugins[order])
         plugin = self.pluginsDict[new](self.pluginsPanel, self.replacePlugin, order)
 
         if new != 'None':    
             CeciliaLib.setPlugins(plugin, order)
             self.createGrapherLines(plugin)
+            ind = PLUGINS_CHOICE.index(plugin.getName())
+            plugin.setParams(self.pluginsParams[order][ind])
         else:
             CeciliaLib.setPlugins(None, order)
+            plugin.setParams([0,0,0,0])
+            
+        itempos = self.bagSizer.GetItemPosition(self.plugins[order])
+        item = self.bagSizer.FindItem(self.plugins[order])
+        if item.IsWindow():
+            item.GetWindow().Destroy()
+        self.bagSizer.Add(plugin, itempos)
+        self.plugins[order] = plugin
+        self.bagSizer.Layout()
 
-        ind = PLUGINS_CHOICE.index(plugin.getName())
-        self.oldPlugins[order] = ind
-        plugin.setParams(self.pluginsParams[order][ind])
-        if CeciliaLib.getVar("systemPlatform")  == 'darwin':
-            self.pluginSizer.Replace(oldPlugin, plugin)
-        else:
-            item = self.pluginSizer.GetItem(oldPlugin)
-            item.DeleteWindows()
-            self.pluginSizer.Insert([2,8,13][order], plugin, 0) 
-        self.plugins[order] = plugin       
-        self.pluginsPanel.Layout()
         if CeciliaLib.getVar("audioServer").isAudioServerRunning():
             CeciliaLib.getVar("audioServer").setPlugin(order)
 
@@ -253,6 +278,9 @@ class CECControl(scrolled.ScrolledPanel):
             self.replacePlugin(key, pluginsDict[key][0])
             self.plugins[key].setParams(pluginsDict[key][1])
             self.plugins[key].setStates(pluginsDict[key][2])
+        for i in range(NUM_OF_PLUGINS):
+            if i not in pluginsDict.keys():
+                self.replacePlugin(i, "None")
 
     def updateTime(self, time):
         self.setTime(time)
@@ -287,8 +315,8 @@ class CECControl(scrolled.ScrolledPanel):
             inputTextPanel = wx.Panel(self.inputPanel, -1, style=wx.NO_BORDER)
             inputTextPanel.SetBackgroundColour(TITLE_BACK_COLOUR)
             inputTextSizer = wx.FlexGridSizer(1,1)
-            inputText = wx.StaticText(inputTextPanel, -1, 'INPUT ')
-            inputText.SetFont(wx.Font(SECTION_TITLE_FONT, wx.NORMAL, wx.NORMAL, wx.BOLD, face=FONT_FACE))
+            inputText = wx.StaticText(inputTextPanel, -1, 'INPUT')
+            inputText.SetFont(wx.Font(SECTION_TITLE_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, face=FONT_FACE))
             inputText.SetBackgroundColour(TITLE_BACK_COLOUR)
             inputText.SetForegroundColour(SECTION_TITLE_COLOUR)
             inputTextSizer.Add(inputText, 0, wx.ALIGN_RIGHT | wx.ALL, 3)
@@ -309,19 +337,20 @@ class CECControl(scrolled.ScrolledPanel):
     def createOutputPanel(self):
         self.outputPanel = wx.Panel(self, -1, style=wx.NO_BORDER)
         self.outputPanel.SetBackgroundColour(BACKGROUND_COLOUR)
-        outputSizer = wx.FlexGridSizer(5,1)
+        outputSizer = wx.FlexGridSizer(0,1)
         
         outputTextPanel = wx.Panel(self.outputPanel, -1, style=wx.NO_BORDER)
         outputTextPanel.SetBackgroundColour(TITLE_BACK_COLOUR)
         outputTextSizer = wx.FlexGridSizer(1,1)
-        outputText = wx.StaticText(outputTextPanel, -1, 'OUTPUT ')
-        outputText.SetFont(wx.Font(SECTION_TITLE_FONT, wx.NORMAL, wx.NORMAL, wx.BOLD, face=FONT_FACE))
+        outputText = wx.StaticText(outputTextPanel, -1, 'OUTPUT')
+        outputText.SetFont(wx.Font(SECTION_TITLE_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, face=FONT_FACE))
         outputText.SetBackgroundColour(TITLE_BACK_COLOUR)
         outputText.SetForegroundColour(SECTION_TITLE_COLOUR)
         outputTextSizer.Add(outputText, 0, wx.ALIGN_RIGHT | wx.ALL, 3)
         outputTextSizer.AddGrowableCol(0)
         outputTextPanel.SetSizer(outputTextSizer)
-        outputSizer.Add(outputTextPanel, 1, wx.EXPAND| wx.ALIGN_RIGHT | wx.ALL, 0)
+        outputSizer.Add(outputTextPanel, 1, wx.EXPAND | wx.ALIGN_RIGHT | wx.ALL, 0)
+        outputSizer.AddGrowableCol(0)
         
         outputSizer.AddSpacer((5,7))
               
@@ -332,19 +361,19 @@ class CECControl(scrolled.ScrolledPanel):
                                         colour=CONTROLLABEL_BACK_COLOUR, outFunction=self.onSelectOutputFilename)
         self.filenameLabel.SetToolTip(CECTooltip(TT_OUTPUT))
         self.filenameLabel.setItalicLabel('File name')
-        outLine1.Add(self.filenameLabel, 0, wx.RIGHT | wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL , 20)
+        outLine1.Add(self.filenameLabel, 0, wx.LEFT | wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL, 0)
         
-        outLine1.AddSpacer((8,1))
+        outLine1.AddSpacer((28,1))
  
         outToolbox = ToolBox(self.outputPanel, tools=['play','edit','recycle'],
                             outFunction=[self.listenSoundfile, self.editSoundfile, self.onReuseOutputFile])
-        outLine1.Add(outToolbox, 0,  wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.RIGHT | wx.TOP, 2)
+        outLine1.Add(outToolbox, 0,  wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 2)
         
-        outputSizer.Add(outLine1, 1, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.BOTTOM, 7)
+        outputSizer.Add(outLine1, 1, wx.EXPAND | wx.LEFT | wx.BOTTOM, 7)
         
         # Duration Static Text
         durationText = wx.StaticText(self.outputPanel, -1, 'Duration (sec) :')
-        durationText.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.BOLD, face=FONT_FACE))
+        durationText.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, face=FONT_FACE))
         durationText.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
         outputSizer.Add(durationText, 0, wx.ALIGN_LEFT | wx.LEFT, 9)
         
@@ -352,21 +381,23 @@ class CECControl(scrolled.ScrolledPanel):
         outputSizer.AddSpacer((3,1))
         self.durationSlider = ControlSlider(self.outputPanel,
                                                     0.01, 3600, CeciliaLib.getVar("defaultTotalTime"),
-                                                    size=(220,15), log=True, outFunction=self.setTotalTime)
+                                                    size=(220,15), log=True, 
+                                                    backColour=BACKGROUND_COLOUR, outFunction=self.setTotalTime)
         self.durationSlider.setSliderHeight(10)
         self.durationSlider.SetToolTip(CECTooltip(TT_DUR_SLIDER))
         outputSizer.Add(self.durationSlider, 0, wx.ALIGN_LEFT | wx.LEFT | wx.BOTTOM, 7)
         
         # Gain Static Text
         gainText = wx.StaticText(self.outputPanel, -1, 'Gain (dB) :')
-        gainText.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.BOLD, face=FONT_FACE))
+        gainText.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, face=FONT_FACE))
         gainText.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
         outputSizer.Add(gainText, 0, wx.ALIGN_LEFT | wx.LEFT, 9)
         
         # Gain Slider
         outputSizer.AddSpacer((3,1))
         self.gainSlider = ControlSlider(self.outputPanel, -48, 18, 0, size=(220,15),
-                                                log=False, outFunction=self.onChangeGain)
+                                                log=False, backColour=BACKGROUND_COLOUR,
+                                                outFunction=self.onChangeGain)
         self.gainSlider.setSliderHeight(10)
         self.gainSlider.SetToolTip(CECTooltip(TT_GAIN_SLIDER))
         CeciliaLib.setVar("gainSlider", self.gainSlider)
@@ -382,7 +413,7 @@ class CECControl(scrolled.ScrolledPanel):
         self.lineSizer = wx.BoxSizer(wx.HORIZONTAL)
         formatSizer = wx.BoxSizer(wx.VERTICAL)
         self.formatText = wx.StaticText(self.outputPanel, -1, 'Channels :')
-        self.formatText.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.BOLD, face=FONT_FACE))
+        self.formatText.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, face=FONT_FACE))
         self.formatText.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
         formatSizer.Add(self.formatText, 0, wx.ALIGN_LEFT | wx.LEFT, 2)
         
@@ -390,7 +421,7 @@ class CECControl(scrolled.ScrolledPanel):
                                         choice=[str(x) for x in range(1,37)], 
                                         init=str(CeciliaLib.getVar("nchnls")),
                                         outFunction=self.onFormatChange,
-                                        colour=CONTROLLABEL_BACK_COLOUR, columns=6)
+                                        colour=CONTROLLABEL_BACK_COLOUR)
         self.formatChoice.SetToolTip(CECTooltip(TT_CHANNELS))
         formatSizer.Add(self.formatChoice, 0, wx.ALIGN_LEFT | wx.TOP, 1)
         self.lineSizer.Add(formatSizer, 0, wx.ALIGN_LEFT | wx.RIGHT, 10)
@@ -398,7 +429,7 @@ class CECControl(scrolled.ScrolledPanel):
         # Peak
         peakSizer = wx.BoxSizer(wx.VERTICAL)
         self.peakText = wx.StaticText(self.outputPanel, -1, 'Peak :')
-        self.peakText.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.BOLD, face=FONT_FACE))
+        self.peakText.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, face=FONT_FACE))
         self.peakText.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
         peakSizer.Add(self.peakText, 0, wx.ALIGN_LEFT | wx.LEFT, 2)
         
@@ -421,23 +452,20 @@ class CECControl(scrolled.ScrolledPanel):
         self.outputPanel.SetSizer(outputSizer)
 
     def createPluginPanel(self):
-        self.oldPlugins = [0,0,0]
-        for i in range(3):
-            CeciliaLib.setPlugins(None, i)
-        self.pluginsParams = {  0: [[0,0,0,0], [.25,1,.5,1], [.25,.7,5000,1], [1,1000,1,1], [.5,.2,.5,1], [1000,1,-3,1], 
-                                [0,0,0,1], [-20,3,0,1], [-70,0.005,.01,1], [.7,.7,-12,1], [8,1,0,1], [100,5,1.1,1],
-                                [.1,0,0.5,1], [0.5,0.25,0.25,1], [-7,0,0.5,1], [80,2.01,0.33,1], [80,0.5,0.33,1]],
-                                1: [[0,0,0,0], [.25,1,.5,1], [.25,.7,5000,1], [1,1000,1,1], [.5,.2,.5,1], [1000,1,-3,1], 
+        self.oldPlugins = [0] * NUM_OF_PLUGINS
+        paramsTemplate = [[0,0,0,0], [.25,1,.5,1], [.25,.7,5000,1], [1,1000,1,1], [.5,.2,.5,1], [1000,1,-3,1], 
                                 [0,0,0,1], [-20,3,0,1], [-70,0.005,.01,1], [.7,.7,-12,1], [8,1,0,1], [100,5,1.1,1],
-                                [.1,0,0.5,1], [0.5,0.25,0.25,1], [-7,0,0.5,1], [80,2.01,0.33,1], [80,0.5,0.33,1]],
-                                2: [[0,0,0,0], [.25,1,.5,1], [.25,.7,5000,1], [1,1000,1,1], [.5,.2,.5,1], [1000,1,-3,1], 
-                                [0,0,0,1], [-20,3,0,1], [-70,0.005,.01,1], [.7,.7,-12,1], [8,1,0,1], [100,5,1.1,1],
-                                [.1,0,0.5,1], [0.5,0.25,0.25,1], [-7,0,0.5,1], [80,2.01,0.33,1], [80,0.5,0.33,1]]}
+                                [.1,0,0.5,1], [0.5,0.25,0.25,1], [-7,0,0.5,1], [80,2.01,0.33,1], [80,0.5,0.33,1],
+                                [0.025,0.5,1,2]]
+        self.pluginsParams = {}
+        for i in range(NUM_OF_PLUGINS):
+            CeciliaLib.setPlugins(None, i)
+            self.pluginsParams[i] = copy.deepcopy(paramsTemplate)
         self.pluginsDict = {'None': NonePlugin, 'Reverb': ReverbPlugin, 'WGVerb': WGReverbPlugin, 'Filter': FilterPlugin, 'Chorus': ChorusPlugin,
                             'Para EQ': EQPlugin, '3 Bands EQ': EQ3BPlugin, 'Compress': CompressPlugin, 'Gate': GatePlugin,
                             'Disto': DistoPlugin, 'AmpMod': AmpModPlugin, 'Phaser': PhaserPlugin, 'Delay': DelayPlugin,
                             'Flange': FlangePlugin, 'Harmonizer': HarmonizerPlugin, 'Resonators': ResonatorsPlugin,
-                            'DeadReson': DeadResonPlugin}
+                            'DeadReson': DeadResonPlugin, 'ChaosMod': ChaosModPlugin}
         self.pluginsPanel = wx.Panel(self, -1, style=wx.NO_BORDER)
         self.pluginsPanel.SetBackgroundColour(BACKGROUND_COLOUR)
         self.pluginSizer = wx.BoxSizer(wx.VERTICAL)
@@ -446,38 +474,27 @@ class CECControl(scrolled.ScrolledPanel):
         pluginTextPanel.SetBackgroundColour(TITLE_BACK_COLOUR)
         pluginTextSizer = wx.FlexGridSizer(1,1)
         pluginText = wx.StaticText(pluginTextPanel, -1, 'POST-PROCESSING ')
-        pluginText.SetFont(wx.Font(SECTION_TITLE_FONT, wx.NORMAL, wx.NORMAL, wx.BOLD, face=FONT_FACE))
+        pluginText.SetFont(wx.Font(SECTION_TITLE_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, face=FONT_FACE))
         pluginText.SetBackgroundColour(TITLE_BACK_COLOUR)
         pluginText.SetForegroundColour(SECTION_TITLE_COLOUR)
         pluginTextSizer.Add(pluginText, 0, wx.ALIGN_RIGHT | wx.ALL, 3)
         pluginTextSizer.AddGrowableCol(0)
         pluginTextPanel.SetSizer(pluginTextSizer)
-        self.pluginSizer.Add(pluginTextPanel, 1, wx.EXPAND| wx.ALIGN_RIGHT, 0) # 1
-
-        self.pluginSizer.AddSpacer((5,3)) # 2
+        self.pluginSizer.Add(pluginTextPanel, 0, wx.EXPAND| wx.ALIGN_RIGHT, 0)
 
-        plugin1 = NonePlugin(self.pluginsPanel, self.replacePlugin, 0)
-        self.pluginSizer.Add(plugin1, 0) # 3
+        self.pluginSizer.AddSpacer((5,3))
 
-        self.pluginSizer.AddSpacer((5,7)) # 4
-        self.pluginSizer.Add(Separator(self.pluginsPanel, (230,2), colour=BORDER_COLOUR), 0, wx.EXPAND) # 5
-        self.pluginSizer.AddSpacer((5,3)) # 6
+        self.bagSizer = wx.GridBagSizer(5, 0)
+        self.plugins = []
+        for i in range(NUM_OF_PLUGINS):
+            plugin = NonePlugin(self.pluginsPanel, self.replacePlugin, i)
+            self.bagSizer.Add(plugin, (i*2, 0))
+            #self.pluginSizer.AddSpacer((5,7))
+            self.bagSizer.Add(Separator(self.pluginsPanel, (230,2), colour=BORDER_COLOUR), (i*2+1, 0))
+            #self.pluginSizer.AddSpacer((5,3))
+            self.plugins.append(plugin)
 
-        plugin2 = NonePlugin(self.pluginsPanel, self.replacePlugin, 1)        
-        self.pluginSizer.Add(plugin2, 0) # 7
-
-        self.pluginSizer.AddSpacer((5,7)) # 8
-        self.pluginSizer.Add(Separator(self.pluginsPanel, (230,2), colour=BORDER_COLOUR), 0, wx.EXPAND) # 9
-        self.pluginSizer.AddSpacer((5,3)) # 10
-
-        plugin3 = NonePlugin(self.pluginsPanel, self.replacePlugin, 2)        
-        self.pluginSizer.Add(plugin3, 0) # 11
-
-        self.pluginSizer.AddSpacer((5,7)) # 12
-        self.pluginSizer.Add(Separator(self.pluginsPanel, (230,2), colour=BORDER_COLOUR), 0, wx.EXPAND) # 13
-        self.pluginSizer.AddSpacer((5,1)) # 14
-
-        self.plugins = [plugin1, plugin2, plugin3]
+        self.pluginSizer.Add(self.bagSizer, 1, wx.EXPAND, 0)
         self.pluginsPanel.SetSizer(self.pluginSizer)
 
     def getCfileinList(self):
@@ -582,14 +599,7 @@ class CECControl(scrolled.ScrolledPanel):
         self.updatePeak(0)
 
     def onSelectOutputFilename(self):
-        if CeciliaLib.getVar("audioFileType") == 'wav':
-            wildcard = "Wave file|*.wave;*.WAV;*.WAVE;*.Wav;*.Wave*.wav|" \
-                       "All files|*.*"
-        else:
-            wildcard = "AIFF file|*.aiff;*.aifc;*.AIF;*.AIFF;*.Aif;*.Aiff*.aif|" \
-                       "All files|*.*"
-
-        file = CeciliaLib.saveFileDialog(self, wildcard, type='Save audio')
+        file = CeciliaLib.saveFileDialog(self, AUDIO_FILE_WILDCARD, type='Save audio')
 
         if file != None:
             self.filenameLabel.setLabel(CeciliaLib.shortenName(os.path.split(file)[1],self.charNumForLabel))
@@ -606,7 +616,7 @@ class CECControl(scrolled.ScrolledPanel):
         w2, h2 = self.lineSizer.GetSize()
         self.lineSizer.SetDimension(7, y+h+10, w2, h2)
         self.Layout()
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def onFormatChange(self, idx, choice):
         nchnls = int(choice)
@@ -634,22 +644,7 @@ class CECControl(scrolled.ScrolledPanel):
         self.durationSlider.SetValue(CeciliaLib.getVar("totalTime"))
 
     def updateNchnls(self):
-        nchnls = CeciliaLib.getVar("nchnls")
-
-        if nchnls==1:
-            format = 'Mono'
-        elif nchnls==2:
-            format = 'Stereo'
-        elif nchnls==4:
-            format = 'Quad'
-        elif nchnls==6:
-            format = '5.1'
-        elif nchnls==8:
-            format = 'Octo'
-        else:
-            format = 'Custom...'
-
-        self.formatChoice.setStringSelection(format)
+        self.formatChoice.setStringSelection(str(CeciliaLib.getVar("nchnls")))
         self.updateOutputFormat()
 
     def onChangeGain(self, gain):
@@ -669,48 +664,53 @@ class CECControl(scrolled.ScrolledPanel):
     def getCfileinList(self):
         return self.cfileinList
 
-class Cfilein(wx.Panel):
-    def __init__(self, parent, id=-1, label='', size=(-1,-1), style = wx.NO_BORDER, name=''):   
+class CInputBase(wx.Panel):
+    def __init__(self, parent, id=-1, label='', size=(-1,-1), style=wx.NO_BORDER, name=''):
         wx.Panel.__init__(self, parent, id, size=size, style=style, name=name)
         self.SetBackgroundColour(BACKGROUND_COLOUR)
-        
+
+        self.frameOpen = False
+        self.samplerFrame = None
         self.label = label
         self.name = name
-        self.duration = None
-        self.chnls = None
-        self.type = None
-        self.samprate = None
-        self.bitrate = None       
+        self.duration = 0
+        self.chnls = 0
+        self.type = ''
+        self.samprate = 0
+        self.bitrate = 0       
         self.filePath = ''
         self.folderInfo = None
-        
+        self.mode = 0
+
         mainSizer = wx.FlexGridSizer(4,1)        
         mainSizer.AddSpacer((200,4))
-        
+
         # Static label for the popup menu
         line1 = wx.BoxSizer(wx.HORIZONTAL)
-        textLabel = wx.StaticText(self, -1, self.label)
-        textLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.BOLD, face=FONT_FACE))
+        textLabel = wx.StaticText(self, -1, self.label + ' :')
+        textLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, face=FONT_FACE))
         textLabel.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
-        line1.Add(textLabel,0,wx.ALL, 0)
-        
-        textDeuxPoints = wx.StaticText(self, -1, ' :')
-        textDeuxPoints.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.BOLD, face=FONT_FACE))
-        textDeuxPoints.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
-        line1.Add(textDeuxPoints,0,wx.ALL, 0)
-        
+        line1.Add(textLabel, 0, wx.LEFT, 2)
         mainSizer.Add(line1, 0, wx.LEFT, 8)
-        
+
         # Popup menu
         line2 = wx.BoxSizer(wx.HORIZONTAL)
+        line2.AddSpacer((2,-1))
         self.fileMenu = FolderPopup(self, path=None, init='', outFunction=self.onSelectSound,
                                     emptyFunction=self.onLoadFile, backColour=CONTROLLABEL_BACK_COLOUR, tooltip=TT_SEL_SOUND)
-                                   
-        line2.Add(self.fileMenu, 0, wx.ALIGN_CENTER | wx.RIGHT, 20)
-        line2.AddSpacer((8,5))
+        line2.Add(self.fileMenu, 0, wx.ALIGN_CENTER | wx.RIGHT, 6)
+        
+        self.inputBitmaps = [ICON_INPUT_1_FILE.GetBitmap(), 
+                            ICON_INPUT_2_LIVE.GetBitmap(), 
+                            ICON_INPUT_3_MIC.GetBitmap(), 
+                            ICON_INPUT_4_MIC_RECIRC.GetBitmap()]
+        self.modebutton = InputModeButton(self, 0, outFunction=self.onChangeMode)
+        line2.Add(self.modebutton, 0, wx.ALIGN_CENTER | wx.TOP, 2)
+
         self.toolbox = ToolBox(self, tools=['play','edit','open'],
                                outFunction=[self.listenSoundfile,self.editSoundfile, self.onShowSampler])
-        line2.Add(self.toolbox, 0, wx.ALIGN_CENTER | wx.LEFT, 2)
+        self.toolbox.setOpen(False)
+        line2.Add(self.toolbox,0,wx.ALIGN_CENTER | wx.TOP | wx.LEFT, 2)
         
         mainSizer.Add(line2, 1, wx.LEFT, 6)
         mainSizer.AddSpacer((5,2))
@@ -718,22 +718,31 @@ class Cfilein(wx.Panel):
         self.createSamplerFrame()
 
         self.SetSizer(mainSizer)
-        
+
         CeciliaLib.getVar("userInputs")[self.name] = dict()
-        CeciliaLib.getVar("userInputs")[self.name]['type'] = 'cfilein'
         CeciliaLib.getVar("userInputs")[self.name]['path'] = ''
 
-    def createSamplerFrame(self):
-        self.samplerFrame = CfileinFrame(self, self.name)
+    def enable(self, state):
+        self.toolbox.enable(state)
+
+    def onChangeMode(self, value):
+        if not CeciliaLib.getVar("audioServer").isAudioServerRunning():
+            self.mode = value
+            CeciliaLib.getVar("userInputs")[self.name]['mode'] = self.mode
+            self.processMode()
+
+    def getMode(self):
+        return self.mode
 
     def onShowSampler(self):
-        if self.samplerFrame.IsShown():
-            self.samplerFrame.Hide()
-        else:
-            pos = wx.GetMousePosition()
-            framepos = (pos[0]+10, pos[1]+20)
-            self.samplerFrame.SetPosition(framepos)
-            self.samplerFrame.Show()
+        if self.mode != 1:
+            if self.samplerFrame.IsShown():
+                self.samplerFrame.Hide()
+            else:
+                pos = wx.GetMousePosition()
+                framepos = (pos[0]+10, pos[1]+20)
+                self.samplerFrame.SetPosition(framepos)
+                self.samplerFrame.Show()
 
     def getDuration(self):
         return self.duration
@@ -742,50 +751,49 @@ class Cfilein(wx.Panel):
         if self.duration:
             CeciliaLib.getControlPanel().setTotalTime(self.duration)
             CeciliaLib.getControlPanel().updateDurationSlider()
-    
-    def onSelectSound(self, idx, file):
-        self.filePath = self.folderInfo[file]['path']
+
+    def reset(self):
+        self.fileMenu.reset()
+        self.filePath = ''
+        CeciliaLib.getVar("userInputs")[self.name]['path'] = self.filePath
+
+    def getSoundInfos(self, file):
+        file = CeciliaLib.ensureNFD(file)
+        self.filePath = CeciliaLib.ensureNFD(self.folderInfo[file]['path'])
         self.duration = self.folderInfo[file]['dur']
         self.chnls = self.folderInfo[file]['chnls']
         self.type = self.folderInfo[file]['type']
         self.samprate = self.folderInfo[file]['samprate']
         self.bitrate = self.folderInfo[file]['bitrate']
-        self.samplerFrame.offsetSlider.setEnable(True)
+        self.samplerFrame.offsetSlider.Enable()
         self.samplerFrame.offsetSlider.SetRange(0,self.duration)
         self.samplerFrame.offsetSlider.SetValue(self.getOffset())
         self.samplerFrame.update(path=self.filePath,
-                                             dur=self.duration,
-                                             type=self.type,
-                                             bitDepth=self.bitrate,
-                                             chanNum=self.chnls,
-                                             sampRate=self.samprate)    
-        
-        nsamps = self.samprate * self.duration
-        tableSize = powerOf2(nsamps)
-        fracPart = float(nsamps) / tableSize
-        CeciliaLib.getVar("userInputs")[self.name]['gensize%s' % self.name] = tableSize
+                                 dur=self.duration,
+                                 type=self.type,
+                                 bitDepth=self.bitrate,
+                                 chanNum=self.chnls,
+                                 sampRate=self.samprate)    
         CeciliaLib.getVar("userInputs")[self.name]['sr%s' % self.name] = self.samprate
         CeciliaLib.getVar("userInputs")[self.name]['dur%s' % self.name] = self.duration
         CeciliaLib.getVar("userInputs")[self.name]['nchnls%s' % self.name] = self.chnls
         CeciliaLib.getVar("userInputs")[self.name]['off%s' % self.name] = self.getOffset()
         CeciliaLib.getVar("userInputs")[self.name]['path'] = self.filePath
-    
-    def onLoadFile(self, filePath=''):
-        wildcard = "All files|*.*|" \
-                   "AIFF file|*.aif;*.aiff;*.aifc;*.AIF;*.AIFF;*.Aif;*.Aiff|"     \
-                   "Wave file|*.wav;*.wave;*.WAV;*.WAVE;*.Wav;*.Wave"
 
+    def onLoadFile(self, filePath=''):
         if filePath == '':        
-            path = CeciliaLib.openAudioFileDialog(self, wildcard, 
+            path = CeciliaLib.openAudioFileDialog(self, AUDIO_FILE_WILDCARD, 
                     defaultPath=CeciliaLib.getVar("openAudioFilePath", unicode=True))
         elif not os.path.isfile(filePath):
-            return
+            return False
         else:
             path = filePath
         
+        if path == None:
+            return False
         if not CeciliaLib.getVar("audioServer").validateAudioFile(path):
             CeciliaLib.showErrorDialog("Unable to retrieve sound infos", "There is something wrong with this file, please select another one.")
-            return
+            return False
 
         if path:
             self.updateMenuFromPath(path)
@@ -795,17 +803,15 @@ class Cfilein(wx.Panel):
             else:
                 lastfiles = []
             if path in lastfiles:
-                return
+                return True
             if len(lastfiles) >= 10:
                 lastfile = lastfiles[1:]
             lastfiles.append(path)
             lastfiles = ";".join(lastfiles)
             CeciliaLib.setVar("lastAudioFiles", lastfiles)
- 
-    def reset(self):
-        self.fileMenu.reset()
-        self.filePath = ''
-        CeciliaLib.getVar("userInputs")[self.name]['path'] = self.filePath
+            return True
+        else:
+            return False
 
     def updateMenuFromPath(self, path):
         if os.path.isfile(path):
@@ -833,16 +839,19 @@ class Cfilein(wx.Panel):
     
     def editSoundfile(self):
         CeciliaLib.editSoundfile(self.filePath)
-                
+
     def onOffsetSlider(self, value):
         CeciliaLib.getVar("userInputs")[self.name]['off%s' % self.name] = value
-        if self.duration != None:
+        if self.mode >= 2:
+            newMaxDur = value
+        elif self.duration != None:
             newMaxDur = self.duration - value
-            CeciliaLib.getVar("userInputs")[self.name]['dur%s' % self.name] = newMaxDur
-            try:
-                self.samplerFrame.loopOutSlider.setRange(0, newMaxDur)
-            except:
-                pass    
+        CeciliaLib.getVar("userInputs")[self.name]['dur%s' % self.name] = newMaxDur
+        try:
+            self.samplerFrame.loopInSlider.setRange(0, newMaxDur)
+            self.samplerFrame.loopOutSlider.setRange(0, newMaxDur)
+        except:
+            pass    
     
     def setOffset(self, value):
         CeciliaLib.getVar("userInputs")[self.name]['off%s' % self.name] = value
@@ -850,78 +859,75 @@ class Cfilein(wx.Panel):
         self.samplerFrame.offsetSlider.SetValue(value)
 
     def getOffset(self):
-        try:
-            off = CeciliaLib.getVar("userInputs")[self.name]['off%s' % self.name]
-        except:
-            off = self.samplerFrame.offsetSlider.GetValue()
-        return off
+        return self.samplerFrame.offsetSlider.GetValue()
 
     def getName(self):
         return self.name
-    
-class CSampler(Cfilein):
-    def __init__(self, parent, id=-1, label='', size=(-1,-1), style = wx.NO_BORDER, name=''):
-        
-        wx.Panel.__init__(self, parent, id, size=size, style=style, name=name)
-        self.SetBackgroundColour(BACKGROUND_COLOUR)
+
+    def getSamplerFrame(self):
+        return self.samplerFrame
+
+class Cfilein(CInputBase):
+    def __init__(self, parent, id=-1, label='', size=(-1,-1), style = wx.NO_BORDER, name=''):   
+        CInputBase.__init__(self, parent, id, label=label, size=size, style=style, name=name)
+        CeciliaLib.getVar("userInputs")[self.name]['type'] = 'cfilein'
         
-        self.frameOpen = False
-        self.samplerFrame = None        
-        self.folderInfo = None
-        self.label = label
-        self.name = name
-        self.duration = 0.
-        self.chnls = 0
+    def processMode(self):
+        if self.mode in [1,3]:
+            self.mode = (self.mode + 1) % 4
+            self.modebutton.setValue(self.mode)
+            CeciliaLib.getVar("userInputs")[self.name]['mode'] = self.mode
+        if self.mode == 0:
+            self.fileMenu.setEnable(True)
+            self.samplerFrame.textOffset.SetLabel('Offset :')
+            self.samplerFrame.offsetSlider.SetValue(0)
+            self.samplerFrame.liveInputHeader(False)
+        elif self.mode == 2:
+            self.fileMenu.setEnable(False)
+            self.samplerFrame.textOffset.SetLabel('Table Length (sec) :')
+            self.samplerFrame.offsetSlider.setEnable(True)
+            self.samplerFrame.offsetSlider.SetValue(5)
+            self.samplerFrame.liveInputHeader(True)
+
+    def createSamplerFrame(self):
+        self.samplerFrame = CfileinFrame(self, self.name)
+
+    def onSelectSound(self, idx, file):
+        self.getSoundInfos(file)
+
+class CSampler(CInputBase):
+    def __init__(self, parent, id=-1, label='', size=(-1,-1), style = wx.NO_BORDER, name=''):
+        CInputBase.__init__(self, parent, id, label=label, size=size, style=style, name=name)
+
         self.outputChnls = 1
         self.gainMod = None
         self.transMod = None
         self.startPos = None
-        self.type = ''
-        self.samprate = 0
-        self.bitrate = 0
-        self.filePath = ''
-        
-        mainSizer = wx.FlexGridSizer(4,1)
-        mainSizer.AddSpacer((200,4))
-        
-        # Static label for the popup menu
-        line1 = wx.BoxSizer(wx.HORIZONTAL)
-        textLabel = wx.StaticText(self, -1, self.label)
-        textLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.BOLD, face=FONT_FACE))
-        textLabel.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
-        line1.Add(textLabel,0,wx.ALL, 0)
-        
-        textDeuxPoints = wx.StaticText(self, -1, ' :')
-        textDeuxPoints.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.BOLD, face=FONT_FACE))
-        textDeuxPoints.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
-        line1.Add(textDeuxPoints,0,wx.ALL, 0)
-        
-        mainSizer.Add(line1, 0, wx.LEFT, 8)
-        
-        # Popup menu
-        line2 = wx.BoxSizer(wx.HORIZONTAL)
-        self.fileMenu = FolderPopup(self, path=None, init='', outFunction=self.onSelectSound,
-                                    emptyFunction=self.onLoadFile, backColour=CONTROLLABEL_BACK_COLOUR, tooltip=TT_SEL_SOUND)
-        line2.Add(self.fileMenu, 0, wx.ALIGN_CENTER | wx.RIGHT, 20)
-        line2.AddSpacer((8,5))
-
-        self.toolbox = ToolBox(self, tools=['play','edit','open'],
-                               outFunction=[self.listenSoundfile,self.editSoundfile, self.onShowSampler],
-                               openSampler=True)
-        self.toolbox.setOpen(False)
-        line2.Add(self.toolbox,0,wx.ALIGN_CENTER | wx.TOP | wx.LEFT, 2)
-        
-        mainSizer.Add(line2, 1, wx.LEFT, 6)
-        mainSizer.AddSpacer((5,2))
-
-        self.createSamplerFrame()
-
-        self.SetSizer(mainSizer)
-        
-        CeciliaLib.getVar("userInputs")[self.name] = dict()
+       
         CeciliaLib.getVar("userInputs")[self.name]['type'] = 'csampler'
-        CeciliaLib.getVar("userInputs")[self.name]['path'] = ''
         
+    def processMode(self):
+        grapher = CeciliaLib.getVar('grapher')
+        if self.mode == 0:
+            self.fileMenu.setEnable(True)
+            grapher.setSamplerLineStates(self.name, True)
+            self.samplerFrame.textOffset.SetLabel('Offset :')
+            self.samplerFrame.offsetSlider.SetValue(0)
+            self.samplerFrame.liveInputHeader(False)
+        elif self.mode == 1:
+            self.fileMenu.setEnable(False)
+            grapher.setSamplerLineStates(self.name, False)
+            if self.samplerFrame.IsShown():
+                self.samplerFrame.Hide()
+                self.toolbox.setOpen(False)
+        else:
+            grapher.setSamplerLineStates(self.name, True)
+            self.samplerFrame.textOffset.SetLabel('Table Length (sec) :')
+            self.samplerFrame.offsetSlider.Enable()
+            self.samplerFrame.offsetSlider.SetValue(5)
+            self.samplerFrame.loopInSlider.setValue(0)
+            self.samplerFrame.loopOutSlider.setValue(5)
+            self.samplerFrame.liveInputHeader(True, self.mode)
 
     def setOutputChnls(self, chnls):
         self.outputChnls = chnls
@@ -931,43 +937,9 @@ class CSampler(Cfilein):
 
     def createSamplerFrame(self):
         self.samplerFrame = SamplerFrame(self, self.name)
-        
-    def onShowSampler(self):
-        if self.samplerFrame.IsShown():
-            self.samplerFrame.Hide()
-        else:
-            pos = wx.GetMousePosition()
-            framepos = (pos[0]+10, pos[1]+20)
-            self.samplerFrame.SetPosition(framepos)
-            self.samplerFrame.Show()
 
     def onSelectSound(self, idx, file):
-        file = CeciliaLib.ensureNFD(file)
-        self.filePath = CeciliaLib.ensureNFD(self.folderInfo[file]['path'])
-        self.duration = self.folderInfo[file]['dur']
-        self.chnls = self.folderInfo[file]['chnls']
-        self.type = self.folderInfo[file]['type']
-        self.samprate = self.folderInfo[file]['samprate']
-        self.bitrate = self.folderInfo[file]['bitrate']
-        self.samplerFrame.offsetSlider.setEnable(True)
-        self.samplerFrame.offsetSlider.SetRange(0,self.duration)
-        self.samplerFrame.offsetSlider.SetValue(self.getOffset())
-        self.samplerFrame.update(path=self.filePath,
-                                             dur=self.duration,
-                                             type=self.type,
-                                             bitDepth=self.bitrate,
-                                             chanNum=self.chnls,
-                                             sampRate=self.samprate)    
-    
-        nsamps = self.samprate * self.duration
-        tableSize = powerOf2(nsamps)
-        fracPart = float(nsamps) / tableSize
-        CeciliaLib.getVar("userInputs")[self.name]['gensize%s' % self.name] = tableSize
-        CeciliaLib.getVar("userInputs")[self.name]['sr%s' % self.name] = self.samprate
-        CeciliaLib.getVar("userInputs")[self.name]['dur%s' % self.name] = self.duration
-        CeciliaLib.getVar("userInputs")[self.name]['nchnls%s' % self.name] = self.chnls
-        CeciliaLib.getVar("userInputs")[self.name]['off%s' % self.name] = self.getOffset()
-        CeciliaLib.getVar("userInputs")[self.name]['path'] = self.filePath
+        self.getSoundInfos(file)
 
         for line in CeciliaLib.getVar("grapher").plotter.getData():
             if line.getName() == self.samplerFrame.loopInSlider.getCName() or line.getName() == self.samplerFrame.loopOutSlider.getCName():
@@ -987,10 +959,7 @@ class CSampler(Cfilein):
         info['transp'] = self.samplerFrame.getTransp()
         info['xfadeshape'] = self.samplerFrame.getXfadeShape()
         return info
-    
-    def getSamplerFrame(self):
-        return self.samplerFrame
-    
+
     def getSamplerSliders(self):
         return self.getSamplerFrame().sliderlist
 
@@ -1000,12 +969,8 @@ class CfileinFrame(wx.Frame):
         wx.Frame.__init__(self, parent, title='', pos=pos, style=style)
         self.parent = parent
         self.name = name
-        
-        if wx.Platform == '__WXGTK__':
-            self.Bind(wx.EVT_WINDOW_CREATE, self.SetRoundShape)
-        else:
-            self.SetRoundShape()
-            
+        self.SetClientSize((385, 143))
+
         panel = wx.Panel(self, -1)
         w, h = self.GetSize()
         panel.SetBackgroundColour(BACKGROUND_COLOUR)
@@ -1029,24 +994,24 @@ class CfileinFrame(wx.Frame):
         # Static label for the offset slider
         line3 = wx.BoxSizer(wx.HORIZONTAL)
         textLabel2 = wx.StaticText(self, -1, self.parent.label)
-        textLabel2.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        textLabel2.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         textLabel2.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
         textLabel2.SetBackgroundColour(BACKGROUND_COLOUR)
         line3.Add(textLabel2,0,wx.ALL, 0)
         
-        textOffset = wx.StaticText(self, -1, ' Offset :')
-        textOffset.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
-        textOffset.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
-        textOffset.SetBackgroundColour(BACKGROUND_COLOUR)
-        line3.Add(textOffset,0,wx.ALL, 0)
+        self.textOffset = wx.StaticText(self, -1, ' Offset :')
+        self.textOffset.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
+        self.textOffset.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
+        self.textOffset.SetBackgroundColour(BACKGROUND_COLOUR)
+        line3.Add(self.textOffset,0,wx.ALL, 0)
         
         box.Add(line3, 0, wx.LEFT, 20)
               
         # Offset slider
         self.offsetSlider = ControlSlider(self, minvalue=0, maxvalue=100, size=(222,15), init=0,
-                                          outFunction=self.parent.onOffsetSlider, backColour=POPUP_BACK_COLOUR)
+                                          outFunction=self.parent.onOffsetSlider, backColour=BACKGROUND_COLOUR)
         self.offsetSlider.setSliderHeight(10)
-        self.offsetSlider.setEnable(False)
+        self.offsetSlider.Disable()
         box.Add(self.offsetSlider, 1, wx.EXPAND | wx.LEFT | wx.RIGHT, 20)
 
         box.AddSpacer((200,10))
@@ -1091,27 +1056,26 @@ class CfileinFrame(wx.Frame):
         header = '%s\n' % CeciliaLib.shortenName(self.path,48)
         header += '%0.2f sec - %s - %s - %d ch. - %2.1fkHz' % (self.dur, self.type, self.bitDepth, self.chanNum, self.sampRate)
         return header
-    
-    def SetRoundShape(self, event=None):
-        self.SetShape(GetRoundShape(385, 143, 1))
+
+    def liveInputHeader(self, yes=True):
+        if yes:
+            self.title.setLabel("Audio table will be filled with live input.")
+        else:
+            self.title.setLabel("")
 
 class SamplerFrame(wx.Frame):
-    def __init__(self, parent, name, pos=wx.DefaultPosition, size=(385, 290)):
+    def __init__(self, parent, name, pos=wx.DefaultPosition, size=(390, 295)):
         style = ( wx.CLIP_CHILDREN | wx.FRAME_NO_TASKBAR | wx.FRAME_SHAPED | wx.NO_BORDER | wx.FRAME_FLOAT_ON_PARENT)
         wx.Frame.__init__(self, parent, title='', pos=pos, style=style)
         self.parent = parent
+        self.SetClientSize(size)
         self.size = size
         self.name = name
-        
-        if wx.Platform == '__WXGTK__':
-            self.Bind(wx.EVT_WINDOW_CREATE, self.SetRoundShape)
-        else:
-            self.SetRoundShape()
-            
-        self.loopList = ['Off', 'Forward', 'Backward', 'Back & Forth']
+
+        self.loopList = ['Off', 'Forward', 'Backward', 'Back and Forth']
             
         panel = wx.Panel(self, -1)
-        w, h = size #self.GetSize()
+        w, h = size
         panel.SetBackgroundColour(BACKGROUND_COLOUR)
         box = wx.BoxSizer(wx.VERTICAL)
         
@@ -1122,16 +1086,16 @@ class SamplerFrame(wx.Frame):
         # Static label for the offset slider
         line3 = wx.BoxSizer(wx.HORIZONTAL)
         textLabel2 = wx.StaticText(panel, -1, self.parent.label)
-        textLabel2.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        textLabel2.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         textLabel2.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
         textLabel2.SetBackgroundColour(BACKGROUND_COLOUR)
         line3.Add(textLabel2,0,wx.ALL, 0)
         
-        textOffset = wx.StaticText(panel, -1, ' Offset :')
-        textOffset.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
-        textOffset.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
-        textOffset.SetBackgroundColour(BACKGROUND_COLOUR)
-        line3.Add(textOffset,0,wx.ALL, 0)
+        self.textOffset = wx.StaticText(panel, -1, ' Offset :')
+        self.textOffset.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
+        self.textOffset.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
+        self.textOffset.SetBackgroundColour(BACKGROUND_COLOUR)
+        line3.Add(self.textOffset,0,wx.ALL, 0)
         
         box.Add(line3, 0, wx.LEFT, 20)
         
@@ -1140,10 +1104,10 @@ class SamplerFrame(wx.Frame):
         # Offset slider
         offBox = wx.BoxSizer(wx.HORIZONTAL)
         self.offsetSlider = ControlSlider(panel, minvalue=0, maxvalue=100, size=(345,15), init=0,
-                                          outFunction=self.parent.onOffsetSlider, backColour=POPUP_BACK_COLOUR)
+                                          outFunction=self.parent.onOffsetSlider, backColour=BACKGROUND_COLOUR)
         self.offsetSlider.SetToolTip(CECTooltip(TT_SAMPLER_OFFSET))                                  
         self.offsetSlider.setSliderHeight(10)
-        self.offsetSlider.setEnable(False)
+        self.offsetSlider.Disable()
         offBox.Add(self.offsetSlider, 1, wx.EXPAND | wx.LEFT | wx.RIGHT, 20)
         box.Add(offBox)
 
@@ -1152,22 +1116,23 @@ class SamplerFrame(wx.Frame):
         #Loop type + toolbox
         loopBox = wx.FlexGridSizer(1,8,5,5)
         loopLabel = wx.StaticText(panel, -1, "Loop")
-        loopLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        loopLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         loopLabel.SetForegroundColour("#FFFFFF")
         loopBox.Add(loopLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 3)
         self.loopMenu = SamplerPopup(panel, self.loopList, self.loopList[1], self.name, outFunction=self.handleLoopMode)
+        self.loopMenu.popup.setBackColour(GREY_COLOUR)
         self.loopMenu.popup.SetToolTip(CECTooltip(TT_SAMPLER_LOOP))                                  
         loopBox.Add(self.loopMenu.popup, 0, wx.ALIGN_CENTER_VERTICAL)
 
         startLabel = wx.StaticText(panel, -1, "Start from loop")
-        startLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        startLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         startLabel.SetForegroundColour("#FFFFFF")
         loopBox.Add(startLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 5)
         self.startToggle = SamplerToggle(panel, 0, self.name)
         self.startToggle.toggle.SetToolTip(CECTooltip(TT_SAMPLER_START))                                  
         loopBox.Add(self.startToggle.toggle, 0, wx.ALIGN_CENTER_VERTICAL)
         xfadeLabel = wx.StaticText(panel, -1, "Xfade")
-        xfadeLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        xfadeLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         xfadeLabel.SetForegroundColour("#FFFFFF")
         loopBox.Add(xfadeLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 5)
         self.xfadeSwitcher = XfadeSwitcher(panel, 0, outFunction=self.handleXfadeSwitch)
@@ -1241,7 +1206,6 @@ class SamplerFrame(wx.Frame):
         self.title.Bind(wx.EVT_LEAVE_WINDOW, self.OnLooseFocus)
 
         panel.SetSizerAndFit(box)
-        self.SetSize(panel.GetSize())
         self.Show(False)
 
     def OnLooseFocus(self, event):
@@ -1277,10 +1241,15 @@ class SamplerFrame(wx.Frame):
         header = '%s\n' % CeciliaLib.shortenName(self.path,48)
         header += '%0.2f sec - %s - %s - %d ch. - %2.1fkHz' % (self.dur, self.type, self.bitDepth, self.chanNum, self.sampRate)
         return header
-    
-    def SetRoundShape(self, event=None):
-        w, h = self.size
-        self.SetShape(GetRoundShape(w, h, 1))
+
+    def liveInputHeader(self, yes=True, mode=2):
+        if yes:
+            if mode == 2:
+                self.title.setLabel("Audio table will be filled with live input.")
+            else:
+                self.title.setLabel("Audio table (double buffered) will be continuously filled with live input.")
+        else:
+            self.title.setLabel("")
 
     def handleXfadeSwitch(self, value):
         if CeciliaLib.getVar("currentModule") != None:
@@ -1293,8 +1262,14 @@ class SamplerFrame(wx.Frame):
         return self.xfadeSwitcher.getValue()
         
     def handleLoopMode(self, value):
-        if CeciliaLib.getVar("currentModule") != None:
-            CeciliaLib.getVar("currentModule")._samplers[self.name].setLoopMode(value)
+        """
+        Removed real-time loop mode switching until the bug with Looper object is resolved. 
+        Something to do with reset of the pointer when start and dur are not 0 and max.
+        -belangeo
+        """
+        pass
+        #if CeciliaLib.getVar("currentModule") != None:
+        #    CeciliaLib.getVar("currentModule")._samplers[self.name].setLoopMode(value)
         
     def setLoopMode(self, index):
         self.loopMenu.popup.setByIndex(index)
@@ -1315,9 +1290,27 @@ class SamplerFrame(wx.Frame):
     def setLoopX(self, values):
         self.loopXSlider.setValue(values[0])
         self.loopXSlider.setPlay(values[1])
+        if len(values) > 3:
+            self.loopXSlider.setMidiCtl(values[4])
+            self.loopXSlider.setMidiChannel(values[5])
+            if values[6] != None:
+                self.loopXSlider.setOpenSndCtrl("%d:%s" % (values[6][0], values[6][1]))
+            else:
+                self.loopXSlider.setOpenSndCtrl(None)
+            if values[7] != None:
+                self.loopXSlider.setOSCOut("%s:%d:%s" % (values[7][0], values[7][1], values[7][2]))
+            else:
+                self.loopXSlider.setOSCOut(None)
+        else:
+            self.loopXSlider.setMidiCtl(None)
+            self.loopXSlider.setMidiChannel(1)
+            self.loopXSlider.setOpenSndCtrl(None)
+            self.loopXSlider.setOSCOut(None)
         
     def getLoopX(self):
-        return [self.loopXSlider.getValue(), self.loopXSlider.getPlay(), self.loopXSlider.getRec()] 
+        return [self.loopXSlider.getValue(), self.loopXSlider.getPlay(), self.loopXSlider.getRec(),
+                self.loopXSlider.getWithMidi(), self.loopXSlider.getMidiCtl(), self.loopXSlider.getMidiChannel(),
+                self.loopXSlider.getOpenSndCtrl(), self.loopXSlider.getOSCOut()]
 
     def handleLoopIn(self, value):
         if CeciliaLib.getVar("currentModule") != None:
@@ -1326,9 +1319,29 @@ class SamplerFrame(wx.Frame):
     def setLoopIn(self, values):
         self.loopInSlider.setValue(values[0])
         self.loopInSlider.setPlay(values[1])
-        
+        if len(values) > 3:
+            self.loopInSlider.setMidiCtl(values[4])
+            self.loopInSlider.setMidiChannel(values[5])
+            self.loopInSlider.slider.SetRange(values[6], values[7])
+            if values[8] != None:
+                self.loopInSlider.setOpenSndCtrl("%d:%s" % (values[8][0], values[8][1]))
+            else:
+                self.loopInSlider.setOpenSndCtrl(None)
+            if values[9] != None:
+                self.loopInSlider.setOSCOut("%s:%d:%s" % (values[9][0], values[9][1], values[9][2]))
+            else:
+                self.loopInSlider.setOSCOut(None)
+        else:
+            self.loopInSlider.setMidiCtl(None)
+            self.loopInSlider.setMidiChannel(1)
+            self.loopInSlider.setOpenSndCtrl(None)
+            self.loopInSlider.setOSCOut(None)
+
     def getLoopIn(self):
-        return [self.loopInSlider.getValue(), self.loopInSlider.getPlay(), self.loopInSlider.getRec()]
+        return [self.loopInSlider.getValue(), self.loopInSlider.getPlay(), self.loopInSlider.getRec(), 
+                self.loopInSlider.getWithMidi(), self.loopInSlider.getMidiCtl(), self.loopInSlider.getMidiChannel(),
+                self.loopInSlider.slider.getMinValue(), self.loopInSlider.slider.getMaxValue(),
+                self.loopInSlider.getOpenSndCtrl(), self.loopInSlider.getOSCOut()]
 
     def handleLoopOut(self, value):
         if CeciliaLib.getVar("currentModule") != None:
@@ -1337,9 +1350,29 @@ class SamplerFrame(wx.Frame):
     def setLoopOut(self, values):
         self.loopOutSlider.setValue(values[0])
         self.loopOutSlider.setPlay(values[1])
+        if len(values) > 3:
+            self.loopOutSlider.setMidiCtl(values[4])
+            self.loopOutSlider.setMidiChannel(values[5])
+            self.loopOutSlider.slider.SetRange(values[6], values[7])
+            if values[8] != None:
+                self.loopOutSlider.setOpenSndCtrl("%d:%s" % (values[8][0], values[8][1]))
+            else:
+                self.loopOutSlider.setOpenSndCtrl(None)
+            if values[9] != None:
+                self.loopOutSlider.setOSCOut("%s:%d:%s" % (values[9][0], values[9][1], values[9][2]))
+            else:
+                self.loopOutSlider.setOSCOut(None)
+        else:
+            self.loopOutSlider.setMidiCtl(None)
+            self.loopOutSlider.setMidiChannel(1)
+            self.loopOutSlider.setOpenSndCtrl(None)
+            self.loopOutSlider.setOSCOut(None)
         
     def getLoopOut(self):
-        return [self.loopOutSlider.getValue(), self.loopOutSlider.getPlay(), self.loopOutSlider.getRec()]
+        return [self.loopOutSlider.getValue(), self.loopOutSlider.getPlay(), self.loopOutSlider.getRec(),
+                self.loopOutSlider.getWithMidi(), self.loopOutSlider.getMidiCtl(), self.loopOutSlider.getMidiChannel(),
+                self.loopOutSlider.slider.getMinValue(), self.loopOutSlider.slider.getMaxValue(),
+                self.loopOutSlider.getOpenSndCtrl(), self.loopOutSlider.getOSCOut()]
 
     def handleGain(self, value):
         if CeciliaLib.getVar("currentModule") != None:
@@ -1348,9 +1381,27 @@ class SamplerFrame(wx.Frame):
     def setGain(self, values):
         self.gainSlider.setValue(values[0])
         self.gainSlider.setPlay(values[1])
+        if len(values) > 3:
+            self.gainSlider.setMidiCtl(values[4])
+            self.gainSlider.setMidiChannel(values[5])
+            if values[6] != None:
+                self.gainSlider.setOpenSndCtrl("%d:%s" % (values[6][0], values[6][1]))
+            else:
+                self.gainSlider.setOpenSndCtrl(None)
+            if values[7] != None:
+                self.gainSlider.setOSCOut("%s:%d:%s" % (values[7][0], values[7][1], values[7][2]))
+            else:
+                self.gainSlider.setOSCOut(None)
+        else:
+            self.gainSlider.setMidiCtl(None)
+            self.gainSlider.setMidiChannel(1)
+            self.gainSlider.setOpenSndCtrl(None)
+            self.gainSlider.setOSCOut(None)
         
     def getGain(self):
-        return [self.gainSlider.getValue(), self.gainSlider.getPlay(), self.gainSlider.getRec()]
+        return [self.gainSlider.getValue(), self.gainSlider.getPlay(), self.gainSlider.getRec(),
+                self.gainSlider.getWithMidi(), self.gainSlider.getMidiCtl(), self.gainSlider.getMidiChannel(),
+                self.gainSlider.getOpenSndCtrl(), self.gainSlider.getOSCOut()]
         
     def handleTransp(self, value):
         if CeciliaLib.getVar("currentModule") != None:
@@ -1359,9 +1410,27 @@ class SamplerFrame(wx.Frame):
     def setTransp(self, values):
         self.transpSlider.setValue(values[0])
         self.transpSlider.setPlay(values[1])
+        if len(values) > 3:
+            self.transpSlider.setMidiCtl(values[4])
+            self.transpSlider.setMidiChannel(values[5])
+            if values[6] != None:
+                self.transpSlider.setOpenSndCtrl("%d:%s" % (values[6][0], values[6][1]))
+            else:
+                self.transpSlider.setOpenSndCtrl(None)
+            if values[7] != None:
+                self.transpSlider.setOSCOut("%s:%d:%s" % (values[7][0], values[7][1], values[7][2]))
+            else:
+                self.transpSlider.setOSCOut(None)
+        else:
+            self.transpSlider.setMidiCtl(None)
+            self.transpSlider.setMidiChannel(1)
+            self.transpSlider.setOpenSndCtrl(None)
+            self.transpSlider.setOSCOut(None)
         
     def getTransp(self):
-        return [self.transpSlider.getValue(), self.transpSlider.getPlay(), self.transpSlider.getRec()]
+        return [self.transpSlider.getValue(), self.transpSlider.getPlay(), self.transpSlider.getRec(),
+                self.transpSlider.getWithMidi(), self.transpSlider.getMidiCtl(), self.transpSlider.getMidiChannel(),
+                self.transpSlider.getOpenSndCtrl(), self.transpSlider.getOSCOut()]
     
 class SamplerPlayRecButtons(wx.Panel):
     def __init__(self, parent, id=wx.ID_ANY, pos=(0,0), size=(40,20)):
@@ -1385,6 +1454,11 @@ class SamplerPlayRecButtons(wx.Panel):
         self.play = False
         self.rec = False
 
+        if CeciliaLib.getVar("systemPlatform") == "win32":
+            self.dcref = wx.BufferedPaintDC
+        else:
+            self.dcref = wx.PaintDC
+
     def setOverWait(self, which):
         if which == 0:
             self.playOverWait = False
@@ -1406,7 +1480,7 @@ class SamplerPlayRecButtons(wx.Panel):
                 self.setRec(0)
             self.play = True
             self.playColour = SLIDER_PLAY_COLOUR_NO_BIND
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def setRec(self, x):
         if x == 0:
@@ -1434,7 +1508,7 @@ class SamplerPlayRecButtons(wx.Panel):
             self.setOverWait(1)
         self.playOver = False
         self.recOver = False
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         evt.Skip()
 
     def OnEnter(self, evt):
@@ -1453,7 +1527,7 @@ class SamplerPlayRecButtons(wx.Panel):
                     self.setRec(True)
             self.playOver = False
             self.recOver = False
-            self.Refresh()
+            wx.CallAfter(self.Refresh)
             evt.Skip()
 
     def MouseUp(self, evt):
@@ -1469,7 +1543,7 @@ class SamplerPlayRecButtons(wx.Panel):
                 self.playOver = False
                 self.recOver = True
             self.checkForOverReady(pos)
-            self.Refresh()
+            wx.CallAfter(self.Refresh)
             evt.Skip()
 
     def OnLeave(self, evt):
@@ -1478,12 +1552,13 @@ class SamplerPlayRecButtons(wx.Panel):
         self.recOver = False
         self.playOverWait = True
         self.recOverWait = True
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         evt.Skip()
 
     def OnPaint(self, evt):
         w,h = self.GetSize()
-        dc = wx.AutoBufferedPaintDC(self)
+        dc = self.dcref(self)
+        gc = wx.GraphicsContext_Create(dc)
 
         dc.SetBrush(wx.Brush(BACKGROUND_COLOUR, wx.SOLID))
         dc.Clear()
@@ -1494,9 +1569,10 @@ class SamplerPlayRecButtons(wx.Panel):
         # Draw triangle
         if self.playOver: playColour = SLIDER_PLAY_COLOUR_OVER
         else: playColour = self.playColour
-        dc.SetPen(wx.Pen(playColour, width=1, style=wx.SOLID))  
-        dc.SetBrush(wx.Brush(playColour, wx.SOLID))
-        dc.DrawPolygon([wx.Point(14,h/2), wx.Point(9,6), wx.Point(9,h-6)])
+        gc.SetPen(wx.Pen(playColour, width=1, style=wx.SOLID))  
+        gc.SetBrush(wx.Brush(playColour, wx.SOLID))
+        tri = [(14,h/2), (9,6), (9,h-6), (14,h/2)]
+        gc.DrawLines(tri)
 
         dc.SetPen(wx.Pen('#333333', width=1, style=wx.SOLID))  
         dc.DrawLine(w/2,4,w/2,h-4)
@@ -1504,9 +1580,9 @@ class SamplerPlayRecButtons(wx.Panel):
         # Draw circle
         if self.recOver: recColour = SLIDER_REC_COLOUR_OVER
         else: recColour = self.recColour
-        dc.SetPen(wx.Pen(recColour, width=1, style=wx.SOLID))  
-        dc.SetBrush(wx.Brush(recColour, wx.SOLID))
-        dc.DrawCircle(w/4+w/2, h/2, 4)
+        gc.SetPen(wx.Pen(recColour, width=1, style=wx.SOLID))  
+        gc.SetBrush(wx.Brush(recColour, wx.SOLID))
+        gc.DrawEllipse(w/4+w/2-4, h/2-4, 8, 8)
 
         evt.Skip()
 
@@ -1528,15 +1604,22 @@ class SamplerSlider:
                       'Loop X': name+'xfade', 'Gain': name+'gain', 'Transpo': name+'trans'}[label]
         self.path = os.path.join(AUTOMATION_SAVE_PATH, self.cname)
         self.convertSliderValue = 200
+        self.midictl = None
+        self.midichan = 1
+        self.openSndCtrl = None
+        self.OSCOut = None
 
         self.labelText = wx.StaticText(parent, -1, label)
-        self.labelText.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        self.labelText.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         self.labelText.SetForegroundColour("#FFFFFF")
+        self.labelText.Bind(wx.EVT_RIGHT_DOWN, self.onMidiLearn)
+        self.labelText.Bind(wx.EVT_LEFT_DCLICK, self.onLabelDClick)
         self.buttons = SamplerPlayRecButtons(parent)
-        self.slider = ControlSlider(parent, mini, maxi, init, size=(236, 15), integer=integer, outFunction=self.sendValue)
+        self.slider = ControlSlider(parent, mini, maxi, init, size=(236, 15), integer=integer, 
+                                    backColour=BACKGROUND_COLOUR, outFunction=self.sendValue)
         self.slider.setSliderHeight(10) 
         self.unit = wx.StaticText(parent, -1, unit)
-        self.unit.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        self.unit.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         self.unit.SetForegroundColour("#FFFFFF")
 
     def setConvertSliderValue(self, x, end=None):
@@ -1565,7 +1648,7 @@ class SamplerSlider:
     def setRange(self, minval, maxval):
         self.slider.SetRange(minval, maxval)
         self.setValue(self.getValue())
-        self.slider.OnPaint(wx.PaintEvent(-1))
+        wx.CallAfter(self.slider.Refresh)
         
     def setValue(self, val):
         self.slider.SetValue(val)
@@ -1637,3 +1720,86 @@ class SamplerSlider:
     def getAutomationData(self):
         return [[x[0],x[1]] for x in self.automationData]
 
+    def onMidiLearn(self, evt):
+        if evt.ShiftDown():
+            self.setMidiCtl(None)
+        elif CeciliaLib.getVar("useMidi"):
+            CeciliaLib.getVar("audioServer").midiLearn(self)
+            self.slider.inMidiLearnMode()
+
+    def setMidiCtl(self, ctl):
+        if ctl == None:
+            self.midictl = None
+            self.midichan = 1
+            self.slider.setMidiCtl('')
+        else:    
+            self.midictl = int(ctl)
+            self.slider.setMidiCtl("%d:%d" % (self.midictl, self.midichan))
+            self.openSndCtrl = None
+            self.slider.setOpenSndCtrl('')
+
+    def getMidiCtl(self):
+        return self.midictl
+
+    def setMidiChannel(self, chan):
+        self.midichan = int(chan)
+
+    def getMidiChannel(self):
+        return self.midichan
+        
+    def getWithMidi(self):
+        if self.getMidiCtl() != None and CeciliaLib.getVar("useMidi"):
+            return True
+        else:
+            return False
+
+    def update(self, val):
+        if not self.slider.HasCapture() and self.getPlay() != 1 and self.getWithMidi():
+            self.setValue(val)
+
+    def onLabelDClick(self, evt):
+        f = OSCPopupFrame(CeciliaLib.getVar('interface'), self)
+        f.CenterOnParent()
+        f.Show()
+
+    def setOSCInput(self, value):
+        self.setOpenSndCtrl(value)
+
+    def setOSCOutput(self, value):
+        self.setOSCOut(value)
+
+    def setOpenSndCtrl(self, value):
+        if value != None:
+            if value == "":
+                self.openSndCtrl = None
+                self.slider.setOpenSndCtrl("")
+            else:
+                sep = value.split(":")
+                port = int(sep[0].strip())
+                address = str(sep[1].strip())
+                self.openSndCtrl = (port, address)
+                self.slider.setOpenSndCtrl("%d:%s" % (port, address))
+                self.setMidiCtl(None)
+
+    def setOSCOut(self, value):
+        if value != None:
+            if value == "":
+                self.OSCOut = None
+            else:
+                sep = value.split(":")
+                host = str(sep[0].strip())
+                port = int(sep[1].strip())
+                address = str(sep[2].strip())
+                self.OSCOut = (host, port, address)
+
+    def getOpenSndCtrl(self):
+        return self.openSndCtrl
+
+    def getOSCOut(self):
+        return self.OSCOut
+
+    def getWithOSC(self):
+        if self.openSndCtrl != None:
+            return True
+        else:
+            return False
diff --git a/Resources/DocFrame.py b/Resources/DocFrame.py
index 974d763..b6094d6 100644
--- a/Resources/DocFrame.py
+++ b/Resources/DocFrame.py
@@ -1,30 +1,14 @@
 #!/usr/bin/env python
 # encoding: utf-8
-from __future__ import with_statement
-import os
+import os, keyword, shutil
 import wx
 import wx.stc  as  stc
 from wx.lib.embeddedimage import PyEmbeddedImage
+import CeciliaLib
 from constants import *
 from pyo import class_args
 from API_interface import *
 
-DOC_STYLES = {'Default': {'default': '#000000', 'comment': '#007F7F', 'commentblock': '#7F7F7F', 'selback': '#CCCCCC',
-                    'number': '#005000', 'string': '#7F007F', 'triple': '#7F0000', 'keyword': '#00007F', 'keyword2': '#007F9F',
-                    'class': '#0000FF', 'function': '#007F7F', 'identifier': '#000000', 'caret': '#00007E',
-                    'background': '#EEEEEE', 'linenumber': '#000000', 'marginback': '#B0B0B0', 'markerfg': '#CCCCCC',
-                      'markerbg': '#000000', 'bracelight': '#AABBDD', 'bracebad': '#DD0000', 'lineedge': '#CCCCCC'}}
-
-if wx.Platform == '__WXMSW__':
-  DOC_FACES = {'face': 'Verdana', 'size' : 8, 'size2': 7}
-elif wx.Platform == '__WXMAC__':
-  DOC_FACES = {'face': 'Monaco', 'size' : 12, 'size2': 9}
-else:
-  DOC_FACES = {'face': 'Courier New', 'size' : 8, 'size2': 7}
-DOC_FACES['size3'] = DOC_FACES['size2'] + 4
-for key, value in DOC_STYLES['Default'].items():
-  DOC_FACES[key] = value
-
 # ***************** Catalog starts here *******************
 
 catalog = {}
@@ -144,16 +128,265 @@ up_24_png = PyEmbeddedImage(
 catalog['up_24.png'] = up_24_png
 
 _INTRO_TEXT =   """
-Cecilia5 API documentation.
+"Cecilia5 API Documentation"
+
+# What is a Cecilia module
+
+A Cecilia module is a python file (with the extension 'C5', associated to 
+the application) containing a class named `Module`, within which the audio 
+processing chain is developed, and a list called `Interface`, telling the 
+software what are the graphical controls necessary for the proper operation 
+of the module. the file can then be loaded by the application to apply the 
+process on different audio signals, whether coming from sound files or from
+the microphone input. Processes used to manipulate the audio signal must be 
+written with the Python's dedicated signal processing module 'pyo'.
+
+# API Documentation Structure
+
+This API is divided into two parts: firstly, there is the description of the 
+parent class, named `BaseModule`, from which every module must inherit. This 
+class implements a lot of features that ease the creation of a dsp chain.
+Then, the various available GUI elements (widgets) are presented.
+
+"""
+
+_EXAMPLE_1 = '''
+                            ### EXAMPLE 1 ###
+# This example shows how to use the sampler to loop any soundfile from the disk.
+# A state-variable filter is then applied on the looped sound. 
+
+class Module(BaseModule):
+    """
+    "State Variable Filter"
+    
+    Description
+
+    This module implements lowpass, bandpass and highpass filters in parallel
+    and allow the user to interpolate on an axis lp -> bp -> hp.
+    
+    Sliders
+    
+        # Cutoff/Center Freq : 
+                Cutoff frequency for lp and hp (center freq for bp)
+        # Filter Q : 
+                Q factor (inverse of bandwidth) of the filter
+        # Type (lp->bp->hp) : 
+                Interpolating factor between filters
+        # Dry / Wet : 
+                Mix between the original and the filtered signals
+
+    Graph Only
+    
+        # Overall Amplitude : 
+                The amplitude curve applied on the total duration of the performance
+    
+    Popups & Toggles
+    
+        # Polyphony Voices : 
+                Number of voices played simultaneously (polyphony), 
+                only available at initialization time
+        # Polyphony Chords : 
+                Pitch interval between voices (chords), 
+                only available at initialization time
+
+    """
+    def __init__(self):
+        BaseModule.__init__(self)
+        self.snd = self.addSampler("snd")
+        self.dsp = SVF(self.snd, self.freq, self.q, self.type)
+        self.out = Interp(self.snd, self.dsp, self.drywet, mul=self.env)
+
+Interface = [
+    csampler(name="snd"),
+    cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
+    cslider(name="freq", label="Cutoff/Center Freq", min=20, max=20000, init=1000, 
+            rel="log", unit="Hz", col="green1"),
+    cslider(name="q", label="Filter Q", min=0.5, max=25, init=1, rel="log", 
+            unit="x", col="green2"),
+    cslider(name="type", label="Type (lp->bp->hp)", min=0, max=1, init=0.5, 
+            rel="lin", unit="x", col="green3"),
+    cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", 
+            unit="x", col="blue1"),
+    cpoly()
+]
+
+'''
+
+_EXAMPLE_2 = '''
+                            ### EXAMPLE 2 ###
+# This example shows how to load a sound in a table (RAM) in order to apply
+# non-streaming effects. Here a frequency self-modulated reader is used to
+# create new harmonics, in a way similar to waveshaping distortion.
+
+class Module(BaseModule):
+    """
+    "Self-modulated frequency sound looper"
+    
+    Description
+    
+    This module loads a sound in a table and apply a frequency self-modulated
+    playback of the content. A Frequency self-modulation occurs when the
+    output sound of the playback is used to modulate the reading pointer speed.
+    That produces new harmonics in a way similar to waveshaping distortion. 
+    
+    Sliders
+    
+        # Transposition : 
+                Transposition, in cents, of the input sound
+        # Feedback : 
+                Amount of self-modulation in sound playback
+        # Filter Frequency : 
+                Frequency, in Hertz, of the filter
+        # Filter Q : 
+                Q of the filter (inverse of the bandwidth)
+    
+    Graph Only
+    
+        # Overall Amplitude : 
+                The amplitude curve applied on the total duration of the performance
+
+    Popups & Toggles
+    
+        # Filter Type : 
+                Type of the filter
+        # Polyphony Voices : 
+                Number of voices played simultaneously (polyphony), 
+                only available at initialization time
+        # Polyphony Chords : 
+                Pitch interval between voices (chords), 
+                only available at initialization time
+
+    """
+    def __init__(self):
+        BaseModule.__init__(self)
+        self.snd = self.addFilein("snd")
+        self.trfactor = CentsToTranspo(self.transpo, mul=self.polyphony_spread)
+        self.freq = Sig(self.trfactor, mul=self.snd.getRate())
+        self.dsp = OscLoop(self.snd, self.freq, self.feed*0.0002, 
+                           mul=self.polyphony_scaling * 0.5)
+        self.mix = self.dsp.mix(self.nchnls)
+        self.out = Biquad(self.mix, freq=self.filt_f, q=self.filt_q, 
+                          type=self.filt_t_index, mul=self.env)
+
+    def filt_t(self, index, value):
+        self.out.type = index
+
+Interface = [
+    cfilein(name="snd"),
+    cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
+    cslider(name="transpo", label="Transposition", min=-4800, max=4800, init=0, 
+            unit="cnts", col="red1"),
+    cslider(name="feed", label="Feedback", min=0, max=1, init=0.25, unit="x", 
+            col="purple1"),
+    cslider(name="filt_f", label="Filter Frequency", min=20, max=18000, 
+            init=10000, rel="log", unit="Hz", col="green1"),
+    cslider(name="filt_q", label="Filter Q", min=0.5, max=25, init=1, 
+            rel="log", unit="x", col="green2"),
+    cpopup(name="filt_t", label="Filter Type", init="Lowpass", 
+           value=["Lowpass", "Highpass", "Bandpass", "Bandreject"], col="green1"),
+    cpoly()
+]
+
+'''
+
+_COLOUR_TEXT = """
+Colours
+
+Five colours, with four shades each, are available to build the interface.
+The colour should be given, as a string, to the `col` argument of a widget
+function.
+"""
+
+_COLOURS = """
+            red1    blue1    green1    purple1    orange1 
+            red2    blue2    green2    purple2    orange2 
+            red3    blue3    green3    purple3    orange3 
+            red4    blue4    green4    purple4    orange4
+"""
+
+_MODULES_TEXT =   """
+"Documentation of Built-In Modules" 
+
+The built-in modules are classified into different categories:
 
 """
 
-_DOC_KEYWORDS = ['Attributes', 'Examples', 'Parameters', 'Methods', 'Notes', 'Methods details', 
-                 'See also', 'Parentclass', 'Overview', 'Initline', 'Description']
-_KEYWORDS_LIST = ["BaseModule_API", "Interface_API", "cfilein", "csampler", "cpoly", "cgraph", "cslider", "crange", "csplitter",
+_CATEGORY_OVERVIEW = {  'Dynamics': """
+"Modules related to waveshaping and amplitude manipulations"
+
+""", 
+                        'Filters': """
+"Filtering and subtractive synthesis modules"
+
+""", 
+                        'Multiband': """
+"Various processing applied independently to four spectral regions" 
+
+""", 
+                        'Pitch': """
+"Modules related to playback speed and pitch manipulations"
+
+""", 
+                        'Resonators&Verbs': """
+"Artificial spaces generation modules"
+
+""", 
+                        'Spectral': """
+"Spectral streaming processing modules"
+
+""", 
+                        'Synthesis': """
+"Additive synthesis and particle generators"
+
+""", 
+                        'Time': """ 
+"Granulation based time-stretching and delay related modules"
+
+"""}
+
+_MODULE_CATEGORIES = ['Dynamics', 'Filters', 'Multiband', 'Pitch', 'Resonators&Verbs', 'Spectral', 'Synthesis', 'Time']
+_DOC_KEYWORDS = ['Attributes', 'Examples', 'Parameters', 'Methods', 'Notes', 'Methods details', 'Public', "BaseModule_API", "Interface_API", 
+                 'Notes', 'Overview', 'Initline', 'Description', 'Sliders', 'Graph Only', 'Popups & Toggles', 'Template', 'Colours',
+                 'Public Attributes', 'Public Methods']
+_KEYWORDS_LIST = ["cfilein", "csampler", "cpoly", "cgraph", "cslider", "crange", "csplitter",
                     "ctoggle", "cpopup", "cbutton", "cgen"]
+_KEYWORDS_TREE = {"BaseModule_API": [], "Interface_API": ["cfilein", "csampler", "cpoly", "cgraph", "cslider", "crange", "csplitter",
+                    "ctoggle", "cpopup", "cbutton", "cgen"]}
 _NUM_PAGES = len(_KEYWORDS_LIST)
 
+DOC_STYLES = {'Default': {'default': '#000000', 'comment': '#003333', 'commentblock': '#000000', 'selback': '#CCCCCC',
+                    'number': '#000000', 'string': '#000000', 'triple': '#000000', 'keyword': '#00007F', 'keyword2': '#003333',
+                    'class': '#0000FF', 'function': '#007F7F', 'identifier': '#000000', 'caret': '#00007E',
+                    'background': '#EEEEEE', 'linenumber': '#000000', 'marginback': '#B0B0B0', 'markerfg': '#CCCCCC',
+                      'markerbg': '#000000', 'bracelight': '#AABBDD', 'bracebad': '#DD0000', 'lineedge': '#CCCCCC'}}
+if wx.Platform == '__WXMSW__':
+  DOC_FACES = {'face': 'Verdana', 'size' : 8, 'size2': 7}
+elif wx.Platform == '__WXMAC__':
+  DOC_FACES = {'face': 'Monaco', 'size' : 12, 'size2': 9}
+else:
+  DOC_FACES = {'face': 'Monospace', 'size' : 8, 'size2': 7}
+DOC_FACES['size3'] = DOC_FACES['size2'] + 4
+DOC_FACES['size4'] = DOC_FACES['size2'] + 3
+for key, value in DOC_STYLES['Default'].items():
+  DOC_FACES[key] = value
+
+DOC_STYLES_P = {'Default': {'default': '#000000', 'comment': '#007F7F', 'commentblock': '#7F7F7F', 'selback': '#CCCCCC',
+                    'number': '#005000', 'string': '#7F007F', 'triple': '#7F0000', 'keyword': '#00007F', 'keyword2': '#007F9F',
+                    'class': '#0000FF', 'function': '#007F7F', 'identifier': '#000000', 'caret': '#00007E',
+                    'background': '#EEEEEE', 'linenumber': '#000000', 'marginback': '#B0B0B0', 'markerfg': '#CCCCCC',
+                      'markerbg': '#000000', 'bracelight': '#AABBDD', 'bracebad': '#DD0000', 'lineedge': '#CCCCCC'}}
+
+if wx.Platform == '__WXMSW__':
+  DOC_FACES_P = {'face': 'Verdana', 'size' : 8, 'size2': 7}
+elif wx.Platform == '__WXMAC__':
+  DOC_FACES_P = {'face': 'Monaco', 'size' : 12, 'size2': 9}
+else:
+  DOC_FACES_P = {'face': 'Monospace', 'size' : 8, 'size2': 7}
+DOC_FACES_P['size3'] = DOC_FACES_P['size2'] + 4
+for key, value in DOC_STYLES_P['Default'].items():
+  DOC_FACES_P[key] = value
+
+
 def _ed_set_style(editor, searchKey=None):
     editor.SetLexer(stc.STC_LEX_PYTHON)
     editor.SetKeyWords(0, " ".join(_KEYWORDS_LIST))
@@ -175,9 +408,9 @@ def _ed_set_style(editor, searchKey=None):
     editor.StyleSetSpec(stc.STC_STYLE_LINENUMBER,  "fore:%(linenumber)s,back:%(marginback)s,face:%(face)s,size:%(size2)d" % DOC_FACES)
     editor.StyleSetSpec(stc.STC_STYLE_CONTROLCHAR, "fore:%(default)s,face:%(face)s" % DOC_FACES)
     editor.StyleSetSpec(stc.STC_P_DEFAULT, "fore:%(default)s,face:%(face)s,size:%(size)d" % DOC_FACES)
-    editor.StyleSetSpec(stc.STC_P_COMMENTLINE, "fore:%(comment)s,face:%(face)s,size:%(size)d" % DOC_FACES)
-    editor.StyleSetSpec(stc.STC_P_NUMBER, "fore:%(number)s,face:%(face)s,bold,size:%(size)d" % DOC_FACES)
-    editor.StyleSetSpec(stc.STC_P_STRING, "fore:%(string)s,face:%(face)s,size:%(size)d" % DOC_FACES)
+    editor.StyleSetSpec(stc.STC_P_COMMENTLINE, "fore:%(comment)s,face:%(face)s,bold,italic,size:%(size)d" % DOC_FACES)
+    editor.StyleSetSpec(stc.STC_P_NUMBER, "fore:%(number)s,face:%(face)s,size:%(size)d" % DOC_FACES)
+    editor.StyleSetSpec(stc.STC_P_STRING, "fore:%(string)s,face:%(face)s,bold,size:%(size4)d" % DOC_FACES)
     editor.StyleSetSpec(stc.STC_P_CHARACTER, "fore:%(string)s,face:%(face)s,size:%(size)d" % DOC_FACES)
     editor.StyleSetSpec(stc.STC_P_WORD, "fore:%(keyword)s,face:%(face)s,bold,size:%(size)d" % DOC_FACES)
     editor.StyleSetSpec(stc.STC_P_WORD2, "fore:%(keyword2)s,face:%(face)s,bold,size:%(size3)d" % DOC_FACES)
@@ -187,7 +420,38 @@ def _ed_set_style(editor, searchKey=None):
     editor.StyleSetSpec(stc.STC_P_DEFNAME, "fore:%(function)s,face:%(face)s,bold,size:%(size)d" % DOC_FACES)
     editor.StyleSetSpec(stc.STC_P_OPERATOR, "bold,size:%(size)d,face:%(face)s" % DOC_FACES)
     editor.StyleSetSpec(stc.STC_P_IDENTIFIER, "fore:%(identifier)s,face:%(face)s,size:%(size)d" % DOC_FACES)
-    editor.StyleSetSpec(stc.STC_P_COMMENTBLOCK, "fore:%(commentblock)s,face:%(face)s,size:%(size)d" % DOC_FACES)
+    editor.StyleSetSpec(stc.STC_P_COMMENTBLOCK, "fore:%(commentblock)s,face:%(face)s,italic,size:%(size)d" % DOC_FACES)
+
+def _ed_set_style_p(editor, searchKey=None):
+    editor.SetLexer(stc.STC_LEX_PYTHON)
+    editor.SetKeyWords(0, " ".join(keyword.kwlist) + " None True False ")
+
+    editor.SetMargins(5,5)
+    editor.SetSTCCursor(2)
+    editor.SetIndent(4)
+    editor.SetTabIndents(True)
+    editor.SetTabWidth(4)
+    editor.SetUseTabs(False)
+
+    editor.StyleSetSpec(stc.STC_STYLE_DEFAULT,  "fore:%(default)s,face:%(face)s,size:%(size)d,back:%(background)s" % DOC_FACES_P)
+    editor.StyleClearAll()
+    editor.StyleSetSpec(stc.STC_STYLE_DEFAULT,     "fore:%(default)s,face:%(face)s,size:%(size)d" % DOC_FACES_P)
+    editor.StyleSetSpec(stc.STC_STYLE_LINENUMBER,  "fore:%(linenumber)s,back:%(marginback)s,face:%(face)s,size:%(size2)d" % DOC_FACES_P)
+    editor.StyleSetSpec(stc.STC_STYLE_CONTROLCHAR, "fore:%(default)s,face:%(face)s" % DOC_FACES_P)
+    editor.StyleSetSpec(stc.STC_P_DEFAULT, "fore:%(default)s,face:%(face)s,size:%(size)d" % DOC_FACES_P)
+    editor.StyleSetSpec(stc.STC_P_COMMENTLINE, "fore:%(comment)s,face:%(face)s,size:%(size)d" % DOC_FACES_P)
+    editor.StyleSetSpec(stc.STC_P_NUMBER, "fore:%(number)s,face:%(face)s,bold,size:%(size)d" % DOC_FACES_P)
+    editor.StyleSetSpec(stc.STC_P_STRING, "fore:%(string)s,face:%(face)s,size:%(size)d" % DOC_FACES_P)
+    editor.StyleSetSpec(stc.STC_P_CHARACTER, "fore:%(string)s,face:%(face)s,size:%(size)d" % DOC_FACES_P)
+    editor.StyleSetSpec(stc.STC_P_WORD, "fore:%(keyword)s,face:%(face)s,bold,size:%(size)d" % DOC_FACES_P)
+    editor.StyleSetSpec(stc.STC_P_WORD2, "fore:%(keyword2)s,face:%(face)s,bold,size:%(size3)d" % DOC_FACES_P)
+    editor.StyleSetSpec(stc.STC_P_TRIPLE, "fore:%(triple)s,face:%(face)s,size:%(size)d" % DOC_FACES_P)
+    editor.StyleSetSpec(stc.STC_P_TRIPLEDOUBLE, "fore:%(triple)s,face:%(face)s,size:%(size)d" % DOC_FACES_P)
+    editor.StyleSetSpec(stc.STC_P_CLASSNAME, "fore:%(class)s,face:%(face)s,bold,size:%(size)d" % DOC_FACES_P)
+    editor.StyleSetSpec(stc.STC_P_DEFNAME, "fore:%(function)s,face:%(face)s,bold,size:%(size)d" % DOC_FACES_P)
+    editor.StyleSetSpec(stc.STC_P_OPERATOR, "bold,size:%(size)d,face:%(face)s" % DOC_FACES_P)
+    editor.StyleSetSpec(stc.STC_P_IDENTIFIER, "fore:%(identifier)s,face:%(face)s,size:%(size)d" % DOC_FACES_P)
+    editor.StyleSetSpec(stc.STC_P_COMMENTBLOCK, "fore:%(commentblock)s,face:%(face)s,size:%(size)d" % DOC_FACES_P)
 
 def complete_words_from_str(text, keyword):
     words = [keyword]
@@ -205,70 +469,23 @@ def complete_words_from_str(text, keyword):
 
 class ManualPanel(wx.Treebook):
     def __init__(self, parent):
-        wx.Treebook.__init__(self, parent, -1, style=wx.BK_DEFAULT | wx.SUNKEN_BORDER)
+        wx.Treebook.__init__(self, parent, -1, size=(600,480), style=wx.BK_DEFAULT | wx.SUNKEN_BORDER)
         self.parent = parent
         self.searchKey = None
-        self.Bind(wx.EVT_TREEBOOK_PAGE_CHANGED, self.OnPageChanged)
-        self.parse()
-
-    def reset_history(self):
-        self.fromToolbar = False
-        self.oldPage = ""
-        self.sequence = []
-        self.seq_index = 0
-
-    def parse(self):
-        self.searchKey = None
-        self.DeleteAllPages()
-        self.reset_history()
-
         if not os.path.isdir(DOC_PATH):
             os.mkdir(DOC_PATH)
-        self.needToParse = True
-
-        count = 1
-        win = self.makePanel("Intro")
-        self.AddPage(win, "Intro")
-        for key in _KEYWORDS_LIST:
-            count += 1
-            win = self.makePanel(key)
-            self.AddPage(win, key)
-
-        self.setStyle()
-        self.getPage("Intro")
-        wx.FutureCall(100, self.AdjustSize)
+        self.Bind(wx.EVT_TREEBOOK_PAGE_CHANGED, self.OnPageChanged)
 
-    def parseOnSearchName(self, keyword):
+    def cleanup(self):
         self.searchKey = None
         self.DeleteAllPages()
         self.reset_history()
 
-        keyword = keyword.lower()
-        for key in _KEYWORDS_LIST:
-            if keyword in key.lower():
-                win = self.makePanel(key)
-                self.AddPage(win, key)
-
-        self.setStyle()
-        self.getPage("Intro")
-        wx.CallAfter(self.AdjustSize)
-
-    def parseOnSearchPage(self, keyword):
-        self.searchKey = keyword
-        self.DeleteAllPages()
-        self.reset_history()
-
-        keyword = keyword.lower()
-        for key in _KEYWORDS_LIST:
-            if keyword in key.lower():
-                with open(os.path.join(DOC_PATH, key), "r") as f:
-                    text = f.read().lower()
-                    if keyword in text:
-                        win = self.makePanel(key)
-                        self.AddPage(win, key)
-        self.setStyle()
-        self.getPage("Intro")
-        wx.CallAfter(self.AdjustSize)
+    def reset_history(self):
+        self.fromToolbar = False
+        self.oldPage = ""
+        self.sequence = []
+        self.seq_index = 0
 
     def AdjustSize(self):
         self.GetTreeCtrl().InvalidateBestSize()
@@ -291,35 +508,6 @@ class ManualPanel(wx.Treebook):
             self.getPage(text)
         event.Skip()
 
-    def makePanel(self, obj=None):
-        panel = wx.Panel(self, -1)
-        panel.isLoad = False
-        if self.needToParse:
-            if obj != "Intro":
-                var = eval(obj)
-                if type(var) == type(""):
-                    panel.win = stc.StyledTextCtrl(panel, -1, size=(600, 600), style=wx.SUNKEN_BORDER)
-                    panel.win.SetText(var)
-                else:
-                    text = var.__doc__
-                    panel.win = stc.StyledTextCtrl(panel, -1, size=(600, 600), style=wx.SUNKEN_BORDER)
-                    panel.win.SetText(text)
-            else:
-                panel.win = stc.StyledTextCtrl(panel, -1, size=(600, 600), style=wx.SUNKEN_BORDER)
-                panel.win.SetText(_INTRO_TEXT)
-
-            panel.win.SaveFile(os.path.join(DOC_PATH, obj))
-        return panel
-
-    def MouseDown(self, evt):
-        stc = self.GetPage(self.GetSelection()).win
-        pos = stc.PositionFromPoint(evt.GetPosition())
-        start = stc.WordStartPosition(pos, False)
-        end = stc.WordEndPosition(pos, False)
-        word = stc.GetTextRange(start, end)
-        self.getPage(word)
-        evt.Skip()
-
     def history_check(self):
         back = True
         forward = True
@@ -346,6 +534,211 @@ class ManualPanel(wx.Treebook):
         self.SetSelection(self.sequence[self.seq_index])
         self.history_check()
 
+    def setStyle(self):
+        tree = self.GetTreeCtrl()
+        tree.SetBackgroundColour(DOC_STYLES['Default']['background'])
+        root = tree.GetRootItem()
+        tree.SetItemTextColour(root, DOC_STYLES['Default']['identifier'])
+        (child, cookie) = tree.GetFirstChild(root)
+        while child.IsOk():
+            tree.SetItemTextColour(child, DOC_STYLES['Default']['identifier'])
+            if tree.ItemHasChildren(child):
+                (child2, cookie2) = tree.GetFirstChild(child)
+                while child2.IsOk():
+                    tree.SetItemTextColour(child2, DOC_STYLES['Default']['identifier'])
+                    (child2, cookie2) = tree.GetNextChild(child, cookie2)
+            (child, cookie) = tree.GetNextChild(root, cookie)
+
+    
+modules_path = os.path.join(os.getcwd(), "doc-en", "source", "src", "modules")
+def prepare_doc_tree():
+    if os.path.isdir(modules_path):
+        shutil.rmtree(modules_path)
+    os.mkdir(modules_path)
+    for cat in _MODULE_CATEGORIES:
+        os.mkdir(os.path.join(modules_path, cat))
+
+def create_modules_index():
+    lines = _MODULES_TEXT.splitlines(True)
+    lines.pop(0)
+    with open(os.path.join(modules_path, "index.rst"), "w") as f:
+        f.write(lines[0].replace('"', ''))
+        f.write("="*len(lines[0]))
+        f.write("\n")
+        for i in range(1, len(lines)):
+            f.write(lines[i])
+        f.write("\n.. toctree::\n   :maxdepth: 2\n\n")
+        for cat in _MODULE_CATEGORIES:
+            f.write("   %s/index\n" % cat)
+    
+def create_category_index(category, overview, modules):
+    path = os.path.join(modules_path, category)
+    lines = overview.splitlines(True)
+    lines.pop(0)
+    with open(os.path.join(path, "index.rst"), "w") as f:
+        f.write(category + " : " + lines[0].replace('"', ''))
+        f.write("="*len(category + lines[0]))
+        f.write("\n")
+        for i in range(1, len(lines)):
+            f.write(lines[i])
+        f.write("\n.. toctree::\n   :maxdepth: 1\n\n")
+        for mod in modules:
+            f.write("   %s\n" % mod.split(".")[0])
+
+def create_module_doc_page(module, text):
+    root, name = os.path.split(module)
+    root, category = os.path.split(root)
+    name = name.split(".")[0]
+    pname = name + ".rst"
+    path = os.path.join(modules_path, category, pname)
+    lines = text.splitlines(True)
+    for i, line in enumerate(lines):
+        if len(line) > 4:
+            lines[i] = line[4:]
+    with open(path, "w") as f:
+        f.write(name + " : " + lines[0].replace('"', ''))
+        f.write("="*len(name + lines[0]))
+        f.write("\n")
+        tosub = 0
+        for i in range(1, len(lines)):
+            if tosub > 0:
+                f.write("-"*tosub)
+                f.write("\n")
+            if lines[i].strip() in _DOC_KEYWORDS:
+                tosub = len(lines[i])
+            else:
+                tosub = 0
+            if "#" in lines[i] and ":" in lines[i]:
+                line = lines[i].replace("# ", "**").replace(" :", "** :")
+            else:
+                line = lines[i]
+            f.write(line)
+    
+class ManualPanel_modules(ManualPanel):
+    def __init__(self, parent):
+        ManualPanel.__init__(self, parent)
+        self.root, self.directories, self.files = CeciliaLib.buildFileTree()
+        self.parse()
+
+    def parse(self):
+        if BUILD_RST:
+            prepare_doc_tree()
+        self.cleanup()
+        self.needToParse = True
+        count = 1
+        win = self.makePanel("Modules")
+        self.AddPage(win, "Modules")
+        for key in self.directories:
+            count += 1
+            win = self.makePanel(key)
+            self.AddPage(win, key)
+            for key2 in self.files[key]:
+                count += 1
+                win = self.makePanel(os.path.join(self.root, key, key2))
+                self.AddSubPage(win, key2)
+        self.setStyle()
+        self.getPage("Modules")
+        wx.FutureCall(100, self.AdjustSize)
+
+    def parseOnSearchName(self, keyword):
+        self.cleanup()
+        keyword = keyword.lower()
+        for key in self.directories:
+            for key2 in self.files[key]:
+                if keyword in key2.lower():
+                    win = self.makePanel(os.path.join(self.root, key, key2))
+                    self.AddPage(win, key2)
+        self.setStyle()
+        wx.CallAfter(self.AdjustSize)
+
+    def parseOnSearchPage(self, keyword):
+        self.cleanup()
+        keyword = keyword.lower()
+        for key in self.directories:
+            for key2 in self.files[key]:
+                with open(os.path.join(self.root, key, key2), "r") as f:
+                    text = f.read().lower()
+                    first = text.find('"""')
+                    if first != -1:
+                        newline = text.find("\n", first)
+                        second = text.find('"""', newline)
+                        text = text[newline+1:second]
+                    else:
+                        text = "module not documented..."
+                    if keyword in text:
+                        win = self.makePanel(os.path.join(self.root, key, key2))
+                        self.AddPage(win, key2)
+        self.setStyle()
+        wx.CallAfter(self.AdjustSize)
+
+    def makePanel(self, obj=None):
+        panel = wx.Panel(self, -1)
+        panel.isLoad = False
+        if self.needToParse:
+            if obj == "Modules":
+                if BUILD_RST:
+                    create_modules_index()
+                panel.win = stc.StyledTextCtrl(panel, -1, size=(600, 480), style=wx.SUNKEN_BORDER)
+                panel.win.SetUseHorizontalScrollBar(False)
+                panel.win.SetUseVerticalScrollBar(False) 
+                text = "" 
+                for cat in _MODULE_CATEGORIES:
+                    l = _CATEGORY_OVERVIEW[cat].splitlines()[1].replace('"', '').strip()
+                    text += "# %s\n    %s\n" % (cat, l)
+                panel.win.SetText(_MODULES_TEXT + text)
+            elif obj in _MODULE_CATEGORIES:
+                if BUILD_RST:
+                    create_category_index(obj, _CATEGORY_OVERVIEW[obj], self.files[obj])
+                panel.win = stc.StyledTextCtrl(panel, -1, size=(600, 480), style=wx.SUNKEN_BORDER)
+                panel.win.SetUseHorizontalScrollBar(False)
+                panel.win.SetUseVerticalScrollBar(False) 
+                text = _CATEGORY_OVERVIEW[obj]
+                for file in self.files[obj]:
+                    text += "# %s\n" % file
+                    with open(os.path.join(self.root, obj, file), "r") as f:
+                        t = f.read()
+                        first = t.find('"""')
+                        if first != -1:
+                            newline = t.find("\n", first)
+                            second = t.find('\n', newline+2)
+                            text += t[newline+1:second].replace('"', '')
+                            text += "\n"
+                panel.win.SetText(text)
+            elif os.path.isfile(obj):
+                with open(obj, "r") as f:
+                    text = f.read()
+                    first = text.find('"""')
+                    if first != -1:
+                        newline = text.find("\n", first)
+                        second = text.find('"""', newline)
+                        text = text[newline+1:second]
+                    else:
+                        text = '"Module not documented..."'
+                    if BUILD_RST:
+                        create_module_doc_page(obj, text)
+                obj = os.path.split(obj)[1]
+                panel.win = stc.StyledTextCtrl(panel, -1, size=(600, 480), style=wx.SUNKEN_BORDER)
+                panel.win.SetUseHorizontalScrollBar(False) 
+                panel.win.SetUseVerticalScrollBar(False) 
+                panel.win.SetText(text)
+            else:
+                print "WATH'S THIS", obj
+                var = eval(obj)
+                if type(var) == type(""):
+                    panel.win = stc.StyledTextCtrl(panel, -1, size=(600, 480), style=wx.SUNKEN_BORDER)
+                    panel.win.SetUseHorizontalScrollBar(False) 
+                    panel.win.SetUseVerticalScrollBar(False) 
+                    panel.win.SetText(var)
+                else:
+                    text = var.__doc__
+                    panel.win = stc.StyledTextCtrl(panel, -1, size=(600, 480), style=wx.SUNKEN_BORDER)
+                    panel.win.SetUseHorizontalScrollBar(False) 
+                    panel.win.SetUseVerticalScrollBar(False) 
+                    panel.win.SetText(text)
+                    
+            panel.win.SaveFile(CeciliaLib.ensureNFD(os.path.join(DOC_PATH, obj)))
+        return panel
+
     def getPage(self, word):
         if word == self.oldPage:
             self.fromToolbar = False
@@ -366,9 +759,9 @@ class ManualPanel(wx.Treebook):
                 if not panel.isLoad:
                     panel.isLoad = True
                     panel.win = stc.StyledTextCtrl(panel, -1, size=panel.GetSize(), style=wx.SUNKEN_BORDER)
-                    panel.win.LoadFile(os.path.join(DOC_PATH, word))
+                    panel.win.SetUseHorizontalScrollBar(False) 
+                    panel.win.LoadFile(os.path.join(CeciliaLib.ensureNFD(DOC_PATH), word))
                     panel.win.SetMarginWidth(1, 0)
-                    panel.win.Bind(wx.EVT_LEFT_DOWN, self.MouseDown)
                     if self.searchKey != None:
                         words = complete_words_from_str(panel.win.GetText(), self.searchKey)
                         _ed_set_style(panel.win, words)
@@ -383,27 +776,322 @@ class ManualPanel(wx.Treebook):
                     panel.Bind(wx.EVT_SIZE, OnPanelSize)
                 self.fromToolbar = False
                 return
+        try:
+            win = self.makePanel(CeciliaLib.getVar("currentCeciliaFile"))
+            self.AddPage(win, word)
+            self.getPage(word)
+        except:
+            pass
+
+api_doc_path = os.path.join(os.getcwd(), "doc-en", "source", "src", "api")
+def prepare_api_doc_tree():
+    if os.path.isdir(api_doc_path):
+        shutil.rmtree(api_doc_path)
+    os.mkdir(api_doc_path)
+    for cat in ["BaseModule", "Interface"]:
+        os.mkdir(os.path.join(api_doc_path, cat))
+
+def create_api_doc_index():
+    lines = _INTRO_TEXT.splitlines(True)
+    lines.pop(0)
+    with open(os.path.join(api_doc_path, "index.rst"), "w") as f:
+        f.write(lines[0].replace('"', ''))
+        f.write("="*len(lines[0]))
+        f.write("\n")
+        tosub = 0
+        for i in range(1, len(lines)):
+            if tosub > 0:
+                f.write("-"*tosub)
+                f.write("\n")
+            if lines[i].startswith("#"):
+                lines[i] = lines[i].replace("# ", "")
+                tosub = len(lines[i])
+            else:
+                tosub = 0
+            f.write(lines[i])
+        f.write("\n.. toctree::\n   :maxdepth: 2\n\n")
+        for cat in ["BaseModule", "Interface"]:
+            f.write("   %s/index\n" % cat)
+    
+def create_base_module_index():
+    lines = BaseModule_API.splitlines(True)
+    lines.pop(0)
+    with open(os.path.join(api_doc_path, "BaseModule", "index.rst"), "w") as f:
+        f.write(lines[0].replace("_", " "))
+        f.write("="*len(lines[0]))
+        f.write("\n")
+        tosub = 0
+        in_code_block = False
+        for i in range(1, len(lines)):
+            if in_code_block:
+                if lines[i].startswith("###"):
+                    in_code_block = False
+                    lines[i] = "\n"
+                else:
+                    lines[i] = "    " + lines[i]
+            else:
+                if lines[i].startswith("###"):
+                    lines[i] = ".. code::\n\n"
+                    in_code_block = True
+            if tosub > 0:
+                f.write("-"*tosub)
+                f.write("\n")
+            if lines[i].startswith("#") and ":" not in lines[i]:
+                lines[i] = lines[i].replace("# ", "")
+                tosub = len(lines[i])
+            elif lines[i].startswith("#") and ":" in lines[i]:
+                lines[i] = lines[i].replace("# ", "**").replace(" :", "**")
+            elif lines[i].strip() in _DOC_KEYWORDS and not in_code_block:
+                tosub = len(lines[i])                
+            else:
+                tosub = 0
+            f.write(lines[i])
+
+def create_interface_api_index():
+    lines = Interface_API.splitlines(True)
+    lines.pop(0)
+    with open(os.path.join(api_doc_path, "Interface", "index.rst"), "w") as f:
+        f.write(lines[0].replace("_", " "))
+        f.write("="*len(lines[0]))
+        f.write("\n")
+        for i in range(1, len(lines)):
+            f.write(lines[i])
+
+        f.write("\n.. toctree::\n   :maxdepth: 1\n\n")
+        for word in _KEYWORDS_LIST:
+            f.write("   %s\n" % word)
+        f.write("   colours\n")
+        f.write("   example1\n")
+        f.write("   example2\n")
+
+    lines = _COLOUR_TEXT.splitlines(True)
+    lines.pop(0)
+    lines2 = _COLOURS.splitlines(True)
+    lines2.pop(0)
+    with open(os.path.join(api_doc_path, "Interface", "colours.rst"), "w") as f:
+        f.write(lines[0])
+        f.write("="*len(lines[0]))
+        for i in range(1, len(lines)):
+            f.write(lines[i])
+        f.write("\n\n.. code::\n\n")
+        for i in range(len(lines2)):
+            f.write(lines2[i] + "\n")
+    lines = _EXAMPLE_1.splitlines(True)
+    lines.pop(0)
+    with open(os.path.join(api_doc_path, "Interface", "example1.rst"), "w") as f:
+        f.write(lines[0].replace("###", "").strip().lower().capitalize() + "\n")
+        f.write("="*len(lines[0]))
+        f.write("\n\n.. code::\n\n")
+        for i in range(1, len(lines)):
+            f.write("    " + lines[i])
+    lines = _EXAMPLE_2.splitlines(True)
+    lines.pop(0)
+    with open(os.path.join(api_doc_path, "Interface", "example2.rst"), "w") as f:
+        f.write(lines[0].replace("###", "").strip().lower().capitalize() + "\n")
+        f.write("="*len(lines[0]))
+        f.write("\n\n.. code::\n\n")
+        for i in range(1, len(lines)):
+            f.write("    " + lines[i])
+
+def create_api_doc_page(obj, text):
+    path = os.path.join(api_doc_path, "Interface", "%s.rst" % obj)
+    lines = text.splitlines(True)
+    lines.pop(0)
+    for i, line in enumerate(lines):
+        if len(line) > 4:
+            lines[i] = line[4:]
+    with open(path, "w") as f:
+        f.write(obj + " : " + lines[0].replace('"', '').lower())
+        f.write("="*len(obj+lines[0]))
+        f.write("\n")
+        tosub = 0
+        indent = 0
+        incode = False
+        prompt = False
+        for i in range(1, len(lines)):
+            if tosub > 0:
+                f.write("-"*tosub)
+                f.write("\n")
+            if incode:
+                f.write("\n.. code::\n")
+                incode = False
+            if ">>> " in lines[i]:
+                if not prompt:
+                    prompt = True
+                    f.write("\n.. code::\n\n")
+            else:
+                prompt = False
+            if lines[i].strip() in _DOC_KEYWORDS:
+                tosub = len(lines[i])
+                if lines[i].strip() == "Initline":
+                    indent = 4
+                    incode = True
+                else:
+                    indent = 0
+            else:
+                tosub = 0
+            if "#" in lines[i] and ":" in lines[i]:
+                line = lines[i].replace("# ", "**").replace(" :", "** :")
+            elif indent > 0 and tosub == 0 or prompt:
+                line = "    " + lines[i].replace(">>> ", "")
+            else:
+                line = lines[i]
+            f.write(line)
 
-    def setStyle(self):
-        tree = self.GetTreeCtrl()
-        tree.SetBackgroundColour(DOC_STYLES['Default']['background'])
-        root = tree.GetRootItem()
-        tree.SetItemTextColour(root, DOC_STYLES['Default']['identifier'])
-        (child, cookie) = tree.GetFirstChild(root)
-        while child.IsOk():
-            tree.SetItemTextColour(child, DOC_STYLES['Default']['identifier'])
-            if tree.ItemHasChildren(child):
-                (child2, cookie2) = tree.GetFirstChild(child)
-                while child2.IsOk():
-                    tree.SetItemTextColour(child2, DOC_STYLES['Default']['identifier'])
-                    (child2, cookie2) = tree.GetNextChild(child, cookie2)
-            (child, cookie) = tree.GetNextChild(root, cookie)
+class ManualPanel_api(ManualPanel):
+    def __init__(self, parent):
+        ManualPanel.__init__(self, parent)
+        self.parse()
+        
+    def parse(self):
+        if BUILD_RST:
+            prepare_api_doc_tree()
+        self.cleanup()
+        self.needToParse = True
+        count = 1
+        win = self.makePanel("Intro")
+        self.AddPage(win, "Intro")
+        for key in _KEYWORDS_TREE.keys():
+            count += 1
+            win = self.makePanel(key)
+            self.AddPage(win, key)
+            for key2 in _KEYWORDS_TREE[key]:
+                count += 1
+                win = self.makePanel(key2)
+                self.AddPage(win, key2)
+        self.setStyle()
+        win = self.makePanel("Example 1")
+        self.AddPage(win, "Example 1")
+        win = self.makePanel("Example 2")
+        self.AddPage(win, "Example 2")
+        self.getPage("Intro")
+        wx.FutureCall(100, self.AdjustSize)
+
+    def parseOnSearchName(self, keyword):
+        self.cleanup()
+        keyword = keyword.lower()
+        for key in _KEYWORDS_LIST:
+            if keyword in key.lower():
+                win = self.makePanel(key)
+                self.AddPage(win, key)
+        self.setStyle()
+        self.getPage("Intro")
+        wx.CallAfter(self.AdjustSize)
+
+    def parseOnSearchPage(self, keyword):
+        self.cleanup()
+        keyword = keyword.lower()
+        for key in _KEYWORDS_LIST:
+            with open(os.path.join(DOC_PATH, key), "r") as f:
+                text = f.read().lower()
+                if keyword in text:
+                    win = self.makePanel(key)
+                    self.AddPage(win, key)
+        self.setStyle()
+        self.getPage("Intro")
+        wx.CallAfter(self.AdjustSize)
+
+    def makePanel(self, obj=None):
+        panel = wx.Panel(self, -1)
+        panel.isLoad = False
+        if self.needToParse:
+            if obj == "Intro":
+                if BUILD_RST:
+                    create_api_doc_index()
+                panel.win = stc.StyledTextCtrl(panel, -1, size=(600, 480), style=wx.SUNKEN_BORDER)
+                panel.win.SetUseHorizontalScrollBar(False) 
+                panel.win.SetUseVerticalScrollBar(False) 
+                panel.win.SetText(_INTRO_TEXT)
+            elif "Example" in obj:
+                panel.win = stc.StyledTextCtrl(panel, -1, size=(600, 480), style=wx.SUNKEN_BORDER)
+                panel.win.SetUseHorizontalScrollBar(False)
+                panel.win.SetUseVerticalScrollBar(False) 
+                if "1" in obj:
+                    panel.win.SetText(_EXAMPLE_1)                
+                elif "2" in obj:
+                    panel.win.SetText(_EXAMPLE_2)                
+            else:
+                var = eval(obj)
+                if type(var) == type(""):
+                    panel.win = stc.StyledTextCtrl(panel, -1, size=(600, 480), style=wx.SUNKEN_BORDER)
+                    panel.win.SetUseHorizontalScrollBar(False) 
+                    panel.win.SetUseVerticalScrollBar(False) 
+                    if "Interface_API" in var:
+                        if BUILD_RST:
+                            create_interface_api_index()
+                        for word in _KEYWORDS_LIST:
+                            lines = eval(word).__doc__.splitlines()
+                            line = "%s : %s\n" % (word, lines[1].replace('"', '').strip())
+                            var += line
+                        var += _COLOUR_TEXT
+                        var += _COLOURS
+                    else:
+                        if BUILD_RST:
+                            create_base_module_index()
+                    panel.win.SetText(var)
+                else:
+                    text = var.__doc__
+                    if BUILD_RST:
+                        create_api_doc_page(obj, text)
+                    panel.win = stc.StyledTextCtrl(panel, -1, size=(600, 480), style=wx.SUNKEN_BORDER)
+                    panel.win.SetUseHorizontalScrollBar(False) 
+                    panel.win.SetUseVerticalScrollBar(False) 
+                    panel.win.SetText(text.replace(">>> ", ""))
+                    
+            panel.win.SaveFile(CeciliaLib.ensureNFD(os.path.join(DOC_PATH, obj)))
+        return panel
+
+    def getPage(self, word):
+        if word == self.oldPage:
+            self.fromToolbar = False
+            return
+        page_count = self.GetPageCount()
+        for i in range(page_count):
+            text = self.GetPageText(i)
+            if text == word:
+                self.oldPage = word
+                if not self.fromToolbar:
+                    self.sequence = self.sequence[0:self.seq_index+1]
+                    self.sequence.append(i)
+                    self.seq_index = len(self.sequence) - 1
+                    self.history_check()
+                self.parent.setTitle(text)
+                self.SetSelection(i)
+                panel = self.GetPage(self.GetSelection())
+                if not panel.isLoad:
+                    panel.isLoad = True
+                    panel.win = stc.StyledTextCtrl(panel, -1, size=panel.GetSize(), style=wx.SUNKEN_BORDER)
+                    panel.win.SetUseHorizontalScrollBar(False) 
+                    panel.win.LoadFile(os.path.join(CeciliaLib.ensureNFD(DOC_PATH), word))
+                    panel.win.SetMarginWidth(1, 0)
+                    if self.searchKey != None:
+                        words = complete_words_from_str(panel.win.GetText(), self.searchKey)
+                        _ed_set_style(panel.win, words)
+                    else:
+                        if "Example" in word:
+                            _ed_set_style_p(panel.win)
+                        else:
+                            _ed_set_style(panel.win)
+                    panel.win.SetSelectionEnd(0)
+
+                    def OnPanelSize(evt, win=panel.win):
+                        win.SetPosition((0,0))
+                        win.SetSize(evt.GetSize())
+
+                    panel.Bind(wx.EVT_SIZE, OnPanelSize)
+                self.fromToolbar = False
+                return
 
 class ManualFrame(wx.Frame):
-    def __init__(self, parent=None, id=-1, title='Cecilia5 API Documentation', size=(940, 700)):
+    def __init__(self, parent=None, id=-1, size=(800, 600), kind="api"):
+        if kind == "api":
+            title='API Documentation'
+        else:
+            title='Modules Documentation'
         wx.Frame.__init__(self, parent=parent, id=id, title=title, size=size)
-        self.SetMinSize((600, -1))
+        self.SetMinSize((600, 480))
 
+        self.kind = kind
         gosearchID = 1000
         aTable = wx.AcceleratorTable([(wx.ACCEL_NORMAL, 47, gosearchID)])
         self.SetAcceleratorTable(aTable)
@@ -437,11 +1125,11 @@ class ManualFrame(wx.Frame):
         self.toolbar.AddSeparator()
 
         self.searchTimer = None
-        self.searchScope = "Object's Name"
+        self.searchScope = "Page Names"
         self.searchMenu = wx.Menu()
         item = self.searchMenu.Append(-1, "Search Scope")
         item.Enable(False)
-        for i, txt in enumerate(["Object's Name", "Manual Pages"]):
+        for i, txt in enumerate(["Page Names", "Manual Pages"]):
             id = i+10
             self.searchMenu.Append(id, txt)
             self.Bind(wx.EVT_MENU, self.onSearchScope, id=id)
@@ -459,9 +1147,13 @@ class ManualFrame(wx.Frame):
         self.status = wx.StatusBar(self, -1)
         self.SetStatusBar(self.status)
 
-        self.doc_panel = ManualPanel(self)
-        self.doc_panel.getPage("Intro")
-
+        if kind == "api":
+            self.doc_panel = ManualPanel_api(self)
+            self.doc_panel.getPage("Intro")
+        else:
+            self.doc_panel = ManualPanel_modules(self)
+            self.doc_panel.getPage("Modules")
+            
         self.menuBar = wx.MenuBar()
         menu1 = wx.Menu()
         menu1.Append(99, "Close\tCtrl+W")
@@ -475,6 +1167,12 @@ class ManualFrame(wx.Frame):
         self.Bind(wx.EVT_MENU, self.close, id=99)
         self.Bind(wx.EVT_CLOSE, self.close)
 
+    def openPage(self, page):
+        self.doc_panel.getPage(page)
+        if not self.IsShownOnScreen():
+            self.Show()
+        self.Raise()
+
     def setSearchFocus(self, evt):
         self.search.SetFocus()
 
@@ -491,7 +1189,7 @@ class ManualFrame(wx.Frame):
         if keyword == "":
             self.doc_panel.parse()
         else:
-            if self.searchScope == "Object's Name":
+            if self.searchScope == "Page Names":
                 self.doc_panel.parseOnSearchName(keyword)
             else:
                 self.doc_panel.parseOnSearchPage(keyword)
@@ -503,7 +1201,7 @@ class ManualFrame(wx.Frame):
     def onSearchScope(self, evt):
         id = evt.GetId()
         if id == 10:
-            self.searchScope = "Object's Name"
+            self.searchScope = "Page Names"
         else:
             self.searchScope = "Manual Pages"
 
@@ -514,7 +1212,10 @@ class ManualFrame(wx.Frame):
         self.Hide()
 
     def setTitle(self, page):
-        self.SetTitle('Cecilia5 API Documentation - %s' % page)
+        if self.kind == "api":
+            self.SetTitle('API Documentation - %s' % page)
+        else:
+            self.SetTitle('Modules Documentation - %s' % page)
 
     def history_check(self, back, forward):
         self.toolbar.EnableTool(wx.ID_BACKWARD, back)
@@ -536,5 +1237,6 @@ class ManualFrame(wx.Frame):
 if __name__ == "__main__":
     app = wx.PySimpleApp()
     doc_frame = ManualFrame()
+    doc_frame.Center()
     doc_frame.Show()
     app.MainLoop()
diff --git a/Resources/Grapher.py b/Resources/Grapher.py
index ded3755..29f9e23 100755
--- a/Resources/Grapher.py
+++ b/Resources/Grapher.py
@@ -18,7 +18,7 @@ You should have received a copy of the GNU General Public License
 along with Cecilia 5.  If not, see <http://www.gnu.org/licenses/>.
 """
 
-import wx, time, random, bisect
+import wx, random, bisect
 from wx.lib.stattext import GenStaticText
 import CeciliaPlot as plot
 import math, copy
@@ -44,82 +44,7 @@ except:
             (it's not part of the standard Python distribution). See the
             Numeric Python site (http://numpy.scipy.org) for information on
             downloading source or binaries."""
-            raise ImportError, "Numeric,numarray or NumPy not found. \n" + msg
-
-def chooseColour(i, numlines):
-    def clip(x):
-        val = int(x*255)
-        if val < 0: val = 0
-        elif val > 255: val = 255
-        else: val = val
-        return val
-
-    def colour(i, numlines, sat, bright):
-        hue = (i / float(numlines)) * 315
-        segment = math.floor(hue / 60) % 6
-        fraction = hue / 60 - segment
-        t1 = bright * (1 - sat)
-        t2 = bright * (1 - (sat * fraction))
-        t3 = bright * (1 - (sat * (1 - fraction)))
-        if segment == 0:
-            r, g, b = bright, t3, t1
-        elif segment == 1:
-            r, g, b = t2, bright, t1
-        elif segment == 2:
-            r, g, b = t1, bright, t3
-        elif segment == 3:
-            r, g, b = t1, t2, bright
-        elif segment == 4:
-            r, g, b = t3, t1, bright
-        elif segment == 5:
-            r, g, b = bright, t1, t2
-        return wx.Colour(clip(r),clip(g),clip(b))
-
-    lineColour = colour(i, numlines, 1, 1)
-    midColour = colour(i, numlines, .5, .5)
-    knobColour = colour(i, numlines, .8, .5)
-    sliderColour = colour(i, numlines, .5, .75)
-
-    return [lineColour, midColour, knobColour, sliderColour]
-
-def chooseColourFromName(name):
-    def clip(x):
-        val = int(x*255)
-        if val < 0: val = 0
-        elif val > 255: val = 255
-        else: val = val
-        return val
-
-    def colour(name):
-        vals = COLOUR_CLASSES[name]
-        hue = vals[0]
-        bright = vals[1]
-        sat = vals[2]
-        segment = int(math.floor(hue / 60))
-        fraction = hue / 60 - segment
-        t1 = bright * (1 - sat)
-        t2 = bright * (1 - (sat * fraction))
-        t3 = bright * (1 - (sat * (1 - fraction)))
-        if segment == 0:
-            r, g, b = bright, t3, t1
-        elif segment == 1:
-            r, g, b = t2, bright, t1
-        elif segment == 2:
-            r, g, b = t1, bright, t3
-        elif segment == 3:
-            r, g, b = t1, t2, bright
-        elif segment == 4:
-            r, g, b = t3, t1, bright
-        elif segment == 5:
-            r, g, b = bright, t1, t2
-        return wx.Colour(clip(r),clip(g),clip(b))
-
-    lineColour = colour(name)
-    midColour = colour(name)
-    knobColour = colour(name)
-    sliderColour = colour(name)
-
-    return [lineColour, midColour, knobColour, sliderColour]
+            raise ImportError, "Numeric, numarray or NumPy not found. \n" + msg
 
 class MyFileDropTarget(wx.FileDropTarget):
     def __init__(self, window):
@@ -154,6 +79,13 @@ class Line:
         self.lines = []
         self.dataToDraw = []
         self.initData = self.getLineState()
+        self.modified = True
+
+    def getModified(self):
+        return self.modified
+        
+    def setModified(self, state):
+        self.modified = state
 
     def getLineState(self):
         dict = {'data': self.normalize(),
@@ -166,6 +98,7 @@ class Line:
         self.data = self.denormalize(data)
         self.curved = dict.get('curved', False)
         self.checkIfCurved()
+        self.modified = True
 
     def changeYrange(self, newrange):
         d = self.getLineState()
@@ -173,6 +106,7 @@ class Line:
         self.scale = self.yrange[1] - self.yrange[0]
         self.offset = self.yrange[0]
         self.setLineState(d)
+        self.modified = True
 
     def getColour(self):
         return self.colour
@@ -189,35 +123,43 @@ class Line:
     def setData(self, list):
         self.data = list
         self.checkIfCurved()
+        self.modified = True
 
     def reset(self):
         self.setLineState(self.initData)
         self.initData = self.getLineState()
+        self.modified = True
 
     def setPoint(self, point, value):
         self.data[point] = value
         self.checkIfCurved()
+        self.modified = True
 
     def move(self, list, offset):
         self.data = [[l[0] - offset[0], l[1] - offset[1]] for l in list]
         self.checkIfCurved()
+        self.modified = True
 
     def moveLog(self, list, offset):
         self.data = [[l[0] - offset[0], l[1] * offset[1]] for l in list]
         self.checkIfCurved()
+        self.modified = True
 
     def insert(self, pos, value):
         self.data.insert(pos, value)
         self.checkIfCurved()
+        self.modified = True
 
     def deletePoint(self, pos):
         del self.data[pos]
         self.checkIfCurved()
+        self.modified = True
 
     def deletePointFromPoint(self, point):
         if point in self.data:
             self.data.remove(point)
             self.checkIfCurved()
+            self.modified = True
 
     def setShow(self, state):
         self.show = state
@@ -237,6 +179,9 @@ class Line:
     def getLabel(self):
         return self.label
 
+    def setName(self, name):
+        self.name = name
+
     def getName(self):
         return self.name
 
@@ -298,6 +243,7 @@ class Line:
             self.curved = True
             self.lines = linToCosCurve(data=[p for p in self.getData()], yrange=self.getYrange(),
                                        totaldur=CeciliaLib.getVar("totalTime"), points=1024, log=self.getLog())
+        self.modified = True
 
     def checkIfCurved(self):
         if self.getCurved():
@@ -331,6 +277,7 @@ class Grapher(plot.PlotCanvas):
         self.selectedPoints = []
         self.markSelectionStart = None
         self.lineOver = None # mouse hover curve
+        self.lineOverGate = True
         self.selected = 0 # selected curve
         self._oldSelected = -1
         self._graphCreation = True
@@ -345,15 +292,22 @@ class Grapher(plot.PlotCanvas):
         self.Bind(wx.EVT_CHAR, self.OnKeyDown)
         self.canvas.Bind(wx.EVT_CHAR, self.OnKeyDown)
         self.canvas.Bind(wx.EVT_LEAVE_WINDOW, self.OnLooseFocus)
+        self.canvas.Bind(wx.EVT_ENTER_WINDOW, self.OnGrabFocus)
+
+    def unselectPoints(self):
+        self.selectedPoints = []
 
     def OnLooseFocus(self, event):
         win = wx.FindWindowAtPointer()
         if win != None:
             win = win.GetTopLevelParent()
-            if win not in [CeciliaLib.getVar("mainFrame"), CeciliaLib.getVar("interface")]:
+            if win not in [CeciliaLib.getVar("mainFrame"), CeciliaLib.getVar("interface"), CeciliaLib.getVar("spectrumFrame")]:
                 win.Raise()
         event.Skip()
-        
+            
+    def OnGrabFocus(self, event):
+        self.SetFocus()
+
     def setTool(self, tool):
         self._tool = tool
         if self._tool < 2:
@@ -419,7 +373,7 @@ class Grapher(plot.PlotCanvas):
         if data[0][0] != 0: data[0][0] = 0
         if data[-1][0] != self.totaltime: data[-1][0] = self.totaltime
         self.data.append(Line(data, yrange, colour, label, log, name, size, slider, suffix, curved))
-        self.draw()
+        # self.draw()
 
     def onCopy(self):
         line = self.getLine(self.getSelected())
@@ -453,6 +407,11 @@ class Grapher(plot.PlotCanvas):
             if line.getSlider() != None:
                 line.getSlider().setPlay(1)
 
+    def onSelectAll(self):
+        data = self.getLine(self.getSelected()).getData()
+        self.selectedPoints = [i for i in range(len(data))]
+        self.draw()
+
     def checkForHistory(self, fromUndo=False):
         if self._oldData != self._currentData:
             self.addHistory(fromUndo)
@@ -496,13 +455,6 @@ class Grapher(plot.PlotCanvas):
         else:
             self.menubarUndo.Enable(False)
             self.menubarRedo.Enable(False)
-         
-    def zoom(self):
-        if self._zoomed:
-            minX, minY= _Numeric.minimum( self._zoomCorner1, self._zoomCorner2)
-            maxX, maxY= _Numeric.maximum( self._zoomCorner1, self._zoomCorner2)
-            if self.last_draw != None:
-                self._Draw(self.last_draw[0], xAxis = (minX,maxX), yAxis = (minY,maxY), dc = None)
    
     def rescaleLinLin(self, data, yrange, currentYrange):
         scale = yrange[1] - yrange[0]
@@ -562,10 +514,8 @@ class Grapher(plot.PlotCanvas):
             self._zoomCorner1 = _Numeric.array(self.rescaleLogLin([_zoomCorner1], currentLine.getYrange(), newLine.getYrange()))[0]
             self._zoomCorner2 = _Numeric.array(self.rescaleLogLin([_zoomCorner2], currentLine.getYrange(), newLine.getYrange()))[0]
         elif not currentLine.getLog() and not newLine.getLog():
-            self._zoomCorner1 = _Numeric.array(self.rescaleLinLin([self._zoomCorner1], currentLine.getScale(), newLine.getScale(),
-                                                                                       currentLine.getOffset(), newLine.getOffset()))[0]
-            self._zoomCorner2 = _Numeric.array(self.rescaleLinLin([self._zoomCorner2], currentLine.getScale(), newLine.getScale(),
-                                                                                       currentLine.getOffset(), newLine.getOffset()))[0]
+            self._zoomCorner1 = _Numeric.array(self.rescaleLinLin([self._zoomCorner1], currentLine.getYrange(), newLine.getYrange()))[0]
+            self._zoomCorner2 = _Numeric.array(self.rescaleLinLin([self._zoomCorner2], currentLine.getYrange(), newLine.getYrange()))[0]
         elif not currentLine.getLog() and newLine.getLog():
             self._zoomCorner1 = _Numeric.array(self.rescaleLinLog([self._zoomCorner1], currentLine.getYrange(), newLine.getYrange()))[0]
             self._zoomCorner2 = _Numeric.array(self.rescaleLinLog([self._zoomCorner2], currentLine.getYrange(), newLine.getYrange()))[0]
@@ -628,7 +578,7 @@ class Grapher(plot.PlotCanvas):
                         marker = plot.PolyMarker([l.getData()[0], l.getData()[-1]], size=1.1, marker="bmp", fillcolour='black')
                     else:
                         marker = plot.PolyMarker(l.getData(), size=1.1, marker="bmp", fillcolour='black')
-                    if CeciliaLib.getVar("currentModule") != None:
+                    if CeciliaLib.getVar("currentModule") != None and l.getModified():
                         if widget_type == "graph":
                             CeciliaLib.getVar("currentModule")._graphs[l.name].setValue(data)
                         elif widget_type == "range":
@@ -637,6 +587,9 @@ class Grapher(plot.PlotCanvas):
                             CeciliaLib.getVar("currentModule")._samplers[sampler_name].setGraph(l.name, data)
                         elif widget_type == "slider":
                             CeciliaLib.getVar("currentModule")._sliders[l.name].setGraph(data)
+                        elif widget_type == "plugin_knob":
+                            CeciliaLib.getVar("audioServer").setPluginGraph(slider.getParentVPos(), slider.getKnobPos(), data)
+                        l.setModified(False)
                 else:
                     if needRedrawNonSelCurves:
                         if currentLog:
@@ -653,7 +606,7 @@ class Grapher(plot.PlotCanvas):
                     else:
                         dataToDraw = l.dataToDraw
                     line = plot.PolyLine(dataToDraw, colour=col, width=1, legend=l.getLabel())
-                    marker = plot.PolyMarker([], size=1, marker="dot")
+                    marker = plot.PolyMarker([], size=1, marker="none")
                 if l.getLog():
                     line.setLogScale((False, True))
                     marker.setLogScale((False, True))
@@ -664,16 +617,18 @@ class Grapher(plot.PlotCanvas):
                 lines.append(line)
                 markers.append(marker)
                 if self.selectedPoints and index == self.selected:
-                    selmarker = plot.PolyMarker([l.getData()[selp] for selp in self.selectedPoints], 
+                    try:
+                        selmarker = plot.PolyMarker([l.getData()[selp] for selp in self.selectedPoints], 
                                                 size=1.5, marker="bmpsel", fillcolour='white')
-                    markers.append(selmarker)
+                        markers.append(selmarker)
+                    except:
+                        pass
                 self.visibleLines.append(l)
         lines.extend(markers)
 
         gc = plot.PlotGraphics(lines, 'Title', '', '')
         self.Draw(gc, xAxis = (0, self.totaltime), yAxis = currentYrange)
         self._currentData = self.getRawData()
-        self.zoom()
 
     def OnLeave(self, event):
         self.curve = None
@@ -1016,6 +971,8 @@ class Grapher(plot.PlotCanvas):
             # Check for mouse over
             else:
                 self.lineOver = None
+                if self.selected >= len(self.data) or self.selected < 0:
+                    self.selected = 0
                 curve = self.data[self.selected]
 
                 # Check mouse over if curved
@@ -1027,6 +984,7 @@ class Grapher(plot.PlotCanvas):
                             l = self.data.index(self.visibleLines[ldata[0]])
                             if self.data.index(curve) == l:
                                 self.lineOver = self.data.index(curve)
+                                self.lineOverGate = True
                 else:
                     # Check mouse over if not curved
                     currentYrange = curve.getYrange()
@@ -1039,16 +997,24 @@ class Grapher(plot.PlotCanvas):
                         i = len(curveData) - 3
                     if distanceToSegment(checkPos, curveData[i], curveData[i+1], 0, self.totaltime, currentYrange[0], currentYrange[1], False, curve.getLog()) <= pourcent:
                         self.lineOver = self.data.index(curve)
+                        self.lineOverGate = True
                     elif distanceToSegment(checkPos, curveData[i-1], curveData[i], 0, self.totaltime, currentYrange[0], currentYrange[1], False, curve.getLog()) <= pourcent:
                         self.lineOver = self.data.index(curve)
+                        self.lineOverGate = True
                     elif distanceToSegment(checkPos, curveData[i+1], curveData[i+2], 0, self.totaltime, currentYrange[0], currentYrange[1], False, curve.getLog()) <= pourcent:
                         self.lineOver = self.data.index(curve)
+                        self.lineOverGate = True
                     else:
                         self.lineOver = None
-                self.draw()
+                if self.lineOverGate:
+                    self.draw()
+                if self.lineOver == None:
+                    self.lineOverGate = False
 
         elif self._tool == 1 and event.LeftIsDown():
             pos = self.GetXY(event)
+            if self._pencilOldPos == None:
+                self._pencilOldPos = pos
             line = self.data[self.selected]
             if pos[0] < 0.0: pos = [0.0, pos[1]]
             elif pos[0] > CeciliaLib.getVar("totalTime"): pos = [CeciliaLib.getVar("totalTime"), pos[1]]
@@ -1107,14 +1073,17 @@ class Grapher(plot.PlotCanvas):
             self.parent.toolbar.radiotoolbox.setTool('hand')
         elif key in [wx.WXK_DELETE, wx.WXK_NUMPAD_DELETE, wx.WXK_BACK]:
             if self.selectedPoints:
-                points = [self.data[self.selected].getData()[p] for p in self.selectedPoints]
+                numpts = len(self.data[self.selected].getData())
+                points = [self.data[self.selected].getData()[p] for p in self.selectedPoints if p not in [0, numpts-1]]
                 for p in points:
-                    if not p[0] in [0.0, CeciliaLib.getVar("totalTime")]:
-                        self.data[self.selected].deletePointFromPoint(p)
+                    self.data[self.selected].deletePointFromPoint(p)
                 self.selectedPoints = []
                 self.draw()
                 self.checkForHistory()
-
+        elif key in [wx.WXK_LEFT, wx.WXK_RIGHT, wx.WXK_UP, wx.WXK_DOWN]:
+            # TODO: The idea here is to move the selected points with arrows
+            pass
+            
         if self._zoomed and key == wx.WXK_ESCAPE:
             self._zoomed = False
             self.draw()
@@ -1180,14 +1149,14 @@ class Grapher(plot.PlotCanvas):
         return math.sqrt(pow((p2[0]-p1[0])*xscl, 2) + pow(Y, 2))
 
 class ToolBar(wx.Panel):
-    def __init__(self, parent, size=(-1,25), tools=[], toolFunctions=None):
+    def __init__(self, parent, size=(-1,30), tools=[], toolFunctions=None):
         wx.Panel.__init__(self, parent, -1, size=size)
         self.SetBackgroundColour(TITLE_BACK_COLOUR)
-        self.box = wx.FlexGridSizer(1, 7, 5, 0)
+        self.box = wx.FlexGridSizer(1, 7, 5, 5)
         self.parent = parent
         ffakePanel = wx.Panel(self, -1, size=(5, self.GetSize()[1]))
         ffakePanel.SetBackgroundColour(TITLE_BACK_COLOUR)
-        self.menu = CustomMenu(self, choice=[], size=(130,20), init=None, outFunction=self.parent.onPopupMenu)
+        self.menu = CustomMenu(self, choice=[], size=(150,20), init=None, outFunction=self.parent.onPopupMenu)
         self.menu.setBackgroundColour(TITLE_BACK_COLOUR)
         self.menu.SetToolTip(CECTooltip(TT_GRAPH_POPUP))
         self.toolbox = ToolBox(self, tools=tools, outFunction=toolFunctions)
@@ -1196,12 +1165,14 @@ class ToolBar(wx.Panel):
         self.convertSlider.setBackColour(TITLE_BACK_COLOUR)
         self.convertSlider.SetToolTip(CECTooltip(TT_RES_SLIDER))
 
-        fakePanel = wx.Panel(self, -1, size=(10, self.GetSize()[1]))
+        tw, th = self.GetTextExtent("loading buffers...    ")
+        fakePanel = wx.Panel(self, -1, size=(tw, self.GetSize()[1]))
         fakePanel.SetBackgroundColour(TITLE_BACK_COLOUR)
         if CeciliaLib.getVar("systemPlatform") == "win32":
-            self.loadingMsg = GenStaticText(fakePanel, -1, label="loading buffers...    ", pos=(-1, 5))
+            self.loadingMsg = GenStaticText(fakePanel, -1, label="loading buffers...    ", pos=(-1, 7))
         else:
-            self.loadingMsg = wx.StaticText(fakePanel, -1, label="loading buffers...    ", pos=(-1, 5))            
+            self.loadingMsg = wx.StaticText(fakePanel, -1, label="loading buffers...    ", pos=(-1, 7))            
+        self.loadingMsg.SetBackgroundColour(TITLE_BACK_COLOUR)
         self.loadingMsg.SetForegroundColour(TITLE_BACK_COLOUR)
         font = self.loadingMsg.GetFont()
         font.SetFaceName(FONT_FACE)
@@ -1209,23 +1180,16 @@ class ToolBar(wx.Panel):
         self.loadingMsg.SetFont(font)
         self.loadingMsg.Refresh()
 
-        if CeciliaLib.getVar("moduleDescription") != '':
-            helpButton = CloseBox(fakePanel, size=(18,18), pos=(25,2), outFunction=self.onShowModuleDescription, 
-                                  label=CeciliaLib.getVar("currentCeciliaFile", unicode=True))
-            helpButton.setBackgroundColour(TITLE_BACK_COLOUR)
-            helpButton.setInsideColour(CONTROLLABEL_BACK_COLOUR)
-            helpButton.setTextMagnify(2)
-
         self.radiotoolbox = RadioToolBox(self, outFunction=[self.toolPointer, self.toolPencil, self.toolZoom, self.toolHand])
         self.palettetoolbox = PaletteToolBox(self)
 
         self.box.Add(ffakePanel, 0)
-        self.box.Add(self.menu, 0, wx.BOTTOM | wx.LEFT, 5)
-        self.box.Add(self.toolbox, 0, wx.BOTTOM | wx.LEFT, 5)
-        self.box.Add(self.convertSlider, 0, wx.TOP | wx.BOTTOM | wx.LEFT, 6)
-        self.box.Add(fakePanel, 0, wx.EXPAND | wx.RIGHT, 20)
-        self.box.Add(self.radiotoolbox, 0, wx.RIGHT, 20)
-        self.box.Add(self.palettetoolbox, 0, wx.RIGHT, 20)
+        self.box.Add(self.menu, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, 5)
+        self.box.Add(self.toolbox, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, 5)
+        self.box.Add(self.convertSlider, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, 5)
+        self.box.Add(fakePanel, 1, wx.EXPAND | wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 20)
+        self.box.Add(self.radiotoolbox, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 20)
+        self.box.Add(self.palettetoolbox, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 20)
 
         self.Bind(wx.EVT_CHAR, self.OnKeyDown)
 
@@ -1234,16 +1198,12 @@ class ToolBar(wx.Panel):
 
         self.Bind(wx.EVT_LEAVE_WINDOW, self.OnLooseFocus)
         fakePanel.Bind(wx.EVT_LEAVE_WINDOW, self.OnLooseFocus)
-
-    def onShowModuleDescription(self):
-        pos = wx.GetMousePosition()
-        pop = TextPopupFrame(self, CeciliaLib.getVar("moduleDescription"), pos=(pos[0]-100,pos[1]+20))
         
     def OnLooseFocus(self, event):
         win = wx.FindWindowAtPointer()
         if win != None:
             win = win.GetTopLevelParent()
-            if win not in [CeciliaLib.getVar("mainFrame"), CeciliaLib.getVar("interface")]:
+            if win not in [CeciliaLib.getVar("mainFrame"), CeciliaLib.getVar("interface"), CeciliaLib.getVar("spectrumFrame")]:
                 win.Raise()
         event.Skip()
 
@@ -1292,17 +1252,19 @@ class CursorPanel(wx.Panel):
 
     def createBitmap(self):
         w, h = 10, 10
-        maskColour = "#FFFFFF"
+        maskColour = GRAPHER_BACK_COLOUR
         b = wx.EmptyBitmap(w,h)
         dc = wx.MemoryDC(b)
+        gc = wx.GraphicsContext_Create(dc)
         dc.SetBrush(wx.Brush(maskColour))
         dc.SetPen(wx.Pen(maskColour))
         dc.Clear()
         rec = wx.Rect(0, 0, w, h)
         dc.DrawRectangleRect(rec)
-        dc.SetBrush(wx.Brush(GRADIENT_DARK_COLOUR, wx.SOLID))
-        dc.SetPen(wx.Pen(GRADIENT_DARK_COLOUR, 1, wx.SOLID))
-        dc.DrawPolygon([(4, h-1), (0, h-7), (8, h-7)])
+        gc.SetBrush(wx.Brush(GRADIENT_DARK_COLOUR, wx.SOLID))
+        gc.SetPen(wx.Pen(GRADIENT_DARK_COLOUR, 1, wx.SOLID))
+        tri = [(4, h-1), (0, h-7), (8, h-7), (4, h-1)]
+        gc.DrawLines(tri)
         dc.SelectObject(wx.NullBitmap)
         b.SetMaskColour(maskColour)
         return b
@@ -1311,7 +1273,7 @@ class CursorPanel(wx.Panel):
         win = wx.FindWindowAtPointer()
         if win != None:
             win = win.GetTopLevelParent()
-            if win not in [CeciliaLib.getVar("mainFrame"), CeciliaLib.getVar("interface")]:
+            if win not in [CeciliaLib.getVar("mainFrame"), CeciliaLib.getVar("interface"), CeciliaLib.getVar("spectrumFrame")]:
                 win.Raise()
         event.Skip()
 
@@ -1337,7 +1299,7 @@ class CursorPanel(wx.Panel):
         dc.SetPen(wx.Pen(GRAPHER_BACK_COLOUR))
         dc.SetBrush(wx.Brush(GRAPHER_BACK_COLOUR))
         dc.DrawRectangle(0, 0, w, h)
-        dc.DrawBitmap(self.bitmap, curtime-4, 0, True)
+        dc.DrawBitmap(self.bitmap, curtime-4, 0)
     
     def setTime(self, time):
         self.time = time
@@ -1345,7 +1307,11 @@ class CursorPanel(wx.Panel):
 
 class CECGrapher(wx.Panel):
     def __init__(self, parent, id=wx.ID_ANY, pos=(20,20), size=(100, 100)):
-        wx.Panel.__init__(self, parent, id=id, pos=pos, size=size)
+        if CeciliaLib.getVar("systemPlatform") == "win32":
+            BORDER = wx.DOUBLE_BORDER
+        else:
+            BORDER = wx.SIMPLE_BORDER
+        wx.Panel.__init__(self, parent, id=id, pos=pos, size=size, style=BORDER)
         self.parent = parent
         self.SetMinSize((100,100))
         self.SetBackgroundColour(BACKGROUND_COLOUR)
@@ -1400,9 +1366,29 @@ class CECGrapher(wx.Panel):
     def setTotalTime(self, time):
         self.plotter.setTotalTime(time)
 
+    def setSamplerLineStates(self, name, state):
+        names = ['%s %s' % (name, n) for n in ['Loop In', 'Loop Time', 'Loop X', 'Gain', 'Transpo']]
+        labels = self.toolbar.getPopupChoice()
+        if state:
+            for n in names:
+                if n not in labels:
+                    labels.append(n)
+        else:
+            for n in names:
+                if n in labels:
+                    labels.remove(n)
+        self.toolbar.setPopupChoice(labels)
+        names = ['%s%s' % (name, n) for n in ['start', 'end', 'xfade', 'gain', 'trans']]
+        if not state:
+            for line in self.plotter.getData():
+                if line.getName() in names:
+                    line.setShow(False)
+        self.plotter.draw()
+        
     def createLines(self, list):
         for l in list:
             self.createLine(l[0], l[1], l[2], l[3], l[4], l[5], l[6], l[7])
+        self.plotter.draw()
 
     def createLine(self, points, yrange, colour, label, log, name, size, curved):
         self.plotter.createLine(points, yrange, colour, label, log, name, size, curved=curved)
@@ -1410,13 +1396,14 @@ class CECGrapher(wx.Panel):
     def createSliderLines(self, list):
         for l in list:
             self.createSliderLine(l[0], l[1], l[2], l[3], l[4], l[5], l[6], l[7], l[8])
+        self.plotter.draw()
 
     def createSliderLine(self, points, yrange, colour, label, log, name, size, sl, suffix):
         self.plotter.createLine(points, yrange, colour, label, log, name, size, sl, suffix)
 
     def OnSave(self):
         line = self.plotter.getLine(self.plotter.getSelected())
-        dlg = wx.FileDialog(self, message="Save file as ...", defaultDir=os.getcwd(), 
+        dlg = wx.FileDialog(self, message="Save file as ...", defaultDir=CeciliaLib.ensureNFD(os.getcwd()), 
                             defaultFile="", style=wx.SAVE)
         if dlg.ShowModal() == wx.ID_OK:
             path = dlg.GetPath()
@@ -1427,8 +1414,9 @@ class CECGrapher(wx.Panel):
 
     def OnLoad(self):
         line = self.plotter.getLine(self.plotter.getSelected())
-        dlg = wx.FileDialog(self, message="Choose a grapher file", defaultDir=CeciliaLib.getVar("grapherLinePath"), 
-            defaultFile="", style=wx.OPEN | wx.CHANGE_DIR)
+        dlg = wx.FileDialog(self, message="Choose a grapher file", 
+                defaultDir=CeciliaLib.ensureNFD(CeciliaLib.getVar("grapherLinePath")), 
+                defaultFile="", style=wx.OPEN | wx.CHANGE_DIR)
         if dlg.ShowModal() == wx.ID_OK:
             path = dlg.GetPath()
             CeciliaLib.setVar("grapherLinePath", os.path.split(path)[0])
@@ -1452,6 +1440,7 @@ class CECGrapher(wx.Panel):
         dlg.Destroy()
 
     def onReset(self):
+        self.plotter.unselectPoints()
         self.getSelected().reset()
         self.plotter.draw()
 
@@ -1640,9 +1629,11 @@ def checkLogValidity(linlog, mini, maxi, verbose=False):
             CeciliaLib.showErrorDialog('Error when building interface!', "'min' or 'max' arguments can't be 0 for a logarithmic cgraph. Reset to 'lin'.")
         log = False
     return log
-    
-def buildGrapher(parent, list, totaltime):
-    grapher = CECGrapher(parent, -1)
+   
+def getGrapher(parent):
+    return CECGrapher(parent)
+
+def buildGrapher(grapher, list, totaltime):
     grapher.setTotalTime(totaltime)
 
     widgetlist = []
@@ -1681,7 +1672,7 @@ def buildGrapher(parent, list, totaltime):
         log = checkLogValidity(linlog, mini, maxi, True)
         col = widget['col']
         col = checkColourValidity(col)
-        colour = chooseColourFromName(col)
+        colour = CeciliaLib.chooseColourFromName(col)
         labelList.append(label)
         linelist.append([func, (mini, maxi), colour, label, log, name, size, curved])
     if linelist:
@@ -1705,7 +1696,7 @@ def buildGrapher(parent, list, totaltime):
         func = checkFunctionValidity(func, totaltime)
         col = widget['col']
         col = checkColourValidity(col)
-        colour = chooseColourFromName(col)
+        colour = CeciliaLib.chooseColourFromName(col)
         linlog = widget['rel']
         log = checkLogValidity(linlog, mini, maxi)
         for slider in CeciliaLib.getVar("userSliders"):
@@ -1741,9 +1732,9 @@ def buildGrapher(parent, list, totaltime):
             col = widget.get('col', '')
             col = checkColourValidity(col)
             if up:
-                colour = chooseColourFromName("grey")
+                colour = CeciliaLib.chooseColourFromName("grey")
             else:
-                colour = chooseColourFromName(col) 
+                colour = CeciliaLib.chooseColourFromName(col) 
             linlog = widget['rel']
             log = checkLogValidity(linlog, mini, maxi)
             for slider in CeciliaLib.getVar("userSliders"):
@@ -1779,9 +1770,9 @@ def buildGrapher(parent, list, totaltime):
             col = widget.get('col', '')
             col = checkColourValidity(col)
             if up:
-                colour = chooseColourFromName("grey")
+                colour = CeciliaLib.chooseColourFromName("grey")
             else:
-                colour = chooseColourFromName(col) 
+                colour = CeciliaLib.chooseColourFromName(col) 
             linlog = widget['rel']
             log = checkLogValidity(linlog, mini, maxi)
             for slider in CeciliaLib.getVar("userSliders"):
@@ -1799,7 +1790,7 @@ def buildGrapher(parent, list, totaltime):
     linelist = []
     samplerSliderNames = []
     for i, widget in enumerate(widgetlist3):
-        colour = chooseColour(5, 5)
+        colour = CeciliaLib.chooseColour(5, 5)
         mini = widget.slider.getRange()[0]
         maxi = widget.slider.getRange()[1]
         init = widget.slider.getInit()
@@ -1834,7 +1825,6 @@ def buildGrapher(parent, list, totaltime):
     grapher.toolbar.setPopupChoice(labelList)
     grapher.plotter.drawCursor(0)
     grapher.plotter._graphCreation = False
-    return grapher
 
 def convert(path, slider, threshold, fromSlider=False, which=None):
     if not fromSlider:
diff --git a/Resources/Plugins.py b/Resources/Plugins.py
index 743ae83..2ac95da 100644
--- a/Resources/Plugins.py
+++ b/Resources/Plugins.py
@@ -23,6 +23,55 @@ from constants import *
 import CeciliaLib
 from Widgets import *
 
+class PluginArrow(wx.Panel):
+    def __init__(self, parent, dir="up", size=(8,10), outFunction=None, colour=None):
+        wx.Panel.__init__(self, parent, -1, size=size)
+        self.SetMaxSize(self.GetSize())
+        self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
+        self.SetBackgroundColour(BACKGROUND_COLOUR)
+        self.outFunction = outFunction
+        self.dir = dir
+        self.hover = 0
+        if colour:
+            self.colour = colour
+        else:
+            self.colour = BACKGROUND_COLOUR
+        if self.dir == "up":
+            self.bitmaps = [ICON_PLUGINS_ARROW_UP.GetBitmap(), ICON_PLUGINS_ARROW_UP_HOVER.GetBitmap()]
+        else:
+            self.bitmaps = [ICON_PLUGINS_ARROW_DOWN.GetBitmap(), ICON_PLUGINS_ARROW_DOWN_HOVER.GetBitmap()]
+        self.Bind(wx.EVT_PAINT, self.OnPaint)
+        self.Bind(wx.EVT_LEFT_DOWN, self.MouseDown)
+        self.Bind(wx.EVT_ENTER_WINDOW, self.MouseEnter)
+        self.Bind(wx.EVT_LEAVE_WINDOW, self.MouseLeave)
+
+    def MouseEnter(self, evt):
+        self.hover = 1
+        wx.CallAfter(self.Refresh)
+        
+    def MouseLeave(self, evt):
+        self.hover = 0
+        wx.CallAfter(self.Refresh)
+
+    def OnPaint(self, event):
+        w,h = self.GetSize()
+        dc = wx.AutoBufferedPaintDC(self)
+
+        dc.SetBrush(wx.Brush(BACKGROUND_COLOUR, wx.SOLID))
+        dc.Clear()
+
+        # Draw background
+        dc.SetPen(wx.Pen(BACKGROUND_COLOUR, width=0, style=wx.SOLID))
+        dc.DrawRectangle(0, 0, w, h)
+
+        dc.DrawBitmap(self.bitmaps[self.hover], 0, 0, True)
+
+    def MouseDown(self, event):
+        if self.outFunction:
+            self.outFunction(self.dir)
+        #wx.CallAfter(self.Refresh)
+        event.Skip()
+
 class PluginKnob(ControlKnob):
     def __init__(self, parent, minvalue, maxvalue, init=None, pos=(0,0), size=(50,70), 
                 log=False, outFunction=None, integer=False, backColour=None, label=''):
@@ -45,6 +94,13 @@ class PluginKnob(ControlKnob):
         self.rec = False
         self.convertSliderValue = 200
 
+    def getParentVPos(self):
+        return self.GetParent().vpos
+
+    def getKnobPos(self):
+        names = self.GetParent().getKnobNames()
+        return names.index(self.name)
+
     def setConvertSliderValue(self, x, end=None):
         self.convertSliderValue = x
 
@@ -214,9 +270,20 @@ class Plugin(wx.Panel):
         self.SetBackgroundColour(BACKGROUND_COLOUR)
         self.choiceFunc = choiceFunc
         self.order = order
+        self.vpos = order
+
+    def setKnobLabels(self):
+        if self.pluginName != 'None':
+            for i, knob in enumerate(self.getKnobs()):
+                knob.setLongLabel("PP%d %s %s" % (self.vpos+1, self.pluginName, knob.getLabel()))
 
+    def setKnobNames(self):
+        if self.pluginName != 'None':
+            for i, knob in enumerate(self.getKnobs()):
+                knob.setName(self.knobNameTemplates[i] % self.vpos)
+        
     def replacePlugin(self, i, new):
-        self.choiceFunc(self.order, new)
+        wx.CallLater(50, self.choiceFunc, self.vpos, new)
 
     def getName(self):
         return self.pluginName
@@ -256,22 +323,63 @@ class Plugin(wx.Panel):
     def onChangeKnob1(self, x):
         if self.knob1.getState()[1] in [0,1]:
             if CeciliaLib.getVar("currentModule") != None:
-                CeciliaLib.getVar("audioServer").setPluginValue(self.order, 0, x)
+                CeciliaLib.getVar("audioServer").setPluginValue(self.vpos, 0, x)
 
     def onChangeKnob2(self, x):
         if self.knob2.getState()[1] in [0,1]:
             if CeciliaLib.getVar("currentModule") != None:
-                CeciliaLib.getVar("audioServer").setPluginValue(self.order, 1, x)
+                CeciliaLib.getVar("audioServer").setPluginValue(self.vpos, 1, x)
 
     def onChangeKnob3(self, x):
         if self.knob3.getState()[1] in [0,1]:
             if CeciliaLib.getVar("currentModule") != None:
-                CeciliaLib.getVar("audioServer").setPluginValue(self.order, 2, x)
+                CeciliaLib.getVar("audioServer").setPluginValue(self.vpos, 2, x)
 
     def onChangePreset(self, x, label=None):
         if CeciliaLib.getVar("currentModule") != None:
-            CeciliaLib.getVar("audioServer").setPluginPreset(self.order, x, label)
-        
+            CeciliaLib.getVar("audioServer").setPluginPreset(self.vpos, x, label)
+
+    def createHeadBox(self):
+        self.headBox = wx.BoxSizer(wx.HORIZONTAL)
+        plugChoiceText = wx.StaticText(self, -1, 'Effects:')
+        plugChoiceText.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
+        plugChoiceText.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
+        self.headBox.Add(plugChoiceText, 0)
+        self.tw,th = plugChoiceText.GetTextExtent('Effects:')
+        self.headBox.AddSpacer((75 - self.tw, -1))
+        self.arrowUp = PluginArrow(self, "up", outFunction=self.arrowLeftDown)
+        self.headBox.Add(self.arrowUp, 0)
+        self.arrowDown = PluginArrow(self, "down", outFunction=self.arrowLeftDown)
+        self.headBox.Add(self.arrowDown, 0)
+        if self.vpos == 0:
+            self.headBox.GetChildren()[1].AssignSpacer((83 - self.tw, -1))
+            self.arrowUp.Hide()
+        if self.vpos == (NUM_OF_PLUGINS - 1):
+            self.arrowDown.Hide()
+
+    def checkArrows(self):
+        if self.vpos == 0:
+            self.headBox.GetChildren()[1].AssignSpacer((83 - self.tw, -1))
+            self.arrowUp.Hide()
+            self.arrowDown.Show()
+            self.headBox.Layout()
+        elif self.vpos == (NUM_OF_PLUGINS - 1):
+            self.headBox.GetChildren()[1].AssignSpacer((75 - self.tw, -1))
+            self.arrowUp.Show()
+            self.arrowDown.Hide()
+            self.headBox.Layout()
+        else:
+            self.headBox.GetChildren()[1].AssignSpacer((75 - self.tw, -1))
+            self.arrowUp.Show()
+            self.arrowDown.Show()
+            self.headBox.Layout()
+
+    def arrowLeftDown(self, dir):
+        if dir == "up":
+            CeciliaLib.getControlPanel().movePlugin(self.vpos, -1)
+        else:
+            CeciliaLib.getControlPanel().movePlugin(self.vpos, 1)
+
 class NonePlugin(Plugin):
     def __init__(self, parent, choiceFunc, order):
         Plugin.__init__(self, parent, choiceFunc, order)
@@ -291,16 +399,14 @@ class NonePlugin(Plugin):
         self.knob3.setEnable(False)    
         self.sizer.Add(self.knob3)
         
-        plugChoiceText = wx.StaticText(self, -1, 'Effects:')
-        plugChoiceText.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
-        plugChoiceText.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
-        revMenuBox.Add(plugChoiceText, 0, wx.TOP, 0)
+        self.createHeadBox()
+        revMenuBox.Add(self.headBox, 0, wx.TOP, 0)
         self.choice = CustomMenu(self, choice=PLUGINS_CHOICE, init='None', size=(93,18), colour=PLUGINPOPUP_BACK_COLOUR, outFunction=self.replacePlugin)
         self.choice.SetToolTip(CECTooltip(TT_POST_ITEMS))
         revMenuBox.Add(self.choice, 0, wx.TOP, 2)
         
         plugChoicePreset = wx.StaticText(self, -1, 'Type:')
-        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         plugChoicePreset.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
         revMenuBox.Add(plugChoicePreset, 0, wx.TOP, 6)
         self.preset = CustomMenu(self, choice=['None'], init='None', size=(93,18), colour=CONTROLLABEL_BACK_COLOUR)
@@ -314,40 +420,38 @@ class ReverbPlugin(Plugin):
     def __init__(self, parent, choiceFunc, order):
         Plugin.__init__(self, parent, choiceFunc, order)
         self.pluginName = 'Reverb'
+        self.knobNameTemplates = ['plugin_%d_reverb_mix', 'plugin_%d_reverb_time', 'plugin_%d_reverb_damp']
         self.sizer = wx.FlexGridSizer(1,4,0,0)
         revMenuBox = wx.BoxSizer(wx.VERTICAL)
 
         self.knob1 = PluginKnob(self, 0, 1, 0.25, size=(43,70), log=False, outFunction=self.onChangeKnob1, label='Mix')
-        self.knob1.setName('plugin_%d_reverb_mix' % self.order)       
-        self.knob1.setLongLabel('plugin %d Reverb Mix' % (self.order+1))       
+        self.knob1.setName(self.knobNameTemplates[0] % self.order)       
         self.sizer.Add(self.knob1)
 
         self.knob2 = PluginKnob(self, 0.01, 10, 1, size=(43,70), log=False, outFunction=self.onChangeKnob2, label='Time')        
-        self.knob2.setName('plugin_%d_reverb_time' % self.order)       
-        self.knob2.setLongLabel('plugin %d Reverb Time' % (self.order+1))       
+        self.knob2.setName(self.knobNameTemplates[1] % self.order)       
         self.sizer.Add(self.knob2)
 
         self.knob3 = PluginKnob(self, 0, 1, 0.5, size=(43,70), log=False, outFunction=self.onChangeKnob3, label='Damp')        
-        self.knob3.setName('plugin_%d_reverb_damp' % self.order)       
-        self.knob3.setLongLabel('plugin %d Reverb Damp' % (self.order+1))       
+        self.knob3.setName(self.knobNameTemplates[2] % self.order)       
         self.sizer.Add(self.knob3)
+
+        self.setKnobLabels()
         
-        plugChoiceText = wx.StaticText(self, -1, 'Effects:')
-        plugChoiceText.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
-        plugChoiceText.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
-        revMenuBox.Add(plugChoiceText, 0, wx.TOP, 0)
+        self.createHeadBox()
+        revMenuBox.Add(self.headBox, 0, wx.TOP, 0)
         self.choice = CustomMenu(self, choice=PLUGINS_CHOICE, init='Reverb', size=(93,18), colour=PLUGINPOPUP_BACK_COLOUR, outFunction=self.replacePlugin)
         self.choice.SetToolTip(CECTooltip(TT_POST_ITEMS))
         revMenuBox.Add(self.choice, 0, wx.TOP, 2)
         
         plugChoicePreset = wx.StaticText(self, -1, 'Type:')
-        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         plugChoicePreset.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
         revMenuBox.Add(plugChoicePreset, 0, wx.TOP, 6)
         self.preset = CustomMenu(self, choice=['Bypass', 'Active'], init='Active', size=(93,18), colour=CONTROLLABEL_BACK_COLOUR, outFunction=self.onChangePreset)
         self.presetName = 'plugin_%d_reverb_preset' % self.order                     
         revMenuBox.Add(self.preset, 0, wx.TOP, 2)
-        
+
         self.sizer.Add(revMenuBox, 0, wx.LEFT, 5)
         self.SetSizer(self.sizer)
 
@@ -355,34 +459,33 @@ class WGReverbPlugin(Plugin):
     def __init__(self, parent, choiceFunc, order):
         Plugin.__init__(self, parent, choiceFunc, order)
         self.pluginName = 'WGVerb'
+        self.knobNameTemplates = ['plugin_%d_wgreverb_mix', 'plugin_%d_wgreverb_feed', 'plugin_%d_wgreverb_lp']
         self.sizer = wx.FlexGridSizer(1,4,0,0)
         revMenuBox = wx.BoxSizer(wx.VERTICAL)
 
         self.knob1 = PluginKnob(self, 0, 1, 0.25, size=(43,70), log=False, outFunction=self.onChangeKnob1, label='Mix')
-        self.knob1.setName('plugin_%d_wgreverb_mix' % self.order)       
-        self.knob1.setLongLabel('plugin %d WGVerb Mix' % (self.order+1))       
+        self.knob1.setName(self.knobNameTemplates[0] % self.order)       
         self.sizer.Add(self.knob1)
 
         self.knob2 = PluginKnob(self, 0., 1, 0.7, size=(43,70), log=False, outFunction=self.onChangeKnob2, label='Feed')        
-        self.knob2.setName('plugin_%d_wgreverb_feed' % self.order)       
-        self.knob2.setLongLabel('plugin %d WGVerb Feed' % (self.order+1))       
+        self.knob2.setName(self.knobNameTemplates[1] % self.order)       
         self.sizer.Add(self.knob2)
 
         self.knob3 = PluginKnob(self, 100, 15000, 5000, size=(43,70), log=True, outFunction=self.onChangeKnob3, label='Cutoff')        
-        self.knob3.setName('plugin_%d_wgreverb_lp' % self.order)       
-        self.knob3.setLongLabel('plugin %d WGVerb Cutoff' % (self.order+1))       
+        self.knob3.setName(self.knobNameTemplates[2] % self.order)
+        self.knob3.setFloatPrecision(2)   
         self.sizer.Add(self.knob3)
 
-        plugChoiceText = wx.StaticText(self, -1, 'Effects:')
-        plugChoiceText.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
-        plugChoiceText.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
-        revMenuBox.Add(plugChoiceText, 0, wx.TOP, 0)
+        self.setKnobLabels()
+
+        self.createHeadBox()
+        revMenuBox.Add(self.headBox, 0, wx.TOP, 0)
         self.choice = CustomMenu(self, choice=PLUGINS_CHOICE, init='WGVerb', size=(93,18), colour=PLUGINPOPUP_BACK_COLOUR, outFunction=self.replacePlugin)
         self.choice.SetToolTip(CECTooltip(TT_POST_ITEMS))
         revMenuBox.Add(self.choice, 0, wx.TOP, 2)
 
         plugChoicePreset = wx.StaticText(self, -1, 'Type:')
-        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         plugChoicePreset.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
         revMenuBox.Add(plugChoicePreset, 0, wx.TOP, 6)
         self.preset = CustomMenu(self, choice=['Bypass', 'Active'], init='Active', size=(93,18), colour=CONTROLLABEL_BACK_COLOUR, outFunction=self.onChangePreset)
@@ -396,35 +499,33 @@ class FilterPlugin(Plugin):
     def __init__(self, parent, choiceFunc, order):
         Plugin.__init__(self, parent, choiceFunc, order)
         self.pluginName = 'Filter'
+        self.knobNameTemplates = ['plugin_%d_filter_level', 'plugin_%d_filter_freq', 'plugin_%d_filter_q']
         self.sizer = wx.FlexGridSizer(1,4,0,0)
         revMenuBox = wx.BoxSizer(wx.VERTICAL)
 
         self.knob1 = PluginKnob(self, 0, 2, 1, size=(43,70), log=False, outFunction=self.onChangeKnob1, label='Level')
-        self.knob1.setName('plugin_%d_filter_level' % self.order)       
-        self.knob1.setLongLabel('plugin %d Filter Level' % (self.order+1))       
+        self.knob1.setName(self.knobNameTemplates[0] % self.order)       
         self.sizer.Add(self.knob1)
 
         self.knob2 = PluginKnob(self, 20, 18000, 1000, size=(43,70), log=True, outFunction=self.onChangeKnob2, label='Freq')        
-        self.knob2.setName('plugin_%d_filter_freq' % self.order)       
-        self.knob2.setLongLabel('plugin %d Filter Freq' % (self.order+1))  
+        self.knob2.setName(self.knobNameTemplates[1] % self.order)       
         self.knob2.setFloatPrecision(0)     
         self.sizer.Add(self.knob2)
 
         self.knob3 = PluginKnob(self, 0.5, 10, 1, size=(43,70), log=False, outFunction=self.onChangeKnob3, label='Q')        
-        self.knob3.setName('plugin_%d_filter_q' % self.order)       
-        self.knob3.setLongLabel('plugin %d Filter Q' % (self.order+1))       
+        self.knob3.setName(self.knobNameTemplates[2] % self.order)       
         self.sizer.Add(self.knob3)
 
-        plugChoiceText = wx.StaticText(self, -1, 'Effects:')
-        plugChoiceText.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
-        plugChoiceText.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
-        revMenuBox.Add(plugChoiceText, 0, wx.TOP, 0)
+        self.setKnobLabels()
+
+        self.createHeadBox()
+        revMenuBox.Add(self.headBox, 0, wx.TOP, 0)
         self.choice = CustomMenu(self, choice=PLUGINS_CHOICE, init='Filter', size=(93,18), colour=PLUGINPOPUP_BACK_COLOUR, outFunction=self.replacePlugin)
         self.choice.SetToolTip(CECTooltip(TT_POST_ITEMS))
         revMenuBox.Add(self.choice, 0, wx.TOP, 2)
 
         plugChoicePreset = wx.StaticText(self, -1, 'Type:')
-        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         plugChoicePreset.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
         revMenuBox.Add(plugChoicePreset, 0, wx.TOP, 6)
         self.preset = CustomMenu(self, choice=['Bypass', 'Lowpass', 'Highpass', 'Bandpass', 'Bandreject'], init='Lowpass', size=(93,18), 
@@ -439,35 +540,33 @@ class EQPlugin(Plugin):
     def __init__(self, parent, choiceFunc, order):
         Plugin.__init__(self, parent, choiceFunc, order)
         self.pluginName = 'Para EQ'
+        self.knobNameTemplates = ['plugin_%d_eq_freq', 'plugin_%d_eq_q', 'plugin_%d_eq_gain']
         self.sizer = wx.FlexGridSizer(1,4,0,0)
         revMenuBox = wx.BoxSizer(wx.VERTICAL)
 
         self.knob1 = PluginKnob(self, 20, 18000, 1000, size=(43,70), log=True, outFunction=self.onChangeKnob1, label='Freq')
-        self.knob1.setName('plugin_%d_eq_freq' % self.order)       
-        self.knob1.setLongLabel('plugin %d EQ Freq' % (self.order+1))       
+        self.knob1.setName(self.knobNameTemplates[0] % self.order)       
         self.knob1.setFloatPrecision(0)     
         self.sizer.Add(self.knob1)
 
         self.knob2 = PluginKnob(self, .5, 10, 1, size=(43,70), log=False, outFunction=self.onChangeKnob2, label='Q')
-        self.knob2.setName('plugin_%d_eq_q' % self.order)
-        self.knob2.setLongLabel('plugin %d EQ Q' % (self.order+1))
+        self.knob2.setName(self.knobNameTemplates[1] % self.order)
         self.sizer.Add(self.knob2)
 
         self.knob3 = PluginKnob(self, -48, 18, -3, size=(43,70), log=False, outFunction=self.onChangeKnob3, label='Gain')
-        self.knob3.setName('plugin_%d_eq_gain' % self.order)       
-        self.knob3.setLongLabel('plugin %d EQ Gain' % (self.order+1))       
+        self.knob3.setName(self.knobNameTemplates[2] % self.order)       
         self.sizer.Add(self.knob3)
 
-        plugChoiceText = wx.StaticText(self, -1, 'Effects:')
-        plugChoiceText.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
-        plugChoiceText.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
-        revMenuBox.Add(plugChoiceText, 0, wx.TOP, 0)
+        self.setKnobLabels()
+
+        self.createHeadBox()
+        revMenuBox.Add(self.headBox, 0, wx.TOP, 0)
         self.choice = CustomMenu(self, choice=PLUGINS_CHOICE, init='Para EQ', size=(93,18), colour=PLUGINPOPUP_BACK_COLOUR, outFunction=self.replacePlugin)
         self.choice.SetToolTip(CECTooltip(TT_POST_ITEMS))
         revMenuBox.Add(self.choice, 0, wx.TOP, 2)
 
         plugChoicePreset = wx.StaticText(self, -1, 'Type:')
-        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         plugChoicePreset.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
         revMenuBox.Add(plugChoicePreset, 0, wx.TOP, 6)
         self.preset = CustomMenu(self, choice=['Bypass', 'Peak/Notch', 'Lowshelf', 'Highshelf'], init='Active', size=(93,18), 
@@ -482,37 +581,35 @@ class EQ3BPlugin(Plugin):
     def __init__(self, parent, choiceFunc, order):
         Plugin.__init__(self, parent, choiceFunc, order)
         self.pluginName = '3 Bands EQ'
+        self.knobNameTemplates = ['plugin_%d_eq3b_low', 'plugin_%d_eq3b_mid', 'plugin_%d_eq3b_high']
         self.sizer = wx.FlexGridSizer(1,4,0,0)
         revMenuBox = wx.BoxSizer(wx.VERTICAL)
 
         self.knob1 = PluginKnob(self, -60, 18, 0, size=(43,70), log=False, outFunction=self.onChangeKnob1, label='Low')
-        self.knob1.setName('plugin_%d_eq3b_low' % self.order)       
-        self.knob1.setLongLabel('plugin %d 3 Bands EQ Low' % (self.order+1))
+        self.knob1.setName(self.knobNameTemplates[0] % self.order)       
         self.knob1.setFloatPrecision(2)
         self.sizer.Add(self.knob1)
 
         self.knob2 = PluginKnob(self, -60, 18, 0, size=(43,70), log=False, outFunction=self.onChangeKnob2, label='Mid')        
-        self.knob2.setName('plugin_%d_eq3b_mid' % self.order)       
-        self.knob2.setLongLabel('plugin %d 3 Bands EQ Mid' % (self.order+1))  
+        self.knob2.setName(self.knobNameTemplates[1] % self.order)       
         self.knob2.setFloatPrecision(2)
         self.sizer.Add(self.knob2)
 
         self.knob3 = PluginKnob(self, -60, 18, 0, size=(43,70), log=False, outFunction=self.onChangeKnob3, label='High')        
-        self.knob3.setName('plugin_%d_eq3b_high' % self.order)       
-        self.knob3.setLongLabel('plugin %d 3 Bands EQ High' % (self.order+1))       
+        self.knob3.setName(self.knobNameTemplates[2] % self.order)       
         self.knob3.setFloatPrecision(2)
         self.sizer.Add(self.knob3)
 
-        plugChoiceText = wx.StaticText(self, -1, 'Effects:')
-        plugChoiceText.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
-        plugChoiceText.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
-        revMenuBox.Add(plugChoiceText, 0, wx.TOP, 0)
+        self.setKnobLabels()
+
+        self.createHeadBox()
+        revMenuBox.Add(self.headBox, 0, wx.TOP, 0)
         self.choice = CustomMenu(self, choice=PLUGINS_CHOICE, init='3 Bands EQ', size=(93,18), colour=PLUGINPOPUP_BACK_COLOUR, outFunction=self.replacePlugin)
         self.choice.SetToolTip(CECTooltip(TT_POST_ITEMS))
         revMenuBox.Add(self.choice, 0, wx.TOP, 2)
 
         plugChoicePreset = wx.StaticText(self, -1, 'Type:')
-        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         plugChoicePreset.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
         revMenuBox.Add(plugChoicePreset, 0, wx.TOP, 6)
         self.preset = CustomMenu(self, choice=['Bypass', 'Active'], init='Active', size=(93,18), 
@@ -527,34 +624,32 @@ class ChorusPlugin(Plugin):
     def __init__(self, parent, choiceFunc, order):
         Plugin.__init__(self, parent, choiceFunc, order)
         self.pluginName = 'Chorus'
+        self.knobNameTemplates = ['plugin_%d_chorus_mix', 'plugin_%d_chorus_depth', 'plugin_%d_chorus_feed']
         self.sizer = wx.FlexGridSizer(1,4,0,0)
         revMenuBox = wx.BoxSizer(wx.VERTICAL)
 
         self.knob1 = PluginKnob(self, 0, 1, 0.5, size=(43,70), log=False, outFunction=self.onChangeKnob1, label='Mix')
-        self.knob1.setName('plugin_%d_chorus_mix' % self.order)       
-        self.knob1.setLongLabel('plugin %d Chorus Mix' % (self.order+1))       
+        self.knob1.setName(self.knobNameTemplates[0] % self.order)       
         self.sizer.Add(self.knob1)
 
         self.knob2 = PluginKnob(self, 0.001, 5., 0.2, size=(43,70), log=False, outFunction=self.onChangeKnob2, label='Depth')        
-        self.knob2.setName('plugin_%d_chorus_depth' % self.order)       
-        self.knob2.setLongLabel('plugin %d Chorus Depth' % (self.order+1))  
+        self.knob2.setName(self.knobNameTemplates[1] % self.order)       
         self.sizer.Add(self.knob2)
 
         self.knob3 = PluginKnob(self, 0, 1, .5, size=(43,70), log=False, outFunction=self.onChangeKnob3, label='Feed')        
-        self.knob3.setName('plugin_%d_chorus_feed' % self.order)       
-        self.knob3.setLongLabel('plugin %d Chorus Feed' % (self.order+1))       
+        self.knob3.setName(self.knobNameTemplates[2] % self.order)       
         self.sizer.Add(self.knob3)
 
-        plugChoiceText = wx.StaticText(self, -1, 'Effects:')
-        plugChoiceText.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
-        plugChoiceText.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
-        revMenuBox.Add(plugChoiceText, 0, wx.TOP, 0)
+        self.setKnobLabels()
+
+        self.createHeadBox()
+        revMenuBox.Add(self.headBox, 0, wx.TOP, 0)
         self.choice = CustomMenu(self, choice=PLUGINS_CHOICE, init='Chorus', size=(93,18), colour=PLUGINPOPUP_BACK_COLOUR, outFunction=self.replacePlugin)
         self.choice.SetToolTip(CECTooltip(TT_POST_ITEMS))
         revMenuBox.Add(self.choice, 0, wx.TOP, 2)
 
         plugChoicePreset = wx.StaticText(self, -1, 'Type:')
-        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         plugChoicePreset.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
         revMenuBox.Add(plugChoicePreset, 0, wx.TOP, 6)
         self.preset = CustomMenu(self, choice=['Bypass', 'Active'], init='Flange', size=(93,18), 
@@ -569,36 +664,34 @@ class CompressPlugin(Plugin):
     def __init__(self, parent, choiceFunc, order):
         Plugin.__init__(self, parent, choiceFunc, order)
         self.pluginName = 'Compress'
+        self.knobNameTemplates = ['plugin_%d_comp_thresh', 'plugin_%d_comp_ratio', 'plugin_%d_comp_gain']
         self.sizer = wx.FlexGridSizer(1,4,0,0)
         revMenuBox = wx.BoxSizer(wx.VERTICAL)
 
         self.knob1 = PluginKnob(self, -80, 0, -20, size=(43,70), log=False, outFunction=self.onChangeKnob1, label='Thresh')
-        self.knob1.setName('plugin_%d_comp_thresh' % self.order)       
-        self.knob1.setLongLabel('plugin %d Compress Thresh' % (self.order+1))       
+        self.knob1.setName(self.knobNameTemplates[0] % self.order)       
         self.knob1.setFloatPrecision(1)     
         self.sizer.Add(self.knob1)
 
         self.knob2 = PluginKnob(self, 0.125, 20, 3, size=(43,70), log=False, outFunction=self.onChangeKnob2, label='Ratio')        
-        self.knob2.setName('plugin_%d_comp_ratio' % self.order)       
-        self.knob2.setLongLabel('plugin %d Compress Ratio' % (self.order+1))  
+        self.knob2.setName(self.knobNameTemplates[1] % self.order)       
         self.knob2.setFloatPrecision(3)
         self.sizer.Add(self.knob2)
 
         self.knob3 = PluginKnob(self, -36, 36, 0, size=(43,70), log=False, outFunction=self.onChangeKnob3, label='Gain')        
-        self.knob3.setName('plugin_%d_comp_gain' % self.order)       
-        self.knob3.setLongLabel('plugin %d Compress Gain' % (self.order+1))       
+        self.knob3.setName(self.knobNameTemplates[2] % self.order)       
         self.sizer.Add(self.knob3)
 
-        plugChoiceText = wx.StaticText(self, -1, 'Effects:')
-        plugChoiceText.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
-        plugChoiceText.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
-        revMenuBox.Add(plugChoiceText, 0, wx.TOP, 0)
+        self.setKnobLabels()
+
+        self.createHeadBox()
+        revMenuBox.Add(self.headBox, 0, wx.TOP, 0)
         self.choice = CustomMenu(self, choice=PLUGINS_CHOICE, init='Compress', size=(93,18), colour=PLUGINPOPUP_BACK_COLOUR, outFunction=self.replacePlugin)
         self.choice.SetToolTip(CECTooltip(TT_POST_ITEMS))
         revMenuBox.Add(self.choice, 0, wx.TOP, 2)
 
         plugChoicePreset = wx.StaticText(self, -1, 'Type:')
-        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         plugChoicePreset.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
         revMenuBox.Add(plugChoicePreset, 0, wx.TOP, 6)
         self.preset = CustomMenu(self, choice=['Bypass', 'Active'], init='Active', size=(93,18), 
@@ -613,34 +706,32 @@ class GatePlugin(Plugin):
     def __init__(self, parent, choiceFunc, order):
         Plugin.__init__(self, parent, choiceFunc, order)
         self.pluginName = 'Gate'
+        self.knobNameTemplates = ['plugin_%d_gate_thresh', 'plugin_%d_gate_rise', 'plugin_%d_gate_fall']
         self.sizer = wx.FlexGridSizer(1,4,0,0)
         revMenuBox = wx.BoxSizer(wx.VERTICAL)
 
         self.knob1 = PluginKnob(self, -120, 0, -70, size=(43,70), log=False, outFunction=self.onChangeKnob1, label='Thresh')
-        self.knob1.setName('plugin_%d_gate_thresh' % self.order)       
-        self.knob1.setLongLabel('plugin %d Gate Thresh' % (self.order+1))       
+        self.knob1.setName(self.knobNameTemplates[0] % self.order)       
         self.sizer.Add(self.knob1)
 
         self.knob2 = PluginKnob(self, 0.0005, .5, 0.005, size=(43,70), log=True, outFunction=self.onChangeKnob2, label='Rise')        
-        self.knob2.setName('plugin_%d_gate_rise' % self.order)       
-        self.knob2.setLongLabel('plugin %d Gate Rise' % (self.order+1))  
+        self.knob2.setName(self.knobNameTemplates[1] % self.order)       
         self.sizer.Add(self.knob2)
 
         self.knob3 = PluginKnob(self, 0.0005, .5, .01, size=(43,70), log=True, outFunction=self.onChangeKnob3, label='Fall')        
-        self.knob3.setName('plugin_%d_gate_fall' % self.order)       
-        self.knob3.setLongLabel('plugin %d Gate Fall' % (self.order+1))       
+        self.knob3.setName(self.knobNameTemplates[2] % self.order)       
         self.sizer.Add(self.knob3)
 
-        plugChoiceText = wx.StaticText(self, -1, 'Effects:')
-        plugChoiceText.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
-        plugChoiceText.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
-        revMenuBox.Add(plugChoiceText, 0, wx.TOP, 0)
+        self.setKnobLabels()
+
+        self.createHeadBox()
+        revMenuBox.Add(self.headBox, 0, wx.TOP, 0)
         self.choice = CustomMenu(self, choice=PLUGINS_CHOICE, init='Gate', size=(93,18), colour=PLUGINPOPUP_BACK_COLOUR, outFunction=self.replacePlugin)
         self.choice.SetToolTip(CECTooltip(TT_POST_ITEMS))
         revMenuBox.Add(self.choice, 0, wx.TOP, 2)
 
         plugChoicePreset = wx.StaticText(self, -1, 'Type:')
-        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         plugChoicePreset.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
         revMenuBox.Add(plugChoicePreset, 0, wx.TOP, 6)
         self.preset = CustomMenu(self, choice=['Bypass', 'Active'], init='Active', size=(93,18), 
@@ -655,34 +746,32 @@ class DistoPlugin(Plugin):
     def __init__(self, parent, choiceFunc, order):
         Plugin.__init__(self, parent, choiceFunc, order)
         self.pluginName = 'Disto'
+        self.knobNameTemplates = ['plugin_%d_disto_drive', 'plugin_%d_disto_slope', 'plugin_%d_disto_gain']
         self.sizer = wx.FlexGridSizer(1,4,0,0)
         revMenuBox = wx.BoxSizer(wx.VERTICAL)
 
         self.knob1 = PluginKnob(self, 0, 1, .7, size=(43,70), log=False, outFunction=self.onChangeKnob1, label='Drive')
-        self.knob1.setName('plugin_%d_disto_drive' % self.order)       
-        self.knob1.setLongLabel('plugin %d Disto Drive' % (self.order+1))       
+        self.knob1.setName(self.knobNameTemplates[0] % self.order)       
         self.sizer.Add(self.knob1)
 
         self.knob2 = PluginKnob(self, 0, 1, .7, size=(43,70), log=False, outFunction=self.onChangeKnob2, label='Slope')        
-        self.knob2.setName('plugin_%d_disto_slope' % self.order)       
-        self.knob2.setLongLabel('plugin %d Disto Slope' % (self.order+1))  
+        self.knob2.setName(self.knobNameTemplates[1] % self.order)       
         self.sizer.Add(self.knob2)
 
         self.knob3 = PluginKnob(self, -60, 0, -12, size=(43,70), log=False, outFunction=self.onChangeKnob3, label='Gain')        
-        self.knob3.setName('plugin_%d_disto_gain' % self.order)       
-        self.knob3.setLongLabel('plugin %d Disto Gain' % (self.order+1))       
+        self.knob3.setName(self.knobNameTemplates[2] % self.order)       
         self.sizer.Add(self.knob3)
 
-        plugChoiceText = wx.StaticText(self, -1, 'Effects:')
-        plugChoiceText.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
-        plugChoiceText.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
-        revMenuBox.Add(plugChoiceText, 0, wx.TOP, 0)
+        self.setKnobLabels()
+
+        self.createHeadBox()
+        revMenuBox.Add(self.headBox, 0, wx.TOP, 0)
         self.choice = CustomMenu(self, choice=PLUGINS_CHOICE, init='Disto', size=(93,18), colour=PLUGINPOPUP_BACK_COLOUR, outFunction=self.replacePlugin)
         self.choice.SetToolTip(CECTooltip(TT_POST_ITEMS))
         revMenuBox.Add(self.choice, 0, wx.TOP, 2)
 
         plugChoicePreset = wx.StaticText(self, -1, 'Type:')
-        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         plugChoicePreset.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
         revMenuBox.Add(plugChoicePreset, 0, wx.TOP, 6)
         self.preset = CustomMenu(self, choice=['Bypass', 'Active'], init='Active', size=(93,18), 
@@ -697,34 +786,32 @@ class AmpModPlugin(Plugin):
     def __init__(self, parent, choiceFunc, order):
         Plugin.__init__(self, parent, choiceFunc, order)
         self.pluginName = 'AmpMod'
+        self.knobNameTemplates = ['plugin_%d_ampmod_freq', 'plugin_%d_ampmod_amp', 'plugin_%d_ampmod_stereo']
         self.sizer = wx.FlexGridSizer(1,4,0,0)
         revMenuBox = wx.BoxSizer(wx.VERTICAL)
 
         self.knob1 = PluginKnob(self, 0.01, 1000, 8, size=(43,70), log=True, outFunction=self.onChangeKnob1, label='Freq')
-        self.knob1.setName('plugin_%d_ampmod_freq' % self.order)       
-        self.knob1.setLongLabel('plugin %d AmpMod Freq' % (self.order+1))       
+        self.knob1.setName(self.knobNameTemplates[0] % self.order)       
         self.sizer.Add(self.knob1)
 
         self.knob2 = PluginKnob(self, 0, 1, 1, size=(43,70), log=False, outFunction=self.onChangeKnob2, label='Amp')        
-        self.knob2.setName('plugin_%d_ampmod_amp' % self.order)       
-        self.knob2.setLongLabel('plugin %d AmpMod Amp' % (self.order+1))  
+        self.knob2.setName(self.knobNameTemplates[1] % self.order)       
         self.sizer.Add(self.knob2)
 
         self.knob3 = PluginKnob(self, 0, 0.5, 0, size=(43,70), log=False, outFunction=self.onChangeKnob3, label='Stereo')        
-        self.knob3.setName('plugin_%d_ampmod_stereo' % self.order)       
-        self.knob3.setLongLabel('plugin %d AmpMod Stereo' % (self.order+1))       
+        self.knob3.setName(self.knobNameTemplates[2] % self.order)       
         self.sizer.Add(self.knob3)
 
-        plugChoiceText = wx.StaticText(self, -1, 'Effects:')
-        plugChoiceText.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
-        plugChoiceText.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
-        revMenuBox.Add(plugChoiceText, 0, wx.TOP, 0)
+        self.setKnobLabels()
+
+        self.createHeadBox()
+        revMenuBox.Add(self.headBox, 0, wx.TOP, 0)
         self.choice = CustomMenu(self, choice=PLUGINS_CHOICE, init='AmpMod', size=(93,18), colour=PLUGINPOPUP_BACK_COLOUR, outFunction=self.replacePlugin)
         self.choice.SetToolTip(CECTooltip(TT_POST_ITEMS))
         revMenuBox.Add(self.choice, 0, wx.TOP, 2)
 
         plugChoicePreset = wx.StaticText(self, -1, 'Type:')
-        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         plugChoicePreset.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
         revMenuBox.Add(plugChoicePreset, 0, wx.TOP, 6)
         self.preset = CustomMenu(self, choice=['Bypass', 'Amplitude', 'RingMod'], init='Amplitude', size=(93,18), 
@@ -739,35 +826,33 @@ class PhaserPlugin(Plugin):
     def __init__(self, parent, choiceFunc, order):
         Plugin.__init__(self, parent, choiceFunc, order)
         self.pluginName = 'Phaser'
+        self.knobNameTemplates = ['plugin_%d_phaser_freq', 'plugin_%d_phaser_q', 'plugin_%d_phaser_spread']
         self.sizer = wx.FlexGridSizer(1,4,0,0)
         revMenuBox = wx.BoxSizer(wx.VERTICAL)
 
         self.knob1 = PluginKnob(self, 20, 1000, 100, size=(43,70), log=True, outFunction=self.onChangeKnob1, label='Freq')
-        self.knob1.setName('plugin_%d_phaser_freq' % self.order)       
-        self.knob1.setLongLabel('plugin %d Phaser Freq' % (self.order+1))       
+        self.knob1.setName(self.knobNameTemplates[0] % self.order)       
         self.knob1.setFloatPrecision(2)     
         self.sizer.Add(self.knob1)
 
         self.knob2 = PluginKnob(self, 1, 20, 5, size=(43,70), log=False, outFunction=self.onChangeKnob2, label='Q')        
-        self.knob2.setName('plugin_%d_phaser_q' % self.order)       
-        self.knob2.setLongLabel('plugin %d Phaser Q' % (self.order+1))  
+        self.knob2.setName(self.knobNameTemplates[1] % self.order)       
         self.sizer.Add(self.knob2)
 
         self.knob3 = PluginKnob(self, .5, 2, 1.1, size=(43,70), log=False, outFunction=self.onChangeKnob3, label='Spread')        
-        self.knob3.setName('plugin_%d_phaser_spread' % self.order)       
-        self.knob3.setLongLabel('plugin %d Phaser Spread' % (self.order+1))       
+        self.knob3.setName(self.knobNameTemplates[2] % self.order)       
         self.sizer.Add(self.knob3)
 
-        plugChoiceText = wx.StaticText(self, -1, 'Effects:')
-        plugChoiceText.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
-        plugChoiceText.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
-        revMenuBox.Add(plugChoiceText, 0, wx.TOP, 0)
+        self.setKnobLabels()
+
+        self.createHeadBox()
+        revMenuBox.Add(self.headBox, 0, wx.TOP, 0)
         self.choice = CustomMenu(self, choice=PLUGINS_CHOICE, init='Phaser', size=(93,18), colour=PLUGINPOPUP_BACK_COLOUR, outFunction=self.replacePlugin)
         self.choice.SetToolTip(CECTooltip(TT_POST_ITEMS))
         revMenuBox.Add(self.choice, 0, wx.TOP, 2)
 
         plugChoicePreset = wx.StaticText(self, -1, 'Type:')
-        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         plugChoicePreset.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
         revMenuBox.Add(plugChoicePreset, 0, wx.TOP, 6)
         self.preset = CustomMenu(self, choice=['Bypass', 'Active'], init='Active', size=(93,18), 
@@ -782,34 +867,32 @@ class DelayPlugin(Plugin):
     def __init__(self, parent, choiceFunc, order):
         Plugin.__init__(self, parent, choiceFunc, order)
         self.pluginName = 'Delay'
+        self.knobNameTemplates = ['plugin_%d_delay_delay', 'plugin_%d_delay_feed', 'plugin_%d_delay_mix']
         self.sizer = wx.FlexGridSizer(1,4,0,0)
         revMenuBox = wx.BoxSizer(wx.VERTICAL)
 
         self.knob1 = PluginKnob(self, 0.01, 1, .1, size=(43,70), log=False, outFunction=self.onChangeKnob1, label='Delay')
-        self.knob1.setName('plugin_%d_delay_delay' % self.order)       
-        self.knob1.setLongLabel('plugin %d Delay Delay' % (self.order+1))       
+        self.knob1.setName(self.knobNameTemplates[0] % self.order)       
         self.sizer.Add(self.knob1)
 
         self.knob2 = PluginKnob(self, 0, .999, 0, size=(43,70), log=False, outFunction=self.onChangeKnob2, label='Feed')        
-        self.knob2.setName('plugin_%d_delay_feed' % self.order)       
-        self.knob2.setLongLabel('plugin %d Delay Feed' % (self.order+1))  
+        self.knob2.setName(self.knobNameTemplates[1] % self.order)       
         self.sizer.Add(self.knob2)
 
         self.knob3 = PluginKnob(self, 0, 1, 0.5, size=(43,70), log=False, outFunction=self.onChangeKnob3, label='Mix')        
-        self.knob3.setName('plugin_%d_delay_mix' % self.order)       
-        self.knob3.setLongLabel('plugin %d Delay Mix' % (self.order+1))       
+        self.knob3.setName(self.knobNameTemplates[2] % self.order)       
         self.sizer.Add(self.knob3)
 
-        plugChoiceText = wx.StaticText(self, -1, 'Effects:')
-        plugChoiceText.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
-        plugChoiceText.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
-        revMenuBox.Add(plugChoiceText, 0, wx.TOP, 0)
+        self.setKnobLabels()
+
+        self.createHeadBox()
+        revMenuBox.Add(self.headBox, 0, wx.TOP, 0)
         self.choice = CustomMenu(self, choice=PLUGINS_CHOICE, init='Delay', size=(93,18), colour=PLUGINPOPUP_BACK_COLOUR, outFunction=self.replacePlugin)
         self.choice.SetToolTip(CECTooltip(TT_POST_ITEMS))
         revMenuBox.Add(self.choice, 0, wx.TOP, 2)
 
         plugChoicePreset = wx.StaticText(self, -1, 'Type:')
-        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         plugChoicePreset.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
         revMenuBox.Add(plugChoicePreset, 0, wx.TOP, 6)
         self.preset = CustomMenu(self, choice=['Bypass', 'Active'], init='Active', size=(93,18), 
@@ -824,34 +907,32 @@ class FlangePlugin(Plugin):
     def __init__(self, parent, choiceFunc, order):
         Plugin.__init__(self, parent, choiceFunc, order)
         self.pluginName = 'Flange'
+        self.knobNameTemplates = ['plugin_%d_flange_depth', 'plugin_%d_flange_freq', 'plugin_%d_flange_feed']
         self.sizer = wx.FlexGridSizer(1,4,0,0)
         revMenuBox = wx.BoxSizer(wx.VERTICAL)
 
         self.knob1 = PluginKnob(self, 0.001, .99, .5, size=(43,70), log=False, outFunction=self.onChangeKnob1, label='Depth')
-        self.knob1.setName('plugin_%d_flange_depth' % self.order)       
-        self.knob1.setLongLabel('plugin %d Flange Depth' % (self.order+1))       
+        self.knob1.setName(self.knobNameTemplates[0] % self.order)       
         self.sizer.Add(self.knob1)
 
-        self.knob2 = PluginKnob(self, 0.005, 20, 1, size=(43,70), log=True, outFunction=self.onChangeKnob2, label='Freq')        
-        self.knob2.setName('plugin_%d_flange_freq' % self.order)       
-        self.knob2.setLongLabel('plugin %d Flange Freq' % (self.order+1))  
+        self.knob2 = PluginKnob(self, 0.001, 20, 1, size=(43,70), log=True, outFunction=self.onChangeKnob2, label='Freq')        
+        self.knob2.setName(self.knobNameTemplates[1] % self.order)       
         self.sizer.Add(self.knob2)
 
         self.knob3 = PluginKnob(self, 0, .999, 0.5, size=(43,70), log=False, outFunction=self.onChangeKnob3, label='Feed')        
-        self.knob3.setName('plugin_%d_flange_feed' % self.order)       
-        self.knob3.setLongLabel('plugin %d Flange Feed' % (self.order+1))       
+        self.knob3.setName(self.knobNameTemplates[2] % self.order)       
         self.sizer.Add(self.knob3)
 
-        plugChoiceText = wx.StaticText(self, -1, 'Effects:')
-        plugChoiceText.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
-        plugChoiceText.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
-        revMenuBox.Add(plugChoiceText, 0, wx.TOP, 0)
+        self.setKnobLabels()
+
+        self.createHeadBox()
+        revMenuBox.Add(self.headBox, 0, wx.TOP, 0)
         self.choice = CustomMenu(self, choice=PLUGINS_CHOICE, init='Flange', size=(93,18), colour=PLUGINPOPUP_BACK_COLOUR, outFunction=self.replacePlugin)
         self.choice.SetToolTip(CECTooltip(TT_POST_ITEMS))
         revMenuBox.Add(self.choice, 0, wx.TOP, 2)
 
         plugChoicePreset = wx.StaticText(self, -1, 'Type:')
-        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         plugChoicePreset.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
         revMenuBox.Add(plugChoicePreset, 0, wx.TOP, 6)
         self.preset = CustomMenu(self, choice=['Bypass', 'Active'], init='Active', size=(93,18), 
@@ -866,34 +947,32 @@ class HarmonizerPlugin(Plugin):
     def __init__(self, parent, choiceFunc, order):
         Plugin.__init__(self, parent, choiceFunc, order)
         self.pluginName = 'Harmonizer'
+        self.knobNameTemplates = ['plugin_%d_harmonizer_transpo', 'plugin_%d_harmonizer_feed', 'plugin_%d_harmonizer_mix']
         self.sizer = wx.FlexGridSizer(1,4,0,0)
         revMenuBox = wx.BoxSizer(wx.VERTICAL)
 
         self.knob1 = PluginKnob(self, -24, 24, -7, size=(43,70), log=False, outFunction=self.onChangeKnob1, label='Transpo')
-        self.knob1.setName('plugin_%d_harmonizer_transpo' % self.order)       
-        self.knob1.setLongLabel('plugin %d Harmonizer Transpo' % (self.order+1))       
+        self.knob1.setName(self.knobNameTemplates[0] % self.order)       
         self.sizer.Add(self.knob1)
 
         self.knob2 = PluginKnob(self, 0, .999, 0, size=(43,70), log=False, outFunction=self.onChangeKnob2, label='Feed')        
-        self.knob2.setName('plugin_%d_harmonizer_feed' % self.order)       
-        self.knob2.setLongLabel('plugin %d Harmonizer Feed' % (self.order+1))  
+        self.knob2.setName(self.knobNameTemplates[1] % self.order)       
         self.sizer.Add(self.knob2)
 
         self.knob3 = PluginKnob(self, 0, 1, 0.5, size=(43,70), log=False, outFunction=self.onChangeKnob3, label='Mix')        
-        self.knob3.setName('plugin_%d_harmonizer_mix' % self.order)       
-        self.knob3.setLongLabel('plugin %d Harmonizer Mix' % (self.order+1))       
+        self.knob3.setName(self.knobNameTemplates[2] % self.order)       
         self.sizer.Add(self.knob3)
 
-        plugChoiceText = wx.StaticText(self, -1, 'Effects:')
-        plugChoiceText.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
-        plugChoiceText.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
-        revMenuBox.Add(plugChoiceText, 0, wx.TOP, 0)
+        self.setKnobLabels()
+
+        self.createHeadBox()
+        revMenuBox.Add(self.headBox, 0, wx.TOP, 0)
         self.choice = CustomMenu(self, choice=PLUGINS_CHOICE, init='Harmonizer', size=(93,18), colour=PLUGINPOPUP_BACK_COLOUR, outFunction=self.replacePlugin)
         self.choice.SetToolTip(CECTooltip(TT_POST_ITEMS))
         revMenuBox.Add(self.choice, 0, wx.TOP, 2)
 
         plugChoicePreset = wx.StaticText(self, -1, 'Type:')
-        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         plugChoicePreset.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
         revMenuBox.Add(plugChoicePreset, 0, wx.TOP, 6)
         self.preset = CustomMenu(self, choice=['Bypass', 'Active'], init='Active', size=(93,18), 
@@ -909,35 +988,33 @@ class ResonatorsPlugin(Plugin):
     def __init__(self, parent, choiceFunc, order):
         Plugin.__init__(self, parent, choiceFunc, order)
         self.pluginName = 'Resonators'
+        self.knobNameTemplates = ['plugin_%d_resonators_freq', 'plugin_%d_resonators_spread', 'plugin_%d_resonators_mix']
         self.sizer = wx.FlexGridSizer(1,4,0,0)
         revMenuBox = wx.BoxSizer(wx.VERTICAL)
 
         self.knob1 = PluginKnob(self, 20, 1000, 80, size=(43,70), log=True, outFunction=self.onChangeKnob1, label='Freq')
-        self.knob1.setName('plugin_%d_resonators_freq' % self.order)       
-        self.knob1.setLongLabel('plugin %d Resonators Freq' % (self.order+1))       
+        self.knob1.setName(self.knobNameTemplates[0] % self.order)       
         self.knob1.setFloatPrecision(2)     
         self.sizer.Add(self.knob1)
 
         self.knob2 = PluginKnob(self, .25, 4, 2.01, size=(43,70), log=False, outFunction=self.onChangeKnob2, label='Spread')        
-        self.knob2.setName('plugin_%d_resonators_spread' % self.order)       
-        self.knob2.setLongLabel('plugin %d Resonators Spread' % (self.order+1))  
+        self.knob2.setName(self.knobNameTemplates[1] % self.order)       
         self.sizer.Add(self.knob2)
 
         self.knob3 = PluginKnob(self, 0, 1, 0.33, size=(43,70), log=False, outFunction=self.onChangeKnob3, label='Mix')        
-        self.knob3.setName('plugin_%d_resonators_mix' % self.order)       
-        self.knob3.setLongLabel('plugin %d Resonators Mix' % (self.order+1))       
+        self.knob3.setName(self.knobNameTemplates[2] % self.order)       
         self.sizer.Add(self.knob3)
 
-        plugChoiceText = wx.StaticText(self, -1, 'Effects:')
-        plugChoiceText.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
-        plugChoiceText.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
-        revMenuBox.Add(plugChoiceText, 0, wx.TOP, 0)
+        self.setKnobLabels()
+
+        self.createHeadBox()
+        revMenuBox.Add(self.headBox, 0, wx.TOP, 0)
         self.choice = CustomMenu(self, choice=PLUGINS_CHOICE, init='Resonators', size=(93,18), colour=PLUGINPOPUP_BACK_COLOUR, outFunction=self.replacePlugin)
         self.choice.SetToolTip(CECTooltip(TT_POST_ITEMS))
         revMenuBox.Add(self.choice, 0, wx.TOP, 2)
 
         plugChoicePreset = wx.StaticText(self, -1, 'Type:')
-        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         plugChoicePreset.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
         revMenuBox.Add(plugChoicePreset, 0, wx.TOP, 6)
         self.preset = CustomMenu(self, choice=['Bypass', 'Active'], init='Active', size=(93,18), 
@@ -952,35 +1029,33 @@ class DeadResonPlugin(Plugin):
     def __init__(self, parent, choiceFunc, order):
         Plugin.__init__(self, parent, choiceFunc, order)
         self.pluginName = 'DeadReson'
+        self.knobNameTemplates = ['plugin_%d_deadresonators_freq', 'plugin_%d_deadresonators_detune', 'plugin_%d_deadresonators_mix']
         self.sizer = wx.FlexGridSizer(1,4,0,0)
         revMenuBox = wx.BoxSizer(wx.VERTICAL)
 
         self.knob1 = PluginKnob(self, 20, 1000, 80, size=(43,70), log=True, outFunction=self.onChangeKnob1, label='Freq')
-        self.knob1.setName('plugin_%d_deadresonators_freq' % self.order)       
-        self.knob1.setLongLabel('plugin %d DeadReson Freq' % (self.order+1))       
+        self.knob1.setName(self.knobNameTemplates[0] % self.order)       
         self.knob1.setFloatPrecision(2)     
         self.sizer.Add(self.knob1)
 
         self.knob2 = PluginKnob(self, 0, 1, 0.5, size=(43,70), log=False, outFunction=self.onChangeKnob2, label='Detune')        
-        self.knob2.setName('plugin_%d_deadresonators_detune' % self.order)       
-        self.knob2.setLongLabel('plugin %d DeadReson Detune' % (self.order+1))  
+        self.knob2.setName(self.knobNameTemplates[1] % self.order)       
         self.sizer.Add(self.knob2)
 
         self.knob3 = PluginKnob(self, 0, 1, 0.33, size=(43,70), log=False, outFunction=self.onChangeKnob3, label='Mix')        
-        self.knob3.setName('plugin_%d_deadresonators_mix' % self.order)       
-        self.knob3.setLongLabel('plugin %d DeadReson Mix' % (self.order+1))       
+        self.knob3.setName(self.knobNameTemplates[2] % self.order)       
         self.sizer.Add(self.knob3)
 
-        plugChoiceText = wx.StaticText(self, -1, 'Effects:')
-        plugChoiceText.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
-        plugChoiceText.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
-        revMenuBox.Add(plugChoiceText, 0, wx.TOP, 0)
+        self.setKnobLabels()
+
+        self.createHeadBox()
+        revMenuBox.Add(self.headBox, 0, wx.TOP, 0)
         self.choice = CustomMenu(self, choice=PLUGINS_CHOICE, init='DeadReson', size=(93,18), colour=PLUGINPOPUP_BACK_COLOUR, outFunction=self.replacePlugin)
         self.choice.SetToolTip(CECTooltip(TT_POST_ITEMS))
         revMenuBox.Add(self.choice, 0, wx.TOP, 2)
 
         plugChoicePreset = wx.StaticText(self, -1, 'Type:')
-        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         plugChoicePreset.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
         revMenuBox.Add(plugChoicePreset, 0, wx.TOP, 6)
         self.preset = CustomMenu(self, choice=['Bypass', 'Active'], init='Active', size=(93,18), 
@@ -990,3 +1065,43 @@ class DeadResonPlugin(Plugin):
 
         self.sizer.Add(revMenuBox, 0, wx.LEFT, 5)
         self.SetSizer(self.sizer)
+
+class ChaosModPlugin(Plugin):
+    def __init__(self, parent, choiceFunc, order):
+        Plugin.__init__(self, parent, choiceFunc, order)
+        self.pluginName = 'ChaosMod'
+        self.knobNameTemplates = ['plugin_%d_chaosmod_freq', 'plugin_%d_chaosmod_amp', 'plugin_%d_chaosmod_amp']
+        self.sizer = wx.FlexGridSizer(1,4,0,0)
+        revMenuBox = wx.BoxSizer(wx.VERTICAL)
+
+        self.knob1 = PluginKnob(self, 0.001, 1, 0.025, size=(43,70), log=True, outFunction=self.onChangeKnob1, label='Speed')
+        self.knob1.setName(self.knobNameTemplates[0] % self.order)       
+        self.sizer.Add(self.knob1)
+
+        self.knob2 = PluginKnob(self, 0, 1, 0.5, size=(43,70), log=False, outFunction=self.onChangeKnob2, label='Chaos')    
+        self.knob2.setName(self.knobNameTemplates[1] % self.order)       
+        self.sizer.Add(self.knob2)
+
+        self.knob3 = PluginKnob(self, 0, 1, 1, size=(43,70), log=False, outFunction=self.onChangeKnob3, label='Amp')        
+        self.knob3.setName(self.knobNameTemplates[2] % self.order)       
+        self.sizer.Add(self.knob3)
+
+        self.setKnobLabels()
+
+        self.createHeadBox()
+        revMenuBox.Add(self.headBox, 0, wx.TOP, 0)
+        self.choice = CustomMenu(self, choice=PLUGINS_CHOICE, init='ChaosMod', size=(93,18), colour=PLUGINPOPUP_BACK_COLOUR, outFunction=self.replacePlugin)
+        self.choice.SetToolTip(CECTooltip(TT_POST_ITEMS))
+        revMenuBox.Add(self.choice, 0, wx.TOP, 2)
+
+        plugChoicePreset = wx.StaticText(self, -1, 'Type:')
+        plugChoicePreset.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
+        plugChoicePreset.SetForegroundColour(TEXT_LABELFORWIDGET_COLOUR)
+        revMenuBox.Add(plugChoicePreset, 0, wx.TOP, 6)
+        self.preset = CustomMenu(self, choice=['Bypass', 'Lorenz', 'Rossler'], init='Rossler', size=(93,18), 
+                                colour=CONTROLLABEL_BACK_COLOUR, outFunction=self.onChangePreset)
+        self.presetName = 'plugin_%d_chaosmod_preset' % self.order                     
+        revMenuBox.Add(self.preset, 0, wx.TOP, 2)
+
+        self.sizer.Add(revMenuBox, 0, wx.LEFT, 5)
+        self.SetSizer(self.sizer)
diff --git a/Resources/PreferencePanel.py b/Resources/PreferencePanel.py
index fc23435..cf0e07c 100644
--- a/Resources/PreferencePanel.py
+++ b/Resources/PreferencePanel.py
@@ -30,12 +30,12 @@ class PreferenceFrame(wx.Frame):
     def __init__(self, parent):
         style = ( wx.CLIP_CHILDREN | wx.FRAME_NO_TASKBAR | wx.FRAME_SHAPED | wx.NO_BORDER | wx.FRAME_FLOAT_ON_PARENT )
         wx.Frame.__init__(self, parent, title='', style = style)
+        self.SetBackgroundColour(BACKGROUND_COLOUR)
         self.parent = parent
 
-        self.font = wx.Font(MENU_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE)
+        self.font = wx.Font(MENU_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE)
 
-        if CeciliaLib.getVar("systemPlatform")  in ['win32', 'linux2']:
-            self.SetSize((350, 328))
+        self.SetClientSize((350, 390))
             
         if wx.Platform == '__WXGTK__':
             self.Bind(wx.EVT_WINDOW_CREATE, self.SetRoundShape)
@@ -54,6 +54,7 @@ class PreferenceFrame(wx.Frame):
         self.panelTitles = ['  Paths', '  Audio', '    Midi', 'Export', 'Cecilia']
         choice = PreferencesRadioToolBox(panel, size=(125,25), outFunction=self.onPageChange)
         self.panelTitle = wx.StaticText(panel, -1, 'Paths')
+        self.panelTitle.SetForegroundColour(PREFS_FOREGROUND)
         self.panelTitle.SetFont(self.font)
         headerSizer.AddMany([(choice, 0, wx.LEFT, 1), (self.panelTitle, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, 90)])
                                         
@@ -81,17 +82,17 @@ class PreferenceFrame(wx.Frame):
         self.panelsBox.Add(self.panels[self.currentPane])
         box.Add(self.panelsBox, 0, wx.TOP, 10)
         
-        box.AddSpacer(10)
+        box.AddSpacer(100)
+        box.Add(Separator(panel), 0, wx.EXPAND | wx.BOTTOM, 10)
         closerBox = wx.BoxSizer(wx.HORIZONTAL)
         closer = CloseBox(panel, outFunction=self.onClose)
-        closerBox.Add(closer, 0, wx.LEFT, 290)
-        box.Add(closerBox, 0, wx.TOP, 35)
-        box.AddSpacer(10)
+        closerBox.Add(closer, 0, wx.LEFT, 288)
+        box.Add(closerBox)
 
         panel.SetSizerAndFit(box)
 
     def SetRoundShape(self, event=None):
-        self.SetShape(GetRoundShape(350, 328, 1))
+        self.SetShape(GetRoundShape(350, 390, 1))
 
     def onClose(self, event=None):
         CeciliaLib.writeVarToDisk()
@@ -104,88 +105,114 @@ class PreferenceFrame(wx.Frame):
         self.panelsBox.Replace(self.panels[self.currentPane], self.panels[index])
         self.currentPane = index
         self.panelTitle.SetLabel(self.panelTitles[self.currentPane])
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
                     
     def createPathsPanel(self, panel):
         pathsPanel = wx.Panel(panel)
         pathsPanel.SetBackgroundColour(BACKGROUND_COLOUR)
-        gridSizer = wx.FlexGridSizer(2,2,2,5)
 
-        #Soundfile Player
+        # Soundfile Player
         textSfPlayerLabel = wx.StaticText(pathsPanel, -1, 'Soundfile Player :')
+        textSfPlayerLabel.SetForegroundColour(PREFS_FOREGROUND)
         textSfPlayerLabel.SetFont(self.font)       
-        self.textSfPlayerPath = wx.TextCtrl(pathsPanel, -1, CeciliaLib.getVar("soundfilePlayer"), size=(274,16), style=wx.TE_PROCESS_ENTER|wx.NO_BORDER)
+        self.textSfPlayerPath = wx.TextCtrl(pathsPanel, -1, CeciliaLib.getVar("soundfilePlayer"), size=(260,16), style=wx.TE_PROCESS_ENTER|wx.NO_BORDER)
         self.textSfPlayerPath.SetFont(self.font)       
         self.textSfPlayerPath.Bind(wx.EVT_TEXT_ENTER, self.handleEditPlayerPath)
-        self.textSfPlayerPath.SetForegroundColour((50,50,50))
-        self.textSfPlayerPath.SetBackgroundColour("#999999")
+        self.textSfPlayerPath.SetForegroundColour(PREFS_FOREGROUND)
+        self.textSfPlayerPath.SetBackgroundColour(PREFS_PATH_BACKGROUND)
         buttonSfPlayerPath = CloseBox(pathsPanel, outFunction=self.changeSfPlayer, label='Set...')
 
-        #Soundfile Editor
+        # Soundfile Editor
         textSfEditorLabel = wx.StaticText(pathsPanel, -1, 'Soundfile Editor :')
+        textSfEditorLabel.SetForegroundColour(PREFS_FOREGROUND)
         textSfEditorLabel.SetFont(self.font)       
-        self.textSfEditorPath = wx.TextCtrl(pathsPanel, -1, CeciliaLib.getVar("soundfileEditor"), size=(274,16), style=wx.TE_PROCESS_ENTER|wx.NO_BORDER)
+        self.textSfEditorPath = wx.TextCtrl(pathsPanel, -1, CeciliaLib.getVar("soundfileEditor"), size=(260,16), style=wx.TE_PROCESS_ENTER|wx.NO_BORDER)
         self.textSfEditorPath.SetFont(self.font)       
         self.textSfEditorPath.Bind(wx.EVT_TEXT_ENTER, self.handleEditEditorPath)
-        self.textSfEditorPath.SetForegroundColour((50,50,50))
-        self.textSfEditorPath.SetBackgroundColour("#999999")
+        self.textSfEditorPath.SetForegroundColour(PREFS_FOREGROUND)
+        self.textSfEditorPath.SetBackgroundColour(PREFS_PATH_BACKGROUND)
         buttonSfEditorPath = CloseBox(pathsPanel, outFunction=self.changeSfEditor, label='Set...')
 
-        #Text Editor
+        # Text Editor
         textTxtEditorLabel = wx.StaticText(pathsPanel, -1, 'Text Editor :')
+        textTxtEditorLabel.SetForegroundColour(PREFS_FOREGROUND)
         textTxtEditorLabel.SetFont(self.font)       
-        self.textTxtEditorPath = wx.TextCtrl(pathsPanel, -1, CeciliaLib.getVar("textEditor"), size=(274,16), style=wx.TE_PROCESS_ENTER|wx.NO_BORDER)
+        self.textTxtEditorPath = wx.TextCtrl(pathsPanel, -1, CeciliaLib.getVar("textEditor"), size=(260,16), style=wx.TE_PROCESS_ENTER|wx.NO_BORDER)
         self.textTxtEditorPath.SetFont(self.font)       
         self.textTxtEditorPath.Bind(wx.EVT_TEXT_ENTER, self.handleEditTextEditorPath)
-        self.textTxtEditorPath.SetForegroundColour((50,50,50))
-        self.textTxtEditorPath.SetBackgroundColour("#999999")
+        self.textTxtEditorPath.SetForegroundColour(PREFS_FOREGROUND)
+        self.textTxtEditorPath.SetBackgroundColour(PREFS_PATH_BACKGROUND)
         buttonTxtEditorPath = CloseBox(pathsPanel, outFunction=self.changeTxtEditor, label='Set...')
 
+        # Preferred Paths
         textPrefPathLabel = wx.StaticText(pathsPanel, -1, 'Preferred paths :')
+        textPrefPathLabel.SetForegroundColour(PREFS_FOREGROUND)
         textPrefPathLabel.SetFont(self.font)       
-        self.textPrefPath = wx.TextCtrl(pathsPanel, -1, CeciliaLib.getVar("prefferedPath"), size=(274,16), style=wx.TE_PROCESS_ENTER|wx.NO_BORDER)
+        self.textPrefPath = wx.TextCtrl(pathsPanel, -1, CeciliaLib.getVar("prefferedPath"), size=(260,16), style=wx.TE_PROCESS_ENTER|wx.NO_BORDER)
         self.textPrefPath.SetFont(self.font)       
         self.textPrefPath.Bind(wx.EVT_TEXT_ENTER, self.handleEditPrefPath)
-        self.textPrefPath.SetForegroundColour((50,50,50))
-        self.textPrefPath.SetBackgroundColour("#999999")
+        self.textPrefPath.SetForegroundColour(PREFS_FOREGROUND)
+        self.textPrefPath.SetBackgroundColour(PREFS_PATH_BACKGROUND)
         buttonPrefPath = CloseBox(pathsPanel, outFunction=self.addPrefPath, label='Add...')
 
-        gridSizer.AddMany([ 
-                            (textSfPlayerLabel, 0, wx.EXPAND | wx.LEFT, PADDING),
-                            (wx.StaticText(pathsPanel, -1, ''), 0, wx.EXPAND | wx.LEFT, 5),
-                            (self.textSfPlayerPath, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, PADDING),
-                            (buttonSfPlayerPath, 0, wx.RIGHT, 10),
-                            (textSfEditorLabel, 0, wx.EXPAND | wx.LEFT | wx.TOP, PADDING),
-                            (wx.StaticText(pathsPanel, -1, ''), 0, wx.EXPAND | wx.LEFT, 5),
-                            (self.textSfEditorPath, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, PADDING),
-                            (buttonSfEditorPath, 0, wx.RIGHT, 10),
-                            (textTxtEditorLabel, 0, wx.EXPAND | wx.LEFT | wx.TOP, PADDING),
-                            (wx.StaticText(pathsPanel, -1, ''), 0, wx.EXPAND | wx.LEFT, 5),
-                            (self.textTxtEditorPath, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, PADDING),
-                            (buttonTxtEditorPath, 0, wx.RIGHT, 10),
-                            (textPrefPathLabel, 0, wx.EXPAND | wx.LEFT | wx.TOP, PADDING),
-                            (wx.StaticText(pathsPanel, -1, ''), 0, wx.EXPAND | wx.LEFT, 5),
-                            (self.textPrefPath, 0,  wx.LEFT | wx.ALIGN_CENTER_VERTICAL, PADDING),
-                            (buttonPrefPath, 0, wx.RIGHT, 10),
-                            ])
-        gridSizer.AddGrowableCol(0, 1)
-        
+#        gridSizer = wx.FlexGridSizer(4,4,2,5)
+#        gridSizer.AddMany([ 
+#                            (textSfPlayerLabel, 0, wx.EXPAND | wx.LEFT, PADDING),
+#                            (wx.StaticText(pathsPanel, -1, ''), 0, wx.EXPAND | wx.LEFT, 5),
+#                            (self.textSfPlayerPath, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, PADDING),
+#                            (buttonSfPlayerPath, 0, wx.RIGHT, 10),
+#                            (textSfEditorLabel, 0, wx.EXPAND | wx.LEFT | wx.TOP, PADDING),
+#                            (wx.StaticText(pathsPanel, -1, ''), 0, wx.EXPAND | wx.LEFT, 5),
+#                            (self.textSfEditorPath, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, PADDING),
+#                            (buttonSfEditorPath, 0, wx.RIGHT, 10),
+#                            (textTxtEditorLabel, 0, wx.EXPAND | wx.LEFT | wx.TOP, PADDING),
+#                            (wx.StaticText(pathsPanel, -1, ''), 0, wx.EXPAND | wx.LEFT, 5),
+#                            (self.textTxtEditorPath, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, PADDING),
+#                            (buttonTxtEditorPath, 0, wx.RIGHT, 10),
+#                            (textPrefPathLabel, 0, wx.EXPAND | wx.LEFT | wx.TOP, PADDING),
+#                            (wx.StaticText(pathsPanel, -1, ''), 0, wx.EXPAND | wx.LEFT, 5),
+#                            (self.textPrefPath, 0,  wx.LEFT | wx.ALIGN_CENTER_VERTICAL, PADDING),
+#                            (buttonPrefPath, 0, wx.RIGHT, 10),
+#                            ])
+#        gridSizer.AddGrowableCol(0, 1)
+
+        # item, pos, span, flag, border
+        gridSizer = wx.GridBagSizer(2, PADDING)
+        gridSizer.Add(textSfPlayerLabel, pos=(0,0), span=(1,1), flag=wx.ALIGN_CENTER_VERTICAL|wx.LEFT, border=5)
+        gridSizer.Add(self.textSfPlayerPath, pos=(1,0), span=(1,2), flag=wx.ALIGN_CENTER_VERTICAL|wx.BOTTOM|wx.LEFT, border=5)        
+        gridSizer.Add(buttonSfPlayerPath, pos=(1,2), span=(1,1), flag=wx.ALIGN_CENTER_VERTICAL|wx.BOTTOM, border=5)
+
+        gridSizer.Add(textSfEditorLabel, pos=(2,0), span=(1,1), flag=wx.ALIGN_CENTER_VERTICAL|wx.LEFT, border=5)
+        gridSizer.Add(self.textSfEditorPath, pos=(3,0), span=(1,2), flag=wx.ALIGN_CENTER_VERTICAL|wx.BOTTOM|wx.LEFT, border=5)
+        gridSizer.Add(buttonSfEditorPath, pos=(3,2), span=(1,1), flag=wx.ALIGN_CENTER_VERTICAL|wx.BOTTOM, border=5)
+
+        gridSizer.Add(textTxtEditorLabel, pos=(4,0), span=(1,1), flag=wx.ALIGN_CENTER_VERTICAL|wx.LEFT, border=5)
+        gridSizer.Add(self.textTxtEditorPath, pos=(5,0), span=(1,2), flag=wx.ALIGN_CENTER_VERTICAL|wx.BOTTOM|wx.LEFT, border=5)
+        gridSizer.Add(buttonTxtEditorPath, pos=(5,2), span=(1,1), flag=wx.ALIGN_CENTER_VERTICAL|wx.BOTTOM, border=5)
+
+        gridSizer.Add(textPrefPathLabel, pos=(6,0), span=(1,1), flag=wx.ALIGN_CENTER_VERTICAL|wx.LEFT, border=5)
+        gridSizer.Add(self.textPrefPath, pos=(7,0), span=(1,2), flag=wx.ALIGN_CENTER_VERTICAL|wx.BOTTOM|wx.LEFT, border=5)
+        gridSizer.Add(buttonPrefPath, pos=(7,2), span=(1,1), flag=wx.ALIGN_CENTER_VERTICAL|wx.BOTTOM, border=5)
+
+        pathsPanel.SetSizerAndFit(gridSizer)
+
         self.textSfPlayerPath.Navigate()
-        panel.SetSizerAndFit(gridSizer)
         return pathsPanel
 
     def createCeciliaPanel(self, panel):
         ceciliaPanel = wx.Panel(panel)
         ceciliaPanel.SetBackgroundColour(BACKGROUND_COLOUR)
-        gridSizer = wx.FlexGridSizer(4,3,10,3)
+        gridSizer = wx.FlexGridSizer(5,3,10,3)
 
         textTotalTime = wx.StaticText(ceciliaPanel, 0, 'Total time default (sec) :')
+        textTotalTime.SetForegroundColour(PREFS_FOREGROUND)
         textTotalTime.SetFont(self.font)       
         self.choiceTotalTime = CustomMenu(ceciliaPanel, size=(80,20), 
                                     choice= ["10.0", "30.0", "60.0", "120.0", "300.0", "600.0", "1200.0", "2400.0", "3600.0"],
                                     init=str(CeciliaLib.getVar("defaultTotalTime")), outFunction=self.changeDefaultTotalTime)
 
         textGlobalFade = wx.StaticText(ceciliaPanel, 0, 'Global fadein/fadeout (sec) :')
+        textGlobalFade.SetForegroundColour(PREFS_FOREGROUND)
         textGlobalFade.SetFont(self.font)       
         self.choiceGlobalFade = CustomMenu(ceciliaPanel, size=(80,20),
                                     choice= ["0.0", "0.001", "0.002", "0.003", "0.004", "0.005", "0.01", "0.015", "0.02",
@@ -193,19 +220,22 @@ class PreferenceFrame(wx.Frame):
                                     init=str(CeciliaLib.getVar("globalFade")), outFunction=self.changeGlobalFade)
 
         textUseTooltips = wx.StaticText(ceciliaPanel, 0, 'Use tooltips :')
+        textUseTooltips.SetForegroundColour(PREFS_FOREGROUND)
         textUseTooltips.SetFont(self.font)       
         self.tooltipsToggle = Toggle(ceciliaPanel, CeciliaLib.getVar("useTooltips"), outFunction=self.enableTooltips)
 
         textgraphTexture = wx.StaticText(ceciliaPanel, 0, 'Use grapher texture :')
+        textgraphTexture.SetForegroundColour(PREFS_FOREGROUND)
         textgraphTexture.SetFont(self.font)       
         self.textureToggle = Toggle(ceciliaPanel, CeciliaLib.getVar("graphTexture"), outFunction=self.enableGraphTexture)
 
         textVerbose = wx.StaticText(ceciliaPanel, 0, 'Verbose :')
+        textVerbose.SetForegroundColour(PREFS_FOREGROUND)
         textVerbose.SetFont(self.font)       
         self.verboseToggle = Toggle(ceciliaPanel, CeciliaLib.getVar("DEBUG"), outFunction=self.enableVerbose)
 
         if sys.platform == "linux2":
-            spacerSize = 70
+            spacerSize = 82
         else:
             spacerSize = 86
         gridSizer.AddMany([ 
@@ -237,12 +267,14 @@ class PreferenceFrame(wx.Frame):
 
         # File Format
         textFileFormat = wx.StaticText(fileExportPanel, 0, 'File Format :')
+        textFileFormat.SetForegroundColour(PREFS_FOREGROUND)
         textFileFormat.SetFont(self.font)       
-        self.choiceFileFormat = CustomMenu(fileExportPanel, choice=AUDIO_FILE_FORMATS, 
+        self.choiceFileFormat = CustomMenu(fileExportPanel, choice=sorted(AUDIO_FILE_FORMATS.keys()), 
                                       init=CeciliaLib.getVar("audioFileType"), outFunction=self.changeFileType)
         
         # Bit depth
         textBD = wx.StaticText(fileExportPanel, 0, 'Bit Depth :')
+        textBD.SetForegroundColour(PREFS_FOREGROUND)
         textBD.SetFont(self.font)       
         self.choiceBD = CustomMenu(fileExportPanel, choice=sorted(BIT_DEPTHS.keys()), outFunction=self.changeSampSize)
         for item in BIT_DEPTHS.items():
@@ -251,7 +283,7 @@ class PreferenceFrame(wx.Frame):
  
         gridSizer.AddMany([ 
                             (textFileFormat, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, PADDING),
-                            (wx.StaticText(fileExportPanel, -1, '', size=(125,-1)), 1, wx.EXPAND),
+                            (wx.StaticText(fileExportPanel, -1, '', size=(153,-1)), 1, wx.EXPAND),
                             (self.choiceFileFormat, 0, wx.ALIGN_CENTER_VERTICAL),
                             (textBD, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, PADDING),
                             (wx.StaticText(fileExportPanel, -1, ''), 1, wx.EXPAND),
@@ -271,13 +303,14 @@ class PreferenceFrame(wx.Frame):
         gridSizer1 = wx.FlexGridSizer(5, 3, 5, 5)
         # Audio driver
         textInOutConfig = wx.StaticText(midiParamPanel, 0, 'Midi Driver :')
+        textInOutConfig.SetForegroundColour(PREFS_FOREGROUND)
         textInOutConfig.SetFont(self.font)       
         self.midiDriverChoice = CustomMenu(midiParamPanel, choice=['PortMidi'], 
                                        init='PortMidi', outFunction=self.onMidiDriverPageChange)
 
         gridSizer1.AddMany([ 
                             (textInOutConfig, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, PADDING),
-                            (self.midiDriverChoice, 1, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, 155),
+                            (self.midiDriverChoice, 1, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, 156),
                             ])
 
         self.midiDriverBox = wx.BoxSizer(wx.VERTICAL)
@@ -291,11 +324,12 @@ class PreferenceFrame(wx.Frame):
 
         gridSizer2 = wx.FlexGridSizer(5, 3, 5, 5)
         textAutoBinding = wx.StaticText(midiParamPanel, 0, 'Automatic Midi Bindings :')
+        textAutoBinding.SetForegroundColour(PREFS_FOREGROUND)
         textAutoBinding.SetFont(self.font)       
         self.autoMidiToggle = Toggle(midiParamPanel, CeciliaLib.getVar("automaticMidiBinding"), outFunction=self.enableAutomaticBinding)
         gridSizer2.AddMany([ 
                             (textAutoBinding, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, PADDING),
-                            (self.autoMidiToggle, 1, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, 170),
+                            (self.autoMidiToggle, 1, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, 174),
                             ])
 
         gridSizer1.AddGrowableCol(1, 1)
@@ -314,22 +348,17 @@ class PreferenceFrame(wx.Frame):
         box = wx.BoxSizer(wx.VERTICAL)
 
         gridSizer1 = wx.FlexGridSizer(5, 3, 5, 5)
+
         # Audio driver
         textInOutConfig = wx.StaticText(audioParamPanel, 0, 'Audio Driver :')
+        textInOutConfig.SetForegroundColour(PREFS_FOREGROUND)
         textInOutConfig.SetFont(self.font)       
         self.driverChoice = CustomMenu(audioParamPanel, choice=AUDIO_DRIVERS, 
-                                       init=CeciliaLib.getVar("audioHostAPI"), outFunction=self.onDriverPageChange)
-        # self.updatePortaudioButton = CloseBox(audioParamPanel, outFunction=self.updateAudioInOut, label='Update')
-        # if self.driverChoice.getLabel() == 'portaudio':
-        #     self.updatePortaudioButton.Show()
-        # else:    
-        #     self.updatePortaudioButton.Hide()
+                                       init=CeciliaLib.getVar("audioHostAPI"), 
+                                       outFunction=self.onDriverPageChange)
         
-        gridSizer1.AddMany([ 
-                            (textInOutConfig, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, PADDING),
-                            (self.driverChoice, 1, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, 147),
-                            #(self.updatePortaudioButton, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, 0),
-                            ])
+        gridSizer1.AddMany([(textInOutConfig, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, PADDING),
+                            (self.driverChoice, 1, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, 147)])
         
         # Audio driver panels
         self.driverBox = wx.BoxSizer(wx.VERTICAL)
@@ -349,16 +378,18 @@ class PreferenceFrame(wx.Frame):
         self.driverPanels['jack'] = jackPane
         self.driverBox.Add(self.driverPanels[self.driverCurrentPane])
         
-        gridSizer3 = wx.FlexGridSizer(5, 3, 5, 5)
+        gridSizer3 = wx.FlexGridSizer(6, 3, 5, 5)
 
         # Sample precision
         textSamplePrecision = wx.StaticText(audioParamPanel, 0, 'Sample Precision :')
+        textSamplePrecision.SetForegroundColour(PREFS_FOREGROUND)
         textSamplePrecision.SetFont(self.font)       
         self.choiceSamplePrecision = CustomMenu(audioParamPanel, choice=['32 bit', '64 bit'], 
                                       init=CeciliaLib.getVar("samplePrecision"), outFunction=self.changeSamplePrecision)
         
         # Bit depth
         textBufferSize = wx.StaticText(audioParamPanel, 0, 'Buffer Size :')
+        textBufferSize.SetForegroundColour(PREFS_FOREGROUND)
         textBufferSize.SetFont(self.font)       
         self.choiceBufferSize = CustomMenu(audioParamPanel, choice=['64','128','256','512','1024','2048'], 
                                            init=CeciliaLib.getVar("bufferSize"), outFunction=self.changeBufferSize)
@@ -366,16 +397,32 @@ class PreferenceFrame(wx.Frame):
                        
         # Number of channels        
         textNCHNLS = wx.StaticText(audioParamPanel, 0, 'Default # of channels :')
+        textNCHNLS.SetForegroundColour(PREFS_FOREGROUND)
         textNCHNLS.SetFont(self.font)       
         self.choiceNCHNLS = CustomMenu(audioParamPanel, choice=[str(x) for x in range(1,37)], 
-                            init=CeciliaLib.getVar("defaultNchnls"), outFunction=self.changeNchnls)
+                            init=str(CeciliaLib.getVar("defaultNchnls")), outFunction=self.changeNchnls)
  
         # Sampling rate
         textSR = wx.StaticText(audioParamPanel, 0, 'Sample Rate :')
+        textSR.SetForegroundColour(PREFS_FOREGROUND)
         textSR.SetFont(self.font)       
         self.comboSR = CustomMenu(audioParamPanel, choice=SAMPLE_RATES, 
                             init=str(CeciliaLib.getVar("sr")), outFunction=self.changeSr)        
-                
+
+        # First physical input        
+        textFPI = wx.StaticText(audioParamPanel, 0, 'First Physical Input :')
+        textFPI.SetForegroundColour(PREFS_FOREGROUND)
+        textFPI.SetFont(self.font)       
+        self.choiceFPI = CustomMenu(audioParamPanel, choice=[str(x) for x in range(36)], 
+                            init=str(CeciliaLib.getVar("defaultFirstInput")), outFunction=self.changeFPI)
+
+        # First physical output        
+        textFPO = wx.StaticText(audioParamPanel, 0, 'First Physical Output :')
+        textFPO.SetForegroundColour(PREFS_FOREGROUND)
+        textFPO.SetFont(self.font)       
+        self.choiceFPO = CustomMenu(audioParamPanel, choice=[str(x) for x in range(36)], 
+                            init=str(CeciliaLib.getVar("defaultFirstOutput")), outFunction=self.changeFPO)
+
         gridSizer3.AddMany([ 
                             (textSamplePrecision, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, PADDING),
                             (wx.StaticText(audioParamPanel, -1, '', size=(98,-1)), 1, wx.EXPAND),
@@ -389,6 +436,12 @@ class PreferenceFrame(wx.Frame):
                             (textSR, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, PADDING),
                             (wx.StaticText(audioParamPanel, -1, ''), 1, wx.EXPAND),
                             (self.comboSR, 0, wx.ALIGN_CENTER_VERTICAL),
+                            (textFPI, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, PADDING),
+                            (wx.StaticText(audioParamPanel, -1, ''), 1, wx.EXPAND),
+                            (self.choiceFPI, 0, wx.ALIGN_CENTER_VERTICAL),
+                            (textFPO, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, PADDING),
+                            (wx.StaticText(audioParamPanel, -1, ''), 1, wx.EXPAND),
+                            (self.choiceFPO, 0, wx.ALIGN_CENTER_VERTICAL),
                          ])
         
         gridSizer1.AddGrowableCol(1, 1)
@@ -408,6 +461,7 @@ class PreferenceFrame(wx.Frame):
         gridSizer = wx.FlexGridSizer(5, 3, 5, 5)
         # Input
         textIn = wx.StaticText(portmidiPanel, 0, 'Input Device :')
+        textIn.SetForegroundColour(PREFS_FOREGROUND)
         textIn.SetFont(self.font)
         availableMidiIns = []
         for d in CeciliaLib.getVar("availableMidiInputs"):
@@ -420,11 +474,11 @@ class PreferenceFrame(wx.Frame):
             else:
                 initInput = ''
         self.midiChoiceInput = CustomMenu(portmidiPanel, choice=availableMidiIns, init=initInput, 
-                                          size=(168,20), outFunction=self.changeMidiInput, maxChar=25)
+                                          size=(168,20), outFunction=self.changeMidiInput)
 
         gridSizer.AddMany([ 
                             (textIn, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, PADDING),
-                             (wx.StaticText(portmidiPanel, -1, '', size=(74,-1)), 1, wx.EXPAND),
+                             (wx.StaticText(portmidiPanel, -1, '', size=(75,-1)), 1, wx.EXPAND),
                             (self.midiChoiceInput, 0, wx.ALIGN_CENTER_VERTICAL),
                             ])
                             
@@ -439,6 +493,7 @@ class PreferenceFrame(wx.Frame):
         gridSizer = wx.FlexGridSizer(5, 3, 5, 5)
         # Input
         textIn = wx.StaticText(portaudioPanel, 0, 'Input Device :')
+        textIn.SetForegroundColour(PREFS_FOREGROUND)
         textIn.SetFont(self.font)
         availableAudioIns = []
         for d in CeciliaLib.getVar("availableAudioInputs"):
@@ -451,7 +506,7 @@ class PreferenceFrame(wx.Frame):
             else:
                 initInput = ''
         self.choiceInput = CustomMenu(portaudioPanel, choice=availableAudioIns, init=initInput, 
-                                      size=(168,20), outFunction=self.changeAudioInput, maxChar=25)
+                                      size=(168,20), outFunction=self.changeAudioInput)
         if CeciliaLib.getVar("enableAudioInput") == 0:
             initInputState = 0
         else:
@@ -460,6 +515,7 @@ class PreferenceFrame(wx.Frame):
         
         # Output
         textOut = wx.StaticText(portaudioPanel, 0, 'Output Device :')
+        textOut.SetForegroundColour(PREFS_FOREGROUND)
         textOut.SetFont(self.font)
         availableAudioOuts = []
         for d in CeciliaLib.getVar("availableAudioOutputs"):
@@ -472,7 +528,7 @@ class PreferenceFrame(wx.Frame):
             else:
                 initOutput = ''
         self.choiceOutput = CustomMenu(portaudioPanel, choice=availableAudioOuts, init=initOutput, 
-                                       size=(168,20), outFunction=self.changeAudioOutput, maxChar=25)
+                                       size=(168,20), outFunction=self.changeAudioOutput)
         
         gridSizer.AddMany([ 
                             (textIn, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, PADDING),
@@ -496,23 +552,24 @@ class PreferenceFrame(wx.Frame):
         gridSizer = wx.FlexGridSizer(3, 3, 5, 5)
         
         jackClientLabel = wx.StaticText(jackPanel, -1, 'Jack client :')
+        jackClientLabel.SetForegroundColour(PREFS_FOREGROUND)
         jackClientLabel.SetFont(self.font)       
         self.jackClient = wx.TextCtrl(jackPanel, -1, CeciliaLib.getVar("jack")['client'], size=(235,-1), style=wx.TE_PROCESS_ENTER|wx.NO_BORDER)
         self.jackClient.SetFont(self.font)       
         self.jackClient.Bind(wx.EVT_TEXT_ENTER, self.changeJackClient)
-        self.jackClient.SetForegroundColour((50,50,50))
-        self.jackClient.SetBackgroundColour("#999999")
+        self.jackClient.SetForegroundColour(PREFS_FOREGROUND)
+        self.jackClient.SetBackgroundColour(PREFS_PATH_BACKGROUND)
 
         gridSizer.AddMany([ 
                             (jackClientLabel, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, PADDING),
-                            (wx.StaticText(jackPanel, -1, '', size=(15,-1)), 1, wx.EXPAND),
+                            (wx.StaticText(jackPanel, -1, '', size=(17,-1)), 1, wx.EXPAND),
                             (self.jackClient, 0, wx.ALIGN_CENTER_VERTICAL),
-                            (wx.StaticText(jackPanel, -1, '', size=(15,-1)), 1, wx.EXPAND),
-                            (wx.StaticText(jackPanel, -1, '', size=(15,-1)), 1, wx.EXPAND),
-                            (wx.StaticText(jackPanel, -1, '', size=(15,-1)), 1, wx.EXPAND),
-                            (wx.StaticText(jackPanel, -1, '', size=(15,-1)), 1, wx.EXPAND),
-                            (wx.StaticText(jackPanel, -1, '', size=(15,-1)), 1, wx.EXPAND),
-                            (wx.StaticText(jackPanel, -1, '', size=(15,-1)), 1, wx.EXPAND),
+                            (wx.StaticText(jackPanel, -1, '', size=(17,-1)), 1, wx.EXPAND),
+                            (wx.StaticText(jackPanel, -1, '', size=(17,-1)), 1, wx.EXPAND),
+                            (wx.StaticText(jackPanel, -1, '', size=(17,-1)), 1, wx.EXPAND),
+                            (wx.StaticText(jackPanel, -1, '', size=(17,-1)), 1, wx.EXPAND),
+                            (wx.StaticText(jackPanel, -1, '', size=(17,-1)), 1, wx.EXPAND),
+                            (wx.StaticText(jackPanel, -1, '', size=(17,-1)), 1, wx.EXPAND),
                          ])
         
         gridSizer.AddGrowableCol(1, 1)
@@ -526,7 +583,7 @@ class PreferenceFrame(wx.Frame):
         self.driverPanels[label].SetPosition(self.driverBox.GetPosition())
         self.driverBox.Replace(self.driverPanels[self.driverCurrentPane], self.driverPanels[label])
         self.driverCurrentPane = label
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def onMidiDriverPageChange(self, index, label):
         pass
@@ -570,7 +627,7 @@ class PreferenceFrame(wx.Frame):
 
         path = ''
         dlg = wx.DirDialog(self, message="Choose a folder...",
-                                 defaultPath=os.path.expanduser('~'))
+                                 defaultPath=CeciliaLib.ensureNFD(os.path.expanduser('~')))
 
         if dlg.ShowModal() == wx.ID_OK:
             path = dlg.GetPath()   
@@ -626,6 +683,12 @@ class PreferenceFrame(wx.Frame):
         CeciliaLib.setVar("nchnls", nchnls)
         CeciliaLib.updateNchnlsDevices()
 
+    def changeFPI(self, index, choice):
+        CeciliaLib.setVar("defaultFirstInput", index)
+
+    def changeFPO(self, index, choice):
+        CeciliaLib.setVar("defaultFirstOutput", index)
+        
     def changeJackClient(self, event):
         CeciliaLib.setJackParams(client=event.GetString())
 
diff --git a/Resources/Preset.py b/Resources/Preset.py
index dc92df5..4673973 100644
--- a/Resources/Preset.py
+++ b/Resources/Preset.py
@@ -24,21 +24,25 @@ import CeciliaLib
 from Widgets import *
 
 class CECPreset(wx.Panel):
-    def __init__(self, parent, id=-1, size=(-1,-1), style = wx.NO_BORDER):
+    if CeciliaLib.getVar("systemPlatform") == "win32":
+        BORDER = wx.DOUBLE_BORDER
+    else:
+        BORDER = wx.SIMPLE_BORDER
+    def __init__(self, parent, id=-1, size=(-1,-1), style = BORDER):
         wx.Panel.__init__(self, parent, id, size=size, style=style)
         self.SetBackgroundColour(BACKGROUND_COLOUR)
         self.parent = parent
         
         self.currentPreset = 'init'
         
-        mainSizer = wx.FlexGridSizer(2,1)
+        mainSizer = wx.FlexGridSizer(0,1)
         mainSizer.AddSpacer((10,1))
         
         presetTextPanel = wx.Panel(self, -1, style=wx.NO_BORDER)
         presetTextPanel.SetBackgroundColour(TITLE_BACK_COLOUR)
         presetTextSizer = wx.FlexGridSizer(1,1)
         presetText = wx.StaticText(presetTextPanel, -1, 'PRESETS')
-        presetText.SetFont(wx.Font(SECTION_TITLE_FONT, wx.NORMAL, wx.NORMAL, wx.BOLD, face=FONT_FACE))
+        presetText.SetFont(wx.Font(SECTION_TITLE_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, face=FONT_FACE))
         presetText.SetBackgroundColour(TITLE_BACK_COLOUR)
         presetText.SetForegroundColour(SECTION_TITLE_COLOUR)
         presetTextSizer.Add(presetText, 0, wx.ALIGN_RIGHT | wx.ALL, 3)
@@ -58,7 +62,8 @@ class CECPreset(wx.Panel):
         saveTool = ToolBox(self, tools=['save', 'delete'], outFunction = [self.onSavePreset, self.onDeletePreset])
         lineSizer.Add(saveTool, 0, wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 2)
         
-        mainSizer.Add(lineSizer, 0, wx.ALIGN_CENTER | wx.ALL, 7)
+        mainSizer.Add(lineSizer, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 7)
+        
         mainSizer.AddGrowableCol(0)
         self.SetSizer(mainSizer)
 
diff --git a/Resources/Sliders.py b/Resources/Sliders.py
index 8a1ac6d..f8eb18a 100644
--- a/Resources/Sliders.py
+++ b/Resources/Sliders.py
@@ -69,6 +69,11 @@ class PlayRecButtons(wx.Panel):
         self.play = 0
         self.rec = False
 
+        if CeciliaLib.getVar("systemPlatform") == "win32":
+            self.dcref = wx.BufferedPaintDC
+        else:
+            self.dcref = wx.PaintDC
+
     def setOverWait(self, which):
         if which == 0:
             self.playOverWait = False
@@ -96,7 +101,7 @@ class PlayRecButtons(wx.Panel):
                 self.setOverWait(1)
             self.playOver = False
             self.recOver = False
-            self.Refresh()
+            wx.CallAfter(self.Refresh)
             evt.Skip()
 
     def OnEnter(self, evt):
@@ -113,7 +118,7 @@ class PlayRecButtons(wx.Panel):
                     self.setRec(True)
             self.playOver = False
             self.recOver = False
-            self.Refresh()
+            wx.CallAfter(self.Refresh)
             evt.Skip()
 
     def MouseUp(self, evt):
@@ -129,7 +134,7 @@ class PlayRecButtons(wx.Panel):
                 self.playOver = False
                 self.recOver = True
             self.checkForOverReady(pos)
-            self.Refresh()
+            wx.CallAfter(self.Refresh)
             evt.Skip()
 
     def OnLeave(self, evt):
@@ -138,12 +143,13 @@ class PlayRecButtons(wx.Panel):
         self.recOver = False
         self.playOverWait = True
         self.recOverWait = True
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         evt.Skip()
 
     def OnPaint(self, evt):
         w,h = self.GetSize()
-        dc = wx.AutoBufferedPaintDC(self)
+        dc = self.dcref(self)
+        gc = wx.GraphicsContext_Create(dc)
 
         dc.SetBrush(wx.Brush(BACKGROUND_COLOUR, wx.SOLID))
         dc.Clear()
@@ -154,9 +160,10 @@ class PlayRecButtons(wx.Panel):
         # Draw triangle
         if self.playOver: playColour = SLIDER_PLAY_COLOUR_OVER
         else: playColour = self.playColour
-        dc.SetPen(wx.Pen(playColour, width=1, style=wx.SOLID))  
-        dc.SetBrush(wx.Brush(playColour, wx.SOLID))
-        dc.DrawPolygon([wx.Point(14,h/2), wx.Point(9,4), wx.Point(9,h-4)])
+        gc.SetPen(wx.Pen(playColour, width=1, style=wx.SOLID))  
+        gc.SetBrush(wx.Brush(playColour, wx.SOLID))
+        tri = [(14,h/2), (9,4), (9,h-4), (14,h/2)]
+        gc.DrawLines(tri)
 
         dc.SetPen(wx.Pen('#333333', width=1, style=wx.SOLID))  
         dc.DrawLine(w/2,4,w/2,h-4)
@@ -164,9 +171,9 @@ class PlayRecButtons(wx.Panel):
         # Draw circle
         if self.recOver: recColour = SLIDER_REC_COLOUR_OVER
         else: recColour = self.recColour
-        dc.SetPen(wx.Pen(recColour, width=1, style=wx.SOLID))  
-        dc.SetBrush(wx.Brush(recColour, wx.SOLID))
-        dc.DrawCircle(w/4+w/2, h/2, 4)
+        gc.SetPen(wx.Pen(recColour, width=1, style=wx.SOLID))  
+        gc.SetBrush(wx.Brush(recColour, wx.SOLID))
+        gc.DrawEllipse(w/4+w/2-4, h/2-4, 8, 8)
 
         evt.Skip()
 
@@ -182,7 +189,7 @@ class PlayRecButtons(wx.Panel):
             if self.rec:
                 self.setRec(0)
             self.playColour = SLIDER_PLAY_COLOUR_NO_BIND
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def getPlay(self):
         return self.play
@@ -258,7 +265,7 @@ class Slider(wx.Panel):
     def setFillColour(self, col1, col2):
         self.fillcolor = col1
         self.knobcolor = col2
-        self.createSliderBitmap()
+        self.createBackgroundBitmap()
         self.createKnobBitmap()
 
     def SetRange(self, minvalue, maxvalue):
@@ -274,14 +281,14 @@ class Slider(wx.Panel):
         self.pos = clamp(evt.GetPosition()[0], self.knobHalfSize, size[0]-self.knobHalfSize)
         self.value = self.scale()
         self.CaptureMouse()
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def MouseMotion(self, evt):
         size = self.GetSize()
         if evt.Dragging() and evt.LeftIsDown() and self.HasCapture():
             self.pos = clamp(evt.GetPosition()[0], self.knobHalfSize, size[0]-self.knobHalfSize)
             self.value = self.scale()
-            self.Refresh()
+            wx.CallAfter(self.Refresh)
                    
     def MouseUp(self, evt):
         if self.HasCapture():
@@ -295,7 +302,7 @@ class Slider(wx.Panel):
         self.createBackgroundBitmap()
         self.createKnobMaskBitmap()
         self.clampPos()    
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def clampPos(self):
         size = self.GetSize()
@@ -329,7 +336,7 @@ class HSlider(Slider):
         self.midictl = ''
         self.midiLearn = False
         self.openSndCtrl = ''
-        self.font = wx.Font(LABEL_FONT-2, wx.NORMAL, wx.ITALIC, wx.LIGHT, face=FONT_FACE)
+        self.font = wx.Font(LABEL_FONT-2, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_ITALIC, wx.FONTWEIGHT_LIGHT, face=FONT_FACE)
 
         self.mario = 0
         self.useMario = False
@@ -342,7 +349,7 @@ class HSlider(Slider):
         self.createKnobMaskBitmap()
         self.createBackgroundBitmap()
         self.createKnobBitmap()
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def createBackgroundBitmap(self):
         w,h = self.GetSize()
@@ -382,7 +389,7 @@ class HSlider(Slider):
 
     def inMidiLearnMode(self):
         self.midiLearn = True
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def setOpenSndCtrl(self, str):
         self.openSndCtrl = str
@@ -431,7 +438,7 @@ class HSlider(Slider):
             self.mario += 1
             
         if self.midiLearn:    
-            dc.SetFont(wx.Font(LABEL_FONT-1, wx.NORMAL, wx.ITALIC, wx.LIGHT, face=FONT_FACE))
+            dc.SetFont(wx.Font(LABEL_FONT-1, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_ITALIC, wx.FONTWEIGHT_LIGHT, face=FONT_FACE))
             dc.DrawLabel("Move a MIDI controller...", wx.Rect(5, 0, 50, h), wx.ALIGN_CENTER_VERTICAL)
         elif self.openSndCtrl:
             dc.DrawLabel(self.openSndCtrl, wx.Rect(5, 0, w, h), wx.ALIGN_CENTER_VERTICAL)            
@@ -456,6 +463,7 @@ class CECSlider:
         self.automationData = []
         self.path = None
         self.openSndCtrl = None
+        self.OSCOut = None
         self.midictl = None
         self.midichan = 1
         self.minvalue = minvalue
@@ -476,14 +484,18 @@ class CECSlider:
 
         self.label = Label(parent, label, size=(100,16), outFunction=self.onLabelClick, dclickFunction=self.onLabelDClick)
         self.label.SetToolTip(CECTooltip(TT_SLIDER_LABEL))
-        self.entryUnit = EntryUnit(parent, self.slider.GetValue(), unit, size=(120,16),
+        if self.half:
+            unitX = 100
+        else:
+            unitX = 120
+        self.entryUnit = EntryUnit(parent, self.slider.GetValue(), unit, size=(unitX,16),
                                    valtype=valtype, outFunction=self.entryReturn)
         self.entryUnit.SetToolTip(CECTooltip(TT_SLIDER_DISPLAY))                           
         self.buttons = PlayRecButtons(parent, self, size=(40,16))
         self.buttons.SetToolTip(CECTooltip(TT_SLIDER_PLAY + '\n\n' + TT_SLIDER_RECORD))
 
     def setFillColour(self, col1, col2, col3):
-        self.slider.setFillColour(col3, col2)
+        self.slider.setFillColour(col1, col2)
         self.label.setBackColour(col1)
         self.entryUnit.setBackColour(col1)
 
@@ -515,6 +527,9 @@ class CECSlider:
     def setOSCInput(self, value):
         self.setOpenSndCtrl(value)
 
+    def setOSCOutput(self, value):
+        self.setOSCOut(value)
+
     def setConvertSliderValue(self, x, end=None):
         self.convertSliderValue = x
 
@@ -534,11 +549,18 @@ class CECSlider:
         self.sendValue(value)
 
     def writeToEntry(self, value):
+        # valeurs proche de 0 a 5 decimales...
         if self.slider.myType == FloatType:
             if value >= 10000:
                 self.entryUnit.setValue(float('%5.2f' % value))
             elif value >= 1000:
                 self.entryUnit.setValue(float('%5.3f' % value))
+            elif value >= 10:
+                self.entryUnit.setValue(float('%5.5f' % value))
+            elif value >= 0:
+                self.entryUnit.setValue(float('%5.6f' % value))
+            elif value >= -100:
+                self.entryUnit.setValue(float('%5.5f' % value))
             elif value >= -1000:
                 self.entryUnit.setValue(float('%5.4f' % value))
             elif value >= -10000:
@@ -583,7 +605,7 @@ class CECSlider:
         return self.buttons.getRec()
 
     def getState(self):
-        return [self.getValue(), self.getPlay(), self.getMidiCtl(), self.getMidiChannel(), self.getOpenSndCtrl()]
+        return [self.getValue(), self.getPlay(), self.getMidiCtl(), self.getMidiChannel(), self.getOpenSndCtrl(), self.getOSCOut()]
 
     def setState(self, values):
         self.setValue(values[0])
@@ -594,6 +616,9 @@ class CECSlider:
         if len(values) >= 5:
             if values[4] != None:
                 self.setOpenSndCtrl("%d:%s" % (values[4][0], values[4][1]))
+        if len(values) >= 6:
+            if values[5] != None:
+                self.setOSCOut("%s:%d:%s" % (values[5][0], values[5][1], values[5][2]))
 
     def getPath(self):
         return self.path
@@ -638,9 +663,23 @@ class CECSlider:
                 self.slider.setOpenSndCtrl("%d:%s" % (port, address))
                 self.setMidiCtl(None)
 
+    def setOSCOut(self, value):
+        if value != None:
+            if value == "":
+                self.OSCOut = None
+            else:
+                sep = value.split(":")
+                host = str(sep[0].strip())
+                port = int(sep[1].strip())
+                address = str(sep[2].strip())
+                self.OSCOut = (host, port, address)
+
     def getOpenSndCtrl(self):
         return self.openSndCtrl
 
+    def getOSCOut(self):
+        return self.OSCOut
+
     def getWithOSC(self):
         if self.openSndCtrl != None:
             return True
@@ -747,7 +786,7 @@ class RangeSlider(wx.Panel):
         self.fillcolor = col1
         self.knobcolor = col2
         self.handlecolor = wx.Colour(self.knobcolor[0]*0.35, self.knobcolor[1]*0.35, self.knobcolor[2]*0.35)
-        self.createSliderBitmap()
+        self.createBackgroundBitmap()
 
     def SetRange(self, minvalue, maxvalue):   
         self.minvalue = minvalue
@@ -770,7 +809,7 @@ class RangeSlider(wx.Panel):
             self.action = 'drag'
             self.handles = self.scale(self.handlePos)
             self.CaptureMouse()
-            self.Refresh()
+            wx.CallAfter(self.Refresh)
         
     def MouseDown(self, evt):
         size = self.GetSize()
@@ -789,7 +828,7 @@ class RangeSlider(wx.Panel):
             self.action = 'right'
         self.handles = self.scale(self.handlePos)
         self.CaptureMouse()
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def MouseMotion(self, evt):
         size = self.GetSize()
@@ -805,7 +844,7 @@ class RangeSlider(wx.Panel):
             elif self.action == 'right':
                 self.handlePos[1] = clamp(xpos, self.handlePos[0]+1, size[0]-1)
             self.handles = self.scale(self.handlePos)
-            self.Refresh()
+            wx.CallAfter(self.Refresh)
 
     def MouseUp(self, evt):
         if self.HasCapture():
@@ -817,7 +856,7 @@ class RangeSlider(wx.Panel):
         self.createSliderBitmap()
         self.createBackgroundBitmap()
         self.clampHandlePos()
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def clampHandlePos(self):
         size = self.GetSize()
@@ -841,13 +880,13 @@ class HRangeSlider(RangeSlider):
         self.openSndCtrl1 = ''
         self.openSndCtrl2 = ''
         self.midiLearn = False
-        self.font = wx.Font(LABEL_FONT-2, wx.NORMAL, wx.ITALIC, wx.LIGHT, face=FONT_FACE)
+        self.font = wx.Font(LABEL_FONT-2, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_ITALIC, wx.FONTWEIGHT_LIGHT, face=FONT_FACE)
 
     def setSliderHeight(self, height):
         self.sliderHeight = height
         self.createSliderBitmap()
         self.createBackgroundBitmap()
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def createBackgroundBitmap(self):
         w,h = self.GetSize()
@@ -875,7 +914,7 @@ class HRangeSlider(RangeSlider):
 
     def inMidiLearnMode(self):
         self.midiLearn = True
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def setOpenSndCtrl(self, str, side):
         if side == 'left':
@@ -950,7 +989,7 @@ class HRangeSlider(RangeSlider):
         dc.DrawRoundedRectangleRect(rec, 3)
 
         if self.midiLearn:
-            dc.SetFont(wx.Font(LABEL_FONT-1, wx.NORMAL, wx.ITALIC, wx.LIGHT, face=FONT_FACE))
+            dc.SetFont(wx.Font(LABEL_FONT-1, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_ITALIC, wx.FONTWEIGHT_LIGHT, face=FONT_FACE))
             dc.DrawLabel("Move 2 MIDI controllers...", wx.Rect(5, 0, 50, h), wx.ALIGN_CENTER_VERTICAL)
         elif self.openSndCtrl1 or self.openSndCtrl2:
             if self.openSndCtrl1:
@@ -987,6 +1026,7 @@ class CECRange:
         self.midictl = None
         self.midichan = [1,1]
         self.openSndCtrl = None
+        self.OSCOut = None
 
         pos = (0,0)
         size = (200,16)
@@ -1042,6 +1082,9 @@ class CECRange:
     def setOSCInput(self, value, side):
         self.setOpenSndCtrl(value, side)
 
+    def setOSCOutput(self, value, side):
+        self.setOSCOut(value, side)
+
     def setConvertSliderValue(self, x, end='min'):
         self.convertSliderValue[end] = x
 
@@ -1069,17 +1112,17 @@ class CECRange:
                 elif value >= 1000:
                     val = float('%5.1f' % value)
                 elif value >= 100:
-                    val = float('%5.2f' % value)
+                    val = float('%5.1f' % value)
                 elif value >= 10:
-                    val = float('%5.3f' % value)
+                    val = float('%5.2f' % value)
                 elif value >= -100:
-                    val = float('%5.3f' % value)
-                elif value >= -1000:
                     val = float('%5.2f' % value)
+                elif value >= -1000:
+                    val = float('%5.1f' % value)
                 elif value >= -10000:
                     val = float('%5.1f' % value)
                 else:
-                    val = float('%5.2f' % value)
+                    val = float('%5.0f' % value)
                 tmp.append(val)
         else:
             tmp = [i for i in values]
@@ -1123,7 +1166,7 @@ class CECRange:
         return self.buttons.getRec()
 
     def getState(self):
-        return [self.getValue(), self.getPlay(), self.getMidiCtl(), self.getMidiChannel(), self.getOpenSndCtrl()]
+        return [self.getValue(), self.getPlay(), self.getMidiCtl(), self.getMidiChannel(), self.getOpenSndCtrl(), self.getOSCOut()]
 
     def setState(self, values):
         self.setValue(values[0])
@@ -1139,6 +1182,14 @@ class CECRange:
                             self.setOpenSndCtrl("%d:%s" % (tup[0], tup[1]), 'left')
                         else:
                             self.setOpenSndCtrl("%d:%s" % (tup[0], tup[1]), 'right')
+        if len(values) >= 6:
+            if values[5] != None:
+                for i, tup in enumerate(values[5]):
+                    if tup != ():
+                        if i == 0:
+                            self.setOSCOut("%s:%d:%s" % (tup[0], tup[1], tup[2]), 'left')
+                        else:
+                            self.setOSCOut("%s:%d:%s" % (tup[0], tup[1], tup[2]), 'right')
 
     def getPath(self):
         return self.path
@@ -1199,9 +1250,38 @@ class CECRange:
                         self.openSndCtrl = (self.openSndCtrl[0], (port, address))
                 self.slider.setOpenSndCtrl("%d:%s" % (port, address), side)
 
+    def setOSCOut(self, value, side='left'):
+        if value != None:
+            if value == "":
+                if self.OSCOut != None:
+                    if side == 'left':
+                        self.OSCOut = ((), self.OSCOut[1])
+                    else:
+                        self.OSCOut = (self.OSCOut[0], ())
+                    if self.OSCOut == ((), ()):
+                        self.OSCOut = None
+            else:
+                sep = value.split(":")
+                host = str(sep[0].strip())
+                port = int(sep[1].strip())
+                address = str(sep[2].strip())
+                if self.OSCOut == None:
+                    if side == 'left':
+                        self.OSCOut = ((host, port, address), ())
+                    else:
+                        self.OSCOut = ((), (host, port, address))
+                else:
+                    if side == 'left':
+                        self.OSCOut = ((host, port, address), self.OSCOut[1])
+                    else:
+                        self.OSCOut = (self.OSCOut[0], (host, port, address))
+                
     def getOpenSndCtrl(self):
         return self.openSndCtrl
 
+    def getOSCOut(self):
+        return self.OSCOut
+
     def getWithOSC(self):
         if self.openSndCtrl != None:
             return True
@@ -1371,7 +1451,7 @@ class SplitterSlider(wx.Panel):
             return
         self.setHandlePosition(xpos)
         self.CaptureMouse()
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def MouseMotion(self, evt):
         size = self.GetSize()
@@ -1379,7 +1459,7 @@ class SplitterSlider(wx.Panel):
             pos = evt.GetPosition()
             xpos = pos[0]
             self.setHandlePosition(xpos)
-            self.Refresh()
+            wx.CallAfter(self.Refresh)
 
     def MouseUp(self, evt):
         if self.HasCapture():
@@ -1391,7 +1471,7 @@ class SplitterSlider(wx.Panel):
         self.createSliderBitmap()
         self.createBackgroundBitmap()
         self.clampHandlePos()
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def clampHandlePos(self):
         size = self.GetSize()
@@ -1415,13 +1495,13 @@ class HSplitterSlider(SplitterSlider):
         self.midictl1 = ''
         self.midictl2 = ''
         self.midiLearn = False
-        self.font = wx.Font(SPLITTER_FONT, wx.NORMAL, wx.ITALIC, wx.LIGHT, face=FONT_FACE)
+        self.font = wx.Font(SPLITTER_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_ITALIC, wx.FONTWEIGHT_LIGHT, face=FONT_FACE)
 
     def setSliderHeight(self, height):
         self.sliderHeight = height
         self.createSliderBitmap()
         self.createBackgroundBitmap()
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def createBackgroundBitmap(self):
         w,h = self.GetSize()
@@ -1462,7 +1542,7 @@ class HSplitterSlider(SplitterSlider):
 
     def inMidiLearnMode(self):
         self.midiLearn = True
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def SetValue(self, values):
         self.lasthandles = self.handles
@@ -1514,7 +1594,7 @@ class HSplitterSlider(SplitterSlider):
             dc.DrawLabel(self.midictl1, wx.Rect(10, 0, 30, h), wx.ALIGN_CENTER_VERTICAL)
             dc.DrawLabel(self.midictl2, wx.Rect(w-20, 0, 20, h), wx.ALIGN_CENTER_VERTICAL)
         else:
-            dc.SetFont(wx.Font(LABEL_FONT-1, wx.NORMAL, wx.ITALIC, wx.LIGHT, face=FONT_FACE))
+            dc.SetFont(wx.Font(LABEL_FONT-1, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_ITALIC, wx.FONTWEIGHT_LIGHT, face=FONT_FACE))
             dc.DrawLabel("Move 2 MIDI controllers...", wx.Rect(5, 0, 50, h), wx.ALIGN_CENTER_VERTICAL)
 
         # Send value
@@ -1720,6 +1800,7 @@ class CECSplitter:
 
 def buildHorizontalSlidersBox(parent, list):
     mainBox = wx.BoxSizer(wx.VERTICAL)
+    outBox = wx.BoxSizer(wx.VERTICAL)
     sliders = []
     halfcount = 0
     for widget in list:
@@ -1783,4 +1864,5 @@ def buildHorizontalSlidersBox(parent, list):
                 halfcount += 1  
             sliders.append(sl)
 
-    return mainBox, sliders
+    outBox.Add(mainBox, 0, wx.ALL|wx.EXPAND, 3)
+    return outBox, sliders
diff --git a/Resources/TogglePopup.py b/Resources/TogglePopup.py
index 957c0e2..e524abe 100644
--- a/Resources/TogglePopup.py
+++ b/Resources/TogglePopup.py
@@ -24,45 +24,6 @@ from Widgets import Label, CustomMenu, Toggle, Button, CECTooltip, ControlSlider
 from constants import *
 import CeciliaLib
 
-def chooseColourFromName(name):
-    def clip(x):
-        val = int(x*255)
-        if val < 0: val = 0
-        elif val > 255: val = 255
-        else: val = val
-        return val
-
-    def colour(name):
-        vals = COLOUR_CLASSES[name]
-        hue = vals[0]
-        bright = vals[1]
-        sat = vals[2]
-
-        segment = int(math.floor(hue / 60))
-        fraction = hue / 60 - segment
-        t1 = bright * (1 - sat)
-        t2 = bright * (1 - (sat * fraction))
-        t3 = bright * (1 - (sat * (1 - fraction)))
-        if segment == 0:
-            r, g, b = bright, t3, t1
-        elif segment == 1:
-            r, g, b = t2, bright, t1
-        elif segment == 2:
-            r, g, b = t1, bright, t3
-        elif segment == 3:
-            r, g, b = t1, t2, bright
-        elif segment == 4:
-            r, g, b = t3, t1, bright
-        elif segment == 5:
-            r, g, b = bright, t1, t2
-            
-        return wx.Colour(clip(r),clip(g),clip(b))
-
-    labelColour = colour(name)
-    objectColour = colour(name)
-
-    return [labelColour, objectColour]
-
 class CECPopup:
     def __init__(self, parent, label, values, init, rate, name, colour, tooltip, output=True):
         self.type = "popup"
@@ -71,6 +32,7 @@ class CECPopup:
         self.rate = rate
         self.label = Label(parent, label, colour=colour[0])
         self.popup = CustomMenu(parent, values, init, size=(100,20), outFunction=self.onPopup, colour=colour[1])
+        self.label.SetToolTip(CECTooltip(TT_POPUP))
         if tooltip != '':
             self.popup.SetToolTip(CECTooltip(tooltip))
         
@@ -104,6 +66,7 @@ class CECToggle:
                 self.label = Label(parent, label, colour=colour[0], size=(210, 20))
             else:
                 self.label = Label(parent, label, colour=colour[0], size=(100, 20))
+            self.label.SetToolTip(CECTooltip(TT_TOGGLE))
         self.toggle = Toggle(parent, init, outFunction=self.onToggle, colour=colour[1])
         if tooltip != '':
             self.toggle.SetToolTip(CECTooltip(tooltip))
@@ -127,6 +90,7 @@ class CECButton:
         self.name = name
         self.label = Label(parent, label, colour=colour[0])
         self.button = Button(parent, outFunction=self.onButton, colour=(colour[1],colour[0]))
+        self.label.SetToolTip(CECTooltip(TT_BUTTON))
         if tooltip != '':
             self.button.SetToolTip(CECTooltip(tooltip))
 
@@ -150,6 +114,7 @@ class CECGen:
         self.oldLength = -1
         self.label = Label(parent, label, colour=colour[0])
         self.entry = ListEntry(parent, ", ".join([str(x) for x in init]), colour=colour[1], outFunction=self.onEntry)
+        self.label.SetToolTip(CECTooltip(TT_GEN))
         if tooltip != '':
             self.label.SetToolTip(CECTooltip(tooltip))
         
@@ -204,27 +169,22 @@ class CECPoly:
     def __init__(self, parent, label, name, values, init, colour, tooltip):
         self.name = name
         self.up = 1
-        popupLabel = '# of ' + label.capitalize()
+        popupLabel = label.capitalize() + ' Voices'
         self.popup = CECPopup(parent, popupLabel, values, init, "i", self.name + 'num', colour, tooltip, output=False)
+        chordLabel = label.capitalize() + ' Chords'
+        self.chord = CECPopup(parent, chordLabel, sorted(POLY_CHORDS.keys()), '00 - None', "i", self.name, colour, tooltip, output=False)
         self.popup.label.SetToolTip(CECTooltip(TT_POLY_LABEL))
-        sliderLabel = label.capitalize() + ' Spread'
-        self.slider = PolySlider(parent, self.name, sliderLabel, self.onSlider, colour)
-        self.slider.label.SetToolTip(CECTooltip(TT_POLY_SPREAD))
-        self.slider.setSliderHeight(10)
-        self.slider.setFloatPrecision(4)
-        self.slider.setbackColour(colour[1])
-        if tooltip != '':
-            self.popup.popup.SetToolTip(CECTooltip(tooltip))
+        self.chord.label.SetToolTip(CECTooltip(TT_POLY_CHORD))
 
     def getValue(self):
         return self.popup.getValue()
 
+    def getChordValue(self):
+        return self.chord.getValue()
+
     def getUp(self):
         return self.up
-   
-    def onSlider(self, value):
-        pass
-        
+
 class SamplerPopup:
     def __init__(self, parent, values, init, name, outFunction=None):
         self.name = name+'loopi'
@@ -286,9 +246,9 @@ def buildTogglePopupBox(parent, list):
                 elif col not in COLOUR_CLASSES.keys():
                     CeciliaLib.showErrorDialog('Wrong colour!', '"%s"\n\nAvailable colours for -col flag are:\n\n%s.' % (col, ', '.join(COLOUR_CLASSES.keys())))
                     col = random.choice(COLOUR_CLASSES.keys())
-                colour = chooseColourFromName(col)
+                colour = CeciliaLib.chooseColourFromName(col)
             else:
-                colour = chooseColourFromName("grey")
+                colour = CeciliaLib.chooseColourFromName("grey")
             cpopup = CECPopup(parent, label, values, init, rate, name, colour, tooltip)
             box = wx.FlexGridSizer(1,2,2,10)
             box.AddMany([(cpopup.label, 0, wx.TOP | wx.ALIGN_RIGHT, 2), (cpopup.popup, 0, wx.TOP | wx.ALIGN_LEFT, 2)]) 
@@ -309,9 +269,9 @@ def buildTogglePopupBox(parent, list):
                 elif col not in COLOUR_CLASSES.keys():
                     CeciliaLib.showErrorDialog('Wrong colour!', '"%s"\n\nAvailable colours for -col flag are:\n\n%s.' % (col, ', '.join(COLOUR_CLASSES.keys())))
                     col = random.choice(COLOUR_CLASSES.keys())
-                colour = chooseColourFromName(col) 
+                colour = CeciliaLib.chooseColourFromName(col)
             else:
-                colour = chooseColourFromName("grey")
+                colour = CeciliaLib.chooseColourFromName("grey")
             ctoggle = CECToggle(parent, label, init, rate, name, colour, tooltip, stack)
             if stack and label != '':
                 labelBox = wx.FlexGridSizer(1,1,2,10)
@@ -338,7 +298,7 @@ def buildTogglePopupBox(parent, list):
             elif col not in COLOUR_CLASSES.keys():
                 CeciliaLib.showErrorDialog('Wrong colour!', '"%s"\n\nAvailable colours for -col flag are:\n\n%s.' % (col, ', '.join(COLOUR_CLASSES.keys())))
                 col = random.choice(COLOUR_CLASSES.keys())
-            colour = chooseColourFromName(col) 
+            colour = CeciliaLib.chooseColourFromName(col)
             cbutton = CECButton(parent, label, name, colour, tooltip)
             box = wx.FlexGridSizer(1,2,2,10)
             box.AddMany([(cbutton.label, 0, wx.TOP | wx.ALIGN_RIGHT, 2), (cbutton.button, 0, wx.TOP | wx.ALIGN_LEFT, 2)]) 
@@ -358,9 +318,9 @@ def buildTogglePopupBox(parent, list):
             elif col not in COLOUR_CLASSES.keys():
                 CeciliaLib.showErrorDialog('Wrong colour!', '"%s"\n\nAvailable colours for -col flag are:\n\n%s.' % (col, ', '.join(COLOUR_CLASSES.keys())))
                 col = random.choice(COLOUR_CLASSES.keys())
-            colour = chooseColourFromName(col) 
+            colour = CeciliaLib.chooseColourFromName(col) 
         else:
-            colour = chooseColourFromName("grey")
+            colour = CeciliaLib.chooseColourFromName("grey")
         popup = widget.get("popup", None)
         ok = False
         if popup != None:
@@ -386,12 +346,12 @@ def buildTogglePopupBox(parent, list):
         label = widget.get('label', '')
         colour = [CPOLY_COLOUR, CPOLY_COLOUR]
         cpoly = CECPoly(parent, label, name, values, init, colour, tooltip)
-        box = wx.FlexGridSizer(1,2,2,10)
+        box = wx.FlexGridSizer(0,2,2,10)
         box.AddMany([(cpoly.popup.label, 0, wx.TOP | wx.ALIGN_RIGHT, 2), (cpoly.popup.popup, 0, wx.ALIGN_LEFT | wx.TOP, 2),
-                    (cpoly.slider.label, 0, wx.TOP | wx.ALIGN_RIGHT, 2), (cpoly.slider, 0, wx.ALIGN_LEFT | wx.TOP, 6)]) 
+                    (cpoly.chord.label, 0, wx.TOP | wx.ALIGN_RIGHT, 2), (cpoly.chord.popup, 0, wx.ALIGN_LEFT | wx.TOP, 2)])
         mainBox.Add(box, 0, wx.TOP | wx.BOTTOM, 1)
         objects.append(cpoly.popup)
-        objects.append(cpoly.slider)
+        objects.append(cpoly.chord)
 
-    outBox.Add(mainBox, 0, wx.ALL, 8)
+    outBox.Add(mainBox, 0, wx.ALL, 5)
     return outBox, objects
diff --git a/Resources/Variables.py b/Resources/Variables.py
index ad9dce2..00c463d 100644
--- a/Resources/Variables.py
+++ b/Resources/Variables.py
@@ -69,14 +69,13 @@ CeciliaVar['rememberedSound'] = True
 CeciliaVar['useTooltips'] = 1
 CeciliaVar['graphTexture'] = 1
 CeciliaVar['moduleDescription'] = ''
-
 CeciliaVar['interfaceWidgets'] = []
 CeciliaVar['interface'] = None
 CeciliaVar['interfaceSize'] = (1000, 600)
-CeciliaVar['interfacePosition'] = None
+CeciliaVar['interfacePosition'] = (0, 0)
 CeciliaVar['grapher'] = None
 CeciliaVar['gainSlider'] = None
-CeciliaVar['plugins'] = [None, None, None]
+CeciliaVar['plugins'] = [None] * NUM_OF_PLUGINS
 CeciliaVar['userSliders'] = []
 CeciliaVar['userTogglePopups'] = []
 CeciliaVar['userSamplers'] = []
@@ -96,13 +95,15 @@ CeciliaVar['startOffset'] = 0.0
 CeciliaVar['globalFade'] = 0.005
 CeciliaVar['audioServer'] = None
 CeciliaVar['automaticMidiBinding'] = 0
+CeciliaVar['showSpectrum'] = 0
+CeciliaVar['spectrumFrame'] = None
 
 # Server Flags
 CeciliaVar['sr'] = 44100
 CeciliaVar['nchnls'] = 2
 CeciliaVar['defaultNchnls'] = 2
 CeciliaVar['sampSize'] = 0
-CeciliaVar['audioFileType'] = 'aif' # aif, wav, 
+CeciliaVar['audioFileType'] = 'aif' # aif, wav, flac, ogg, sd2, au, caf
 CeciliaVar['samplePrecision'] = '32 bit' # '32 bit', '64 bit'
 CeciliaVar['bufferSize'] = '512'
 CeciliaVar['audioHostAPI'] = 'portaudio'
@@ -110,9 +111,12 @@ CeciliaVar['audioOutput'] = 0
 CeciliaVar['audioInput'] = 0
 CeciliaVar['enableAudioInput'] = 0
 CeciliaVar['useMidi'] = 0
+CeciliaVar['useSoundDur'] = 0
 CeciliaVar['midiPort'] = 'portmidi'
 CeciliaVar['midiDeviceIn'] = 0
-CeciliaVar['jack'] = {'client':'pyo'}
+CeciliaVar['defaultFirstInput'] = 0
+CeciliaVar['defaultFirstOutput'] = 0
+CeciliaVar['jack'] = {'client': 'cecilia5'}
 
 CeciliaVar['lastAudioFiles'] = ""
 
@@ -128,7 +132,8 @@ def readCeciliaPrefsFromFile():
         
         #### Some special cases ####
         convertToInt = ['sr', 'defaultNchnls', 'audioOutput', 'audioInput', 'sampSize', 'automaticMidiBinding',
-                        'midiDeviceIn', 'useTooltips', 'enableAudioInput', 'graphTexture']  
+                        'midiDeviceIn', 'useTooltips', 'enableAudioInput', 'graphTexture', 'showSpectrum', 'useSoundDur',
+                        'defaultFirstInput', 'defaultFirstOutput']  
         convertToFloat = ['defaultTotalTime', 'globalFade', 'DEBUG']                      
         convertToTuple = ['interfaceSize', 'interfacePosition']
         jackPrefs = ['client']
@@ -169,24 +174,22 @@ def readCeciliaPrefsFromFile():
         print('Preferences file not found.\n')
 
 def writeCeciliaPrefsToFile():
-    # Variables that need to be saved
     varsToSave = ['interfaceSize', 'interfacePosition', 'useTooltips', 'enableAudioInput', 'textEditor',
                   'sr', 'defaultNchnls', 'sampSize', 'audioHostAPI', 'audioFileType', 'audioOutput',
                   'audioInput', 'midiPort', 'midiDeviceIn', 'samplePrecision', 'client', 'graphTexture', 
                   'globalFade', 'bufferSize', 'soundfilePlayer', 'soundfileEditor', 'prefferedPath', 'DEBUG',
                   'openFilePath', 'saveFilePath', 'saveAudioFilePath', 'openAudioFilePath', 'grapherLinePath',
-                  'defaultTotalTime', 'lastAudioFiles', 'automaticMidiBinding']
+                  'defaultTotalTime', 'lastAudioFiles', 'automaticMidiBinding', 'showSpectrum', 'useSoundDur',
+                  'defaultFirstInput', 'defaultFirstOutput']
     
     print('Writing Cecilia preferences...')
     
-    #Open preferences file for writing
     try:
         file = open(PREFERENCES_FILE,'wt')
     except IOError:
         print('Unable to open the preferences file.\n')
         return
     
-    # Write variables
     file.write("version=%s\n" % APP_VERSION)
     for key in CeciliaVar:
         if key in varsToSave:
diff --git a/Resources/Widgets.py b/Resources/Widgets.py
index 84f79ff..a94d60f 100644
--- a/Resources/Widgets.py
+++ b/Resources/Widgets.py
@@ -24,7 +24,7 @@ from constants import *
 import CeciliaLib as CeciliaLib
 from types import ListType
 from Drunk import *
-import wx.lib.scrolledpanel as scrolled
+from pyolib._wxwidgets import ControlSlider
 
 def interpFloat(t, v1, v2):
     "interpolator for a single value; interprets t in [0-1] between v1 and v2"
@@ -63,12 +63,30 @@ def GetRoundBitmap( w, h, r ):
 def GetRoundShape( w, h, r ):
     return wx.RegionFromBitmap( GetRoundBitmap(w,h,r) )
 
+class MenuFrame(wx.Menu):
+    def __init__(self, parent, choice):
+        wx.Menu.__init__(self)
+
+        self.parent = parent
+
+        for c in choice:
+            item = wx.MenuItem(self, wx.NewId(), c)
+            self.AppendItem(item)
+            self.Bind(wx.EVT_MENU, self.onChoose, id=item.GetId())
+
+    def onChoose(self, event):
+        id = event.GetId()
+        item = self.FindItemById(id)
+        obj = item.GetLabel()
+        self.parent.setLabel(obj, True)
+
 #---------------------------
 # Popup menu
 # outFunction return (index, value as string)
 # --------------------------
 class CustomMenu(wx.Panel):
-    def __init__(self, parent, choice=[], init='', size=(100,20), outFunction=None, colour=None, maxChar=None, columns=1):
+    def __init__(self, parent, choice=[], init='', size=(100,20), 
+                 outFunction=None, colour=None):
         wx.Panel.__init__(self, parent, -1, size=size)
         self.SetMaxSize(self.GetSize())
         self.SetBackgroundColour(BACKGROUND_COLOUR)
@@ -78,8 +96,6 @@ class CustomMenu(wx.Panel):
         self.Bind(wx.EVT_LEFT_DOWN, self.MouseDown)
         self.closed = True
         self._enable = True
-        self.maxChar = maxChar
-        self.columns = columns
         self.outFunction = outFunction
         self.choice = choice
         self.choice = [str(choice) for choice in self.choice]
@@ -94,30 +110,36 @@ class CustomMenu(wx.Panel):
         else:
             self.backColour = POPUP_BACK_COLOUR
 
+        if CeciliaLib.getVar("systemPlatform") == "win32":
+            self.dcref = wx.BufferedPaintDC
+        else:
+            self.dcref = wx.PaintDC
+
     def setBackgroundColour(self, col):
         self._backgroundColour = col
         self.SetBackgroundColour(col)
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def setBackColour(self, colour):
         self.backColour = colour
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def setEnable(self, enable):
         self._enable = enable
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def setChoice(self, choice, out=True):
         self.choice = choice
         self.setLabel(self.choice[0], out)
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def getChoice(self):
         return self.choice
         
     def OnPaint(self, event):
         w,h = self.GetSize()
-        dc = wx.AutoBufferedPaintDC(self)
+        dc = self.dcref(self)
+        gc = wx.GraphicsContext_Create(dc)
 
         dc.SetBrush(wx.Brush(self._backgroundColour, wx.SOLID))
         dc.Clear()
@@ -127,42 +149,37 @@ class CustomMenu(wx.Panel):
         dc.DrawRectangle(0, 0, w, h)
 
         rec = wx.Rect(0, 0, w, h)
-        dc.SetBrush(wx.Brush(self.backColour))
-        dc.SetPen(wx.Pen(WIDGET_BORDER_COLOUR, width=1))
-        dc.DrawRoundedRectangleRect(rec, 3)
+        gc.SetBrush(wx.Brush(self.backColour))
+        gc.SetPen(wx.Pen(WIDGET_BORDER_COLOUR, width=1))
+        gc.DrawRoundedRectangle(rec[0], rec[1], rec[2]-2, rec[3]-2, 3)
 
-        font = wx.Font(MENU_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE)
+        font = wx.Font(MENU_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE)
         dc.SetFont(font)
         if self._enable:
-            dc.SetBrush(wx.Brush(POPUP_LABEL_COLOUR, wx.SOLID))
-            dc.SetPen(wx.Pen(POPUP_LABEL_COLOUR, width=1, style=wx.SOLID))  
+            gc.SetBrush(wx.Brush(POPUP_LABEL_COLOUR, wx.SOLID))
+            gc.SetPen(wx.Pen(POPUP_LABEL_COLOUR, width=1, style=wx.SOLID))  
             dc.SetTextForeground(POPUP_LABEL_COLOUR)
         else:    
-            dc.SetBrush(wx.Brush(POPUP_DISABLE_LABEL_COLOUR, wx.SOLID))
-            dc.SetPen(wx.Pen(POPUP_DISABLE_LABEL_COLOUR, width=1, style=wx.SOLID))  
+            gc.SetBrush(wx.Brush(POPUP_DISABLE_LABEL_COLOUR, wx.SOLID))
+            gc.SetPen(wx.Pen(POPUP_DISABLE_LABEL_COLOUR, width=1, style=wx.SOLID))  
             dc.SetTextForeground(POPUP_DISABLE_LABEL_COLOUR)
-        if self.maxChar == None:
-            dc.DrawLabel(self.label, wx.Rect(5, 0, w, h), wx.ALIGN_CENTER_VERTICAL)
+        dc.DrawLabel(self.label, wx.Rect(5, 0, w, h-1), wx.ALIGN_CENTER_VERTICAL)
+        if 1: #self.closed: # always closed...
+            tri = [(w-13,h/2-1), (w-7,5), (w-7,h-7), (w-13,h/2-1)]
         else:
-            dc.DrawLabel(CeciliaLib.shortenName(self.label, self.maxChar), wx.Rect(5, 0, w, h), wx.ALIGN_CENTER_VERTICAL)
-        if self.closed:
-            dc.DrawPolygon([wx.Point(w-13,h/2), wx.Point(w-7,6), wx.Point(w-7,h-6)])
-        else:
-            dc.DrawPolygon([(w-13,6), (w-7,6), (w-10,h-6)])
+            tri = [(w-13,5), (w-7,5), (w-10,h-7), (w-13,5)]
+        gc.DrawLines(tri)
 
     def MouseDown(self, event):
         if self._enable:
-            off = wx.GetMousePosition()
-            pos = (off[0]+10, off[1]+10)
-            f = MenuFrame(self, pos, self.GetSize()[0], self.choice, self.columns)
+            self.PopupMenu(MenuFrame(self, self.choice), event.GetPosition())
             self.closed = False
-            self.Refresh()
 
     def setLabel(self, label, out=False):
         self.label = label
+        self.Refresh()
         if self.outFunction and self.label != '' and out:
             self.outFunction(self.choice.index(self.label), self.label)
-        self.Refresh()
 
     def setByIndex(self, ind, out=False):
         self.setLabel(self.choice[ind], out)
@@ -172,124 +189,10 @@ class CustomMenu(wx.Panel):
 
     def getIndex(self):
         return self.choice.index(self.label)
-
-    def setClosed(self):
-        self.closed = True
-        self.Refresh()
     
     def setStringSelection(self, selection):
         if selection in self.choice:
             self.setLabel(selection)
-        
-class MenuFrame(wx.Frame):
-    def __init__(self, parent, pos, xsize, choice, columns=1):
-        style = ( wx.CLIP_CHILDREN | wx.FRAME_NO_TASKBAR |
-                  wx.NO_BORDER | wx.FRAME_SHAPED | wx.FRAME_FLOAT_ON_PARENT)
-        wx.Frame.__init__(self, parent, title='', pos=pos, style = style)
-        self.parent = parent
-        self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
-        self.closable = False
-        self.choice = choice
-        self.rects = []
-        if columns == 1:
-            self.xsize = xsize
-            for i in range(len(self.choice)):
-                self.rects.append(wx.Rect(2, i*20+2, xsize-4, 20))
-            self.height = len(self.choice) * 20 + 10
-        else:
-            self.xsize = columns * 50
-            rows = len(self.choice) / columns
-            for j in range(columns):
-                for i in range(rows):
-                    self.rects.append(wx.Rect(2+(j*50), i*20+2, 46, 20))
-            self.height = rows * 20 + 10
-        dispSize = wx.GetDisplaySize()
-        if pos[1] + self.height > dispSize[1]:
-            self.SetPosition((pos[0], pos[1] - self.height))
-        self.which = None
-
-        self.Bind(wx.EVT_LEFT_DOWN, self.MouseDown)
-        self.Bind(wx.EVT_MOTION, self.OnMotion)
-        self.Bind(wx.EVT_PAINT, self.OnPaint)
-        self.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeave)
-        self.Bind(wx.EVT_ENTER_WINDOW, self.OnEnter)
-        if wx.Platform == '__WXGTK__':
-            self.SetMinSize((self.xsize, self.height))
-            self.Bind(wx.EVT_WINDOW_CREATE, self.SetRoundShape)
-        else:
-            self.SetRoundShape()
-
-        self.SetSize((self.xsize, self.height))
-        self.closable = True
-        t = wx.CallLater(1000, self.close)
-        self.Show(True)
-
-    def SetRoundShape(self, event=None):
-        self.SetShape(GetRoundShape(self.xsize, self.height, 5))
-
-    def OnPaint(self, event):
-        dc = wx.AutoBufferedPaintDC(self)
-        w, h = self.GetSizeTuple()
-        dc.SetPen( wx.Pen(POPUP_BORDER_COLOUR, width = 2))
-        dc.SetBrush( wx.Brush(BACKGROUND_COLOUR))
-        dc.DrawRoundedRectangle( 0,0,w,h,3)
-        font = wx.Font(MENU_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE)
-        dc.SetFont(font)
-        for i in range(len(self.choice)):
-            if self.which != None:
-                if self.which == i:
-                    dc.SetPen( wx.Pen(POPUP_HIGHLIGHT_COLOR))
-                    dc.SetBrush( wx.Brush(POPUP_HIGHLIGHT_COLOR))
-                    dc.DrawRoundedRectangleRect(self.rects[self.which], 3)
-            dc.SetPen( wx.Pen(POPUP_TEXT_COLOUR, width = 1))
-            dc.DrawText(self.choice[i], self.rects[i].GetLeft()+5, self.rects[i].GetTop()+4)
-
-    def MouseDown(self, event):
-        pos = event.GetPosition()
-        for rec in self.rects:
-            if rec.Contains(pos):
-                self.which = self.rects.index(rec)
-                break
-        self.parent.setClosed()
-        win = wx.FindWindowAtPointer()
-        if win != None:
-            win = win.GetTopLevelParent()
-            if win in [CeciliaLib.getVar("mainFrame"), CeciliaLib.getVar("interface")]:
-                win.Raise()
-        try:
-            self.parent.setLabel(self.choice[self.which], True)
-            self.Close(force=True)
-        except:
-            pass
-
-    def OnMotion(self, event):
-        pos = event.GetPosition()
-        for rec in self.rects:
-            if rec.Contains(pos):
-                self.which = self.rects.index(rec)
-                break
-        self.Refresh()
-        event.Skip()
-
-    def OnEnter(self, event):
-        self.closable = False
-
-    def OnLeave(self, event):
-        toclose = False
-        if self.which == None:
-            toclose = True
-        else:
-            if self.choice[self.which] != 'Custom...':
-                toclose = True
-
-        if toclose:
-            self.closable = True
-            t = wx.CallLater(1000, self.close)
-
-    def close(self):
-        if self.closable:
-            self.parent.setClosed()
-            self.Close(force=True)
 
 class MySoundfileDropTarget(wx.FileDropTarget):
     def __init__(self, window):
@@ -305,7 +208,8 @@ class MySoundfileDropTarget(wx.FileDropTarget):
             pass
 
 class FolderPopup(wx.Panel):
-    def __init__(self, parent, path=None, init='', outFunction=None, emptyFunction=None, backColour=None, tooltip=''):
+    def __init__(self, parent, path=None, init='', outFunction=None, 
+                 emptyFunction=None, backColour=None, tooltip=''):
         wx.Panel.__init__(self, parent, -1, size=(130,20))
         self.parent = parent
         drop = MySoundfileDropTarget(self)
@@ -318,11 +222,13 @@ class FolderPopup(wx.Panel):
         self.Bind(wx.EVT_RIGHT_DOWN, self.MouseRightDown)
         self.backColour = backColour
         self.closed = True
+        self._enable = True
         self.outFunction = outFunction
         self.emptyFunction = emptyFunction
         self.tooltip = tooltip
         self.tip = wx.ToolTip(self.tooltip)
-        self.SetToolTip(self.tip) 
+        if CeciliaLib.getVar("useTooltips"):
+            self.SetToolTip(self.tip) 
         self.choice = []
         self.arrowRect = wx.Rect(110, 0, 20, 20)
         
@@ -333,67 +239,75 @@ class FolderPopup(wx.Panel):
         else:
             self.setLabel('')
 
+        if CeciliaLib.getVar("systemPlatform") == "win32":
+            self.dcref = wx.BufferedPaintDC
+        else:
+            self.dcref = wx.PaintDC
+
+    def setEnable(self, enable):
+        self._enable = enable
+        wx.CallAfter(self.Refresh)
+
     def reset(self):
         self.choice = []
         self.setLabel('')
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         
     def setChoice(self, choice):
         self.choice = choice
         
-    def setLabel(self, label):
-        try:
-            self.label = label
-            if self.outFunction and self.label != '':
-                self.outFunction(self.choice.index(self.label), self.label)
-        except:
-            self.label = label
-            if self.outFunction and self.label != '':
-                self.outFunction(0, self.label)
+    def setLabel(self, label, out=True):
+        self.label = label
+        self.Refresh()
+        if self.outFunction and self.label != '' and out:
+            self.outFunction(self.choice.index(self.label), self.label)
         if CeciliaLib.getVar("useTooltips") and self.label != '':
             self.tip.SetTip(self.tooltip + '\n\nCurrent choice:\n' + self.label)
         elif CeciliaLib.getVar("useTooltips"):
             self.tip.SetTip(self.tooltip)
         else:
             self.tip.SetTip(self.label) 
-        self.Refresh()
         
     def setByIndex(self, ind):
         self.label = self.choice[ind]
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         
     def setBackColour(self, colour):
         self.backColour = colour
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         
     def setClosed(self):
         self.closed = True
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         
     def MouseDown(self, event):
-        off = self.GetScreenPosition()
-        pos = (off[0]+10, off[1]+10)
-        if self.arrowRect.Contains(event.GetPosition()) and self.choice != []:
-            f = FolderMenuFrame(self, pos, self.choice, self.label)
-            self.closed = False
-            self.Refresh()
-        else:
-            if self.emptyFunction:
-                self.emptyFunction()
+        if self._enable:
+            if self.arrowRect.Contains(event.GetPosition()) and self.choice != []:
+                self.PopupMenu(MenuFrame(self, self.choice), event.GetPosition())
+                self.closed = False
+                self.Refresh()
+            else:
+                if self.emptyFunction:
+                    self.emptyFunction()
         
     def MouseRightDown(self, event):
-        off = self.GetScreenPosition()
-        pos = (off[0]+10, off[1]+10)
-        lastfiles = CeciliaLib.getVar("lastAudioFiles")
-        if lastfiles != "":
-            lastfiles = lastfiles.split(";")
-            f = FolderMenuFrame(self, pos, lastfiles, lastfiles[0], self.emptyFunction)
-            self.closed = False
-            self.Refresh()
+        if self._enable:
+            off = self.GetScreenPosition()
+            pos = (off[0]+10, off[1]+10)
+            lastfiles = CeciliaLib.getVar("lastAudioFiles")
+            if lastfiles != "":
+                lastfiles = lastfiles.split(";")
+                self.PopupMenu(MenuFrame(self, lastfiles), event.GetPosition())
+                self.closed = False
+                self.Refresh()
+            else:
+                if self.emptyFunction:
+                    self.emptyFunction()
         
     def OnPaint(self, event):
         w,h = self.GetSize()
-        dc = wx.AutoBufferedPaintDC(self)
+        dc = self.dcref(self)
+        gc = wx.GraphicsContext_Create(dc)
 
         dc.SetBrush(wx.Brush(BACKGROUND_COLOUR, wx.SOLID))
         dc.Clear()
@@ -402,255 +316,29 @@ class FolderPopup(wx.Panel):
         dc.SetPen(wx.Pen(BACKGROUND_COLOUR, width=0, style=wx.SOLID))
         dc.DrawRectangle(0, 0, w, h)
 
-        if self.backColour: backColour = self.backColour
-        else: backColour = POPUP_BACK_COLOUR 
+        if self._enable:
+            if self.backColour: backColour = self.backColour
+            else: backColour = POPUP_BACK_COLOUR 
+        else:
+            backColour = POPUP_DISABLE_COLOUR
 
         rec = wx.Rect(0, 0, w, h)
-        dc.SetBrush(wx.Brush(backColour))
-        dc.SetPen(wx.Pen(WIDGET_BORDER_COLOUR, width=1))
-        dc.DrawRoundedRectangleRect(rec, 3)
+        gc.SetBrush(wx.Brush(backColour))
+        gc.SetPen(wx.Pen(WIDGET_BORDER_COLOUR, width=1))
+        gc.DrawRoundedRectangle(rec[0], rec[1], rec[2]-1, rec[3]-1, 3)
 
-        font = wx.Font(MENU_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE)
+        font = wx.Font(MENU_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE)
         dc.SetFont(font)
-        dc.SetBrush(wx.Brush(POPUP_LABEL_COLOUR, wx.SOLID))
-        dc.SetPen(wx.Pen(POPUP_LABEL_COLOUR, width=1, style=wx.SOLID))  
+        gc.SetBrush(wx.Brush(POPUP_LABEL_COLOUR, wx.SOLID))
+        gc.SetPen(wx.Pen(POPUP_LABEL_COLOUR, width=1, style=wx.SOLID))  
         dc.SetTextForeground(POPUP_LABEL_COLOUR)
-        dc.DrawLabel(CeciliaLib.shortenName(self.label,19), wx.Rect(5, 0, w, h), wx.ALIGN_CENTER_VERTICAL)
-        if self.closed:
-            dc.DrawPolygon([wx.Point(w-13,h/2), wx.Point(w-7,6), wx.Point(w-7,h-6)])
+        dc.DrawLabel(CeciliaLib.shortenName(self.label,19), wx.Rect(5, 0, w, h), 
+                     wx.ALIGN_CENTER_VERTICAL)
+        if 1: #self.closed: # always closed!
+            tri = [(w-13,h/2-1), (w-7,5), (w-7,h-7), (w-13,h/2-1)]
+            gc.DrawLines(tri)
         else:
             dc.DrawPolygon([(w-13,6), (w-7,6), (w-10,h-6)])
-   
-class FolderMenuFrame(wx.Frame):
-    def __init__(self, parent, pos, choice, label='', emptyFunction=None):
-        style = ( wx.CLIP_CHILDREN | wx.FRAME_NO_TASKBAR | wx.NO_BORDER | wx.FRAME_SHAPED  )
-        wx.Frame.__init__(self, parent, title='', pos=pos, style = style)
-        self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
-        self.emptyFunction = emptyFunction
-        self.maxCol = 3
-        self.maxRow = 10
-        if self.emptyFunction == None:
-            self.colWidth = 200
-            self.shorten = 35
-        else:
-            self.colWidth = 500
-            self.shorten = 80
-        self.parent = parent
-        self.choice = choice
-        self.arrowOver = None
-        
-        # Create pages for the menu
-        self.pages = []
-        self.currPage = 0
-        numPages = len(self.choice)/float((self.maxCol*self.maxRow))
-        if len(self.choice)%float((self.maxCol*self.maxRow)) != 0:
-            numPages += 1
-        numPages = int(numPages)
-        for i in range(numPages):
-            inpage = self.choice[i*self.maxCol*self.maxRow:self.maxCol*self.maxRow*(i+1)]
-            self.pages.append(inpage)
-            if CeciliaLib.ensureNFD(label) in inpage:
-                self.currPage = i
-        
-        self.defineSize()
-        self.defineArrows() 
-        self.showArrows()
-        self.buildRects()
-        self.which = None
-
-        self.Bind(wx.EVT_LEFT_DOWN, self.MouseDown)
-        self.Bind(wx.EVT_MOTION, self.OnMotion)
-        self.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeave)
-        self.Bind(wx.EVT_ENTER_WINDOW, self.OnEnter)
-        self.Bind(wx.EVT_PAINT, self.OnPaint)
-        if wx.Platform == '__WXGTK__':
-            self.Bind(wx.EVT_WINDOW_CREATE, self.SetRoundShape)
-        else:
-            self.SetRoundShape()
-
-        self.Show(True)
-        
-    def defineArrows(self):
-        self.leftArrow = [(self.width-100, self.height-9),
-                        (self.width-93, self.height-5),
-                        (self.width-93, self.height-13)]
-
-        self.rightArrow = [(self.width-17, self.height-13),
-                          (self.width-10, self.height-9),
-                          (self.width-17, self.height-5)]
-
-    def showArrows(self):
-        if self.currPage!=0:
-            self.showLeftArrow = True
-        else:
-            self.showLeftArrow = False
-        
-        if self.currPage+1 < len(self.pages):
-            self.showRightArrow = True
-        else:
-            self.showRightArrow =False
-        
-    def buildRects(self):
-        self.rects = []
-        for i in range(len(self.pages[self.currPage])):
-            col = i/self.maxRow
-            x = 2 + (self.colWidth*col)
-            y = (i-(self.maxRow*col))*20+2
-            self.rects.append(wx.Rect(x, y, self.colWidth-3, 20))
-
-        self.arrows = []
-        self.arrows.append(wx.Rect(self.leftArrow[1][0]-10,self.leftArrow[1][1]-10, 15, 15))
-        self.arrows.append(wx.Rect(self.rightArrow[1][0]-10,self.rightArrow[1][1]-10, 15, 15))
-    
-    def defineSize(self):
-        cols = len(self.pages[0])/self.maxRow
-        if len(self.pages[0])%self.maxRow != 0:
-            cols += 1
-        self.width = cols*self.colWidth+cols*10
-        
-        if len(self.pages[0])>self.maxRow:
-            self.height = self.maxRow * 20 + 25
-        else:
-            self.height = len(self.pages[0]) * 20 + 25
-        self.SetMinSize((self.width, self.height))
-        self.SetSize((self.width, self.height))
-
-    def changePageUp(self):
-        self.currPage += 1
-        if self.currPage >= len(self.pages):
-            self.currPage = len(self.pages)-1
-            return
-        self.defineSize()
-        self.defineArrows()
-        self.showArrows()
-        self.buildRects()
-        self.Refresh()
-    
-    def changePageDown(self):
-        self.currPage -= 1
-        if self.currPage<0:
-            self.currPage = 0
-            return
-        self.defineSize()
-        self.defineArrows()
-        self.showArrows()
-        self.buildRects()
-        self.Refresh()
-
-    def SetRoundShape(self, event=None):
-        w, h = self.GetSizeTuple()
-        self.SetShape(GetRoundShape(self.width, self.height, 5))
-
-    def OnPaint(self, event):
-        dc = wx.AutoBufferedPaintDC(self)
-        w, h = self.GetSizeTuple()
-        dc.SetPen( wx.Pen(POPUP_BORDER_COLOUR, width = 2))
-        dc.SetBrush( wx.Brush(BACKGROUND_COLOUR))
-        dc.DrawRoundedRectangle( 0,0,w,h,3)
-        font = wx.Font(FOLDER_MENU_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE)
-        dc.SetFont(font)
-        for i in range(len(self.pages[self.currPage])):
-            col = i/self.maxRow
-            if self.which != None:
-                if self.which == i:
-                    dc.SetPen( wx.Pen(POPUP_HIGHLIGHT_COLOR))
-                    dc.SetBrush( wx.Brush(POPUP_HIGHLIGHT_COLOR))
-                    dc.DrawRoundedRectangleRect(self.rects[self.which], 3)
-            dc.SetPen( wx.Pen(POPUP_TEXT_COLOUR, width = 1))
-            x = 5 + (self.colWidth*col)
-            y = (i-(self.maxRow*col))*20+2
-            dc.DrawText(CeciliaLib.shortenName(self.pages[self.currPage][i], self.shorten), x, y)
-            
-        dc.SetTextForeground(POPUP_PAGETEXT_COLOR)
-        if len(self.pages)>1:
-            if CeciliaLib.getVar("systemPlatform") == "win32":
-                dc.DrawText('Page %d of %d' % (self.currPage+1,len(self.pages)), w-83, h-17)
-            else:
-                dc.DrawText('Page %d of %d' % (self.currPage+1,len(self.pages)), w-83, h-15)
-        if self.showLeftArrow:
-            if self.arrowOver==0:
-                dc.SetPen( wx.Pen(POPUP_PAGEARROW_COLOR_OVER))
-                dc.SetBrush( wx.Brush(POPUP_PAGEARROW_COLOR_OVER))
-            else:
-                dc.SetPen( wx.Pen(POPUP_PAGEARROW_COLOR))
-                dc.SetBrush( wx.Brush(POPUP_PAGEARROW_COLOR))
-            dc.DrawPolygon(self.leftArrow)
-        if self.showRightArrow:
-            if self.arrowOver==1:
-                dc.SetPen( wx.Pen(POPUP_PAGEARROW_COLOR_OVER))
-                dc.SetBrush( wx.Brush(POPUP_PAGEARROW_COLOR_OVER))
-            else:
-                dc.SetPen( wx.Pen(POPUP_PAGEARROW_COLOR))
-                dc.SetBrush( wx.Brush(POPUP_PAGEARROW_COLOR))
-            dc.DrawPolygon(self.rightArrow)
-
-    def MouseDown(self, event):
-        pos = event.GetPosition()
-        isPageChange = False
-        isLabelSelect = False
-        for rec in self.rects:
-            if rec.Contains(pos):
-                self.which = self.rects.index(rec)
-                isLabelSelect = True
-                break
-            
-        for rec in self.arrows:
-            if rec.Contains(pos):
-                self.arrowOver = self.arrows.index(rec)
-                isPageChange = True
-                break
-            
-        if self.emptyFunction != None:
-            self.emptyFunction(self.pages[self.currPage][self.which])
-            self.parent.setClosed()
-            self.Close(force=True)
-            return
-
-        if isLabelSelect:
-            self.parent.setLabel(self.pages[self.currPage][self.which])
-            self.parent.setClosed()
-            self.Close(force=True)
-            
-        if isPageChange:
-            if self.arrowOver==0:
-                self.changePageDown()
-            if self.arrowOver==1:
-                self.changePageUp()
-
-    def OnEnter(self, event):
-        self.closable = False
-    
-    def OnLeave(self, event):
-        self.closable = True
-        t = wx.CallLater(1000, self.close)
-
-    def close(self):
-        if self.closable:
-            self.parent.setClosed()
-            self.Close(force=True)
- 
-    def OnMotion(self, event):
-        pos = event.GetPosition()
-        for rec in self.rects:
-            if rec.Contains(pos):
-                self.which = self.rects.index(rec)
-                self.arrowOver = None
-                break
-            else:
-                self.which = None
-                self.arrowOver = None
-        if self.which == None:
-            for rec in self.arrows:
-                if rec.Contains(pos):
-                    self.which = None
-                    self.arrowOver = self.arrows.index(rec)
-                    break
-                else:
-                    self.which = None
-                    self.arrowOver = None
-        
-        self.Refresh()
-        event.Skip()
 
 #---------------------------
 # Label (immutable)
@@ -670,18 +358,24 @@ class MainLabel(wx.Panel):
         self.outFunction = outFunction
         self.Bind(wx.EVT_PAINT, self.OnPaint)
 
+        if CeciliaLib.getVar("systemPlatform") == "win32":
+            self.dcref = wx.BufferedPaintDC
+        else:
+            self.dcref = wx.PaintDC
+
     def setBackColour(self, colour):
         self.colour = colour
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
     
     def setLabel(self, label):
         self.italic = False
         self.label = label
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def OnPaint(self, event):
         w,h = self.GetSize()
-        dc = wx.PaintDC(self)
+        dc = self.dcref(self)
+        gc = wx.GraphicsContext_Create(dc)
 
         dc.SetBrush(wx.Brush(BACKGROUND_COLOUR, wx.SOLID))
         dc.Clear()
@@ -690,10 +384,10 @@ class MainLabel(wx.Panel):
             dc.SetFont(self.font)
         else:
             if self.italic:
-                font = wx.Font(LABEL_FONT, wx.NORMAL, wx.ITALIC, wx.LIGHT, face=FONT_FACE)
+                font = wx.Font(LABEL_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_ITALIC, wx.FONTWEIGHT_LIGHT, face=FONT_FACE)
                 dc.SetFont(font)
             else:
-                font = wx.Font(LABEL_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE)
+                font = wx.Font(LABEL_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE)
                 dc.SetFont(font)
 
         # Draw background
@@ -701,16 +395,16 @@ class MainLabel(wx.Panel):
         dc.DrawRectangle(0, 0, w, h)
 
         rec = wx.Rect(0, 0, w, h)
-        dc.SetBrush(wx.Brush(self.colour))
-        dc.SetPen(wx.Pen(WIDGET_BORDER_COLOUR, width=1))
-        dc.DrawRoundedRectangleRect(rec, 3)
+        gc.SetBrush(wx.Brush(self.colour))
+        gc.SetPen(wx.Pen(WIDGET_BORDER_COLOUR, width=1))
+        gc.DrawRoundedRectangle(rec[0], rec[1], rec[2]-1, rec[3]-1, 3)
         dc.SetTextForeground(LABEL_LABEL_COLOUR)
         dc.DrawLabel(self.label, wx.Rect(0, 1, w-5, h-1), wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT)
         
     def setItalicLabel(self, label):
         self.italic = True
         self.label = label
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         
     def getLabel(self):
         return self.label
@@ -756,7 +450,8 @@ class Label(MainLabel):
             side = 'left'
         else:
             side = 'right'
-        self.dclickFunction(side)
+        if self.dclickFunction != None:
+            self.dclickFunction(side)
  
 class OutputLabel(MainLabel):
     def __init__(self, parent, label, size=(100,20), font=None, colour=None, outFunction=None):
@@ -794,7 +489,7 @@ class PeakLabel(MainLabel):
         self.italic = False
         self.label = label
         self.canCmdClick = True
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
 class FrameLabel(wx.Panel):
     def __init__(self, parent, label, size=(100,20), font=None, colour=None):
@@ -814,11 +509,11 @@ class FrameLabel(wx.Panel):
        
     def setBackColour(self, colour):
         self.colour = colour
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
     
     def setLabel(self, label):
         self.label = label
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def MouseDown(self, event):
         self.pos = event.GetPosition()
@@ -848,7 +543,7 @@ class FrameLabel(wx.Panel):
         if self.font:
             dc.SetFont(self.font)
         else:
-            font = wx.Font(LABEL_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE)
+            font = wx.Font(LABEL_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE)
             dc.SetFont(font)
 
         # Draw background
@@ -857,10 +552,7 @@ class FrameLabel(wx.Panel):
 
         rec = wx.Rect(0, 0, w-5, h)
         dc.SetTextForeground(LABEL_LABEL_COLOUR)
-        if sys.platform == 'win32':
-            dc.DrawLabel(self.label, rec, wx.ALIGN_CENTER)
-        else:
-            dc.DrawLabel(self.label, rec, wx.ALIGN_CENTER)
+        dc.DrawLabel(self.label, rec, wx.ALIGN_CENTER)
 
 class AboutLabel(wx.Panel):
     def __init__(self, parent, version, copyright, size=(600,80), font=None, colour=None):
@@ -878,13 +570,19 @@ class AboutLabel(wx.Panel):
         self.bit = ICON_CECILIA_ABOUT_SMALL.GetBitmap()
         self.Bind(wx.EVT_PAINT, self.OnPaint)
 
+        if CeciliaLib.getVar("systemPlatform") == "win32":
+            self.dcref = wx.BufferedPaintDC
+        else:
+            self.dcref = wx.PaintDC
+
     def setBackColour(self, colour):
         self.colour = colour
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def OnPaint(self, event):
         w,h = self.GetSize()
-        dc = wx.PaintDC(self)
+        dc = self.dcref(self)
+        gc = wx.GraphicsContext_Create(dc)
 
         dc.SetBrush(wx.Brush(TITLE_BACK_COLOUR, wx.SOLID))
         dc.Clear()
@@ -892,7 +590,7 @@ class AboutLabel(wx.Panel):
         if self.font:
             dc.SetFont(self.font)
         else:
-            font = wx.Font(LABEL_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE)
+            font = wx.Font(LABEL_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE)
             dc.SetFont(font)
 
         # Draw background
@@ -900,14 +598,18 @@ class AboutLabel(wx.Panel):
         dc.DrawRectangle(0, 0, w, h)
 
         dc.DrawBitmap(self.bit, w/2-self.img_side/2, h/2-self.img_side/2)
-        dc.SetBrush(wx.Brush(TITLE_BACK_COLOUR, wx.TRANSPARENT))
-        dc.SetPen(wx.Pen(TITLE_BACK_COLOUR, width=3, style=wx.SOLID))
-        dc.DrawCircle(w/2, h/2,self.img_side/2-1)
+        gc.SetBrush(wx.Brush(TITLE_BACK_COLOUR, wx.TRANSPARENT))
+        gc.SetPen(wx.Pen(TITLE_BACK_COLOUR, width=3, style=wx.SOLID))
+        gc.DrawRoundedRectangle(w/2-self.img_side/2+1, 
+                                h/2-self.img_side/2+1, 
+                                self.img_side-2, 
+                                self.img_side-2, 
+                                self.img_side/2-1)
         
         dc.SetTextForeground(LABEL_LABEL_COLOUR)
-        rec = wx.Rect(5, 68, 50, 10)
+        rec = wx.Rect(10, 68, 50, 10)
         dc.DrawLabel(self.copyright, rec, wx.ALIGN_CENTER)
-        rec = wx.Rect(545, 68, 50, 10)
+        rec = wx.Rect(540, 68, 50, 10)
         dc.DrawLabel(self.version, rec, wx.ALIGN_CENTER)
 
 #---------------------------
@@ -929,9 +631,15 @@ class Toggle(wx.Panel):
         self.Bind(wx.EVT_LEFT_DOWN, self.MouseDown)
         self.Bind(wx.EVT_ENTER_WINDOW, self.OnEnter)
 
+        if CeciliaLib.getVar("systemPlatform") == "win32":
+            self.dcref = wx.BufferedPaintDC
+        else:
+            self.dcref = wx.PaintDC
+
     def OnPaint(self, event):
         w,h = self.GetSize()
-        dc = wx.AutoBufferedPaintDC(self)
+        dc = self.dcref(self)
+        gc = wx.GraphicsContext_Create(dc)
 
         dc.SetBrush(wx.Brush(BACKGROUND_COLOUR, wx.SOLID))
         dc.Clear()
@@ -940,10 +648,10 @@ class Toggle(wx.Panel):
         dc.SetPen(wx.Pen(BACKGROUND_COLOUR, width=0, style=wx.SOLID))
         dc.DrawRectangle(0, 0, w, h)
 
-        dc.SetBrush(wx.Brush(self.colour, wx.SOLID))
-        dc.SetPen(wx.Pen(WIDGET_BORDER_COLOUR, width=1, style=wx.SOLID))  
+        gc.SetBrush(wx.Brush(self.colour, wx.SOLID))
+        gc.SetPen(wx.Pen(WIDGET_BORDER_COLOUR, width=1, style=wx.SOLID))  
         rec = wx.Rect(0, 0, w, h)
-        dc.DrawRoundedRectangleRect(rec, 3)
+        gc.DrawRoundedRectangle(rec[0], rec[1], rec[2]-1, rec[3]-1, 3)
         dc.SetTextForeground(TOGGLE_LABEL_COLOUR)
         if self.state: label = 'X'
         else: label = ''
@@ -954,14 +662,14 @@ class Toggle(wx.Panel):
     def MouseDown(self, event):
         if self.state: self.state = 0
         else: self.state = 1
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         event.Skip()
 
     def OnEnter(self, event):
         if event.ButtonIsDown(wx.MOUSE_BTN_LEFT):
             if self.state: self.state = 0
             else: self.state = 1
-            self.Refresh()
+            wx.CallAfter(self.Refresh)
         event.Skip()
 
     def getValue(self):
@@ -969,7 +677,7 @@ class Toggle(wx.Panel):
     
     def setValue(self, value):
         self.state = value
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
 #---------------------------
 # Xfade switcher (return 0, 1 or 2)
@@ -990,10 +698,17 @@ class XfadeSwitcher(wx.Panel):
         self.bitmaps = [ICON_XFADE_LINEAR.GetBitmap(), ICON_XFADE_POWER.GetBitmap(), ICON_XFADE_SIGMOID.GetBitmap()]
         self.Bind(wx.EVT_PAINT, self.OnPaint)
         self.Bind(wx.EVT_LEFT_DOWN, self.MouseDown)
+        self.SetToolTip(CECTooltip(TT_SAMPLER_XFADE_SHAPE))
+
+        if CeciliaLib.getVar("systemPlatform") == "win32":
+            self.dcref = wx.BufferedPaintDC
+        else:
+            self.dcref = wx.PaintDC
 
     def OnPaint(self, event):
         w,h = self.GetSize()
-        dc = wx.AutoBufferedPaintDC(self)
+        dc = self.dcref(self)
+        gc = wx.GraphicsContext_Create(dc)
 
         dc.SetBrush(wx.Brush(BACKGROUND_COLOUR, wx.SOLID))
         dc.Clear()
@@ -1002,10 +717,10 @@ class XfadeSwitcher(wx.Panel):
         dc.SetPen(wx.Pen(BACKGROUND_COLOUR, width=0, style=wx.SOLID))
         dc.DrawRectangle(0, 0, w, h)
 
-        dc.SetBrush(wx.Brush(self.colour, wx.SOLID))
-        dc.SetPen(wx.Pen(WIDGET_BORDER_COLOUR, width=1, style=wx.SOLID))  
+        gc.SetBrush(wx.Brush(self.colour, wx.SOLID))
+        gc.SetPen(wx.Pen(WIDGET_BORDER_COLOUR, width=1, style=wx.SOLID))  
         rec = wx.Rect(0, 0, w, h)
-        dc.DrawRoundedRectangleRect(rec, 3)
+        gc.DrawRoundedRectangle(rec[0], rec[1], rec[2]-1, rec[3]-1, 3)
         dc.SetPen(wx.Pen(TOGGLE_LABEL_COLOUR, width=1, style=wx.SOLID))  
         dc.DrawBitmap(self.bitmaps[self.state], 3, 3, True)
         if self.outFunction:
@@ -1013,7 +728,7 @@ class XfadeSwitcher(wx.Panel):
 
     def MouseDown(self, event):
         self.state = (self.state+1) % 3
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         event.Skip()
 
     def getValue(self):
@@ -1021,7 +736,7 @@ class XfadeSwitcher(wx.Panel):
 
     def setValue(self, value):
         self.state = value
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
 #---------------------------
 # Button (send a trigger)
@@ -1044,9 +759,15 @@ class Button(wx.Panel):
         self.Bind(wx.EVT_LEFT_DOWN, self.MouseDown)
         self.Bind(wx.EVT_LEFT_UP, self.MouseUp)
 
+        if CeciliaLib.getVar("systemPlatform") == "win32":
+            self.dcref = wx.BufferedPaintDC
+        else:
+            self.dcref = wx.PaintDC
+
     def OnPaint(self, event):
         w,h = self.GetSize()
-        dc = wx.AutoBufferedPaintDC(self)
+        dc = self.dcref(self)
+        gc = wx.GraphicsContext_Create(dc)
 
         dc.SetBrush(wx.Brush(BACKGROUND_COLOUR, wx.SOLID))
         dc.Clear()
@@ -1056,25 +777,25 @@ class Button(wx.Panel):
         dc.DrawRectangle(0, 0, w, h)
 
         if not self.state:
-            dc.SetBrush(wx.Brush(self.colour, wx.SOLID))
+            gc.SetBrush(wx.Brush(self.colour, wx.SOLID))
         else:
-            dc.SetBrush(wx.Brush(self.pushColour, wx.SOLID))
-        dc.SetPen(wx.Pen(WIDGET_BORDER_COLOUR, width=1, style=wx.SOLID))  
+            gc.SetBrush(wx.Brush(self.pushColour, wx.SOLID))
+        gc.SetPen(wx.Pen(WIDGET_BORDER_COLOUR, width=1, style=wx.SOLID))  
         rec = wx.Rect(0, 0, w, h)
-        dc.DrawRoundedRectangleRect(rec, 9)
+        gc.DrawRoundedRectangle(rec[0], rec[1], rec[2]-1, rec[3]-1, 9)
 
     def MouseDown(self, event):
         self.state = True
         if self.outFunction:
             self.outFunction(1)
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         event.Skip()
 
     def MouseUp(self, event):
         self.state = False
         if self.outFunction:
             self.outFunction(0)
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         event.Skip()
 
 #---------------------------
@@ -1091,10 +812,16 @@ class MinMaxToggle(wx.Panel):
         self.Bind(wx.EVT_PAINT, self.OnPaint)
         self.Bind(wx.EVT_LEFT_DOWN, self.MouseDown)
         self.SetToolTip(CECTooltip(TT_EDITOR_SHOW))
+
+        if CeciliaLib.getVar("systemPlatform") == "win32":
+            self.dcref = wx.BufferedPaintDC
+        else:
+            self.dcref = wx.PaintDC
         
     def OnPaint(self, event):
         w,h = self.GetSize()
-        dc = wx.AutoBufferedPaintDC(self)
+        dc = self.dcref(self)
+        gc = wx.GraphicsContext_Create(dc)
 
         dc.SetBrush(wx.Brush(TITLE_BACK_COLOUR, wx.SOLID))
         dc.Clear()
@@ -1103,25 +830,27 @@ class MinMaxToggle(wx.Panel):
         dc.SetPen(wx.Pen(TITLE_BACK_COLOUR, width=0, style=wx.SOLID))
         dc.DrawRectangle(0, 0, w, h)
 
-        dc.SetPen(wx.Pen(WHITE_COLOUR, width=0, style=wx.SOLID))
-        dc.SetBrush(wx.Brush(WHITE_COLOUR, style=wx.SOLID))
+        gc.SetPen(wx.Pen(WHITE_COLOUR, width=0, style=wx.SOLID))
+        gc.SetBrush(wx.Brush(WHITE_COLOUR, style=wx.SOLID))
 
         if self.state: 
-            dc.DrawPolygon([[5, 4], [5, h-6], [w-5, h/2-1]])
+            tri = [(5, 4), (5, h-6), (w-5, h/2-1)]
         else:
-            dc.DrawPolygon([[5, 5], [w-5, 5], [w/2, h-6]])
+            tri = [(5, 5), (w-5, 5), (w/2, h-6)]
+
+        gc.DrawLines(tri)
 
     def MouseDown(self, event):
         if self.state: self.state = 0
         else: self.state = 1
         if self.outFunction:
             self.outFunction(self.state)
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         event.Skip()
 
     def SetValue(self, value):
         self.state = value
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def GetValue(self):
         return self.state
@@ -1140,7 +869,7 @@ class Clocker(wx.Panel):
         if borderColour: self.borderColour = borderColour
         else: self.borderColour = WIDGET_BORDER_COLOUR
         self.time = '00:00:00'
-        self.font = wx.Font(CLOCKER_FONT, wx.NORMAL, wx.NORMAL, wx.BOLD, face=FONT_FACE)
+        self.font = wx.Font(CLOCKER_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, face=FONT_FACE)
         self.colour = CONTROLSLIDER_BACK_COLOUR
         self.Bind(wx.EVT_PAINT, self.OnPaint)
         self.createBackgroundBitmap()
@@ -1150,6 +879,7 @@ class Clocker(wx.Panel):
         w, h = self.GetSize()
         self.backgroundBitmap = wx.EmptyBitmap(w,h)
         dc = wx.MemoryDC(self.backgroundBitmap)
+        gc = wx.GraphicsContext_Create(dc)
         dc.SetBrush(wx.Brush(self.backgroundColour, wx.SOLID))
 
         # Draw background
@@ -1157,9 +887,9 @@ class Clocker(wx.Panel):
         dc.DrawRectangle(0, 0, w, h)
 
         rec = wx.Rect(0, 0, w, h)
-        dc.SetPen(wx.Pen(WIDGET_BORDER_COLOUR, width=1))
-        dc.SetBrush(wx.Brush(CONTROLLABEL_BACK_COLOUR))
-        dc.DrawRoundedRectangleRect(rec, 4)
+        gc.SetPen(wx.Pen(WIDGET_BORDER_COLOUR, width=1))
+        gc.SetBrush(wx.Brush(CONTROLLABEL_BACK_COLOUR))
+        gc.DrawRoundedRectangle(rec[0], rec[1], rec[2]-2, rec[3]-2, 4)
         dc.SelectObject(wx.NullBitmap)
 
     def OnPaint(self, event):
@@ -1175,7 +905,7 @@ class Clocker(wx.Panel):
 
     def setTime(self, m ,s, c):
         self.time = '%02d:%02d:%02d' % (m, s, c)
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
 #---------------------------
 # EntryUnit
@@ -1195,13 +925,23 @@ class EntryUnit(wx.Panel):
         self.oldValue = value
         self.increment = 0.001
         self.new = ''
-        self.font = wx.Font(ENTRYUNIT_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE)
-        self.unitFont = wx.Font(ENTRYUNIT_FONT, wx.ROMAN, wx.ITALIC, wx.LIGHT, face=FONT_FACE)
-        self.entryRect = wx.Rect(40, 1, 52, self.GetSize()[1]-2)
+        self.sizeX = size[0]
+        self.font = wx.Font(ENTRYUNIT_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE)
+        self.unitFont = wx.Font(ENTRYUNIT_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_ITALIC, wx.FONTWEIGHT_LIGHT, face=FONT_FACE)
+        if self.sizeX == 120:
+            self.entryRect = wx.Rect(40, 1, 52, self.GetSize()[1]-2)
+        else:
+            self.entryRect = wx.Rect(20, 1, 52, self.GetSize()[1]-2)
         if CeciliaLib.getVar("systemPlatform") == 'win32':
-            self.starttext = 55
-        else:    
-            self.starttext = 90
+            if self.sizeX == 120:
+                self.starttext = 80
+            else:
+                self.starttext = 60
+        else:
+            if self.sizeX == 120:
+                self.starttext = 90
+            else:
+                self.starttext = 70
         if colour:
             self.backColour = colour
         else:
@@ -1218,6 +958,7 @@ class EntryUnit(wx.Panel):
         w, h = self.GetSize()
         self.backgroundBitmap = wx.EmptyBitmap(w,h)
         dc = wx.MemoryDC(self.backgroundBitmap)
+        gc = wx.GraphicsContext_Create(dc)
         dc.SetBrush(wx.Brush(BACKGROUND_COLOUR, wx.SOLID))
         dc.SetTextForeground(LABEL_LABEL_COLOUR)
 
@@ -1226,24 +967,28 @@ class EntryUnit(wx.Panel):
         dc.DrawRectangle(0, 0, w, h)
 
         rec = wx.Rect(0, 0, w, h)
-        dc.SetPen(wx.Pen(WIDGET_BORDER_COLOUR, width=1))
-        dc.SetBrush(wx.Brush(self.backColour))
-        dc.DrawRoundedRectangleRect(rec, 3)
+        gc.SetPen(wx.Pen(WIDGET_BORDER_COLOUR, width=1))
+        gc.SetBrush(wx.Brush(self.backColour))
+        gc.DrawRoundedRectangle(rec[0], rec[1], rec[2]-1, rec[3]-1, 3)
 
         # Draw triangle
-        dc.SetPen(wx.Pen(LABEL_LABEL_COLOUR, width=1, style=wx.SOLID))  
-        dc.SetBrush(wx.Brush(LABEL_LABEL_COLOUR, wx.SOLID))
-        dc.DrawPolygon([wx.Point(12,h/2), wx.Point(7,5), wx.Point(7,h-5)])
+        gc.SetPen(wx.Pen(LABEL_LABEL_COLOUR, width=1, style=wx.SOLID))  
+        gc.SetBrush(wx.Brush(LABEL_LABEL_COLOUR, wx.SOLID))
+        tri = [(12,h/2-0.5), (7,4.5), (7,h-5.5), (12,h/2-0.5)]
+        gc.DrawLines(tri)
 
         # Draw unit
         dc.SetFont(self.unitFont)
-        dc.DrawLabel(self.unit, wx.Rect(95, 1, w-95, h), wx.ALIGN_CENTER_VERTICAL)
+        if self.sizeX == 120:
+            dc.DrawLabel(self.unit, wx.Rect(95, 1, w-95, h), wx.ALIGN_CENTER_VERTICAL)
+        else:
+            dc.DrawLabel(self.unit, wx.Rect(75, 1, w-75, h), wx.ALIGN_CENTER_VERTICAL)
         dc.SelectObject(wx.NullBitmap)
 
     def setBackColour(self, colour):
         self.backColour = colour
         self.createBackgroundBitmap()
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def LooseFocus(self, event):
         if self.new != '':
@@ -1252,7 +997,7 @@ class EntryUnit(wx.Panel):
         self.selected = False
         if self.outFunction:
             self.outFunction(self.value)
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def OnPaint(self, event):
         w,h = self.GetSize()
@@ -1301,7 +1046,7 @@ class EntryUnit(wx.Panel):
             self.selected = True
             self.new = ''
             self.CaptureMouse()
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         event.Skip()
 
     def MouseMotion(self, evt):
@@ -1314,7 +1059,7 @@ class EntryUnit(wx.Panel):
                 self.value = self.oldValue + off    
                 if self.outFunction:
                     self.outFunction(self.value)
-            self.Refresh()
+            wx.CallAfter(self.Refresh)
 
     def MouseUp(self, evt):
         if self.HasCapture():
@@ -1347,14 +1092,13 @@ class EntryUnit(wx.Panel):
                 self.selected = False
                 if self.outFunction:
                     self.outFunction(self.value)
-            self.Refresh()
+            wx.CallAfter(self.Refresh)
 
     def setValue(self, val):
         self.value = val
         self.selected = False
         self.new = ''
-        self.Refresh() # need by Windows
-        self.OnPaint(wx.PaintEvent(wx.ID_ANY)) # need by OS X
+        wx.CallAfter(self.Refresh)
 
 class RangeEntryUnit(wx.Panel):
     def __init__(self, parent, value=[0,0], unit='', size=(120,20), valtype='float', outFunction=None, colour=None):
@@ -1371,11 +1115,11 @@ class RangeEntryUnit(wx.Panel):
         self.oldValue = value
         self.increment = 0.001
         self.new = ''
-        self.font = wx.Font(ENTRYUNIT_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE)
-        self.unitFont = wx.Font(ENTRYUNIT_FONT, wx.ROMAN, wx.ITALIC, wx.LIGHT, face=FONT_FACE)
+        self.font = wx.Font(ENTRYUNIT_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE)
+        self.unitFont = wx.Font(ENTRYUNIT_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_ITALIC, wx.FONTWEIGHT_LIGHT, face=FONT_FACE)
         self.entryRect = wx.Rect(16, 2, 75, self.GetSize()[1]-4)
         if CeciliaLib.getVar("systemPlatform") == 'win32':
-            self.starttext = 55
+            self.starttext = 80
         elif CeciliaLib.getVar("systemPlatform") == 'linux2':
             self.starttext = 75
         else:    
@@ -1396,6 +1140,7 @@ class RangeEntryUnit(wx.Panel):
         w, h = self.GetSize()
         self.backgroundBitmap = wx.EmptyBitmap(w,h)
         dc = wx.MemoryDC(self.backgroundBitmap)
+        gc = wx.GraphicsContext_Create(dc)
         dc.SetBrush(wx.Brush(BACKGROUND_COLOUR, wx.SOLID))
         dc.SetTextForeground(LABEL_LABEL_COLOUR)
 
@@ -1404,14 +1149,15 @@ class RangeEntryUnit(wx.Panel):
         dc.DrawRectangle(0, 0, w, h)
 
         rec = wx.Rect(0, 0, w, h)
-        dc.SetPen(wx.Pen(WIDGET_BORDER_COLOUR, width=1))
-        dc.SetBrush(wx.Brush(self.backColour))
-        dc.DrawRoundedRectangleRect(rec, 3)
+        gc.SetPen(wx.Pen(WIDGET_BORDER_COLOUR, width=1))
+        gc.SetBrush(wx.Brush(self.backColour))
+        gc.DrawRoundedRectangle(rec[0], rec[1], rec[2]-1, rec[3]-1, 3)
 
         # Draw triangle
-        dc.SetPen(wx.Pen(LABEL_LABEL_COLOUR, width=1, style=wx.SOLID))  
-        dc.SetBrush(wx.Brush(LABEL_LABEL_COLOUR, wx.SOLID))
-        dc.DrawPolygon([wx.Point(12,h/2), wx.Point(7,5), wx.Point(7,h-5)])
+        gc.SetPen(wx.Pen(LABEL_LABEL_COLOUR, width=1, style=wx.SOLID))  
+        gc.SetBrush(wx.Brush(LABEL_LABEL_COLOUR, wx.SOLID))
+        tri = [(12,h/2-0.5), (7,4.5), (7,h-5.5), (12,h/2-0.5)]
+        gc.DrawLines(tri)
 
         # Draw unit
         dc.SetFont(self.unitFont)
@@ -1421,7 +1167,7 @@ class RangeEntryUnit(wx.Panel):
     def setBackColour(self, colour):
         self.backColour = colour
         self.createBackgroundBitmap()
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def LooseFocus(self, event):
         if self.new != '':
@@ -1430,7 +1176,7 @@ class RangeEntryUnit(wx.Panel):
         self.selected = False
         if self.outFunction:
             self.outFunction(self.value)
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def OnPaint(self, event):
         w,h = self.GetSize()
@@ -1458,21 +1204,33 @@ class RangeEntryUnit(wx.Panel):
             elif self.value[0] >= 1000:
                 v1 = "%.1f" % self.value[0]
             elif self.value[0] >= 100:
+                v1 = "%.1f" % self.value[0]
+            elif self.value[0] >= 10:
                 v1 = "%.2f" % self.value[0]
-            elif self.value[0] < 0:
+            elif self.value[0] >= -100:
                 v1 = "%.2f" % self.value[0]
+            elif self.value[0] >= -1000:
+                v1 = "%.1f" % self.value[0]
+            elif self.value[0] >= -10000:
+                v1 = "%.1f" % self.value[0]
             else:
-                v1 = "%.3f" % self.value[0]
+                v1 = str(int(self.value[0]))
             if self.value[1] >= 10000:
                 v2 = str(int(self.value[1]))
             elif self.value[1] >= 1000:
                 v2 = "%.1f" % self.value[1]
             elif self.value[1] >= 100:
+                v2 = "%.1f" % self.value[1]
+            elif self.value[1] >= 10:
                 v2 = "%.2f" % self.value[1]
-            elif self.value[1] < 0:
+            elif self.value[1] >= -100:
                 v2 = "%.2f" % self.value[1]
+            elif self.value[1] >= -1000:
+                v2 = "%.1f" % self.value[1]
+            elif self.value[1] >= -10000:
+                v2 = "%.1f" % self.value[1]
             else:
-                v2 = "%.3f" % self.value[1]
+                v2 = str(int(self.value[1]))
             val = "%s, %s" % (v1, v2)
         if CeciliaLib.getVar("systemPlatform") == 'linux2':
             width = len(val) * (dc.GetCharWidth() - 3)
@@ -1500,7 +1258,7 @@ class RangeEntryUnit(wx.Panel):
                 self.CaptureMouse()
             self.selected = True
             self.new = ''
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         event.Skip()
 
     def MouseMotion(self, evt):
@@ -1513,7 +1271,7 @@ class RangeEntryUnit(wx.Panel):
                 self.value = self.oldValue + off    
                 if self.outFunction:
                     self.outFunction(self.value)
-            self.Refresh()
+            wx.CallAfter(self.Refresh)
 
     def MouseUp(self, evt):
         if self.HasCapture():
@@ -1552,14 +1310,13 @@ class RangeEntryUnit(wx.Panel):
                 self.selected = False
                 if self.outFunction:
                     self.outFunction(self.value)
-            self.Refresh()
+            wx.CallAfter(self.Refresh)
 
     def setValue(self, val):
         self.value = val
         self.selected = False
         self.new = ''
-        self.Refresh() # need by Windows
-        self.OnPaint(wx.PaintEvent(wx.ID_ANY)) # need by OS X
+        wx.CallAfter(self.Refresh)
 
 class SplitterEntryUnit(wx.Panel):
     def __init__(self, parent, value=[0,0,0], unit='', size=(120,20), num=3, valtype='float', outFunction=None, colour=None):
@@ -1577,11 +1334,11 @@ class SplitterEntryUnit(wx.Panel):
         self.oldValue = value
         self.increment = 0.001
         self.new = ''
-        self.font = wx.Font(ENTRYUNIT_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE)
-        self.unitFont = wx.Font(ENTRYUNIT_FONT, wx.ROMAN, wx.ITALIC, wx.LIGHT, face=FONT_FACE)
+        self.font = wx.Font(ENTRYUNIT_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE)
+        self.unitFont = wx.Font(ENTRYUNIT_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_ITALIC, wx.FONTWEIGHT_LIGHT, face=FONT_FACE)
         self.entryRect = wx.Rect(13, 2, 80, self.GetSize()[1]-4)
         if CeciliaLib.getVar("systemPlatform") == 'win32':
-            self.starttext = 55
+            self.starttext = 75
         elif CeciliaLib.getVar("systemPlatform") == 'linux2':
             self.starttext = 65
         else:    
@@ -1602,6 +1359,7 @@ class SplitterEntryUnit(wx.Panel):
         w, h = self.GetSize()
         self.backgroundBitmap = wx.EmptyBitmap(w,h)
         dc = wx.MemoryDC(self.backgroundBitmap)
+        gc = wx.GraphicsContext_Create(dc)
         dc.SetBrush(wx.Brush(BACKGROUND_COLOUR, wx.SOLID))
         dc.SetTextForeground(LABEL_LABEL_COLOUR)
 
@@ -1610,9 +1368,9 @@ class SplitterEntryUnit(wx.Panel):
         dc.DrawRectangle(0, 0, w, h)
 
         rec = wx.Rect(0, 0, w, h)
-        dc.SetPen(wx.Pen(WIDGET_BORDER_COLOUR, width=1))
-        dc.SetBrush(wx.Brush(self.backColour))
-        dc.DrawRoundedRectangleRect(rec, 3)
+        gc.SetPen(wx.Pen(WIDGET_BORDER_COLOUR, width=1))
+        gc.SetBrush(wx.Brush(self.backColour))
+        gc.DrawRoundedRectangle(rec[0], rec[1], rec[2]-1, rec[3]-1, 3)
 
         # Draw triangle
         # dc.SetPen(wx.Pen(LABEL_LABEL_COLOUR, width=1, style=wx.SOLID))  
@@ -1627,7 +1385,7 @@ class SplitterEntryUnit(wx.Panel):
     def setBackColour(self, colour):
         self.backColour = colour
         self.createBackgroundBitmap()
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def LooseFocus(self, event):
         if self.new != '':
@@ -1636,7 +1394,7 @@ class SplitterEntryUnit(wx.Panel):
         self.selected = False
         if self.outFunction:
             self.outFunction(self.value)
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def OnPaint(self, event):
         w,h = self.GetSize()
@@ -1691,7 +1449,7 @@ class SplitterEntryUnit(wx.Panel):
                 self.CaptureMouse()
             self.selected = True
             self.new = ''
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         event.Skip()
 
     def MouseMotion(self, evt):
@@ -1704,7 +1462,7 @@ class SplitterEntryUnit(wx.Panel):
                 self.value = self.oldValue + off    
                 if self.outFunction:
                     self.outFunction(self.value)
-            self.Refresh()
+            wx.CallAfter(self.Refresh)
 
     def MouseUp(self, evt):
         if self.HasCapture():
@@ -1742,14 +1500,13 @@ class SplitterEntryUnit(wx.Panel):
                 self.selected = False
                 if self.outFunction:
                     self.outFunction(self.value)
-            self.Refresh()
+            wx.CallAfter(self.Refresh)
 
     def setValue(self, val):
         self.value = val
         self.selected = False
         self.new = ''
-        self.Refresh() # need by Windows
-        self.OnPaint(wx.PaintEvent(wx.ID_ANY)) # need by OS X
+        wx.CallAfter(self.Refresh)
 
 #---------------------------
 # ListEntry
@@ -1763,7 +1520,7 @@ class ListEntry(wx.Panel):
         self.outFunction = outFunction
         self.value = value
         self.new = ''
-        self.font = wx.Font(ENTRYUNIT_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE)
+        self.font = wx.Font(ENTRYUNIT_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE)
         if colour:
             self.backColour = colour
         else:
@@ -1776,6 +1533,7 @@ class ListEntry(wx.Panel):
         w, h = self.GetSize()
         self.backgroundBitmap = wx.EmptyBitmap(w,h)
         dc = wx.MemoryDC(self.backgroundBitmap)
+        gc = wx.GraphicsContext_Create(dc)
         dc.SetBrush(wx.Brush(BACKGROUND_COLOUR, wx.SOLID))
         dc.SetTextForeground(LABEL_LABEL_COLOUR)
 
@@ -1784,16 +1542,16 @@ class ListEntry(wx.Panel):
         dc.DrawRectangle(0, 0, w, h)
 
         rec = wx.Rect(0, 0, w, h)
-        dc.SetPen(wx.Pen(WIDGET_BORDER_COLOUR, width=1))
-        dc.SetBrush(wx.Brush(self.backColour))
-        dc.DrawRoundedRectangleRect(rec, 3)
+        gc.SetPen(wx.Pen(WIDGET_BORDER_COLOUR, width=1))
+        gc.SetBrush(wx.Brush(self.backColour))
+        gc.DrawRoundedRectangle(rec[0], rec[1], rec[2]-1, rec[3]-1, 3)
 
         dc.SelectObject(wx.NullBitmap)
 
     def setBackColour(self, colour):
         self.backColour = colour
         self.createBackgroundBitmap()
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def OnPaint(self, event):
         w,h = self.GetSize()
@@ -1826,8 +1584,7 @@ class ListEntry(wx.Panel):
         self.value = val
         if self.outFunction != None:
             self.outFunction(self.value)
-        self.Refresh() # need by Windows
-        self.OnPaint(wx.PaintEvent(wx.ID_ANY)) # need by OS X
+        wx.CallAfter(self.Refresh)
 
     def getValue(self):
         return self.value
@@ -1836,16 +1593,12 @@ class ListEntryPopupFrame(wx.Frame):
     def __init__(self, parent, value):
         style = ( wx.CLIP_CHILDREN | wx.FRAME_NO_TASKBAR | wx.FRAME_SHAPED | wx.NO_BORDER | wx.FRAME_FLOAT_ON_PARENT )
         wx.Frame.__init__(self, parent, title='', style = style)
+        self.SetBackgroundColour(BACKGROUND_COLOUR)
         self.parent = parent
         self.value = value
-        self.SetSize((320,100))
-
-        if wx.Platform == '__WXGTK__':
-            self.Bind(wx.EVT_WINDOW_CREATE, self.SetRoundShape)
-        else:
-            self.SetRoundShape()
+        self.SetClientSize((320,95))
 
-        self.font = wx.Font(LIST_ENTRY_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE)
+        self.font = wx.Font(LIST_ENTRY_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE)
 
         panel = wx.Panel(self, -1)
         w, h = self.GetSize()
@@ -1855,7 +1608,7 @@ class ListEntryPopupFrame(wx.Frame):
         title = FrameLabel(panel, "ENTER LIST OF VALUES", size=(w-2, 24))
         box.Add(title, 0, wx.ALL, 1)
 
-        self.entry = wx.TextCtrl(panel, -1, self.value, size=(300,15), style=wx.TE_PROCESS_ENTER|wx.NO_BORDER)
+        self.entry = wx.TextCtrl(panel, -1, self.value, size=(300,18), style=wx.TE_PROCESS_ENTER|wx.NO_BORDER)
         self.entry.SetBackgroundColour(GRAPHER_BACK_COLOUR)
         self.entry.SetFont(self.font)       
         self.entry.Bind(wx.EVT_TEXT_ENTER, self.OnApply)
@@ -1868,9 +1621,6 @@ class ListEntryPopupFrame(wx.Frame):
         box.AddSpacer(10)
         panel.SetSizerAndFit(box)
 
-    def SetRoundShape(self, event=None):
-        self.SetShape(GetRoundShape(320, 90, 1))
-
     def OnApply(self, event=None):
         self.parent.setValue(self.entry.GetValue())
         self.Destroy()
@@ -1882,18 +1632,14 @@ class OSCPopupFrame(wx.Frame):
     def __init__(self, parent, slider, side='left'):
         style = ( wx.CLIP_CHILDREN | wx.FRAME_NO_TASKBAR | wx.FRAME_SHAPED | wx.NO_BORDER | wx.FRAME_FLOAT_ON_PARENT )
         wx.Frame.__init__(self, parent, title='', style = style)
+        self.SetBackgroundColour(BACKGROUND_COLOUR)
         self.parent = parent
         self.slider = slider
         self.side = side
-        self.value = init = ""
-        self.SetSize((320,100))
-
-        if wx.Platform == '__WXGTK__':
-            self.Bind(wx.EVT_WINDOW_CREATE, self.SetRoundShape)
-        else:
-            self.SetRoundShape()
+        self.value = init = outinit = ""
+        self.SetClientSize((320, 140))
 
-        self.font = wx.Font(LIST_ENTRY_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE)
+        self.font = wx.Font(LIST_ENTRY_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE)
 
         panel = wx.Panel(self, -1)
         w, h = self.GetSize()
@@ -1904,21 +1650,41 @@ class OSCPopupFrame(wx.Frame):
         box.Add(title, 0, wx.ALL, 1)
 
         if self.slider.openSndCtrl != None:
+            osc = self.slider.openSndCtrl
             if self.slider.widget_type == "slider":
-                init = "%d:%s" % (self.slider.openSndCtrl[0], self.slider.openSndCtrl[1])
+                init = "%d:%s" % (osc[0], osc[1])
             elif self.slider.widget_type == "range":
-                if side == 'left' and self.slider.openSndCtrl[0] != ():
-                    init = "%d:%s" % (self.slider.openSndCtrl[0][0], self.slider.openSndCtrl[0][1])
-                elif side == 'right' and self.slider.openSndCtrl[1] != ():
-                    init = "%d:%s" % (self.slider.openSndCtrl[1][0], self.slider.openSndCtrl[1][1])
+                if side == 'left' and osc[0] != ():
+                    init = "%d:%s" % (osc[0][0], osc[0][1])
+                elif side == 'right' and osc[1] != ():
+                    init = "%d:%s" % (osc[1][0], osc[1][1])
 
-        self.entry = wx.TextCtrl(panel, -1, init, size=(300,15), style=wx.TE_PROCESS_ENTER|wx.NO_BORDER)
+        if self.slider.OSCOut != None:
+            osc = self.slider.OSCOut
+            if self.slider.widget_type == "slider":
+                outinit = "%s:%d:%s" % (osc[0], osc[1], osc[2])
+            elif self.slider.widget_type == "range":
+                if side == 'left' and osc[0] != ():
+                    outinit = "%s:%d:%s" % (osc[0][0], osc[0][1], osc[0][2])
+                elif side == 'right' and osc[1] != ():
+                    outinit = "%s:%d:%s" % (osc[1][0], osc[1][1], osc[1][2])
+
+        self.entry = wx.TextCtrl(panel, -1, init, size=(300,18), style=wx.TE_PROCESS_ENTER|wx.NO_BORDER)
         self.entry.SetFocus()
         self.entry.SetBackgroundColour(GRAPHER_BACK_COLOUR)
         self.entry.SetFont(self.font)       
         self.entry.Bind(wx.EVT_TEXT_ENTER, self.OnApply)
         box.Add(self.entry, 0, wx.ALL, 10)
 
+        outtext = wx.StaticText(panel, -1, label="OSC Output, optional (host:port:address)")
+        outtext.SetForegroundColour("#FFFFFF")
+        box.Add(outtext, 0, wx.LEFT, 10)
+        
+        self.entry2 = wx.TextCtrl(panel, -1, outinit, size=(300,18), style=wx.TE_PROCESS_ENTER|wx.NO_BORDER)
+        self.entry2.SetBackgroundColour(GRAPHER_BACK_COLOUR)
+        self.entry2.SetFont(self.font)       
+        box.Add(self.entry2, 0, wx.LEFT|wx.RIGHT|wx.BOTTOM, 10)
+        
         applyBox = wx.BoxSizer(wx.HORIZONTAL)
         apply = ApplyToolBox(panel, tools=['Cancel', 'Apply'], outFunction=[self.OnCancel, self.OnApply])
         applyBox.Add(apply, 0, wx.LEFT, 210)
@@ -1926,15 +1692,15 @@ class OSCPopupFrame(wx.Frame):
         box.AddSpacer(10)
         panel.SetSizerAndFit(box)
 
-    def SetRoundShape(self, event=None):
-        self.SetShape(GetRoundShape(320, 90, 1))
-
     def OnApply(self, event=None):
         self.value = self.entry.GetValue()
+        outvalue = self.entry2.GetValue()
         if self.slider.widget_type == "slider":
             self.slider.setOSCInput(self.value)
+            self.slider.setOSCOutput(outvalue)
         elif self.slider.widget_type == "range":
             self.slider.setOSCInput(self.value, self.side)
+            self.slider.setOSCOutput(outvalue, self.side)
         self.Destroy()
 
     def OnCancel(self, event=None):
@@ -1944,16 +1710,12 @@ class BatchPopupFrame(wx.Frame):
     def __init__(self, parent, outFunction):
         style = ( wx.CLIP_CHILDREN | wx.FRAME_NO_TASKBAR | wx.FRAME_SHAPED | wx.NO_BORDER | wx.FRAME_FLOAT_ON_PARENT )
         wx.Frame.__init__(self, parent, title='', style = style)
+        self.SetBackgroundColour(BACKGROUND_COLOUR)
         self.parent = parent
         self.outFunction = outFunction
-        self.SetSize((320,100))
-
-        if wx.Platform == '__WXGTK__':
-            self.Bind(wx.EVT_WINDOW_CREATE, self.SetRoundShape)
-        else:
-            self.SetRoundShape()
+        self.SetClientSize((320,95))
 
-        self.font = wx.Font(LIST_ENTRY_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE)
+        self.font = wx.Font(LIST_ENTRY_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE)
 
         panel = wx.Panel(self, -1)
         w, h = self.GetSize()
@@ -1963,7 +1725,7 @@ class BatchPopupFrame(wx.Frame):
         title = FrameLabel(panel, "Enter the filename's suffix", size=(w-2, 24))
         box.Add(title, 0, wx.ALL, 1)
 
-        self.entry = wx.TextCtrl(panel, -1, "", size=(300,15), style=wx.TE_PROCESS_ENTER|wx.NO_BORDER)
+        self.entry = wx.TextCtrl(panel, -1, "", size=(300,18), style=wx.TE_PROCESS_ENTER|wx.NO_BORDER)
         self.entry.SetFocus()
         self.entry.SetBackgroundColour(GRAPHER_BACK_COLOUR)
         self.entry.SetFont(self.font)       
@@ -1977,77 +1739,29 @@ class BatchPopupFrame(wx.Frame):
         box.AddSpacer(10)
         panel.SetSizerAndFit(box)
 
-    def SetRoundShape(self, event=None):
-        self.SetShape(GetRoundShape(320, 90, 1))
-
     def OnApply(self, event=None):
-        self.outFunction(self.entry.GetValue().strip())
+        wx.CallAfter(self.outFunction, self.entry.GetValue().strip())
         self.MakeModal(False)
         self.Destroy()
 
     def OnCancel(self, event=None):
-        self.outFunction("")
+        wx.CallAfter(self.outFunction, "")
         self.MakeModal(False)
         self.Destroy()
 
-class TextPopupFrame(wx.Frame):
-    def __init__(self, parent, text, size=(600,400)):
-        style = ( wx.CLIP_CHILDREN | wx.FRAME_NO_TASKBAR | wx.FRAME_SHAPED | wx.NO_BORDER | wx.FRAME_FLOAT_ON_PARENT )
-        wx.Frame.__init__(self, parent, title='', size=size, style = style)
-        self.SetBackgroundColour(BACKGROUND_COLOUR)
-        self.parent = parent
-        self.text = text
-        self.size = size
-        w, h = self.size
-
-        if wx.Platform == '__WXGTK__':
-            self.Bind(wx.EVT_WINDOW_CREATE, self.SetRoundShape)
-        else:
-            self.SetRoundShape()
-
-        self.font = wx.Font(MENU_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE)
-
-        self.panel = wx.Panel(self, size=self.size)
-        self.panel.SetBackgroundColour(BACKGROUND_COLOUR)
-        panelBox = wx.BoxSizer(wx.VERTICAL)
-
-        moduleName = os.path.split(CeciliaLib.getVar("currentCeciliaFile"))[1].split(".")[0]
-        title = FrameLabel(self.panel, "MODULE DESCRIPTION\n%s" % moduleName, size=(w-2, 32))
-        panelBox.Add(title, 0, wx.ALL, 1)
-
-        self.entry = wx.TextCtrl(self.panel, size=(w-20,h-90), style=wx.TE_MULTILINE | wx.TE_READONLY | wx.NO_BORDER)
-        self.entry.SetBackgroundColour(BACKGROUND_COLOUR)
-        self.entry.SetFont(self.font)
-        self.entry.SetValue(self.text)
-        panelBox.Add(self.entry, 0, wx.ALL, 10)
-
-        closeBox = wx.BoxSizer(wx.HORIZONTAL)
-        close = CloseBox(self.panel, outFunction=self.OnClose)
-        closeBox.Add(close, 0, wx.LEFT, w/2-20)
-        panelBox.Add(closeBox)
-        self.panel.SetSizer(panelBox)
-        panelBox.Fit(self.panel)
-        panelBox.Layout()
-        self.Show()
-
-    def SetRoundShape(self, event=None):
-        w, h = self.GetSizeTuple()
-        self.SetShape(GetRoundShape(w, h, 1))
-
-    def OnClose(self):
-        self.Destroy()
-
 class AboutPopupFrame(wx.Frame):
     def __init__(self, parent, y_pos):
         style = ( wx.CLIP_CHILDREN | wx.FRAME_NO_TASKBAR | wx.FRAME_SHAPED | wx.NO_BORDER | wx.FRAME_FLOAT_ON_PARENT )
         wx.Frame.__init__(self, parent, title='', pos=(-1,y_pos), style = style)
+        self.SetBackgroundColour(BACKGROUND_COLOUR)
         self.parent = parent
 
         if CeciliaLib.getVar("systemPlatform")  in ['win32', 'linux2']:
-            self.SetSize((600,410))
-            self.font = wx.Font(8, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE)
+            self.SetSize((600,450))
+            self.font = wx.Font(8, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE)
         else:
-            self.font = wx.Font(13, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE)
+            self.SetSize((600,420))
+            self.font = wx.Font(13, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE)
                 
         if CeciliaLib.getVar("systemPlatform") == 'linux2':
             self.Bind(wx.EVT_WINDOW_CREATE, self.SetRoundShape)
@@ -2062,7 +1776,7 @@ class AboutPopupFrame(wx.Frame):
         title = AboutLabel(panel, APP_VERSION, APP_COPYRIGHT, size=(w-2, 80))
         box.Add(title, 0, wx.ALL, 1)
 
-        self.rtc = rt.RichTextCtrl(panel, size=(w-40,270), style=wx.NO_BORDER)
+        self.rtc = rt.RichTextCtrl(panel, size=(w-40,280), style=wx.NO_BORDER)
         self.rtc.SetBackgroundColour(BACKGROUND_COLOUR)
         self.rtc.SetFont(self.font)    
         self.rtc.Freeze()
@@ -2071,26 +1785,26 @@ class AboutPopupFrame(wx.Frame):
             self.rtc.BeginParagraphSpacing(0, 20)
         else:    
             self.rtc.BeginParagraphSpacing(0, 40)
-        self.rtc.BeginAlignment(rt.TEXT_ALIGNMENT_CENTRE)
+        self.rtc.BeginAlignment(wx.TEXT_ALIGNMENT_CENTER)
         self.rtc.Newline()
         self.rtc.BeginTextColour((0, 0, 0))
         self.rtc.WriteText("Cecilia ")
         self.rtc.BeginTextColour((255, 255, 255))
         self.rtc.WriteText("is a tool to make ear-bending noises and music. It uses the pyo audio engine created for the Python programming language by ")
         self.rtc.BeginTextColour((0, 0, 0))
-        self.rtc.WriteText("Olivier Bélanger ")
+        self.rtc.WriteText(CeciliaLib.ensureNFD("Olivier Bélanger "))
         self.rtc.BeginTextColour((255, 255, 255))
-        self.rtc.WriteText("at Université de Montréal.")
+        self.rtc.WriteText(CeciliaLib.ensureNFD("at Université de Montréal."))
 
         self.rtc.Newline()
         self.rtc.BeginTextColour((0, 0, 0))
-        self.rtc.WriteText("Jean Piché ")
+        self.rtc.WriteText(CeciliaLib.ensureNFD("Jean Piché "))
         self.rtc.BeginTextColour((255, 255, 255))
-        self.rtc.WriteText("conceived, designed, and programmed Cecilia in 1995 to replace racks full of analog audio gear in a musique concrète studio.")
+        self.rtc.WriteText(CeciliaLib.ensureNFD("conceived, designed, and programmed Cecilia in 1995 to replace racks full of analog audio gear in a musique concrète studio."))
 
         self.rtc.Newline()
         self.rtc.BeginTextColour((0, 0, 0))
-        self.rtc.WriteText("Olivier Bélanger ")
+        self.rtc.WriteText(CeciliaLib.ensureNFD("Olivier Bélanger "))
         self.rtc.BeginTextColour((255, 255, 255))
         self.rtc.WriteText("does all the programming and contributed heavily on design issues. He recoded Cecilia in Python from the ground up in 2008. Olivier is now the keeper of the program.")
 
@@ -2100,14 +1814,14 @@ class AboutPopupFrame(wx.Frame):
         self.rtc.BeginTextColour((255, 255, 255))
         self.rtc.WriteText("translated almost every modules from Cecilia 4.2, created new ones and provided much needed moral support, patient testing and silly entertainment.")
 
-        urlStyle = rt.TextAttrEx()
+        urlStyle = rt.RichTextAttr()
         urlStyle.SetTextColour(wx.BLUE)
         urlStyle.SetFontUnderlined(True)
     
         self.rtc.Newline()
         self.rtc.BeginStyle(urlStyle)
-        self.rtc.BeginURL("http://code.google.com/p/cecilia5/")
-        self.rtc.WriteText("The Cecilia5 Web Site on GoogleCode")
+        self.rtc.BeginURL("http://ajaxsoundstudio.com/software/cecilia/")
+        self.rtc.WriteText("The Cecilia5 Web Site on AjaxSoundStudio.com")
         self.rtc.EndURL();
         self.rtc.EndStyle();
         
@@ -2124,7 +1838,7 @@ class AboutPopupFrame(wx.Frame):
         close = CloseBox(panel, outFunction=self.OnClose)
         closeBox.Add(close, 0, wx.LEFT, w/2-25)
         box.Add(closeBox)
-        box.AddSpacer(20)
+        
         panel.SetSizerAndFit(box)
         self.Center(wx.CENTER_ON_SCREEN|wx.HORIZONTAL)
         if CeciliaLib.getVar("systemPlatform")  in ['win32', 'linux2']:
@@ -2132,10 +1846,13 @@ class AboutPopupFrame(wx.Frame):
         self.Show()
 
     def OnURL(self, evt):
-        webbrowser.open_new_tab("http://code.google.com/p/cecilia5/")
+        webbrowser.open_new_tab("http://ajaxsoundstudio.com/software/cecilia/")
         
     def SetRoundShape(self, event=None):
-        self.SetShape(GetRoundShape(600, 410, 1))
+        if CeciliaLib.getVar("systemPlatform")  in ['win32', 'linux2']:
+            self.SetShape(GetRoundShape(600, 450, 1))
+        else:
+            self.SetShape(GetRoundShape(600, 420, 1))
 
     def OnClose(self):
         self.Destroy()
@@ -2201,279 +1918,11 @@ class ControlKnob(wx.Panel):
         return self.init
 
     def getLabel(self):
-        return self.label
-
-    def getLog(self):
-        return self.log
-        
-    def SetRange(self, minvalue, maxvalue):   
-        self.minvalue = minvalue
-        self.maxvalue = maxvalue
-
-    def getRange(self):
-        return [self.minvalue, self.maxvalue]
-
-    def SetValue(self, value):
-        value = clamp(value, self.minvalue, self.maxvalue)
-        if self.log:
-            t = toLog(value, self.minvalue, self.maxvalue)
-            self.value = interpFloat(t, self.minvalue, self.maxvalue)
-        else:
-            t = tFromValue(value, self.minvalue, self.maxvalue)
-            self.value = interpFloat(t, self.minvalue, self.maxvalue)
-        if self.integer:
-            self.value = int(self.value)
-        self.selected = False
-        self.Refresh()
-
-    def GetValue(self):
-        if self.log:
-            t = tFromValue(self.value, self.minvalue, self.maxvalue)
-            val = toExp(t, self.minvalue, self.maxvalue)
-        else:
-            val = self.value
-        if self.integer:
-            val = int(val)
-        return val
-
-    def LooseFocus(self, event):
-        self.selected = False
-        self.Refresh()
-
-    def keyDown(self, event):
-        if self.selected:
-            char = ''
-            if event.GetKeyCode() in range(324, 334):
-                char = str(event.GetKeyCode() - 324)
-            elif event.GetKeyCode() == 390:
-                char = '-'
-            elif event.GetKeyCode() == 391:
-                char = '.'
-            elif event.GetKeyCode() == wx.WXK_BACK:
-                if self.new != '':
-                    self.new = self.new[0:-1]
-            elif event.GetKeyCode() < 256:
-                char = chr(event.GetKeyCode())
-            if char in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']:
-                self.new += char
-            elif char == '.' and not '.' in self.new:
-                self.new += char
-            elif char == '-' and len(self.new) == 0:
-                self.new += char
-            elif event.GetKeyCode() in [wx.WXK_RETURN, wx.WXK_NUMPAD_ENTER]:
-                if self.new != '':
-                    self.SetValue(eval(self.new))
-                    self.new = ''
-                self.selected = False
-            self.Refresh()
-
-    def MouseDown(self, evt):
-        if evt.ShiftDown():
-            self.DoubleClick(evt)
-            return
-        if self._enable:
-            rec = wx.Rect(5, 13, 45, 45)
-            pos = evt.GetPosition()
-            if rec.Contains(pos):
-                self.clickPos = wx.GetMousePosition()
-                self.oldValue = self.value
-                self.CaptureMouse()
-                self.selected = False
-            self.Refresh()
-        evt.Skip()
-
-    def MouseUp(self, evt):
-        if self.HasCapture():
-            self.ReleaseMouse()
-
-    def DoubleClick(self, event):
-        if self._enable:
-            w, h = self.GetSize()
-            pos = event.GetPosition()
-            reclab = wx.Rect(3, 60, w-3, 10)
-            recpt = wx.Rect(self.knobPointPos[0]-3, self.knobPointPos[1]-3, 9, 9)
-            if reclab.Contains(pos):
-                self.selected = True
-            elif recpt.Contains(pos):
-                self.mode = (self.mode+1) % 3
-            self.Refresh()
-        event.Skip()
-
-    def MouseMotion(self, evt):
-        if self._enable:
-            if evt.Dragging() and evt.LeftIsDown() and self.HasCapture():
-                pos = wx.GetMousePosition()
-                offY = self.clickPos[1] - pos[1]
-                off = offY
-                off *= 0.005 * (self.maxvalue - self.minvalue)
-                self.value = clamp(self.oldValue + off, self.minvalue, self.maxvalue)    
-                self.selected = False
-                self.Refresh()
-
-    def setbackColour(self, colour):
-        self.backColour = colour
-
-    def OnPaint(self, evt):
-        w,h = self.GetSize()
-        dc = wx.AutoBufferedPaintDC(self)
-
-        dc.SetBrush(wx.Brush(BACKGROUND_COLOUR, wx.SOLID))
-        dc.Clear()
-
-        # Draw background
-        dc.SetPen(wx.Pen(BACKGROUND_COLOUR, width=self.borderWidth, style=wx.SOLID))
-        dc.DrawRectangle(0, 0, w, h)
-
-        dc.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
-        dc.SetTextForeground(CONTROLSLIDER_TEXT_COLOUR)
-
-        # Draw text label
-        reclab = wx.Rect(0, 1, w, 9)
-        dc.DrawLabel(self.label, reclab, wx.ALIGN_CENTER_HORIZONTAL)
-
-        recval = wx.Rect(0, 60, w, 10)
-
-        if self.selected:
-            dc.SetBrush(wx.Brush(CONTROLSLIDER_SELECTED_COLOUR, wx.SOLID))
-            dc.SetPen(wx.Pen(CONTROLSLIDER_SELECTED_COLOUR, width=self.borderWidth, style=wx.SOLID))  
-            dc.DrawRoundedRectangleRect(recval, 3)
-
-        dc.DrawBitmap(self.knobBitmap, 2, 13, True)
-        r = 0.17320508075688773 # math.sqrt(.03)
-        val = tFromValue(self.value, self.minvalue, self.maxvalue) * 0.87
-        ph = val * math.pi * 2 - (3 * math.pi / 2.2)
-        X = int(round(r * math.cos(ph)*45))
-        Y = int(round(r * math.sin(ph)*45))
-        dc.SetPen(wx.Pen(self.colours[self.mode], width=1, style=wx.SOLID))
-        dc.SetBrush(wx.Brush(self.colours[self.mode], wx.SOLID))
-        self.knobPointPos = (X+22, Y+33)
-        dc.DrawCircle(X+22, Y+33, 2)
-
-        if not self.midiLearn:
-            dc.SetFont(wx.Font(CONTROLSLIDER_FONT-1, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))    
-            dc.DrawLabel(self.midictlLabel, wx.Rect(2, 12, 40, 40), wx.ALIGN_CENTER)
-        else:
-            dc.DrawLabel("?...", wx.Rect(2, 12, 40, 40), wx.ALIGN_CENTER)
-
-        dc.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
-        # Draw text value
-        if self.selected and self.new:
-            val = self.new
-        else:
-            if self.integer:
-                val = '%d' % self.GetValue()
-            else:
-                val = self.floatPrecision % self.GetValue()
-        if CeciliaLib.getVar("systemPlatform") == 'linux2':
-            width = len(val) * (dc.GetCharWidth() - 3)
-        else:
-            width = len(val) * dc.GetCharWidth()
-        dc.SetTextForeground(CONTROLSLIDER_TEXT_COLOUR)
-        dc.DrawLabel(val, recval, wx.ALIGN_CENTER)
-
-        # Send value
-        if self.outFunction:
-            self.outFunction(self.GetValue())
-
-        evt.Skip()
-       
-#---------------------------
-# ControlSlider
-# --------------------------
-class ControlSlider(wx.Panel):
-    def __init__(self, parent, minvalue, maxvalue, init=None, pos=(0,0), size=(200,20), log=False, outFunction=None, integer=False, backColour=None):
-        wx.Panel.__init__(self, parent=parent, id=wx.ID_ANY, pos=pos, size=size, style=wx.NO_BORDER | wx.WANTS_CHARS)
-        self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)  
-        self.SetBackgroundColour(BACKGROUND_COLOUR)
-        self.SetMinSize(self.GetSize())
-        self.knobSize = 40
-        self.knobHalfSize = 20
-        self.sliderHeight = 14
-        self.outFunction = outFunction
-        self.integer = integer
-        self.log = log
-        self.SetRange(minvalue, maxvalue)
-        self.borderWidth = 1
-        self.selected = False
-        self._enable = True
-        self.new = ''
-        self.floatPrecision = '%.2f'
-        if backColour: self.backColour = backColour
-        else: self.backColour = CONTROLSLIDER_BACK_COLOUR
-        if init != None: 
-            self.SetValue(init)
-            self.init = init
-        else: 
-            self.SetValue(minvalue)
-            self.init = minvalue
-        self.clampPos()
-        self.Bind(wx.EVT_LEFT_DOWN, self.MouseDown)
-        self.Bind(wx.EVT_LEFT_UP, self.MouseUp)
-        self.Bind(wx.EVT_LEFT_DCLICK, self.DoubleClick)
-        self.Bind(wx.EVT_MOTION, self.MouseMotion)
-        self.Bind(wx.EVT_PAINT, self.OnPaint)
-        self.Bind(wx.EVT_SIZE, self.OnResize)
-        self.Bind(wx.EVT_KEY_DOWN, self.keyDown)
-        self.Bind(wx.EVT_KILL_FOCUS, self.LooseFocus)
-        self.createSliderBitmap()
-        self.createKnobBitmap()
-
-    def setFloatPrecision(self, x):
-        self.floatPrecision = '%.' + '%df' % x
-        self.Refresh()
-        
-    def getMinValue(self):
-        return self.minvalue
-
-    def getMaxValue(self):
-        return self.maxvalue
-
-    def setEnable(self, enable):
-        self._enable = enable
-        self.Refresh()
-
-    def setSliderHeight(self, height):
-        self.sliderHeight = height
-        self.createSliderBitmap()
-        self.createKnobBitmap()
-        self.Refresh()
-
-    def createSliderBitmap(self):
-        w, h = self.GetSize()
-        b = wx.EmptyBitmap(w,h)
-        dc = wx.MemoryDC(b)
-        dc.SetPen(wx.Pen(BACKGROUND_COLOUR, width=1))
-        dc.SetBrush(wx.Brush(BACKGROUND_COLOUR))
-        dc.DrawRectangle(0,0,w,h)
-        dc.SetBrush(wx.Brush("#777777"))
-        dc.SetPen(wx.Pen(WIDGET_BORDER_COLOUR, width=1))
-        h2 = self.sliderHeight / 4
-        dc.DrawRoundedRectangle(0,h2,w,self.sliderHeight,2)
-        dc.SelectObject(wx.NullBitmap)
-        b.SetMaskColour("#777777")
-        self.sliderMask = b
-
-    def createKnobBitmap(self):
-        w, h = self.knobSize, self.GetSize()[1]
-        b = wx.EmptyBitmap(w,h)
-        dc = wx.MemoryDC(b)
-        rec = wx.Rect(0, 0, w, h)
-        dc.SetPen(wx.Pen(BACKGROUND_COLOUR, width=1))
-        dc.SetBrush(wx.Brush(BACKGROUND_COLOUR))
-        dc.DrawRectangleRect(rec)
-        h2 = self.sliderHeight / 4
-        rec = wx.Rect(0, h2, w, self.sliderHeight)
-        dc.GradientFillLinear(rec, GRADIENT_DARK_COLOUR, CONTROLSLIDER_BACK_COLOUR, wx.BOTTOM)
-        dc.SetBrush(wx.Brush("#787878"))
-        dc.SetPen(wx.Pen(KNOB_BORDER_COLOUR, width=1))
-        dc.DrawRoundedRectangle(0,0,w,h,2)
-        dc.SelectObject(wx.NullBitmap)
-        b.SetMaskColour("#787878")
-        self.knobMask = b
-
-    def getInit(self):
-        return self.init
+        return self.label
 
+    def getLog(self):
+        return self.log
+        
     def SetRange(self, minvalue, maxvalue):   
         self.minvalue = minvalue
         self.maxvalue = maxvalue
@@ -2481,16 +1930,7 @@ class ControlSlider(wx.Panel):
     def getRange(self):
         return [self.minvalue, self.maxvalue]
 
-    def scale(self):
-        inter = tFromValue(self.pos, self.knobHalfSize, self.GetSize()[0]-self.knobHalfSize)
-        if not self.integer:
-            return interpFloat(inter, self.minvalue, self.maxvalue)
-        else:
-            return int(interpFloat(inter, self.minvalue, self.maxvalue))
-
     def SetValue(self, value):
-        if self.HasCapture():
-            self.ReleaseMouse()
         value = clamp(value, self.minvalue, self.maxvalue)
         if self.log:
             t = toLog(value, self.minvalue, self.maxvalue)
@@ -2500,7 +1940,6 @@ class ControlSlider(wx.Panel):
             self.value = interpFloat(t, self.minvalue, self.maxvalue)
         if self.integer:
             self.value = int(self.value)
-        self.clampPos()
         self.selected = False
         self.Refresh()
 
@@ -2539,21 +1978,24 @@ class ControlSlider(wx.Panel):
             elif char == '-' and len(self.new) == 0:
                 self.new += char
             elif event.GetKeyCode() in [wx.WXK_RETURN, wx.WXK_NUMPAD_ENTER]:
-                self.SetValue(eval(self.new))
-                self.new = ''
+                if self.new != '':
+                    self.SetValue(eval(self.new))
+                    self.new = ''
                 self.selected = False
             self.Refresh()
- 
+
     def MouseDown(self, evt):
         if evt.ShiftDown():
             self.DoubleClick(evt)
             return
         if self._enable:
-            size = self.GetSize()
-            self.pos = clamp(evt.GetPosition()[0], self.knobHalfSize, size[0]-self.knobHalfSize)
-            self.value = self.scale()
-            self.CaptureMouse()
-            self.selected = False
+            rec = wx.Rect(5, 13, 45, 45)
+            pos = evt.GetPosition()
+            if rec.Contains(pos):
+                self.clickPos = wx.GetMousePosition()
+                self.oldValue = self.value
+                self.CaptureMouse()
+                self.selected = False
             self.Refresh()
         evt.Skip()
 
@@ -2565,30 +2007,26 @@ class ControlSlider(wx.Panel):
         if self._enable:
             w, h = self.GetSize()
             pos = event.GetPosition()
-            if wx.Rect(self.pos-self.knobHalfSize, 0, self.knobSize, h).Contains(pos):
+            reclab = wx.Rect(3, 60, w-3, 10)
+            recpt = wx.Rect(self.knobPointPos[0]-3, self.knobPointPos[1]-3, 9, 9)
+            if reclab.Contains(pos):
                 self.selected = True
+            elif recpt.Contains(pos):
+                self.mode = (self.mode+1) % 3
             self.Refresh()
         event.Skip()
-            
+
     def MouseMotion(self, evt):
         if self._enable:
-            size = self.GetSize()
-            if evt.Dragging() and evt.LeftIsDown():
-                self.pos = clamp(evt.GetPosition()[0], self.knobHalfSize, size[0]-self.knobHalfSize)
-                self.value = self.scale()
+            if evt.Dragging() and evt.LeftIsDown() and self.HasCapture():
+                pos = wx.GetMousePosition()
+                offY = self.clickPos[1] - pos[1]
+                off = offY
+                off *= 0.005 * (self.maxvalue - self.minvalue)
+                self.value = clamp(self.oldValue + off, self.minvalue, self.maxvalue)    
                 self.selected = False
                 self.Refresh()
 
-    def OnResize(self, evt):
-        self.createSliderBitmap()
-        self.clampPos()    
-        self.Refresh()
-
-    def clampPos(self):
-        size = self.GetSize()
-        self.pos = tFromValue(self.value, self.minvalue, self.maxvalue) * (size[0] - self.knobSize) + self.knobHalfSize
-        self.pos = clamp(self.pos, self.knobHalfSize, size[0]-self.knobHalfSize)
-        
     def setbackColour(self, colour):
         self.backColour = colour
 
@@ -2603,30 +2041,39 @@ class ControlSlider(wx.Panel):
         dc.SetPen(wx.Pen(BACKGROUND_COLOUR, width=self.borderWidth, style=wx.SOLID))
         dc.DrawRectangle(0, 0, w, h)
 
-        # Draw inner part
-        if self._enable: sliderColour = self.backColour
-        else: sliderColour = CONTROLSLIDER_DISABLE_COLOUR
-        h2 = self.sliderHeight / 4
-        rec = wx.Rect(0, h2, w, self.sliderHeight)
-        dc.GradientFillLinear(rec, GRADIENT_DARK_COLOUR, sliderColour, wx.BOTTOM)
-        dc.DrawBitmap(self.sliderMask, 0, 0, True)
-
-        # Draw knob
-        if self._enable: knobColour = CONTROLSLIDER_KNOB_COLOUR
-        else: knobColour = CONTROLSLIDER_DISABLE_COLOUR
-        rec = wx.Rect(self.pos-self.knobHalfSize, 0, self.knobSize, h)  
-        dc.GradientFillLinear(rec, GRADIENT_DARK_COLOUR, knobColour, wx.RIGHT)
-        dc.DrawBitmap(self.knobMask, rec[0], rec[1], True)
-        
+        dc.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
+        dc.SetTextForeground(CONTROLSLIDER_TEXT_COLOUR)
+
+        # Draw text label
+        reclab = wx.Rect(0, 1, w, 9)
+        dc.DrawLabel(self.label, reclab, wx.ALIGN_CENTER_HORIZONTAL)
+
+        recval = wx.Rect(0, 60, w, 10)
+
         if self.selected:
-            rec2 = wx.Rect(self.pos-self.knobHalfSize, 0, self.knobSize, h)  
             dc.SetBrush(wx.Brush(CONTROLSLIDER_SELECTED_COLOUR, wx.SOLID))
             dc.SetPen(wx.Pen(CONTROLSLIDER_SELECTED_COLOUR, width=self.borderWidth, style=wx.SOLID))  
-            dc.DrawRoundedRectangleRect(rec2, 3)
+            dc.DrawRoundedRectangleRect(recval, 3)
+
+        dc.DrawBitmap(self.knobBitmap, 2, 13, True)
+        r = 0.17320508075688773 # math.sqrt(.03)
+        val = tFromValue(self.value, self.minvalue, self.maxvalue) * 0.87
+        ph = val * math.pi * 2 - (3 * math.pi / 2.2)
+        X = int(round(r * math.cos(ph)*45))
+        Y = int(round(r * math.sin(ph)*45))
+        dc.SetPen(wx.Pen(self.colours[self.mode], width=1, style=wx.SOLID))
+        dc.SetBrush(wx.Brush(self.colours[self.mode], wx.SOLID))
+        self.knobPointPos = (X+22, Y+33)
+        dc.DrawCircle(X+22, Y+33, 2)
 
-        dc.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.ROMAN, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        if not self.midiLearn:
+            dc.SetFont(wx.Font(CONTROLSLIDER_FONT-1, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))    
+            dc.DrawLabel(self.midictlLabel, wx.Rect(2, 12, 40, 40), wx.ALIGN_CENTER)
+        else:
+            dc.DrawLabel("?...", wx.Rect(2, 12, 40, 40), wx.ALIGN_CENTER)
 
-        # Draw text
+        dc.SetFont(wx.Font(CONTROLSLIDER_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
+        # Draw text value
         if self.selected and self.new:
             val = self.new
         else:
@@ -2634,12 +2081,12 @@ class ControlSlider(wx.Panel):
                 val = '%d' % self.GetValue()
             else:
                 val = self.floatPrecision % self.GetValue()
-        if sys.platform == 'linux2':
+        if CeciliaLib.getVar("systemPlatform") == 'linux2':
             width = len(val) * (dc.GetCharWidth() - 3)
         else:
             width = len(val) * dc.GetCharWidth()
         dc.SetTextForeground(CONTROLSLIDER_TEXT_COLOUR)
-        dc.DrawLabel(val, rec, wx.ALIGN_CENTER)
+        dc.DrawLabel(val, recval, wx.ALIGN_CENTER)
 
         # Send value
         if self.outFunction:
@@ -2680,13 +2127,14 @@ class PlainSlider(wx.Panel):
         w, h = self.GetSize()
         b = wx.EmptyBitmap(w,h)
         dc = wx.MemoryDC(b)
+        gc = wx.GraphicsContext_Create(dc)
         dc.SetPen(wx.Pen(self._backColour, width=1))
         dc.SetBrush(wx.Brush(self._backColour))
         dc.DrawRectangle(0,0,w,h)
-        dc.SetBrush(wx.Brush("#777777"))
-        dc.SetPen(wx.Pen(self._backColour, width=0))
+        gc.SetBrush(wx.Brush("#777777"))
+        gc.SetPen(wx.Pen(self._backColour, width=0))
         h2 = round(self.sliderHeight / 4)
-        dc.DrawRoundedRectangle(0,h2,w,self.sliderHeight,3)
+        gc.DrawRoundedRectangle(0,h2,w-1,self.sliderHeight-1,3)
         dc.SelectObject(wx.NullBitmap)
         b.SetMaskColour("#777777")
         self.sliderMask = b
@@ -2695,15 +2143,17 @@ class PlainSlider(wx.Panel):
         w, h = self.knobSize, self.GetSize()[1]
         b = wx.EmptyBitmap(w,h)
         dc = wx.MemoryDC(b)
+        gc = wx.GraphicsContext_Create(dc)
         rec = wx.Rect(0, 0, w, h)
         dc.SetPen(wx.Pen(self._backColour, width=1))
         dc.SetBrush(wx.Brush(self._backColour))
         dc.DrawRectangleRect(rec)
         h2 = round(self.sliderHeight / 4)
         rec = wx.Rect(0, h2, w, self.sliderHeight)
-        dc.GradientFillLinear(rec, GRADIENT_DARK_COLOUR, CONTROLSLIDER_BACK_COLOUR, wx.BOTTOM)
-        dc.SetBrush(wx.Brush("#787878"))
-        dc.DrawRoundedRectangle(0,0,w,h,2)
+        brush = gc.CreateLinearGradientBrush(0, h2, 0, h2+self.sliderHeight, 
+                                             "#222240", CONTROLSLIDER_BACK_COLOUR)
+        gc.SetBrush(brush)
+        gc.DrawRoundedRectangle(0,0,w,h,2)
         dc.SelectObject(wx.NullBitmap)
         b.SetMaskColour("#787878")
         self.knobMask = b
@@ -2713,15 +2163,15 @@ class PlainSlider(wx.Panel):
         self.SetBackgroundColour(col)
         self.createSliderBitmap()
         self.createKnobBitmap()
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def Show(self):
         self.show = True
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def Hide(self):
         self.show = False
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
     
     def SetRange(self, minvalue, maxvalue):   
         self.minvalue = minvalue
@@ -2741,7 +2191,7 @@ class PlainSlider(wx.Panel):
         else:
             self.value = interpFloat(t, self.minvalue, self.maxvalue)
         self.clampPos()
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def GetValue(self):
         if self.log:
@@ -2756,7 +2206,7 @@ class PlainSlider(wx.Panel):
         self.pos = clamp(evt.GetPosition()[0], self.knobHalfSize, size[0]-self.knobHalfSize)
         self.value = self.scale()
         self.CaptureMouse()
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def MouseUp(self, evt):
         if self.HasCapture():
@@ -2767,12 +2217,12 @@ class PlainSlider(wx.Panel):
         if evt.Dragging() and evt.LeftIsDown():
             self.pos = clamp(evt.GetPosition()[0], self.knobHalfSize, size[0]-self.knobHalfSize)
             self.value = self.scale()
-            self.Refresh()
+            wx.CallAfter(self.Refresh)
 
     def OnResize(self, evt):
         self.createSliderBitmap()
         self.clampPos()    
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def clampPos(self):
         size = self.GetSize()
@@ -2812,12 +2262,13 @@ class PlainSlider(wx.Panel):
 # ToolBox (need a list of outFunctions axxociated with tools)
 # --------------------------
 class ToolBox(wx.Panel):
-    def __init__(self, parent, size=(80,20), tools=[], outFunction=None, openSampler=False):
+    def __init__(self, parent, size=(80,20), tools=[], outFunction=None):
         wx.Panel.__init__(self, parent, -1, size=size)
         self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
         self.SetBackgroundColour(BACKGROUND_COLOUR)
         self._backColour = BACKGROUND_COLOUR
         self.parent = parent
+        self.enabled = True
         toolsLength = len(tools)
         if len(tools) == 0:
             raise('ToolBox must have at least a list of one tool!')
@@ -2854,7 +2305,6 @@ class ToolBox(wx.Panel):
         self.oversWait = [True] * self.num
         self.show = True
         self.open = False
-        self.openSampler = openSampler
         self.samplerFrame = None
         self.outFunction = outFunction
 
@@ -2879,12 +2329,13 @@ class ToolBox(wx.Panel):
                     tooltip += self.tooltips[tool][2] + '\n\n'
             else:        
                 tooltip += self.tooltips[tool] + '\n\n'
+        tooltip = tooltip[:-2]
         self.SetToolTip(CECTooltip(tooltip))
         
     def setBackColour(self, col):
         self._backColour = col
         self.SetBackgroundColour(col)
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def setOverWait(self, which):
         self.oversWait[which] = False
@@ -2901,13 +2352,13 @@ class ToolBox(wx.Panel):
             if rec.Contains(pos) and self.oversWait[i]:
                 self.overs[i] = True
         self.checkForOverReady(pos)
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         event.Skip()
 
     def OnLeave(self, event):
         self.overs = [False] * self.num
         self.oversWait = [True] * self.num
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def OnPaint(self, event):
         w,h = self.GetSize()
@@ -2920,29 +2371,30 @@ class ToolBox(wx.Panel):
         dc.SetPen(wx.Pen(self._backColour, width=0, style=wx.SOLID))
         dc.DrawRectangle(0, 0, w, h)
 
-        for i, tool in enumerate(self.tools):
-            if not self.overs[i]:
-                if tool == 'show':
-                    if self.show: icon = self.graphics[tool][0]
-                    else: icon = self.graphics[tool][2]
-                elif tool == 'open':
-                    if self.open: icon = self.graphics[tool][2]
-                    else: icon = self.graphics[tool][0]
-                else:
-                    icon = self.graphics[tool][0]
-            else:
-                if tool == 'show':
-                    if self.show: icon = self.graphics[tool][1]
-                    else: icon = self.graphics[tool][3]
-                elif tool == 'open':
-                    if self.open: icon = self.graphics[tool][3]
-                    else: icon = self.graphics[tool][1]
+        if self.enabled:
+            for i, tool in enumerate(self.tools):
+                if not self.overs[i]:
+                    if tool == 'show':
+                        if self.show: icon = self.graphics[tool][0]
+                        else: icon = self.graphics[tool][2]
+                    elif tool == 'open':
+                        if self.open: icon = self.graphics[tool][2]
+                        else: icon = self.graphics[tool][0]
+                    else:
+                        icon = self.graphics[tool][0]
                 else:
-                    icon = self.graphics[tool][1]
-            dc.DrawBitmap(icon, self.rectList[i][0]+2, self.rectList[i][1]+1, True)
-        dc.SetPen(wx.Pen(WHITE_COLOUR, width=1, style=wx.SOLID))  
-        for i in range((self.num-1)):
-            dc.DrawLine((i+1)*20, 2, (i+1)*20, h-2)
+                    if tool == 'show':
+                        if self.show: icon = self.graphics[tool][1]
+                        else: icon = self.graphics[tool][3]
+                    elif tool == 'open':
+                        if self.open: icon = self.graphics[tool][3]
+                        else: icon = self.graphics[tool][1]
+                    else:
+                        icon = self.graphics[tool][1]
+                dc.DrawBitmap(icon, self.rectList[i][0]+2, self.rectList[i][1]+1, True)
+            dc.SetPen(wx.Pen(WHITE_COLOUR, width=1, style=wx.SOLID))  
+            for i in range((self.num-1)):
+                dc.DrawLine((i+1)*20, 2, (i+1)*20, h-2)
 
     def MouseDown(self, event):
         pos = event.GetPosition()
@@ -2953,7 +2405,7 @@ class ToolBox(wx.Panel):
                 break
         if self.outFunction:
             self.maps[tool]()
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def onSave(self):
         self.outFunction[self.tools.index('save')]()
@@ -2982,7 +2434,7 @@ class ToolBox(wx.Panel):
             self.open = False
         else:
             self.open = True
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def onTime(self):
         self.outFunction[self.tools.index('time')]()
@@ -2994,11 +2446,15 @@ class ToolBox(wx.Panel):
 
     def setShow(self, state):
         self.show = state
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
     
     def setOpen(self, state):
         self.open = state
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
+        
+    def enable(self, state):
+        self.enabled = state
+        wx.CallAfter(self.Refresh)
         
 #---------------------------
 # RadioToolBox (need a list of outFunctions axxociated with tools)
@@ -3037,6 +2493,7 @@ class RadioToolBox(wx.Panel):
         tooltip = ''
         for tool in self.tools:
             tooltip += self.tooltips[tool] + '\n\n'
+        tooltip = tooltip[:-2]
         self.SetToolTip(CECTooltip(tooltip))
 
     def setOverWait(self, which):
@@ -3054,13 +2511,13 @@ class RadioToolBox(wx.Panel):
             if rec.Contains(pos) and self.oversWait[i]:
                 self.overs[i] = True
         self.checkForOverReady(pos)
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         event.Skip()
 
     def OnLeave(self, event):
         self.overs = [False] * self.num
         self.oversWait = [True] * self.num
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def OnPaint(self, event):
         w,h = self.GetSize()
@@ -3090,7 +2547,7 @@ class RadioToolBox(wx.Panel):
         self.selected = self.tools.index(tool)
         if self.outFunction:
             self.maps[tool]()
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def MouseDown(self, event):
         pos = event.GetPosition()
@@ -3102,7 +2559,7 @@ class RadioToolBox(wx.Panel):
                 break
         if self.outFunction:
             self.maps[tool]()
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         event.Skip()
 
     def onPointer(self):
@@ -3136,7 +2593,6 @@ class PreferencesRadioToolBox(wx.Panel):
                          'filer': [ICON_PREF_FILER.GetBitmap(), ICON_PREF_FILER_OVER.GetBitmap(), ICON_PREF_FILER_CLICK.GetBitmap()],
                          'cecilia': [ICON_PREF_CECILIA.GetBitmap(), ICON_PREF_CECILIA_OVER.GetBitmap(), ICON_PREF_CECILIA_CLICK.GetBitmap()],
                          }
-        #self.tooltips = {'pointer': TT_POINTER, 'pencil': TT_PENCIL, 'zoom': TT_ZOOM, 'hand': TT_HAND}
         self.rectList = []
         for i in range(self.num):
             self.rectList.append(wx.Rect(i*40, 0, 40, self.GetSize()[1]))
@@ -3150,11 +2606,6 @@ class PreferencesRadioToolBox(wx.Panel):
         self.Bind(wx.EVT_MOTION, self.OnMotion)
         self.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeave)
 
-        #tooltip = ''
-        #for tool in self.tools:
-        #    tooltip += self.tooltips[tool] + '\n\n'
-        #self.SetToolTip(CECTooltip(tooltip))
-
     def setOverWait(self, which):
         self.oversWait[which] = False
 
@@ -3170,13 +2621,13 @@ class PreferencesRadioToolBox(wx.Panel):
             if rec.Contains(pos) and self.oversWait[i]:
                 self.overs[i] = True
         self.checkForOverReady(pos)
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         event.Skip()
 
     def OnLeave(self, event):
         self.overs = [False] * self.num
         self.oversWait = [True] * self.num
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def OnPaint(self, event):
         w,h = self.GetSize()
@@ -3206,7 +2657,7 @@ class PreferencesRadioToolBox(wx.Panel):
         self.selected = self.tools.index(tool)
         if self.outFunction:
             self.maps[tool]()
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def MouseDown(self, event):
         pos = event.GetPosition()
@@ -3218,7 +2669,7 @@ class PreferencesRadioToolBox(wx.Panel):
                 break
         if self.outFunction:
             self.outFunction(self.selected)
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         event.Skip()
 
 #---------------------------
@@ -3251,6 +2702,11 @@ class ApplyToolBox(wx.Panel):
         self.Bind(wx.EVT_MOTION, self.OnMotion)
         self.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeave)
 
+        if CeciliaLib.getVar("systemPlatform") == "win32":
+            self.dcref = wx.BufferedPaintDC
+        else:
+            self.dcref = wx.PaintDC
+
     def setOverWait(self, which):
         self.oversWait[which] = False
 
@@ -3266,17 +2722,18 @@ class ApplyToolBox(wx.Panel):
             if rec.Contains(pos) and self.oversWait[i]:
                 self.overs[i] = True
         self.checkForOverReady(pos)
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         event.Skip()
 
     def OnLeave(self, event):
         self.overs = [False] * self.num
         self.oversWait = [True] * self.num
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def OnPaint(self, event):
         w,h = self.GetSize()
-        dc = wx.AutoBufferedPaintDC(self)
+        dc = self.dcref(self)
+        gc = wx.GraphicsContext_Create(dc)
 
         dc.SetBrush(wx.Brush(BACKGROUND_COLOUR, wx.SOLID))
         dc.Clear()
@@ -3290,11 +2747,11 @@ class ApplyToolBox(wx.Panel):
                 textColour = "#FFFFFF"
             else:
                 textColour = "#000000"
-            dc.SetBrush(wx.Brush('#8896BB'))
-            dc.SetPen(wx.Pen("#FFFFFF", width=1))
+            gc.SetBrush(wx.Brush('#8896BB'))
+            gc.SetPen(wx.Pen("#FFFFFF", width=1))
             rec = self.rectList[i]
-            dc.DrawRoundedRectangle(rec[0]+2, rec[1], rec[2]-4, rec[3], 3)
-            dc.SetFont(wx.Font(LABEL_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+            gc.DrawRoundedRectangle(rec[0]+2, rec[1], rec[2]-5, rec[3]-1, 3)
+            dc.SetFont(wx.Font(LABEL_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
             dc.SetTextForeground(textColour)
             dc.DrawLabel(self.tools[i], self.rectList[i], wx.ALIGN_CENTER)
 
@@ -3307,7 +2764,7 @@ class ApplyToolBox(wx.Panel):
                 break
         if self.outFunction:
             self.maps[tool]()
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         event.Skip()
 
     def onApply(self):
@@ -3338,18 +2795,23 @@ class CloseBox(wx.Panel):
         self.Bind(wx.EVT_MOTION, self.OnMotion)
         self.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeave)
 
+        if CeciliaLib.getVar("systemPlatform") == "win32":
+            self.dcref = wx.BufferedPaintDC
+        else:
+            self.dcref = wx.PaintDC
+
     def setTextMagnify(self, point):
         self.textMagnify = point
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         
     def setBackgroundColour(self, colour):
         self._backColour = colour
         self.SetBackgroundColour(colour)
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def setInsideColour(self, colour):
         self._insideColour = colour
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         
     def setOverWait(self):
         self.overWait = False
@@ -3357,17 +2819,18 @@ class CloseBox(wx.Panel):
     def OnMotion(self, event):
         pos = event.GetPosition()
         self.over = True
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         event.Skip()
 
     def OnLeave(self, event):
         self.over = False
         self.overWait = True
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def OnPaint(self, event):
         w,h = self.GetSize()
-        dc = wx.AutoBufferedPaintDC(self)
+        dc = self.dcref(self)
+        gc = wx.GraphicsContext_Create(dc)
 
         dc.SetBrush(wx.Brush(self._backColour, wx.SOLID))
         dc.Clear()
@@ -3380,10 +2843,10 @@ class CloseBox(wx.Panel):
             textColour = "#FFFFFF"
         else:
             textColour = "#000000"
-        dc.SetBrush(wx.Brush(self._insideColour))
-        dc.SetPen(wx.Pen("#FFFFFF", width=1))
-        dc.DrawRoundedRectangle(2, 0, w-4, h, 3)
-        dc.SetFont(wx.Font(LABEL_FONT+self.textMagnify, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        gc.SetBrush(wx.Brush(self._insideColour))
+        gc.SetPen(wx.Pen("#FFFFFF", width=1))
+        gc.DrawRoundedRectangle(2, 0, w-5, h-1, 3)
+        dc.SetFont(wx.Font(LABEL_FONT+self.textMagnify, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         dc.SetTextForeground(textColour)
         dc.DrawLabel(self.label, wx.Rect(2, 0, w-4, h), wx.ALIGN_CENTER)
 
@@ -3391,7 +2854,7 @@ class CloseBox(wx.Panel):
         pos = event.GetPosition()
         if self.outFunction:
             self.outFunction()
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         event.Skip()
 
 #---------------------------
@@ -3433,6 +2896,7 @@ class PaletteToolBox(wx.Panel):
         tooltip = ''
         for tool in self.tools:
             tooltip += self.tooltips[tool] + '\n\n'
+        tooltip = tooltip[:-2]
         self.SetToolTip(CECTooltip(tooltip))
 
     def setOverWait(self, which):
@@ -3450,13 +2914,13 @@ class PaletteToolBox(wx.Panel):
             if rec.Contains(pos) and self.oversWait[i]:
                 self.overs[i] = True
         self.checkForOverReady(pos)
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         event.Skip()
 
     def OnLeave(self, event):
         self.overs = [False] * self.num
         self.oversWait = [True] * self.num
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def OnPaint(self, event):
         w,h = self.GetSize()
@@ -3477,7 +2941,7 @@ class PaletteToolBox(wx.Panel):
             dc.DrawBitmap(icon, self.rectList[i][0]+2, self.rectList[i][1]+1, True)
         dc.SetPen(wx.Pen(WHITE_COLOUR, width=1, style=wx.SOLID))  
         for i in range((self.num-1)):
-            dc.DrawLine((i+1)*30, 2, (i+1)*30, h-2)
+            dc.DrawLine((i+1)*30+1, 2, (i+1)*30+1, h-2)
 
     def MouseDown(self, event):
         pos = event.GetPosition()
@@ -3488,7 +2952,7 @@ class PaletteToolBox(wx.Panel):
                 self.setOverWait(i)
                 break
         self.maps[tool]()
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def checkForOpenFrame(self, index):
         if index != 0:
@@ -3535,18 +2999,15 @@ class PaletteToolBox(wx.Panel):
         return minx, maxx, addPointsBefore, addPointsAfter
 
 #---------------------------
-# Grapher Palette frames (### classe parent ###)
+# Grapher Palette frames
 # --------------------------
 class RandomFrame(wx.Frame):
     def __init__(self, parent):
         style = ( wx.CLIP_CHILDREN | wx.FRAME_NO_TASKBAR | wx.FRAME_SHAPED | wx.NO_BORDER | wx.FRAME_FLOAT_ON_PARENT )
         wx.Frame.__init__(self, parent, title='', style = style)
+        self.SetBackgroundColour(BACKGROUND_COLOUR)
         self.parent = parent
-        self.SetSize((300,233))
-        if CeciliaLib.getVar("systemPlatform") == 'linux2':
-            self.Bind(wx.EVT_WINDOW_CREATE, self.SetRoundShape)
-        else:
-            self.SetRoundShape()
+        self.SetClientSize((300,240))
         
         self.distList = ['Uniform', 'Gaussian', 'Weibull', 'Beta', 'Drunk', 'Loopseg', 'Repeater', 'DroneAndJump'] 
         self.interpList = ['Linear', 'Sample hold']
@@ -3561,7 +3022,7 @@ class RandomFrame(wx.Frame):
 
         interpBox = wx.BoxSizer(wx.HORIZONTAL)
         interpLabel = wx.StaticText(panel, -1, "Interpolation")
-        interpLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        interpLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         interpLabel.SetForegroundColour(WHITE_COLOUR)
         interpBox.Add(interpLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 114)
         self.interpMenu = CustomMenu(panel, self.interpList, self.interpList[0])
@@ -3571,45 +3032,45 @@ class RandomFrame(wx.Frame):
         slidersBox = wx.FlexGridSizer(5, 2, 5, 5)
 
         ptsLabel = wx.StaticText(panel, -1, "Points")
-        ptsLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        ptsLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         ptsLabel.SetForegroundColour(WHITE_COLOUR)
-        self.ptsSlider = ControlSlider(panel, 5, 1000, 50, size=(236, 15), integer=True)
+        self.ptsSlider = ControlSlider(panel, 5, 1000, 50, size=(235, 15), integer=True, backColour=BACKGROUND_COLOUR)
         self.ptsSlider.setSliderHeight(10)
         self.ptsSlider.SetToolTip(CECTooltip(TT_STOCH_POINTS))
         slidersBox.AddMany([(ptsLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.RIGHT | wx.LEFT, 5),
                             (self.ptsSlider, 0, wx.RIGHT, 5)])
 
         minLabel = wx.StaticText(panel, -1, "Min")
-        minLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        minLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         minLabel.SetForegroundColour(WHITE_COLOUR)
-        self.minSlider = ControlSlider(panel, 0, 1, 0, size=(236, 15))
+        self.minSlider = ControlSlider(panel, 0, 1, 0, size=(235, 15), backColour=BACKGROUND_COLOUR)
         self.minSlider.setSliderHeight(10)
         self.minSlider.SetToolTip(CECTooltip(TT_STOCH_MIN))
         slidersBox.AddMany([(minLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.RIGHT | wx.LEFT, 5),
                             (self.minSlider, 0, wx.RIGHT, 5)])
 
         maxLabel = wx.StaticText(panel, -1, "Max")
-        maxLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        maxLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         maxLabel.SetForegroundColour(WHITE_COLOUR)
-        self.maxSlider = ControlSlider(panel, 0, 1, 1, size=(236, 15))
+        self.maxSlider = ControlSlider(panel, 0, 1, 1, size=(235, 15), backColour=BACKGROUND_COLOUR)
         self.maxSlider.setSliderHeight(10)
         self.maxSlider.SetToolTip(CECTooltip(TT_STOCH_MAX))
         slidersBox.AddMany([(maxLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.RIGHT | wx.LEFT, 5),
                             (self.maxSlider, 0, wx.RIGHT, 5)])
 
         x1Label = wx.StaticText(panel, -1, "x1")
-        x1Label.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        x1Label.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         x1Label.SetForegroundColour(WHITE_COLOUR)
-        self.x1Slider = ControlSlider(panel, 0, 1, .5, size=(236, 15))
+        self.x1Slider = ControlSlider(panel, 0, 1, .5, size=(235, 15), backColour=BACKGROUND_COLOUR)
         self.x1Slider.setSliderHeight(10)
         self.x1Slider.SetToolTip(CECTooltip(TT_STOCH_X1))
         slidersBox.AddMany([(x1Label, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.RIGHT | wx.LEFT, 5),
                             (self.x1Slider, 0, wx.RIGHT, 5)])
 
         x2Label = wx.StaticText(panel, -1, "x2")
-        x2Label.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        x2Label.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         x2Label.SetForegroundColour(WHITE_COLOUR)
-        self.x2Slider = ControlSlider(panel, 0, 1, .5, size=(236, 15))
+        self.x2Slider = ControlSlider(panel, 0, 1, .5, size=(235, 15), backColour=BACKGROUND_COLOUR)
         self.x2Slider.setSliderHeight(10)
         self.x2Slider.SetToolTip(CECTooltip(TT_STOCH_X2))
         slidersBox.AddMany([(x2Label, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.RIGHT | wx.LEFT, 5),
@@ -3618,7 +3079,7 @@ class RandomFrame(wx.Frame):
 
         distBox = wx.BoxSizer(wx.HORIZONTAL)
         distLabel = wx.StaticText(panel, -1, "Distribution")
-        distLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        distLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         distLabel.SetForegroundColour(WHITE_COLOUR)
         distBox.Add(distLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 120)
         self.distMenu = CustomMenu(panel, self.distList, self.distList[0], outFunction=self.onDistribution)
@@ -3628,13 +3089,12 @@ class RandomFrame(wx.Frame):
 
         applyBox = wx.BoxSizer(wx.HORIZONTAL)
         applyer = ApplyToolBox(panel, outFunction=[self.OnClose, self.OnApply])
-        applyBox.Add(applyer, 0, wx.LEFT, 195)
+        applyBox.Add(applyer, 0,  wx.RIGHT, 8)
 
         box.Add(distBox, 0, wx.ALL, 5)
         box.Add(interpBox, 0, wx.ALL, 5)
         box.Add(slidersBox, 0, wx.EXPAND | wx.ALL, 5)
-        box.Add(applyBox, 0, wx.TOP, 15)
-        box.AddSpacer(10)
+        box.Add(applyBox, 0, wx.ALIGN_RIGHT | wx.TOP, 15)
 
         panel.SetSizerAndFit(box)
 
@@ -3649,20 +3109,17 @@ class RandomFrame(wx.Frame):
             else:
                 win = CeciliaLib.getVar("interface")
                 win.Raise()
-
-    def SetRoundShape(self, event=None):
-        self.SetShape(GetRoundShape(300, 233, 1))
      
     def OnClose(self):
         self.Hide()
 
     def onDistribution(self, ind, label):
         if label == 'Uniform':
-            self.x1Slider.setEnable(False)
-            self.x2Slider.setEnable(False)
+            self.x1Slider.Disable()
+            self.x2Slider.Disable()
         else:
-            self.x1Slider.setEnable(True)
-            self.x2Slider.setEnable(True)
+            self.x1Slider.Enable()
+            self.x2Slider.Enable()
 
     def OnApply(self):
         dist = self.distMenu.getLabel()
@@ -3973,12 +3430,9 @@ class WavesFrame(wx.Frame):
     def __init__(self, parent):
         style = ( wx.CLIP_CHILDREN | wx.FRAME_NO_TASKBAR | wx.FRAME_SHAPED | wx.NO_BORDER | wx.FRAME_FLOAT_ON_PARENT )
         wx.Frame.__init__(self, parent, title='', style = style)
+        self.SetBackgroundColour(BACKGROUND_COLOUR)
         self.parent = parent
-        self.SetSize((300,205))
-        if CeciliaLib.getVar("systemPlatform") == 'linux2':
-            self.Bind(wx.EVT_WINDOW_CREATE, self.SetRoundShape)
-        else:
-            self.SetRoundShape()
+        self.SetClientSize((300,210))
 
         self.distList = ['Sine', 'Square', 'triangle', 'Sawtooth', 'Sinc', 'Pulse', 'Bi-Pulse'] 
   
@@ -3993,45 +3447,45 @@ class WavesFrame(wx.Frame):
         slidersBox = wx.FlexGridSizer(5, 2, 5, 5)
 
         ptsLabel = wx.StaticText(panel, -1, "Points")
-        ptsLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        ptsLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         ptsLabel.SetForegroundColour(WHITE_COLOUR)
-        self.ptsSlider = ControlSlider(panel, 5, 1000, 50, size=(227, 15), integer=True)
+        self.ptsSlider = ControlSlider(panel, 5, 1000, 50, size=(235, 15), integer=True, backColour=BACKGROUND_COLOUR)
         self.ptsSlider.setSliderHeight(10)
         self.ptsSlider.SetToolTip(CECTooltip(TT_WAVE_POINTS))
         slidersBox.AddMany([(ptsLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.RIGHT | wx.LEFT, 5),
                             (self.ptsSlider, 0, wx.RIGHT, 5)])
 
         ampLabel = wx.StaticText(panel, -1, "Amp")
-        ampLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        ampLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         ampLabel.SetForegroundColour(WHITE_COLOUR)
-        self.ampSlider = ControlSlider(panel, 0, 1, 1, size=(227, 15))
+        self.ampSlider = ControlSlider(panel, 0, 1, 1, size=(235, 15), backColour=BACKGROUND_COLOUR)
         self.ampSlider.setSliderHeight(10)
         self.ampSlider.SetToolTip(CECTooltip(TT_WAVE_AMP))
         slidersBox.AddMany([(ampLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.RIGHT | wx.LEFT, 5),
                             (self.ampSlider, 0, wx.RIGHT, 5)])
 
         freqLabel = wx.StaticText(panel, -1, "Freq")
-        freqLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        freqLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         freqLabel.SetForegroundColour(WHITE_COLOUR)
-        self.freqSlider = ControlSlider(panel, 0.25, 100, 1, size=(227, 15))
+        self.freqSlider = ControlSlider(panel, 0, 100, 1, size=(235, 15), backColour=BACKGROUND_COLOUR)
         self.freqSlider.setSliderHeight(10)
         self.freqSlider.SetToolTip(CECTooltip(TT_WAVE_FREQ))
         slidersBox.AddMany([(freqLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.RIGHT | wx.LEFT, 5),
                             (self.freqSlider, 0, wx.RIGHT, 5)])
 
         phaseLabel = wx.StaticText(panel, -1, "Phase")
-        phaseLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        phaseLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         phaseLabel.SetForegroundColour(WHITE_COLOUR)
-        self.phaseSlider = ControlSlider(panel, 0, 1, 0, size=(227, 15))
+        self.phaseSlider = ControlSlider(panel, 0, 1, 0, size=(235, 15), backColour=BACKGROUND_COLOUR)
         self.phaseSlider.setSliderHeight(10)
         self.phaseSlider.SetToolTip(CECTooltip(TT_WAVE_PHASE))
         slidersBox.AddMany([(phaseLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.RIGHT | wx.LEFT, 5),
                             (self.phaseSlider, 0, wx.RIGHT, 5)])
 
         widthLabel = wx.StaticText(panel, -1, "Width")
-        widthLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        widthLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         widthLabel.SetForegroundColour(WHITE_COLOUR)
-        self.widthSlider = ControlSlider(panel, 0, 1, .5, size=(227, 15))
+        self.widthSlider = ControlSlider(panel, 0, 1, .5, size=(235, 15), backColour=BACKGROUND_COLOUR)
         self.widthSlider.setSliderHeight(10)
         self.widthSlider.SetToolTip(CECTooltip(TT_WAVE_WIDTH))
         slidersBox.AddMany([(widthLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.RIGHT | wx.LEFT, 5),
@@ -4040,9 +3494,9 @@ class WavesFrame(wx.Frame):
 
         distBox = wx.BoxSizer(wx.HORIZONTAL)
         distLabel = wx.StaticText(panel, -1, "Shape")
-        distLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        distLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         distLabel.SetForegroundColour(WHITE_COLOUR)
-        distBox.Add(distLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 137)
+        distBox.Add(distLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 147)
         self.distMenu = CustomMenu(panel, self.distList, self.distList[0], outFunction=self.onDistribution)
         self.distMenu.setLabel(self.distMenu.getLabel(), True)
         self.distMenu.SetToolTip(CECTooltip(TT_WAVE_SHAPE))
@@ -4050,12 +3504,11 @@ class WavesFrame(wx.Frame):
 
         applyBox = wx.BoxSizer(wx.HORIZONTAL)
         apply = ApplyToolBox(panel, outFunction=[self.OnClose, self.OnApply])
-        applyBox.Add(apply, 0, wx.LEFT, 195)
+        applyBox.Add(apply, 0, wx.RIGHT, 8)
 
         box.Add(distBox, 0, wx.ALL, 5)
         box.Add(slidersBox, 0, wx.EXPAND | wx.ALL, 5)
-        box.Add(applyBox, 0, wx.TOP, 15)
-        box.AddSpacer(10)
+        box.Add(applyBox, 0, wx.ALIGN_RIGHT | wx.TOP, 15)
 
         panel.SetSizerAndFit(box)
 
@@ -4071,34 +3524,31 @@ class WavesFrame(wx.Frame):
                 win = CeciliaLib.getVar("interface")
                 win.Raise()
 
-    def SetRoundShape(self, event=None):
-        self.SetShape(GetRoundShape(300, 205, 1))
-
     def OnClose(self):
         self.Hide()
 
     def onDistribution(self, ind, label):
         if label == 'Sine':
-            self.ptsSlider.setEnable(True)
-            self.widthSlider.setEnable(False)
+            self.ptsSlider.Enable()
+            self.widthSlider.Disable()
         elif label == 'Sawtooth':
-            self.ptsSlider.setEnable(False)
-            self.widthSlider.setEnable(False)
+            self.ptsSlider.Disable()
+            self.widthSlider.Disable()
         elif label == 'Square':
-            self.ptsSlider.setEnable(False)
-            self.widthSlider.setEnable(True)
+            self.ptsSlider.Disable()
+            self.widthSlider.Enable()
         elif label == 'triangle':
-            self.ptsSlider.setEnable(False)
-            self.widthSlider.setEnable(True)
+            self.ptsSlider.Disable()
+            self.widthSlider.Enable()
         elif label == 'Sinc':
-            self.ptsSlider.setEnable(True)
-            self.widthSlider.setEnable(False)
+            self.ptsSlider.Enable()
+            self.widthSlider.Disable()
         elif label == 'Pulse':
-            self.ptsSlider.setEnable(True)
-            self.widthSlider.setEnable(True)
+            self.ptsSlider.Enable()
+            self.widthSlider.Enable()
         elif label == 'Bi-Pulse':
-            self.ptsSlider.setEnable(True)
-            self.widthSlider.setEnable(True)
+            self.ptsSlider.Enable()
+            self.widthSlider.Enable()
 
     def OnApply(self):
         dist = self.distMenu.getLabel()
@@ -4380,12 +3830,9 @@ class ProcessFrame(wx.Frame):
     def __init__(self, parent):
         style = ( wx.CLIP_CHILDREN | wx.FRAME_NO_TASKBAR | wx.FRAME_SHAPED | wx.NO_BORDER | wx.FRAME_FLOAT_ON_PARENT )
         wx.Frame.__init__(self, parent, title='', style = style)
+        self.SetBackgroundColour(BACKGROUND_COLOUR)
         self.parent = parent
-        self.SetSize((300,235))
-        if CeciliaLib.getVar("systemPlatform") == 'linux2':
-            self.Bind(wx.EVT_WINDOW_CREATE, self.SetRoundShape)
-        else:
-            self.SetRoundShape()
+        self.SetClientSize((300,240))
 
         self.distList = ['Scatter', 'Jitter', 'Comp/Expand', 'Smoother']
         self.interpList = ['Linear', 'Sample hold'] 
@@ -4404,61 +3851,57 @@ class ProcessFrame(wx.Frame):
 
         interpBox = wx.BoxSizer(wx.HORIZONTAL)
         interpLabel = wx.StaticText(panel, -1, "Interpolation")
-        interpLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        interpLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         interpLabel.SetForegroundColour(WHITE_COLOUR)
-        interpBox.Add(interpLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 103)
+        interpBox.Add(interpLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 113)
         self.interpMenu = CustomMenu(panel, self.interpList, self.interpList[0])
         interpBox.Add(self.interpMenu, 0, wx.LEFT | wx.RIGHT, 5)
 
         ptsLabel = wx.StaticText(panel, -1, "Points")
-        ptsLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        ptsLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         ptsLabel.SetForegroundColour(WHITE_COLOUR)
-        self.ptsSlider = ControlSlider(panel, 5, 1000, 50, size=(215, 15), integer=True)
+        self.ptsSlider = ControlSlider(panel, 5, 1000, 50, size=(225, 15), integer=True, backColour=BACKGROUND_COLOUR)
         self.ptsSlider.setSliderHeight(10)
         slidersBox.AddMany([(ptsLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.RIGHT | wx.LEFT, 5),
                             (self.ptsSlider, 0, wx.RIGHT, 5)])
 
         self.scatXLabel = wx.StaticText(panel, -1, "Scatt X")
-        self.scatXLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        self.scatXLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         self.scatXLabel.SetForegroundColour(WHITE_COLOUR)
-        self.scatXSlider = ControlSlider(panel, 0, 0.5, 0.005, size=(215, 15))
-        self.scatXSlider.setFloatPrecision(3)
+        self.scatXSlider = ControlSlider(panel, 0, 0.5, 0.005, size=(225, 15), backColour=BACKGROUND_COLOUR)
         self.scatXSlider.setSliderHeight(10)
         slidersBox.AddMany([(self.scatXLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.RIGHT | wx.LEFT, 5),
                             (self.scatXSlider, 0, wx.RIGHT, 5)])
 
         self.scatYLabel = wx.StaticText(panel, -1, "Scatt Y")
-        self.scatYLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        self.scatYLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         self.scatYLabel.SetForegroundColour(WHITE_COLOUR)
-        self.scatYSlider = ControlSlider(panel, 0, 0.5, 0.05, size=(215, 15))
-        self.scatYSlider.setFloatPrecision(3)
+        self.scatYSlider = ControlSlider(panel, 0, 0.5, 0.05, size=(225, 15), backColour=BACKGROUND_COLOUR)
         self.scatYSlider.setSliderHeight(10)
         slidersBox.AddMany([(self.scatYLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.RIGHT | wx.LEFT, 5),
                             (self.scatYSlider, 0, wx.RIGHT, 5)])
 
         offXLabel = wx.StaticText(panel, -1, "Offset X")
-        offXLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        offXLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         offXLabel.SetForegroundColour("#FFFFFF")
-        self.offXSlider = ControlSlider(panel, -0.5, 0.5, 0, size=(215, 15))
-        self.offXSlider.setFloatPrecision(3)
+        self.offXSlider = ControlSlider(panel, -0.5, 0.5, 0, size=(225, 15), backColour=BACKGROUND_COLOUR)
         self.offXSlider.setSliderHeight(10)
         slidersBox.AddMany([(offXLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.RIGHT | wx.LEFT, 5),
                             (self.offXSlider, 0, wx.RIGHT, 5)])
 
         offYLabel = wx.StaticText(panel, -1, "Offset Y")
-        offYLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        offYLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         offYLabel.SetForegroundColour("#FFFFFF")
-        self.offYSlider = ControlSlider(panel, -0.5, 0.5, 0, size=(215, 15))
-        self.offYSlider.setFloatPrecision(3)
+        self.offYSlider = ControlSlider(panel, -0.5, 0.5, 0, size=(225, 15), backColour=BACKGROUND_COLOUR)
         self.offYSlider.setSliderHeight(10)
         slidersBox.AddMany([(offYLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.RIGHT | wx.LEFT, 5),
                             (self.offYSlider, 0, wx.RIGHT, 5)])
 
         distBox = wx.BoxSizer(wx.HORIZONTAL)
         distLabel = wx.StaticText(panel, -1, "Processor")
-        distLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.NORMAL, wx.NORMAL, wx.NORMAL, face=FONT_FACE))
+        distLabel.SetFont(wx.Font(TEXT_LABELFORWIDGET_FONT, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, face=FONT_FACE))
         distLabel.SetForegroundColour(WHITE_COLOUR)
-        distBox.Add(distLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 119)
+        distBox.Add(distLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 128)
         self.distMenu = CustomMenu(panel, self.distList, self.distList[0], outFunction=self.onDistribution)
         self.distMenu.SetToolTip(CECTooltip(TT_STOCH_TYPE))
         self.distMenu.setLabel(self.distMenu.getLabel(), True)
@@ -4466,13 +3909,12 @@ class ProcessFrame(wx.Frame):
 
         applyBox = wx.BoxSizer(wx.HORIZONTAL)
         apply = ApplyToolBox(panel, outFunction=[self.OnClose, self.OnApply])
-        applyBox.Add(apply, 0, wx.LEFT, 195)
+        applyBox.Add(apply, 0, wx.RIGHT, 8)
 
         box.Add(distBox, 0, wx.ALL, 5)
         box.Add(interpBox, 0, wx.ALL, 5)
         box.Add(slidersBox, 0, wx.EXPAND | wx.ALL, 5)
-        box.Add(applyBox, 0, wx.TOP, 15)
-        box.AddSpacer(10)
+        box.Add(applyBox, 0, wx.ALIGN_RIGHT | wx.TOP, 15)
 
         panel.SetSizerAndFit(box)
 
@@ -4488,18 +3930,15 @@ class ProcessFrame(wx.Frame):
                 win = CeciliaLib.getVar("interface")
                 win.Raise()
 
-    def SetRoundShape(self, event=None):
-        self.SetShape(GetRoundShape(300, 235, 1))
-
     def OnClose(self):
         self._oldState = None
         self.Hide()
 
     def onDistribution(self, ind, label):
         if label == 'Scatter':
-            self.ptsSlider.setEnable(False)
-            self.offXSlider.setEnable(False)
-            self.offYSlider.setEnable(False)
+            self.ptsSlider.Disable()
+            self.offXSlider.Disable()
+            self.offYSlider.Disable()
             self.scatXLabel.SetLabel('Scatt X')
             self.scatYLabel.SetLabel('Scatt Y')
             self.scatXSlider.SetRange(0, 0.5)
@@ -4507,9 +3946,9 @@ class ProcessFrame(wx.Frame):
             self.scatYSlider.SetRange(0, 0.5)
             self.scatYSlider.SetValue(0.05)
         elif label == 'Jitter':
-            self.ptsSlider.setEnable(True)
-            self.offXSlider.setEnable(False)
-            self.offYSlider.setEnable(False)
+            self.ptsSlider.Enable()
+            self.offXSlider.Disable()
+            self.offYSlider.Disable()
             self.scatXLabel.SetLabel('Jitte X')
             self.scatYLabel.SetLabel('Jitte Y')
             self.scatXSlider.SetRange(0, 0.5)
@@ -4517,9 +3956,9 @@ class ProcessFrame(wx.Frame):
             self.scatYSlider.SetRange(0, 0.5)
             self.scatYSlider.SetValue(0.05)
         elif label == 'Comp/Expand':
-            self.ptsSlider.setEnable(False)
-            self.offXSlider.setEnable(True)
-            self.offYSlider.setEnable(True)
+            self.ptsSlider.Disable()
+            self.offXSlider.Enable()
+            self.offYSlider.Enable()
             self.scatXLabel.SetLabel('Comp X')
             self.scatYLabel.SetLabel('Comp Y')
             self.scatXSlider.SetRange(0., 2.)
@@ -4527,10 +3966,10 @@ class ProcessFrame(wx.Frame):
             self.scatYSlider.SetRange(0., 2.)
             self.scatYSlider.SetValue(1.)
         elif label == 'Smoother':
-            self.ptsSlider.setEnable(False)
-            self.scatYSlider.setEnable(False)
-            self.offXSlider.setEnable(False)
-            self.offYSlider.setEnable(False)
+            self.ptsSlider.Disable()
+            self.scatYSlider.Disable()
+            self.offXSlider.Disable()
+            self.offYSlider.Disable()
             self.scatXLabel.SetLabel('Smooth')
             self.scatYLabel.SetLabel('Comp Y')
             self.scatXSlider.SetRange(0., 1.)
@@ -4813,9 +4252,14 @@ class Transport(wx.Panel):
 
         self.SetToolTip(CECTooltip(TT_PLAY + '\n\n' + TT_RECORD))
         
+        if CeciliaLib.getVar("systemPlatform") == "win32":
+            self.dcref = wx.BufferedPaintDC
+        else:
+            self.dcref = wx.PaintDC
+
     def setPlay(self, play):
         self.playing = play
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def getPlay(self):
         return self.playing
@@ -4831,7 +4275,7 @@ class Transport(wx.Panel):
             self.recordColour = TR_RECORD_OFF_COLOUR
         else:
             self.recordColour = TR_RECORD_ON_COLOUR
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
     
     def getRecord(self):
         return self.recording
@@ -4855,7 +4299,7 @@ class Transport(wx.Panel):
             self.playOver = False
             self.recordOver = True
         self.checkForOverReady(pos)
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         event.Skip()
 
     def setOverWait(self, which):
@@ -4890,7 +4334,7 @@ class Transport(wx.Panel):
                         self.outRecordFunction(self.recording)
                 self.setOverWait(i)
                 break
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         event.Skip()
 
     def MouseUp(self, event):
@@ -4908,19 +4352,20 @@ class Transport(wx.Panel):
                     if self.outPlayFunction:
                         self.outPlayFunction(self.playing)
                 break
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def OnLeave(self, event):
         self.playOver = False
         self.recordOver = False
         self.playOverWait = True
         self.recordOverWait = True
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         event.Skip()
 
     def OnPaint(self, event):
         w,h = self.GetSize()
-        dc = wx.AutoBufferedPaintDC(self)
+        dc = self.dcref(self)
+        gc = wx.GraphicsContext_Create(dc)
 
         dc.SetBrush(wx.Brush(self.backgroundColour, wx.SOLID))
         dc.Clear()
@@ -4944,15 +4389,16 @@ class Transport(wx.Panel):
             offPlayY = 9
         x, y, w1, h1 = self.rectList[0].Get()
         rec = wx.Rect(x+1, y+1, w1-2, h1-2)
-        dc.SetPen(wx.Pen(TR_BORDER_COLOUR, 1))
-        dc.SetBrush(wx.Brush(TR_BACK_COLOUR))
-        dc.DrawRoundedRectangleRect(rec, 4)
+        gc.SetPen(wx.Pen(TR_BORDER_COLOUR, 1))
+        gc.SetBrush(wx.Brush(TR_BACK_COLOUR))
+        gc.DrawRoundedRectangle(rec[0], rec[1], rec[2], rec[3], 4)
 
-        dc.SetBrush(wx.Brush(self.playColour, wx.SOLID))
+        gc.SetBrush(wx.Brush(self.playColour, wx.SOLID))
         if not self.playing:
-            dc.DrawPolygon([(x+offPlayX,y+offPlayY), (x+offPlayX,h1-offPlayY), (x+w1-offPlayX,h1/2)])
+            tri = [(x+offPlayX,y+offPlayY), (x+offPlayX,h1-offPlayY), (x+w1-offPlayX,h1/2), (x+offPlayX,y+offPlayY)]
+            gc.DrawLines(tri)
         else:
-            dc.DrawRoundedRectangle(x+offStopX, y+offStopY, w1-(offStopX*2), h1-(offStopY*2), 3)
+            gc.DrawRoundedRectangle(x+offStopX, y+offStopY, w1-(offStopX*2), h1-(offStopY*2), 3)
 
         # Draw record
         if self.recordOver and not self.playing:
@@ -4963,12 +4409,12 @@ class Transport(wx.Panel):
             radius = 6
         x, y, w1, h1 = self.rectList[1].Get()
         rec = wx.Rect(x+1, y+1, w1-2, h1-2)
-        dc.SetPen(wx.Pen(TR_BORDER_COLOUR, 1))
-        dc.SetBrush(wx.Brush(TR_BACK_COLOUR))
-        dc.DrawRoundedRectangleRect(rec, 4)
+        gc.SetPen(wx.Pen(TR_BORDER_COLOUR, 1))
+        gc.SetBrush(wx.Brush(TR_BACK_COLOUR))
+        gc.DrawRoundedRectangle(rec[0], rec[1], rec[2], rec[3], 4)
 
-        dc.SetBrush(wx.Brush(self.recordColour, wx.SOLID))
-        dc.DrawCircle(x+(w1/2), h1/2, radius)
+        gc.SetBrush(wx.Brush(self.recordColour, wx.SOLID))
+        gc.DrawEllipse(x+(w1/2)-radius, h1/2-radius, radius*2, radius*2)
 
 #---------------------------
 # VuMeter
@@ -4996,15 +4442,13 @@ class VuMeter(wx.Panel):
         gap = (self.nchnls - self.oldChnls) * 5
         self.oldChnls = self.nchnls
         parentSize = self.parent.GetSize()
-        if CeciliaLib.getVar("systemPlatform")  == 'win32':
-            self.SetSize((218, 5*self.nchnls+1))
-            self.SetMaxSize((218, 5*self.nchnls+1))
-        else:
-            self.SetSize((218, 5*self.nchnls+1))
-            self.SetMaxSize((218, 5*self.nchnls+1))
-            self.parent.SetSize((parentSize[0], parentSize[1]+gap))
-        self.Refresh()
-        CeciliaLib.getVar("interface").OnSize(wx.SizeEvent())
+        self.SetSize((218, 5*self.nchnls+1))
+        self.SetMinSize((218, 5*self.nchnls+1))
+        self.SetMaxSize((218, 5*self.nchnls+1))
+        self.parent.SetSize((parentSize[0], parentSize[1]+gap))
+        wx.CallAfter(self.Refresh)
+        if CeciliaLib.getVar("interface") is not None:
+            CeciliaLib.getVar("interface").Layout()
 
     def setRms(self, *args):
         if args[0] < 0: 
@@ -5030,13 +4474,14 @@ class VuMeter(wx.Panel):
             except:
                 width = 0
             dc.DrawBitmap(self.backBitmap, 0, i*5)
-            dc.SetClippingRegion(0, i*5, width, 5)
-            dc.DrawBitmap(self.bitmap, 0, i*5)
-            dc.DestroyClippingRegion()
+            if width > 0:
+                dc.SetClippingRegion(0, i*5, width, 5)
+                dc.DrawBitmap(self.bitmap, 0, i*5)
+                dc.DestroyClippingRegion()
 
     def reset(self):
         self.amplitude = [0 for i in range(self.nchnls)]
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
 
     def seekPeak(self):
         newPeak = False
@@ -5071,6 +4516,11 @@ class TabsPanel(wx.Panel):
         self.Bind(wx.EVT_PAINT, self.OnPaint)
         self.Bind(wx.EVT_LEFT_DOWN, self.MouseDown)
 
+        if CeciliaLib.getVar("systemPlatform") == "win32":
+            self.dcref = wx.BufferedPaintDC
+        else:
+            self.dcref = wx.PaintDC
+
     def MouseDown(self, event):
         pos = event.GetPosition()
         for i, rect in enumerate(self.rects):
@@ -5078,7 +4528,7 @@ class TabsPanel(wx.Panel):
                 self.selected = self.choices[i]
                 break
         self.outFunction(i)
-        self.Refresh()
+        wx.CallAfter(self.Refresh)
         event.Skip()
 
     def OnPaint(self, event):
@@ -5090,14 +4540,16 @@ class TabsPanel(wx.Panel):
             else:
                 pen = wx.Pen(TR_BORDER_COLOUR, 1)
                 brush = wx.Brush(BACKGROUND_COLOUR)
-            dc.SetPen(pen)
-            dc.SetBrush(brush)
+            gc.SetPen(pen)
+            gc.SetBrush(brush)
             x, y, x1, y1 = self.rects[index][0]+1, self.rects[index][1], self.rects[index][2]-2, self.rects[index][3]
-            dc.DrawPolygon([(x,y1),(x+5,y),(x+x1-5,y),(x+x1,y1)])
+            poly = [(x,y1),(x+5,y),(x+x1-5,y),(x+x1,y1)]
+            gc.DrawLines(poly)
             dc.DrawLabel(which, self.rects[index], wx.ALIGN_CENTER)
             
         w,h = self.GetSize()
-        dc = wx.AutoBufferedPaintDC(self)
+        dc = self.dcref(self)
+        gc = wx.GraphicsContext_Create(dc)
         dc.SetBrush(wx.Brush(self.backgroundColour, wx.SOLID))
         dc.Clear()
         dc.SetPen(wx.Pen(self.backgroundColour, width=0, style=wx.SOLID))
@@ -5111,6 +4563,57 @@ class TabsPanel(wx.Panel):
         for choice in choices:
             draw(choice)
 
+#---------------------------
+# Input Mode Button (return 0, 1, 2 or 3)
+# --------------------------
+class InputModeButton(wx.Panel):
+    def __init__(self, parent, state, size=(20,20), outFunction=None, colour=None):
+        wx.Panel.__init__(self, parent, -1, size=size)
+        self.SetMaxSize(self.GetSize())
+        self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
+        self.SetBackgroundColour(BACKGROUND_COLOUR)
+        self.outFunction = outFunction
+        self.state = state
+        if colour:
+            self.colour = colour
+        else:
+            self.colour = BACKGROUND_COLOUR
+
+        self.bitmaps = [ICON_INPUT_1_FILE.GetBitmap(), 
+                            ICON_INPUT_2_LIVE.GetBitmap(), 
+                            ICON_INPUT_3_MIC.GetBitmap(), 
+                            ICON_INPUT_4_MIC_RECIRC.GetBitmap()]
+        self.Bind(wx.EVT_PAINT, self.OnPaint)
+        self.Bind(wx.EVT_LEFT_DOWN, self.MouseDown)
+        self.SetToolTip(CECTooltip(TT_INPUT_MODE))
+
+    def OnPaint(self, event):
+        w,h = self.GetSize()
+        dc = wx.AutoBufferedPaintDC(self)
+
+        dc.SetBrush(wx.Brush(BACKGROUND_COLOUR, wx.SOLID))
+        dc.Clear()
+
+        # Draw background
+        dc.SetPen(wx.Pen(BACKGROUND_COLOUR, width=0, style=wx.SOLID))
+        dc.DrawRectangle(0, 0, w, h)
+
+        dc.DrawBitmap(self.bitmaps[self.state], 0, 0, True)
+
+    def MouseDown(self, event):
+        self.state = (self.state+1) % 4
+        if self.outFunction:
+            self.outFunction(self.state)
+        wx.CallAfter(self.Refresh)
+        event.Skip()
+
+    def getValue(self):
+        return self.state
+
+    def setValue(self, value):
+        self.state = value
+        wx.CallAfter(self.Refresh)
+
 class CECTooltip(wx.ToolTip):            
     def __init__(self, tip):
         if CeciliaLib.getVar("useTooltips"):
diff --git a/Resources/audio.py b/Resources/audio.py
index 45322e9..739a866 100755
--- a/Resources/audio.py
+++ b/Resources/audio.py
@@ -33,26 +33,36 @@ class CeciliaFilein:
     def __init__(self, parent, name):
         self.parent = parent
         self.name = name
-        userInputs = CeciliaLib.getVar("userInputs")
+        info = CeciliaLib.getVar("userInputs")[name]
         chnls = CeciliaLib.getVar("nchnls")
-        info = userInputs[name]
-        snd_chnls = info['nchnls'+self.name]
-        if snd_chnls == 1:
-            self.table = SndTable([info['path'] for i in range(chnls)], start=info["off"+self.name])
+        for filein in CeciliaLib.getControlPanel().cfileinList:
+            if filein.name == name:
+                break
+        offset = filein.getOffset()
+        mode = filein.getMode()
+        if mode == 0:
+            snd_chnls = info['nchnls'+self.name]
+            if snd_chnls == 1:
+                self.table = SndTable([CeciliaLib.toSysEncoding(info['path']) for i in range(chnls)], start=info["off"+self.name])
+            else:
+                self.table = SndTable(CeciliaLib.toSysEncoding(info['path']), start=info["off"+self.name])
         else:
-            self.table = SndTable(info['path'], start=info["off"+self.name])
-
+            self.table = NewTable(length=offset, chnls=chnls, feedback=0.0)
+            self.livein = Input(chnl=[x for x in range(chnls)], mul=0.7)
+            self.filltabrec = TableRec(self.livein, self.table, fadetime=0.05).play()
+    
     def sig(self):
         return self.table
 
 class CeciliaSampler:
     def __init__(self, parent, name, user_pitch, user_amp):
+        self.type = "sampler"
         self.parent = parent
+        self.baseModule = parent
         self.name = name
         self.user_pitch = user_pitch
         self.user_amp = user_amp
-        userInputs = CeciliaLib.getVar("userInputs")
-        info = userInputs[name]
+        info = CeciliaLib.getVar("userInputs")[name]
         totalTime = CeciliaLib.getVar("totalTime")
         chnls = CeciliaLib.getVar("nchnls")
         samplerList = CeciliaLib.getVar("userSamplers")
@@ -61,193 +71,377 @@ class CeciliaSampler:
                 sinfo = sampler.getSamplerInfo()
                 break
         self.sampler = sampler
-            
-        graph_lines = {}
-        for line in CeciliaLib.getVar("grapher").plotter.getData():
-            if line.name.startswith(self.name):
-                graph_lines[line.name] = line
+        self.mode = self.sampler.mode
 
-        if 0:
-            print info
-            print sinfo
-            print graph_lines
-        
-        paths = [slider.getPath() for slider in sampler.getSamplerSliders()]
-        
-        start_init, self.start_play, self.start_rec = sinfo['loopIn'][0], sinfo['loopIn'][1], sinfo['loopIn'][2]
-        line = graph_lines[self.name+'start']
-        curved = line.getCurved()
-        if curved:
-            self.start_table = CosTable()
-        else:
-            self.start_table = LinTable()
-        if not self.start_play:
-            self.start = SigTo(value=start_init, time=0.025, init=start_init)
-        if self.start_rec:
-            self.start_record = ControlRec(self.start, filename=paths[0], rate=1000, dur=totalTime).play()
-        if self.start_play:
-            data = line.getData()
-            data = [tuple(x) for x in data]
-            self.setGraph('start', data)
-            self.start = TableRead(self.start_table, freq=1.0/totalTime).play()
-        
-        dur_init, self.dur_play, self.dur_rec = sinfo['loopOut'][0], sinfo['loopOut'][1], sinfo['loopOut'][2]
-        line = graph_lines[self.name+'end']
-        curved = line.getCurved()
-        if curved:
-            self.dur_table = CosTable()
-        else:
-            self.dur_table = LinTable()
-        if not self.dur_play:
-            self.dur = SigTo(value=dur_init, time=0.025, init=dur_init)
-        if self.dur_rec:
-            self.dur_record = ControlRec(self.dur, filename=paths[1], rate=1000, dur=totalTime).play()
-        if self.dur_play:
-            data = line.getData()
-            data = [tuple(x) for x in data]
-            self.setGraph('end', data)
-            self.dur = TableRead(self.dur_table, freq=1.0/totalTime).play()
-        
-        xfade_init, self.xfade_play, self.xfade_rec = sinfo['loopX'][0], sinfo['loopX'][1], sinfo['loopX'][2]
-        line = graph_lines[self.name+'xfade']
-        curved = line.getCurved()
-        if curved:
-            self.xfade_table = CosTable()
-        else:
-            self.xfade_table = LinTable()
-        if not self.xfade_play:
-            self.xfade = SigTo(value=xfade_init, time=0.025, init=xfade_init)
-        if self.xfade_rec:
-            self.xfade_record = ControlRec(self.xfade, filename=paths[2], rate=1000, dur=totalTime).play()
-        if self.xfade_play:
-            data = line.getData()
-            data = [tuple(x) for x in data]
-            self.setGraph('xfade', data)
-            self.xfade = TableRead(self.xfade_table, freq=1.0/totalTime).play()
-       
-        gain_init, self.gain_play, self.gain_rec = sinfo['gain'][0], sinfo['gain'][1], sinfo['gain'][2]
-        line = graph_lines[self.name+'gain']
-        curved = line.getCurved()
-        if curved:
-            self.gain_table = CosTable()
-        else:
-            self.gain_table = LinTable()
-        if not self.gain_play:
-            self.gain_in = SigTo(value=gain_init, time=0.025, init=gain_init)
-        if self.gain_rec:
-            self.gain_record = ControlRec(self.gain_in, filename=paths[3], rate=1000, dur=totalTime).play()
-        if self.gain_play:
-            data = line.getData()
-            data = [tuple(x) for x in data]
-            self.setGraph('gain', data)
-            self.gain_in = TableRead(self.gain_table, freq=1.0/totalTime).play()
-        self.gain = Pow(10, self.gain_in * 0.05, mul=self.user_amp)
-        
-        pitch_init, self.pitch_play, self.pitch_rec = sinfo['transp'][0], sinfo['transp'][1], sinfo['transp'][2]
-        line = graph_lines[self.name+'trans']
-        curved = line.getCurved()
-        if curved:
-            self.pitch_table = CosTable()
-        else:
-            self.pitch_table = LinTable()
-        if not self.pitch_play:
-            self.pitch_in = SigTo(value=pitch_init, time=0.025, init=pitch_init)
-        if self.pitch_rec:
-            self.pitch_record = ControlRec(self.pitch_in, filename=paths[4], rate=1000, dur=totalTime).play()
-        if self.pitch_play:
-            data = line.getData()
-            data = [tuple(x) for x in data]
-            self.setGraph('trans', data)
-            self.pitch_in = TableRead(self.pitch_table, freq=1.0/totalTime).play()
-        self.pitch = Pow(1.0594630943593, self.pitch_in, self.user_pitch)
-        if CeciliaLib.getVar("automaticMidiBinding") and CeciliaLib.getVar("useMidi"):
-            self.checkNoteIn = Notein(poly=1, scale=0, first=0, last=120)
-            self.onNewNote = Change(self.checkNoteIn["pitch"])
-            self.noteTrigFunc = TrigFunc(self.onNewNote, self.newMidiPitch)
-    
-        self.table = SndTable(info['path'], start=info["off"+self.name])
-        if self.parent.number_of_voices > 1:
-            sp_freq = [random.uniform(.2,1) for i in range(self.parent.number_of_voices*len(self.table))]
-            sp_phase = [random.random() for i in range(self.parent.number_of_voices*len(self.table))]
-            self.pitch_rnd = Sine(sp_freq, sp_phase, mul=self.parent.polyphony_spread, add=1)
+        self.start_play, self.start_midi = False, False
+        self.dur_play, self.dur_midi = False, False
+        self.xfade_play, self.xfade_midi = False, False
+        self.gain_play, self.gain_midi = False, False
+        self.pitch_play, self.pitch_midi = False, False
+
+        if self.mode != 1:
+            graph_lines = {}
+            for line in CeciliaLib.getVar("grapher").plotter.getData():
+                if line.name.startswith(self.name):
+                    graph_lines[line.name] = line
+           
+            paths = [slider.getPath() for slider in sampler.getSamplerSliders()]
+            
+            ################ start ################
+            start_init, self.start_play, self.start_rec = sinfo['loopIn'][0], sinfo['loopIn'][1], sinfo['loopIn'][2]
+            try:
+                self.start_midi, start_midictl, start_midichnl = sinfo['loopIn'][3], sinfo['loopIn'][4], sinfo['loopIn'][5]
+                self.start_mini, self.start_maxi = sinfo['loopIn'][6], sinfo['loopIn'][7]
+                self.start_osc = sinfo['loopIn'][8]
+            except:
+                self.start_midi, start_midictl, start_midichnl, self.start_mini, self.start_maxi = False, None, 1, 0, 1
+                self.start_osc = None
+            line = graph_lines[self.name+'start']
+            curved = line.getCurved()
+            if curved:
+                self.start_table = CosTable()
+            else:
+                self.start_table = LinTable()
+            if not self.start_play and not self.start_midi:
+                self.start = SigTo(value=start_init, time=0.025, init=start_init)
+            if self.start_play:
+                data = line.getData()
+                data = [tuple(x) for x in data]
+                self.setGraph('start', data)
+                self.start = TableRead(self.start_table, freq=1.0/totalTime).play()
+            elif self.start_midi:
+                self.start = Midictl(start_midictl, self.start_mini, self.start_maxi, start_init, start_midichnl)
+                self.start.setInterpolation(False)
+            elif self.start_osc != None:
+                self.baseModule._addOpenSndCtrlWidget(self.start_osc[0], self.start_osc[1], self, name='start')
+            if self.start_rec:
+                self.start_record = ControlRec(self.start, filename=paths[0], rate=1000, dur=totalTime).play()
+            
+            ################  dur  ################
+            dur_init, self.dur_play, self.dur_rec = sinfo['loopOut'][0], sinfo['loopOut'][1], sinfo['loopOut'][2]
+            try:
+                self.dur_midi, dur_midictl, dur_midichnl = sinfo['loopOut'][3], sinfo['loopOut'][4], sinfo['loopOut'][5]
+                self.dur_mini, self.dur_maxi = sinfo['loopOut'][6], sinfo['loopOut'][7]
+                self.dur_osc = sinfo['loopOut'][8]
+            except:
+                self.dur_midi, dur_midictl, dur_midichnl, self.dur_mini, self.dur_maxi = False, None, 1, 0, 1
+                self.dur_osc = None
+            line = graph_lines[self.name+'end']
+            curved = line.getCurved()
+            if curved:
+                self.dur_table = CosTable()
+            else:
+                self.dur_table = LinTable()
+            if not self.dur_play and not self.dur_midi:
+                self.dur = SigTo(value=dur_init, time=0.025, init=dur_init)
+            if self.dur_play:
+                data = line.getData()
+                data = [tuple(x) for x in data]
+                self.setGraph('end', data)
+                self.dur = TableRead(self.dur_table, freq=1.0/totalTime).play()
+            elif self.dur_midi:
+                self.dur = Midictl(dur_midictl, self.dur_mini, self.dur_maxi, dur_init, dur_midichnl)
+                self.dur.setInterpolation(False)
+            elif self.dur_osc != None:
+                self.baseModule._addOpenSndCtrlWidget(self.dur_osc[0], self.dur_osc[1], self, name='dur')
+            if self.dur_rec:
+                self.dur_record = ControlRec(self.dur, filename=paths[1], rate=1000, dur=totalTime).play()
+            
+            ################ xfade ################
+            xfade_init, self.xfade_play, self.xfade_rec = sinfo['loopX'][0], sinfo['loopX'][1], sinfo['loopX'][2]
+            try:
+                self.xfade_midi, xfade_midictl, xfade_midichnl = sinfo['loopX'][3], sinfo['loopX'][4], sinfo['loopX'][5]
+                self.xfade_osc = sinfo['loopX'][6]
+            except:
+                self.xfade_midi, xfade_midictl, xfade_midichnl = False, None, 1
+                self.xfade_osc = None
+            line = graph_lines[self.name+'xfade']
+            curved = line.getCurved()
+            if curved:
+                self.xfade_table = CosTable()
+            else:
+                self.xfade_table = LinTable()
+            if not self.xfade_play and not self.xfade_midi:
+                self.xfade = SigTo(value=xfade_init, time=0.025, init=xfade_init)
+            if self.xfade_play:
+                data = line.getData()
+                data = [tuple(x) for x in data]
+                self.setGraph('xfade', data)
+                self.xfade = TableRead(self.xfade_table, freq=1.0/totalTime).play()
+            elif self.xfade_midi:
+                self.xfade = Midictl(xfade_midictl, 0, 50, xfade_init, xfade_midichnl)
+                self.xfade.setInterpolation(False)
+            elif self.xfade_osc != None:
+                self.baseModule._addOpenSndCtrlWidget(self.xfade_osc[0], self.xfade_osc[1], self, name='xfade')
+            if self.xfade_rec:
+                self.xfade_record = ControlRec(self.xfade, filename=paths[2], rate=1000, dur=totalTime).play()
+           
+            ################ gain ################
+            gain_init, self.gain_play, self.gain_rec = sinfo['gain'][0], sinfo['gain'][1], sinfo['gain'][2]
+            try:
+                self.gain_midi, gain_midictl, gain_midichnl = sinfo['gain'][3], sinfo['gain'][4], sinfo['gain'][5]
+                self.gain_osc = sinfo['gain'][6]
+            except:
+                self.gain_midi, gain_midictl, gain_midichnl = False, None, 1
+                self.gain_osc = None
+            line = graph_lines[self.name+'gain']
+            curved = line.getCurved()
+            if curved:
+                self.gain_table = CosTable()
+            else:
+                self.gain_table = LinTable()
+            if not self.gain_play and not self.gain_midi:
+                self.gain_in = SigTo(value=gain_init, time=0.025, init=gain_init)
+            if self.gain_play:
+                data = line.getData()
+                data = [tuple(x) for x in data]
+                self.setGraph('gain', data)
+                self.gain_in = TableRead(self.gain_table, freq=1.0/totalTime).play()
+            elif self.gain_midi:
+                self.gain_in = Midictl(gain_midictl, -48, 18, gain_init, gain_midichnl)
+                self.gain_in.setInterpolation(False)
+            elif self.gain_osc != None:
+                self.baseModule._addOpenSndCtrlWidget(self.gain_osc[0], self.gain_osc[1], self, name='gain')
+            if self.gain_rec:
+                self.gain_record = ControlRec(self.gain_in, filename=paths[3], rate=1000, dur=totalTime).play()
+            self.gain = Pow(10, self.gain_in * 0.05, mul=self.user_amp)
+            
+            ################ pitch ################
+            pitch_init, self.pitch_play, self.pitch_rec = sinfo['transp'][0], sinfo['transp'][1], sinfo['transp'][2]
+            try:
+                self.pitch_midi, pitch_midictl, pitch_midichnl = sinfo['transp'][3], sinfo['transp'][4], sinfo['transp'][5]
+                self.pitch_osc = sinfo['transp'][6]
+            except:
+                self.pitch_midi, pitch_midictl, pitch_midichnl = False, None, 1
+                self.pitch_osc = None
+            line = graph_lines[self.name+'trans']
+            curved = line.getCurved()
+            if curved:
+                self.pitch_table = CosTable()
+            else:
+                self.pitch_table = LinTable()
+            if not self.pitch_play and not self.pitch_midi:
+                self.pitch_in = SigTo(value=pitch_init, time=0.025, init=pitch_init)
+            if self.pitch_play:
+                data = line.getData()
+                data = [tuple(x) for x in data]
+                self.setGraph('trans', data)
+                self.pitch_in = TableRead(self.pitch_table, freq=1.0/totalTime).play()
+            elif self.pitch_midi:
+                self.pitch_in = Midictl(pitch_midictl, -48, 48, pitch_init, pitch_midichnl)
+                self.pitch_in.setInterpolation(False)
+            elif self.pitch_osc != None:
+                self.baseModule._addOpenSndCtrlWidget(self.pitch_osc[0], self.pitch_osc[1], self, name='pitch')
+            if self.pitch_rec:
+                self.pitch_record = ControlRec(self.pitch_in, filename=paths[4], rate=1000, dur=totalTime).play()
+            self.pitch = Pow(1.0594630943593, self.pitch_in, self.user_pitch)
+            if CeciliaLib.getVar("automaticMidiBinding") and CeciliaLib.getVar("useMidi"):
+                self.checkNoteIn = Notein(poly=1, scale=0, first=0, last=120)
+                self.onNewNote = Change(self.checkNoteIn["pitch"])
+                self.noteTrigFunc = TrigFunc(self.onNewNote, self.newMidiPitch)
+
+            if self.mode == 0:
+                self.table = SndTable(CeciliaLib.toSysEncoding(info['path']), start=info["off"+self.name])
+            elif self.mode == 2:
+                self.table = NewTable(length=self.sampler.getOffset(), chnls=chnls)
+                self.livein = Input(chnl=[x for x in range(chnls)], mul=0.7)
+                self.filltabrec = TableRec(self.livein, self.table).play()
+            elif self.mode == 3:
+                self.table = NewTable(length=self.sampler.getOffset(), chnls=chnls)
+                self.table2 = NewTable(length=self.sampler.getOffset(), chnls=chnls)
+                self.livein = Input(chnl=[x for x in range(chnls)], mul=0.7)
+                self.rectrig = Metro(time=self.sampler.getOffset(), poly=2).play()
+                self.tmprec1 = TrigTableRec(self.livein, self.rectrig[0], self.table)
+                self.tmprec2 = TrigTableRec(self.livein, self.rectrig[1], self.table2)
+                self.morphind = Counter(self.rectrig.mix(1), min=0, max=2, dir=0)
+                self.interp = SigTo(self.morphind, time=0.1)
+
+            self.pitch_rnd = [x for x in self.parent.polyphony_spread for y in range(len(self.table))]
+            if self.mode != 3:
+                self.looper = Looper( table=self.table,
+                                            pitch=self.pitch*self.pitch_rnd,
+                                            start=self.start,
+                                            dur=self.dur,
+                                            xfade=self.xfade,
+                                            mode=sinfo['loopMode'],
+                                            xfadeshape=sinfo['xfadeshape'],
+                                            startfromloop=sinfo['startFromLoop'],
+                                            interp=4,
+                                            autosmooth=True,
+                                            mul=self.gain)
+                self.mix = Mix(self.looper, voices=chnls, mul=self.parent.polyphony_scaling)
+            else:
+                self.looper = Looper( table=self.table,
+                                            pitch=self.pitch*self.pitch_rnd,
+                                            start=self.start,
+                                            dur=self.dur,
+                                            xfade=self.xfade,
+                                            mode=sinfo['loopMode'],
+                                            xfadeshape=sinfo['xfadeshape'],
+                                            startfromloop=sinfo['startFromLoop'],
+                                            interp=4,
+                                            autosmooth=True,
+                                            mul=self.gain)
+                self.looper2 = Looper( table=self.table2,
+                                            pitch=self.pitch*self.pitch_rnd,
+                                            start=self.start,
+                                            dur=self.dur,
+                                            xfade=self.xfade,
+                                            mode=sinfo['loopMode'],
+                                            xfadeshape=sinfo['xfadeshape'],
+                                            startfromloop=sinfo['startFromLoop'],
+                                            interp=4,
+                                            autosmooth=True,
+                                            mul=self.gain)
+                self.loopinterp = Interp(self.looper, self.looper2, self.interp)
+                self.mix = Mix(self.loopinterp, voices=chnls, mul=self.parent.polyphony_scaling)
+                
         else:
-            self.pitch_rnd = 1.0
-        self.looper = Looper( table=self.table,
-                                    pitch=self.pitch*self.pitch_rnd,
-                                    start=self.start,
-                                    dur=self.dur,
-                                    xfade=self.xfade,
-                                    mode=sinfo['loopMode'],
-                                    xfadeshape=sinfo['xfadeshape'],
-                                    startfromloop=sinfo['startFromLoop'],
-                                    interp=4,
-                                    autosmooth=True,
-                                    mul=self.gain)
-        self.mix = Mix(self.looper, voices=chnls)
+            self.mix = Input(chnl=[x for x in range(chnls)], mul=0.7)
+
+    def setValueFromOSC(self, val, name):
+        if self.mode != 1:
+            if name == 'start':
+                val = rescale(val, ymin=self.start_mini, ymax=self.start_maxi)
+                self.sampler.getSamplerFrame().loopInSlider.setValue(val)
+                if not self.sampler.getSamplerFrame().loopInSlider.slider.IsShownOnScreen():
+                    self.sampler.getSamplerFrame().loopInSlider.sendValue(val)
+            elif name == 'dur':
+                val = rescale(val, ymin=self.dur_mini, ymax=self.dur_maxi)
+                self.sampler.getSamplerFrame().loopOutSlider.setValue(val)
+                if not self.sampler.getSamplerFrame().loopOutSlider.slider.IsShownOnScreen():
+                    self.sampler.getSamplerFrame().loopOutSlider.sendValue(val)
+            elif name == 'xfade':
+                val = rescale(val, ymin=0, ymax=50)
+                self.sampler.getSamplerFrame().loopXSlider.setValue(val)
+                if not self.sampler.getSamplerFrame().loopXSlider.slider.IsShownOnScreen():
+                    self.sampler.getSamplerFrame().loopXSlider.sendValue(val)
+            elif name == 'gain':
+                val = rescale(val, ymin=-48, ymax=18)
+                self.sampler.getSamplerFrame().gainSlider.setValue(val)
+                if not self.sampler.getSamplerFrame().gainSlider.slider.IsShownOnScreen():
+                    self.sampler.getSamplerFrame().gainSlider.sendValue(val)
+            elif name == 'pitch':
+                val = rescale(val, ymin=-48, ymax=48)
+                self.sampler.getSamplerFrame().transpSlider.setValue(val)
+                if not self.sampler.getSamplerFrame().transpSlider.slider.IsShownOnScreen():
+                    self.sampler.getSamplerFrame().transpSlider.sendValue(val)
+
+    def getWidget(self, name):
+        if name == 'start':
+            widget = self.sampler.getSamplerFrame().loopInSlider
+        elif name == 'dur':
+            widget = self.sampler.getSamplerFrame().loopOutSlider
+        elif name == 'xfade':
+            widget = self.sampler.getSamplerFrame().loopXSlider
+        elif name == 'gain':
+            widget = self.sampler.getSamplerFrame().gainSlider
+        elif name == 'pitch':
+            widget = self.sampler.getSamplerFrame().transpSlider
+        return widget
+
+    def updateWidgets(self):
+        if self.mode != 1:
+            if self.start_midi and not self.start_play:
+                val = self.start.get()
+                wx.CallAfter(self.sampler.getSamplerFrame().loopInSlider.setValue, val)
+            if self.dur_midi and not self.dur_play:
+                val = self.dur.get()
+                wx.CallAfter(self.sampler.getSamplerFrame().loopOutSlider.setValue, val)
+            if self.xfade_midi and not self.xfade_play:
+                val = self.xfade.get()
+                wx.CallAfter(self.sampler.getSamplerFrame().loopXSlider.setValue, val)
+            if self.gain_midi and not self.gain_play:
+                val = self.gain_in.get()
+                wx.CallAfter(self.sampler.getSamplerFrame().gainSlider.setValue, val)
+            if self.pitch_midi and not self.pitch_play:
+                val = self.pitch_in.get()
+                wx.CallAfter(self.sampler.getSamplerFrame().transpSlider.setValue, val)
 
     def newMidiPitch(self):
-        pit = self.checkNoteIn.get()
-        self.sampler.getSamplerFrame().transpSlider.setValue(pit - 60)
-        if not self.sampler.getSamplerFrame().transpSlider.slider.IsShownOnScreen():
-            self.sampler.getSamplerFrame().transpSlider.sendValue(pit - 60)
+        if not self.pitch_midi:
+            pit = self.checkNoteIn.get()
+            self.sampler.getSamplerFrame().transpSlider.setValue(pit - 60)
+            if not self.sampler.getSamplerFrame().transpSlider.slider.IsShownOnScreen():
+                self.sampler.getSamplerFrame().transpSlider.sendValue(pit - 60)
 
     def setGraph(self, which, func):
-        totalTime = CeciliaLib.getVar("totalTime")
-        func = [(int(x/float(totalTime)*8192), y) for x, y in func]
-        if which.endswith('start'):
-            self.start_table.replace(func)
-        elif which.endswith('end'):
-            self.dur_table.replace(func)
-        elif which.endswith('xfade'):
-            self.xfade_table.replace(func)
-        elif which.endswith('gain'):
-            self.gain_table.replace(func)
-        elif which.endswith('trans'):
-            self.pitch_table.replace(func)
+        if self.mode != 1:
+            totalTime = CeciliaLib.getVar("totalTime")
+            func = [(int(x/float(totalTime)*8192), y) for x, y in func]
+            if which.endswith('start'):
+                self.start_table.replace(func)
+            elif which.endswith('end'):
+                self.dur_table.replace(func)
+            elif which.endswith('xfade'):
+                self.xfade_table.replace(func)
+            elif which.endswith('gain'):
+                self.gain_table.replace(func)
+            elif which.endswith('trans'):
+                self.pitch_table.replace(func)
     
     def checkForAutomation(self):
-        if self.start_rec:
-            self.start_record.write()
-        if self.dur_rec:
-            self.dur_record.write()
-        if self.xfade_rec:
-            self.xfade_record.write()
-        if self.gain_rec:
-            self.gain_record.write()
-        if self.pitch_rec:
-            self.pitch_record.write()
+        if self.mode != 1:
+            if self.start_rec:
+                self.start_record.write()
+            if self.dur_rec:
+                self.dur_record.write()
+            if self.xfade_rec:
+                self.xfade_record.write()
+            if self.gain_rec:
+                self.gain_record.write()
+            if self.pitch_rec:
+                self.pitch_record.write()
 
     def sig(self):
         return self.mix
-    
+
+    def getDur(self):
+        if self.mode != 1:
+            return self.table.getDur(False)
+        else:
+            return CeciliaLib.getVar("totalTime")
+
     def setSound(self, snd):
-        self.table.setSound(snd)
+        if self.mode == 0:
+            self.table.setSound(snd)
     
     def setStart(self, x):
-        if not self.start_play:
-            self.start.value = x
+        if self.mode != 1:
+            if not self.start_play:
+                self.start.value = x
     
     def setDur(self, x):
-        if not self.dur_play:
-            self.dur.value = x
+        if self.mode != 1:
+            if not self.dur_play:
+                self.dur.value = x
     
     def setXfade(self, x):
-        if not self.xfade_play:
-            self.xfade.value = x
+        if self.mode != 1:
+            if not self.xfade_play:
+                self.xfade.value = x
     
     def setGain(self, x):
-        if not self.gain_play:
-            self.gain_in.value = x
+        if self.mode != 1:
+            if not self.gain_play:
+                self.gain_in.value = x
     
     def setPitch(self, x):
-        if not self.pitch_play:
-            self.pitch_in.value = x
+        if self.mode != 1:
+            if not self.pitch_play:
+                self.pitch_in.value = x
 
     def setLoopMode(self, x):
-        self.looper.mode = x
+        if self.mode != 1:
+            self.looper.mode = x
+            if self.mode == 3:
+                self.looper2.mode = x
     
     def setXfadeShape(self, x):
-        self.looper.xfadeshape = x
+        if self.mode != 1:
+            self.looper.xfadeshape = x
+            if self.mode == 3:
+                self.looper2.xfadeshape = x
 
 class CeciliaSlider:
     def __init__(self, dic, baseModule):
@@ -541,13 +735,17 @@ class BaseModule:
         self._polyphony = None
         self._openSndCtrlDict = {}
         self._openSndCtrlSliderDict = {}
+        self._OSCOutList = []
 
         ###### Public attributes ######
         self.sr = CeciliaLib.getVar("sr")
         self.nchnls = CeciliaLib.getVar("nchnls")
         self.totalTime = CeciliaLib.getVar("totalTime")
+        self.server = CeciliaLib.getVar("audioServer").server
+        self.filepath = os.path.split(CeciliaLib.getVar("currentCeciliaFile", unicode=True))[0]
         self.number_of_voices = 1
-        self.polyphony_spread = 0.0
+        self.polyphony_spread = [1.0]
+        self.polyphony_scaling = 1.0
         ###############################
 
         interfaceWidgets = copy.deepcopy(CeciliaLib.getVar("interfaceWidgets"))
@@ -579,7 +777,7 @@ class BaseModule:
                 if togPop.name.endswith("num"):
                     self.number_of_voices = togPop.getValue() + 1
                 else:
-                    self.polyphony_spread = togPop.getValue()
+                    self._definePolyTranspo(togPop.getLabel())
             if togPop.type == "popup":
                 name = togPop.name
                 setattr(self, name + "_index", togPop.getValue())
@@ -629,6 +827,9 @@ class BaseModule:
         self._samplers[name] = CeciliaSampler(self, name, pitch, amp)
         return self._samplers[name].sig()
 
+    def getSamplerDur(self, name):
+        return self._samplers[name].getDur()
+        
     def duplicate(self, seq, num):
         """
         Duplicates elements in a sequence according to the `num` parameter.
@@ -663,6 +864,26 @@ class BaseModule:
     ############################
 
     ###### Private methods ######
+    def _definePolyTranspo(self, chord):
+        if self.number_of_voices <= 1:
+            return
+        tmp = 0
+        for i in range(self.number_of_voices):
+            tmp -= {0: 0, 1: 3, 2: 3, 3: 2, 4: 2, 5: 2, 6: 1, 7: 1, 8: 1, 9: 1}.get(i, 1)
+        self.polyphony_scaling = pow(10.0, tmp * 0.05)
+        if chord == "None":
+            self.polyphony_spread = [1.0] * self.number_of_voices
+            return
+        else:
+            self.polyphony_spread = [1.0]
+        pool = POLY_CHORDS[chord]
+        for i in range(1, self.number_of_voices):
+            note = pool[i%len(pool)]
+            if i % 2 == 1 or note < 1.0:
+                self.polyphony_spread.append(midiToTranspo(note+60))
+            else:
+                self.polyphony_spread.append(midiToTranspo(note-12+60))
+            
     def _deleteOscReceivers(self):
         if hasattr(self, "oscReceivers"):
             del self.oscReceivers
@@ -672,17 +893,52 @@ class BaseModule:
             self.oscReceivers = {}
             for key in self._openSndCtrlDict.keys():
                 self.oscReceivers[key] = OscReceive(key, self._openSndCtrlDict[key])
-
-    def _addOpenSndCtrlWidget(self, port, address, slider, side=0):
+                for slider in self._openSndCtrlSliderDict[key]:
+                    if type(slider) == type(()):
+                        slider, side = slider[0], slider[1]
+                        if slider.type == "sampler": # sampler slider
+                            widget = slider.getWidget(side)
+                            path = widget.openSndCtrl[1]
+                            val = rescale(widget.getValue(), xmin=widget.getMinValue(), xmax=widget.getMaxValue(), xlog=widget.getLog())
+                            self.oscReceivers[key].setValue(path, val)
+                            if widget.OSCOut != None:
+                                tmpout = OscDataSend("f", widget.OSCOut[1], widget.OSCOut[2], widget.OSCOut[0])
+                                tmpout.send([val])
+                                self._OSCOutList.append(tmpout)
+                        else: # range slider
+                            widget = slider.widget
+                            path = widget.openSndCtrl[side][1]
+                            val = rescale(widget.getValue()[side], xmin=widget.getMinValue(), xmax=widget.getMaxValue(), xlog=widget.getLog())
+                            self.oscReceivers[key].setValue(path, val)
+                            if widget.OSCOut != None:
+                                if widget.OSCOut[side] != ():
+                                    tmpout = OscDataSend("f", widget.OSCOut[side][1], widget.OSCOut[side][2], widget.OSCOut[side][0])
+                                    tmpout.send([val])
+                                    self._OSCOutList.append(tmpout)
+                    else: # slider
+                        widget = slider.widget
+                        path = widget.openSndCtrl[1]
+                        val = rescale(widget.getValue(), xmin=widget.getMinValue(), xmax=widget.getMaxValue(), xlog=widget.getLog())
+                        self.oscReceivers[key].setValue(path, val)
+                        if widget.OSCOut != None:
+                            tmpout = OscDataSend("f", widget.OSCOut[1], widget.OSCOut[2], widget.OSCOut[0])
+                            tmpout.send([val])
+                            self._OSCOutList.append(tmpout)
+
+    def _addOpenSndCtrlWidget(self, port, address, slider, side=0, name=""):
         if self._openSndCtrlDict.has_key(port):
             self._openSndCtrlDict[port].append(address)
-            if slider.type == 'slider':
+            if slider.type == 'sampler':
+                self._openSndCtrlSliderDict[port].append((slider, name))
+            elif slider.type == 'slider':
                 self._openSndCtrlSliderDict[port].append(slider)
             elif slider.type == 'range':
                 self._openSndCtrlSliderDict[port].append((slider, side))
         else:
             self._openSndCtrlDict[port] = [address]
-            if slider.type == 'slider':
+            if slider.type == 'sampler':
+                self._openSndCtrlSliderDict[port] = [(slider, name)]
+            elif slider.type == 'slider':
                 self._openSndCtrlSliderDict[port] = [slider]
             elif slider.type == 'range':
                 self._openSndCtrlSliderDict[port] = [(slider, side)]
@@ -695,6 +951,9 @@ class BaseModule:
                 slider.record.write()
 
     def _updateWidgets(self):
+        if self._samplers != {}:
+            for key in self._samplers.keys():
+                self._samplers[key].updateWidgets()
         for slider in self._sliders.values():
             if slider.play == 1 or slider.midi:
                 slider.updateWidget()
@@ -747,12 +1006,14 @@ class BaseModule:
 
     def __del__(self):
         self.oscReceivers = {}
+        self._OSCOutList = []
         for key in self.__dict__.keys():
             del self.__dict__[key]
+        del self
 
 class CeciliaPlugin:
     def __init__(self, input, params=None, knobs=None):
-        self.input = Sig(input)
+        self.input = InputFader(input)
         gliss = 0.05
         totalTime = CeciliaLib.getVar("totalTime")
         if params == None:
@@ -853,8 +1114,8 @@ class CeciliaPlugin:
         else:
             self.out.interp = 1
 
-    def setInput(self, input):
-        self.input.value = input
+    def setInput(self, input, fadetime=0.05):
+        self.input.setInput(input, fadetime)
 
     def setGraph(self, which, func):
         totalTime = CeciliaLib.getVar("totalTime")
@@ -1136,26 +1397,64 @@ class CeciliaDeadResonPlugin(CeciliaPlugin):
         self.mix = Interp(self.input, self.total, self.sig3())
         self.out = Interp(self.input, self.mix, inter)
 
+class CeciliaChaosModPlugin(CeciliaPlugin):
+    def __init__(self, input, params, knobs):
+        CeciliaPlugin.__init__(self, input, params, knobs)
+
+        self.lfolo = Lorenz(self.sig1(), self.sig2(), stereo=True, mul=0.5, add=0.5)
+        self.lforo = Rossler(self.sig1(), self.sig2(), stereo=True, mul=0.5, add=0.5)
+        self.lfo = Sig(self.lfolo)
+        self.iamp = 1.0 - self.sig3()
+        self.modu = self.input * (self.lfo * self.sig3() + self.iamp)
+
+        if self.preset == 0:
+            inter = 0
+        else:
+            if self.preset == 1:
+                self.lfo.value = self.lfolo
+            else:
+                self.lfo.value = self.lforo
+            inter = 1
+            
+        self.out = Interp(self.input, self.modu, inter)
+
+    def setPreset(self, x, label):
+        self.preset = x
+        if self.preset == 0:
+            self.out.interp = 0
+        else:
+            if self.preset == 1:
+                self.lfo.value = self.lfolo
+            else:
+                self.lfo.value = self.lforo
+            self.out.interp = 1
+
 class AudioServer():
     def __init__(self):
         self.amp = 1.0
-        sr, bufsize, nchnls, duplex, host, outdev, indev = self.getPrefs()
+        sr, bufsize, nchnls, duplex, host, outdev, indev, firstin, firstout = self.getPrefs()
+        jackname = CeciliaLib.getVar("jack").get("client", "cecilia5")
         if CeciliaLib.getVar("DEBUG"):
-            print "AUDIO CONFIG:\nsr: %s, buffer size: %s, num of channels: %s, duplex: %s, host: %s, output device: %s, input device: %s" % (sr, bufsize, nchnls, duplex, host, outdev, indev)
-        self.server = Server(sr=sr, buffersize=bufsize, nchnls=nchnls, duplex=duplex, audio=host)
+            print "AUDIO CONFIG:"
+            print "sr: %s, buffer size: %s, num of channels: %s, duplex: %s, host: %s, output device: %s, input device: %s" % (sr, bufsize, nchnls, duplex, host, outdev, indev)
+            print "first physical input: %s, first physical output: %s\n" % (firstin, firstout)
+        self.server = Server(sr=sr, buffersize=bufsize, nchnls=nchnls, duplex=duplex, audio=host, jackname=jackname)
         if CeciliaLib.getVar("DEBUG"):
             self.server.verbosity = 15
+        if host == 'jack':
+            self.server.setJackAuto(True, True)
         self.setTimeCallable()
         self.timeOpened = True
         self.recording = False
         self.withTimer = False
-        self.plugins = [None, None, None]
-        self.out = self.plugin1 = self.plugin2 = self.plugin3 = None
+        self.withSpectrum = False
+        self.pluginObjs = [None] * NUM_OF_PLUGINS
+        self.out = self.spectrum = None
         self.pluginDict = {"Reverb": CeciliaReverbPlugin, "WGVerb": CeciliaWGReverbPlugin, "Filter": CeciliaFilterPlugin, "Para EQ": CeciliaEQPlugin, 
                            "Chorus": CeciliaChorusPlugin, "3 Bands EQ": CeciliaEQ3BPlugin, "Compress": CeciliaCompressPlugin, "Gate": CeciliaGatePlugin, 
                            "Disto": CeciliaDistoPlugin, "AmpMod": CeciliaAmpModPlugin, "Phaser": CeciliaPhaserPlugin, "Delay": CeciliaDelayPlugin, 
                            "Flange": CeciliaFlangePlugin, "Harmonizer": CeciliaHarmonizerPlugin, "Resonators": CeciliaResonatorsPlugin, 
-                           "DeadReson": CeciliaDeadResonPlugin}
+                           "DeadReson": CeciliaDeadResonPlugin, 'ChaosMod': CeciliaChaosModPlugin}
 
     def getPrefs(self):
         sr = CeciliaLib.getVar("sr")
@@ -1165,7 +1464,12 @@ class AudioServer():
         host = CeciliaLib.getVar("audioHostAPI")
         outdev = CeciliaLib.getVar("audioOutput")
         indev = CeciliaLib.getVar("audioInput")
-        return sr, bufsize, nchnls, duplex, host, outdev, indev
+        firstin = CeciliaLib.getVar("defaultFirstInput")
+        firstout = CeciliaLib.getVar("defaultFirstOutput")
+        return sr, bufsize, nchnls, duplex, host, outdev, indev, firstin, firstout
+
+    def dump(self, l):
+        pass
 
     def start(self, timer=True, rec=False):
         if CeciliaLib.getVar("DEBUG"):
@@ -1184,34 +1488,40 @@ class AudioServer():
             self.ctl7TrigFunc = TrigFunc(self.onNewCtl7Value, self.newCtl7Value)
         if rec:
             self.recording = True
-            fileformat = {"wav": 0, "aif": 1}[CeciliaLib.getVar("audioFileType")]
+            fileformat = AUDIO_FILE_FORMATS[CeciliaLib.getVar("audioFileType")]
             sampletype = CeciliaLib.getVar("sampSize")
             self.recamp = SigTo(self.amp, time=0.05, init=self.amp)
-            self.recorder = Record(self.plugin3.out * self.recamp, CeciliaLib.getVar("outputFile"), CeciliaLib.getVar("nchnls"),
+            self.recorder = Record(self.pluginObjs[-1].out * self.recamp, 
+                                   CeciliaLib.toSysEncoding(CeciliaLib.getVar("outputFile")), CeciliaLib.getVar("nchnls"),
                                    fileformat=fileformat, sampletype=sampletype, buffering=8)
+        if CeciliaLib.getVar("showSpectrum"):
+            self.withSpectrum = True
+            self.specamp = SigTo(self.amp, time=0.05, init=self.amp, mul=self.pluginObjs[-1].out)
+            self.spectrum = Spectrum(self.specamp, function=self.dump)
         if CeciliaLib.getVar("startOffset") > 0.0:
             self.server.startoffset = CeciliaLib.getVar("startOffset")
         if timer:
             self.withTimer = True
-            self.endcall = wx.CallLater(int((CeciliaLib.getVar("totalTime")+0.05)*1000), CeciliaLib.stopCeciliaSound)
-            #self.endcall = CallAfter(function=CeciliaLib.stopCeciliaSound, time=CeciliaLib.getVar("totalTime")+0.2)
             self.server.start()
         else:
             self.server.start()
             CeciliaLib.resetControls()
         if CeciliaLib.getVar("DEBUG"):
-            print "Audio server start: end"
+            print "Audio server start: end\n"
 
     def stop(self):
         if CeciliaLib.getVar("DEBUG"):
             print "Audio server stop: begin"
         if self.withTimer:
-            self.endcall.Stop()
             self.withTimer = False
         self.server.stop()
         if self.recording:
             self.recording = False
             self.recorder.stop()
+        if self.withSpectrum:
+            self.withSpectrum = False
+            self.spectrum.poll(False)
+            self.spectrum.stop()
         self.timeOpened = False
         if CeciliaLib.getVar("grapher") != None:
             CeciliaLib.getVar("grapher").cursorPanel.setTime(CeciliaLib.getVar("startOffset"))
@@ -1219,21 +1529,25 @@ class AudioServer():
         if CeciliaLib.getVar("currentModule") != None:
             CeciliaLib.getVar("currentModule")._deleteOscReceivers()
         if CeciliaLib.getVar("DEBUG"):
-            print "Audio server stop: end"
+            print "Audio server stop: end\n"
 
     def shutdown(self):
         self.server.shutdown()
 
     def boot(self):
-        sr, bufsize, nchnls, duplex, host, outdev, indev = self.getPrefs()
+        sr, bufsize, nchnls, duplex, host, outdev, indev, firstin, firstout = self.getPrefs()
         if CeciliaLib.getVar("DEBUG"):
-            print "AUDIO CONFIG:\nsr: %s, buffer size: %s, num of channels: %s, duplex: %s, host: %s, output device: %s, input device: %s" % (sr, bufsize, nchnls, duplex, host, outdev, indev)
-            print "MIDI CONFIG: \ninput device: %d" % CeciliaLib.getVar("midiDeviceIn")
+            print "AUDIO CONFIG:"
+            print "sr: %s, buffer size: %s, num of channels: %s, duplex: %s, host: %s, output device: %s, input device: %s" % (sr, bufsize, nchnls, duplex, host, outdev, indev)
+            print "first physical input: %s, first physical output: %s\n" % (firstin, firstout)
+            print "MIDI CONFIG: \ninput device: %d\n" % CeciliaLib.getVar("midiDeviceIn")
         self.server.setSamplingRate(sr)
         self.server.setBufferSize(bufsize)
         self.server.setNchnls(nchnls)
         self.server.setDuplex(duplex)
         self.server.setOutputDevice(outdev)
+        self.server.setInputOffset(firstin)
+        self.server.setOutputOffset(firstout)
         if CeciliaLib.getVar("enableAudioInput"):
             self.server.setInputDevice(indev)
         if CeciliaLib.getVar("useMidi"):
@@ -1241,14 +1555,15 @@ class AudioServer():
         self.server.boot()
 
     def reinit(self):
+        jackname = CeciliaLib.getVar("jack").get("client", "cecilia5")
         if CeciliaLib.getVar("toDac"):
-            sr, bufsize, nchnls, duplex, host, outdev, indev = self.getPrefs()
-            self.server.reinit(audio=host)
+            sr, bufsize, nchnls, duplex, host, outdev, indev, firstin, firstout = self.getPrefs()
+            self.server.reinit(audio=host, jackname=jackname)
         else:
-            self.server.reinit(audio="offline_nb")
+            self.server.reinit(audio="offline_nb", jackname=jackname)
             dur = CeciliaLib.getVar("totalTime")
-            filename = CeciliaLib.getVar("outputFile")
-            fileformat = {"wav": 0, "aif": 1}[CeciliaLib.getVar("audioFileType")]
+            filename = CeciliaLib.toSysEncoding(CeciliaLib.getVar("outputFile"))
+            fileformat = AUDIO_FILE_FORMATS[CeciliaLib.getVar("audioFileType")]
             sampletype = CeciliaLib.getVar("sampSize")
             self.server.recordOptions(dur=dur, filename=filename, fileformat=fileformat, sampletype=sampletype)
 
@@ -1264,7 +1579,9 @@ class AudioServer():
             CeciliaLib.getVar("grapher").cursorPanel.setTime(time)
             CeciliaLib.getVar("interface").controlPanel.setTime(time, args[1], args[2], args[3]/10)
             if time >= (CeciliaLib.getVar("totalTime") - 0.5):
-                wx.CallLater(250, CeciliaLib.getControlPanel().closeBounceToDiskDialog)
+                wx.CallAfter(CeciliaLib.getControlPanel().closeBounceToDiskDialog)
+            if time >= (CeciliaLib.getVar("totalTime")):
+                wx.CallAfter(CeciliaLib.stopCeciliaSound)
         else:
             CeciliaLib.getVar("grapher").cursorPanel.setTime(CeciliaLib.getVar("startOffset"))
             CeciliaLib.getVar("interface").controlPanel.setTime(0, 0, 0, 0)
@@ -1286,6 +1603,10 @@ class AudioServer():
             self.recamp.value = self.amp
         except:
             pass
+        try:
+            self.specamp.value = self.amp
+        except:
+            pass
 
     def setInOutDevice(self, device):
         self.server.setInOutDevice(device)
@@ -1305,6 +1626,12 @@ class AudioServer():
         else:
             return False
 
+    def isAudioServerBooted(self):
+        if self.server.getIsBooted():
+            return True
+        else:
+            return False
+
     def openCecFile(self, filepath):
         CeciliaLib.setVar("currentModule", None)
         CeciliaLib.setVar("currentModuleRef", None)
@@ -1335,12 +1662,17 @@ class AudioServer():
         CeciliaLib.getVar("mainFrame").onUpdateInterface(None)
 
     def loadModule(self, module):
-        if self.plugin1 != None:
-            del self.plugin1
-        if self.plugin2 != None:
-            del self.plugin2
-        if self.plugin3 != None:
-            del self.plugin3
+        for i in range(NUM_OF_PLUGINS):
+            if self.pluginObjs[i] != None:
+               del self.pluginObjs[i].out
+               self.pluginObjs[i] = None 
+        if self.spectrum != None:
+            del self.specamp
+            del self.spectrum._timer
+            del self.spectrum
+            self.spectrum = None
+        if self.out != None:
+            del self.out
         if CeciliaLib.getVar("systemPlatform") == "darwin":
             try:
                 del self.globalamp
@@ -1375,124 +1707,99 @@ class AudioServer():
         currentModule._createOpenSndCtrlReceivers()
         self.out = Sig(currentModule.out)
 
-        self.plugins = CeciliaLib.getVar("plugins")
+        plugins = CeciliaLib.getVar("plugins")
 
-        if self.plugins[0] == None:
-            self.plugin1 = CeciliaNonePlugin(self.out)
-            self.plugin1.name = "None"
-        else:
-            pl = self.plugins[0]
-            name, params, knobs = pl.getName(), pl.getParams(), pl.getKnobs()
-            self.plugin1 = self.pluginDict[name](self.out, params, knobs)
-            self.plugin1.name = name
-
-        if self.plugins[1] == None:
-            self.plugin2 = CeciliaNonePlugin(self.plugin1.out)
-            self.plugin2.name = "None"
-        else:
-            pl = self.plugins[1]
-            name, params, knobs = pl.getName(), pl.getParams(), pl.getKnobs()
-            self.plugin2 = self.pluginDict[name](self.plugin1.out, params, knobs)
-            self.plugin2.name = name
-
-        if self.plugins[2] == None:
-            self.plugin3 = CeciliaNonePlugin(self.plugin2.out)
-            self.plugin3.name = "None"
-        else:
-            pl = self.plugins[2]
-            name, params, knobs = pl.getName(), pl.getParams(), pl.getKnobs()
-            self.plugin3 = self.pluginDict[name](self.plugin2.out, params, knobs)
-            self.plugin3.name = name
+        for i in range(NUM_OF_PLUGINS):
+            if i == 0:
+                tmp_out = self.out
+            else:
+                tmp_out = self.pluginObjs[i-1].out
+            if plugins[i] == None:
+                self.pluginObjs[i] = CeciliaNonePlugin(tmp_out)
+                self.pluginObjs[i].name = "None"
+            else:
+                pl = plugins[i]
+                name, params, knobs = pl.getName(), pl.getParams(), pl.getKnobs()
+                self.pluginObjs[i] = self.pluginDict[name](tmp_out, params, knobs)
+                self.pluginObjs[i].name = name
 
-        self.plugin3.out.out()
+        self.pluginObjs[NUM_OF_PLUGINS-1].out.out()
         CeciliaLib.setVar("currentModule", currentModule)
         currentModule._setWidgetValues()
 
+    def movePlugin(self, vpos, dir):
+        i1 = vpos
+        i2 = vpos + dir
+        tmp = self.pluginObjs[i2]
+        self.pluginObjs[i2] = self.pluginObjs[i1]
+        self.pluginObjs[i1] = tmp
+        for i in range(NUM_OF_PLUGINS):
+            if i == 0:
+                tmp_out = self.out
+            else:
+                tmp_out = self.pluginObjs[i-1].out
+            self.pluginObjs[i].setInput(tmp_out)
+            self.pluginObjs[i].out.play()
+        self.pluginObjs[NUM_OF_PLUGINS-1].out.out()
+
     def setPlugin(self, order):
+        plugins = CeciliaLib.getVar("plugins")
+        tmp = self.pluginObjs[order]
         if order == 0:
-            tmp = self.plugin1
-            if self.plugins[0] == None:
-                self.plugin1 = CeciliaNonePlugin(self.out)
-                self.plugin1.name = "None"
-            else:
-                pl = self.plugins[0]
-                name, params, knobs = pl.getName(), pl.getParams(), pl.getKnobs()
-                self.plugin1 = self.pluginDict[name](self.out, params, knobs)
-                self.plugin1.name = name
-            self.plugin2.input.value = self.plugin1.out
-            del tmp
-        elif order == 1:
-            tmp = self.plugin2
-            if self.plugins[1] == None:
-                self.plugin2 = CeciliaNonePlugin(self.plugin1.out)
-                self.plugin2.name = "None"
-            else:
-                pl = self.plugins[1]
-                name, params, knobs = pl.getName(), pl.getParams(), pl.getKnobs()
-                self.plugin2 = self.pluginDict[name](self.plugin1.out, params, knobs)
-                self.plugin2.name = name
-            self.plugin3.input.value = self.plugin2.out
-            del tmp
-        elif order == 2:
-            tmp = self.plugin3
-            if self.plugins[2] == None:
-                self.plugin3 = CeciliaNonePlugin(self.plugin2.out)
-                self.plugin3.name = "None"
-            else:
-                pl = self.plugins[2]
-                name, params, knobs = pl.getName(), pl.getParams(), pl.getKnobs()
-                self.plugin3 = self.pluginDict[name](self.plugin2.out, params, knobs)
-                self.plugin3.name = name
-            self.plugin3.out.out()
-            del tmp
+            tmp_out = self.out
+        else:
+            tmp_out = self.pluginObjs[order-1].out
+        if plugins[order] == None:
+            self.pluginObjs[order] = CeciliaNonePlugin(tmp_out)
+            self.pluginObjs[order].name = "None"
+        else:
+            pl = plugins[order]
+            name, params, knobs = pl.getName(), pl.getParams(), pl.getKnobs()
+            self.pluginObjs[order] = self.pluginDict[name](tmp_out, params, knobs)
+            self.pluginObjs[order].name = name
+        if order < (NUM_OF_PLUGINS - 1):
+            self.pluginObjs[order+1].setInput(self.pluginObjs[order].out)
+        else:
+            self.pluginObjs[order].out.out()
+        del tmp
 
     def checkForAutomation(self):
-        if self.plugins[0] != None:
-            if self.plugins[0].getName() == self.plugin1.name:
-                self.plugin1.checkForAutomation()
-        if self.plugins[1] != None:
-            if self.plugins[1].getName() == self.plugin2.name:
-                self.plugin2.checkForAutomation()
-        if self.plugins[2] != None:
-            if self.plugins[2].getName() == self.plugin3.name:
-                self.plugin3.checkForAutomation()
+        plugins = CeciliaLib.getVar("plugins")
+        for i in range(NUM_OF_PLUGINS):
+            if plugins[i] != None:
+                if plugins[i].getName() == self.pluginObjs[i].name:
+                    self.pluginObjs[i].checkForAutomation()
 
     def updatePluginWidgets(self):
-        if self.plugins[0] != None:
-            if self.plugins[0].getName() == self.plugin1.name:
-                self.plugin1.updateWidget()
-        if self.plugins[1] != None:
-            if self.plugins[1].getName() == self.plugin2.name:
-                self.plugin2.updateWidget()
-        if self.plugins[2] != None:
-            if self.plugins[2].getName() == self.plugin3.name:
-                self.plugin3.updateWidget()
+        plugins = CeciliaLib.getVar("plugins")
+        for i in range(NUM_OF_PLUGINS):
+            if plugins[i] != None:
+                if plugins[i].getName() == self.pluginObjs[i].name:
+                    self.pluginObjs[i].updateWidget()
 
     def setPluginValue(self, order, which, x):
-        pl = self.plugins[order]
-        if pl != None:
-            if order == 0 and pl.getName() == self.plugin1.name:
-                self.plugin1.setValue(which, x)
-            elif order == 1 and pl.getName() == self.plugin2.name:
-                self.plugin2.setValue(which, x)
-            elif order == 2 and pl.getName() == self.plugin3.name:
-                self.plugin3.setValue(which, x)
-
-    def setPluginPreset(self, order, x, label):
-        pl = self.plugins[order]
-        if pl != None:
-            if order == 0 and pl.getName() == self.plugin1.name:
-                self.plugin1.setPreset(x, label)
-            elif order == 1 and pl.getName() == self.plugin2.name:
-                self.plugin2.setPreset(x, label)
-            elif order == 2 and pl.getName() == self.plugin3.name:
-                self.plugin3.setPreset(x, label)
-
+        plugins = CeciliaLib.getVar("plugins")
+        if plugins[order] != None:
+            if plugins[order].getName() == self.pluginObjs[order].name:
+                self.pluginObjs[order].setValue(which, x)
+
+    def setPluginPreset(self, order, which, label):
+        plugins = CeciliaLib.getVar("plugins")
+        if plugins[order] != None:
+            if plugins[order].getName() == self.pluginObjs[order].name:
+                self.pluginObjs[order].setPreset(which, label)
+
+    def setPluginGraph(self, order, which, func):
+        plugins = CeciliaLib.getVar("plugins")
+        if plugins[order] != None:
+            if plugins[order].getName() == self.pluginObjs[order].name:
+                self.pluginObjs[order].setGraph(which, func)
+        
     def getMidiCtlNumber(self, number, midichnl=1): 
         if not self.midiLearnRange:
             self.midiLearnSlider.setMidiCtl(number)
             self.midiLearnSlider.setMidiChannel(midichnl)
-            wx.CallAfter(self.server.stop)
+            wx.CallLater(250, self.server.stop)
         else:
             tmp = [number, midichnl]
             if not tmp in self.midiLearnCtlsAndChnls:
@@ -1500,7 +1807,7 @@ class AudioServer():
                 if len(self.midiLearnCtlsAndChnls) == 2:
                     self.midiLearnSlider.setMidiCtl([self.midiLearnCtlsAndChnls[0][0], self.midiLearnCtlsAndChnls[1][0]])
                     self.midiLearnSlider.setMidiChannel([self.midiLearnCtlsAndChnls[0][1], self.midiLearnCtlsAndChnls[1][1]])
-                    wx.CallAfter(self.server.stop)
+                    wx.CallLater(250, self.server.stop)
 
     def midiLearn(self, slider, rangeSlider=False):
         self.midiLearnSlider = slider
@@ -1525,7 +1832,7 @@ class AudioServer():
                 defaultOutputDriver, midiDriverList, midiDriverIndexes, defaultMidiDriver
     
     def validateAudioFile(self, path):
-        if sndinfo(path) != None:
+        if sndinfo(CeciliaLib.toSysEncoding(path)) != None:
             return True
         else:
             return False
@@ -1540,7 +1847,7 @@ class AudioServer():
             print '--------------------------------------'
             print path
 
-        info = sndinfo(path)
+        info = sndinfo(CeciliaLib.toSysEncoding(path))
                 
         if info != None:
             samprate = info[2]
@@ -1585,5 +1892,7 @@ class AudioServer():
             else:
                 if CeciliaLib.getVar("DEBUG"):
                     print 'not a file'
+        if CeciliaLib.getVar("DEBUG"):
+            print
         return soundDict
         
diff --git a/Resources/constants.py b/Resources/constants.py
index be6d59e..25c379f 100644
--- a/Resources/constants.py
+++ b/Resources/constants.py
@@ -17,16 +17,18 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 along with Cecilia 5.  If not, see <http://www.gnu.org/licenses/>.
 """
-
 import os, sys
-from images import *
 
 reload(sys)
 sys.setdefaultencoding("utf-8")
 
+BUILD_RST = False
+
+from images import *
+
 APP_NAME = 'Cecilia5'
-APP_VERSION = '5.0.8 beta'
-APP_COPYRIGHT = 'iACT,  2012'
+APP_VERSION = '5.2.0'
+APP_COPYRIGHT = 'iACT,  2015'
 FILE_EXTENSION = "c5"
 PRESETS_DELIMITER = "####################################\n" \
                     "##### Cecilia reserved section #####\n" \
@@ -49,8 +51,8 @@ PREFERENCES_FILE = os.path.join(TMP_PATH, 'ceciliaPrefs.txt')
 LOG_FILE = os.path.join(TMP_PATH, 'ceciliaLog.txt')
 DOC_PATH = os.path.join(TMP_PATH, 'doc')
 MODULES_PATH = os.path.join(RESOURCES_PATH, 'modules')
-# Folder to save automations
 AUTOMATION_SAVE_PATH = os.path.join(TMP_PATH, 'automation_save')
+SPLASH_FILE_PATH = os.path.join(RESOURCES_PATH, "Cecilia_splash.png")
 
 # Meter icons
 ICON_VUMETER = catalog['vu-metre2.png']
@@ -58,6 +60,10 @@ ICON_VUMETER_DARK = catalog['vu-metre-dark2.png']
 # Plugin icons
 ICON_PLUGINS_KNOB = catalog['knob-trans-sm.png']
 ICON_PLUGINS_KNOB_DISABLE = catalog['knob-disab-sm.png']
+ICON_PLUGINS_ARROW_UP = catalog['arrow_up.png']
+ICON_PLUGINS_ARROW_UP_HOVER = catalog['arrow_up_hover.png']
+ICON_PLUGINS_ARROW_DOWN = catalog['arrow_down.png']
+ICON_PLUGINS_ARROW_DOWN_HOVER = catalog['arrow_down_hover.png']
 # Toolbox icons
 ICON_TB_LOAD = catalog['load-normal-trans.png']
 ICON_TB_LOAD_OVER = catalog['load-hover-trans.png']
@@ -122,6 +128,11 @@ ICON_PTB_RANDOM = catalog['random-normal-trans.png']
 ICON_PTB_RANDOM_OVER = catalog['random-hover-trans.png']
 ICON_PTB_WAVES = catalog['waves-normal-trans.png']
 ICON_PTB_WAVES_OVER = catalog['waves-hover-trans.png']
+# Input icons
+ICON_INPUT_1_FILE = catalog['input-1-file.png']
+ICON_INPUT_2_LIVE = catalog['input-2-live.png']
+ICON_INPUT_3_MIC = catalog['input-3-mic.png']
+ICON_INPUT_4_MIC_RECIRC = catalog['input-4-mic-recirc.png']
 # Crossfade icons
 ICON_XFADE_LINEAR = catalog['xfade-linear.png']
 ICON_XFADE_POWER = catalog['xfade-power.png']
@@ -153,13 +164,31 @@ MIDI_DRIVERS = ['portmidi']
 
 # plugin types
 PLUGINS_CHOICE = ['None', 'Reverb', 'WGVerb', 'Filter', 'Chorus', 'Para EQ', '3 Bands EQ', 'Compress', 'Gate', 
-                  'Disto', 'AmpMod', 'Phaser', 'Delay', 'Flange', 'Harmonizer', 'Resonators', 'DeadReson']
+                  'Disto', 'AmpMod', 'Phaser', 'Delay', 'Flange', 'Harmonizer', 'Resonators', 'DeadReson', 'ChaosMod']
+NUM_OF_PLUGINS = 4
 
 # Audio settings
-AUDIO_FILE_FORMATS = ['aif', 'wav']
 SAMPLE_RATES = ['22050','44100','48000', '88200', '96000']
 BIT_DEPTHS= {'16 bits int': 0, '24 bits int': 1, '32 bits int': 2, '32 bits float': 3}
 BUFFER_SIZES = ['64','128','256','512','1024','2048','4096','8192','16384']
+AUDIO_FILE_FORMATS = {'wav': 0, 'aif': 1, 'au': 2, 'sd2': 4, 'flac': 5, 'caf': 6, 'ogg': 7}
+AUDIO_FILE_WILDCARD =  "All files|*.*|" \
+            "Wave file|*.wave;*.WAV;*.WAVE;*.Wav;*.Wave;*.wav|" \
+            "AIFF file|*.aif;*.aiff;*.aifc;*.AIF;*.AIFF;*.Aif;*.Aiff|" \
+            "Flac file|*.flac;*.FLAC;*.Flac;|" \
+            "OGG file|*.ogg;*.OGG;*.Ogg;|" \
+            "SD2 file|*.sd2;*.SD2;*.Sd2;|" \
+            "AU file|*.au;*.AU;*.Au;|" \
+            "CAF file|*.caf;*.CAF;*.Caf"
+
+POLY_CHORDS = {'00 - None': [0], '06 - Major':[0,4,7,12], '07 - Minor':[0,3,7,12], '08 - Seventh':[0,4,7,10], 
+                '10 - Minor 7':[0,3,7,10], '09 - Major 7':[0,4,7,11],  '13 - Major 11':[0,4,7,11,18],
+                '15 - Minor 7b5':[0,3,6,10], '16 - Dimini.':[0,3,6,9], '12 - Minor 9':[0,3,7,10,14], 
+                '11 - Major 9':[0,4,7,11,14], '17 - Ninth':[0,4,7,10,14], '14 - Minor 11':[0,3,7,10,17], 
+                '04 - Serial':[0,1,2,3,4,5,6,7,8,9,10,11], '05 - Whole T.': [0,2,4,6,8,10], 
+                '01 - Phasing': [0,0.1291,0.1171,0.11832,0.125001,0.12799,0.11976,0.138711,0.12866,0.13681],
+                '02 - Chorus': [0,0.291,0.371,0.2832,0.35001,0.2799,0.2976,0.38711,0.3866,0.3681],
+                '03 - Detuned': [0,0.8291,0.9371,1.2832,1.35001,0.82799,0.92976,1.38711,1.3866,0.93681]}
 
 # Menu Ids
 ID_OPEN = 1002
@@ -170,17 +199,20 @@ ID_UNDO = 1013
 ID_REDO = 1014
 ID_COPY = 1016
 ID_PASTE = 1017
+ID_SELECT_ALL = 1018
 ID_REMEMBER = 1019
 ID_PLAY_STOP = 1034
 ID_BOUNCE = 1035
 ID_BATCH_FOLDER = 1036
 ID_BATCH_PRESET = 1037
+ID_USE_SOUND_DUR = 1040
 ID_USE_MIDI = 2052
 ID_MARIO = 3002
 ID_OPEN_RECENT = 4000
 ID_OPEN_BUILTIN = 4100
 ID_OPEN_AS_TEXT = 4500
 ID_UPDATE_INTERFACE = 4501
+ID_SHOW_SPECTRUM = 4550
 ID_MODULE_INFO = 4600
 ID_DOC_FRAME = 4601
 
@@ -223,6 +255,7 @@ GRAPHER_BACK_COLOUR = "#D1D1D1"
 TITLE_BACK_COLOUR = "#333333"
 SECTION_TITLE_COLOUR = "#CCCCCC"
 WHITE_COLOUR = "#FFFFFF"
+LIGHTGREY_COLOUR = "#999999"
 GREY_COLOUR = "#666666"
 BLACK_COLOUR = "#000000"
 BORDER_COLOUR = "#444444"
@@ -232,6 +265,7 @@ GRADIENT_DARK_COLOUR = "#313740"
 WIDGET_BORDER_COLOUR = "#BBBBBB"
 KNOB_BORDER_COLOUR = "#929292"
 POPUP_BACK_COLOUR = "#80A0B0"
+POPUP_DISABLE_COLOUR = "#888888"
 POPUP_BORDER_COLOUR = "#222222"
 POPUP_LABEL_COLOUR = "#FFFFFF"
 POPUP_HIGHLIGHT_COLOR = "#DDDDDD"
@@ -271,6 +305,8 @@ TR_PLAY_NORMAL_COLOUR = '#009911'
 TR_PLAY_CLICK_COLOUR = '#007A29'
 TR_RECORD_OFF_COLOUR = '#6E3131'
 TR_RECORD_ON_COLOUR = '#FF0000'
+PREFS_FOREGROUND = '#222222'
+PREFS_PATH_BACKGROUND = '#AAAAAA'
 
 # Hue, Brightness, Saturation
 COLOUR_CLASSES = {'green': [100., 0.25, .75], 
@@ -292,23 +328,23 @@ COLOUR_CLASSES = {'green': [100., 0.25, .75],
         'filterred': [342., 0.44, .47], 
         'compblue': [240., 0.44, .22], 
         'grey': [0., 0.34, 0.],
-        'green1': [100., 0.25, .75], 
-        'green2': [85., 0.3, .6], 
+        'green1': [100., 0.25, .75], # filters popup and freq
+        'green2': [85., 0.3, .6], # filters Q
         'green3': [75., 0.4, .6],
         'green4': [65., 0.45, .4],
-        'blue1': [230., 0.35, .55], 
+        'blue1': [230., 0.35, .55], # dry/wet, amplitude, balance
         'blue2': [220., 0.4, .45], 
         'blue3': [203., 0.43, .4], 
         'blue4': [190., 0.5, .35],
-        'red1': [0., .28, .75],        
+        'red1': [0., .28, .75], # Pitch, transposition
         'red2': [355., 0.35, .65], 
         'red3': [350., 0.45, .55], 
         'red4': [345., 0.5, .45], 
-        'orange1': [22., 0.35, .85], 
+        'orange1': [22., 0.35, .85], # post-processing knob lines
         'orange2': [18., 0.4, .7], 
         'orange3': [16., 0.47, .55], 
         'orange4': [14., 0.52, .45],
-        'purple1': [290., 0.3, .65], 
+        'purple1': [290., 0.3, .65], # process specific parameters 
         'purple2': [280., 0.4, .6], 
         'purple3': [270., 0.47, .55], 
         'purple4': [260., 0.52, .45]
@@ -319,47 +355,80 @@ TT_PLAY = "Triangle: Launch playback. Click again to stop."
 TT_RECORD = "Circle: Record Output to a file. No sound is heard."
 TT_CLOCK = "Current time of playback."
 
-TT_SEL_SOUND = "Select source sound. If none, open standard dialog. Source folder is read."
+TT_SEL_SOUND = """Select source sound.
+
+Click on the popup to open standard dialog.
+
+Click on the triangle to open the popup window with pre-loaded soundifle.
+
+Right-click on the popup to open a "recently used soundfiles" window.'
+"""
+
+TT_INPUT_MODE = """1 - Soundfile: load a soundfile in a sampler or a table.
+
+2 - Mic: use the live input signal to feed the module's processing. Only available with a csampler.
+
+3 - Mic 1: use the live input signal to fill (only once at the beginning of the playback) a sampler buffer or a table.
+
+4 - Mic (circular): use a double buffer to continuously fill the sampler with new samples from the live input sound. Only available with a csampler.
+"""
 
 TT_PLAY_SOUND = "Speaker: Play sound in Player app."
 TT_EDIT_SOUND = "Scissors: Edit sound in Editor app."
 TT_LOAD_SOUND = "Folder: Change folder for input sound. Source folder is read."
 TT_OPEN_SAMPLER = "Triangle: Toggle for source sound controls."
 TT_SET_OUTPUT = "Folder: Change destination and name for output sound."
-TT_USE_OUTPUT = "Arrows: Use output sound as source sound."
-TT_SAVE_GRAPH = "Floppy: Save graph to the disk."
-TT_LOAD_GRAPH = "Folder: Load graph from disk."
-TT_REINIT_GRAPH = "Arrow: Reinitialize graph."
-TT_SHOW_GRAPH = "Eye: Show/Hide graph."
+TT_USE_OUTPUT = "Arrows: Use last output sound as source sound."
+TT_SAVE_GRAPH = "Floppy: Save parameter line to the disk."
+TT_LOAD_GRAPH = "Folder: Load parameter line from disk."
+TT_REINIT_GRAPH = "Arrow: Reinitialize parameter line."
+TT_SHOW_GRAPH = "Eye: Show/Hide parameter line."
 TT_PRESET_SAVE = "Floppy: Save a preset."
 TT_PRESET_DELETE =  "X: Delete a preset."
 TT_SET_DUR = "Clock: Set duration of output to source sound duration."
 
-TT_OUTPUT = "Name of output file."
-TT_DUR_SLIDER = "Set duration of output. Shift click in slider knob to set value from keyboard."
-TT_GAIN_SLIDER = "Adjust gain of output. Shift click in slider knob to set value from keyboard."
-TT_CHANNELS = "Select # of channels for output."
+TT_OUTPUT = "Name of output file. Click to open a standard saving dialog."
+TT_DUR_SLIDER = "Set duration of output. Shift-click or double-click in slider knob to set value from keyboard."
+TT_GAIN_SLIDER = "Adjust gain of output. Shift-click or double-click in slider knob to set value from keyboard."
+TT_CHANNELS = "Select number of channels for output."
 TT_PEAK = "Displays peak amplitude of output. Double-click to reset."
-TT_GRAPH_POPUP = "Select graph for editing."
+TT_GRAPH_POPUP = "Select parameter for editing."
 TT_RES_SLIDER = "Adjust resolution of recorded graph."
-TT_POINTER = "Arrow: Use pointer tool - v."
-TT_ZOOM = "Magnifying glass: Use zoom - z."
-TT_HAND = "Hand: Use hand tool - h."
-TT_PENCIL = "Pencil: Use pencil tool - p."
+TT_POINTER = 'Arrow: Use pointer tool - shortcut = "v".'
+TT_ZOOM = 'Magnifying glass: Use zoom tool - shortcut = "z".'
+TT_HAND = 'Hand: Use hand tool - shortcut = "h".'
+TT_PENCIL = 'Pencil: Use pencil tool - shortcut = "p".'
 TT_STOCHASTIC = "Rand line: Use stochastic function generator."
 TT_WAVEFORM = "Sine wave: Use waveform function generator."
 TT_PROCESSOR = "Gears: Use function processor."
 
 TT_PRESET = "Choose a preset for this module."
 
-TT_SLIDER_LABEL = "Parameter name for slider. Click to select in grapher. Shift-click to solo in grapher. Right-click starts midi learn. Shift-Right-click removed midi binding. Double-click to set OSC bindings."
-TT_SLIDER_PLAY = "Triangle: Playback controls.\nDark green = Off\nLight green = play with visual update\nYellow = play without visual update."
+TT_SLIDER_LABEL = """Parameter name for slider. 
+  - Click to select in grapher. 
+  - Shift-click to solo in grapher. 
+  - Right-click starts midi learn. 
+  - Shift-Right-click removed midi binding. 
+  - Double-click to set OSC bindings."""
+TT_SLIDER_PLAY = """Triangle: Playback controls.
+  - Dark green: Off
+  - Light green = play with visual update
+  - Yellow = play without visual update."""
 TT_SLIDER_RECORD = "Circle: Record movements of this slider."
-TT_SLIDER_DISPLAY = "Slider display. Click in to enter value from keyboard. Click and scroll on value increment/decrement."
+TT_SLIDER_DISPLAY = """Slider display. 
+  - Click in to enter value from keyboard. 
+  - Click and scroll on value increment/decrement."""
+TT_RANGE_LABEL = """Parameter name for range slider. Functions listed below apply to the minimum value if the click is on the left side of label and to the maximum value if the click is on the right side of label.
+  - Click to select value in grapher.
+  - Shift-click to solo in grapher.
+  - Right-click starts midi learn.
+  - Shit-Right-click removed midi binding.
+  - Double-click to set OSC bindings."""
 
 TT_SAMPLER_OFFSET = "Offset time into source sound."
 TT_SAMPLER_LOOP = "Direction of loop."
-TT_SAMPLER_START = "Start from loop point."
+TT_SAMPLER_XFADE_SHAPE = "Shape of the crossfade. Linear, equal power or sine/cosine."
+TT_SAMPLER_START = "If checked, start directly from loop in point (instead of the beginning of the file)."
 TT_SAMPLER_LOOP_IN = "Set loop in point."
 TT_SAMPLER_LOOP_DUR = "Set loop duration."
 TT_SAMPLER_CROSSFADE = "Set duration of loop crossfade."
@@ -376,25 +445,44 @@ TT_STOCH_X2 = "Distribution specific parameter."
 
 TT_WAVE_SHAPE = "Waveshape."
 TT_WAVE_POINTS = "Number of points over which to draw the function."
-TT_WAVE_AMP = "Amplitude waveform."
+TT_WAVE_AMP = "Amplitude of waveform."
 TT_WAVE_FREQ = "Frequency of waveform."
 TT_WAVE_PHASE = "Phase of waveform."
-TT_WAVE_WIDTH = "Pulse width (square waveform only)."
-
-TT_GRAPHER = """
-Pointer tool: Click on graph line to select. Click and drag line to move it horizontally. Double-click on graph line to toggle between curved and straight line.
-Click on point or drag to select points. Click and drag to move point or selected points. Holding ALT key when dragging clip the horizontal position. Holding SHIFT+ALT key when dragging clip the vertical position. Double-click anywhere to add point. Delete key to delete selected points.
-
-Pencil tool: Click anywhere to add point. Click and drag to add multiple points.
-
-Zoom tool: Click and drag to zoom a region. Escape key to reset zoom level.
-
-Hand tool: Click and drag to move view of the grapher.              
-"""
-
-TT_RANGE_LABEL = "Parameter name for slider. Click on the left side of label to select minimum value in grapher. Click on the right side of label to select maximum value in grapher. Shift-click to solo in grapher. Right-click starts midi learn. Shit-Right-click removed midi binding."
-
-TT_POLY_LABEL = "Number of independent notes generated."
-TT_POLY_SPREAD = "Pitch spread between individual notes."
-
-TT_POST_ITEMS = "Choose a post-processing module. Parameters appear on the left buttons. Signal routing is from top to bottom. Computation must be restarted for the post-processing to take effects."
+TT_WAVE_WIDTH = "Pulse width (duty cycle when it applies)."
+
+TT_PROC_TYPE = "Type of the processor to use."
+TT_SCATTER_X = "Amount of horizontal deviation."
+TT_SCATTER_Y = "Amount of vertical deviation."
+TT_OFFSET_X = "Horizontal offset."
+TT_OFFSET_Y = "Vertical offset."
+
+TT_GRAPHER = """Pointer tool: 
+  - Click on graph line to select. 
+  - Click and drag line to move it horizontally. 
+  - Double-click on line to toggle between curved and straight.
+  - Click on point or drag to select points. 
+  - Click and drag to move point or selected points. 
+  - Holding Alt key when dragging clip the horizontal position. 
+  - Shift+Alt key when dragging clip the vertical position. 
+  - Double-click anywhere to add point. 
+  - Delete key to delete selected points.
+
+Pencil tool: 
+    - Click anywhere to add point. 
+    - Click and drag to add multiple points.
+
+Zoom tool: 
+    - Click and drag to zoom a region. 
+    - Escape key to reset zoom level.
+
+Hand tool: 
+    - Click and drag to move view of the grapher."""
+
+TT_POPUP = "Popup: Choose amongst a predefined list of elements."
+TT_TOGGLE = "Toggle: Two states button usually used to start/stop processes."
+TT_BUTTON = "Button: A simple trigger. Both mouse down and mouse up trigger an event."
+TT_GEN = "Gen: List entry, useful to send list of discreet values."
+TT_POLY_LABEL = "Polyphony Voices: Number of independent notes generated."
+TT_POLY_CHORD = "Polyphnoy Chords: Pitch mapping between individual notes."
+
+TT_POST_ITEMS = "Choose a post-processing module. Parameters appear on the left buttons. Signal routing is from top to bottom."
diff --git a/Resources/images.py b/Resources/images.py
index 6f5d170..0c66049 100644
--- a/Resources/images.py
+++ b/Resources/images.py
@@ -27571,3 +27571,110 @@ Cecilia_about_small_png = PyEmbeddedImage(
 index.append('Cecilia_about_small.png')
 catalog['Cecilia_about_small.png'] = Cecilia_about_small_png
 
+arrow_up_png = PyEmbeddedImage(
+    "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAKCAYAAACJxx+AAAAABHNCSVQICAgIfAhkiAAAAAlw"
+    "SFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoA"
+    "AADZSURBVBiVZZChboRAGIRnC6ayBnvIipakcimSIHgDGgyXDQ9Q36TyXqAeV4lfDOYsDo0i"
+    "KQmpILm0CelOTdlcep+aTP7/EyNIYiNJkkcA0Foft87FGUEQvBljCODh4kAI4TRNc7euK4QQ"
+    "DskfAABJkIRS6pUkjTHM8/xl6682g5Ry/2ey2RrSNL2fpokbwzBQSnlrDWEYHjzPs0++7yOK"
+    "ooM1tG37zX/UdX0iCWee5+eyLFOt9VfXdZ9935/GcXTjOL7OsuzDXZblRin1VFXV+/kmRVHs"
+    "Se5+AQJZhQOlqy7aAAAAAElFTkSuQmCC")
+index.append('arrow_up.png')
+catalog['arrow_up.png'] = arrow_up_png
+
+arrow_up_hover_png = PyEmbeddedImage(
+    "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAKCAYAAACJxx+AAAAABHNCSVQICAgIfAhkiAAAAAlw"
+    "SFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoA"
+    "AACDSURBVBiVdc2hDkEBFAbg79gVBJtgEwnMFE0z3TMInku0qd5FxQNooqAcwcW9xr/95ew7"
+    "58hMr6KPbm32BXbY/ARo4IrLP7BElp3/AvsK2NYAerhXwA2dzNTwzBpNn7SwwvvCsbL96iEz"
+    "FRGxwBAHnMsLI0wjYlagjUlmniovRMQYgwcxmnE+EQDXdAAAAABJRU5ErkJggg==")
+index.append('arrow_up_hover.png')
+catalog['arrow_up_hover.png'] = arrow_up_hover_png
+
+arrow_down_png = PyEmbeddedImage(
+    "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAKCAYAAACJxx+AAAAABHNCSVQICAgIfAhkiAAAAAlw"
+    "SFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoA"
+    "AADaSURBVBiVXYyxaoNQGIWPpim9uLj4FL5AB18kg4h7B6cutQ/QqTh10UAG38FJGgS5KIKC"
+    "GbO1goOd2zTt6dIrkm/6+c75j+Z53rNpmscoil5I/uAf13U3JG813/fv4zh+KsvyNAzDhxBi"
+    "LYQwHMe5CYLgEQC0LMs+eUGe518AdJ0kpZSvuEBKuSf5qwNAVVXhOI5zOE0Tuq57AACQBEkk"
+    "SfKm5tM0fVdeV19N02wX926eU00A66IoznVdn23bvlb+alH8DsPwYBiG1vf9Sfm5AABt295Z"
+    "lrVauj8obIq9NbpJHwAAAABJRU5ErkJggg==")
+index.append('arrow_down.png')
+catalog['arrow_down.png'] = arrow_down_png
+
+arrow_down_hover_png = PyEmbeddedImage(
+    "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAKCAYAAACJxx+AAAAABHNCSVQICAgIfAhkiAAAAAlw"
+    "SFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoA"
+    "AACNSURBVBiVbdCxakJREIThb8N9gpDG3lj6DAYEX1LLFOnzIloYQppUKbSwNdVY5Fw5aBYW"
+    "lpl/lmULK3wn+dRVVc0wHXDCvqp2+Gr+M+ZYSAJb5KY/knhoiY37WsO44RHnLv2LpyR/QINe"
+    "O+DtqnfASwcs/wMKBxxRoz6MFyVJVb03M9d/dLOqmjTtZ9QuhhBbdE2yjxkAAAAASUVORK5C"
+    "YII=")
+index.append('arrow_down_hover.png')
+catalog['arrow_down_hover.png'] = arrow_down_hover_png
+
+input_1_file_png = PyEmbeddedImage(
+    "iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAA"
+    "CXBIWXMAAAsSAAALEgHS3X78AAAAB3RJTUUH3QoEFi81+6IJKwAAAXBJREFUOMvF1L9qlFEQ"
+    "BfDfbELAQjSIyFaWsUmpiIWIWGqhrWhraSEWeQcrESzW1Da+QgQXfAXLCAqKMRo0qAm6ORb5"
+    "FtblW7MrogcuXObOHM78u/xvJPnte407V5Ukl3ALA6Txm8f9quonqapqZe78wr5Pdhr38AWf"
+    "sY2POIUnSS5XVQ5SOqryW5KbLfZekpUkr5JcnRTfabHNYavF3kcX17GS5EaS+WkU7iS51twr"
+    "yZFhekmuJFlLsp59HJuV8GiS5SSdYdOSLCY5l+RdkuPTpDyKEziLhWHTqmoLn7DXFjCpBnNJ"
+    "DpMl6g42kjzHV/xo6mxawuAkHlJdLGEVT/ECb7Azi8LCBno4g4tYwyO8beazO6lck1Lerqpn"
+    "SXbJY+p2Vb0fadyhWeZwZCXzmlptNmXiyh5E2MH3Jm4T6y31Gkwibkt5gMVmTHbxssVnoTmZ"
+    "hvA8ekkuNCMyjj0s4y4+/On3Nb7r/ap68M8/27+Cn+kPyYT4OERuAAAAAElFTkSuQmCC")
+index.append('input-1-file.png')
+catalog['input-1-file.png'] = input_1_file_png
+
+input_2_live_png = PyEmbeddedImage(
+    "iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAA"
+    "CXBIWXMAAAsSAAALEgHS3X78AAAAB3RJTUUH3QoEFjI2ncc0jQAAAZFJREFUOMvtVLGKFEEQ"
+    "fT0OmJkogsEGBhtctBj7F4LZxfoPmsoFh99gPLCBiRgIK8sGGsjBJu7ibSAm7gzuTLIz3V3d"
+    "VV0GuroI3s1ykeCLuquqH/VeUwX8xz7atr3w3htlWQIAVNVYawsisl3X3b8SKQCEEJ7rTzDz"
+    "R+fcrStJJqLzHWFKSUXk6LI3+UVJVaXd2RiTjDF6GWH2Z2CxWGA+n+/iZr9WVWU2m11bLpdZ"
+    "7w4Hg8F1AI+qqloC8HupjojujEaj4yzLXgH40Ms3Vb2RUvrsnDslojP9ja219qGIqKo+7i05"
+    "hKApJZvn+TdjzBvVH7allM67rvtkjIGI9P/ZzWaTE9GJiFTr9fqu9/5pjPFFXddHzFyklOqm"
+    "aYaHTshtZn7NzF2M8TSE8IyZz0Sk9t4/AABmRl8PAQDW2psxxmNmficiNsZ4QkT3djWr1aqf"
+    "h+PxGADgnDNN07xl5omqft1uty/btm0AYDqdYjgcHrwYnsQYv4hIqaoVM5fe+/cHj1tRFL9k"
+    "/82SyWTyD+/Q79RjMTK6t+geAAAAAElFTkSuQmCC")
+index.append('input-2-live.png')
+catalog['input-2-live.png'] = input_2_live_png
+
+input_3_mic_png = PyEmbeddedImage(
+    "iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAA"
+    "CXBIWXMAAAsSAAALEgHS3X78AAAAB3RJTUUH3QoEFjMatgRpLwAAAc1JREFUOMvtlLGKU0EU"
+    "hv8ZvVx2I4IiCUgIiNsIFoJYpvcJrPcJLHwCBS0tfAS7kEK2CSgSYyFEQxCrvYSAsViXhHCv"
+    "KXIzk3PmzFiYyHqJmhUr8e+G/8x3zjD/DPBff03j8RgAYIy5ZIx5b4xJ8jwvA8B8Pv9zMDM/"
+    "CysR0YuiH0LYHtbtdneIaLkGeu/JWru7AbobQrgTQoiLni4UKgB2vVZKmTiOi7ALAI4A7AM4"
+    "sxF4eHio+v2+ns1mUmiiiUharZZOkkStmnwBcAtAAkAVgWcBoFarXfbe71cqlechhDmAcyt/"
+    "bq29Xq/Xbyulnq4mA4Cd4ul+AJZKpWoI4YH3fqS19icLoii6Fsfxfa31yxPAn0oDABG5EIKN"
+    "ougIwOu16Zx7R0SflFJORIr74l9l8DwzvxKRD4PBoLxcLh8T0ZPRaFQWkbfOuTdpml7cKjbW"
+    "frvUPM9viEjinJsw8yNmfigin0VkaIy5uZr499nr9Xrfu1prrzDzXREZOec+OufuGWOuricb"
+    "DofbBbrZbAIA0jStZlm2x8wHRHQwnU73siyrAkCn0zn9s1ssFk1mPvbeT7z3E2Y+ttY2Tw1q"
+    "NBrrV7JRIQTVbrf/kW/wK1BnLU12SNmKAAAAAElFTkSuQmCC")
+index.append('input-3-mic.png')
+catalog['input-3-mic.png'] = input_3_mic_png
+
+input_4_mic_recirc_png = PyEmbeddedImage(
+    "iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAA"
+    "CXBIWXMAAAsSAAALEgHS3X78AAAAB3RJTUUH3QoEFjMseb78tgAAA6xJREFUOMuFVE1oXFUU"
+    "Pq8TK3TCVBMjZCSuRKx1IxaJilIwzaIRFHSpu7hRcCVYpRVBQRAh/pEs7Ma46KYLNyKlTYTG"
+    "pBnMhESSCZn8MJmZzGQy8+bNe6++9+7PuZ+LzpNJYurZ3e+e893v3u/cQ/QfMT8/f2A9PT1t"
+    "BUFgjYyMWDEGgEZHR4/UWoeBZrNJPT09RERUr9efUko9mUwmn0gmk6ZcLpuBgYFbU1NT5eHh"
+    "YY/+L7LZLBERFQqF047j/CClzGutwcwwxkBKCWYueZ53s16vnyMi2tjYsO5LurS09HIYhkUA"
+    "UEqh0Wj8atv2uwDOViqVy1rrOWMMmNnd2tr6ti3gIMnc3BwREQ0ODlpCiE0AsG37z62trWfa"
+    "72UFQfBwnO+67iVjTENKiWKx+Mmx6hqNxjUAcF33j4WFhX4iIinlCSnl+1JKRFH0SpyrlHqO"
+    "mf8G0Gg0GoNHyAqFwvNSShdAPZ/P98VOSilTWus1AGDm2x0uf1yr1X5iZgRB8Lkx5jKAh/4l"
+    "rFar3xlj0Gq1fonJiIjCMDytlCrgXmQ6RRhjqsYYAIDned/kcrmT1HHi9wAEgPMx1mq1Tvq+"
+    "/4hSartNeIeIyHGcrnbNqDGGhRBT2Wy258CVAfQBOAOgO8aEEJ+5rvuRUmqpTXjD9/0Poyh6"
+    "O86pVCpvLi8vP05EVCqV7jU2M1MikegktyzLAjNnjDF5Iurp6uq6yMxXiag3kUiULcv6oFqt"
+    "Wv39/YjrMpkMUTqd7iTKAViN12EYvsfMO0EQXFRK/ej7/iAzV6Moej3O2dnZGVlfX/9rZmbm"
+    "xc4bn2o2m7/HD2yM+S02RSl1jZk3pZSfMvNdKeVXh1qtJIRAqVR6o1PZq3t7e1eklE0hRNBs"
+    "Nn/uNEcpdYWZ/SiK3ursgNXV1TNCCDBz1vO8NHVuEhFprSeMMXBd9+sY8zzvglLqNjO7Qojr"
+    "vu8/S0Q0Pj7e7TjOLAA4jnP1gMOzs7NERDQ2NpYKggBKKWxvb3/ZVndSKfUogD4pZR+AxOTk"
+    "ZMq27RvMDACFlZWVgcPiaGJiIlb8NIC7SikA+KJcLp8HcApACkB3vV5/TWt9nZkhhIh2d3ff"
+    "ISIqFotH/3J8QhAELwghFrTWkFLCGJMHkDfGbCqloLVGGIa39vf3zxER1Wo169gBG8fa2tpj"
+    "6XT6JQAXUqnUWcuy2BhzwnXdDBHdXFxcvDM0NNSybZt6e3uPn4eZzIHvSrlc7kGtdTeApJQy"
+    "mclkHrjfPP0H15gBcemMfZQAAAAASUVORK5CYII=")
+index.append('input-4-mic-recirc.png')
+catalog['input-4-mic-recirc.png'] = input_4_mic_recirc_png
+
diff --git a/Resources/menubar.py b/Resources/menubar.py
index 13829ea..eb2a0cb 100644
--- a/Resources/menubar.py
+++ b/Resources/menubar.py
@@ -22,19 +22,6 @@ import wx, os
 from constants import *
 import CeciliaLib
 
-def buildFileTree():
-    root = MODULES_PATH
-    directories = []
-    files = {}
-    for dir in os.listdir(MODULES_PATH):
-        if not dir.startswith('.'):
-            directories.append(dir)
-            files[dir] = []
-            for f in os.listdir(os.path.join(root, dir)):
-                if not f.startswith('.'):
-                    files[dir].append(f)
-    return root, directories, files
-
 class InterfaceMenuBar(wx.MenuBar):
     def __init__(self, frame, mainFrame=None):
         wx.MenuBar.__init__(self, wx.MB_DOCKABLE)
@@ -43,6 +30,9 @@ class InterfaceMenuBar(wx.MenuBar):
             self.mainFrame = mainFrame
         else:
             self.mainFrame = CeciliaLib.getVar("mainFrame")
+        inMainFrame = False
+        if frame == mainFrame:
+            inMainFrame = True
 
         # File Menu
         self.fileMenu = wx.Menu()
@@ -52,7 +42,7 @@ class InterfaceMenuBar(wx.MenuBar):
         self.frame.Bind(wx.EVT_MENU, self.mainFrame.onOpenRandom, id=ID_OPEN_RANDOM)
 
         ######## Implement the Open builtin menu #########
-        self.root, self.directories, self.files = buildFileTree()
+        self.root, self.directories, self.files = CeciliaLib.buildFileTree()
         self.openBuiltinMenu = wx.Menu()
         subId1 = ID_OPEN_BUILTIN
         for dir in self.directories:
@@ -66,6 +56,7 @@ class InterfaceMenuBar(wx.MenuBar):
         prefPath = CeciliaLib.getVar("prefferedPath")
         if prefPath:
             for path in prefPath.split(';'):
+                path = CeciliaLib.ensureNFD(path)
                 if not os.path.isdir(path):
                     continue
                 menu = wx.Menu(os.path.split(path)[1])
@@ -81,9 +72,12 @@ class InterfaceMenuBar(wx.MenuBar):
                         except:
                             ok = False 
                         if ok:
-                            menu.Append(subId1, file)
-                            self.frame.Bind(wx.EVT_MENU, self.mainFrame.onOpenPrefModule, id=subId1)
-                            subId1 += 1
+                            try:
+                                menu.Append(subId1, CeciliaLib.ensureNFD(file))
+                                self.frame.Bind(wx.EVT_MENU, self.mainFrame.onOpenPrefModule, id=subId1)
+                                subId1 += 1
+                            except:
+                                pass
                 
         self.fileMenu.AppendMenu(-1, 'Modules', self.openBuiltinMenu)
 
@@ -102,7 +96,7 @@ class InterfaceMenuBar(wx.MenuBar):
         if recentFiles:
             for file in recentFiles:
                 try:
-                    self.openRecentMenu.Append(subId2, file)
+                    self.openRecentMenu.Append(subId2, CeciliaLib.ensureNFD(file))
                     subId2 += 1
                 except:
                     pass
@@ -121,48 +115,63 @@ class InterfaceMenuBar(wx.MenuBar):
         self.frame.Bind(wx.EVT_MENU, self.mainFrame.openModuleAsText, id=ID_OPEN_AS_TEXT)
         self.fileMenu.Append(ID_UPDATE_INTERFACE, 'Reload module\tCtrl+R', 'Reload the current module', kind=wx.ITEM_NORMAL)
         self.frame.Bind(wx.EVT_MENU, self.mainFrame.reloadCurrentModule, id=ID_UPDATE_INTERFACE)
-        self.fileMenu.AppendSeparator()
+        if CeciliaLib.getVar("systemPlatform")  in ['win32', 'linux2']:
+            self.fileMenu.AppendSeparator()
         pref_item = self.fileMenu.Append(wx.ID_PREFERENCES, 'Preferences...\tCtrl+,', 'Open Cecilia preferences pane', kind=wx.ITEM_NORMAL)
         self.frame.Bind(wx.EVT_MENU, self.mainFrame.onPreferences, pref_item)
-        self.fileMenu.AppendSeparator()
+        if CeciliaLib.getVar("systemPlatform")  in ['win32', 'linux2']:
+            self.fileMenu.AppendSeparator()
         quit_item = self.fileMenu.Append(wx.ID_EXIT, 'Quit\tCtrl+Q', 'Quit Cecilia', kind=wx.ITEM_NORMAL)
         self.frame.Bind(wx.EVT_MENU, self.mainFrame.onQuit, quit_item)
 
         # Edit Menu
         self.editMenu = wx.Menu()
-        self.editMenu.Append(ID_UNDO, 'Undo\tCtrl+Z', 'Undo the last change', kind=wx.ITEM_NORMAL)
-        self.frame.Bind(wx.EVT_MENU, self.frame.onUndo, id=ID_UNDO)
-        self.editMenu.Append(ID_REDO, 'Redo\tShift+Ctrl+Z', 'Redo the last change', kind=wx.ITEM_NORMAL)
-        self.frame.Bind(wx.EVT_MENU, self.frame.onRedo, id=ID_REDO)
-        self.editMenu.AppendSeparator()
-        self.editMenu.Append(ID_COPY, 'Copy\tCtrl+C', 'Copy the text selected in the clipboard', kind=wx.ITEM_NORMAL)
-        self.frame.Bind(wx.EVT_MENU, self.frame.onCopy, id=ID_COPY)
-        self.editMenu.Append(ID_PASTE, 'Paste\tCtrl+V', 'Paste the text in the clipboard', kind=wx.ITEM_NORMAL)
-        self.frame.Bind(wx.EVT_MENU, self.frame.onPaste, id=ID_PASTE)
-        self.editMenu.AppendSeparator()
-        self.editMenu.Append(ID_REMEMBER, 'Remember input sound', 'Find an expression in the text and replace it', kind=wx.ITEM_CHECK)
+        if not inMainFrame:
+            self.editMenu.Append(ID_UNDO, 'Undo\tCtrl+Z', 'Undo the last change', kind=wx.ITEM_NORMAL)
+            self.frame.Bind(wx.EVT_MENU, self.frame.onUndo, id=ID_UNDO)
+            self.editMenu.Append(ID_REDO, 'Redo\tShift+Ctrl+Z', 'Redo the last change', kind=wx.ITEM_NORMAL)
+            self.frame.Bind(wx.EVT_MENU, self.frame.onRedo, id=ID_REDO)
+            self.editMenu.AppendSeparator()
+            self.editMenu.Append(ID_COPY, 'Copy\tCtrl+C', 'Copy the current line to the clipboard', kind=wx.ITEM_NORMAL)
+            self.frame.Bind(wx.EVT_MENU, self.frame.onCopy, id=ID_COPY)
+            self.editMenu.Append(ID_PASTE, 'Paste\tCtrl+V', 'Paste to the current line the content of clipboard', kind=wx.ITEM_NORMAL)
+            self.frame.Bind(wx.EVT_MENU, self.frame.onPaste, id=ID_PASTE)
+            self.editMenu.AppendSeparator()
+            self.editMenu.Append(ID_SELECT_ALL, 'Select All Points\tCtrl+A', 'Select all points of the current graph line', kind=wx.ITEM_NORMAL)
+            self.frame.Bind(wx.EVT_MENU, self.frame.onSelectAll, id=ID_SELECT_ALL)
+            self.editMenu.AppendSeparator()
+        self.editMenu.Append(ID_REMEMBER, 'Remember Input Sound', 'Find an expression in the text and replace it', kind=wx.ITEM_CHECK)
         self.editMenu.FindItemById(ID_REMEMBER).Check(CeciliaLib.getVar("rememberedSound"))
         self.frame.Bind(wx.EVT_MENU, self.mainFrame.onRememberInputSound, id=ID_REMEMBER)
 
         # Action Options Menu
-        actionMenu = wx.Menu()
-        actionMenu.Append(ID_PLAY_STOP, 'Play / Stop\tCtrl+.', 'Start and stop audio server')
+        self.actionMenu = wx.Menu()
+        self.actionMenu.Append(ID_PLAY_STOP, 'Play / Stop\tCtrl+.', 'Start and stop audio server')
         self.frame.Bind(wx.EVT_MENU, self.mainFrame.onShortPlayStop, id=ID_PLAY_STOP)
-        actionMenu.AppendSeparator()
-        actionMenu.Append(ID_BOUNCE, 'Bounce to Disk\tCtrl+B', 'Record the audio processing in a soundfile')
+        self.actionMenu.AppendSeparator()
+        self.actionMenu.Append(ID_BOUNCE, 'Bounce to Disk\tCtrl+B', 'Record the audio processing in a soundfile')
         self.frame.Bind(wx.EVT_MENU, self.mainFrame.onBounceToDisk, id=ID_BOUNCE)
-        actionMenu.Append(ID_BATCH_FOLDER, 'Batch Processing on Sound Folder', '')
-        self.frame.Bind(wx.EVT_MENU, self.mainFrame.onBatchProcessing, id=ID_BATCH_FOLDER)
-        actionMenu.Append(ID_BATCH_PRESET, 'Batch Processing on Preset Sequence', '')
+        self.actionMenu.Append(ID_BATCH_PRESET, 'Batch Processing on Preset Sequence', '')
         self.frame.Bind(wx.EVT_MENU, self.mainFrame.onBatchProcessing, id=ID_BATCH_PRESET)
-        actionMenu.AppendSeparator()
-        actionMenu.Append(ID_USE_MIDI, 'Use MIDI', 'Allow Cecilia to use a midi device.', kind=wx.ITEM_CHECK)
+        self.actionMenu.Append(ID_BATCH_FOLDER, 'Batch Processing on Sound Folder', '')
+        self.frame.Bind(wx.EVT_MENU, self.mainFrame.onBatchProcessing, id=ID_BATCH_FOLDER)
+        self.actionMenu.Append(ID_USE_SOUND_DUR, 'Use Sound Duration on Folder Batch Processing', kind=wx.ITEM_CHECK)
+        if CeciliaLib.getVar("useSoundDur") == 1: 
+            self.actionMenu.FindItemById(ID_USE_SOUND_DUR).Check(True)
+        self.frame.Bind(wx.EVT_MENU, self.mainFrame.onUseSoundDuration, id=ID_USE_SOUND_DUR)
+        self.actionMenu.AppendSeparator()
+        self.actionMenu.Append(ID_SHOW_SPECTRUM, 'Show Spectrum', '', kind=wx.ITEM_CHECK)
+        self.frame.Bind(wx.EVT_MENU, self.mainFrame.onShowSpectrum, id=ID_SHOW_SPECTRUM)
+        if CeciliaLib.getVar('showSpectrum'):
+            self.actionMenu.FindItemById(ID_SHOW_SPECTRUM).Check(True)
+        self.actionMenu.AppendSeparator()
+        self.actionMenu.Append(ID_USE_MIDI, 'Use MIDI', 'Allow Cecilia to use a midi device.', kind=wx.ITEM_CHECK)
         if CeciliaLib.getVar("useMidi") == 1: midiCheck = True
         else: midiCheck = False
-        actionMenu.FindItemById(ID_USE_MIDI).Check(midiCheck)
-        actionMenu.FindItemById(ID_USE_MIDI).Enable(False)
+        self.actionMenu.FindItemById(ID_USE_MIDI).Check(midiCheck)
+        self.actionMenu.FindItemById(ID_USE_MIDI).Enable(False)
         self.frame.Bind(wx.EVT_MENU, self.mainFrame.onUseMidi, id=ID_USE_MIDI)
-    
+
         windowMenu = wx.Menu()
         windowMenu.Append(ID_MARIO, 'Eh Oh Mario!\tShift+Ctrl+E', '', kind=wx.ITEM_CHECK)
         self.frame.Bind(wx.EVT_MENU, self.marioSwitch, id=ID_MARIO)
@@ -170,17 +179,20 @@ class InterfaceMenuBar(wx.MenuBar):
         helpMenu = wx.Menu()        
         helpItem = helpMenu.Append(wx.ID_ABOUT, '&About %s %s' % (APP_NAME, APP_VERSION), 'wxPython RULES!!!')
         self.frame.Bind(wx.EVT_MENU, self.mainFrame.onHelpAbout, helpItem)
-        infoItem = helpMenu.Append(ID_MODULE_INFO, 'Show module info\tCtrl+I', '')
+        infoItem = helpMenu.Append(ID_MODULE_INFO, 'Show Module Info\tCtrl+I', '')
         self.frame.Bind(wx.EVT_MENU, self.mainFrame.onModuleAbout, infoItem)
         docItem = helpMenu.Append(ID_DOC_FRAME, 'Show API Documentation\tCtrl+D', '')
         self.frame.Bind(wx.EVT_MENU, self.mainFrame.onDocFrame, docItem)
  
         self.Append(self.fileMenu, '&File')
         self.Append(self.editMenu, '&Edit')
-        self.Append(actionMenu, '&Action')
+        self.Append(self.actionMenu, '&Action')
         self.Append(windowMenu, '&Window')
         self.Append(helpMenu, '&Help')
 
+    def spectrumSwitch(self, state):
+        self.actionMenu.FindItemById(ID_SHOW_SPECTRUM).Check(state)
+
     def marioSwitch(self, evt):
         if evt.GetInt() == 1:
             self.FindItemById(ID_MARIO).Check(1)
diff --git a/Resources/modules/Dynamics/Degrade.c5 b/Resources/modules/Dynamics/Degrade.c5
index aa18420..ad82d74 100644
--- a/Resources/modules/Dynamics/Degrade.c5
+++ b/Resources/modules/Dynamics/Degrade.c5
@@ -1,32 +1,53 @@
 class Module(BaseModule):
     """
-    Sampling rate and bit depth degradation module with optional wrap clipping
+    "Sampling rate and bit depth degradation with optional mirror clipping"
     
-    Sliders under the graph:
+    Description
     
-        - Bit Depth : Resolution of the amplitude in bits
-        - Sampling Rate Ratio : Ratio of the new sampling rate compared to the original one
-        - Wrap Threshold : Clipping limits between -1 and 1 (signal then wraps around the thresholds)
-        - Filter Freq : Center frequency of the filter
-        - Filter Q : Q factor of the filter
-        - Dry / Wet : Mix between the original signal and the degraded signal
+    This module allows the user to degrade a sound with artificial resampling
+    and quantization. This process emulates the artifacts caused by a poor
+    sampling frequency or bit depth resolution. It optionally offers a simple
+    mirror distortion, if the degradation is not enough! 
     
-    Dropdown menus, toggles and sliders on the bottom left:
+    Sliders
     
-        - Filter Type : Type of filter
-        - Clip Type : Choose between degradation only or with wrap around clipping
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+        # Bit Depth : 
+                Resolution of the amplitude in bits
+        # Sampling Rate Ratio : 
+                Ratio of the new sampling rate compared to the original one
+        # Mirror Threshold : 
+                Clipping limits between -1 and 1 (signal is reflected around the thresholds)
+        # Filter Freq : 
+                Center frequency of the filter
+        # Filter Q : 
+                Q factor of the filter
+        # Dry / Wet : 
+                Mix between the original signal and the degraded signal
+
+    Graph Only
+    
+        # Overall Amplitude : 
+                The amplitude curve applied on the total duration of the performance
     
-    Graph only parameters :
+    Popups & Toggles
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
+        # Filter Type : 
+                Type of filter
+        # Clip Type : 
+                Choose between degradation only or with mirror clipping
+        # Polyphony Voices : 
+                Number of voices played simultaneously (polyphony), 
+                only available at initialization time
+        # Polyphony Chords : 
+                Pitch interval between voices (chords), 
+                only available at initialization time
+
     """
     def __init__(self):
         BaseModule.__init__(self)
         self.snd = self.addSampler("snd")
         self.degr = Degrade(input=self.snd, bitdepth=self.bit, srscale=self.sr, mul=1)
-        self.wrap = Wrap(self.degr, self.clip*-1, self.clip)
+        self.wrap = Mirror(self.degr, self.clip*-1, self.clip)
         self.biquad = Biquadx(self.wrap, freq=self.filter, q=self.filterq, type=self.filttype_index, stages=4, mul=0.7)
         self.deg = Interp(self.snd, self.biquad, self.drywet, mul=self.env)
 
@@ -51,15 +72,16 @@ class Module(BaseModule):
         self.biquad.type = index
 
 Interface = [   csampler(name="snd"), 
-                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
-                cslider(name="bit", label="Bit Depth", min=1, max=16, init=8, rel="lin", unit="bit", col="olivegreen"),
-                cslider(name="sr", label="Sampling Rate Ratio", min=0.01, max=1, init=0.25, rel="log", unit="x", col="green"),
-                cslider(name="clip", label="Wrap Threshold", min=0.01, max=1, init=0.8, rel="lin", unit="x", col="lightgreen"),
-                cslider(name="filter", label="Filter Freq", min=30, max=20000, init=15000, rel="log", unit="Hz", col="tan"),
-                cslider(name="filterq", label="Filter Q", min=0.5, max=10, init=0.707, rel="log", unit="Q", col="tan"),
-                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue"),
-                cpopup(name="filttype", label="Filter Type", init="Lowpass", col="tan", value=["Lowpass","Highpass","Bandpass","Bandstop"]),
-                cpopup(name="balance", label = "Balance", init= "Off", col="blue", value=["Off","Compress", "Source"]),
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
+                cslider(name="bit", label="Bit Depth", min=1, max=32, init=8, rel="lin", unit="bit", col="purple1"),
+                cslider(name="sr", label="Sample Rate Ratio", min=0.01, max=1, init=0.25, rel="log", unit="x", col="purple2"),
+                cslider(name="clip", label="Mirror Threshold", min=0.01, max=1, init=0.8, rel="lin", unit="x", col="purple3"),
+                cslider(name="filter", label="Filter Freq", min=30, max=20000, init=15000, rel="log", unit="Hz", col="green1"),
+                cslider(name="filterq", label="Filter Q", min=0.5, max=10, init=0.707, rel="log", unit="Q", col="green2"),
+                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue1"),
+                cpopup(name="filttype", label="Filter Type", init="Lowpass", col="green1", value=["Lowpass","Highpass","Bandpass","Bandstop"]),
+                cpopup(name="balance", label = "Balance", init= "Off", col="blue1", value=["Off","Compress", "Source"]),
+                cpoly()
           ]
 
 
@@ -1481,4 +1503,4 @@ CECILIA_PRESETS = {u'01-Bass Crunch': {'active': False,
                                      'filter': [8001.7780146563609, 0, None, 1],
                                      'filterq': [0.70197917803316123, 0, None, 1],
                                      'sr': [0.086574585635359108, 0, None, 1]},
-                     'userTogglePopups': {'cliptype': 1, 'filttype': 1, 'polynum': 0, 'polyspread': 0.001}}}
\ No newline at end of file
+                     'userTogglePopups': {'cliptype': 1, 'filttype': 1, 'polynum': 0, 'polyspread': 0.001}}}
diff --git a/Resources/modules/Dynamics/Distortion.c5 b/Resources/modules/Dynamics/Distortion.c5
index 891a0d6..e8c5193 100644
--- a/Resources/modules/Dynamics/Distortion.c5
+++ b/Resources/modules/Dynamics/Distortion.c5
@@ -1,32 +1,52 @@
 class Module(BaseModule):
     """
-    Distortion module with pre and post filters
+    "Arctangent distortion module with pre and post filters"
     
-    Sliders under the graph:
+    Description
     
-        - Pre Filter Freq : Center frequency of the filter applied before distortion
-        - Pre Filter Q : Q factor of the filter applied before distortion
-        - Drive : Amount of distortion applied on the signal
-        - Post Filter Freq : Center frequency of the filter applied after distortion
-        - Post Filter Q : Q factor of the filter applied after distortion
+    This module applies an arctangent distortion with control on the amount
+    of drive and pre/post filtering.
+
+    Sliders
+    
+        # Pre Filter Freq : 
+            Center frequency of the filter applied before distortion
+        # Pre Filter Q : 
+            Q factor of the filter applied before distortion
+        # Drive : 
+            Amount of distortion applied on the signal
+        # Post Filter Freq : 
+            Center frequency of the filter applied after distortion
+        # Post Filter Q : 
+            Q factor of the filter applied after distortion
+
+    Graph Only
     
-    Dropdown menus, toggles and sliders on the bottom left:
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
     
-        - Pre Filter Type : Type of filter used before distortion
-        - Post Filter Type : Type of filter used after distortion
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+    Popups & Toggles
     
-    Graph only parameters :
+        # Pre Filter Type : 
+            Type of filter used before distortion
+        # Post Filter Type : 
+            Type of filter used after distortion
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
     """
     def __init__(self):
         BaseModule.__init__(self)
         self.snd = self.addSampler("snd")
         self.snd_filt = Biquadx(self.snd, freq=self.prefiltf, q=self.prefiltq, type=self.prefilttype_index, stages=2)
-        self.disto = Disto(self.snd_filt, drive=self.drv, slope=0, mul=.2)
-        self.deg = Biquadx(self.disto, freq=self.cut, q=self.q, stages=2, type=self.postfilttype_index, mul=self.env)
+        self.input = Sig(self.snd_filt, mul=DBToA(self.pregain))
+        self.disto = Disto(self.input, drive=self.drv, slope=0, mul=.2)
+        self.disto_filt = Biquadx(self.disto, freq=self.cut, q=self.q, stages=2, type=self.postfilttype_index)
+        self.deg = Interp(self.snd, self.disto_filt, self.drywet, mul=self.env)
 
         self.osc = Sine(10000,mul=.1)
         self.balanced = Balance(self.deg, self.osc, freq=10)
@@ -52,15 +72,18 @@ class Module(BaseModule):
         self.out.type = index
 
 Interface = [   csampler(name="snd"), 
-                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
-                cslider(name="prefiltf", label="Pre Filter Freq", min=100, max=18000, init=250, rel="log", unit="Hz", col="green"),
-                cslider(name="prefiltq", label="Pre Filter Q", min=.5, max=10, init=0.707, rel="log", col="green"),
-                cslider(name="drv", label="Drive", min=0.5, max=1, init=.9, rel="lin", col="blue"),
-                cslider(name="cut", label="Post Filter Freq", min=100, max=18000, init=5000, rel="log", col="red"),
-                cslider(name="q", label="Post Filter Q", min=.5, max=10, init=0.707, rel="log", col="red"),
-                cpopup(name="prefilttype", label="Pre Filter Type", init="Highpass", col="green", value=["Lowpass","Highpass","Bandpass","Bandstop"]),
-                cpopup(name="postfilttype", label="Post Filter Type", init="Lowpass", col="red", value=["Lowpass","Highpass","Bandpass","Bandstop"]),
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
+                cslider(name="prefiltf", label="Pre Filter Freq", min=100, max=18000, init=250, rel="log", unit="Hz", col="green1"),
+                cslider(name="prefiltq", label="Pre Filter Q", min=.5, max=10, init=0.707, rel="log", col="green2"),
+                cslider(name="pregain", label="Pre Gain", min=-48, max=18, init=0, rel="lin", col="blue2"),
+                cslider(name="drv", label="Drive", min=0.5, max=1, init=.9, rel="lin", col="purple1"),
+                cslider(name="cut", label="Post Filter Freq", min=100, max=18000, init=5000, rel="log", col="green3"),
+                cslider(name="q", label="Post Filter Q", min=.5, max=10, init=0.707, rel="log", col="green4"),
+                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue1"),
+                cpopup(name="prefilttype", label="Pre Filter Type", init="Highpass", col="green1", value=["Lowpass","Highpass","Bandpass","Bandstop"]),
+                cpopup(name="postfilttype", label="Post Filter Type", init="Lowpass", col="green3", value=["Lowpass","Highpass","Bandpass","Bandstop"]),
                 cpopup(name="balance", label = "Balance", init= "Off", col="blue", value=["Off","Compress", "Source"]),
+                cpoly()
             ]
 
 
@@ -608,6 +631,8 @@ CECILIA_PRESETS = {u'01-Hendrix': {'active': False,
                                                      [0.99809523809523815, 0.36095590432568753],
                                                      [1.0, 0.49999999999999656]]},
                                'prefiltq': {'curved': False, 'data': [[0.0, 0.11563869392888107], [1.0, 0.11563869392888107]]},
+                               'pregrain': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                               'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
                                'q': {'curved': False, 'data': [[0.0, 0.11563869392888107], [1.0, 0.11563869392888107]]},
                                'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
                                'sndgain': {'curved': False, 'data': [[0.0, 0], [1.0, 0]]},
@@ -632,6 +657,8 @@ CECILIA_PRESETS = {u'01-Hendrix': {'active': False,
                                  'drv': [0.99102209944751385, 0, None, 1],
                                  'prefiltf': [2074.6226104458983, 1, None, 1],
                                  'prefiltq': [2.3990209967717449, 0, None, 1],
+                                 'pregain': [0.0, 0, None, 1],
+                                 'drywet': [1.0, 0, None, 1],
                                  'q': [0.84915379947084502, 0, None, 1]},
                  'userTogglePopups': {'polynum': 0, 'polyspread': 0.001, 'postfilttype': 0, 'prefilttype': 1}},
  u'02-Bass Torture': {'active': False,
@@ -646,6 +673,8 @@ CECILIA_PRESETS = {u'01-Hendrix': {'active': False,
                                     'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
                                     'prefiltf': {'curved': False, 'data': [[0.0, 0.1334783246737592], [1.0, 0.1334783246737592]]},
                                     'prefiltq': {'curved': False, 'data': [[0.0, 0.11563869392888107], [1.0, 0.11563869392888107]]},
+                                    'pregrain': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                    'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
                                     'q': {'curved': False, 'data': [[0.0, 0.11563869392888107], [1.0, 0.11563869392888107]]},
                                     'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
                                     'sndgain': {'curved': False, 'data': [[0.0, 0], [1.0, 0]]},
@@ -670,6 +699,8 @@ CECILIA_PRESETS = {u'01-Hendrix': {'active': False,
                                       'drv': [0.9799723756906078, 0, None, 1],
                                       'prefiltf': [117.09285088442927, 0, None, 1],
                                       'prefiltq': [10.0, 0, None, 1],
+                                        'pregain': [0.0, 0, None, 1],
+                                        'drywet': [1.0, 0, None, 1],
                                       'q': [0.70781251279098312, 0, None, 1]},
                       'userTogglePopups': {'polynum': 0, 'polyspread': 0.001, 'postfilttype': 0, 'prefilttype': 0}},
  u'03-Tube Warmer': {'active': False,
@@ -684,6 +715,8 @@ CECILIA_PRESETS = {u'01-Hendrix': {'active': False,
                                    'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
                                    'prefiltf': {'curved': False, 'data': [[0.0, 0.1334783246737592], [1.0, 0.1334783246737592]]},
                                    'prefiltq': {'curved': False, 'data': [[0.0, 0.11563869392888107], [1.0, 0.11563869392888107]]},
+                                    'pregrain': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                    'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
                                    'q': {'curved': False, 'data': [[0.0, 0.11563869392888107], [1.0, 0.11563869392888107]]},
                                    'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
                                    'sndgain': {'curved': False, 'data': [[0.0, 0], [1.0, 0]]},
@@ -708,6 +741,8 @@ CECILIA_PRESETS = {u'01-Hendrix': {'active': False,
                                      'drv': [0.59999999999999998, 0, None, 1],
                                      'prefiltf': [135.1545669789185, 0, None, 1],
                                      'prefiltq': [0.94952287451195572, 0, None, 1],
+                                        'pregain': [0.0, 0, None, 1],
+                                        'drywet': [1.0, 0, None, 1],
                                      'q': [0.79147519822632584, 0, None, 1]},
                      'userTogglePopups': {'polynum': 0, 'polyspread': 0.001, 'postfilttype': 0, 'prefilttype': 1}},
  u'04-Rising Harmonics': {'active': False,
@@ -722,6 +757,8 @@ CECILIA_PRESETS = {u'01-Hendrix': {'active': False,
                                         'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
                                         'prefiltf': {'curved': True, 'data': [[0.0, 0.0], [1.0, 0.51911483083906673]]},
                                         'prefiltq': {'curved': False, 'data': [[0.0, 0.11563869392888107], [1.0, 0.11563869392888107]]},
+                                        'pregrain': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                        'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
                                         'q': {'curved': False, 'data': [[0.0, 0.11563869392888107], [1.0, 0.11563869392888107]]},
                                         'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
                                         'sndgain': {'curved': False, 'data': [[0.0, 0], [1.0, 0]]},
@@ -746,6 +783,8 @@ CECILIA_PRESETS = {u'01-Hendrix': {'active': False,
                                           'drv': [0.99980566079618483, 1, None, 1],
                                           'prefiltf': [1481.6365457150439, 1, None, 1],
                                           'prefiltq': [10.0, 0, None, 1],
+                                            'pregain': [0.0, 0, None, 1],
+                                            'drywet': [1.0, 0, None, 1],
                                           'q': [0.78495236951062186, 0, None, 1]},
                           'userTogglePopups': {'polynum': 0, 'polyspread': 0.001, 'postfilttype': 0, 'prefilttype': 2}},
  u'05-Return to Normality': {'active': True,
@@ -760,6 +799,8 @@ CECILIA_PRESETS = {u'01-Hendrix': {'active': False,
                                            'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
                                            'prefiltf': {'curved': True, 'data': [[0.0, 0.0], [1.0, 1.0000000000000002]]},
                                            'prefiltq': {'curved': False, 'data': [[0.0, 1.0], [1.0, 0.11563869392888107]]},
+                                            'pregrain': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                            'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
                                            'q': {'curved': False, 'data': [[0.0, 0.11563869392888107], [1.0, 0.11563869392888107]]},
                                            'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
                                            'sndgain': {'curved': False, 'data': [[0.0, 0], [1.0, 0]]},
@@ -784,5 +825,7 @@ CECILIA_PRESETS = {u'01-Hendrix': {'active': False,
                                              'drv': [0.56985071806476584, 1, None, 1],
                                              'prefiltf': [17151.772740774024, 1, None, 1],
                                              'prefiltq': [2.0052454459517377, 1, None, 1],
+                                            'pregain': [0.0, 0, None, 1],
+                                            'drywet': [1.0, 0, None, 1],
                                              'q': [0.70699999999999996, 0, None, 1]},
                              'userTogglePopups': {'polynum': 0, 'polyspread': 0.001, 'postfilttype': 0, 'prefilttype': 0}}}
\ No newline at end of file
diff --git a/Resources/modules/Dynamics/DynamicsProcessor.c5 b/Resources/modules/Dynamics/DynamicsProcessor.c5
index 103ba4c..1170490 100644
--- a/Resources/modules/Dynamics/DynamicsProcessor.c5
+++ b/Resources/modules/Dynamics/DynamicsProcessor.c5
@@ -1,37 +1,60 @@
 class Module(BaseModule):
     """
-    Compression and gate module
+    "Dynamic compression and gate module"
     
-    Sliders under the graph:
+    Description
     
-        - Input Gain : Adjust the amount of signal sent to the processing chain
-        - Compression Thresh : dB value at which the compressor becomes active
-        - Compression Rise Time : Time taken by the compressor to reach compression ratio
-        - Compression Fall Time : Time taken by the compressor to reach uncompressed state
-        - Compression Knee : Steepness of the compression curve
-        - Gate Thresh : dB value at which the gate becomes active
-        - Gate Slope : Shape of the gate (rise time and fall time)
-        - Output Gain : Makeup gain applied after the processing chain
+    This module can be used to adjust the dynamic range of a signal by applying a compressor
+    followed by a gate.
+
+    Sliders
+    
+        # Input Gain : 
+            Adjust the amount of signal sent to the processing chain
+        # Comp Thresh : 
+            dB value at which the compressor becomes active
+        # Comp Rise Time : 
+            Time taken by the compressor to reach compression ratio
+        # Comp Fall Time : 
+            Time taken by the compressor to reach uncompressed state
+        # Comp Knee : 
+            Steepness of the compression curve
+        # Gate Thresh : 
+            dB value at which the gate becomes active
+        # Gate Rise Time : 
+            Time taken to open the gate
+        # Gate Fall Time : 
+            Time taken to close the gate
+        # Output Gain : 
+            Makeup gain applied after the processing chain
+
+    Graph Only
     
-    Dropdown menus, toggles and sliders on the bottom left:
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
     
-        - Compression Ratio : Ratio between the compressed signal and the uncompressed signal
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+    Popups & Toggles
     
-    Graph only parameters :
+        # Compression Ratio : 
+            Ratio between the compressed signal and the uncompressed signal
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
     """
     def __init__(self):
         BaseModule.__init__(self)
         self.snd = self.addSampler("snd")
         self.crank = Sig(self.snd, mul=DBToA(self.inputgain))
-        self.comp = Compress(input=self.crank, thresh=self.compthresh, ratio=1, risetime=self.comprise, falltime=self.compfall, lookahead=5,
-                                knee=self.compknee, outputAmp=False, mul=1)
-        self.gate = Gate(input=self.comp , thresh=self.gatethresh, risetime=self.gateslope, falltime=self.gateslope, lookahead=5.00, outputAmp=False, mul=1)
-        self.out = self.gate*DBToA(self.outputgain)*self.env
-        
+        self.comp = Compress(input=self.crank, thresh=self.compthresh, ratio=1, risetime=self.comprise, 
+                            falltime=self.compfall, lookahead=5, knee=self.compknee.get(), outputAmp=False, mul=1)
+        self.gate = Gate(input=self.comp , thresh=self.gatethresh, risetime=self.gaterise, 
+                        falltime=self.gatefall, lookahead=5.00, outputAmp=False, mul=DBToA(self.outputgain))
+        self.out = self.gate*self.env
+
         #INIT
         self.compratio(self.compratio_index, self.compratio_value)
 
@@ -39,17 +62,21 @@ class Module(BaseModule):
         ratioList = [0.25,0.5,1,2,3,5,8,13,21,34,55,100]
         self.comp.ratio = ratioList[index]
     
+    def compknee_up(self, value):
+        self.comp.knee = value
+
 Interface = [   csampler(name="snd"), 
-                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
-                cslider(name="inputgain", label="Input Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="blue"),
-                cslider(name="compthresh", label="Compress Thresh", min=-60, max=-0.1, init=-20, rel="lin", unit="dB", col="orange"),
-                cslider(name="comprise", label="Compress Rise Time", min=0.01, max=1, init=0.01, rel="lin", unit="sec", col="orange"),
-                cslider(name="compfall", label="Compress Fall Time", min=0.01, max=1, init=0.1, rel="lin", unit="sec", col="orange"),
-                cslider(name="compknee", label="Compress Knee", min=0, max=1, init=0, rel="lin", unit="x", col="orange"),
-                cslider(name="gatethresh", label="Gate Thresh", min=-80, max=-0.1, init=-60, rel="lin", unit="dB", col="grey"),
-                cslider(name="gateslope", label="Gate Slope", min=0.01, max=1, init=0.05, rel="lin", unit="x", col="grey"),
-                cslider(name="outputgain", label="Output Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="blue"),
-                cpopup(name="compratio", label="Compress Ratio", init="1:1", col="orange", value=["0.25:1", "0.5:1", "1:1", "2:1", "3:1", "5:1", "8:1", "13:1", "21:1",
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
+                cslider(name="inputgain", label="Input Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="blue1"),
+                cslider(name="compthresh", label="Comp Thresh", min=-60, max=-0.1, init=-20, rel="lin", unit="dB", col="orange1"),
+                cslider(name="comprise", label="Comp Rise Time", min=0.01, max=1, init=0.01, rel="lin", unit="sec", col="orange2"),
+                cslider(name="compfall", label="Comp Fall Time", min=0.01, max=1, init=0.1, rel="lin", unit="sec", col="orange3"),
+                cslider(name="gatethresh", label="Gate Thresh", min=-80, max=-0.1, init=-60, rel="lin", unit="dB", col="green1"),
+                cslider(name="gaterise", label="Gate Rise Time", min=0.01, max=1, init=0.01, rel="lin", unit="x", col="green2"),
+                cslider(name="gatefall", label="Gate Fall Time", min=0.01, max=1, init=0.1, rel="lin", unit="x", col="green3"),
+                cslider(name="compknee", label="Comp Knee", min=0, max=1, init=0.5, rel="lin", unit="x", up=True, col="orange4"),
+                cslider(name="outputgain", label="Output Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="blue1"),
+                cpopup(name="compratio", label="Comp Ratio", init="1:1", col="orange1", value=["0.25:1", "0.5:1", "1:1", "2:1", "3:1", "5:1", "8:1", "13:1", "21:1",
                         "34:1", "55:1", "100:1"]),
                 cpoly()
           ]
@@ -72,7 +99,8 @@ CECILIA_PRESETS = {u'01-Drum Slicer': {'gainSlider': 0.0,
                                    'comprise': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
                                    'compthresh': {'curved': False, 'data': [[0.0, 0.667779632721202], [1.0, 0.667779632721202]]},
                                    'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                   'gateslope': {'curved': False, 'data': [[0.0, 0.040404040404040407], [1.0, 0.040404040404040407]]},
+                                   'gaterise': {'curved': False, 'data': [[0.0, 0.040404040404040407], [1.0, 0.040404040404040407]]},
+                                   'gatefall': {'curved': False, 'data': [[0.0, 0.040404040404040407], [1.0, 0.040404040404040407]]},
                                    'gatethresh': {'curved': False, 'data': [[0.0, 0.25031289111389232], [1.0, 0.25031289111389232]]},
                                    'inputgain': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
                                    'outputgain': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
@@ -99,7 +127,8 @@ CECILIA_PRESETS = {u'01-Drum Slicer': {'gainSlider': 0.0,
                                      'compknee': [0.080000000000000002, 0, None, 1],
                                      'comprise': [0.01, 0, None, 1],
                                      'compthresh': [-15.0, 0, None, 1],
-                                     'gateslope': [0.029999999999999999, 0, None, 1],
+                                     'gaterise': [0.029999999999999999, 0, None, 1],
+                                     'gatefall': [0.029999999999999999, 0, None, 1],
                                      'gatethresh': [-38.0, 0, None, 1],
                                      'inputgain': [0.0, 0, None, 1],
                                      'outputgain': [0.0, 0, None, 1]},
@@ -115,7 +144,8 @@ CECILIA_PRESETS = {u'01-Drum Slicer': {'gainSlider': 0.0,
                                 'comprise': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
                                 'compthresh': {'curved': False, 'data': [[0.0, 0.667779632721202], [1.0, 0.667779632721202]]},
                                 'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                'gateslope': {'curved': False, 'data': [[0.0, 0.040404040404040407], [1.0, 0.040404040404040407]]},
+                                'gaterise': {'curved': False, 'data': [[0.0, 0.040404040404040407], [1.0, 0.040404040404040407]]},
+                                'gatefall': {'curved': False, 'data': [[0.0, 0.040404040404040407], [1.0, 0.040404040404040407]]},
                                 'gatethresh': {'curved': False, 'data': [[0.0, 0.25031289111389232], [1.0, 0.25031289111389232]]},
                                 'inputgain': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
                                 'outputgain': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
@@ -142,7 +172,8 @@ CECILIA_PRESETS = {u'01-Drum Slicer': {'gainSlider': 0.0,
                                   'compknee': [1.0, 0, None, 1],
                                   'comprise': [0.03187845303867403, 0, None, 1],
                                   'compthresh': [-35.510497237569062, 0, None, 1],
-                                  'gateslope': [1.0, 0, None, 1],
+                                  'gaterise': [1.0, 0, None, 1],
+                                  'gatefall': [1.0, 0, None, 1],
                                   'gatethresh': [-80.0, 0, None, 1],
                                   'inputgain': [0.0, 0, None, 1],
                                   'outputgain': [18.0, 0, None, 1]},
@@ -158,7 +189,8 @@ CECILIA_PRESETS = {u'01-Drum Slicer': {'gainSlider': 0.0,
                                       'comprise': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
                                       'compthresh': {'curved': False, 'data': [[0.0, 0.667779632721202], [1.0, 0.667779632721202]]},
                                       'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                      'gateslope': {'curved': False, 'data': [[0.0, 0.040404040404040407], [1.0, 0.040404040404040407]]},
+                                      'gaterise': {'curved': False, 'data': [[0.0, 0.040404040404040407], [1.0, 0.040404040404040407]]},
+                                      'gatefall': {'curved': False, 'data': [[0.0, 0.040404040404040407], [1.0, 0.040404040404040407]]},
                                       'gatethresh': {'curved': False,
                                                      'data': [[0.0, 0.9732620320855615],
                                                               [0.005208333333333333, 0.9732620320855615],
@@ -569,7 +601,8 @@ CECILIA_PRESETS = {u'01-Drum Slicer': {'gainSlider': 0.0,
                                         'compknee': [0.0, 0, None, 1],
                                         'comprise': [0.42842541436464088, 0, None, 1],
                                         'compthresh': [-30.0, 0, None, 1],
-                                        'gateslope': [0.01, 0, None, 1],
+                                        'gaterise': [0.01, 0, None, 1],
+                                        'gatefall': [0.01, 0, None, 1],
                                         'gatethresh': [-30.489752224527159, 1, None, 1],
                                         'inputgain': [0.0, 0, None, 1],
                                         'outputgain': [0.0, 0, None, 1]},
diff --git a/Resources/modules/Dynamics/FeedbackLooper.c5 b/Resources/modules/Dynamics/FeedbackLooper.c5
new file mode 100644
index 0000000..4cb69db
--- /dev/null
+++ b/Resources/modules/Dynamics/FeedbackLooper.c5
@@ -0,0 +1,64 @@
+class Module(BaseModule):
+    """
+    "Frequency self-modulated sound looper"
+    
+    Description
+    
+    This module loads a sound in a table and apply a frequency self-modulated
+    playback of the content. A Frequency self-modulation occurs when the
+    output sound of the playback is used to modulate the reading pointer speed.
+    That produces new harmonics in a way similar to waveshaping distortion. 
+
+    Sliders
+    
+        # Transposition : 
+                Transposition, in cents, of the input sound
+        # Feedback : 
+                Amount of self-modulation in sound playback
+        # Filter Frequency : 
+                Frequency, in Hertz, of the filter
+        # Filter Q : 
+                Q of the filter (inverse of the bandwidth)
+    
+    Graph Only
+    
+        # Overall Amplitude : 
+                The amplitude curve applied on the total duration of the performance
+
+    Popups & Toggles
+    
+        # Filter Type : 
+                Type of the filter
+        # Polyphony Voices : 
+                Number of voices played simultaneously (polyphony), 
+                only available at initialization time
+        # Polyphony Chords : 
+                Pitch interval between voices (chords), 
+                only available at initialization time
+
+    """
+    def __init__(self):
+        BaseModule.__init__(self)
+        self.snd = self.addFilein("snd")
+        self.trfactor = CentsToTranspo(self.transpo, mul=self.polyphony_spread)
+        self.freq = Sig(self.trfactor, mul=self.snd.getRate())
+        self.dry = Osc(self.snd, self.freq, mul=self.polyphony_scaling * 0.5)
+        self.dsp = OscLoop(self.snd, self.freq, self.feed*0.0002, mul=self.polyphony_scaling * 0.5)
+        self.mix = self.dsp.mix(self.nchnls)
+        self.filt = Biquad(self.mix, freq=self.filt_f, q=self.filt_q, type=self.filt_t_index)
+        self.out = Interp(self.dry, self.filt, self.drywet, mul=self.env)
+
+    def filt_t(self, index, value):
+        self.filt.type = index
+
+Interface = [
+    cfilein(name="snd"),
+    cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
+    cslider(name="transpo", label="Transposition", min=-4800, max=4800, init=0, unit="cnts", col="red1"),
+    cslider(name="feed", label="Feedback", min=0, max=1, init=0.25, unit="x", col="purple1"),
+    cslider(name="filt_f", label="Filter Frequency", min=20, max=18000, init=10000, rel="log", unit="Hz", col="green1"),
+    cslider(name="filt_q", label="Filter Q", min=0.5, max=25, init=1, rel="log", unit="x", col="green2"),
+    cpopup(name="filt_t", label="Filter Type", init="Lowpass", value=["Lowpass", "Highpass", "Bandpass", "Bandreject"], col="green1"),
+    cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue1"),
+    cpoly()
+]
diff --git a/Resources/modules/Dynamics/WaveShaper.c5 b/Resources/modules/Dynamics/WaveShaper.c5
index a71c73c..ea90302 100644
--- a/Resources/modules/Dynamics/WaveShaper.c5
+++ b/Resources/modules/Dynamics/WaveShaper.c5
@@ -1,39 +1,54 @@
 class Module(BaseModule):
     """
-    Waveshaping module
+    "Table lookup waveshaping module"
 
-    Sliders under the graph:
+    Description
+
+    This module applies a waveshaping-based distortion on the input sound. 
+    It allows the user to draw the transfert function on the screen.
     
-        - Filter Freq : Center frequency of the filter
-        - Filter Q : Q factor of the filter
+    Sliders
     
-    Dropdown menus, toggles and sliders on the bottom left:
+        # Filter Freq : 
+            Center frequency of the post-process filter
+        # Filter Q : 
+            Q factor of the post-process filter
     
-        - Filter Type : Type of filter
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+    Graph Only
     
-    Graph only parameters :
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+        # Transfer Function : 
+            Table used as transfert function for waveshaping
+
+    Popups & Toggles
     
-        - Transfer Function : Table used for waveshaping
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
+        # Filter Type : 
+            Type of the post-process filter
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+
     """
     def __init__(self):
         BaseModule.__init__(self)
         self.snd = self.addSampler("snd")
         self.lookup = Lookup(self.function, self.snd)
-        self.lookdc = DCBlock(self.lookup)
-        self.out = Biquadx(self.lookdc, freq=self.cut, q=self.filterq, type=self.filttype_index, stages=4, mul=0.4*self.env)
+        self.lookdc = DCBlock(self.lookup, mul=0.4)
+        self.out = Biquadx(self.lookdc, freq=self.cut, q=self.filterq, type=self.filttype_index, stages=3, mul=self.env)
         
     def filttype(self, index, value):
         self.out.type = index
 
 Interface = [   csampler(name="snd"),
-                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"), 
-                cgraph(name="function", label="Transfer Function", func=[(0,1),(0.5,1),(0.501,0),(1,0)], table=True, col="blue"),
-                cslider(name="cut", label="Filter Freq", min=100, max=18000, init=7000, rel="log", unit="Hz", col="green"),
-                cslider(name="filterq", label="Filter Q", min=0.5, max=10, init=0.707, rel="log", unit="Q", col="forestgreen"),
-                cpopup(name="filttype", label="Filter Type", init="Lowpass", col="green", value=["Lowpass","Highpass","Bandpass","Bandstop"]),
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"), 
+                cgraph(name="function", label="Transfer Function", func=[(0,1),(0.5,1),(0.501,0),(1,0)], table=True, col="orange1"),
+                cslider(name="cut", label="Filter Freq", min=100, max=18000, init=7000, rel="log", unit="Hz", col="green1"),
+                cslider(name="filterq", label="Filter Q", min=0.5, max=10, init=0.707, rel="log", unit="Q", col="green2"),
+                cpopup(name="filttype", label="Filter Type", init="Lowpass", col="green1", value=["Lowpass","Highpass","Bandpass","Bandstop"]),
                 cpoly()
             ]
 
diff --git a/Resources/modules/Filters/AMFMFilter.c5 b/Resources/modules/Filters/AMFMFilter.c5
index 6a853ee..13d2074 100644
--- a/Resources/modules/Filters/AMFMFilter.c5
+++ b/Resources/modules/Filters/AMFMFilter.c5
@@ -1,34 +1,62 @@
 class Module(BaseModule):
     """
-    FM modified filter module
+    "AM/FM modulated filter"
+
+    Description
+    
+    The input sound is filtered by a variable type modulated filter.
+    Speed, depth and shape can be modified for both AM and FM modulators.
     
-    Sliders under the graph:
+    Sliders
     
-        - Filter Freq : Center frequency of the filter
-        - Resonance : Q factor of the filter
-        - Mod Depth : Amplitude of the LFO
-        - Mod Freq : Speed of the LFO
-        - Dry / Wet : Mix between the original signal and the filtered signal
+        # Filter Mean Freq : 
+            Mean frequency of the filter
+        # Resonance : 
+            Q factor of the filter
+        # AM Depth : 
+            Amplitude of the amplitude modulator
+        # AM Freq : 
+            Speed, in Hz, of the amplitude modulator 
+        # FM Depth : 
+            Amplitude of the frequency modulator
+        # FM Freq : 
+            Speed, in Hz, of the frequency modulator 
+        # Mod Sharpness :
+            Sharpness of waveforms used as modulators
+        # Dry / Wet : 
+            Mix between the original signal and the filtered signal
     
-    Dropdown menus, toggles and sliders on the bottom left:
+    Graph Only
     
-        - Filter Type : Type of filter
-        - Mod Type : LFO shape
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+
+    Popups & Toggles
     
-    Graph only parameters :
+        # Filter Type : 
+            Type of filter
+        # AM Mod Type : 
+            Shape of the amplitude modulator
+        # FM Mod Type : 
+            Shape of the frequency modulator
+        # Balance :
+            Compression mode. Off, balanced with a fixed signal
+            or balanced with the input source.
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
     """
     def __init__(self):
         BaseModule.__init__(self)
         self.snd = self.addSampler("snd")
-        self.lfomodAM = LFO(freq=self.modfreqAM, sharp=1, type=self.modtypeAM_index, mul=0.5, add=0.5)
-        self.lfomodAMPort = Port(self.lfomodAM,risetime=0.001,falltime=0.001)
-        self.lfomodFM = LFO(freq=self.modfreqFM, sharp=1, type=self.modtypeFM_index, mul=0.5, add=0.5)
+        self.lfomodAM = LFO(freq=self.modfreqAM, sharp=self.modSharp, type=self.modtypeAM_index, mul=0.5, add=0.5)
+        self.lfomodFM = LFO(freq=self.modfreqFM, sharp=self.modSharp, type=self.modtypeFM_index, mul=0.5, add=0.5)
         self.filt = Biquadx(input=self.snd, freq=self.centerfreq*(self.lfomodFM*(self.moddepthFM*2)+(1-self.moddepthFM))+50, q=self.filterq,
-                                type=self.filttype_index, stages=2, mul=0.7 *(self.lfomodAMPort*self.moddepthAM+(1-self.moddepthAM)))
+                                type=self.filttype_index, stages=2, mul=0.7 *(self.lfomodAM*self.moddepthAM+(1-self.moddepthAM)))
         self.deg = Interp(self.snd, self.filt, self.drywet, mul=self.env)
 
         self.osc = Sine(10000,mul=.1)
@@ -58,20 +86,21 @@ class Module(BaseModule):
             self.balanced.input2 = self.snd
             
 Interface = [   csampler(name="snd"), 
-                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
-                cslider(name="centerfreq", label="Filter Freq", min=20, max=20000, init=2000, rel="log", unit="Hz", col="forestgreen"),
-                cslider(name="filterq", label="Resonance", min=0.5, max=10, init=0.707, rel="lin", unit="Q", col="olivegreen"),
-                cslider(name="moddepthAM", label="AM Depth", min=0.001, max=1, init=0.5, rel="lin", unit="x", col="tan", half=True),
-                cslider(name="moddepthFM", label="FM Depth", min=0.001, max=1, init=0.85, rel="lin", unit="x", col="marineblue", half=True),
-                cslider(name="modfreqAM", label="AM Freq", min=0.01, max=2000, init=1, rel="log", unit="Hz", col="tan", half=True),
-                cslider(name="modfreqFM", label="FM Freq", min=0.01, max=2000, init=10, rel="log", unit="Hz", col="marineblue", half=True),
-                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="lightblue"),
-                cpopup(name="filttype", label="Filter Type", init="Bandpass", col="chorusyellow", value=["Lowpass","Highpass","Bandpass","Bandstop"]),
-                cpopup(name="modtypeFM", label="FM Mod Type", init="Saw Up", col="grey", value=["Saw Up", "Saw Down", "Square", "Triangle", "Pulse", "Bipolar Pulse",
-                            "Sample&Hold", "Modulated Sine"]),
-                cpopup(name="modtypeAM", label="AM Mod Type", init="Triangle", col="grey", value=["Saw Up", "Saw Down", "Square", "Triangle", "Pulse", "Bipolar Pulse",
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
+                cslider(name="centerfreq", label="Filter Mean Freq", min=20, max=20000, init=2000, rel="log", unit="Hz", col="green1"),
+                cslider(name="filterq", label="Resonance", min=0.5, max=10, init=0.707, rel="lin", unit="Q", col="green2"),
+                cslider(name="moddepthAM", label="AM Depth", min=0.001, max=1, init=0.5, rel="lin", unit="x", col="red1", half=True),
+                cslider(name="moddepthFM", label="FM Depth", min=0.001, max=1, init=0.85, rel="lin", unit="x", col="purple1", half=True),
+                cslider(name="modfreqAM", label="AM Freq", min=0.01, max=2000, init=1, rel="log", unit="Hz", col="red2", half=True),
+                cslider(name="modfreqFM", label="FM Freq", min=0.01, max=2000, init=10, rel="log", unit="Hz", col="purple2", half=True),
+                cslider(name="modSharp", label="Mod Sharpness", min=0, max=1, init=0.5, rel="lin", unit="x", col="orange1"),
+                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue1"),
+                cpopup(name="filttype", label="Filter Type", init="Bandpass", col="green1", value=["Lowpass","Highpass","Bandpass","Bandstop"]),
+                cpopup(name="modtypeAM", label="AM Mod Type", init="Triangle", col="red1", value=["Saw Up", "Saw Down", "Square", "Triangle", "Pulse", "Bipolar Pulse",
                             "Sample and Hold", "Modulated Sine"]),
-                cpopup(name="balance", label = "Balance", init= "Off", col="blue", value=["Off","Compress", "Source"]),
+                cpopup(name="modtypeFM", label="FM Mod Type", init="Saw Up", col="purple1", value=["Saw Up", "Saw Down", "Square", "Triangle", "Pulse", "Bipolar Pulse",
+                            "Sample&Hold", "Modulated Sine"]),
+                cpopup(name="balance", label = "Balance", init= "Off", col="blue1", value=["Off","Compress", "Source"]),
 
                 cpoly()
           ]
diff --git a/Resources/modules/Filters/BrickWall.c5 b/Resources/modules/Filters/BrickWall.c5
index 8d59dc6..d0aec22 100644
--- a/Resources/modules/Filters/BrickWall.c5
+++ b/Resources/modules/Filters/BrickWall.c5
@@ -1,7 +1,44 @@
 class Module(BaseModule):
     """
-    Convolution brickwall lowpass/highpass filter.
+    "Convolution brickwall lowpass/highpass/bandpass/bandstop filter"
     
+    Description
+
+    Convolution filter with a user-defined length sinc kernel. This
+    kind of filters are very CPU expensive but can give quite good
+    stopband attenuation.
+    
+    Sliders
+
+        # Cutoff Frequency :
+            Cutoff frequency, in Hz, of the filter.
+        # Bandwidth :
+            Bandwith, in Hz, of the filter. 
+            Used only by bandpass and pnadstop filters.
+        # Filter Order :
+            Number of points of the filter kernel. A longer kernel means
+            a sharper attenuation (and a higher CPU cost). This value is
+            only available at initialization time.
+
+    Graph Only
+    
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+
+    Popups & Toggles
+
+        # Filter Type :
+            Type of the filter (lowpass, highpass, bandpass, bandstop)
+        # Balance :
+            Compression mode. Off, balanced with a fixed signal
+            or balanced with the input source.
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+
     """
     def __init__(self):
         BaseModule.__init__(self)
@@ -34,11 +71,301 @@ class Module(BaseModule):
 
 Interface = [
     csampler(name="snd"),
-    cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
-    cslider(name="freq", label="Cutoff Frequency", min=20, max=18000, init=1000, rel="log", unit="Hz", col="green"),
-    cslider(name="bw", label="Bandwidth", min=20, max=18000, init=1000, rel="log", unit="Hz", col="green"),
+    cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
+    cslider(name="freq", label="Cutoff Frequency", min=20, max=18000, init=1000, rel="log", unit="Hz", col="green1"),
+    cslider(name="bw", label="Bandwidth", min=20, max=18000, init=1000, rel="log", unit="Hz", col="green2"),
     cslider(name="order", label="Filter Order", min=32, max=1024, init=256, res="int", rel="lin", up=True, col="grey"),
-    cpopup(name="type", label="Label Type", value=["Lowpass", "Highpass","BandStop","BandPass"], init="Lowpass", col="green"),
-    cpopup(name="balance", label = "Balance", init= "Off", col="blue", value=["Off","Compress", "Source"]),
+    cpopup(name="type", label="Filter Type", value=["Lowpass", "Highpass","Bandstop","Bandpass"], init="Lowpass", col="green1"),
+    cpopup(name="balance", label = "Balance", init= "Off", col="blue1", value=["Off","Compress", "Source"]),
     cpoly()
 ]
+
+
+####################################
+##### Cecilia reserved section #####
+#### Presets saved from the app ####
+####################################
+
+
+CECILIA_PRESETS = {u'01-Lowpass Brickwall': {'gainSlider': 0.0,
+                           'nchnls': 2,
+                           'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                       1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                       2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                       3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                           'totalTime': 30.0000000000003,
+                           'userGraph': {'bw': {'curved': False, 'data': [[0.0, 0.5750949689835925], [1.0, 0.5750949689835925]]},
+                                         'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                         'freq': {'curved': False, 'data': [[0.0, 0.5750949689835925], [1.0, 0.5750949689835925]]},
+                                         'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                         'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                         'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                         'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                         'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
+                           'userInputs': {'snd': {'dursnd': 9.008253968253968,
+                                                  'gain': [0.0, False, False, False, None, 1, None, None],
+                                                  'loopIn': [0.0, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                                  'loopMode': 1,
+                                                  'loopOut': [9.008253968253968, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                                  'loopX': [1.0, False, False, False, None, 1, None, None],
+                                                  'mode': 0,
+                                                  'nchnlssnd': 1,
+                                                  'offsnd': 0.0,
+                                                  'path': u'/home/olivier/Dropbox/private/snds/ruisseau.aif',
+                                                  'srsnd': 44100.0,
+                                                  'startFromLoop': 0,
+                                                  'transp': [0.0, False, False, False, None, 1, None, None],
+                                                  'type': 'csampler'}},
+                           'userSliders': {'bw': [1000.000000000001, 0, None, 1, None, None],
+                                           'freq': [1000.000000000001, 0, None, 1, None, None],
+                                           'order': [512, 0, None, 1, None, None]},
+                           'userTogglePopups': {'balance': 0, 'poly': 0, 'polynum': 0, 'type': 0}},
+ u'02-Big Hole': {'gainSlider': 0.0,
+                  'nchnls': 2,
+                  'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                  'totalTime': 30.0000000000003,
+                  'userGraph': {'bw': {'curved': False, 'data': [[0.0, 0.5750949689835925], [1.0, 0.5750949689835925]]},
+                                'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'freq': {'curved': False, 'data': [[0.0, 0.5750949689835925], [1.0, 0.5750949689835925]]},
+                                'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
+                  'userInputs': {'snd': {'dursnd': 9.008253968253968,
+                                         'gain': [0.0, False, False, False, None, 1, None, None],
+                                         'loopIn': [0.0, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                         'loopMode': 1,
+                                         'loopOut': [9.008253968253968, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                         'loopX': [1.0, False, False, False, None, 1, None, None],
+                                         'mode': 0,
+                                         'nchnlssnd': 1,
+                                         'offsnd': 0.0,
+                                         'path': u'/home/olivier/Dropbox/private/snds/ruisseau.aif',
+                                         'srsnd': 44100.0,
+                                         'startFromLoop': 0,
+                                         'transp': [0.0, False, False, False, None, 1, None, None],
+                                         'type': 'csampler'}},
+                  'userSliders': {'bw': [1500.0000000000018, 0, None, 1, None, None],
+                                  'freq': [2000.0000000000002, 0, None, 1, None, None],
+                                  'order': [512, 0, None, 1, None, None]},
+                  'userTogglePopups': {'balance': 0, 'poly': 0, 'polynum': 0, 'type': 2}},
+ u'03-Oscillating Band': {'gainSlider': 0.0,
+                          'nchnls': 2,
+                          'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                      1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                      2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                      3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                          'totalTime': 30.00000000000007,
+                          'userGraph': {'bw': {'curved': False, 'data': [[0.0, 0.5750949689835925], [1.0, 0.5750949689835925]]},
+                                        'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                        'freq': {'curved': False,
+                                                 'data': [[0.0, 0.575927187773776],
+                                                          [0.010101010101010102, 0.6387141845690456],
+                                                          [0.020202020202020204, 0.6974763717988931],
+                                                          [0.030303030303030304, 0.7484469406443041],
+                                                          [0.040404040404040407, 0.7883585452611546],
+                                                          [0.050505050505050511, 0.8146527481347945],
+                                                          [0.060606060606060608, 0.825644022569528],
+                                                          [0.070707070707070718, 0.8206277993274707],
+                                                          [0.080808080808080815, 0.79992563134661],
+                                                          [0.090909090909090925, 0.7648645813623405],
+                                                          [0.10101010101010102, 0.7176921537394685],
+                                                          [0.11111111111111113, 0.6614322236051932],
+                                                          [0.12121212121212122, 0.5996911985998217],
+                                                          [0.13131313131313133, 0.5364268387804385],
+                                                          [0.14141414141414144, 0.4756945539221225],
+                                                          [0.15151515151515152, 0.4213874412186247],
+                                                          [0.16161616161616163, 0.37698672764106783],
+                                                          [0.17171717171717174, 0.34533861424763046],
+                                                          [0.18181818181818185, 0.32847182730354274],
+                                                          [0.19191919191919193, 0.3274675716584624],
+                                                          [0.20202020202020204, 0.34239022270749936],
+                                                          [0.21212121212121213, 0.37228319976119195],
+                                                          [0.22222222222222227, 0.4152302853521412],
+                                                          [0.23232323232323235, 0.4684784597514832],
+                                                          [0.24242424242424243, 0.5286143766836734],
+                                                          [0.25252525252525254, 0.5917831676879173],
+                                                          [0.26262626262626265, 0.6539355491983979],
+                                                          [0.27272727272727276, 0.7110873921376755],
+                                                          [0.28282828282828287, 0.7595751149381594],
+                                                          [0.29292929292929293, 0.7962905286356714],
+                                                          [0.30303030303030304, 0.8188800798546615],
+                                                          [0.3131313131313132, 0.8258957196922448],
+                                                          [0.32323232323232326, 0.8168877274137616],
+                                                          [0.33333333333333337, 0.7924335387198855],
+                                                          [0.34343434343434348, 0.7541007306184915],
+                                                          [0.35353535353535354, 0.7043465356671273],
+                                                          [0.3636363636363637, 0.6463603269841335],
+                                                          [0.37373737373737376, 0.5838591711482928],
+                                                          [0.38383838383838387, 0.5208495545771409],
+                                                          [0.39393939393939398, 0.46137055734192317],
+                                                          [0.40404040404040409, 0.4092349376447028],
+                                                          [0.41414141414141425, 0.36778472411508295],
+                                                          [0.42424242424242425, 0.3396769830951088],
+                                                          [0.43434343434343442, 0.32671349378579034],
+                                                          [0.44444444444444453, 0.32972524952072396],
+                                                          [0.45454545454545459, 0.3485191889351464],
+                                                          [0.4646464646464647, 0.3818905717008368],
+                                                          [0.47474747474747481, 0.4277002055101162],
+                                                          [0.48484848484848486, 0.4830115738586938],
+                                                          [0.49494949494949492, 0.5442790743803387],
+                                                          [0.50505050505050508, 0.6075753011672135],
+                                                          [0.51515151515151525, 0.6688428016888583],
+                                                          [0.5252525252525253, 0.7241541700374361],
+                                                          [0.53535353535353536, 0.7699638038467153],
+                                                          [0.54545454545454553, 0.8033351866124057],
+                                                          [0.55555555555555558, 0.822129126026828],
+                                                          [0.56565656565656575, 0.8251408817617616],
+                                                          [0.5757575757575758, 0.8121773924524429],
+                                                          [0.58585858585858586, 0.784069651432469],
+                                                          [0.59595959595959602, 0.7426194379028486],
+                                                          [0.60606060606060608, 0.6904838182056284],
+                                                          [0.61616161616161624, 0.6310048209704108],
+                                                          [0.62626262626262641, 0.567995204399259],
+                                                          [0.63636363636363646, 0.5054940485634178],
+                                                          [0.64646464646464652, 0.44750783988042425],
+                                                          [0.65656565656565669, 0.3977536449290605],
+                                                          [0.66666666666666674, 0.35942083682766607],
+                                                          [0.6767676767676768, 0.3349666481337905],
+                                                          [0.68686868686868696, 0.3259586558553071],
+                                                          [0.69696969696969702, 0.3329742956928905],
+                                                          [0.70707070707070707, 0.3555638469118806],
+                                                          [0.71717171717171724, 0.3922792606093928],
+                                                          [0.7272727272727274, 0.4407669834098764],
+                                                          [0.73737373737373735, 0.49791882634915463],
+                                                          [0.74747474747474751, 0.5600712078596353],
+                                                          [0.75757575757575779, 0.6232399988638785],
+                                                          [0.76767676767676774, 0.6833759157960687],
+                                                          [0.77777777777777779, 0.7366240901954104],
+                                                          [0.78787878787878796, 0.7795711757863601],
+                                                          [0.7979797979797979, 0.8094641528400527],
+                                                          [0.80808080808080818, 0.8243868038890897],
+                                                          [0.81818181818181823, 0.823382548244009],
+                                                          [0.82828282828282851, 0.8065157612999212],
+                                                          [0.83838383838383845, 0.7748676479064841],
+                                                          [0.84848484848484851, 0.7304669343289275],
+                                                          [0.85858585858585867, 0.676159821625429],
+                                                          [0.86868686868686884, 0.6154275367671133],
+                                                          [0.87878787878787878, 0.5521631769477295],
+                                                          [0.88888888888888906, 0.4904221519423581],
+                                                          [0.89898989898989923, 0.43416222180808295],
+                                                          [0.90909090909090917, 0.38698979418521123],
+                                                          [0.91919191919191934, 0.3519287442009419],
+                                                          [0.92929292929292939, 0.3312265762200811],
+                                                          [0.93939393939393945, 0.3262103529780239],
+                                                          [0.94949494949494961, 0.3372016274127577],
+                                                          [0.95959595959595956, 0.3634958302863972],
+                                                          [0.96969696969696972, 0.40340743490324754],
+                                                          [0.97979797979797978, 0.45437800374865905],
+                                                          [0.98989898989898983, 0.5131401909785063],
+                                                          [1.0, 0.5759271877737756]]},
+                                        'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                        'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                        'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                        'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                        'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
+                          'userInputs': {'snd': {'dursnd': 9.008253968253968,
+                                                 'gain': [0.0, False, False, False, None, 1, None, None],
+                                                 'loopIn': [0.0, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                                 'loopMode': 1,
+                                                 'loopOut': [9.008253968253968, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                                 'loopX': [1.0, False, False, False, None, 1, None, None],
+                                                 'mode': 0,
+                                                 'nchnlssnd': 1,
+                                                 'offsnd': 0.0,
+                                                 'path': u'/home/olivier/Dropbox/private/snds/ruisseau.aif',
+                                                 'srsnd': 44100.0,
+                                                 'startFromLoop': 0,
+                                                 'transp': [0.0, False, False, False, None, 1, None, None],
+                                                 'type': 'csampler'}},
+                          'userSliders': {'bw': [500.00000000000045, 0, None, 1, None, None],
+                                          'freq': [484.8899536132815, 1, None, 1, None, None],
+                                          'order': [512, 0, None, 1, None, None]},
+                          'userTogglePopups': {'balance': 0, 'poly': 0, 'polynum': 0, 'type': 3}},
+ u'04-Moving Window': {'gainSlider': 0.0,
+                       'nchnls': 2,
+                       'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                   1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                   2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                   3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                       'totalTime': 30.00000000000007,
+                       'userGraph': {'bw': {'curved': False,
+                                            'data': [[0.0, 0.38212830675748166],
+                                                     [0.020408163265306117, 0.2725340827994262],
+                                                     [0.040816326530612235, 0.5193406510665025],
+                                                     [0.061224489795918366, 0.4534282797372647],
+                                                     [0.08163265306122447, 0.41707296376104713],
+                                                     [0.1020408163265306, 0.3737219112869469],
+                                                     [0.12244897959183673, 0.45928566996612435],
+                                                     [0.14285714285714285, 0.41610445141269353],
+                                                     [0.16326530612244894, 0.6394452249119473],
+                                                     [0.18367346938775508, 0.479928911276734],
+                                                     [0.2040816326530612, 0.23288782929200932],
+                                                     [0.22448979591836732, 0.6184812650552123],
+                                                     [0.24489795918367346, 0.4583273820129849],
+                                                     [0.26530612244897955, 0.40140140686268894],
+                                                     [0.2857142857142857, 0.6330670712673775],
+                                                     [0.3061224489795918, 0.5788171113960985],
+                                                     [0.3265306122448979, 0.5399559458951878],
+                                                     [0.3469387755102041, 0.20637818734286342],
+                                                     [0.36734693877551017, 0.44027449669349294],
+                                                     [0.3877551020408163, 0.5944856918185024],
+                                                     [0.4081632653061224, 0.4899688883889582],
+                                                     [0.42857142857142855, 0.2680793199188627],
+                                                     [0.44897959183673464, 0.21525548826359836],
+                                                     [0.4693877551020408, 0.27294998402898535],
+                                                     [0.4897959183673469, 0.33118472437588053],
+                                                     [0.5102040816326531, 0.5795231103686824],
+                                                     [0.5306122448979591, 0.5032420910761197],
+                                                     [0.5510204081632654, 0.4569409209374818],
+                                                     [0.5714285714285714, 0.43010780910634006],
+                                                     [0.5918367346938775, 0.2998618630811604],
+                                                     [0.6122448979591836, 0.2746404398899569],
+                                                     [0.6326530612244897, 0.5672272496798647],
+                                                     [0.6530612244897958, 0.37858771911595424],
+                                                     [0.673469387755102, 0.5072333638915175],
+                                                     [0.6938775510204082, 0.4219511695022219],
+                                                     [0.7142857142857142, 0.43772740727699916],
+                                                     [0.7346938775510203, 0.436221086876785],
+                                                     [0.7551020408163264, 0.4954095761380067],
+                                                     [0.7755102040816326, 0.38816415345548155],
+                                                     [0.7959183673469387, 0.35920750857202743],
+                                                     [0.8163265306122448, 0.2610143395702076],
+                                                     [0.836734693877551, 0.44292560229598205],
+                                                     [0.8571428571428571, 0.3096193605155496],
+                                                     [0.8775510204081632, 0.43303881626773727],
+                                                     [0.8979591836734693, 0.38755967628415466],
+                                                     [0.9183673469387754, 0.4714837729935875],
+                                                     [0.9387755102040816, 0.27006387671396925],
+                                                     [0.9591836734693877, 0.3780899830632001],
+                                                     [0.9795918367346939, 0.2479732806111014],
+                                                     [0.9999999999999999, 0.2519882915591845]]},
+                                     'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                     'freq': {'curved': False, 'data': [[0.0, 0.5750949689835926], [1.0, 0.5750949689835926]]},
+                                     'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                     'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                     'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                     'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                     'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
+                       'userInputs': {'snd': {'dursnd': 9.008253968253968,
+                                              'gain': [0.0, False, False, False, None, 1, None, None],
+                                              'loopIn': [0.0, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                              'loopMode': 1,
+                                              'loopOut': [9.008253968253968, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                              'loopX': [1.0, False, False, False, None, 1, None, None],
+                                              'mode': 0,
+                                              'nchnlssnd': 1,
+                                              'offsnd': 0.0,
+                                              'path': u'/home/olivier/Dropbox/private/snds/ruisseau.aif',
+                                              'srsnd': 44100.0,
+                                              'startFromLoop': 0,
+                                              'transp': [0.0, False, False, False, None, 1, None, None],
+                                              'type': 'csampler'}},
+                       'userSliders': {'bw': [110.76757812500006, 1, None, 1, None, None],
+                                       'freq': [1000.000000000001, 0, None, 1, None, None],
+                                       'order': [512, 0, None, 1, None, None]},
+                       'userTogglePopups': {'balance': 0, 'poly': 0, 'polynum': 0, 'type': 2}}}
\ No newline at end of file
diff --git a/Resources/modules/Filters/MaskFilter.c5 b/Resources/modules/Filters/MaskFilter.c5
index 5a341c9..aff2654 100644
--- a/Resources/modules/Filters/MaskFilter.c5
+++ b/Resources/modules/Filters/MaskFilter.c5
@@ -1,28 +1,47 @@
 class Module(BaseModule):
     """
-    Ranged filter module using lowpass and highpass filters
+    "Ranged filter module using lowpass and highpass filters"
+
+    Description
     
-    Sliders under the graph:
+    The signal is first lowpassed and then highpassed to create a bandpass
+    filter with independant lower and higher boundaries. The user can
+    interpolate between two such filters.
+
+    Sliders
     
-        - Filter Limits : Range of the filter (min = lowpass, max = highpass)
+        # Filter 1 Limits : 
+            Range of the first filter (min = highpass, max = lowpass)
+        # Filter 2 Limits : 
+            Range of the second filter (min = highpass, max = lowpass)
+        # Mix :
+            Balance between filter 1 and filter 2
+
+    Graph Only
     
-    Dropdown menus, toggles and sliders on the bottom left:
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
     
-        - Number of Stages : Amount of stacked biquad filters
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+    Popups & Toggles
     
-    Graph only parameters :
+        # Number of Stages : 
+            Amount of stacked biquad filters
+        # Balance :
+            Compression mode. Off, balanced with a fixed signal
+            or balanced with the input source.
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
     """
     def __init__(self):
         BaseModule.__init__(self)
         self.snd = self.addSampler("snd")
-
         self.lp = Biquadx(input=self.snd, freq=self.fultrange[1], q=1, type=0, stages=int(self.filtnum_value), mul=1)
         self.hp = Biquadx(input=self.lp, freq=self.fultrange[0], q=1, type=1, stages=int(self.filtnum_value), mul=0.5*self.env)
-
         self.lp2 = Biquadx(input=self.snd, freq=self.filtrangeCAC[1], q=1, type=0, stages=int(self.filtnum_value), mul=1)
         self.hp2 = Biquadx(input=self.lp2, freq=self.filtrangeCAC[0], q=1, type=1, stages=int(self.filtnum_value), mul=0.5*self.env)
 
@@ -32,7 +51,7 @@ class Module(BaseModule):
         self.balanced2 = Balance(self.hp2, self.osc, freq=10)
         self.out1 = Interp(self.hp, self.balanced1)
         self.out2 = Interp(self.hp2, self.balanced2)
-        self.out = (self.out1*self.mix + self.out2*(1.0-self.mix)) * 0.5
+        self.out = Interp(self.out1, self.out2, self.mix, mul=0.5)
 
 #INIT
         self.balance(self.balance_index, self.balance_value)
@@ -59,12 +78,12 @@ class Module(BaseModule):
             self.balanced2.input2 = self.snd
 
 Interface = [   csampler(name="snd"), 
-                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
-                crange(name="fultrange", label="Filter 1 Limits", min=20, max=20000, init = [100,200], rel="log", unit="Hz", col="green"),
-                crange(name="filtrangeCAC", label="Filter 2 Limits", min=20, max=20000, init = [1000,2000], rel="log", unit="Hz", col="green"),
-                cslider(name="mix", label = "Mix", min=0,max=1,init=0.5,rel="lin", unit="%",col="orange"),
-                cpopup(name="filtnum", label="Number of Stages", init="4", col="orange", value=["1","2","3","4","5","6"]),
-                cpopup(name="balance", label = "Balance", init= "Off", col="blue", value=["Off","Compress", "Source"]),
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
+                crange(name="fultrange", label="Filter 1 Limits", min=20, max=20000, init = [100,200], rel="log", unit="Hz", col="green1"),
+                crange(name="filtrangeCAC", label="Filter 2 Limits", min=20, max=20000, init = [1000,2000], rel="log", unit="Hz", col="green2"),
+                cslider(name="mix", label = "Mix", min=0,max=1,init=0.5,rel="lin", unit="%",col="blue1"),
+                cpopup(name="filtnum", label="Number of Stages", init="4", col="orange1", value=["1","2","3","4","5","6"]),
+                cpopup(name="balance", label = "Balance", init= "Off", col="blue1", value=["Off","Compress", "Source"]),
                 cpoly()
           ]
 
@@ -75,2583 +94,761 @@ Interface = [   csampler(name="snd"),
 ####################################
 
 
-CECILIA_PRESETS = {u'01-Moving Slice': {'active': False,
-                      'gainSlider': 0.0,
-                      'nchnls': 2,
-                      'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
-                                  1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
-                                  2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
-                      'totalTime': 30.000000000000071,
-                      'userGraph': {'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                    'filtrangemax': {'curved': True,
-                                                     'data': [[0.0, 0.68731742364597714],
-                                                              [0.17708229674594481, 0.2721963370719806],
-                                                              [0.30644840282615182, 0.47741323455387913],
-                                                              [0.64578565031346402, 0.67101408123491524],
-                                                              [0.77316150860782173, 0.48644794073232728],
-                                                              [1.0, 0.73541217620258414]]},
-                                    'filtrangemin': {'curved': True,
-                                                     'data': [[0.0, 0.61569799099068045],
-                                                              [0.16912130560254748, 0.23992952929180797],
-                                                              [0.34426311075728921, 0.43869306521767193],
-                                                              [0.6288685441337446, 0.61164315491939758],
-                                                              [0.77515175639367107, 0.44127440984008565],
-                                                              [1.0, 0.7044360407336181]]},
-                                    'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                    'sndgain': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
-                                    'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
-                                    'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
-                                    'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
-                      'userInputs': {'snd': {'dursnd': 5.3334465026855469,
-                                             'gain': [0.0, False, False],
-                                             'gensizesnd': 262144,
-                                             'loopIn': [0.0, False, False],
-                                             'loopMode': 1,
-                                             'loopOut': [5.3334465026855469, False, False],
-                                             'loopX': [1.0, False, False],
-                                             'nchnlssnd': 2,
-                                             'offsnd': 0.0,
-                                             'path': u'/Users/jm/Desktop/Dropbox/Maitrise/svnBKP/memoire/bub/snds/guitar.wav',
-                                             'srsnd': 44100.0,
-                                             'startFromLoop': 0,
-                                             'transp': [0.0, False, False],
-                                             'type': 'csampler'}},
-                      'userSliders': {'filtrange': [[1847.2304092671259, 2320.8560784296797], 1, None, [1, 1]]},
-                      'userTogglePopups': {'filtnum': 3, 'polynum': 0, 'polyspread': 0.001}},
- u'02-Open Up!': {'active': True,
-                  'gainSlider': 0.0,
-                  'nchnls': 2,
-                  'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
-                              1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
-                              2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
-                  'totalTime': 30.000000000000071,
-                  'userGraph': {'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                'filtrangemax': {'curved': False, 'data': [[0.0, 0.56986624332614866], [1.0, 0.99741865537758645]]},
-                                'filtrangemin': {'curved': False, 'data': [[0.0, 0.56665244316481811], [1.0, 3.2144248885109565e-17]]},
-                                'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                'sndgain': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
-                                'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
-                                'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
-                                'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
-                  'userInputs': {'snd': {'dursnd': 5.3334465026855469,
-                                         'gain': [0.0, False, False],
-                                         'gensizesnd': 262144,
-                                         'loopIn': [0.0, False, False],
-                                         'loopMode': 1,
-                                         'loopOut': [5.3334465026855469, False, False],
-                                         'loopX': [1.0, False, False],
-                                         'nchnlssnd': 2,
-                                         'offsnd': 0.0,
-                                         'path': u'/Users/jm/Desktop/Dropbox/Maitrise/svnBKP/memoire/bub/snds/guitar.wav',
-                                         'srsnd': 44100.0,
-                                         'startFromLoop': 0,
-                                         'transp': [0.0, False, False],
-                                         'type': 'csampler'}},
-                  'userSliders': {'filtrange': [[21.895503093250564, 19610.600292032068], 1, None, [1, 1]]},
-                  'userTogglePopups': {'filtnum': 3, 'polynum': 0, 'polyspread': 0.001}},
- u'03-Mid Tunnel': {'gainSlider': 0.0,
-                    'nchnls': 2,
-                    'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
-                                1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
-                                2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
-                    'totalTime': 30.000000000000135,
-                    'userGraph': {'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                  'filtrangemax': {'curved': False,
-                                                   'data': [[0.0, 1.0],
-                                                            [0.02084784555677175, 0.72393164599439863],
-                                                            [0.16713105781669813, 0.56646962402715595],
-                                                            [0.3333167479351179, 0.72651299061681229],
-                                                            [0.49950243805353767, 0.56776029633836267],
-                                                            [0.66568812817195755, 0.72909433523922607],
-                                                            [0.83286894218330187, 0.56905096864956961],
-                                                            [1.0, 0.726377470024136]]},
-                                  'filtrangemin': {'curved': False,
-                                                   'data': [[0.0, 3.2144248885109565e-17],
-                                                            [0.026818588914319774, 0.38964751739180947],
-                                                            [0.1691213056025474, 0.56388827940474195],
-                                                            [0.3333167479351179, 0.38835684508060248],
-                                                            [0.49950243805353767, 0.56130693478232807],
-                                                            [0.66767837595780666, 0.38835684508060248],
-                                                            [0.83386406607622654, 0.56388827940474195],
-                                                            [1.0, 0.38849236567327944]]},
-                                  'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                  'sndgain': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
-                                  'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
-                                  'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
-                                  'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
-                    'userInputs': {'snd': {'dursnd': 5.3334465026855469,
-                                           'gain': [0.0, False, False],
-                                           'gensizesnd': 262144,
-                                           'loopIn': [0.0, False, False],
-                                           'loopMode': 1,
-                                           'loopOut': [5.3334465026855469, False, False],
-                                           'loopX': [1.0, False, False],
-                                           'nchnlssnd': 2,
-                                           'offsnd': 0.0,
-                                           'path': u'/Users/jm/Desktop/Dropbox/Maitrise/svnBKP/memoire/bub/snds/guitar.wav',
-                                           'srsnd': 44100.0,
-                                           'startFromLoop': 0,
-                                           'transp': [0.0, False, False],
-                                           'type': 'csampler'}},
-                    'userSliders': {'filtrange': [[300.77782404124252, 2997.9798884480952], 1, None, [1, 1]]},
-                    'userTogglePopups': {'filtnum': 3, 'polynum': 0, 'polyspread': 0.001}},
- u'04-Large Auto-Wah': {'gainSlider': 0.0,
-                        'nchnls': 2,
-                        'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
-                                    1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
-                                    2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
-                        'totalTime': 30.000000000000135,
-                        'userGraph': {'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                      'filtrangemax': {'curved': False,
-                                                       'data': [[0.0, 0.60325378489655268],
-                                                                [0.002004008016032064, 0.67765844545718024],
-                                                                [0.0040080160320641279, 0.74531978782668717],
-                                                                [0.0060120240480961915, 0.80010564289902353],
-                                                                [0.0080160320641282558, 0.83705075110117688],
-                                                                [0.01002004008016032, 0.85280676545682466],
-                                                                [0.012024048096192383, 0.84594571334404423],
-                                                                [0.014028056112224447, 0.81708941411089453],
-                                                                [0.016032064128256512, 0.76885312338895984],
-                                                                [0.018036072144288574, 0.70560851163875393],
-                                                                [0.02004008016032064, 0.63308745825724044],
-                                                                [0.022044088176352703, 0.55786256951426938],
-                                                                [0.024048096192384766, 0.48675150114354554],
-                                                                [0.026052104208416832, 0.42619907202228946],
-                                                                [0.028056112224448895, 0.38169316817448556],
-                                                                [0.030060120240480961, 0.35726737390477065],
-                                                                [0.032064128256513023, 0.355135406762428],
-                                                                [0.03406813627254509, 0.37549048761165493],
-                                                                [0.036072144288577149, 0.41648782896282271],
-                                                                [0.038076152304609222, 0.47441182865286996],
-                                                                [0.040080160320641281, 0.54401281605808449],
-                                                                [0.04208416833667334, 0.61898283142227384],
-                                                                [0.044088176352705406, 0.6925273182675955],
-                                                                [0.046092184368737472, 0.75798091622194408],
-                                                                [0.048096192384769532, 0.80941154476194621],
-                                                                [0.050100200400801598, 0.84215802956866348],
-                                                                [0.052104208416833664, 0.85325254624737923],
-                                                                [0.05410821643286573, 0.84168959520199882],
-                                                                [0.056112224448897789, 0.8085171303851354],
-                                                                [0.058116232464929855, 0.75674158289611004],
-                                                                [0.060120240480961921, 0.69105538716856252],
-                                                                [0.062124248496993981, 0.61741170413646662],
-                                                                [0.064128256513026047, 0.54248488435407083],
-                                                                [0.066132264529058113, 0.47306556946982137],
-                                                                [0.068136272545090179, 0.41544525420121126],
-                                                                [0.070140280561122245, 0.37484608615567955],
-                                                                [0.072144288577154297, 0.35494758092220913],
-                                                                [0.074148296593186364, 0.35755314639629904],
-                                                                [0.076152304609218444, 0.38242663934542609],
-                                                                [0.078156312625250496, 0.42731376714575803],
-                                                                [0.080160320641282562, 0.48814639504387419],
-                                                                [0.082164328657314628, 0.55941124251099872],
-                                                                [0.08416833667334668, 0.63464955362120501],
-                                                                [0.086172344689378746, 0.70704245616735184],
-                                                                [0.088176352705410813, 0.7700289582307982],
-                                                                [0.090180360721442879, 0.81790057297806873],
-                                                                [0.092184368737474945, 0.84631868064890592],
-                                                                [0.094188376753507011, 0.85270773905320973],
-                                                                [0.096192384769539063, 0.83648870578372669],
-                                                                [0.098196392785571129, 0.79913151701467522],
-                                                                [0.1002004008016032, 0.74402186671599446],
-                                                                [0.10220440881763526, 0.67615436012565333],
-                                                                [0.10420841683366733, 0.60167985107899413],
-                                                                [0.10621242484969939, 0.52734798815777406],
-                                                                [0.10821643286573146, 0.45989549187976353],
-                                                                [0.11022044088176351, 0.40543560356292324],
-                                                                [0.11222444889779558, 0.36890404030892743],
-                                                                [0.11422845691382764, 0.35361166938314109],
-                                                                [0.11623246492985971, 0.36094444325510305],
-                                                                [0.11823647294589178, 0.39023779028280065],
-                                                                [0.12024048096192384, 0.43883684505320336],
-                                                                [0.1222444889779559, 0.50233705968402498],
-                                                                [0.12424849699398796, 0.57498338940745553],
-                                                                [0.12625250501002003, 0.65019187411869728],
-                                                                [0.12825651302605209, 0.72114634478668915],
-                                                                [0.13026052104208416, 0.78141617503410954],
-                                                                [0.13226452905811623, 0.82553909086332267],
-                                                                [0.13426853707414826, 0.84951621829634794],
-                                                                [0.13627254509018036, 0.85117450260285388],
-                                                                [0.13827655310621242, 0.83036365294560177],
-                                                                [0.14028056112224449, 0.78896976328710744],
-                                                                [0.14228456913827653, 0.73074437509039492],
-                                                                [0.14428857715430859, 0.66096447391595825],
-                                                                [0.14629258517034066, 0.58595423453213502],
-                                                                [0.14829659318637273, 0.51251185893253715],
-                                                                [0.15030060120240479, 0.447293453114401],
-                                                                [0.15230460921843689, 0.3962097820625487],
-                                                                [0.15430861723446893, 0.36389057522776519],
-                                                                [0.15631262525050099, 0.35326493266547015],
-                                                                [0.15831663326653306, 0.3652958597605786],
-                                                                [0.16032064128256512, 0.3988929897413695],
-                                                                [0.16232464929859719, 0.45101140396885037],
-                                                                [0.16432865731462926, 0.51692759388718146],
-                                                                [0.16633266533066132, 0.59066755411529492],
-                                                                [0.16833667334669336, 0.66554820846586438],
-                                                                [0.17034068136272543, 0.73478309927830188],
-                                                                [0.17234468937875749, 0.79209744624774459],
-                                                                [0.17434869739478956, 0.83229683177159641],
-                                                                [0.17635270541082163, 0.85173797267871842],
-                                                                [0.17835671342685369, 0.84865891214883404],
-                                                                [0.18036072144288576, 0.82333870642286],
-                                                                [0.18236472945891782, 0.77807213384651241],
-                                                                [0.18436873747494989, 0.71696171837465927],
-                                                                [0.18637274549098196, 0.64554591651275717],
-                                                                [0.18837675350701402, 0.57029716523182705],
-                                                                [0.19038076152304609, 0.49803528293502364],
-                                                                [0.19238476953907813, 0.43530938713387296],
-                                                                [0.19438877755511019, 0.38780434583291878],
-                                                                [0.19639278557114226, 0.35982555612370198],
-                                                                [0.19839679358717432, 0.3539087446689087],
-                                                                [0.20040080160320639, 0.37059015398367068],
-                                                                [0.20240480961923848, 0.40835794260485664],
-                                                                [0.20440881763527052, 0.46378920376656357],
-                                                                [0.20641282565130259, 0.53186018453541306],
-                                                                [0.20841683366733466, 0.60640159014616624],
-                                                                [0.21042084168336672, 0.68065770916005996],
-                                                                [0.21242484969939879, 0.74789868575387608],
-                                                                [0.21442885771543085, 0.80203044870630702],
-                                                                [0.21643286573146292, 0.83814701902243194],
-                                                                [0.21843687374749496, 0.8529751403796153],
-                                                                [0.22044088176352702, 0.84517093539524912],
-                                                                [0.22244488977955909, 0.81544170166388985],
-                                                                [0.22444889779559116, 0.76648180914997555],
-                                                                [0.22645290581162322, 0.70272850857593072],
-                                                                [0.22845691382765529, 0.62995978196957059],
-                                                                [0.23046092184368736, 0.55477068230435089],
-                                                                [0.23246492985971942, 0.48397562173841208],
-                                                                [0.23446893787575149, 0.42399077926052237],
-                                                                [0.23647294589178355, 0.38025260033558955],
-                                                                [0.23847695390781562, 0.35672509011287018],
-                                                                [0.24048096192384769, 0.35554055437107773],
-                                                                [0.24248496993987975, 0.37680634796346296],
-                                                                [0.24448897795591179, 0.41859514521311753],
-                                                                [0.24649298597194386, 0.47711961405568681],
-                                                                [0.24849699398797592, 0.54707566315605627],
-                                                                [0.25050100200400799, 0.62212315340300572],
-                                                                [0.25250501002004005, 0.69546050674528048],
-                                                                [0.25450901803607212, 0.76044113538642544],
-                                                                [0.25651302605210419, 0.81117582416324197],
-                                                                [0.25851703406813625, 0.84306647200018237],
-                                                                [0.26052104208416832, 0.85322281928091204],
-                                                                [0.26252505010020039, 0.8407243930020275],
-                                                                [0.26452905811623245, 0.80670392953584358],
-                                                                [0.26653306613226452, 0.7542447143705715],
-                                                                [0.26853707414829653, 0.68810114296007774],
-                                                                [0.27054108216432865, 0.61426782834281124],
-                                                                [0.27254509018036072, 0.53943630744425353],
-                                                                [0.27454909819639278, 0.47038858494451902],
-                                                                [0.27655310621242485, 0.41338247802440858],
-                                                                [0.27855711422845691, 0.3735844683922302],
-                                                                [0.28056112224448898, 0.35460146239364781],
-                                                                [0.28256513026052099, 0.35815389593560382],
-                                                                [0.28456913827655306, 0.38391981082965004],
-                                                                [0.28657314629258518, 0.42956403396557102],
-                                                                [0.28857715430861719, 0.49094981479746175],
-                                                                [0.29058116232464926, 0.56251374036918689],
-                                                                [0.29258517034068132, 0.63776994921051477],
-                                                                [0.29458917835671339, 0.70989794703720566],
-                                                                [0.29659318637274545, 0.77236075033009532],
-                                                                [0.29859719438877752, 0.81949733524283241],
-                                                                [0.30060120240480959, 0.84703569800422385],
-                                                                [0.30260521042084165, 0.85248002798677158],
-                                                                [0.30460921843687377, 0.83533690382233594],
-                                                                [0.30661322645290578, 0.79716001233859224],
-                                                                [0.30861723446893785, 0.74140933742476223],
-                                                                [0.31062124248496992, 0.67313758058477058],
-                                                                [0.31262525050100198, 0.59853223298341873],
-                                                                [0.31462925851703405, 0.52435480114253463],
-                                                                [0.31663326653306612, 0.45732800944167123],
-                                                                [0.31863727454909818, 0.40352651745676482],
-                                                                [0.32064128256513025, 0.36782637161928405],
-                                                                [0.32264529058116237, 0.35346308756813666],
-                                                                [0.32464929859719438, 0.36173841433216758],
-                                                                [0.32665330661322645, 0.39190235639920212],
-                                                                [0.32865731462925851, 0.44122114604926271],
-                                                                [0.33066132264529058, 0.50522500559765238],
-                                                                [0.33266533066132264, 0.57811324477654968],
-                                                                [0.33466933867735466, 0.65327997914981106],
-                                                                [0.33667334669338672, 0.72391282353286768],
-                                                                [0.33867735470941879, 0.78361030064149872],
-                                                                [0.34068136272545085, 0.82696200902615169],
-                                                                [0.34268537074148292, 0.85003896948628055],
-                                                                [0.34468937875751499, 0.85074970971230102],
-                                                                [0.34669338677354705, 0.82902981509013951],
-                                                                [0.34869739478957912, 0.78684776661831501],
-                                                                [0.35070140280561118, 0.72802653684526153],
-                                                                [0.35270541082164325, 0.65789711264416706],
-                                                                [0.35470941883767532, 0.58281534616709874],
-                                                                [0.35671342685370738, 0.50958592193101349],
-                                                                [0.35871743486973945, 0.44484564608294147],
-                                                                [0.36072144288577151, 0.39446195053554928],
-                                                                [0.36272545090180358, 0.36300112573570686],
-                                                                [0.36472945891783565, 0.35331447630038237],
-                                                                [0.36673346693386771, 0.36627990636697882],
-                                                                [0.36873747494989978, 0.40072235486049063],
-                                                                [0.37074148296593185, 0.45352029165467256],
-                                                                [0.37274549098196391, 0.51988862284606208],
-                                                                [0.37474949899799598, 0.59381236534535975],
-                                                                [0.37675350701402804, 0.66859178671920416],
-                                                                [0.37875751503006011, 0.73744960408407445],
-                                                                [0.38076152304609218, 0.79414521142229921],
-                                                                [0.38276553106212424, 0.83354026770201506],
-                                                                [0.38476953907815625, 0.8520643863688121],
-                                                                [0.38677354709418837, 0.84803872062143937],
-                                                                [0.38877755511022039, 0.82182811783452481],
-                                                                [0.39078156312625245, 0.77580805332428471],
-                                                                [0.39278557114228452, 0.71414934026062282],
-                                                                [0.39478957915831658, 0.64244012753515978],
-                                                                [0.39679358717434865, 0.56717944403935305],
-                                                                [0.39879759519038072, 0.49518818959680888],
-                                                                [0.40080160320641278, 0.43299095463003773],
-                                                                [0.40280561122244485, 0.38622469444303081],
-                                                                [0.40480961923847697, 0.35912785015860949],
-                                                                [0.40681362725450898, 0.35415621744344722],
-                                                                [0.40881763527054105, 0.37176037696110892],
-                                                                [0.41082164328657311, 0.41034485810235627],
-                                                                [0.41282565130260518, 0.46641273699690672],
-                                                                [0.41482965931863724, 0.53488256384257815],
-                                                                [0.41683366733466931, 0.60954889632658593],
-                                                                [0.41883767535070138, 0.68364470084767559],
-                                                                [0.42084168336673344, 0.7504546509364024],
-                                                                [0.42284569138276556, 0.80392373944151296],
-                                                                [0.42484969939879758, 0.8392060457652587],
-                                                                [0.42685370741482964, 0.85310392319754424],
-                                                                [0.42885771543086171, 0.84435780266028926],
-                                                                [0.43086172344689377, 0.81376034785595763],
-                                                                [0.43286573146292584, 0.76408461590260635],
-                                                                [0.43486973947895791, 0.69983273428007264],
-                                                                [0.43687374749498992, 0.62682787157611397],
-                                                                [0.43887775551102198, 0.55168648185425695],
-                                                                [0.44088176352705405, 0.48121865330520536],
-                                                                [0.44288577154308612, 0.42181090777535452],
-                                                                [0.44488977955911818, 0.37884738824857206],
-                                                                [0.44689378757515025, 0.35622189224502449],
-                                                                [0.44889779559118231, 0.355984975706156],
-                                                                [0.45090180360721438, 0.37815811045368147],
-                                                                [0.45290581162324645, 0.42073173819151566],
-                                                                [0.45490981963927851, 0.47984739741706345],
-                                                                [0.45691382765531058, 0.55014741702166459],
-                                                                [0.45891783567134264, 0.62526048373724663],
-                                                                [0.46092184368737471, 0.69837907629622931],
-                                                                [0.46292585170340678, 0.76287643326192989],
-                                                                [0.46492985971943884, 0.81290713853771324],
-                                                                [0.46693386773547091, 0.84393689329795929],
-                                                                [0.46893787575150297, 0.85315346094129962],
-                                                                [0.47094188376753504, 0.83972154099353424],
-                                                                [0.47294589178356711, 0.80485847265684585],
-                                                                [0.47494989979959917, 0.7517239069684335],
-                                                                [0.47695390781563124, 0.68513344661614772],
-                                                                [0.47895791583166331, 0.6111222063262004],
-                                                                [0.48096192384769537, 0.53639784848471928],
-                                                                [0.48296593186372744, 0.46773266554966425],
-                                                                [0.4849699398797595, 0.41134980501870816],
-                                                                [0.48697394789579157, 0.37235926358050797],
-                                                                [0.48897795591182358, 0.35429476647997493],
-                                                                [0.49098196392785565, 0.35879350486875811],
-                                                                [0.49298597194388771, 0.3854477566473884],
-                                                                [0.49498997995991978, 0.43184183844958968],
-                                                                [0.49699398797595185, 0.49377103979863168],
-                                                                [0.49899799599198391, 0.56562269736304593],
-                                                                [0.50100200400801598, 0.64088487243005454],
-                                                                [0.50300601202404804, 0.71273652999446913],
-                                                                [0.50501002004008011, 0.77466573134351202],
-                                                                [0.50701402805611218, 0.82105981314571463],
-                                                                [0.50901803607214424, 0.8477140649243462],
-                                                                [0.51102204408817631, 0.85221280331313087],
-                                                                [0.51302605210420837, 0.83414830621259795],
-                                                                [0.51503006012024044, 0.79515776477440048],
-                                                                [0.51703406813627251, 0.7387749042434425],
-                                                                [0.51903807615230457, 0.67010972130839097],
-                                                                [0.52104208416833664, 0.59538536346690651],
-                                                                [0.5230460921843687, 0.5213741231769623],
-                                                                [0.52505010020040077, 0.45478366282467597],
-                                                                [0.52705410821643284, 0.40164909713626268],
-                                                                [0.5290581162324649, 0.36678602879957284],
-                                                                [0.53106212424849697, 0.3533541088518059],
-                                                                [0.53306613226452904, 0.36257067649514479],
-                                                                [0.5350701402805611, 0.39360043125538952],
-                                                                [0.53707414829659306, 0.44363113653117181],
-                                                                [0.53907815631262523, 0.50812849349687461],
-                                                                [0.5410821643286573, 0.58124708605585373],
-                                                                [0.54308617234468937, 0.65636015277143933],
-                                                                [0.54509018036072143, 0.72666017237603742],
-                                                                [0.5470941883767535, 0.7857758316015887],
-                                                                [0.54909819639278556, 0.82834945933942172],
-                                                                [0.55110220440881763, 0.85052259408694908],
-                                                                [0.5531062124248497, 0.8502856775480816],
-                                                                [0.55511022044088165, 0.82766018154453391],
-                                                                [0.55711422845691383, 0.78469666201775423],
-                                                                [0.5591182364729459, 0.72528891648790139],
-                                                                [0.56112224448897796, 0.6548210879388533],
-                                                                [0.56312625250501003, 0.57967969821699283],
-                                                                [0.56513026052104198, 0.50667483551303738],
-                                                                [0.56713426853707405, 0.44242295389050285],
-                                                                [0.56913827655310611, 0.39274722193715039],
-                                                                [0.57114228456913818, 0.36214976713281849],
-                                                                [0.57314629258517036, 0.35340364659556101],
-                                                                [0.57515030060120231, 0.36730152402784372],
-                                                                [0.57715430861723438, 0.40258383035158946],
-                                                                [0.57915831663326645, 0.45605291885669735],
-                                                                [0.58116232464929851, 0.522862868945425],
-                                                                [0.58316633266533058, 0.59695867346651266],
-                                                                [0.58517034068136264, 0.67162500595052232],
-                                                                [0.58717434869739471, 0.74009483279619304],
-                                                                [0.58917835671342678, 0.79616271169074582],
-                                                                [0.59118236472945895, 0.83474719283199372],
-                                                                [0.59318637274549091, 0.85235135234965786],
-                                                                [0.59519038076152297, 0.84737971963449743],
-                                                                [0.59719438877755504, 0.82028287535007693],
-                                                                [0.59919839679358711, 0.77351661516307246],
-                                                                [0.60120240480961917, 0.71131938019630114],
-                                                                [0.60320641282565124, 0.63932812575375897],
-                                                                [0.60521042084168331, 0.56406744225795047],
-                                                                [0.60721442885771537, 0.4923582295324887],
-                                                                [0.60921843687374755, 0.43069951646882415],
-                                                                [0.6112224448897795, 0.38467945195858388],
-                                                                [0.61322645290581157, 0.35846884917166683],
-                                                                [0.61523046092184364, 0.35444318342429265],
-                                                                [0.6172344689378757, 0.3729673020910888],
-                                                                [0.61923847695390777, 0.41236235837080404],
-                                                                [0.62124248496993983, 0.46905796570902974],
-                                                                [0.6232464929859719, 0.53791578307389809],
-                                                                [0.62525050100200397, 0.61269520444774428],
-                                                                [0.62725450901803614, 0.6866189469470404],
-                                                                [0.6292585170340681, 0.7529872781384318],
-                                                                [0.63126252505010017, 0.8057852149326129],
-                                                                [0.63326653306613223, 0.84022766342612609],
-                                                                [0.6352705410821643, 0.85319309349272288],
-                                                                [0.63727454909819636, 0.84350644405739894],
-                                                                [0.63927855711422843, 0.81204561925755803],
-                                                                [0.6412825651302605, 0.76166192371016495],
-                                                                [0.64328657314629256, 0.69692164786209509],
-                                                                [0.64529058116232474, 0.62369222362601162],
-                                                                [0.64729458917835669, 0.54861045714894152],
-                                                                [0.64929859719438876, 0.47848103294784811],
-                                                                [0.65130260521042083, 0.4196598031747924],
-                                                                [0.65330661322645289, 0.37747775470296796],
-                                                                [0.65531062124248496, 0.35575786008080484],
-                                                                [0.65731462925851702, 0.35646860030682398],
-                                                                [0.65931863727454909, 0.37954556076695223],
-                                                                [0.66132264529058116, 0.42289726915160325],
-                                                                [0.66332665330661333, 0.48259474626023485],
-                                                                [0.66533066132264529, 0.55322759064328941],
-                                                                [0.66733466933867724, 0.62839432501655079],
-                                                                [0.66933867735470931, 0.70128256419544677],
-                                                                [0.67134268537074138, 0.76528642374383893],
-                                                                [0.67334669338677344, 0.81460521339389957],
-                                                                [0.67535070140280551, 0.84476915546093656],
-                                                                [0.67735470941883758, 0.85304448222496887],
-                                                                [0.67935871743486964, 0.83868119817382247],
-                                                                [0.68136272545090171, 0.80298105233634354],
-                                                                [0.68336673346693377, 0.74917956035143674],
-                                                                [0.68537074148296584, 0.6821527686505755],
-                                                                [0.68737474949899791, 0.60797533680968996],
-                                                                [0.68937875751502997, 0.53336998920833956],
-                                                                [0.69138276553106204, 0.4650982323683488],
-                                                                [0.6933867735470941, 0.40934755745451623],
-                                                                [0.69539078156312617, 0.37117066597077192],
-                                                                [0.69739478957915824, 0.35402754180633417],
-                                                                [0.6993987975951903, 0.35947187178888002],
-                                                                [0.70140280561122237, 0.38701023455027023],
-                                                                [0.70340681362725443, 0.43414681946300498],
-                                                                [0.7054108216432865, 0.49660962275589515],
-                                                                [0.70741482965931857, 0.56873762058258404],
-                                                                [0.70941883767535063, 0.64399382942391359],
-                                                                [0.7114228456913827, 0.71555775499563756],
-                                                                [0.71342685370741477, 0.77694353582753062],
-                                                                [0.71543086172344683, 0.82258775896345204],
-                                                                [0.7174348697394789, 0.84835367385750049],
-                                                                [0.71943887775551096, 0.85190610739945816],
-                                                                [0.72144288577154303, 0.83292310140087655],
-                                                                [0.7234468937875751, 0.79312509176870016],
-                                                                [0.72545090180360716, 0.73611898484858906],
-                                                                [0.72745490981963923, 0.66707126234885672],
-                                                                [0.72945891783567129, 0.59223974145029745],
-                                                                [0.73146292585170336, 0.5184064268330324],
-                                                                [0.73346693386773543, 0.45226285542253636],
-                                                                [0.73547094188376749, 0.39980364025726473],
-                                                                [0.73747494989979956, 0.3657831767910788],
-                                                                [0.73947895791583163, 0.35328475051219349],
-                                                                [0.74148296593186369, 0.36344109779292255],
-                                                                [0.74348697394789576, 0.39533174562986167],
-                                                                [0.74549098196392782, 0.4460664344066787],
-                                                                [0.74749498997995989, 0.51104706304782199],
-                                                                [0.74949899799599196, 0.58438441639009808],
-                                                                [0.75150300601202402, 0.65943190663704587],
-                                                                [0.75350701402805609, 0.72938795573741722],
-                                                                [0.75551102204408815, 0.78791242457998578],
-                                                                [0.75751503006012022, 0.82970122182964179],
-                                                                [0.75951903807615229, 0.85096701542202735],
-                                                                [0.76152304609218435, 0.84978247968023546],
-                                                                [0.76352705410821642, 0.82625496945751709],
-                                                                [0.76553106212424848, 0.7825167905325866],
-                                                                [0.76753507014028055, 0.72253194805469623],
-                                                                [0.76953907815631251, 0.65173688748876113],
-                                                                [0.77154308617234457, 0.57654778782353999],
-                                                                [0.77354709418837675, 0.50377906121718086],
-                                                                [0.7755511022044087, 0.4400257606431337],
-                                                                [0.77755511022044077, 0.39106586812921912],
-                                                                [0.77955911823647284, 0.36133663439785763],
-                                                                [0.7815631262525049, 0.35353242941348978],
-                                                                [0.78356713426853697, 0.36836055077067176],
-                                                                [0.78557114228456904, 0.40447712108679429],
-                                                                [0.7875751503006011, 0.45860888403922512],
-                                                                [0.78957915831663317, 0.52584986063303996],
-                                                                [0.79158316633266534, 0.60010597964693513],
-                                                                [0.7935871743486973, 0.67464738525768675],
-                                                                [0.79559118236472937, 0.74271836602653829],
-                                                                [0.79759519038076143, 0.79814962718824523],
-                                                                [0.7995991983967935, 0.83591741580943302],
-                                                                [0.80160320641282556, 0.85259882512419638],
-                                                                [0.80360721442885763, 0.84668201366940432],
-                                                                [0.8056112224448897, 0.81870322396018957],
-                                                                [0.80761523046092176, 0.77119818265923568],
-                                                                [0.80961923847695394, 0.70847228685808561],
-                                                                [0.81162324649298589, 0.63621040456128408],
-                                                                [0.81362725450901796, 0.56096165328035219],
-                                                                [0.81563126252505003, 0.48954585141845125],
-                                                                [0.81763527054108209, 0.428435435946596],
-                                                                [0.81963927855711416, 0.3831688633702483],
-                                                                [0.82164328657314623, 0.35784865764427209],
-                                                                [0.82364729458917829, 0.35476959711438621],
-                                                                [0.82565130260521036, 0.37421073802150739],
-                                                                [0.82765531062124253, 0.41441012354535695],
-                                                                [0.82965931863727449, 0.47172447051479988],
-                                                                [0.83166332665330656, 0.54095936132723521],
-                                                                [0.83366733466933862, 0.61584001567780733],
-                                                                [0.83567134268537069, 0.68957997590591924],
-                                                                [0.83767535070140275, 0.7554961658242525],
-                                                                [0.83967935871743482, 0.80761458005173337],
-                                                                [0.84168336673346689, 0.84121171003252604],
-                                                                [0.84368737474949895, 0.85324263712763526],
-                                                                [0.84569138276553113, 0.84261699456534089],
-                                                                [0.84769539078156309, 0.81029778773055894],
-                                                                [0.84969939879759515, 0.75921411667870897],
-                                                                [0.85170340681362722, 0.69399571086056866],
-                                                                [0.85370741482965928, 0.62055333526097256],
-                                                                [0.85571142284569135, 0.54554309587715111],
-                                                                [0.85771543086172342, 0.47576319470271561],
-                                                                [0.85971943887775548, 0.41753780650599781],
-                                                                [0.86172344689378755, 0.37614391684750426],
-                                                                [0.86372745490981973, 0.35533306719025193],
-                                                                [0.86573146292585168, 0.35699135149675659],
-                                                                [0.86773547094188375, 0.38096847892978292],
-                                                                [0.86973947895791581, 0.42509139475899538],
-                                                                [0.87174348697394788, 0.4853612250064141],
-                                                                [0.87374749498997983, 0.55631569567440398],
-                                                                [0.8757515030060119, 0.63152418038564395],
-                                                                [0.87775551102204397, 0.70417051010907328],
-                                                                [0.87975951903807603, 0.76767072473989495],
-                                                                [0.8817635270541081, 0.81626977951030255],
-                                                                [0.88376753507014016, 0.84556312653800092],
-                                                                [0.88577154308617223, 0.85289590040996466],
-                                                                [0.8877755511022043, 0.83760352948418093],
-                                                                [0.88977955911823636, 0.80107196623018417],
-                                                                [0.89178356713426843, 0.74661207791334594],
-                                                                [0.8937875751503005, 0.67915958163533785],
-                                                                [0.89579158316633256, 0.60482771871411944],
-                                                                [0.89779559118236463, 0.53035320966745469],
-                                                                [0.89979959919839669, 0.46248570307711462],
-                                                                [0.90180360721442876, 0.40737605277843403],
-                                                                [0.90380761523046083, 0.37001886400938161],
-                                                                [0.90581162324649289, 0.35379983073989579],
-                                                                [0.90781563126252496, 0.3601888891441985],
-                                                                [0.90981963927855702, 0.38860699681503369],
-                                                                [0.91182364729458909, 0.43647861156230183],
-                                                                [0.91382765531062116, 0.49946511362575174],
-                                                                [0.91583166332665322, 0.5718580161718968],
-                                                                [0.91783567134268529, 0.64709632728210165],
-                                                                [0.91983967935871735, 0.71836117474922545],
-                                                                [0.92184368737474942, 0.77919380264734661],
-                                                                [0.92384769539078149, 0.82408093044767794],
-                                                                [0.92585170340681355, 0.84895442339680549],
-                                                                [0.92785571142284562, 0.85155998887089701],
-                                                                [0.92985971943887769, 0.83166148363742887],
-                                                                [0.93186372745490975, 0.79106231559189555],
-                                                                [0.93386773547094182, 0.73344200032328766],
-                                                                [0.93587174348697388, 0.66402268543903986],
-                                                                [0.93787575150300595, 0.58909586565664596],
-                                                                [0.93987975951903802, 0.51545218262454462],
-                                                                [0.94188376753507008, 0.44976598689699826],
-                                                                [0.94388777555110215, 0.39799043940797291],
-                                                                [0.94589178356713421, 0.36481797459110865],
-                                                                [0.94789579158316628, 0.35325502354572613],
-                                                                [0.94989979959919835, 0.36434954022444099],
-                                                                [0.95190380761523041, 0.39709602503115643],
-                                                                [0.95390781563126248, 0.44852665357115651],
-                                                                [0.95591182364729455, 0.51398025152550908],
-                                                                [0.95791583166332661, 0.58752473837082897],
-                                                                [0.95991983967935868, 0.66249475373501709],
-                                                                [0.96192384769539074, 0.73209574114023057],
-                                                                [0.96392785571142281, 0.79001974083028237],
-                                                                [0.96593186372745488, 0.83101708218144965],
-                                                                [0.96793587174348694, 0.85137216303067698],
-                                                                [0.96993987975951901, 0.84924019588833577],
-                                                                [0.97194388777555107, 0.82481440161861963],
-                                                                [0.97394789579158314, 0.78030849777081679],
-                                                                [0.9759519038076151, 0.71975606864956898],
-                                                                [0.97795591182364716, 0.64864500027884076],
-                                                                [0.97995991983967923, 0.57342011153587114],
-                                                                [0.98196392785571129, 0.50089905815435876],
-                                                                [0.98396793587174336, 0.4376544464041528],
-                                                                [0.98597194388777543, 0.38941815568221322],
-                                                                [0.98797595190380749, 0.36056185644906247],
-                                                                [0.98997995991983956, 0.35370080433628032],
-                                                                [0.99198396793587174, 0.3694568186919252],
-                                                                [0.99398797595190369, 0.40640192689407978],
-                                                                [0.99599198396793576, 0.46118778196641408],
-                                                                [0.99799599198396782, 0.52884912433591846],
-                                                                [0.99999999999999989, 0.60325378489654413]]},
-                                      'filtrangemin': {'curved': False,
-                                                       'data': [[1.1842378929334949e-16, 0.43933840137327529],
-                                                                [0.0020040080160321824, 0.51374306193390284],
-                                                                [0.0040080160320642468, 0.58140440430340978],
-                                                                [0.0060120240480963103, 0.63619025937574614],
-                                                                [0.0080160320641283738, 0.67313536757789949],
-                                                                [0.01002004008016044, 0.68889138193354726],
-                                                                [0.012024048096192503, 0.68203032982076683],
-                                                                [0.014028056112224567, 0.65317403058761714],
-                                                                [0.01603206412825663, 0.60493773986568244],
-                                                                [0.018036072144288692, 0.54169312811547665],
-                                                                [0.020040080160320758, 0.46917207473396316],
-                                                                [0.022044088176352821, 0.39394718599099199],
-                                                                [0.024048096192384884, 0.3228361176202682],
-                                                                [0.02605210420841695, 0.26228368849901212],
-                                                                [0.028056112224449013, 0.21777778465120823],
-                                                                [0.030060120240481079, 0.19335199038149328],
-                                                                [0.032064128256513141, 0.19122002323915058],
-                                                                [0.034068136272545207, 0.21157510408837754],
-                                                                [0.036072144288577267, 0.25257244543954543],
-                                                                [0.03807615230460934, 0.31049644512959257],
-                                                                [0.040080160320641399, 0.38009743253480704],
-                                                                [0.042084168336673458, 0.45506744789899645],
-                                                                [0.044088176352705524, 0.52861193474431811],
-                                                                [0.04609218436873759, 0.59406553269866669],
-                                                                [0.04809619238476965, 0.64549616123866882],
-                                                                [0.050100200400801716, 0.67824264604538609],
-                                                                [0.052104208416833782, 0.68933716272410184],
-                                                                [0.054108216432865848, 0.67777421167872143],
-                                                                [0.056112224448897907, 0.644601746861858],
-                                                                [0.058116232464929973, 0.59282619937283276],
-                                                                [0.060120240480962039, 0.52714000364528524],
-                                                                [0.062124248496994099, 0.45349632061318929],
-                                                                [0.064128256513026172, 0.37856950083079349],
-                                                                [0.066132264529058238, 0.30915018594654392],
-                                                                [0.068136272545090304, 0.25152987067793392],
-                                                                [0.070140280561122356, 0.21093070263240221],
-                                                                [0.072144288577154408, 0.19103219739893176],
-                                                                [0.074148296593186475, 0.19363776287302167],
-                                                                [0.076152304609218555, 0.2185112558221487],
-                                                                [0.078156312625250621, 0.26339838362248064],
-                                                                [0.080160320641282687, 0.32423101152059686],
-                                                                [0.082164328657314753, 0.39549585898772133],
-                                                                [0.084168336673346805, 0.47073417009792767],
-                                                                [0.086172344689378857, 0.54312707264407445],
-                                                                [0.088176352705410924, 0.60611357470752081],
-                                                                [0.09018036072144299, 0.65398518945479134],
-                                                                [0.092184368737475056, 0.68240329712562853],
-                                                                [0.094188376753507136, 0.68879235552993234],
-                                                                [0.096192384769539188, 0.6725733222604493],
-                                                                [0.098196392785571254, 0.63521613349139783],
-                                                                [0.10020040080160332, 0.58010648319271707],
-                                                                [0.10220440881763537, 0.51223897660237594],
-                                                                [0.10420841683366744, 0.4377644675557168],
-                                                                [0.1062124248496995, 0.36343260463449673],
-                                                                [0.10821643286573157, 0.29598010835648619],
-                                                                [0.11022044088176364, 0.24152022003964591],
-                                                                [0.1122244488977957, 0.20498865678565006],
-                                                                [0.11422845691382777, 0.18969628585986373],
-                                                                [0.11623246492985984, 0.19702905973182572],
-                                                                [0.1182364729458919, 0.22632240675952328],
-                                                                [0.12024048096192395, 0.27492146152992597],
-                                                                [0.12224448897795601, 0.33842167616074753],
-                                                                [0.12424849699398807, 0.41106800588417808],
-                                                                [0.12625250501002017, 0.48627649059541983],
-                                                                [0.1282565130260522, 0.55723096126341176],
-                                                                [0.13026052104208427, 0.61750079151083215],
-                                                                [0.13226452905811634, 0.66162370734004539],
-                                                                [0.1342685370741484, 0.68560083477307054],
-                                                                [0.13627254509018047, 0.68725911907957649],
-                                                                [0.13827655310621256, 0.66644826942232449],
-                                                                [0.1402805611222446, 0.62505437976383005],
-                                                                [0.14228456913827667, 0.56682899156711763],
-                                                                [0.14428857715430871, 0.49704909039268091],
-                                                                [0.14629258517034077, 0.42203885100885768],
-                                                                [0.14829659318637284, 0.34859647540925981],
-                                                                [0.1503006012024049, 0.2833780695911236],
-                                                                [0.152304609218437, 0.23229439853927125],
-                                                                [0.15430861723446904, 0.19997519170448783],
-                                                                [0.15631262525050113, 0.18934954914219279],
-                                                                [0.15831663326653317, 0.20138047623730124],
-                                                                [0.16032064128256526, 0.23497760621809216],
-                                                                [0.1623246492985973, 0.28709602044557297],
-                                                                [0.16432865731462937, 0.35301221036390412],
-                                                                [0.16633266533066143, 0.42675217059201764],
-                                                                [0.16833667334669347, 0.5016328249425871],
-                                                                [0.17034068136272557, 0.5708677157550246],
-                                                                [0.1723446893787576, 0.62818206272446719],
-                                                                [0.1743486973947897, 0.66838144824831902],
-                                                                [0.17635270541082174, 0.68782258915544103],
-                                                                [0.1783567134268538, 0.68474352862555665],
-                                                                [0.18036072144288587, 0.65942332289958261],
-                                                                [0.18236472945891793, 0.61415675032323513],
-                                                                [0.18436873747495, 0.55304633485138188],
-                                                                [0.18637274549098207, 0.48163053298947989],
-                                                                [0.18837675350701416, 0.40638178170854972],
-                                                                [0.1903807615230462, 0.33411989941174625],
-                                                                [0.19238476953907827, 0.27139400361059562],
-                                                                [0.1943887775551103, 0.22388896230964142],
-                                                                [0.19639278557114237, 0.19591017260042454],
-                                                                [0.19839679358717444, 0.18999336114563134],
-                                                                [0.2004008016032065, 0.20667477046039331],
-                                                                [0.2024048096192386, 0.24444255908157927],
-                                                                [0.20440881763527063, 0.29987382024328618],
-                                                                [0.20641282565130273, 0.36794480101213561],
-                                                                [0.20841683366733477, 0.44248620662288879],
-                                                                [0.21042084168336686, 0.51674232563678257],
-                                                                [0.2124248496993989, 0.58398330223059869],
-                                                                [0.21442885771543096, 0.63811506518302974],
-                                                                [0.21643286573146303, 0.67423163549915455],
-                                                                [0.21843687374749507, 0.68905975685633791],
-                                                                [0.22044088176352716, 0.68125555187197173],
-                                                                [0.2224448897795592, 0.65152631814061246],
-                                                                [0.2244488977955913, 0.60256642562669815],
-                                                                [0.22645290581162333, 0.53881312505265333],
-                                                                [0.2284569138276554, 0.4660443984462932],
-                                                                [0.23046092184368747, 0.39085529878107361],
-                                                                [0.23246492985971953, 0.32006023821513468],
-                                                                [0.2344689378757516, 0.26007539573724497],
-                                                                [0.23647294589178366, 0.21633721681231224],
-                                                                [0.23847695390781576, 0.19280970658959282],
-                                                                [0.2404809619238478, 0.1916251708478004],
-                                                                [0.24248496993987989, 0.21289096444018565],
-                                                                [0.2444889779559119, 0.25467976168984013],
-                                                                [0.24649298597194397, 0.31320423053240948],
-                                                                [0.24849699398797603, 0.38316027963277888],
-                                                                [0.2505010020040081, 0.45820776987972839],
-                                                                [0.25250501002004017, 0.53154512322200309],
-                                                                [0.25450901803607223, 0.59652575186314816],
-                                                                [0.2565130260521043, 0.64726044063996457],
-                                                                [0.25851703406813636, 0.67915108847690497],
-                                                                [0.26052104208416843, 0.68930743575763465],
-                                                                [0.2625250501002005, 0.67680900947875011],
-                                                                [0.26452905811623256, 0.6427885460125663],
-                                                                [0.26653306613226463, 0.59032933084729411],
-                                                                [0.26853707414829669, 0.52418575943680035],
-                                                                [0.27054108216432876, 0.4503524448195339],
-                                                                [0.27254509018036083, 0.37552092392097619],
-                                                                [0.27454909819639289, 0.30647320142124163],
-                                                                [0.27655310621242502, 0.24946709450113122],
-                                                                [0.27855711422845703, 0.20966908486895286],
-                                                                [0.28056112224448909, 0.19068607887037048],
-                                                                [0.2825651302605211, 0.19423851241232645],
-                                                                [0.28456913827655317, 0.22000442730637271],
-                                                                [0.28657314629258529, 0.26564865044229363],
-                                                                [0.2885771543086173, 0.32703443127418436],
-                                                                [0.29058116232464937, 0.39859835684590955],
-                                                                [0.29258517034068143, 0.47385456568723733],
-                                                                [0.29458917835671355, 0.54598256351392827],
-                                                                [0.29659318637274557, 0.60844536680681793],
-                                                                [0.29859719438877763, 0.65558195171955513],
-                                                                [0.3006012024048097, 0.68312031448094646],
-                                                                [0.30260521042084176, 0.68856464446349419],
-                                                                [0.30460921843687389, 0.67142152029905855],
-                                                                [0.3066132264529059, 0.63324462881531496],
-                                                                [0.30861723446893796, 0.57749395390148484],
-                                                                [0.31062124248497003, 0.50922219706149319],
-                                                                [0.31262525050100215, 0.4346168494601414],
-                                                                [0.31462925851703416, 0.3604394176192573],
-                                                                [0.31663326653306623, 0.2934126259183939],
-                                                                [0.31863727454909829, 0.23961113393348751],
-                                                                [0.32064128256513036, 0.20391098809600672],
-                                                                [0.32264529058116248, 0.18954770404485932],
-                                                                [0.32464929859719449, 0.19782303080889022],
-                                                                [0.32665330661322656, 0.22798697287592476],
-                                                                [0.32865731462925862, 0.27730576252598532],
-                                                                [0.33066132264529075, 0.34130962207437504],
-                                                                [0.33266533066132276, 0.41419786125327235],
-                                                                [0.33466933867735477, 0.48936459562653378],
-                                                                [0.33667334669338683, 0.5599974400095904],
-                                                                [0.3386773547094189, 0.61969491711822133],
-                                                                [0.34068136272545102, 0.6630466255028743],
-                                                                [0.34268537074148303, 0.68612358596300316],
-                                                                [0.3446893787575151, 0.68683432618902363],
-                                                                [0.34669338677354716, 0.66511443156686212],
-                                                                [0.34869739478957923, 0.62293238309503773],
-                                                                [0.3507014028056113, 0.56411115332198425],
-                                                                [0.35270541082164336, 0.49398172912088972],
-                                                                [0.35470941883767543, 0.41889996264382146],
-                                                                [0.35671342685370749, 0.34567053840773609],
-                                                                [0.35871743486973962, 0.28093026255966408],
-                                                                [0.36072144288577163, 0.23054656701227191],
-                                                                [0.36272545090180369, 0.1990857422124295],
-                                                                [0.36472945891783576, 0.18939909277710501],
-                                                                [0.36673346693386782, 0.20236452284370143],
-                                                                [0.36873747494989989, 0.23680697133721329],
-                                                                [0.37074148296593196, 0.28960490813139522],
-                                                                [0.37274549098196402, 0.35597323932278463],
-                                                                [0.37474949899799609, 0.42989698182208236],
-                                                                [0.37675350701402821, 0.50467640319592688],
-                                                                [0.37875751503006022, 0.57353422056079706],
-                                                                [0.38076152304609229, 0.63022982789902193],
-                                                                [0.38276553106212435, 0.66962488417873767],
-                                                                [0.38476953907815636, 0.68814900284553471],
-                                                                [0.38677354709418849, 0.68412333709816198],
-                                                                [0.3887775551102205, 0.65791273431124742],
-                                                                [0.39078156312625256, 0.61189266980100743],
-                                                                [0.39278557114228463, 0.55023395673734554],
-                                                                [0.39478957915831675, 0.47852474401188244],
-                                                                [0.39679358717434876, 0.40326406051607561],
-                                                                [0.39879759519038083, 0.33127280607353143],
-                                                                [0.40080160320641289, 0.26907557110676039],
-                                                                [0.40280561122244496, 0.22230931091975348],
-                                                                [0.40480961923847708, 0.19521246663533207],
-                                                                [0.40681362725450909, 0.19024083392016988],
-                                                                [0.40881763527054116, 0.20784499343783158],
-                                                                [0.41082164328657322, 0.24642947457907891],
-                                                                [0.41282565130260535, 0.30249735347362933],
-                                                                [0.41482965931863736, 0.37096718031930087],
-                                                                [0.41683366733466942, 0.4456335128033086],
-                                                                [0.41883767535070149, 0.51972931732439831],
-                                                                [0.42084168336673355, 0.58653926741312501],
-                                                                [0.42284569138276568, 0.64000835591823557],
-                                                                [0.42484969939879769, 0.67529066224198131],
-                                                                [0.42685370741482975, 0.68918853967426685],
-                                                                [0.42885771543086182, 0.68044241913701187],
-                                                                [0.43086172344689394, 0.64984496433268035],
-                                                                [0.43286573146292595, 0.60016923237932907],
-                                                                [0.43486973947895802, 0.53591735075679525],
-                                                                [0.43687374749499003, 0.46291248805283658],
-                                                                [0.43887775551102209, 0.3877710983309795],
-                                                                [0.44088176352705422, 0.31730326978192802],
-                                                                [0.44288577154308623, 0.25789552425207718],
-                                                                [0.44488977955911829, 0.2149320047252947],
-                                                                [0.44689378757515036, 0.19230650872174715],
-                                                                [0.44889779559118242, 0.19206959218287867],
-                                                                [0.45090180360721449, 0.21424272693040405],
-                                                                [0.45290581162324656, 0.25681635466823821],
-                                                                [0.45490981963927862, 0.31593201389378611],
-                                                                [0.45691382765531069, 0.38623203349838725],
-                                                                [0.45891783567134281, 0.46134510021396924],
-                                                                [0.46092184368737482, 0.53446369277295191],
-                                                                [0.46292585170340689, 0.5989610497386525],
-                                                                [0.46492985971943895, 0.64899175501443584],
-                                                                [0.46693386773547102, 0.6800215097746819],
-                                                                [0.46893787575150309, 0.68923807741802223],
-                                                                [0.47094188376753515, 0.67580615747025685],
-                                                                [0.47294589178356722, 0.64094308913356846],
-                                                                [0.47494989979959928, 0.58780852344515622],
-                                                                [0.47695390781563141, 0.52121806309287033],
-                                                                [0.47895791583166342, 0.44720682280292307],
-                                                                [0.48096192384769548, 0.37248246496144194],
-                                                                [0.48296593186372755, 0.30381728202638686],
-                                                                [0.48496993987975962, 0.24743442149543074],
-                                                                [0.48697394789579168, 0.20844388005723061],
-                                                                [0.48897795591182369, 0.19037938295669757],
-                                                                [0.49098196392785576, 0.19487812134548077],
-                                                                [0.49298597194388782, 0.22153237312411103],
-                                                                [0.49498997995991995, 0.26792645492631229],
-                                                                [0.49699398797595196, 0.32985565627535435],
-                                                                [0.49899799599198402, 0.4017073138397686],
-                                                                [0.50100200400801609, 0.47696948890677721],
-                                                                [0.50300601202404815, 0.54882114647119173],
-                                                                [0.50501002004008022, 0.61075034782023463],
-                                                                [0.50701402805611229, 0.65714442962243724],
-                                                                [0.50901803607214435, 0.68379868140106881],
-                                                                [0.51102204408817642, 0.68829741978985348],
-                                                                [0.51302605210420849, 0.67023292268932055],
-                                                                [0.51503006012024055, 0.63124238125112309],
-                                                                [0.51703406813627262, 0.57485952072016511],
-                                                                [0.51903807615230468, 0.50619433778511369],
-                                                                [0.52104208416833675, 0.43146997994362918],
-                                                                [0.52304609218436882, 0.35745873965368496],
-                                                                [0.52505010020040088, 0.29086827930139864],
-                                                                [0.52705410821643295, 0.23773371361298531],
-                                                                [0.52905811623246501, 0.20287064527629542],
-                                                                [0.53106212424849708, 0.18943872532852854],
-                                                                [0.53306613226452915, 0.19865529297186738],
-                                                                [0.53507014028056132, 0.22968504773211215],
-                                                                [0.53707414829659328, 0.27971575300789436],
-                                                                [0.53907815631262535, 0.34421310997359728],
-                                                                [0.54108216432865741, 0.4173317025325764],
-                                                                [0.54308617234468948, 0.492444769248162],
-                                                                [0.54509018036072154, 0.56274478885276003],
-                                                                [0.54709418837675361, 0.62186044807831142],
-                                                                [0.54909819639278568, 0.66443407581614433],
-                                                                [0.55110220440881774, 0.68660721056367169],
-                                                                [0.55310621242484992, 0.68637029402480421],
-                                                                [0.55511022044088187, 0.66374479802125663],
-                                                                [0.55711422845691394, 0.62078127849447695],
-                                                                [0.55911823647294601, 0.561373532964624],
-                                                                [0.56112224448897807, 0.49090570441557602],
-                                                                [0.56312625250501014, 0.4157643146937155],
-                                                                [0.56513026052104209, 0.3427594519897601],
-                                                                [0.56713426853707416, 0.27850757036722545],
-                                                                [0.56913827655310623, 0.22883183841387303],
-                                                                [0.57114228456913829, 0.19823438360954115],
-                                                                [0.57314629258517047, 0.18948826307228359],
-                                                                [0.57515030060120242, 0.2033861405045663],
-                                                                [0.57715430861723449, 0.23866844682831212],
-                                                                [0.57915831663326656, 0.29213753533342007],
-                                                                [0.58116232464929862, 0.35894748542214772],
-                                                                [0.58316633266533069, 0.43304328994323527],
-                                                                [0.58517034068136276, 0.50770962242724493],
-                                                                [0.58717434869739482, 0.57617944927291564],
-                                                                [0.58917835671342689, 0.63224732816746854],
-                                                                [0.59118236472945906, 0.67083180930871633],
-                                                                [0.59318637274549102, 0.68843596882638047],
-                                                                [0.59519038076152309, 0.68346433611122004],
-                                                                [0.59719438877755515, 0.65636749182679954],
-                                                                [0.59919839679358722, 0.60960123163979518],
-                                                                [0.60120240480961928, 0.54740399667302386],
-                                                                [0.60320641282565135, 0.47541274223048163],
-                                                                [0.60521042084168342, 0.40015205873467313],
-                                                                [0.60721442885771548, 0.32844284600921136],
-                                                                [0.60921843687374766, 0.26678413294554681],
-                                                                [0.61122244488977961, 0.22076406843530649],
-                                                                [0.61322645290581168, 0.19455346564838949],
-                                                                [0.61523046092184375, 0.19052779990101529],
-                                                                [0.61723446893787581, 0.20905191856781144],
-                                                                [0.61923847695390788, 0.24844697484752667],
-                                                                [0.62124248496993995, 0.30514258218575241],
-                                                                [0.62324649298597201, 0.37400039955062075],
-                                                                [0.62525050100200408, 0.44877982092446689],
-                                                                [0.62725450901803625, 0.52270356342376301],
-                                                                [0.62925851703406821, 0.58907189461515441],
-                                                                [0.63126252505010028, 0.64186983140933562],
-                                                                [0.63326653306613234, 0.6763122799028487],
-                                                                [0.63527054108216441, 0.68927770996944548],
-                                                                [0.63727454909819647, 0.67959106053412155],
-                                                                [0.63927855711422854, 0.64813023573428075],
-                                                                [0.64128256513026061, 0.59774654018688766],
-                                                                [0.64328657314629267, 0.5330062643388177],
-                                                                [0.64529058116232485, 0.45977684010273429],
-                                                                [0.64729458917835681, 0.38469507362566419],
-                                                                [0.64929859719438887, 0.31456564942457071],
-                                                                [0.65130260521042094, 0.25574441965151501],
-                                                                [0.653306613226453, 0.2135623711796906],
-                                                                [0.65531062124248507, 0.1918424765575274],
-                                                                [0.65731462925851714, 0.19255321678354662],
-                                                                [0.6593186372745492, 0.21563017724367486],
-                                                                [0.66132264529058127, 0.25898188562832586],
-                                                                [0.66332665330661345, 0.31867936273695746],
-                                                                [0.6653306613226454, 0.38931220712001208],
-                                                                [0.66733466933867736, 0.46447894149327351],
-                                                                [0.66933867735470942, 0.53736718067216949],
-                                                                [0.67134268537074149, 0.60137104022056154],
-                                                                [0.67334669338677355, 0.65068982987062218],
-                                                                [0.67535070140280562, 0.68085377193765917],
-                                                                [0.67735470941883769, 0.68912909870169148],
-                                                                [0.67935871743486975, 0.67476581465054508],
-                                                                [0.68136272545090193, 0.63906566881306615],
-                                                                [0.68336673346693388, 0.58526417682815934],
-                                                                [0.68537074148296595, 0.51823738512729811],
-                                                                [0.68737474949899802, 0.44405995328641262],
-                                                                [0.68937875751503008, 0.36945460568506211],
-                                                                [0.69138276553106215, 0.30118284884507146],
-                                                                [0.69338677354709422, 0.24543217393123887],
-                                                                [0.69539078156312628, 0.20725528244749458],
-                                                                [0.69739478957915835, 0.19011215828305683],
-                                                                [0.69939879759519052, 0.19555648826560265],
-                                                                [0.70140280561122248, 0.22309485102699289],
-                                                                [0.70340681362725455, 0.27023143593972765],
-                                                                [0.70541082164328661, 0.33269423923261782],
-                                                                [0.70741482965931868, 0.4048222370593067],
-                                                                [0.70941883767535074, 0.48007844590063625],
-                                                                [0.71142284569138281, 0.55164237147236028],
-                                                                [0.71342685370741488, 0.61302815230425334],
-                                                                [0.71543086172344694, 0.65867237544017476],
-                                                                [0.71743486973947912, 0.6844382903342231],
-                                                                [0.71943887775551107, 0.68799072387618077],
-                                                                [0.72144288577154314, 0.66900771787759916],
-                                                                [0.72344689378757521, 0.62920970824542288],
-                                                                [0.72545090180360727, 0.57220360132531167],
-                                                                [0.72745490981963934, 0.50315587882557933],
-                                                                [0.72945891783567141, 0.42832435792702012],
-                                                                [0.73146292585170347, 0.35449104330975501],
-                                                                [0.73346693386773554, 0.28834747189925908],
-                                                                [0.73547094188376771, 0.23588825673398739],
-                                                                [0.73747494989979967, 0.20186779326780144],
-                                                                [0.73947895791583174, 0.18936936698891615],
-                                                                [0.7414829659318638, 0.19952571426964519],
-                                                                [0.74348697394789587, 0.23141636210658426],
-                                                                [0.74549098196392793, 0.28215105088340137],
-                                                                [0.74749498997996, 0.34713167952454455],
-                                                                [0.74949899799599207, 0.42046903286682075],
-                                                                [0.75150300601202413, 0.49551652311376854],
-                                                                [0.75350701402805631, 0.56547257221413993],
-                                                                [0.75551102204408827, 0.6239970410567085],
-                                                                [0.75751503006012033, 0.66578583830636451],
-                                                                [0.7595190380761524, 0.68705163189874996],
-                                                                [0.76152304609218446, 0.68586709615695807],
-                                                                [0.76352705410821653, 0.66233958593423981],
-                                                                [0.7655310621242486, 0.61860140700930921],
-                                                                [0.76753507014028066, 0.55861656453141884],
-                                                                [0.76953907815631262, 0.48782150396548368],
-                                                                [0.77154308617234468, 0.41263240430026271],
-                                                                [0.77354709418837686, 0.33986367769390347],
-                                                                [0.77555110220440882, 0.27611037711985637],
-                                                                [0.77755511022044088, 0.22715048460594175],
-                                                                [0.77955911823647295, 0.19742125087458026],
-                                                                [0.78156312625250501, 0.18961704589021242],
-                                                                [0.78356713426853708, 0.20444516724739445],
-                                                                [0.78557114228456915, 0.24056173756351684],
-                                                                [0.78757515030060121, 0.29469350051594778],
-                                                                [0.78957915831663328, 0.36193447710976262],
-                                                                [0.79158316633266546, 0.43619059612365768],
-                                                                [0.79358717434869741, 0.51073200173440936],
-                                                                [0.79559118236472948, 0.5788029825032609],
-                                                                [0.79759519038076154, 0.63423424366496783],
-                                                                [0.79959919839679361, 0.67200203228615563],
-                                                                [0.80160320641282568, 0.68868344160091899],
-                                                                [0.80360721442885774, 0.68276663014612693],
-                                                                [0.80561122244488981, 0.65478784043691218],
-                                                                [0.80761523046092187, 0.60728279913595828],
-                                                                [0.80961923847695405, 0.54455690333480822],
-                                                                [0.81162324649298601, 0.47229502103800675],
-                                                                [0.81362725450901807, 0.39704626975707485],
-                                                                [0.81563126252505014, 0.32563046789517391],
-                                                                [0.8176352705410822, 0.26452005242331855],
-                                                                [0.81963927855711427, 0.21925347984697094],
-                                                                [0.82164328657314634, 0.19393327412099473],
-                                                                [0.8236472945891784, 0.19085421359110888],
-                                                                [0.82565130260521047, 0.21029535449823],
-                                                                [0.82765531062124265, 0.25049474002207955],
-                                                                [0.8296593186372746, 0.30780908699152254],
-                                                                [0.83166332665330667, 0.37704397780395787],
-                                                                [0.83366733466933873, 0.45192463215452988],
-                                                                [0.8356713426853708, 0.52566459238264185],
-                                                                [0.83767535070140287, 0.59158078230097522],
-                                                                [0.83967935871743493, 0.64369919652845609],
-                                                                [0.841683366733467, 0.67729632650924865],
-                                                                [0.84368737474949906, 0.68932725360435787],
-                                                                [0.84569138276553124, 0.6787016110420635],
-                                                                [0.8476953907815632, 0.64638240420728155],
-                                                                [0.84969939879759526, 0.59529873315543158],
-                                                                [0.85170340681362733, 0.53008032733729127],
-                                                                [0.85370741482965939, 0.45663795173769528],
-                                                                [0.85571142284569146, 0.38162771235387383],
-                                                                [0.85771543086172353, 0.31184781117943822],
-                                                                [0.85971943887775559, 0.25362242298272047],
-                                                                [0.86172344689378766, 0.21222853332422684],
-                                                                [0.86372745490981984, 0.19141768366697462],
-                                                                [0.86573146292585179, 0.19307596797347923],
-                                                                [0.86773547094188386, 0.21705309540650553],
-                                                                [0.86973947895791592, 0.26117601123571804],
-                                                                [0.87174348697394799, 0.32144584148313676],
-                                                                [0.87374749498997994, 0.39240031215112664],
-                                                                [0.87575150300601201, 0.46760879686236662],
-                                                                [0.87775551102204408, 0.54025512658579589],
-                                                                [0.87975951903807614, 0.60375534121661756],
-                                                                [0.88176352705410832, 0.65235439598702516],
-                                                                [0.88376753507014028, 0.68164774301472353],
-                                                                [0.88577154308617234, 0.68898051688668727],
-                                                                [0.88777555110220441, 0.67368814596090354],
-                                                                [0.88977955911823647, 0.63715658270690689],
-                                                                [0.89178356713426854, 0.58269669439006855],
-                                                                [0.89378757515030061, 0.51524419811206046],
-                                                                [0.89579158316633267, 0.440912335190842],
-                                                                [0.89779559118236474, 0.36643782614417736],
-                                                                [0.89979959919839692, 0.29857031955383728],
-                                                                [0.90180360721442887, 0.24346066925515661],
-                                                                [0.90380761523046094, 0.20610348048610427],
-                                                                [0.905811623246493, 0.18988444721661846],
-                                                                [0.90781563126252507, 0.19627350562092116],
-                                                                [0.90981963927855714, 0.22469161329175635],
-                                                                [0.9118236472945892, 0.2725632280390245],
-                                                                [0.91382765531062127, 0.33554973010247435],
-                                                                [0.91583166332665333, 0.40794263264861935],
-                                                                [0.91783567134268551, 0.48318094375882431],
-                                                                [0.91983967935871747, 0.55444579122594806],
-                                                                [0.92184368737474953, 0.61527841912406922],
-                                                                [0.9238476953907816, 0.66016554692440066],
-                                                                [0.92585170340681366, 0.6850390398735281],
-                                                                [0.92785571142284573, 0.68764460534761962],
-                                                                [0.9298597194388778, 0.66774610011415148],
-                                                                [0.93186372745490986, 0.62714693206861827],
-                                                                [0.93386773547094193, 0.56952661680001027],
-                                                                [0.93587174348697411, 0.50010730191576247],
-                                                                [0.93787575150300606, 0.42518048213336862],
-                                                                [0.93987975951903813, 0.35153679910126723],
-                                                                [0.94188376753507019, 0.28585060337372087],
-                                                                [0.94388777555110226, 0.23407505588469554],
-                                                                [0.94589178356713433, 0.20090259106783129],
-                                                                [0.94789579158316639, 0.18933964002244882],
-                                                                [0.94989979959919846, 0.20043415670116363],
-                                                                [0.95190380761523052, 0.23318064150787909],
-                                                                [0.9539078156312627, 0.28461127004787917],
-                                                                [0.95591182364729466, 0.35006486800223174],
-                                                                [0.95791583166332672, 0.42360935484755152],
-                                                                [0.95991983967935879, 0.49857937021173965],
-                                                                [0.96192384769539085, 0.56818035761695318],
-                                                                [0.96392785571142292, 0.62610435730700498],
-                                                                [0.96593186372745499, 0.66710169865817226],
-                                                                [0.96793587174348705, 0.68745677950739958],
-                                                                [0.96993987975951912, 0.68532481236505838],
-                                                                [0.9719438877755513, 0.66089901809534235],
-                                                                [0.97394789579158325, 0.61639311424753951],
-                                                                [0.97595190380761521, 0.5558406851262917],
-                                                                [0.97795591182364727, 0.48472961675556331],
-                                                                [0.97995991983967934, 0.4095047280125938],
-                                                                [0.9819639278557114, 0.33698367463108148],
-                                                                [0.98396793587174347, 0.27373906288087546],
-                                                                [0.98597194388777554, 0.22550277215893588],
-                                                                [0.9879759519038076, 0.1966464729257851],
-                                                                [0.98997995991983967, 0.18978542081300295],
-                                                                [0.99198396793587185, 0.20554143516864787],
-                                                                [0.9939879759519038, 0.24248654337080244],
-                                                                [0.99599198396793587, 0.29727239844313674],
-                                                                [0.99799599198396793, 0.36493374081264102],
-                                                                [1.0, 0.43933840137326668]]},
-                                      'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                      'sndgain': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
-                                      'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
-                                      'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
-                                      'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
-                        'userInputs': {'snd': {'dursnd': 5.3334465026855469,
-                                               'gain': [0.0, False, False],
-                                               'gensizesnd': 262144,
-                                               'loopIn': [0.0, False, False],
-                                               'loopMode': 1,
-                                               'loopOut': [5.3334465026855469, False, False],
-                                               'loopX': [1.0, False, False],
-                                               'nchnlssnd': 2,
-                                               'offsnd': 0.0,
-                                               'path': u'/Users/jm/Desktop/Dropbox/Maitrise/svnBKP/memoire/bub/snds/guitar.wav',
-                                               'srsnd': 44100.0,
-                                               'startFromLoop': 0,
-                                               'transp': [0.0, False, False],
-                                               'type': 'csampler'}},
-                        'userSliders': {'filtrange': [[260.50880564451268, 810.56523578378403], 1, None, [1, 1]]},
-                        'userTogglePopups': {'filtnum': 3, 'polynum': 0, 'polyspread': 0.001}},
- u'05-Thin Auto-Wah': {'gainSlider': -6.0,
-                       'nchnls': 2,
-                       'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
-                                   1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
-                                   2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
-                       'totalTime': 30.000000000000135,
-                       'userGraph': {'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                     'filtrangemax': {'curved': False,
-                                                      'data': [[0.0, 0.62132319725344931],
-                                                               [0.0014306151645207439, 0.64223322263638616],
-                                                               [0.0028612303290414878, 0.65931063863311568],
-                                                               [0.0042918454935622317, 0.66942531681755557],
-                                                               [0.0057224606580829757, 0.67072333258472738],
-                                                               [0.0071530758226037196, 0.66296677195214671],
-                                                               [0.0085836909871244635, 0.64757733893693858],
-                                                               [0.010014306151645207, 0.62737577068993577],
-                                                               [0.011444921316165951, 0.60606482312183829],
-                                                               [0.012875536480686695, 0.58755059085389538],
-                                                               [0.014306151645207439, 0.57522655711097392],
-                                                               [0.015736766809728183, 0.57135160042306332],
-                                                               [0.017167381974248927, 0.57663596360915903],
-                                                               [0.018597997138769671, 0.59011107300298093],
-                                                               [0.020028612303290415, 0.60930706882209729],
-                                                               [0.021459227467811159, 0.63070550704711625],
-                                                               [0.022889842632331903, 0.6503842568489514],
-                                                               [0.024320457796852647, 0.66473638998059625],
-                                                               [0.02575107296137339, 0.67113129652431625],
-                                                               [0.027181688125894134, 0.66839685074642485],
-                                                               [0.028612303290414878, 0.65703425063030496],
-                                                               [0.030042918454935619, 0.63912615303835851],
-                                                               [0.031473533619456366, 0.61795494245664229],
-                                                               [0.032904148783977114, 0.59740110104177113],
-                                                               [0.034334763948497854, 0.58123195303590258],
-                                                               [0.035765379113018594, 0.57241114995448739],
-                                                               [0.037195994277539342, 0.57255546136449664],
-                                                               [0.038626609442060082, 0.58163843635281998],
-                                                               [0.04005722460658083, 0.5979952517278343],
-                                                               [0.041487839771101563, 0.61862785832476497],
-                                                               [0.042918454935622317, 0.63975449499042591],
-                                                               [0.044349070100143065, 0.65750284954437022],
-                                                               [0.045779685264663805, 0.66861981688474115],
-                                                               [0.047210300429184546, 0.67106776230787002],
-                                                               [0.048640915593705293, 0.6643980006288378],
-                                                               [0.05007153075822604, 0.64983303592148856],
-                                                               [0.051502145922746781, 0.63004248811333874],
-                                                               [0.052932761087267521, 0.60865377696589673],
-                                                               [0.054363376251788269, 0.58958725042715898],
-                                                               [0.055793991416309016, 0.57633762202503835],
-                                                               [0.057224606580829757, 0.57133342301417211],
-                                                               [0.058655221745350497, 0.57549187562400561],
-                                                               [0.060085836909871237, 0.58805077492113145],
-                                                               [0.061516452074391992, 0.6067081937464428],
-                                                               [0.062947067238912732, 0.62804440413678575],
-                                                               [0.064377682403433473, 0.64814868103513301],
-                                                               [0.065808297567954227, 0.66333610111248731],
-                                                               [0.067238912732474967, 0.67082295427406091],
-                                                               [0.068669527896995708, 0.66923697132482873],
-                                                               [0.070100143061516448, 0.65886884790127465],
-                                                               [0.071530758226037189, 0.64161896271756813],
-                                                               [0.072961373390557943, 0.62064905616643051],
-                                                               [0.074391988555078684, 0.5998027132844147],
-                                                               [0.075822603719599424, 0.58290087105913857],
-                                                               [0.077253218884120164, 0.57304147690914808],
-                                                               [0.078683834048640919, 0.57203166429648133],
-                                                               [0.080114449213161659, 0.58005652229811133],
-                                                               [0.0815450643776824, 0.59564517053313137],
-                                                               [0.082975679542203126, 0.61594035758985355],
-                                                               [0.084406294706723894, 0.63722216811743904],
-                                                               [0.085836909871244635, 0.65558984803789044],
-                                                               [0.087267525035765375, 0.66767677578204332],
-                                                               [0.08869814020028613, 0.6712675321012701],
-                                                               [0.09012875536480687, 0.6657039654093998],
-                                                               [0.091559370529327611, 0.65200582472794533],
-                                                               [0.092989985693848351, 0.63268384935960331],
-                                                               [0.094420600858369091, 0.61127957418061607],
-                                                               [0.09585121602288986, 0.59171619987838586],
-                                                               [0.097281831187410586, 0.57757950746481979],
-                                                               [0.098712446351931327, 0.57146061861681263],
-                                                               [0.10014306151645208, 0.57448106764159546],
-                                                               [0.10157367668097282, 0.58608723487248016],
-                                                               [0.10300429184549356, 0.60415181990440425],
-                                                               [0.1044349070100143, 0.62536375558735935],
-                                                               [0.10586552217453504, 0.64583509523982363],
-                                                               [0.1072961373390558, 0.66181363641041757],
-                                                               [0.10872675250357654, 0.6703706640092828],
-                                                               [0.11015736766809728, 0.66993775601431116],
-                                                               [0.11158798283261803, 0.66059426035619617],
-                                                               [0.11301859799713877, 0.64405275119510641],
-                                                               [0.11444921316165951, 0.62334513031555905],
-                                                               [0.11587982832618025, 0.60226690827746632],
-                                                               [0.11731044349070099, 0.58468152331910439],
-                                                               [0.11874105865522175, 0.57381220976071878],
-                                                               [0.12017167381974247, 0.57165120971596484],
-                                                               [0.12160228898426323, 0.57859461400268952],
-                                                               [0.12303290414878398, 0.59336976245170703],
-                                                               [0.12446351931330472, 0.61326851044859054],
-                                                               [0.12589413447782546, 0.63464360616317972],
-                                                               [0.12732474964234622, 0.65357719722721896],
-                                                               [0.12875536480686695, 0.66659893592482977],
-                                                               [0.1301859799713877, 0.67132206102338643],
-                                                               [0.13161659513590845, 0.66688086847645944],
-                                                               [0.13304721030042918, 0.65408938676701733],
-                                                               [0.13447782546494993, 0.63529217320502418],
-                                                               [0.13590844062947066, 0.61393457880335078],
-                                                               [0.13733905579399142, 0.5939312481055391],
-                                                               [0.13876967095851217, 0.57894860195918973],
-                                                               [0.1402002861230329, 0.57173281733918035],
-                                                               [0.14163090128755365, 0.57360647914710805],
-                                                               [0.14306151645207438, 0.5842261629394282],
-                                                               [0.14449213161659513, 0.60164538137164414],
-                                                               [0.14592274678111589, 0.62267135687218012],
-                                                               [0.14735336194563661, 0.64345022749769909],
-                                                               [0.14878397711015737, 0.66017342328543405],
-                                                               [0.15021459227467812, 0.66977574101493553],
-                                                               [0.15164520743919885, 0.67049716689447136],
-                                                               [0.1530758226037196, 0.66220547040080135],
-                                                               [0.15450643776824033, 0.64642044088029083],
-                                                               [0.15593705293276108, 0.62603532457219291],
-                                                               [0.15736766809728184, 0.60478652000642519],
-                                                               [0.15879828326180256, 0.5865687315811422],
-                                                               [0.16022889842632332, 0.57472110717569802],
-                                                               [0.16165951359084407, 0.57141520400578227],
-                                                               [0.1630901287553648, 0.57725696277624206],
-                                                               [0.16452074391988555, 0.59117564449534532],
-                                                               [0.16595135908440625, 0.61062008677933866],
-                                                               [0.16738197424892703, 0.6320263077275593],
-                                                               [0.16881258941344779, 0.65147075001155308],
-                                                               [0.17024320457796852, 0.66538943173065646],
-                                                               [0.17167381974248927, 0.67123119050111635],
-                                                               [0.17310443490701002, 0.66792528733120049],
-                                                               [0.17453505007153075, 0.65607766292575698],
-                                                               [0.17596566523605151, 0.63785987450047354],
-                                                               [0.17739628040057226, 0.61661106993470538],
-                                                               [0.17882689556509296, 0.59622595362660791],
-                                                               [0.18025751072961374, 0.58044092410609716],
-                                                               [0.18168812589413447, 0.57214922761242715],
-                                                               [0.18311874105865522, 0.57287065349196331],
-                                                               [0.18454935622317598, 0.58247297122146435],
-                                                               [0.1859799713876967, 0.59919616700919931],
-                                                               [0.18741058655221746, 0.61997503763471817],
-                                                               [0.18884120171673818, 0.64100101313525437],
-                                                               [0.19027181688125894, 0.65842023156747009],
-                                                               [0.19170243204577972, 0.66903991535979046],
-                                                               [0.19313304721030042, 0.67091357716771816],
-                                                               [0.19456366237482117, 0.66369779254770866],
-                                                               [0.19599427753934193, 0.64871514640135963],
-                                                               [0.19742489270386265, 0.62871181570354839],
-                                                               [0.19885550786838341, 0.60735422130187466],
-                                                               [0.20028612303290416, 0.58855700773988151],
-                                                               [0.20171673819742489, 0.57576552603043929],
-                                                               [0.20314735336194564, 0.57132433348351219],
-                                                               [0.20457796852646637, 0.57604745858206863],
-                                                               [0.20600858369098712, 0.58906919727967921],
-                                                               [0.20743919885550788, 0.60800278834371901],
-                                                               [0.2088698140200286, 0.62937788405830775],
-                                                               [0.21030042918454936, 0.64927663205519193],
-                                                               [0.21173104434907009, 0.66405178050420866],
-                                                               [0.21316165951359084, 0.67099518479093367],
-                                                               [0.21459227467811159, 0.66883418474617995],
-                                                               [0.21602288984263235, 0.65796487118779412],
-                                                               [0.21745350500715308, 0.64037948622943242],
-                                                               [0.21888412017167383, 0.61930126419133991],
-                                                               [0.22031473533619456, 0.59859364331179243],
-                                                               [0.22174535050071531, 0.58205213415070256],
-                                                               [0.22317596566523606, 0.57270863849258735],
-                                                               [0.22460658082975679, 0.5722757304976156],
-                                                               [0.22603719599427755, 0.58083275809648116],
-                                                               [0.22746781115879827, 0.5968112992670741],
-                                                               [0.22889842632331903, 0.61728263891953905],
-                                                               [0.23032904148783978, 0.63849457460249426],
-                                                               [0.23175965665236051, 0.65655915963441835],
-                                                               [0.23319027181688126, 0.66816532686530306],
-                                                               [0.23462088698140199, 0.67118577589008588],
-                                                               [0.23605150214592274, 0.66506688704207884],
-                                                               [0.2374821173104435, 0.65093019462851265],
-                                                               [0.23891273247496422, 0.63136682032628288],
-                                                               [0.24034334763948495, 0.60996254514729553],
-                                                               [0.24177396280400573, 0.59064056977895296],
-                                                               [0.24320457796852646, 0.57694242909749882],
-                                                               [0.24463519313304721, 0.57137886240562841],
-                                                               [0.24606580829756797, 0.5749696187248553],
-                                                               [0.24749642346208869, 0.58705654646900818],
-                                                               [0.24892703862660945, 0.60542422638945947],
-                                                               [0.25035765379113017, 0.62670603691704474],
-                                                               [0.25178826895565093, 0.64700122397376725],
-                                                               [0.25321888412017168, 0.66258987220878707],
-                                                               [0.25464949928469244, 0.67061473021041718],
-                                                               [0.25608011444921314, 0.66960491759775043],
-                                                               [0.25751072961373389, 0.65974552344776016],
-                                                               [0.25894134477825465, 0.64284368122248425],
-                                                               [0.2603719599427754, 0.62199733834046844],
-                                                               [0.26180257510729615, 0.60102743178933027],
-                                                               [0.26323319027181691, 0.58377754660562386],
-                                                               [0.26466380543633761, 0.57340942318207011],
-                                                               [0.26609442060085836, 0.5718234402328376],
-                                                               [0.26752503576537912, 0.57931029339441142],
-                                                               [0.26895565092989987, 0.59449771347176561],
-                                                               [0.27038626609442062, 0.61460199037011287],
-                                                               [0.27181688125894132, 0.63593820076045493],
-                                                               [0.27324749642346208, 0.65459561958576706],
-                                                               [0.27467811158798283, 0.66715451888289279],
-                                                               [0.27610872675250359, 0.67131297149272628],
-                                                               [0.27753934191702434, 0.66630877248185982],
-                                                               [0.27896995708154504, 0.65305914407973964],
-                                                               [0.28040057224606579, 0.63399261754100233],
-                                                               [0.28183118741058655, 0.61260390639356022],
-                                                               [0.2832618025751073, 0.59281335858540984],
-                                                               [0.28469241773962806, 0.57824839387806071],
-                                                               [0.28612303290414876, 0.57157863219902871],
-                                                               [0.28755364806866951, 0.57402657762215736],
-                                                               [0.28898426323319026, 0.58514354496252841],
-                                                               [0.29041487839771102, 0.6028918995164726],
-                                                               [0.29184549356223177, 0.62401853618213343],
-                                                               [0.29327610872675253, 0.6446511427790641],
-                                                               [0.29470672389127323, 0.66100795815407853],
-                                                               [0.29613733905579404, 0.67009093314240176],
-                                                               [0.29756795422031473, 0.67023524455241124],
-                                                               [0.29899856938483549, 0.66141444147099626],
-                                                               [0.30042918454935624, 0.64524529346512705],
-                                                               [0.30185979971387694, 0.624691452050257],
-                                                               [0.3032904148783977, 0.60352024146854066],
-                                                               [0.30472103004291845, 0.58561214387659399],
-                                                               [0.3061516452074392, 0.57424954376047366],
-                                                               [0.30758226037195996, 0.57151509798258227],
-                                                               [0.30901287553648066, 0.57791000452630226],
-                                                               [0.31044349070100141, 0.59226213765794666],
-                                                               [0.31187410586552217, 0.61194088745978226],
-                                                               [0.31330472103004292, 0.63333932568480089],
-                                                               [0.31473533619456368, 0.65253532150391758],
-                                                               [0.31616595135908443, 0.6660104308977397],
-                                                               [0.31759656652360513, 0.67129479408383508],
-                                                               [0.31902718168812588, 0.66741983739592492],
-                                                               [0.32045779685264664, 0.65509580365300346],
-                                                               [0.32188841201716745, 0.63658157138505989],
-                                                               [0.32331902718168815, 0.61527062381696274],
-                                                               [0.32474964234620884, 0.59506905556996048],
-                                                               [0.3261802575107296, 0.57967962255475225],
-                                                               [0.32761087267525035, 0.57192306192217124],
-                                                               [0.32904148783977111, 0.57322107768934305],
-                                                               [0.33047210300429186, 0.58333575587378295],
-                                                               [0.3319027181688125, 0.60041317187051169],
-                                                               [0.33333333333333331, 0.62132319725344898],
-                                                               [0.33476394849785407, 0.64223322263638605],
-                                                               [0.33619456366237482, 0.65931063863311534],
-                                                               [0.33762517882689558, 0.66942531681755535],
-                                                               [0.33905579399141633, 0.67072333258472738],
-                                                               [0.34048640915593703, 0.66296677195214693],
-                                                               [0.34191702432045779, 0.64757733893693914],
-                                                               [0.34334763948497854, 0.62737577068993611],
-                                                               [0.34477825464949929, 0.60606482312183829],
-                                                               [0.34620886981402005, 0.58755059085389538],
-                                                               [0.34763948497854075, 0.57522655711097415],
-                                                               [0.3490701001430615, 0.57135160042306332],
-                                                               [0.35050071530758226, 0.57663596360915903],
-                                                               [0.35193133047210301, 0.59011107300298071],
-                                                               [0.35336194563662376, 0.60930706882209718],
-                                                               [0.35479256080114452, 0.6307055070471167],
-                                                               [0.35622317596566522, 0.65038425684895107],
-                                                               [0.35765379113018592, 0.66473638998059614],
-                                                               [0.35908440629470673, 0.67113129652431625],
-                                                               [0.36051502145922748, 0.66839685074642474],
-                                                               [0.36194563662374823, 0.65703425063030496],
-                                                               [0.36337625178826893, 0.63912615303835907],
-                                                               [0.36480686695278969, 0.61795494245664273],
-                                                               [0.36623748211731044, 0.59740110104177113],
-                                                               [0.3676680972818312, 0.58123195303590258],
-                                                               [0.36909871244635195, 0.57241114995448739],
-                                                               [0.37052932761087265, 0.57255546136449653],
-                                                               [0.3719599427753934, 0.58163843635281964],
-                                                               [0.37339055793991416, 0.59799525172783419],
-                                                               [0.37482117310443491, 0.61862785832476463],
-                                                               [0.37625178826895567, 0.63975449499042636],
-                                                               [0.37768240343347637, 0.65750284954436988],
-                                                               [0.37911301859799712, 0.66861981688474093],
-                                                               [0.38054363376251787, 0.67106776230787013],
-                                                               [0.38197424892703863, 0.6643980006288378],
-                                                               [0.38340486409155944, 0.64983303592148844],
-                                                               [0.38483547925608014, 0.63004248811333874],
-                                                               [0.38626609442060084, 0.60865377696589729],
-                                                               [0.38769670958512159, 0.5895872504271592],
-                                                               [0.38912732474964234, 0.57633762202503835],
-                                                               [0.3905579399141631, 0.57133342301417211],
-                                                               [0.39198855507868385, 0.57549187562400539],
-                                                               [0.39341917024320455, 0.58805077492113123],
-                                                               [0.39484978540772531, 0.60670819374644236],
-                                                               [0.39628040057224606, 0.62804440413678531],
-                                                               [0.39771101573676682, 0.64814868103513268],
-                                                               [0.39914163090128757, 0.66333610111248742],
-                                                               [0.40057224606580832, 0.67082295427406091],
-                                                               [0.40200286123032902, 0.66923697132482873],
-                                                               [0.40343347639484978, 0.65886884790127498],
-                                                               [0.40486409155937053, 0.6416189627175678],
-                                                               [0.40629470672389129, 0.62064905616643051],
-                                                               [0.40772532188841204, 0.5998027132844147],
-                                                               [0.40915593705293274, 0.58290087105913913],
-                                                               [0.41058655221745349, 0.57304147690914808],
-                                                               [0.41201716738197425, 0.57203166429648122],
-                                                               [0.413447782546495, 0.58005652229811122],
-                                                               [0.41487839771101576, 0.59564517053313182],
-                                                               [0.41630901287553645, 0.61594035758985344],
-                                                               [0.41773962804005721, 0.6372221681174387],
-                                                               [0.41917024320457791, 0.65558984803789011],
-                                                               [0.42060085836909872, 0.66767677578204332],
-                                                               [0.42203147353361947, 0.6712675321012701],
-                                                               [0.42346208869814017, 0.66570396540940024],
-                                                               [0.42489270386266093, 0.65200582472794588],
-                                                               [0.42632331902718168, 0.63268384935960331],
-                                                               [0.42775393419170243, 0.61127957418061662],
-                                                               [0.42918454935622319, 0.5917161998783862],
-                                                               [0.43061516452074394, 0.57757950746481956],
-                                                               [0.4320457796852647, 0.57146061861681263],
-                                                               [0.4334763948497854, 0.57448106764159512],
-                                                               [0.43490701001430615, 0.58608723487247982],
-                                                               [0.4363376251788269, 0.6041518199044047],
-                                                               [0.43776824034334766, 0.62536375558735902],
-                                                               [0.43919885550786836, 0.64583509523982274],
-                                                               [0.44062947067238911, 0.66181363641041724],
-                                                               [0.44206008583690987, 0.6703706640092828],
-                                                               [0.44349070100143062, 0.66993775601431116],
-                                                               [0.44492131616595143, 0.66059426035619628],
-                                                               [0.44635193133047213, 0.64405275119510597],
-                                                               [0.44778254649499283, 0.62334513031555916],
-                                                               [0.44921316165951358, 0.60226690827746721],
-                                                               [0.45064377682403434, 0.58468152331910472],
-                                                               [0.45207439198855509, 0.57381220976071856],
-                                                               [0.45350500715307585, 0.57165120971596484],
-                                                               [0.45493562231759654, 0.57859461400268908],
-                                                               [0.4563662374821173, 0.59336976245170636],
-                                                               [0.45779685264663805, 0.61326851044859076],
-                                                               [0.45922746781115881, 0.63464360616317916],
-                                                               [0.46065808297567956, 0.65357719722721919],
-                                                               [0.46208869814020026, 0.66659893592482955],
-                                                               [0.46351931330472101, 0.67132206102338643],
-                                                               [0.46494992846924177, 0.66688086847645967],
-                                                               [0.46638054363376252, 0.65408938676701711],
-                                                               [0.46781115879828328, 0.63529217320502351],
-                                                               [0.46924177396280398, 0.61393457880335056],
-                                                               [0.47067238912732473, 0.59393124810553977],
-                                                               [0.47210300429184548, 0.57894860195919007],
-                                                               [0.47353361945636624, 0.57173281733918024],
-                                                               [0.47496423462088699, 0.57360647914710794],
-                                                               [0.47639484978540775, 0.58422616293942842],
-                                                               [0.47782546494992845, 0.60164538137164358],
-                                                               [0.4792560801144492, 0.62267135687218034],
-                                                               [0.4806866952789699, 0.64345022749769865],
-                                                               [0.48211731044349071, 0.66017342328543427],
-                                                               [0.48354792560801146, 0.66977574101493564],
-                                                               [0.48497854077253216, 0.67049716689447136],
-                                                               [0.48640915593705292, 0.66220547040080191],
-                                                               [0.48783977110157367, 0.64642044088029094],
-                                                               [0.48927038626609443, 0.62603532457219246],
-                                                               [0.49070100143061518, 0.60478652000642552],
-                                                               [0.49213161659513593, 0.58656873158114176],
-                                                               [0.49356223175965669, 0.57472110717569802],
-                                                               [0.49499284692417739, 0.57141520400578227],
-                                                               [0.49642346208869814, 0.57725696277624194],
-                                                               [0.4978540772532189, 0.59117564449534543],
-                                                               [0.49928469241773965, 0.61062008677933843],
-                                                               [0.50071530758226035, 0.63202630772755963],
-                                                               [0.50214592274678116, 0.65147075001155375],
-                                                               [0.50357653791130186, 0.66538943173065646],
-                                                               [0.50500715307582256, 0.67123119050111635],
-                                                               [0.50643776824034337, 0.6679252873312006],
-                                                               [0.50786838340486407, 0.6560776629257572],
-                                                               [0.50929899856938488, 0.63785987450047366],
-                                                               [0.51072961373390557, 0.61661106993470682],
-                                                               [0.51216022889842627, 0.59622595362660802],
-                                                               [0.51359084406294708, 0.58044092410609693],
-                                                               [0.51502145922746778, 0.57214922761242737],
-                                                               [0.51645207439198859, 0.57287065349196331],
-                                                               [0.51788268955650929, 0.58247297122146413],
-                                                               [0.51931330472102999, 0.59919616700919809],
-                                                               [0.5207439198855508, 0.61997503763471773],
-                                                               [0.5221745350500715, 0.64100101313525315],
-                                                               [0.52360515021459231, 0.65842023156747065],
-                                                               [0.52503576537911301, 0.66903991535979046],
-                                                               [0.52646638054363382, 0.67091357716771816],
-                                                               [0.52789699570815452, 0.66369779254770878],
-                                                               [0.52932761087267521, 0.64871514640136041],
-                                                               [0.53075822603719602, 0.62871181570354862],
-                                                               [0.53218884120171672, 0.60735422130187555],
-                                                               [0.53361945636623753, 0.58855700773988062],
-                                                               [0.53505007153075823, 0.57576552603043896],
-                                                               [0.53648068669527893, 0.57132433348351219],
-                                                               [0.53791130185979974, 0.57604745858206874],
-                                                               [0.53934191702432044, 0.58906919727967899],
-                                                               [0.54077253218884125, 0.60800278834371879],
-                                                               [0.54220314735336195, 0.62937788405830741],
-                                                               [0.54363376251788265, 0.64927663205519037],
-                                                               [0.54506437768240346, 0.66405178050420899],
-                                                               [0.54649499284692415, 0.67099518479093356],
-                                                               [0.54792560801144496, 0.66883418474617973],
-                                                               [0.54935622317596566, 0.65796487118779423],
-                                                               [0.55078683834048636, 0.64037948622943308],
-                                                               [0.55221745350500717, 0.61930126419134002],
-                                                               [0.55364806866952787, 0.59859364331179321],
-                                                               [0.55507868383404868, 0.58205213415070178],
-                                                               [0.55650929899856949, 0.57270863849258735],
-                                                               [0.55793991416309008, 0.5722757304976156],
-                                                               [0.55937052932761089, 0.58083275809648083],
-                                                               [0.56080114449213159, 0.5968112992670741],
-                                                               [0.5622317596566524, 0.61728263891953894],
-                                                               [0.5636623748211731, 0.63849457460249337],
-                                                               [0.56509298998569379, 0.65655915963441724],
-                                                               [0.5665236051502146, 0.66816532686530306],
-                                                               [0.5679542203147353, 0.67118577589008599],
-                                                               [0.56938483547925611, 0.66506688704207861],
-                                                               [0.57081545064377681, 0.65093019462851298],
-                                                               [0.57224606580829751, 0.63136682032628366],
-                                                               [0.57367668097281832, 0.60996254514729564],
-                                                               [0.57510729613733902, 0.59064056977895429],
-                                                               [0.57653791130185983, 0.57694242909749838],
-                                                               [0.57796852646638053, 0.57137886240562852],
-                                                               [0.57939914163090134, 0.57496961872485552],
-                                                               [0.58082975679542204, 0.58705654646900796],
-                                                               [0.58226037195994274, 0.60542422638945859],
-                                                               [0.58369098712446355, 0.62670603691704452],
-                                                               [0.58512160228898424, 0.64700122397376625],
-                                                               [0.58655221745350505, 0.66258987220878707],
-                                                               [0.58798283261802575, 0.6706147302104174],
-                                                               [0.58941344778254645, 0.66960491759775043],
-                                                               [0.59084406294706726, 0.65974552344775983],
-                                                               [0.59227467811158807, 0.64284368122248459],
-                                                               [0.59370529327610877, 0.62199733834046789],
-                                                               [0.59513590844062947, 0.60102743178933127],
-                                                               [0.59656652360515017, 0.58377754660562475],
-                                                               [0.59799713876967098, 0.57340942318207011],
-                                                               [0.59942775393419168, 0.5718234402328376],
-                                                               [0.60085836909871249, 0.57931029339441154],
-                                                               [0.60228898426323318, 0.59449771347176539],
-                                                               [0.60371959942775388, 0.61460199037011198],
-                                                               [0.60515021459227469, 0.63593820076045549],
-                                                               [0.60658082975679539, 0.6545956195857664],
-                                                               [0.6080114449213162, 0.66715451888289279],
-                                                               [0.6094420600858369, 0.67131297149272651],
-                                                               [0.6108726752503576, 0.66630877248186027],
-                                                               [0.61230329041487841, 0.6530591440797392],
-                                                               [0.61373390557939911, 0.63399261754100256],
-                                                               [0.61516452074391992, 0.61260390639355988],
-                                                               [0.61659513590844062, 0.59281335858541062],
-                                                               [0.61802575107296132, 0.57824839387806071],
-                                                               [0.61945636623748213, 0.57157863219902871],
-                                                               [0.62088698140200282, 0.57402657762215703],
-                                                               [0.62231759656652363, 0.58514354496252874],
-                                                               [0.62374821173104433, 0.60289189951647237],
-                                                               [0.62517882689556514, 0.62401853618213388],
-                                                               [0.62660944206008584, 0.64465114277906388],
-                                                               [0.62804005722460643, 0.66100795815407798],
-                                                               [0.62947067238912735, 0.67009093314240176],
-                                                               [0.63090128755364805, 0.67023524455241146],
-                                                               [0.63233190271816886, 0.6614144414709956],
-                                                               [0.63376251788268956, 0.64524529346512727],
-                                                               [0.63519313304721026, 0.62469145205025711],
-                                                               [0.63662374821173107, 0.60352024146854],
-                                                               [0.63805436337625177, 0.58561214387659399],
-                                                               [0.63948497854077258, 0.57424954376047388],
-                                                               [0.64091559370529327, 0.57151509798258227],
-                                                               [0.64234620886981397, 0.57791000452630137],
-                                                               [0.64377682403433489, 0.59226213765794755],
-                                                               [0.64520743919885548, 0.61194088745978192],
-                                                               [0.64663805436337629, 0.63333932568480156],
-                                                               [0.64806866952789699, 0.65253532150391746],
-                                                               [0.64949928469241769, 0.66601043089773893],
-                                                               [0.6509298998569385, 0.67129479408383508],
-                                                               [0.6523605150214592, 0.66741983739592525],
-                                                               [0.6537911301859799, 0.65509580365300257],
-                                                               [0.65522174535050071, 0.63658157138506033],
-                                                               [0.6566523605150214, 0.61527062381696362],
-                                                               [0.65808297567954221, 0.59506905556995993],
-                                                               [0.65951359084406291, 0.57967962255475247],
-                                                               [0.66094420600858372, 0.57192306192217124],
-                                                               [0.66237482117310442, 0.57322107768934272],
-                                                               [0.66380543633762501, 0.58333575587378173],
-                                                               [0.66523605150214593, 0.6004131718705128],
-                                                               [0.66666666666666663, 0.62132319725344898],
-                                                               [0.66809728183118744, 0.64223322263638638],
-                                                               [0.66952789699570814, 0.65931063863311534],
-                                                               [0.67095851216022895, 0.66942531681755557],
-                                                               [0.67238912732474965, 0.67072333258472749],
-                                                               [0.67381974248927035, 0.66296677195214748],
-                                                               [0.67525035765379116, 0.64757733893693914],
-                                                               [0.67668097281831185, 0.62737577068993577],
-                                                               [0.67811158798283266, 0.60606482312183785],
-                                                               [0.67954220314735347, 0.58755059085389549],
-                                                               [0.68097281831187406, 0.57522655711097415],
-                                                               [0.68240343347639487, 0.57135160042306332],
-                                                               [0.68383404864091557, 0.57663596360915881],
-                                                               [0.68526466380543638, 0.59011107300298049],
-                                                               [0.68669527896995708, 0.6093070688220964],
-                                                               [0.68812589413447778, 0.6307055070471157],
-                                                               [0.68955650929899859, 0.6503842568489514],
-                                                               [0.69098712446351929, 0.66473638998059592],
-                                                               [0.6924177396280401, 0.67113129652431625],
-                                                               [0.6938483547925608, 0.66839685074642496],
-                                                               [0.69527896995708149, 0.65703425063030607],
-                                                               [0.6967095851216023, 0.63912615303835907],
-                                                               [0.698140200286123, 0.61795494245664362],
-                                                               [0.69957081545064381, 0.5974011010417708],
-                                                               [0.70100143061516451, 0.58123195303590258],
-                                                               [0.70243204577968521, 0.57241114995448761],
-                                                               [0.70386266094420602, 0.57255546136449653],
-                                                               [0.70529327610872672, 0.5816384363528192],
-                                                               [0.70672389127324753, 0.59799525172783408],
-                                                               [0.70815450643776823, 0.61862785832476375],
-                                                               [0.70958512160228904, 0.6397544949904268],
-                                                               [0.71101573676680974, 0.65750284954437033],
-                                                               [0.71244635193133043, 0.66861981688474093],
-                                                               [0.71387696709585124, 0.67106776230787002],
-                                                               [0.71530758226037183, 0.66439800062883814],
-                                                               [0.71673819742489275, 0.64983303592148856],
-                                                               [0.71816881258941345, 0.63004248811333963],
-                                                               [0.71959942775393415, 0.60865377696589817],
-                                                               [0.72103004291845496, 0.58958725042715876],
-                                                               [0.72246065808297566, 0.57633762202503858],
-                                                               [0.72389127324749647, 0.57133342301417211],
-                                                               [0.72532188841201717, 0.57549187562400539],
-                                                               [0.72675250357653787, 0.58805077492113067],
-                                                               [0.72818311874105868, 0.60670819374644236],
-                                                               [0.72961373390557938, 0.62804440413678442],
-                                                               [0.7310443490701003, 0.64814868103513379],
-                                                               [0.73247496423462088, 0.66333610111248731],
-                                                               [0.73390557939914158, 0.6708229542740608],
-                                                               [0.73533619456366239, 0.66923697132482873],
-                                                               [0.73676680972818309, 0.6588688479012752],
-                                                               [0.7381974248927039, 0.64161896271756813],
-                                                               [0.7396280400572246, 0.6206490561664314],
-                                                               [0.7410586552217453, 0.59980271328441603],
-                                                               [0.74248927038626611, 0.58290087105913824],
-                                                               [0.74391988555078681, 0.57304147690914831],
-                                                               [0.74535050071530762, 0.57203166429648133],
-                                                               [0.74678111587982832, 0.580056522298111],
-                                                               [0.74821173104434902, 0.59564517053313049],
-                                                               [0.74964234620886983, 0.6159403575898531],
-                                                               [0.75107296137339041, 0.63722216811743781],
-                                                               [0.75250357653791133, 0.655589848037891],
-                                                               [0.75393419170243203, 0.66767677578204332],
-                                                               [0.75536480686695273, 0.6712675321012701],
-                                                               [0.75679542203147354, 0.66570396540940002],
-                                                               [0.75822603719599424, 0.65200582472794599],
-                                                               [0.75965665236051505, 0.63268384935960365],
-                                                               [0.76108726752503575, 0.61127957418061696],
-                                                               [0.76251788268955656, 0.5917161998783862],
-                                                               [0.76394849785407726, 0.57757950746481979],
-                                                               [0.76537911301859796, 0.57146061861681263],
-                                                               [0.76680972818311888, 0.57448106764159557],
-                                                               [0.76824034334763946, 0.58608723487247971],
-                                                               [0.76967095851216027, 0.60415181990440459],
-                                                               [0.77110157367668097, 0.62536375558735868],
-                                                               [0.77253218884120167, 0.64583509523982274],
-                                                               [0.77396280400572248, 0.66181363641041713],
-                                                               [0.77539341917024318, 0.6703706640092828],
-                                                               [0.77682403433476399, 0.66993775601431105],
-                                                               [0.77825464949928469, 0.66059426035619628],
-                                                               [0.77968526466380539, 0.64405275119510741],
-                                                               [0.7811158798283262, 0.62334513031555927],
-                                                               [0.7825464949928469, 0.60226690827746743],
-                                                               [0.78397711015736771, 0.58468152331910472],
-                                                               [0.78540772532188841, 0.57381220976071912],
-                                                               [0.7868383404864091, 0.57165120971596484],
-                                                               [0.78826895565092991, 0.57859461400268997],
-                                                               [0.78969957081545061, 0.59336976245170636],
-                                                               [0.79113018597997142, 0.61326851044859054],
-                                                               [0.79256080114449212, 0.63464360616317894],
-                                                               [0.79399141630901282, 0.65357719722721797],
-                                                               [0.79542203147353363, 0.66659893592482933],
-                                                               [0.79685264663805433, 0.67132206102338643],
-                                                               [0.79828326180257514, 0.66688086847645911],
-                                                               [0.79971387696709584, 0.65408938676701744],
-                                                               [0.80114449213161665, 0.63529217320502385],
-                                                               [0.80257510729613724, 0.61393457880335078],
-                                                               [0.80400572246065805, 0.59393124810553999],
-                                                               [0.80543633762517886, 0.57894860195919029],
-                                                               [0.80686695278969955, 0.57173281733918035],
-                                                               [0.80829756795422036, 0.57360647914710838],
-                                                               [0.80972818311874106, 0.58422616293942842],
-                                                               [0.81115879828326176, 0.60164538137164325],
-                                                               [0.81258941344778257, 0.62267135687218012],
-                                                               [0.81402002861230327, 0.64345022749769853],
-                                                               [0.81545064377682408, 0.66017342328543405],
-                                                               [0.81688125894134478, 0.6697757410149352],
-                                                               [0.81831187410586548, 0.67049716689447181],
-                                                               [0.81974248927038629, 0.66220547040080124],
-                                                               [0.82117310443490699, 0.64642044088029105],
-                                                               [0.8226037195994278, 0.62603532457219258],
-                                                               [0.82403433476394849, 0.60478652000642563],
-                                                               [0.82546494992846919, 0.58656873158114298],
-                                                               [0.82689556509299, 0.57472110717569802],
-                                                               [0.8283261802575107, 0.57141520400578227],
-                                                               [0.82975679542203151, 0.57725696277624261],
-                                                               [0.83118741058655221, 0.59117564449534532],
-                                                               [0.83261802575107291, 0.61062008677933821],
-                                                               [0.83404864091559372, 0.6320263077275593],
-                                                               [0.83547925608011442, 0.6514707500115523],
-                                                               [0.83690987124463523, 0.66538943173065623],
-                                                               [0.83834048640915582, 0.67123119050111624],
-                                                               [0.83977110157367663, 0.66792528733120127],
-                                                               [0.84120171673819744, 0.65607766292575631],
-                                                               [0.84263233190271813, 0.63785987450047388],
-                                                               [0.84406294706723894, 0.61661106993470549],
-                                                               [0.84549356223175964, 0.59622595362660824],
-                                                               [0.84692417739628034, 0.58044092410609804],
-                                                               [0.84835479256080115, 0.57214922761242737],
-                                                               [0.84978540772532185, 0.57287065349196276],
-                                                               [0.85121602288984266, 0.58247297122146391],
-                                                               [0.85264663805436336, 0.59919616700919931],
-                                                               [0.85407725321888428, 0.61997503763471895],
-                                                               [0.85550786838340487, 0.64100101313525304],
-                                                               [0.85693848354792557, 0.65842023156746954],
-                                                               [0.85836909871244638, 0.66903991535979046],
-                                                               [0.85979971387696708, 0.67091357716771816],
-                                                               [0.86123032904148789, 0.66369779254770822],
-                                                               [0.86266094420600858, 0.64871514640136063],
-                                                               [0.86409155937052939, 0.62871181570354873],
-                                                               [0.86552217453505009, 0.60735422130187444],
-                                                               [0.86695278969957079, 0.58855700773988306],
-                                                               [0.8683834048640916, 0.57576552603043851],
-                                                               [0.8698140200286123, 0.57132433348351219],
-                                                               [0.871244635193133, 0.57604745858206874],
-                                                               [0.87267525035765381, 0.58906919727967988],
-                                                               [0.87410586552217451, 0.60800278834371735],
-                                                               [0.87553648068669532, 0.62937788405830708],
-                                                               [0.87696709585121602, 0.64927663205519148],
-                                                               [0.87839771101573672, 0.66405178050420754],
-                                                               [0.87982832618025753, 0.67099518479093367],
-                                                               [0.88125894134477822, 0.66883418474618017],
-                                                               [0.88268955650929903, 0.65796487118779445],
-                                                               [0.88412017167381973, 0.64037948622943208],
-                                                               [0.88555078683834043, 0.61930126419134168],
-                                                               [0.88698140200286124, 0.59859364331179332],
-                                                               [0.88841201716738194, 0.58205213415070289],
-                                                               [0.88984263233190286, 0.57270863849258735],
-                                                               [0.89127324749642345, 0.57227573049761582],
-                                                               [0.89270386266094426, 0.58083275809648172],
-                                                               [0.89413447782546496, 0.59681129926707388],
-                                                               [0.89556509298998566, 0.61728263891953883],
-                                                               [0.89699570815450647, 0.63849457460249448],
-                                                               [0.89842632331902716, 0.65655915963441713],
-                                                               [0.89985693848354797, 0.6681653268653025],
-                                                               [0.90128755364806867, 0.67118577589008599],
-                                                               [0.90271816881258937, 0.66506688704207872],
-                                                               [0.90414878397711018, 0.65093019462851187],
-                                                               [0.90557939914163088, 0.631366820326284],
-                                                               [0.90701001430615169, 0.60996254514729575],
-                                                               [0.90844062947067239, 0.59064056977895329],
-                                                               [0.90987124463519309, 0.57694242909749971],
-                                                               [0.9113018597997139, 0.57137886240562852],
-                                                               [0.9127324749642346, 0.57496961872485486],
-                                                               [0.91416309012875541, 0.58705654646900784],
-                                                               [0.91559370529327611, 0.60542422638945981],
-                                                               [0.9170243204577968, 0.62670603691704285],
-                                                               [0.91845493562231761, 0.64700122397376614],
-                                                               [0.91988555078683831, 0.66258987220878696],
-                                                               [0.92131616595135912, 0.6706147302104174],
-                                                               [0.92274678111587982, 0.66960491759775087],
-                                                               [0.92417739628040052, 0.65974552344776083],
-                                                               [0.92560801144492122, 0.6428436812224847],
-                                                               [0.92703862660944203, 0.62199733834046811],
-                                                               [0.92846924177396284, 0.60102743178932994],
-                                                               [0.92989985693848354, 0.58377754660562498],
-                                                               [0.93133047210300424, 0.57340942318207011],
-                                                               [0.93276108726752505, 0.5718234402328376],
-                                                               [0.93419170243204575, 0.57931029339441009],
-                                                               [0.93562231759656656, 0.5944977134717665],
-                                                               [0.93705293276108725, 0.61460199037011187],
-                                                               [0.93848354792560795, 0.63593820076045526],
-                                                               [0.93991416309012876, 0.65459561958576729],
-                                                               [0.94134477825464946, 0.66715451888289223],
-                                                               [0.94277539341917027, 0.67131297149272651],
-                                                               [0.94420600858369097, 0.66630877248186049],
-                                                               [0.94563662374821178, 0.65305914407973953],
-                                                               [0.94706723891273248, 0.63399261754100122],
-                                                               [0.94849785407725318, 0.61260390639356122],
-                                                               [0.94992846924177399, 0.59281335858541084],
-                                                               [0.9513590844062948, 0.57824839387806082],
-                                                               [0.9527896995708155, 0.5715786321990286],
-                                                               [0.95422031473533619, 0.57402657762215692],
-                                                               [0.95565092989985689, 0.58514354496252763],
-                                                               [0.9570815450643777, 0.60289189951647215],
-                                                               [0.9585121602288984, 0.62401853618213377],
-                                                               [0.95994277539341921, 0.64465114277906499],
-                                                               [0.9613733905579398, 0.66100795815407787],
-                                                               [0.96280400572246061, 0.67009093314240176],
-                                                               [0.96423462088698142, 0.67023524455241112],
-                                                               [0.96566523605150212, 0.66141444147099737],
-                                                               [0.96709585121602293, 0.64524529346512616],
-                                                               [0.96852646638054363, 0.62469145205025722],
-                                                               [0.96995708154506433, 0.60352024146854044],
-                                                               [0.97138769670958514, 0.58561214387659322],
-                                                               [0.97281831187410583, 0.57424954376047443],
-                                                               [0.97424892703862664, 0.57151509798258215],
-                                                               [0.97567954220314734, 0.57791000452630203],
-                                                               [0.97711015736766804, 0.59226213765794522],
-                                                               [0.97854077253218885, 0.61194088745978326],
-                                                               [0.97997138769670955, 0.63333932568479989],
-                                                               [0.98140200286123036, 0.65253532150391735],
-                                                               [0.98283261802575106, 0.66601043089773959],
-                                                               [0.98426323319027187, 0.67129479408383519],
-                                                               [0.98569384835479257, 0.66741983739592525],
-                                                               [0.98712446351931338, 0.65509580365300379],
-                                                               [0.98855507868383408, 0.63658157138506033],
-                                                               [0.98998569384835478, 0.6152706238169624],
-                                                               [0.99141630901287559, 0.59506905556995893],
-                                                               [0.99284692417739628, 0.57967962255475247],
-                                                               [0.99427753934191698, 0.57192306192217124],
-                                                               [0.99570815450643779, 0.57322107768934327],
-                                                               [0.99713876967095849, 0.58333575587378173],
-                                                               [0.9985693848354793, 0.60041317187051135],
-                                                               [1.0, 0.62132319725344864]]},
-                                     'filtrangemin': {'curved': False,
-                                                      'data': [[0.0, 0.57873101098362156],
-                                                               [0.0014306151645207439, 0.59964103636655841],
-                                                               [0.0028612303290414878, 0.61671845236328793],
-                                                               [0.0042918454935622317, 0.62683313054772782],
-                                                               [0.0057224606580829757, 0.62813114631489964],
-                                                               [0.0071530758226037196, 0.62037458568231896],
-                                                               [0.0085836909871244635, 0.60498515266711084],
-                                                               [0.010014306151645207, 0.58478358442010792],
-                                                               [0.011444921316165951, 0.56347263685201054],
-                                                               [0.012875536480686695, 0.54495840458406763],
-                                                               [0.014306151645207439, 0.53263437084114618],
-                                                               [0.015736766809728183, 0.52875941415323557],
-                                                               [0.017167381974248927, 0.53404377733933128],
-                                                               [0.018597997138769671, 0.54751888673315308],
-                                                               [0.020028612303290415, 0.56671488255226954],
-                                                               [0.021459227467811159, 0.5881133207772884],
-                                                               [0.022889842632331903, 0.60779207057912354],
-                                                               [0.024320457796852647, 0.62214420371076851],
-                                                               [0.02575107296137339, 0.6285391102544885],
-                                                               [0.027181688125894134, 0.62580466447659711],
-                                                               [0.028612303290414878, 0.61444206436047721],
-                                                               [0.030042918454935619, 0.59653396676853065],
-                                                               [0.031473533619456366, 0.57536275618681443],
-                                                               [0.032904148783977114, 0.55480891477194338],
-                                                               [0.034334763948497854, 0.53863976676607483],
-                                                               [0.035765379113018594, 0.52981896368465964],
-                                                               [0.037195994277539342, 0.5299632750946689],
-                                                               [0.038626609442060082, 0.53904625008299223],
-                                                               [0.04005722460658083, 0.55540306545800655],
-                                                               [0.041487839771101563, 0.57603567205493722],
-                                                               [0.042918454935622317, 0.59716230872059817],
-                                                               [0.044349070100143065, 0.61491066327454236],
-                                                               [0.045779685264663805, 0.6260276306149134],
-                                                               [0.047210300429184546, 0.62847557603804227],
-                                                               [0.048640915593705293, 0.62180581435901006],
-                                                               [0.05007153075822604, 0.6072408496516607],
-                                                               [0.051502145922746781, 0.58745030184351099],
-                                                               [0.052932761087267521, 0.56606159069606898],
-                                                               [0.054363376251788269, 0.54699506415733123],
-                                                               [0.055793991416309016, 0.53374543575521061],
-                                                               [0.057224606580829757, 0.52874123674434437],
-                                                               [0.058655221745350497, 0.53289968935417775],
-                                                               [0.060085836909871237, 0.54545858865130359],
-                                                               [0.061516452074391992, 0.56411600747661506],
-                                                               [0.062947067238912732, 0.585452217866958],
-                                                               [0.064377682403433473, 0.60555649476530526],
-                                                               [0.065808297567954227, 0.62074391484265956],
-                                                               [0.067238912732474967, 0.62823076800423305],
-                                                               [0.068669527896995708, 0.62664478505500099],
-                                                               [0.070100143061516448, 0.6162766616314469],
-                                                               [0.071530758226037189, 0.59902677644774027],
-                                                               [0.072961373390557943, 0.57805686989660277],
-                                                               [0.074391988555078684, 0.55721052701458673],
-                                                               [0.075822603719599424, 0.54030868478931082],
-                                                               [0.077253218884120164, 0.53044929063932034],
-                                                               [0.078683834048640919, 0.52943947802665359],
-                                                               [0.080114449213161659, 0.53746433602828358],
-                                                               [0.0815450643776824, 0.55305298426330363],
-                                                               [0.082975679542203126, 0.5733481713200258],
-                                                               [0.084406294706723894, 0.59462998184761129],
-                                                               [0.085836909871244635, 0.6129976617680627],
-                                                               [0.087267525035765375, 0.62508458951221557],
-                                                               [0.08869814020028613, 0.62867534583144236],
-                                                               [0.09012875536480687, 0.62311177913957205],
-                                                               [0.091559370529327611, 0.60941363845811758],
-                                                               [0.092989985693848351, 0.59009166308977556],
-                                                               [0.094420600858369091, 0.56868738791078832],
-                                                               [0.09585121602288986, 0.54912401360855811],
-                                                               [0.097281831187410586, 0.53498732119499193],
-                                                               [0.098712446351931327, 0.52886843234698488],
-                                                               [0.10014306151645208, 0.53188888137176771],
-                                                               [0.10157367668097282, 0.54349504860265241],
-                                                               [0.10300429184549356, 0.5615596336345765],
-                                                               [0.1044349070100143, 0.5827715693175316],
-                                                               [0.10586552217453504, 0.60324290896999588],
-                                                               [0.1072961373390558, 0.61922145014058982],
-                                                               [0.10872675250357654, 0.62777847773945505],
-                                                               [0.11015736766809728, 0.62734556974448341],
-                                                               [0.11158798283261803, 0.61800207408636831],
-                                                               [0.11301859799713877, 0.60146056492527866],
-                                                               [0.11444921316165951, 0.58075294404573119],
-                                                               [0.11587982832618025, 0.55967472200763857],
-                                                               [0.11731044349070099, 0.54208933704927664],
-                                                               [0.11874105865522175, 0.53122002349089104],
-                                                               [0.12017167381974247, 0.52905902344613709],
-                                                               [0.12160228898426323, 0.53600242773286177],
-                                                               [0.12303290414878398, 0.55077757618187928],
-                                                               [0.12446351931330472, 0.57067632417876279],
-                                                               [0.12589413447782546, 0.59205141989335197],
-                                                               [0.12732474964234622, 0.61098501095739122],
-                                                               [0.12875536480686695, 0.62400674965500202],
-                                                               [0.1301859799713877, 0.62872987475355868],
-                                                               [0.13161659513590845, 0.6242886822066317],
-                                                               [0.13304721030042918, 0.61149720049718947],
-                                                               [0.13447782546494993, 0.59269998693519643],
-                                                               [0.13590844062947066, 0.57134239253352292],
-                                                               [0.13733905579399142, 0.55133906183571135],
-                                                               [0.13876967095851217, 0.53635641568936199],
-                                                               [0.1402002861230329, 0.52914063106935261],
-                                                               [0.14163090128755365, 0.53101429287728019],
-                                                               [0.14306151645207438, 0.54163397666960045],
-                                                               [0.14449213161659513, 0.55905319510181639],
-                                                               [0.14592274678111589, 0.58007917060235237],
-                                                               [0.14735336194563661, 0.60085804122787134],
-                                                               [0.14878397711015737, 0.6175812370156063],
-                                                               [0.15021459227467812, 0.62718355474510779],
-                                                               [0.15164520743919885, 0.62790498062464362],
-                                                               [0.1530758226037196, 0.6196132841309735],
-                                                               [0.15450643776824033, 0.60382825461046308],
-                                                               [0.15593705293276108, 0.58344313830236516],
-                                                               [0.15736766809728184, 0.56219433373659733],
-                                                               [0.15879828326180256, 0.54397654531131445],
-                                                               [0.16022889842632332, 0.53212892090587027],
-                                                               [0.16165951359084407, 0.52882301773595441],
-                                                               [0.1630901287553648, 0.5346647765064142],
-                                                               [0.16452074391988555, 0.54858345822551757],
-                                                               [0.16595135908440625, 0.56802790050951091],
-                                                               [0.16738197424892703, 0.58943412145773155],
-                                                               [0.16881258941344779, 0.60887856374172533],
-                                                               [0.17024320457796852, 0.6227972454608286],
-                                                               [0.17167381974248927, 0.6286390042312886],
-                                                               [0.17310443490701002, 0.62533310106137274],
-                                                               [0.17453505007153075, 0.61348547665592912],
-                                                               [0.17596566523605151, 0.5952676882306458],
-                                                               [0.17739628040057226, 0.57401888366487763],
-                                                               [0.17882689556509296, 0.55363376735678016],
-                                                               [0.18025751072961374, 0.53784873783626941],
-                                                               [0.18168812589413447, 0.5295570413425994],
-                                                               [0.18311874105865522, 0.53027846722213545],
-                                                               [0.18454935622317598, 0.53988078495163661],
-                                                               [0.1859799713876967, 0.55660398073937156],
-                                                               [0.18741058655221746, 0.57738285136489043],
-                                                               [0.18884120171673818, 0.59840882686542662],
-                                                               [0.19027181688125894, 0.61582804529764223],
-                                                               [0.19170243204577972, 0.62644772908996271],
-                                                               [0.19313304721030042, 0.62832139089789041],
-                                                               [0.19456366237482117, 0.62110560627788092],
-                                                               [0.19599427753934193, 0.60612296013153177],
-                                                               [0.19742489270386265, 0.58611962943372065],
-                                                               [0.19885550786838341, 0.56476203503204692],
-                                                               [0.20028612303290416, 0.54596482147005365],
-                                                               [0.20171673819742489, 0.53317333976061143],
-                                                               [0.20314735336194564, 0.52873214721368433],
-                                                               [0.20457796852646637, 0.53345527231224077],
-                                                               [0.20600858369098712, 0.54647701100985147],
-                                                               [0.20743919885550788, 0.56541060207389127],
-                                                               [0.2088698140200286, 0.58678569778848],
-                                                               [0.21030042918454936, 0.60668444578536407],
-                                                               [0.21173104434907009, 0.62145959423438091],
-                                                               [0.21316165951359084, 0.62840299852110593],
-                                                               [0.21459227467811159, 0.6262419984763522],
-                                                               [0.21602288984263235, 0.61537268491796637],
-                                                               [0.21745350500715308, 0.59778729995960467],
-                                                               [0.21888412017167383, 0.57670907792151216],
-                                                               [0.22031473533619456, 0.55600145704196469],
-                                                               [0.22174535050071531, 0.53945994788087481],
-                                                               [0.22317596566523606, 0.5301164522227596],
-                                                               [0.22460658082975679, 0.52968354422778785],
-                                                               [0.22603719599427755, 0.53824057182665341],
-                                                               [0.22746781115879827, 0.55421911299724635],
-                                                               [0.22889842632331903, 0.5746904526497113],
-                                                               [0.23032904148783978, 0.59590238833266651],
-                                                               [0.23175965665236051, 0.61396697336459061],
-                                                               [0.23319027181688126, 0.62557314059547531],
-                                                               [0.23462088698140199, 0.62859358962025813],
-                                                               [0.23605150214592274, 0.62247470077225109],
-                                                               [0.2374821173104435, 0.6083380083586849],
-                                                               [0.23891273247496422, 0.58877463405645503],
-                                                               [0.24034334763948495, 0.56737035887746778],
-                                                               [0.24177396280400573, 0.54804838350912521],
-                                                               [0.24320457796852646, 0.53435024282767107],
-                                                               [0.24463519313304721, 0.52878667613580066],
-                                                               [0.24606580829756797, 0.53237743245502755],
-                                                               [0.24749642346208869, 0.54446436019918043],
-                                                               [0.24892703862660945, 0.56283204011963173],
-                                                               [0.25035765379113017, 0.58411385064721688],
-                                                               [0.25178826895565093, 0.60440903770393939],
-                                                               [0.25321888412017168, 0.61999768593895921],
-                                                               [0.25464949928469244, 0.62802254394058943],
-                                                               [0.25608011444921314, 0.62701273132792268],
-                                                               [0.25751072961373389, 0.61715333717793242],
-                                                               [0.25894134477825465, 0.60025149495265651],
-                                                               [0.2603719599427754, 0.57940515207064058],
-                                                               [0.26180257510729615, 0.55843524551950252],
-                                                               [0.26323319027181691, 0.54118536033579601],
-                                                               [0.26466380543633761, 0.53081723691224236],
-                                                               [0.26609442060085836, 0.52923125396300963],
-                                                               [0.26752503576537912, 0.53671810712458357],
-                                                               [0.26895565092989987, 0.55190552720193775],
-                                                               [0.27038626609442062, 0.57200980410028512],
-                                                               [0.27181688125894132, 0.59334601449062718],
-                                                               [0.27324749642346208, 0.61200343331593932],
-                                                               [0.27467811158798283, 0.62456233261306504],
-                                                               [0.27610872675250359, 0.62872078522289854],
-                                                               [0.27753934191702434, 0.62371658621203208],
-                                                               [0.27896995708154504, 0.61046695780991189],
-                                                               [0.28040057224606579, 0.59140043127117459],
-                                                               [0.28183118741058655, 0.57001172012373247],
-                                                               [0.2832618025751073, 0.55022117231558199],
-                                                               [0.28469241773962806, 0.53565620760823296],
-                                                               [0.28612303290414876, 0.52898644592920097],
-                                                               [0.28755364806866951, 0.5314343913523295],
-                                                               [0.28898426323319026, 0.54255135869270066],
-                                                               [0.29041487839771102, 0.56029971324664485],
-                                                               [0.29184549356223177, 0.58142634991230568],
-                                                               [0.29327610872675253, 0.60205895650923635],
-                                                               [0.29470672389127323, 0.61841577188425079],
-                                                               [0.29613733905579404, 0.62749874687257401],
-                                                               [0.29756795422031473, 0.62764305828258349],
-                                                               [0.29899856938483549, 0.61882225520116851],
-                                                               [0.30042918454935624, 0.6026531071952993],
-                                                               [0.30185979971387694, 0.58209926578042925],
-                                                               [0.3032904148783977, 0.56092805519871292],
-                                                               [0.30472103004291845, 0.54301995760676625],
-                                                               [0.3061516452074392, 0.53165735749064591],
-                                                               [0.30758226037195996, 0.52892291171275452],
-                                                               [0.30901287553648066, 0.53531781825647451],
-                                                               [0.31044349070100141, 0.5496699513881188],
-                                                               [0.31187410586552217, 0.56934870118995451],
-                                                               [0.31330472103004292, 0.59074713941497314],
-                                                               [0.31473533619456368, 0.60994313523408983],
-                                                               [0.31616595135908443, 0.62341824462791184],
-                                                               [0.31759656652360513, 0.62870260781400733],
-                                                               [0.31902718168812588, 0.62482765112609717],
-                                                               [0.32045779685264664, 0.6125036173831756],
-                                                               [0.32188841201716745, 0.59398938511523214],
-                                                               [0.32331902718168815, 0.57267843754713499],
-                                                               [0.32474964234620884, 0.55247686930013262],
-                                                               [0.3261802575107296, 0.5370874362849245],
-                                                               [0.32761087267525035, 0.52933087565234349],
-                                                               [0.32904148783977111, 0.5306288914195153],
-                                                               [0.33047210300429186, 0.5407435696039552],
-                                                               [0.3319027181688125, 0.55782098560068394],
-                                                               [0.33333333333333331, 0.57873101098362123],
-                                                               [0.33476394849785407, 0.59964103636655819],
-                                                               [0.33619456366237482, 0.61671845236328759],
-                                                               [0.33762517882689558, 0.6268331305477276],
-                                                               [0.33905579399141633, 0.62813114631489964],
-                                                               [0.34048640915593703, 0.62037458568231918],
-                                                               [0.34191702432045779, 0.60498515266711139],
-                                                               [0.34334763948497854, 0.58478358442010836],
-                                                               [0.34477825464949929, 0.56347263685201054],
-                                                               [0.34620886981402005, 0.54495840458406763],
-                                                               [0.34763948497854075, 0.5326343708411464],
-                                                               [0.3490701001430615, 0.52875941415323557],
-                                                               [0.35050071530758226, 0.53404377733933128],
-                                                               [0.35193133047210301, 0.54751888673315297],
-                                                               [0.35336194563662376, 0.56671488255226943],
-                                                               [0.35479256080114452, 0.58811332077728884],
-                                                               [0.35622317596566522, 0.60779207057912321],
-                                                               [0.35765379113018592, 0.6221442037107684],
-                                                               [0.35908440629470673, 0.6285391102544885],
-                                                               [0.36051502145922748, 0.62580466447659699],
-                                                               [0.36194563662374823, 0.6144420643604771],
-                                                               [0.36337625178826893, 0.59653396676853132],
-                                                               [0.36480686695278969, 0.57536275618681498],
-                                                               [0.36623748211731044, 0.55480891477194338],
-                                                               [0.3676680972818312, 0.53863976676607483],
-                                                               [0.36909871244635195, 0.52981896368465964],
-                                                               [0.37052932761087265, 0.52996327509466867],
-                                                               [0.3719599427753934, 0.5390462500829919],
-                                                               [0.37339055793991416, 0.55540306545800644],
-                                                               [0.37482117310443491, 0.57603567205493689],
-                                                               [0.37625178826895567, 0.59716230872059861],
-                                                               [0.37768240343347637, 0.61491066327454214],
-                                                               [0.37911301859799712, 0.62602763061491318],
-                                                               [0.38054363376251787, 0.62847557603804238],
-                                                               [0.38197424892703863, 0.62180581435900995],
-                                                               [0.38340486409155944, 0.60724084965166059],
-                                                               [0.38483547925608014, 0.58745030184351099],
-                                                               [0.38626609442060084, 0.56606159069606954],
-                                                               [0.38769670958512159, 0.54699506415733146],
-                                                               [0.38912732474964234, 0.53374543575521061],
-                                                               [0.3905579399141631, 0.52874123674434437],
-                                                               [0.39198855507868385, 0.53289968935417764],
-                                                               [0.39341917024320455, 0.54545858865130348],
-                                                               [0.39484978540772531, 0.56411600747661461],
-                                                               [0.39628040057224606, 0.58545221786695745],
-                                                               [0.39771101573676682, 0.60555649476530493],
-                                                               [0.39914163090128757, 0.62074391484265956],
-                                                               [0.40057224606580832, 0.62823076800423305],
-                                                               [0.40200286123032902, 0.62664478505500099],
-                                                               [0.40343347639484978, 0.61627666163144723],
-                                                               [0.40486409155937053, 0.59902677644774005],
-                                                               [0.40629470672389129, 0.57805686989660277],
-                                                               [0.40772532188841204, 0.55721052701458673],
-                                                               [0.40915593705293274, 0.54030868478931138],
-                                                               [0.41058655221745349, 0.53044929063932034],
-                                                               [0.41201716738197425, 0.52943947802665348],
-                                                               [0.413447782546495, 0.53746433602828347],
-                                                               [0.41487839771101576, 0.55305298426330396],
-                                                               [0.41630901287553645, 0.57334817132002569],
-                                                               [0.41773962804005721, 0.59462998184761096],
-                                                               [0.41917024320457791, 0.61299766176806236],
-                                                               [0.42060085836909872, 0.62508458951221557],
-                                                               [0.42203147353361947, 0.62867534583144236],
-                                                               [0.42346208869814017, 0.6231117791395725],
-                                                               [0.42489270386266093, 0.60941363845811813],
-                                                               [0.42632331902718168, 0.59009166308977556],
-                                                               [0.42775393419170243, 0.56868738791078888],
-                                                               [0.42918454935622319, 0.54912401360855845],
-                                                               [0.43061516452074394, 0.53498732119499182],
-                                                               [0.4320457796852647, 0.52886843234698488],
-                                                               [0.4334763948497854, 0.53188888137176737],
-                                                               [0.43490701001430615, 0.54349504860265208],
-                                                               [0.4363376251788269, 0.56155963363457695],
-                                                               [0.43776824034334766, 0.58277156931753116],
-                                                               [0.43919885550786836, 0.60324290896999488],
-                                                               [0.44062947067238911, 0.61922145014058949],
-                                                               [0.44206008583690987, 0.62777847773945505],
-                                                               [0.44349070100143062, 0.62734556974448341],
-                                                               [0.44492131616595143, 0.61800207408636854],
-                                                               [0.44635193133047213, 0.60146056492527822],
-                                                               [0.44778254649499283, 0.58075294404573141],
-                                                               [0.44921316165951358, 0.55967472200763946],
-                                                               [0.45064377682403434, 0.54208933704927698],
-                                                               [0.45207439198855509, 0.5312200234908907],
-                                                               [0.45350500715307585, 0.52905902344613709],
-                                                               [0.45493562231759654, 0.53600242773286133],
-                                                               [0.4563662374821173, 0.55077757618187861],
-                                                               [0.45779685264663805, 0.57067632417876302],
-                                                               [0.45922746781115881, 0.59205141989335142],
-                                                               [0.46065808297567956, 0.61098501095739144],
-                                                               [0.46208869814020026, 0.6240067496550018],
-                                                               [0.46351931330472101, 0.62872987475355868],
-                                                               [0.46494992846924177, 0.62428868220663192],
-                                                               [0.46638054363376252, 0.61149720049718936],
-                                                               [0.46781115879828328, 0.59269998693519577],
-                                                               [0.46924177396280398, 0.57134239253352281],
-                                                               [0.47067238912732473, 0.55133906183571202],
-                                                               [0.47210300429184548, 0.53635641568936232],
-                                                               [0.47353361945636624, 0.5291406310693525],
-                                                               [0.47496423462088699, 0.53101429287728019],
-                                                               [0.47639484978540775, 0.54163397666960067],
-                                                               [0.47782546494992845, 0.55905319510181584],
-                                                               [0.4792560801144492, 0.58007917060235259],
-                                                               [0.4806866952789699, 0.6008580412278709],
-                                                               [0.48211731044349071, 0.61758123701560641],
-                                                               [0.48354792560801146, 0.6271835547451079],
-                                                               [0.48497854077253216, 0.62790498062464362],
-                                                               [0.48640915593705292, 0.61961328413097416],
-                                                               [0.48783977110157367, 0.60382825461046319],
-                                                               [0.48927038626609443, 0.58344313830236472],
-                                                               [0.49070100143061518, 0.56219433373659766],
-                                                               [0.49213161659513593, 0.54397654531131401],
-                                                               [0.49356223175965669, 0.53212892090587027],
-                                                               [0.49499284692417739, 0.52882301773595441],
-                                                               [0.49642346208869814, 0.53466477650641409],
-                                                               [0.4978540772532189, 0.54858345822551768],
-                                                               [0.49928469241773965, 0.56802790050951069],
-                                                               [0.50071530758226035, 0.58943412145773177],
-                                                               [0.50214592274678116, 0.60887856374172589],
-                                                               [0.50357653791130186, 0.6227972454608286],
-                                                               [0.50500715307582256, 0.6286390042312886],
-                                                               [0.50643776824034337, 0.62533310106137285],
-                                                               [0.50786838340486407, 0.61348547665592945],
-                                                               [0.50929899856938488, 0.59526768823064591],
-                                                               [0.51072961373390557, 0.57401888366487896],
-                                                               [0.51216022889842627, 0.55363376735678027],
-                                                               [0.51359084406294708, 0.53784873783626919],
-                                                               [0.51502145922746778, 0.52955704134259951],
-                                                               [0.51645207439198859, 0.53027846722213545],
-                                                               [0.51788268955650929, 0.53988078495163638],
-                                                               [0.51931330472102999, 0.55660398073937034],
-                                                               [0.5207439198855508, 0.57738285136488998],
-                                                               [0.5221745350500715, 0.5984088268654254],
-                                                               [0.52360515021459231, 0.6158280452976429],
-                                                               [0.52503576537911301, 0.62644772908996271],
-                                                               [0.52646638054363382, 0.62832139089789041],
-                                                               [0.52789699570815452, 0.62110560627788092],
-                                                               [0.52932761087267521, 0.60612296013153266],
-                                                               [0.53075822603719602, 0.58611962943372087],
-                                                               [0.53218884120171672, 0.5647620350320478],
-                                                               [0.53361945636623753, 0.54596482147005287],
-                                                               [0.53505007153075823, 0.53317333976061121],
-                                                               [0.53648068669527893, 0.52873214721368433],
-                                                               [0.53791130185979974, 0.53345527231224099],
-                                                               [0.53934191702432044, 0.54647701100985124],
-                                                               [0.54077253218884125, 0.56541060207389104],
-                                                               [0.54220314735336195, 0.58678569778847955],
-                                                               [0.54363376251788265, 0.60668444578536262],
-                                                               [0.54506437768240346, 0.62145959423438113],
-                                                               [0.54649499284692415, 0.62840299852110582],
-                                                               [0.54792560801144496, 0.62624199847635198],
-                                                               [0.54935622317596566, 0.61537268491796648],
-                                                               [0.55078683834048636, 0.59778729995960533],
-                                                               [0.55221745350500717, 0.57670907792151227],
-                                                               [0.55364806866952787, 0.55600145704196546],
-                                                               [0.55507868383404868, 0.53945994788087404],
-                                                               [0.55650929899856949, 0.5301164522227596],
-                                                               [0.55793991416309008, 0.52968354422778785],
-                                                               [0.55937052932761089, 0.53824057182665308],
-                                                               [0.56080114449213159, 0.55421911299724624],
-                                                               [0.5622317596566524, 0.57469045264971119],
-                                                               [0.5636623748211731, 0.59590238833266562],
-                                                               [0.56509298998569379, 0.6139669733645895],
-                                                               [0.5665236051502146, 0.62557314059547531],
-                                                               [0.5679542203147353, 0.62859358962025824],
-                                                               [0.56938483547925611, 0.62247470077225076],
-                                                               [0.57081545064377681, 0.60833800835868512],
-                                                               [0.57224606580829751, 0.58877463405645591],
-                                                               [0.57367668097281832, 0.5673703588774679],
-                                                               [0.57510729613733902, 0.54804838350912655],
-                                                               [0.57653791130185983, 0.53435024282767052],
-                                                               [0.57796852646638053, 0.52878667613580077],
-                                                               [0.57939914163090134, 0.53237743245502778],
-                                                               [0.58082975679542204, 0.54446436019918021],
-                                                               [0.58226037195994274, 0.56283204011963084],
-                                                               [0.58369098712446355, 0.58411385064721677],
-                                                               [0.58512160228898424, 0.6044090377039385],
-                                                               [0.58655221745350505, 0.61999768593895921],
-                                                               [0.58798283261802575, 0.62802254394058965],
-                                                               [0.58941344778254645, 0.62701273132792268],
-                                                               [0.59084406294706726, 0.61715333717793208],
-                                                               [0.59227467811158807, 0.60025149495265684],
-                                                               [0.59370529327610877, 0.57940515207064014],
-                                                               [0.59513590844062947, 0.55843524551950341],
-                                                               [0.59656652360515017, 0.54118536033579701],
-                                                               [0.59799713876967098, 0.53081723691224236],
-                                                               [0.59942775393419168, 0.52923125396300985],
-                                                               [0.60085836909871249, 0.53671810712458379],
-                                                               [0.60228898426323318, 0.55190552720193742],
-                                                               [0.60371959942775388, 0.57200980410028424],
-                                                               [0.60515021459227469, 0.59334601449062763],
-                                                               [0.60658082975679539, 0.61200343331593865],
-                                                               [0.6080114449213162, 0.62456233261306504],
-                                                               [0.6094420600858369, 0.62872078522289865],
-                                                               [0.6108726752503576, 0.62371658621203252],
-                                                               [0.61230329041487841, 0.61046695780991145],
-                                                               [0.61373390557939911, 0.59140043127117481],
-                                                               [0.61516452074391992, 0.57001172012373202],
-                                                               [0.61659513590844062, 0.55022117231558287],
-                                                               [0.61802575107296132, 0.53565620760823296],
-                                                               [0.61945636623748213, 0.52898644592920097],
-                                                               [0.62088698140200282, 0.53143439135232928],
-                                                               [0.62231759656652363, 0.54255135869270099],
-                                                               [0.62374821173104433, 0.56029971324664463],
-                                                               [0.62517882689556514, 0.58142634991230613],
-                                                               [0.62660944206008584, 0.60205895650923613],
-                                                               [0.62804005722460643, 0.61841577188425023],
-                                                               [0.62947067238912735, 0.62749874687257401],
-                                                               [0.63090128755364805, 0.62764305828258371],
-                                                               [0.63233190271816886, 0.61882225520116785],
-                                                               [0.63376251788268956, 0.60265310719529952],
-                                                               [0.63519313304721026, 0.58209926578042936],
-                                                               [0.63662374821173107, 0.56092805519871225],
-                                                               [0.63805436337625177, 0.54301995760676625],
-                                                               [0.63948497854077258, 0.53165735749064613],
-                                                               [0.64091559370529327, 0.52892291171275452],
-                                                               [0.64234620886981397, 0.53531781825647362],
-                                                               [0.64377682403433489, 0.54966995138811969],
-                                                               [0.64520743919885548, 0.56934870118995418],
-                                                               [0.64663805436337629, 0.5907471394149737],
-                                                               [0.64806866952789699, 0.60994313523408961],
-                                                               [0.64949928469241769, 0.62341824462791118],
-                                                               [0.6509298998569385, 0.62870260781400733],
-                                                               [0.6523605150214592, 0.62482765112609751],
-                                                               [0.6537911301859799, 0.61250361738317483],
-                                                               [0.65522174535050071, 0.59398938511523247],
-                                                               [0.6566523605150214, 0.57267843754713577],
-                                                               [0.65808297567954221, 0.55247686930013218],
-                                                               [0.65951359084406291, 0.53708743628492461],
-                                                               [0.66094420600858372, 0.52933087565234349],
-                                                               [0.66237482117310442, 0.53062889141951497],
-                                                               [0.66380543633762501, 0.54074356960395398],
-                                                               [0.66523605150214593, 0.55782098560068494],
-                                                               [0.66666666666666663, 0.57873101098362123],
-                                                               [0.66809728183118744, 0.59964103636655852],
-                                                               [0.66952789699570814, 0.61671845236328759],
-                                                               [0.67095851216022895, 0.62683313054772782],
-                                                               [0.67238912732474965, 0.62813114631489975],
-                                                               [0.67381974248927035, 0.62037458568231962],
-                                                               [0.67525035765379116, 0.60498515266711139],
-                                                               [0.67668097281831185, 0.58478358442010803],
-                                                               [0.67811158798283266, 0.56347263685200999],
-                                                               [0.67954220314735347, 0.54495840458406775],
-                                                               [0.68097281831187406, 0.5326343708411464],
-                                                               [0.68240343347639487, 0.52875941415323557],
-                                                               [0.68383404864091557, 0.53404377733933095],
-                                                               [0.68526466380543638, 0.54751888673315274],
-                                                               [0.68669527896995708, 0.56671488255226854],
-                                                               [0.68812589413447778, 0.58811332077728784],
-                                                               [0.68955650929899859, 0.60779207057912366],
-                                                               [0.69098712446351929, 0.62214420371076817],
-                                                               [0.6924177396280401, 0.6285391102544885],
-                                                               [0.6938483547925608, 0.62580466447659722],
-                                                               [0.69527896995708149, 0.61444206436047832],
-                                                               [0.6967095851216023, 0.59653396676853132],
-                                                               [0.698140200286123, 0.57536275618681587],
-                                                               [0.69957081545064381, 0.55480891477194294],
-                                                               [0.70100143061516451, 0.53863976676607483],
-                                                               [0.70243204577968521, 0.52981896368465986],
-                                                               [0.70386266094420602, 0.52996327509466867],
-                                                               [0.70529327610872672, 0.53904625008299145],
-                                                               [0.70672389127324753, 0.55540306545800633],
-                                                               [0.70815450643776823, 0.57603567205493589],
-                                                               [0.70958512160228904, 0.59716230872059906],
-                                                               [0.71101573676680974, 0.61491066327454258],
-                                                               [0.71244635193133043, 0.62602763061491318],
-                                                               [0.71387696709585124, 0.62847557603804227],
-                                                               [0.71530758226037183, 0.62180581435901039],
-                                                               [0.71673819742489275, 0.6072408496516607],
-                                                               [0.71816881258941345, 0.58745030184351188],
-                                                               [0.71959942775393415, 0.56606159069607043],
-                                                               [0.72103004291845496, 0.54699506415733101],
-                                                               [0.72246065808297566, 0.53374543575521083],
-                                                               [0.72389127324749647, 0.52874123674434437],
-                                                               [0.72532188841201717, 0.53289968935417764],
-                                                               [0.72675250357653787, 0.54545858865130292],
-                                                               [0.72818311874105868, 0.56411600747661461],
-                                                               [0.72961373390557938, 0.58545221786695667],
-                                                               [0.7310443490701003, 0.60555649476530593],
-                                                               [0.73247496423462088, 0.62074391484265956],
-                                                               [0.73390557939914158, 0.62823076800423294],
-                                                               [0.73533619456366239, 0.62664478505500099],
-                                                               [0.73676680972818309, 0.61627666163144734],
-                                                               [0.7381974248927039, 0.59902677644774027],
-                                                               [0.7396280400572246, 0.57805686989660365],
-                                                               [0.7410586552217453, 0.55721052701458829],
-                                                               [0.74248927038626611, 0.54030868478931049],
-                                                               [0.74391988555078681, 0.53044929063932045],
-                                                               [0.74535050071530762, 0.52943947802665359],
-                                                               [0.74678111587982832, 0.53746433602828325],
-                                                               [0.74821173104434902, 0.55305298426330274],
-                                                               [0.74964234620886983, 0.57334817132002536],
-                                                               [0.75107296137339041, 0.59462998184761007],
-                                                               [0.75250357653791133, 0.61299766176806325],
-                                                               [0.75393419170243203, 0.62508458951221557],
-                                                               [0.75536480686695273, 0.62867534583144236],
-                                                               [0.75679542203147354, 0.62311177913957227],
-                                                               [0.75822603719599424, 0.60941363845811825],
-                                                               [0.75965665236051505, 0.5900916630897759],
-                                                               [0.76108726752503575, 0.56868738791078921],
-                                                               [0.76251788268955656, 0.54912401360855845],
-                                                               [0.76394849785407726, 0.53498732119499193],
-                                                               [0.76537911301859796, 0.52886843234698488],
-                                                               [0.76680972818311888, 0.53188888137176782],
-                                                               [0.76824034334763946, 0.54349504860265185],
-                                                               [0.76967095851216027, 0.56155963363457684],
-                                                               [0.77110157367668097, 0.58277156931753094],
-                                                               [0.77253218884120167, 0.60324290896999488],
-                                                               [0.77396280400572248, 0.61922145014058938],
-                                                               [0.77539341917024318, 0.62777847773945505],
-                                                               [0.77682403433476399, 0.6273455697444833],
-                                                               [0.77825464949928469, 0.61800207408636854],
-                                                               [0.77968526466380539, 0.60146056492527966],
-                                                               [0.7811158798283262, 0.58075294404573152],
-                                                               [0.7825464949928469, 0.55967472200763957],
-                                                               [0.78397711015736771, 0.54208933704927698],
-                                                               [0.78540772532188841, 0.53122002349089137],
-                                                               [0.7868383404864091, 0.52905902344613709],
-                                                               [0.78826895565092991, 0.53600242773286211],
-                                                               [0.78969957081545061, 0.55077757618187861],
-                                                               [0.79113018597997142, 0.57067632417876279],
-                                                               [0.79256080114449212, 0.59205141989335119],
-                                                               [0.79399141630901282, 0.61098501095739022],
-                                                               [0.79542203147353363, 0.62400674965500158],
-                                                               [0.79685264663805433, 0.62872987475355868],
-                                                               [0.79828326180257514, 0.62428868220663136],
-                                                               [0.79971387696709584, 0.6114972004971897],
-                                                               [0.80114449213161665, 0.5926999869351961],
-                                                               [0.80257510729613724, 0.57134239253352292],
-                                                               [0.80400572246065805, 0.55133906183571224],
-                                                               [0.80543633762517886, 0.53635641568936243],
-                                                               [0.80686695278969955, 0.52914063106935261],
-                                                               [0.80829756795422036, 0.53101429287728064],
-                                                               [0.80972818311874106, 0.54163397666960067],
-                                                               [0.81115879828326176, 0.5590531951018155],
-                                                               [0.81258941344778257, 0.58007917060235237],
-                                                               [0.81402002861230327, 0.60085804122787079],
-                                                               [0.81545064377682408, 0.6175812370156063],
-                                                               [0.81688125894134478, 0.62718355474510734],
-                                                               [0.81831187410586548, 0.62790498062464406],
-                                                               [0.81974248927038629, 0.61961328413097327],
-                                                               [0.82117310443490699, 0.6038282546104633],
-                                                               [0.8226037195994278, 0.58344313830236483],
-                                                               [0.82403433476394849, 0.56219433373659788],
-                                                               [0.82546494992846919, 0.54397654531131523],
-                                                               [0.82689556509299, 0.53212892090587027],
-                                                               [0.8283261802575107, 0.52882301773595441],
-                                                               [0.82975679542203151, 0.53466477650641475],
-                                                               [0.83118741058655221, 0.54858345822551757],
-                                                               [0.83261802575107291, 0.56802790050951046],
-                                                               [0.83404864091559372, 0.58943412145773155],
-                                                               [0.83547925608011442, 0.60887856374172455],
-                                                               [0.83690987124463523, 0.62279724546082837],
-                                                               [0.83834048640915582, 0.62863900423128849],
-                                                               [0.83977110157367663, 0.62533310106137352],
-                                                               [0.84120171673819744, 0.61348547665592856],
-                                                               [0.84263233190271813, 0.59526768823064613],
-                                                               [0.84406294706723894, 0.57401888366487774],
-                                                               [0.84549356223175964, 0.55363376735678049],
-                                                               [0.84692417739628034, 0.5378487378362703],
-                                                               [0.84835479256080115, 0.52955704134259951],
-                                                               [0.84978540772532185, 0.53027846722213501],
-                                                               [0.85121602288984266, 0.53988078495163616],
-                                                               [0.85264663805436336, 0.55660398073937156],
-                                                               [0.85407725321888428, 0.5773828513648912],
-                                                               [0.85550786838340487, 0.59840882686542518],
-                                                               [0.85693848354792557, 0.61582804529764168],
-                                                               [0.85836909871244638, 0.62644772908996271],
-                                                               [0.85979971387696708, 0.62832139089789041],
-                                                               [0.86123032904148789, 0.62110560627788036],
-                                                               [0.86266094420600858, 0.60612296013153288],
-                                                               [0.86409155937052939, 0.58611962943372098],
-                                                               [0.86552217453505009, 0.56476203503204669],
-                                                               [0.86695278969957079, 0.54596482147005532],
-                                                               [0.8683834048640916, 0.53317333976061076],
-                                                               [0.8698140200286123, 0.52873214721368433],
-                                                               [0.871244635193133, 0.53345527231224099],
-                                                               [0.87267525035765381, 0.54647701100985213],
-                                                               [0.87410586552217451, 0.5654106020738896],
-                                                               [0.87553648068669532, 0.58678569778847922],
-                                                               [0.87696709585121602, 0.60668444578536362],
-                                                               [0.87839771101573672, 0.6214595942343798],
-                                                               [0.87982832618025753, 0.62840299852110593],
-                                                               [0.88125894134477822, 0.62624199847635242],
-                                                               [0.88268955650929903, 0.61537268491796671],
-                                                               [0.88412017167381973, 0.59778729995960433],
-                                                               [0.88555078683834043, 0.57670907792151382],
-                                                               [0.88698140200286124, 0.55600145704196546],
-                                                               [0.88841201716738194, 0.53945994788087515],
-                                                               [0.88984263233190286, 0.5301164522227596],
-                                                               [0.89127324749642345, 0.52968354422778796],
-                                                               [0.89270386266094426, 0.53824057182665397],
-                                                               [0.89413447782546496, 0.55421911299724613],
-                                                               [0.89556509298998566, 0.57469045264971108],
-                                                               [0.89699570815450647, 0.59590238833266673],
-                                                               [0.89842632331902716, 0.61396697336458927],
-                                                               [0.89985693848354797, 0.62557314059547475],
-                                                               [0.90128755364806867, 0.62859358962025824],
-                                                               [0.90271816881258937, 0.62247470077225098],
-                                                               [0.90414878397711018, 0.60833800835868412],
-                                                               [0.90557939914163088, 0.58877463405645625],
-                                                               [0.90701001430615169, 0.56737035887746801],
-                                                               [0.90844062947067239, 0.54804838350912555],
-                                                               [0.90987124463519309, 0.53435024282767196],
-                                                               [0.9113018597997139, 0.52878667613580077],
-                                                               [0.9127324749642346, 0.53237743245502711],
-                                                               [0.91416309012875541, 0.5444643601991801],
-                                                               [0.91559370529327611, 0.56283204011963206],
-                                                               [0.9170243204577968, 0.5841138506472151],
-                                                               [0.91845493562231761, 0.60440903770393839],
-                                                               [0.91988555078683831, 0.61999768593895921],
-                                                               [0.92131616595135912, 0.62802254394058965],
-                                                               [0.92274678111587982, 0.62701273132792312],
-                                                               [0.92417739628040052, 0.61715333717793308],
-                                                               [0.92560801144492122, 0.60025149495265695],
-                                                               [0.92703862660944203, 0.57940515207064036],
-                                                               [0.92846924177396284, 0.55843524551950219],
-                                                               [0.92989985693848354, 0.54118536033579712],
-                                                               [0.93133047210300424, 0.53081723691224236],
-                                                               [0.93276108726752505, 0.52923125396300985],
-                                                               [0.93419170243204575, 0.53671810712458223],
-                                                               [0.93562231759656656, 0.55190552720193875],
-                                                               [0.93705293276108725, 0.57200980410028401],
-                                                               [0.93848354792560795, 0.5933460144906274],
-                                                               [0.93991416309012876, 0.61200343331593954],
-                                                               [0.94134477825464946, 0.62456233261306449],
-                                                               [0.94277539341917027, 0.62872078522289865],
-                                                               [0.94420600858369097, 0.62371658621203274],
-                                                               [0.94563662374821178, 0.61046695780991178],
-                                                               [0.94706723891273248, 0.59140043127117348],
-                                                               [0.94849785407725318, 0.57001172012373347],
-                                                               [0.94992846924177399, 0.5502211723155831],
-                                                               [0.9513590844062948, 0.53565620760823307],
-                                                               [0.9527896995708155, 0.52898644592920074],
-                                                               [0.95422031473533619, 0.53143439135232906],
-                                                               [0.95565092989985689, 0.54255135869269977],
-                                                               [0.9570815450643777, 0.5602997132466444],
-                                                               [0.9585121602288984, 0.58142634991230602],
-                                                               [0.95994277539341921, 0.60205895650923724],
-                                                               [0.9613733905579398, 0.61841577188425001],
-                                                               [0.96280400572246061, 0.62749874687257401],
-                                                               [0.96423462088698142, 0.62764305828258338],
-                                                               [0.96566523605150212, 0.61882225520116962],
-                                                               [0.96709585121602293, 0.60265310719529841],
-                                                               [0.96852646638054363, 0.58209926578042948],
-                                                               [0.96995708154506433, 0.56092805519871258],
-                                                               [0.97138769670958514, 0.54301995760676547],
-                                                               [0.97281831187410583, 0.53165735749064669],
-                                                               [0.97424892703862664, 0.52892291171275441],
-                                                               [0.97567954220314734, 0.53531781825647429],
-                                                               [0.97711015736766804, 0.54966995138811747],
-                                                               [0.97854077253218885, 0.56934870118995551],
-                                                               [0.97997138769670955, 0.59074713941497214],
-                                                               [0.98140200286123036, 0.6099431352340895],
-                                                               [0.98283261802575106, 0.62341824462791184],
-                                                               [0.98426323319027187, 0.62870260781400744],
-                                                               [0.98569384835479257, 0.62482765112609751],
-                                                               [0.98712446351931338, 0.61250361738317605],
-                                                               [0.98855507868383408, 0.59398938511523247],
-                                                               [0.98998569384835478, 0.57267843754713466],
-                                                               [0.99141630901287559, 0.55247686930013118],
-                                                               [0.99284692417739628, 0.53708743628492461],
-                                                               [0.99427753934191698, 0.52933087565234349],
-                                                               [0.99570815450643779, 0.53062889141951541],
-                                                               [0.99713876967095849, 0.54074356960395398],
-                                                               [0.9985693848354793, 0.55782098560068361],
-                                                               [1.0, 0.5787310109836209]]},
-                                     'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                     'sndgain': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
-                                     'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
-                                     'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
-                                     'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
-                       'userInputs': {'snd': {'dursnd': 21.282176971435547,
-                                              'gain': [0.0, False, False],
-                                              'gensizesnd': 1048576,
-                                              'loopIn': [0.0, False, False],
-                                              'loopMode': 1,
-                                              'loopOut': [21.282176971435547, False, False],
-                                              'loopX': [1.0, False, False],
-                                              'nchnlssnd': 2,
-                                              'offsnd': 0.0,
-                                              'path': u'/Users/jm/Desktop/Dropbox/Maitrise/svnBKP/memoire/bub/snds/orch.aif',
-                                              'srsnd': 44100.0,
-                                              'startFromLoop': 0,
-                                              'transp': [0.0, False, False],
-                                              'type': 'csampler'}},
-                       'userSliders': {'filtrange': [[774.66560755361559, 1039.6588002939066], 1, None, [1, 1]]},
-                       'userTogglePopups': {'filtnum': 9, 'polynum': 0, 'polyspread': 0.001}}}
\ No newline at end of file
+CECILIA_PRESETS = {u'01-Oscillating Filter': {'active': False,
+                            'gainSlider': 0.0,
+                            'nchnls': 2,
+                            'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                        1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                        2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                        3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                            'totalTime': 30.00000000000007,
+                            'userGraph': {'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                          'filtrangeCACmax': {'curved': False, 'data': [[0.0, 0.6666666666666666], [1.0, 0.6666666666666666]]},
+                                          'filtrangeCACmin': {'curved': False, 'data': [[0.0, 0.5663233347786729], [1.0, 0.5663233347786729]]},
+                                          'fultrangemax': {'curved': False,
+                                                           'data': [[0.0, 0.5306735024757899],
+                                                                    [0.005025125628140704, 0.5681604468313362],
+                                                                    [0.010050251256281407, 0.6032683426472157],
+                                                                    [0.01507537688442211, 0.6337691238671675],
+                                                                    [0.020100502512562814, 0.6577271075416348],
+                                                                    [0.02512562814070352, 0.6736218388281658],
+                                                                    [0.03015075376884422, 0.6804445842088467],
+                                                                    [0.035175879396984924, 0.6777623491381504],
+                                                                    [0.04020100502512563, 0.6657453573443027],
+                                                                    [0.04522613065326633, 0.645156247854565],
+                                                                    [0.05025125628140704, 0.6173016753378282],
+                                                                    [0.05527638190954774, 0.5839493853708042],
+                                                                    [0.06030150753768844, 0.5472160273124812],
+                                                                    [0.06532663316582915, 0.5094328245620471],
+                                                                    [0.07035175879396985, 0.4729976272209882],
+                                                                    [0.07537688442211056, 0.44022273639884774],
+                                                                    [0.08040201005025126, 0.41318815774795636],
+                                                                    [0.08542713567839195, 0.39360959725517447],
+                                                                    [0.09045226130653267, 0.3827295767250895],
+                                                                    [0.09547738693467336, 0.38123857913513887],
+                                                                    [0.10050251256281408, 0.3892312282456743],
+                                                                    [0.10552763819095477, 0.40620028345543097],
+                                                                    [0.11055276381909548, 0.4310688310092252],
+                                                                    [0.11557788944723618, 0.46225862859473743],
+                                                                    [0.12060301507537688, 0.4977902659486362],
+                                                                    [0.12562814070351758, 0.5354087849405113],
+                                                                    [0.1306532663316583, 0.572726786858342],
+                                                                    [0.135678391959799, 0.6073759448221389],
+                                                                    [0.1407035175879397, 0.6371573058344898],
+                                                                    [0.1457286432160804, 0.6601808437904734],
+                                                                    [0.15075376884422112, 0.6749854069399593],
+                                                                    [0.15577889447236182, 0.6806314475298115],
+                                                                    [0.16080402010050251, 0.6767606486886205],
+                                                                    [0.1658291457286432, 0.6636186644297714],
+                                                                    [0.1708542713567839, 0.6420395296151825],
+                                                                    [0.17587939698492464, 0.613392729276256],
+                                                                    [0.18090452261306533, 0.5794962864523215],
+                                                                    [0.18592964824120603, 0.5425013842869114],
+                                                                    [0.19095477386934673, 0.504755844654675],
+                                                                    [0.19597989949748745, 0.4686551274279697],
+                                                                    [0.20100502512562815, 0.43649030647466125],
+                                                                    [0.20603015075376885, 0.4103026703455533],
+                                                                    [0.21105527638190955, 0.39175417518461364],
+                                                                    [0.21608040201005024, 0.3820219713593711],
+                                                                    [0.22110552763819097, 0.38172369750898943],
+                                                                    [0.22613065326633167, 0.39087828310292466],
+                                                                    [0.23115577889447236, 0.4089047471126368],
+                                                                    [0.23618090452261306, 0.43465906903672363],
+                                                                    [0.24120603015075376, 0.4665067923192585],
+                                                                    [0.24623115577889448, 0.5024267525023324],
+                                                                    [0.25125628140703515, 0.5401393471726906],
+                                                                    [0.2562814070351759, 0.5772512072569151],
+                                                                    [0.2613065326633166, 0.6114070883344332],
+                                                                    [0.2663316582914573, 0.6404393424308513],
+                                                                    [0.271356783919598, 0.6625054843050089],
+                                                                    [0.27638190954773867, 0.6762051218069378],
+                                                                    [0.2814070351758794, 0.6806688295099134],
+                                                                    [0.2864321608040201, 0.6756133253946931],
+                                                                    [0.2914572864321608, 0.661359448886559],
+                                                                    [0.2964824120603015, 0.6388117992979975],
+                                                                    [0.30150753768844224, 0.6094013268904601],
+                                                                    [0.3065326633165829, 0.5749945199209905],
+                                                                    [0.31155778894472363, 0.5377749509715235],
+                                                                    [0.3165829145728643, 0.5001047000322673],
+                                                                    [0.32160804020100503, 0.46437444889995305],
+                                                                    [0.3266331658291458, 0.43285176040851203],
+                                                                    [0.3316582914572864, 0.40753717120640065],
+                                                                    [0.33668341708542715, 0.3900372309206661],
+                                                                    [0.3417085427135678, 0.3814625450726914],
+                                                                    [0.34673366834170855, 0.38235729228773946],
+                                                                    [0.35175879396984927, 0.3926646888750637],
+                                                                    [0.35678391959798994, 0.41173059251337296],
+                                                                    [0.36180904522613067, 0.4383450163395632],
+                                                                    [0.36683417085427134, 0.4708189188159384],
+                                                                    [0.37185929648241206, 0.5070913960307023],
+                                                                    [0.37688442211055284, 0.5448604736450166],
+                                                                    [0.38190954773869346, 0.5817291979864065],
+                                                                    [0.3869346733668342, 0.6153577548525774],
+                                                                    [0.3919597989949749, 0.6436119620507966],
+                                                                    [0.3969849246231156, 0.664698711833021],
+                                                                    [0.4020100502512563, 0.6772797675907959],
+                                                                    [0.40703517587939697, 0.6805566928859812],
+                                                                    [0.4120603015075377, 0.6743215229331795],
+                                                                    [0.4170854271356784, 0.6589699627498516],
+                                                                    [0.4221105527638191, 0.6354762743747858],
+                                                                    [0.42713567839195987, 0.6053314468971424],
+                                                                    [0.4321608040201005, 0.5704485732355917],
+                                                                    [0.4371859296482412, 0.5330414387778357],
+                                                                    [0.44221105527638194, 0.4954840270569343],
+                                                                    [0.4472361809045226, 0.4601598587103897],
+                                                                    [0.45226130653266333, 0.42931072518224855],
+                                                                    [0.457286432160804, 0.40489441704018336],
+                                                                    [0.4623115577889447, 0.3884604759507135],
+                                                                    [0.46733668341708545, 0.3810518555133391],
+                                                                    [0.4723618090452261, 0.3831387318903343],
+                                                                    [0.47738693467336685, 0.39458866483396776],
+                                                                    [0.4824120603015075, 0.41467500279348907],
+                                                                    [0.48743718592964824, 0.4421229986853105],
+                                                                    [0.49246231155778897, 0.4751907096633081],
+                                                                    [0.49748743718592964, 0.5117795467156318],
+                                                                    [0.5025125628140703, 0.5495674582359471],
+                                                                    [0.507537688442211, 0.5861562952882714],
+                                                                    [0.5125628140703518, 0.619224006266269],
+                                                                    [0.5175879396984925, 0.6466720021580906],
+                                                                    [0.5226130653266332, 0.6667583401176121],
+                                                                    [0.5276381909547738, 0.6782082730612453],
+                                                                    [0.5326633165829145, 0.6802951494382407],
+                                                                    [0.5376884422110553, 0.6728865290008664],
+                                                                    [0.542713567839196, 0.6564525879113966],
+                                                                    [0.5477386934673367, 0.6320362797693311],
+                                                                    [0.5527638190954773, 0.6011871462411903],
+                                                                    [0.5577889447236181, 0.5658629778946457],
+                                                                    [0.5628140703517588, 0.5283055661737444],
+                                                                    [0.5678391959798995, 0.49089843171598835],
+                                                                    [0.5728643216080402, 0.45601555805443716],
+                                                                    [0.577889447236181, 0.4258707305767939],
+                                                                    [0.5829145728643216, 0.4023770422017283],
+                                                                    [0.5879396984924623, 0.3870254820184004],
+                                                                    [0.592964824120603, 0.3807903120655986],
+                                                                    [0.5979899497487438, 0.38406723736078385],
+                                                                    [0.6030150753768845, 0.3966482931185588],
+                                                                    [0.6080402010050251, 0.41773504290078306],
+                                                                    [0.6130653266331658, 0.4459892500990021],
+                                                                    [0.6180904522613065, 0.4796178069651729],
+                                                                    [0.6231155778894473, 0.5164865313065635],
+                                                                    [0.628140703517588, 0.5542556089208778],
+                                                                    [0.6331658291457286, 0.5905280861356407],
+                                                                    [0.6381909547738693, 0.6230019886120163],
+                                                                    [0.6432160804020101, 0.6496164124382067],
+                                                                    [0.6482412060301508, 0.6686823160765161],
+                                                                    [0.6532663316582916, 0.6789897126638401],
+                                                                    [0.6582914572864321, 0.6798844598788886],
+                                                                    [0.6633165829145728, 0.6713097740309139],
+                                                                    [0.6683417085427136, 0.6538098337451793],
+                                                                    [0.6733668341708543, 0.6284952445430676],
+                                                                    [0.678391959798995, 0.596972556051627],
+                                                                    [0.6834170854271356, 0.5612423049193135],
+                                                                    [0.6884422110552764, 0.5235720539800567],
+                                                                    [0.6934673366834171, 0.4863524850305893],
+                                                                    [0.6984924623115578, 0.45194567806111935],
+                                                                    [0.7035175879396985, 0.4225352056535825],
+                                                                    [0.7085427135678392, 0.39998755606502145],
+                                                                    [0.7135678391959799, 0.3857336795568867],
+                                                                    [0.7185929648241206, 0.38067817544166643],
+                                                                    [0.7236180904522613, 0.385141883144642],
+                                                                    [0.7286432160804021, 0.39884152064657075],
+                                                                    [0.7336683417085427, 0.4209076625207279],
+                                                                    [0.7386934673366834, 0.44993991661714644],
+                                                                    [0.7437185929648241, 0.48409579769466465],
+                                                                    [0.7487437185929647, 0.5212076577788892],
+                                                                    [0.7537688442211057, 0.5589202524492474],
+                                                                    [0.7587939698492463, 0.5948402126323216],
+                                                                    [0.7638190954773869, 0.6266879359148557],
+                                                                    [0.7688442211055276, 0.6524422578389429],
+                                                                    [0.7738693467336684, 0.6704687218486548],
+                                                                    [0.7788944723618091, 0.6796233074425904],
+                                                                    [0.7839195979899498, 0.6793250335922086],
+                                                                    [0.7889447236180904, 0.6695928297669661],
+                                                                    [0.7939698492462312, 0.6510443346060265],
+                                                                    [0.7989949748743719, 0.6248566984769189],
+                                                                    [0.8040201005025126, 0.5926918775236101],
+                                                                    [0.8090452261306533, 0.5565911602969046],
+                                                                    [0.8140703517587939, 0.5188456206646688],
+                                                                    [0.8190954773869347, 0.481850718499258],
+                                                                    [0.8241206030150754, 0.4479542756753241],
+                                                                    [0.8291457286432161, 0.4193074753363975],
+                                                                    [0.8341708542713568, 0.3977283405218084],
+                                                                    [0.8391959798994975, 0.3845863562629594],
+                                                                    [0.8442211055276382, 0.3807155574217682],
+                                                                    [0.8492462311557788, 0.38636159801162034],
+                                                                    [0.8542713567839197, 0.4011661611611063],
+                                                                    [0.8592964824120604, 0.42418969911709015],
+                                                                    [0.864321608040201, 0.45397106012944066],
+                                                                    [0.8693467336683417, 0.4886202180932379],
+                                                                    [0.8743718592964824, 0.5259382200110679],
+                                                                    [0.8793969849246231, 0.5635567390029436],
+                                                                    [0.8844221105527639, 0.5990883763568426],
+                                                                    [0.8894472361809045, 0.6302781739423544],
+                                                                    [0.8944723618090452, 0.6551467214961483],
+                                                                    [0.8994974874371859, 0.6721157767059052],
+                                                                    [0.9045226130653267, 0.6801084258164409],
+                                                                    [0.9095477386934674, 0.6786174282264902],
+                                                                    [0.914572864321608, 0.6677374076964054],
+                                                                    [0.9195979899497487, 0.648158847203624],
+                                                                    [0.9246231155778895, 0.6211242685527324],
+                                                                    [0.9296482412060302, 0.5883493777305914],
+                                                                    [0.9346733668341709, 0.5519141803895322],
+                                                                    [0.9396984924623115, 0.5141309776390988],
+                                                                    [0.9447236180904522, 0.4773976195807763],
+                                                                    [0.9497487437185929, 0.44404532961375187],
+                                                                    [0.9547738693467337, 0.41619075709701453],
+                                                                    [0.9597989949748744, 0.39560164760727695],
+                                                                    [0.964824120603015, 0.38358465581342943],
+                                                                    [0.9698492462311558, 0.3809024207427331],
+                                                                    [0.9748743718592965, 0.38772516612341396],
+                                                                    [0.9798994974874372, 0.40361989740994514],
+                                                                    [0.9849246231155779, 0.4275778810844127],
+                                                                    [0.9899497487437187, 0.45807866230436395],
+                                                                    [0.9949748743718593, 0.49318655812024287],
+                                                                    [1.0, 0.5306735024757896]]},
+                                          'fultrangemin': {'curved': False,
+                                                           'data': [[0.0, 0.5],
+                                                                    [0.005025125628140704, 0.5374869443555462],
+                                                                    [0.010050251256281407, 0.5725948401714258],
+                                                                    [0.01507537688442211, 0.6030956213913776],
+                                                                    [0.020100502512562814, 0.627053605065845],
+                                                                    [0.02512562814070352, 0.6429483363523759],
+                                                                    [0.03015075376884422, 0.6497710817330568],
+                                                                    [0.035175879396984924, 0.6470888466623604],
+                                                                    [0.04020100502512563, 0.6350718548685128],
+                                                                    [0.04522613065326633, 0.6144827453787752],
+                                                                    [0.05025125628140704, 0.5866281728620383],
+                                                                    [0.05527638190954774, 0.5532758828950143],
+                                                                    [0.06030150753768844, 0.5165425248366913],
+                                                                    [0.06532663316582915, 0.4787593220862572],
+                                                                    [0.07035175879396985, 0.44232412474519833],
+                                                                    [0.07537688442211056, 0.4095492339230578],
+                                                                    [0.08040201005025126, 0.3825146552721665],
+                                                                    [0.08542713567839195, 0.36293609477938454],
+                                                                    [0.09045226130653267, 0.3520560742492996],
+                                                                    [0.09547738693467336, 0.35056507665934894],
+                                                                    [0.10050251256281408, 0.35855772576988443],
+                                                                    [0.10552763819095477, 0.37552678097964104],
+                                                                    [0.11055276381909548, 0.40039532853343535],
+                                                                    [0.11557788944723618, 0.43158512611894756],
+                                                                    [0.12060301507537688, 0.4671167634728463],
+                                                                    [0.12562814070351758, 0.5047352824647214],
+                                                                    [0.1306532663316583, 0.5420532843825522],
+                                                                    [0.135678391959799, 0.5767024423463489],
+                                                                    [0.1407035175879397, 0.6064838033586999],
+                                                                    [0.1457286432160804, 0.6295073413146834],
+                                                                    [0.15075376884422112, 0.6443119044641694],
+                                                                    [0.15577889447236182, 0.6499579450540217],
+                                                                    [0.16080402010050251, 0.6460871462128307],
+                                                                    [0.1658291457286432, 0.6329451619539815],
+                                                                    [0.1708542713567839, 0.6113660271393927],
+                                                                    [0.17587939698492464, 0.5827192268004661],
+                                                                    [0.18090452261306533, 0.5488227839765316],
+                                                                    [0.18592964824120603, 0.5118278818111216],
+                                                                    [0.19095477386934673, 0.4740823421788852],
+                                                                    [0.19597989949748745, 0.4379816249521798],
+                                                                    [0.20100502512562815, 0.4058168039988714],
+                                                                    [0.20603015075376885, 0.3796291678697634],
+                                                                    [0.21105527638190955, 0.36108067270882377],
+                                                                    [0.21608040201005024, 0.35134846888358123],
+                                                                    [0.22110552763819097, 0.3510501950331995],
+                                                                    [0.22613065326633167, 0.36020478062713474],
+                                                                    [0.23115577889447236, 0.37823124463684693],
+                                                                    [0.23618090452261306, 0.40398556656093376],
+                                                                    [0.24120603015075376, 0.43583328984346864],
+                                                                    [0.24623115577889448, 0.4717532500265425],
+                                                                    [0.25125628140703515, 0.5094658446969008],
+                                                                    [0.2562814070351759, 0.5465777047811252],
+                                                                    [0.2613065326633166, 0.5807335858586433],
+                                                                    [0.2663316582914573, 0.6097658399550614],
+                                                                    [0.271356783919598, 0.631831981829219],
+                                                                    [0.27638190954773867, 0.6455316193311479],
+                                                                    [0.2814070351758794, 0.6499953270341234],
+                                                                    [0.2864321608040201, 0.6449398229189032],
+                                                                    [0.2914572864321608, 0.630685946410769],
+                                                                    [0.2964824120603015, 0.6081382968222075],
+                                                                    [0.30150753768844224, 0.5787278244146702],
+                                                                    [0.3065326633165829, 0.5443210174452006],
+                                                                    [0.31155778894472363, 0.5071014484957336],
+                                                                    [0.3165829145728643, 0.4694311975564774],
+                                                                    [0.32160804020100503, 0.4337009464241632],
+                                                                    [0.3266331658291458, 0.40217825793272216],
+                                                                    [0.3316582914572864, 0.3768636687306108],
+                                                                    [0.33668341708542715, 0.35936372844487624],
+                                                                    [0.3417085427135678, 0.3507890425969015],
+                                                                    [0.34673366834170855, 0.3516837898119496],
+                                                                    [0.35175879396984927, 0.3619911863992738],
+                                                                    [0.35678391959798994, 0.3810570900375831],
+                                                                    [0.36180904522613067, 0.40767151386377326],
+                                                                    [0.36683417085427134, 0.44014541634014853],
+                                                                    [0.37185929648241206, 0.4764178935549124],
+                                                                    [0.37688442211055284, 0.5141869711692267],
+                                                                    [0.38190954773869346, 0.5510556955106166],
+                                                                    [0.3869346733668342, 0.5846842523767876],
+                                                                    [0.3919597989949749, 0.6129384595750067],
+                                                                    [0.3969849246231156, 0.6340252093572311],
+                                                                    [0.4020100502512563, 0.6466062651150061],
+                                                                    [0.40703517587939697, 0.6498831904101913],
+                                                                    [0.4120603015075377, 0.6436480204573897],
+                                                                    [0.4170854271356784, 0.6282964602740617],
+                                                                    [0.4221105527638191, 0.604802771898996],
+                                                                    [0.42713567839195987, 0.5746579444213524],
+                                                                    [0.4321608040201005, 0.5397750707598018],
+                                                                    [0.4371859296482412, 0.5023679363020458],
+                                                                    [0.44221105527638194, 0.4648105245811444],
+                                                                    [0.4472361809045226, 0.42948635623459985],
+                                                                    [0.45226130653266333, 0.3986372227064587],
+                                                                    [0.457286432160804, 0.3742209145643935],
+                                                                    [0.4623115577889447, 0.35778697347492355],
+                                                                    [0.46733668341708545, 0.3503783530375492],
+                                                                    [0.4723618090452261, 0.35246522941454445],
+                                                                    [0.47738693467336685, 0.36391516235817783],
+                                                                    [0.4824120603015075, 0.38400150031769914],
+                                                                    [0.48743718592964824, 0.4114494962095206],
+                                                                    [0.49246231155778897, 0.44451720718751825],
+                                                                    [0.49748743718592964, 0.4811060442398419],
+                                                                    [0.5025125628140703, 0.5188939557601572],
+                                                                    [0.507537688442211, 0.5554827928124815],
+                                                                    [0.5125628140703518, 0.5885505037904791],
+                                                                    [0.5175879396984925, 0.6159984996823007],
+                                                                    [0.5226130653266332, 0.6360848376418223],
+                                                                    [0.5276381909547738, 0.6475347705854554],
+                                                                    [0.5326633165829145, 0.6496216469624508],
+                                                                    [0.5376884422110553, 0.6422130265250766],
+                                                                    [0.542713567839196, 0.6257790854356067],
+                                                                    [0.5477386934673367, 0.6013627772935412],
+                                                                    [0.5527638190954773, 0.5705136437654005],
+                                                                    [0.5577889447236181, 0.5351894754188558],
+                                                                    [0.5628140703517588, 0.4976320636979545],
+                                                                    [0.5678391959798995, 0.4602249292401985],
+                                                                    [0.5728643216080402, 0.4253420555786473],
+                                                                    [0.577889447236181, 0.39519722810100405],
+                                                                    [0.5829145728643216, 0.37170353972593845],
+                                                                    [0.5879396984924623, 0.3563519795426105],
+                                                                    [0.592964824120603, 0.3501168095898087],
+                                                                    [0.5979899497487438, 0.353393734884994],
+                                                                    [0.6030150753768845, 0.3659747906427689],
+                                                                    [0.6080402010050251, 0.38706154042499313],
+                                                                    [0.6130653266331658, 0.41531574762321216],
+                                                                    [0.6180904522613065, 0.44894430448938305],
+                                                                    [0.6231155778894473, 0.4858130288307736],
+                                                                    [0.628140703517588, 0.523582106445088],
+                                                                    [0.6331658291457286, 0.5598545836598507],
+                                                                    [0.6381909547738693, 0.5923284861362265],
+                                                                    [0.6432160804020101, 0.6189429099624167],
+                                                                    [0.6482412060301508, 0.6380088136007261],
+                                                                    [0.6532663316582916, 0.6483162101880503],
+                                                                    [0.6582914572864321, 0.6492109574030986],
+                                                                    [0.6633165829145728, 0.6406362715551239],
+                                                                    [0.6683417085427136, 0.6231363312693894],
+                                                                    [0.6733668341708543, 0.5978217420672777],
+                                                                    [0.678391959798995, 0.5662990535758371],
+                                                                    [0.6834170854271356, 0.5305688024435237],
+                                                                    [0.6884422110552764, 0.4928985515042668],
+                                                                    [0.6934673366834171, 0.4556789825547994],
+                                                                    [0.6984924623115578, 0.4212721755853295],
+                                                                    [0.7035175879396985, 0.3918617031777926],
+                                                                    [0.7085427135678392, 0.3693140535892316],
+                                                                    [0.7135678391959799, 0.35506017708109683],
+                                                                    [0.7185929648241206, 0.35000467296587656],
+                                                                    [0.7236180904522613, 0.35446838066885206],
+                                                                    [0.7286432160804021, 0.3681680181707809],
+                                                                    [0.7336683417085427, 0.390234160044938],
+                                                                    [0.7386934673366834, 0.4192664141413565],
+                                                                    [0.7437185929648241, 0.4534222952188747],
+                                                                    [0.7487437185929647, 0.49053415530309935],
+                                                                    [0.7537688442211057, 0.5282467499734574],
+                                                                    [0.7587939698492463, 0.5641667101565316],
+                                                                    [0.7638190954773869, 0.5960144334390658],
+                                                                    [0.7688442211055276, 0.6217687553631531],
+                                                                    [0.7738693467336684, 0.639795219372865],
+                                                                    [0.7788944723618091, 0.6489498049668004],
+                                                                    [0.7839195979899498, 0.6486515311164188],
+                                                                    [0.7889447236180904, 0.6389193272911763],
+                                                                    [0.7939698492462312, 0.6203708321302366],
+                                                                    [0.7989949748743719, 0.5941831960011291],
+                                                                    [0.8040201005025126, 0.5620183750478202],
+                                                                    [0.8090452261306533, 0.5259176578211147],
+                                                                    [0.8140703517587939, 0.4881721181888789],
+                                                                    [0.8190954773869347, 0.4511772160234681],
+                                                                    [0.8241206030150754, 0.41728077319953427],
+                                                                    [0.8291457286432161, 0.38863397286060763],
+                                                                    [0.8341708542713568, 0.3670548380460185],
+                                                                    [0.8391959798994975, 0.35391285378716947],
+                                                                    [0.8442211055276382, 0.35004205494597834],
+                                                                    [0.8492462311557788, 0.3556880955358304],
+                                                                    [0.8542713567839197, 0.3704926586853164],
+                                                                    [0.8592964824120604, 0.3935161966413003],
+                                                                    [0.864321608040201, 0.4232975576536508],
+                                                                    [0.8693467336683417, 0.457946715617448],
+                                                                    [0.8743718592964824, 0.495264717535278],
+                                                                    [0.8793969849246231, 0.5328832365271537],
+                                                                    [0.8844221105527639, 0.5684148738810527],
+                                                                    [0.8894472361809045, 0.5996046714665645],
+                                                                    [0.8944723618090452, 0.6244732190203583],
+                                                                    [0.8994974874371859, 0.6414422742301152],
+                                                                    [0.9045226130653267, 0.649434923340651],
+                                                                    [0.9095477386934674, 0.6479439257507003],
+                                                                    [0.914572864321608, 0.6370639052206156],
+                                                                    [0.9195979899497487, 0.6174853447278341],
+                                                                    [0.9246231155778895, 0.5904507660769425],
+                                                                    [0.9296482412060302, 0.5576758752548016],
+                                                                    [0.9346733668341709, 0.5212406779137423],
+                                                                    [0.9396984924623115, 0.4834574751633089],
+                                                                    [0.9447236180904522, 0.44672411710498644],
+                                                                    [0.9497487437185929, 0.413371827137962],
+                                                                    [0.9547738693467337, 0.38551725462122466],
+                                                                    [0.9597989949748744, 0.364928145131487],
+                                                                    [0.964824120603015, 0.3529111533376395],
+                                                                    [0.9698492462311558, 0.3502289182669432],
+                                                                    [0.9748743718592965, 0.35705166364762403],
+                                                                    [0.9798994974874372, 0.3729463949341552],
+                                                                    [0.9849246231155779, 0.3969043786086228],
+                                                                    [0.9899497487437187, 0.427405159828574],
+                                                                    [0.9949748743718593, 0.462513055644453],
+                                                                    [1.0, 0.4999999999999997]]},
+                                          'mix': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                          'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                          'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                          'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                          'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                          'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
+                            'userInputs': {'snd': {'dursnd': 5.768526077097506,
+                                                   'gain': [0.0, False, False, False, None, 1, None, None],
+                                                   'loopIn': [0.0, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                                   'loopMode': 1,
+                                                   'loopOut': [5.768526077097506, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                                   'loopX': [1.0, False, False, False, None, 1, None, None],
+                                                   'mode': 0,
+                                                   'nchnlssnd': 1,
+                                                   'offsnd': 0.0,
+                                                   'path': u'/home/olivier/Dropbox/private/snds/baseballmajeur_m.aif',
+                                                   'srsnd': 44100.0,
+                                                   'startFromLoop': 0,
+                                                   'transp': [0.0, False, False, False, None, 1, None, None],
+                                                   'type': 'csampler'}},
+                            'userSliders': {'filtrangeCAC': [[1000.0, 2000.0000000000002], 0, None, [1, 1], None, None],
+                                            'fultrange': [[343.08868408203114, 424.0596008300779], 1, None, [1, 1], None, None],
+                                            'mix': [0.0, 0, None, 1, None, None]},
+                            'userTogglePopups': {'balance': 0, 'filtnum': 3, 'poly': 0, 'polynum': 0}},
+ u'02-Wrapping Phases': {'active': False,
+                         'gainSlider': 0.0,
+                         'nchnls': 2,
+                         'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                     1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                     2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                     3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                         'totalTime': 30.00000000000007,
+                         'userGraph': {'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                       'filtrangeCACmax': {'curved': False,
+                                                           'data': [[0.0, 0.802583147101354],
+                                                                    [0.047619047619047616, 0.3025831471013541],
+                                                                    [0.047619047619047616, 0.802583147101354],
+                                                                    [0.09523809523809523, 0.3025831471013541],
+                                                                    [0.09523809523809523, 0.802583147101354],
+                                                                    [0.14285714285714285, 0.3025831471013541],
+                                                                    [0.14285714285714285, 0.802583147101354],
+                                                                    [0.19047619047619047, 0.3025831471013541],
+                                                                    [0.19047619047619047, 0.802583147101354],
+                                                                    [0.23809523809523808, 0.3025831471013541],
+                                                                    [0.23809523809523808, 0.802583147101354],
+                                                                    [0.2857142857142857, 0.3025831471013541],
+                                                                    [0.2857142857142857, 0.802583147101354],
+                                                                    [0.3333333333333333, 0.3025831471013541],
+                                                                    [0.3333333333333333, 0.802583147101354],
+                                                                    [0.38095238095238093, 0.3025831471013541],
+                                                                    [0.38095238095238093, 0.802583147101354],
+                                                                    [0.42857142857142855, 0.3025831471013541],
+                                                                    [0.42857142857142855, 0.802583147101354],
+                                                                    [0.47619047619047616, 0.3025831471013541],
+                                                                    [0.47619047619047616, 0.802583147101354],
+                                                                    [0.5238095238095237, 0.3025831471013541],
+                                                                    [0.5238095238095237, 0.802583147101354],
+                                                                    [0.5714285714285714, 0.3025831471013541],
+                                                                    [0.5714285714285714, 0.802583147101354],
+                                                                    [0.6190476190476191, 0.3025831471013541],
+                                                                    [0.6190476190476191, 0.802583147101354],
+                                                                    [0.6666666666666666, 0.3025831471013541],
+                                                                    [0.6666666666666666, 0.802583147101354],
+                                                                    [0.7142857142857142, 0.3025831471013541],
+                                                                    [0.7142857142857142, 0.802583147101354],
+                                                                    [0.7619047619047619, 0.3025831471013541],
+                                                                    [0.7619047619047619, 0.802583147101354],
+                                                                    [0.8095238095238095, 0.3025831471013541],
+                                                                    [0.8095238095238095, 0.802583147101354],
+                                                                    [0.8571428571428571, 0.3025831471013541],
+                                                                    [0.8571428571428571, 0.802583147101354],
+                                                                    [0.9047619047619047, 0.3025831471013541],
+                                                                    [0.9047619047619047, 0.802583147101354],
+                                                                    [0.9523809523809523, 0.3025831471013541],
+                                                                    [0.9523809523809523, 0.802583147101354],
+                                                                    [1.0, 0.3025831471013541]]},
+                                       'filtrangeCACmin': {'curved': False,
+                                                           'data': [[0.0, 0.75],
+                                                                    [0.047619047619047616, 0.25],
+                                                                    [0.047619047619047616, 0.75],
+                                                                    [0.09523809523809523, 0.25],
+                                                                    [0.09523809523809523, 0.75],
+                                                                    [0.14285714285714285, 0.25],
+                                                                    [0.14285714285714285, 0.75],
+                                                                    [0.19047619047619047, 0.25],
+                                                                    [0.19047619047619047, 0.75],
+                                                                    [0.23809523809523808, 0.25],
+                                                                    [0.23809523809523808, 0.75],
+                                                                    [0.2857142857142857, 0.25],
+                                                                    [0.2857142857142857, 0.75],
+                                                                    [0.3333333333333333, 0.25],
+                                                                    [0.3333333333333333, 0.75],
+                                                                    [0.38095238095238093, 0.25],
+                                                                    [0.38095238095238093, 0.75],
+                                                                    [0.42857142857142855, 0.25],
+                                                                    [0.42857142857142855, 0.75],
+                                                                    [0.47619047619047616, 0.25],
+                                                                    [0.47619047619047616, 0.75],
+                                                                    [0.5238095238095237, 0.25],
+                                                                    [0.5238095238095237, 0.75],
+                                                                    [0.5714285714285714, 0.25],
+                                                                    [0.5714285714285714, 0.75],
+                                                                    [0.6190476190476191, 0.25],
+                                                                    [0.6190476190476191, 0.75],
+                                                                    [0.6666666666666666, 0.25],
+                                                                    [0.6666666666666666, 0.75],
+                                                                    [0.7142857142857142, 0.25],
+                                                                    [0.7142857142857142, 0.75],
+                                                                    [0.7619047619047619, 0.25],
+                                                                    [0.7619047619047619, 0.75],
+                                                                    [0.8095238095238095, 0.25],
+                                                                    [0.8095238095238095, 0.75],
+                                                                    [0.8571428571428571, 0.25],
+                                                                    [0.8571428571428571, 0.75],
+                                                                    [0.9047619047619047, 0.25],
+                                                                    [0.9047619047619047, 0.75],
+                                                                    [0.9523809523809523, 0.25],
+                                                                    [0.9523809523809523, 0.75],
+                                                                    [1.0, 0.25]]},
+                                       'fultrangemax': {'curved': False,
+                                                        'data': [[0.0, 0.8047741115639103],
+                                                                 [0.05, 0.3047741115639104],
+                                                                 [0.05, 0.8047741115639103],
+                                                                 [0.1, 0.3047741115639104],
+                                                                 [0.1, 0.8047741115639103],
+                                                                 [0.15000000000000002, 0.3047741115639104],
+                                                                 [0.15000000000000002, 0.8047741115639103],
+                                                                 [0.2, 0.3047741115639104],
+                                                                 [0.2, 0.8047741115639103],
+                                                                 [0.25, 0.3047741115639104],
+                                                                 [0.25, 0.8047741115639103],
+                                                                 [0.30000000000000004, 0.3047741115639104],
+                                                                 [0.30000000000000004, 0.8047741115639103],
+                                                                 [0.35000000000000003, 0.3047741115639104],
+                                                                 [0.35000000000000003, 0.8047741115639103],
+                                                                 [0.4, 0.3047741115639104],
+                                                                 [0.4, 0.8047741115639103],
+                                                                 [0.45, 0.3047741115639104],
+                                                                 [0.45, 0.8047741115639103],
+                                                                 [0.5, 0.3047741115639104],
+                                                                 [0.5, 0.8047741115639103],
+                                                                 [0.55, 0.3047741115639104],
+                                                                 [0.55, 0.8047741115639103],
+                                                                 [0.6000000000000001, 0.3047741115639104],
+                                                                 [0.6000000000000001, 0.8047741115639103],
+                                                                 [0.65, 0.3047741115639104],
+                                                                 [0.65, 0.8047741115639103],
+                                                                 [0.7000000000000001, 0.3047741115639104],
+                                                                 [0.7000000000000001, 0.8047741115639103],
+                                                                 [0.75, 0.3047741115639104],
+                                                                 [0.75, 0.8047741115639103],
+                                                                 [0.8, 0.3047741115639104],
+                                                                 [0.8, 0.8047741115639103],
+                                                                 [0.8500000000000001, 0.3047741115639104],
+                                                                 [0.8500000000000001, 0.8047741115639103],
+                                                                 [0.9, 0.3047741115639104],
+                                                                 [0.9, 0.8047741115639103],
+                                                                 [0.9500000000000001, 0.3047741115639104],
+                                                                 [0.9500000000000001, 0.8047741115639103],
+                                                                 [1.0, 0.3047741115639104]]},
+                                       'fultrangemin': {'curved': False,
+                                                        'data': [[0.0, 0.75],
+                                                                 [0.05, 0.25],
+                                                                 [0.05, 0.75],
+                                                                 [0.1, 0.25],
+                                                                 [0.1, 0.75],
+                                                                 [0.15000000000000002, 0.25],
+                                                                 [0.15000000000000002, 0.75],
+                                                                 [0.2, 0.25],
+                                                                 [0.2, 0.75],
+                                                                 [0.25, 0.25],
+                                                                 [0.25, 0.75],
+                                                                 [0.30000000000000004, 0.25],
+                                                                 [0.30000000000000004, 0.75],
+                                                                 [0.35000000000000003, 0.25],
+                                                                 [0.35000000000000003, 0.75],
+                                                                 [0.4, 0.25],
+                                                                 [0.4, 0.75],
+                                                                 [0.45, 0.25],
+                                                                 [0.45, 0.75],
+                                                                 [0.5, 0.25],
+                                                                 [0.5, 0.75],
+                                                                 [0.55, 0.25],
+                                                                 [0.55, 0.75],
+                                                                 [0.6000000000000001, 0.25],
+                                                                 [0.6000000000000001, 0.75],
+                                                                 [0.65, 0.25],
+                                                                 [0.65, 0.75],
+                                                                 [0.7000000000000001, 0.25],
+                                                                 [0.7000000000000001, 0.75],
+                                                                 [0.75, 0.25],
+                                                                 [0.75, 0.75],
+                                                                 [0.8, 0.25],
+                                                                 [0.8, 0.75],
+                                                                 [0.8500000000000001, 0.25],
+                                                                 [0.8500000000000001, 0.75],
+                                                                 [0.9, 0.25],
+                                                                 [0.9, 0.75],
+                                                                 [0.9500000000000001, 0.25],
+                                                                 [0.9500000000000001, 0.75],
+                                                                 [1.0, 0.25]]},
+                                       'mix': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                       'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                       'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                       'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                       'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                       'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
+                         'userInputs': {'snd': {'dursnd': 27.707210884353742,
+                                                'gain': [0.0, False, False, False, None, 1, None, None],
+                                                'loopIn': [0.0, False, False, False, None, 1, 0, 27.707210884353742, None, None],
+                                                'loopMode': 1,
+                                                'loopOut': [27.707210884353742, False, False, False, None, 1, 0, 27.707210884353742, None, None],
+                                                'loopX': [1.0, False, False, False, None, 1, None, None],
+                                                'mode': 0,
+                                                'nchnlssnd': 2,
+                                                'offsnd': 0.0,
+                                                'path': u'/home/olivier/Dropbox/private/snds/chutes.aif',
+                                                'srsnd': 44100.0,
+                                                'startFromLoop': 0,
+                                                'transp': [0.0, False, False, False, None, 1, None, None],
+                                                'type': 'csampler'}},
+                         'userSliders': {'filtrangeCAC': [[251.71176147460943, 361.9536437988282], 1, None, [1, 1], None, None],
+                                         'fultrange': [[245.25901794433585, 358.053009033203], 1, None, [1, 1], None, None],
+                                         'mix': [0.5, 0, None, 1, None, None]},
+                         'userTogglePopups': {'balance': 0, 'filtnum': 3, 'poly': 0, 'polynum': 0}},
+ u'03-Morphing Filters': {'active': False,
+                          'gainSlider': 0.0,
+                          'nchnls': 2,
+                          'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                      1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                      2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                      3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                          'totalTime': 30.00000000000007,
+                          'userGraph': {'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                        'filtrangeCACmax': {'curved': False, 'data': [[0.0, 0.6666666666666666], [1.0, 0.6666666666666666]]},
+                                        'filtrangeCACmin': {'curved': False, 'data': [[0.0, 0.5663233347786729], [1.0, 0.5663233347786729]]},
+                                        'fultrangemax': {'curved': False, 'data': [[0.0, 0.3333333333333333], [1.0, 0.3333333333333333]]},
+                                        'fultrangemin': {'curved': False, 'data': [[0.0, 0.23299000144533963], [1.0, 0.23299000144533963]]},
+                                        'mix': {'curved': False,
+                                                'data': [[0.0, 0.06026186739855046],
+                                                         [0.10408139886066589, 0.9936850341557023],
+                                                         [0.16784609616646357, 0.9940624863064722],
+                                                         [0.2222222222222222, 0.3624610076290817],
+                                                         [0.3333333333333333, 0.058249465320700244],
+                                                         [0.4444444444444444, 0.594978350198098],
+                                                         [0.5438393684714802, 1],
+                                                         [0.6666666666666666, 0.019552152583684236],
+                                                         [0.872678893158788, 1],
+                                                         [0.8912321263057039, 0],
+                                                         [1.0, 0.0008594959183122848]]},
+                                        'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                        'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                        'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                        'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                        'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
+                          'userInputs': {'snd': {'dursnd': 5.768526077097506,
+                                                 'gain': [0.0, False, False, False, None, 1, None, None],
+                                                 'loopIn': [0.0, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                                 'loopMode': 1,
+                                                 'loopOut': [5.768526077097506, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                                 'loopX': [1.0, False, False, False, None, 1, None, None],
+                                                 'mode': 0,
+                                                 'nchnlssnd': 1,
+                                                 'offsnd': 0.0,
+                                                 'path': u'/home/olivier/Dropbox/private/snds/baseballmajeur_m.aif',
+                                                 'srsnd': 44100.0,
+                                                 'startFromLoop': 0,
+                                                 'transp': [0.0, False, False, False, None, 1, None, None],
+                                                 'type': 'csampler'}},
+                          'userSliders': {'filtrangeCAC': [[501.26624126286015, 3045.946727095417], 0, None, [1, 1], None, None],
+                                          'fultrange': [[99.41057737219194, 605.061091420491], 0, None, [1, 1], None, None],
+                                          'mix': [0.5638797879219055, 1, None, 1, None, None]},
+                          'userTogglePopups': {'balance': 0, 'filtnum': 3, 'poly': 0, 'polynum': 0}},
+ u'04-High Freq Boost': {'gainSlider': 0.0,
+                         'nchnls': 2,
+                         'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                     1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                     2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                     3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                         'totalTime': 30.00000000000007,
+                         'userGraph': {'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                       'filtrangeCACmax': {'curved': False, 'data': [[0.0, 0.6666666666666666], [1.0, 0.6666666666666666]]},
+                                       'filtrangeCACmin': {'curved': False, 'data': [[0.0, 0.5663233347786729], [1.0, 0.5663233347786729]]},
+                                       'fultrangemax': {'curved': False, 'data': [[0.0, 0.3333333333333333], [1.0, 0.3333333333333333]]},
+                                       'fultrangemin': {'curved': False, 'data': [[0.0, 0.23299000144533963], [1.0, 0.23299000144533963]]},
+                                       'mix': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                       'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                       'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                       'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                       'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                       'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
+                         'userInputs': {'snd': {'dursnd': 5.768526077097506,
+                                                'gain': [0.0, False, False, False, None, 1, None, None],
+                                                'loopIn': [0.0, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                                'loopMode': 1,
+                                                'loopOut': [5.768526077097506, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                                'loopX': [1.0, False, False, False, None, 1, None, None],
+                                                'mode': 0,
+                                                'nchnlssnd': 1,
+                                                'offsnd': 0.0,
+                                                'path': u'/home/olivier/Dropbox/private/snds/baseballmajeur_m.aif',
+                                                'srsnd': 44100.0,
+                                                'startFromLoop': 0,
+                                                'transp': [0.0, False, False, False, None, 1, None, None],
+                                                'type': 'csampler'}},
+                         'userSliders': {'filtrangeCAC': [[20.000000000000004, 20000.000000000004], 0, None, [1, 1], None, None],
+                                         'fultrange': [[3966.3783111243574, 7950.399828312698], 0, None, [1, 1], None, None],
+                                         'mix': [0.5, 0, None, 1, None, None]},
+                         'userTogglePopups': {'balance': 1, 'filtnum': 3, 'poly': 0, 'polynum': 0}},
+ u'05-Small Box': {'gainSlider': 0.0,
+                   'nchnls': 2,
+                   'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                   'totalTime': 30.00000000000007,
+                   'userGraph': {'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                 'filtrangeCACmax': {'curved': False, 'data': [[0.0, 0.6666666666666666], [1.0, 0.6666666666666666]]},
+                                 'filtrangeCACmin': {'curved': False, 'data': [[0.0, 0.5663233347786729], [1.0, 0.5663233347786729]]},
+                                 'fultrangemax': {'curved': False, 'data': [[0.0, 0.3333333333333333], [1.0, 0.3333333333333333]]},
+                                 'fultrangemin': {'curved': False, 'data': [[0.0, 0.23299000144533963], [1.0, 0.23299000144533963]]},
+                                 'mix': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                 'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                 'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                 'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                 'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                 'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
+                   'userInputs': {'snd': {'dursnd': 5.768526077097506,
+                                          'gain': [0.0, False, False, False, None, 1, None, None],
+                                          'loopIn': [0.0, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                          'loopMode': 1,
+                                          'loopOut': [5.768526077097506, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                          'loopX': [1.0, False, False, False, None, 1, None, None],
+                                          'mode': 0,
+                                          'nchnlssnd': 1,
+                                          'offsnd': 0.0,
+                                          'path': u'/home/olivier/Dropbox/private/snds/baseballmajeur_m.aif',
+                                          'srsnd': 44100.0,
+                                          'startFromLoop': 0,
+                                          'transp': [0.0, False, False, False, None, 1, None, None],
+                                          'type': 'csampler'}},
+                   'userSliders': {'filtrangeCAC': [[230.95639693789167, 495.74776495506785], 0, None, [1, 1], None, None],
+                                   'fultrange': [[961.6333560700168, 1927.544240436204], 0, None, [1, 1], None, None],
+                                   'mix': [0.5, 0, None, 1, None, None]},
+                   'userTogglePopups': {'balance': 1, 'filtnum': 3, 'poly': 0, 'polynum': 0}}}
\ No newline at end of file
diff --git a/Resources/modules/Filters/ParamEQ.c5 b/Resources/modules/Filters/ParamEQ.c5
index 8926c01..0a7771e 100644
--- a/Resources/modules/Filters/ParamEQ.c5
+++ b/Resources/modules/Filters/ParamEQ.c5
@@ -1,34 +1,63 @@
 class Module(BaseModule):
     """
-    Parametric equalization module
+    "Parametric equalizer"
     
-    Sliders under the graph:
+    Description
+
+    Standard parametric equalizer built with four lowshelf/highshelf/peak/notch filters.
+    
+    Sliders
     
-        - Freq 1 : Center frequency of the first EQ
-        - Freq 1 Q : Q factor of the first EQ
-        - Freq 1 Boost/Cut : Gain of the first EQ
-        - Freq 2 : Center frequency of the second EQ
-        - Freq 2 Q : Q factor of the second EQ
-        - Freq 2 Boost/Cut : Gain of the second EQ
-        - Freq 3 : Center frequency of the third EQ
-        - Freq 3 Q : Q factor of the third EQ
-        - Freq 3 Boost/Cut : Gain of the third EQ
-        - Freq 4 : Center frequency of the fourth EQ
-        - Freq 5 Q : Q factor of the fourth EQ
-        - Freq 5 Boost/Cut : Gain of the fourth EQ
+        # Freq 1 Boost/Cut : 
+            Gain of the first EQ
+        # Freq 1 : 
+            Center frequency of the first EQ
+        # Freq 1 Q : 
+            Q factor of the first EQ
+        # Freq 2 Boost/Cut : 
+            Gain of the second EQ
+        # Freq 2 : 
+            Center frequency of the second EQ
+        # Freq 2 Q : 
+            Q factor of the second EQ
+        # Freq 3 Boost/Cut : 
+            Gain of the third EQ
+        # Freq 3 : 
+            Center frequency of the third EQ
+        # Freq 3 Q : 
+            Q factor of the third EQ
+        # Freq 5 Boost/Cut : 
+            Gain of the fourth EQ
+        # Freq 4 : 
+            Center frequency of the fourth EQ
+        # Freq 5 Q : 
+            Q factor of the fourth EQ
+
+    Graph Only
     
-    Dropdown menus, toggles and sliders on the bottom left:
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
     
-        - EQ Type 1 : EQ type of the first EQ
-        - EQ Type 2 : EQ type of the second EQ
-        - EQ Type 3 : EQ type of the third EQ
-        - EQ Type 4 : EQ type of the fourth EQ
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+    Popups & Toggles
     
-    Graph only parameters :
+        # EQ Type 1 : 
+            EQ type of the first EQ
+        # EQ Type 2 : 
+            EQ type of the second EQ
+        # EQ Type 3 : 
+            EQ type of the third EQ
+        # EQ Type 4 :
+            EQ type of the fourth EQ
+        # Balance :
+            Compression mode. Off, balanced with a fixed signal
+            or balanced with the input source.
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
     """
     def __init__(self):
         BaseModule.__init__(self)
@@ -104,29 +133,29 @@ CECILIA_PRESETS = {u'01-Losing Weight': {'active': False,
                                    2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
                        'totalTime': 30.000000000000135,
                        'userGraph': {'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                     'freq1': {'curved': False, 'data': [[0.0, 0.62751713125854613], [1.0, 0.62751713125854613]]},
-                                     'freq1gain': {'curved': False, 'data': [[0.0, 0.68181818181818177], [1.0, 0]]},
+                                     'freq1': {'curved': False, 'data': [[0.0, 0.6275171312585461], [1.0, 0.6275171312585461]]},
+                                     'freq1gain': {'curved': False, 'data': [[0.0, 0.6818181818181818], [1.0, 0]]},
                                      'freq1q': {'curved': False, 'data': [[0.0, 0.021789473684210522], [1.0, 0.021789473684210522]]},
-                                     'freq2': {'curved': False, 'data': [[0.0, 0.69750734196794839], [1.0, 0.69750734196794839]]},
-                                     'freq2gain': {'curved': False, 'data': [[0.0, 0.68181818181818177], [1.0, 0.68181818181818177]]},
+                                     'freq2': {'curved': False, 'data': [[0.0, 0.6975073419679484], [1.0, 0.6975073419679484]]},
+                                     'freq2gain': {'curved': False, 'data': [[0.0, 0.6818181818181818], [1.0, 0.6818181818181818]]},
                                      'freq2q': {'curved': False, 'data': [[0.0, 0.021789473684210522], [1.0, 0.021789473684210522]]},
-                                     'freq3': {'curved': False, 'data': [[0.0, 0.73844899065052094], [1.0, 0.73844899065052094]]},
-                                     'freq3gain': {'curved': False, 'data': [[0.0, 0.68181818181818177], [1.0, 0.68181818181818177]]},
+                                     'freq3': {'curved': False, 'data': [[0.0, 0.7384489906505209], [1.0, 0.7384489906505209]]},
+                                     'freq3gain': {'curved': False, 'data': [[0.0, 0.6818181818181818], [1.0, 0.6818181818181818]]},
                                      'freq3q': {'curved': False, 'data': [[0.0, 0.021789473684210522], [1.0, 0.021789473684210522]]},
-                                     'freq4': {'curved': False, 'data': [[0.0, 0.76749755267735054], [1.0, 0.76749755267735054]]},
-                                     'freq4gain': {'curved': False, 'data': [[0.0, 0.68181818181818177], [1.0, 0.68181818181818177]]},
+                                     'freq4': {'curved': False, 'data': [[0.0, 0.7674975526773505], [1.0, 0.7674975526773505]]},
+                                     'freq4gain': {'curved': False, 'data': [[0.0, 0.6818181818181818], [1.0, 0.6818181818181818]]},
                                      'freq4q': {'curved': False, 'data': [[0.0, 0.021789473684210522], [1.0, 0.021789473684210522]]},
                                      'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                     'sndgain': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
+                                     'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
                                      'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
                                      'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
                                      'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
-                       'userInputs': {'snd': {'dursnd': 5.3334465026855469,
+                       'userInputs': {'snd': {'dursnd': 5.333446502685547,
                                               'gain': [0.0, False, False],
                                               'gensizesnd': 262144,
                                               'loopIn': [0.0, False, False],
                                               'loopMode': 1,
-                                              'loopOut': [5.3334465026855469, False, False],
+                                              'loopOut': [5.333446502685547, False, False],
                                               'loopX': [1.0, False, False],
                                               'nchnlssnd': 2,
                                               'offsnd': 0.0,
@@ -136,118 +165,67 @@ CECILIA_PRESETS = {u'01-Losing Weight': {'active': False,
                                               'transp': [0.0, False, False],
                                               'type': 'csampler'}},
                        'userSliders': {'freq1': [499.99999999999994, 0, None, 1],
-                                       'freq1gain': [-35.409217687092742, 1, None, 1],
-                                       'freq1q': [0.70699999999999996, 0, None, 1],
+                                       'freq1gain': [-35.40921768709274, 1, None, 1],
+                                       'freq1q': [0.707, 0, None, 1],
                                        'freq2': [1000.0, 0, None, 1],
                                        'freq2gain': [-3.0, 0, None, 1],
-                                       'freq2q': [0.70699999999999996, 0, None, 1],
+                                       'freq2q': [0.707, 0, None, 1],
                                        'freq3': [1500.0000000000005, 0, None, 1],
                                        'freq3gain': [-3.0, 0, None, 1],
-                                       'freq3q': [0.70699999999999996, 0, None, 1],
+                                       'freq3q': [0.707, 0, None, 1],
                                        'freq4': [2000.0000000000002, 0, None, 1],
                                        'freq4gain': [-3.0, 0, None, 1],
-                                       'freq4q': [0.70699999999999996, 0, None, 1]},
+                                       'freq4q': [0.707, 0, None, 1]},
                        'userTogglePopups': {'eq1type': 1, 'eq2type': 0, 'eq3type': 0, 'eq4type': 2, 'polynum': 0, 'polyspread': 0.001}},
- u'02-Old Radio': {'active': False,
-                   'gainSlider': 0.0,
+ u'02-Old Radio': {'gainSlider': 0.0,
                    'nchnls': 2,
                    'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
                                1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
-                               2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
-                   'totalTime': 30.000000000000135,
+                               2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                   'totalTime': 30.000000000000195,
                    'userGraph': {'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                 'freq1': {'curved': False, 'data': [[0.0, 0.62751713125854613], [1.0, 0.62751713125854613]]},
-                                 'freq1gain': {'curved': False, 'data': [[0.0, 0.68181818181818177], [1.0, 0.68181818181818177]]},
+                                 'freq1': {'curved': False, 'data': [[0.0, 0.6275171312585461], [1.0, 0.6275171312585461]]},
+                                 'freq1gain': {'curved': False, 'data': [[0.0, 0.6818181818181818], [1.0, 0.6818181818181818]]},
                                  'freq1q': {'curved': False, 'data': [[0.0, 0.021789473684210522], [1.0, 0.021789473684210522]]},
-                                 'freq2': {'curved': False, 'data': [[0.0, 0.69750734196794839], [1.0, 0.69750734196794839]]},
-                                 'freq2gain': {'curved': False, 'data': [[0.0, 0.68181818181818177], [1.0, 0.68181818181818177]]},
+                                 'freq2': {'curved': False, 'data': [[0.0, 0.6975073419679484], [1.0, 0.6975073419679484]]},
+                                 'freq2gain': {'curved': False, 'data': [[0.0, 0.6818181818181818], [1.0, 0.6818181818181818]]},
                                  'freq2q': {'curved': False, 'data': [[0.0, 0.021789473684210522], [1.0, 0.021789473684210522]]},
-                                 'freq3': {'curved': False, 'data': [[0.0, 0.73844899065052094], [1.0, 0.73844899065052094]]},
-                                 'freq3gain': {'curved': False, 'data': [[0.0, 0.68181818181818177], [1.0, 0.68181818181818177]]},
+                                 'freq3': {'curved': False, 'data': [[0.0, 0.7384489906505209], [1.0, 0.7384489906505209]]},
+                                 'freq3gain': {'curved': False, 'data': [[0.0, 0.6818181818181818], [1.0, 0.6818181818181818]]},
                                  'freq3q': {'curved': False, 'data': [[0.0, 0.021789473684210522], [1.0, 0.021789473684210522]]},
-                                 'freq4': {'curved': False, 'data': [[0.0, 0.76749755267735054], [1.0, 0.76749755267735054]]},
-                                 'freq4gain': {'curved': False, 'data': [[0.0, 0.68181818181818177], [1.0, 0.68181818181818177]]},
+                                 'freq4': {'curved': False, 'data': [[0.0, 0.7674975526773505], [1.0, 0.7674975526773505]]},
+                                 'freq4gain': {'curved': False, 'data': [[0.0, 0.6818181818181818], [1.0, 0.6818181818181818]]},
                                  'freq4q': {'curved': False, 'data': [[0.0, 0.021789473684210522], [1.0, 0.021789473684210522]]},
                                  'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                 'sndgain': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
+                                 'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
                                  'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
                                  'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
                                  'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
-                   'userInputs': {'snd': {'dursnd': 5.3334465026855469,
-                                          'gain': [0.0, False, False],
-                                          'gensizesnd': 262144,
-                                          'loopIn': [0.0, False, False],
+                   'userInputs': {'snd': {'dursnd': 5.768526077097506,
+                                          'gain': [0.0, False, False, False, None, 1, None, None],
+                                          'loopIn': [0.0, False, False, False, None, 1, 0, 5.768526077097506, None, None],
                                           'loopMode': 1,
-                                          'loopOut': [5.3334465026855469, False, False],
-                                          'loopX': [1.0, False, False],
-                                          'nchnlssnd': 2,
+                                          'loopOut': [5.768526077097506, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                          'loopX': [1.0, False, False, False, None, 1, None, None],
+                                          'mode': 0,
+                                          'nchnlssnd': 1,
                                           'offsnd': 0.0,
-                                          'path': u'/Users/jm/Desktop/Dropbox/Maitrise/svnBKP/memoire/bub/snds/guitar.wav',
+                                          'path': u'/home/olivier/Dropbox/private/snds/baseballmajeur_m.aif',
                                           'srsnd': 44100.0,
                                           'startFromLoop': 0,
-                                          'transp': [0.0, False, False],
+                                          'transp': [0.0, False, False, False, None, 1, None, None],
                                           'type': 'csampler'}},
-                   'userSliders': {'freq1': [499.99999999999994, 0, None, 1],
-                                   'freq1gain': [-48.0, 0, None, 1],
-                                   'freq1q': [0.70699999999999996, 0, None, 1],
-                                   'freq2': [1000.0, 0, None, 1],
-                                   'freq2gain': [18.0, 0, None, 1],
-                                   'freq2q': [0.5, 0, None, 1],
-                                   'freq3': [1500.0000000000005, 0, None, 1],
-                                   'freq3gain': [18.0, 0, None, 1],
-                                   'freq3q': [0.5, 0, None, 1],
-                                   'freq4': [2000.0000000000002, 0, None, 1],
-                                   'freq4gain': [-48.0, 0, None, 1],
-                                   'freq4q': [0.70699999999999996, 0, None, 1]},
-                   'userTogglePopups': {'eq1type': 1, 'eq2type': 0, 'eq3type': 0, 'eq4type': 2, 'polynum': 0, 'polyspread': 0.001}},
- 'last save': {'gainSlider': 0.0,
-               'nchnls': 2,
-               'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
-                           1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
-                           2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
-               'totalTime': 753.70060135883728,
-               'userGraph': {'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                             'freq1': {'curved': False, 'data': [[0.0, 0.62751713125854613], [1.0, 0.62751713125854613]]},
-                             'freq1gain': {'curved': False, 'data': [[0.0, 0.68181818181818177], [1.0, 0.68181818181818177]]},
-                             'freq1q': {'curved': False, 'data': [[0.0, 0.021789473684210522], [1.0, 0.021789473684210522]]},
-                             'freq2': {'curved': False, 'data': [[0.0, 0.69750734196794839], [1.0, 0.69750734196794839]]},
-                             'freq2gain': {'curved': False, 'data': [[0.0, 0.68181818181818177], [1.0, 0.68181818181818177]]},
-                             'freq2q': {'curved': False, 'data': [[0.0, 0.021789473684210522], [1.0, 0.021789473684210522]]},
-                             'freq3': {'curved': False, 'data': [[0.0, 0.73844899065052094], [1.0, 0.73844899065052094]]},
-                             'freq3gain': {'curved': False, 'data': [[0.0, 0.68181818181818177], [1.0, 0.68181818181818177]]},
-                             'freq3q': {'curved': False, 'data': [[0.0, 0.021789473684210522], [1.0, 0.021789473684210522]]},
-                             'freq4': {'curved': False, 'data': [[0.0, 0.76749755267735054], [1.0, 0.76749755267735054]]},
-                             'freq4gain': {'curved': False, 'data': [[0.0, 0.68181818181818177], [1.0, 0.68181818181818177]]},
-                             'freq4q': {'curved': False, 'data': [[0.0, 0.021789473684210522], [1.0, 0.021789473684210522]]},
-                             'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                             'sndgain': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
-                             'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
-                             'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
-                             'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
-               'userInputs': {'snd': {'dursnd': 1168.52001953125,
-                                      'gain': [0.0, False, False],
-                                      'gensizesnd': 16777216,
-                                      'loopIn': [0.0, False, False],
-                                      'loopMode': 1,
-                                      'loopOut': [1168.52001953125, False, False],
-                                      'loopX': [1.0, False, False],
-                                      'nchnlssnd': 2,
-                                      'offsnd': 0.0,
-                                      'path': u'/Users/fciadmin/Music/iTunes/iTunes Music/Jean Piche/Works/Blizzard.aif',
-                                      'srsnd': 44100.0,
-                                      'startFromLoop': 0,
-                                      'transp': [0.0, False, False],
-                                      'type': 'csampler'}},
-               'userSliders': {'freq1': [499.99999999999994, 0, None, 1, None],
-                               'freq1gain': [-3.0, 0, None, 1, None],
-                               'freq1q': [0.70699999999999996, 0, None, 1, None],
-                               'freq2': [1000.0, 0, None, 1, None],
-                               'freq2gain': [-3.0, 0, None, 1, None],
-                               'freq2q': [0.70699999999999996, 0, None, 1, None],
-                               'freq3': [1500.0000000000005, 0, None, 1, None],
-                               'freq3gain': [-3.0, 0, None, 1, None],
-                               'freq3q': [0.70699999999999996, 0, None, 1, None],
-                               'freq4': [2000.0000000000002, 0, None, 1, None],
-                               'freq4gain': [-0.2142857142857153, 0, None, 1, None],
-                               'freq4q': [0.70699999999999996, 0, None, 1, None]},
-               'userTogglePopups': {'balance': 0, 'eq1type': 1, 'eq2type': 0, 'eq3type': 0, 'eq4type': 2, 'polynum': 0, 'polyspread': 0.001}}}
\ No newline at end of file
+                   'userSliders': {'freq1': [499.99999999999994, 0, None, 1, None, None],
+                                   'freq1gain': [-48.0, 0, None, 1, None, None],
+                                   'freq1q': [0.707, 0, None, 1, None, None],
+                                   'freq2': [700.0000000000001, 0, None, 1, None, None],
+                                   'freq2gain': [12.0, 0, None, 1, None, None],
+                                   'freq2q': [1.0, 0, None, 1, None, None],
+                                   'freq3': [1000.0, 0, None, 1, None, None],
+                                   'freq3gain': [6.0, 0, None, 1, None, None],
+                                   'freq3q': [1.0, 0, None, 1, None, None],
+                                   'freq4': [2000.0000000000002, 0, None, 1, None, None],
+                                   'freq4gain': [-48.0, 0, None, 1, None, None],
+                                   'freq4q': [0.707, 0, None, 1, None, None]},
+                   'userTogglePopups': {'balance': 0, 'eq1type': 1, 'eq2type': 0, 'eq3type': 0, 'eq4type': 2, 'poly': 0, 'polynum': 0}}}
\ No newline at end of file
diff --git a/Resources/modules/Filters/Phaser.c5 b/Resources/modules/Filters/Phaser.c5
index 0c3f211..4005d76 100644
--- a/Resources/modules/Filters/Phaser.c5
+++ b/Resources/modules/Filters/Phaser.c5
@@ -1,24 +1,43 @@
 class Module(BaseModule):
     """
-    Phaser effect module
+    "Multi-stages second-order phase shifter allpass filters"
     
-    Sliders under the graph:
+    Description
+
+    Phaser implements a multi-stages second-order allpass filters,
+    which, when mixed with the original signal, create a serie of
+    peaks/notches in the sound.
+
+    Sliders
     
-        - Center Freq : Center frequency of the phaser
-        - Q Factor : Q factor (resonance) of the phaser
-        - Notch Spread : Distance between phaser notches
-        - Feedback : Amount of phased signal fed back into the phaser
-        - Dry / Wet : Mix between the original signal and the phased signal
+        # Base Freq : 
+            Center frequency of the first notch of the phaser
+        # Q Factor : 
+            Q factor (resonance) of the phaser notches
+        # Notch Spread : 
+            Distance between phaser notches
+        # Feedback : 
+            Amount of phased signal fed back into the phaser
+        # Dry / Wet : 
+            Mix between the original signal and the phased signal
+
+    Graph Only
     
-    Dropdown menus, toggles and sliders on the bottom left:
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
     
-        - Number of Stages : Changes notches bandwidth (stacked filters)
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+    Popups & Toggles
     
-    Graph only parameters :
+        # Number of Stages : 
+            Changes notches bandwidth (stacked filters),
+            only available at initialization time
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
     """
     def __init__(self):
         BaseModule.__init__(self)
@@ -27,13 +46,13 @@ class Module(BaseModule):
         self.out = Interp(self.snd, self.phaser, self.drywet, mul=self.env)
 
 Interface = [   csampler(name="snd"), 
-                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
-                cslider(name="centerfreq", label="Center Freq", min=20, max=20000, init=400, func=[(0,20),(1,20000)], rel="log", unit="Hz", col="blue"),
-                cslider(name="fq", label="Q Factor", min=0.5, max=10, init=5, rel="lin", unit="Q", col="royalblue"),
-                cslider(name="spread", label="Notch Spread", min=0.01, max=1, init=1, rel="lin", unit="x", col="lightblue"),
-                cslider(name="fb", label="Feedback", min=0, max=0.999, init=0.7, rel="lin", unit="x", col="green"),
-                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=0.8, rel="lin", unit="x", col="blue"),
-                cpopup(name="stages", label="Number of Stages", init="8", rate="i", col="grey", value=["1","2","3","4","5","6","7","8","9","10","11","12"]),
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
+                cslider(name="centerfreq", label="Base Freq", min=20, max=20000, init=400, func=[(0,20),(1,20000)], rel="log", unit="Hz", col="green1"),
+                cslider(name="fq", label="Q Factor", min=0.5, max=10, init=5, rel="lin", unit="Q", col="green2"),
+                cslider(name="spread", label="Notch Spread", min=0.1, max=2, init=1, rel="lin", unit="x", col="green3"),
+                cslider(name="fb", label="Feedback", min=0, max=0.999, init=0.7, rel="lin", unit="x", col="purple1"),
+                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=0.8, rel="lin", unit="x", col="blue1"),
+                cpopup(name="stages", label="Number of Stages", init="8", rate="i", col="grey", value=[str(i+1) for i in range(20)]),
                 cpoly()
           ]
 
@@ -44,29 +63,30 @@ Interface = [   csampler(name="snd"),
 ####################################
 
 
-CECILIA_PRESETS = {u'01-Spookmaker': {'gainSlider': -26.0,
+CECILIA_PRESETS = {u'01-Spookmaker': {'active': False,
+                    'gainSlider': -26.0,
                     'nchnls': 2,
                     'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
                                 1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
                                 2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
-                    'totalTime': 30.000000000000071,
-                    'userGraph': {'centerfreq': {'curved': False, 'data': [[0.0, 0.56457904815944404], [1.0, 0.79856727427477125]]},
-                                  'drywet': {'curved': False, 'data': [[0.0, 0.80000000000000004], [1.0, 0.80000000000000004]]},
+                    'totalTime': 30.00000000000007,
+                    'userGraph': {'centerfreq': {'curved': False, 'data': [[0.0, 0.564579048159444], [1.0, 0.7985672742747713]]},
+                                  'drywet': {'curved': False, 'data': [[0.0, 0.8], [1.0, 0.8]]},
                                   'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                  'fb': {'curved': False, 'data': [[0.0, 0.70070070070070067], [1.0, 0.70070070070070067]]},
+                                  'fb': {'curved': False, 'data': [[0.0, 0.7007007007007007], [1.0, 0.7007007007007007]]},
                                   'fq': {'curved': False, 'data': [[0.0, 0.47368421052631576], [1.0, 0.47368421052631576]]},
                                   'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                  'sndgain': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
+                                  'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
                                   'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
                                   'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
                                   'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
-                                  'spread': {'curved': False, 'data': [[0.0, 1.0], [1.0, 0.28796368536775663]]}},
-                    'userInputs': {'snd': {'dursnd': 5.3334465026855469,
+                                  'spread': {'curved': False, 'data': [[0.0, 1.0], [1.0, 0.2879636853677566]]}},
+                    'userInputs': {'snd': {'dursnd': 5.333446502685547,
                                            'gain': [0.0, False, False],
                                            'gensizesnd': 262144,
                                            'loopIn': [0.0, False, False],
                                            'loopMode': 1,
-                                           'loopOut': [5.3334465026855469, False, False],
+                                           'loopOut': [5.333446502685547, False, False],
                                            'loopX': [1.0, False, False],
                                            'nchnlssnd': 2,
                                            'offsnd': 0.0,
@@ -75,94 +95,95 @@ CECILIA_PRESETS = {u'01-Spookmaker': {'gainSlider': -26.0,
                                            'startFromLoop': 0,
                                            'transp': [0.0, False, False],
                                            'type': 'csampler'}},
-                    'userSliders': {'centerfreq': [3174.0054234501549, 1, None, 1],
+                    'userSliders': {'centerfreq': [3174.005423450155, 1, None, 1],
                                     'drywet': [1.0, 0, None, 1],
                                     'fb': [0.999, 0, None, 1],
                                     'fq': [10.0, 0, None, 1],
-                                    'spread': [0.61344018325686145, 1, None, 1]},
+                                    'spread': [0.6134401832568614, 1, None, 1]},
                     'userTogglePopups': {'polynum': 0, 'polyspread': 0.001, 'stages': 11}},
- u'02-Mover': {'gainSlider': -6.0,
+ u'02-Mover': {'active': False,
+               'gainSlider': -6.0,
                'nchnls': 2,
                'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
                            1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
                            2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
-               'totalTime': 30.000000000000071,
+               'totalTime': 30.00000000000007,
                'userGraph': {'centerfreq': {'curved': False,
-                                            'data': [[0.0, 0.65320235477693445],
-                                                     [0.0018656716417910447, 0.68806613317857979],
+                                            'data': [[0.0, 0.6532023547769344],
+                                                     [0.0018656716417910447, 0.6880661331785798],
                                                      [0.0037313432835820895, 0.7222411786513665],
-                                                     [0.0055970149253731349, 0.75505236416542398],
-                                                     [0.007462686567164179, 0.78585150570472073],
-                                                     [0.0093283582089552231, 0.8140301671234571],
-                                                     [0.01119402985074627, 0.83903167978444027],
-                                                     [0.013059701492537313, 0.86036213953182894],
-                                                     [0.014925373134328358, 0.87760016375337502],
-                                                     [0.016791044776119403, 0.89040521578167897],
-                                                     [0.018656716417910446, 0.89852433218615591],
+                                                     [0.005597014925373135, 0.755052364165424],
+                                                     [0.007462686567164179, 0.7858515057047207],
+                                                     [0.009328358208955223, 0.8140301671234571],
+                                                     [0.01119402985074627, 0.8390316797844403],
+                                                     [0.013059701492537313, 0.8603621395318289],
+                                                     [0.014925373134328358, 0.877600163753375],
+                                                     [0.016791044776119403, 0.890405215781679],
+                                                     [0.018656716417910446, 0.8985243321861559],
                                                      [0.020522388059701493, 0.9017971200582523],
-                                                     [0.022388059701492539, 0.90015892556869259],
-                                                     [0.024253731343283583, 0.89364211120199677],
-                                                     [0.026119402985074626, 0.88237541643653972],
-                                                     [0.027985074626865673, 0.86658141449989812],
-                                                     [0.029850746268656716, 0.84657211544120969],
-                                                     [0.031716417910447763, 0.82274280238172237],
-                                                     [0.033582089552238806, 0.79556422270822502],
-                                                     [0.035447761194029849, 0.76557328847210515],
-                                                     [0.037313432835820892, 0.73336246970738184],
-                                                     [0.039179104477611942, 0.69956809020240607],
-                                                     [0.041044776119402986, 0.66485775694191973],
-                                                     [0.042910447761194029, 0.62991717155047844],
-                                                     [0.044776119402985079, 0.59543658427679169],
-                                                     [0.046641791044776115, 0.56209715812012473],
-                                                     [0.048507462686567165, 0.53055751247504856],
-                                                     [0.050373134328358209, 0.50144071212444608],
-                                                     [0.052238805970149252, 0.47532195861283871],
+                                                     [0.02238805970149254, 0.9001589255686926],
+                                                     [0.024253731343283583, 0.8936421112019968],
+                                                     [0.026119402985074626, 0.8823754164365397],
+                                                     [0.027985074626865673, 0.8665814144998981],
+                                                     [0.029850746268656716, 0.8465721154412097],
+                                                     [0.03171641791044776, 0.8227428023817224],
+                                                     [0.033582089552238806, 0.795564222708225],
+                                                     [0.03544776119402985, 0.7655732884721052],
+                                                     [0.03731343283582089, 0.7333624697073818],
+                                                     [0.03917910447761194, 0.6995680902024061],
+                                                     [0.041044776119402986, 0.6648577569419197],
+                                                     [0.04291044776119403, 0.6299171715504784],
+                                                     [0.04477611940298508, 0.5954365842767917],
+                                                     [0.046641791044776115, 0.5620971581201247],
+                                                     [0.048507462686567165, 0.5305575124750486],
+                                                     [0.05037313432835821, 0.5014407121244461],
+                                                     [0.05223880597014925, 0.4753219586128387],
                                                      [0.054104477611940295, 0.45271722715659396],
-                                                     [0.055970149253731345, 0.43407307356852648],
-                                                     [0.057835820895522388, 0.4197578125607957],
-                                                     [0.059701492537313432, 0.41005424169847499],
+                                                     [0.055970149253731345, 0.4340730735685265],
+                                                     [0.05783582089552239, 0.4197578125607957],
+                                                     [0.05970149253731343, 0.410054241698475],
                                                      [0.061567164179104475, 0.4051540547418731],
-                                                     [0.063432835820895525, 0.4051540547418731],
-                                                     [0.065298507462686561, 0.41005424169847488],
-                                                     [0.067164179104477612, 0.4197578125607957],
-                                                     [0.069029850746268662, 0.43407307356852648],
-                                                     [0.070895522388059698, 0.45271722715659396],
-                                                     [0.072761194029850748, 0.47532195861283855],
-                                                     [0.074626865671641784, 0.50144071212444585],
-                                                     [0.076492537313432835, 0.53055751247504845],
-                                                     [0.078358208955223885, 0.56209715812012451],
-                                                     [0.080223880597014921, 0.59543658427679158],
-                                                     [0.082089552238805971, 0.62991717155047811],
-                                                     [0.083955223880597007, 0.6648577569419194],
-                                                     [0.085820895522388058, 0.69956809020240585],
-                                                     [0.087686567164179108, 0.73336246970738184],
-                                                     [0.089552238805970158, 0.76557328847210515],
-                                                     [0.091417910447761194, 0.79556422270822502],
-                                                     [0.093283582089552231, 0.82274280238172226],
-                                                     [0.095149253731343281, 0.84657211544120969],
-                                                     [0.097014925373134331, 0.86658141449989812],
-                                                     [0.098880597014925367, 0.88237541643653961],
-                                                     [0.10074626865671642, 0.89364211120199677],
-                                                     [0.10261194029850747, 0.90015892556869259],
+                                                     [0.06343283582089553, 0.4051540547418731],
+                                                     [0.06529850746268656, 0.4100542416984749],
+                                                     [0.06716417910447761, 0.4197578125607957],
+                                                     [0.06902985074626866, 0.4340730735685265],
+                                                     [0.0708955223880597, 0.45271722715659396],
+                                                     [0.07276119402985075, 0.47532195861283855],
+                                                     [0.07462686567164178, 0.5014407121244459],
+                                                     [0.07649253731343283, 0.5305575124750485],
+                                                     [0.07835820895522388, 0.5620971581201245],
+                                                     [0.08022388059701492, 0.5954365842767916],
+                                                     [0.08208955223880597, 0.6299171715504781],
+                                                     [0.08395522388059701, 0.6648577569419194],
+                                                     [0.08582089552238806, 0.6995680902024058],
+                                                     [0.08768656716417911, 0.7333624697073818],
+                                                     [0.08955223880597016, 0.7655732884721052],
+                                                     [0.0914179104477612, 0.795564222708225],
+                                                     [0.09328358208955223, 0.8227428023817223],
+                                                     [0.09514925373134328, 0.8465721154412097],
+                                                     [0.09701492537313433, 0.8665814144998981],
+                                                     [0.09888059701492537, 0.8823754164365396],
+                                                     [0.10074626865671642, 0.8936421112019968],
+                                                     [0.10261194029850747, 0.9001589255686926],
                                                      [0.1044776119402985, 0.9017971200582523],
-                                                     [0.10634328358208957, 0.89852433218615591],
-                                                     [0.10820895522388059, 0.89040521578167897],
-                                                     [0.11007462686567164, 0.87760016375337502],
-                                                     [0.11194029850746269, 0.86036213953182894],
-                                                     [0.11380597014925373, 0.83903167978444027],
-                                                     [0.11567164179104478, 0.81403016712345722],
-                                                     [0.11753731343283581, 0.78585150570472073],
-                                                     [0.11940298507462686, 0.75505236416542421],
+                                                     [0.10634328358208957, 0.8985243321861559],
+                                                     [0.10820895522388059, 0.890405215781679],
+                                                     [0.11007462686567164, 0.877600163753375],
+                                                     [0.11194029850746269, 0.8603621395318289],
+                                                     [0.11380597014925373, 0.8390316797844403],
+                                                     [0.11567164179104478, 0.8140301671234572],
+                                                     [0.11753731343283581, 0.7858515057047207],
+                                                     [0.11940298507462686, 0.7550523641654242],
                                                      [0.12126865671641791, 0.7222411786513665],
-                                                     [0.12313432835820895, 0.68806613317858012],
-                                                     [0.125, 0.65320235477693467],
-                                                     [0.12686567164179105, 0.61833857637528888],
-                                                     [0.1287313432835821, 0.58416353090250217],
-                                                     [0.13059701492537312, 0.55135234538844535],
-                                                     [0.13246268656716417, 0.52055320384914838],
+                                                     [0.12313432835820895, 0.6880661331785801],
+                                                     [0.125, 0.6532023547769347],
+                                                     [0.12686567164179105, 0.6183385763752889],
+                                                     [0.1287313432835821, 0.5841635309025022],
+                                                     [0.13059701492537312, 0.5513523453884454],
+                                                     [0.13246268656716417, 0.5205532038491484],
                                                      [0.13432835820895522, 0.49237454243041184],
-                                                     [0.13619402985074627, 0.46737302976942879],
-                                                     [0.13805970149253732, 0.44604257002204012],
+                                                     [0.13619402985074627, 0.4673730297694288],
+                                                     [0.13805970149253732, 0.4460425700220401],
                                                      [0.13992537313432835, 0.4288045458004941],
                                                      [0.1417910447761194, 0.41599949377219003],
                                                      [0.14365671641791045, 0.4078803773677131],
@@ -172,38 +193,38 @@ CECILIA_PRESETS = {u'01-Spookmaker': {'gainSlider': -26.0,
                                                      [0.15111940298507462, 0.42402929311732906],
                                                      [0.15298507462686567, 0.43982329505397066],
                                                      [0.15485074626865672, 0.45983259411265925],
-                                                     [0.15671641791044777, 0.48366190717214641],
-                                                     [0.15858208955223879, 0.51084048684564365],
-                                                     [0.16044776119402984, 0.54083142108176352],
-                                                     [0.16231343283582086, 0.57304223984648717],
-                                                     [0.16417910447761194, 0.60683661935146282],
-                                                     [0.16604477611940299, 0.64154695261194938],
-                                                     [0.16791044776119401, 0.67648753800339045],
-                                                     [0.16977611940298507, 0.71096812527707687],
-                                                     [0.17164179104477612, 0.74430755143374405],
-                                                     [0.17350746268656717, 0.77584719707882044],
-                                                     [0.17537313432835822, 0.80496399742942293],
-                                                     [0.17723880597014924, 0.83108275094103001],
-                                                     [0.17910447761194032, 0.85368748239727477],
-                                                     [0.18097014925373134, 0.87233163598534247],
-                                                     [0.18283582089552239, 0.88664689699307331],
-                                                     [0.18470149253731344, 0.89635046785539407],
-                                                     [0.18656716417910446, 0.90125065481199573],
-                                                     [0.18843283582089551, 0.90125065481199584],
-                                                     [0.19029850746268656, 0.89635046785539407],
-                                                     [0.19216417910447761, 0.88664689699307342],
-                                                     [0.19402985074626866, 0.87233163598534269],
-                                                     [0.19589552238805968, 0.85368748239727532],
-                                                     [0.19776119402985073, 0.83108275094103068],
-                                                     [0.19962686567164178, 0.80496399742942326],
-                                                     [0.20149253731343283, 0.77584719707882066],
-                                                     [0.20335820895522388, 0.74430755143374439],
-                                                     [0.20522388059701493, 0.71096812527707709],
-                                                     [0.20708955223880596, 0.67648753800339112],
-                                                     [0.20895522388059701, 0.64154695261194972],
-                                                     [0.21082089552238806, 0.60683661935146294],
-                                                     [0.21268656716417914, 0.57304223984648706],
-                                                     [0.21455223880597016, 0.54083142108176385],
+                                                     [0.15671641791044777, 0.4836619071721464],
+                                                     [0.1585820895522388, 0.5108404868456436],
+                                                     [0.16044776119402984, 0.5408314210817635],
+                                                     [0.16231343283582086, 0.5730422398464872],
+                                                     [0.16417910447761194, 0.6068366193514628],
+                                                     [0.166044776119403, 0.6415469526119494],
+                                                     [0.16791044776119401, 0.6764875380033905],
+                                                     [0.16977611940298507, 0.7109681252770769],
+                                                     [0.17164179104477612, 0.744307551433744],
+                                                     [0.17350746268656717, 0.7758471970788204],
+                                                     [0.17537313432835822, 0.8049639974294229],
+                                                     [0.17723880597014924, 0.83108275094103],
+                                                     [0.17910447761194032, 0.8536874823972748],
+                                                     [0.18097014925373134, 0.8723316359853425],
+                                                     [0.1828358208955224, 0.8866468969930733],
+                                                     [0.18470149253731344, 0.8963504678553941],
+                                                     [0.18656716417910446, 0.9012506548119957],
+                                                     [0.1884328358208955, 0.9012506548119958],
+                                                     [0.19029850746268656, 0.8963504678553941],
+                                                     [0.1921641791044776, 0.8866468969930734],
+                                                     [0.19402985074626866, 0.8723316359853427],
+                                                     [0.19589552238805968, 0.8536874823972753],
+                                                     [0.19776119402985073, 0.8310827509410307],
+                                                     [0.19962686567164178, 0.8049639974294233],
+                                                     [0.20149253731343283, 0.7758471970788207],
+                                                     [0.20335820895522388, 0.7443075514337444],
+                                                     [0.20522388059701493, 0.7109681252770771],
+                                                     [0.20708955223880596, 0.6764875380033911],
+                                                     [0.208955223880597, 0.6415469526119497],
+                                                     [0.21082089552238806, 0.6068366193514629],
+                                                     [0.21268656716417914, 0.5730422398464871],
+                                                     [0.21455223880597016, 0.5408314210817639],
                                                      [0.21641791044776118, 0.5108404868456442],
                                                      [0.21828358208955223, 0.48366190717214685],
                                                      [0.22014925373134328, 0.45983259411265925],
@@ -217,86 +238,86 @@ CECILIA_PRESETS = {u'01-Spookmaker': {'gainSlider': -26.0,
                                                      [0.23507462686567163, 0.42880454580049393],
                                                      [0.23694029850746268, 0.4460425700220399],
                                                      [0.23880597014925373, 0.46737302976942835],
-                                                     [0.24067164179104478, 0.49237454243041201],
-                                                     [0.24253731343283583, 0.52055320384914827],
-                                                     [0.24440298507462685, 0.55135234538844458],
-                                                     [0.2462686567164179, 0.58416353090250206],
-                                                     [0.24813432835820895, 0.61833857637528922],
-                                                     [0.25, 0.65320235477693434],
-                                                     [0.25186567164179102, 0.68806613317857945],
-                                                     [0.2537313432835821, 0.72224117865136661],
-                                                     [0.25559701492537312, 0.75505236416542398],
-                                                     [0.2574626865671642, 0.78585150570472129],
-                                                     [0.25932835820895522, 0.81403016712345677],
-                                                     [0.26119402985074625, 0.83903167978443971],
-                                                     [0.26305970149253732, 0.86036213953182894],
-                                                     [0.26492537313432835, 0.87760016375337468],
-                                                     [0.26679104477611937, 0.89040521578167908],
-                                                     [0.26865671641791045, 0.89852433218615591],
+                                                     [0.24067164179104478, 0.492374542430412],
+                                                     [0.24253731343283583, 0.5205532038491483],
+                                                     [0.24440298507462685, 0.5513523453884446],
+                                                     [0.2462686567164179, 0.5841635309025021],
+                                                     [0.24813432835820895, 0.6183385763752892],
+                                                     [0.25, 0.6532023547769343],
+                                                     [0.251865671641791, 0.6880661331785795],
+                                                     [0.2537313432835821, 0.7222411786513666],
+                                                     [0.2555970149253731, 0.755052364165424],
+                                                     [0.2574626865671642, 0.7858515057047213],
+                                                     [0.2593283582089552, 0.8140301671234568],
+                                                     [0.26119402985074625, 0.8390316797844397],
+                                                     [0.2630597014925373, 0.8603621395318289],
+                                                     [0.26492537313432835, 0.8776001637533747],
+                                                     [0.26679104477611937, 0.8904052157816791],
+                                                     [0.26865671641791045, 0.8985243321861559],
                                                      [0.27052238805970147, 0.9017971200582523],
-                                                     [0.27238805970149255, 0.90015892556869259],
-                                                     [0.27425373134328357, 0.89364211120199688],
-                                                     [0.27611940298507465, 0.88237541643653972],
-                                                     [0.27798507462686567, 0.86658141449989834],
-                                                     [0.27985074626865669, 0.84657211544121003],
-                                                     [0.28171641791044777, 0.82274280238172226],
-                                                     [0.28358208955223879, 0.79556422270822524],
+                                                     [0.27238805970149255, 0.9001589255686926],
+                                                     [0.27425373134328357, 0.8936421112019969],
+                                                     [0.27611940298507465, 0.8823754164365397],
+                                                     [0.27798507462686567, 0.8665814144998983],
+                                                     [0.2798507462686567, 0.84657211544121],
+                                                     [0.28171641791044777, 0.8227428023817223],
+                                                     [0.2835820895522388, 0.7955642227082252],
                                                      [0.28544776119402987, 0.7655732884721046],
-                                                     [0.28731343283582089, 0.73336246970738239],
-                                                     [0.28917910447761191, 0.69956809020240673],
-                                                     [0.29104477611940299, 0.66485775694191984],
-                                                     [0.29291044776119401, 0.62991717155047866],
-                                                     [0.29477611940298509, 0.59543658427679125],
-                                                     [0.29664179104477612, 0.56209715812012462],
-                                                     [0.29850746268656714, 0.53055751247504945],
-                                                     [0.30037313432835827, 0.50144071212444652],
+                                                     [0.2873134328358209, 0.7333624697073824],
+                                                     [0.2891791044776119, 0.6995680902024067],
+                                                     [0.291044776119403, 0.6648577569419198],
+                                                     [0.292910447761194, 0.6299171715504787],
+                                                     [0.2947761194029851, 0.5954365842767912],
+                                                     [0.2966417910447761, 0.5620971581201246],
+                                                     [0.29850746268656714, 0.5305575124750495],
+                                                     [0.30037313432835827, 0.5014407121244465],
                                                      [0.30223880597014924, 0.47532195861283916],
-                                                     [0.30410447761194032, 0.45271722715659396],
+                                                     [0.3041044776119403, 0.45271722715659396],
                                                      [0.30597014925373134, 0.43407307356852654],
                                                      [0.30783582089552236, 0.4197578125607957],
-                                                     [0.30970149253731344, 0.41005424169847488],
+                                                     [0.30970149253731344, 0.4100542416984749],
                                                      [0.31156716417910446, 0.4051540547418731],
                                                      [0.31343283582089554, 0.4051540547418731],
-                                                     [0.31529850746268656, 0.41005424169847471],
-                                                     [0.31716417910447758, 0.41975781256079542],
+                                                     [0.31529850746268656, 0.4100542416984747],
+                                                     [0.3171641791044776, 0.4197578125607954],
                                                      [0.31902985074626866, 0.43407307356852626],
-                                                     [0.32089552238805968, 0.45271722715659363],
-                                                     [0.32276119402985076, 0.47532195861283882],
-                                                     [0.32462686567164173, 0.50144071212444608],
-                                                     [0.32649253731343281, 0.53055751247504734],
-                                                     [0.32835820895522388, 0.56209715812012417],
-                                                     [0.33022388059701491, 0.59543658427679091],
-                                                     [0.33208955223880599, 0.62991717155047811],
-                                                     [0.33395522388059701, 0.66485775694191929],
+                                                     [0.3208955223880597, 0.4527172271565936],
+                                                     [0.32276119402985076, 0.4753219586128388],
+                                                     [0.32462686567164173, 0.5014407121244461],
+                                                     [0.3264925373134328, 0.5305575124750473],
+                                                     [0.3283582089552239, 0.5620971581201242],
+                                                     [0.3302238805970149, 0.5954365842767909],
+                                                     [0.332089552238806, 0.6299171715504781],
+                                                     [0.333955223880597, 0.6648577569419193],
                                                      [0.33582089552238803, 0.6995680902024054],
-                                                     [0.33768656716417911, 0.73336246970738184],
-                                                     [0.33955223880597013, 0.76557328847210426],
-                                                     [0.34141791044776121, 0.7955642227082248],
-                                                     [0.34328358208955223, 0.82274280238172193],
-                                                     [0.34514925373134325, 0.84657211544120914],
-                                                     [0.34701492537313433, 0.86658141449989801],
-                                                     [0.34888059701492535, 0.88237541643653961],
-                                                     [0.35074626865671643, 0.89364211120199688],
-                                                     [0.35261194029850745, 0.90015892556869259],
-                                                     [0.35447761194029848, 0.9017971200582523],
-                                                     [0.35634328358208955, 0.89852433218615602],
-                                                     [0.35820895522388063, 0.89040521578167919],
-                                                     [0.36007462686567165, 0.87760016375337502],
-                                                     [0.36194029850746268, 0.86036213953182905],
+                                                     [0.3376865671641791, 0.7333624697073818],
+                                                     [0.33955223880597013, 0.7655732884721043],
+                                                     [0.3414179104477612, 0.7955642227082248],
+                                                     [0.34328358208955223, 0.8227428023817219],
+                                                     [0.34514925373134325, 0.8465721154412091],
+                                                     [0.34701492537313433, 0.866581414499898],
+                                                     [0.34888059701492535, 0.8823754164365396],
+                                                     [0.35074626865671643, 0.8936421112019969],
+                                                     [0.35261194029850745, 0.9001589255686926],
+                                                     [0.3544776119402985, 0.9017971200582523],
+                                                     [0.35634328358208955, 0.898524332186156],
+                                                     [0.35820895522388063, 0.8904052157816792],
+                                                     [0.36007462686567165, 0.877600163753375],
+                                                     [0.3619402985074627, 0.860362139531829],
                                                      [0.3638059701492537, 0.8390316797844406],
-                                                     [0.36567164179104478, 0.8140301671234571],
-                                                     [0.3675373134328358, 0.78585150570472162],
-                                                     [0.36940298507462688, 0.75505236416542454],
-                                                     [0.3712686567164179, 0.72224117865136706],
-                                                     [0.37313432835820892, 0.68806613317858079],
-                                                     [0.375, 0.65320235477693478],
-                                                     [0.37686567164179102, 0.61833857637528966],
+                                                     [0.3656716417910448, 0.8140301671234571],
+                                                     [0.3675373134328358, 0.7858515057047216],
+                                                     [0.3694029850746269, 0.7550523641654245],
+                                                     [0.3712686567164179, 0.722241178651367],
+                                                     [0.3731343283582089, 0.6880661331785808],
+                                                     [0.375, 0.6532023547769348],
+                                                     [0.376865671641791, 0.6183385763752897],
                                                      [0.3787313432835821, 0.5841635309025025],
-                                                     [0.38059701492537312, 0.55135234538844502],
-                                                     [0.38246268656716409, 0.52055320384914927],
-                                                     [0.38432835820895522, 0.49237454243041229],
+                                                     [0.3805970149253731, 0.551352345388445],
+                                                     [0.3824626865671641, 0.5205532038491493],
+                                                     [0.3843283582089552, 0.4923745424304123],
                                                      [0.38619402985074625, 0.46737302976942924],
-                                                     [0.38805970149253732, 0.44604257002204012],
+                                                     [0.3880597014925373, 0.4460425700220401],
                                                      [0.38992537313432835, 0.42880454580049426],
                                                      [0.39179104477611937, 0.4159994937721902],
                                                      [0.39365671641791045, 0.4078803773677131],
@@ -305,342 +326,342 @@ CECILIA_PRESETS = {u'01-Spookmaker': {'gainSlider': -26.0,
                                                      [0.39925373134328357, 0.4127625983518719],
                                                      [0.40111940298507465, 0.42402929311732923],
                                                      [0.40298507462686567, 0.43982329505397066],
-                                                     [0.40485074626865669, 0.45983259411265892],
-                                                     [0.40671641791044777, 0.48366190717214658],
-                                                     [0.40858208955223879, 0.51084048684564376],
+                                                     [0.4048507462686567, 0.4598325941126589],
+                                                     [0.40671641791044777, 0.4836619071721466],
+                                                     [0.4085820895522388, 0.5108404868456438],
                                                      [0.41044776119402987, 0.5408314210817643],
-                                                     [0.41231343283582089, 0.57304223984648661],
-                                                     [0.41417910447761191, 0.60683661935146205],
-                                                     [0.41604477611940299, 0.64154695261194916],
-                                                     [0.41791044776119401, 0.67648753800339023],
-                                                     [0.41977611940298509, 0.71096812527707753],
-                                                     [0.42164179104477612, 0.74430755143374439],
-                                                     [0.42350746268656714, 0.77584719707881955],
-                                                     [0.42537313432835827, 0.80496399742942326],
-                                                     [0.42723880597014924, 0.83108275094102979],
-                                                     [0.42910447761194032, 0.85368748239727499],
-                                                     [0.43097014925373134, 0.87233163598534214],
-                                                     [0.43283582089552236, 0.88664689699307309],
-                                                     [0.43470149253731344, 0.89635046785539407],
-                                                     [0.43656716417910446, 0.90125065481199573],
-                                                     [0.43843283582089554, 0.90125065481199584],
-                                                     [0.44029850746268656, 0.89635046785539407],
-                                                     [0.44216417910447758, 0.88664689699307375],
-                                                     [0.44402985074626866, 0.87233163598534269],
-                                                     [0.44589552238805968, 0.85368748239727588],
+                                                     [0.4123134328358209, 0.5730422398464866],
+                                                     [0.4141791044776119, 0.606836619351462],
+                                                     [0.416044776119403, 0.6415469526119492],
+                                                     [0.417910447761194, 0.6764875380033902],
+                                                     [0.4197761194029851, 0.7109681252770775],
+                                                     [0.4216417910447761, 0.7443075514337444],
+                                                     [0.42350746268656714, 0.7758471970788196],
+                                                     [0.42537313432835827, 0.8049639974294233],
+                                                     [0.42723880597014924, 0.8310827509410298],
+                                                     [0.4291044776119403, 0.853687482397275],
+                                                     [0.43097014925373134, 0.8723316359853421],
+                                                     [0.43283582089552236, 0.8866468969930731],
+                                                     [0.43470149253731344, 0.8963504678553941],
+                                                     [0.43656716417910446, 0.9012506548119957],
+                                                     [0.43843283582089554, 0.9012506548119958],
+                                                     [0.44029850746268656, 0.8963504678553941],
+                                                     [0.4421641791044776, 0.8866468969930738],
+                                                     [0.44402985074626866, 0.8723316359853427],
+                                                     [0.4458955223880597, 0.8536874823972759],
                                                      [0.44776119402985076, 0.8310827509410309],
-                                                     [0.44962686567164173, 0.80496399742942293],
-                                                     [0.45149253731343281, 0.77584719707882155],
-                                                     [0.45335820895522388, 0.74430755143374483],
-                                                     [0.45522388059701491, 0.71096812527707742],
-                                                     [0.45708955223880599, 0.67648753800339001],
-                                                     [0.45895522388059701, 0.64154695261194972],
+                                                     [0.44962686567164173, 0.8049639974294229],
+                                                     [0.4514925373134328, 0.7758471970788215],
+                                                     [0.4533582089552239, 0.7443075514337448],
+                                                     [0.4552238805970149, 0.7109681252770774],
+                                                     [0.457089552238806, 0.67648753800339],
+                                                     [0.458955223880597, 0.6415469526119497],
                                                      [0.46082089552238803, 0.6068366193514646],
-                                                     [0.46268656716417911, 0.57304223984648806],
-                                                     [0.46455223880597013, 0.54083142108176396],
-                                                     [0.46641791044776121, 0.51084048684564365],
-                                                     [0.46828358208955223, 0.48366190717214702],
+                                                     [0.4626865671641791, 0.573042239846488],
+                                                     [0.46455223880597013, 0.540831421081764],
+                                                     [0.4664179104477612, 0.5108404868456436],
+                                                     [0.46828358208955223, 0.483661907172147],
                                                      [0.47014925373134325, 0.45983259411265937],
                                                      [0.47201492537313433, 0.4398232950539705],
                                                      [0.47388059701492535, 0.42402929311732934],
-                                                     [0.47574626865671643, 0.41276259835187218],
+                                                     [0.47574626865671643, 0.4127625983518722],
                                                      [0.47761194029850745, 0.40624578398517636],
-                                                     [0.47947761194029848, 0.4046075894956167],
+                                                     [0.4794776119402985, 0.4046075894956167],
                                                      [0.48134328358208955, 0.4078803773677131],
                                                      [0.48320895522388063, 0.41599949377218975],
                                                      [0.48507462686567165, 0.42880454580049393],
-                                                     [0.48694029850746268, 0.44604257002203934],
+                                                     [0.4869402985074627, 0.44604257002203934],
                                                      [0.4888059701492537, 0.46737302976942824],
-                                                     [0.49067164179104478, 0.49237454243041184],
-                                                     [0.4925373134328358, 0.52055320384914738],
-                                                     [0.49440298507462688, 0.55135234538844446],
-                                                     [0.4962686567164179, 0.58416353090250261],
-                                                     [0.49813432835820892, 0.618338576375288],
-                                                     [0.5, 0.65320235477693422],
-                                                     [0.50186567164179108, 0.68806613317858012],
-                                                     [0.50373134328358204, 0.72224117865136561],
-                                                     [0.50559701492537312, 0.75505236416542376],
-                                                     [0.5074626865671642, 0.78585150570472118],
-                                                     [0.50932835820895517, 0.81403016712345666],
-                                                     [0.51119402985074625, 0.83903167978444027],
-                                                     [0.51305970149253732, 0.86036213953182916],
-                                                     [0.5149253731343284, 0.87760016375337535],
-                                                     [0.51679104477611937, 0.89040521578167864],
-                                                     [0.51865671641791045, 0.89852433218615568],
-                                                     [0.52052238805970152, 0.9017971200582523],
-                                                     [0.52238805970149249, 0.9001589255686927],
-                                                     [0.52425373134328357, 0.8936421112019971],
-                                                     [0.52611940298507465, 0.88237541643653994],
-                                                     [0.52798507462686561, 0.86658141449989889],
-                                                     [0.52985074626865669, 0.84657211544121014],
-                                                     [0.53171641791044777, 0.82274280238172237],
-                                                     [0.53358208955223874, 0.79556422270822458],
-                                                     [0.53544776119402981, 0.7655732884721056],
-                                                     [0.53731343283582089, 0.73336246970738161],
-                                                     [0.53917910447761197, 0.69956809020240529],
-                                                     [0.54104477611940294, 0.66485775694192162],
-                                                     [0.54291044776119401, 0.62991717155047977],
-                                                     [0.54477611940298509, 0.59543658427679247],
-                                                     [0.54664179104477606, 0.56209715812012639],
-                                                     [0.54850746268656714, 0.53055751247504945],
-                                                     [0.55037313432835822, 0.50144071212444663],
-                                                     [0.55223880597014929, 0.47532195861283855],
-                                                     [0.55410447761194026, 0.45271722715659451],
-                                                     [0.55597014925373134, 0.43407307356852654],
-                                                     [0.55783582089552231, 0.41975781256079553],
-                                                     [0.55970149253731338, 0.41005424169847499],
-                                                     [0.56156716417910446, 0.40515405474187327],
-                                                     [0.56343283582089554, 0.40515405474187327],
-                                                     [0.56529850746268651, 0.41005424169847471],
-                                                     [0.56716417910447758, 0.41975781256079553],
-                                                     [0.56902985074626866, 0.43407307356852654],
-                                                     [0.57089552238805974, 0.45271722715659451],
-                                                     [0.57276119402985071, 0.47532195861283738],
-                                                     [0.57462686567164178, 0.50144071212444519],
-                                                     [0.57649253731343297, 0.53055751247504801],
-                                                     [0.57835820895522383, 0.56209715812012317],
-                                                     [0.58022388059701491, 0.59543658427679069],
-                                                     [0.58208955223880599, 0.62991717155047811],
-                                                     [0.58395522388059695, 0.66485775694191818],
-                                                     [0.58582089552238803, 0.69956809020240529],
-                                                     [0.58768656716417911, 0.73336246970738161],
-                                                     [0.58955223880597019, 0.76557328847210571],
-                                                     [0.59141791044776115, 0.79556422270822458],
-                                                     [0.59328358208955223, 0.82274280238172259],
-                                                     [0.59514925373134331, 0.84657211544121014],
-                                                     [0.59701492537313428, 0.86658141449989712],
-                                                     [0.59888059701492535, 0.88237541643653916],
-                                                     [0.60074626865671654, 0.89364211120199666],
-                                                     [0.6026119402985074, 0.90015892556869248],
-                                                     [0.60447761194029848, 0.9017971200582523],
-                                                     [0.60634328358208955, 0.89852433218615602],
-                                                     [0.60820895522388063, 0.89040521578167897],
-                                                     [0.6100746268656716, 0.87760016375337535],
-                                                     [0.61194029850746268, 0.86036213953182916],
-                                                     [0.61380597014925375, 0.83903167978444015],
-                                                     [0.61567164179104472, 0.81403016712345788],
-                                                     [0.6175373134328358, 0.78585150570472095],
-                                                     [0.61940298507462688, 0.75505236416542376],
-                                                     [0.62126865671641784, 0.72224117865136739],
-                                                     [0.62313432835820892, 0.68806613317858012],
-                                                     [0.62499999999999989, 0.65320235477693578],
-                                                     [0.62686567164179108, 0.61833857637528977],
-                                                     [0.62873134328358204, 0.58416353090250428],
-                                                     [0.63059701492537312, 0.55135234538844591],
-                                                     [0.6324626865671642, 0.52055320384914872],
-                                                     [0.63432835820895517, 0.49237454243041318],
-                                                     [0.63619402985074625, 0.4673730297694294],
-                                                     [0.63805970149253732, 0.44604257002204034],
+                                                     [0.4906716417910448, 0.49237454243041184],
+                                                     [0.4925373134328358, 0.5205532038491474],
+                                                     [0.4944029850746269, 0.5513523453884445],
+                                                     [0.4962686567164179, 0.5841635309025026],
+                                                     [0.4981343283582089, 0.618338576375288],
+                                                     [0.5, 0.6532023547769342],
+                                                     [0.5018656716417911, 0.6880661331785801],
+                                                     [0.503731343283582, 0.7222411786513656],
+                                                     [0.5055970149253731, 0.7550523641654238],
+                                                     [0.5074626865671642, 0.7858515057047212],
+                                                     [0.5093283582089552, 0.8140301671234567],
+                                                     [0.5111940298507462, 0.8390316797844403],
+                                                     [0.5130597014925373, 0.8603621395318292],
+                                                     [0.5149253731343284, 0.8776001637533754],
+                                                     [0.5167910447761194, 0.8904052157816786],
+                                                     [0.5186567164179104, 0.8985243321861557],
+                                                     [0.5205223880597015, 0.9017971200582523],
+                                                     [0.5223880597014925, 0.9001589255686927],
+                                                     [0.5242537313432836, 0.8936421112019971],
+                                                     [0.5261194029850746, 0.8823754164365399],
+                                                     [0.5279850746268656, 0.8665814144998989],
+                                                     [0.5298507462686567, 0.8465721154412101],
+                                                     [0.5317164179104478, 0.8227428023817224],
+                                                     [0.5335820895522387, 0.7955642227082246],
+                                                     [0.5354477611940298, 0.7655732884721056],
+                                                     [0.5373134328358209, 0.7333624697073816],
+                                                     [0.539179104477612, 0.6995680902024053],
+                                                     [0.5410447761194029, 0.6648577569419216],
+                                                     [0.542910447761194, 0.6299171715504798],
+                                                     [0.5447761194029851, 0.5954365842767925],
+                                                     [0.5466417910447761, 0.5620971581201264],
+                                                     [0.5485074626865671, 0.5305575124750495],
+                                                     [0.5503731343283582, 0.5014407121244466],
+                                                     [0.5522388059701493, 0.47532195861283855],
+                                                     [0.5541044776119403, 0.4527172271565945],
+                                                     [0.5559701492537313, 0.43407307356852654],
+                                                     [0.5578358208955223, 0.41975781256079553],
+                                                     [0.5597014925373134, 0.410054241698475],
+                                                     [0.5615671641791045, 0.40515405474187327],
+                                                     [0.5634328358208955, 0.40515405474187327],
+                                                     [0.5652985074626865, 0.4100542416984747],
+                                                     [0.5671641791044776, 0.41975781256079553],
+                                                     [0.5690298507462687, 0.43407307356852654],
+                                                     [0.5708955223880597, 0.4527172271565945],
+                                                     [0.5727611940298507, 0.4753219586128374],
+                                                     [0.5746268656716418, 0.5014407121244452],
+                                                     [0.576492537313433, 0.530557512475048],
+                                                     [0.5783582089552238, 0.5620971581201232],
+                                                     [0.5802238805970149, 0.5954365842767907],
+                                                     [0.582089552238806, 0.6299171715504781],
+                                                     [0.583955223880597, 0.6648577569419182],
+                                                     [0.585820895522388, 0.6995680902024053],
+                                                     [0.5876865671641791, 0.7333624697073816],
+                                                     [0.5895522388059702, 0.7655732884721057],
+                                                     [0.5914179104477612, 0.7955642227082246],
+                                                     [0.5932835820895522, 0.8227428023817226],
+                                                     [0.5951492537313433, 0.8465721154412101],
+                                                     [0.5970149253731343, 0.8665814144998971],
+                                                     [0.5988805970149254, 0.8823754164365392],
+                                                     [0.6007462686567165, 0.8936421112019967],
+                                                     [0.6026119402985074, 0.9001589255686925],
+                                                     [0.6044776119402985, 0.9017971200582523],
+                                                     [0.6063432835820896, 0.898524332186156],
+                                                     [0.6082089552238806, 0.890405215781679],
+                                                     [0.6100746268656716, 0.8776001637533754],
+                                                     [0.6119402985074627, 0.8603621395318292],
+                                                     [0.6138059701492538, 0.8390316797844402],
+                                                     [0.6156716417910447, 0.8140301671234579],
+                                                     [0.6175373134328358, 0.785851505704721],
+                                                     [0.6194029850746269, 0.7550523641654238],
+                                                     [0.6212686567164178, 0.7222411786513674],
+                                                     [0.6231343283582089, 0.6880661331785801],
+                                                     [0.6249999999999999, 0.6532023547769358],
+                                                     [0.6268656716417911, 0.6183385763752898],
+                                                     [0.628731343283582, 0.5841635309025043],
+                                                     [0.6305970149253731, 0.5513523453884459],
+                                                     [0.6324626865671642, 0.5205532038491487],
+                                                     [0.6343283582089552, 0.4923745424304132],
+                                                     [0.6361940298507462, 0.4673730297694294],
+                                                     [0.6380597014925373, 0.44604257002204034],
                                                      [0.6399253731343284, 0.42880454580049393],
-                                                     [0.64179104477611937, 0.4159994937721902],
-                                                     [0.64365671641791045, 0.4078803773677131],
-                                                     [0.64552238805970152, 0.4046075894956167],
-                                                     [0.64738805970149249, 0.40624578398517636],
-                                                     [0.64925373134328346, 0.41276259835187218],
-                                                     [0.65111940298507465, 0.42402929311732934],
-                                                     [0.65298507462686561, 0.43982329505396961],
-                                                     [0.65485074626865669, 0.4598325941126582],
-                                                     [0.65671641791044777, 0.4836619071721458],
-                                                     [0.65858208955223885, 0.51084048684564365],
-                                                     [0.66044776119402981, 0.54083142108176252],
-                                                     [0.66231343283582089, 0.57304223984648639],
-                                                     [0.66417910447761197, 0.60683661935146282],
-                                                     [0.66604477611940294, 0.64154695261194805],
-                                                     [0.66791044776119401, 0.67648753800339001],
-                                                     [0.66977611940298509, 0.71096812527707742],
-                                                     [0.67164179104477606, 0.74430755143374328],
-                                                     [0.67350746268656703, 0.77584719707882011],
-                                                     [0.67537313432835822, 0.80496399742942304],
-                                                     [0.67723880597014929, 0.83108275094103101],
-                                                     [0.67910447761194026, 0.85368748239727388],
-                                                     [0.68097014925373134, 0.87233163598534202],
-                                                     [0.68283582089552242, 0.88664689699307309],
-                                                     [0.68470149253731338, 0.89635046785539363],
-                                                     [0.68656716417910446, 0.90125065481199573],
-                                                     [0.68843283582089554, 0.90125065481199584],
-                                                     [0.69029850746268651, 0.89635046785539441],
-                                                     [0.69216417910447769, 0.88664689699307386],
-                                                     [0.69402985074626866, 0.87233163598534291],
-                                                     [0.69589552238805974, 0.85368748239727488],
-                                                     [0.69776119402985071, 0.83108275094103101],
-                                                     [0.69962686567164178, 0.80496399742942304],
-                                                     [0.70149253731343286, 0.77584719707882022],
-                                                     [0.70335820895522383, 0.74430755143374505],
-                                                     [0.70522388059701491, 0.71096812527707742],
-                                                     [0.70708955223880599, 0.67648753800339012],
-                                                     [0.70895522388059695, 0.64154695261195183],
-                                                     [0.71082089552238803, 0.6068366193514646],
-                                                     [0.71268656716417911, 0.57304223984648817],
-                                                     [0.71455223880597019, 0.54083142108176407],
-                                                     [0.71641791044776126, 0.51084048684564509],
-                                                     [0.71828358208955223, 0.48366190717214713],
-                                                     [0.72014925373134331, 0.45983259411265937],
-                                                     [0.72201492537313428, 0.43982329505397155],
-                                                     [0.72388059701492535, 0.42402929311732951],
-                                                     [0.72574626865671643, 0.41276259835187218],
-                                                     [0.7276119402985074, 0.40624578398517652],
-                                                     [0.72947761194029848, 0.4046075894956167],
-                                                     [0.73134328358208955, 0.4078803773677131],
-                                                     [0.73320895522388063, 0.4159994937721902],
+                                                     [0.6417910447761194, 0.4159994937721902],
+                                                     [0.6436567164179104, 0.4078803773677131],
+                                                     [0.6455223880597015, 0.4046075894956167],
+                                                     [0.6473880597014925, 0.40624578398517636],
+                                                     [0.6492537313432835, 0.4127625983518722],
+                                                     [0.6511194029850746, 0.42402929311732934],
+                                                     [0.6529850746268656, 0.4398232950539696],
+                                                     [0.6548507462686567, 0.4598325941126582],
+                                                     [0.6567164179104478, 0.4836619071721458],
+                                                     [0.6585820895522388, 0.5108404868456436],
+                                                     [0.6604477611940298, 0.5408314210817625],
+                                                     [0.6623134328358209, 0.5730422398464864],
+                                                     [0.664179104477612, 0.6068366193514628],
+                                                     [0.6660447761194029, 0.641546952611948],
+                                                     [0.667910447761194, 0.67648753800339],
+                                                     [0.6697761194029851, 0.7109681252770774],
+                                                     [0.6716417910447761, 0.7443075514337433],
+                                                     [0.673507462686567, 0.7758471970788201],
+                                                     [0.6753731343283582, 0.804963997429423],
+                                                     [0.6772388059701493, 0.831082750941031],
+                                                     [0.6791044776119403, 0.8536874823972739],
+                                                     [0.6809701492537313, 0.872331635985342],
+                                                     [0.6828358208955224, 0.8866468969930731],
+                                                     [0.6847014925373134, 0.8963504678553936],
+                                                     [0.6865671641791045, 0.9012506548119957],
+                                                     [0.6884328358208955, 0.9012506548119958],
+                                                     [0.6902985074626865, 0.8963504678553944],
+                                                     [0.6921641791044777, 0.8866468969930739],
+                                                     [0.6940298507462687, 0.8723316359853429],
+                                                     [0.6958955223880597, 0.8536874823972749],
+                                                     [0.6977611940298507, 0.831082750941031],
+                                                     [0.6996268656716418, 0.804963997429423],
+                                                     [0.7014925373134329, 0.7758471970788202],
+                                                     [0.7033582089552238, 0.744307551433745],
+                                                     [0.7052238805970149, 0.7109681252770774],
+                                                     [0.707089552238806, 0.6764875380033901],
+                                                     [0.708955223880597, 0.6415469526119518],
+                                                     [0.710820895522388, 0.6068366193514646],
+                                                     [0.7126865671641791, 0.5730422398464882],
+                                                     [0.7145522388059702, 0.5408314210817641],
+                                                     [0.7164179104477613, 0.5108404868456451],
+                                                     [0.7182835820895522, 0.48366190717214713],
+                                                     [0.7201492537313433, 0.45983259411265937],
+                                                     [0.7220149253731343, 0.43982329505397155],
+                                                     [0.7238805970149254, 0.4240292931173295],
+                                                     [0.7257462686567164, 0.4127625983518722],
+                                                     [0.7276119402985074, 0.4062457839851765],
+                                                     [0.7294776119402985, 0.4046075894956167],
+                                                     [0.7313432835820896, 0.4078803773677131],
+                                                     [0.7332089552238806, 0.4159994937721902],
                                                      [0.7350746268656716, 0.42880454580049304],
-                                                     [0.73694029850746268, 0.44604257002203918],
-                                                     [0.73880597014925375, 0.46737302976942807],
-                                                     [0.74067164179104483, 0.49237454243041023],
-                                                     [0.7425373134328358, 0.52055320384914705],
-                                                     [0.74440298507462688, 0.55135234538844424],
-                                                     [0.74626865671641784, 0.58416353090250073],
-                                                     [0.74813432835820892, 0.618338576375288],
-                                                     [0.75, 0.65320235477693389],
-                                                     [0.75186567164179108, 0.6880661331785799],
-                                                     [0.75373134328358204, 0.7222411786513655],
-                                                     [0.75559701492537312, 0.75505236416542365],
-                                                     [0.7574626865671642, 0.78585150570472084],
-                                                     [0.75932835820895517, 0.81403016712345655],
-                                                     [0.76119402985074625, 0.83903167978444015],
-                                                     [0.76305970149253732, 0.86036213953182916],
-                                                     [0.76492537313432818, 0.8776001637533738],
-                                                     [0.76679104477611937, 0.89040521578167853],
-                                                     [0.76865671641791045, 0.89852433218615568],
-                                                     [0.77052238805970152, 0.9017971200582523],
-                                                     [0.77238805970149249, 0.9001589255686927],
-                                                     [0.77425373134328357, 0.8936421112019971],
-                                                     [0.77611940298507465, 0.88237541643653994],
-                                                     [0.77798507462686561, 0.86658141449989889],
-                                                     [0.77985074626865669, 0.84657211544121014],
-                                                     [0.78171641791044777, 0.82274280238172259],
-                                                     [0.78358208955223874, 0.79556422270822624],
-                                                     [0.78544776119402981, 0.76557328847210571],
-                                                     [0.78731343283582089, 0.73336246970738184],
-                                                     [0.78917910447761197, 0.6995680902024054],
-                                                     [0.79104477611940294, 0.66485775694192195],
-                                                     [0.79291044776119401, 0.62991717155047988],
-                                                     [0.79477611940298509, 0.59543658427679258],
-                                                     [0.79664179104477606, 0.56209715812012651],
-                                                     [0.79850746268656714, 0.53055751247504979],
-                                                     [0.80037313432835822, 0.50144071212444663],
-                                                     [0.80223880597014929, 0.47532195861283882],
-                                                     [0.80410447761194026, 0.45271722715659468],
-                                                     [0.80597014925373134, 0.43407307356852654],
-                                                     [0.80783582089552231, 0.4197578125607957],
-                                                     [0.80970149253731338, 0.41005424169847499],
-                                                     [0.81156716417910446, 0.40515405474187327],
-                                                     [0.81343283582089554, 0.40515405474187327],
-                                                     [0.81529850746268651, 0.41005424169847471],
-                                                     [0.81716417910447758, 0.41975781256079553],
-                                                     [0.81902985074626866, 0.43407307356852654],
-                                                     [0.82089552238805974, 0.45271722715659451],
-                                                     [0.82276119402985071, 0.47532195861283721],
-                                                     [0.82462686567164178, 0.50144071212444519],
-                                                     [0.82649253731343297, 0.53055751247504801],
-                                                     [0.82835820895522383, 0.56209715812012295],
-                                                     [0.83022388059701491, 0.59543658427679058],
-                                                     [0.83208955223880599, 0.62991717155047777],
-                                                     [0.83395522388059695, 0.66485775694191807],
-                                                     [0.83582089552238803, 0.69956809020240518],
-                                                     [0.83768656716417911, 0.7333624697073815],
-                                                     [0.83955223880597019, 0.76557328847210548],
-                                                     [0.84141791044776115, 0.79556422270822447],
-                                                     [0.84328358208955223, 0.82274280238172237],
-                                                     [0.84514925373134331, 0.84657211544121003],
-                                                     [0.84701492537313428, 0.86658141449989701],
-                                                     [0.84888059701492535, 0.88237541643653905],
-                                                     [0.85074626865671654, 0.89364211120199688],
-                                                     [0.8526119402985074, 0.90015892556869259],
-                                                     [0.85447761194029848, 0.9017971200582523],
-                                                     [0.85634328358208955, 0.89852433218615591],
-                                                     [0.85820895522388063, 0.89040521578167908],
-                                                     [0.8600746268656716, 0.87760016375337546],
-                                                     [0.86194029850746268, 0.86036213953183038],
-                                                     [0.86380597014925375, 0.83903167978444027],
-                                                     [0.86567164179104472, 0.81403016712345799],
-                                                     [0.8675373134328358, 0.78585150570472262],
-                                                     [0.86940298507462688, 0.75505236416542398],
-                                                     [0.87126865671641784, 0.72224117865136739],
-                                                     [0.87313432835820892, 0.68806613317858201],
-                                                     [0.87500000000000011, 0.65320235477693422],
-                                                     [0.87686567164179108, 0.61833857637529011],
-                                                     [0.87873134328358204, 0.58416353090250439],
-                                                     [0.88059701492537312, 0.55135234538844458],
-                                                     [0.8824626865671642, 0.52055320384914883],
-                                                     [0.88432835820895517, 0.49237454243041318],
-                                                     [0.88619402985074625, 0.46737302976942835],
-                                                     [0.88805970149253732, 0.44604257002204034],
-                                                     [0.88992537313432829, 0.42880454580049482],
-                                                     [0.89179104477611937, 0.41599949377219086],
-                                                     [0.89365671641791045, 0.4078803773677131],
-                                                     [0.89552238805970152, 0.4046075894956167],
-                                                     [0.89738805970149249, 0.40624578398517608],
-                                                     [0.89925373134328346, 0.41276259835187207],
-                                                     [0.90111940298507465, 0.42402929311732862],
-                                                     [0.90298507462686561, 0.43982329505396961],
-                                                     [0.90485074626865669, 0.45983259411265925],
-                                                     [0.90671641791044777, 0.48366190717214569],
-                                                     [0.90858208955223874, 0.51084048684564198],
-                                                     [0.91044776119402981, 0.54083142108176385],
-                                                     [0.91231343283582089, 0.57304223984648628],
-                                                     [0.91417910447761197, 0.60683661935146427],
-                                                     [0.91604477611940294, 0.64154695261194616],
-                                                     [0.91791044776119401, 0.67648753800338979],
-                                                     [0.91977611940298509, 0.71096812527707554],
-                                                     [0.92164179104477606, 0.7443075514337415],
-                                                     [0.92350746268656703, 0.77584719707881999],
-                                                     [0.92537313432835822, 0.80496399742942149],
-                                                     [0.92723880597014918, 0.83108275094102835],
-                                                     [0.92910447761194026, 0.85368748239727477],
-                                                     [0.93097014925373134, 0.8723316359853418],
-                                                     [0.93283582089552242, 0.88664689699307353],
-                                                     [0.93470149253731338, 0.89635046785539396],
-                                                     [0.93656716417910446, 0.90125065481199573],
-                                                     [0.93843283582089554, 0.90125065481199573],
-                                                     [0.94029850746268651, 0.89635046785539407],
-                                                     [0.94216417910447769, 0.88664689699307386],
-                                                     [0.94402985074626866, 0.87233163598534214],
-                                                     [0.94589552238805963, 0.8536874823972771],
-                                                     [0.94776119402985071, 0.83108275094103112],
-                                                     [0.94962686567164178, 0.8049639974294247],
-                                                     [0.95149253731343286, 0.77584719707882044],
-                                                     [0.95335820895522383, 0.74430755143374527],
-                                                     [0.95522388059701491, 0.71096812527707931],
-                                                     [0.95708955223880599, 0.67648753800339045],
-                                                     [0.95895522388059695, 0.64154695261195016],
-                                                     [0.96082089552238803, 0.60683661935146482],
-                                                     [0.96268656716417911, 0.57304223984648683],
-                                                     [0.96455223880597019, 0.54083142108176452],
-                                                     [0.96641791044776126, 0.5108404868456452],
-                                                     [0.96828358208955223, 0.48366190717214597],
-                                                     [0.97014925373134331, 0.45983259411265953],
-                                                     [0.97201492537313428, 0.43982329505397155],
-                                                     [0.97388059701492535, 0.42402929311733023],
-                                                     [0.97574626865671643, 0.41276259835187235],
-                                                     [0.9776119402985074, 0.40624578398517652],
-                                                     [0.97947761194029848, 0.40460758949561654],
-                                                     [0.98134328358208955, 0.4078803773677131],
-                                                     [0.98320895522388063, 0.41599949377218959],
+                                                     [0.7369402985074627, 0.4460425700220392],
+                                                     [0.7388059701492538, 0.46737302976942807],
+                                                     [0.7406716417910448, 0.49237454243041023],
+                                                     [0.7425373134328358, 0.520553203849147],
+                                                     [0.7444029850746269, 0.5513523453884442],
+                                                     [0.7462686567164178, 0.5841635309025007],
+                                                     [0.7481343283582089, 0.618338576375288],
+                                                     [0.75, 0.6532023547769339],
+                                                     [0.7518656716417911, 0.6880661331785799],
+                                                     [0.753731343283582, 0.7222411786513655],
+                                                     [0.7555970149253731, 0.7550523641654237],
+                                                     [0.7574626865671642, 0.7858515057047208],
+                                                     [0.7593283582089552, 0.8140301671234565],
+                                                     [0.7611940298507462, 0.8390316797844402],
+                                                     [0.7630597014925373, 0.8603621395318292],
+                                                     [0.7649253731343282, 0.8776001637533738],
+                                                     [0.7667910447761194, 0.8904052157816785],
+                                                     [0.7686567164179104, 0.8985243321861557],
+                                                     [0.7705223880597015, 0.9017971200582523],
+                                                     [0.7723880597014925, 0.9001589255686927],
+                                                     [0.7742537313432836, 0.8936421112019971],
+                                                     [0.7761194029850746, 0.8823754164365399],
+                                                     [0.7779850746268656, 0.8665814144998989],
+                                                     [0.7798507462686567, 0.8465721154412101],
+                                                     [0.7817164179104478, 0.8227428023817226],
+                                                     [0.7835820895522387, 0.7955642227082262],
+                                                     [0.7854477611940298, 0.7655732884721057],
+                                                     [0.7873134328358209, 0.7333624697073818],
+                                                     [0.789179104477612, 0.6995680902024054],
+                                                     [0.7910447761194029, 0.664857756941922],
+                                                     [0.792910447761194, 0.6299171715504799],
+                                                     [0.7947761194029851, 0.5954365842767926],
+                                                     [0.7966417910447761, 0.5620971581201265],
+                                                     [0.7985074626865671, 0.5305575124750498],
+                                                     [0.8003731343283582, 0.5014407121244466],
+                                                     [0.8022388059701493, 0.4753219586128388],
+                                                     [0.8041044776119403, 0.4527172271565947],
+                                                     [0.8059701492537313, 0.43407307356852654],
+                                                     [0.8078358208955223, 0.4197578125607957],
+                                                     [0.8097014925373134, 0.410054241698475],
+                                                     [0.8115671641791045, 0.40515405474187327],
+                                                     [0.8134328358208955, 0.40515405474187327],
+                                                     [0.8152985074626865, 0.4100542416984747],
+                                                     [0.8171641791044776, 0.41975781256079553],
+                                                     [0.8190298507462687, 0.43407307356852654],
+                                                     [0.8208955223880597, 0.4527172271565945],
+                                                     [0.8227611940298507, 0.4753219586128372],
+                                                     [0.8246268656716418, 0.5014407121244452],
+                                                     [0.826492537313433, 0.530557512475048],
+                                                     [0.8283582089552238, 0.562097158120123],
+                                                     [0.8302238805970149, 0.5954365842767906],
+                                                     [0.832089552238806, 0.6299171715504778],
+                                                     [0.833955223880597, 0.6648577569419181],
+                                                     [0.835820895522388, 0.6995680902024052],
+                                                     [0.8376865671641791, 0.7333624697073815],
+                                                     [0.8395522388059702, 0.7655732884721055],
+                                                     [0.8414179104477612, 0.7955642227082245],
+                                                     [0.8432835820895522, 0.8227428023817224],
+                                                     [0.8451492537313433, 0.84657211544121],
+                                                     [0.8470149253731343, 0.866581414499897],
+                                                     [0.8488805970149254, 0.882375416436539],
+                                                     [0.8507462686567165, 0.8936421112019969],
+                                                     [0.8526119402985074, 0.9001589255686926],
+                                                     [0.8544776119402985, 0.9017971200582523],
+                                                     [0.8563432835820896, 0.8985243321861559],
+                                                     [0.8582089552238806, 0.8904052157816791],
+                                                     [0.8600746268656716, 0.8776001637533755],
+                                                     [0.8619402985074627, 0.8603621395318304],
+                                                     [0.8638059701492538, 0.8390316797844403],
+                                                     [0.8656716417910447, 0.814030167123458],
+                                                     [0.8675373134328358, 0.7858515057047226],
+                                                     [0.8694029850746269, 0.755052364165424],
+                                                     [0.8712686567164178, 0.7222411786513674],
+                                                     [0.8731343283582089, 0.688066133178582],
+                                                     [0.8750000000000001, 0.6532023547769342],
+                                                     [0.8768656716417911, 0.6183385763752901],
+                                                     [0.878731343283582, 0.5841635309025044],
+                                                     [0.8805970149253731, 0.5513523453884446],
+                                                     [0.8824626865671642, 0.5205532038491488],
+                                                     [0.8843283582089552, 0.4923745424304132],
+                                                     [0.8861940298507462, 0.46737302976942835],
+                                                     [0.8880597014925373, 0.44604257002204034],
+                                                     [0.8899253731343283, 0.4288045458004948],
+                                                     [0.8917910447761194, 0.41599949377219086],
+                                                     [0.8936567164179104, 0.4078803773677131],
+                                                     [0.8955223880597015, 0.4046075894956167],
+                                                     [0.8973880597014925, 0.4062457839851761],
+                                                     [0.8992537313432835, 0.41276259835187207],
+                                                     [0.9011194029850746, 0.4240292931173286],
+                                                     [0.9029850746268656, 0.4398232950539696],
+                                                     [0.9048507462686567, 0.45983259411265925],
+                                                     [0.9067164179104478, 0.4836619071721457],
+                                                     [0.9085820895522387, 0.510840486845642],
+                                                     [0.9104477611940298, 0.5408314210817639],
+                                                     [0.9123134328358209, 0.5730422398464863],
+                                                     [0.914179104477612, 0.6068366193514643],
+                                                     [0.9160447761194029, 0.6415469526119462],
+                                                     [0.917910447761194, 0.6764875380033898],
+                                                     [0.9197761194029851, 0.7109681252770755],
+                                                     [0.9216417910447761, 0.7443075514337415],
+                                                     [0.923507462686567, 0.77584719707882],
+                                                     [0.9253731343283582, 0.8049639974294215],
+                                                     [0.9272388059701492, 0.8310827509410283],
+                                                     [0.9291044776119403, 0.8536874823972748],
+                                                     [0.9309701492537313, 0.8723316359853418],
+                                                     [0.9328358208955224, 0.8866468969930735],
+                                                     [0.9347014925373134, 0.896350467855394],
+                                                     [0.9365671641791045, 0.9012506548119957],
+                                                     [0.9384328358208955, 0.9012506548119957],
+                                                     [0.9402985074626865, 0.8963504678553941],
+                                                     [0.9421641791044777, 0.8866468969930739],
+                                                     [0.9440298507462687, 0.8723316359853421],
+                                                     [0.9458955223880596, 0.8536874823972771],
+                                                     [0.9477611940298507, 0.8310827509410311],
+                                                     [0.9496268656716418, 0.8049639974294247],
+                                                     [0.9514925373134329, 0.7758471970788204],
+                                                     [0.9533582089552238, 0.7443075514337453],
+                                                     [0.9552238805970149, 0.7109681252770793],
+                                                     [0.957089552238806, 0.6764875380033905],
+                                                     [0.958955223880597, 0.6415469526119502],
+                                                     [0.960820895522388, 0.6068366193514648],
+                                                     [0.9626865671641791, 0.5730422398464868],
+                                                     [0.9645522388059702, 0.5408314210817645],
+                                                     [0.9664179104477613, 0.5108404868456452],
+                                                     [0.9682835820895522, 0.48366190717214597],
+                                                     [0.9701492537313433, 0.45983259411265953],
+                                                     [0.9720149253731343, 0.43982329505397155],
+                                                     [0.9738805970149254, 0.42402929311733023],
+                                                     [0.9757462686567164, 0.41276259835187235],
+                                                     [0.9776119402985074, 0.4062457839851765],
+                                                     [0.9794776119402985, 0.40460758949561654],
+                                                     [0.9813432835820896, 0.4078803773677131],
+                                                     [0.9832089552238806, 0.4159994937721896],
                                                      [0.9850746268656716, 0.42880454580049304],
-                                                     [0.98694029850746268, 0.44604257002204012],
-                                                     [0.98880597014925375, 0.46737302976942791],
-                                                     [0.99067164179104483, 0.49237454243041023],
+                                                     [0.9869402985074627, 0.4460425700220401],
+                                                     [0.9888059701492538, 0.4673730297694279],
+                                                     [0.9906716417910448, 0.49237454243041023],
                                                      [0.9925373134328358, 0.5205532038491486],
-                                                     [0.99440298507462688, 0.55135234538844413],
-                                                     [0.99626865671641784, 0.58416353090250073],
-                                                     [0.99813432835820892, 0.61833857637528944],
-                                                     [1.0, 0.65320235477693378]]},
-                             'drywet': {'curved': False, 'data': [[0.0, 0.80000000000000004], [1.0, 0.80000000000000004]]},
+                                                     [0.9944029850746269, 0.5513523453884441],
+                                                     [0.9962686567164178, 0.5841635309025007],
+                                                     [0.9981343283582089, 0.6183385763752894],
+                                                     [1.0, 0.6532023547769338]]},
+                             'drywet': {'curved': False, 'data': [[0.0, 0.8], [1.0, 0.8]]},
                              'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                             'fb': {'curved': False, 'data': [[0.0, 0.70070070070070067], [1.0, 0.70070070070070067]]},
+                             'fb': {'curved': False, 'data': [[0.0, 0.7007007007007007], [1.0, 0.7007007007007007]]},
                              'fq': {'curved': False, 'data': [[0.0, 0.47368421052631576], [1.0, 0.47368421052631576]]},
                              'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                             'sndgain': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
+                             'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
                              'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
                              'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
                              'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
                              'spread': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]}},
-               'userInputs': {'snd': {'dursnd': 5.3334465026855469,
+               'userInputs': {'snd': {'dursnd': 5.333446502685547,
                                       'gain': [0.0, False, False],
                                       'gensizesnd': 262144,
                                       'loopIn': [0.0, False, False],
                                       'loopMode': 1,
-                                      'loopOut': [5.3334465026855469, False, False],
+                                      'loopOut': [5.333446502685547, False, False],
                                       'loopX': [1.0, False, False],
                                       'nchnlssnd': 2,
                                       'offsnd': 0.0,
@@ -649,227 +670,228 @@ CECILIA_PRESETS = {u'01-Spookmaker': {'gainSlider': -26.0,
                                       'startFromLoop': 0,
                                       'transp': [0.0, False, False],
                                       'type': 'csampler'}},
-               'userSliders': {'centerfreq': [359.53987803804989, 1, None, 1],
-                               'drywet': [0.34254143646408841, 0, None, 1],
-                               'fb': [0.93414779005524862, 0, None, 1],
-                               'fq': [2.1270718232044201, 0, None, 1],
+               'userSliders': {'centerfreq': [359.5398780380499, 1, None, 1],
+                               'drywet': [0.3425414364640884, 0, None, 1],
+                               'fb': [0.9341477900552486, 0, None, 1],
+                               'fq': [2.12707182320442, 0, None, 1],
                                'spread': [0.01, 0, None, 1]},
                'userTogglePopups': {'polynum': 0, 'polyspread': 0.001, 'stages': 1}},
- u'03-Annoying Neighbour': {'gainSlider': -12.0,
+ u'03-Annoying Neighbour': {'active': False,
+                            'gainSlider': -12.0,
                             'nchnls': 2,
                             'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
                                         1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
                                         2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
-                            'totalTime': 30.000000000000071,
+                            'totalTime': 30.00000000000007,
                             'userGraph': {'centerfreq': {'curved': False,
-                                                         'data': [[0.0, 0.63903743315508021],
-                                                                  [0.010416666666666666, 0.63903743315508021],
+                                                         'data': [[0.0, 0.6390374331550802],
+                                                                  [0.010416666666666666, 0.6390374331550802],
                                                                   [0.010416666666666666, 0.36096256684491984],
                                                                   [0.020833333333333332, 0.36096256684491984],
-                                                                  [0.020833333333333332, 0.63903743315508021],
-                                                                  [0.03125, 0.63903743315508021],
+                                                                  [0.020833333333333332, 0.6390374331550802],
+                                                                  [0.03125, 0.6390374331550802],
                                                                   [0.03125, 0.36096256684491984],
                                                                   [0.041666666666666664, 0.36096256684491984],
-                                                                  [0.041666666666666664, 0.63903743315508021],
-                                                                  [0.052083333333333329, 0.63903743315508021],
-                                                                  [0.052083333333333329, 0.36096256684491984],
+                                                                  [0.041666666666666664, 0.6390374331550802],
+                                                                  [0.05208333333333333, 0.6390374331550802],
+                                                                  [0.05208333333333333, 0.36096256684491984],
                                                                   [0.0625, 0.36096256684491984],
-                                                                  [0.0625, 0.63903743315508021],
-                                                                  [0.072916666666666671, 0.63903743315508021],
-                                                                  [0.072916666666666671, 0.36096256684491984],
-                                                                  [0.083333333333333329, 0.36096256684491984],
-                                                                  [0.083333333333333329, 0.63903743315508021],
-                                                                  [0.09375, 0.63903743315508021],
+                                                                  [0.0625, 0.6390374331550802],
+                                                                  [0.07291666666666667, 0.6390374331550802],
+                                                                  [0.07291666666666667, 0.36096256684491984],
+                                                                  [0.08333333333333333, 0.36096256684491984],
+                                                                  [0.08333333333333333, 0.6390374331550802],
+                                                                  [0.09375, 0.6390374331550802],
                                                                   [0.09375, 0.36096256684491984],
                                                                   [0.10416666666666666, 0.36096256684491984],
-                                                                  [0.10416666666666666, 0.63903743315508021],
-                                                                  [0.11458333333333333, 0.63903743315508021],
+                                                                  [0.10416666666666666, 0.6390374331550802],
+                                                                  [0.11458333333333333, 0.6390374331550802],
                                                                   [0.11458333333333333, 0.36096256684491984],
                                                                   [0.125, 0.36096256684491984],
-                                                                  [0.125, 0.63903743315508021],
-                                                                  [0.13541666666666669, 0.63903743315508021],
+                                                                  [0.125, 0.6390374331550802],
+                                                                  [0.13541666666666669, 0.6390374331550802],
                                                                   [0.13541666666666669, 0.36096256684491984],
                                                                   [0.14583333333333331, 0.36096256684491984],
-                                                                  [0.14583333333333331, 0.63903743315508021],
-                                                                  [0.15624999999999997, 0.63903743315508021],
+                                                                  [0.14583333333333331, 0.6390374331550802],
+                                                                  [0.15624999999999997, 0.6390374331550802],
                                                                   [0.15624999999999997, 0.36096256684491984],
                                                                   [0.16666666666666666, 0.36096256684491984],
-                                                                  [0.16666666666666666, 0.63903743315508021],
-                                                                  [0.17708333333333331, 0.63903743315508021],
+                                                                  [0.16666666666666666, 0.6390374331550802],
+                                                                  [0.17708333333333331, 0.6390374331550802],
                                                                   [0.17708333333333331, 0.36096256684491984],
                                                                   [0.1875, 0.36096256684491984],
-                                                                  [0.1875, 0.63903743315508021],
-                                                                  [0.19791666666666669, 0.63903743315508021],
+                                                                  [0.1875, 0.6390374331550802],
+                                                                  [0.19791666666666669, 0.6390374331550802],
                                                                   [0.19791666666666669, 0.36096256684491984],
                                                                   [0.20833333333333331, 0.36096256684491984],
-                                                                  [0.20833333333333331, 0.63903743315508021],
-                                                                  [0.21874999999999997, 0.63903743315508021],
+                                                                  [0.20833333333333331, 0.6390374331550802],
+                                                                  [0.21874999999999997, 0.6390374331550802],
                                                                   [0.21874999999999997, 0.36096256684491984],
                                                                   [0.22916666666666666, 0.36096256684491984],
-                                                                  [0.22916666666666666, 0.63903743315508021],
-                                                                  [0.23958333333333331, 0.63903743315508021],
+                                                                  [0.22916666666666666, 0.6390374331550802],
+                                                                  [0.23958333333333331, 0.6390374331550802],
                                                                   [0.23958333333333331, 0.36096256684491984],
                                                                   [0.25, 0.36096256684491984],
-                                                                  [0.25, 0.63903743315508021],
-                                                                  [0.26041666666666669, 0.63903743315508021],
-                                                                  [0.26041666666666669, 0.36096256684491984],
+                                                                  [0.25, 0.6390374331550802],
+                                                                  [0.2604166666666667, 0.6390374331550802],
+                                                                  [0.2604166666666667, 0.36096256684491984],
                                                                   [0.27083333333333337, 0.36096256684491984],
-                                                                  [0.27083333333333337, 0.63903743315508021],
-                                                                  [0.28125, 0.63903743315508021],
+                                                                  [0.27083333333333337, 0.6390374331550802],
+                                                                  [0.28125, 0.6390374331550802],
                                                                   [0.28125, 0.36096256684491984],
                                                                   [0.29166666666666663, 0.36096256684491984],
-                                                                  [0.29166666666666663, 0.63903743315508021],
-                                                                  [0.30208333333333331, 0.63903743315508021],
-                                                                  [0.30208333333333331, 0.36096256684491984],
+                                                                  [0.29166666666666663, 0.6390374331550802],
+                                                                  [0.3020833333333333, 0.6390374331550802],
+                                                                  [0.3020833333333333, 0.36096256684491984],
                                                                   [0.31249999999999994, 0.36096256684491984],
-                                                                  [0.31249999999999994, 0.63903743315508021],
-                                                                  [0.32291666666666669, 0.63903743315508021],
-                                                                  [0.32291666666666669, 0.36096256684491984],
-                                                                  [0.33333333333333331, 0.36096256684491984],
-                                                                  [0.33333333333333331, 0.63903743315508021],
-                                                                  [0.34375, 0.63903743315508021],
+                                                                  [0.31249999999999994, 0.6390374331550802],
+                                                                  [0.3229166666666667, 0.6390374331550802],
+                                                                  [0.3229166666666667, 0.36096256684491984],
+                                                                  [0.3333333333333333, 0.36096256684491984],
+                                                                  [0.3333333333333333, 0.6390374331550802],
+                                                                  [0.34375, 0.6390374331550802],
                                                                   [0.34375, 0.36096256684491984],
                                                                   [0.35416666666666663, 0.36096256684491984],
-                                                                  [0.35416666666666663, 0.63903743315508021],
-                                                                  [0.36458333333333331, 0.63903743315508021],
-                                                                  [0.36458333333333331, 0.36096256684491984],
+                                                                  [0.35416666666666663, 0.6390374331550802],
+                                                                  [0.3645833333333333, 0.6390374331550802],
+                                                                  [0.3645833333333333, 0.36096256684491984],
                                                                   [0.375, 0.36096256684491984],
-                                                                  [0.375, 0.63903743315508021],
-                                                                  [0.38541666666666669, 0.63903743315508021],
-                                                                  [0.38541666666666669, 0.36096256684491984],
+                                                                  [0.375, 0.6390374331550802],
+                                                                  [0.3854166666666667, 0.6390374331550802],
+                                                                  [0.3854166666666667, 0.36096256684491984],
                                                                   [0.39583333333333337, 0.36096256684491984],
-                                                                  [0.39583333333333337, 0.63903743315508021],
-                                                                  [0.40625, 0.63903743315508021],
+                                                                  [0.39583333333333337, 0.6390374331550802],
+                                                                  [0.40625, 0.6390374331550802],
                                                                   [0.40625, 0.36096256684491984],
                                                                   [0.41666666666666663, 0.36096256684491984],
-                                                                  [0.41666666666666663, 0.63903743315508021],
-                                                                  [0.42708333333333331, 0.63903743315508021],
-                                                                  [0.42708333333333331, 0.36096256684491984],
+                                                                  [0.41666666666666663, 0.6390374331550802],
+                                                                  [0.4270833333333333, 0.6390374331550802],
+                                                                  [0.4270833333333333, 0.36096256684491984],
                                                                   [0.43750000000000006, 0.36096256684491984],
-                                                                  [0.43750000000000006, 0.63903743315508021],
-                                                                  [0.44791666666666669, 0.63903743315508021],
-                                                                  [0.44791666666666669, 0.36096256684491984],
-                                                                  [0.45833333333333331, 0.36096256684491984],
-                                                                  [0.45833333333333331, 0.63903743315508021],
-                                                                  [0.46875, 0.63903743315508021],
+                                                                  [0.43750000000000006, 0.6390374331550802],
+                                                                  [0.4479166666666667, 0.6390374331550802],
+                                                                  [0.4479166666666667, 0.36096256684491984],
+                                                                  [0.4583333333333333, 0.36096256684491984],
+                                                                  [0.4583333333333333, 0.6390374331550802],
+                                                                  [0.46875, 0.6390374331550802],
                                                                   [0.46875, 0.36096256684491984],
                                                                   [0.47916666666666663, 0.36096256684491984],
-                                                                  [0.47916666666666663, 0.63903743315508021],
-                                                                  [0.48958333333333331, 0.63903743315508021],
-                                                                  [0.48958333333333331, 0.36096256684491984],
+                                                                  [0.47916666666666663, 0.6390374331550802],
+                                                                  [0.4895833333333333, 0.6390374331550802],
+                                                                  [0.4895833333333333, 0.36096256684491984],
                                                                   [0.5, 0.36096256684491984],
-                                                                  [0.5, 0.63903743315508021],
-                                                                  [0.51041666666666663, 0.63903743315508021],
-                                                                  [0.51041666666666663, 0.36096256684491984],
-                                                                  [0.52083333333333326, 0.36096256684491984],
-                                                                  [0.52083333333333326, 0.63903743315508021],
-                                                                  [0.53124999999999989, 0.63903743315508021],
-                                                                  [0.53124999999999989, 0.36096256684491984],
-                                                                  [0.54166666666666674, 0.36096256684491984],
-                                                                  [0.54166666666666674, 0.63903743315508021],
-                                                                  [0.55208333333333326, 0.63903743315508021],
-                                                                  [0.55208333333333326, 0.36096256684491984],
+                                                                  [0.5, 0.6390374331550802],
+                                                                  [0.5104166666666666, 0.6390374331550802],
+                                                                  [0.5104166666666666, 0.36096256684491984],
+                                                                  [0.5208333333333333, 0.36096256684491984],
+                                                                  [0.5208333333333333, 0.6390374331550802],
+                                                                  [0.5312499999999999, 0.6390374331550802],
+                                                                  [0.5312499999999999, 0.36096256684491984],
+                                                                  [0.5416666666666667, 0.36096256684491984],
+                                                                  [0.5416666666666667, 0.6390374331550802],
+                                                                  [0.5520833333333333, 0.6390374331550802],
+                                                                  [0.5520833333333333, 0.36096256684491984],
                                                                   [0.5625, 0.36096256684491984],
-                                                                  [0.5625, 0.63903743315508021],
-                                                                  [0.57291666666666663, 0.63903743315508021],
-                                                                  [0.57291666666666663, 0.36096256684491984],
-                                                                  [0.58333333333333326, 0.36096256684491984],
-                                                                  [0.58333333333333326, 0.63903743315508021],
-                                                                  [0.59374999999999989, 0.63903743315508021],
-                                                                  [0.59374999999999989, 0.36096256684491984],
-                                                                  [0.60416666666666663, 0.36096256684491984],
-                                                                  [0.60416666666666663, 0.63903743315508021],
-                                                                  [0.61458333333333326, 0.63903743315508021],
-                                                                  [0.61458333333333326, 0.36096256684491984],
-                                                                  [0.62499999999999989, 0.36096256684491984],
-                                                                  [0.62499999999999989, 0.63903743315508021],
-                                                                  [0.63541666666666663, 0.63903743315508021],
-                                                                  [0.63541666666666663, 0.36096256684491984],
-                                                                  [0.64583333333333326, 0.36096256684491984],
-                                                                  [0.64583333333333326, 0.63903743315508021],
-                                                                  [0.65624999999999989, 0.63903743315508021],
-                                                                  [0.65624999999999989, 0.36096256684491984],
-                                                                  [0.66666666666666663, 0.36096256684491984],
-                                                                  [0.66666666666666663, 0.63903743315508021],
-                                                                  [0.67708333333333326, 0.63903743315508021],
-                                                                  [0.67708333333333326, 0.36096256684491984],
+                                                                  [0.5625, 0.6390374331550802],
+                                                                  [0.5729166666666666, 0.6390374331550802],
+                                                                  [0.5729166666666666, 0.36096256684491984],
+                                                                  [0.5833333333333333, 0.36096256684491984],
+                                                                  [0.5833333333333333, 0.6390374331550802],
+                                                                  [0.5937499999999999, 0.6390374331550802],
+                                                                  [0.5937499999999999, 0.36096256684491984],
+                                                                  [0.6041666666666666, 0.36096256684491984],
+                                                                  [0.6041666666666666, 0.6390374331550802],
+                                                                  [0.6145833333333333, 0.6390374331550802],
+                                                                  [0.6145833333333333, 0.36096256684491984],
+                                                                  [0.6249999999999999, 0.36096256684491984],
+                                                                  [0.6249999999999999, 0.6390374331550802],
+                                                                  [0.6354166666666666, 0.6390374331550802],
+                                                                  [0.6354166666666666, 0.36096256684491984],
+                                                                  [0.6458333333333333, 0.36096256684491984],
+                                                                  [0.6458333333333333, 0.6390374331550802],
+                                                                  [0.6562499999999999, 0.6390374331550802],
+                                                                  [0.6562499999999999, 0.36096256684491984],
+                                                                  [0.6666666666666666, 0.36096256684491984],
+                                                                  [0.6666666666666666, 0.6390374331550802],
+                                                                  [0.6770833333333333, 0.6390374331550802],
+                                                                  [0.6770833333333333, 0.36096256684491984],
                                                                   [0.6875, 0.36096256684491984],
-                                                                  [0.6875, 0.63903743315508021],
-                                                                  [0.69791666666666663, 0.63903743315508021],
-                                                                  [0.69791666666666663, 0.36096256684491984],
-                                                                  [0.70833333333333326, 0.36096256684491984],
-                                                                  [0.70833333333333326, 0.63903743315508021],
-                                                                  [0.71874999999999989, 0.63903743315508021],
-                                                                  [0.71874999999999989, 0.36096256684491984],
-                                                                  [0.72916666666666663, 0.36096256684491984],
-                                                                  [0.72916666666666663, 0.63903743315508021],
-                                                                  [0.73958333333333326, 0.63903743315508021],
-                                                                  [0.73958333333333326, 0.36096256684491984],
+                                                                  [0.6875, 0.6390374331550802],
+                                                                  [0.6979166666666666, 0.6390374331550802],
+                                                                  [0.6979166666666666, 0.36096256684491984],
+                                                                  [0.7083333333333333, 0.36096256684491984],
+                                                                  [0.7083333333333333, 0.6390374331550802],
+                                                                  [0.7187499999999999, 0.6390374331550802],
+                                                                  [0.7187499999999999, 0.36096256684491984],
+                                                                  [0.7291666666666666, 0.36096256684491984],
+                                                                  [0.7291666666666666, 0.6390374331550802],
+                                                                  [0.7395833333333333, 0.6390374331550802],
+                                                                  [0.7395833333333333, 0.36096256684491984],
                                                                   [0.75, 0.36096256684491984],
-                                                                  [0.75, 0.63903743315508021],
-                                                                  [0.76041666666666663, 0.63903743315508021],
-                                                                  [0.76041666666666663, 0.36096256684491984],
-                                                                  [0.77083333333333326, 0.36096256684491984],
-                                                                  [0.77083333333333326, 0.63903743315508021],
-                                                                  [0.78124999999999989, 0.63903743315508021],
-                                                                  [0.78124999999999989, 0.36096256684491984],
-                                                                  [0.79166666666666674, 0.36096256684491984],
-                                                                  [0.79166666666666674, 0.63903743315508021],
-                                                                  [0.80208333333333326, 0.63903743315508021],
-                                                                  [0.80208333333333326, 0.36096256684491984],
+                                                                  [0.75, 0.6390374331550802],
+                                                                  [0.7604166666666666, 0.6390374331550802],
+                                                                  [0.7604166666666666, 0.36096256684491984],
+                                                                  [0.7708333333333333, 0.36096256684491984],
+                                                                  [0.7708333333333333, 0.6390374331550802],
+                                                                  [0.7812499999999999, 0.6390374331550802],
+                                                                  [0.7812499999999999, 0.36096256684491984],
+                                                                  [0.7916666666666667, 0.36096256684491984],
+                                                                  [0.7916666666666667, 0.6390374331550802],
+                                                                  [0.8020833333333333, 0.6390374331550802],
+                                                                  [0.8020833333333333, 0.36096256684491984],
                                                                   [0.8125, 0.36096256684491984],
-                                                                  [0.8125, 0.63903743315508021],
-                                                                  [0.82291666666666663, 0.63903743315508021],
-                                                                  [0.82291666666666663, 0.36096256684491984],
-                                                                  [0.83333333333333326, 0.36096256684491984],
-                                                                  [0.83333333333333326, 0.63903743315508021],
-                                                                  [0.84374999999999989, 0.63903743315508021],
-                                                                  [0.84374999999999989, 0.36096256684491984],
-                                                                  [0.85416666666666663, 0.36096256684491984],
-                                                                  [0.85416666666666663, 0.63903743315508021],
-                                                                  [0.86458333333333326, 0.63903743315508021],
-                                                                  [0.86458333333333326, 0.36096256684491984],
-                                                                  [0.87500000000000011, 0.36096256684491984],
-                                                                  [0.87500000000000011, 0.63903743315508021],
-                                                                  [0.88541666666666663, 0.63903743315508021],
-                                                                  [0.88541666666666663, 0.36096256684491984],
-                                                                  [0.89583333333333326, 0.36096256684491984],
-                                                                  [0.89583333333333326, 0.63903743315508021],
-                                                                  [0.90624999999999989, 0.63903743315508021],
-                                                                  [0.90624999999999989, 0.36096256684491984],
-                                                                  [0.91666666666666663, 0.36096256684491984],
-                                                                  [0.91666666666666663, 0.63903743315508021],
-                                                                  [0.92708333333333326, 0.63903743315508021],
-                                                                  [0.92708333333333326, 0.36096256684491984],
+                                                                  [0.8125, 0.6390374331550802],
+                                                                  [0.8229166666666666, 0.6390374331550802],
+                                                                  [0.8229166666666666, 0.36096256684491984],
+                                                                  [0.8333333333333333, 0.36096256684491984],
+                                                                  [0.8333333333333333, 0.6390374331550802],
+                                                                  [0.8437499999999999, 0.6390374331550802],
+                                                                  [0.8437499999999999, 0.36096256684491984],
+                                                                  [0.8541666666666666, 0.36096256684491984],
+                                                                  [0.8541666666666666, 0.6390374331550802],
+                                                                  [0.8645833333333333, 0.6390374331550802],
+                                                                  [0.8645833333333333, 0.36096256684491984],
+                                                                  [0.8750000000000001, 0.36096256684491984],
+                                                                  [0.8750000000000001, 0.6390374331550802],
+                                                                  [0.8854166666666666, 0.6390374331550802],
+                                                                  [0.8854166666666666, 0.36096256684491984],
+                                                                  [0.8958333333333333, 0.36096256684491984],
+                                                                  [0.8958333333333333, 0.6390374331550802],
+                                                                  [0.9062499999999999, 0.6390374331550802],
+                                                                  [0.9062499999999999, 0.36096256684491984],
+                                                                  [0.9166666666666666, 0.36096256684491984],
+                                                                  [0.9166666666666666, 0.6390374331550802],
+                                                                  [0.9270833333333333, 0.6390374331550802],
+                                                                  [0.9270833333333333, 0.36096256684491984],
                                                                   [0.9375, 0.36096256684491984],
-                                                                  [0.9375, 0.63903743315508021],
-                                                                  [0.94791666666666663, 0.63903743315508021],
-                                                                  [0.94791666666666663, 0.36096256684491984],
-                                                                  [0.95833333333333326, 0.36096256684491984],
-                                                                  [0.95833333333333326, 0.63903743315508021],
-                                                                  [0.96874999999999989, 0.63903743315508021],
-                                                                  [0.96874999999999989, 0.36096256684491984],
-                                                                  [0.97916666666666663, 0.36096256684491984],
-                                                                  [0.97916666666666663, 0.63903743315508021],
-                                                                  [0.98958333333333326, 0.63903743315508021],
-                                                                  [0.98958333333333326, 0.36096256684491984],
+                                                                  [0.9375, 0.6390374331550802],
+                                                                  [0.9479166666666666, 0.6390374331550802],
+                                                                  [0.9479166666666666, 0.36096256684491984],
+                                                                  [0.9583333333333333, 0.36096256684491984],
+                                                                  [0.9583333333333333, 0.6390374331550802],
+                                                                  [0.9687499999999999, 0.6390374331550802],
+                                                                  [0.9687499999999999, 0.36096256684491984],
+                                                                  [0.9791666666666666, 0.36096256684491984],
+                                                                  [0.9791666666666666, 0.6390374331550802],
+                                                                  [0.9895833333333333, 0.6390374331550802],
+                                                                  [0.9895833333333333, 0.36096256684491984],
                                                                   [1.0, 0.36096256684491984]]},
-                                          'drywet': {'curved': False, 'data': [[0.0, 0.80000000000000004], [1.0, 0.80000000000000004]]},
+                                          'drywet': {'curved': False, 'data': [[0.0, 0.8], [1.0, 0.8]]},
                                           'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                          'fb': {'curved': False, 'data': [[0.0, 0.70070070070070067], [1.0, 0.70070070070070067]]},
+                                          'fb': {'curved': False, 'data': [[0.0, 0.7007007007007007], [1.0, 0.7007007007007007]]},
                                           'fq': {'curved': False, 'data': [[0.0, 0.47368421052631576], [1.0, 0.47368421052631576]]},
                                           'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                          'sndgain': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
+                                          'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
                                           'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
                                           'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
                                           'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
                                           'spread': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]}},
-                            'userInputs': {'snd': {'dursnd': 5.3334465026855469,
+                            'userInputs': {'snd': {'dursnd': 5.333446502685547,
                                                    'gain': [0.0, False, False],
                                                    'gensizesnd': 262144,
                                                    'loopIn': [0.0, False, False],
                                                    'loopMode': 1,
-                                                   'loopOut': [5.3334465026855469, False, False],
+                                                   'loopOut': [5.333446502685547, False, False],
                                                    'loopX': [1.0, False, False],
                                                    'nchnlssnd': 2,
                                                    'offsnd': 0.0,
@@ -880,7 +902,116 @@ CECILIA_PRESETS = {u'01-Spookmaker': {'gainSlider': -26.0,
                                                    'type': 'csampler'}},
                             'userSliders': {'centerfreq': [242.05702773481727, 1, None, 1],
                                             'drywet': [0.5, 0, None, 1],
-                                            'fb': [0.93999999999999995, 0, None, 1],
+                                            'fb': [0.94, 0, None, 1],
                                             'fq': [0.5, 0, None, 1],
                                             'spread': [0.7771132596685083, 0, None, 1]},
-                            'userTogglePopups': {'polynum': 0, 'polyspread': 0.001, 'stages': 7}}}
\ No newline at end of file
+                            'userTogglePopups': {'polynum': 0, 'polyspread': 0.001, 'stages': 7}},
+ u'04-Pop and Slide': {'active': False,
+                       'gainSlider': 0.0,
+                       'nchnls': 2,
+                       'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                   1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                   2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                   3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                       'totalTime': 30.00000000000007,
+                       'userGraph': {'centerfreq': {'curved': False, 'data': [[0.0, 3.2144248885109565e-17], [1.0, 1.0]]},
+                                     'drywet': {'curved': False, 'data': [[0.0, 0.8], [1.0, 0.8]]},
+                                     'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                     'fb': {'curved': False,
+                                            'data': [[0.0, 0.47610334589194786],
+                                                     [0.125, 0.97877714268339178],
+                                                     [0.125, 0.47610334589194786],
+                                                     [0.25, 0.97877714268339178],
+                                                     [0.25, 0.47610334589194786],
+                                                     [0.375, 0.97877714268339178],
+                                                     [0.375, 0.47610334589194786],
+                                                     [0.5, 0.97877714268339178],
+                                                     [0.5, 0.47610334589194786],
+                                                     [0.62499999999999989, 0.97877714268339178],
+                                                     [0.62499999999999989, 0.47610334589194786],
+                                                     [0.75, 0.97877714268339178],
+                                                     [0.75, 0.47610334589194786],
+                                                     [0.87500000000000011, 0.97877714268339178],
+                                                     [0.87500000000000011, 0.47610334589194786],
+                                                     [1.0, 0.97877714268339178]]},
+                                     'fq': {'curved': False, 'data': [[0.0, 0.47368421052631576], [1.0, 0.47368421052631576]]},
+                                     'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                     'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                     'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                     'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                     'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                                     'spread': {'curved': False,
+                                                'data': [[0.0, 0.97877714268339178],
+                                                         [0.125, 0.4761033458919478],
+                                                         [0.125, 0.97877714268339178],
+                                                         [0.25, 0.4761033458919478],
+                                                         [0.25, 0.97877714268339178],
+                                                         [0.375, 0.4761033458919478],
+                                                         [0.375, 0.97877714268339178],
+                                                         [0.5, 0.4761033458919478],
+                                                         [0.5, 0.97877714268339178],
+                                                         [0.6249999999999999, 0.4761033458919478],
+                                                         [0.6249999999999999, 0.97877714268339178],
+                                                         [0.75, 0.4761033458919478],
+                                                         [0.75, 0.97877714268339178],
+                                                         [0.8750000000000001, 0.4761033458919478],
+                                                         [0.8750000000000001, 0.97877714268339178],
+                                                         [1.0, 0.4761033458919478]]}},
+                       'userInputs': {'snd': {'dursnd': 9.008253968253968,
+                                              'gain': [0.0, False, False, False, None, 1, None, None],
+                                              'loopIn': [0.0, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                              'loopMode': 1,
+                                              'loopOut': [9.008253968253968, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                              'loopX': [1.0, False, False, False, None, 1, None, None],
+                                              'mode': 0,
+                                              'nchnlssnd': 1,
+                                              'offsnd': 0.0,
+                                              'path': u'/home/olivier/Dropbox/private/snds/ruisseau.aif',
+                                              'srsnd': 44100.0,
+                                              'startFromLoop': 0,
+                                              'transp': [0.0, False, False, False, None, 1, None, None],
+                                              'type': 'csampler'}},
+                       'userSliders': {'centerfreq': [350.0, 0, None, 1, None, None],
+                                       'drywet': [0.8, 0, None, 1, None, None],
+                                       'fb': [0.9700461030006409, 1, None, 1, None, None],
+                                       'fq': [5.0, 0, None, 1, None, None],
+                                       'spread': [1.0193403959274292, 1, None, 1, None, None]},
+                       'userTogglePopups': {'poly': 0, 'polynum': 0, 'stages': 7}},
+ u'05-Resonators': {'gainSlider': -18.0,
+                    'nchnls': 2,
+                    'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                    'totalTime': 30.00000000000007,
+                    'userGraph': {'centerfreq': {'curved': False, 'data': [[0.0, 3.2144248885109565e-17], [1.0, 1.0]]},
+                                  'drywet': {'curved': False, 'data': [[0.0, 0.8], [1.0, 0.8]]},
+                                  'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                  'fb': {'curved': False, 'data': [[0.0, 0.7007007007007007], [1.0, 0.7007007007007007]]},
+                                  'fq': {'curved': False, 'data': [[0.0, 0.47368421052631576], [1.0, 0.47368421052631576]]},
+                                  'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                  'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                  'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                  'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                  'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                                  'spread': {'curved': False, 'data': [[0.0, 0.4736842105263158], [1.0, 0.4736842105263158]]}},
+                    'userInputs': {'snd': {'dursnd': 9.008253968253968,
+                                           'gain': [0.0, False, False, False, None, 1, None, None],
+                                           'loopIn': [0.0, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                           'loopMode': 1,
+                                           'loopOut': [9.008253968253968, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                           'loopX': [1.0, False, False, False, None, 1, None, None],
+                                           'mode': 0,
+                                           'nchnlssnd': 1,
+                                           'offsnd': 0.0,
+                                           'path': u'/home/olivier/Dropbox/private/snds/ruisseau.aif',
+                                           'srsnd': 44100.0,
+                                           'startFromLoop': 0,
+                                           'transp': [0.0, False, False, False, None, 1, None, None],
+                                           'type': 'csampler'}},
+                    'userSliders': {'centerfreq': [100.0, 0, None, 1, None, None],
+                                    'drywet': [1.0, 0, None, 1, None, None],
+                                    'fb': [0.995, 0, None, 1, None, None],
+                                    'fq': [5.0, 0, None, 1, None, None],
+                                    'spread': [1.5, 0, None, 1, None, None]},
+                    'userTogglePopups': {'poly': 0, 'polynum': 0, 'stages': 11}}}
\ No newline at end of file
diff --git a/Resources/modules/Filters/StateVar.c5 b/Resources/modules/Filters/StateVar.c5
new file mode 100644
index 0000000..4016873
--- /dev/null
+++ b/Resources/modules/Filters/StateVar.c5
@@ -0,0 +1,740 @@
+class Module(BaseModule):
+    """
+    "State Variable Filter"
+    
+    Description
+
+    This module implements lowpass, bandpass and highpass filters in parallel
+    and allow the user to interpolate on an axis lp -> bp -> hp.
+    
+    Sliders
+    
+        # Cutoff/Center Freq : 
+                Cutoff frequency for lp and hp (center freq for bp)
+        # Filter Q :
+                Q factor (inverse of bandwidth) of the filter
+        # Type (lp->bp->hp) : 
+                Interpolating factor between filters
+        # Dry / Wet : 
+                Mix between the original and the filtered signals
+
+    Graph Only
+    
+        # Overall Amplitude : 
+                The amplitude curve applied on the total duration of the performance
+    
+    Popups & Toggles
+    
+        # Balance :
+            Compression mode. Off, balanced with a fixed signal
+            or balanced with the input source.
+        # Polyphony Voices : 
+                Number of voices played simultaneously (polyphony), 
+                only available at initialization time
+        # Polyphony Chords : 
+                Pitch interval between voices (chords), 
+                only available at initialization time
+
+    """
+    def __init__(self):
+        BaseModule.__init__(self)
+        self.snd = self.addSampler("snd")
+        self.dsp = SVF(self.snd, self.freq, self.q, self.type)
+        self.deg = Interp(self.snd, self.dsp, self.drywet, mul=self.env)
+
+#BALANCE
+        self.osc = Sine(10000, mul=.1)
+        self.balanced = Balance(self.deg, self.osc, freq=10)
+        self.out = Interp(self.deg, self.balanced)
+
+#INIT
+        self.balance(self.balance_index, self.balance_value)
+
+    def balance(self,index,value):
+        if index == 0:
+           self.out.interp  = 0
+        elif index ==1:
+           self.out.interp  = 1
+           self.balanced.input2 = self.osc
+        elif index == 2:
+           self.out.interp = 1
+           self.balanced.input2 = self.snd
+
+Interface = [
+    csampler(name="snd"),
+    cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
+    cslider(name="freq", label="Cutoff/Center Freq", min=20, max=20000, init=1000, rel="log", unit="Hz", col="green1"),
+    cslider(name="q", label="Filter Q", min=0.5, max=25, init=1, rel="log", unit="x", col="green2"),
+    cslider(name="type", label="Type (lp->bp->hp)", min=0, max=1, init=0.5, rel="lin", unit="x", col="green3"),
+    cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue1"),
+    cpopup(name="balance", label = "Balance", init= "Off", col="blue1", value=["Off","Compress", "Source"]),
+    cpoly()
+]
+
+
+####################################
+##### Cecilia reserved section #####
+#### Presets saved from the app ####
+####################################
+
+
+CECILIA_PRESETS = {u'01-Swinger': {'active': False,
+                 'gainSlider': 0.0,
+                 'nchnls': 2,
+                 'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                             1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                             2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                             3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                 'totalTime': 30.00000000000007,
+                 'userGraph': {'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                               'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                               'freq': {'curved': False, 'data': [[0.0, 0.5663233347786729], [1.0, 0.5663233347786729]]},
+                               'q': {'curved': False, 'data': [[0.0, 0.17718382013555792], [1.0, 0.17718382013555792]]},
+                               'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                               'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                               'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                               'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                               'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                               'type': {'curved': False,
+                                        'data': [[0.0, 0.5],
+                                                 [0.005025125628140704, 0.6249564811851542],
+                                                 [0.010050251256281407, 0.7419828005714194],
+                                                 [0.01507537688442211, 0.8436520713045921],
+                                                 [0.020100502512562814, 0.9235120168861495],
+                                                 [0.02512562814070352, 0.9764944545079196],
+                                                 [0.03015075376884422, 0.9992369391101894],
+                                                 [0.035175879396984924, 0.990296155541202],
+                                                 [0.04020100502512563, 0.9502395162283759],
+                                                 [0.04522613065326633, 0.8816091512625842],
+                                                 [0.05025125628140704, 0.7887605762067943],
+                                                 [0.05527638190954774, 0.6775862763167141],
+                                                 [0.06030150753768844, 0.5551417494556375],
+                                                 [0.06532663316582915, 0.4291977402875241],
+                                                 [0.07035175879396985, 0.3077470824839946],
+                                                 [0.07537688442211056, 0.19849744641019268],
+                                                 [0.08040201005025126, 0.10838218424055479],
+                                                 [0.08542713567839195, 0.043120315931281794],
+                                                 [0.09045226130653267, 0.006853580830998629],
+                                                 [0.09547738693467336, 0.0018835888644966325],
+                                                 [0.10050251256281408, 0.02852575256628148],
+                                                 [0.10552763819095477, 0.08508926993213711],
+                                                 [0.11055276381909548, 0.1679844284447845],
+                                                 [0.11557788944723618, 0.27195042039649187],
+                                                 [0.12060301507537688, 0.39038921157615425],
+                                                 [0.12562814070351758, 0.5157842748824049],
+                                                 [0.1306532663316583, 0.6401776146085074],
+                                                 [0.135678391959799, 0.7556748078211633],
+                                                 [0.1407035175879397, 0.8549460111956664],
+                                                 [0.1457286432160804, 0.9316911377156114],
+                                                 [0.15075376884422112, 0.9810396815472315],
+                                                 [0.15577889447236182, 0.999859816846739],
+                                                 [0.16080402010050251, 0.9869571540427688],
+                                                 [0.1658291457286432, 0.9431505398466045],
+                                                 [0.1708542713567839, 0.8712200904646421],
+                                                 [0.17587939698492464, 0.7757307560015538],
+                                                 [0.18090452261306533, 0.6627426132551055],
+                                                 [0.18592964824120603, 0.5394262727037382],
+                                                 [0.19095477386934673, 0.41360780726295054],
+                                                 [0.19597989949748745, 0.2932720831739327],
+                                                 [0.20100502512562815, 0.1860560133295709],
+                                                 [0.20603015075376885, 0.09876389289921128],
+                                                 [0.21105527638190955, 0.03693557569607936],
+                                                 [0.21608040201005024, 0.004494896278603944],
+                                                 [0.22110552763819097, 0.0035006501106651933],
+                                                 [0.22613065326633167, 0.03401593542378256],
+                                                 [0.23115577889447236, 0.09410414878948942],
+                                                 [0.23618090452261306, 0.1799518885364459],
+                                                 [0.24120603015075376, 0.2861109661448951],
+                                                 [0.24623115577889448, 0.4058441667551415],
+                                                 [0.25125628140703515, 0.531552815656336],
+                                                 [0.2562814070351759, 0.6552590159370842],
+                                                 [0.2613065326633166, 0.7691119528621446],
+                                                 [0.2663316582914573, 0.8658861331835378],
+                                                 [0.271356783919598, 0.93943993943073],
+                                                 [0.27638190954773867, 0.9851053977704931],
+                                                 [0.2814070351758794, 0.9999844234470782],
+                                                 [0.2864321608040201, 0.9831327430630108],
+                                                 [0.2914572864321608, 0.9356198213692302],
+                                                 [0.2964824120603015, 0.8604609894073584],
+                                                 [0.30150753768844224, 0.7624260813822339],
+                                                 [0.3065326633165829, 0.647736724817335],
+                                                 [0.31155778894472363, 0.5236714949857785],
+                                                 [0.3165829145728643, 0.3981039918549246],
+                                                 [0.32160804020100503, 0.2790031547472106],
+                                                 [0.3266331658291458, 0.17392752644240705],
+                                                 [0.3316582914572864, 0.08954556243536915],
+                                                 [0.33668341708542715, 0.031212428149587246],
+                                                 [0.3417085427135678, 0.0026301419896716527],
+                                                 [0.34673366834170855, 0.005612632706498699],
+                                                 [0.35175879396984927, 0.039970621330912615],
+                                                 [0.35678391959798994, 0.10352363345861026],
+                                                 [0.36180904522613067, 0.192238379545911],
+                                                 [0.36683417085427134, 0.3004847211338283],
+                                                 [0.37185929648241206, 0.4213929785163747],
+                                                 [0.37688442211055284, 0.5472899038974222],
+                                                 [0.38190954773869346, 0.6701856517020559],
+                                                 [0.3869346733668342, 0.7822808412559583],
+                                                 [0.3919597989949749, 0.8764615319166889],
+                                                 [0.3969849246231156, 0.9467506978574372],
+                                                 [0.4020100502512563, 0.9886875503833537],
+                                                 [0.40703517587939697, 0.9996106347006378],
+                                                 [0.4120603015075377, 0.978826734857965],
+                                                 [0.4170854271356784, 0.9276548675802057],
+                                                 [0.4221105527638191, 0.8493425729966531],
+                                                 [0.42713567839195987, 0.7488598147378416],
+                                                 [0.4321608040201005, 0.6325835691993398],
+                                                 [0.4371859296482412, 0.5078931210068193],
+                                                 [0.44221105527638194, 0.38270174860381495],
+                                                 [0.4472361809045226, 0.26495452078199977],
+                                                 [0.45226130653266333, 0.1621240756881956],
+                                                 [0.457286432160804, 0.08073638188131149],
+                                                 [0.4623115577889447, 0.025956578249745454],
+                                                 [0.46733668341708545, 0.001261176791830576],
+                                                 [0.4723618090452261, 0.0082174313818148],
+                                                 [0.47738693467336685, 0.046383874527259394],
+                                                 [0.4824120603015075, 0.11333833439233032],
+                                                 [0.48743718592964824, 0.20483165403173537],
+                                                 [0.49246231155778897, 0.31505735729172746],
+                                                 [0.49748743718592964, 0.43702014746614004],
+                                                 [0.5025125628140703, 0.5629798525338572],
+                                                 [0.507537688442211, 0.6849426427082717],
+                                                 [0.5125628140703518, 0.7951683459682639],
+                                                 [0.5175879396984925, 0.8866616656076691],
+                                                 [0.5226130653266332, 0.9536161254727409],
+                                                 [0.5276381909547738, 0.9917825686181847],
+                                                 [0.5326633165829145, 0.9987388232081695],
+                                                 [0.5376884422110553, 0.9740434217502549],
+                                                 [0.542713567839196, 0.9192636181186891],
+                                                 [0.5477386934673367, 0.8378759243118038],
+                                                 [0.5527638190954773, 0.7350454792180011],
+                                                 [0.5577889447236181, 0.617298251396186],
+                                                 [0.5628140703517588, 0.4921068789931818],
+                                                 [0.5678391959798995, 0.3674164308006612],
+                                                 [0.5728643216080402, 0.2511401852621577],
+                                                 [0.577889447236181, 0.1506574270033464],
+                                                 [0.5829145728643216, 0.0723451324197949],
+                                                 [0.5879396984924623, 0.02117326514203527],
+                                                 [0.592964824120603, 0.0003893652993622321],
+                                                 [0.5979899497487438, 0.01131244961664657],
+                                                 [0.6030150753768845, 0.05324930214256324],
+                                                 [0.6080402010050251, 0.12353846808331048],
+                                                 [0.6130653266331658, 0.21771915874404096],
+                                                 [0.6180904522613065, 0.3298143482979432],
+                                                 [0.6231155778894473, 0.4527100961025786],
+                                                 [0.628140703517588, 0.5786070214836261],
+                                                 [0.6331658291457286, 0.6995152788661692],
+                                                 [0.6381909547738693, 0.8077616204540883],
+                                                 [0.6432160804020101, 0.8964763665413891],
+                                                 [0.6482412060301508, 0.9600293786690877],
+                                                 [0.6532663316582916, 0.9943873672935011],
+                                                 [0.6582914572864321, 0.9973698580103287],
+                                                 [0.6633165829145728, 0.9687875718504131],
+                                                 [0.6683417085427136, 0.9104544375646314],
+                                                 [0.6733668341708543, 0.8260724735575924],
+                                                 [0.678391959798995, 0.7209968452527903],
+                                                 [0.6834170854271356, 0.6018960081450789],
+                                                 [0.6884422110552764, 0.4763285050142225],
+                                                 [0.6934673366834171, 0.35226327518266504],
+                                                 [0.6984924623115578, 0.23757391861776467],
+                                                 [0.7035175879396985, 0.13953901059264234],
+                                                 [0.7085427135678392, 0.06438017863077161],
+                                                 [0.7135678391959799, 0.016867256936989428],
+                                                 [0.7185929648241206, 1.5576552921836573e-05],
+                                                 [0.7236180904522613, 0.014894602229507226],
+                                                 [0.7286432160804021, 0.06056006056926949],
+                                                 [0.7336683417085427, 0.13411386681645976],
+                                                 [0.7386934673366834, 0.2308880471378546],
+                                                 [0.7437185929648241, 0.3447409840629157],
+                                                 [0.7487437185929647, 0.4684471843436647],
+                                                 [0.7537688442211057, 0.5941558332448584],
+                                                 [0.7587939698492463, 0.7138890338551056],
+                                                 [0.7638190954773869, 0.8200481114635527],
+                                                 [0.7688442211055276, 0.9058958512105105],
+                                                 [0.7738693467336684, 0.9659840645762168],
+                                                 [0.7788944723618091, 0.9964993498893348],
+                                                 [0.7839195979899498, 0.995505103721396],
+                                                 [0.7889447236180904, 0.963064424303921],
+                                                 [0.7939698492462312, 0.9012361071007888],
+                                                 [0.7989949748743719, 0.8139439866704306],
+                                                 [0.8040201005025126, 0.7067279168260674],
+                                                 [0.8090452261306533, 0.5863921927370487],
+                                                 [0.8140703517587939, 0.4605737272962628],
+                                                 [0.8190954773869347, 0.33725738674489375],
+                                                 [0.8241206030150754, 0.22426924399844766],
+                                                 [0.8291457286432161, 0.12877990953535862],
+                                                 [0.8341708542713568, 0.05684946015339509],
+                                                 [0.8391959798994975, 0.01304284595723132],
+                                                 [0.8442211055276382, 0.00014018315326103092],
+                                                 [0.8492462311557788, 0.018960318452768132],
+                                                 [0.8542713567839197, 0.06830886228438826],
+                                                 [0.8592964824120604, 0.1450539888043345],
+                                                 [0.864321608040201, 0.24432519217883597],
+                                                 [0.8693467336683417, 0.3598223853914934],
+                                                 [0.8743718592964824, 0.48421572511759325],
+                                                 [0.8793969849246231, 0.6096107884238456],
+                                                 [0.8844221105527639, 0.7280495796035092],
+                                                 [0.8894472361809045, 0.8320155715552151],
+                                                 [0.8944723618090452, 0.9149107300678614],
+                                                 [0.8994974874371859, 0.9714742474337181],
+                                                 [0.9045226130653267, 0.9981164111355034],
+                                                 [0.9095477386934674, 0.9931464191690011],
+                                                 [0.914572864321608, 0.9568796840687186],
+                                                 [0.9195979899497487, 0.8916178157594469],
+                                                 [0.9246231155778895, 0.8015025535898084],
+                                                 [0.9296482412060302, 0.6922529175160053],
+                                                 [0.9346733668341709, 0.5708022597124742],
+                                                 [0.9396984924623115, 0.444858250544363],
+                                                 [0.9447236180904522, 0.32241372368328824],
+                                                 [0.9497487437185929, 0.21123942379320665],
+                                                 [0.9547738693467337, 0.11839084873741557],
+                                                 [0.9597989949748744, 0.049760483771623454],
+                                                 [0.964824120603015, 0.009703844458798017],
+                                                 [0.9698492462311558, 0.0007630608898104296],
+                                                 [0.9748743718592965, 0.02350554549208006],
+                                                 [0.9798994974874372, 0.07648798311385074],
+                                                 [0.9849246231155779, 0.15634792869540914],
+                                                 [0.9899497487437187, 0.25801719942858037],
+                                                 [0.9949748743718593, 0.3750435188148435],
+                                                 [1.0, 0.499999999999999]]}},
+                 'userInputs': {'snd': {'dursnd': 9.008253968253968,
+                                        'gain': [0.0, False, False, False, None, 1, None, None],
+                                        'loopIn': [0.0, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                        'loopMode': 1,
+                                        'loopOut': [9.008253968253968, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                        'loopX': [1.0, False, False, False, None, 1, None, None],
+                                        'mode': 0,
+                                        'nchnlssnd': 1,
+                                        'offsnd': 0.0,
+                                        'path': u'/home/olivier/Dropbox/private/snds/ruisseau.aif',
+                                        'srsnd': 44100.0,
+                                        'startFromLoop': 0,
+                                        'transp': [0.0, False, False, False, None, 1, None, None],
+                                        'type': 'csampler'}},
+                 'userSliders': {'drywet': [1.0, 0, None, 1, None, None],
+                                 'freq': [1000.0, 0, None, 1, None, None],
+                                 'q': [1.0000000000000002, 0, None, 1, None, None],
+                                 'type': [0.4529687464237213, 1, None, 1, None, None]},
+                 'userTogglePopups': {'balance': 0, 'poly': 0, 'polynum': 0}},
+ u'02-Flanging': {'active': False,
+                  'gainSlider': 0.0,
+                  'nchnls': 2,
+                  'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                  'totalTime': 30.00000000000007,
+                  'userGraph': {'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'freq': {'curved': False,
+                                         'data': [[0.0, 0.6476985331310066],
+                                                  [0.005025125628140704, 0.7101767737235837],
+                                                  [0.010050251256281407, 0.7686899334167162],
+                                                  [0.01507537688442211, 0.8195245687833026],
+                                                  [0.020100502512562814, 0.8594545415740812],
+                                                  [0.02512562814070352, 0.8859457603849662],
+                                                  [0.03015075376884422, 0.8973170026861013],
+                                                  [0.035175879396984924, 0.8928466109016076],
+                                                  [0.04020100502512563, 0.8728182912451946],
+                                                  [0.04522613065326633, 0.8385031087622988],
+                                                  [0.05025125628140704, 0.7920788212344037],
+                                                  [0.05527638190954774, 0.7364916712893637],
+                                                  [0.06030150753768844, 0.6752694078588252],
+                                                  [0.06532663316582915, 0.6122974032747686],
+                                                  [0.07035175879396985, 0.5515720743730038],
+                                                  [0.07537688442211056, 0.496947256336103],
+                                                  [0.08040201005025126, 0.451889625251284],
+                                                  [0.08542713567839195, 0.41925869109664754],
+                                                  [0.09045226130653267, 0.40112532354650593],
+                                                  [0.09547738693467336, 0.398640327563255],
+                                                  [0.10050251256281408, 0.4119614094141473],
+                                                  [0.10552763819095477, 0.4402431680970751],
+                                                  [0.11055276381909548, 0.48169074735339884],
+                                                  [0.11557788944723618, 0.5336737433292525],
+                                                  [0.12060301507537688, 0.5928931389190837],
+                                                  [0.12562814070351758, 0.655590670572209],
+                                                  [0.1306532663316583, 0.7177873404352603],
+                                                  [0.135678391959799, 0.7755359370415881],
+                                                  [0.1407035175879397, 0.8251715387288397],
+                                                  [0.1457286432160804, 0.8635441019888123],
+                                                  [0.15075376884422112, 0.8882183739046222],
+                                                  [0.15577889447236182, 0.8976284415543762],
+                                                  [0.16080402010050251, 0.891177110152391],
+                                                  [0.1658291457286432, 0.8692738030543089],
+                                                  [0.1708542713567839, 0.8333085783633276],
+                                                  [0.17587939698492464, 0.7855639111317835],
+                                                  [0.18090452261306533, 0.7290698397585594],
+                                                  [0.18592964824120603, 0.6674116694828757],
+                                                  [0.19095477386934673, 0.6045024367624819],
+                                                  [0.19597989949748745, 0.544334574717973],
+                                                  [0.20100502512562815, 0.49072653979579206],
+                                                  [0.20603015075376885, 0.4470804795806121],
+                                                  [0.21105527638190955, 0.41616632097904643],
+                                                  [0.21608040201005024, 0.39994598127030856],
+                                                  [0.22110552763819097, 0.3994488581863392],
+                                                  [0.22613065326633167, 0.41470650084289784],
+                                                  [0.23115577889447236, 0.4447506075257513],
+                                                  [0.23618090452261306, 0.4876744773992296],
+                                                  [0.24120603015075376, 0.5407540162034542],
+                                                  [0.24623115577889448, 0.6006206165085773],
+                                                  [0.25125628140703515, 0.6634749409591746],
+                                                  [0.2562814070351759, 0.7253280410995487],
+                                                  [0.2613065326633166, 0.7822545095620789],
+                                                  [0.2663316582914573, 0.8306415997227754],
+                                                  [0.271356783919598, 0.8674185028463716],
+                                                  [0.27638190954773867, 0.8902512320162531],
+                                                  [0.2814070351758794, 0.8976907448545458],
+                                                  [0.2864321608040201, 0.889264904662512],
+                                                  [0.2914572864321608, 0.8655084438156216],
+                                                  [0.2964824120603015, 0.8279290278346858],
+                                                  [0.30150753768844224, 0.7789115738221235],
+                                                  [0.3065326633165829, 0.7215668955396741],
+                                                  [0.31155778894472363, 0.6595342806238957],
+                                                  [0.3165829145728643, 0.5967505290584688],
+                                                  [0.32160804020100503, 0.5372001105046119],
+                                                  [0.3266331658291458, 0.48466229635221003],
+                                                  [0.3316582914572864, 0.4424713143486912],
+                                                  [0.33668341708542715, 0.41330474720580024],
+                                                  [0.3417085427135678, 0.39901360412584247],
+                                                  [0.34673366834170855, 0.40050484948425596],
+                                                  [0.35175879396984927, 0.4176838437964629],
+                                                  [0.35678391959798994, 0.44946034986031175],
+                                                  [0.36180904522613067, 0.49381772290396214],
+                                                  [0.36683417085427134, 0.5479408936979209],
+                                                  [0.37185929648241206, 0.608395022389194],
+                                                  [0.37688442211055284, 0.6713434850797176],
+                                                  [0.38190954773869346, 0.7327913589820345],
+                                                  [0.3869346733668342, 0.7888389537589857],
+                                                  [0.3919597989949749, 0.8359292990893509],
+                                                  [0.3969849246231156, 0.8710738820597251],
+                                                  [0.4020100502512563, 0.8920423083226834],
+                                                  [0.40703517587939697, 0.8975038504813256],
+                                                  [0.4120603015075377, 0.8871119005599891],
+                                                  [0.4170854271356784, 0.8615259669211094],
+                                                  [0.4221105527638191, 0.8223698196293331],
+                                                  [0.42713567839195987, 0.7721284404999275],
+                                                  [0.4321608040201005, 0.7139903177306764],
+                                                  [0.4371859296482412, 0.6516450936344163],
+                                                  [0.44221105527638194, 0.5890494074329141],
+                                                  [0.4472361809045226, 0.5301757935220065],
+                                                  [0.45226130653266333, 0.4787605709751044],
+                                                  [0.457286432160804, 0.43806672407166247],
+                                                  [0.4623115577889447, 0.41067682225587926],
+                                                  [0.46733668341708545, 0.39832912152692185],
+                                                  [0.4723618090452261, 0.40180724882191404],
+                                                  [0.47738693467336685, 0.4208904703946363],
+                                                  [0.4824120603015075, 0.4543677003271716],
+                                                  [0.48743718592964824, 0.5001143601468742],
+                                                  [0.49246231155778897, 0.5552272117768703],
+                                                  [0.49748743718592964, 0.6162086068640765],
+                                                  [0.5025125628140703, 0.6791884593979352],
+                                                  [0.507537688442211, 0.7401698544851424],
+                                                  [0.5125628140703518, 0.7952827061151385],
+                                                  [0.5175879396984925, 0.8410293659348412],
+                                                  [0.5226130653266332, 0.874506595867377],
+                                                  [0.5276381909547738, 0.893589817440099],
+                                                  [0.5326633165829145, 0.8970679447350913],
+                                                  [0.5376884422110553, 0.884720244006134],
+                                                  [0.542713567839196, 0.857330342190351],
+                                                  [0.5477386934673367, 0.8166364952869084],
+                                                  [0.5527638190954773, 0.7652212727400071],
+                                                  [0.5577889447236181, 0.7063476588290997],
+                                                  [0.5628140703517588, 0.6437519726275974],
+                                                  [0.5678391959798995, 0.5814067485313372],
+                                                  [0.5728643216080402, 0.5232686257620854],
+                                                  [0.577889447236181, 0.47302724663267987],
+                                                  [0.5829145728643216, 0.433871099340904],
+                                                  [0.5879396984924623, 0.4082851657020243],
+                                                  [0.592964824120603, 0.39789321578068776],
+                                                  [0.5979899497487438, 0.40335475793932996],
+                                                  [0.6030150753768845, 0.42432318420228826],
+                                                  [0.6080402010050251, 0.45946776717266186],
+                                                  [0.6130653266331658, 0.5065581125030272],
+                                                  [0.6180904522613065, 0.5626057072799782],
+                                                  [0.6231155778894473, 0.6240535811822959],
+                                                  [0.628140703517588, 0.6870020438728196],
+                                                  [0.6331658291457286, 0.7474561725640911],
+                                                  [0.6381909547738693, 0.8015793433580507],
+                                                  [0.6432160804020101, 0.8459367164017011],
+                                                  [0.6482412060301508, 0.8777132224655504],
+                                                  [0.6532663316582916, 0.8948922167777571],
+                                                  [0.6582914572864321, 0.8963834621361709],
+                                                  [0.6633165829145728, 0.8820923190562131],
+                                                  [0.6683417085427136, 0.8529257519133222],
+                                                  [0.6733668341708543, 0.8107347699098028],
+                                                  [0.678391959798995, 0.7581969557574019],
+                                                  [0.6834170854271356, 0.6986465372035461],
+                                                  [0.6884422110552764, 0.6358627856381178],
+                                                  [0.6934673366834171, 0.5738301707223391],
+                                                  [0.6984924623115578, 0.516485492439889],
+                                                  [0.7035175879396985, 0.46746803842732776],
+                                                  [0.7085427135678392, 0.4298886224463924],
+                                                  [0.7135678391959799, 0.40613216159950133],
+                                                  [0.7185929648241206, 0.3977063214074675],
+                                                  [0.7236180904522613, 0.4051458342457601],
+                                                  [0.7286432160804021, 0.4279785634156414],
+                                                  [0.7336683417085427, 0.4647554665392364],
+                                                  [0.7386934673366834, 0.513142556699934],
+                                                  [0.7437185929648241, 0.5700690251624644],
+                                                  [0.7487437185929647, 0.631922125302839],
+                                                  [0.7537688442211057, 0.6947764497534358],
+                                                  [0.7587939698492463, 0.7546430500585594],
+                                                  [0.7638190954773869, 0.8077225888627829],
+                                                  [0.7688442211055276, 0.8506464587362618],
+                                                  [0.7738693467336684, 0.880690565419115],
+                                                  [0.7788944723618091, 0.8959482080756739],
+                                                  [0.7839195979899498, 0.8954510849917047],
+                                                  [0.7889447236180904, 0.8792307452829671],
+                                                  [0.7939698492462312, 0.848316586681401],
+                                                  [0.7989949748743719, 0.8046705264662218],
+                                                  [0.8040201005025126, 0.7510624915440403],
+                                                  [0.8090452261306533, 0.690894629499531],
+                                                  [0.8140703517587939, 0.6279853967791379],
+                                                  [0.8190954773869347, 0.5663272265034535],
+                                                  [0.8241206030150754, 0.5098331551302305],
+                                                  [0.8291457286432161, 0.4620884878986859],
+                                                  [0.8341708542713568, 0.42612326320770416],
+                                                  [0.8391959798994975, 0.4042199561096222],
+                                                  [0.8442211055276382, 0.3977686247076371],
+                                                  [0.8492462311557788, 0.40717869235739057],
+                                                  [0.8542713567839197, 0.43185296427320075],
+                                                  [0.8592964824120604, 0.47022552753317387],
+                                                  [0.864321608040201, 0.5198611292204246],
+                                                  [0.8693467336683417, 0.5776097258267533],
+                                                  [0.8743718592964824, 0.6398063956898034],
+                                                  [0.8793969849246231, 0.7025039273429293],
+                                                  [0.8844221105527639, 0.7617233229327612],
+                                                  [0.8894472361809045, 0.8137063189086141],
+                                                  [0.8944723618090452, 0.8551538981649373],
+                                                  [0.8994974874371859, 0.8834356568478655],
+                                                  [0.9045226130653267, 0.8967567386987582],
+                                                  [0.9095477386934674, 0.8942717427155071],
+                                                  [0.914572864321608, 0.8761383751653659],
+                                                  [0.9195979899497487, 0.8435074410107299],
+                                                  [0.9246231155778895, 0.7984498099259109],
+                                                  [0.9296482412060302, 0.7438249918890092],
+                                                  [0.9346733668341709, 0.6830996629872437],
+                                                  [0.9396984924623115, 0.6201276584031881],
+                                                  [0.9447236180904522, 0.5589053949726507],
+                                                  [0.9497487437185929, 0.5033182450276099],
+                                                  [0.9547738693467337, 0.45689395749971434],
+                                                  [0.9597989949748744, 0.42257877501681823],
+                                                  [0.964824120603015, 0.40255045536040557],
+                                                  [0.9698492462311558, 0.3980800635759118],
+                                                  [0.9748743718592965, 0.4094513058770466],
+                                                  [0.9798994974874372, 0.4359425246879319],
+                                                  [0.9849246231155779, 0.4758724974787112],
+                                                  [0.9899497487437187, 0.5267071328452968],
+                                                  [0.9949748743718593, 0.5852202925384283],
+                                                  [1.0, 0.647698533131006]]},
+                                'q': {'curved': False, 'data': [[0.0, 0.17718382013555797], [1.0, 0.17718382013555797]]},
+                                'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                                'type': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]}},
+                  'userInputs': {'snd': {'dursnd': 9.008253968253968,
+                                         'gain': [0.0, False, False, False, None, 1, None, None],
+                                         'loopIn': [0.0, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                         'loopMode': 1,
+                                         'loopOut': [9.008253968253968, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                         'loopX': [1.0, False, False, False, None, 1, None, None],
+                                         'mode': 0,
+                                         'nchnlssnd': 1,
+                                         'offsnd': 0.0,
+                                         'path': u'/home/olivier/Dropbox/private/snds/ruisseau.aif',
+                                         'srsnd': 44100.0,
+                                         'startFromLoop': 0,
+                                         'transp': [0.0, False, False, False, None, 1, None, None],
+                                         'type': 'csampler'}},
+                  'userSliders': {'drywet': [0.6, 0, None, 1, None, None],
+                                  'freq': [6427.879394531252, 1, None, 1, None, None],
+                                  'q': [1.2500000000000002, 0, None, 1, None, None],
+                                  'type': [0.5, 0, None, 1, None, None]},
+                  'userTogglePopups': {'balance': 0, 'poly': 0, 'polynum': 0}},
+ u'03-Anything': {'gainSlider': 0.0,
+                  'nchnls': 2,
+                  'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                  'totalTime': 30.00000000000007,
+                  'userGraph': {'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'freq': {'curved': False,
+                                         'data': [[0.0, 0.4115489143351125],
+                                                  [0.020408163265306117, 0.7605647575685053],
+                                                  [0.040816326530612235, 0.6889259685711857],
+                                                  [0.061224489795918366, 0.7915607052865455],
+                                                  [0.081632653061224469, 0.5845496862220871],
+                                                  [0.1020408163265306, 0.7619276440485372],
+                                                  [0.12244897959183673, 0.5769368004762928],
+                                                  [0.14285714285714285, 0.5846341553670072],
+                                                  [0.16326530612244894, 0.6606928836743483],
+                                                  [0.18367346938775508, 0.5717776493131596],
+                                                  [0.2040816326530612, 0.4238522277938719],
+                                                  [0.22448979591836732, 0.36535167425723764],
+                                                  [0.24489795918367346, 0.696961130401832],
+                                                  [0.26530612244897955, 0.7629494625806915],
+                                                  [0.2857142857142857, 0.697961212049674],
+                                                  [0.30612244897959179, 0.4191715319919538],
+                                                  [0.32653061224489788, 0.5570278058897457],
+                                                  [0.34693877551020408, 0.6942879533801997],
+                                                  [0.36734693877551017, 0.650471712178014],
+                                                  [0.38775510204081631, 0.40628592238783173],
+                                                  [0.4081632653061224, 0.30414313972026885],
+                                                  [0.42857142857142855, 0.4011921013113036],
+                                                  [0.44897959183673464, 0.7788759215693549],
+                                                  [0.46938775510204078, 0.8392705400171416],
+                                                  [0.48979591836734693, 0.8135838097284359],
+                                                  [0.51020408163265307, 0.4263088747095613],
+                                                  [0.53061224489795911, 0.4991323945962731],
+                                                  [0.55102040816326536, 0.7412242915210837],
+                                                  [0.5714285714285714, 0.42037123347607724],
+                                                  [0.59183673469387754, 0.6866063752755244],
+                                                  [0.61224489795918358, 0.4282281633243274],
+                                                  [0.63265306122448972, 0.38573064176553645],
+                                                  [0.65306122448979576, 0.46372821559889177],
+                                                  [0.67346938775510201, 0.35445994771214223],
+                                                  [0.69387755102040816, 0.5957115767089123],
+                                                  [0.71428571428571419, 0.5801968975745072],
+                                                  [0.73469387755102034, 0.5303994789152023],
+                                                  [0.75510204081632637, 0.5840308666636685],
+                                                  [0.77551020408163263, 0.44215668624327004],
+                                                  [0.79591836734693866, 0.5644236918303909],
+                                                  [0.81632653061224481, 0.4386017423017614],
+                                                  [0.83673469387755095, 0.36198408726328113],
+                                                  [0.8571428571428571, 0.3460047226757688],
+                                                  [0.87755102040816324, 0.7971377597502567],
+                                                  [0.89795918367346927, 0.544102343804581],
+                                                  [0.91836734693877542, 0.728748884352942],
+                                                  [0.93877551020408156, 0.6120682179721403],
+                                                  [0.95918367346938771, 0.3767214567413449],
+                                                  [0.97959183673469385, 0.5228210585708298],
+                                                  [0.99999999999999989, 0.5260784794917616]]},
+                                'q': {'curved': False,
+                                      'data': [[1.1842378929334976e-16, 0.20386110070143737],
+                                               [0.020408163265306263, 0.336502044117501],
+                                               [0.04081632653061236, 0.6114993287088247],
+                                               [0.0612244897959185, 0.5077550785328978],
+                                               [0.0816326530612246, 0.36599712936510403],
+                                               [0.10204081632653074, 0.49157045850965414],
+                                               [0.12244897959183687, 0.24967018813294753],
+                                               [0.14285714285714296, 0.2605882045130457],
+                                               [0.16326530612244908, 0.18369570284692435],
+                                               [0.18367346938775522, 0.4066857668031546],
+                                               [0.20408163265306134, 0.28345773997454626],
+                                               [0.22448979591836743, 0.5322212614853846],
+                                               [0.24489795918367357, 0.20157492717189848],
+                                               [0.26530612244897966, 0.41496166092740183],
+                                               [0.2857142857142858, 0.38326810383172216],
+                                               [0.3061224489795919, 0.5981583115520414],
+                                               [0.32653061224489804, 0.2572865786485185],
+                                               [0.3469387755102042, 0.2460992990268889],
+                                               [0.3673469387755103, 0.5051994999201481],
+                                               [0.3877551020408164, 0.5864583000493834],
+                                               [0.4081632653061225, 0.4407554192185912],
+                                               [0.42857142857142866, 0.4428039057961905],
+                                               [0.44897959183673475, 0.5808669488747741],
+                                               [0.46938775510204095, 0.33052140154811743],
+                                               [0.48979591836734704, 0.3983549161756016],
+                                               [0.5102040816326532, 0.4665394461132749],
+                                               [0.5306122448979592, 0.4532680317414173],
+                                               [0.5510204081632655, 0.3946499002284388],
+                                               [0.5714285714285715, 0.28585647383825635],
+                                               [0.5918367346938777, 0.21233114965670108],
+                                               [0.6122448979591837, 0.26631081268901413],
+                                               [0.6326530612244898, 0.5452534398447544],
+                                               [0.653061224489796, 0.2167468227604788],
+                                               [0.6734693877551021, 0.20360109346198896],
+                                               [0.6938775510204083, 0.28656712541346924],
+                                               [0.7142857142857143, 0.27596888404634906],
+                                               [0.7346938775510204, 0.4871443672569167],
+                                               [0.7551020408163266, 0.3307992462316261],
+                                               [0.7755102040816327, 0.3998125762482155],
+                                               [0.7959183673469388, 0.55449149610641],
+                                               [0.8163265306122449, 0.25072276177051944],
+                                               [0.8367346938775511, 0.5896198729618162],
+                                               [0.8571428571428572, 0.32281898522644],
+                                               [0.8775510204081634, 0.270273328511564],
+                                               [0.8979591836734694, 0.3305552524393651],
+                                               [0.9183673469387755, 0.21058870966333534],
+                                               [0.9387755102040817, 0.3178588814551555],
+                                               [0.9591836734693878, 0.24379395628022574],
+                                               [0.979591836734694, 0.4792455689020423],
+                                               [1.0, 0.32515290286527543]]},
+                                'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                                'type': {'curved': False,
+                                         'data': [[0.0, 0.10523207284743225],
+                                                  [0.020408163265306145, 0.8973808986090466],
+                                                  [0.040816326530612235, 0.8158537463385613],
+                                                  [0.06122448979591838, 0.6880553628505317],
+                                                  [0.08163265306122447, 0.21607875561569823],
+                                                  [0.10204081632653061, 0.261084828032176],
+                                                  [0.12244897959183676, 0.9980516397173417],
+                                                  [0.14285714285714285, 0.7239276759937184],
+                                                  [0.16326530612244894, 1.0],
+                                                  [0.18367346938775508, 0.8654777905133189],
+                                                  [0.20408163265306123, 0.0],
+                                                  [0.22448979591836732, 0.0],
+                                                  [0.24489795918367346, 0.0],
+                                                  [0.26530612244897955, 0.5420687623781741],
+                                                  [0.2857142857142857, 0.4862239715884391],
+                                                  [0.3061224489795918, 0.6580864239574264],
+                                                  [0.3265306122448979, 0.7797812009645887],
+                                                  [0.3469387755102041, 1.0],
+                                                  [0.36734693877551017, 0.4500785796094422],
+                                                  [0.3877551020408163, 0.0],
+                                                  [0.4081632653061224, 0.4210218359224264],
+                                                  [0.42857142857142855, 0.7564324180780879],
+                                                  [0.45160278347399968, 1],
+                                                  [0.4693877551020408, 0.0],
+                                                  [0.4897959183673469, 0.283441089956378],
+                                                  [0.5102040816326531, 0.0],
+                                                  [0.5306122448979591, 0.0],
+                                                  [0.5510204081632654, 0.7230471370562914],
+                                                  [0.5714285714285714, 0.0],
+                                                  [0.5918367346938775, 0.6795677211002928],
+                                                  [0.6122448979591836, 0.0],
+                                                  [0.6326530612244897, 0.2150792295108765],
+                                                  [0.6530612244897958, 0.3364064719134949],
+                                                  [0.673469387755102, 0.48647671244831325],
+                                                  [0.6938775510204082, 1.0],
+                                                  [0.7142857142857142, 0.0],
+                                                  [0.7346938775510203, 0.0],
+                                                  [0.7551020408163264, 0.298464281819898],
+                                                  [0.7755102040816326, 0.0],
+                                                  [0.7959183673469387, 1.0],
+                                                  [0.8163265306122448, 0.16779684486341417],
+                                                  [0.836734693877551, 0.7433181777313964],
+                                                  [0.8571428571428571, 0.07613459255473481],
+                                                  [0.8775510204081632, 0.6324323489844248],
+                                                  [0.8979591836734693, 0.0],
+                                                  [0.9183673469387754, 0.3985450960051918],
+                                                  [0.9387755102040816, 1.0],
+                                                  [0.9591836734693877, 0.0],
+                                                  [0.9795918367346939, 0.41753273292137166],
+                                                  [0.9999999999999999, 0.894038612994041]]}},
+                  'userInputs': {'snd': {'dursnd': 9.008253968253968,
+                                         'gain': [0.0, False, False, False, None, 1, None, None],
+                                         'loopIn': [0.0, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                         'loopMode': 1,
+                                         'loopOut': [9.008253968253968, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                         'loopX': [1.0, False, False, False, None, 1, None, None],
+                                         'mode': 0,
+                                         'nchnlssnd': 1,
+                                         'offsnd': 0.0,
+                                         'path': u'/home/olivier/Dropbox/private/snds/ruisseau.aif',
+                                         'srsnd': 44100.0,
+                                         'startFromLoop': 0,
+                                         'transp': [0.0, False, False, False, None, 1, None, None],
+                                         'type': 'csampler'}},
+                  'userSliders': {'drywet': [1.0, 0, None, 1, None, None],
+                                  'freq': [2950.225585937499, 1, None, 1, None, None],
+                                  'q': [1.7635363340377808, 1, None, 1, None, None],
+                                  'type': [0.8119891881942749, 1, None, 1, None, None]},
+                  'userTogglePopups': {'balance': 0, 'poly': 0, 'polynum': 0}}}
\ No newline at end of file
diff --git a/Resources/modules/Filters/Vocoder.c5 b/Resources/modules/Filters/Vocoder.c5
index 9293347..0064b41 100644
--- a/Resources/modules/Filters/Vocoder.c5
+++ b/Resources/modules/Filters/Vocoder.c5
@@ -1,7 +1,55 @@
 class Module(BaseModule):
     """
-    Module's documentation
+    "Time domain vocoder effect"
     
+    Description
+
+    Applies the spectral envelope of a first sound to the spectrum of a second sound.
+
+    The vocoder is an analysis/synthesis system, historically used to reproduce
+    human speech. In the encoder, the first input (spectral envelope) is passed
+    through a multiband filter, each band is passed through an envelope follower,
+    and the control signals from the envelope followers are communicated to the
+    decoder. The decoder applies these (amplitude) control signals to corresponding
+    filters modifying the second source (exciter).
+
+    Sliders
+
+        # Base Frequency :
+            Center frequency of the first band. This is the base 
+            frequency used tocompute the upper bands.
+        # Frequency Spread :
+            Spreading factor for upper band frequencies. Each band is 
+            `freq * pow(order, spread)`, where order is the harmonic rank of the band.
+        # Q Factor :
+            Q of the filters as `center frequency / bandwidth`. Higher values 
+            imply more resonance around the center frequency.
+        # Time Response :
+            Time response of the envelope follower. Lower values mean smoother changes,
+            while higher values mean a better time accuracy.
+        # Gain :
+            Output gain of the process in dB.
+        # Num of Bands : 
+            The number of bands in the filter bank. Defines the number of notches in
+            the spectrum.
+
+    Graph Only
+    
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+
+    Popups & Toggles
+    
+        # Balance :
+            Compression mode. Off, balanced with a fixed signal
+            or balanced with the input source.
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+
     """
     def __init__(self):
         BaseModule.__init__(self)
@@ -37,13 +85,365 @@ class Module(BaseModule):
 Interface = [
     csampler(name="spec", label="Spectral Envelope"),
     csampler(name="exci", label="Exciter"),
-    cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
-    cslider(name="freq", label="Base Frequency", min=10, max=1000, init=80, rel="log", unit="Hz", col="green"),
-    cslider(name="spread", label="Frequency Spread", min=0.25, max=2, init=1.25, rel="log", unit="x", col="forestgreen"),
-    cslider(name="q", label="Q Factor", min=0.5, max=200, init=20, rel="log", unit="Q", col="orange"),
-    cslider(name="slope", label="Time Response", min=0, max=1, init=0.5, rel="lin", unit="x", col="red"),
-    cslider(name="gain", label="Gain", min=-90, max=18, init=0, rel="lin", unit="dB", col="blue"),
+    cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
+    cslider(name="freq", label="Base Frequency", min=10, max=1000, init=80, rel="log", unit="Hz", col="green1"),
+    cslider(name="spread", label="Frequency Spread", min=0.25, max=2, init=1.25, rel="log", unit="x", col="green2"),
+    cslider(name="q", label="Q Factor", min=0.5, max=200, init=20, rel="log", unit="Q", col="green3"),
+    cslider(name="slope", label="Time Response", min=0, max=1, init=0.5, rel="lin", unit="x", col="orange1"),
+    cslider(name="gain", label="Gain", min=-90, max=18, init=0, rel="lin", unit="dB", col="purple1"),
     cslider(name="stages", label="Num of bands", min=4, max=64, init=20, rel="lin", res="int", unit="x", up=True),
-    cpopup(name="balance", label = "Balance", init= "Off", col="blue", value=["Off","Compress", "Spectral", "Exciter"]),
+    cpopup(name="balance", label = "Balance", init= "Off", col="blue1", value=["Off","Compress", "Spectral", "Exciter"]),
     cpoly()
 ]
+
+
+####################################
+##### Cecilia reserved section #####
+#### Presets saved from the app ####
+####################################
+
+
+CECILIA_PRESETS = {u'01-Strange Reverb': {'active': False,
+                        'gainSlider': 0.0,
+                        'nchnls': 2,
+                        'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                    1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                    2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                    3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                        'totalTime': 30.00000000000007,
+                        'userGraph': {'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                      'exciend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                      'excigain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                      'excistart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                      'excitrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                      'excixfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                                      'freq': {'curved': False, 'data': [[0.0, 0.45154499349597177], [1.0, 0.45154499349597177]]},
+                                      'gain': {'curved': False, 'data': [[0.0, 0.8333333333333334], [1.0, 0.8333333333333334]]},
+                                      'q': {'curved': False, 'data': [[0.0, 0.6156891065798795], [1.0, 0.6156891065798795]]},
+                                      'slope': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                      'specend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                      'specgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                      'specstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                      'spectrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                      'specxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                                      'spread': {'curved': False, 'data': [[0.0, 0.7739760316291209], [1.0, 0.7739760316291209]]}},
+                        'userInputs': {'exci': {'durexci': 9.008253968253968,
+                                                'gain': [0.0, False, False, False, None, 1, None, None],
+                                                'loopIn': [0.0, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                                'loopMode': 1,
+                                                'loopOut': [9.008253968253968, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                                'loopX': [1.0, False, False, False, None, 1, None, None],
+                                                'mode': 0,
+                                                'nchnlsexci': 1,
+                                                'offexci': 0.0,
+                                                'path': u'/home/olivier/Dropbox/private/snds/ruisseau.aif',
+                                                'srexci': 44100.0,
+                                                'startFromLoop': 0,
+                                                'transp': [0.0, False, False, False, None, 1, None, None],
+                                                'type': 'csampler'},
+                                       'spec': {'durspec': 5.768526077097506,
+                                                'gain': [0.0, False, False, False, None, 1, None, None],
+                                                'loopIn': [0.0, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                                'loopMode': 1,
+                                                'loopOut': [5.768526077097506, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                                'loopX': [1.0, False, False, False, None, 1, None, None],
+                                                'mode': 0,
+                                                'nchnlsspec': 1,
+                                                'offspec': 0.0,
+                                                'path': u'/home/olivier/Dropbox/private/snds/baseballmajeur_m.aif',
+                                                'srspec': 44100.0,
+                                                'startFromLoop': 0,
+                                                'transp': [0.0, False, False, False, None, 1, None, None],
+                                                'type': 'csampler'}},
+                        'userSliders': {'freq': [79.99999999999999, 0, None, 1, None, None],
+                                        'gain': [0.0, 0, None, 1, None, None],
+                                        'q': [19.999999999999993, 0, None, 1, None, None],
+                                        'slope': [0.01, 0, None, 1, None, None],
+                                        'spread': [1.3300000000000003, 0, None, 1, None, None],
+                                        'stages': [24, 0, None, 1, None, None]},
+                        'userTogglePopups': {'balance': 0, 'poly': 0, 'polynum': 0}},
+ u'02-Freezer': {'active': False,
+                 'gainSlider': 0.0,
+                 'nchnls': 2,
+                 'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                             1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                             2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                             3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                 'totalTime': 30.00000000000007,
+                 'userGraph': {'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                               'exciend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                               'excigain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                               'excistart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                               'excitrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                               'excixfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                               'freq': {'curved': False, 'data': [[0.0, 0.45154499349597177], [1.0, 0.45154499349597177]]},
+                               'gain': {'curved': False, 'data': [[0.0, 0.8333333333333334], [1.0, 0.8333333333333334]]},
+                               'q': {'curved': False, 'data': [[0.0, 0.6156891065798795], [1.0, 0.6156891065798795]]},
+                               'slope': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                               'specend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                               'specgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                               'specstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                               'spectrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                               'specxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                               'spread': {'curved': False, 'data': [[0.0, 0.7739760316291209], [1.0, 0.7739760316291209]]}},
+                 'userInputs': {'exci': {'durexci': 9.008253968253968,
+                                         'gain': [0.0, False, False, False, None, 1, None, None],
+                                         'loopIn': [0.0, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                         'loopMode': 1,
+                                         'loopOut': [9.008253968253968, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                         'loopX': [1.0, False, False, False, None, 1, None, None],
+                                         'mode': 0,
+                                         'nchnlsexci': 1,
+                                         'offexci': 0.0,
+                                         'path': u'/home/olivier/Dropbox/private/snds/ruisseau.aif',
+                                         'srexci': 44100.0,
+                                         'startFromLoop': 0,
+                                         'transp': [0.0, False, False, False, None, 1, None, None],
+                                         'type': 'csampler'},
+                                'spec': {'durspec': 5.768526077097506,
+                                         'gain': [0.0, False, False, False, None, 1, None, None],
+                                         'loopIn': [0.0, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                         'loopMode': 1,
+                                         'loopOut': [5.768526077097506, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                         'loopX': [1.0, False, False, False, None, 1, None, None],
+                                         'mode': 0,
+                                         'nchnlsspec': 1,
+                                         'offspec': 0.0,
+                                         'path': u'/home/olivier/Dropbox/private/snds/baseballmajeur_m.aif',
+                                         'srspec': 44100.0,
+                                         'startFromLoop': 0,
+                                         'transp': [0.0, False, False, False, None, 1, None, None],
+                                         'type': 'csampler'}},
+                 'userSliders': {'freq': [79.99999999999999, 0, None, 1, None, None],
+                                 'gain': [0.0, 0, None, 1, None, None],
+                                 'q': [100.0, 0, None, 1, None, None],
+                                 'slope': [0.005, 0, None, 1, None, None],
+                                 'spread': [1.5, 0, None, 1, None, None],
+                                 'stages': [32, 0, None, 1, None, None]},
+                 'userTogglePopups': {'balance': 0, 'poly': 0, 'polynum': 0}},
+ u'03-Robot in the Water': {'active': False,
+                            'gainSlider': 0.0,
+                            'nchnls': 2,
+                            'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                        1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                        2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                        3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                            'totalTime': 30.00000000000007,
+                            'userGraph': {'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                          'exciend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                          'excigain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                          'excistart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                          'excitrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                          'excixfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                                          'freq': {'curved': False, 'data': [[0.0, 0.45154499349597177], [1.0, 0.45154499349597177]]},
+                                          'gain': {'curved': False, 'data': [[0.0, 0.8333333333333334], [1.0, 0.8333333333333334]]},
+                                          'q': {'curved': False, 'data': [[0.0, 0.6156891065798795], [1.0, 0.6156891065798795]]},
+                                          'slope': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                          'specend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                          'specgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                          'specstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                          'spectrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                          'specxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                                          'spread': {'curved': False, 'data': [[0.0, 0.7739760316291209], [1.0, 0.7739760316291209]]}},
+                            'userInputs': {'exci': {'durexci': 9.008253968253968,
+                                                    'gain': [0.0, False, False, False, None, 1, None, None],
+                                                    'loopIn': [0.0, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                                    'loopMode': 1,
+                                                    'loopOut': [9.008253968253968, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                                    'loopX': [1.0, False, False, False, None, 1, None, None],
+                                                    'mode': 0,
+                                                    'nchnlsexci': 1,
+                                                    'offexci': 0.0,
+                                                    'path': u'/home/olivier/Dropbox/private/snds/ruisseau.aif',
+                                                    'srexci': 44100.0,
+                                                    'startFromLoop': 0,
+                                                    'transp': [0.0, False, False, False, None, 1, None, None],
+                                                    'type': 'csampler'},
+                                           'spec': {'durspec': 5.768526077097506,
+                                                    'gain': [0.0, False, False, False, None, 1, None, None],
+                                                    'loopIn': [0.0, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                                    'loopMode': 1,
+                                                    'loopOut': [5.768526077097506, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                                    'loopX': [1.0, False, False, False, None, 1, None, None],
+                                                    'mode': 0,
+                                                    'nchnlsspec': 1,
+                                                    'offspec': 0.0,
+                                                    'path': u'/home/olivier/Dropbox/private/snds/baseballmajeur_m.aif',
+                                                    'srspec': 44100.0,
+                                                    'startFromLoop': 0,
+                                                    'transp': [0.0, False, False, False, None, 1, None, None],
+                                                    'type': 'csampler'}},
+                            'userSliders': {'freq': [24.999999999999993, 0, None, 1, None, None],
+                                            'gain': [-3.0, 0, None, 1, None, None],
+                                            'q': [150.00000000000003, 0, None, 1, None, None],
+                                            'slope': [0.25, 0, None, 1, None, None],
+                                            'spread': [1.0999999999999999, 0, None, 1, None, None],
+                                            'stages': [24, 0, None, 1, None, None]},
+                            'userTogglePopups': {'balance': 0, 'poly': 0, 'polynum': 0}},
+ u'04-Overture': {'active': False,
+                  'gainSlider': 0.0,
+                  'nchnls': 2,
+                  'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                  'totalTime': 30.00000000000007,
+                  'userGraph': {'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'exciend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'excigain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'excistart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                'excitrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                'excixfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                                'freq': {'curved': False, 'data': [[0.0, 0.45154499349597177], [1.0, 0.45154499349597177]]},
+                                'gain': {'curved': False, 'data': [[0.0, 0.8333333333333334], [1.0, 0.8333333333333334]]},
+                                'q': {'curved': False, 'data': [[0.0, 0.8857516820546848], [1.0, 0.37416973013899685]]},
+                                'slope': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                'specend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'specgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'specstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                'spectrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                'specxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                                'spread': {'curved': False, 'data': [[0.0, 0.33045863125586367], [1.0, 1.0]]}},
+                  'userInputs': {'exci': {'durexci': 9.008253968253968,
+                                          'gain': [0.0, False, False, False, None, 1, None, None],
+                                          'loopIn': [0.0, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                          'loopMode': 1,
+                                          'loopOut': [9.008253968253968, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                          'loopX': [1.0, False, False, False, None, 1, None, None],
+                                          'mode': 0,
+                                          'nchnlsexci': 1,
+                                          'offexci': 0.0,
+                                          'path': u'/home/olivier/Dropbox/private/snds/ruisseau.aif',
+                                          'srexci': 44100.0,
+                                          'startFromLoop': 0,
+                                          'transp': [0.0, False, False, False, None, 1, None, None],
+                                          'type': 'csampler'},
+                                 'spec': {'durspec': 5.768526077097506,
+                                          'gain': [0.0, False, False, False, None, 1, None, None],
+                                          'loopIn': [0.0, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                          'loopMode': 1,
+                                          'loopOut': [5.768526077097506, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                          'loopX': [1.0, False, False, False, None, 1, None, None],
+                                          'mode': 0,
+                                          'nchnlsspec': 1,
+                                          'offspec': 0.0,
+                                          'path': u'/home/olivier/Dropbox/private/snds/baseballmajeur_m.aif',
+                                          'srspec': 44100.0,
+                                          'startFromLoop': 0,
+                                          'transp': [0.0, False, False, False, None, 1, None, None],
+                                          'type': 'csampler'}},
+                  'userSliders': {'freq': [40.000000000000014, 0, None, 1, None, None],
+                                  'gain': [0.0, 0, None, 1, None, None],
+                                  'q': [60.99889755249025, 1, None, 1, None, None],
+                                  'slope': [0.5, 0, None, 1, None, None],
+                                  'spread': [0.6245828866958618, 1, None, 1, None, None],
+                                  'stages': [32, 0, None, 1, None, None]},
+                  'userTogglePopups': {'balance': 0, 'poly': 0, 'polynum': 0}},
+ u'05-Flanging': {'gainSlider': 0.0,
+                  'nchnls': 2,
+                  'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                  'totalTime': 30.00000000000007,
+                  'userGraph': {'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'exciend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'excigain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'excistart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                'excitrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                'excixfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                                'freq': {'curved': False, 'data': [[0.0, 0.45154499349597177], [1.0, 0.45154499349597177]]},
+                                'gain': {'curved': False, 'data': [[0.0, 0.8333333333333334], [1.0, 0.8333333333333334]]},
+                                'q': {'curved': False, 'data': [[0.0, 0.6156891065798795], [1.0, 0.6156891065798795]]},
+                                'slope': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                'specend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'specgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'specstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                'spectrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                'specxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                                'spread': {'curved': False,
+                                           'data': [[0.0, 0.822757712152816],
+                                                    [0.020408163265306117, 0.8857375049233748],
+                                                    [0.040816326530612235, 0.9325086549984218],
+                                                    [0.061224489795918366, 0.9510340179753642],
+                                                    [0.08163265306122447, 0.9365458584252865],
+                                                    [0.1020408163265306, 0.8927728866397312],
+                                                    [0.12244897959183673, 0.8309806280861695],
+                                                    [0.14285714285714285, 0.767072098576231],
+                                                    [0.16326530612244894, 0.7174949628997306],
+                                                    [0.18367346938775508, 0.6950085211860739],
+                                                    [0.2040816326530612, 0.7053999423539952],
+                                                    [0.22448979591836732, 0.7459948633197186],
+                                                    [0.24489795918367346, 0.8063456700114888],
+                                                    [0.26530612244897955, 0.870920322404714],
+                                                    [0.2857142857142857, 0.9230997205979108],
+                                                    [0.3061224489795918, 0.9494548394359539],
+                                                    [0.3265306122448979, 0.943202857228721],
+                                                    [0.3469387755102041, 0.9059528003206606],
+                                                    [0.36734693877551017, 0.8472914399005858],
+                                                    [0.3877551020408163, 0.782316015721977],
+                                                    [0.4081632653061224, 0.7277487713517061],
+                                                    [0.42857142857142855, 0.6976332742257371],
+                                                    [0.44897959183673464, 0.699720126736346],
+                                                    [0.4693877551020408, 0.7334722511127962],
+                                                    [0.4897959183673469, 0.790203113148387],
+                                                    [0.5102040816326531, 0.8553123111572448],
+                                                    [0.5306122448979591, 0.9120431731928356],
+                                                    [0.5510204081632654, 0.9457952975692857],
+                                                    [0.5714285714285714, 0.9478821500798951],
+                                                    [0.5918367346938775, 0.9177666529539261],
+                                                    [0.6122448979591836, 0.8631994085836553],
+                                                    [0.6326530612244897, 0.7982239844050466],
+                                                    [0.6530612244897958, 0.7395626239849716],
+                                                    [0.673469387755102, 0.7023125670769109],
+                                                    [0.6938775510204082, 0.6960605848696779],
+                                                    [0.7142857142857142, 0.7224157037077208],
+                                                    [0.7346938775510203, 0.7745951019009173],
+                                                    [0.7551020408163264, 0.8391697542941429],
+                                                    [0.7755102040816326, 0.8995205609859132],
+                                                    [0.7959183673469387, 0.9401154819516365],
+                                                    [0.8163265306122448, 0.9505069031195579],
+                                                    [0.836734693877551, 0.9280204614059014],
+                                                    [0.8571428571428571, 0.8784433257294011],
+                                                    [0.8775510204081632, 0.8145347962194628],
+                                                    [0.8979591836734693, 0.752742537665901],
+                                                    [0.9183673469387754, 0.7089695658803454],
+                                                    [0.9387755102040816, 0.6944814063302677],
+                                                    [0.9591836734693877, 0.71300676930721],
+                                                    [0.9795918367346939, 0.7597779193822568],
+                                                    [0.9999999999999999, 0.8227577121528153]]}},
+                  'userInputs': {'exci': {'durexci': 9.008253968253968,
+                                          'gain': [0.0, False, False, False, None, 1, None, None],
+                                          'loopIn': [0.0, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                          'loopMode': 1,
+                                          'loopOut': [9.008253968253968, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                          'loopX': [1.0, False, False, False, None, 1, None, None],
+                                          'mode': 0,
+                                          'nchnlsexci': 1,
+                                          'offexci': 0.0,
+                                          'path': u'/home/olivier/Dropbox/private/snds/ruisseau.aif',
+                                          'srexci': 44100.0,
+                                          'startFromLoop': 0,
+                                          'transp': [0.0, False, False, False, None, 1, None, None],
+                                          'type': 'csampler'},
+                                 'spec': {'durspec': 5.768526077097506,
+                                          'gain': [0.0, False, False, False, None, 1, None, None],
+                                          'loopIn': [0.0, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                          'loopMode': 1,
+                                          'loopOut': [5.768526077097506, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                          'loopX': [1.0, False, False, False, None, 1, None, None],
+                                          'mode': 0,
+                                          'nchnlsspec': 1,
+                                          'offspec': 0.0,
+                                          'path': u'/home/olivier/Dropbox/private/snds/baseballmajeur_m.aif',
+                                          'srspec': 44100.0,
+                                          'startFromLoop': 0,
+                                          'transp': [0.0, False, False, False, None, 1, None, None],
+                                          'type': 'csampler'}},
+                  'userSliders': {'freq': [60.0, 0, None, 1, None, None],
+                                  'gain': [0.0, 0, None, 1, None, None],
+                                  'q': [10.0, 0, None, 1, None, None],
+                                  'slope': [0.01, 0, None, 1, None, None],
+                                  'spread': [1.5766321420669556, 1, None, 1, None, None],
+                                  'stages': [24, 0, None, 1, None, None]},
+                  'userTogglePopups': {'balance': 0, 'poly': 0, 'polynum': 0}}}
\ No newline at end of file
diff --git a/Resources/modules/Multiband/MultiBandBeatMaker.c5 b/Resources/modules/Multiband/MultiBandBeatMaker.c5
index e910b3d..85b22b5 100644
--- a/Resources/modules/Multiband/MultiBandBeatMaker.c5
+++ b/Resources/modules/Multiband/MultiBandBeatMaker.c5
@@ -1,35 +1,70 @@
 class Module(BaseModule):
     """
-    Multi-band algorithmic beatmaker module
+    "Multi-band algorithmic beatmaker"
     
-    Sliders under the graph:
+    Description
     
-        - Frequency Splitter : Split points for multi-band processing
-        - # of Taps : Number of taps in a measure
-        - Tempo : Speed of taps
-        - Tap Length : Length of taps
-        - Beat 1 Index : Soundfile index of the first beat
-        - Beat 2 Index : Soundfile index of the second beat
-        - Beat 3 Index : Soundfile index of the third beat
-        - Beat 1 Distribution : Repartition of taps for the first beat (100% weak --> 100% down)
-        - Beat 2 Distribution : Repartition of taps for the second beat (100% weak --> 100% down)
-        - Beat 3 Distribution : Repartition of taps for the third beat (100% weak --> 100% down)
-        - Beat 1 Gain : Gain of the first beat
-        - Beat 2 Gain : Gain of the second beat
-        - Beat 3 Gain : Gain of the third beat
-        - Global Seed : Seed value for the algorithmic beats, using the same seed with the same distributions will yield the exact same beats
-
-    Dropdown menus, toggles and sliders on the bottom left:
-
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+    MultiBandBeatMaker uses four algorithmic beat generators to play
+    spectral separated chunks of a sound. 
+    
+    Sliders
+    
+        # Frequency Splitter : 
+            Split points for multi-band processing
+        # Num of Taps : 
+            Number of taps in a measure
+        # Tempo : 
+            Speed of taps
+        # Tap Length : 
+            Length of taps
+        # Beat 1 Index : 
+            Soundfile index of the first beat
+        # Beat 2 Index : 
+            Soundfile index of the second beat
+        # Beat 3 Index : 
+            Soundfile index of the third beat
+        # Beat 4 Index : 
+            Soundfile index of the fourth beat
+        # Beat 1 Distribution : 
+            Repartition of taps for the first beat (100% weak --> 100% down)
+        # Beat 2 Distribution : 
+            Repartition of taps for the second beat (100% weak --> 100% down)
+        # Beat 3 Distribution : 
+            Repartition of taps for the third beat (100% weak --> 100% down)
+        # Beat 4 Distribution : 
+            Repartition of taps for the fourth beat (100% weak --> 100% down)
+        # Beat 1 Gain : 
+            Gain of the first beat
+        # Beat 2 Gain : 
+            Gain of the second beat
+        # Beat 3 Gain : 
+            Gain of the third beat
+        # Beat 4 Gain : 
+            Gain of the fourth beat
+        # Global Seed : 
+            Seed value for the algorithmic beats, using the same seed with 
+            the same distributions will yield the exact same beats
         
-    Graph only parameters :
+    Graph Only
     
-        - Beat 1 ADSR : Envelope of taps for the first beat in breakpoint fashion
-        - Beat 2 ADSR : Envelope of taps for the second beat in breakpoint fashion
-        - Beat 3 ADSR : Envelope of taps for the third beat in breakpoint fashion
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+        # Beat 1 ADSR : 
+            Envelope of taps for the first beat in breakpoint fashion
+        # Beat 2 ADSR : 
+            Envelope of taps for the second beat in breakpoint fashion
+        # Beat 3 ADSR : 
+            Envelope of taps for the third beat in breakpoint fashion
+        # Beat 4 ADSR : 
+            Envelope of taps for the fourth beat in breakpoint fashion
+
+    Popups & Toggles
+
+        # Polyphony per Voice :
+            The number of streams used for each voice's polpyhony. High values
+            allow more overlaps but are more CPU expensive, only available at 
+            initialization time.
+
     """
     def __init__(self):
         BaseModule.__init__(self)
@@ -37,10 +72,11 @@ class Module(BaseModule):
         self.last_we1 = self.last_we2 = self.last_we3 = self.last_we4 = self.last_taps = -1
         self.rtempo = 1/(self.tempo/15)
         self.setGlobalSeed(int(self.seed.get()))
-        self.beat1 = Beat(time=self.rtempo, taps=int(self.taps.get()), w1=80, w2=40, w3=20, poly=8).play()
-        self.beat2 = Beat(time=self.rtempo, taps=int(self.taps.get()), w1=50, w2=100, w3=50, poly=8).play()
-        self.beat3 = Beat(time=self.rtempo, taps=int(self.taps.get()), w1=30, w2=60, w3=70, poly=8).play()
-        self.beat4 = Beat(time=self.rtempo, taps=int(self.taps.get()), w1=15, w2=30, w3=90, poly=8).play()
+        POLY = self.poly_index + 1
+        self.beat1 = Beat(time=self.rtempo, taps=int(self.taps.get()), w1=80, w2=40, w3=20, poly=POLY).play()
+        self.beat2 = Beat(time=self.rtempo, taps=int(self.taps.get()), w1=50, w2=100, w3=50, poly=POLY).play()
+        self.beat3 = Beat(time=self.rtempo, taps=int(self.taps.get()), w1=30, w2=60, w3=70, poly=POLY).play()
+        self.beat4 = Beat(time=self.rtempo, taps=int(self.taps.get()), w1=15, w2=30, w3=90, poly=POLY).play()
         self.tre1 = TrigEnv(input=self.beat1, table=self.adsr1, dur=self.tapsl, mul=self.beat1['amp'])
         self.tre2 = TrigEnv(input=self.beat2, table=self.adsr2, dur=self.tapsl, mul=self.beat2['amp'])
         self.tre3 = TrigEnv(input=self.beat3, table=self.adsr3, dur=self.tapsl, mul=self.beat3['amp'])
@@ -57,16 +93,11 @@ class Module(BaseModule):
         self.again2 = DBToA(self.gain2)
         self.again3 = DBToA(self.gain3)
         self.again4 = DBToA(self.gain4)
-        self.pointer1 = Biquad(Pointer(table=self.snd, index=self.linseg1, mul=self.tre1*self.again1), freq=self.splitter[0], q=0.707, type=0)
-        self.pointer2 = Biquad(Pointer(table=self.snd, index=self.linseg2, mul=self.tre2*self.again2), freq=self.splitter[1], q=0.707, type=2)
-        self.pointer3 = Biquad(Pointer(table=self.snd, index=self.linseg3, mul=self.tre3*self.again3), freq=self.splitter[2], q=0.707, type=1)
-        self.pointer4 = Biquad(Pointer(table=self.snd, index=self.linseg4, mul=self.tre4*self.again4), freq=self.splitter[2], q=0.707, type=1)
-        self.mixx = self.pointer1+self.pointer2+self.pointer3+self.pointer4
-        self.sig = Sig(self.mixx, mul=self.env).mix(self.nchnls)
-        self.chorusd = Scale(input=Sig(self.polyphony_spread), inmin=0.0001, inmax=0.5, outmin=0, outmax=5)
-        self.chorusb = Scale(input=Sig(self.number_of_voices), inmin=1, inmax=10, outmin=0, outmax=1)
-        self.out = Chorus(input=self.sig, depth=self.chorusd, feedback=0.25, bal=self.chorusb)
-        
+        self.pointer1 = ButLP(Pointer(table=self.snd, index=self.linseg1, mul=self.tre1*self.again1), freq=self.splitter[0])
+        self.pointer2 = ButHP(ButLP(Pointer(table=self.snd, index=self.linseg2, mul=self.tre2*self.again2), freq=self.splitter[1]), freq=self.splitter[0])
+        self.pointer3 = ButHP(ButLP(Pointer(table=self.snd, index=self.linseg3, mul=self.tre3*self.again3), freq=self.splitter[2]), freq=self.splitter[1])
+        self.pointer4 = ButHP(Pointer(table=self.snd, index=self.linseg4, mul=self.tre4*self.again4), freq=self.splitter[2])
+        self.out = Mix(self.pointer1+self.pointer2+self.pointer3+self.pointer4, voices=self.nchnls, mul=self.env)
         
         self.trigend = TrigFunc(self.beat1["end"], self.newdist)
         
@@ -169,27 +200,27 @@ Interface = [   cfilein(name="snd", label="Audio"),
                 cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
                 csplitter(name="splitter", label="Frequency Splitter", min=100, max=18000, init=[150, 500, 2000], 
                           num_knobs=3, rel="log", unit="Hz", col="grey"),
-                cgraph(name="adsr1", label="Beat 1 ADSR", func=[(0,0),(0.1,1),(0.122,0.25),(1,0)], table=True, col="blue"),
-                cgraph(name="adsr2", label="Beat 2 ADSR", func=[(0,0),(0.1,1),(0.122,0.25),(1,0)], table=True, col="blue"),
-                cgraph(name="adsr3", label="Beat 3 ADSR", func=[(0,0),(0.1,1),(0.122,0.25),(1,0)], table=True, col="blue"),
-                cgraph(name="adsr4", label="Beat 4 ADSR", func=[(0,0),(0.1,1),(0.122,0.25),(1,0)], table=True, col="blue"),
-                cslider(name="taps", label="# of Taps", min=1, max=64, init=16, res="int", rel="lin", unit="x"),
-                cslider(name="tempo", label="Tempo", min=20, max=240, gliss=0, init=120, rel="lin", unit="bpm", col="green"),
-                cslider(name="tapsl", label="Tap Length", min=0.1, max=1, init=0.1, rel="lin", unit="sec", col="tan"),
-                cslider(name="bindex1", label="Beat 1 Index", min=0, max=1, init=0, rel="lin", unit="x", col="olivegreen",half=True),
-                cslider(name="bindex2", label="Beat 2 Index", min=0, max=1, init=0.4, rel="lin", unit="x", col="lightblue",half=True),
-                cslider(name="we1", label="Beat 1 Distribution", min=0, max=100, init=80, res="int", rel="lin", unit="%", col="olivegreen",half=True),
-                cslider(name="we2", label="Beat 2 Distribution", min=0, max=100, init=80, res="int", rel="lin", unit="%", col="lightblue",half=True),
-                cslider(name="gain1", label="Beat 1 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="olivegreen",half=True),
-                cslider(name="gain2", label="Beat 2 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="lightblue",half=True),
-                cslider(name="bindex3", label="Beat 3 Index", min=0, max=1, init=0.8, rel="lin", unit="x", col="lightblue",half=True),
-                cslider(name="bindex4", label="Beat 4 Index", min=0, max=1, init=0.9, rel="lin", unit="x", col="olivegreen",half=True),
-                cslider(name="we3", label="Beat 3 Distribution", min=0, max=100, init=30, rel="lin", res="int", unit="%", col="lightblue",half=True),
-                cslider(name="we4", label="Beat 4 Distribution", min=0, max=100, init=20, rel="lin", res="int", unit="%", col="olivegreen",half=True),
-                cslider(name="gain3", label="Beat 3 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="lightblue",half=True),
-                cslider(name="gain4", label="Beat 4 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="olivegreen",half=True),
+                cgraph(name="adsr1", label="Beat 1 ADSR", func=[(0,0),(0.04,1),(0.13,0.5),(0.8,0.5),(1,0)], table=True, col="purple1"),
+                cgraph(name="adsr2", label="Beat 2 ADSR", func=[(0,0),(0.03,1),(0.12,0.5),(0.7,0.45),(1,0)], table=True, col="red1"),
+                cgraph(name="adsr3", label="Beat 3 ADSR", func=[(0,0),(0.02,1),(0.11,0.5),(0.6,0.4),(1,0)], table=True, col="green1"),
+                cgraph(name="adsr4", label="Beat 4 ADSR", func=[(0,0),(0.01,1),(0.1,0.5),(0.5,0.35),(1,0)], table=True, col="blue1"),
+                cslider(name="taps", label="Num of Taps", min=1, max=64, init=16, res="int", rel="lin", unit="x", col="orange1"),
+                cslider(name="tempo", label="Tempo", min=20, max=240, gliss=0, init=120, rel="lin", unit="bpm", col="orange2"),
+                cslider(name="tapsl", label="Tap Length", min=0.1, max=1, init=0.1, rel="lin", unit="sec", col="orange3"),
+                cslider(name="bindex1", label="Beat 1 Index", min=0, max=1, init=0, rel="lin", unit="x", col="purple1",half=True),
+                cslider(name="bindex2", label="Beat 2 Index", min=0, max=1, init=0.4, rel="lin", unit="x", col="red1",half=True),
+                cslider(name="we1", label="Beat 1 Distribution", min=0, max=100, init=80, res="int", rel="lin", unit="%", col="purple2",half=True),
+                cslider(name="we2", label="Beat 2 Distribution", min=0, max=100, init=80, res="int", rel="lin", unit="%", col="red2",half=True),
+                cslider(name="gain1", label="Beat 1 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="purple3",half=True),
+                cslider(name="gain2", label="Beat 2 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="red3",half=True),
+                cslider(name="bindex3", label="Beat 3 Index", min=0, max=1, init=0.8, rel="lin", unit="x", col="green1",half=True),
+                cslider(name="bindex4", label="Beat 4 Index", min=0, max=1, init=0.9, rel="lin", unit="x", col="blue1",half=True),
+                cslider(name="we3", label="Beat 3 Distribution", min=0, max=100, init=30, rel="lin", res="int", unit="%", col="green2",half=True),
+                cslider(name="we4", label="Beat 4 Distribution", min=0, max=100, init=20, rel="lin", res="int", unit="%", col="blue2",half=True),
+                cslider(name="gain3", label="Beat 3 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="green3",half=True),
+                cslider(name="gain4", label="Beat 4 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="blue3",half=True),
                 cslider(name="seed", label="Global seed", min=0, max=5000, init=0, rel="lin", res="int", unit="x", up=True),
-                cpoly()
+                cpopup(name="poly", label = "Polyphony per Voice", init= "4", rate="i", col="grey", value=[str(i+1) for i in range(8)]),
           ]
 
 
diff --git a/Resources/modules/Multiband/MultiBandDelay.c5 b/Resources/modules/Multiband/MultiBandDelay.c5
index e53c1fe..42d2700 100644
--- a/Resources/modules/Multiband/MultiBandDelay.c5
+++ b/Resources/modules/Multiband/MultiBandDelay.c5
@@ -1,32 +1,57 @@
 class Module(BaseModule):
     """
-    Multi-band delay module
+    "Multi-band delay with feedback"
+
+    Description
     
-    Sliders under the graph:
+    MultiBandDelay implements four separated spectral band delays
+    with independent delay time, gain and feedback.
+
+    Sliders
     
-        - Frequency Splitter : Split points for multi-band processing
-        - Delay Band 1 : Delay time for the first band
-        - Feedback Band 1 : Amount of delayed signal fed back into the first band delay
-        - Gain Band 1 : Gain of the delayed first band
-        - Delay Band 2 : Delay time for the second band
-        - Feedback Band 2 : Amount of delayed signal fed back into the second band delay
-        - Gain Band 2 : Gain of the delayed second band
-        - Delay Band 3 : Delay time for the third band
-        - Feedback Band 3 : Amount of delayed signal fed back into the third band delay
-        - Gain Band 3 : Gain of the delayed third band
-        - Delay Band 4 : Delay time for the fourth band
-        - Feedback Band 4 : Amount of delayed signal fed back into the fourth band delay
-        - Gain Band 4 : Gain of the delayed fourth band
-        - Dry / Wet : Mix between the original signal and the delayed signals
+        # Frequency Splitter : 
+            Split points for multi-band processing
+        # Delay Band 1 : 
+            Delay time for the first band
+        # Feedback Band 1 : 
+            Amount of delayed signal fed back into the first band delay
+        # Gain Band 1 : 
+            Gain of the delayed first band
+        # Delay Band 2 : 
+            Delay time for the second band
+        # Feedback Band 2 : 
+            Amount of delayed signal fed back into the second band delay
+        # Gain Band 2 : 
+            Gain of the delayed second band
+        # Delay Band 3 : 
+            Delay time for the third band
+        # Feedback Band 3 : 
+            Amount of delayed signal fed back into the third band delay
+        # Gain Band 3 : 
+            Gain of the delayed third band
+        # Delay Band 4 : 
+            Delay time for the fourth band
+        # Feedback Band 4 : 
+            Amount of delayed signal fed back into the fourth band delay
+        # Gain Band 4 : 
+            Gain of the delayed fourth band
+        # Dry / Wet : 
+            Mix between the original signal and the delayed signals
+
+    Graph Only
     
-    Dropdown menus, toggles and sliders on the bottom left:
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
     
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+    Popups & Toggles
     
-    Graph only parameters :
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
     """
     def __init__(self):
         BaseModule.__init__(self)
@@ -57,18 +82,18 @@ Interface = [   csampler(name="snd"),
                 cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
                 csplitter(name="splitter", label="Frequency Splitter", min=100, max=18000, init=[150, 500, 2000], 
                           num_knobs=3, rel="log", gliss=0, up=True, unit="Hz", col="grey"),
-                cslider(name="del1", label="Delay Band 1", min=0.0001, max=15, init=0.5, gliss=0.1, rel="log", unit="sec", half=True, col="forestgreen"),
-                cslider(name="del2", label="Delay Band 2", min=0.0001, max=15, init=0.5, gliss=0.1, rel="log", unit="sec", half=True, col="lightblue"),
-                cslider(name="fb1", label="Feedback Band 1", min=0, max=0.999, init=0.6, rel="lin", unit="x", half=True, col="forestgreen"),
-                cslider(name="fb2", label="Feedback Band 2", min=0, max=0.999, init=0.6, rel="lin", unit="x", half=True, col="lightblue"),
-                cslider(name="gain1", label="Gain Band 1", min=-48, max=18, init=0, rel="lin", unit="dB", half=True, col="forestgreen"),
-                cslider(name="gain2", label="Gain Band 2", min=-48, max=18, init=0, rel="lin", unit="dB", half=True, col="lightblue"),
-                cslider(name="del3", label="Delay Band 3", min=0.0001, max=15, init=0.5, gliss=0.1, rel="log", unit="sec", half=True, col="lightblue"),
-                cslider(name="del4", label="Delay Band 4", min=0.0001, max=15, init=0.5, gliss=0.1, rel="log", unit="sec", half=True, col="forestgreen"),
-                cslider(name="fb3", label="Feedback Band 3", min=0, max=0.999, init=0.6, rel="lin", unit="x", half=True, col="lightblue"),
-                cslider(name="fb4", label="Feedback Band 4", min=0, max=0.999, init=0.6, rel="lin", unit="x", half=True, col="forestgreen"),
-                cslider(name="gain3", label="Gain Band 3", min=-48, max=18, init=0, rel="lin", unit="dB", half=True, col="lightblue"),
-                cslider(name="gain4", label="Gain Band 4", min=-48, max=18, init=0, rel="lin", unit="dB", half=True, col="forestgreen"),
+                cslider(name="del1", label="Delay Band 1", min=0.0001, max=15, init=0.5, gliss=0.1, rel="log", unit="sec", half=True, col="purple1"),
+                cslider(name="del2", label="Delay Band 2", min=0.0001, max=15, init=0.25, gliss=0.1, rel="log", unit="sec", half=True, col="red1"),
+                cslider(name="fb1", label="Feedback Band 1", min=0, max=0.999, init=0.6, rel="lin", unit="x", half=True, col="purple2"),
+                cslider(name="fb2", label="Feedback Band 2", min=0, max=0.999, init=0.6, rel="lin", unit="x", half=True, col="red2"),
+                cslider(name="gain1", label="Gain Band 1", min=-48, max=18, init=0, rel="lin", unit="dB", half=True, col="purple3"),
+                cslider(name="gain2", label="Gain Band 2", min=-48, max=18, init=0, rel="lin", unit="dB", half=True, col="red3"),
+                cslider(name="del3", label="Delay Band 3", min=0.0001, max=15, init=0.33, gliss=0.1, rel="log", unit="sec", half=True, col="green1"),
+                cslider(name="del4", label="Delay Band 4", min=0.0001, max=15, init=0.66, gliss=0.1, rel="log", unit="sec", half=True, col="blue1"),
+                cslider(name="fb3", label="Feedback Band 3", min=0, max=0.999, init=0.6, rel="lin", unit="x", half=True, col="green2"),
+                cslider(name="fb4", label="Feedback Band 4", min=0, max=0.999, init=0.6, rel="lin", unit="x", half=True, col="blue2"),
+                cslider(name="gain3", label="Gain Band 3", min=-48, max=18, init=0, rel="lin", unit="dB", half=True, col="green3"),
+                cslider(name="gain4", label="Gain Band 4", min=-48, max=18, init=0, rel="lin", unit="dB", half=True, col="blue3"),
                 cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue"),
                 cpoly()
           ]
@@ -1422,4 +1447,4 @@ CECILIA_PRESETS = {u'01-Space Flute': {'active': False,
                                          'gain3': [0.0, 0, None, 1],
                                          'gain4': [-9.5303867403314939, 0, None, 1],
                                          'splitter': [[318.7988325993901, 457.40443633415589, 638.2983794153555], 0, None, [1, 1]]},
-                         'userTogglePopups': {'polynum': 0, 'polyspread': 0.001}}}
\ No newline at end of file
+                         'userTogglePopups': {'polynum': 0, 'polyspread': 0.001}}}
diff --git a/Resources/modules/Multiband/MultiBandDisto.c5 b/Resources/modules/Multiband/MultiBandDisto.c5
index 0d4f637..6967d1b 100644
--- a/Resources/modules/Multiband/MultiBandDisto.c5
+++ b/Resources/modules/Multiband/MultiBandDisto.c5
@@ -1,31 +1,57 @@
 class Module(BaseModule):
     """
-    Multi-band delay module
+    "Multi-band distortion module"
     
-    Sliders under the graph:
+    Description
+
+    MultiBandDisto implements four separated spectral band distortions
+    with independent drive, slope and gain.
+
+    Sliders
     
-        - Frequency Splitter : Split points for multi-band processing
-        - Band 1 Drive : Amount of distortion applied on the first band
-        - Band 1 Slope : Harshness of distorted first band
-        - Band 1 Gain : Gain of the distorted first band
-        - Band 2 Drive : Amount of distortion applied on the second band
-        - Band 2 Slope : Harshness of distorted second band
-        - Band 2 Gain : Gain of the distorted second band
-        - Band 3 Drive : Amount of distortion applied on the third band
-        - Band 3 Slope : Harshness of distorted third band
-        - Band 3 Gain : Gain of the distorted third band
-        - Band 4 Drive : Amount of distortion applied on the fourth band
-        - Band 4 Slope : Harshness of distorted fourth band
-        - Band 4 Gain : Gain of the distorted fourth band
+        # Frequency Splitter : 
+            Split points for multi-band processing
+        # Band 1 Drive : 
+            Amount of distortion applied on the first band
+        # Band 1 Slope : 
+            Harshness of distorted first band
+        # Band 1 Gain : 
+            Gain of the distorted first band
+        # Band 2 Drive : 
+            Amount of distortion applied on the second band
+        # Band 2 Slope : 
+            Harshness of distorted second band
+        # Band 2 Gain : 
+            Gain of the distorted second band
+        # Band 3 Drive : 
+            Amount of distortion applied on the third band
+        # Band 3 Slope : 
+            Harshness of distorted third band
+        # Band 3 Gain : 
+            Gain of the distorted third band
+        # Band 4 Drive : 
+            Amount of distortion applied on the fourth band
+        # Band 4 Slope : 
+            Harshness of distorted fourth band
+        # Band 4 Gain : 
+            Gain of the distorted fourth band
+        # Dry / Wet : 
+            Mix between the original signal and the delayed signals
+
+    Graph Only
     
-    Dropdown menus, toggles and sliders on the bottom left:
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
     
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+    Popups & Toggles
     
-    Graph only parameters :
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
     """
     def __init__(self):
         BaseModule.__init__(self)
@@ -41,7 +67,7 @@ class Module(BaseModule):
         self.mul4 = DBToA(self.drive4mul)
         self.muls = self.duplicate([self.mul1,self.mul2,self.mul3,self.mul4], len(self.snd))
         self.disto = Disto(input=self.split, drive=self.drives, slope=self.slopes, mul=[i*0.1 for i in self.muls]).mix(self.nchnls)
-        self.out = self.disto*self.env
+        self.out = Interp(self.snd, self.disto, self.drywet, mul=self.env)
 
     def splitter_up(self, value):
         self.FBfade.value = 0
@@ -53,21 +79,22 @@ class Module(BaseModule):
         self.FBfade.value = 1
 
 Interface = [   csampler(name="snd"), 
-                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
                 csplitter(name="splitter", label="Frequency Splitter", min=100, max=18000, init=[150, 500, 2000], 
                           num_knobs=3, rel="log", gliss=0, up=True, unit="Hz", col="grey"),
-                cslider(name="drive1", label="Band 1 Drive", min=0, max=1, init=0.75, rel="lin", unit="x", col="lightblue", half=True),
-                cslider(name="drive1slope", label="Band 1 Slope", min=0, max=1, init=0.5, rel="lin", unit="x", col="green2", half=True),
-                cslider(name="drive2", label="Band 2 Drive", min=0, max=1, init=0.75, rel="lin", unit="x", col="lightblue", half=True),
-                cslider(name="drive2slope", label="Band 2 Slope", min=0, max=1, init=0.5, rel="lin", unit="x", col="green2", half=True),
-                cslider(name="drive3", label="Band 3 Drive", min=0, max=1, init=0.75, rel="lin", unit="x", col="lightblue", half=True),
-                cslider(name="drive3slope", label="Band 3 Slope", min=0, max=1, init=0.5, rel="lin", unit="x", col="green2", half=True),
-                cslider(name="drive4", label="Band 4 Drive", min=0, max=1, init=0.75, rel="lin", unit="x", col="lightblue", half=True),
-                cslider(name="drive4slope", label="Band 4 Slope", min=0, max=1, init=0.5, rel="lin", unit="x", col="green2", half=True),
-                cslider(name="drive1mul", label="Band 1 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="red3", half=True),
+                cslider(name="drive1", label="Band 1 Drive", min=0, max=1, init=0.5, rel="lin", unit="x", col="purple1", half=True),
+                cslider(name="drive2", label="Band 2 Drive", min=0, max=1, init=0.95, rel="lin", unit="x", col="red1", half=True),
+                cslider(name="drive1slope", label="Band 1 Slope", min=0, max=1, init=0.85, rel="lin", unit="x", col="purple2", half=True),
+                cslider(name="drive2slope", label="Band 2 Slope", min=0, max=1, init=0.8, rel="lin", unit="x", col="red2", half=True),
+                cslider(name="drive1mul", label="Band 1 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="purple3", half=True),
                 cslider(name="drive2mul", label="Band 2 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="red3", half=True),
-                cslider(name="drive3mul", label="Band 3 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="red3", half=True),
-                cslider(name="drive4mul", label="Band 4 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="red3", half=True),
+                cslider(name="drive3", label="Band 3 Drive", min=0, max=1, init=0.75, rel="lin", unit="x", col="green1", half=True),
+                cslider(name="drive4", label="Band 4 Drive", min=0, max=1, init=0.5, rel="lin", unit="x", col="blue1", half=True),
+                cslider(name="drive3slope", label="Band 3 Slope", min=0, max=1, init=0.75, rel="lin", unit="x", col="green2", half=True),
+                cslider(name="drive4slope", label="Band 4 Slope", min=0, max=1, init=0.5, rel="lin", unit="x", col="blue2", half=True),
+                cslider(name="drive3mul", label="Band 3 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="green3", half=True),
+                cslider(name="drive4mul", label="Band 4 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="blue3", half=True),
+                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue1"),
                 cpoly()
           ]
 
@@ -78,36 +105,37 @@ Interface = [   csampler(name="snd"),
 ####################################
 
 
-CECILIA_PRESETS = {u'01-Crunchy Guitar': {'gainSlider': 0.0,
+CECILIA_PRESETS = {u'01-Crunchy Guitar': {'active': False,
+                        'gainSlider': 0.0,
                         'nchnls': 2,
                         'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
                                     1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
                                     2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
                         'totalTime': 30.000000000000135,
                         'userGraph': {'drive1': {'curved': False, 'data': [[0.0, 0.75], [1.0, 0.75]]},
-                                      'drive1mul': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
+                                      'drive1mul': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
                                       'drive1slope': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
                                       'drive2': {'curved': False, 'data': [[0.0, 0.75], [1.0, 0.75]]},
-                                      'drive2mul': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
+                                      'drive2mul': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
                                       'drive2slope': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
                                       'drive3': {'curved': False, 'data': [[0.0, 0.75], [1.0, 0.75]]},
-                                      'drive3mul': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
+                                      'drive3mul': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
                                       'drive3slope': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
                                       'drive4': {'curved': False, 'data': [[0.0, 0.75], [1.0, 0.75]]},
-                                      'drive4mul': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
+                                      'drive4mul': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
                                       'drive4slope': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
                                       'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
                                       'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                      'sndgain': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
+                                      'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
                                       'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
                                       'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
                                       'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
-                        'userInputs': {'snd': {'dursnd': 5.3334465026855469,
+                        'userInputs': {'snd': {'dursnd': 5.333446502685547,
                                                'gain': [0.0, False, False],
                                                'gensizesnd': 262144,
                                                'loopIn': [0.0, False, False],
                                                'loopMode': 1,
-                                               'loopOut': [5.3334465026855469, False, False],
+                                               'loopOut': [5.333446502685547, False, False],
                                                'loopX': [1.0, False, False],
                                                'nchnlssnd': 2,
                                                'offsnd': 0.0,
@@ -116,668 +144,669 @@ CECILIA_PRESETS = {u'01-Crunchy Guitar': {'gainSlider': 0.0,
                                                'startFromLoop': 0,
                                                'transp': [0.0, False, False],
                                                'type': 'csampler'}},
-                        'userSliders': {'drive1': [0.70303867403314912, 0, None, 1],
+                        'userSliders': {'drive1': [0.7030386740331491, 0, None, 1],
                                         'drive1mul': [-48.0, 0, None, 1],
                                         'drive1slope': [0.5524861878453039, 0, None, 1],
-                                        'drive2': [0.89088397790055252, 0, None, 1],
-                                        'drive2mul': [-2.6933701657458542, 0, None, 1],
-                                        'drive2slope': [0.85773480662983426, 0, None, 1],
-                                        'drive3': [0.85220994475138123, 0, None, 1],
-                                        'drive3mul': [4.1436464088397784, 0, None, 1],
+                                        'drive2': [0.8908839779005525, 0, None, 1],
+                                        'drive2mul': [-2.693370165745854, 0, None, 1],
+                                        'drive2slope': [0.8577348066298343, 0, None, 1],
+                                        'drive3': [0.8522099447513812, 0, None, 1],
+                                        'drive3mul': [4.143646408839778, 0, None, 1],
                                         'drive3slope': [0.30662983425414364, 0, None, 1],
-                                        'drive4': [0.76519337016574585, 0, None, 1],
+                                        'drive4': [0.7651933701657458, 0, None, 1],
                                         'drive4mul': [-16.002762430939224, 0, None, 1],
                                         'drive4slope': [0.0, 0, None, 1],
                                         'splitter': [[150.00000000000003, 499.99999999999994, 2000.0000000000002], 0, None, [1, 1]]},
                         'userTogglePopups': {'polynum': 0, 'polyspread': 0.001}},
- u'02-Hardcore Bass': {'gainSlider': 0.0,
+ u'02-Hardcore Bass': {'active': False,
+                       'gainSlider': 0.0,
                        'nchnls': 2,
                        'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
                                    1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
                                    2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
                        'totalTime': 30.000000000000135,
                        'userGraph': {'drive1': {'curved': False, 'data': [[0.0, 0.75], [1.0, 0.75]]},
-                                     'drive1mul': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
+                                     'drive1mul': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
                                      'drive1slope': {'curved': False,
-                                                     'data': [[0.0, 0.65744688379004723],
-                                                              [0.0015974440894568689, 0.92533330252925705],
-                                                              [0.0031948881789137379, 0.96316083141209563],
-                                                              [0.0047923322683706068, 0.73844346632624658],
-                                                              [0.0063897763578274758, 0.44416683075502683],
-                                                              [0.0079872204472843447, 0.33305353903929374],
-                                                              [0.0095846645367412137, 0.50052687042074018],
-                                                              [0.011182108626198083, 0.80276195733236999],
-                                                              [0.012779552715654952, 0.98020152584525189],
+                                                     'data': [[0.0, 0.6574468837900472],
+                                                              [0.001597444089456869, 0.925333302529257],
+                                                              [0.003194888178913738, 0.9631608314120956],
+                                                              [0.004792332268370607, 0.7384434663262466],
+                                                              [0.006389776357827476, 0.44416683075502683],
+                                                              [0.007987220447284345, 0.33305353903929374],
+                                                              [0.009584664536741214, 0.5005268704207402],
+                                                              [0.011182108626198083, 0.80276195733237],
+                                                              [0.012779552715654952, 0.9802015258452519],
                                                               [0.01437699680511182, 0.8804617771061588],
-                                                              [0.015974440894568689, 0.58919847514173718],
+                                                              [0.01597444089456869, 0.5891984751417372],
                                                               [0.017571884984025555, 0.3565464055122381],
-                                                              [0.019169329073482427, 0.38230545771432017],
-                                                              [0.020766773162939296, 0.64435394681429359],
-                                                              [0.022364217252396165, 0.91764655407366369],
-                                                              [0.023961661341853034, 0.96748159462182948],
-                                                              [0.025559105431309903, 0.75106110147555383],
+                                                              [0.019169329073482427, 0.3823054577143202],
+                                                              [0.020766773162939296, 0.6443539468142936],
+                                                              [0.022364217252396165, 0.9176465540736637],
+                                                              [0.023961661341853034, 0.9674815946218295],
+                                                              [0.025559105431309903, 0.7510611014755538],
                                                               [0.027156549520766772, 0.45424540540386793],
-                                                              [0.028753993610223641, 0.33193764726616015],
+                                                              [0.02875399361022364, 0.33193764726616015],
                                                               [0.03035143769968051, 0.48917483188862637],
-                                                              [0.031948881789137379, 0.79092281939722819],
-                                                              [0.033546325878594248, 0.97804265325455209],
-                                                              [0.03514376996805111, 0.88983719379248905],
+                                                              [0.03194888178913738, 0.7909228193972282],
+                                                              [0.03354632587859425, 0.9780426532545521],
+                                                              [0.03514376996805111, 0.889837193792489],
                                                               [0.036741214057507986, 0.6020566420799045],
-                                                              [0.038338658146964855, 0.36184482332767509],
-                                                              [0.039936102236421724, 0.37549388408286771],
-                                                              [0.041533546325878593, 0.63128211116681365],
-                                                              [0.043130990415335461, 0.90954045290373609],
-                                                              [0.04472843450479233, 0.97130268810721898],
-                                                              [0.046325878594249199, 0.76352786258169358],
-                                                              [0.047923322683706068, 0.46465147121142114],
-                                                              [0.049520766773162937, 0.33134636485063362],
-                                                              [0.051118210862619806, 0.47809399024786431],
-                                                              [0.052715654952076675, 0.77886856398774729],
-                                                              [0.054313099041533544, 0.97536709013160683],
-                                                              [0.055910543130990413, 0.89883807692472928],
-                                                              [0.057507987220447282, 0.61500407910893373],
-                                                              [0.059105431309904151, 0.3676196503802277],
-                                                              [0.06070287539936102, 0.36913672207927378],
-                                                              [0.062300319488817889, 0.61825244416776959],
-                                                              [0.063897763578274758, 0.90102806327710683],
+                                                              [0.038338658146964855, 0.3618448233276751],
+                                                              [0.039936102236421724, 0.3754938840828677],
+                                                              [0.04153354632587859, 0.6312821111668137],
+                                                              [0.04313099041533546, 0.9095404529037361],
+                                                              [0.04472843450479233, 0.971302688107219],
+                                                              [0.0463258785942492, 0.7635278625816936],
+                                                              [0.04792332268370607, 0.46465147121142114],
+                                                              [0.04952076677316294, 0.3313463648506336],
+                                                              [0.051118210862619806, 0.4780939902478643],
+                                                              [0.052715654952076675, 0.7788685639877473],
+                                                              [0.054313099041533544, 0.9753670901316068],
+                                                              [0.05591054313099041, 0.8988380769247293],
+                                                              [0.05750798722044728, 0.6150040791089337],
+                                                              [0.05910543130990415, 0.3676196503802277],
+                                                              [0.06070287539936102, 0.3691367220792738],
+                                                              [0.06230031948881789, 0.6182524441677696],
+                                                              [0.06389776357827476, 0.9010280632771068],
                                                               [0.06549520766773162, 0.9746179535748164],
-                                                              [0.067092651757188496, 0.77582365749734206],
-                                                              [0.068690095846645371, 0.47536825716511277],
-                                                              [0.07028753993610222, 0.33128064473737251],
-                                                              [0.071884984025559095, 0.46730220401846423],
-                                                              [0.073482428115015971, 0.76661861843340806],
-                                                              [0.075079872204472847, 0.97217914856742282],
-                                                              [0.076677316293929709, 0.90744992016330939],
-                                                              [0.078274760383386571, 0.62801991939661495],
-                                                              [0.079872204472843447, 0.37386157962736072],
-                                                              [0.081469648562300323, 0.3632442172704875],
-                                                              [0.083067092651757185, 0.60528594517591328],
-                                                              [0.084664536741214033, 0.89212310424918806],
-                                                              [0.086261980830670923, 0.97742204795262089],
-                                                              [0.087859424920127799, 0.78792866961409225],
-                                                              [0.089456869009584661, 0.4863784914779623],
-                                                              [0.091054313099041523, 0.33174059284468133],
-                                                              [0.092651757188498399, 0.45681686586216097],
-                                                              [0.094249201277955275, 0.75419272544915672],
-                                                              [0.095846645367412137, 0.96848396643149148],
-                                                              [0.097444089456868999, 0.91565884416767129],
-                                                              [0.099041533546325874, 0.64108318586811464],
-                                                              [0.10063897763578275, 0.38056055121784349],
+                                                              [0.0670926517571885, 0.7758236574973421],
+                                                              [0.06869009584664537, 0.4753682571651128],
+                                                              [0.07028753993610222, 0.3312806447373725],
+                                                              [0.0718849840255591, 0.46730220401846423],
+                                                              [0.07348242811501597, 0.7666186184334081],
+                                                              [0.07507987220447285, 0.9721791485674228],
+                                                              [0.07667731629392971, 0.9074499201633094],
+                                                              [0.07827476038338657, 0.628019919396615],
+                                                              [0.07987220447284345, 0.3738615796273607],
+                                                              [0.08146964856230032, 0.3632442172704875],
+                                                              [0.08306709265175719, 0.6052859451759133],
+                                                              [0.08466453674121403, 0.8921231042491881],
+                                                              [0.08626198083067092, 0.9774220479526209],
+                                                              [0.0878594249201278, 0.7879286696140922],
+                                                              [0.08945686900958466, 0.4863784914779623],
+                                                              [0.09105431309904152, 0.3317405928446813],
+                                                              [0.0926517571884984, 0.45681686586216097],
+                                                              [0.09424920127795527, 0.7541927254491567],
+                                                              [0.09584664536741214, 0.9684839664314915],
+                                                              [0.097444089456869, 0.9156588441676713],
+                                                              [0.09904153354632587, 0.6410831858681146],
+                                                              [0.10063897763578275, 0.3805605512178435],
                                                               [0.10223642172523961, 0.35782586635526403],
-                                                              [0.10383386581469647, 0.59240351174480721],
-                                                              [0.10543130990415335, 0.88283992756276308],
+                                                              [0.10383386581469647, 0.5924035117448072],
+                                                              [0.10543130990415335, 0.8828399275627631],
                                                               [0.10702875399361023, 0.9797104520012837],
-                                                              [0.10862619808306709, 0.79982338980005285],
+                                                              [0.10862619808306709, 0.7998233898000529],
                                                               [0.11022364217252395, 0.49766442942477346],
                                                               [0.11182108626198083, 0.3327254678938063],
                                                               [0.1134185303514377, 0.44665487455139075],
-                                                              [0.11501597444089456, 0.74161091131689938],
-                                                              [0.11661341853035143, 0.96428749909130806],
-                                                              [0.1182108626198083, 0.92345161896500105],
-                                                              [0.11980830670926518, 0.65417282501384577],
-                                                              [0.12140575079872204, 0.38770576870479689],
+                                                              [0.11501597444089456, 0.7416109113168994],
+                                                              [0.11661341853035143, 0.9642874990913081],
+                                                              [0.1182108626198083, 0.923451618965001],
+                                                              [0.11980830670926518, 0.6541728250138458],
+                                                              [0.12140575079872204, 0.3877057687047969],
                                                               [0.1230031948881789, 0.35289040185875076],
-                                                              [0.12460063897763578, 0.57962590594314245],
-                                                              [0.12619808306709265, 0.87319349451788442],
-                                                              [0.12779552715654952, 0.98147947759757259],
-                                                              [0.12939297124600638, 0.81148864784185237],
-                                                              [0.13099041533546324, 0.50920788194056166],
-                                                              [0.13258785942492013, 0.33423368260362318],
-                                                              [0.13418530351437699, 0.43683260773426547],
-                                                              [0.13578274760383388, 0.72889345361002023],
-                                                              [0.13738019169329074, 0.95959650981436273],
-                                                              [0.1389776357827476, 0.93081568527242753],
-                                                              [0.14057507987220444, 0.66726774082051343],
+                                                              [0.12460063897763578, 0.5796259059431424],
+                                                              [0.12619808306709265, 0.8731934945178844],
+                                                              [0.12779552715654952, 0.9814794775975726],
+                                                              [0.12939297124600638, 0.8114886478418524],
+                                                              [0.13099041533546324, 0.5092078819405617],
+                                                              [0.13258785942492013, 0.3342336826036232],
+                                                              [0.134185303514377, 0.43683260773426547],
+                                                              [0.13578274760383388, 0.7288934536100202],
+                                                              [0.13738019169329074, 0.9595965098143627],
+                                                              [0.1389776357827476, 0.9308156852724275],
+                                                              [0.14057507987220444, 0.6672677408205134],
                                                               [0.14217252396166133, 0.3952857164458467],
-                                                              [0.14376996805111819, 0.34844577805864074],
-                                                              [0.14536741214057505, 0.56697372089338405],
-                                                              [0.14696485623003194, 0.86319935185938901],
-                                                              [0.1485623003194888, 0.98272627367835985],
-                                                              [0.15015974440894569, 0.82290564334047656],
-                                                              [0.15175718849840256, 0.52099024493508672],
+                                                              [0.1437699680511182, 0.34844577805864074],
+                                                              [0.14536741214057505, 0.566973720893384],
+                                                              [0.14696485623003194, 0.863199351859389],
+                                                              [0.1485623003194888, 0.9827262736783599],
+                                                              [0.1501597444089457, 0.8229056433404766],
+                                                              [0.15175718849840256, 0.5209902449350867],
                                                               [0.15335463258785942, 0.33626280624879157],
-                                                              [0.15495207667731625, 0.42736589553941928],
+                                                              [0.15495207667731625, 0.4273658955394193],
                                                               [0.15654952076677314, 0.716060848512865],
-                                                              [0.15814696485623003, 0.95441855886805405],
-                                                              [0.15974440894568689, 0.93773917473826585],
+                                                              [0.15814696485623003, 0.954418558868054],
+                                                              [0.1597444089456869, 0.9377391747382658],
                                                               [0.16134185303514376, 0.6803468287706419],
-                                                              [0.16293929712460065, 0.40328817816240398],
-                                                              [0.16453674121405751, 0.34449915816560644],
-                                                              [0.16613418530351437, 0.55446734758271288],
-                                                              [0.16773162939297123, 0.85287360672087598],
-                                                              [0.16932907348242807, 0.98344883083556234],
+                                                              [0.16293929712460065, 0.403288178162404],
+                                                              [0.1645367412140575, 0.34449915816560644],
+                                                              [0.16613418530351437, 0.5544673475827129],
+                                                              [0.16773162939297123, 0.852873606720876],
+                                                              [0.16932907348242807, 0.9834488308355623],
                                                               [0.17092651757188498, 0.8340559760110885],
-                                                              [0.17252396166134185, 0.53299252927628937],
-                                                              [0.17412140575079871, 0.33880956857724875],
-                                                              [0.1757188498402556, 0.41826999506326601],
-                                                              [0.17731629392971246, 0.70313377778792308],
-                                                              [0.17891373801916932, 0.94876199133515027],
+                                                              [0.17252396166134185, 0.5329925292762894],
+                                                              [0.1741214057507987, 0.33880956857724875],
+                                                              [0.1757188498402556, 0.418269995063266],
+                                                              [0.17731629392971246, 0.7031337777879231],
+                                                              [0.17891373801916932, 0.9487619913351503],
                                                               [0.18051118210862618, 0.9442109290697438],
-                                                              [0.18210862619808305, 0.69338900985584129],
+                                                              [0.18210862619808305, 0.6933890098558413],
                                                               [0.18370607028753994, 0.41170025662813636],
-                                                              [0.1853035143769968, 0.34105690277865253],
-                                                              [0.18690095846645366, 0.54212694199975753],
-                                                              [0.18849840255591055, 0.84223290066552881],
-                                                              [0.19009584664536741, 0.98364598455461782],
-                                                              [0.19169329073482427, 0.84492167533793683],
+                                                              [0.1853035143769968, 0.3410569027786525],
+                                                              [0.18690095846645366, 0.5421269419997575],
+                                                              [0.18849840255591055, 0.8422329006655288],
+                                                              [0.1900958466453674, 0.9836459845546178],
+                                                              [0.19169329073482427, 0.8449216753379368],
                                                               [0.19329073482428114, 0.54519539139424],
                                                               [0.194888178913738, 0.34186986508073763],
-                                                              [0.19648562300319489, 0.40955956578076391],
-                                                              [0.19808306709265175, 0.69013307544389502],
-                                                              [0.19968051118210861, 0.94263592366436233],
-                                                              [0.2012779552715655, 0.95022051801634089],
-                                                              [0.20287539936102236, 0.70637326454893812],
-                                                              [0.20447284345047922, 0.42050839445484522],
-                                                              [0.20607028753993609, 0.33812455963401861],
-                                                              [0.20766773162939295, 0.52997239265003215],
-                                                              [0.20926517571884984, 0.83129438286558877],
-                                                              [0.2108626198083067, 0.98331741709128362],
-                                                              [0.21246006389776356, 0.85548522953670292],
-                                                              [0.21405750798722045, 0.55757916445635358],
+                                                              [0.1964856230031949, 0.4095595657807639],
+                                                              [0.19808306709265175, 0.690133075443895],
+                                                              [0.1996805111821086, 0.9426359236643623],
+                                                              [0.2012779552715655, 0.9502205180163409],
+                                                              [0.20287539936102236, 0.7063732645489381],
+                                                              [0.20447284345047922, 0.4205083944548452],
+                                                              [0.2060702875399361, 0.3381245596340186],
+                                                              [0.20766773162939295, 0.5299723926500322],
+                                                              [0.20926517571884984, 0.8312943828655888],
+                                                              [0.2108626198083067, 0.9833174170912836],
+                                                              [0.21246006389776356, 0.8554852295367029],
+                                                              [0.21405750798722045, 0.5575791644563536],
                                                               [0.21565495207667731, 0.34543876360986553],
-                                                              [0.21725239616613418, 0.40124864591940029],
-                                                              [0.21884984025559104, 0.67707969415844038],
-                                                              [0.2204472843450479, 0.93605022897775514],
-                                                              [0.22204472843450479, 0.95575825617979404],
-                                                              [0.22364217252396165, 0.71927866668026885],
+                                                              [0.21725239616613418, 0.4012486459194003],
+                                                              [0.21884984025559104, 0.6770796941584404],
+                                                              [0.2204472843450479, 0.9360502289777551],
+                                                              [0.2220447284345048, 0.955758256179794],
+                                                              [0.22364217252396165, 0.7192786666802689],
                                                               [0.22523961661341851, 0.42969839594235526],
-                                                              [0.2268370607028754, 0.33570685466412392],
-                                                              [0.22843450479233227, 0.51802328850249268],
-                                                              [0.23003194888178913, 0.82007568246381046],
-                                                              [0.23162939297124599, 0.98246365798373081],
-                                                              [0.23322683706070285, 0.86572961377749169],
-                                                              [0.23482428115015974, 0.57012389006362119],
-                                                              [0.2364217252396166, 0.34951051232304298],
-                                                              [0.23801916932907347, 0.39335062983436753],
-                                                              [0.23961661341853036, 0.66399467150960889],
-                                                              [0.24121405750798722, 0.92901552115866004],
-                                                              [0.24281150159744408, 0.96081521862361785],
-                                                              [0.24440894568690094, 0.73208441716346306],
-                                                              [0.2460063897763578, 0.43925544995709798],
-                                                              [0.24760383386581469, 0.33380768438098224],
-                                                              [0.24920127795527156, 0.50629888741879281],
-                                                              [0.25079872204472842, 0.80859488016129011],
-                                                              [0.25239616613418531, 0.98108608319911172],
-                                                              [0.25399361022364214, 0.87563831762300626],
-                                                              [0.25559105431309903, 0.58280935041663517],
-                                                              [0.25718849840255592, 0.35407854895647806],
+                                                              [0.2268370607028754, 0.3357068546641239],
+                                                              [0.22843450479233227, 0.5180232885024927],
+                                                              [0.23003194888178913, 0.8200756824638105],
+                                                              [0.231629392971246, 0.9824636579837308],
+                                                              [0.23322683706070285, 0.8657296137774917],
+                                                              [0.23482428115015974, 0.5701238900636212],
+                                                              [0.2364217252396166, 0.349510512323043],
+                                                              [0.23801916932907347, 0.3933506298343675],
+                                                              [0.23961661341853036, 0.6639946715096089],
+                                                              [0.24121405750798722, 0.92901552115866],
+                                                              [0.24281150159744408, 0.9608152186236179],
+                                                              [0.24440894568690094, 0.7320844171634631],
+                                                              [0.2460063897763578, 0.439255449957098],
+                                                              [0.2476038338658147, 0.33380768438098224],
+                                                              [0.24920127795527156, 0.5062988874187928],
+                                                              [0.2507987220447284, 0.8085948801612901],
+                                                              [0.2523961661341853, 0.9810860831991117],
+                                                              [0.25399361022364214, 0.8756383176230063],
+                                                              [0.25559105431309903, 0.5828093504166352],
+                                                              [0.2571884984025559, 0.35407854895647806],
                                                               [0.25878594249201275, 0.38587824642142704],
-                                                              [0.26038338658146964, 0.65089909607048169],
-                                                              [0.26198083067092648, 0.92154313774571917],
-                                                              [0.26357827476038337, 0.96538325525705282],
-                                                              [0.26517571884984026, 0.74476987751647694],
-                                                              [0.26677316293929715, 0.44916415380261998],
-                                                              [0.26837060702875398, 0.33243010959636249],
+                                                              [0.26038338658146964, 0.6508990960704817],
+                                                              [0.2619808306709265, 0.9215431377457192],
+                                                              [0.26357827476038337, 0.9653832552570528],
+                                                              [0.26517571884984026, 0.7447698775164769],
+                                                              [0.26677316293929715, 0.44916415380262],
+                                                              [0.268370607028754, 0.3324301095963625],
                                                               [0.26996805111821087, 0.49481808511628067],
-                                                              [0.27156549520766776, 0.79687047907759823],
-                                                              [0.2731629392971246, 0.97918691291596993],
-                                                              [0.27476038338658149, 0.88519537163774198],
-                                                              [0.27635782747603838, 0.59561510089983849],
-                                                              [0.27795527156549521, 0.35913551140030203],
+                                                              [0.27156549520766776, 0.7968704790775982],
+                                                              [0.2731629392971246, 0.9791869129159699],
+                                                              [0.2747603833865815, 0.885195371637742],
+                                                              [0.2763578274760384, 0.5956151008998385],
+                                                              [0.2779552715654952, 0.35913551140030203],
                                                               [0.27955271565495204, 0.3788435386023325],
-                                                              [0.28115015974440888, 0.6378140734216502],
-                                                              [0.28274760383386582, 0.91364512166069189],
-                                                              [0.28434504792332266, 0.96945500397023265],
-                                                              [0.28594249201277949, 0.75731460312374455],
-                                                              [0.28753993610223638, 0.45940853804340187],
-                                                              [0.28913738019169327, 0.33157635048881051],
-                                                              [0.29073482428115011, 0.48359938471450636],
-                                                              [0.292332268370607, 0.78492137493004588],
-                                                              [0.29392971246006389, 0.97676920794607314],
-                                                              [0.29552715654952078, 0.8943853731252519],
-                                                              [0.29712460063897761, 0.60852050303116467],
+                                                              [0.2811501597444089, 0.6378140734216502],
+                                                              [0.2827476038338658, 0.9136451216606919],
+                                                              [0.28434504792332266, 0.9694550039702327],
+                                                              [0.2859424920127795, 0.7573146031237445],
+                                                              [0.2875399361022364, 0.45940853804340187],
+                                                              [0.28913738019169327, 0.3315763504888105],
+                                                              [0.2907348242811501, 0.48359938471450636],
+                                                              [0.292332268370607, 0.7849213749300459],
+                                                              [0.2939297124600639, 0.9767692079460731],
+                                                              [0.2955271565495208, 0.8943853731252519],
+                                                              [0.2971246006389776, 0.6085205030311647],
                                                               [0.2987220447284345, 0.3646732495637533],
-                                                              [0.30031948881789139, 0.37225784391573252],
-                                                              [0.30191693290734822, 0.62476069213618635],
-                                                              [0.30351437699680511, 0.905334201799328],
-                                                              [0.305111821086262, 0.97302390249936022],
-                                                              [0.30670926517571884, 0.76969837618586245],
-                                                              [0.30830670926517573, 0.46997209224215691],
-                                                              [0.30990415335463251, 0.33124778302547658],
+                                                              [0.3003194888178914, 0.3722578439157325],
+                                                              [0.3019169329073482, 0.6247606921361863],
+                                                              [0.3035143769968051, 0.905334201799328],
+                                                              [0.305111821086262, 0.9730239024993602],
+                                                              [0.30670926517571884, 0.7696983761858625],
+                                                              [0.3083067092651757, 0.4699720922421569],
+                                                              [0.3099041533546325, 0.3312477830254766],
                                                               [0.31150159744408945, 0.47266086691456255],
-                                                              [0.31309904153354629, 0.77276682558032472],
-                                                              [0.31469648562300312, 0.97383686480143983],
-                                                              [0.31629392971246006, 0.90319351095195755],
-                                                              [0.3178913738019169, 0.62150475772427072],
-                                                              [0.31948881789137379, 0.37068283851035694],
-                                                              [0.32108626198083068, 0.36613177624494248],
-                                                              [0.32268370607028751, 0.61175998979216295],
+                                                              [0.3130990415335463, 0.7727668255803247],
+                                                              [0.3146964856230031, 0.9738368648014398],
+                                                              [0.31629392971246006, 0.9031935109519575],
+                                                              [0.3178913738019169, 0.6215047577242707],
+                                                              [0.3194888178913738, 0.37068283851035694],
+                                                              [0.3210862619808307, 0.3661317762449425],
+                                                              [0.3226837060702875, 0.611759989792163],
                                                               [0.3242811501597444, 0.8966237725168289],
-                                                              [0.32587859424920129, 0.9760841990028456],
-                                                              [0.32747603833865813, 0.78190123830381719],
-                                                              [0.32907348242811502, 0.48083779156900924],
-                                                              [0.33067092651757185, 0.33144493674453263],
-                                                              [0.33226837060702874, 0.46202016085921171],
-                                                              [0.33386581469648563, 0.76042641999738236],
+                                                              [0.3258785942492013, 0.9760841990028456],
+                                                              [0.3274760383386581, 0.7819012383038172],
+                                                              [0.329073482428115, 0.48083779156900924],
+                                                              [0.33067092651757185, 0.3314449367445326],
+                                                              [0.33226837060702874, 0.4620201608592117],
+                                                              [0.33386581469648563, 0.7604264199973824],
                                                               [0.33546325878594246, 0.9703946094144843],
-                                                              [0.33706070287539935, 0.91160558941769299],
-                                                              [0.33865814696485613, 0.63454693880946567],
-                                                              [0.34025559105431308, 0.377154592841833],
-                                                              [0.34185303514376997, 0.36047520871204081],
-                                                              [0.34345047923322675, 0.59883291906721214],
-                                                              [0.34504792332268369, 0.88752787204066586],
-                                                              [0.34664536741214058, 0.97863096133130367],
-                                                              [0.34824281150159742, 0.7939035226450154],
-                                                              [0.34984025559105431, 0.49198812423961724],
+                                                              [0.33706070287539935, 0.911605589417693],
+                                                              [0.33865814696485613, 0.6345469388094657],
+                                                              [0.3402555910543131, 0.377154592841833],
+                                                              [0.34185303514376997, 0.3604752087120408],
+                                                              [0.34345047923322675, 0.5988329190672121],
+                                                              [0.3450479233226837, 0.8875278720406659],
+                                                              [0.3466453674121406, 0.9786309613313037],
+                                                              [0.3482428115015974, 0.7939035226450154],
+                                                              [0.3498402555910543, 0.49198812423961724],
                                                               [0.3514376996805112, 0.33216749390173456],
                                                               [0.35303514376996803, 0.45169441572069524],
-                                                              [0.35463258785942492, 0.74792004668670664],
+                                                              [0.3546325878594249, 0.7479200466867066],
                                                               [0.35623003194888175, 0.9664479895214495],
-                                                              [0.35782747603833864, 0.91960805113425281],
-                                                              [0.35942492012779553, 0.64762602675958025],
+                                                              [0.35782747603833864, 0.9196080511342528],
+                                                              [0.35942492012779553, 0.6476260267595803],
                                                               [0.36102236421725237, 0.38407808230767404],
                                                               [0.36261980830670926, 0.35529725776573023],
-                                                              [0.36421725239616609, 0.58600031397006147],
-                                                              [0.36581469648562298, 0.87806115984582278],
-                                                              [0.36741214057507987, 0.98066008497647117],
-                                                              [0.36900958466453671, 0.80568588563954868],
-                                                              [0.37060702875399359, 0.50340511973825364],
-                                                              [0.37220447284345048, 0.33341428998252226],
-                                                              [0.37380191693290732, 0.44170027306220366],
-                                                              [0.37539936102236421, 0.73526786163694824],
-                                                              [0.3769968051118211, 0.96200336572134393],
+                                                              [0.3642172523961661, 0.5860003139700615],
+                                                              [0.365814696485623, 0.8780611598458228],
+                                                              [0.36741214057507987, 0.9806600849764712],
+                                                              [0.3690095846645367, 0.8056858856395487],
+                                                              [0.3706070287539936, 0.5034051197382536],
+                                                              [0.3722044728434505, 0.33341428998252226],
+                                                              [0.3738019169329073, 0.44170027306220366],
+                                                              [0.3753993610223642, 0.7352678616369482],
+                                                              [0.3769968051118211, 0.9620033657213439],
                                                               [0.37859424920127793, 0.9271879988753049],
-                                                              [0.38019169329073482, 0.66072094256625258],
+                                                              [0.3801916932907348, 0.6607209425662526],
                                                               [0.38178913738019166, 0.3914421486150983],
                                                               [0.38338658146964855, 0.35060626848878357],
-                                                              [0.38498402555910544, 0.57328285626319586],
-                                                              [0.38658146964856227, 0.86823889302869373],
-                                                              [0.38817891373801916, 0.98216829968628894],
-                                                              [0.38977635782747599, 0.8172293381553325],
-                                                              [0.39137380191693288, 0.51507037778004927],
-                                                              [0.39297124600638977, 0.33518331557881059],
-                                                              [0.39456869009584661, 0.43205384001732017],
+                                                              [0.38498402555910544, 0.5732828562631959],
+                                                              [0.38658146964856227, 0.8682388930286937],
+                                                              [0.38817891373801916, 0.9821682996862889],
+                                                              [0.389776357827476, 0.8172293381553325],
+                                                              [0.3913738019169329, 0.5150703777800493],
+                                                              [0.3929712460063898, 0.3351833155788106],
+                                                              [0.3945686900958466, 0.43205384001732017],
                                                               [0.3961661341853035, 0.7224902558352766],
-                                                              [0.39776357827476039, 0.95706790122482888],
-                                                              [0.39936102236421722, 0.9343332163622543],
-                                                              [0.40095846645367411, 0.6738105817119836],
+                                                              [0.3977635782747604, 0.9570679012248289],
+                                                              [0.3993610223642172, 0.9343332163622543],
+                                                              [0.4009584664536741, 0.6738105817119836],
                                                               [0.402555910543131, 0.39923492341242267],
-                                                              [0.40415335463258784, 0.34640980114859971],
-                                                              [0.40575079872204473, 0.56070104213093397],
-                                                              [0.40734824281150156, 0.85807690171792494],
-                                                              [0.40894568690095845, 0.98315317473541353],
-                                                              [0.41054313099041534, 0.82851527610213149],
-                                                              [0.41214057507987217, 0.5269650979660121],
-                                                              [0.41373801916932906, 0.33747171962747519],
+                                                              [0.40415335463258784, 0.3464098011485997],
+                                                              [0.4057507987220447, 0.560701042130934],
+                                                              [0.40734824281150156, 0.858076901717925],
+                                                              [0.40894568690095845, 0.9831531747354135],
+                                                              [0.41054313099041534, 0.8285152761021315],
+                                                              [0.4121405750798722, 0.5269650979660121],
+                                                              [0.41373801916932906, 0.3374717196274752],
                                                               [0.4153354632587859, 0.42277066333089725],
-                                                              [0.41693290734824279, 0.70960782240417508],
-                                                              [0.41853035143769968, 0.95164955030960729],
-                                                              [0.42012779552715651, 0.94103218795274135],
-                                                              [0.4217252396166134, 0.68687384818349029],
-                                                              [0.42332268370607029, 0.40744384741678763],
-                                                              [0.42492012779552712, 0.34271461901266992],
-                                                              [0.42651757188498401, 0.54827514914668274],
-                                                              [0.4281150159744409, 0.84759156356163101],
-                                                              [0.42971246006389774, 0.98361312284272207],
+                                                              [0.4169329073482428, 0.7096078224041751],
+                                                              [0.4185303514376997, 0.9516495503096073],
+                                                              [0.4201277955271565, 0.9410321879527414],
+                                                              [0.4217252396166134, 0.6868738481834903],
+                                                              [0.4233226837060703, 0.40744384741678763],
+                                                              [0.4249201277955271, 0.3427146190126699],
+                                                              [0.426517571884984, 0.5482751491466827],
+                                                              [0.4281150159744409, 0.847591563561631],
+                                                              [0.42971246006389774, 0.9836131228427221],
                                                               [0.43130990415335463, 0.8395255104149848],
-                                                              [0.43290734824281146, 0.53907011008277117],
+                                                              [0.43290734824281146, 0.5390701100827712],
                                                               [0.43450479233226835, 0.34027581400528173],
-                                                              [0.43610223642172524, 0.41386570430298197],
-                                                              [0.43769968051118208, 0.6966413234123211],
-                                                              [0.43929712460063897, 0.94575704550082107],
-                                                              [0.4408945686900958, 0.94727411719987176],
-                                                              [0.44249201277955269, 0.69988968847116684],
-                                                              [0.44408945686900958, 0.41605569065536624],
-                                                              [0.44568690095846641, 0.33952667744848419],
-                                                              [0.4472843450479233, 0.53602520359233818],
-                                                              [0.44888178913738019, 0.83679977733222688],
+                                                              [0.43610223642172524, 0.413865704302982],
+                                                              [0.4376996805111821, 0.6966413234123211],
+                                                              [0.43929712460063897, 0.9457570455008211],
+                                                              [0.4408945686900958, 0.9472741171998718],
+                                                              [0.4424920127795527, 0.6998896884711668],
+                                                              [0.4440894568690096, 0.41605569065536624],
+                                                              [0.4456869009584664, 0.3395266774484842],
+                                                              [0.4472843450479233, 0.5360252035923382],
+                                                              [0.4488817891373802, 0.8367997773322269],
                                                               [0.45047923322683703, 0.9835474027294604],
-                                                              [0.45207667731629392, 0.85024229636868298],
-                                                              [0.45367412140575081, 0.55136590499840787],
+                                                              [0.4520766773162939, 0.850242296368683],
+                                                              [0.4536741214057508, 0.5513659049984079],
                                                               [0.45527156549520764, 0.34359107947287587],
-                                                              [0.45686900958466453, 0.40535331467636038],
-                                                              [0.45846645367412137, 0.68361165641327126],
-                                                              [0.46006389776357826, 0.93939988349722425],
-                                                              [0.46166134185303515, 0.95304894425241904],
-                                                              [0.46325878594249198, 0.71283712550020284],
+                                                              [0.45686900958466453, 0.4053533146763604],
+                                                              [0.45846645367412137, 0.6836116564132713],
+                                                              [0.46006389776357826, 0.9393998834972243],
+                                                              [0.46166134185303515, 0.953048944252419],
+                                                              [0.463258785942492, 0.7128371255002028],
                                                               [0.46485623003194887, 0.42505657378761064],
                                                               [0.4664536741214057, 0.33685111432553844],
-                                                              [0.46805111821086259, 0.52397094818285228],
-                                                              [0.46964856230031948, 0.82571893569145882],
-                                                              [0.47124600638977632, 0.98295612031393398],
-                                                              [0.47284345047923321, 0.86064836217622676],
-                                                              [0.4744408945686901, 0.56383266610453542],
-                                                              [0.47603833865814693, 0.34741217295826748],
-                                                              [0.47763578274760382, 0.39724721350642911],
-                                                              [0.47923322683706071, 0.67053982076580343],
-                                                              [0.48083067092651754, 0.93258830986576846],
-                                                              [0.48242811501597443, 0.95834736206785853],
-                                                              [0.48402555910543127, 0.72569529243837572],
+                                                              [0.4680511182108626, 0.5239709481828523],
+                                                              [0.4696485623003195, 0.8257189356914588],
+                                                              [0.4712460063897763, 0.982956120313934],
+                                                              [0.4728434504792332, 0.8606483621762268],
+                                                              [0.4744408945686901, 0.5638326661045354],
+                                                              [0.47603833865814693, 0.3474121729582675],
+                                                              [0.4776357827476038, 0.3972472135064291],
+                                                              [0.4792332268370607, 0.6705398207658034],
+                                                              [0.48083067092651754, 0.9325883098657685],
+                                                              [0.48242811501597443, 0.9583473620678585],
+                                                              [0.48402555910543127, 0.7256952924383757],
                                                               [0.48562300319488816, 0.4344319904739456],
                                                               [0.48722044728434505, 0.3346922417348413],
-                                                              [0.48881789137380188, 0.51213181024772159],
-                                                              [0.49041533546325877, 0.81436689715935595],
-                                                              [0.49201277955271561, 0.98184022854079955],
-                                                              [0.4936102236421725, 0.87072693682507218],
-                                                              [0.49520766773162939, 0.57645030125384877],
-                                                              [0.49680511182108622, 0.35173293616800377],
-                                                              [0.49840255591054311, 0.38956046505083225],
-                                                              [0.5, 0.65744688379004335],
-                                                              [0.50159744408945683, 0.92533330252924728],
-                                                              [0.50319488817891367, 0.96316083141209974],
-                                                              [0.50479233226837061, 0.73844346632625313],
-                                                              [0.50638977635782745, 0.44416683075502805],
-                                                              [0.50798722044728428, 0.33305353903929219],
-                                                              [0.50958466453674123, 0.50052687042073174],
-                                                              [0.51118210862619806, 0.80276195733236599],
-                                                              [0.5127795527156549, 0.98020152584524933],
-                                                              [0.51437699680511184, 0.88046177710615448],
-                                                              [0.51597444089456868, 0.58919847514174439],
-                                                              [0.51757188498402551, 0.35654640551224609],
-                                                              [0.51916932907348246, 0.38230545771432184],
-                                                              [0.52076677316293929, 0.64435394681428337],
-                                                              [0.52236421725239612, 0.9176465540736608],
-                                                              [0.52396166134185296, 0.96748159462183514],
-                                                              [0.5255591054313099, 0.75106110147556637],
-                                                              [0.52715654952076674, 0.45424540540387365],
-                                                              [0.52875399361022357, 0.33193764726615876],
-                                                              [0.53035143769968052, 0.48917483188862909],
-                                                              [0.53194888178913735, 0.79092281939721831],
-                                                              [0.5335463258785943, 0.97804265325454776],
-                                                              [0.53514376996805113, 0.88983719379248927],
-                                                              [0.53674121405750796, 0.60205664207991738],
+                                                              [0.4888178913738019, 0.5121318102477216],
+                                                              [0.4904153354632588, 0.814366897159356],
+                                                              [0.4920127795527156, 0.9818402285407996],
+                                                              [0.4936102236421725, 0.8707269368250722],
+                                                              [0.4952076677316294, 0.5764503012538488],
+                                                              [0.4968051118210862, 0.3517329361680038],
+                                                              [0.4984025559105431, 0.38956046505083225],
+                                                              [0.5, 0.6574468837900433],
+                                                              [0.5015974440894568, 0.9253333025292473],
+                                                              [0.5031948881789137, 0.9631608314120997],
+                                                              [0.5047923322683706, 0.7384434663262531],
+                                                              [0.5063897763578274, 0.44416683075502805],
+                                                              [0.5079872204472843, 0.3330535390392922],
+                                                              [0.5095846645367412, 0.5005268704207317],
+                                                              [0.5111821086261981, 0.802761957332366],
+                                                              [0.5127795527156549, 0.9802015258452493],
+                                                              [0.5143769968051118, 0.8804617771061545],
+                                                              [0.5159744408945687, 0.5891984751417444],
+                                                              [0.5175718849840255, 0.3565464055122461],
+                                                              [0.5191693290734825, 0.38230545771432184],
+                                                              [0.5207667731629393, 0.6443539468142834],
+                                                              [0.5223642172523961, 0.9176465540736608],
+                                                              [0.523961661341853, 0.9674815946218351],
+                                                              [0.5255591054313099, 0.7510611014755664],
+                                                              [0.5271565495207667, 0.45424540540387365],
+                                                              [0.5287539936102236, 0.33193764726615876],
+                                                              [0.5303514376996805, 0.4891748318886291],
+                                                              [0.5319488817891374, 0.7909228193972183],
+                                                              [0.5335463258785943, 0.9780426532545478],
+                                                              [0.5351437699680511, 0.8898371937924893],
+                                                              [0.536741214057508, 0.6020566420799174],
                                                               [0.5383386581469648, 0.3618448233276787],
-                                                              [0.53993610223642174, 0.37549388408286638],
-                                                              [0.54153354632587858, 0.63128211116681554],
-                                                              [0.54313099041533552, 0.9095404529037292],
-                                                              [0.54472843450479236, 0.97130268810722076],
-                                                              [0.54632587859424919, 0.76352786258169392],
-                                                              [0.54792332268370603, 0.46465147121143263],
-                                                              [0.54952076677316297, 0.33134636485063385],
-                                                              [0.55111821086261981, 0.47809399024786114],
-                                                              [0.55271565495207675, 0.77886856398773197],
-                                                              [0.55431309904153347, 0.97536709013160439],
-                                                              [0.55591054313099042, 0.89883807692473339],
-                                                              [0.55750798722044725, 0.61500407910893529],
-                                                              [0.55910543130990409, 0.36761965038023475],
-                                                              [0.56070287539936103, 0.36913672207926979],
-                                                              [0.56230031948881776, 0.61825244416776581],
-                                                              [0.5638977635782747, 0.90102806327709506],
-                                                              [0.56549520766773165, 0.97461795357481462],
-                                                              [0.56709265175718848, 0.77582365749734772],
-                                                              [0.56869009584664532, 0.47536825716513137],
-                                                              [0.57028753993610226, 0.33128064473737251],
-                                                              [0.57188498402555898, 0.46730220401845735],
-                                                              [0.57348242811501593, 0.76661861843340451],
-                                                              [0.57507987220447276, 0.97217914856741772],
-                                                              [0.57667731629392971, 0.90744992016331782],
-                                                              [0.57827476038338654, 0.62801991939662105],
-                                                              [0.57987220447284338, 0.37386157962737065],
-                                                              [0.58146964856230021, 0.36324421727048783],
-                                                              [0.58306709265175716, 0.60528594517590262],
-                                                              [0.58466453674121399, 0.89212310424917252],
-                                                              [0.58626198083067094, 0.97742204795262067],
-                                                              [0.58785942492012777, 0.78792866961410646],
-                                                              [0.58945686900958461, 0.48637849147796952],
-                                                              [0.59105431309904155, 0.33174059284468144],
-                                                              [0.59265175718849838, 0.45681686586216341],
-                                                              [0.59424920127795522, 0.75419272544914429],
-                                                              [0.59584664536741216, 0.9684839664314896],
-                                                              [0.597444089456869, 0.91565884416767085],
-                                                              [0.59904153354632583, 0.64108318586812774],
-                                                              [0.60063897763578278, 0.38056055121783933],
-                                                              [0.60223642172523961, 0.35782586635526253],
-                                                              [0.60383386581469645, 0.59240351174479211],
-                                                              [0.60543130990415328, 0.88283992756275531],
-                                                              [0.60702875399361023, 0.97971045200128504],
-                                                              [0.60862619808306706, 0.79982338980005208],
-                                                              [0.61022364217252401, 0.49766442942478489],
-                                                              [0.61182108626198084, 0.33272546789380714],
-                                                              [0.61341853035143767, 0.44665487455138786],
-                                                              [0.61501597444089451, 0.74161091131688217],
-                                                              [0.61661341853035145, 0.9642874990913114],
-                                                              [0.61821086261980829, 0.92345161896500594],
-                                                              [0.61980830670926501, 0.65417282501386809],
-                                                              [0.62140575079872207, 0.38770576870479384],
+                                                              [0.5399361022364217, 0.3754938840828664],
+                                                              [0.5415335463258786, 0.6312821111668155],
+                                                              [0.5431309904153355, 0.9095404529037292],
+                                                              [0.5447284345047924, 0.9713026881072208],
+                                                              [0.5463258785942492, 0.7635278625816939],
+                                                              [0.547923322683706, 0.46465147121143263],
+                                                              [0.549520766773163, 0.33134636485063385],
+                                                              [0.5511182108626198, 0.47809399024786114],
+                                                              [0.5527156549520768, 0.778868563987732],
+                                                              [0.5543130990415335, 0.9753670901316044],
+                                                              [0.5559105431309904, 0.8988380769247334],
+                                                              [0.5575079872204473, 0.6150040791089353],
+                                                              [0.5591054313099041, 0.36761965038023475],
+                                                              [0.560702875399361, 0.3691367220792698],
+                                                              [0.5623003194888178, 0.6182524441677658],
+                                                              [0.5638977635782747, 0.9010280632770951],
+                                                              [0.5654952076677316, 0.9746179535748146],
+                                                              [0.5670926517571885, 0.7758236574973477],
+                                                              [0.5686900958466453, 0.47536825716513137],
+                                                              [0.5702875399361023, 0.3312806447373725],
+                                                              [0.571884984025559, 0.46730220401845735],
+                                                              [0.5734824281150159, 0.7666186184334045],
+                                                              [0.5750798722044728, 0.9721791485674177],
+                                                              [0.5766773162939297, 0.9074499201633178],
+                                                              [0.5782747603833865, 0.628019919396621],
+                                                              [0.5798722044728434, 0.37386157962737065],
+                                                              [0.5814696485623002, 0.36324421727048783],
+                                                              [0.5830670926517572, 0.6052859451759026],
+                                                              [0.584664536741214, 0.8921231042491725],
+                                                              [0.5862619808306709, 0.9774220479526207],
+                                                              [0.5878594249201278, 0.7879286696141065],
+                                                              [0.5894568690095846, 0.4863784914779695],
+                                                              [0.5910543130990416, 0.33174059284468144],
+                                                              [0.5926517571884984, 0.4568168658621634],
+                                                              [0.5942492012779552, 0.7541927254491443],
+                                                              [0.5958466453674122, 0.9684839664314896],
+                                                              [0.597444089456869, 0.9156588441676708],
+                                                              [0.5990415335463258, 0.6410831858681277],
+                                                              [0.6006389776357828, 0.3805605512178393],
+                                                              [0.6022364217252396, 0.35782586635526253],
+                                                              [0.6038338658146964, 0.5924035117447921],
+                                                              [0.6054313099041533, 0.8828399275627553],
+                                                              [0.6070287539936102, 0.979710452001285],
+                                                              [0.6086261980830671, 0.7998233898000521],
+                                                              [0.610223642172524, 0.4976644294247849],
+                                                              [0.6118210862619808, 0.33272546789380714],
+                                                              [0.6134185303514377, 0.44665487455138786],
+                                                              [0.6150159744408945, 0.7416109113168822],
+                                                              [0.6166134185303515, 0.9642874990913114],
+                                                              [0.6182108626198083, 0.9234516189650059],
+                                                              [0.619808306709265, 0.6541728250138681],
+                                                              [0.6214057507987221, 0.38770576870479384],
                                                               [0.6230031948881789, 0.3528904018587477],
-                                                              [0.62460063897763574, 0.57962590594313879],
-                                                              [0.62619808306709257, 0.8731934945178712],
-                                                              [0.62779552715654952, 0.98147947759757415],
-                                                              [0.62939297124600624, 0.81148864784185581],
-                                                              [0.63099041533546318, 0.50920788194057742],
-                                                              [0.63258785942492013, 0.33423368260362307],
-                                                              [0.63418530351437696, 0.43683260773425925],
-                                                              [0.6357827476038338, 0.72889345360999835],
-                                                              [0.63738019169329074, 0.95959650981436129],
-                                                              [0.63897763578274758, 0.93081568527243475],
-                                                              [0.64057507987220441, 0.66726774082052187],
-                                                              [0.64217252396166136, 0.39528571644584626],
-                                                              [0.64376996805111819, 0.34844577805863658],
-                                                              [0.64536741214057503, 0.5669737208933715],
-                                                              [0.64696485623003197, 0.86319935185938601],
-                                                              [0.6485623003194888, 0.98272627367835985],
-                                                              [0.65015974440894564, 0.82290564334049188],
-                                                              [0.65175718849840258, 0.52099024493507762],
-                                                              [0.65335463258785942, 0.33626280624879218],
-                                                              [0.65495207667731625, 0.42736589553940996],
-                                                              [0.65654952076677309, 0.71606084851285667],
-                                                              [0.65814696485623003, 0.9544185588680506],
-                                                              [0.65974440894568687, 0.9377391747382654],
-                                                              [0.6613418530351437, 0.68034682877065489],
-                                                              [0.66293929712460065, 0.40328817816241219],
-                                                              [0.66453674121405748, 0.34449915816560533],
-                                                              [0.66613418530351431, 0.554467347582696],
-                                                              [0.66773162939297126, 0.85287360672088408],
-                                                              [0.66932907348242809, 0.98344883083556245],
-                                                              [0.67092651757188493, 0.83405597601110726],
-                                                              [0.67252396166134187, 0.53299252927628438],
-                                                              [0.67412140575079871, 0.33880956857725053],
-                                                              [0.67571884984025554, 0.41826999506326035],
-                                                              [0.67731629392971227, 0.70313377778790553],
-                                                              [0.67891373801916932, 0.94876199133514427],
-                                                              [0.68051118210862616, 0.94421092906974557],
-                                                              [0.68210862619808299, 0.69338900985585894],
-                                                              [0.68370607028753994, 0.41170025662813586],
-                                                              [0.68530351437699677, 0.34105690277865047],
-                                                              [0.68690095846645349, 0.54212694199973654],
-                                                              [0.68849840255591055, 0.84223290066552559],
-                                                              [0.69009584664536738, 0.98364598455461771],
-                                                              [0.69169329073482422, 0.84492167533794382],
-                                                              [0.69329073482428116, 0.54519539139423912],
+                                                              [0.6246006389776357, 0.5796259059431388],
+                                                              [0.6261980830670926, 0.8731934945178712],
+                                                              [0.6277955271565495, 0.9814794775975741],
+                                                              [0.6293929712460062, 0.8114886478418558],
+                                                              [0.6309904153354632, 0.5092078819405774],
+                                                              [0.6325878594249201, 0.3342336826036231],
+                                                              [0.634185303514377, 0.43683260773425925],
+                                                              [0.6357827476038338, 0.7288934536099984],
+                                                              [0.6373801916932907, 0.9595965098143613],
+                                                              [0.6389776357827476, 0.9308156852724347],
+                                                              [0.6405750798722044, 0.6672677408205219],
+                                                              [0.6421725239616614, 0.39528571644584626],
+                                                              [0.6437699680511182, 0.3484457780586366],
+                                                              [0.645367412140575, 0.5669737208933715],
+                                                              [0.646964856230032, 0.863199351859386],
+                                                              [0.6485623003194888, 0.9827262736783599],
+                                                              [0.6501597444089456, 0.8229056433404919],
+                                                              [0.6517571884984026, 0.5209902449350776],
+                                                              [0.6533546325878594, 0.3362628062487922],
+                                                              [0.6549520766773163, 0.42736589553940996],
+                                                              [0.6565495207667731, 0.7160608485128567],
+                                                              [0.65814696485623, 0.9544185588680506],
+                                                              [0.6597444089456869, 0.9377391747382654],
+                                                              [0.6613418530351437, 0.6803468287706549],
+                                                              [0.6629392971246006, 0.4032881781624122],
+                                                              [0.6645367412140575, 0.34449915816560533],
+                                                              [0.6661341853035143, 0.554467347582696],
+                                                              [0.6677316293929713, 0.8528736067208841],
+                                                              [0.6693290734824281, 0.9834488308355624],
+                                                              [0.6709265175718849, 0.8340559760111073],
+                                                              [0.6725239616613419, 0.5329925292762844],
+                                                              [0.6741214057507987, 0.33880956857725053],
+                                                              [0.6757188498402555, 0.41826999506326035],
+                                                              [0.6773162939297123, 0.7031337777879055],
+                                                              [0.6789137380191693, 0.9487619913351443],
+                                                              [0.6805111821086262, 0.9442109290697456],
+                                                              [0.682108626198083, 0.6933890098558589],
+                                                              [0.6837060702875399, 0.41170025662813586],
+                                                              [0.6853035143769968, 0.3410569027786505],
+                                                              [0.6869009584664535, 0.5421269419997365],
+                                                              [0.6884984025559105, 0.8422329006655256],
+                                                              [0.6900958466453674, 0.9836459845546177],
+                                                              [0.6916932907348242, 0.8449216753379438],
+                                                              [0.6932907348242812, 0.5451953913942391],
                                                               [0.694888178913738, 0.34186986508074096],
-                                                              [0.69648562300319483, 0.40955956578075536],
-                                                              [0.69808306709265178, 0.69013307544389124],
-                                                              [0.69968051118210861, 0.94263592366436277],
-                                                              [0.70127795527156545, 0.95022051801634866],
-                                                              [0.70287539936102239, 0.70637326454892824],
-                                                              [0.70447284345047922, 0.42050839445484783],
-                                                              [0.70607028753993606, 0.33812455963401594],
-                                                              [0.70766773162939289, 0.52997239265002438],
-                                                              [0.70926517571884984, 0.83129438286558155],
-                                                              [0.71086261980830667, 0.98331741709128362],
-                                                              [0.71246006389776351, 0.85548522953671335],
-                                                              [0.71405750798722045, 0.55757916445636613],
-                                                              [0.71565495207667729, 0.34543876360986664],
-                                                              [0.71725239616613412, 0.40124864591939213],
-                                                              [0.71884984025559107, 0.67707969415844582],
-                                                              [0.7204472843450479, 0.93605022897775314],
-                                                              [0.72204472843450473, 0.95575825617980303],
-                                                              [0.72364217252396168, 0.71927866668026352],
-                                                              [0.72523961661341851, 0.42969839594235804],
-                                                              [0.72683706070287535, 0.33570685466412326],
-                                                              [0.72843450479233218, 0.51802328850247248],
-                                                              [0.73003194888178913, 0.82007568246379914],
-                                                              [0.73162939297124596, 0.98246365798373059],
-                                                              [0.7332268370607028, 0.86572961377750179],
-                                                              [0.73482428115015974, 0.57012389006361597],
-                                                              [0.73642172523961658, 0.34951051232304725],
-                                                              [0.73801916932907341, 0.39335062983435437],
-                                                              [0.73961661341853036, 0.66399467150960501],
-                                                              [0.74121405750798719, 0.92901552115865282],
-                                                              [0.74281150159744402, 0.96081521862361929],
-                                                              [0.74440894568690097, 0.73208441716346684],
-                                                              [0.7460063897763578, 0.43925544995710769],
-                                                              [0.74760383386581464, 0.33380768438098063],
-                                                              [0.74920127795527158, 0.50629888741878937],
-                                                              [0.75079872204472842, 0.80859488016129488],
-                                                              [0.75239616613418525, 0.98108608319911006],
-                                                              [0.7539936102236422, 0.87563831762299527],
-                                                              [0.75559105431309903, 0.58280935041663884],
-                                                              [0.75718849840255587, 0.35407854895648627],
-                                                              [0.7587859424920127, 0.38587824642142499],
-                                                              [0.76038338658146964, 0.65089909607047791],
-                                                              [0.76198083067092648, 0.92154313774571162],
-                                                              [0.76357827476038331, 0.96538325525705704],
-                                                              [0.76517571884984026, 0.7447698775164896],
-                                                              [0.76677316293929709, 0.44916415380261576],
-                                                              [0.76837060702875393, 0.33243010959636132],
-                                                              [0.76996805111821087, 0.49481808511628539],
-                                                              [0.77156549520766771, 0.79687047907759478],
-                                                              [0.77316293929712454, 0.97918691291596627],
-                                                              [0.77476038338658149, 0.88519537163774464],
-                                                              [0.77635782747603832, 0.59561510089984226],
-                                                              [0.77795527156549515, 0.35913551140030359],
-                                                              [0.77955271565495199, 0.37884353860232567],
-                                                              [0.78115015974440893, 0.6378140734216371],
-                                                              [0.78274760383386577, 0.91364512166068368],
-                                                              [0.7843450479233226, 0.96945500397023654],
-                                                              [0.78594249201277955, 0.75731460312373933],
-                                                              [0.78753993610223638, 0.45940853804340498],
-                                                              [0.78913738019169322, 0.33157635048880946],
-                                                              [0.79073482428115016, 0.48359938471450314],
-                                                              [0.792332268370607, 0.78492137493004244],
-                                                              [0.79392971246006383, 0.97676920794607236],
-                                                              [0.79552715654952078, 0.89438537312525457],
-                                                              [0.79712460063897761, 0.60852050303117755],
-                                                              [0.79872204472843444, 0.36467324956375907],
-                                                              [0.80031948881789139, 0.37225784391572614],
-                                                              [0.80191693290734822, 0.62476069213619179],
-                                                              [0.80351437699680506, 0.90533420179931956],
-                                                              [0.805111821086262, 0.97302390249935644],
-                                                              [0.80670926517571884, 0.76969837618586612],
-                                                              [0.80830670926517567, 0.46997209224217523],
-                                                              [0.80990415335463251, 0.33124778302547658],
-                                                              [0.81150159744408945, 0.47266086691455939],
-                                                              [0.81309904153354629, 0.7727668255803124],
-                                                              [0.81469648562300312, 0.97383686480143672],
-                                                              [0.81629392971246006, 0.90319351095196621],
-                                                              [0.8178913738019169, 0.62150475772426539],
-                                                              [0.81948881789137373, 0.37068283851036321],
-                                                              [0.82108626198083068, 0.36613177624494497],
-                                                              [0.82268370607028751, 0.61175998979215918],
-                                                              [0.82428115015974435, 0.89662377251681369],
-                                                              [0.82587859424920129, 0.97608419900284638],
-                                                              [0.82747603833865813, 0.78190123830382074],
-                                                              [0.82907348242811496, 0.48083779156902806],
-                                                              [0.83067092651757179, 0.33144493674453307],
-                                                              [0.83226837060702874, 0.46202016085920122],
-                                                              [0.83386581469648557, 0.76042641999736993],
-                                                              [0.83546325878594241, 0.97039460941448064],
-                                                              [0.83706070287539935, 0.91160558941768943],
-                                                              [0.83865814696485619, 0.63454693880946955],
-                                                              [0.84025559105431302, 0.37715459284184444],
-                                                              [0.84185303514376997, 0.3604752087120392],
-                                                              [0.8434504792332268, 0.59883291906720837],
-                                                              [0.84504792332268364, 0.88752787204066319],
-                                                              [0.84664536741214058, 0.97863096133130434],
-                                                              [0.84824281150159742, 0.79390352264502728],
-                                                              [0.84984025559105425, 0.49198812423962857],
+                                                              [0.6964856230031948, 0.40955956578075536],
+                                                              [0.6980830670926518, 0.6901330754438912],
+                                                              [0.6996805111821086, 0.9426359236643628],
+                                                              [0.7012779552715654, 0.9502205180163487],
+                                                              [0.7028753993610224, 0.7063732645489282],
+                                                              [0.7044728434504792, 0.42050839445484783],
+                                                              [0.7060702875399361, 0.33812455963401594],
+                                                              [0.7076677316293929, 0.5299723926500244],
+                                                              [0.7092651757188498, 0.8312943828655815],
+                                                              [0.7108626198083067, 0.9833174170912836],
+                                                              [0.7124600638977635, 0.8554852295367134],
+                                                              [0.7140575079872205, 0.5575791644563661],
+                                                              [0.7156549520766773, 0.34543876360986664],
+                                                              [0.7172523961661341, 0.40124864591939213],
+                                                              [0.7188498402555911, 0.6770796941584458],
+                                                              [0.7204472843450479, 0.9360502289777531],
+                                                              [0.7220447284345047, 0.955758256179803],
+                                                              [0.7236421725239617, 0.7192786666802635],
+                                                              [0.7252396166134185, 0.42969839594235804],
+                                                              [0.7268370607028753, 0.33570685466412326],
+                                                              [0.7284345047923322, 0.5180232885024725],
+                                                              [0.7300319488817891, 0.8200756824637991],
+                                                              [0.731629392971246, 0.9824636579837306],
+                                                              [0.7332268370607028, 0.8657296137775018],
+                                                              [0.7348242811501597, 0.570123890063616],
+                                                              [0.7364217252396166, 0.34951051232304725],
+                                                              [0.7380191693290734, 0.39335062983435437],
+                                                              [0.7396166134185304, 0.663994671509605],
+                                                              [0.7412140575079872, 0.9290155211586528],
+                                                              [0.742811501597444, 0.9608152186236193],
+                                                              [0.744408945686901, 0.7320844171634668],
+                                                              [0.7460063897763578, 0.4392554499571077],
+                                                              [0.7476038338658146, 0.33380768438098063],
+                                                              [0.7492012779552716, 0.5062988874187894],
+                                                              [0.7507987220447284, 0.8085948801612949],
+                                                              [0.7523961661341853, 0.9810860831991101],
+                                                              [0.7539936102236422, 0.8756383176229953],
+                                                              [0.755591054313099, 0.5828093504166388],
+                                                              [0.7571884984025559, 0.35407854895648627],
+                                                              [0.7587859424920127, 0.385878246421425],
+                                                              [0.7603833865814696, 0.6508990960704779],
+                                                              [0.7619808306709265, 0.9215431377457116],
+                                                              [0.7635782747603833, 0.965383255257057],
+                                                              [0.7651757188498403, 0.7447698775164896],
+                                                              [0.7667731629392971, 0.44916415380261576],
+                                                              [0.7683706070287539, 0.3324301095963613],
+                                                              [0.7699680511182109, 0.4948180851162854],
+                                                              [0.7715654952076677, 0.7968704790775948],
+                                                              [0.7731629392971245, 0.9791869129159663],
+                                                              [0.7747603833865815, 0.8851953716377446],
+                                                              [0.7763578274760383, 0.5956151008998423],
+                                                              [0.7779552715654952, 0.3591355114003036],
+                                                              [0.779552715654952, 0.37884353860232567],
+                                                              [0.7811501597444089, 0.6378140734216371],
+                                                              [0.7827476038338658, 0.9136451216606837],
+                                                              [0.7843450479233226, 0.9694550039702365],
+                                                              [0.7859424920127795, 0.7573146031237393],
+                                                              [0.7875399361022364, 0.459408538043405],
+                                                              [0.7891373801916932, 0.33157635048880946],
+                                                              [0.7907348242811502, 0.48359938471450314],
+                                                              [0.792332268370607, 0.7849213749300424],
+                                                              [0.7939297124600638, 0.9767692079460724],
+                                                              [0.7955271565495208, 0.8943853731252546],
+                                                              [0.7971246006389776, 0.6085205030311776],
+                                                              [0.7987220447284344, 0.36467324956375907],
+                                                              [0.8003194888178914, 0.37225784391572614],
+                                                              [0.8019169329073482, 0.6247606921361918],
+                                                              [0.8035143769968051, 0.9053342017993196],
+                                                              [0.805111821086262, 0.9730239024993564],
+                                                              [0.8067092651757188, 0.7696983761858661],
+                                                              [0.8083067092651757, 0.46997209224217523],
+                                                              [0.8099041533546325, 0.3312477830254766],
+                                                              [0.8115015974440895, 0.4726608669145594],
+                                                              [0.8130990415335463, 0.7727668255803124],
+                                                              [0.8146964856230031, 0.9738368648014367],
+                                                              [0.8162939297124601, 0.9031935109519662],
+                                                              [0.8178913738019169, 0.6215047577242654],
+                                                              [0.8194888178913737, 0.3706828385103632],
+                                                              [0.8210862619808307, 0.366131776244945],
+                                                              [0.8226837060702875, 0.6117599897921592],
+                                                              [0.8242811501597443, 0.8966237725168137],
+                                                              [0.8258785942492013, 0.9760841990028464],
+                                                              [0.8274760383386581, 0.7819012383038207],
+                                                              [0.829073482428115, 0.48083779156902806],
+                                                              [0.8306709265175718, 0.33144493674453307],
+                                                              [0.8322683706070287, 0.4620201608592012],
+                                                              [0.8338658146964856, 0.7604264199973699],
+                                                              [0.8354632587859424, 0.9703946094144806],
+                                                              [0.8370607028753994, 0.9116055894176894],
+                                                              [0.8386581469648562, 0.6345469388094696],
+                                                              [0.840255591054313, 0.37715459284184444],
+                                                              [0.84185303514377, 0.3604752087120392],
+                                                              [0.8434504792332268, 0.5988329190672084],
+                                                              [0.8450479233226836, 0.8875278720406632],
+                                                              [0.8466453674121406, 0.9786309613313043],
+                                                              [0.8482428115015974, 0.7939035226450273],
+                                                              [0.8498402555910542, 0.49198812423962857],
                                                               [0.8514376996805112, 0.3321674939017355],
-                                                              [0.85303514376996803, 0.45169441572069946],
-                                                              [0.85463258785942486, 0.74792004668667622],
-                                                              [0.85623003194888181, 0.96644798952145428],
-                                                              [0.85782747603833864, 0.91960805113426614],
-                                                              [0.85942492012779548, 0.64762602675960257],
-                                                              [0.86102236421725231, 0.38407808230767615],
-                                                              [0.86261980830670926, 0.35529725776572879],
-                                                              [0.86421725239616609, 0.5860003139700668],
-                                                              [0.86581469648562293, 0.87806115984579947],
-                                                              [0.86741214057507987, 0.9806600849764705],
-                                                              [0.86900958466453671, 0.80568588563956034],
-                                                              [0.87060702875399354, 0.50340511973826518],
-                                                              [0.87220447284345048, 0.33341428998252381],
-                                                              [0.87380191693290732, 0.44170027306220078],
-                                                              [0.87539936102236415, 0.73526786163694458],
+                                                              [0.853035143769968, 0.45169441572069946],
+                                                              [0.8546325878594249, 0.7479200466866762],
+                                                              [0.8562300319488818, 0.9664479895214543],
+                                                              [0.8578274760383386, 0.9196080511342661],
+                                                              [0.8594249201277955, 0.6476260267596026],
+                                                              [0.8610223642172523, 0.38407808230767615],
+                                                              [0.8626198083067093, 0.3552972577657288],
+                                                              [0.8642172523961661, 0.5860003139700668],
+                                                              [0.8658146964856229, 0.8780611598457995],
+                                                              [0.8674121405750799, 0.9806600849764705],
+                                                              [0.8690095846645367, 0.8056858856395603],
+                                                              [0.8706070287539935, 0.5034051197382652],
+                                                              [0.8722044728434505, 0.3334142899825238],
+                                                              [0.8738019169329073, 0.4417002730622008],
+                                                              [0.8753993610223642, 0.7352678616369446],
                                                               [0.8769968051118211, 0.9620033657213426],
-                                                              [0.87859424920127793, 0.92718799887529668],
-                                                              [0.88019169329073477, 0.66072094256627489],
+                                                              [0.8785942492012779, 0.9271879988752967],
+                                                              [0.8801916932907348, 0.6607209425662749],
                                                               [0.8817891373801916, 0.3914421486151059],
-                                                              [0.88338658146964855, 0.35060626848877913],
-                                                              [0.88498402555910538, 0.5732828562631832],
-                                                              [0.88658146964856221, 0.86823889302869783],
-                                                              [0.88817891373801916, 0.98216829968628849],
-                                                              [0.88977635782747599, 0.81722933815535193],
-                                                              [0.89137380191693283, 0.51507037778006937],
-                                                              [0.89297124600638977, 0.33518331557881409],
-                                                              [0.89456869009584661, 0.43205384001731739],
-                                                              [0.89616613418530344, 0.72249025583527282],
-                                                              [0.89776357827476039, 0.95706790122482743],
-                                                              [0.89936102236421722, 0.93433321636225142],
-                                                              [0.90095846645367406, 0.67381058171201524],
+                                                              [0.8833865814696485, 0.3506062684887791],
+                                                              [0.8849840255591054, 0.5732828562631832],
+                                                              [0.8865814696485622, 0.8682388930286978],
+                                                              [0.8881789137380192, 0.9821682996862885],
+                                                              [0.889776357827476, 0.8172293381553519],
+                                                              [0.8913738019169328, 0.5150703777800694],
+                                                              [0.8929712460063898, 0.3351833155788141],
+                                                              [0.8945686900958466, 0.4320538400173174],
+                                                              [0.8961661341853034, 0.7224902558352728],
+                                                              [0.8977635782747604, 0.9570679012248274],
+                                                              [0.8993610223642172, 0.9343332163622514],
+                                                              [0.9009584664536741, 0.6738105817120152],
                                                               [0.902555910543131, 0.39923492341241934],
-                                                              [0.90415335463258784, 0.34640980114859576],
-                                                              [0.90575079872204467, 0.56070104213092153],
-                                                              [0.90734824281150162, 0.85807690171792195],
-                                                              [0.90894568690095845, 0.98315317473541375],
-                                                              [0.91054313099041528, 0.82851527610213471],
-                                                              [0.91214057507987212, 0.52696509796603253],
-                                                              [0.91373801916932906, 0.33747171962747236],
+                                                              [0.9041533546325878, 0.34640980114859576],
+                                                              [0.9057507987220447, 0.5607010421309215],
+                                                              [0.9073482428115016, 0.858076901717922],
+                                                              [0.9089456869009584, 0.9831531747354137],
+                                                              [0.9105431309904153, 0.8285152761021347],
+                                                              [0.9121405750798721, 0.5269650979660325],
+                                                              [0.9137380191693291, 0.33747171962747236],
                                                               [0.9153354632587859, 0.42277066333088814],
-                                                              [0.91693290734824273, 0.7096078224041622],
-                                                              [0.91853035143769979, 0.95164955030960163],
-                                                              [0.92012779552715651, 0.94103218795273869],
-                                                              [0.92172523961661335, 0.68687384818348485],
-                                                              [0.92332268370607029, 0.40744384741678413],
-                                                              [0.92492012779552712, 0.34271461901266403],
-                                                              [0.92651757188498396, 0.54827514914666164],
-                                                              [0.92811501597444102, 0.84759156356161269],
-                                                              [0.92971246006389774, 0.98361312284272218],
-                                                              [0.93130990415335457, 0.83952551041498802],
-                                                              [0.93290734824281141, 0.53907011008279193],
-                                                              [0.93450479233226835, 0.34027581400527829],
-                                                              [0.93610223642172519, 0.4138657043029671],
-                                                              [0.93769968051118202, 0.69664132341229879],
-                                                              [0.93929712460063897, 0.94575704550081063],
-                                                              [0.9408945686900958, 0.94727411719987342],
-                                                              [0.94249201277955263, 0.69988968847117061],
-                                                              [0.94408945686900958, 0.41605569065536885],
-                                                              [0.94568690095846641, 0.33952667744848747],
-                                                              [0.94728434504792325, 0.53602520359231742],
-                                                              [0.94888178913738019, 0.8367997773322392],
-                                                              [0.95047923322683703, 0.98354740272946029],
-                                                              [0.95207667731629386, 0.85024229636868609],
-                                                              [0.95367412140575081, 0.55136590499841143],
-                                                              [0.95527156549520764, 0.34359107947287687],
-                                                              [0.95686900958466448, 0.40535331467633445],
-                                                              [0.95846645367412142, 0.68361165641328592],
-                                                              [0.96006389776357826, 0.93939988349721293],
-                                                              [0.96166134185303509, 0.95304894425242848],
-                                                              [0.96325878594249192, 0.71283712550020661],
-                                                              [0.96485623003194887, 0.4250565737876133],
+                                                              [0.9169329073482427, 0.7096078224041622],
+                                                              [0.9185303514376998, 0.9516495503096016],
+                                                              [0.9201277955271565, 0.9410321879527387],
+                                                              [0.9217252396166133, 0.6868738481834848],
+                                                              [0.9233226837060703, 0.40744384741678413],
+                                                              [0.9249201277955271, 0.34271461901266403],
+                                                              [0.926517571884984, 0.5482751491466616],
+                                                              [0.928115015974441, 0.8475915635616127],
+                                                              [0.9297124600638977, 0.9836131228427222],
+                                                              [0.9313099041533546, 0.839525510414988],
+                                                              [0.9329073482428114, 0.5390701100827919],
+                                                              [0.9345047923322684, 0.3402758140052783],
+                                                              [0.9361022364217252, 0.4138657043029671],
+                                                              [0.937699680511182, 0.6966413234122988],
+                                                              [0.939297124600639, 0.9457570455008106],
+                                                              [0.9408945686900958, 0.9472741171998734],
+                                                              [0.9424920127795526, 0.6998896884711706],
+                                                              [0.9440894568690096, 0.41605569065536885],
+                                                              [0.9456869009584664, 0.33952667744848747],
+                                                              [0.9472843450479232, 0.5360252035923174],
+                                                              [0.9488817891373802, 0.8367997773322392],
+                                                              [0.950479233226837, 0.9835474027294603],
+                                                              [0.9520766773162939, 0.8502422963686861],
+                                                              [0.9536741214057508, 0.5513659049984114],
+                                                              [0.9552715654952076, 0.34359107947287687],
+                                                              [0.9568690095846645, 0.40535331467633445],
+                                                              [0.9584664536741214, 0.6836116564132859],
+                                                              [0.9600638977635783, 0.9393998834972129],
+                                                              [0.9616613418530351, 0.9530489442524285],
+                                                              [0.9632587859424919, 0.7128371255002066],
+                                                              [0.9648562300319489, 0.4250565737876133],
                                                               [0.9664536741214057, 0.33685111432554116],
-                                                              [0.96805111821086254, 0.52397094818283185],
-                                                              [0.96964856230031948, 0.82571893569147148],
-                                                              [0.97124600638977632, 0.98295612031393254],
-                                                              [0.97284345047923315, 0.8606483621762443],
-                                                              [0.9744408945686901, 0.56383266610455696],
-                                                              [0.97603833865814704, 0.34741217295826871],
-                                                              [0.97763578274760377, 0.39724721350642678],
-                                                              [0.97923322683706071, 0.67053982076579965],
-                                                              [0.98083067092651754, 0.93258830986577645],
-                                                              [0.98242811501597438, 0.95834736206786719],
-                                                              [0.98402555910543121, 0.72569529243837949],
-                                                              [0.98562300319488827, 0.43443199047394837],
-                                                              [0.98722044728434499, 0.33469224173484075],
-                                                              [0.98881789137380183, 0.51213181024771814],
-                                                              [0.99041533546325877, 0.81436689715935262],
-                                                              [0.99201277955271561, 0.98184022854079711],
-                                                              [0.99361022364217244, 0.87072693682508917],
-                                                              [0.9952076677316295, 0.57645030125387042],
-                                                              [0.99680511182108622, 0.35173293616800511],
-                                                              [0.99840255591054305, 0.38956046505083003],
-                                                              [1.0, 0.65744688379003957]]},
+                                                              [0.9680511182108625, 0.5239709481828319],
+                                                              [0.9696485623003195, 0.8257189356914715],
+                                                              [0.9712460063897763, 0.9829561203139325],
+                                                              [0.9728434504792332, 0.8606483621762443],
+                                                              [0.9744408945686901, 0.563832666104557],
+                                                              [0.976038338658147, 0.3474121729582687],
+                                                              [0.9776357827476038, 0.3972472135064268],
+                                                              [0.9792332268370607, 0.6705398207657997],
+                                                              [0.9808306709265175, 0.9325883098657765],
+                                                              [0.9824281150159744, 0.9583473620678672],
+                                                              [0.9840255591054312, 0.7256952924383795],
+                                                              [0.9856230031948883, 0.43443199047394837],
+                                                              [0.987220447284345, 0.33469224173484075],
+                                                              [0.9888178913738018, 0.5121318102477181],
+                                                              [0.9904153354632588, 0.8143668971593526],
+                                                              [0.9920127795527156, 0.9818402285407971],
+                                                              [0.9936102236421724, 0.8707269368250892],
+                                                              [0.9952076677316295, 0.5764503012538704],
+                                                              [0.9968051118210862, 0.3517329361680051],
+                                                              [0.998402555910543, 0.38956046505083003],
+                                                              [1.0, 0.6574468837900396]]},
                                      'drive2': {'curved': False, 'data': [[0.0, 0.75], [1.0, 0.75]]},
-                                     'drive2mul': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
+                                     'drive2mul': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
                                      'drive2slope': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
                                      'drive3': {'curved': False, 'data': [[0.0, 0.75], [1.0, 0.75]]},
-                                     'drive3mul': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
+                                     'drive3mul': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
                                      'drive3slope': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
                                      'drive4': {'curved': False, 'data': [[0.0, 0.75], [1.0, 0.75]]},
-                                     'drive4mul': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
+                                     'drive4mul': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
                                      'drive4slope': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
                                      'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
                                      'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                     'sndgain': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
+                                     'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
                                      'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
                                      'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
                                      'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
@@ -798,14 +827,233 @@ CECILIA_PRESETS = {u'01-Crunchy Guitar': {'gainSlider': 0.0,
                        'userSliders': {'drive1': [1.0, 0, None, 1],
                                        'drive1mul': [2.229281767955797, 0, None, 1],
                                        'drive1slope': [0.38288950794254395, 1, None, 1],
-                                       'drive2': [0.89088397790055252, 0, None, 1],
+                                       'drive2': [0.8908839779005525, 0, None, 1],
                                        'drive2mul': [-48.0, 0, None, 1],
-                                       'drive2slope': [0.85773480662983426, 0, None, 1],
-                                       'drive3': [0.85220994475138123, 0, None, 1],
+                                       'drive2slope': [0.8577348066298343, 0, None, 1],
+                                       'drive3': [0.8522099447513812, 0, None, 1],
                                        'drive3mul': [-48.0, 0, None, 1],
                                        'drive3slope': [0.30662983425414364, 0, None, 1],
-                                       'drive4': [0.76519337016574585, 0, None, 1],
+                                       'drive4': [0.7651933701657458, 0, None, 1],
                                        'drive4mul': [-48.0, 0, None, 1],
                                        'drive4slope': [0.0, 0, None, 1],
-                                       'splitter': [[124.01298925326056, 498.68216686341083, 2002.1361873284786], 0, None, [1, 1]]},
-                       'userTogglePopups': {'polynum': 0, 'polyspread': 0.001}}}
\ No newline at end of file
+                                       'splitter': [[124.01298925326056, 498.6821668634108, 2002.1361873284786], 0, None, [1, 1]]},
+                       'userTogglePopups': {'polynum': 0, 'polyspread': 0.001}},
+ u'03-Mid Boost': {'active': False,
+                   'gainSlider': -3.0,
+                   'nchnls': 2,
+                   'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                   'totalTime': 30.000000000000227,
+                   'userGraph': {'drive1': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                 'drive1mul': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                 'drive1slope': {'curved': False, 'data': [[0.0, 0.85], [1.0, 0.85]]},
+                                 'drive2': {'curved': False, 'data': [[0.0, 0.95], [1.0, 0.95]]},
+                                 'drive2mul': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                 'drive2slope': {'curved': False, 'data': [[0.0, 0.8], [1.0, 0.8]]},
+                                 'drive3': {'curved': False, 'data': [[0.0, 0.75], [1.0, 0.75]]},
+                                 'drive3mul': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                 'drive3slope': {'curved': False, 'data': [[0.0, 0.75], [1.0, 0.75]]},
+                                 'drive4': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                 'drive4mul': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                 'drive4slope': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                 'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                 'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                 'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                 'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                 'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                 'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                 'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
+                   'userInputs': {'snd': {'dursnd': 5.466417233560091,
+                                          'gain': [0.0, False, False, False, None, 1, None, None],
+                                          'loopIn': [0.0, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                          'loopMode': 1,
+                                          'loopOut': [5.466417233560091, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                          'loopX': [1.0, False, False, False, None, 1, None, None],
+                                          'mode': 0,
+                                          'nchnlssnd': 1,
+                                          'offsnd': 0.0,
+                                          'path': u'/home/olivier/Dropbox/private/snds/flute.wav',
+                                          'srsnd': 44100.0,
+                                          'startFromLoop': 0,
+                                          'transp': [0.0, False, False, False, None, 1, None, None],
+                                          'type': 'csampler'}},
+                   'userSliders': {'drive1': [0.5, 0, None, 1, None, None],
+                                   'drive1mul': [-48.0, 0, None, 1, None, None],
+                                   'drive1slope': [0.85, 0, None, 1, None, None],
+                                   'drive2': [0.9661016949152542, 0, None, 1, None, None],
+                                   'drive2mul': [6.254237288135599, 0, None, 1, None, None],
+                                   'drive2slope': [0.15254237288135594, 0, None, 1, None, None],
+                                   'drive3': [0.9572649572649573, 0, None, 1, None, None],
+                                   'drive3mul': [5.589743589743591, 0, None, 1, None, None],
+                                   'drive3slope': [0.358974358974359, 0, None, 1, None, None],
+                                   'drive4': [0.5, 0, None, 1, None, None],
+                                   'drive4mul': [-48.0, 0, None, 1, None, None],
+                                   'drive4slope': [0.5, 0, None, 1, None, None],
+                                   'drywet': [0.7065868263473054, 0, None, 1, None, None],
+                                   'splitter': [[178.78792432932337, 299.9693458876769, 517.1826201755748], 0, None, [1, 1]]},
+                   'userTogglePopups': {'poly': 0, 'polynum': 0}},
+ u'04-Moving Band': {'gainSlider': 0.0,
+                     'nchnls': 2,
+                     'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                 1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                 2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                 3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                     'totalTime': 30.000000000000227,
+                     'userGraph': {'drive1': {'curved': False,
+                                              'data': [[0.0, 0.22820412816512659],
+                                                       [0.050000000000000003, 0.97820412816512659],
+                                                       [0.10000000000000001, 0.22820412816512659],
+                                                       [0.15000000000000002, 0.97820412816512659],
+                                                       [0.20000000000000001, 0.22820412816512659],
+                                                       [0.25, 0.97820412816512659],
+                                                       [0.30000000000000004, 0.22820412816512659],
+                                                       [0.35000000000000003, 0.97820412816512659],
+                                                       [0.40000000000000002, 0.22820412816512659],
+                                                       [0.45000000000000001, 0.97820412816512659],
+                                                       [0.5, 0.22820412816512659],
+                                                       [0.55000000000000004, 0.97820412816512659],
+                                                       [0.60000000000000009, 0.22820412816512659],
+                                                       [0.65000000000000013, 0.97820412816512659],
+                                                       [0.70000000000000007, 0.22820412816512659],
+                                                       [0.75000000000000011, 0.97820412816512659],
+                                                       [0.80000000000000004, 0.22820412816512659],
+                                                       [0.85000000000000009, 0.97820412816512659],
+                                                       [0.90000000000000002, 0.22820412816512659],
+                                                       [0.95000000000000007, 0.97820412816512659],
+                                                       [1.0, 0.12294097027038975]]},
+                                   'drive1mul': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                   'drive1slope': {'curved': False, 'data': [[0.0, 0.85], [1.0, 0.85]]},
+                                   'drive2': {'curved': False,
+                                              'data': [[0.0, 0.23300432017280692],
+                                                       [0.041666666666666664, 0.98300432017280692],
+                                                       [0.08333333333333333, 0.23300432017280692],
+                                                       [0.125, 0.98300432017280692],
+                                                       [0.16666666666666666, 0.23300432017280692],
+                                                       [0.20833333333333331, 0.98300432017280692],
+                                                       [0.25, 0.23300432017280692],
+                                                       [0.2916666666666667, 0.98300432017280692],
+                                                       [0.3333333333333333, 0.23300432017280692],
+                                                       [0.375, 0.98300432017280692],
+                                                       [0.41666666666666663, 0.23300432017280692],
+                                                       [0.4583333333333333, 0.98300432017280692],
+                                                       [0.5, 0.23300432017280692],
+                                                       [0.5416666666666666, 0.98300432017280692],
+                                                       [0.5833333333333333, 0.23300432017280692],
+                                                       [0.6249999999999999, 0.98300432017280692],
+                                                       [0.6666666666666666, 0.23300432017280692],
+                                                       [0.7083333333333333, 0.98300432017280692],
+                                                       [0.75, 0.23300432017280692],
+                                                       [0.7916666666666666, 0.98300432017280692],
+                                                       [0.8333333333333333, 0.23300432017280692],
+                                                       [0.8749999999999999, 0.98300432017280692],
+                                                       [0.9166666666666666, 0.23300432017280692],
+                                                       [0.9583333333333333, 0.98300432017280692],
+                                                       [1.0, 0.12430866799889388]]},
+                                   'drive2mul': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                   'drive2slope': {'curved': False, 'data': [[0.0, 0.8], [1.0, 0.8]]},
+                                   'drive3': {'curved': False,
+                                              'data': [[0.0, 0.22820412816512659],
+                                                       [0.03571428571428571, 0.97820412816512659],
+                                                       [0.07142857142857142, 0.22820412816512659],
+                                                       [0.10714285714285714, 0.97820412816512659],
+                                                       [0.14285714285714285, 0.22820412816512659],
+                                                       [0.17857142857142855, 0.97820412816512659],
+                                                       [0.21428571428571427, 0.22820412816512659],
+                                                       [0.25, 0.97820412816512659],
+                                                       [0.2857142857142857, 0.22820412816512659],
+                                                       [0.3214285714285714, 0.97820412816512659],
+                                                       [0.3571428571428571, 0.22820412816512659],
+                                                       [0.3928571428571428, 0.97820412816512659],
+                                                       [0.42857142857142855, 0.22820412816512659],
+                                                       [0.46428571428571425, 0.97820412816512659],
+                                                       [0.5, 0.22820412816512659],
+                                                       [0.5357142857142857, 0.97820412816512659],
+                                                       [0.5714285714285714, 0.22820412816512659],
+                                                       [0.6071428571428571, 0.97820412816512659],
+                                                       [0.6428571428571428, 0.22820412816512659],
+                                                       [0.6785714285714285, 0.97820412816512659],
+                                                       [0.7142857142857142, 0.22820412816512659],
+                                                       [0.7499999999999999, 0.97820412816512659],
+                                                       [0.7857142857142857, 0.22820412816512659],
+                                                       [0.8214285714285714, 0.97820412816512659],
+                                                       [0.8571428571428571, 0.22820412816512659],
+                                                       [0.8928571428571428, 0.97820412816512659],
+                                                       [0.9285714285714285, 0.22820412816512659],
+                                                       [0.9642857142857142, 0.97820412816512659],
+                                                       [1.0, 0.11709301705401548]]},
+                                   'drive3mul': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                   'drive3slope': {'curved': False, 'data': [[0.0, 0.75], [1.0, 0.75]]},
+                                   'drive4': {'curved': False,
+                                              'data': [[0.0, 0.23060422416896675],
+                                                       [0.03125, 0.98060422416896675],
+                                                       [0.0625, 0.23060422416896675],
+                                                       [0.09375, 0.98060422416896675],
+                                                       [0.125, 0.23060422416896675],
+                                                       [0.15625, 0.98060422416896675],
+                                                       [0.1875, 0.23060422416896675],
+                                                       [0.21875, 0.98060422416896675],
+                                                       [0.25, 0.23060422416896675],
+                                                       [0.28125, 0.98060422416896675],
+                                                       [0.3125, 0.23060422416896675],
+                                                       [0.34375, 0.98060422416896675],
+                                                       [0.375, 0.23060422416896675],
+                                                       [0.40625, 0.98060422416896675],
+                                                       [0.4375, 0.23060422416896675],
+                                                       [0.46875, 0.98060422416896675],
+                                                       [0.5, 0.23060422416896675],
+                                                       [0.53125, 0.98060422416896675],
+                                                       [0.5625, 0.23060422416896675],
+                                                       [0.59375, 0.98060422416896675],
+                                                       [0.625, 0.23060422416896675],
+                                                       [0.65625, 0.98060422416896675],
+                                                       [0.6875, 0.23060422416896675],
+                                                       [0.71875, 0.98060422416896675],
+                                                       [0.75, 0.23060422416896675],
+                                                       [0.78125, 0.98060422416896675],
+                                                       [0.8125, 0.23060422416896675],
+                                                       [0.84375, 0.98060422416896675],
+                                                       [0.875, 0.23060422416896675],
+                                                       [0.90625, 0.98060422416896675],
+                                                       [0.9375, 0.23060422416896675],
+                                                       [0.96875, 0.98060422416896675],
+                                                       [1.0, 0.11770099836251514]]},
+                                   'drive4mul': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                   'drive4slope': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                   'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                   'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                   'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                   'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                   'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                   'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                   'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
+                     'userInputs': {'snd': {'dursnd': 5.466417233560091,
+                                            'gain': [0.0, False, False, False, None, 1, None, None],
+                                            'loopIn': [0.0, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                            'loopMode': 1,
+                                            'loopOut': [5.466417233560091, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                            'loopX': [1.0, False, False, False, None, 1, None, None],
+                                            'mode': 0,
+                                            'nchnlssnd': 1,
+                                            'offsnd': 0.0,
+                                            'path': u'/home/olivier/Dropbox/private/snds/flute.wav',
+                                            'srsnd': 44100.0,
+                                            'startFromLoop': 0,
+                                            'transp': [0.0, False, False, False, None, 1, None, None],
+                                            'type': 'csampler'}},
+                     'userSliders': {'drive1': [0.15591660141944885, 1, None, 1, None, None],
+                                     'drive1mul': [0.0, 0, None, 1, None, None],
+                                     'drive1slope': [0.75, 0, None, 1, None, None],
+                                     'drive2': [0.1639995127916336, 1, None, 1, None, None],
+                                     'drive2mul': [0.0, 0, None, 1, None, None],
+                                     'drive2slope': [0.75, 0, None, 1, None, None],
+                                     'drive3': [0.16355189681053162, 1, None, 1, None, None],
+                                     'drive3mul': [0.0, 0, None, 1, None, None],
+                                     'drive3slope': [0.75, 0, None, 1, None, None],
+                                     'drive4': [0.17098529636859894, 1, None, 1, None, None],
+                                     'drive4mul': [0.0, 0, None, 1, None, None],
+                                     'drive4slope': [0.75, 0, None, 1, None, None],
+                                     'drywet': [1.0, 0, None, 1, None, None],
+                                     'splitter': [[203.01922229250212, 498.27737895412196, 1537.3686264686216], 0, None, [1, 1]]},
+                     'userTogglePopups': {'poly': 0, 'polynum': 0}}}
\ No newline at end of file
diff --git a/Resources/modules/Multiband/MultiBandFreqShift.c5 b/Resources/modules/Multiband/MultiBandFreqShift.c5
index e34ff04..2ecbf1b 100644
--- a/Resources/modules/Multiband/MultiBandFreqShift.c5
+++ b/Resources/modules/Multiband/MultiBandFreqShift.c5
@@ -1,28 +1,49 @@
 class Module(BaseModule):
     """
-    Multi-band frequency shifter module
+    "Multi-band frequency shifter module"
+
+    Description
+
+    MultiBandFreqShift implements four separated spectral band 
+    frequency shifters with independent amount of shift and gain.
     
-    Sliders under the graph:
+    Sliders
     
-        - Frequency Splitter : Split points for multi-band processing
-        - Freq Shift Band 1 : Shift frequency of first band
-        - Gain Band 1: Gain of the shifted first band
-        - Freq Shift Band 2 : Shift frequency of second band
-        - Gain Band 2 : Gain of the shifted second band
-        - Freq Shift Band 3 : Shift frequency of third band
-        - Gain Band 3 : Gain of the shifted third band
-        - Freq Shift Band 4 : Shift frequency of fourth band
-        - Gain Band 5 : Gain of the shifted fourth band
-        - Dry / Wet : Mix between the original signal and the shifted signals
+        # Frequency Splitter : 
+            Split points for multi-band processing
+        # Freq Shift Band 1 : 
+            Shift frequency of first band
+        # Gain Band 1 : 
+            Gain of the shifted first band
+        # Freq Shift Band 2 : 
+            Shift frequency of second band
+        # Gain Band 2 : 
+            Gain of the shifted second band
+        # Freq Shift Band 3 : 
+            Shift frequency of third band
+        # Gain Band 3 : 
+            Gain of the shifted third band
+        # Freq Shift Band 4 : 
+            Shift frequency of fourth band
+        # Gain Band 5 : 
+            Gain of the shifted fourth band
+        # Dry / Wet : 
+            Mix between the original signal and the shifted signals
+
+    Graph Only
     
-    Dropdown menus, toggles and sliders on the bottom left:
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
     
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+    Popups & Toggles
     
-    Graph only parameters :
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
     """
     def __init__(self):
         BaseModule.__init__(self)
@@ -36,22 +57,7 @@ class Module(BaseModule):
         self.mul3 = DBToA(self.gain3)
         self.mul4 = DBToA(self.gain4)
         self.muls = self.duplicate([self.mul1,self.mul2,self.mul3,self.mul4], len(self.snd))
-        self.fs = Hilbert(input=self.split)
-        self.quad = Sine(self.shifts, [0, 0.25])
-        self.mod1 = self.fs['real'][0]*self.quad[0]
-        self.mod2 = self.fs['imag'][0]*self.quad[1]
-        self.mod3 = self.fs['real'][1]*self.quad[2]
-        self.mod4 = self.fs['imag'][1]*self.quad[3]
-        self.mod5 = self.fs['real'][2]*self.quad[4]
-        self.mod6 = self.fs['imag'][2]*self.quad[5]
-        self.mod7 = self.fs['real'][3]*self.quad[6]
-        self.mod8 = self.fs['imag'][3]*self.quad[7]
-        self.up1 = Sig(self.mod1-self.mod2)
-        self.up2 = Sig(self.mod3-self.mod4)
-        self.up3 = Sig(self.mod5-self.mod6)
-        self.up4 = Sig(self.mod7-self.mod8)
-        self.ups = Mix([self.up1, self.up2, self.up3, self.up4], voices=len(self.snd)*4)
-        self.realups = Sig(self.ups, mul=self.muls).mix(self.nchnls)
+        self.realups = FreqShift(self.split, self.shifts, self.muls)
         self.out = Interp(self.snd, self.realups, self.drywet, mul=self.env*0.2)
 
     def splitter_up(self, value):
@@ -64,17 +70,616 @@ class Module(BaseModule):
         self.FBfade.value = 1
 
 Interface = [   csampler(name="snd"), 
-                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
                 csplitter(name="splitter", label="Frequency Splitter", min=100, max=18000, init=[150, 500, 2000], 
                           num_knobs=3, rel="log", gliss=0, up=True, unit="Hz", col="grey"),
-                cslider(name="shift1", label="Freq Shift Band 1", min=0, max=2000, init=500, rel="lin", unit="Hz", col="lightgreen", half=True),
-                cslider(name="gain1", label="Gain Band 1", min=-48, max=18, init=0, rel="lin", unit="dB", col="lightblue", half=True),
-                cslider(name="shift2", label="Freq Shift Band 2", min=0, max=2000, init=500, rel="lin", unit="Hz", col="lightgreen", half=True),
-                cslider(name="gain2", label="Gain Band 2", min=-48, max=18, init=0, rel="lin", unit="dB", col="lightblue", half=True),
-                cslider(name="shift3", label="Freq Shift Band 3", min=0, max=2000, init=500, rel="lin", unit="Hz", col="lightgreen", half=True),
-                cslider(name="gain3", label="Gain Band 3", min=-48, max=18, init=0, rel="lin", unit="dB", col="lightblue", half=True),
-                cslider(name="shift4", label="Freq Shift Band 4", min=0, max=2000, init=500, rel="lin", unit="Hz", col="lightgreen", half=True),
-                cslider(name="gain4", label="Gain Band 4", min=-48, max=18, init=0, rel="lin", unit="dB", col="lightblue", half=True),
-                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue"),
+                cslider(name="shift1", label="Freq Shift Band 1", min=-2000, max=2000, init=600, rel="lin", unit="Hz", col="purple1", half=True),
+                cslider(name="gain1", label="Gain Band 1", min=-48, max=18, init=0, rel="lin", unit="dB", col="purple2", half=True),
+                cslider(name="shift2", label="Freq Shift Band 2", min=-2000, max=2000, init=500, rel="lin", unit="Hz", col="red1", half=True),
+                cslider(name="gain2", label="Gain Band 2", min=-48, max=18, init=0, rel="lin", unit="dB", col="red2", half=True),
+                cslider(name="shift3", label="Freq Shift Band 3", min=-2000, max=2000, init=400, rel="lin", unit="Hz", col="green1", half=True),
+                cslider(name="gain3", label="Gain Band 3", min=-48, max=18, init=0, rel="lin", unit="dB", col="green2", half=True),
+                cslider(name="shift4", label="Freq Shift Band 4", min=-2000, max=2000, init=300, rel="lin", unit="Hz", col="orange1", half=True),
+                cslider(name="gain4", label="Gain Band 4", min=-48, max=18, init=0, rel="lin", unit="dB", col="orange2", half=True),
+                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue1"),
                 cpoly()
-          ]
\ No newline at end of file
+          ]
+
+
+####################################
+##### Cecilia reserved section #####
+#### Presets saved from the app ####
+####################################
+
+
+CECILIA_PRESETS = {u'01-Sliding Notches': {'active': False,
+                         'gainSlider': 1.5,
+                         'nchnls': 2,
+                         'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                     1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                     2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                     3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                         'totalTime': 30.0000000000003,
+                         'userGraph': {'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                       'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                       'gain1': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                       'gain2': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                       'gain3': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                       'gain4': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                       'shift1': {'curved': False, 'data': [[0.0, 0.65], [1.0, 0.65]]},
+                                       'shift2': {'curved': False, 'data': [[0.0, 0.625], [1.0, 0.625]]},
+                                       'shift3': {'curved': False, 'data': [[0.0, 0.6], [1.0, 0.6]]},
+                                       'shift4': {'curved': False, 'data': [[0.0, 0.575], [1.0, 0.575]]},
+                                       'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                       'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                       'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                       'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                       'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
+                         'userInputs': {'snd': {'dursnd': 9.008253968253968,
+                                                'gain': [0.0, False, False, False, None, 1, None, None],
+                                                'loopIn': [0.0, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                                'loopMode': 1,
+                                                'loopOut': [9.008253968253968, False, False, False, None, 1, 0, 9.008253968253968, None, None],
+                                                'loopX': [1.0, False, False, False, None, 1, None, None],
+                                                'mode': 0,
+                                                'nchnlssnd': 1,
+                                                'offsnd': 0.0,
+                                                'path': u'/home/olivier/Dropbox/private/snds/ruisseau.aif',
+                                                'srsnd': 44100.0,
+                                                'startFromLoop': 0,
+                                                'transp': [0.0, False, False, False, None, 1, None, None],
+                                                'type': 'csampler'}},
+                         'userSliders': {'drywet': [0.75, 0, None, 1, None, None],
+                                         'gain1': [0.0, 0, None, 1, None, None],
+                                         'gain2': [0.0, 0, None, 1, None, None],
+                                         'gain3': [0.0, 0, None, 1, None, None],
+                                         'gain4': [0.0, 0, None, 1, None, None],
+                                         'shift1': [0.09999999999968168, 0, None, 1, None, None],
+                                         'shift2': [-0.20000000000004547, 0, None, 1, None, None],
+                                         'shift3': [0.29999999999972715, 0, None, 1, None, None],
+                                         'shift4': [-0.40000000000009095, 0, None, 1, None, None],
+                                         'splitter': [[150.00000000000003, 499.99999999999994, 2000.0000000000002], 0, None, [1, 1]]},
+                         'userTogglePopups': {'poly': 0, 'polynum': 0}},
+ u'02-Stutter': {'active': False,
+                 'gainSlider': 0.0,
+                 'nchnls': 2,
+                 'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                             1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                             2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                             3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                 'totalTime': 30.00000000000007,
+                 'userGraph': {'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                               'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                               'gain1': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                               'gain2': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                               'gain3': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                               'gain4': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                               'shift1': {'curved': False, 'data': [[0.0, 0.65], [1.0, 0.65]]},
+                               'shift2': {'curved': False, 'data': [[0.0, 0.625], [1.0, 0.625]]},
+                               'shift3': {'curved': False, 'data': [[0.0, 0.6], [1.0, 0.6]]},
+                               'shift4': {'curved': False, 'data': [[0.0, 0.575], [1.0, 0.575]]},
+                               'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                               'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                               'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                               'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                               'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
+                 'userInputs': {'snd': {'dursnd': 5.466417233560091,
+                                        'gain': [0.0, False, False, False, None, 1, None, None],
+                                        'loopIn': [0.0, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                        'loopMode': 1,
+                                        'loopOut': [5.466417233560091, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                        'loopX': [1.0, False, False, False, None, 1, None, None],
+                                        'mode': 0,
+                                        'nchnlssnd': 1,
+                                        'offsnd': 0.0,
+                                        'path': u'/home/olivier/Dropbox/private/snds/flute.wav',
+                                        'srsnd': 44100.0,
+                                        'startFromLoop': 0,
+                                        'transp': [0.0, False, False, False, None, 1, None, None],
+                                        'type': 'csampler'}},
+                 'userSliders': {'drywet': [0.75, 0, None, 1, None, None],
+                                 'gain1': [0.0, 0, None, 1, None, None],
+                                 'gain2': [0.0, 0, None, 1, None, None],
+                                 'gain3': [0.0, 0, None, 1, None, None],
+                                 'gain4': [0.0, 0, None, 1, None, None],
+                                 'shift1': [9.999999999999773, 0, None, 1, None, None],
+                                 'shift2': [-15.0, 0, None, 1, None, None],
+                                 'shift3': [20.0, 0, None, 1, None, None],
+                                 'shift4': [-25.0, 0, None, 1, None, None],
+                                 'splitter': [[150.00000000000003, 499.99999999999994, 2000.0000000000002], 0, None, [1, 1]]},
+                 'userTogglePopups': {'poly': 0, 'polynum': 0}},
+ u'03-Ferris wheel': {'active': False,
+                      'gainSlider': 0.0,
+                      'nchnls': 2,
+                      'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                  1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                  2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                  3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                      'totalTime': 30.00000000000007,
+                      'userGraph': {'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                    'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                    'gain1': {'curved': False,
+                                              'data': [[0.0, 0.5],
+                                                       [0.010101010101010102, 0.6215491840251172],
+                                                       [0.020202020202020204, 0.7124313574873786],
+                                                       [0.030303030303030304, 0.749716834795752],
+                                                       [0.04040404040404041, 0.7239984435728339],
+                                                       [0.05050505050505051, 0.6417649659656925],
+                                                       [0.06060606060606061, 0.5237640108260457],
+                                                       [0.07070707070707072, 0.39976736614834646],
+                                                       [0.08080808080808081, 0.30105953986729195],
+                                                       [0.09090909090909091, 0.2525446395297668],
+                                                       [0.10101010101010102, 0.26646303493372336],
+                                                       [0.11111111111111112, 0.3393030975783653],
+                                                       [0.12121212121212122, 0.45268718890989734],
+                                                       [0.13131313131313133, 0.5780083614246219],
+                                                       [0.14141414141414144, 0.6836479271643835],
+                                                       [0.15151515151515152, 0.7429528920808854],
+                                                       [0.16161616161616163, 0.7409605396399855],
+                                                       [0.17171717171717174, 0.6781735428447154],
+                                                       [0.18181818181818182, 0.5704331392103574],
+                                                       [0.19191919191919193, 0.44492236680336494],
+                                                       [0.20202020202020204, 0.3333077498709268],
+                                                       [0.21212121212121213, 0.2637497953213329],
+                                                       [0.22222222222222224, 0.253798061746948],
+                                                       [0.23232323232323235, 0.30596338392706096],
+                                                       [0.24242424242424243, 0.4070843860849179],
+                                                       [0.25252525252525254, 0.5316481133934375],
+                                                       [0.26262626262626265, 0.6482269822636603],
+                                                       [0.27272727272727276, 0.7274079988386297],
+                                                       [0.2828282828282829, 0.7492136939879855],
+                                                       [0.29292929292929293, 0.708142463658693],
+                                                       [0.30303030303030304, 0.6145566304318525],
+                                                       [0.3131313131313132, 0.4920680166254831],
+                                                       [0.32323232323232326, 0.37158065210664837],
+                                                       [0.33333333333333337, 0.28349364905389013],
+                                                       [0.3434343434343435, 0.2500314680815312],
+                                                       [0.3535353535353536, 0.27963665913810465],
+                                                       [0.36363636363636365, 0.36483979563610053],
+                                                       [0.37373737373737376, 0.4841440200858592],
+                                                       [0.38383838383838387, 0.6074487280222928],
+                                                       [0.393939393939394, 0.7036439880125841],
+                                                       [0.4040404040404041, 0.7484596161153136],
+                                                       [0.4141414141414142, 0.7305885735261453],
+                                                       [0.42424242424242425, 0.6545397465551515],
+                                                       [0.43434343434343436, 0.5395003489933373],
+                                                       [0.4444444444444445, 0.4144949641685823],
+                                                       [0.4545454545454546, 0.31106260641143535],
+                                                       [0.4646464646464647, 0.2552993884463052],
+                                                       [0.4747474747474748, 0.2612744396389818],
+                                                       [0.48484848484848486, 0.32748024712947166],
+                                                       [0.494949494949495, 0.4372130032047302],
+                                                       [0.5050505050505051, 0.5627869967952702],
+                                                       [0.5151515151515152, 0.6725197528705286],
+                                                       [0.5252525252525253, 0.7387255603610186],
+                                                       [0.5353535353535354, 0.7447006115536947],
+                                                       [0.5454545454545455, 0.6889373935885643],
+                                                       [0.5555555555555556, 0.5855050358314173],
+                                                       [0.5656565656565657, 0.4604996510066614],
+                                                       [0.5757575757575758, 0.3454602534448482],
+                                                       [0.5858585858585859, 0.2694114264738549],
+                                                       [0.595959595959596, 0.2515403838846865],
+                                                       [0.6060606060606061, 0.2963560119874161],
+                                                       [0.6161616161616162, 0.39255127197770756],
+                                                       [0.6262626262626264, 0.5158559799141412],
+                                                       [0.6363636363636365, 0.6351602043639005],
+                                                       [0.6464646464646465, 0.7203633408618955],
+                                                       [0.6565656565656566, 0.7499685319184688],
+                                                       [0.6666666666666667, 0.7165063509461093],
+                                                       [0.6767676767676768, 0.6284193478933513],
+                                                       [0.686868686868687, 0.5079319833745152],
+                                                       [0.696969696969697, 0.3854433695681479],
+                                                       [0.7070707070707072, 0.29185753634130673],
+                                                       [0.7171717171717172, 0.2507863060120144],
+                                                       [0.7272727272727273, 0.27259200116137033],
+                                                       [0.7373737373737373, 0.3517730177363408],
+                                                       [0.7474747474747475, 0.4683518866065633],
+                                                       [0.7575757575757577, 0.5929156139150821],
+                                                       [0.7676767676767677, 0.694036616072939],
+                                                       [0.7777777777777778, 0.7462019382530518],
+                                                       [0.787878787878788, 0.736250204678667],
+                                                       [0.797979797979798, 0.6666922501290728],
+                                                       [0.8080808080808082, 0.5550776331966338],
+                                                       [0.8181818181818182, 0.42956686078964174],
+                                                       [0.8282828282828284, 0.321826457155284],
+                                                       [0.8383838383838385, 0.25903946036001446],
+                                                       [0.8484848484848485, 0.25704710791911445],
+                                                       [0.8585858585858587, 0.3163520728356172],
+                                                       [0.8686868686868687, 0.4219916385753785],
+                                                       [0.8787878787878789, 0.5473128110901041],
+                                                       [0.888888888888889, 0.6606969024216357],
+                                                       [0.8989898989898991, 0.7335369650662769],
+                                                       [0.9090909090909092, 0.7474553604702332],
+                                                       [0.9191919191919192, 0.6989404601327082],
+                                                       [0.9292929292929294, 0.6002326338516525],
+                                                       [0.9393939393939394, 0.47623598917395377],
+                                                       [0.9494949494949496, 0.3582350340343058],
+                                                       [0.9595959595959598, 0.2760015564271662],
+                                                       [0.9696969696969697, 0.250283165204248],
+                                                       [0.9797979797979799, 0.28756864251262165],
+                                                       [0.98989898989899, 0.37845081597488284],
+                                                       [1.0, 0.49999999999999944]]},
+                                    'gain2': {'curved': False,
+                                              'data': [[0.0, 0.75],
+                                                       [0.010101010101010102, 0.7184623442674463],
+                                                       [0.020202020202020204, 0.6318063669026257],
+                                                       [0.030303030303030304, 0.5118954789559357],
+                                                       [0.04040404040404041, 0.3889833468485565],
+                                                       [0.05050505050505051, 0.29408085464254174],
+                                                       [0.06060606060606061, 0.25113201935672885],
+                                                       [0.07070707070707072, 0.2709728856419827],
+                                                       [0.08080808080808081, 0.34859757821558335],
+                                                       [0.09090909090909091, 0.4644212904316787],
+                                                       [0.10101010101010102, 0.589221555397968],
+                                                       [0.11111111111111112, 0.6915111107797446],
+                                                       [0.12121212121212122, 0.7454821743156766],
+                                                       [0.13131313131313133, 0.7375177794352363],
+                                                       [0.14141414141414144, 0.669627352889283],
+                                                       [0.15151515151515152, 0.5589397338773567],
+                                                       [0.16161616161616163, 0.4333815465774913],
+                                                       [0.17171717171717174, 0.3246312780734194],
+                                                       [0.18181818181818182, 0.26012675659637563],
+                                                       [0.19191919191919193, 0.2561425532786482],
+                                                       [0.20202020202020204, 0.3136838875810616],
+                                                       [0.21212121212121213, 0.41823300917064443],
+                                                       [0.22222222222222224, 0.5434120444167329],
+                                                       [0.23232323232323235, 0.6576381667711308],
+                                                       [0.24242424242424243, 0.732091983254018],
+                                                       [0.25252525252525254, 0.7479887032076988],
+                                                       [0.26262626262626265, 0.7013175643827645],
+                                                       [0.27272727272727276, 0.6038537532504715],
+                                                       [0.2828282828282829, 0.48018751078580235],
+                                                       [0.29292929292929293, 0.3615199840334731],
+                                                       [0.30303030303030304, 0.2777911378362689],
+                                                       [0.3131313131313132, 0.2501258644042037],
+                                                       [0.32323232323232326, 0.2855041466912555],
+                                                       [0.33333333333333337, 0.3750000000000008],
+                                                       [0.3434343434343435, 0.49603350904129834],
+                                                       [0.3535353535353536, 0.6180677686931706],
+                                                       [0.36363636363636365, 0.710313383207795],
+                                                       [0.37373737373737376, 0.7494966691179712],
+                                                       [0.38383838383838387, 0.7257316345716551],
+                                                       [0.393939393939394, 0.6450142273927997],
+                                                       [0.4040404040404041, 0.5277095499752517],
+                                                       [0.4141414141414142, 0.40341371857671726],
+                                                       [0.42424242424242425, 0.30348672631430307],
+                                                       [0.43434343434343436, 0.25314027783090143],
+                                                       [0.4444444444444445, 0.2650768448035232],
+                                                       [0.4545454545454546, 0.33628481651367914],
+                                                       [0.4646464646464647, 0.44879833298370236],
+                                                       [0.4747474747474748, 0.57423009383207],
+                                                       [0.48484848484848486, 0.680933509526267],
+                                                       [0.494949494949495, 0.7419871753490892],
+                                                       [0.5050505050505051, 0.7419871753490891],
+                                                       [0.5151515151515152, 0.6809335095262667],
+                                                       [0.5252525252525253, 0.5742300938320679],
+                                                       [0.5353535353535354, 0.44879833298370203],
+                                                       [0.5454545454545455, 0.33628481651367886],
+                                                       [0.5555555555555556, 0.2650768448035231],
+                                                       [0.5656565656565657, 0.25314027783090154],
+                                                       [0.5757575757575758, 0.3034867263143033],
+                                                       [0.5858585858585859, 0.4034137185767176],
+                                                       [0.595959595959596, 0.5277095499752538],
+                                                       [0.6060606060606061, 0.6450142273928],
+                                                       [0.6161616161616162, 0.7257316345716553],
+                                                       [0.6262626262626264, 0.7494966691179711],
+                                                       [0.6363636363636365, 0.7103133832077948],
+                                                       [0.6464646464646465, 0.6180677686931703],
+                                                       [0.6565656565656566, 0.496033509041298],
+                                                       [0.6666666666666667, 0.3749999999999989],
+                                                       [0.6767676767676768, 0.28550414669125534],
+                                                       [0.686868686868687, 0.25012586440420365],
+                                                       [0.696969696969697, 0.2777911378362691],
+                                                       [0.7070707070707072, 0.3615199840334734],
+                                                       [0.7171717171717172, 0.4801875107858036],
+                                                       [0.7272727272727273, 0.6038537532504719],
+                                                       [0.7373737373737373, 0.7013175643827656],
+                                                       [0.7474747474747475, 0.747988703207699],
+                                                       [0.7575757575757577, 0.7320919832540179],
+                                                       [0.7676767676767677, 0.6576381667711305],
+                                                       [0.7777777777777778, 0.543412044416733],
+                                                       [0.787878787878788, 0.41823300917064365],
+                                                       [0.797979797979798, 0.313683887581061],
+                                                       [0.8080808080808082, 0.2561425532786479],
+                                                       [0.8181818181818182, 0.260126756596376],
+                                                       [0.8282828282828284, 0.3246312780734203],
+                                                       [0.8383838383838385, 0.4333815465774916],
+                                                       [0.8484848484848485, 0.5589397338773567],
+                                                       [0.8585858585858587, 0.669627352889284],
+                                                       [0.8686868686868687, 0.7375177794352366],
+                                                       [0.8787878787878789, 0.7454821743156763],
+                                                       [0.888888888888889, 0.6915111107797435],
+                                                       [0.8989898989898991, 0.589221555397967],
+                                                       [0.9090909090909092, 0.46442129043167807],
+                                                       [0.9191919191919192, 0.34859757821558324],
+                                                       [0.9292929292929294, 0.270972885641982],
+                                                       [0.9393939393939394, 0.2511320193567289],
+                                                       [0.9494949494949496, 0.2940808546425431],
+                                                       [0.9595959595959598, 0.3889833468485565],
+                                                       [0.9696969696969697, 0.5118954789559351],
+                                                       [0.9797979797979799, 0.6318063669026264],
+                                                       [0.98989898989899, 0.7184623442674465],
+                                                       [1.0, 0.75]]},
+                                    'gain3': {'curved': False,
+                                              'data': [[0.0, 0.5],
+                                                       [0.010101010101010102, 0.3784508159748829],
+                                                       [0.020202020202020204, 0.2875686425126215],
+                                                       [0.030303030303030304, 0.250283165204248],
+                                                       [0.04040404040404041, 0.27600155642716595],
+                                                       [0.05050505050505051, 0.35823503403430734],
+                                                       [0.06060606060606061, 0.47623598917395416],
+                                                       [0.07070707070707072, 0.6002326338516536],
+                                                       [0.08080808080808081, 0.698940460132708],
+                                                       [0.09090909090909091, 0.7474553604702332],
+                                                       [0.10101010101010102, 0.7335369650662766],
+                                                       [0.11111111111111112, 0.6606969024216347],
+                                                       [0.12121212121212122, 0.5473128110901029],
+                                                       [0.13131313131313133, 0.42199163857537814],
+                                                       [0.14141414141414144, 0.3163520728356164],
+                                                       [0.15151515151515152, 0.25704710791911456],
+                                                       [0.16161616161616163, 0.25903946036001446],
+                                                       [0.17171717171717174, 0.3218264571552846],
+                                                       [0.18181818181818182, 0.4295668607896425],
+                                                       [0.19191919191919193, 0.5550776331966351],
+                                                       [0.20202020202020204, 0.6666922501290731],
+                                                       [0.21212121212121213, 0.7362502046786671],
+                                                       [0.22222222222222224, 0.746201938253052],
+                                                       [0.23232323232323235, 0.6940366160729391],
+                                                       [0.24242424242424243, 0.5929156139150821],
+                                                       [0.25252525252525254, 0.4683518866065625],
+                                                       [0.26262626262626265, 0.35177301773633973],
+                                                       [0.27272727272727276, 0.27259200116137017],
+                                                       [0.2828282828282829, 0.25078630601201446],
+                                                       [0.29292929292929293, 0.29185753634130696],
+                                                       [0.30303030303030304, 0.38544336956814745],
+                                                       [0.3131313131313132, 0.5079319833745174],
+                                                       [0.32323232323232326, 0.6284193478933515],
+                                                       [0.33333333333333337, 0.7165063509461098],
+                                                       [0.3434343434343435, 0.7499685319184688],
+                                                       [0.3535353535353536, 0.7203633408618954],
+                                                       [0.36363636363636365, 0.6351602043638995],
+                                                       [0.37373737373737376, 0.5158559799141409],
+                                                       [0.38383838383838387, 0.39255127197770723],
+                                                       [0.393939393939394, 0.2963560119874159],
+                                                       [0.4040404040404041, 0.25154038388468636],
+                                                       [0.4141414141414142, 0.26941142647385474],
+                                                       [0.42424242424242425, 0.34546025344484843],
+                                                       [0.43434343434343436, 0.4604996510066626],
+                                                       [0.4444444444444445, 0.5855050358314177],
+                                                       [0.4545454545454546, 0.6889373935885647],
+                                                       [0.4646464646464647, 0.7447006115536947],
+                                                       [0.4747474747474748, 0.7387255603610182],
+                                                       [0.48484848484848486, 0.6725197528705283],
+                                                       [0.494949494949495, 0.5627869967952699],
+                                                       [0.5050505050505051, 0.43721300320472983],
+                                                       [0.5151515151515152, 0.32748024712947144],
+                                                       [0.5252525252525253, 0.26127443963898145],
+                                                       [0.5353535353535354, 0.2552993884463053],
+                                                       [0.5454545454545455, 0.31106260641143557],
+                                                       [0.5555555555555556, 0.4144949641685826],
+                                                       [0.5656565656565657, 0.5395003489933385],
+                                                       [0.5757575757575758, 0.6545397465551518],
+                                                       [0.5858585858585859, 0.7305885735261447],
+                                                       [0.595959595959596, 0.7484596161153134],
+                                                       [0.6060606060606061, 0.7036439880125833],
+                                                       [0.6161616161616162, 0.6074487280222924],
+                                                       [0.6262626262626264, 0.48414402008585883],
+                                                       [0.6363636363636365, 0.3648397956360995],
+                                                       [0.6464646464646465, 0.2796366591381049],
+                                                       [0.6565656565656566, 0.2500314680815312],
+                                                       [0.6666666666666667, 0.2834936490538912],
+                                                       [0.6767676767676768, 0.3715806521066495],
+                                                       [0.686868686868687, 0.49206801662548383],
+                                                       [0.696969696969697, 0.6145566304318528],
+                                                       [0.7070707070707072, 0.7081424636586927],
+                                                       [0.7171717171717172, 0.7492136939879855],
+                                                       [0.7272727272727273, 0.72740799883863],
+                                                       [0.7373737373737373, 0.6482269822636585],
+                                                       [0.7474747474747475, 0.5316481133934359],
+                                                       [0.7575757575757577, 0.40708438608491715],
+                                                       [0.7676767676767677, 0.30596338392706046],
+                                                       [0.7777777777777778, 0.25379806174694797],
+                                                       [0.787878787878788, 0.26374979532133275],
+                                                       [0.797979797979798, 0.3333077498709265],
+                                                       [0.8080808080808082, 0.444922366803367],
+                                                       [0.8181818181818182, 0.5704331392103591],
+                                                       [0.8282828282828284, 0.6781735428447166],
+                                                       [0.8383838383838385, 0.7409605396399858],
+                                                       [0.8484848484848485, 0.7429528920808853],
+                                                       [0.8585858585858587, 0.6836479271643834],
+                                                       [0.8686868686868687, 0.5780083614246223],
+                                                       [0.8787878787878789, 0.452687188909895],
+                                                       [0.888888888888889, 0.33930309757836363],
+                                                       [0.8989898989898991, 0.2664630349337228],
+                                                       [0.9090909090909092, 0.25254463952976697],
+                                                       [0.9191919191919192, 0.30105953986729234],
+                                                       [0.9292929292929294, 0.3997673661483467],
+                                                       [0.9393939393939394, 0.5237640108260453],
+                                                       [0.9494949494949496, 0.641764965965695],
+                                                       [0.9595959595959598, 0.7239984435728334],
+                                                       [0.9696969696969697, 0.7497168347957521],
+                                                       [0.9797979797979799, 0.712431357487378],
+                                                       [0.98989898989899, 0.6215491840251164],
+                                                       [1.0, 0.49999999999999956]]},
+                                    'gain4': {'curved': False,
+                                              'data': [[0.0, 0.25],
+                                                       [0.010101010101010102, 0.28153765573255374],
+                                                       [0.020202020202020204, 0.3681936330973743],
+                                                       [0.030303030303030304, 0.4881045210440643],
+                                                       [0.04040404040404041, 0.6110166531514434],
+                                                       [0.05050505050505051, 0.7059191453574583],
+                                                       [0.06060606060606061, 0.7488679806432711],
+                                                       [0.07070707070707072, 0.7290271143580174],
+                                                       [0.08080808080808081, 0.6514024217844165],
+                                                       [0.09090909090909091, 0.5355787095683215],
+                                                       [0.10101010101010102, 0.41077844460203194],
+                                                       [0.11111111111111112, 0.3084888892202554],
+                                                       [0.12121212121212122, 0.25451782568432335],
+                                                       [0.13131313131313133, 0.26248222056476367],
+                                                       [0.14141414141414144, 0.33037264711071695],
+                                                       [0.15151515151515152, 0.44106026612264315],
+                                                       [0.16161616161616163, 0.5666184534225087],
+                                                       [0.17171717171717174, 0.6753687219265806],
+                                                       [0.18181818181818182, 0.7398732434036244],
+                                                       [0.19191919191919193, 0.7438574467213518],
+                                                       [0.20202020202020204, 0.6863161124189385],
+                                                       [0.21212121212121213, 0.5817669908293556],
+                                                       [0.22222222222222224, 0.45658795558326715],
+                                                       [0.23232323232323235, 0.3423618332288692],
+                                                       [0.24242424242424243, 0.26790801674598197],
+                                                       [0.25252525252525254, 0.25201129679230116],
+                                                       [0.26262626262626265, 0.2986824356172352],
+                                                       [0.27272727272727276, 0.3961462467495285],
+                                                       [0.2828282828282829, 0.5198124892141976],
+                                                       [0.29292929292929293, 0.6384800159665276],
+                                                       [0.30303030303030304, 0.7222088621637307],
+                                                       [0.3131313131313132, 0.7498741355957963],
+                                                       [0.32323232323232326, 0.714495853308744],
+                                                       [0.33333333333333337, 0.625],
+                                                       [0.3434343434343435, 0.5039664909587007],
+                                                       [0.3535353535353536, 0.38193223130682863],
+                                                       [0.36363636363636365, 0.28968661679220453],
+                                                       [0.37373737373737376, 0.2505033308820289],
+                                                       [0.38383838383838387, 0.27426836542834443],
+                                                       [0.393939393939394, 0.354985772607201],
+                                                       [0.4040404040404041, 0.47229045002474745],
+                                                       [0.4141414141414142, 0.5965862814232819],
+                                                       [0.42424242424242425, 0.6965132736856964],
+                                                       [0.43434343434343436, 0.7468597221690987],
+                                                       [0.4444444444444445, 0.7349231551964771],
+                                                       [0.4545454545454546, 0.6637151834863215],
+                                                       [0.4646464646464647, 0.5512016670162968],
+                                                       [0.4747474747474748, 0.42576990616793087],
+                                                       [0.48484848484848486, 0.3190664904737325],
+                                                       [0.494949494949495, 0.258012824650911],
+                                                       [0.5050505050505051, 0.25801282465091113],
+                                                       [0.5151515151515152, 0.3190664904737327],
+                                                       [0.5252525252525253, 0.42576990616793114],
+                                                       [0.5353535353535354, 0.551201667016297],
+                                                       [0.5454545454545455, 0.6637151834863217],
+                                                       [0.5555555555555556, 0.7349231551964772],
+                                                       [0.5656565656565657, 0.7468597221690984],
+                                                       [0.5757575757575758, 0.6965132736856963],
+                                                       [0.5858585858585859, 0.5965862814232833],
+                                                       [0.595959595959596, 0.4722904500247471],
+                                                       [0.6060606060606061, 0.35498577260720077],
+                                                       [0.6161616161616162, 0.2742683654283443],
+                                                       [0.6262626262626264, 0.2505033308820289],
+                                                       [0.6363636363636365, 0.28968661679220564],
+                                                       [0.6464646464646465, 0.3819322313068289],
+                                                       [0.6565656565656566, 0.503966490958701],
+                                                       [0.6666666666666667, 0.6250000000000003],
+                                                       [0.6767676767676768, 0.7144958533087442],
+                                                       [0.686868686868687, 0.7498741355957963],
+                                                       [0.696969696969697, 0.7222088621637314],
+                                                       [0.7070707070707072, 0.6384800159665274],
+                                                       [0.7171717171717172, 0.5198124892141973],
+                                                       [0.7272727272727273, 0.39614624674952903],
+                                                       [0.7373737373737373, 0.29868243561723495],
+                                                       [0.7474747474747475, 0.25201129679230116],
+                                                       [0.7575757575757577, 0.26790801674598175],
+                                                       [0.7676767676767677, 0.34236183322886876],
+                                                       [0.7777777777777778, 0.45658795558326615],
+                                                       [0.787878787878788, 0.5817669908293555],
+                                                       [0.797979797979798, 0.6863161124189384],
+                                                       [0.8080808080808082, 0.7438574467213519],
+                                                       [0.8181818181818182, 0.7398732434036243],
+                                                       [0.8282828282828284, 0.6753687219265804],
+                                                       [0.8383838383838385, 0.5666184534225093],
+                                                       [0.8484848484848485, 0.44106026612264415],
+                                                       [0.8585858585858587, 0.33037264711071673],
+                                                       [0.8686868686868687, 0.2624822205647637],
+                                                       [0.8787878787878789, 0.2545178256843236],
+                                                       [0.888888888888889, 0.3084888892202559],
+                                                       [0.8989898989898991, 0.4107784446020322],
+                                                       [0.9090909090909092, 0.535578709568321],
+                                                       [0.9191919191919192, 0.6514024217844161],
+                                                       [0.9292929292929294, 0.7290271143580176],
+                                                       [0.9393939393939394, 0.7488679806432712],
+                                                       [0.9494949494949496, 0.7059191453574574],
+                                                       [0.9595959595959598, 0.6110166531514443],
+                                                       [0.9696969696969697, 0.4881045210440657],
+                                                       [0.9797979797979799, 0.3681936330973744],
+                                                       [0.98989898989899, 0.281537655732554],
+                                                       [1.0, 0.25]]},
+                                    'shift1': {'curved': False, 'data': [[0.0, 0.65], [1.0, 0.65]]},
+                                    'shift2': {'curved': False, 'data': [[0.0, 0.625], [1.0, 0.625]]},
+                                    'shift3': {'curved': False, 'data': [[0.0, 0.6], [1.0, 0.6]]},
+                                    'shift4': {'curved': False, 'data': [[0.0, 0.575], [1.0, 0.575]]},
+                                    'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                    'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                    'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                    'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                    'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
+                      'userInputs': {'snd': {'dursnd': 5.466417233560091,
+                                             'gain': [0.0, False, False, False, None, 1, None, None],
+                                             'loopIn': [0.0, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                             'loopMode': 1,
+                                             'loopOut': [5.466417233560091, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                             'loopX': [1.0, False, False, False, None, 1, None, None],
+                                             'mode': 0,
+                                             'nchnlssnd': 1,
+                                             'offsnd': 0.0,
+                                             'path': u'/home/olivier/Dropbox/private/snds/flute.wav',
+                                             'srsnd': 44100.0,
+                                             'startFromLoop': 0,
+                                             'transp': [0.0, False, False, False, None, 1, None, None],
+                                             'type': 'csampler'}},
+                      'userSliders': {'drywet': [0.9, 0, None, 1, None, None],
+                                      'gain1': [-27.52247428894043, 1, None, 1, None, None],
+                                      'gain2': [-25.252744674682617, 1, None, 1, None, None],
+                                      'gain3': [-2.4775257110595703, 1, None, 1, None, None],
+                                      'gain4': [-4.747254371643066, 1, None, 1, None, None],
+                                      'shift1': [25.0, 0, None, 1, None, None],
+                                      'shift2': [-50.0, 0, None, 1, None, None],
+                                      'shift3': [75.0, 0, None, 1, None, None],
+                                      'shift4': [-100.0, 0, None, 1, None, None],
+                                      'splitter': [[150.00000000000003, 499.99999999999994, 2000.0000000000002], 0, None, [1, 1]]},
+                      'userTogglePopups': {'poly': 0, 'polynum': 0}},
+ u'04-In The Middle': {'gainSlider': 0.0,
+                       'nchnls': 2,
+                       'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                   1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                   2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                   3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                       'totalTime': 30.00000000000007,
+                       'userGraph': {'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                     'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                     'gain1': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                     'gain2': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                     'gain3': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                     'gain4': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                     'shift1': {'curved': False, 'data': [[0.0, 0.65], [1.0, 0.65]]},
+                                     'shift2': {'curved': False, 'data': [[0.0, 0.625], [1.0, 0.625]]},
+                                     'shift3': {'curved': False, 'data': [[0.0, 0.6], [1.0, 0.6]]},
+                                     'shift4': {'curved': False, 'data': [[0.0, 0.575], [1.0, 0.575]]},
+                                     'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                     'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                     'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                     'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                     'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
+                       'userInputs': {'snd': {'dursnd': 5.466417233560091,
+                                              'gain': [0.0, False, False, False, None, 1, None, None],
+                                              'loopIn': [0.0, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                              'loopMode': 1,
+                                              'loopOut': [5.466417233560091, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                              'loopX': [1.0, False, False, False, None, 1, None, None],
+                                              'mode': 0,
+                                              'nchnlssnd': 1,
+                                              'offsnd': 0.0,
+                                              'path': u'/home/olivier/Dropbox/private/snds/flute.wav',
+                                              'srsnd': 44100.0,
+                                              'startFromLoop': 0,
+                                              'transp': [0.0, False, False, False, None, 1, None, None],
+                                              'type': 'csampler'}},
+                       'userSliders': {'drywet': [1.0, 0, None, 1, None, None],
+                                       'gain1': [0.0, 0, None, 1, None, None],
+                                       'gain2': [0.0, 0, None, 1, None, None],
+                                       'gain3': [0.0, 0, None, 1, None, None],
+                                       'gain4': [0.0, 0, None, 1, None, None],
+                                       'shift1': [2000.0, 0, None, 1, None, None],
+                                       'shift2': [735.0427350427349, 0, None, 1, None, None],
+                                       'shift3': [-632.4786324786326, 0, None, 1, None, None],
+                                       'shift4': [-2000.0, 0, None, 1, None, None],
+                                       'splitter': [[201.1844340672453, 498.27737895412196, 1496.0622403053612], 0, None, [1, 1]]},
+                       'userTogglePopups': {'poly': 0, 'polynum': 0}}}
\ No newline at end of file
diff --git a/Resources/modules/Multiband/MultiBandGate.c5 b/Resources/modules/Multiband/MultiBandGate.c5
index 1a23656..ab57038 100644
--- a/Resources/modules/Multiband/MultiBandGate.c5
+++ b/Resources/modules/Multiband/MultiBandGate.c5
@@ -1,29 +1,53 @@
 class Module(BaseModule):
     """
-    Multi-band noise gate module
+    "Multi-band noise gate module"
+
+    Description
+
+    MultiBandGate implements four separated spectral band 
+    noise gaters with independent threshold and gain.
     
-    Sliders under the graph:
+    Sliders
     
-        - Frequency Splitter : Split points for multi-band processing
-        - Threshold Band 1 : dB value at which the gate becomes active on the first band
-        - Gain Band 1: Gain of the gated first band
-        - Threshold Band 2 : dB value at which the gate becomes active on the second band
-        - Gain Band 2 : Gain of the gated second band
-        - Threshold Band 3 : dB value at which the gate becomes active on the third band
-        - Gain Band 3 : Gain of the gated third band
-        - Threshold Band 4 : dB value at which the gate becomes active on the fourth band
-        - Gain Band 4 : Gain of the gated fourth band
-        - Rise Time : Time taken by the gate to close
-        - Fall Time : Time taken by the gate to open
+        # Frequency Splitter : 
+            Split points for multi-band processing
+        # Threshold Band 1 : 
+            dB value at which the gate becomes active on the first band
+        # Gain Band 1 : 
+            Gain of the gated first band
+        # Threshold Band 2 : 
+            dB value at which the gate becomes active on the second band
+        # Gain Band 2 : 
+            Gain of the gated second band
+        # Threshold Band 3 : 
+            dB value at which the gate becomes active on the third band
+        # Gain Band 3 : 
+            Gain of the gated third band
+        # Threshold Band 4 : 
+            dB value at which the gate becomes active on the fourth band
+        # Gain Band 4 : 
+            Gain of the gated fourth band
+        # Rise Time : 
+            Time taken by the gate to close
+        # Fall Time : 
+            Time taken by the gate to open
+        # Dry / Wet : 
+            Mix between the original signal and the shifted signals
+
+    Graph Only
     
-    Dropdown menus, toggles and sliders on the bottom left:
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
     
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+    Popups & Toggles
     
-    Graph only parameters :
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
     """
     def __init__(self):
         BaseModule.__init__(self)
@@ -39,7 +63,7 @@ class Module(BaseModule):
         self.muls = self.duplicate([self.mul1,self.mul2,self.mul3,self.mul4], len(self.snd))
         self.gate = Gate(input=self.split, thresh=self.threshs, risetime=self.gaterise, falltime=self.gatefall, lookahead=5.00,
                             outputAmp=False, mul=self.muls).mix(self.nchnls)
-        self.out = self.gate*self.env
+        self.out = Interp(Delay(self.snd, 0.005, maxdelay=0.005), self.gate, self.drywet, mul=self.env)
 
     def splitter_up(self, value):
         self.FBfade.value = 0
@@ -54,15 +78,127 @@ Interface = [   csampler(name="snd"),
                 cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
                 csplitter(name="splitter", label="Frequency Splitter", min=100, max=18000, init=[150, 500, 2000], 
                           num_knobs=3, rel="log", gliss=0, up=True, unit="Hz", col="grey"),
-                cslider(name="thresh1", label="Threshold Band 1", min=-80, max=-0.1, init=-60, rel="lin", unit="dB", col="red"),
-                cslider(name="gain1", label="Gain Band 1", min=-48, max=18, init=0, rel="lin", unit="dB", col="red"),
-                cslider(name="thresh2", label="Threshold Band 2", min=-80, max=-0.1, init=-60, rel="lin", unit="dB", col="chorusyellow"),
-                cslider(name="gain2", label="Gain Band 2", min=-48, max=18, init=0, rel="lin", unit="dB", col="chorusyellow"),
-                cslider(name="thresh3", label="Threshold Band 3", min=-80, max=-0.1, init=-60, rel="lin", unit="dB", col="green"),
-                cslider(name="gain3", label="Gain Band 3", min=-48, max=18, init=0, rel="lin", unit="dB", col="green"),
-                cslider(name="thresh4", label="Threshold Band 4", min=-80, max=-0.1, init=-60, rel="lin", unit="dB", col="orange"),
-                cslider(name="gain4", label="Gain Band 4", min=-48, max=18, init=0, rel="lin", unit="dB", col="orange"),
-                cslider(name="gaterise", label="Rise Time", min=0.001, max=1, init=0.01, rel="lin", unit="sec", col="blue"),
-                cslider(name="gatefall", label="Fall Time", min=0.001, max=1, init=0.01, rel="lin", unit="sec", col="blue"),
+                cslider(name="thresh1", label="Threshold Band 1", min=-80, max=-0.1, init=-60, rel="lin", unit="dB", col="purple1", half=True),
+                cslider(name="gain1", label="Gain Band 1", min=-48, max=18, init=0, rel="lin", unit="dB", col="purple2", half=True),
+                cslider(name="thresh2", label="Threshold Band 2", min=-80, max=-0.1, init=-60, rel="lin", unit="dB", col="red1", half=True),
+                cslider(name="gain2", label="Gain Band 2", min=-48, max=18, init=0, rel="lin", unit="dB", col="red2", half=True),
+                cslider(name="thresh3", label="Threshold Band 3", min=-80, max=-0.1, init=-60, rel="lin", unit="dB", col="green1", half=True),
+                cslider(name="gain3", label="Gain Band 3", min=-48, max=18, init=0, rel="lin", unit="dB", col="green2", half=True),
+                cslider(name="thresh4", label="Threshold Band 4", min=-80, max=-0.1, init=-60, rel="lin", unit="dB", col="blue1", half=True),
+                cslider(name="gain4", label="Gain Band 4", min=-48, max=18, init=0, rel="lin", unit="dB", col="blue2", half=True),
+                cslider(name="gaterise", label="Rise Time", min=0.001, max=1, init=0.01, rel="lin", unit="sec", col="orange1"),
+                cslider(name="gatefall", label="Fall Time", min=0.001, max=1, init=0.01, rel="lin", unit="sec", col="orange2"),
+                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue1"),
                 cpoly()
-          ]
\ No newline at end of file
+          ]
+
+
+####################################
+##### Cecilia reserved section #####
+#### Presets saved from the app ####
+####################################
+
+
+CECILIA_PRESETS = {u'01-Extremes': {'active': False,
+                  'gainSlider': 0.0,
+                  'nchnls': 2,
+                  'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                  'totalTime': 30.00000000000007,
+                  'userGraph': {'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'gain1': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'gain2': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'gain3': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'gain4': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'gatefall': {'curved': False, 'data': [[0.0, 0.00900900900900901], [1.0, 0.00900900900900901]]},
+                                'gaterise': {'curved': False, 'data': [[0.0, 0.00900900900900901], [1.0, 0.00900900900900901]]},
+                                'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                                'thresh1': {'curved': False, 'data': [[0.0, 0.2503128911138923], [1.0, 0.2503128911138923]]},
+                                'thresh2': {'curved': False, 'data': [[0.0, 0.2503128911138923], [1.0, 0.2503128911138923]]},
+                                'thresh3': {'curved': False, 'data': [[0.0, 0.2503128911138923], [1.0, 0.2503128911138923]]},
+                                'thresh4': {'curved': False, 'data': [[0.0, 0.2503128911138923], [1.0, 0.2503128911138923]]}},
+                  'userInputs': {'snd': {'dursnd': 5.768526077097506,
+                                         'gain': [0.0, False, False, False, None, 1, None, None],
+                                         'loopIn': [0.0, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                         'loopMode': 1,
+                                         'loopOut': [5.768526077097506, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                         'loopX': [1.0, False, False, False, None, 1, None, None],
+                                         'mode': 0,
+                                         'nchnlssnd': 1,
+                                         'offsnd': 0.0,
+                                         'path': u'/home/olivier/Dropbox/private/snds/baseballmajeur_m.aif',
+                                         'srsnd': 44100.0,
+                                         'startFromLoop': 0,
+                                         'transp': [0.0, False, False, False, None, 1, None, None],
+                                         'type': 'csampler'}},
+                  'userSliders': {'drywet': [1.0, 0, None, 1, None, None],
+                                  'gain1': [0.0, 0, None, 1, None, None],
+                                  'gain2': [0.0, 0, None, 1, None, None],
+                                  'gain3': [0.0, 0, None, 1, None, None],
+                                  'gain4': [0.0, 0, None, 1, None, None],
+                                  'gatefall': [0.010000000000000002, 0, None, 1, None, None],
+                                  'gaterise': [0.010000000000000002, 0, None, 1, None, None],
+                                  'splitter': [[203.01922229250212, 498.27737895412196, 2464.9197650589986], 0, None, [1, 1]],
+                                  'thresh1': [-45.85470085470085, 0, None, 1, None, None],
+                                  'thresh2': [-0.09999999999999432, 0, None, 1, None, None],
+                                  'thresh3': [-0.09999999999999432, 0, None, 1, None, None],
+                                  'thresh4': [-62.927350427350426, 0, None, 1, None, None]},
+                  'userTogglePopups': {'poly': 0, 'polynum': 0}},
+ u'02-Boomy': {'gainSlider': 0.0,
+               'nchnls': 2,
+               'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                           1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                           2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                           3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+               'totalTime': 30.0000000000003,
+               'userGraph': {'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                             'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                             'gain1': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                             'gain2': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                             'gain3': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                             'gain4': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                             'gatefall': {'curved': False, 'data': [[0.0, 0.00900900900900901], [1.0, 0.00900900900900901]]},
+                             'gaterise': {'curved': False, 'data': [[0.0, 0.00900900900900901], [1.0, 0.00900900900900901]]},
+                             'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                             'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                             'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                             'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                             'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                             'thresh1': {'curved': False, 'data': [[0.0, 0.2503128911138923], [1.0, 0.2503128911138923]]},
+                             'thresh2': {'curved': False, 'data': [[0.0, 0.2503128911138923], [1.0, 0.2503128911138923]]},
+                             'thresh3': {'curved': False, 'data': [[0.0, 0.2503128911138923], [1.0, 0.2503128911138923]]},
+                             'thresh4': {'curved': False, 'data': [[0.0, 0.2503128911138923], [1.0, 0.2503128911138923]]}},
+               'userInputs': {'snd': {'dursnd': 5.768526077097506,
+                                      'gain': [0.0, False, False, False, None, 1, None, None],
+                                      'loopIn': [0.0, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                      'loopMode': 1,
+                                      'loopOut': [5.768526077097506, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                      'loopX': [1.0, False, False, False, None, 1, None, None],
+                                      'mode': 0,
+                                      'nchnlssnd': 1,
+                                      'offsnd': 0.0,
+                                      'path': u'/home/olivier/Dropbox/private/snds/baseballmajeur_m.aif',
+                                      'srsnd': 44100.0,
+                                      'startFromLoop': 0,
+                                      'transp': [0.0, False, False, False, None, 1, None, None],
+                                      'type': 'csampler'}},
+               'userSliders': {'drywet': [1.0, 0, None, 1, None, None],
+                               'gain1': [0.0, 0, None, 1, None, None],
+                               'gain2': [0.0, 0, None, 1, None, None],
+                               'gain3': [0.0, 0, None, 1, None, None],
+                               'gain4': [0.0, 0, None, 1, None, None],
+                               'gatefall': [0.010000000000000002, 0, None, 1, None, None],
+                               'gaterise': [0.010000000000000002, 0, None, 1, None, None],
+                               'splitter': [[199.36622775868327, 498.27737895412196, 1482.5415630425512], 0, None, [1, 1]],
+                               'thresh1': [-0.09999999999999432, 0, None, 1, None, None],
+                               'thresh2': [-34.24529914529914, 0, None, 1, None, None],
+                               'thresh3': [-37.65982905982906, 0, None, 1, None, None],
+                               'thresh4': [-0.09999999999999432, 0, None, 1, None, None]},
+               'userTogglePopups': {'poly': 0, 'polynum': 0}}}
\ No newline at end of file
diff --git a/Resources/modules/Multiband/MultiBandHarmonizer.c5 b/Resources/modules/Multiband/MultiBandHarmonizer.c5
index 8405263..293edda 100644
--- a/Resources/modules/Multiband/MultiBandHarmonizer.c5
+++ b/Resources/modules/Multiband/MultiBandHarmonizer.c5
@@ -1,33 +1,59 @@
 class Module(BaseModule):
     """
-    Multi-band harmonizer module
+    "Multi-band harmonizer module"
+
+    Description
+
+    MultiBandHarmonizer implements four separated spectral band 
+    harmonizers with independent transposition, feedback and gain.
     
-    Sliders under the graph:
+    Sliders
     
-        - Frequency Splitter : Split points for multi-band processing
-        - Transpo Band 1 : Pitch shift for the first band
-        - Feedback Band 1 : Amount of harmonized signal fed back into the first band harmonizer
-        - Gain Band 1 : Gain of the harmonized first band
-        - Transpo Band 2 : Pitch shift for the second band
-        - Feedback Band 2 : Amount of harmonized signal fed back into the second band harmonizer
-        - Gain Band 2 : Gain of the harmonized second band
-        - Transpo Band 3 : Pitch shift for the third band
-        - Feedback Band 3 : Amount of harmonized signal fed back into the third band harmonizer
-        - Gain Band 3 : Gain of the harmonized third band
-        - Transpo Band 4 : Pitch shift for the fourth band
-        - Feedback Band 4 : Amount of harmonized signal fed back into the fourth band harmonizer
-        - Gain Band 4 : Gain of the harmonized fourth band
-        - Dry / Wet : Mix between the original signal and the harmonized signals
+        # Frequency Splitter : 
+            Split points for multi-band processing
+        # Transpo Band 1 : 
+            Pitch shift for the first band
+        # Feedback Band 1 : 
+            Amount of harmonized signal fed back into the first band harmonizer
+        # Gain Band 1 : 
+            Gain of the harmonized first band
+        # Transpo Band 2 : 
+            Pitch shift for the second band
+        # Feedback Band 2 : 
+            Amount of harmonized signal fed back into the second band harmonizer
+        # Gain Band 2 : 
+            Gain of the harmonized second band
+        # Transpo Band 3 : 
+            Pitch shift for the third band
+        # Feedback Band 3 : 
+            Amount of harmonized signal fed back into the third band harmonizer
+        # Gain Band 3 : 
+            Gain of the harmonized third band
+        # Transpo Band 4 : 
+            Pitch shift for the fourth band
+        # Feedback Band 4 : 
+            Amount of harmonized signal fed back into the fourth band harmonizer
+        # Gain Band 4 : 
+            Gain of the harmonized fourth band
+        # Dry / Wet : 
+            Mix between the original signal and the harmonized signals
+
+    Graph Only
     
-    Dropdown menus, toggles and sliders on the bottom left:
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
     
-        - Win Size : Window size (delay)
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+    Popups & Toggles
     
-    Graph only parameters :
+        # Win Size : 
+            Harmonizer window size (delay) in seconds
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
     """
     def __init__(self):
         BaseModule.__init__(self)
@@ -59,22 +85,453 @@ class Module(BaseModule):
         self.FBfade.value = 1
 
 Interface = [   csampler(name="snd"), 
-                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
                 csplitter(name="splitter", label="Frequency Splitter", min=100, max=18000, init=[150, 500, 2000], 
                           num_knobs=3, rel="log", gliss=0, up=True, unit="Hz", col="grey"),
-                cslider(name="transp1", label="Transpo Band 1", min=-24, max=24, init=2, rel="lin", unit="semi", col="green"),
-                cslider(name="fb1", label="Feedback Band 1", min=0, max=0.999, init=0.6, rel="lin", unit="x", col="green"),
-                cslider(name="gain1", label="Gain Band 1", min=-48, max=18, init=0, rel="lin", unit="dB", col="green"),
-                cslider(name="transp2", label="Transpo Band 2", min=-24, max=24, init=4, rel="lin", unit="semi", col="forestgreen"),
-                cslider(name="fb2", label="Feedback Band 2", min=0, max=0.999, init=0.5, rel="lin", unit="x", col="forestgreen"),
-                cslider(name="gain2", label="Gain Band 2", min=-48, max=18, init=0, rel="lin", unit="dB", col="forestgreen"),
-                cslider(name="transp3", label="Transpo Band 3", min=-24, max=24, init=-2, rel="lin", unit="semi", col="olivegreen"),
-                cslider(name="fb3", label="Feedback Band 3", min=0, max=0.999, init=0.5, rel="lin", unit="x", col="olivegreen"),
-                cslider(name="gain3", label="Gain Band 3", min=-48, max=18, init=0, rel="lin", unit="dB", col="olivegreen"),
-                cslider(name="transp4", label="Transpo Band 4", min=-24, max=24, init=-4, rel="lin", unit="semi", col="lightgreen"),
-                cslider(name="fb4", label="Feedback Band 4", min=0, max=0.999, init=0.6, rel="lin", unit="x", col="lightgreen"),
-                cslider(name="gain4", label="Gain Band 4", min=-48, max=18, init=0, rel="lin", unit="dB", col="lightgreen"),
-                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue"),
-                cpopup(name="winsize", label="Win Size", init="0.1", col="chorusyellow", value=["0.025","0.05","0.1","0.15","0.2","0.25","0.5","0.75","1"]),
+                cslider(name="transp1", label="Transpo Band 1", min=-24, max=24, init=2, rel="lin", unit="semi", col="purple1", half=True),
+                cslider(name="transp2", label="Transpo Band 2", min=-24, max=24, init=4, rel="lin", unit="semi", col="red1", half=True),
+                cslider(name="fb1", label="Feedback Band 1", min=0, max=0.999, init=0.6, rel="lin", unit="x", col="purple2", half=True),
+                cslider(name="fb2", label="Feedback Band 2", min=0, max=0.999, init=0.5, rel="lin", unit="x", col="red2", half=True),
+                cslider(name="gain1", label="Gain Band 1", min=-48, max=18, init=0, rel="lin", unit="dB", col="purple3", half=True),
+                cslider(name="gain2", label="Gain Band 2", min=-48, max=18, init=0, rel="lin", unit="dB", col="red3", half=True),
+                cslider(name="transp3", label="Transpo Band 3", min=-24, max=24, init=-2, rel="lin", unit="semi", col="green1", half=True),
+                cslider(name="transp4", label="Transpo Band 4", min=-24, max=24, init=-4, rel="lin", unit="semi", col="blue1", half=True),
+                cslider(name="fb3", label="Feedback Band 3", min=0, max=0.999, init=0.5, rel="lin", unit="x", col="green2", half=True),
+                cslider(name="fb4", label="Feedback Band 4", min=0, max=0.999, init=0.6, rel="lin", unit="x", col="blue2", half=True),
+                cslider(name="gain3", label="Gain Band 3", min=-48, max=18, init=0, rel="lin", unit="dB", col="green3", half=True),
+                cslider(name="gain4", label="Gain Band 4", min=-48, max=18, init=0, rel="lin", unit="dB", col="blue3", half=True),
+                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue1"),
+                cpopup(name="winsize", label="Win Size", init="0.1", col="orange1", value=["0.025","0.05","0.1","0.15","0.2","0.25","0.5","0.75","1"]),
                 cpoly()
-          ]
\ No newline at end of file
+          ]
+
+
+####################################
+##### Cecilia reserved section #####
+#### Presets saved from the app ####
+####################################
+
+
+CECILIA_PRESETS = {u'01-Metal Room': {'active': False,
+                    'gainSlider': -7.666666666666664,
+                    'nchnls': 2,
+                    'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                    'totalTime': 30.00000000000007,
+                    'userGraph': {'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                  'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                  'fb1': {'curved': False, 'data': [[0.0, 0.6006006006006006], [1.0, 0.6006006006006006]]},
+                                  'fb2': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                                  'fb3': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                                  'fb4': {'curved': False, 'data': [[0.0, 0.6006006006006006], [1.0, 0.6006006006006006]]},
+                                  'gain1': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                  'gain2': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                  'gain3': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                  'gain4': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                  'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                  'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                  'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                  'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                  'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                                  'transp1': {'curved': False, 'data': [[0.0, 0.5416666666666666], [1.0, 0.5416666666666666]]},
+                                  'transp2': {'curved': False, 'data': [[0.0, 0.5833333333333334], [1.0, 0.5833333333333334]]},
+                                  'transp3': {'curved': False, 'data': [[0.0, 0.4583333333333333], [1.0, 0.4583333333333333]]},
+                                  'transp4': {'curved': False, 'data': [[0.0, 0.4166666666666667], [1.0, 0.4166666666666667]]}},
+                    'userInputs': {'snd': {'dursnd': 5.466417233560091,
+                                           'gain': [0.0, False, False, False, None, 1, None, None],
+                                           'loopIn': [0.0, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                           'loopMode': 1,
+                                           'loopOut': [5.466417233560091, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                           'loopX': [1.0, False, False, False, None, 1, None, None],
+                                           'mode': 0,
+                                           'nchnlssnd': 1,
+                                           'offsnd': 0.0,
+                                           'path': u'/home/olivier/Dropbox/private/snds/flute.wav',
+                                           'srsnd': 44100.0,
+                                           'startFromLoop': 0,
+                                           'transp': [0.0, False, False, False, None, 1, None, None],
+                                           'type': 'csampler'}},
+                    'userSliders': {'drywet': [0.75, 0, None, 1, None, None],
+                                    'fb1': [0.7343076923076923, 0, None, 1, None, None],
+                                    'fb2': [0.8042796610169491, 0, None, 1, None, None],
+                                    'fb3': [0.7513846153846154, 0, None, 1, None, None],
+                                    'fb4': [0.7788813559322034, 0, None, 1, None, None],
+                                    'gain1': [0.0, 0, None, 1, None, None],
+                                    'gain2': [0.0, 0, None, 1, None, None],
+                                    'gain3': [0.0, 0, None, 1, None, None],
+                                    'gain4': [0.0, 0, None, 1, None, None],
+                                    'splitter': [[150.00000000000003, 499.99999999999994, 2000.0000000000002], 0, None, [1, 1]],
+                                    'transp1': [0.03999999999999915, 0, None, 1, None, None],
+                                    'transp2': [-0.022999999999999687, 0, None, 1, None, None],
+                                    'transp3': [0.027000000000001023, 0, None, 1, None, None],
+                                    'transp4': [-0.05000000000000071, 0, None, 1, None, None]},
+                    'userTogglePopups': {'poly': 0, 'polynum': 0, 'winsize': 2}},
+ u'02-Crying': {'active': False,
+                'gainSlider': 0.0,
+                'nchnls': 2,
+                'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                            1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                            2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                            3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                'totalTime': 30.00000000000007,
+                'userGraph': {'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                              'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                              'fb1': {'curved': False, 'data': [[0.0, 0.6006006006006006], [1.0, 0.6006006006006006]]},
+                              'fb2': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                              'fb3': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                              'fb4': {'curved': False, 'data': [[0.0, 0.6006006006006006], [1.0, 0.6006006006006006]]},
+                              'gain1': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                              'gain2': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                              'gain3': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                              'gain4': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                              'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                              'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                              'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                              'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                              'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                              'transp1': {'curved': False,
+                                          'data': [[0.0, 0.5],
+                                                   [0.020408163265306117, 0.5122679388000985],
+                                                   [0.040816326530612235, 0.5213785690751337],
+                                                   [0.061224489795918366, 0.5249871554050172],
+                                                   [0.08163265306122447, 0.522164982659325],
+                                                   [0.1020408163265306, 0.5136383725302637],
+                                                   [0.12244897959183673, 0.5016017554995178],
+                                                   [0.14285714285714285, 0.48915290652206106],
+                                                   [0.16326530612244894, 0.4794956936350761],
+                                                   [0.18367346938775508, 0.4751155221762701],
+                                                   [0.2040816326530612, 0.4771396844246047],
+                                                   [0.22448979591836732, 0.4850472367377196],
+                                                   [0.24489795918367346, 0.4968030709578873],
+                                                   [0.26530612244897955, 0.5093816751219843],
+                                                   [0.2857142857142857, 0.5195457870617007],
+                                                   [0.3061224489795918, 0.5246795445853613],
+                                                   [0.3265306122448979, 0.523461710551244],
+                                                   [0.3469387755102041, 0.5162057098826948],
+                                                   [0.36734693877551017, 0.5047789657175343],
+                                                   [0.3877551020408163, 0.4921222945494095],
+                                                   [0.4081632653061224, 0.48149305007311716],
+                                                   [0.42857142857142855, 0.4756268021954544],
+                                                   [0.44897959183673464, 0.47603330367408353],
+                                                   [0.4693877551020408, 0.48260793623491277],
+                                                   [0.4897959183673469, 0.4936586354022623],
+                                                   [0.5102040816326531, 0.5063413645977377],
+                                                   [0.5306122448979591, 0.5173920637650872],
+                                                   [0.5510204081632654, 0.5239666963259165],
+                                                   [0.5714285714285714, 0.5243731978045456],
+                                                   [0.5918367346938775, 0.518506949926883],
+                                                   [0.6122448979591836, 0.5078777054505906],
+                                                   [0.6326530612244897, 0.49522103428246583],
+                                                   [0.6530612244897958, 0.48379429011730535],
+                                                   [0.673469387755102, 0.476538289448756],
+                                                   [0.6938775510204082, 0.4753204554146387],
+                                                   [0.7142857142857142, 0.4804542129382992],
+                                                   [0.7346938775510203, 0.4906183248780156],
+                                                   [0.7551020408163264, 0.5031969290421127],
+                                                   [0.7755102040816326, 0.5149527632622805],
+                                                   [0.7959183673469387, 0.5228603155753953],
+                                                   [0.8163265306122448, 0.5248844778237299],
+                                                   [0.836734693877551, 0.520504306364924],
+                                                   [0.8571428571428571, 0.510847093477939],
+                                                   [0.8775510204081632, 0.49839824450048226],
+                                                   [0.8979591836734693, 0.4863616274697364],
+                                                   [0.9183673469387754, 0.4778350173406751],
+                                                   [0.9387755102040816, 0.47501284459498283],
+                                                   [0.9591836734693877, 0.47862143092486625],
+                                                   [0.9795918367346939, 0.4877320611999015],
+                                                   [0.9999999999999999, 0.49999999999999983]]},
+                              'transp2': {'curved': False,
+                                          'data': [[0.0, 0.525],
+                                                   [0.020408163265306117, 0.5217829676030847],
+                                                   [0.040816326530612235, 0.5129598142077632],
+                                                   [0.061224489795918366, 0.5008012894392914],
+                                                   [0.08163265306122447, 0.48843654274397913],
+                                                   [0.1020408163265306, 0.47904779737770403],
+                                                   [0.12244897959183673, 0.4750513651812416],
+                                                   [0.14285714285714285, 0.47747577830243954],
+                                                   [0.16326530612244894, 0.4856970834969457],
+                                                   [0.18367346938775508, 0.4975994243523079],
+                                                   [0.2040816326530612, 0.5101195835780599],
+                                                   [0.22448979591836732, 0.5200353405466989],
+                                                   [0.24489795918367346, 0.5247947503455812],
+                                                   [0.26530612244897955, 0.5231729189336506],
+                                                   [0.2857142857142857, 0.5155872450464684],
+                                                   [0.3061224489795918, 0.5039899973758345],
+                                                   [0.3265306122448979, 0.4913658736394673],
+                                                   [0.3469387755102041, 0.48096385104077166],
+                                                   [0.36734693877551017, 0.4754610210752233],
+                                                   [0.3877551020408163, 0.47627360632473326],
+                                                   [0.4081632653061224, 0.483192477743467],
+                                                   [0.42857142857142855, 0.49443697665109215],
+                                                   [0.44897959183673464, 0.5071131896657758],
+                                                   [0.4693877551020408, 0.5179587337524432],
+                                                   [0.4897959183673469, 0.5241823715759757],
+                                                   [0.5102040816326531, 0.5241823715759757],
+                                                   [0.5306122448979591, 0.5179587337524432],
+                                                   [0.5510204081632654, 0.5071131896657759],
+                                                   [0.5714285714285714, 0.49443697665109215],
+                                                   [0.5918367346938775, 0.4831924777434671],
+                                                   [0.6122448979591836, 0.4762736063247333],
+                                                   [0.6326530612244897, 0.4754610210752233],
+                                                   [0.6530612244897958, 0.48096385104077166],
+                                                   [0.673469387755102, 0.49136587363946727],
+                                                   [0.6938775510204082, 0.5039899973758344],
+                                                   [0.7142857142857142, 0.5155872450464682],
+                                                   [0.7346938775510203, 0.5231729189336506],
+                                                   [0.7551020408163264, 0.5247947503455812],
+                                                   [0.7755102040816326, 0.5200353405466989],
+                                                   [0.7959183673469387, 0.51011958357806],
+                                                   [0.8163265306122448, 0.49759942435230803],
+                                                   [0.836734693877551, 0.48569708349694585],
+                                                   [0.8571428571428571, 0.47747577830243954],
+                                                   [0.8775510204081632, 0.4750513651812416],
+                                                   [0.8979591836734693, 0.4790477973777039],
+                                                   [0.9183673469387754, 0.488436542743979],
+                                                   [0.9387755102040816, 0.5008012894392914],
+                                                   [0.9591836734693877, 0.512959814207763],
+                                                   [0.9795918367346939, 0.5217829676030847],
+                                                   [0.9999999999999999, 0.525]]},
+                              'transp3': {'curved': False,
+                                          'data': [[0.0, 0.5],
+                                                   [0.020408163265306117, 0.4877320611999016],
+                                                   [0.040816326530612235, 0.47862143092486636],
+                                                   [0.061224489795918366, 0.47501284459498283],
+                                                   [0.08163265306122447, 0.4778350173406751],
+                                                   [0.1020408163265306, 0.48636162746973627],
+                                                   [0.12244897959183673, 0.4983982445004822],
+                                                   [0.14285714285714285, 0.510847093477939],
+                                                   [0.16326530612244894, 0.5205043063649238],
+                                                   [0.18367346938775508, 0.5248844778237299],
+                                                   [0.2040816326530612, 0.5228603155753954],
+                                                   [0.22448979591836732, 0.5149527632622805],
+                                                   [0.24489795918367346, 0.5031969290421127],
+                                                   [0.26530612244897955, 0.49061832487801577],
+                                                   [0.2857142857142857, 0.4804542129382992],
+                                                   [0.3061224489795918, 0.4753204554146387],
+                                                   [0.3265306122448979, 0.476538289448756],
+                                                   [0.3469387755102041, 0.4837942901173053],
+                                                   [0.36734693877551017, 0.49522103428246567],
+                                                   [0.3877551020408163, 0.5078777054505905],
+                                                   [0.4081632653061224, 0.5185069499268828],
+                                                   [0.42857142857142855, 0.5243731978045456],
+                                                   [0.44897959183673464, 0.5239666963259165],
+                                                   [0.4693877551020408, 0.5173920637650872],
+                                                   [0.4897959183673469, 0.5063413645977377],
+                                                   [0.5102040816326531, 0.4936586354022623],
+                                                   [0.5306122448979591, 0.48260793623491277],
+                                                   [0.5510204081632654, 0.47603330367408353],
+                                                   [0.5714285714285714, 0.4756268021954544],
+                                                   [0.5918367346938775, 0.4814930500731171],
+                                                   [0.6122448979591836, 0.4921222945494095],
+                                                   [0.6326530612244897, 0.5047789657175342],
+                                                   [0.6530612244897958, 0.5162057098826947],
+                                                   [0.673469387755102, 0.523461710551244],
+                                                   [0.6938775510204082, 0.5246795445853613],
+                                                   [0.7142857142857142, 0.5195457870617008],
+                                                   [0.7346938775510203, 0.5093816751219844],
+                                                   [0.7551020408163264, 0.4968030709578874],
+                                                   [0.7755102040816326, 0.4850472367377196],
+                                                   [0.7959183673469387, 0.47713968442460475],
+                                                   [0.8163265306122448, 0.47511552217627],
+                                                   [0.836734693877551, 0.47949569363507605],
+                                                   [0.8571428571428571, 0.489152906522061],
+                                                   [0.8775510204081632, 0.5016017554995178],
+                                                   [0.8979591836734693, 0.5136383725302636],
+                                                   [0.9183673469387754, 0.522164982659325],
+                                                   [0.9387755102040816, 0.5249871554050172],
+                                                   [0.9591836734693877, 0.5213785690751337],
+                                                   [0.9795918367346939, 0.5122679388000985],
+                                                   [0.9999999999999999, 0.5000000000000001]]},
+                              'transp4': {'curved': False,
+                                          'data': [[0.0, 0.4749999999999999],
+                                                   [0.020408163265306117, 0.47821703239691526],
+                                                   [0.040816326530612235, 0.48704018579223685],
+                                                   [0.061224489795918366, 0.4991987105607086],
+                                                   [0.08163265306122447, 0.5115634572560209],
+                                                   [0.1020408163265306, 0.520952202622296],
+                                                   [0.12244897959183673, 0.5249486348187584],
+                                                   [0.14285714285714285, 0.5225242216975605],
+                                                   [0.16326530612244894, 0.5143029165030543],
+                                                   [0.18367346938775508, 0.502400575647692],
+                                                   [0.2040816326530612, 0.4898804164219402],
+                                                   [0.22448979591836732, 0.4799646594533011],
+                                                   [0.24489795918367346, 0.47520524965441885],
+                                                   [0.26530612244897955, 0.47682708106634947],
+                                                   [0.2857142857142857, 0.4844127549535317],
+                                                   [0.3061224489795918, 0.49601000262416556],
+                                                   [0.3265306122448979, 0.5086341263605326],
+                                                   [0.3469387755102041, 0.5190361489592283],
+                                                   [0.36734693877551017, 0.5245389789247766],
+                                                   [0.3877551020408163, 0.5237263936752667],
+                                                   [0.4081632653061224, 0.5168075222565329],
+                                                   [0.42857142857142855, 0.5055630233489079],
+                                                   [0.44897959183673464, 0.49288681033422427],
+                                                   [0.4693877551020408, 0.4820412662475568],
+                                                   [0.4897959183673469, 0.47581762842402425],
+                                                   [0.5102040816326531, 0.47581762842402425],
+                                                   [0.5306122448979591, 0.4820412662475568],
+                                                   [0.5510204081632654, 0.49288681033422416],
+                                                   [0.5714285714285714, 0.5055630233489078],
+                                                   [0.5918367346938775, 0.5168075222565329],
+                                                   [0.6122448979591836, 0.5237263936752667],
+                                                   [0.6326530612244897, 0.5245389789247766],
+                                                   [0.6530612244897958, 0.5190361489592284],
+                                                   [0.673469387755102, 0.5086341263605326],
+                                                   [0.6938775510204082, 0.49601000262416556],
+                                                   [0.7142857142857142, 0.4844127549535317],
+                                                   [0.7346938775510203, 0.4768270810663495],
+                                                   [0.7551020408163264, 0.47520524965441885],
+                                                   [0.7755102040816326, 0.4799646594533011],
+                                                   [0.7959183673469387, 0.4898804164219401],
+                                                   [0.8163265306122448, 0.5024005756476919],
+                                                   [0.836734693877551, 0.5143029165030543],
+                                                   [0.8571428571428571, 0.5225242216975604],
+                                                   [0.8775510204081632, 0.5249486348187584],
+                                                   [0.8979591836734693, 0.5209522026222961],
+                                                   [0.9183673469387754, 0.5115634572560209],
+                                                   [0.9387755102040816, 0.4991987105607087],
+                                                   [0.9591836734693877, 0.48704018579223685],
+                                                   [0.9795918367346939, 0.47821703239691526],
+                                                   [0.9999999999999999, 0.4749999999999999]]}},
+                'userInputs': {'snd': {'dursnd': 5.466417233560091,
+                                       'gain': [0.0, False, False, False, None, 1, None, None],
+                                       'loopIn': [0.0, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                       'loopMode': 1,
+                                       'loopOut': [5.466417233560091, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                       'loopX': [1.0, False, False, False, None, 1, None, None],
+                                       'mode': 0,
+                                       'nchnlssnd': 1,
+                                       'offsnd': 0.0,
+                                       'path': u'/home/olivier/Dropbox/private/snds/flute.wav',
+                                       'srsnd': 44100.0,
+                                       'startFromLoop': 0,
+                                       'transp': [0.0, False, False, False, None, 1, None, None],
+                                       'type': 'csampler'}},
+                'userSliders': {'drywet': [0.7, 0, None, 1, None, None],
+                                'fb1': [0.0, 0, None, 1, None, None],
+                                'fb2': [0.0, 0, None, 1, None, None],
+                                'fb3': [0.0, 0, None, 1, None, None],
+                                'fb4': [0.0, 0, None, 1, None, None],
+                                'gain1': [0.0, 0, None, 1, None, None],
+                                'gain2': [0.0, 0, None, 1, None, None],
+                                'gain3': [0.0, 0, None, 1, None, None],
+                                'gain4': [0.0, 0, None, 1, None, None],
+                                'splitter': [[150.00000000000003, 499.99999999999994, 2000.0000000000002], 0, None, [1, 1]],
+                                'transp1': [-1.1638466119766235, 1, None, 1, None, None],
+                                'transp2': [0.07409537583589554, 1, None, 1, None, None],
+                                'transp3': [1.1638466119766235, 1, None, 1, None, None],
+                                'transp4': [-0.07409537583589554, 1, None, 1, None, None]},
+                'userTogglePopups': {'poly': 0, 'polynum': 0, 'winsize': 2}},
+ u'03-Octavier': {'active': False,
+                  'gainSlider': 0.0,
+                  'nchnls': 2,
+                  'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                  'totalTime': 30.00000000000007,
+                  'userGraph': {'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'fb1': {'curved': False, 'data': [[0.0, 0.6006006006006006], [1.0, 0.6006006006006006]]},
+                                'fb2': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                                'fb3': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                                'fb4': {'curved': False, 'data': [[0.0, 0.6006006006006006], [1.0, 0.6006006006006006]]},
+                                'gain1': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'gain2': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'gain3': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'gain4': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                                'transp1': {'curved': False, 'data': [[0.0, 0.5416666666666666], [1.0, 0.5416666666666666]]},
+                                'transp2': {'curved': False, 'data': [[0.0, 0.5833333333333334], [1.0, 0.5833333333333334]]},
+                                'transp3': {'curved': False, 'data': [[0.0, 0.4583333333333333], [1.0, 0.4583333333333333]]},
+                                'transp4': {'curved': False, 'data': [[0.0, 0.4166666666666667], [1.0, 0.4166666666666667]]}},
+                  'userInputs': {'snd': {'dursnd': 5.466417233560091,
+                                         'gain': [0.0, False, False, False, None, 1, None, None],
+                                         'loopIn': [0.0, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                         'loopMode': 1,
+                                         'loopOut': [5.466417233560091, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                         'loopX': [1.0, False, False, False, None, 1, None, None],
+                                         'mode': 0,
+                                         'nchnlssnd': 1,
+                                         'offsnd': 0.0,
+                                         'path': u'/home/olivier/Dropbox/private/snds/flute.wav',
+                                         'srsnd': 44100.0,
+                                         'startFromLoop': 0,
+                                         'transp': [0.0, False, False, False, None, 1, None, None],
+                                         'type': 'csampler'}},
+                  'userSliders': {'drywet': [0.7, 0, None, 1, None, None],
+                                  'fb1': [0.0, 0, None, 1, None, None],
+                                  'fb2': [0.0, 0, None, 1, None, None],
+                                  'fb3': [0.0, 0, None, 1, None, None],
+                                  'fb4': [0.0, 0, None, 1, None, None],
+                                  'gain1': [0.0, 0, None, 1, None, None],
+                                  'gain2': [0.0, 0, None, 1, None, None],
+                                  'gain3': [-24.0, 0, None, 1, None, None],
+                                  'gain4': [-9.0, 0, None, 1, None, None],
+                                  'splitter': [[150.00000000000003, 499.99999999999994, 2000.0000000000002], 0, None, [1, 1]],
+                                  'transp1': [-12.0, 0, None, 1, None, None],
+                                  'transp2': [-24.0, 0, None, 1, None, None],
+                                  'transp3': [12.0, 0, None, 1, None, None],
+                                  'transp4': [-7.0, 0, None, 1, None, None]},
+                  'userTogglePopups': {'poly': 0, 'polynum': 0, 'winsize': 2}},
+ u'04-Large Mass': {'gainSlider': -6.0,
+                    'nchnls': 2,
+                    'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                    'totalTime': 30.00000000000007,
+                    'userGraph': {'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                  'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                  'fb1': {'curved': False, 'data': [[0.0, 0.6006006006006006], [1.0, 0.6006006006006006]]},
+                                  'fb2': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                                  'fb3': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                                  'fb4': {'curved': False, 'data': [[0.0, 0.6006006006006006], [1.0, 0.6006006006006006]]},
+                                  'gain1': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                  'gain2': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                  'gain3': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                  'gain4': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                  'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                  'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                  'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                  'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                  'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                                  'transp1': {'curved': False, 'data': [[0.0, 0.5416666666666666], [1.0, 0.5416666666666666]]},
+                                  'transp2': {'curved': False, 'data': [[0.0, 0.5833333333333334], [1.0, 0.5833333333333334]]},
+                                  'transp3': {'curved': False, 'data': [[0.0, 0.4583333333333333], [1.0, 0.4583333333333333]]},
+                                  'transp4': {'curved': False, 'data': [[0.0, 0.4166666666666667], [1.0, 0.4166666666666667]]}},
+                    'userInputs': {'snd': {'dursnd': 5.466417233560091,
+                                           'gain': [0.0, False, False, False, None, 1, None, None],
+                                           'loopIn': [0.0, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                           'loopMode': 1,
+                                           'loopOut': [5.466417233560091, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                           'loopX': [1.0, False, False, False, None, 1, None, None],
+                                           'mode': 0,
+                                           'nchnlssnd': 1,
+                                           'offsnd': 0.0,
+                                           'path': u'/home/olivier/Dropbox/private/snds/flute.wav',
+                                           'srsnd': 44100.0,
+                                           'startFromLoop': 0,
+                                           'transp': [0.0, False, False, False, None, 1, None, None],
+                                           'type': 'csampler'}},
+                    'userSliders': {'drywet': [1.0, 0, None, 1, None, None],
+                                    'fb1': [0.8, 0, None, 1, None, None],
+                                    'fb2': [0.8, 0, None, 1, None, None],
+                                    'fb3': [0.8, 0, None, 1, None, None],
+                                    'fb4': [0.8, 0, None, 1, None, None],
+                                    'gain1': [0.0, 0, None, 1, None, None],
+                                    'gain2': [0.0, 0, None, 1, None, None],
+                                    'gain3': [0.0, 0, None, 1, None, None],
+                                    'gain4': [0.0, 0, None, 1, None, None],
+                                    'splitter': [[199.36622775868327, 498.27737895412196, 1496.0622403053612], 0, None, [1, 1]],
+                                    'transp1': [2.0, 0, None, 1, None, None],
+                                    'transp2': [1.0, 0, None, 1, None, None],
+                                    'transp3': [-1.0, 0, None, 1, None, None],
+                                    'transp4': [-2.0, 0, None, 1, None, None]},
+                    'userTogglePopups': {'poly': 0, 'polynum': 0, 'winsize': 4}}}
\ No newline at end of file
diff --git a/Resources/modules/Multiband/MultiBandReverb.c5 b/Resources/modules/Multiband/MultiBandReverb.c5
index cc9878c..93a2590 100644
--- a/Resources/modules/Multiband/MultiBandReverb.c5
+++ b/Resources/modules/Multiband/MultiBandReverb.c5
@@ -1,32 +1,57 @@
 class Module(BaseModule):
     """
-    Multi-band reverb module
+    "Multi-band reverberation module"
     
-    Sliders under the graph:
-    
-        - Frequency Splitter : Split points for multi-band processing
-        - Reverb Band 1 : Amount of reverb applied on first band
-        - Cutoff Band 1 : Cutoff frequency of the reverb's lowpass filter (damp) for the first band
-        - Gain Band 1 : Gain of the reverberized first band
-        - Reverb Band 2 : Amount of reverb applied on second band
-        - Cutoff Band 2 : Cutoff frequency of the reverb's lowpass filter (damp) for the second band
-        - Gain Band 2 : Gain of the reverberized second band
-        - Reverb Band 3 : Amount of reverb applied on third band
-        - Cutoff Band 3 : Cutoff frequency of the reverb's lowpass filter (damp) for the third band
-        - Gain Band 3 : Gain of the reverberized third band
-        - Reverb Band 4 : Amount of reverb applied on fourth band
-        - Cutoff Band 4 : Cutoff frequency of the reverb's lowpass filter (damp) for the fourth band
-        - Gain Band 4 : Gain of the reverberized fourth band
-        - Dry / Wet : Mix between the original signal and the harmonized signals
+    Description
+
+    MultiBandReverb implements four separated spectral band 
+    harmonizers with independent reverb time, cutoff and gain.
+
+    Sliders
     
-    Dropdown menus, toggles and sliders on the bottom left:
+        # Frequency Splitter : 
+            Split points for multi-band processing
+        # Reverb Time 1 : 
+            Amount of reverb (tail duration) applied on first band
+        # Lowpass Cutoff 1 : 
+            Cutoff frequency of the reverb's lowpass filter (damp) for the first band
+        # Gain 1 : 
+            Gain of the reverberized first band
+        # Reverb Time 2 : 
+            Amount of reverb (tail duration) applied on second band
+        # Lowpass Cutoff 2 : 
+            Cutoff frequency of the reverb's lowpass filter (damp) for the second band
+        # Gain 2 : 
+            Gain of the reverberized second band
+        # Reverb Time 3 : 
+            Amount of reverb (tail duration) applied on third band
+        # Lowpass Cutoff 3 : 
+            Cutoff frequency of the reverb's lowpass filter (damp) for the third band
+        # Gain 3 : 
+            Gain of the reverberized third band
+        # Reverb Time 4 : 
+            Amount of reverb (tail duration) applied on fourth band
+        # Lowpass Cutoff 4 : 
+            Cutoff frequency of the reverb's lowpass filter (damp) for the fourth band
+        # Gain 4 : 
+            Gain of the reverberized fourth band
+        # Dry / Wet : 
+            Mix between the original signal and the harmonized signals
     
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+    Graph Only
     
-    Graph only parameters :
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+
+    Popups & Toggles
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+
     """
     def __init__(self):
         BaseModule.__init__(self)
@@ -41,8 +66,9 @@ class Module(BaseModule):
         self.mul3 = DBToA(self.gain3)
         self.mul4 = DBToA(self.gain4)
         self.muls = self.duplicate([self.mul1,self.mul2,self.mul3,self.mul4], len(self.snd))
-        self.verb = WGVerb(input=self.split, feedback=self.fbs, cutoff=self.cutoffs, bal=self.drywet, mul=self.muls).mix(self.nchnls)
-        self.out = self.verb*self.env
+        self.verb = WGVerb(input=self.split, feedback=self.fbs, cutoff=self.cutoffs, bal=1, mul=self.muls)
+        self.verbs = self.verb.mix(self.nchnls)
+        self.out = Interp(self.snd, self.verbs, self.drywet, mul=self.env*0.5)
 
     def splitter_up(self, value):
         self.FBfade.value = 0
@@ -54,22 +80,22 @@ class Module(BaseModule):
         self.FBfade.value = 1
 
 Interface = [   csampler(name="snd"), 
-                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
                 csplitter(name="splitter", label="Frequency Splitter", min=100, max=18000, init=[150, 500, 2000], 
                           num_knobs=3, rel="log", gliss=0, up=True, unit="Hz", col="grey"),
-                cslider(name="fb1", label="Reverb Band 1", min=0, max=0.999, init=0.5, rel="lin", unit="x", col="chorusyellow"),
-                cslider(name="cutoff1", label="CutOff Band 1", min=20, max=20000, init=5000, rel="log", unit="Hz", col="chorusyellow"),
-                cslider(name="gain1", label="Gain Band 1", min=-48, max=18, init=0, rel="lin", unit="dB", col="chorusyellow"),
-                cslider(name="fb2", label="Reverb Band 2", min=0, max=0.999, init=0.5, rel="lin", unit="x", col="green"),
-                cslider(name="cutoff2", label="CutOff Band 2", min=20, max=20000, init=5000, rel="log", unit="Hz", col="green"),
-                cslider(name="gain2", label="Gain Band 2", min=-48, max=18, init=0, rel="lin", unit="dB", col="green"),
-                cslider(name="fb3", label="Reverb Band 3", min=0, max=0.999, init=0.5, rel="lin", unit="x", col="orange"),
-                cslider(name="cutoff3", label="CutOff Band 3", min=20, max=20000, init=5000, rel="log", unit="Hz", col="orange"),
-                cslider(name="gain3", label="Gain Band 3", min=-48, max=18, init=0, rel="lin", unit="dB", col="orange"),
-                cslider(name="fb4", label="Reverb Band 4", min=0, max=0.999, init=0.5, rel="lin", unit="x", col="tan"),
-                cslider(name="cutoff4", label="CutOff Band 4", min=20, max=20000, init=5000, rel="log", unit="Hz", col="tan"),
-                cslider(name="gain4", label="Gain Band 4", min=-48, max=18, init=0, rel="lin", unit="dB", col="tan"),
-                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=0.8, rel="lin", unit="x", col="blue"),
+                cslider(name="fb1", label="Reverb Time 1", min=0, max=0.999, init=0.5, rel="lin", unit="x", col="purple1", half=True),
+                cslider(name="fb2", label="Reverb Time 2", min=0, max=0.999, init=0.75, rel="lin", unit="x", col="red1", half=True),
+                cslider(name="cutoff1", label="Lowpass Cutoff 1", min=20, max=20000, init=2500, rel="log", unit="Hz", col="purple2", half=True),
+                cslider(name="cutoff2", label="Lowpass Cutoff 2", min=20, max=20000, init=4000, rel="log", unit="Hz", col="red2", half=True),
+                cslider(name="gain1", label="Gain 1", min=-48, max=18, init=0, rel="lin", unit="dB", col="purple3", half=True),
+                cslider(name="gain2", label="Gain 2", min=-48, max=18, init=0, rel="lin", unit="dB", col="red3", half=True),
+                cslider(name="fb3", label="Reverb Time 3", min=0, max=0.999, init=0.85, rel="lin", unit="x", col="green1", half=True),
+                cslider(name="fb4", label="Reverb Time 4", min=0, max=0.999, init=0.65, rel="lin", unit="x", col="blue1", half=True),
+                cslider(name="cutoff3", label="Lowpass Cutoff 3", min=20, max=20000, init=5000, rel="log", unit="Hz", col="green2", half=True),
+                cslider(name="cutoff4", label="Lowpass Cutoff 4", min=20, max=20000, init=6000, rel="log", unit="Hz", col="blue2", half=True),
+                cslider(name="gain3", label="Gain 3", min=-48, max=18, init=0, rel="lin", unit="dB", col="green3", half=True),
+                cslider(name="gain4", label="Gain 4", min=-48, max=18, init=0, rel="lin", unit="dB", col="blue3", half=True),
+                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=0.5, rel="lin", unit="x", col="blue1"),
                 cpoly()
           ]
 
@@ -80,28 +106,29 @@ Interface = [   csampler(name="snd"),
 ####################################
 
 
-CECILIA_PRESETS = {u'01-Snare Room': {'gainSlider': 0.0,
+CECILIA_PRESETS = {u'01-Snare Room': {'active': False,
+                    'gainSlider': 0.0,
                     'nchnls': 2,
                     'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
                                 1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
                                 2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
-                    'totalTime': 30.000000000000071,
-                    'userGraph': {'cutoff1': {'curved': False, 'data': [[0.0, 0.79931333622401246], [1.0, 0.79931333622401246]]},
-                                  'cutoff2': {'curved': False, 'data': [[0.0, 0.79931333622401246], [1.0, 0.79931333622401246]]},
-                                  'cutoff3': {'curved': False, 'data': [[0.0, 0.79931333622401246], [1.0, 0.79931333622401246]]},
-                                  'cutoff4': {'curved': False, 'data': [[0.0, 0.79931333622401246], [1.0, 0.79931333622401246]]},
-                                  'drywet': {'curved': False, 'data': [[0.0, 0.80000000000000004], [1.0, 0.80000000000000004]]},
+                    'totalTime': 30.00000000000007,
+                    'userGraph': {'cutoff1': {'curved': False, 'data': [[0.0, 0.7993133362240125], [1.0, 0.7993133362240125]]},
+                                  'cutoff2': {'curved': False, 'data': [[0.0, 0.7993133362240125], [1.0, 0.7993133362240125]]},
+                                  'cutoff3': {'curved': False, 'data': [[0.0, 0.7993133362240125], [1.0, 0.7993133362240125]]},
+                                  'cutoff4': {'curved': False, 'data': [[0.0, 0.7993133362240125], [1.0, 0.7993133362240125]]},
+                                  'drywet': {'curved': False, 'data': [[0.0, 0.8], [1.0, 0.8]]},
                                   'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                  'fb1': {'curved': False, 'data': [[0.0, 0.50050050050050054], [1.0, 0.50050050050050054]]},
-                                  'fb2': {'curved': False, 'data': [[0.0, 0.50050050050050054], [1.0, 0.50050050050050054]]},
-                                  'fb3': {'curved': False, 'data': [[0.0, 0.50050050050050054], [1.0, 0.50050050050050054]]},
-                                  'fb4': {'curved': False, 'data': [[0.0, 0.50050050050050054], [1.0, 0.50050050050050054]]},
-                                  'gain1': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
-                                  'gain2': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
-                                  'gain3': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
-                                  'gain4': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
+                                  'fb1': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                                  'fb2': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                                  'fb3': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                                  'fb4': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                                  'gain1': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                  'gain2': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                  'gain3': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                  'gain4': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
                                   'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                                  'sndgain': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
+                                  'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
                                   'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
                                   'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
                                   'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
@@ -119,18 +146,129 @@ CECILIA_PRESETS = {u'01-Snare Room': {'gainSlider': 0.0,
                                            'startFromLoop': 0,
                                            'transp': [0.0, False, False],
                                            'type': 'csampler'}},
-                    'userSliders': {'cutoff1': [4999.9999999999991, 0, None, 1],
-                                    'cutoff2': [4999.9999999999991, 0, None, 1],
-                                    'cutoff3': [5209.2578159937111, 0, None, 1],
-                                    'cutoff4': [4999.9999999999991, 0, None, 1],
-                                    'drywet': [0.80000000000000004, 0, None, 1],
+                    'userSliders': {'cutoff1': [4999.999999999999, 0, None, 1],
+                                    'cutoff2': [4999.999999999999, 0, None, 1],
+                                    'cutoff3': [5209.257815993711, 0, None, 1],
+                                    'cutoff4': [4999.999999999999, 0, None, 1],
+                                    'drywet': [0.8, 0, None, 1],
                                     'fb1': [0.0, 0, None, 1],
                                     'fb2': [0.0, 0, None, 1],
-                                    'fb3': [0.75062983425414365, 0, None, 1],
+                                    'fb3': [0.7506298342541436, 0, None, 1],
                                     'fb4': [0.0, 0, None, 1],
                                     'gain1': [0.0, 0, None, 1],
                                     'gain2': [0.0, 0, None, 1],
                                     'gain3': [0.0, 0, None, 1],
                                     'gain4': [0.0, 0, None, 1],
                                     'splitter': [[150.00000000000003, 499.99999999999994, 2000.0000000000002], 0, None, [1, 1]]},
-                    'userTogglePopups': {'polynum': 0, 'polyspread': 0.001}}}
\ No newline at end of file
+                    'userTogglePopups': {'polynum': 0, 'polyspread': 0.001}},
+ u'02-Bass Rumble': {'active': False,
+                     'gainSlider': 0.0,
+                     'nchnls': 2,
+                     'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                 1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                 2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                 3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                     'totalTime': 30.00000000000007,
+                     'userGraph': {'cutoff1': {'curved': False, 'data': [[0.0, 0.6989700043360187], [1.0, 0.6989700043360187]]},
+                                   'cutoff2': {'curved': False, 'data': [[0.0, 0.7670099985546605], [1.0, 0.7670099985546605]]},
+                                   'cutoff3': {'curved': False, 'data': [[0.0, 0.7993133362240125], [1.0, 0.7993133362240125]]},
+                                   'cutoff4': {'curved': False, 'data': [[0.0, 0.8257070849065542], [1.0, 0.8257070849065542]]},
+                                   'drywet': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                   'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                   'fb1': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                                   'fb2': {'curved': False, 'data': [[0.0, 0.7507507507507507], [1.0, 0.7507507507507507]]},
+                                   'fb3': {'curved': False, 'data': [[0.0, 0.8508508508508509], [1.0, 0.8508508508508509]]},
+                                   'fb4': {'curved': False, 'data': [[0.0, 0.6506506506506506], [1.0, 0.6506506506506506]]},
+                                   'gain1': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                   'gain2': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                   'gain3': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                   'gain4': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                   'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                   'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                   'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                   'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                   'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
+                     'userInputs': {'snd': {'dursnd': 5.768526077097506,
+                                            'gain': [0.0, False, False, False, None, 1, None, None],
+                                            'loopIn': [0.0, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                            'loopMode': 1,
+                                            'loopOut': [5.768526077097506, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                            'loopX': [1.0, False, False, False, None, 1, None, None],
+                                            'mode': 0,
+                                            'nchnlssnd': 1,
+                                            'offsnd': 0.0,
+                                            'path': u'/home/olivier/Dropbox/private/snds/baseballmajeur_m.aif',
+                                            'srsnd': 44100.0,
+                                            'startFromLoop': 0,
+                                            'transp': [0.0, False, False, False, None, 1, None, None],
+                                            'type': 'csampler'}},
+                     'userSliders': {'cutoff1': [5500.000000000004, 0, None, 1, None, None],
+                                     'cutoff2': [1500.0000000000005, 0, None, 1, None, None],
+                                     'cutoff3': [1500.0000000000005, 0, None, 1, None, None],
+                                     'cutoff4': [5999.999999999997, 0, None, 1, None, None],
+                                     'drywet': [0.8, 0, None, 1, None, None],
+                                     'fb1': [0.97, 0, None, 1, None, None],
+                                     'fb2': [0.9, 0, None, 1, None, None],
+                                     'fb3': [0.9, 0, None, 1, None, None],
+                                     'fb4': [0.6772881355932203, 0, None, 1, None, None],
+                                     'gain1': [-6.0, 0, None, 1, None, None],
+                                     'gain2': [-12.0, 0, None, 1, None, None],
+                                     'gain3': [-48.0, 0, None, 1, None, None],
+                                     'gain4': [-48.0, 0, None, 1, None, None],
+                                     'splitter': [[250.16191574465836, 459.60815800235014, 2002.7939346539563], 0, None, [1, 1]]},
+                     'userTogglePopups': {'poly': 0, 'polynum': 0}},
+ u'03-Hissss': {'gainSlider': 0.0,
+                'nchnls': 2,
+                'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                            1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                            2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                            3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                'totalTime': 30.000000000000135,
+                'userGraph': {'cutoff1': {'curved': False, 'data': [[0.0, 0.6989700043360187], [1.0, 0.6989700043360187]]},
+                              'cutoff2': {'curved': False, 'data': [[0.0, 0.7670099985546605], [1.0, 0.7670099985546605]]},
+                              'cutoff3': {'curved': False, 'data': [[0.0, 0.7993133362240125], [1.0, 0.7993133362240125]]},
+                              'cutoff4': {'curved': False, 'data': [[0.0, 0.8257070849065542], [1.0, 0.8257070849065542]]},
+                              'drywet': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                              'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                              'fb1': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                              'fb2': {'curved': False, 'data': [[0.0, 0.7507507507507507], [1.0, 0.7507507507507507]]},
+                              'fb3': {'curved': False, 'data': [[0.0, 0.8508508508508509], [1.0, 0.8508508508508509]]},
+                              'fb4': {'curved': False, 'data': [[0.0, 0.6506506506506506], [1.0, 0.6506506506506506]]},
+                              'gain1': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                              'gain2': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                              'gain3': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                              'gain4': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                              'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                              'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                              'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                              'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                              'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
+                'userInputs': {'snd': {'dursnd': 5.768526077097506,
+                                       'gain': [0.0, False, False, False, None, 1, None, None],
+                                       'loopIn': [0.0, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                       'loopMode': 1,
+                                       'loopOut': [5.768526077097506, False, False, False, None, 1, 0, 5.768526077097506, None, None],
+                                       'loopX': [1.0, False, False, False, None, 1, None, None],
+                                       'mode': 0,
+                                       'nchnlssnd': 1,
+                                       'offsnd': 0.0,
+                                       'path': u'/home/olivier/Dropbox/private/snds/baseballmajeur_m.aif',
+                                       'srsnd': 44100.0,
+                                       'startFromLoop': 0,
+                                       'transp': [0.0, False, False, False, None, 1, None, None],
+                                       'type': 'csampler'}},
+                'userSliders': {'cutoff1': [2499.9999999999995, 0, None, 1, None, None],
+                                'cutoff2': [4000.000000000001, 0, None, 1, None, None],
+                                'cutoff3': [12499.999999999995, 0, None, 1, None, None],
+                                'cutoff4': [15000.000000000004, 0, None, 1, None, None],
+                                'drywet': [0.7, 0, None, 1, None, None],
+                                'fb1': [0.5, 0, None, 1, None, None],
+                                'fb2': [0.75, 0, None, 1, None, None],
+                                'fb3': [0.85, 0, None, 1, None, None],
+                                'fb4': [0.9, 0, None, 1, None, None],
+                                'gain1': [-48.0, 0, None, 1, None, None],
+                                'gain2': [-48.0, 0, None, 1, None, None],
+                                'gain3': [-6.0, 0, None, 1, None, None],
+                                'gain4': [0.0, 0, None, 1, None, None],
+                                'splitter': [[148.85525761023274, 1012.5347696084382, 3092.9463706882757], 0, None, [1, 1]]},
+                'userTogglePopups': {'poly': 0, 'polynum': 0}}}
\ No newline at end of file
diff --git a/Resources/modules/Pitch/ChordMaker.c5 b/Resources/modules/Pitch/ChordMaker.c5
index b2477fb..41f22fa 100644
--- a/Resources/modules/Pitch/ChordMaker.c5
+++ b/Resources/modules/Pitch/ChordMaker.c5
@@ -1,35 +1,61 @@
 class Module(BaseModule):
     """
-    Sampler-based harmonizer module with multiple voices
+    "Sampler-based harmonizer module with multiple voices"
     
-    Sliders under the graph:
+    Description
+
+    The input sound is mixed with five real-time, non-stretching,
+    harmonization voices.
+
+    Sliders
     
-        - Transpo Voice 1 : Pitch shift of the first voice
-        - Gain Voice 1 : Gain of the transposed first voice
-        - Transpo Voice 2 : Pitch shift of the second voice
-        - Gain Voice 2 : Gain of the transposed second voice
-        - Transpo Voice 3 : Pitch shift of the third voice
-        - Gain Voice 3 : Gain of the transposed third voice
-        - Transpo Voice 4 : Pitch shift of the fourth voice
-        - Gain Voice 4 : Gain of the transposed fourth voice
-        - Transpo Voice 5 : Pitch shift of the fifth voice
-        - Gain Voice 5 : Gain of the transposed fifth voice
-        - Feedback : Amount of transposed signal fed back into the harmonizers (feedback is voice independent)
-        - Dry / Wet : Mix between the original signal and the harmonized signals
+        # Transpo Voice 1 : 
+            Pitch shift of the first voice
+        # Gain Voice 1 : 
+            Gain of the transposed first voice
+        # Transpo Voice 2 : 
+            Pitch shift of the second voice
+        # Gain Voice 2 : 
+            Gain of the transposed second voice
+        # Transpo Voice 3 : 
+            Pitch shift of the third voice
+        # Gain Voice 3 : 
+            Gain of the transposed third voice
+        # Transpo Voice 4 : 
+            Pitch shift of the fourth voice
+        # Gain Voice 4 : 
+            Gain of the transposed fourth voice
+        # Transpo Voice 5 : 
+            Pitch shift of the fifth voice
+        # Gain Voice 5 : 
+            Gain of the transposed fifth voice
+        # Feedback : 
+            Amount of transposed signal fed back into the harmonizers
+            (feedback is voice independent)
+        # Dry / Wet : 
+            Mix between the original signal and the harmonized signals
     
-    Dropdown menus, toggles and sliders on the bottom left:
+    Graph Only
     
-        - Voice 1 : Mute or unmute the first voice
-        - Voice 2 : Mute or unmute the second voice
-        - Voice 3 : Mute or unmute the third voice
-        - Voice 4 : Mute or unmute the fourth voice
-        - Voice 5 : Mute or unmute the fifth voice
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+
+    Popups & Toggles
     
-    Graph only parameters :
+        # Win Size :
+            Harmonizer window size in seconds
+        # Balance :
+            Compression mode. Off, balanced with a fixed signal
+            or balanced with the input source.
+        # Voice Activation (1 --> 5)
+            Mute or unmute each voice independently
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
     """
     def __init__(self):
         BaseModule.__init__(self)
@@ -89,26 +115,27 @@ class Module(BaseModule):
         self.mul5.mul = value
         
 Interface = [   csampler(name="snd"), 
-                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
-                cslider(name="transp1", label="Transpo Voice 1", min=-24, max=24, init=0, rel="lin", unit="semi", col="red",half=True),
-                cslider(name="gain1", label="Gain Voice 1", min=-48, max=18, init=0, rel="lin", unit="dB", col="green",half=True),
-                cslider(name="transp2", label="Transpo Voice 2", min=-24, max=24, init=3, rel="lin", unit="semi", col="red",half=True),
-                cslider(name="gain2", label="Gain Voice 2", min=-48, max=18, init=0, rel="lin", unit="dB", col="green",half=True),
-                cslider(name="transp3", label="Transpo Voice 3", min=-24, max=24, init=5, rel="lin", unit="semi", col="red",half=True),
-                cslider(name="gain3", label="Gain Voice 3", min=-48, max=18, init=0, rel="lin", unit="dB", col="green",half=True),
-                cslider(name="transp4", label="Transpo Voice 4", min=-24, max=24, init=-2, rel="lin", unit="semi", col="red",half=True),
-                cslider(name="gain4", label="Gain Voice 4", min=-48, max=18, init=0, rel="lin", unit="dB", col="green",half=True),
-                cslider(name="transp5", label="Transpo Voice 5", min=-24, max=24, init=-4, rel="lin", unit="semi", col="red",half=True),
-                cslider(name="gain5", label="Gain Voice 5", min=-48, max=18, init=0, rel="lin", unit="dB", col="green",half=True),
-                cslider(name="fb", label="Feedback", min=0, max=0.999, init=0, rel="lin", unit="x", col="orange"),
-                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue"),
-                cpopup(name="winsize", label="Win Size", init="0.1", col="chorusyellow", value=["0.025","0.05","0.1","0.15","0.2","0.25","0.5","0.75","1"]),
-                cpopup(name="balance", label = "Balance", init= "Off", col="blue", value=["Off","Compress", "Source"]),
-                ctoggle(name="onoffv1", label="Voice Activation ( 1 --> 5 )", init=1, stack=True, col="green"),
-                ctoggle(name="onoffv2", label="", init=1, stack=True, col="green"),
-                ctoggle(name="onoffv3", label="", init=1, stack=True, col="green"),
-                ctoggle(name="onoffv4", label="", init=1, stack=True, col="green"),
-                ctoggle(name="onoffv5", label="", init=1, stack=True, col="green"),
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
+                cslider(name="transp1", label="Transpo Voice 1", min=-24, max=24, init=0, rel="lin", unit="semi", col="red1",half=True),
+                cslider(name="gain1", label="Gain Voice 1", min=-48, max=18, init=0, rel="lin", unit="dB", col="red2",half=True),
+                cslider(name="transp2", label="Transpo Voice 2", min=-24, max=24, init=3, rel="lin", unit="semi", col="purple1",half=True),
+                cslider(name="gain2", label="Gain Voice 2", min=-48, max=18, init=0, rel="lin", unit="dB", col="purple2",half=True),
+                cslider(name="transp3", label="Transpo Voice 3", min=-24, max=24, init=5, rel="lin", unit="semi", col="orange1",half=True),
+                cslider(name="gain3", label="Gain Voice 3", min=-48, max=18, init=0, rel="lin", unit="dB", col="orange2",half=True),
+                cslider(name="transp4", label="Transpo Voice 4", min=-24, max=24, init=-2, rel="lin", unit="semi", col="blue2",half=True),
+                cslider(name="gain4", label="Gain Voice 4", min=-48, max=18, init=0, rel="lin", unit="dB", col="blue3",half=True),
+                cslider(name="transp5", label="Transpo Voice 5", min=-24, max=24, init=-4, rel="lin", unit="semi", col="green1",half=True),
+                cslider(name="gain5", label="Gain Voice 5", min=-48, max=18, init=0, rel="lin", unit="dB", col="green2",half=True),
+                cslider(name="fb", label="Feedback", min=0, max=0.999, init=0, rel="lin", unit="x", col="orange1"),
+                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue1"),
+                cpopup(name="winsize", label="Win Size", init="0.1", col="blue4", value=["0.025","0.05","0.1","0.15","0.2","0.25","0.5","0.75","1"]),
+                cpopup(name="balance", label = "Balance", init= "Off", col="blue1", value=["Off","Compress", "Source"]),
+                ctoggle(name="onoffv1", label="Voice Activation ( 1 --> 5 )", init=1, stack=True, col="green1"),
+                ctoggle(name="onoffv2", label="", init=1, stack=True, col="green1"),
+                ctoggle(name="onoffv3", label="", init=1, stack=True, col="green1"),
+                ctoggle(name="onoffv4", label="", init=1, stack=True, col="green1"),
+                ctoggle(name="onoffv5", label="", init=1, stack=True, col="green1"),
+                cpoly()
           ]
 
 
diff --git a/Resources/modules/Pitch/FreqShift.c5 b/Resources/modules/Pitch/FreqShift.c5
index 0f61fac..fbac259 100644
--- a/Resources/modules/Pitch/FreqShift.c5
+++ b/Resources/modules/Pitch/FreqShift.c5
@@ -1,31 +1,63 @@
 class Module(BaseModule):
     """
-    Frequency shifter module
+    "Two frequency shifters with optional cross-delay and feedback"
     
-    Sliders under the graph:
+    Description
+
+    This module implements two frequency shifters from which the output 
+    sound of both one can be fed back in the input of the other. Cross-
+    feedback occurs after a user-defined delay of the output sounds.  
+    
+    Sliders
     
-        - Frequency Shift : Frequency shift value
-        - Dry / Wet : Mix between the original signal and the shifted signals
+        # Filter Freq :
+            Cutoff or center frequency of the pre-filtering stage
+        # Filter Q :
+            Q factor of the pre-filtering stage
+        # Frequency Shift 1 : 
+            Frequency shift, in Hz, of the first voice
+        # Frequency Shift 2 : 
+            Frequency shift, in Hz, of the second voice
+        # Feedback Delay :
+            Delay time before the signal is fed back into the delay lines
+        # Feedback :
+            Amount of signal fed back into the delay lines
+        # Feedback Gain :
+            Amount of delayed signal cross-fed back into the frequency shifters.
+            Signal from delay 1 into shifter 2 and signal from delay 2 into shifter 1.
+        # Dry / Wet : 
+            Mix between the original signal and the shifted signals
     
-    Dropdown menus, toggles and sliders on the bottom left:
+    Graph Only
     
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+
+    Popups & Toggles
     
-    Graph only parameters :
+        # Filter Type : 
+            Type of filter
+        # Balance :
+            Compression mode. Off, balanced with a fixed signal
+            or balanced with the input source.
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
     """
     def __init__(self):
         BaseModule.__init__(self)
         self.snd = self.addSampler("snd")
-        self.biquad = Biquadx(self.snd, freq=self.filter, q=self.filterq, type=0, stages=2, mul=1)
+        self.biquad = Biquadx(self.snd, freq=self.filter, q=self.filterq, type=self.filttype_index, stages=2, mul=1)
         self.feed1 = Sig(0, add=self.biquad)
         self.feed2 = Sig(0, add=self.biquad)
         self.up1 = FreqShift(input=self.feed1, shift=self.shift1, mul=0.5)
         self.up2 = FreqShift(input=self.feed2, shift=self.shift2, mul=0.5)
         self.feeddelay1 = Delay(self.up1, delay=self.delay, feedback=self.feedback, mul=self.gain)
-        self.feeddelay2 = Delay(self.up1, delay=self.delay, feedback=self.feedback, mul=self.gain)
+        self.feeddelay2 = Delay(self.up2, delay=self.delay, feedback=self.feedback, mul=self.gain)
         self.feed1.value = self.feeddelay2
         self.feed2.value = self.feeddelay1
         self.deg = Interp(self.snd, self.up1+self.up2, self.drywet, mul=self.env)
@@ -37,6 +69,9 @@ class Module(BaseModule):
         #INIT
         self.balance(self.balance_index, self.balance_value)
 
+    def filttype(self, index, value):
+        self.biquad.type = index
+
     def balance(self,index,value):
        if index == 0:
            self.out.interp  = 0
@@ -48,15 +83,16 @@ class Module(BaseModule):
           self.balanced.input2 = self.snd
 
 Interface = [   csampler(name="snd"), 
-                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
-                cslider(name="shift1", label="Frequency Shift 1", min=0, max=2000, init=500, rel="lin", unit="Hz", col="green"),
-                cslider(name="shift2", label="Frequency Shift 2", min=0, max=2000, init=100, rel="lin", unit="Hz", col="green"),
-                cslider(name="filter", label="Filter Freq", min=30, max=20000, init=15000, rel="log", unit="Hz", col="olivegreen",half=True),
-                cslider(name="filterq", label="Filter Q", min=0.5, max=10, init=0.707, rel="log", unit="Q", col="olivegreen",half=True),
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
+                cslider(name="filter", label="Filter Freq", min=30, max=20000, init=15000, rel="log", unit="Hz", col="green1",half=True),
+                cslider(name="filterq", label="Filter Q", min=0.5, max=10, init=0.707, rel="log", unit="Q", col="green2",half=True),
+                cslider(name="shift1", label="Frequency Shift 1", min=-2000, max=2000, init=500, rel="lin", unit="Hz", col="red1"),
+                cslider(name="shift2", label="Frequency Shift 2", min=-2000, max=2000, init=100, rel="lin", unit="Hz", col="red2"),
                 cslider(name="delay", label="Feedback Delay", min=0.001, max=1, init=.1, rel="lin", unit="sec", col="orange1"),
                 cslider(name="feedback", label="Feedback", min=0, max=0.999, init=0.5, rel="lin", unit="x", col="orange2",half=True),
                 cslider(name="gain", label="Feedback Gain", min=0, max=1, init=0, rel="lin", unit="x", col="orange3",half=True),
-                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue"),
-                cpopup(name="balance", label = "Balance", init= "Off", col="blue", value=["Off","Compress", "Source"]),
+                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue1"),
+                cpopup(name="filttype", label="Filter Type", init="Bandpass", col="green1", value=["Lowpass","Highpass","Bandpass","Bandstop"]),
+                cpopup(name="balance", label = "Balance", init= "Off", col="blue1", value=["Off","Compress", "Source"]),
                 cpoly()
           ]
\ No newline at end of file
diff --git a/Resources/modules/Pitch/Harmonizer.c5 b/Resources/modules/Pitch/Harmonizer.c5
index 72b68fe..a84a61a 100644
--- a/Resources/modules/Pitch/Harmonizer.c5
+++ b/Resources/modules/Pitch/Harmonizer.c5
@@ -1,53 +1,82 @@
 class Module(BaseModule):
     """
-    2 voices harmonizer module
+    "Two voices harmonization module" 
     
-    Sliders under the graph:
+    Description
+
+    This module implements a two voices harmonization with independent feedback.
+
+    Sliders
     
-        - Transpo Voice 1 : Pitch shift of the first voice
-        - Transpo Voice 2 : Pitch shift of the second voice
-        - Feedback : Amount of transposed signal fed back into the harmonizers (feedback is voice independent)
-        - Dry / Wet : Mix between the original signal and the harmonized signals
+        # Transpo Voice 1 : 
+            Pitch shift of the first voice
+        # Transpo Voice 2 : 
+            Pitch shift of the second voice
+        # Feedback : 
+            Amount of transposed signal fed back into the harmonizers (feedback is voice independent)
+        # Harm1 / Harm2 : 
+            Mix between the first and the second harmonized signals
+        # Dry / Wet : 
+            Mix between the original signal and the harmonized signals
     
-    Dropdown menus, toggles and sliders on the bottom left:
+    Graph Only
     
-        - Win Size Voice 1 : Window size of the first harmonizer (delay)
-        - Win Size Voice 2 : Window size of the second harmonizer (delay)
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+
+    Popups & Toggles
     
-    Graph only parameters :
+        # Win Size Voice 1 : 
+            Window size of the first harmonizer (delay) in second
+        # Win Size Voice 2 : 
+            Window size of the second harmonizer (delay) in second
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
     """
     def __init__(self):
         BaseModule.__init__(self)
         self.snd = self.addSampler("snd")
+        self.ws1 = float(self.winsize_value)
+        self.ws2 = float(self.winsize2_value)
+        self.avg_winsize = (self.ws1 + self.ws2) * 0.5
+        self.snd_del = Delay(self.snd, self.avg_winsize)
         self.harm1 = Harmonizer(input=self.snd, transpo=self.transp1, feedback=self.fb, winsize=float(self.winsize_value), mul=.5)
         self.harm2 = Harmonizer(input=self.snd, transpo=self.transp2, feedback=self.fb, winsize=float(self.winsize2_value), mul=.5)
-        self.harms = self.harm2*self.mix + self.harm1*(1-self.mix)
+        self.harms = self.harm1 + (self.harm2 - self.harm1) * self.mix
         self.dcb = DCBlock(self.harms)
-        self.out = Interp(self.snd, self.dcb, self.drywet, mul=self.env)    
+        self.out = Interp(self.snd_del, self.dcb, self.drywet, mul=self.env)    
 
     def winsize(self, index, value):
         self.harm1.winsize = float(value)
+        self.ws1 = float(value)
+        self.avg_winsize = (self.ws1 + self.ws2) * 0.5
+        self.snd_del.delay = self.avg_winsize
 
     def winsize2(self, index, value):
         if index == 9:
             self.harm2.winsize = float(self.winsize_value)+0.01
+            self.ws2 = float(self.winsize_value)+0.01
         else:
             self.harm2.winsize = float(value)
+            self.ws2 = float(value)
+        self.avg_winsize = (self.ws1 + self.ws2) * 0.5
+        self.snd_del.delay = self.avg_winsize
         
 Interface = [   csampler(name="snd"), 
-                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
-                cslider(name="transp1", label="Transpo Voice 1", min=-36, max=36, init=-7, rel="lin", unit="semi", col="red"),
-                cslider(name="transp2", label="Transpo Voice 2", min=-36, max=36, init=3, rel="lin", unit="semi", col="red"),
-                cslider(name="fb", label="Feedback", min=0, max=0.999, init=0, rel="lin", unit="x", col="orange"),
-                cslider(name="mix", label="Harm1 / Harm2", min=0, max=1, init=.5, rel="lin", unit="x", col="green"),
-                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue"),
-                cpopup(name="winsize", label="Win Size Voice 1", init="0.1", col="chorusyellow", 
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
+                cslider(name="transp1", label="Transpo Voice 1", min=-36, max=36, init=-7, rel="lin", unit="semi", col="red1"),
+                cslider(name="transp2", label="Transpo Voice 2", min=-36, max=36, init=3, rel="lin", unit="semi", col="red2"),
+                cslider(name="fb", label="Feedback", min=0, max=0.999, init=0, rel="lin", unit="x", col="orange1"),
+                cslider(name="mix", label="Harm1 / Harm2", min=0, max=1, init=.5, rel="lin", unit="x", col="green1"),
+                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue1"),
+                cpopup(name="winsize", label="Win Size Voice 1", init="0.1", col="red1", 
                         value=["0.025","0.05","0.1","0.15","0.2","0.25","0.5","0.75","1"]),
-                cpopup(name="winsize2", label="Win Size Voice 2", init="0.1", col="chorusyellow", 
+                cpopup(name="winsize2", label="Win Size Voice 2", init="0.1", col="red2", 
                         value=["0.025","0.05","0.1","0.15","0.2","0.25","0.5","0.75","1","Voice 1 + 0.01"]),
                 cpoly()
           ]
\ No newline at end of file
diff --git a/Resources/modules/Pitch/LooperBank.c5 b/Resources/modules/Pitch/LooperBank.c5
new file mode 100644
index 0000000..5e2a9a8
--- /dev/null
+++ b/Resources/modules/Pitch/LooperBank.c5
@@ -0,0 +1,79 @@
+class Module(BaseModule):
+    """
+    "Sound looper bank with independant pitch and amplitude random"
+    
+    Description
+
+    Huge oscillator bank (up to 500 players) looping a soundfile stored in a waveform 
+    table. The frequencies and amplitudes can be modulated by two random generators 
+    with interpolation (each partial have a different set of randoms).
+    
+    Sliders
+
+        # Transposition : 
+            Transposition of the base frequency of the process, given by the sound length.
+        # Frequency Spread : 
+            Coefficient of expansion used to compute partial frequencies. If 0, all 
+            partials will be at the base frequency. A value of 1 will generate integer 
+            harmonics, a value of 2 will skip even harmonics and non-integer values will 
+            generate different series of inharmonic frequencies.
+        # Amplitude Slope : 
+            Specifies the multiplier in the series of amplitude coefficients.
+        # Boost / Cut : 
+            Controls the overall amplitude.
+        # Freq Rand Speed : 
+            Frequency, in cycle per second, of the frequency modulations.
+        # Freq Rand Gain : 
+            Maximum frequency deviation (positive and negative) in portion of the partial 
+            frequency. A value of 1 means that the frequency can drift from 0 Hz to twice 
+            the partial frequency. A value of 0 deactivates the frequency deviations.
+        # Amp Rand Speed : 
+            Frequency, in cycle per second, of the amplitude modulations.
+        # Amp Rand Gain : 
+            Amount of amplitude deviation. 0 deactivates the amplitude modulations 
+            and 1 gives full amplitude modulations.
+        # Voices Per Channel : 
+            Number of loopers created for each output channel. Changes will be 
+            effective on next start.
+    
+    Graph Only
+    
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+
+    Popups & Toggles
+    
+        # Partials Freq Jitter : 
+            If active, a small jitter is added to the frequency of each partial. For a 
+            large number of oscillators and a very small `Frequency Spread`, the
+            periodicity between partial frequencies can cause very strange artefact. 
+            Adding a jitter breaks the periodicity.
+    
+    """
+    def __init__(self):
+        BaseModule.__init__(self)
+        self.snd = self.addFilein("snd")
+        self.gain = DBToA(self.boost, mul=self.env)
+        self.transpo = CentsToTranspo(self.pitch, mul=self.snd.getRate())
+        self.out = OscBank(self.snd, self.transpo, self.spread, self.slope, self.frndf, self.frnda, self.arndf, self.arnda, 
+                           [int(self.num.get())]*self.nchnls, self.fjit_value, self.gain).out()
+
+    def num_up(self, value):
+        pass
+
+    def fjit(self, value):
+        self.out.fjit = value
+
+Interface = [   cfilein(name="snd"), 
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
+                cslider(name="pitch", label="Transposition", min=-4800, max=4800, init=0, rel="lin", unit="cnts", col="green1"),
+                cslider(name="spread", label="Frequency Spread", min=0, max=2, init=0.002, rel="lin", unit="x", col="green2"),
+                cslider(name="slope", label="Amplitude Slope", min=0, max=1, init=0.9, rel="lin", unit="x", col="red1"),
+                cslider(name="boost", label="Boost / Cut", min=-32, max=32, init=0, rel="lin", unit="dB", col="red2"),
+                cslider(name="frndf", label="Freq Rand Speed", min=0.001, max=20, init=1, rel="log", unit="Hz", col="green3", half=True),
+                cslider(name="arndf", label="Amp Rand Speed", min=0.001, max=20, init=1, rel="log", unit="Hz", col="red3", half=True),
+                cslider(name="frnda", label="Freq Rand Gain", min=0, max=1, init=0, rel="lin", unit="x", col="green4", half=True),
+                cslider(name="arnda", label="Amp Rand Gain", min=0, max=1, init=0, rel="lin", unit="x", col="red4", half=True),
+                cslider(name="num", label="Voices Per Channel", min=1, max=500, init=100, rel="lin", res="int", unit="x", up=True),
+                ctoggle(name="fjit", label="Partials Freq Jitter", init=False, col="green1"),
+          ]
\ No newline at end of file
diff --git a/Resources/modules/Pitch/LooperMod.c5 b/Resources/modules/Pitch/LooperMod.c5
index ae86774..263976d 100644
--- a/Resources/modules/Pitch/LooperMod.c5
+++ b/Resources/modules/Pitch/LooperMod.c5
@@ -1,49 +1,70 @@
 import random
 class Module(BaseModule):
     """
-    Looper module with optional amplitude and frequency modulation
-    
-    Sliders under the graph:
+    "Looper module with optional amplitude and frequency modulation"
+
+    Description
     
-        - AM Range : Amplitude of the AM LFO
-        - AM Speed : Frequency of the AM LFO
-        - FM Range : Amplitude of the FM LFO
-        - FM Speed : Frequency of the FM LFO
-        - Index Range : Range of the soundfile to loop
-        - Dry / Wet : Mix between the original signal and the processed signal
+    A simple soundfile looper with optional amplitude and frequency modulations
+    of variable shapes.
+
+    Sliders
     
-    Dropdown menus, toggles and sliders on the bottom left:
+        # AM Range : 
+            Minimum and maximum amplitude of the Amplitude Modulation LFO
+        # AM Speed : 
+            Frequency of the Amplitude Modulation LFO
+        # FM Range : 
+            Minimum and maximum amplitude of the Frequency Modulation LFO
+        # FM Speed : 
+            Frequency of the Frequency Modulation LFO
+        # Dry / Wet : 
+            Mix between the original signal and the processed signal
+
+    Graph Only
     
-        - AM LFO Type : Shape of the AM wave
-        - AM On/Off : Activate or deactivate amplitude modulation
-        - FM LFO Type : Shape of the FM wave
-        - FM On/Off : Activate or deactivate frequency modulation
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
     
-    Graph only parameters :
+    Popups & Toggles
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
+        # AM LFO Type : 
+            Shape of the amplitude modulation waveform
+        # AM On/Off : 
+            Activate or deactivate the amplitude modulation
+        # FM LFO Type : 
+            Shape of the frequency modulation waveform
+        # FM On/Off : 
+            Activate or deactivate frequency modulation
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+
     """
     def __init__(self):
         BaseModule.__init__(self)
         self.snd = self.addFilein("snd")
+        if type(self.snd.getRate()) == type([]):
+            rate = self.snd.getRate()[0]
+        else:
+            rate = self.snd.getRate()
         self.lfoam = LFO(freq=self.amspeed, sharp=1, type=self.ampwave_index, mul=0.37, add=0.6)
         self.lfoamrange = Randi(min=self.amrange[0], max=self.amrange[1], freq=self.amspeed, mul=self.lfoam)
         self.lfofm = LFO(freq=self.fmspeed, sharp=1, type=self.freqwave_index, mul=0.05, add=1)
         self.sig1 = Sig(self.fmrange[0])
         self.sig2 = Sig(self.fmrange[1])
         self.lfofmrange = Randi(min=1-self.sig1, max=1+self.sig2, freq=self.fmspeed, mul=self.lfofm)
-        self.getdur = self.snd.getDur(False)
-        self.loopdur = self.index[1]*self.getdur-self.index[0]*self.getdur
-        self.pitrnds = [random.uniform(1.0-self.polyphony_spread, 1.0+self.polyphony_spread) for i in range(self.number_of_voices*2)]
+        self.pitrnds = [x*rate for x in self.polyphony_spread for j in range(self.nchnls)]
         self.ply = [i*self.lfofmrange for i in self.pitrnds]
-        self.pointer = Looper(self.snd, pitch=self.ply, start=self.index[0]*self.getdur, dur=self.loopdur, startfromloop=True,
-                                    xfadeshape=1, autosmooth=True, mul=self.lfoamrange)
-        self.pointer2 = Looper(self.snd, pitch=self.pitrnds, start=self.index[0]*self.getdur, dur=self.loopdur, xfadeshape=1, startfromloop=True,
-                                    autosmooth=True, mul=1)
-        self.out = Interp(self.pointer2, self.pointer, self.drywet, mul=self.env)
-        
+        self.index = Phasor(freq=self.pitrnds)
+        self.pointer = Pointer(self.snd, self.index)
+        self.index2 = Phasor(freq=self.pitrnds)
+        self.pointer2 = Pointer(self.snd, self.index2)
+        self.out = Interp(self.pointer2.mix(self.nchnls), self.pointer.mix(self.nchnls), self.drywet, mul=self.polyphony_scaling*0.5*self.env)
+
         #INIT
         self.onoffam(self.onoffam_value)
         self.onofffm(self.onofffm_value)
@@ -62,23 +83,22 @@ class Module(BaseModule):
         
     def onofffm(self, value):
         if value == 0:
-            self.pointer.pitch = self.pitrnds
+            self.index.freq = self.pitrnds
         else:
-            self.pointer.pitch = self.lfofmrange*self.pitrnds
+            self.index.freq = self.ply
 
 Interface = [   cfilein(name="snd"), 
-                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
-                crange(name="amrange", label="AM Range", min=0.001, max=1, init=[0.3,0.5], rel="lin", unit="x", col="green"),
-                cslider(name="amspeed", label="AM Speed", min=0.001, max=2000, init=4, rel="log", unit="Hz", col="green"),
-                crange(name="fmrange", label="FM Range", min=0.001, max=0.2, init=[0.01,0.05], rel="lin", unit="x", col="orange"),
-                cslider(name="fmspeed", label="FM Speed", min=0.001, max=2000, init=4, rel="log", unit="Hz", col="orange"),
-                crange(name="index", label="Loop Range", min=0, max=1, init=[0,1], rel="lin", unit="x", col="tan"),
-                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="grey"),
-                cpopup(name="ampwave", label="AM LFO Type", init="Square", col="green", value=["Saw Up", "Saw Down", "Square", "Triangle", "Pulse", "Bipolar Pulse",
-                            "Sample and Hold", "Modulated Sine"]),
-                ctoggle(name="onoffam", label="AM On/Off", init=0, col="green"),
-                cpopup(name="freqwave", label="FM LFO Type", init="Square", col="orange", value=["Saw Up", "Saw Down", "Square", "Triangle", "Pulse", "Bipolar Pulse",
-                            "Sample and Hold", "Modulated Sine"]),
-                ctoggle(name="onofffm", label="FM On/Off", init=0, col="orange"),
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
+                crange(name="amrange", label="AM Range", min=0.001, max=1, init=[0.3,0.5], rel="lin", unit="x", col="green1"),
+                cslider(name="amspeed", label="AM Speed", min=0.001, max=2000, init=8, rel="log", unit="Hz", col="green2"),
+                crange(name="fmrange", label="FM Range", min=0.001, max=0.2, init=[0.01,0.05], rel="lin", unit="x", col="red1"),
+                cslider(name="fmspeed", label="FM Speed", min=0.001, max=2000, init=200, rel="log", unit="Hz", col="red2"),
+                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue1"),
+                cpopup(name="ampwave", label="AM LFO Type", init="Square", col="green1", value=["Saw Up", "Saw Down", "Square", 
+                            "Triangle", "Pulse", "Bipolar Pulse", "Sample&Hold", "Mod Sine"]),
+                ctoggle(name="onoffam", label="AM On/Off", init=1, col="green2"),
+                cpopup(name="freqwave", label="FM LFO Type", init="Square", col="red1", value=["Saw Up", "Saw Down", "Square", 
+                            "Triangle", "Pulse", "Bipolar Pulse", "Sample&Hold", "Mod Sine"]),
+                ctoggle(name="onofffm", label="FM On/Off", init=1, col="red2"),
                 cpoly()
           ]
\ No newline at end of file
diff --git a/Resources/modules/Pitch/PitchLooper.c5 b/Resources/modules/Pitch/PitchLooper.c5
index 1ca243e..f547a97 100644
--- a/Resources/modules/Pitch/PitchLooper.c5
+++ b/Resources/modules/Pitch/PitchLooper.c5
@@ -1,33 +1,53 @@
 class Module(BaseModule):
     """
-    Table-based transposition module with multiple voices
+    "Table-based transposition module with multiple voices"
     
-    Sliders under the graph:
+    Description
+
+    This module implements five sound loopers playing in parallel.
+    Loopers are table-based so a change in pitch will produce a 
+    change in sound duration. This can be useful to create rhythm
+    effects as well as harmonic effects.
+
+    Sliders
     
-        - Transpo Voice 1 : Play speed of the first voice
-        - Gain Voice 1 : Gain of the transposed first voice
-        - Transpo Voice 2 : Play speed of the second voice
-        - Gain Voice 2 : Gain of the transposed second voice
-        - Transpo Voice 3 : Play speed of the third voice
-        - Gain Voice 3 : Gain of the transposed third voice
-        - Transpo Voice 4 : Play speed of the fourth voice
-        - Gain Voice 4 : Gain of the transposed fourth voice
-        - Transpo Voice 5 : Play speed of the fifth voice
-        - Gain Voice 5 : Gain of the transposed fifth voice
+        # Transpo Voice 1 : 
+            Playback speed of the first voice
+        # Gain Voice 1 : 
+            Gain of the transposed first voice
+        # Transpo Voice 2 : 
+            Playback speed of the second voice
+        # Gain Voice 2 : 
+            Gain of the transposed second voice
+        # Transpo Voice 3 : 
+            Playback speed of the third voice
+        # Gain Voice 3 : 
+            Gain of the transposed third voice
+        # Transpo Voice 4 : 
+            Playback speed of the fourth voice
+        # Gain Voice 4 : 
+            Gain of the transposed fourth voice
+        # Transpo Voice 5 : 
+            Playback speed of the fifth voice
+        # Gain Voice 5 : 
+            Gain of the transposed fifth voice
     
-    Dropdown menus, toggles and sliders on the bottom left:
+    Graph Only
     
-        - Voice 1 : Mute or unmute the first voice
-        - Voice 2 : Mute or unmute the second voice
-        - Voice 3 : Mute or unmute the third voice
-        - Voice 4 : Mute or unmute the fourth voice
-        - Voice 5 : Mute or unmute the fifth voice
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
-        
-    Graph only parameters :
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+
+    Popups & Toggles
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
+        # Voice Activation 1 --> 5 :
+            Mute or unmute each voice independently
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+
     """
     def __init__(self):
         BaseModule.__init__(self)
@@ -53,10 +73,7 @@ class Module(BaseModule):
         self.voice4 = Pointer(self.snd, self.phasor4, mul=self.mul4*0.2)
         self.voice5 = Pointer(self.snd, self.phasor5, mul=self.mul5*0.2)
         self.mixxx = self.voice1+self.voice2+self.voice3+self.voice4+self.voice5
-        self.sig = self.mixxx*self.env
-        self.chorusd = Scale(input=Sig(self.polyphony_spread), inmin=0.0001, inmax=0.5, outmin=0, outmax=5)
-        self.chorusb = Scale(input=Sig(self.number_of_voices), inmin=1, inmax=10, outmin=0, outmax=1)
-        self.out = Chorus(input=self.sig, depth=self.chorusd, feedback=0.25, bal=self.chorusb)
+        self.out = self.mixxx*self.env
 
     def onoffv1(self, value):
         self.mul1.mul = value
@@ -85,53 +102,9 @@ Interface = [   cfilein(name="snd"),
                 cslider(name="gain4", label="Gain Voice 4", min=-48, max=18, init=0, rel="lin", unit="dB", col="lightblue",half=True),
                 cslider(name="transpo5", label="Transpo Voice 5", min=-4800, max=4800, init=-800, rel="lin", unit="cnts", col="lightgreen",half=True),
                 cslider(name="gain5", label="Gain Voice 5", min=-48, max=18, init=0, rel="lin", unit="dB", col="lightgreen",half=True),
-                ctoggle(name="onoffv1", label="Voice Activation 1->5", init=1, stack=True, col="green"),
+                ctoggle(name="onoffv1", label="Voice Activation 1 --> 5", init=1, stack=True, col="green"),
                 ctoggle(name="onoffv2", label="", init=1, stack=True, col="green"),
                 ctoggle(name="onoffv3", label="", init=1, stack=True, col="green"),
                 ctoggle(name="onoffv4", label="", init=1, stack=True, col="green"),
                 ctoggle(name="onoffv5", label="", init=1, stack=True, col="green"),
-                cpoly()
           ]
-
-
-####################################
-##### Cecilia reserved section #####
-#### Presets saved from the app ####
-####################################
-
-
-CECILIA_PRESETS = {'last save': {'gainSlider': 0.0,
-               'nchnls': 2,
-               'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
-                           1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
-                           2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
-               'totalTime': 30.000000000000071,
-               'userGraph': {'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
-                             'gain1': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
-                             'gain2': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
-                             'gain3': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
-                             'gain4': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
-                             'gain5': {'curved': False, 'data': [[0.0, 0.72727272727272729], [1.0, 0.72727272727272729]]},
-                             'transpo1': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
-                             'transpo2': {'curved': False, 'data': [[0.0, 0.50104166666666672], [1.0, 0.50104166666666672]]},
-                             'transpo3': {'curved': False, 'data': [[0.0, 0.54166666666666663], [1.0, 0.54166666666666663]]},
-                             'transpo4': {'curved': False, 'data': [[0.0, 0.46875], [1.0, 0.46875]]},
-                             'transpo5': {'curved': False, 'data': [[0.0, 0.41666666666666669], [1.0, 0.41666666666666669]]}},
-               'userInputs': {'snd': {'dursnd': 278.048095703125,
-                                      'gensizesnd': 16777216,
-                                      'nchnlssnd': 2,
-                                      'offsnd': 0.0,
-                                      'path': u'/Users/fciadmin/Music/iTunes/iTunes Music/Jean Piche/Works/Flying.aif',
-                                      'srsnd': 44100.0,
-                                      'type': 'cfilein'}},
-               'userSliders': {'gain1': [0.0, 0, None, 1, None],
-                               'gain2': [0.0, 0, None, 1, None],
-                               'gain3': [0.0, 0, None, 1, None],
-                               'gain4': [0.0, 0, None, 1, None],
-                               'gain5': [0.0, 0, None, 1, None],
-                               'transpo1': [1805.787781350482, 0, None, 1, None],
-                               'transpo2': [3071.3826366559488, 0, None, 1, None],
-                               'transpo3': [3287.4598070739548, 0, None, 1, None],
-                               'transpo4': [2021.8649517684889, 0, None, 1, None],
-                               'transpo5': [2577.4919614147911, 0, None, 1, None]},
-               'userTogglePopups': {'onoffv1': 1, 'onoffv2': 1, 'onoffv3': 1, 'onoffv4': 1, 'onoffv5': 1, 'polynum': 0, 'polyspread': 0.001}}}
\ No newline at end of file
diff --git a/Resources/modules/Resonators&Verbs/ConvolutionReverb.c5 b/Resources/modules/Resonators&Verbs/ConvolutionReverb.c5
new file mode 100644
index 0000000..9c30158
--- /dev/null
+++ b/Resources/modules/Resonators&Verbs/ConvolutionReverb.c5
@@ -0,0 +1,43 @@
+class Module(BaseModule):
+    """
+    "FFT-based convolution reverb"
+    
+    Description
+
+    This module implements a convolution based on a uniformly partitioned overlap-save
+    algorithm. It can be used to convolve an input signal with an impulse response 
+    soundfile to simulate real acoustic spaces.
+
+    Sliders
+    
+        # Dry / Wet : 
+            Mix between the original signal and the convoluted signal
+
+    Graph Only
+    
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+
+    Popups & Toggles
+
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+    
+    """
+    def __init__(self):
+        BaseModule.__init__(self)
+        self.snd = self.addSampler("snd")
+        self.table = self.addFilein("impulse")
+        self.out = CvlVerb(self.snd, self.table.path, bal=self.drywet, mul=self.env)
+        
+Interface = [
+            csampler(name="snd", label="Audio"),
+            cfilein(name="impulse", label="Impulse response"),
+            cgraph(name="env"),
+            cslider(name="drywet", label="Mix dry/wet", min=0, max=1, init=0.5, col="blue"),
+            cpoly()
+]
diff --git a/Resources/modules/Resonators&Verbs/Convolve.c5 b/Resources/modules/Resonators&Verbs/Convolve.c5
index ccdd288..72b48d8 100644
--- a/Resources/modules/Resonators&Verbs/Convolve.c5
+++ b/Resources/modules/Resonators&Verbs/Convolve.c5
@@ -1,26 +1,64 @@
 class Module(BaseModule):
     """
-    Circular convolution filtering module
+    "Circular convolution filtering module"
     
-    Sliders under the graph:
+    Description
+
+    Circular convolution filter where the filter kernel is extract from a soundfile segments.
+
+    Circular convolution is very expensive to compute, so the impulse response must be kept 
+    very short to run in real time.
+    
+    Sliders
     
-        - Dry / Wet : Mix between the original signal and the convoluted signal
+        # Impulse index 1 : 
+            Position of the first impulse response in the soundfile (mouse up)
+        # Impulse index 2 : 
+            Position of the second impulse response in the soundfile (mouse up)
+        # Imp 1 <--> Imp 2 : 
+            Morphing between the two impulse responses
+        # Dry / Wet : 
+            Mix between the original signal and the convoluted signal
+
+    Graph Only
     
-    Dropdown menus, toggles and sliders on the bottom left:
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
     
-        - Size : Buffer size of the convolution
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+    Popups & Toggles
     
-    Graph only parameters :
+        # Size : 
+            Buffer size of the convolution
+        # Balance :
+            Compression mode. Off, balanced with a fixed signal
+            or balanced with the input source.
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
     """
     def __init__(self):
         BaseModule.__init__(self)
         self.snd = self.addSampler("snd")
-        self.sndtable = self.addFilein("sndtable")
-        self.convo = Convolve(self.snd, self.sndtable, size=int(self.size_value), mul=0.5)
+        self.dump = self.addFilein("sndtable")
+        self.sizeInSec = sampsToSec(int(self.size_value))
+        if type(self.dump.path) == type([]):
+            p = self.dump.path[0]
+        else:
+            p = self.dump.path
+        self.snddur = sndinfo(p)[1]
+        start = self.snddur*(self.index.get()*0.01)
+        start2 = self.snddur*(self.index2.get()*0.01)
+
+        self.sndtable = SndTable(self.dump.path, start=start, stop=start+self.sizeInSec)
+        self.sndtable2 = SndTable(self.dump.path, start=start2, stop=start2+self.sizeInSec)
+        self.mtable = NewTable(self.sizeInSec, self.nchnls)
+
+        self.morphing= TableMorph(self.morph, self.mtable, [self.sndtable, self.sndtable2])
+        self.convo = Convolve(self.snd, self.mtable, size=int(self.size_value), mul=0.25)
         self.deg = Interp(self.snd, self.convo, self.drywet, mul=self.env)
 
         self.osc = Sine(10000,mul=.1)
@@ -30,6 +68,14 @@ class Module(BaseModule):
         #INIT
         self.balance(self.balance_index, self.balance_value)
 
+    def index_up(self, value):
+        start = self.snddur*(value*0.01)
+        self.sndtable.setSound(self.dump.path, start=start, stop=start+self.sizeInSec)
+
+    def index2_up(self, value):
+        start2 = self.snddur*(value*0.01)
+        self.sndtable2.setSound(self.dump.path, start=start2, stop=start2+self.sizeInSec)
+        
     def balance(self,index,value):
        if index == 0:
            self.out.interp  = 0
@@ -40,14 +86,14 @@ class Module(BaseModule):
           self.out.interp = 1
           self.balanced.input2 = self.snd
 
-        
-        
-
 Interface = [   csampler(name="snd"),
                 cfilein(name="sndtable", label="Impulse"),
                 cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
+                cslider(name="index", label="Impulse index 1", min=0, max=100, init=25, rel="lin", unit="%", up=True),
+                cslider(name="index2", label="Impulse index 2", min=0, max=100, init=50, rel="lin", unit="%", up=True),
+                cslider(name="morph", label="Imp 1 <--> Imp 2", min=0, max=1, init=0.5, rel="lin", unit="x", col="red"),
                 cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue"),
-                cpopup(name="size", label="Size", init="512", col="grey", rate="i", value=["128","256","512","1024","2048"]),
+                cpopup(name="size", label="Size", init="512", col="grey", rate="i", value=["128","256","512","1024","2048","4096","8192"]),
                 cpopup(name="balance", label = "Balance", init= "Off", col="blue", value=["Off","Compress", "Audio"]),
                 cpoly()
           ]
\ No newline at end of file
diff --git a/Resources/modules/Resonators&Verbs/DetunedResonators.c5 b/Resources/modules/Resonators&Verbs/DetunedResonators.c5
index c3fb9d0..49f82a0 100644
--- a/Resources/modules/Resonators&Verbs/DetunedResonators.c5
+++ b/Resources/modules/Resonators&Verbs/DetunedResonators.c5
@@ -1,43 +1,67 @@
 import random
 class Module(BaseModule):
     """
-    8 detuned resonators with jitter control
+    "Eight detuned resonators with jitter control"
     
-    Sliders under the graph:
+    Description
+
+    This module implements a detuned resonator (waveguide) bank with 
+    random controls.
+    
+    This waveguide model consists of one delay-line with a 3-stages recursive
+    allpass filter which made the resonances of the waveguide out of tune.
+
+    Sliders
     
-        - Pitch Offset : Base pitch of all the resonators
-        - Amp Random Amp : Amplitude of the jitter applied on the resonators amplitude
-        - Amp Random Speed : Frequency of the jitter applied on the resonators amplitude
-        - Delay Random Amp : Amplitude of the jitter applied on the resonators delay (pitch)
-        - Delay Random Speed : Frequency of the jitter applied on the resonators delay (pitch)
-        - Detune Factor : Detune spread of the resonators
-        - Pitch Voice 1 : Pitch of the first resonator
-        - Pitch Voice 2 : Pitch of the second resonator
-        - Pitch Voice 3 : Pitch of the third resonator
-        - Pitch Voice 4 : Pitch of the fourth resonator
-        - Pitch Voice 5 : Pitch of the fifth resonator
-        - Pitch Voice 6 : Pitch of the sixth resonator
-        - Pitch Voice 7 : Pitch of the seventh resonator
-        - Pitch Voice 8 : Pitch of the eigth resonator
-        - Feedback : Amount of resonators fed back in the resonators
-        - Dry / Wet : Mix between the original signal and the resonators
+        # Pitch Offset : 
+            Base pitch of all the resonators
+        # Amp Random Amp : 
+            Amplitude of the jitter applied on the resonators amplitude
+        # Amp Random Speed : 
+            Frequency of the jitter applied on the resonators amplitude
+        # Delay Random Amp : 
+            Amplitude of the jitter applied on the resonators delay (pitch)
+        # Delay Random Speed : 
+            Frequency of the jitter applied on the resonators delay (pitch)
+        # Detune Factor : 
+            Detune spread of the resonators
+        # Pitch Voice 1 : 
+            Pitch of the first resonator
+        # Pitch Voice 2 : 
+            Pitch of the second resonator
+        # Pitch Voice 3 : 
+            Pitch of the third resonator
+        # Pitch Voice 4 : 
+            Pitch of the fourth resonator
+        # Pitch Voice 5 : 
+            Pitch of the fifth resonator
+        # Pitch Voice 6 : 
+            Pitch of the sixth resonator
+        # Pitch Voice 7 : 
+            Pitch of the seventh resonator
+        # Pitch Voice 8 : 
+            Pitch of the eigth resonator
+        # Feedback : 
+            Amount of resonators fed back in the resonators
+        # Dry / Wet : 
+            Mix between the original signal and the resonators
+
+    Graph Only
     
-    Dropdown menus, toggles and sliders on the bottom left:
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
     
-        - Voice 1 : Mute or unmute first resonator
-        - Voice 2 : Mute or unmute second resonator
-        - Voice 3 : Mute or unmute third resonator
-        - Voice 4 : Mute or unmute fourth resonator
-        - Voice 5 : Mute or unmute fifth resonator
-        - Voice 6 : Mute or unmute sixth resonator
-        - Voice 7 : Mute or unmute seventh resonator
-        - Voice 8 : Mute or unmute eigth resonator
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+    Popups & Toggles
     
-    Graph only parameters :
+        # Voice Activation ( 1 --> 8 ) :
+            Mute or unmute each of the eigth voices independently
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
     """
     def __init__(self):
         BaseModule.__init__(self)
@@ -109,7 +133,7 @@ Interface = [   csampler(name="snd"),
                 cslider(name="voice6", label="Pitch Voice 6", min=1, max=130, init=67, rel="lin", unit="semi", half=True, col="green"),
                 cslider(name="voice7", label="Pitch Voice 7", min=1, max=130, init=36, rel="lin", unit="semi", half=True, col="green"),
                 cslider(name="voice8", label="Pitch Voice 8", min=1, max=130, init=87, rel="lin", unit="semi", half=True, col="green"),
-                cslider(name="fb", label="Feedback", min=0.01, max=0.9999, init=0.5, rel="lin", unit="x", col="red"),
+                cslider(name="fb", label="Feedback", min=0.01, max=0.9999, init=0.95, rel="lin", unit="x", col="red"),
                 cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue"),
                 ctoggle(name="onoffv1", label="Voice Activation ( 1 --> 8 )", init=1, stack=True, col="green"),
                 ctoggle(name="onoffv2", label="", init=1, stack=True, col="green"),
diff --git a/Resources/modules/Resonators&Verbs/Resonators.c5 b/Resources/modules/Resonators&Verbs/Resonators.c5
index a6dcc96..6ae0a1f 100644
--- a/Resources/modules/Resonators&Verbs/Resonators.c5
+++ b/Resources/modules/Resonators&Verbs/Resonators.c5
@@ -1,42 +1,64 @@
 import random
 class Module(BaseModule):
     """
-    8 resonators with jitter control
+    "Eight resonators with jitter control"
+
+    Description
+
+    This module implements a resonator (waveguide) bank with random controls.
     
-    Sliders under the graph:
+    This waveguide model consists of one delay-line with a simple
+    lowpass filtering and lagrange interpolation.
     
-        - Pitch Offset : Base pitch of all the resonators
-        - Amp Random Amp : Amplitude of the jitter applied on the resonators amplitude
-        - Amp Random Speed : Frequency of the jitter applied on the resonators amplitude
-        - Delay Random Amp : Amplitude of the jitter applied on the resonators delay (pitch)
-        - Delay Random Speed : Frequency of the jitter applied on the resonators delay (pitch)
-        - Pitch Voice 1 : Pitch of the first resonator
-        - Pitch Voice 2 : Pitch of the second resonator
-        - Pitch Voice 3 : Pitch of the third resonator
-        - Pitch Voice 4 : Pitch of the fourth resonator
-        - Pitch Voice 5 : Pitch of the fifth resonator
-        - Pitch Voice 6 : Pitch of the sixth resonator
-        - Pitch Voice 7 : Pitch of the seventh resonator
-        - Pitch Voice 8 : Pitch of the eigth resonator
-        - Feedback : Amount of resonators fed back in the resonators
-        - Dry / Wet : Mix between the original signal and the resonators
+    Sliders
+
+        # Pitch Offset : 
+            Base pitch of all the resonators
+        # Amp Random Amp : 
+            Amplitude of the jitter applied on the resonators amplitude
+        # Amp Random Speed : 
+            Frequency of the jitter applied on the resonators amplitude
+        # Delay Random Amp : 
+            Amplitude of the jitter applied on the resonators delay (pitch)
+        # Delay Random Speed : 
+            Frequency of the jitter applied on the resonators delay (pitch)
+        # Pitch Voice 1 : 
+            Pitch of the first resonator
+        # Pitch Voice 2 : 
+            Pitch of the second resonator
+        # Pitch Voice 3 : 
+            Pitch of the third resonator
+        # Pitch Voice 4 : 
+            Pitch of the fourth resonator
+        # Pitch Voice 5 : 
+            Pitch of the fifth resonator
+        # Pitch Voice 6 : 
+            Pitch of the sixth resonator
+        # Pitch Voice 7 : 
+            Pitch of the seventh resonator
+        # Pitch Voice 8 : 
+            Pitch of the eigth resonator
+        # Feedback : 
+            Amount of resonators fed back in the resonators
+        # Dry / Wet : 
+            Mix between the original signal and the resonators
     
-    Dropdown menus, toggles and sliders on the bottom left:
+    Graph Only
     
-        - Voice 1 : Mute or unmute first resonator
-        - Voice 2 : Mute or unmute second resonator
-        - Voice 3 : Mute or unmute third resonator
-        - Voice 4 : Mute or unmute fourth resonator
-        - Voice 5 : Mute or unmute fifth resonator
-        - Voice 6 : Mute or unmute sixth resonator
-        - Voice 7 : Mute or unmute seventh resonator
-        - Voice 8 : Mute or unmute eigth resonator
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
     
-    Graph only parameters :
+    Popups & Toggles
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
+        # Voice Activation ( 1 --> 8 ) :
+            Mute or unmute each of the eigth voices independently
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+
     """
     def __init__(self):
         BaseModule.__init__(self)
@@ -122,10 +144,10 @@ Interface = [   csampler(name="snd"),
                 cslider(name="rnddelamp", label="Delay Rand Amp", min=0, max=0.25, init=0, rel="lin", unit="x", col="marineblue", half=True),
                 cslider(name="rndspeed", label="Amp Rand Speed", min=0.001, max=100, init=0.25, rel="log", unit="Hz", col="lightblue", half=True),
                 cslider(name="rnddelspeed", label="Delay Rand Speed", min=0.001, max=100, init=6, rel="log", unit="Hz", col="marineblue", half=True),
-                cslider(name="fb", label="Feedback", min=0.01, max=0.999, init=0.5, rel="lin", unit="x", col="red"),
+                cslider(name="fb", label="Feedback", min=0.01, max=0.999, init=0.95, rel="lin", unit="x", col="red"),
                 cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue"),
                 cpopup(name="balance", label = "Balance", init= "Off", col="blue", value=["Off","Compress", "Source"]),
-                ctoggle(name="onoffv1", label="Voice Activation / 1 > 8", init=1, stack=True, col="green"),
+                ctoggle(name="onoffv1", label="Voice Activation / 1 > 8", init=1, stack=True, col="green2"),
                 ctoggle(name="onoffv2", label="", init=1, stack=True, col="green2"),
                 ctoggle(name="onoffv3", label="", init=1, stack=True, col="green2"),
                 ctoggle(name="onoffv4", label="", init=1, stack=True, col="green2"),
diff --git a/Resources/modules/Resonators&Verbs/WGuideBank.c5 b/Resources/modules/Resonators&Verbs/WGuideBank.c5
index 9ed8d5d..0699296 100644
--- a/Resources/modules/Resonators&Verbs/WGuideBank.c5
+++ b/Resources/modules/Resonators&Verbs/WGuideBank.c5
@@ -1,29 +1,54 @@
 import random
 class Module(BaseModule):
     """
-    Multiple waveguide models module
+    "Multiple waveguide models module"
     
-    Sliders under the graph:
+    Description
+
+    Resonators whose frequencies are controlled with an expansion expression.
     
-        - Base Freq : Base pitch of he waveguides
-        - WG Expansion : Spread between waveguides
-        - WG Feedback : Length of the waveguides
-        - WG Filter : Center frequency of the filter
-        - Amp Deviation Amp : Amplitude of the jitter applied on the waveguides amplitude
-        - Amp Deviation Speed : Frequency of the jitter applied on the waveguides amplitude
-        - Freq Deviation Amp : Amplitude of the jitter applied on the waveguides pitch
-        - Freq Deviation Speed : Frequency of the jitter applied on the waveguides pitch
-        - Dry / Wet : Mix between the original signal and the waveguides
+    freq[i] = BaseFreq * pow(WGExpansion, i)
+
+    Sliders
     
-    Dropdown menus, toggles and sliders on the bottom left:
+        # Base Freq : 
+            Base pitch of the waveguides
+        # WG Expansion : 
+            Spread between waveguides
+        # WG Feedback : 
+            Length of the waveguides
+        # WG Filter : 
+            Center frequency of the filter
+        # Amp Deviation Amp : 
+            Amplitude of the jitter applied on the waveguides amplitude
+        # Amp Deviation Speed : 
+            Frequency of the jitter applied on the waveguides amplitude
+        # Freq Deviation Amp : 
+            Amplitude of the jitter applied on the waveguides pitch
+        # Freq Deviation Speed : 
+            Frequency of the jitter applied on the waveguides pitch
+        # Dry / Wet : 
+            Mix between the original signal and the waveguides
+
+    Graph Only
     
-        - Filter Type : Type of filter used
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
     
-    Graph only parameters :
+    Popups & Toggles
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
+        # Filter Type : 
+            Type of the post-process filter
+        # Balance :
+            Compression mode. Off, balanced with a fixed signal
+            or balanced with the input source.
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+
     """
     def __init__(self):
         BaseModule.__init__(self)
@@ -62,8 +87,8 @@ class Module(BaseModule):
 Interface = [   csampler(name="snd"), 
                 cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
                 cslider(name="basefreq", label="Base Freq", min=10, max=1000, init=40, rel="log", unit="Hz", col="blue"),
-                cslider(name="exp", label="WG Expansion", min=0, max=4, init=0.9975, rel="lin", unit="x", col="lightblue"),
-                cslider(name="fb", label="WG Feedback", min=0, max=0.999, init=0.7, rel="lin", unit="x", col="lightblue"),
+                cslider(name="exp", label="WG Expansion", min=0, max=4, init=1.33, rel="lin", unit="x", col="lightblue"),
+                cslider(name="fb", label="WG Feedback", min=0, max=0.999, init=0.95, rel="lin", unit="x", col="lightblue"),
                 cslider(name="filter", label="Filter Cutoff", min=50, max=20000, init=20000, rel="log", unit="Hz", col="chorusyellow"),
                 cslider(name="dev", label="Amp Dev Amp", min=0.001, max=1, init=0.01, rel="log", unit="x", col="green4", half = True),
                 cslider(name="fdev", label="Freq Dev Amp", min=0.001, max=1, init=0.01, rel="log", unit="x", col="green2", half = True),
diff --git a/Resources/modules/Spectral/AddResynth.c5 b/Resources/modules/Spectral/AddResynth.c5
new file mode 100644
index 0000000..1700960
--- /dev/null
+++ b/Resources/modules/Spectral/AddResynth.c5
@@ -0,0 +1,104 @@
+class Module(BaseModule):
+    """
+    "Phase vocoder additive resynthesis"
+    
+    Description
+
+    This module uses the magnitudes and true frequencies of a
+    phase vocoder analysis to control amplitudes and frequencies 
+    envelopes of an oscillator bank.
+
+    Sliders
+    
+        # Transpo : 
+            Transposition factor
+        # Num of Oscs : 
+            Number of oscillators used to synthesize the sound
+        # First bin : 
+            First synthesized bin
+        # Increment : 
+            Step between synthesized bins
+        # Dry / Wet : 
+            Mix between the original signal and the processed signal
+    
+    Graph Only
+    
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+
+    Popups & Toggles
+
+        # FFT Size : 
+            Size, in samples, of the FFT
+        # FFT Envelope : 
+            Windowing shape of the FFT
+        # FFT Overlaps : 
+            Number of FFT overlaping analysis
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+        
+    """
+    def __init__(self):
+        BaseModule.__init__(self)
+        self.snd = self.addSampler("snd")
+
+        size = int(self.fftsize_value)
+        olaps = int(self.overlaps_value)
+        wintype = self.wtype_index
+        self.oneOverSr = 1.0 / self.sr
+
+        self.delsrc = Delay(self.snd, delay=size*self.oneOverSr)
+
+        self.fin = PVAnal(self.snd, size=size, overlaps=olaps, wintype=wintype)
+        self.fout = PVAddSynth(self.fin, pitch=self.transpo, num=int(self.num.get()), 
+                            first=int(self.first.get()), inc=int(self.inc.get()))
+        self.fade = SigTo(value=1, time=.05, init=1)
+        self.out = Interp(self.delsrc*0.7, self.fout, self.mix, mul=self.fade*self.env)
+
+    def fftsize(self, index, value):
+        newsize = int(value)
+        self.fade.value = 0
+        time.sleep(.05)
+        self.delsrc.delay = newsize*self.oneOverSr
+        self.fin.size = newsize
+        time.sleep(.05)
+        self.fade.value = 1
+
+    def overlaps(self, index, value):
+        olaps = int(value)
+        self.fade.value = 0
+        time.sleep(.05)
+        self.fin.overlaps = olaps
+        time.sleep(.05)
+        self.fade.value = 1
+
+    def wtype(self, index, value):
+        self.fin.wintype = index
+
+    def num_up(self, value):
+        self.fout.num = int(value)
+
+    def first_up(self, value):
+        self.fout.first = int(value)
+
+    def inc_up(self, value):
+        self.fout.inc = int(value)
+
+Interface = [   csampler(name="snd"), 
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
+                cslider(name="transpo", label="Transpo", min=0.25, max=4, init=1, rel="lin", unit="x", col="green1"),
+                cslider(name="num", label="Num of Oscs", min=1, max=500, init=100, rel="lin", res="int", unit="x", up=True),
+                cslider(name="first", label="First bin", min=0, max=50, init=0, rel="lin", res="int", unit="x", up=True),
+                cslider(name="inc", label="Increment", min=1, max=25, init=1, rel="lin", res="int", unit="x", up=True),
+                cslider(name="mix", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue"),
+                cpopup(name="fftsize", label="FFT Size", init="1024", value=["16", "32", "64", "128", "256", "512", "1024", "2048", "4096", "8192"], col="red"),
+                cpopup(name="wtype", label="FFT Envelope", init="Hanning", col="red", value=["Rectangular", "Hamming", "Hanning", "Bartlett",
+                            "Blackman 3", "Blackman 4", "Blackman 7", "Tuckey", "Sine"]),
+                cpopup(name="overlaps", label="FFT Overlaps", init="4", col="red", value=["1", "2", "4", "8", "16"]),
+                cpoly()
+          ]
+
diff --git a/Resources/modules/Spectral/BinModulator.c5 b/Resources/modules/Spectral/BinModulator.c5
new file mode 100644
index 0000000..7fe4b53
--- /dev/null
+++ b/Resources/modules/Spectral/BinModulator.c5
@@ -0,0 +1,144 @@
+class Module(BaseModule):
+    """
+    "Frequency independent amplitude and frequency modulations"
+    
+    Description
+
+    This module modulates both the amplitude and the frequency of 
+    each bin from a phase vocoder analysis with an independent 
+    oscillator. Power series are used to compute modulating 
+    oscillator frequencies.
+
+    Sliders
+    
+        # AM Base Freq : 
+            Base amplitude modulation frequency, in Hertz.
+        # AM Spread : 
+            Spreading factor for AM oscillator frequencies. 0 means every 
+            oscillator has the same frequency.
+        # FM Base Freq : 
+            Base frequency modulation frequency, in Hertz.
+        # FM Spread : 
+            Spreading factor for FM oscillator frequencies. 0 means every 
+            oscillator has the same frequency.
+        # FM Depth : 
+            Amplitude of the modulating oscillators.
+        # Dry / Wet : 
+            Mix between the original signal and the delayed signals
+
+    Graph Only
+    
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+    
+    Popups & Toggles
+
+        # Reset : 
+            On mouse down, this button reset the phase of all 
+            bin's oscillators to 0. 
+        # Routing : 
+            Path of the sound
+        # FFT Size : 
+            Size, in samples, of the FFT
+        # FFT Envelope : 
+            Windowing shape of the FFT
+        # FFT Overlaps : 
+            Number of FFT overlaping analysis
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+        
+    """
+    def __init__(self):
+        BaseModule.__init__(self)
+        self.snd = self.addSampler("snd")
+
+        size = int(self.fftsize_value)
+        olaps = int(self.overlaps_value)
+        wintype = self.wtype_index
+        self.oneOverSr = 1.0 / self.sr
+        routing = self.routing_index
+
+        self.delsrc = Delay(self.snd, delay=size*self.oneOverSr)
+
+        self.fin = PVAnal(self.snd, size=size, overlaps=olaps, wintype=wintype)
+        
+        self.tr1 = PVAmpMod(self.fin, basefreq=self.amfreq, spread=self.amspread)
+        self.tr2 = PVFreqMod(self.tr1, basefreq=self.fmfreq, spread=self.fmspread, depth=self.fmdepth)
+
+        self.fout = PVSynth(self.tr2, wintype=wintype)
+
+        self.fade = SigTo(value=1, time=.05, init=1)
+        self.out = Interp(self.delsrc*0.5, self.fout*0.4, self.mix, mul=self.fade*self.env)
+
+        self.setRouting(routing)
+    
+    def setRouting(self, x):
+        if x == 0:
+            self.tr1.input = self.fin
+            self.fout.input = self.tr1
+            self.tr1.play()
+            self.tr2.stop()
+        elif x == 1:
+            self.tr2.input = self.fin
+            self.fout.input = self.tr2
+            self.tr1.stop()
+            self.tr2.play()
+        else:
+            self.tr1.input = self.fin
+            self.tr2.input = self.tr1
+            self.fout.input = self.tr2
+            self.tr1.play()
+            self.tr2.play()
+
+    def routing(self, index, value):
+        self.setRouting(index)
+
+    def reset(self, value):
+        if value:
+            if self.tr1.isPlaying():
+                self.tr1.reset()
+            if self.tr2.isPlaying():
+                self.tr2.reset()
+
+    def fftsize(self, index, value):
+        newsize = int(value)
+        self.fade.value = 0
+        time.sleep(.05)
+        self.delsrc.delay = newsize*self.oneOverSr
+        self.fin.size = newsize
+        time.sleep(.05)
+        self.fade.value = 1
+
+    def overlaps(self, index, value):
+        olaps = int(value)
+        self.fade.value = 0
+        time.sleep(.05)
+        self.fin.overlaps = olaps
+        time.sleep(.05)
+        self.fade.value = 1
+
+    def wtype(self, index, value):
+        self.fin.wintype = index
+        self.fout.wintype = index
+
+Interface = [   csampler(name="snd"), 
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
+                cslider(name="amfreq", label="AM Base Freq", min=0.0001, max=100, init=4, rel="log", unit="Hz", col="green1"),
+                cslider(name="amspread", label="AM Spread", min=-1, max=1, init=0.5, rel="lin", unit="x", col="green2"),
+                cslider(name="fmfreq", label="FM Base Freq", min=0.0001, max=100, init=2, rel="log", unit="Hz", col="orange1"),
+                cslider(name="fmspread", label="FM Spread", min=-1, max=1, init=0.1, rel="lin", unit="x", col="orange2"),
+                cslider(name="fmdepth", label="FM Depth", min=0, max=1, init=0.1, rel="lin", unit="x", col="orange3"),
+                cslider(name="mix", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue"),
+                cbutton(name="reset", label="Reset", col="blue2"),
+                cpopup(name="routing", label="Routing", init="Amp Only", value=["Amp Only", "Freq Only", "Amp -> Freq"], col="blue2"),
+                cpopup(name="fftsize", label="FFT Size", init="1024", value=["16", "32", "64", "128", "256", "512", "1024", "2048", "4096", "8192"], col="red"),
+                cpopup(name="wtype", label="FFT Envelope", init="Hanning", col="red", value=["Rectangular", "Hamming", "Hanning", "Bartlett",
+                            "Blackman 3", "Blackman 4", "Blackman 7", "Tuckey", "Sine"]),
+                cpopup(name="overlaps", label="FFT Overlaps", init="4", col="red", value=["1", "2", "4", "8", "16"]),
+                cpoly()
+          ]
+
diff --git a/Resources/modules/Spectral/BinWarper.c5 b/Resources/modules/Spectral/BinWarper.c5
new file mode 100644
index 0000000..67ae15c
--- /dev/null
+++ b/Resources/modules/Spectral/BinWarper.c5
@@ -0,0 +1,89 @@
+class Module(BaseModule):
+    """
+    "Phase vocoder buffer with bin independent speed playback"
+
+    Description
+
+    This module pre-analyses the input sound and keeps the
+    phase vocoder frames in a buffer for the playback. User
+    has control on playback position independently for every 
+    frequency bin.
+    
+    Sliders
+    
+        # Low Bin Speed : 
+            Lowest bin speed factor
+        # High Bin Speed : 
+            Highest bin speed factor
+
+        * For random distribution, these values are the 
+          minimum and the maximum of the distribution.
+
+    Graph Only
+    
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+            
+    Popups & Toggles
+
+        # Reset : 
+            Reset pointer positions to the beginning of the buffer.
+        # Speed Distribution : 
+            Speed distribution algorithm.
+        # FFT Size : 
+            Size, in samples, of the FFT
+        # FFT Envelope : 
+            Windowing shape of the FFT
+        # FFT Overlaps : 
+            Number of FFT overlaping analysis
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+
+    """
+    def __init__(self):
+        BaseModule.__init__(self)
+        self.snd = self.addSampler("snd")
+        snddur = self.getSamplerDur("snd")
+        self.server.startoffset = snddur
+
+        size = int(self.fftsize_value)
+        olaps = int(self.overlaps_value)
+        wintype = self.wtype_index
+        mode = self.mode_index
+
+        self.fin = PVAnal(self.snd, size=size, overlaps=olaps, wintype=wintype)
+        self.buf = PVBufLoops(self.fin, self.low, self.high, mode, length=snddur)
+        self.fout = PVSynth(self.buf, wintype=wintype, mul=self.env)
+
+        self.fade = SigTo(value=1, time=.05, init=1)
+        self.out = Sig(self.fout, mul=self.fade)
+
+    def reset(self, value):
+        if value:
+            self.buf.reset()
+
+    def mode(self, index, value):
+        self.buf.mode = index
+
+    def wtype(self, index, value):
+        self.fin.wintype = index
+        self.fout.wintype = index
+
+Interface = [   csampler(name="snd"), 
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
+                cslider(name="low", label="Low Bin Speed", min=0, max=2, init=0.9, rel="lin", unit="x", col="green1"),
+                cslider(name="high", label="High Bin Speed", min=0, max=2, init=1.1, rel="lin", unit="x", col="green2"),
+                cbutton(name="reset", label="Reset", col="blue2"),
+                cpopup(name="mode", label="Speed Distribution", init="Linear", col="blue2",
+                        value=["Linear", "Exponential", "Logarithmic", "Random", "Rand Exp Min", "Rand Exp Max", "Rand Bi-Exp"]),
+                cpopup(name="fftsize", label="FFT Size", init="1024", rate="i", value=["16", "32", "64", "128", "256", "512", "1024", "2048", "4096", "8192"], col="red"),
+                cpopup(name="wtype", label="FFT Envelope", init="Hanning", col="red", value=["Rectangular", "Hamming", "Hanning", "Bartlett",
+                            "Blackman 3", "Blackman 4", "Blackman 7", "Tuckey", "Sine"]),
+                cpopup(name="overlaps", label="FFT Overlaps", rate="i", init="4", col="red", value=["1", "2", "4", "8", "16"]),
+                cpoly()
+          ]
+
diff --git a/Resources/modules/Spectral/CrossSynth.c5 b/Resources/modules/Spectral/CrossSynth.c5
index f95b49a..9d13c7b 100644
--- a/Resources/modules/Spectral/CrossSynth.c5
+++ b/Resources/modules/Spectral/CrossSynth.c5
@@ -1,25 +1,42 @@
 class Module(BaseModule):
     """
-    Cross synthesis module (FFT)
+    "Phase Vocoder based cross synthesis module"
     
-    Sliders under the graph:
+    Description
+
+    Multiplication of magnitudes from two phase vocoder streaming objects.
     
-        - Exciter Pre Filter Freq : Frequency of the pre-FFT filter
-        - Exciter Pre Filter Q : Q of the pre-FFT filter
-        - Dry / Wet : Mix between the original signal and the processed signal
+    Sliders
     
-    Dropdown menus, toggles and sliders on the bottom left:
-
-        - Exc Pre Filter Type : Type of the pre-FFT filter
-        - FFT Size : Size of the FFT
-        - FFT Envelope : Shape of the FFT
-        - FFT Overlaps : Number of FFT overlaps
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
-        
-    Graph only parameters :
+        # Exciter Pre Filter Freq : 
+            Frequency of the pre-FFT filter
+        # Exciter Pre Filter Q : 
+            Q of the pre-FFT filter
+        # Dry / Wet : 
+            Mix between the original signal and the processed signal
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
+    Graph Only
+    
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+
+    Popups & Toggles
+
+        # Exc Pre Filter Type : 
+            Type of the pre-FFT filter
+        # FFT Size : 
+            Size, in samples, of the FFT
+        # FFT Envelope : 
+            Windowing shape of the FFT
+        # FFT Overlaps : 
+            Number of FFT overlaping analysis
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+
     """
     def __init__(self):
         BaseModule.__init__(self)
@@ -32,21 +49,16 @@ class Module(BaseModule):
         wintype = self.wtype_index
         self.oneOverSr = 1.0 / self.sr
         
-        self.delsrc = Delay(self.snd1, delay=size*self.oneOverSr*2)
+        self.delsrc = Delay(self.snd1, delay=size*self.oneOverSr)
 
-        self.fin1 = FFT(self.snd1, size=size, overlaps=olaps, wintype=wintype)
-        self.fin2 = FFT(self.snd2_filt, size=size, overlaps=olaps, wintype=wintype)
+        self.fin1 = PVAnal(self.snd1, size=size, overlaps=olaps, wintype=wintype)
+        self.fin2 = PVAnal(self.snd2_filt, size=size, overlaps=olaps, wintype=wintype)
 
-        # get the magnitude of the first sound
-        self.mag = Sqrt(self.fin1["real"]*self.fin1["real"] + self.fin1["imag"]*self.fin1["imag"], mul=60)
-        # scale `real` and `imag` parts of the second sound by the magnitude of the first one
-        self.real = self.fin2["real"] * self.mag
-        self.imag = self.fin2["imag"] * self.mag
+        self.cross = PVMult(self.fin1, self.fin2)
+        self.fout = PVSynth(self.cross, wintype=wintype, mul=4)
 
-        self.fout = IFFT(self.real, self.imag, size=size, overlaps=olaps, wintype=wintype)
-        self.ffout = self.fout.mix(self.nchnls)
         self.fade = SigTo(value=1, time=.03, init=1)
-        self.out = Interp(self.delsrc*self.env*0.5, self.ffout*self.env, self.mix, mul=self.fade)
+        self.out = Interp(self.delsrc*self.env*0.5, self.fout*self.env, self.mix, mul=self.fade)
 
     def prefilttype(self, index, value):
         self.snd2_filt.type = index
@@ -55,10 +67,18 @@ class Module(BaseModule):
         newsize = int(value)
         self.fade.value = 0
         time.sleep(.05)
-        self.delsrc.delay = newsize*self.oneOverSr*2
+        self.delsrc.delay = newsize*self.oneOverSr
         self.fin1.size = newsize
         self.fin2.size = newsize
-        self.fout.size = newsize
+        time.sleep(.05)
+        self.fade.value = 1
+
+    def overlaps(self, index, value):
+        olaps = int(value)
+        self.fade.value = 0
+        time.sleep(.05)
+        self.fin1.overlaps = olaps
+        self.fin2.overlaps = olaps
         time.sleep(.05)
         self.fade.value = 1
 
@@ -70,14 +90,14 @@ class Module(BaseModule):
 Interface = [   csampler(name="snd1", label="Spectral Envelope"),
                 csampler(name="snd2", label="Source Exciter"),
                 cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
-                cslider(name="prefiltf", label="Exciter Pre Filter Freq", min=40, max=18000, init=150, rel="log", unit="Hz", col="green"),
-                cslider(name="prefiltq", label="Exciter Pre Filter Q", min=.5, max=10, init=0.707, rel="log", col="green"),
+                cslider(name="prefiltf", label="Exc Pre Filter Freq", min=40, max=18000, init=150, rel="log", unit="Hz", col="green"),
+                cslider(name="prefiltq", label="Exc Pre Filter Q", min=.5, max=10, init=0.707, rel="log", col="green"),
                 cslider(name="mix", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue"),
                 cpopup(name="prefilttype", label="Exc Pre Filter Type", init="Highpass", col="green", value=["Lowpass","Highpass","Bandpass","Bandstop"]),
                 cpopup(name="fftsize", label="FFT Size", init="1024", value=["16", "32", "64", "128", "256", "512", "1024", "2048", "4096", "8192"], col="red"),
                 cpopup(name="wtype", label="FFT Envelope", init="Hanning", col="red", value=["Rectangular", "Hamming", "Hanning", "Bartlett",
                             "Blackman 3", "Blackman 4", "Blackman 7", "Tuckey", "Sine"]),
-                cpopup(name="overlaps", label="FFT Overlaps", rate="i", init="4", value=["1", "2", "4", "8", "16"]),
+                cpopup(name="overlaps", label="FFT Overlaps", init="4", col="red", value=["1", "2", "4", "8", "16"]),
                 cpoly()
           ]
 
diff --git a/Resources/modules/Spectral/CrossSynth2.c5 b/Resources/modules/Spectral/CrossSynth2.c5
new file mode 100644
index 0000000..4ebf047
--- /dev/null
+++ b/Resources/modules/Spectral/CrossSynth2.c5
@@ -0,0 +1,109 @@
+class Module(BaseModule):
+    """
+    "Phase Vocoder based cross synthesis module"
+    
+    Description
+
+    Performs cross-synthesis between two phase vocoder streaming objects.
+
+    The amplitudes from `Source Exciter` and `Spectral Envelope`, scaled
+    by `Crossing Index`, are applied to the frequencies of `Source Exciter`.
+    
+    Sliders
+    
+        # Crossing Index : 
+            Morphing index between the two source's magnitudes
+        # Exc Pre Filter Freq : 
+            Frequency of the pre-FFT filter
+        # Exc Pre Filter Q : 
+            Q of the pre-FFT filter
+        # Dry / Wet : 
+            Mix between the original signal and the processed signal
+    
+    Graph Only
+    
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+
+    Popups & Toggles
+
+        # Exc Pre Filter Type : 
+            Type of the pre-FFT filter
+        # FFT Size : 
+            Size, in samples, of the FFT
+        # FFT Envelope : 
+            Windowing shape of the FFT
+        # FFT Overlaps : 
+            Number of FFT overlaping analysis
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+
+    """
+    def __init__(self):
+        BaseModule.__init__(self)
+        self.snd1 = self.addSampler("snd1")
+        self.snd2 = self.addSampler("snd2")
+        self.snd2_filt = Biquadx(self.snd2, freq=self.prefiltf, q=self.prefiltq, type=self.prefilttype_index, stages=2)
+
+        size = int(self.fftsize_value)
+        olaps = int(self.overlaps_value)
+        wintype = self.wtype_index
+        self.oneOverSr = 1.0 / self.sr
+        
+        self.delsrc = Delay(self.snd1, delay=size*self.oneOverSr)
+
+        self.fin1 = PVAnal(self.snd1, size=size, overlaps=olaps, wintype=wintype)
+        self.fin2 = PVAnal(self.snd2_filt, size=size, overlaps=olaps, wintype=wintype)
+
+        self.cross = PVCross(self.fin2, self.fin1, self.interp)
+        self.fout = PVSynth(self.cross, wintype=wintype, mul=1)
+
+        self.fade = SigTo(value=1, time=.03, init=1)
+        self.out = Interp(self.delsrc*self.env*0.5, self.fout*self.env, self.mix, mul=self.fade)
+
+    def prefilttype(self, index, value):
+        self.snd2_filt.type = index
+
+    def fftsize(self, index, value):
+        newsize = int(value)
+        self.fade.value = 0
+        time.sleep(.05)
+        self.delsrc.delay = newsize*self.oneOverSr
+        self.fin1.size = newsize
+        self.fin2.size = newsize
+        time.sleep(.05)
+        self.fade.value = 1
+
+    def overlaps(self, index, value):
+        olaps = int(value)
+        self.fade.value = 0
+        time.sleep(.05)
+        self.fin1.overlaps = olaps
+        self.fin2.overlaps = olaps
+        time.sleep(.05)
+        self.fade.value = 1
+
+    def wtype(self, index, value):
+        self.fin1.wintype = index
+        self.fin2.wintype = index
+        self.fout.wintype = index
+        
+Interface = [   csampler(name="snd1", label="Spectral Envelope"),
+                csampler(name="snd2", label="Source Exciter"),
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
+                cslider(name="interp", label="Crossing Index", min=0, max=1, init=1, rel="lin", unit="x", col="red"),
+                cslider(name="prefiltf", label="Exc Pre Filter Freq", min=40, max=18000, init=150, rel="log", unit="Hz", col="green"),
+                cslider(name="prefiltq", label="Exc Pre Filter Q", min=.5, max=10, init=0.707, rel="log", col="green"),
+                cslider(name="mix", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue"),
+                cpopup(name="prefilttype", label="Exc Pre Filter Type", init="Highpass", col="green", value=["Lowpass","Highpass","Bandpass","Bandstop"]),
+                cpopup(name="fftsize", label="FFT Size", init="1024", value=["16", "32", "64", "128", "256", "512", "1024", "2048", "4096", "8192"], col="red"),
+                cpopup(name="wtype", label="FFT Envelope", init="Hanning", col="red", value=["Rectangular", "Hamming", "Hanning", "Bartlett",
+                            "Blackman 3", "Blackman 4", "Blackman 7", "Tuckey", "Sine"]),
+                cpopup(name="overlaps", label="FFT Overlaps", init="4", col="red", value=["1", "2", "4", "8", "16"]),
+                cpoly()
+          ]
+
diff --git a/Resources/modules/Spectral/Morphing.c5 b/Resources/modules/Spectral/Morphing.c5
index 1e314d1..27e24b9 100644
--- a/Resources/modules/Spectral/Morphing.c5
+++ b/Resources/modules/Spectral/Morphing.c5
@@ -1,23 +1,42 @@
 class Module(BaseModule):
     """
-    Morphing module (FFT)
+    "Phase Vocoder based morphing module"
     
-    Sliders under the graph:
+    Description
+
+    This module performs spectral morphing between two phase vocoder analysis.
+
+    According to `Morphing Index`, the amplitudes from two PV analysis
+    are interpolated linearly while the frequencies are interpolated
+    exponentially.
+
+    Sliders
+
+        # Morphing Index : 
+            Morphing index between the two sources
+        # Dry / Wet : 
+            Mix between the original signal and the morphed signal
     
-        - Morph src1 <-> src2 : Morphing index between the two sources
-        - Dry / Wet : Mix between the original signal and the morphed signal
+    Graph Only
     
-    Dropdown menus, toggles and sliders on the bottom left:
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+
+    Popups & Toggles
+
+        # FFT Size : 
+            Size, in samples, of the FFT
+        # FFT Envelope : 
+            Windowing shape of the FFT
+        # FFT Overlaps : 
+            Number of FFT overlaping analysis
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
 
-        - FFT Size : Size of the FFT
-        - FFT Envelope : Shape of the FFT
-        - FFT Overlaps : Number of FFT overlaps
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
-        
-    Graph only parameters :
-    
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
     """
     def __init__(self):
         BaseModule.__init__(self)
@@ -29,39 +48,35 @@ class Module(BaseModule):
         wintype = self.wtype_index
         self.oneOverSr = 1.0 / self.sr
         
-        self.delsrc = Delay(self.snd1, delay=size*self.oneOverSr*2)
-
-        self.fin1 = FFT(self.snd1, size=size, overlaps=olaps, wintype=wintype)
-        self.fin2 = FFT(self.snd2, size=size, overlaps=olaps, wintype=wintype)
+        self.delsrc = Delay(self.snd1, delay=size*self.oneOverSr)
 
-        self.pol1 = CarToPol(self.fin1["real"], self.fin1["imag"])
-        self.pol2 = CarToPol(self.fin2["real"], self.fin2["imag"])
+        self.fin1 = PVAnal(self.snd1, size=size, overlaps=olaps, wintype=wintype)
+        self.fin2 = PVAnal(self.snd2, size=size, overlaps=olaps, wintype=wintype)
+        self.morph = PVMorph(self.fin1, self.fin2, self.interp)
+        self.fout = PVSynth(self.morph, wintype=wintype)
 
-        self.mag3 = self.pol1["mag"] * self.pol2["mag"] * 200
-        self.pha3 = self.pol1["ang"] + self.pol2["ang"]
-
-        self.mag = Selector([self.pol1["mag"]*0.25, self.mag3, self.pol2["mag"]*0.25], voice=self.interp*2)
-        self.pha = Selector([self.pol1["ang"], self.pha3, self.pol2["ang"]], voice=self.interp*2)
-
-        # converts back to rectangular
-        self.car = PolToCar(self.mag, self.pha)
-
-        self.fout = IFFT(self.car["real"], self.car["imag"], size=size, overlaps=olaps, wintype=wintype)
-        self.ffout = self.fout.mix(self.nchnls)
         self.fade = SigTo(value=1, time=.05, init=1)
-        self.out = Interp(self.delsrc*self.env*0.5, self.ffout*self.env, self.mix, mul=self.fade)
+        self.out = Interp(self.delsrc*self.env*0.5, self.fout*self.env, self.mix, mul=self.fade)
 
     def fftsize(self, index, value):
         newsize = int(value)
         self.fade.value = 0
         time.sleep(.05)
-        self.delsrc.delay = newsize*self.oneOverSr*2
+        self.delsrc.delay = newsize*self.oneOverSr
         self.fin1.size = newsize
         self.fin2.size = newsize
-        self.fout.size = newsize
         time.sleep(.05)
         self.fade.value = 1
 
+    def overlaps(self, index, value):
+        olaps = int(value)
+        self.fade.value = 0
+        time.sleep(.05)
+        self.fin1.overlaps = olaps
+        self.fin2.overlaps = olaps
+        time.sleep(.05)
+        self.fade.value = 1
+        
     def wtype(self, index, value):
         self.fin1.wintype = index
         self.fin2.wintype = index
@@ -70,12 +85,12 @@ class Module(BaseModule):
 Interface = [   csampler(name="snd1", label="Source 1"),
                 csampler(name="snd2", label="Source 2"),
                 cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
-                cslider(name="interp", label="Morph src1 <-> src2", min=0, max=1, init=0.5, rel="lin", unit="x", col="green"),
+                cslider(name="interp", label="Morphing Index", min=0, max=1, init=0.5, rel="lin", unit="x", col="green"),
                 cslider(name="mix", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue"),
                 cpopup(name="fftsize", label="FFT Size", init="1024", value=["16", "32", "64", "128", "256", "512", "1024", "2048", "4096", "8192"], col="red"),
                 cpopup(name="wtype", label="FFT Envelope", init="Hanning", col="red", value=["Rectangular", "Hamming", "Hanning", "Bartlett",
                             "Blackman 3", "Blackman 4", "Blackman 7", "Tuckey", "Sine"]),
-                cpopup(name="overlaps", label="FFT Overlaps", rate="i", init="4", value=["1", "2", "4", "8", "16"]),
+                cpopup(name="overlaps", label="FFT Overlaps", init="4", col="red", value=["1", "2", "4", "8", "16"]),
                 cpoly()
           ]
 
diff --git a/Resources/modules/Spectral/Shifter.c5 b/Resources/modules/Spectral/Shifter.c5
new file mode 100644
index 0000000..9861c57
--- /dev/null
+++ b/Resources/modules/Spectral/Shifter.c5
@@ -0,0 +1,88 @@
+class Module(BaseModule):
+    """
+    "Phase Vocoder based frequency shifters"
+    
+    Description
+
+    This module implements two voices that linearly moves the analysis bins 
+    by the amount, in Hertz, specified by the the `Shift 1` and `Shift 2` 
+    parameters.
+
+    Sliders
+    
+        # Shift 1 : 
+            Shifting, in Hertz, of the first voice
+        # Shift 2 : 
+            Shifting, in Hertz, of the second voice
+        # Dry / Wet : 
+            Mix between the original signal and the delayed signals
+    
+    Popups & Toggles
+
+        # FFT Size : 
+            Size, in samples, of the FFT
+        # FFT Envelope : 
+            Windowing shape of the FFT
+        # FFT Overlaps : 
+            Number of FFT overlaping analysis
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+
+    """
+    def __init__(self):
+        BaseModule.__init__(self)
+        self.snd = self.addSampler("snd")
+
+        size = int(self.fftsize_value)
+        olaps = int(self.overlaps_value)
+        wintype = self.wtype_index
+        self.oneOverSr = 1.0 / self.sr
+
+        self.delsrc = Delay(self.snd, delay=size*self.oneOverSr)
+
+        self.fin = PVAnal(self.snd, size=size, overlaps=olaps, wintype=wintype)
+        self.tr1 = PVShift(self.fin, shift=self.shift1)
+        self.tr2 = PVShift(self.fin, shift=self.shift2)
+        self.fout1 = PVSynth(self.tr1, wintype=wintype)
+        self.fout2 = PVSynth(self.tr2, wintype=wintype)
+        self.fout = self.fout1 + self.fout2
+        self.fade = SigTo(value=1, time=.05, init=1)
+        self.out = Interp(self.delsrc*0.5, self.fout*0.4, self.mix, mul=self.fade*self.env)
+
+    def fftsize(self, index, value):
+        newsize = int(value)
+        self.fade.value = 0
+        time.sleep(.05)
+        self.delsrc.delay = newsize*self.oneOverSr
+        self.fin.size = newsize
+        time.sleep(.05)
+        self.fade.value = 1
+
+    def overlaps(self, index, value):
+        olaps = int(value)
+        self.fade.value = 0
+        time.sleep(.05)
+        self.fin.overlaps = olaps
+        time.sleep(.05)
+        self.fade.value = 1
+
+    def wtype(self, index, value):
+        self.fin.wintype = index
+        self.fout.wintype = index
+
+Interface = [   csampler(name="snd"), 
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
+                cslider(name="shift1", label="Shift 1", min=-8000, max=8000, init=250, rel="lin", unit="Hz", col="green1"),
+                cslider(name="shift2", label="Shift 2", min=-8000, max=8000, init=500, rel="lin", unit="Hz", col="green2"),
+                cslider(name="mix", label="Dry / Wet", min=0, max=1, init=0.5, rel="lin", unit="x", col="blue"),
+                cpopup(name="fftsize", label="FFT Size", init="1024", value=["16", "32", "64", "128", "256", "512", "1024", "2048", "4096", "8192"], col="red"),
+                cpopup(name="wtype", label="FFT Envelope", init="Hanning", col="red", value=["Rectangular", "Hamming", "Hanning", "Bartlett",
+                            "Blackman 3", "Blackman 4", "Blackman 7", "Tuckey", "Sine"]),
+                cpopup(name="overlaps", label="FFT Overlaps", init="4", col="red", value=["1", "2", "4", "8", "16"]),
+                cpoly()
+          ]
+
diff --git a/Resources/modules/Spectral/SpectralDelay.c5 b/Resources/modules/Spectral/SpectralDelay.c5
index 608df69..2a4fcd8 100644
--- a/Resources/modules/Spectral/SpectralDelay.c5
+++ b/Resources/modules/Spectral/SpectralDelay.c5
@@ -1,114 +1,87 @@
 class Module(BaseModule):
     """
-    Spectral delay module (FFT)
+    "Phase vocoder spectral delay"
     
-    Sliders under the graph:
-    
-        - Bin Regions : Split points for FFT processing
-        - Band 1 Delay : Delay time applied on the first band
-        - Band 1 Amp : Gain of the delayed first band
-        - Band 2 Delay : Delay time applied on the second band
-        - Band 2 Amp : Gain of the delayed second band
-        - Band 3 Delay : Delay time applied on the third band
-        - Band 3 Amp : Gain of the delayed third band
-        - Band 4 Delay : Delay time applied on the fourth band
-        - Band 4 Amp : Gain of the delayed fourth band
-        - Band 5 Delay : Delay time applied on the fifth band
-        - Band 5 Amp : Gain of the delayed fifth band
-        - Band 6 Delay : Delay time applied on the sixth band
-        - Band 6 Amp : Gain of the delayed sixth band
-        - Feedback : Amount of delayed signal fed back in the delays (band independant)
-        - Dry / Wet : Mix between the original signal and the delayed signals
+    Description
+
+    This module applies different delay times and feedbacks for
+    each bin of a phase vocoder analysis. Delay times and
+    feedbacks are specified via grapher functions.
+
+    Sliders
     
-    Dropdown menus, toggles and sliders on the bottom left:
+        # Max Delay : 
+            Maximum delay time per bin. Used to allocate memories.
+            only available at initialization time
+        # Dry / Wet : 
+            Mix between the original signal and the delayed signals
 
-        - FFT Size : Size of the FFT
-        - FFT Envelope : Shape of the FFT
-        - FFT Overlaps : Number of FFT overlaps
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
-        
-    Graph only parameters :
+    Graph Only
+
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance 
+        # Bin Delays : 
+            Controls the delay time for every bin, 
+            from left (low freq) to right (high freq) on the graph
+        # Bin Feedbacks : 
+            Controls the feedback factor for every bin, from left to right on the graph
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
+    Popups & Toggles
+    
+        # FFT Size : 
+            Size, in samples, of the FFT
+        # FFT Envelope : 
+            Windowing shape of the FFT
+        # FFT Overlaps : 
+            Number of FFT overlaping analysis
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+
     """
     def __init__(self):
         BaseModule.__init__(self)
         self.snd = self.addSampler("snd")
 
         self.size = int(self.fftsize_value)
-        olaps = int(self.overlaps_value)
+        self.olaps = int(self.overlaps_value)
         wintype = self.wtype_index
-        
-        self.num = olaps*self.nchnls # number of streams for ffts
         self.oneOverSr = 1.0 / self.sr
-        
-        self.delsrc = Delay(self.snd, delay=self.size*self.oneOverSr*2)
+        frames = int(self.maxd.get() * self.sr / (self.size / self.olaps))
 
-        binmin, binmax = self.getBinRegions()
+        self.dtab = DataTable(size=8192)
+        self.tabscl = TableScale(self.delays, self.dtab, mul=frames)
         
-        # delays conversion : number of frames -> seconds
-        delay_scale = (self.size/2) * self.oneOverSr
-        self.del1 = Sig(self.delay1, mul=delay_scale)
-        self.del2 = Sig(self.delay2, mul=delay_scale)
-        self.del3 = Sig(self.delay3, mul=delay_scale)
-        self.del4 = Sig(self.delay4, mul=delay_scale)
-        self.del5 = Sig(self.delay5, mul=delay_scale)
-        self.del6 = Sig(self.delay6, mul=delay_scale)
-        self.delays = self.duplicate([self.del1,self.del2,self.del3,self.del4,self.del5,self.del6], self.num)
-        self.amps = self.duplicate([DBToA(self.delay1amp),DBToA(self.delay2amp),DBToA(self.delay3amp),
-                                    DBToA(self.delay4amp),DBToA(self.delay5amp),DBToA(self.delay6amp)], self.num)
+        self.delsrc = Delay(self.snd, delay=self.size*self.oneOverSr)
 
-        self.fin = FFT(self.snd*0.5, size=self.size, overlaps=olaps, wintype=wintype)
+        self.fin = PVAnal(self.snd, size=self.size, overlaps=self.olaps, wintype=wintype)
+        self.dls = PVDelay(self.fin, self.dtab, self.feeds, maxdelay=self.maxd.get(), mode=1)
+        self.fout = PVSynth(self.dls, wintype=wintype, mul=self.env)
 
-        # splits regions between `binmins` and `binmaxs`
-        self.bins = Between(self.fin["bin"], min=binmin, max=binmax)
-        self.swre = self.fin["real"] * self.bins
-        self.swim = self.fin["imag"] * self.bins
-        # apply delays with mix to match `num` audio streams
-        self.delre = Delay(self.swre, delay=self.delays, feedback=self.feed, maxdelay=20, mul=self.amps).mix(self.num)
-        self.delim = Delay(self.swim, delay=self.delays, feedback=self.feed, maxdelay=20, mul=self.amps).mix(self.num)
-
-        self.fout = IFFT(self.delre, self.delim, size=self.size, overlaps=olaps, wintype=wintype)
-        self.ffout = self.fout.mix(self.nchnls)
         self.fade = SigTo(value=1, time=.05, init=1)
-        self.out = Interp(self.delsrc*self.env, self.ffout*self.env, self.mix, mul=self.fade)
-
-    def getBinRegions(self):
-        binscl = self.splitter.get(True)
-        binmin = [x for x in binscl]
-        binmin.insert(0, 0.0)
-        binmax = [x for x in binscl]
-        binmax.append(100.0)
-        binmin = self.duplicate([int(x * 0.01 * self.size / 2) for x in binmin], self.num)
-        binmax = self.duplicate([int(x * 0.01 * self.size / 2) for x in binmax], self.num)
-        return binmin, binmax
-        
-    def splitter_up(self, value):
-        binmin, binmax = self.getBinRegions()
-        self.bins.min = binmin
-        self.bins.max = binmax
+        self.out = Interp(self.delsrc*self.env, self.fout, self.mix, mul=self.fade)
 
     def fftsize(self, index, value):
         self.size = int(value)
-        delay_scale = (self.size/2) * self.oneOverSr
         self.fade.value = 0
         time.sleep(.05)
-        self.delsrc.delay = self.size*self.oneOverSr*2
-        self.del1.mul = delay_scale
-        self.del2.mul = delay_scale
-        self.del3.mul = delay_scale
-        self.del4.mul = delay_scale
-        self.del5.mul = delay_scale
-        self.del6.mul = delay_scale
-        self.delays = self.duplicate([self.del1,self.del2,self.del3,self.del4,self.del5,self.del6], self.num)
-        self.delre.delay = self.delays
-        self.delim.delay = self.delays
+        self.delsrc.delay = self.size*self.oneOverSr
         self.fin.size = self.size
-        self.fout.size = self.size
-        binmin, binmax = self.getBinRegions()
-        self.bins.min = binmin
-        self.bins.max = binmax
+        frames = int(self.maxd.get() * self.sr / (self.size / self.olaps))
+        self.tabscl.mul = frames
+        time.sleep(.05)
+        self.fade.value = 1
+
+    def overlaps(self, index, value):
+        self.olaps = int(value)
+        self.fade.value = 0
+        time.sleep(.05)
+        self.fin.overlaps = self.olaps
+        frames = int(self.maxd.get() * self.sr / (self.size / self.olaps))
+        self.tabscl.mul = frames
         time.sleep(.05)
         self.fade.value = 1
 
@@ -116,28 +89,19 @@ class Module(BaseModule):
         self.fin.wintype = index
         self.fout.wintype = index
 
+    def maxd_up(self, value):
+        pass
+
 Interface = [   csampler(name="snd"), 
                 cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
-                csplitter(name="splitter", label="Bin regions", min=2, max=90, init=[5,15,30,50,75],
-                          num_knobs=5, res="int", rel="lin", up=True, unit="%", col="grey"),
-                cslider(name="delay1", label="Band 1 Delay", min=1, max=200, init=17, res="int", rel="lin", unit="x*siz", col="red",half=True),
-                cslider(name="delay1amp", label="Band 1 Amp", min=-90, max=18, init=0, rel="lin", unit="db", col="orange",half=True),
-                cslider(name="delay2", label="Band 2 Delay", min=0, max=200, init=14, res="int", rel="lin", unit="x*siz", col="red",half=True),
-                cslider(name="delay2amp", label="Band 2 Amp", min=-90, max=18, init=0, rel="lin", unit="db", col="orange",half=True),
-                cslider(name="delay3", label="Band 3 Delay", min=0, max=200, init=11, res="int", rel="lin", unit="x*siz", col="red",half=True),
-                cslider(name="delay3amp", label="Band 3 Amp", min=-90, max=18, init=0, rel="lin", unit="db", col="orange",half=True),
-                cslider(name="delay4", label="Band 4 Delay", min=0, max=200, init=8, res="int", rel="lin", unit="x*siz", col="red",half=True),
-                cslider(name="delay4amp", label="Band 4 Amp", min=-90, max=18, init=0, rel="lin", unit="db", col="orange",half=True),
-                cslider(name="delay5", label="Band 5 Delay", min=0, max=200, init=5, res="int", rel="lin", unit="x*siz", col="red",half=True),
-                cslider(name="delay5amp", label="Band 5 Amp", min=-90, max=18, init=0, rel="lin", unit="db", col="orange",half=True),
-                cslider(name="delay6", label="Band 6 Delay", min=0, max=200, init=2, res="int", rel="lin", unit="x*siz", col="red",half=True),
-                cslider(name="delay6amp", label="Band 6 Amp", min=-90, max=18, init=0, rel="lin", unit="db", col="orange",half=True),
-                cslider(name="feed", label="Feedback", min=0, max=1, init=0.5, rel="lin", unit="x", col="green"),
-                cslider(name="mix", label="Dry / Wet", min=0, max=1, init=0.5, rel="lin", unit="x", col="blue"),
+                cgraph(name="delays", label="Bin Delays", table=True, size=8192, func=[(0,0),(1,0.5)], col="green"),
+                cgraph(name="feeds", label="Bin Feedbacks", table=True, size=8192, func=[(0,0.25),(1,0.25)], col="orange"),
+                cslider(name="maxd", label="Max delay", min=0.1, max=20, init=5, rel="lin", unit="secs", up=True),
+                cslider(name="mix", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue"),
                 cpopup(name="fftsize", label="FFT Size", init="1024", value=["64", "128", "256", "512", "1024", "2048", "4096", "8192"], col="red"),
                 cpopup(name="wtype", label="FFT Envelope", init="Hanning", col="red", value=["Rectangular", "Hamming", "Hanning", "Bartlett",
                             "Blackman 3", "Blackman 4", "Blackman 7", "Tuckey", "Sine"]),
-                cpopup(name="overlaps", label="FFT Overlaps", rate="i", init="4", value=["1", "2", "4", "8", "16"]),
+                cpopup(name="overlaps", label="FFT Overlaps", init="4", value=["1", "2", "4", "8", "16"]),
                 cpoly()
           ]
 
diff --git a/Resources/modules/Spectral/SpectralFilter.c5 b/Resources/modules/Spectral/SpectralFilter.c5
index d4a8989..5304fb4 100644
--- a/Resources/modules/Spectral/SpectralFilter.c5
+++ b/Resources/modules/Spectral/SpectralFilter.c5
@@ -1,63 +1,73 @@
 class Module(BaseModule):
     """
-    Spectral filter module (FFT)
+    "Phase Vocoder based filter"
+
+    Description
+
+    This module filters frequency components of a phase
+    vocoder analysed sound according to the shape drawn 
+    in the grapher function.
+
+    Sliders
     
-    Sliders under the graph:
+        # Dry / Wet : 
+            Mix between the original signal and the processed signal
+
+    Graph Only
     
-        - Filters interpolation : Morph between the two filters
-        - Dry / Wet : Mix between the original signal and the delayed signals
+        # Spectral Filter : 
+            Shape of the filter (amplitude of analysis bins)
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
     
-    Dropdown menus, toggles and sliders on the bottom left:
+    Popups & Toggles
+
+        # FFT Size : 
+            Size, in samples, of the FFT
+        # FFT Envelope : 
+            Windowing shape of the FFT
+        # FFT Overlaps : 
+            Number of FFT overlaping analysis
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
 
-        - Filter Range : Limits of the filter
-        - FFT Size : Size of the FFT
-        - FFT Envelope : Shape of the FFT
-        - FFT Overlaps : Number of FFT overlaps
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
-        
-    Graph only parameters :
-    
-        - Spectral Filter 1 : Shape of the first filter
-        - Spectral Filter 2 : Shape of the second filter
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
     """
     def __init__(self):
         BaseModule.__init__(self)
         self.snd = self.addSampler("snd")
 
         size = int(self.fftsize_value)
-        olaps = 4
+        olaps = int(self.overlaps_value)
+        wintype = self.wtype_index
         self.oneOverSr = 1.0 / self.sr
-        self.frange_bounds = {0: 2, 1: 4, 2: 8, 3:16}
 
-        self.delsrc = Delay(self.snd, delay=size*self.oneOverSr*2)
-
-        self.filter = NewTable(8192./self.sr)
-        self.interpolation = TableMorph(self.interpol, self.filter, [self.filter_table_1, self.filter_table_2])
-        
-        self.fin = FFT(self.snd, size=size, overlaps=olaps)
+        self.delsrc = Delay(self.snd, delay=size*self.oneOverSr)
         
-        frange_bound = self.frange_bounds[self.filter_range_index]
-        self.index = Scale(self.fin["bin"], 0, size, 0, frange_bound, 1)
-        self.amp = Pointer(self.filter, Clip(self.index, 0, 1))
-        
-        self.real = self.fin["real"] * self.amp
-        self.imag = self.fin["imag"] * self.amp
+        self.fin = PVAnal(self.snd, size=size, overlaps=olaps, wintype=wintype)
+        self.filt = PVFilter(self.fin, self.filter_table, mode=1)
+        self.fout = PVSynth(self.filt, wintype=wintype, mul=self.env)
 
-        self.fout = IFFT(self.real, self.imag, size=size, overlaps=olaps)
-        self.ffout = self.fout.mix(self.nchnls)
         self.fade = SigTo(value=1, time=.05, init=1)
-        self.out = Interp(self.delsrc*self.env, self.ffout*self.env, self.mix, mul=self.fade)
-
+        self.out = Interp(self.delsrc*self.env, self.fout, self.mix, mul=self.fade)
+        
     def fftsize(self, index, value):
         newsize = int(value)
         self.fade.value = 0
         time.sleep(.05)
-        self.delsrc.delay = newsize*self.oneOverSr*2
+        self.delsrc.delay = newsize*self.oneOverSr
         self.fin.size = newsize
-        self.fout.size = newsize
-        self.index.inmax = newsize
+        time.sleep(.05)
+        self.fade.value = 1
+
+    def overlaps(self, index, value):
+        olaps = int(value)
+        self.fade.value = 0
+        time.sleep(.05)
+        self.fin.overlaps = olaps
         time.sleep(.05)
         self.fade.value = 1
 
@@ -65,23 +75,15 @@ class Module(BaseModule):
         self.fin.wintype = index
         self.fout.wintype = index
 
-    def filter_range(self, index, value):
-        self.index.outmax = self.frange_bounds[index]
-
 Interface = [   csampler(name="snd"), 
-                cgraph(name="filter_table_1", label="Spectral Filter 1", table=True, size=8192, 
+                cgraph(name="filter_table", label="Spectral Filter", table=True, size=8192, 
                        func=[(0,0),(0.05,1),(0.1,0),(0.2,0),(0.3,.7),(0.4,0),(0.5,0),(0.6,.5),(0.7,0),(1,0)], col="green"),
-               cgraph(name="filter_table_2", label="Spectral Filter 2", table=True, size=8192, 
-                      func=[(0,0),(0.02,1),(0.07,0),(0.25,0),(0.35,.7),(0.5,0),(0.65,0),(0.75,.5),(0.9,0),(1,0)], col="forestgreen"),
                 cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
-                cslider(name="interpol", label="Filters interpolation", min=0, max=1, init=0, rel="lin", unit="x", col="olivegreen"),
                 cslider(name="mix", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue"),
-                cpopup(name="filter_range", label="Filter Range", init="Up to Nyquist/2", 
-                       value=["Up to Nyquist", "Up to Nyquist/2", "Up to Nyquist/4", "Up to Nyquist/8"], col="green"),
                 cpopup(name="fftsize", label="FFT Size", init="1024", value=["16", "32", "64", "128", "256", "512", "1024", "2048", "4096", "8192"], col="red"),
                 cpopup(name="wtype", label="FFT Envelope", init="Hanning", col="red", value=["Rectangular", "Hamming", "Hanning", "Bartlett",
                             "Blackman 3", "Blackman 4", "Blackman 7", "Tuckey", "Sine"]),
-                cpopup(name="overlaps", label="FFT Overlaps", rate="i", init="4", value=["1", "2", "4", "8", "16"]),
+                cpopup(name="overlaps", label="FFT Overlaps", init="4", value=["1", "2", "4", "8", "16"]),
                 cpoly()
           ]
 
diff --git a/Resources/modules/Spectral/SpectralGate.c5 b/Resources/modules/Spectral/SpectralGate.c5
index 1fe31b5..5780614 100644
--- a/Resources/modules/Spectral/SpectralGate.c5
+++ b/Resources/modules/Spectral/SpectralGate.c5
@@ -1,24 +1,40 @@
 class Module(BaseModule):
     """
-    Spectral gate module (FFT)
+    "Spectral gate (Phase Vocoder)"
     
-    Sliders under the graph:
-    
-        - Gate Threshold : dB value at which the gate becomes active
-        - Gate Attenuation : Gain in dB of the gated signal
-        - Dry / Wet : Mix between the original signal and the delayed signals
+    Description
+
+    For each frequency band of a phase vocoder analysis, if the amplitude
+    of the bin falls below a given threshold, it is attenuated according
+    to the `Gate Attenuation` parameter.
+
+    Sliders
     
-    Dropdown menus, toggles and sliders on the bottom left:
+        # Gate Threshold : 
+            dB value at which the gate becomes active
+        # Gate Attenuation : 
+            Gain in dB of the gated signal
 
-        - FFT Size : Size of the FFT
-        - FFT Envelope : Shape of the FFT
-        - FFT Overlaps : Number of FFT overlaps
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
-        
-    Graph only parameters :
+    Graph Only
+    
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
+    Popups & Toggles
+
+        # FFT Size : 
+            Size, in samples, of the FFT
+        # FFT Envelope : 
+            Windowing shape of the FFT
+        # FFT Overlaps : 
+            Number of FFT overlaping analysis
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+
     """
     def __init__(self):
         BaseModule.__init__(self)
@@ -28,25 +44,26 @@ class Module(BaseModule):
         olaps = int(self.overlaps_value)
         wintype = self.wtype_index
 
-        self.fin = FFT(self.snd*0.5, size=size, overlaps=olaps, wintype=wintype)
-
-        self.pol = CarToPol(self.fin["real"], self.fin["imag"])
-        self.amp = Compare(self.pol["mag"]*50, DBToA(self.gthresh), ">")
-        self.att = DBToA(self.gatt)
-        self.scl = self.amp * (1 - self.att) + self.att
-        self.car = PolToCar(self.pol["mag"]*self.scl, self.pol["ang"])
+        self.fin = PVAnal(self.snd, size=size, overlaps=olaps, wintype=wintype)
+        self.gate = PVGate(self.fin, thresh=self.gthresh, damp=DBToA(self.gatt))
+        self.fout = PVSynth(self.gate, wintype=wintype, mul=self.env)
 
-        self.fout = IFFT(self.car["real"], self.car["imag"], size=size, overlaps=olaps, wintype=wintype)
-        self.ffout = self.fout.mix(self.nchnls)
         self.fade = SigTo(value=1, time=.05, init=1)
-        self.out = Sig(self.ffout*self.env, mul=self.fade)
+        self.out = Sig(self.fout, mul=self.fade)
 
     def fftsize(self, index, value):
         newsize = int(value)
         self.fade.value = 0
         time.sleep(.05)
         self.fin.size = newsize
-        self.fout.size = newsize
+        time.sleep(.05)
+        self.fade.value = 1
+
+    def overlaps(self, index, value):
+        olaps = int(value)
+        self.fade.value = 0
+        time.sleep(.05)
+        self.fin.overlaps = olaps
         time.sleep(.05)
         self.fade.value = 1
 
@@ -61,7 +78,6 @@ Interface = [   csampler(name="snd"),
                 cpopup(name="fftsize", label="FFT Size", init="1024", value=["16", "32", "64", "128", "256", "512", "1024", "2048", "4096", "8192"], col="red"),
                 cpopup(name="wtype", label="FFT Envelope", init="Hanning", col="red", value=["Rectangular", "Hamming", "Hanning", "Bartlett",
                             "Blackman 3", "Blackman 4", "Blackman 7", "Tuckey", "Sine"]),
-                cpopup(name="overlaps", label="FFT Overlaps", rate="i", init="4", value=["1", "2", "4", "8", "16"]),
+                cpopup(name="overlaps", label="FFT Overlaps", init="4", col="red", value=["1", "2", "4", "8", "16"]),
                 cpoly()
           ]
-
diff --git a/Resources/modules/Spectral/SpectralWarper.c5 b/Resources/modules/Spectral/SpectralWarper.c5
new file mode 100644
index 0000000..9401096
--- /dev/null
+++ b/Resources/modules/Spectral/SpectralWarper.c5
@@ -0,0 +1,70 @@
+class Module(BaseModule):
+    """
+    "Phase Vocoder buffer and playback with transposition"
+
+    Description
+
+    This module pre-analyses the input sound and keeps the
+    phase vocoder frames in a buffer for the playback. User
+    has control on playback position and transposition.
+    
+    Sliders
+    
+        # Position : 
+            Normalized position (0 -> 1) inside the recorded PV buffer.
+            Buffer length is the same as the sound duration.
+        # Transposition : 
+            Pitch of the playback sound.
+
+    Graph Only
+    
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+
+    Popups & Toggles
+
+        # FFT Size : 
+            Size, in samples, of the FFT
+        # FFT Envelope : 
+            Windowing shape of the FFT
+        # FFT Overlaps : 
+            Number of FFT overlaping analysis
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+
+    """
+    def __init__(self):
+        BaseModule.__init__(self)
+        self.snd = self.addSampler("snd")
+        snddur = self.getSamplerDur("snd")
+
+        size = int(self.fftsize_value)
+        olaps = int(self.overlaps_value)
+        wintype = self.wtype_index
+
+        self.fin = PVAnal(self.snd, size=size, overlaps=olaps, wintype=wintype)
+        self.buf = PVBuffer(self.fin, self.pos, CentsToTranspo(self.pitch), length=snddur)
+        self.fout = PVSynth(self.buf, wintype=wintype, mul=self.env)
+
+        self.fade = SigTo(value=1, time=.05, init=1)
+        self.out = Sig(self.fout, mul=self.fade)
+
+    def wtype(self, index, value):
+        self.fin.wintype = index
+        self.fout.wintype = index
+
+Interface = [   csampler(name="snd"), 
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
+                cslider(name="pos", label="Position", min=0, max=1, init=0, func=[(0,0), (1,1)], rel="lin", unit="x", col="green"),
+                cslider(name="pitch", label="Transposition", min=-2400, max=2400, init=0, rel="lin", unit="cts", col="blue"),
+                cpopup(name="fftsize", label="FFT Size", init="1024", rate="i", value=["16", "32", "64", "128", "256", "512", "1024", "2048", "4096", "8192"], col="red"),
+                cpopup(name="wtype", label="FFT Envelope", init="Hanning", col="red", value=["Rectangular", "Hamming", "Hanning", "Bartlett",
+                            "Blackman 3", "Blackman 4", "Blackman 7", "Tuckey", "Sine"]),
+                cpopup(name="overlaps", label="FFT Overlaps", rate="i", init="4", col="red", value=["1", "2", "4", "8", "16"]),
+                cpoly()
+          ]
+
diff --git a/Resources/modules/Spectral/Transpose.c5 b/Resources/modules/Spectral/Transpose.c5
new file mode 100644
index 0000000..8852579
--- /dev/null
+++ b/Resources/modules/Spectral/Transpose.c5
@@ -0,0 +1,92 @@
+class Module(BaseModule):
+    """
+    "Phase Vocoder based two voices transposer"
+    
+    Description
+
+    This module transpose the frequency components of a phase 
+    vocoder analysis.
+
+    Sliders
+    
+        # Transpo 1 : 
+            Transposition factor of the first voice
+        # Transpo 2 : 
+            Transposition factor of the second voice
+        # Dry / Wet : 
+            Mix between the original signal and the delayed signals
+    
+    Graph Only
+    
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+
+    Popups & Toggles
+
+        # FFT Size : 
+            Size, in samples, of the FFT
+        # FFT Envelope : 
+            Windowing shape of the FFT
+        # FFT Overlaps : 
+            Number of FFT overlaping analysis
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+
+    """
+    def __init__(self):
+        BaseModule.__init__(self)
+        self.snd = self.addSampler("snd")
+
+        size = int(self.fftsize_value)
+        olaps = int(self.overlaps_value)
+        wintype = self.wtype_index
+        self.oneOverSr = 1.0 / self.sr
+
+        self.delsrc = Delay(self.snd, delay=size*self.oneOverSr)
+
+        self.fin = PVAnal(self.snd, size=size, overlaps=olaps, wintype=wintype)
+        self.tr1 = PVTranspose(self.fin, transpo=CentsToTranspo(self.transpo1))
+        self.tr2 = PVTranspose(self.fin, transpo=CentsToTranspo(self.transpo2))
+        self.fout1 = PVSynth(self.tr1, wintype=wintype)
+        self.fout2 = PVSynth(self.tr2, wintype=wintype)
+        self.fout = self.fout1 + self.fout2
+        self.fade = SigTo(value=1, time=.05, init=1)
+        self.out = Interp(self.delsrc*0.5, self.fout*0.4, self.mix, mul=self.fade*self.env)
+
+    def fftsize(self, index, value):
+        newsize = int(value)
+        self.fade.value = 0
+        time.sleep(.05)
+        self.delsrc.delay = newsize*self.oneOverSr
+        self.fin.size = newsize
+        time.sleep(.05)
+        self.fade.value = 1
+
+    def overlaps(self, index, value):
+        olaps = int(value)
+        self.fade.value = 0
+        time.sleep(.05)
+        self.fin.overlaps = olaps
+        time.sleep(.05)
+        self.fade.value = 1
+
+    def wtype(self, index, value):
+        self.fin.wintype = index
+        self.fout.wintype = index
+
+Interface = [   csampler(name="snd"), 
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
+                cslider(name="transpo1", label="Transpo 1", min=-2400, max=2400, init=-200, rel="lin", unit="cts", col="green1"),
+                cslider(name="transpo2", label="Transpo 2", min=-2400, max=2400, init=300, rel="lin", unit="cts", col="green2"),
+                cslider(name="mix", label="Dry / Wet", min=0, max=1, init=0.5, rel="lin", unit="x", col="blue"),
+                cpopup(name="fftsize", label="FFT Size", init="1024", value=["16", "32", "64", "128", "256", "512", "1024", "2048", "4096", "8192"], col="red"),
+                cpopup(name="wtype", label="FFT Envelope", init="Hanning", col="red", value=["Rectangular", "Hamming", "Hanning", "Bartlett",
+                            "Blackman 3", "Blackman 4", "Blackman 7", "Tuckey", "Sine"]),
+                cpopup(name="overlaps", label="FFT Overlaps", init="4", col="red", value=["1", "2", "4", "8", "16"]),
+                cpoly()
+          ]
+
diff --git a/Resources/modules/Spectral/Vectral.c5 b/Resources/modules/Spectral/Vectral.c5
index 57092f9..4929644 100644
--- a/Resources/modules/Spectral/Vectral.c5
+++ b/Resources/modules/Spectral/Vectral.c5
@@ -1,73 +1,78 @@
 class Module(BaseModule):
     """
-    Vectral module (FFT)
+    "Phase Vocoder based vectral module (spectral gate and verb)"
     
-    Sliders under the graph:
+    Description
+
+    This module implements a spectral gate followed by a spectral reverb.
+
+    Sliders
     
-        - Gate Threshold : dB value at which the gate becomes active
-        - Gate Attenuation : Gain in dB of the gated signal
-        - Upward Time Factor : Filter coefficient for increasing bins
-        - Downward Time Factor : Filter coefficient for decreasing bins
-        - Phase Time Factor : Phase blur
-        - High Freq Damping : High frequencies damping factor
-        - Dry / Wet : Mix between the original signal and the delayed signals
+        # Gate Threshold : 
+            dB value at which the gate becomes active
+        # Gate Attenuation : 
+            Gain in dB of the gated signal
+        # Time Factor : 
+            Filter coefficient for decreasing bins
+        # High Freq Damping : 
+            High frequencies damping factor
+        # Dry / Wet : 
+            Mix between the original signal and the delayed signals
     
-    Dropdown menus, toggles and sliders on the bottom left:
-
-        - FFT Size : Size of the FFT
-        - FFT Envelope : Shape of the FFT
-        - FFT Overlaps : Number of FFT overlaps
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
-        
-    Graph only parameters :
+    Graph Only
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+
+    Popups & Toggles
+
+        # FFT Size : 
+            Size, in samples, of the FFT
+        # FFT Envelope : 
+            Windowing shape of the FFT
+        # FFT Overlaps : 
+            Number of FFT overlaping analysis
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+
     """
     def __init__(self):
         BaseModule.__init__(self)
         self.snd = self.addSampler("snd")
 
-        chnls = self.nchnls
-        size = 1024
-        olaps = 4
-        num = olaps*chnls # number of streams for ffts
+        size = int(self.fftsize_value)
+        olaps = int(self.overlaps_value)
+        wintype = self.wtype_index
         self.oneOverSr = 1.0 / self.sr
 
-        self.delsrc = Delay(self.snd, delay=size*self.oneOverSr*2)
-
-        self.fin = FFT(self.snd*0.5, size=size, overlaps=olaps)
-
-        self.pol = CarToPol(self.fin["real"], self.fin["imag"])
-        self.amp = Compare(self.pol["mag"]*50, DBToA(self.gthresh), ">")
-        self.att = DBToA(self.gatt)
-        self.scl = self.amp * (1 - self.att) + self.att
+        self.delsrc = Delay(self.snd, delay=size*self.oneOverSr)
 
-        self.mag = Vectral(self.pol["mag"]*self.scl, framesize=size, overlaps=olaps, 
-                           down=self.downfac, up=self.upfac, damp=self.damp)
+        self.fin = PVAnal(self.snd, size=size, overlaps=olaps, wintype=wintype)
+        self.gate = PVGate(self.fin, self.gthresh, DBToA(self.gatt))
+        self.vect = PVVerb(self.gate, self.downfac, self.damp)
+        self.fout = PVSynth(self.vect, wintype=wintype, mul=self.env)
 
-        self.delta = FrameDelta(self.pol["ang"], framesize=size, overlaps=olaps)
-        self.ang = Vectral(self.delta, framesize=size, overlaps=olaps, up=self.anglefac, down=self.anglefac)
-        self.accum = FrameAccum(self.ang, framesize=size, overlaps=olaps)
-
-        self.car = PolToCar(self.mag, self.accum)
-
-        self.fout = IFFT(self.car["real"], self.car["imag"], size=size, overlaps=olaps)
-        self.ffout = self.fout.mix(chnls)
         self.fade = SigTo(value=1, time=.05, init=1)
-        self.out = Interp(self.delsrc*self.env, self.ffout*self.env, self.mix, mul=self.fade)
+        self.out = Interp(self.delsrc*self.env, self.fout, self.mix, mul=self.fade)
 
     def fftsize(self, index, value):
         newsize = int(value)
         self.fade.value = 0
         time.sleep(.05)
-        self.delsrc.delay = newsize*self.oneOverSr*2
+        self.delsrc.delay = newsize*self.oneOverSr
         self.fin.size = newsize
-        self.mag.framesize = newsize
-        self.delta.framesize = newsize
-        self.ang.framesize = newsize
-        self.accum.framesize = newsize
-        self.fout.size = newsize
+        time.sleep(.05)
+        self.fade.value = 1
+
+    def overlaps(self, index, value):
+        olaps = int(value)
+        self.fade.value = 0
+        time.sleep(.05)
+        self.fin.overlaps = olaps
         time.sleep(.05)
         self.fade.value = 1
 
@@ -79,15 +84,13 @@ Interface = [   csampler(name="snd"),
                 cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
                 cslider(name="gthresh", label="Gate Threshold", min=-120, max=0, init=-30, rel="lin", unit="db", col="red"),
                 cslider(name="gatt", label="Gate Attenuation", min=-120, max=0, init=-120, rel="lin", unit="db", col="red"),
-                cslider(name="upfac", label="Upward Time Factor", min=0, max=1, init=0.5, rel="lin", unit="x", col="orange"),
-                cslider(name="downfac", label="Downward Time Factor", min=0, max=1, init=0.3, rel="lin", unit="x", col="orange"),
-                cslider(name="anglefac", label="Phase Time Factor", min=0, max=1, init=0.1, rel="lin", unit="x", col="orange"),
+                cslider(name="downfac", label="Time Factor", min=0, max=1, init=0.3, rel="lin", unit="x", col="orange"),
                 cslider(name="damp", label="High Freq Damping", min=0, max=1, init=0.9, rel="lin", unit="x", col="green"),
                 cslider(name="mix", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue"),
                 cpopup(name="fftsize", label="FFT Size", init="1024", value=["16", "32", "64", "128", "256", "512", "1024", "2048", "4096", "8192"], col="red"),
                 cpopup(name="wtype", label="FFT Envelope", init="Hanning", col="red", value=["Rectangular", "Hamming", "Hanning", "Bartlett",
                             "Blackman 3", "Blackman 4", "Blackman 7", "Tuckey", "Sine"]),
-                cpopup(name="overlaps", label="FFT Overlaps", rate="i", init="4", value=["1", "2", "4", "8", "16"]),
+                cpopup(name="overlaps", label="FFT Overlaps", init="4", value=["1", "2", "4", "8", "16"]),
                 cpoly()
           ]
 
diff --git a/Resources/modules/Synthesis/AdditiveSynth.c5 b/Resources/modules/Synthesis/AdditiveSynth.c5
index c4b801b..88400f1 100644
--- a/Resources/modules/Synthesis/AdditiveSynth.c5
+++ b/Resources/modules/Synthesis/AdditiveSynth.c5
@@ -1,41 +1,59 @@
 import random
 class Module(BaseModule):
     """
-    Additive synthesis module
+    "Additive synthesis module"
     
-    Sliders under the graph:
-    
-        - Base Frequency : Base pitch of the synthesis
-        - Partials Spread : Distance between partials
-        - Partials Freq Rand Amp : Amplitude of the jitter applied on the partials pitch
-        - Partials Freq Rand Speed : Frequency of the jitter applied on the partials pitch
-        - Partials Amp Rand Amp : Amplitude of the jitter applied on the partials amplitude
-        - Partials Amp Rand Speed : Frequency of the jitter applied on the partials amplitude
-        - Amplitude Factor : Spread of amplitude between partials
-        - Chorus Depth : Amplitude of the chorus
-        - Chorus Feedback : Amount of chorused signal fed back to the chorus
-        - Chorus Dry / Wet : Mix between the original synthesis and the chorused signal
+    Description
+
+    An all featured additive synthesis module.
+
+    Sliders
     
-    Dropdown menus, toggles and sliders on the bottom left:
+        # Base Frequency : 
+            Base pitch of the synthesis
+        # Partials Spread : 
+            Distance between partials
+        # Partials Freq Rand Amp : 
+            Amplitude of the jitter applied on the partials pitch
+        # Partials Freq Rand Speed : 
+            Frequency of the jitter applied on the partials pitch
+        # Partials Amp Rand Amp : 
+            Amplitude of the jitter applied on the partials amplitude
+        # Partials Amp Rand Speed : 
+            Frequency of the jitter applied on the partials amplitude
+        # Amplitude Factor : 
+            Spread of amplitude between partials
+        # Chorus Depth : 
+            Amplitude of the chorus
+        # Chorus Feedback : 
+            Amount of chorused signal fed back to the chorus
+        # Chorus Dry / Wet : 
+            Mix between the original synthesis and the chorused signal
     
-        - # of Partials : Number of partials present
-        - Wave Shape : Shape used for the synthesis
-        - Custom Wave : Define a custom wave shape by entering amplitude values
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+    Graph Only
     
-    Graph only parameters :
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+
+    Popups & Toggles
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
+        # Num of Partials : 
+            Number of partials present
+        # Wave Shape : 
+            Shape used for the synthesis
+        # Custom Wave : 
+            Define a custom wave shape by entering amplitude values
+
     """
     def __init__(self):
         BaseModule.__init__(self)
         self.customtable = self.custom_value
         self.wavetable = HarmTable(size=8192)
-        self.polyfreqs = [random.uniform(1.0-self.polyphony_spread, 1.0+self.polyphony_spread) for i in range(self.number_of_voices*2)]
-        self.ply = [i*self.freq for i in self.polyfreqs]
-        self.out = OscBank(table=self.wavetable, freq=self.ply, spread=self.spread, slope=self.ampfactor, fjit=True, 
-                            frndf=self.rndampspeedf, frnda=self.rndampf, arndf=self.rndampspeed, arnda=self.rndamp, num=int(self.num_value), mul=self.env)
+        self.polyfreqs = self.polyphony_spread
+        self.ply = [i*self.freq for i in self.polyfreqs for j in range(self.nchnls)]
+        self.out = OscBank(table=self.wavetable, freq=self.ply, spread=self.spread, slope=self.ampfactor, 
+                            fjit=True, frndf=self.rndampspeedf, frnda=self.rndampf, arndf=self.rndampspeed, 
+                            arnda=self.rndamp, num=int(self.num_value), mul=self.polyphony_scaling*self.env)
 
         #INIT
         self.wavedict = {'Sine':[1], 'Sawtooth':[1, 0.5, 0.333, 0.25, 0.2, 0.167, 0.143, 0.111, 0.1], 'Square':[1, 0, 0.333, 0, 0.2, 0, 0.143, 0, 0.111],
@@ -59,7 +77,7 @@ Interface = [   cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)]
                 cslider(name="rndampf", label=" Freq Rand Amp", min=0.0001, max=1, init=0.02, rel="log", unit="x", col="blue3",half=True),
                 cslider(name="rndamp", label=" Amp Rand Amp", min=0.0001, max=1, init=0.01, rel="log", unit="x", col="green3",half=True),
                 cslider(name="ampfactor", label="Amplitude Factor", min=0.5, max=1, init=0.85, rel="lin", unit="x", col="green"),
-                cpopup(name="num", label="# of Partials", init="20", col="grey", rate="i", value=["5","10","20","40","80","160","320","640"]),
+                cpopup(name="num", label="Num of Partials", init="20", col="grey", rate="i", value=["5","10","20","40","80","160","320","640"]),
                 cpopup(name="shape", label="Wave Shape", init="Square", col="green", value=["Sine","Sawtooth","Square","Complex1", "Complex2", "Complex3", "Custom"]),
                 cgen(name="custom", label="Custom Wave", init=[1,0,0.5,0.3,0,0,0.2,0,0.1,0,0.09,0,0.05], popup=("shape", 6), col="forestgreen"),
                 cpoly()
diff --git a/Resources/modules/Synthesis/Pulsar.c5 b/Resources/modules/Synthesis/Pulsar.c5
index b78688c..f33393f 100644
--- a/Resources/modules/Synthesis/Pulsar.c5
+++ b/Resources/modules/Synthesis/Pulsar.c5
@@ -1,70 +1,80 @@
 import random
 class Module(BaseModule):
     """
-    Pulsar synthesis module
+    "Pulsar synthesis module"
     
-    Sliders under the graph:
-    
-        - Base Frequency : Base pitch of the synthesis
-        - Pulsar Width : Amount of silence added to one period
-        - Detune Factor : Amount of jitter applied to the pitch
-        - Detune Speed : Speed of the jitter applied to the pitch
-    
-    Dropdown menus, toggles and sliders on the bottom left:
+    Description
+
+    This module implements the classic pulsar synthesis.
+
+    Sliders
+
+        # Base Frequency : 
+            Base pitch of the synthesis
+        # Pulsar Width : 
+            Amount of silence added to one period
+        # Detune Factor : 
+            Amount of jitter applied to the pitch
+        # Detune Speed : 
+            Speed of the jitter applied to the pitch
     
-        - Wave Shape : Shape used for the synthesis
-        - Custom Wave : Define a custom wave shape by entering amplitude values
-        - Window Type : Pulsar envelope
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+    Graph Only
     
-    Graph only parameters :
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+
+    Popups & Toggles
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
+        # Wave Shape : 
+            Shape used for the synthesis
+        # Custom Wave : 
+            Define a custom wave shape by entering amplitude values
+        # Window Type : 
+            Pulsar envelope
+
     """
     def __init__(self):
         BaseModule.__init__(self)
-        self.src = self.addFilein("src")
-        self.window_size = self.wsize_value
-        index = int(self.srcindex.get() * self.src.getSize(False))
-        samples = [self.src[i].getTable()[index:index+int(self.window_size)] for i in range(self.nchnls)]
-        self.t = DataTable(size=len(samples[0]), chnls=len(samples), init=samples)
-        self.e = WinTable(type=self.wtype_index, size=8192)
+        self.customtable = self.custom_value
+        self.wavetable = HarmTable(size=8192)
+        self.wind = WinTable(type=self.wtype_index, size=8192)
         self.rnd1 = Randi(min=1-self.detune, max=1+self.detune, freq=self.detunesp)
         self.rnd2 = Randi(min=1-self.detune, max=1+self.detune, freq=self.detunesp)
-        self.polyfreqs = [random.uniform(1.0-self.polyphony_spread, 1.0+self.polyphony_spread) for i in range(self.number_of_voices)]
+        self.polyfreqs = self.polyphony_spread
         self.ply1 = [self.bfreq*i*self.rnd1 for i in self.polyfreqs]
         self.ply2 = [self.bfreq*i*self.rnd2 for i in self.polyfreqs]
-        self.ply3 = [self.bfreq*i for i in self.polyfreqs]
-        self.pfreqs = self.ply3+self.ply1+self.ply2+self.ply3
-        self.out = Pulsar(self.t, self.e, freq=self.pfreqs, frac=self.width, phase=0, interp=2, mul=0.3*self.env)
-   
+        self.ply3 = [self.bfreq*i for i in self.polyfreqs for j in range(self.nchnls)]
+        self.pfreqs = self.ply3+self.ply1+self.ply2
+        self.pul = Pulsar(self.wavetable, self.wind, freq=self.pfreqs, frac=self.width, 
+                          phase=0, interp=4, mul=0.1*self.polyphony_scaling*self.env)
+        self.out = Mix(self.pul, voices=self.nchnls)
+
+        #INIT
+        self.wavedict = {'Sine':[1], 'Sawtooth':[1, 0.5, 0.333, 0.25, 0.2, 0.167, 0.143, 0.111, 0.1], 'Square':[1, 0, 0.333, 0, 0.2, 0, 0.143, 0, 0.111],
+                            'Complex1':[1, 0, 0, 0, 0.3, 0, 0, 0, 0.2, 0, 0, 0.05], 'Complex2':[1, 0, 0, 0.3, 0, 0, 0.2, 0, 0, 0, 0, 0.1, 0, 0, 0.05, 0, 0, 0.02],
+                            'Complex3':[1, 0, 0, 0.2, 0, 0.1, 0, 0, 0, 0.3, 0, 0.1, 0, 0, 0.05, 0, 0, 0.1, 0, 0.05, 0, 0, 0, 0.05, 0, 0, 0.02],
+                            'Custom':self.customtable}
+
+        self.shape(self.shape_index, self.shape_value)
+
+    def shape(self, index, value):
+        self.wavetable.replace(self.wavedict[value])
+
+    def custom(self, value):
+        self.customtable = value
+
     def wtype(self, index, value):
-        self.e.type = index
+        self.wind.type = index
 
-    def wsize(self, index, value):
-        self.window_size = value
-        index = int(self.srcindex.get() * self.src.getSize(False))
-        samples = [self.src[i].getTable()[index:index+int(value)] for i in range(self.nchnls)]
-        self.t = DataTable(size=len(samples[0]), chnls=len(samples), init=samples)
-        self.out.table = self.t
-    
-    def srcindex_up(self, value):
-        index = int(value * self.src.getSize(False))
-        samples = [self.src[i].getTable()[index:index+int(self.window_size)] for i in range(self.nchnls)]
-        self.t = DataTable(size=len(samples[0]), chnls=len(samples), init=samples)
-        self.out.table = self.t
-        
-Interface = [   cfilein(name="src", label="Sound Source"),
-                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
-                cslider(name="bfreq", label="Base Frequency", min=0.1, max=1000, init=20, rel="log", unit="Hz", col="blue"),
-                cslider(name="width", label="Pulsar Width", min=0.0001, max=1, init=0.18, rel="lin", unit="x", col="lightgreen"),
+Interface = [   cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
+                cslider(name="bfreq", label="Base Frequency", min=0.1, max=1000, init=100, rel="log", unit="Hz", col="blue"),
+                cslider(name="width", label="Pulsar Width", min=0.01, max=1, init=0.5, rel="lin", unit="x", col="lightgreen"),
                 cslider(name="detune", label="Detune Factor", min=0.0001, max=0.999, init=0.005, rel="log", unit="x", col="red"),
                 cslider(name="detunesp", label="Detune Speed", min=0.0001, max=100, init=0.3, rel="log", unit="Hz", col="red"),
-                cslider(name="srcindex", label="Source Index", min=0., max=1., init=0., rel="lin", unit="x", up=True, col="red"),
-                cpopup(name="wsize", label="Window Size", init="512", col="green1", value=["32", "64", "128", "256", "512", "1024", "2048", "4092", "8096", "16384","32768"]),
                 cpopup(name="wtype", label="Window Type", init="Tuckey", col="chorusyellow", value=["Rectangular", "Hamming", "Hanning", 
                             "Bartlett", "Blackman 3", "Blackman 4", "Blackman 7", "Tuckey", "Sine"]),
+                cpopup(name="shape", label="Wave Shape", init="Sine", col="green", value=["Sine","Sawtooth","Square","Complex1", "Complex2", "Complex3", "Custom"]),
+                cgen(name="custom", label="Custom Wave", init=[1,0,0.5,0.3,0,0,0.2,0,0.1,0,0.09,0,0.05], popup=("shape", 6), col="forestgreen"),
                 cpoly()
           ]
 
diff --git a/Resources/modules/Synthesis/StochGrains.c5 b/Resources/modules/Synthesis/StochGrains.c5
index ed15c5e..b6b8ca0 100644
--- a/Resources/modules/Synthesis/StochGrains.c5
+++ b/Resources/modules/Synthesis/StochGrains.c5
@@ -98,6 +98,71 @@ class GrainAddSynth(Grain):
         self.out = SPan(self.s2, outs=nchnls, pan=self.pan)
 
 class Module(BaseModule):
+    """
+    "Stochastic granular synthesis with different instrument tone qualities"
+    
+    Description
+
+    This module implements a stochastic granular synthesis. Different synthesis
+    engine are available and the user has control over the range of every 
+    generation parameters and envelopes.
+
+    Sliders
+
+        # Pitch Offset : 
+            Base transposition, in semitones, applied to every grain
+        # Pitch Range : 
+            Range, in semitone, over which grain pitches are chosen randomly
+        # Speed Range : 
+            Range, in second, over which grain start times are chosen randomly
+        # Duration Range : 
+            Range, in second, over which grain durations are chosen randomly
+        # Brightness Range : 
+            Range over which grain brightness factors (high frequency power) 
+            are chosen randomly
+        # Detune Range : 
+            Range over which grain detune factors (frequency deviation between
+            voices) are chosen randomly
+        # Intensity Range : 
+            Range, in dB, over which grain amplitudes are chosen randomly
+        # Pan Range : 
+            Range over which grain spatial positions are chosen randomly
+        # Density :
+            Density of active grains, expressed as percent of the total generated grains
+        # Global Seed :
+            Root of stochatic generators. If 0, a new value is chosen randomly each
+            time the performance starts. Otherwise, the same root is used every 
+            performance, making the generated sequences the same every time.
+
+    Graph Only
+    
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+        # Grain Envelope :
+            Amplitude envelope of each grain
+        # Brightness Envelope :
+            Brightness (high frequency power) envelope of each grain
+
+    Popups & Toggles
+    
+        # Synth Type : 
+            Choose between the different synthesis engines
+        # Pitch Scaling :
+            Controls the possible values (as chords or scales) of the pitch generation
+        # Pitch Algorithm :
+            Noise distribution used by the pitch generator
+        # Speed Algorithm :
+            Noise distribution used by the speed generator
+        # Duration Algorithm :
+            Noise distribution used by the duration generator
+        # Intensity Algorithm :
+            Noise distribution used by the intensity generator
+        # Max Num of Grains :
+            Regardless the speed generation and the duration of each grain, there will
+            never be more overlapped grains than this value. The more CPU power you have,
+            higher this value can be.
+
+    """
     def __init__(self):
         BaseModule.__init__(self)
         self.setGlobalSeed(int(self.seed.get()))
diff --git a/Resources/modules/Synthesis/StochGrains2.c5 b/Resources/modules/Synthesis/StochGrains2.c5
index 5abb0c1..41845aa 100644
--- a/Resources/modules/Synthesis/StochGrains2.c5
+++ b/Resources/modules/Synthesis/StochGrains2.c5
@@ -14,6 +14,64 @@ class GrainSnd:
         self.out = SPan(self.s1, outs=nchnls, pan=self.pan)
 
 class Module(BaseModule):
+    """
+    "Stochastic granular synthesis based on a soundfile"
+    
+    Description
+
+    This module implements a stochastic granular synthesis where grains
+    coe from a given soundfile. The user has control over the range of 
+    every generation parameters and envelopes.
+
+    Sliders
+
+        # Pitch Offset : 
+            Base transposition, in semitones, applied to every grain
+        # Pitch Range : 
+            Range, in semitone, over which grain transpositions are chosen randomly
+        # Speed Range : 
+            Range, in second, over which grain start times are chosen randomly
+        # Duration Range : 
+            Range, in second, over which grain durations are chosen randomly
+        # Start Range : 
+            Range, in seconds, over which grain starting poistions (in the file) 
+            are chosen randomly
+        # Intensity Range : 
+            Range, in dB, over which grain amplitudes are chosen randomly
+        # Pan Range : 
+            Range over which grain spatial positions are chosen randomly
+        # Density :
+            Density of active grains, expressed as percent of the total generated grains
+        # Global Seed :
+            Root of stochatic generators. If 0, a new value is chosen randomly each
+            time the performance starts. Otherwise, the same root is used every 
+            performance, making the generated sequences the same every time.
+
+    Graph Only
+    
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+        # Grain Envelope :
+            Amplitude envelope of each grain
+
+    Popups & Toggles
+    
+        # Pitch Scaling :
+            Controls the possible values (as chords or scales) of the pitch generation
+        # Pitch Algorithm :
+            Noise distribution used by the pitch generator
+        # Speed Algorithm :
+            Noise distribution used by the speed generator
+        # Duration Algorithm :
+            Noise distribution used by the duration generator
+        # Intensity Algorithm :
+            Noise distribution used by the intensity generator
+        # Max Num of Grains :
+            Regardless the speed generation and the duration of each grain, there will
+            never be more overlapped grains than this value. The more CPU power you have,
+            higher this value can be.
+
+    """
     def __init__(self):
         BaseModule.__init__(self)
         self.table = self.addFilein("snd")
@@ -104,31 +162,620 @@ class Module(BaseModule):
         self.setGlobalSeed(int(value))
 
 Interface = [   cfilein(name="snd", label="Audio"),
-                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
-                cgraph(name="grainenv", label="Grain Envelope", func=[(0,0),(.1,1),(.4,.8),(.7,.3),(1,0)], table=True, col="orange"),
-                cslider(name="pitch_off", label="Pitch Offset", min=-12, max=12, init=0, rel="lin", res="int", unit="midi", col="red"),
-                crange(name="pitch", label="Pitch Range", min=12, max=115, init=[48,72], rel="lin", unit="midi", col="filterred"),
-                crange(name="speed_rng", label="Speed Range", min=.005, max=5, init=[.05, .25], rel="log", unit="sec", col="green"),
-                crange(name="dur_rng", label="Duration Range", min=0.005, max=10, init=[.25,2], rel="log", unit="sec", col="forestgreen"),
-                crange(name="start_rng", label="Sample Start Range", min=0, max=1, init=[.1,.5], rel="lin", unit="%", col="forestgreen"),
-                crange(name="dbamp_rng", label="Intensity Range", min=-90, max=0, init=[-18,-6], rel="lin", unit="dB", col="chorusyellow"),
-                crange(name="pan_rng", label="Pan Range", min=0, max=1, init=[0,1], rel="lin", unit="x", col="khaki"),
-                cslider(name="density", label="Density", min=0, max=100, init=100, rel="lin", unit="%", col="orange"),
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
+                cgraph(name="grainenv", label="Grain Envelope", func=[(0,0),(.1,1),(.4,.8),(.7,.3),(1,0)], table=True, col="orange1"),
+                cslider(name="pitch_off", label="Pitch Offset", min=-12, max=12, init=0, rel="lin", res="int", unit="midi", col="red1"),
+                crange(name="pitch", label="Pitch Range", min=12, max=115, init=[48,72], rel="lin", unit="midi", col="red2"),
+                crange(name="speed_rng", label="Speed Range", min=0.0005, max=5, init=[.05, .25], rel="log", unit="sec", col="green1"),
+                crange(name="dur_rng", label="Duration Range", min=0.001, max=10, init=[.25,2], rel="log", unit="sec", col="green2"),
+                crange(name="start_rng", label="Start Range", min=0, max=1, init=[.1,.5], rel="lin", unit="%", col="purple1"),
+                crange(name="dbamp_rng", label="Intensity Range", min=-90, max=0, init=[-18,-6], rel="lin", unit="dB", col="blue2"),
+                crange(name="pan_rng", label="Pan Range", min=0, max=1, init=[0,1], rel="lin", unit="x", col="orange1"),
+                cslider(name="density", label="Density", min=0, max=100, init=100, rel="lin", unit="%", col="orange3"),
                 cslider(name="seed", label="Global seed", min=0, max=5000, init=0, rel="lin", res="int", unit="x", up=True),
                 cpopup(name="genmethod", label="Pitch Scaling", value=['All-over', 'Serial', 'Major', 'Minor', 'Seventh', 'Minor 7', 
                         'Major 7', 'Minor 7 b5', 'Diminished', 'Diminished 7', 'Ninth', 'Major 9', 'Minor 9', 'Eleventh', 'Major 11', 
-                        'Minor 11', 'Thirteenth', 'Major 13', 'Whole-tone'], init="Major 11", col="red"),
+                        'Minor 11', 'Thirteenth', 'Major 13', 'Whole-tone'], init="Major 11", col="red1"),
                 cpopup(name="pitalgo", label="Pitch Algorithm", value=['Uniform', 'Linear min', 'Linear max', 'Triangular', 
                         'Expon min', 'Expon max', 'Bi-exponential', 'Cauchy', 'Weibull', 'Gaussian', 'Poisson', 'Walker', 'Loopseg'], 
-                        init="Uniform", col="filterred"),
+                        init="Uniform", col="red2"),
                 cpopup(name="speedalgo", label="Speed Algorithm", value=['Uniform', 'Linear min', 'Linear max', 'Triangular', 
                         'Expon min', 'Expon max', 'Bi-exponential', 'Cauchy', 'Weibull', 'Gaussian', 'Poisson', 'Walker', 'Loopseg'], 
-                        init="Uniform", col="green"),
+                        init="Uniform", col="green1"),
                 cpopup(name="duralgo", label="Duration Algorithm", value=['Uniform', 'Linear min', 'Linear max', 'Triangular', 
                         'Expon min', 'Expon max', 'Bi-exponential', 'Cauchy', 'Weibull', 'Gaussian', 'Poisson', 'Walker', 'Loopseg'], 
-                        init="Uniform", col="forestgreen"),
+                        init="Uniform", col="green2"),
                 cpopup(name="mulalgo", label="Intensity Algorithm", value=['Uniform', 'Linear min', 'Linear max', 'Triangular', 
                         'Expon min', 'Expon max', 'Bi-exponential', 'Cauchy', 'Weibull', 'Gaussian', 'Poisson', 'Walker', 'Loopseg'], 
-                        init="Uniform", col="chorusyellow"),
+                        init="Uniform", col="blue2"),
                 cpopup(name="numofvoices", label="Max Num of Grains", value=['5','10','15','20','25','30','40','50','60'], init='10', rate="i")
             ]
+
+
+####################################
+##### Cecilia reserved section #####
+#### Presets saved from the app ####
+####################################
+
+
+CECILIA_PRESETS = {u'01-Bubbles': {'active': False,
+                 'gainSlider': 0.0,
+                 'nchnls': 2,
+                 'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                             1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                             2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                             3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                 'totalTime': 30.00000000000007,
+                 'userGraph': {'dbamp_rngmax': {'curved': False, 'data': [[0.0, 0.9333333333333333], [1.0, 0.9333333333333333]]},
+                               'dbamp_rngmin': {'curved': False, 'data': [[0.0, 0.8], [1.0, 0.8]]},
+                               'density': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                               'dur_rngmax': {'curved': False, 'data': [[0.0, 0.7882569969815056], [1.0, 0.7882569969815056]]},
+                               'dur_rngmin': {'curved': False, 'data': [[0.0, 0.5146787537731179], [1.0, 0.5146787537731179]]},
+                               'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                               'grainenv': {'curved': True, 'data': [[0.0, 0.0], [0.49999067077152726, 1.0], [1.0, 0.0]]},
+                               'pan_rngmax': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                               'pan_rngmin': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                               'pitch_off': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                               'pitchmax': {'curved': False, 'data': [[0.0, 0.5825242718446602], [1.0, 0.5825242718446602]]},
+                               'pitchmin': {'curved': False, 'data': [[0.0, 0.34951456310679613], [1.0, 0.34951456310679613]]},
+                               'speed_rngmax': {'curved': False, 'data': [[0.0, 0.5663233347786729], [1.0, 0.5663233347786729]]},
+                               'speed_rngmin': {'curved': False, 'data': [[0.0, 0.3333333333333333], [1.0, 0.3333333333333333]]},
+                               'start_rngmax': {'curved': False, 'data': [[0.0, 0.038285983177460126], [1.0, 1.0]]},
+                               'start_rngmin': {'curved': False, 'data': [[0.0, 0], [1.0, 0.9617140168225399]]}},
+                 'userInputs': {'snd': {'dursnd': 5.768526077097506,
+                                        'mode': 0,
+                                        'nchnlssnd': 1,
+                                        'offsnd': 0.0,
+                                        'path': u'/home/olivier/Dropbox/private/snds/baseballmajeur_m.aif',
+                                        'srsnd': 44100.0,
+                                        'type': 'cfilein'}},
+                 'userSliders': {'dbamp_rng': [[-8.942307692307693, 0.0], 0, None, [1, 1], None, None],
+                                 'density': [100.0, 0, None, 1, None, None],
+                                 'dur_rng': [[0.010134364265556587, 0.02004669542202102], 0, None, [1, 1], None, None],
+                                 'pan_rng': [[0.0, 1.0], 0, None, [1, 1], None, None],
+                                 'pitch': [[55.081730769230774, 66.96634615384616], 0, None, [1, 1], None, None],
+                                 'pitch_off': [0, 0, None, 1, None, None],
+                                 'seed': [0, 0, None, 1, None, None],
+                                 'speed_rng': [[0.04981583798094, 0.05968883208572181], 0, None, [1, 1], None, None],
+                                 'start_rng': [[0.43284764885902405, 0.47113361954689026], 1, None, [1, 1], None, None]},
+                 'userTogglePopups': {'duralgo': 0, 'genmethod': 2, 'mulalgo': 0, 'numofvoices': 6, 'pitalgo': 6, 'speedalgo': 0}},
+ u'02-Ostinato': {'active': False,
+                  'gainSlider': 0.0,
+                  'nchnls': 2,
+                  'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                  'totalTime': 30.00000000000007,
+                  'userGraph': {'dbamp_rngmax': {'curved': False, 'data': [[0.0, 0.9333333333333333], [1.0, 0.9333333333333333]]},
+                                'dbamp_rngmin': {'curved': False, 'data': [[0.0, 0.8], [1.0, 0.8]]},
+                                'density': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'dur_rngmax': {'curved': False, 'data': [[0.0, 0.7882569969815056], [1.0, 0.7882569969815056]]},
+                                'dur_rngmin': {'curved': False, 'data': [[0.0, 0.5146787537731179], [1.0, 0.5146787537731179]]},
+                                'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'grainenv': {'curved': False,
+                                             'data': [[0.0, 0.0],
+                                                      [0.1, 1.0],
+                                                      [0.5446174105253258, 0.9058761249338275],
+                                                      [0.8410901566100738, 0.23823892712193398],
+                                                      [1.0, 0.0]]},
+                                'pan_rngmax': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'pan_rngmin': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                'pitch_off': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                'pitchmax': {'curved': False, 'data': [[0.0, 0.5825242718446602], [1.0, 0.5825242718446602]]},
+                                'pitchmin': {'curved': False, 'data': [[0.0, 0.34951456310679613], [1.0, 0.34951456310679613]]},
+                                'speed_rngmax': {'curved': False, 'data': [[0.0, 0.5663233347786729], [1.0, 0.5663233347786729]]},
+                                'speed_rngmin': {'curved': False, 'data': [[0.0, 0.3333333333333333], [1.0, 0.3333333333333333]]},
+                                'start_rngmax': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                'start_rngmin': {'curved': False, 'data': [[0.0, 0.1], [1.0, 0.1]]}},
+                  'userInputs': {'snd': {'dursnd': 5.466417233560091,
+                                         'mode': 0,
+                                         'nchnlssnd': 1,
+                                         'offsnd': 0.0,
+                                         'path': u'/home/olivier/Dropbox/private/snds/flute.wav',
+                                         'srsnd': 44100.0,
+                                         'type': 'cfilein'}},
+                  'userSliders': {'dbamp_rng': [[-18.0, -6.0], 0, None, [1, 1], None, None],
+                                  'density': [100.0, 0, None, 1, None, None],
+                                  'dur_rng': [[1.0, 2.9999999999999982], 0, None, [1, 1], None, None],
+                                  'pan_rng': [[0.0, 1.0], 0, None, [1, 1], None, None],
+                                  'pitch': [[48.0, 72.0], 0, None, [1, 1], None, None],
+                                  'pitch_off': [0, 0, None, 1, None, None],
+                                  'seed': [0, 0, None, 1, None, None],
+                                  'speed_rng': [[0.10932351683200851, 0.5494445714612198], 0, None, [1, 1], None, None],
+                                  'start_rng': [[0.47275641025641024, 0.5], 0, None, [1, 1], None, None]},
+                  'userTogglePopups': {'duralgo': 0, 'genmethod': 3, 'mulalgo': 0, 'numofvoices': 1, 'pitalgo': 12, 'speedalgo': 0}},
+ u'03-Bellows': {'active': False,
+                 'gainSlider': 0.0,
+                 'nchnls': 2,
+                 'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                             1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                             2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                             3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                 'totalTime': 30.00000000000007,
+                 'userGraph': {'dbamp_rngmax': {'curved': False, 'data': [[0.0, 0.9333333333333333], [1.0, 0.9333333333333333]]},
+                               'dbamp_rngmin': {'curved': False, 'data': [[0.0, 0.8], [1.0, 0.8]]},
+                               'density': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                               'dur_rngmax': {'curved': False, 'data': [[0.0, 0.7882569969815056], [1.0, 0.7882569969815056]]},
+                               'dur_rngmin': {'curved': False, 'data': [[0.0, 0.5146787537731179], [1.0, 0.5146787537731179]]},
+                               'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                               'grainenv': {'curved': False,
+                                            'data': [[0.0, 0.0],
+                                                     [0.05, 1.0],
+                                                     [0.1, 0.0],
+                                                     [0.15000000000000002, 1.0],
+                                                     [0.2, 0.0],
+                                                     [0.25, 1.0],
+                                                     [0.30000000000000004, 0.0],
+                                                     [0.35000000000000003, 1.0],
+                                                     [0.4, 0.0],
+                                                     [0.45, 1.0],
+                                                     [0.5, 0.0],
+                                                     [0.55, 1.0],
+                                                     [0.6000000000000001, 0.0],
+                                                     [0.6500000000000001, 1.0],
+                                                     [0.7000000000000001, 0.0],
+                                                     [0.7500000000000001, 1.0],
+                                                     [0.8, 0.0],
+                                                     [0.8500000000000001, 1.0],
+                                                     [0.9, 0.0],
+                                                     [0.9500000000000001, 1.0],
+                                                     [1.0, 0.0]]},
+                               'pan_rngmax': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                               'pan_rngmin': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                               'pitch_off': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                               'pitchmax': {'curved': False, 'data': [[0.0, 0.5825242718446602], [1.0, 0.5825242718446602]]},
+                               'pitchmin': {'curved': False, 'data': [[0.0, 0.34951456310679613], [1.0, 0.34951456310679613]]},
+                               'speed_rngmax': {'curved': False, 'data': [[0.0, 0.5663233347786729], [1.0, 0.5663233347786729]]},
+                               'speed_rngmin': {'curved': False, 'data': [[0.0, 0.3333333333333333], [1.0, 0.3333333333333333]]},
+                               'start_rngmax': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                               'start_rngmin': {'curved': False, 'data': [[0.0, 0.1], [1.0, 0.1]]}},
+                 'userInputs': {'snd': {'dursnd': 27.707210884353742,
+                                        'mode': 0,
+                                        'nchnlssnd': 2,
+                                        'offsnd': 0.0,
+                                        'path': u'/home/olivier/Dropbox/private/snds/chutes.aif',
+                                        'srsnd': 44100.0,
+                                        'type': 'cfilein'}},
+                 'userSliders': {'dbamp_rng': [[-11.894000000000005, -3.4620000000000033], 0, None, [1, 1], None, None],
+                                 'density': [50.16722408026756, 0, None, 1, None, None],
+                                 'dur_rng': [[0.0784395972904039, 3.030881850590387], 0, None, [1, 1], None, None],
+                                 'pan_rng': [[0.0, 1.0], 0, None, [1, 1], None, None],
+                                 'pitch': [[55.081730769230774, 64.98557692307692], 0, None, [1, 1], None, None],
+                                 'pitch_off': [0, 0, None, 1, None, None],
+                                 'seed': [0, 0, None, 1, None, None],
+                                 'speed_rng': [[0.04981583798094, 1.0381920445417292], 0, None, [1, 1], None, None],
+                                 'start_rng': [[0.004807692307692308, 0.7852564102564102], 0, None, [1, 1], None, None]},
+                 'userTogglePopups': {'duralgo': 0, 'genmethod': 5, 'mulalgo': 0, 'numofvoices': 1, 'pitalgo': 10, 'speedalgo': 0}},
+ u'04-Frenetic Chopper': {'active': False,
+                          'gainSlider': 0.0,
+                          'nchnls': 2,
+                          'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                      1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                      2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                      3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                          'totalTime': 30.00000000000007,
+                          'userGraph': {'dbamp_rngmax': {'curved': False, 'data': [[0.0, 0.9333333333333333], [1.0, 0.9333333333333333]]},
+                                        'dbamp_rngmin': {'curved': False, 'data': [[0.0, 0.8], [1.0, 0.8]]},
+                                        'density': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                        'dur_rngmax': {'curved': False,
+                                                       'data': [[0.0, 0.6925106206902348],
+                                                                [0.020408163265306145, 0.6180962867503187],
+                                                                [0.040816326530612235, 0.5178925662703443],
+                                                                [0.061224489795918394, 0.4922327601464431],
+                                                                [0.08163265306122447, 0.7454903211478641],
+                                                                [0.10204081632653061, 0.729021778327312],
+                                                                [0.1224489795918367, 0.683633965565012],
+                                                                [0.14285714285714285, 0.6665252516696004],
+                                                                [0.16326530612244894, 0.5079413755723924],
+                                                                [0.18367346938775508, 0.6241318446511828],
+                                                                [0.20408163265306123, 0.4956714477690202],
+                                                                [0.2244897959183674, 0.6371800072757943],
+                                                                [0.2448979591836734, 0.3858654621459136],
+                                                                [0.26530612244897955, 0.5624858709270781],
+                                                                [0.2857142857142857, 0.5674755078529887],
+                                                                [0.3061224489795918, 0.39491938109525637],
+                                                                [0.3265306122448979, 0.48545918036229757],
+                                                                [0.34693877551020413, 0.6964822490824015],
+                                                                [0.36734693877551017, 0.5188137107933075],
+                                                                [0.3877551020408163, 0.4448115213959656],
+                                                                [0.40816326530612246, 0.3508619798242196],
+                                                                [0.42857142857142855, 0.4711889233835157],
+                                                                [0.4489795918367347, 0.6398512700726332],
+                                                                [0.4693877551020408, 0.3342814676246889],
+                                                                [0.48979591836734687, 0.6579688038459859],
+                                                                [0.5102040816326531, 0.6229152336284309],
+                                                                [0.5306122448979591, 0.53891605653521],
+                                                                [0.5510204081632654, 0.7161591379733133],
+                                                                [0.5714285714285714, 0.2861445133858174],
+                                                                [0.5918367346938775, 0.36479645757671025],
+                                                                [0.6122448979591836, 0.38492113895217184],
+                                                                [0.6326530612244897, 0.4209009757312964],
+                                                                [0.6530612244897958, 0.531221824206344],
+                                                                [0.673469387755102, 0.7091364723526746],
+                                                                [0.6938775510204083, 0.7252353162633567],
+                                                                [0.7142857142857141, 0.48469192184124005],
+                                                                [0.7346938775510203, 0.3057185484212001],
+                                                                [0.7551020408163266, 0.7538868431472739],
+                                                                [0.7755102040816326, 0.35316597510598274],
+                                                                [0.7959183673469387, 0.6768814158304182],
+                                                                [0.8163265306122449, 0.6572443581180061],
+                                                                [0.836734693877551, 0.5989649889203024],
+                                                                [0.8571428571428571, 0.5038488685970209],
+                                                                [0.8775510204081634, 0.6285481645562898],
+                                                                [0.8979591836734694, 0.5104087981768651],
+                                                                [0.9183673469387753, 0.33609420762609005],
+                                                                [0.9387755102040816, 0.7239640928481472],
+                                                                [0.9591836734693879, 0.40749347145658144],
+                                                                [0.9795918367346937, 0.3400913517481306],
+                                                                [0.9999999999999999, 0.6111408463476551]]},
+                                        'dur_rngmin': {'curved': False,
+                                                       'data': [[0.0, 0.6660415894567779],
+                                                                [0.020408163265306145, 0.5916272555168617],
+                                                                [0.040816326530612235, 0.49142353503688746],
+                                                                [0.061224489795918394, 0.46576372891298623],
+                                                                [0.08163265306122447, 0.7190212899144073],
+                                                                [0.10204081632653061, 0.7025527470938551],
+                                                                [0.1224489795918367, 0.6571649343315551],
+                                                                [0.14285714285714285, 0.6400562204361435],
+                                                                [0.16326530612244894, 0.48147234433893554],
+                                                                [0.18367346938775508, 0.597662813417726],
+                                                                [0.20408163265306123, 0.4692024165355633],
+                                                                [0.2244897959183674, 0.6107109760423374],
+                                                                [0.2448979591836734, 0.3593964309124567],
+                                                                [0.26530612244897955, 0.5360168396936213],
+                                                                [0.2857142857142857, 0.5410064766195317],
+                                                                [0.3061224489795918, 0.36845034986179953],
+                                                                [0.3265306122448979, 0.4589901491288407],
+                                                                [0.34693877551020413, 0.6700132178489447],
+                                                                [0.36734693877551017, 0.4923446795598508],
+                                                                [0.3877551020408163, 0.41834249016250874],
+                                                                [0.40816326530612246, 0.3243929485907628],
+                                                                [0.42857142857142855, 0.4447198921500589],
+                                                                [0.4489795918367347, 0.6133822388391763],
+                                                                [0.4693877551020408, 0.30781243639123207],
+                                                                [0.48979591836734687, 0.6314997726125291],
+                                                                [0.5102040816326531, 0.596446202394974],
+                                                                [0.5306122448979591, 0.5124470253017531],
+                                                                [0.5510204081632654, 0.6896901067398564],
+                                                                [0.5714285714285714, 0.2596754821523605],
+                                                                [0.5918367346938775, 0.33832742634325347],
+                                                                [0.6122448979591836, 0.35845210771871494],
+                                                                [0.6326530612244897, 0.3944319444978396],
+                                                                [0.6530612244897958, 0.5047527929728872],
+                                                                [0.673469387755102, 0.6826674411192177],
+                                                                [0.6938775510204083, 0.6987662850298998],
+                                                                [0.7142857142857141, 0.45822289060778315],
+                                                                [0.7346938775510203, 0.2792495171877432],
+                                                                [0.7551020408163266, 0.727417811913817],
+                                                                [0.7755102040816326, 0.3266969438725258],
+                                                                [0.7959183673469387, 0.6504123845969614],
+                                                                [0.8163265306122449, 0.6307753268845491],
+                                                                [0.836734693877551, 0.5724959576868454],
+                                                                [0.8571428571428571, 0.477379837363564],
+                                                                [0.8775510204081634, 0.6020791333228329],
+                                                                [0.8979591836734694, 0.4839397669434082],
+                                                                [0.9183673469387753, 0.3096251763926332],
+                                                                [0.9387755102040816, 0.6974950616146904],
+                                                                [0.9591836734693879, 0.38102444022312454],
+                                                                [0.9795918367346937, 0.31362232051467376],
+                                                                [0.9999999999999999, 0.5846718151141982]]},
+                                        'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                        'grainenv': {'curved': False,
+                                                     'data': [[0.0, 0.0],
+                                                              [0.006707715271947008, 1.0],
+                                                              [0.08630469260192178, 0.9999882359861185],
+                                                              [0.10642317380352644, 0.6455796717840128],
+                                                              [0.28135087228286215, 0.22353390977001353],
+                                                              [1.0, 0.0]]},
+                                        'pan_rngmax': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                        'pan_rngmin': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                        'pitch_off': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                        'pitchmax': {'curved': False, 'data': [[0.0, 0.5825242718446602], [1.0, 0.5825242718446602]]},
+                                        'pitchmin': {'curved': False, 'data': [[0.0, 0.34951456310679613], [1.0, 0.34951456310679613]]},
+                                        'speed_rngmax': {'curved': False,
+                                                         'data': [[0.0, 0.5860397548292574],
+                                                                  [0.020408163265306117, 0.3166922285514284],
+                                                                  [0.040816326530612235, 0.472468280861702],
+                                                                  [0.06122448979591836, 0.46543876417257707],
+                                                                  [0.08163265306122447, 0.5855607532803005],
+                                                                  [0.10204081632653061, 0.6150152074047729],
+                                                                  [0.12244897959183672, 0.289434033344473],
+                                                                  [0.14285714285714285, 0.5933402896668232],
+                                                                  [0.16326530612244894, 0.5001515719744768],
+                                                                  [0.18367346938775508, 0.2902631432848512],
+                                                                  [0.20408163265306123, 0.4038957328107457],
+                                                                  [0.22448979591836735, 0.6112926757792783],
+                                                                  [0.24489795918367344, 0.3215459702763273],
+                                                                  [0.26530612244897955, 0.5004982230834537],
+                                                                  [0.2857142857142857, 0.4333627667477484],
+                                                                  [0.3061224489795918, 0.4998843253917325],
+                                                                  [0.3265306122448979, 0.6012054344777245],
+                                                                  [0.34693877551020413, 0.2887071377636637],
+                                                                  [0.36734693877551017, 0.5462211938248799],
+                                                                  [0.3877551020408163, 0.6007970357622395],
+                                                                  [0.40816326530612246, 0.430219288476658],
+                                                                  [0.42857142857142855, 0.4171463982334593],
+                                                                  [0.4489795918367347, 0.3959036250422711],
+                                                                  [0.4693877551020408, 0.33594776417543204],
+                                                                  [0.48979591836734687, 0.5897212664366376],
+                                                                  [0.5102040816326531, 0.277896293222688],
+                                                                  [0.5306122448979591, 0.40372222075326625],
+                                                                  [0.5510204081632654, 0.5645306999347818],
+                                                                  [0.5714285714285714, 0.619964831578811],
+                                                                  [0.5918367346938775, 0.5372779589278801],
+                                                                  [0.6122448979591836, 0.4062076049591123],
+                                                                  [0.6326530612244897, 0.4550176243019861],
+                                                                  [0.6530612244897958, 0.3019045786971582],
+                                                                  [0.673469387755102, 0.41731578888855236],
+                                                                  [0.6938775510204083, 0.35123258081767417],
+                                                                  [0.7142857142857141, 0.39219481206195644],
+                                                                  [0.7346938775510203, 0.32395264193432854],
+                                                                  [0.7551020408163266, 0.3716888062069455],
+                                                                  [0.7755102040816326, 0.6172377414116955],
+                                                                  [0.7959183673469387, 0.4531025000557063],
+                                                                  [0.8163265306122449, 0.5022029845147411],
+                                                                  [0.836734693877551, 0.5047809562031044],
+                                                                  [0.8571428571428571, 0.33606036228988195],
+                                                                  [0.8775510204081634, 0.5319186720560831],
+                                                                  [0.8979591836734694, 0.44548004492187393],
+                                                                  [0.9183673469387753, 0.3234846087665637],
+                                                                  [0.9387755102040816, 0.4737703013542696],
+                                                                  [0.9591836734693879, 0.5784079875815492],
+                                                                  [0.9795918367346937, 0.5622702760663069],
+                                                                  [0.9999999999999999, 0.5680967225051413]]},
+                                        'speed_rngmin': {'curved': False,
+                                                         'data': [[0.0, 0.5625117270661846],
+                                                                  [0.020408163265306117, 0.2931642007883556],
+                                                                  [0.040816326530612235, 0.4489402530986292],
+                                                                  [0.06122448979591836, 0.44191073640950423],
+                                                                  [0.08163265306122447, 0.5620327255172277],
+                                                                  [0.10204081632653061, 0.5914871796417002],
+                                                                  [0.12244897959183672, 0.26590600558140015],
+                                                                  [0.14285714285714285, 0.5698122619037503],
+                                                                  [0.16326530612244894, 0.47662354421140396],
+                                                                  [0.18367346938775508, 0.26673511552177837],
+                                                                  [0.20408163265306123, 0.38036770504767287],
+                                                                  [0.22448979591836735, 0.5877646480162054],
+                                                                  [0.24489795918367344, 0.2980179425132545],
+                                                                  [0.26530612244897955, 0.4769701953203808],
+                                                                  [0.2857142857142857, 0.4098347389846755],
+                                                                  [0.3061224489795918, 0.47635629762865966],
+                                                                  [0.3265306122448979, 0.5776774067146516],
+                                                                  [0.34693877551020413, 0.26517911000059086],
+                                                                  [0.36734693877551017, 0.522693166061807],
+                                                                  [0.3877551020408163, 0.5772690079991667],
+                                                                  [0.40816326530612246, 0.40669126071358525],
+                                                                  [0.42857142857142855, 0.39361837047038645],
+                                                                  [0.4489795918367347, 0.3723755972791983],
+                                                                  [0.4693877551020408, 0.3124197364123592],
+                                                                  [0.48979591836734687, 0.5661932386735647],
+                                                                  [0.5102040816326531, 0.25436826545961516],
+                                                                  [0.5306122448979591, 0.38019419299019347],
+                                                                  [0.5510204081632654, 0.541002672171709],
+                                                                  [0.5714285714285714, 0.5964368038157383],
+                                                                  [0.5918367346938775, 0.5137499311648073],
+                                                                  [0.6122448979591836, 0.38267957719603946],
+                                                                  [0.6326530612244897, 0.43148959653891333],
+                                                                  [0.6530612244897958, 0.27837655093408536],
+                                                                  [0.673469387755102, 0.3937877611254795],
+                                                                  [0.6938775510204083, 0.32770455305460133],
+                                                                  [0.7142857142857141, 0.36866678429888355],
+                                                                  [0.7346938775510203, 0.3004246141712557],
+                                                                  [0.7551020408163266, 0.3481607784438727],
+                                                                  [0.7755102040816326, 0.5937097136486226],
+                                                                  [0.7959183673469387, 0.4295744722926334],
+                                                                  [0.8163265306122449, 0.4786749567516682],
+                                                                  [0.836734693877551, 0.48125292844003154],
+                                                                  [0.8571428571428571, 0.3125323345268091],
+                                                                  [0.8775510204081634, 0.5083906442930103],
+                                                                  [0.8979591836734694, 0.4219520171588011],
+                                                                  [0.9183673469387753, 0.29995658100349093],
+                                                                  [0.9387755102040816, 0.4502422735911968],
+                                                                  [0.9591836734693879, 0.5548799598184765],
+                                                                  [0.9795918367346937, 0.538742248303234],
+                                                                  [0.9999999999999999, 0.5445686947420686]]},
+                                        'start_rngmax': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                        'start_rngmin': {'curved': False, 'data': [[0.0, 0.1], [1.0, 0.1]]}},
+                          'userInputs': {'snd': {'dursnd': 27.707210884353742,
+                                                 'mode': 0,
+                                                 'nchnlssnd': 2,
+                                                 'offsnd': 0.0,
+                                                 'path': u'/home/olivier/Dropbox/private/snds/chutes.aif',
+                                                 'srsnd': 44100.0,
+                                                 'type': 'cfilein'}},
+                          'userSliders': {'dbamp_rng': [[-18.0, -6.0], 0, None, [1, 1], None, None],
+                                          'density': [100.0, 0, None, 1, None, None],
+                                          'dur_rng': [[0.39265933632850647, 0.48016557097434986], 1, None, [1, 1], None, None],
+                                          'pan_rng': [[0.0, 1.0], 0, None, [1, 1], None, None],
+                                          'pitch': [[48.0, 72.0], 0, None, [1, 1], None, None],
+                                          'pitch_off': [0, 0, None, 1, None, None],
+                                          'seed': [0, 0, None, 1, None, None],
+                                          'speed_rng': [[0.21436521410942072, 0.2521961033344268], 1, None, [1, 1], None, None],
+                                          'start_rng': [[0.4, 0.5], 0, None, [1, 1], None, None]},
+                          'userTogglePopups': {'duralgo': 6, 'genmethod': 18, 'mulalgo': 0, 'numofvoices': 3, 'pitalgo': 12, 'speedalgo': 6}},
+ u'05-Roller Coaster': {'gainSlider': 0.0,
+                        'nchnls': 2,
+                        'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                    1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                    2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                    3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                        'totalTime': 30.00000000000007,
+                        'userGraph': {'dbamp_rngmax': {'curved': False, 'data': [[0.0, 0.9333333333333333], [1.0, 0.9333333333333333]]},
+                                      'dbamp_rngmin': {'curved': False, 'data': [[0.0, 0.8], [1.0, 0.8]]},
+                                      'density': {'curved': False,
+                                                  'data': [[0.0, 0.5],
+                                                           [0.010101010101010102, 0.5946256221802051],
+                                                           [0.020202020202020204, 0.6858312278301638],
+                                                           [0.030303030303030304, 0.7703204087277988],
+                                                           [0.04040404040404041, 0.845039505741056],
+                                                           [0.05050505050505051, 0.907287976025168],
+                                                           [0.06060606060606061, 0.9548159976772592],
+                                                           [0.07070707070707072, 0.985905784161771],
+                                                           [0.08080808080808081, 0.9994336695915041],
+                                                           [0.09090909090909091, 0.9949107209404664],
+                                                           [0.10101010101010102, 0.9725004093573343],
+                                                           [0.11111111111111112, 0.9330127018922192],
+                                                           [0.12121212121212122, 0.877874787177129],
+                                                           [0.13131313131313133, 0.8090794931103025],
+                                                           [0.14141414141414144, 0.7291132608637051],
+                                                           [0.15151515151515152, 0.640866278420715],
+                                                           [0.16161616161616163, 0.5475280216520912],
+                                                           [0.17171717171717174, 0.4524719783479085],
+                                                           [0.18181818181818182, 0.3591337215792851],
+                                                           [0.19191919191919193, 0.2708867391362947],
+                                                           [0.20202020202020204, 0.1909205068896972],
+                                                           [0.21212121212121213, 0.12212521282287092],
+                                                           [0.22222222222222224, 0.06698729810778059],
+                                                           [0.23232323232323235, 0.027499590642665658],
+                                                           [0.24242424242424243, 0.005089279059533658],
+                                                           [0.25252525252525254, 0.0005663304084960186],
+                                                           [0.26262626262626265, 0.014094215838229174],
+                                                           [0.27272727272727276, 0.0451840023227409],
+                                                           [0.2828282828282829, 0.0927120239748323],
+                                                           [0.29292929292929293, 0.15496049425894398],
+                                                           [0.30303030303030304, 0.22967959127220128],
+                                                           [0.3131313131313132, 0.3141687721698364],
+                                                           [0.32323232323232326, 0.40537437781979513],
+                                                           [0.33333333333333337, 0.5000000000000003],
+                                                           [0.3434343434343435, 0.5946256221802055],
+                                                           [0.3535353535353536, 0.6858312278301643],
+                                                           [0.36363636363636365, 0.7703204087277988],
+                                                           [0.37373737373737376, 0.8450395057410564],
+                                                           [0.38383838383838387, 0.907287976025168],
+                                                           [0.393939393939394, 0.9548159976772594],
+                                                           [0.4040404040404041, 0.985905784161771],
+                                                           [0.4141414141414142, 0.9994336695915041],
+                                                           [0.42424242424242425, 0.9949107209404664],
+                                                           [0.43434343434343436, 0.9725004093573343],
+                                                           [0.4444444444444445, 0.9330127018922192],
+                                                           [0.4545454545454546, 0.877874787177129],
+                                                           [0.4646464646464647, 0.809079493110302],
+                                                           [0.4747474747474748, 0.729113260863705],
+                                                           [0.48484848484848486, 0.640866278420715],
+                                                           [0.494949494949495, 0.5475280216520909],
+                                                           [0.5050505050505051, 0.4524719783479086],
+                                                           [0.5151515151515152, 0.3591337215792846],
+                                                           [0.5252525252525253, 0.2708867391362946],
+                                                           [0.5353535353535354, 0.19092050688969744],
+                                                           [0.5454545454545455, 0.12212521282287059],
+                                                           [0.5555555555555556, 0.06698729810778065],
+                                                           [0.5656565656565657, 0.027499590642665554],
+                                                           [0.5757575757575758, 0.005089279059533602],
+                                                           [0.5858585858585859, 0.0005663304084960186],
+                                                           [0.595959595959596, 0.014094215838229285],
+                                                           [0.6060606060606061, 0.045184002322740835],
+                                                           [0.6161616161616162, 0.09271202397483252],
+                                                           [0.6262626262626264, 0.1549604942589442],
+                                                           [0.6363636363636365, 0.22967959127220192],
+                                                           [0.6464646464646465, 0.31416877216983663],
+                                                           [0.6565656565656566, 0.40537437781979496],
+                                                           [0.6666666666666667, 0.5000000000000007],
+                                                           [0.6767676767676768, 0.5946256221802054],
+                                                           [0.686868686868687, 0.6858312278301646],
+                                                           [0.696969696969697, 0.7703204087277992],
+                                                           [0.7070707070707072, 0.8450395057410567],
+                                                           [0.7171717171717172, 0.9072879760251682],
+                                                           [0.7272727272727273, 0.9548159976772594],
+                                                           [0.7373737373737373, 0.9859057841617711],
+                                                           [0.7474747474747475, 0.9994336695915041],
+                                                           [0.7575757575757577, 0.9949107209404662],
+                                                           [0.7676767676767677, 0.972500409357334],
+                                                           [0.7777777777777778, 0.9330127018922196],
+                                                           [0.787878787878788, 0.8778747871771286],
+                                                           [0.797979797979798, 0.8090794931103029],
+                                                           [0.8080808080808082, 0.7291132608637043],
+                                                           [0.8181818181818182, 0.6408662784207151],
+                                                           [0.8282828282828284, 0.5475280216520901],
+                                                           [0.8383838383838385, 0.4524719783479087],
+                                                           [0.8484848484848485, 0.35913372157928547],
+                                                           [0.8585858585858587, 0.2708867391362939],
+                                                           [0.8686868686868687, 0.1909205068896976],
+                                                           [0.8787878787878789, 0.12212521282287064],
+                                                           [0.888888888888889, 0.06698729810778026],
+                                                           [0.8989898989898991, 0.02749959064266533],
+                                                           [0.9090909090909092, 0.005089279059533602],
+                                                           [0.9191919191919192, 0.0005663304084960186],
+                                                           [0.9292929292929294, 0.014094215838229451],
+                                                           [0.9393939393939394, 0.04518400232274078],
+                                                           [0.9494949494949496, 0.09271202397483247],
+                                                           [0.9595959595959598, 0.15496049425894476],
+                                                           [0.9696969696969697, 0.22967959127220106],
+                                                           [0.9797979797979799, 0.3141687721698365],
+                                                           [0.98989898989899, 0.4053743778197958],
+                                                           [1.0, 0.49999999999999967]]},
+                                      'dur_rngmax': {'curved': False, 'data': [[0.0, 0.7882569969815056], [1.0, 0.7882569969815056]]},
+                                      'dur_rngmin': {'curved': False, 'data': [[0.0, 0.5146787537731179], [1.0, 0.5146787537731179]]},
+                                      'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                      'grainenv': {'curved': False,
+                                                   'data': [[0.0, 0.0],
+                                                            [0.04238818605088652, 1.0],
+                                                            [0.5034661148473873, 0.8764660902299864],
+                                                            [0.7787753374406245, 0.22059290629962938],
+                                                            [1.0, 0.0]]},
+                                      'pan_rngmax': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                      'pan_rngmin': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                      'pitch_off': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                      'pitchmax': {'curved': False,
+                                                   'data': [[0.0, 0.39513347822451461],
+                                                            [0.05263157894736842, 0.69556023303589898],
+                                                            [0.10526315789473684, 0.60251042278932443],
+                                                            [0.15789473684210525, 0.58655642626268578],
+                                                            [0.21052631578947367, 0.70600825561504665],
+                                                            [0.2631578947368421, 0.52928454358145705],
+                                                            [0.3157894736842105, 0.38066654005852324],
+                                                            [0.3684210526315789, 0.46169708882785665],
+                                                            [0.42105263157894735, 0.66863937821063779],
+                                                            [0.47368421052631576, 0.72513652001780649],
+                                                            [0.5263157894736842, 0.36282619360837287],
+                                                            [0.5789473684210527, 0.43225276185234529],
+                                                            [0.631578947368421, 0.43033553831052562],
+                                                            [0.6842105263157894, 0.43923652217057424],
+                                                            [0.7368421052631579, 0.46055139326342254],
+                                                            [0.7894736842105263, 0.66589173079819719],
+                                                            [0.8421052631578947, 0.40666400302607175],
+                                                            [0.894736842105263, 0.49788377698675224],
+                                                            [0.9473684210526315, 0.53600471653500792],
+                                                            [1.0, 0.45093820317442523]]},
+                                      'pitchmin': {'curved': False,
+                                                   'data': [[0.0, 0.34513641922798494],
+                                                            [0.05263157894736842, 0.64556317403936936],
+                                                            [0.10526315789473684, 0.5525133637927947],
+                                                            [0.15789473684210525, 0.53655936726615616],
+                                                            [0.21052631578947367, 0.65601119661851703],
+                                                            [0.2631578947368421, 0.47928748458492743],
+                                                            [0.3157894736842105, 0.33066948106199362],
+                                                            [0.3684210526315789, 0.41170002983132697],
+                                                            [0.42105263157894735, 0.61864231921410817],
+                                                            [0.47368421052631576, 0.67513946102127687],
+                                                            [0.5263157894736842, 0.31282913461184325],
+                                                            [0.5789473684210527, 0.38225570285581567],
+                                                            [0.631578947368421, 0.380338479313996],
+                                                            [0.6842105263157894, 0.38923946317404462],
+                                                            [0.7368421052631579, 0.41055433426689292],
+                                                            [0.7894736842105263, 0.61589467180166757],
+                                                            [0.8421052631578947, 0.35666694402954213],
+                                                            [0.894736842105263, 0.44788671799022262],
+                                                            [0.9473684210526315, 0.4860076575384783],
+                                                            [1.0, 0.40094114417789561]]},
+                                      'speed_rngmax': {'curved': False, 'data': [[0.0, 0.5663233347786729], [1.0, 0.5663233347786729]]},
+                                      'speed_rngmin': {'curved': False, 'data': [[0.0, 0.3333333333333333], [1.0, 0.3333333333333333]]},
+                                      'start_rngmax': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                      'start_rngmin': {'curved': False, 'data': [[0.0, 0.1], [1.0, 0.1]]}},
+                        'userInputs': {'snd': {'dursnd': 5.768526077097506,
+                                               'mode': 0,
+                                               'nchnlssnd': 1,
+                                               'offsnd': 0.0,
+                                               'path': u'/home/olivier/Dropbox/private/snds/baseballmajeur_m.aif',
+                                               'srsnd': 44100.0,
+                                               'type': 'cfilein'}},
+                        'userSliders': {'dbamp_rng': [[-18.0, -6.0], 0, None, [1, 1], None, None],
+                                        'density': [48.19778060913086, 1, None, 1, None, None],
+                                        'dur_rng': [[0.004999999999999999, 0.01], 0, None, [1, 1], None, None],
+                                        'pan_rng': [[0.0, 1.0], 0, None, [1, 1], None, None],
+                                        'pitch': [[53.6175537109375, 58.76725387573242], 1, None, [1, 1], None, None],
+                                        'pitch_off': [0, 0, None, 1, None, None],
+                                        'seed': [0, 0, None, 1, None, None],
+                                        'speed_rng': [[0.001, 0.0020000000000000005], 0, None, [1, 1], None, None],
+                                        'start_rng': [[0.0, 0.9294871794871795], 0, None, [1, 1], None, None]},
+                        'userTogglePopups': {'duralgo': 0, 'genmethod': 0, 'mulalgo': 0, 'numofvoices': 8, 'pitalgo': 0, 'speedalgo': 0}}}
\ No newline at end of file
diff --git a/Resources/modules/Time/4Delays.c5 b/Resources/modules/Time/4Delays.c5
index e738a03..25840a5 100644
--- a/Resources/modules/Time/4Delays.c5
+++ b/Resources/modules/Time/4Delays.c5
@@ -1,52 +1,81 @@
 class Module(BaseModule):
     """
-    Waveterrain synthesis module
+    "Two stereo delays with parallel or serial routing"
     
-    2 stereo delays with parallel or serial routing:
+    Description
+
+    A classical module implementing a pair of stereo delays
+    with user-defined delay time, feedback and gain. Routing
+    of delays and filters can be defined with the popup menus.
     
-        - Delay 1 Right : Delay time of first delay
-        - Delay 1 Left : Delay time of second delay
-        - Delay 1 Feedback : Amount of delayed signal fed back to the delay
-        - Delay 1 Mix : Gain of the delayed signal
-        - Delay 2 Right : Delay time of third delay
-        - Delay 2 Left : Delay time of fourth delay
-        - Delay 2 Feedback : Amount of delayed signal fed back to the delay
-        - Delay 2 Mix : Gain of the delayed signal
-        - Jitter Amp : Amplitude of the jitter applied on the delays amplitudes
-        - Jitter Speed : Speed of the jitter applied on the delays amplitudes
-        - Filter Freq : Center frequency of the filter
-        - Filter Q : Q factor of the filter
-        - Dry / Wet : Mix between the original signal and the processed signals
+    Sliders
     
-    Dropdown menus, toggles and sliders on the bottom left:
+        # Delay 1 Left : 
+            Delay one, left channel, delay time in seconds
+        # Delay 1 Right : 
+            Delay one, right channel, delay time in seconds
+        # Delay 1 Feedback : 
+            Amount of delayed signal fed back to the delay line input
+        # Delay 1 Gain : 
+            Gain of the delayed signal
+        # Delay 2 Left : 
+            Delay two, left channel, delay time in seconds
+        # Delay 2 Right : 
+            Delay two, right channel, delay time in seconds
+        # Delay 2 Feedback : 
+            Amount of delayed signal fed back to the delay line input
+        # Delay 2 Gain : 
+            Gain of the delayed signal
+        # Jitter Amp : 
+            Amplitude of the jitter applied on the delay times
+        # Jitter Speed : 
+            Speed of the jitter applied on the delay times
+        # Filter Freq : 
+            Cutoff or center frequency of the filter
+        # Filter Q : 
+            Q factor of the filter
+        # Dry / Wet : 
+            Mix between the original signal and the processed signals
+
+    Graph Only
     
-        - Delay Routing : Type of routing
-        - Filter Type : Type of filter
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
     
-    Graph only parameters :
+    Popups & Toggles
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
+        # Delay Routing : 
+            Type of routing
+        # Filter Type : 
+            Type of filter
+        # Filter Routing : 
+            Specify if the filter is pre or post process
+        # Balance :
+            Compression mode. Off, balanced with a fixed signal
+            or balanced with the input source.
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+
     """
     def __init__(self):
         BaseModule.__init__(self)
         self.snd = self.addSampler("snd")
         self.prefilt = Biquadx(self.snd, freq=self.filter, q=self.filterq, type=self.filttype_index, stages=2, mul=0.25)
-        self.filtChoice = SigTo(0, time=0.1, init=0)
+        self.filtChoice = SigTo(0, time=0.005, init=0)
         self.toDelays = Interp(self.prefilt, self.snd, interp=self.filtChoice)
-        self.jit1 = Randi(min=1-self.jitamp, max=1+self.jitamp, freq=self.jitspeed)
-        self.jit2 = Randi(min=1-self.jitamp, max=1+self.jitamp, freq=self.jitspeed)
-        self.jit3 = Randi(min=1-self.jitamp, max=1+self.jitamp, freq=self.jitspeed)
-        self.jit4 = Randi(min=1-self.jitamp, max=1+self.jitamp, freq=self.jitspeed)
-        self.amp1 = DBToA(self.del1m)
-        self.amp2 = DBToA(self.del2m)
-        self.delay1 = Delay(self.toDelays, delay=[self.del1l*self.jit1,self.del1r*self.jit2], feedback=self.del1f, maxdelay=10, mul=self.amp1)
-        self.delay2 = Delay(self.toDelays, delay=[self.del2l*self.jit3,self.del2r*self.jit4], feedback=self.del2f, maxdelay=10, mul=self.amp2)
+        self.jit = Randi(min=1-self.jitamp, max=1+self.jitamp, freq=self.jitspeed, mul=[1]*4)
+        self.delay1 = Delay(self.toDelays, delay=[self.del1l*self.jit[0],self.del1r*self.jit[1]], 
+                            feedback=self.del1f, maxdelay=10, mul=DBToA(self.del1m))
+        self.delay2 = Delay(self.toDelays, delay=[self.del2l*self.jit[2],self.del2r*self.jit[3]], 
+                            feedback=self.del2f, maxdelay=10, mul=DBToA(self.del2m))
         self.dels = self.delay1+self.delay2
         self.postfilt = Biquadx(self.dels, freq=self.filter, q=self.filterq, type=self.filttype_index, stages=2, mul=0.25)
         self.toOuts = Interp(self.dels, self.postfilt, interp=self.filtChoice)
-        self.deg = Interp(self.snd, self.toOuts, self.drywet, mul=self.env)
+        self.deg = Interp(self.snd*0.25, self.toOuts, self.drywet, mul=self.env)
 
         self.osc = Sine(10000,mul=.1)
         self.balanced = Balance(self.deg, self.osc, freq=10)
@@ -84,22 +113,1252 @@ class Module(BaseModule):
             
 Interface = [   csampler(name="snd", label="Audio"),
                 cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
-                cslider(name="del1l", label="Delay 1 Left", min=0.0001, max=10, init=0.26, gliss=0.1, rel="log", unit="sec", half=True, col="blue"),
-                cslider(name="del2l", label="Delay 2 Left", min=0.0001, max=10, init=0.16, gliss=0.1, rel="log", unit="sec", half=True, col="green"),
-                cslider(name="del1r", label="Delay 1 Right", min=0.0001, max=10, gliss=0.1, init=0.25, rel="log", unit="sec", half=True, col="blue"),
-                cslider(name="del2r", label="Delay 2 Right", min=0.0001, max=10, init=0.15, gliss=0.1, rel="log", unit="sec", half=True, col="green"),
-                cslider(name="del1f", label="Delay 1 Feedback", min=0, max=0.999, init=0.5, rel="lin", unit="x", half=True, col="blue"),
-                cslider(name="del2f", label="Delay 2 Feedback", min=0, max=0.999, init=0.5, rel="lin", unit="x", half=True, col="green"),
-                cslider(name="del1m", label="Delay 1 Mix", min=-48, max=18, init=0, rel="lin", unit="dB", half=True, col="blue"),
-                cslider(name="del2m", label="Delay 2 Mix", min=-48, max=18, init=0, rel="lin", unit="dB", half=True, col="green"),
-                cslider(name="jitamp", label="Jitter Amp", min=0.0001, max=1, init=0.1, rel="log", unit="x", col="red2", half=True),
+                cslider(name="del1l", label="Delay 1 Left", min=0.0001, max=10, init=0.26, gliss=0.1, rel="log", unit="sec", half=True, col="blue1"),
+                cslider(name="del2l", label="Delay 2 Left", min=0.0001, max=10, init=0.16, gliss=0.1, rel="log", unit="sec", half=True, col="green1"),
+                cslider(name="del1r", label="Delay 1 Right", min=0.0001, max=10, gliss=0.1, init=0.25, rel="log", unit="sec", half=True, col="blue2"),
+                cslider(name="del2r", label="Delay 2 Right", min=0.0001, max=10, init=0.15, gliss=0.1, rel="log", unit="sec", half=True, col="green2"),
+                cslider(name="del1f", label="Delay 1 Feedback", min=0, max=0.999, init=0.5, rel="lin", unit="x", half=True, col="blue3"),
+                cslider(name="del2f", label="Delay 2 Feedback", min=0, max=0.999, init=0.5, rel="lin", unit="x", half=True, col="green3"),
+                cslider(name="del1m", label="Delay 1 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", half=True, col="blue4"),
+                cslider(name="del2m", label="Delay 2 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", half=True, col="green4"),
+                cslider(name="jitamp", label="Jitter Amp", min=0.0001, max=1, init=0.1, rel="log", unit="x", col="red1", half=True),
                 cslider(name="jitspeed", label="Jitter Speed", min=0.0001, max=50, init=0.03, rel="log", unit="Hz", col="red2", half=True),
-                cslider(name="filter", label="Filter Freq", min=30, max=20000, init=15000, rel="log", unit="Hz", col="tan"),
-                cslider(name="filterq", label="Filter Q", min=0.5, max=10, init=0.707, rel="log", unit="Q", col="tan"),
-                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue"),
+                cslider(name="filter", label="Filter Freq", min=30, max=20000, init=15000, rel="log", unit="Hz", col="orange1"),
+                cslider(name="filterq", label="Filter Q", min=0.5, max=10, init=0.707, rel="log", unit="Q", col="orange2"),
+                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue1"),
                 cpopup(name="routing", label="Delay Routing", init="Parallel", col="purple1", value=["Serial","Parallel"]),
-                cpopup(name="filttype", label="Filter Type", init="Lowpass", col="chorusyellow", value=["Lowpass","Highpass","Bandpass","Bandstop"]),
-                cpopup(name="filtrouting", label="Filter Routing", init="Pre", col="chorusyellow", value=["Pre","Post"]),
-                cpopup(name="balance", label = "Balance", init= "Off", col="blue", value=["Off","Compress", "Source"]),
+                cpopup(name="filttype", label="Filter Type", init="Lowpass", col="orange1", value=["Lowpass","Highpass","Bandpass","Bandstop"]),
+                cpopup(name="filtrouting", label="Filter Routing", init="Pre", col="orange1", value=["Pre","Post"]),
+                cpopup(name="balance", label = "Balance", init= "Off", col="blue1", value=["Off","Compress", "Source"]),
                 cpoly()
           ]
+
+
+####################################
+##### Cecilia reserved section #####
+#### Presets saved from the app ####
+####################################
+
+
+CECILIA_PRESETS = {u'01-Echoes': {'active': False,
+                'gainSlider': 0.0,
+                'nchnls': 2,
+                'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                            1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                            2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                            3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                'totalTime': 60.0,
+                'userGraph': {'del1f': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                              'del1l': {'curved': False, 'data': [[0.0, 0.6829946695941636], [1.0, 0.6829946695941636]]},
+                              'del1m': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                              'del1r': {'curved': False, 'data': [[0.0, 0.6795880017344075], [1.0, 0.6795880017344075]]},
+                              'del2f': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                              'del2l': {'curved': False, 'data': [[0.0, 0.6408239965311849], [1.0, 0.6408239965311849]]},
+                              'del2m': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                              'del2r': {'curved': False, 'data': [[0.0, 0.6352182518111362], [1.0, 0.6352182518111362]]},
+                              'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                              'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                              'filter': {'curved': False, 'data': [[0.0, 0.9559038918974413], [1.0, 0.9559038918974413]]},
+                              'filterq': {'curved': False, 'data': [[0.0, 0.11563869392888107], [1.0, 0.11563869392888107]]},
+                              'jitamp': {'curved': False, 'data': [[0.0, 0.75], [1.0, 0.75]]},
+                              'jitspeed': {'curved': False, 'data': [[0.0, 0.4346612199809726], [1.0, 0.4346612199809726]]},
+                              'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                              'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                              'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                              'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                              'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
+                'userInputs': {'snd': {'dursnd': 5.466417233560091,
+                                       'gain': [0.0, False, False, False, None, 1, None, None],
+                                       'loopIn': [0.0, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                       'loopMode': 1,
+                                       'loopOut': [5.466417233560091, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                       'loopX': [1.0, False, False, False, None, 1, None, None],
+                                       'mode': 0,
+                                       'nchnlssnd': 1,
+                                       'offsnd': 0.0,
+                                       'path': u'/home/olivier/Dropbox/private/snds/flute.wav',
+                                       'srsnd': 44100.0,
+                                       'startFromLoop': 0,
+                                       'transp': [0.0, False, False, False, None, 1, None, None],
+                                       'type': 'csampler'}},
+                'userSliders': {'del1f': [0.6, 0, None, 1, None, None],
+                                'del1l': [0.1, 0, None, 1, None, None],
+                                'del1m': [0.0, 0, None, 1, None, None],
+                                'del1r': [0.20000000000000004, 0, None, 1, None, None],
+                                'del2f': [0.6, 0, None, 1, None, None],
+                                'del2l': [0.2999999999999998, 0, None, 1, None, None],
+                                'del2m': [-3.0, 0, None, 1, None, None],
+                                'del2r': [0.40000000000000013, 0, None, 1, None, None],
+                                'drywet': [0.7, 0, None, 1, None, None],
+                                'filter': [9999.99999999998, 0, None, 1, None, None],
+                                'filterq': [0.707, 0, None, 1, None, None],
+                                'jitamp': [0.0001, 0, None, 1, None, None],
+                                'jitspeed': [0.030000000000000013, 0, None, 1, None, None]},
+                'userTogglePopups': {'balance': 0, 'filtrouting': 1, 'filttype': 0, 'poly': 0, 'polynum': 0, 'routing': 0}},
+ u'02-Oscillating Taps': {'active': False,
+                          'gainSlider': 0.0,
+                          'nchnls': 2,
+                          'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                      1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                      2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                      3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                          'totalTime': 60.0,
+                          'userGraph': {'del1f': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                                        'del1l': {'curved': False, 'data': [[0.0, 0.6829946695941636], [1.0, 0.6829946695941636]]},
+                                        'del1m': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                        'del1r': {'curved': False, 'data': [[0.0, 0.6795880017344075], [1.0, 0.6795880017344075]]},
+                                        'del2f': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                                        'del2l': {'curved': False, 'data': [[0.0, 0.6408239965311849], [1.0, 0.6408239965311849]]},
+                                        'del2m': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                        'del2r': {'curved': False, 'data': [[0.0, 0.6352182518111362], [1.0, 0.6352182518111362]]},
+                                        'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                        'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                        'filter': {'curved': False,
+                                                   'data': [[0.0, 0.5001539044357483],
+                                                            [0.006711409395973155, 0.5820397526865426],
+                                                            [0.01342281879194631, 0.6495789388164381],
+                                                            [0.020134228187919465, 0.6909383817250412],
+                                                            [0.02684563758389262, 0.6988717749309075],
+                                                            [0.03355704697986577, 0.6719891626086022],
+                                                            [0.04026845637583893, 0.6150004642882261],
+                                                            [0.046979865771812054, 0.5378902819123292],
+                                                            [0.05369127516778524, 0.4541685656891546],
+                                                            [0.0604026845637584, 0.3785036276713159],
+                                                            [0.06711409395973154, 0.3241522066400493],
+                                                            [0.07382550335570472, 0.3006368451345508],
+                                                            [0.08053691275167786, 0.3120775095882985],
+                                                            [0.08724832214765098, 0.35646975905254885],
+                                                            [0.09395973154362411, 0.42603592965185844],
+                                                            [0.10067114093959728, 0.5085878061334961],
+                                                            [0.10738255033557048, 0.5896620361035185],
+                                                            [0.11409395973154361, 0.6550541555557687],
+                                                            [0.1208053691275168, 0.6933072563285636],
+                                                            [0.12751677852348994, 0.6977192730029413],
+                                                            [0.1342281879194631, 0.6675172061675114],
+                                                            [0.14093959731543623, 0.6079925543839505],
+                                                            [0.14765100671140943, 0.5295742267402774],
+                                                            [0.15436241610738258, 0.4460013646732903],
+                                                            [0.16107382550335572, 0.37191620051206453],
+                                                            [0.1677852348993289, 0.32029869161305435],
+                                                            [0.17449664429530196, 0.30019239037897305],
+                                                            [0.18120805369127518, 0.31511998499670774],
+                                                            [0.18791946308724822, 0.36246611321706484],
+                                                            [0.19463087248322136, 0.43393558217314143],
+                                                            [0.20134228187919456, 0.5170067126618041],
+                                                            [0.2080536912751678, 0.59712517732881],
+                                                            [0.21476510067114096, 0.6602539653013839],
+                                                            [0.22147651006711414, 0.6953327113211669],
+                                                            [0.22818791946308722, 0.696215507059417],
+                                                            [0.23489932885906037, 0.6627476838835317],
+                                                            [0.2416107382550336, 0.6007929112954233],
+                                                            [0.24832214765100677, 0.5212058633088047],
+                                                            [0.2550335570469799, 0.43793044489693483],
+                                                            [0.26174496644295303, 0.3655567753106098],
+                                                            [0.2684563758389262, 0.3167649525910009],
+                                                            [0.2751677852348993, 0.3001034598981913],
+                                                            [0.28187919463087246, 0.3184914439614358],
+                                                            [0.2885906040268456, 0.3687072712497257],
+                                                            [0.29530201342281887, 0.44195296845490206],
+                                                            [0.30201342281879195, 0.5253956555120963],
+                                                            [0.30872483221476515, 0.6044159071696704],
+                                                            [0.31543624161073824, 0.6651691229813124],
+                                                            [0.32214765100671144, 0.6970111455177896],
+                                                            [0.32885906040268453, 0.6943631507413055],
+                                                            [0.3355704697986578, 0.657689075793229],
+                                                            [0.3422818791946309, 0.5934143357253192],
+                                                            [0.3489932885906039, 0.5128000702627042],
+                                                            [0.35570469798657717, 0.42997015616091877],
+                                                            [0.36241610738255037, 0.3594366588928864],
+                                                            [0.3691275167785233, 0.31355727243291326],
+                                                            [0.37583892617449643, 0.3003702118073553],
+                                                            [0.3825503355704699, 0.3221858921514779],
+                                                            [0.3892617449664427, 0.37518213659930905],
+                                                            [0.3959731543624162, 0.45007383387690864],
+                                                            [0.4026845637583891, 0.533739719450121],
+                                                            [0.4093959731543625, 0.6115212629745037],
+                                                            [0.4161073825503356, 0.6697908896245685],
+                                                            [0.4228187919463087, 0.6983395747236809],
+                                                            [0.4295302013422819, 0.6921654974705415],
+                                                            [0.4362416107382549, 0.6523503759171858],
+                                                            [0.44295302013422827, 0.5858699465117364],
+                                                            [0.4496644295302014, 0.5043717927952603],
+                                                            [0.45637583892617445, 0.4221346515681189],
+                                                            [0.46308724832214754, 0.3535667326025422],
+                                                            [0.46979865771812074, 0.3106813542770545],
+                                                            [0.4765100671140939, 0.30099217183130506],
+                                                            [0.4832214765100672, 0.32619676097277306],
+                                                            [0.48993288590604017, 0.38187919719151],
+                                                            [0.49664429530201354, 0.45828373983679677],
+                                                            [0.5033557046979865, 0.542024069034698],
+                                                            [0.5100671140939598, 0.6184286116799864],
+                                                            [0.5167785234899329, 0.6741110478987223],
+                                                            [0.5234899328859061, 0.6993156370401911],
+                                                            [0.5302013422818792, 0.689626454594442],
+                                                            [0.5369127516778524, 0.6467410762689543],
+                                                            [0.5436241610738256, 0.5781731573033784],
+                                                            [0.5503355704697986, 0.4959360160762363],
+                                                            [0.5570469798657717, 0.4144378623597614],
+                                                            [0.5637583892617449, 0.3479574329543112],
+                                                            [0.5704697986577181, 0.30814231140095527],
+                                                            [0.5771812080536912, 0.30196823414781504],
+                                                            [0.5838926174496645, 0.33051691924692667],
+                                                            [0.5906040268456377, 0.3887865458969919],
+                                                            [0.597315436241611, 0.4665680894213743],
+                                                            [0.6040268456375839, 0.5502339749945871],
+                                                            [0.6107382550335569, 0.6251256722721863],
+                                                            [0.6174496644295303, 0.6781219167200182],
+                                                            [0.6241610738255031, 0.6999375970641409],
+                                                            [0.6308724832214765, 0.6867505364385833],
+                                                            [0.6375838926174495, 0.6408711499786113],
+                                                            [0.6442953020134229, 0.5703376527105786],
+                                                            [0.651006711409396, 0.48750773860879393],
+                                                            [0.6577181208053691, 0.40689347314617813],
+                                                            [0.6644295302013423, 0.34261873307826723],
+                                                            [0.6711409395973156, 0.30594465813019084],
+                                                            [0.6778523489932887, 0.30329666335370664],
+                                                            [0.6845637583892618, 0.33513868589018336],
+                                                            [0.6912751677852348, 0.3958919017018257],
+                                                            [0.6979865771812078, 0.4749121533593995],
+                                                            [0.7046979865771813, 0.5583548404165946],
+                                                            [0.7114093959731543, 0.6316005376217696],
+                                                            [0.7181208053691274, 0.6818163649100603],
+                                                            [0.7248322147651007, 0.7002043489733047],
+                                                            [0.7315436241610737, 0.6835428562804955],
+                                                            [0.7382550335570466, 0.6347510335608874],
+                                                            [0.7449664429530203, 0.5623773639745606],
+                                                            [0.7516778523489929, 0.4791019455626921],
+                                                            [0.7583892617449663, 0.3995148975760731],
+                                                            [0.7651006711409398, 0.337560124987965],
+                                                            [0.7718120805369126, 0.304092301812079],
+                                                            [0.7785234899328854, 0.30497509755032876],
+                                                            [0.7852348993288593, 0.34005384357011187],
+                                                            [0.7919463087248324, 0.40318263154268513],
+                                                            [0.7986577181208052, 0.48330109620969136],
+                                                            [0.8053691275167782, 0.5663722266983534],
+                                                            [0.8120805369127517, 0.6378416956544308],
+                                                            [0.818791946308725, 0.6851878238747874],
+                                                            [0.8255033557046978, 0.7001154184925232],
+                                                            [0.8322147651006712, 0.6800091172584419],
+                                                            [0.8389261744966444, 0.6283916083594319],
+                                                            [0.8456375838926175, 0.5543064441982066],
+                                                            [0.8523489932885904, 0.4707335821312187],
+                                                            [0.8590604026845639, 0.3923152544875469],
+                                                            [0.8657718120805369, 0.33279060270398503],
+                                                            [0.8724832214765098, 0.30258853586855494],
+                                                            [0.8791946308724833, 0.3070005525429322],
+                                                            [0.8859060402684565, 0.34525365331572627],
+                                                            [0.8926174496644297, 0.41064577276797665],
+                                                            [0.8993288590604028, 0.4917200027379994],
+                                                            [0.906040268456376, 0.5742718792196375],
+                                                            [0.9127516778523489, 0.6438380498189468],
+                                                            [0.9194630872483224, 0.6882302992831976],
+                                                            [0.9261744966442951, 0.6996709637369456],
+                                                            [0.9328859060402683, 0.6761556022314471],
+                                                            [0.9395973154362415, 0.6218041812001814],
+                                                            [0.9463087248322146, 0.5461392431823424],
+                                                            [0.9530201342281878, 0.4624175269591684],
+                                                            [0.9597315436241608, 0.385307344583271],
+                                                            [0.9664429530201344, 0.32831864626289503],
+                                                            [0.9731543624161071, 0.3014360339405889],
+                                                            [0.9798657718120803, 0.30936942714645466],
+                                                            [0.9865771812080534, 0.3507288700550578],
+                                                            [0.9932885906040271, 0.41826805618495255],
+                                                            [1.0, 0.5001539044357476]]},
+                                        'filterq': {'curved': False, 'data': [[0.0, 0.11563869392888107], [1.0, 0.11563869392888107]]},
+                                        'jitamp': {'curved': False, 'data': [[0.0, 0.75], [1.0, 0.75]]},
+                                        'jitspeed': {'curved': False, 'data': [[0.0, 0.4346612199809726], [1.0, 0.4346612199809726]]},
+                                        'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                        'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                        'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                        'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                        'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
+                          'userInputs': {'snd': {'dursnd': 5.466417233560091,
+                                                 'gain': [0.0, False, False, False, None, 1, None, None],
+                                                 'loopIn': [0.0, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                                 'loopMode': 1,
+                                                 'loopOut': [5.466417233560091, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                                 'loopX': [1.0, False, False, False, None, 1, None, None],
+                                                 'mode': 0,
+                                                 'nchnlssnd': 1,
+                                                 'offsnd': 0.0,
+                                                 'path': u'/home/olivier/Dropbox/private/snds/flute.wav',
+                                                 'srsnd': 44100.0,
+                                                 'startFromLoop': 0,
+                                                 'transp': [0.0, False, False, False, None, 1, None, None],
+                                                 'type': 'csampler'}},
+                          'userSliders': {'del1f': [0.0, 0, None, 1, None, None],
+                                          'del1l': [0.24999999999999994, 0, None, 1, None, None],
+                                          'del1m': [0.0, 0, None, 1, None, None],
+                                          'del1r': [0.5999999999999996, 0, None, 1, None, None],
+                                          'del2f': [0.0, 0, None, 1, None, None],
+                                          'del2l': [1.5000000000000004, 0, None, 1, None, None],
+                                          'del2m': [0.0, 0, None, 1, None, None],
+                                          'del2r': [2.200000000000002, 0, None, 1, None, None],
+                                          'drywet': [0.7, 0, None, 1, None, None],
+                                          'filter': [1141.2915039062502, 1, None, 1, None, None],
+                                          'filterq': [1.0, 0, None, 1, None, None],
+                                          'jitamp': [0.0001, 0, None, 1, None, None],
+                                          'jitspeed': [0.030000000000000013, 0, None, 1, None, None]},
+                          'userTogglePopups': {'balance': 0, 'filtrouting': 0, 'filttype': 2, 'poly': 0, 'polynum': 0, 'routing': 1}},
+ u'03-Haunting': {'active': False,
+                  'gainSlider': 0.0,
+                  'nchnls': 2,
+                  'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                  'totalTime': 60.00000000000003,
+                  'userGraph': {'del1f': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                                'del1l': {'curved': False, 'data': [[0.0, 0.6829946695941636], [1.0, 0.6829946695941636]]},
+                                'del1m': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'del1r': {'curved': False, 'data': [[0.0, 0.6795880017344075], [1.0, 0.6795880017344075]]},
+                                'del2f': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                                'del2l': {'curved': False, 'data': [[0.0, 0.6408239965311849], [1.0, 0.6408239965311849]]},
+                                'del2m': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'del2r': {'curved': False, 'data': [[0.0, 0.6352182518111362], [1.0, 0.6352182518111362]]},
+                                'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'filter': {'curved': False, 'data': [[0.0, 0.9559038918974413], [1.0, 0.9559038918974413]]},
+                                'filterq': {'curved': False, 'data': [[0.0, 0.11563869392888107], [1.0, 0.11563869392888107]]},
+                                'jitamp': {'curved': False, 'data': [[0.0, 0.75], [1.0, 0.75]]},
+                                'jitspeed': {'curved': False, 'data': [[0.0, 0.4346612199809726], [1.0, 0.4346612199809726]]},
+                                'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
+                  'userInputs': {'snd': {'dursnd': 8.01390022675737,
+                                         'gain': [0.0, False, False, False, None, 1, None, None],
+                                         'loopIn': [0.0, False, False, False, None, 1, 0, 8.01390022675737, None, None],
+                                         'loopMode': 1,
+                                         'loopOut': [8.01390022675737, False, False, False, None, 1, 0, 8.01390022675737, None, None],
+                                         'loopX': [1.0, False, False, False, None, 1, None, None],
+                                         'mode': 0,
+                                         'nchnlssnd': 2,
+                                         'offsnd': 0.0,
+                                         'path': u'/home/olivier/Dropbox/private/snds/cacanne4.aiff',
+                                         'srsnd': 44100.0,
+                                         'startFromLoop': 0,
+                                         'transp': [0.0, False, False, False, None, 1, None, None],
+                                         'type': 'csampler'}},
+                  'userSliders': {'del1f': [0.995, 0, None, 1, None, None],
+                                  'del1l': [0.003000000000000001, 0, None, 1, None, None],
+                                  'del1m': [-12.0, 0, None, 1, None, None],
+                                  'del1r': [0.004000000000000001, 0, None, 1, None, None],
+                                  'del2f': [0.9, 0, None, 1, None, None],
+                                  'del2l': [0.20000000000000004, 0, None, 1, None, None],
+                                  'del2m': [-12.0, 0, None, 1, None, None],
+                                  'del2r': [0.15000000000000005, 0, None, 1, None, None],
+                                  'drywet': [1.0, 0, None, 1, None, None],
+                                  'filter': [4500.000000000003, 0, None, 1, None, None],
+                                  'filterq': [0.707, 0, None, 1, None, None],
+                                  'jitamp': [0.049999999999999996, 0, None, 1, None, None],
+                                  'jitspeed': [0.20000000000000004, 0, None, 1, None, None]},
+                  'userTogglePopups': {'balance': 0, 'filtrouting': 0, 'filttype': 0, 'poly': 0, 'polynum': 0, 'routing': 0}},
+ u'04-Whistle': {'active': False,
+                 'gainSlider': 0.0,
+                 'nchnls': 2,
+                 'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                             1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                             2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                             3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                 'totalTime': 60.00000000000009,
+                 'userGraph': {'del1f': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                               'del1l': {'curved': False,
+                                         'data': [[0.0, 0.14800000000000005],
+                                                  [0.010101010101010102, 0.14800000000000005],
+                                                  [0.010101010101010102, 0.125],
+                                                  [0.020202020202020204, 0.125],
+                                                  [0.020202020202020204, 0.14699999999999996],
+                                                  [0.030303030303030304, 0.14699999999999996],
+                                                  [0.030303030303030304, 0.17200000000000007],
+                                                  [0.04040404040404041, 0.17200000000000007],
+                                                  [0.04040404040404041, 0.15499999999999997],
+                                                  [0.05050505050505051, 0.15499999999999997],
+                                                  [0.05050505050505051, 0.142],
+                                                  [0.06060606060606061, 0.142],
+                                                  [0.06060606060606061, 0.125],
+                                                  [0.07070707070707072, 0.125],
+                                                  [0.07070707070707072, 0.14699999999999996],
+                                                  [0.08080808080808081, 0.14699999999999996],
+                                                  [0.08080808080808081, 0.17200000000000007],
+                                                  [0.09090909090909091, 0.17200000000000007],
+                                                  [0.09090909090909091, 0.15499999999999997],
+                                                  [0.10101010101010102, 0.15499999999999997],
+                                                  [0.10101010101010102, 0.142],
+                                                  [0.11111111111111112, 0.142],
+                                                  [0.11111111111111112, 0.125],
+                                                  [0.12121212121212122, 0.125],
+                                                  [0.12121212121212122, 0.14699999999999996],
+                                                  [0.13131313131313133, 0.14699999999999996],
+                                                  [0.13131313131313133, 0.17200000000000007],
+                                                  [0.14141414141414144, 0.17200000000000007],
+                                                  [0.14141414141414144, 0.15499999999999997],
+                                                  [0.15151515151515152, 0.15499999999999997],
+                                                  [0.15151515151515152, 0.142],
+                                                  [0.16161616161616163, 0.142],
+                                                  [0.16161616161616163, 0.125],
+                                                  [0.17171717171717174, 0.125],
+                                                  [0.17171717171717174, 0.14699999999999996],
+                                                  [0.18181818181818182, 0.14699999999999996],
+                                                  [0.18181818181818182, 0.17200000000000007],
+                                                  [0.19191919191919193, 0.17200000000000007],
+                                                  [0.19191919191919193, 0.15499999999999997],
+                                                  [0.20202020202020204, 0.15499999999999997],
+                                                  [0.20202020202020204, 0.142],
+                                                  [0.21212121212121213, 0.142],
+                                                  [0.21212121212121213, 0.15600000000000006],
+                                                  [0.22222222222222224, 0.15600000000000006],
+                                                  [0.22222222222222224, 0.13600000000000004],
+                                                  [0.23232323232323235, 0.13600000000000004],
+                                                  [0.23232323232323235, 0.137],
+                                                  [0.24242424242424243, 0.137],
+                                                  [0.24242424242424243, 0.125],
+                                                  [0.25252525252525254, 0.125],
+                                                  [0.25252525252525254, 0.15600000000000006],
+                                                  [0.26262626262626265, 0.15600000000000006],
+                                                  [0.26262626262626265, 0.137],
+                                                  [0.27272727272727276, 0.137],
+                                                  [0.27272727272727276, 0.125],
+                                                  [0.2828282828282829, 0.125],
+                                                  [0.2828282828282829, 0.15600000000000006],
+                                                  [0.29292929292929293, 0.15600000000000006],
+                                                  [0.29292929292929293, 0.137],
+                                                  [0.30303030303030304, 0.137],
+                                                  [0.30303030303030304, 0.125],
+                                                  [0.31313131313131315, 0.125],
+                                                  [0.31313131313131315, 0.15600000000000006],
+                                                  [0.32323232323232326, 0.15600000000000006],
+                                                  [0.32323232323232326, 0.137],
+                                                  [0.33333333333333337, 0.137],
+                                                  [0.33333333333333337, 0.125],
+                                                  [0.3434343434343435, 0.125],
+                                                  [0.3434343434343435, 0.13799999999999996],
+                                                  [0.3535353535353536, 0.13799999999999996],
+                                                  [0.3535353535353536, 0.12699999999999995],
+                                                  [0.36363636363636365, 0.12699999999999995],
+                                                  [0.36363636363636365, 0.137],
+                                                  [0.37373737373737376, 0.137],
+                                                  [0.37373737373737376, 0.12099999999999997],
+                                                  [0.38383838383838387, 0.12099999999999997],
+                                                  [0.38383838383838387, 0.10400000000000001],
+                                                  [0.393939393939394, 0.10400000000000001],
+                                                  [0.393939393939394, 0.12999999999999998],
+                                                  [0.4040404040404041, 0.12999999999999998],
+                                                  [0.4040404040404041, 0.14500000000000002],
+                                                  [0.4141414141414142, 0.14500000000000002],
+                                                  [0.4141414141414142, 0.137],
+                                                  [0.42424242424242425, 0.137],
+                                                  [0.42424242424242425, 0.14800000000000005],
+                                                  [0.43434343434343436, 0.14800000000000005],
+                                                  [0.43434343434343436, 0.14699999999999996],
+                                                  [0.4444444444444445, 0.14699999999999996],
+                                                  [0.4444444444444445, 0.13799999999999996],
+                                                  [0.4545454545454546, 0.13799999999999996],
+                                                  [0.4545454545454546, 0.14500000000000002],
+                                                  [0.4646464646464647, 0.14500000000000002],
+                                                  [0.4646464646464647, 0.137],
+                                                  [0.4747474747474748, 0.137],
+                                                  [0.4747474747474748, 0.14800000000000005],
+                                                  [0.48484848484848486, 0.14800000000000005],
+                                                  [0.48484848484848486, 0.14699999999999996],
+                                                  [0.494949494949495, 0.14699999999999996],
+                                                  [0.494949494949495, 0.13799999999999996],
+                                                  [0.5050505050505051, 0.13799999999999996],
+                                                  [0.5050505050505051, 0.14500000000000002],
+                                                  [0.5151515151515152, 0.14500000000000002],
+                                                  [0.5151515151515152, 0.137],
+                                                  [0.5252525252525253, 0.137],
+                                                  [0.5252525252525253, 0.14800000000000005],
+                                                  [0.5353535353535355, 0.14800000000000005],
+                                                  [0.5353535353535355, 0.14699999999999996],
+                                                  [0.5454545454545455, 0.14699999999999996],
+                                                  [0.5454545454545455, 0.13799999999999996],
+                                                  [0.5555555555555556, 0.13799999999999996],
+                                                  [0.5555555555555556, 0.14500000000000002],
+                                                  [0.5656565656565657, 0.14500000000000002],
+                                                  [0.5656565656565657, 0.137],
+                                                  [0.5757575757575758, 0.137],
+                                                  [0.5757575757575758, 0.14800000000000005],
+                                                  [0.5858585858585859, 0.14800000000000005],
+                                                  [0.5858585858585859, 0.14699999999999996],
+                                                  [0.595959595959596, 0.14699999999999996],
+                                                  [0.595959595959596, 0.146],
+                                                  [0.6060606060606061, 0.146],
+                                                  [0.6060606060606061, 0.15099999999999997],
+                                                  [0.6161616161616162, 0.15099999999999997],
+                                                  [0.6161616161616162, 0.15199999999999997],
+                                                  [0.6262626262626263, 0.15199999999999997],
+                                                  [0.6262626262626263, 0.14400000000000004],
+                                                  [0.6363636363636365, 0.14400000000000004],
+                                                  [0.6363636363636365, 0.12699999999999995],
+                                                  [0.6464646464646465, 0.12699999999999995],
+                                                  [0.6464646464646465, 0.13200000000000003],
+                                                  [0.6565656565656566, 0.13200000000000003],
+                                                  [0.6565656565656566, 0.14400000000000004],
+                                                  [0.6666666666666667, 0.14400000000000004],
+                                                  [0.6666666666666667, 0.146],
+                                                  [0.6767676767676768, 0.146],
+                                                  [0.6767676767676768, 0.14400000000000004],
+                                                  [0.686868686868687, 0.14400000000000004],
+                                                  [0.686868686868687, 0.12699999999999995],
+                                                  [0.696969696969697, 0.12699999999999995],
+                                                  [0.696969696969697, 0.13200000000000003],
+                                                  [0.7070707070707072, 0.13200000000000003],
+                                                  [0.7070707070707072, 0.14400000000000004],
+                                                  [0.7171717171717172, 0.14400000000000004],
+                                                  [0.7171717171717172, 0.146],
+                                                  [0.7272727272727273, 0.146],
+                                                  [0.7272727272727273, 0.14400000000000004],
+                                                  [0.7373737373737375, 0.14400000000000004],
+                                                  [0.7373737373737375, 0.12699999999999995],
+                                                  [0.7474747474747475, 0.12699999999999995],
+                                                  [0.7474747474747475, 0.13200000000000003],
+                                                  [0.7575757575757577, 0.13200000000000003],
+                                                  [0.7575757575757577, 0.14400000000000004],
+                                                  [0.7676767676767677, 0.14400000000000004],
+                                                  [0.7676767676767677, 0.14900000000000002],
+                                                  [0.7777777777777778, 0.14900000000000002],
+                                                  [0.7777777777777778, 0.15],
+                                                  [0.787878787878788, 0.15],
+                                                  [0.787878787878788, 0.141],
+                                                  [0.797979797979798, 0.141],
+                                                  [0.797979797979798, 0.14900000000000002],
+                                                  [0.8080808080808082, 0.14900000000000002],
+                                                  [0.8080808080808082, 0.15],
+                                                  [0.8181818181818182, 0.15],
+                                                  [0.8181818181818182, 0.141],
+                                                  [0.8282828282828284, 0.141],
+                                                  [0.8282828282828284, 0.14900000000000002],
+                                                  [0.8383838383838385, 0.14900000000000002],
+                                                  [0.8383838383838385, 0.15],
+                                                  [0.8484848484848485, 0.15],
+                                                  [0.8484848484848485, 0.141],
+                                                  [0.8585858585858587, 0.141],
+                                                  [0.8585858585858587, 0.14299999999999996],
+                                                  [0.8686868686868687, 0.14299999999999996],
+                                                  [0.8686868686868687, 0.17200000000000007],
+                                                  [0.8787878787878789, 0.17200000000000007],
+                                                  [0.8787878787878789, 0.16500000000000004],
+                                                  [0.888888888888889, 0.16500000000000004],
+                                                  [0.888888888888889, 0.16900000000000004],
+                                                  [0.8989898989898991, 0.16900000000000004],
+                                                  [0.8989898989898991, 0.15300000000000002],
+                                                  [0.9090909090909092, 0.15300000000000002],
+                                                  [0.9090909090909092, 0.176],
+                                                  [0.9191919191919192, 0.176],
+                                                  [0.9191919191919192, 0.14299999999999996],
+                                                  [0.9292929292929294, 0.14299999999999996],
+                                                  [0.9292929292929294, 0.17200000000000007],
+                                                  [0.9393939393939394, 0.17200000000000007],
+                                                  [0.9393939393939394, 0.16500000000000004],
+                                                  [0.9494949494949496, 0.16500000000000004],
+                                                  [0.9494949494949496, 0.16900000000000004],
+                                                  [0.9595959595959597, 0.16900000000000004],
+                                                  [0.9595959595959597, 0.15300000000000002],
+                                                  [0.9696969696969697, 0.15300000000000002],
+                                                  [0.9696969696969697, 0.176],
+                                                  [0.9797979797979799, 0.176],
+                                                  [0.9797979797979799, 0.14299999999999996],
+                                                  [0.98989898989899, 0.14299999999999996],
+                                                  [0.98989898989899, 0.17200000000000007],
+                                                  [1.0, 0.17200000000000007],
+                                                  [1.0, 0.16500000000000004]]},
+                               'del1m': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                               'del1r': {'curved': False,
+                                         'data': [[0.0, 0.19252299080367855],
+                                                  [0.010101010101010102, 0.19252299080367855],
+                                                  [0.010101010101010102, 0.19752299080367852],
+                                                  [0.020202020202020204, 0.19752299080367852],
+                                                  [0.020202020202020204, 0.20852299080367853],
+                                                  [0.030303030303030304, 0.20852299080367853],
+                                                  [0.030303030303030304, 0.1935229908036785],
+                                                  [0.04040404040404041, 0.1935229908036785],
+                                                  [0.04040404040404041, 0.17752299080367848],
+                                                  [0.05050505050505051, 0.17752299080367848],
+                                                  [0.05050505050505051, 0.16652299080367855],
+                                                  [0.06060606060606061, 0.16652299080367855],
+                                                  [0.06060606060606061, 0.16452299080367858],
+                                                  [0.07070707070707072, 0.16452299080367858],
+                                                  [0.07070707070707072, 0.19752299080367852],
+                                                  [0.08080808080808081, 0.19752299080367852],
+                                                  [0.08080808080808081, 0.20852299080367853],
+                                                  [0.09090909090909091, 0.20852299080367853],
+                                                  [0.09090909090909091, 0.1935229908036785],
+                                                  [0.10101010101010102, 0.1935229908036785],
+                                                  [0.10101010101010102, 0.17752299080367848],
+                                                  [0.11111111111111112, 0.17752299080367848],
+                                                  [0.11111111111111112, 0.16652299080367855],
+                                                  [0.12121212121212122, 0.16652299080367855],
+                                                  [0.12121212121212122, 0.16452299080367858],
+                                                  [0.13131313131313133, 0.16452299080367858],
+                                                  [0.13131313131313133, 0.19752299080367852],
+                                                  [0.14141414141414144, 0.19752299080367852],
+                                                  [0.14141414141414144, 0.20852299080367853],
+                                                  [0.15151515151515152, 0.20852299080367853],
+                                                  [0.15151515151515152, 0.1935229908036785],
+                                                  [0.16161616161616163, 0.1935229908036785],
+                                                  [0.16161616161616163, 0.17752299080367848],
+                                                  [0.17171717171717174, 0.17752299080367848],
+                                                  [0.17171717171717174, 0.16652299080367855],
+                                                  [0.18181818181818182, 0.16652299080367855],
+                                                  [0.18181818181818182, 0.16452299080367858],
+                                                  [0.19191919191919193, 0.16452299080367858],
+                                                  [0.19191919191919193, 0.19752299080367852],
+                                                  [0.20202020202020204, 0.19752299080367852],
+                                                  [0.20202020202020204, 0.20852299080367853],
+                                                  [0.21212121212121213, 0.20852299080367853],
+                                                  [0.21212121212121213, 0.1935229908036785],
+                                                  [0.22222222222222224, 0.1935229908036785],
+                                                  [0.22222222222222224, 0.17752299080367848],
+                                                  [0.23232323232323235, 0.17752299080367848],
+                                                  [0.23232323232323235, 0.16652299080367855],
+                                                  [0.24242424242424243, 0.16652299080367855],
+                                                  [0.24242424242424243, 0.16452299080367858],
+                                                  [0.25252525252525254, 0.16452299080367858],
+                                                  [0.25252525252525254, 0.19752299080367852],
+                                                  [0.26262626262626265, 0.19752299080367852],
+                                                  [0.26262626262626265, 0.20852299080367853],
+                                                  [0.27272727272727276, 0.20852299080367853],
+                                                  [0.27272727272727276, 0.1935229908036785],
+                                                  [0.2828282828282829, 0.1935229908036785],
+                                                  [0.2828282828282829, 0.17752299080367848],
+                                                  [0.29292929292929293, 0.17752299080367848],
+                                                  [0.29292929292929293, 0.16652299080367855],
+                                                  [0.30303030303030304, 0.16652299080367855],
+                                                  [0.30303030303030304, 0.16452299080367858],
+                                                  [0.31313131313131315, 0.16452299080367858],
+                                                  [0.31313131313131315, 0.1805229908036786],
+                                                  [0.32323232323232326, 0.1805229908036786],
+                                                  [0.32323232323232326, 0.16152299080367846],
+                                                  [0.33333333333333337, 0.16152299080367846],
+                                                  [0.33333333333333337, 0.17252299080367858],
+                                                  [0.3434343434343435, 0.17252299080367858],
+                                                  [0.3434343434343435, 0.1805229908036786],
+                                                  [0.3535353535353536, 0.1805229908036786],
+                                                  [0.3535353535353536, 0.16152299080367846],
+                                                  [0.36363636363636365, 0.16152299080367846],
+                                                  [0.36363636363636365, 0.17252299080367858],
+                                                  [0.37373737373737376, 0.17252299080367858],
+                                                  [0.37373737373737376, 0.1805229908036786],
+                                                  [0.38383838383838387, 0.1805229908036786],
+                                                  [0.38383838383838387, 0.16152299080367846],
+                                                  [0.393939393939394, 0.16152299080367846],
+                                                  [0.393939393939394, 0.17252299080367858],
+                                                  [0.4040404040404041, 0.17252299080367858],
+                                                  [0.4040404040404041, 0.1805229908036786],
+                                                  [0.4141414141414142, 0.1805229908036786],
+                                                  [0.4141414141414142, 0.16152299080367846],
+                                                  [0.42424242424242425, 0.16152299080367846],
+                                                  [0.42424242424242425, 0.17252299080367858],
+                                                  [0.43434343434343436, 0.17252299080367858],
+                                                  [0.43434343434343436, 0.1805229908036786],
+                                                  [0.4444444444444445, 0.1805229908036786],
+                                                  [0.4444444444444445, 0.16152299080367846],
+                                                  [0.4545454545454546, 0.16152299080367846],
+                                                  [0.4545454545454546, 0.17252299080367858],
+                                                  [0.4646464646464647, 0.17252299080367858],
+                                                  [0.4646464646464647, 0.19252299080367855],
+                                                  [0.4747474747474748, 0.19252299080367855],
+                                                  [0.4747474747474748, 0.1815229908036786],
+                                                  [0.48484848484848486, 0.1815229908036786],
+                                                  [0.48484848484848486, 0.1695229908036785],
+                                                  [0.494949494949495, 0.1695229908036785],
+                                                  [0.494949494949495, 0.1815229908036786],
+                                                  [0.5050505050505051, 0.1815229908036786],
+                                                  [0.5050505050505051, 0.1685229908036785],
+                                                  [0.5151515151515152, 0.1685229908036785],
+                                                  [0.5151515151515152, 0.19252299080367855],
+                                                  [0.5252525252525253, 0.19252299080367855],
+                                                  [0.5252525252525253, 0.1815229908036786],
+                                                  [0.5353535353535355, 0.1815229908036786],
+                                                  [0.5353535353535355, 0.1695229908036785],
+                                                  [0.5454545454545455, 0.1695229908036785],
+                                                  [0.5454545454545455, 0.1815229908036786],
+                                                  [0.5555555555555556, 0.1815229908036786],
+                                                  [0.5555555555555556, 0.1685229908036785],
+                                                  [0.5656565656565657, 0.1685229908036785],
+                                                  [0.5656565656565657, 0.16652299080367855],
+                                                  [0.5757575757575758, 0.16652299080367855],
+                                                  [0.5757575757575758, 0.16052299080367852],
+                                                  [0.5858585858585859, 0.16052299080367852],
+                                                  [0.5858585858585859, 0.16752299080367852],
+                                                  [0.595959595959596, 0.16752299080367852],
+                                                  [0.595959595959596, 0.17052299080367855],
+                                                  [0.6060606060606061, 0.17052299080367855],
+                                                  [0.6060606060606061, 0.19052299080367857],
+                                                  [0.6161616161616162, 0.19052299080367857],
+                                                  [0.6161616161616162, 0.21052299080367848],
+                                                  [0.6262626262626263, 0.21052299080367848],
+                                                  [0.6262626262626263, 0.2355229908036785],
+                                                  [0.6363636363636365, 0.2355229908036785],
+                                                  [0.6363636363636365, 0.16652299080367855],
+                                                  [0.6464646464646465, 0.16652299080367855],
+                                                  [0.6464646464646465, 0.17052299080367855],
+                                                  [0.6565656565656566, 0.17052299080367855],
+                                                  [0.6565656565656566, 0.19052299080367857],
+                                                  [0.6666666666666667, 0.19052299080367857],
+                                                  [0.6666666666666667, 0.21052299080367848],
+                                                  [0.6767676767676768, 0.21052299080367848],
+                                                  [0.6767676767676768, 0.2355229908036785],
+                                                  [0.686868686868687, 0.2355229908036785],
+                                                  [0.686868686868687, 0.16652299080367855],
+                                                  [0.696969696969697, 0.16652299080367855],
+                                                  [0.696969696969697, 0.17052299080367855],
+                                                  [0.7070707070707072, 0.17052299080367855],
+                                                  [0.7070707070707072, 0.19052299080367857],
+                                                  [0.7171717171717172, 0.19052299080367857],
+                                                  [0.7171717171717172, 0.21052299080367848],
+                                                  [0.7272727272727273, 0.21052299080367848],
+                                                  [0.7272727272727273, 0.2355229908036785],
+                                                  [0.7373737373737375, 0.2355229908036785],
+                                                  [0.7373737373737375, 0.16652299080367855],
+                                                  [0.7474747474747475, 0.16652299080367855],
+                                                  [0.7474747474747475, 0.17052299080367855],
+                                                  [0.7575757575757577, 0.17052299080367855],
+                                                  [0.7575757575757577, 0.19052299080367857],
+                                                  [0.7676767676767677, 0.19052299080367857],
+                                                  [0.7676767676767677, 0.21052299080367848],
+                                                  [0.7777777777777778, 0.21052299080367848],
+                                                  [0.7777777777777778, 0.2355229908036785],
+                                                  [0.787878787878788, 0.2355229908036785],
+                                                  [0.787878787878788, 0.22852299080367855],
+                                                  [0.797979797979798, 0.22852299080367855],
+                                                  [0.797979797979798, 0.20452299080367853],
+                                                  [0.8080808080808082, 0.20452299080367853],
+                                                  [0.8080808080808082, 0.22352299080367857],
+                                                  [0.8181818181818182, 0.22352299080367857],
+                                                  [0.8181818181818182, 0.2265229908036785],
+                                                  [0.8282828282828284, 0.2265229908036785],
+                                                  [0.8282828282828284, 0.22752299080367858],
+                                                  [0.8383838383838385, 0.22752299080367858],
+                                                  [0.8383838383838385, 0.24152299080367853],
+                                                  [0.8484848484848485, 0.24152299080367853],
+                                                  [0.8484848484848485, 0.2425229908036785],
+                                                  [0.8585858585858587, 0.2425229908036785],
+                                                  [0.8585858585858587, 0.23652299080367847],
+                                                  [0.8686868686868687, 0.23652299080367847],
+                                                  [0.8686868686868687, 0.23752299080367845],
+                                                  [0.8787878787878789, 0.23752299080367845],
+                                                  [0.8787878787878789, 0.22452299080367855],
+                                                  [0.888888888888889, 0.22452299080367855],
+                                                  [0.888888888888889, 0.2055229908036785],
+                                                  [0.8989898989898991, 0.2055229908036785],
+                                                  [0.8989898989898991, 0.21852299080367854],
+                                                  [0.9090909090909092, 0.21852299080367854],
+                                                  [0.9090909090909092, 0.22852299080367855],
+                                                  [0.9191919191919192, 0.22852299080367855],
+                                                  [0.9191919191919192, 0.23652299080367847],
+                                                  [0.9292929292929294, 0.23652299080367847],
+                                                  [0.9292929292929294, 0.23752299080367845],
+                                                  [0.9393939393939394, 0.23752299080367845],
+                                                  [0.9393939393939394, 0.22452299080367855],
+                                                  [0.9494949494949496, 0.22452299080367855],
+                                                  [0.9494949494949496, 0.2055229908036785],
+                                                  [0.9595959595959597, 0.2055229908036785],
+                                                  [0.9595959595959597, 0.21852299080367854],
+                                                  [0.9696969696969697, 0.21852299080367854],
+                                                  [0.9696969696969697, 0.22852299080367855],
+                                                  [0.9797979797979799, 0.22852299080367855],
+                                                  [0.9797979797979799, 0.23652299080367847],
+                                                  [0.98989898989899, 0.23652299080367847],
+                                                  [0.98989898989899, 0.23752299080367845],
+                                                  [1.0, 0.23752299080367845],
+                                                  [1.0, 0.22452299080367855]]},
+                               'del2f': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                               'del2l': {'curved': False,
+                                         'data': [[0.0, 0.15],
+                                                  [0.010101010101010102, 0.15],
+                                                  [0.010101010101010102, 0.15600000000000006],
+                                                  [0.020202020202020204, 0.15600000000000006],
+                                                  [0.020202020202020204, 0.14400000000000004],
+                                                  [0.030303030303030304, 0.14400000000000004],
+                                                  [0.030303030303030304, 0.154],
+                                                  [0.04040404040404041, 0.154],
+                                                  [0.04040404040404041, 0.14500000000000002],
+                                                  [0.05050505050505051, 0.14500000000000002],
+                                                  [0.05050505050505051, 0.15099999999999997],
+                                                  [0.06060606060606061, 0.15099999999999997],
+                                                  [0.06060606060606061, 0.15499999999999997],
+                                                  [0.07070707070707072, 0.15499999999999997],
+                                                  [0.07070707070707072, 0.15700000000000003],
+                                                  [0.08080808080808081, 0.15700000000000003],
+                                                  [0.08080808080808081, 0.16100000000000003],
+                                                  [0.09090909090909091, 0.16100000000000003],
+                                                  [0.09090909090909091, 0.16400000000000006],
+                                                  [0.10101010101010102, 0.16400000000000006],
+                                                  [0.10101010101010102, 0.14500000000000002],
+                                                  [0.11111111111111112, 0.14500000000000002],
+                                                  [0.11111111111111112, 0.15099999999999997],
+                                                  [0.12121212121212122, 0.15099999999999997],
+                                                  [0.12121212121212122, 0.15499999999999997],
+                                                  [0.13131313131313133, 0.15499999999999997],
+                                                  [0.13131313131313133, 0.15700000000000003],
+                                                  [0.14141414141414144, 0.15700000000000003],
+                                                  [0.14141414141414144, 0.16100000000000003],
+                                                  [0.15151515151515152, 0.16100000000000003],
+                                                  [0.15151515151515152, 0.16400000000000006],
+                                                  [0.16161616161616163, 0.16400000000000006],
+                                                  [0.16161616161616163, 0.14500000000000002],
+                                                  [0.17171717171717174, 0.14500000000000002],
+                                                  [0.17171717171717174, 0.15099999999999997],
+                                                  [0.18181818181818182, 0.15099999999999997],
+                                                  [0.18181818181818182, 0.15499999999999997],
+                                                  [0.19191919191919193, 0.15499999999999997],
+                                                  [0.19191919191919193, 0.15700000000000003],
+                                                  [0.20202020202020204, 0.15700000000000003],
+                                                  [0.20202020202020204, 0.16100000000000003],
+                                                  [0.21212121212121213, 0.16100000000000003],
+                                                  [0.21212121212121213, 0.16400000000000006],
+                                                  [0.22222222222222224, 0.16400000000000006],
+                                                  [0.22222222222222224, 0.154],
+                                                  [0.23232323232323235, 0.154],
+                                                  [0.23232323232323235, 0.166],
+                                                  [0.24242424242424243, 0.166],
+                                                  [0.24242424242424243, 0.16900000000000004],
+                                                  [0.25252525252525254, 0.16900000000000004],
+                                                  [0.25252525252525254, 0.15999999999999998],
+                                                  [0.26262626262626265, 0.15999999999999998],
+                                                  [0.26262626262626265, 0.16100000000000003],
+                                                  [0.27272727272727276, 0.16100000000000003],
+                                                  [0.27272727272727276, 0.17200000000000007],
+                                                  [0.2828282828282829, 0.17200000000000007],
+                                                  [0.2828282828282829, 0.154],
+                                                  [0.29292929292929293, 0.154],
+                                                  [0.29292929292929293, 0.16100000000000003],
+                                                  [0.30303030303030304, 0.16100000000000003],
+                                                  [0.30303030303030304, 0.17200000000000007],
+                                                  [0.31313131313131315, 0.17200000000000007],
+                                                  [0.31313131313131315, 0.154],
+                                                  [0.32323232323232326, 0.154],
+                                                  [0.32323232323232326, 0.16100000000000003],
+                                                  [0.33333333333333337, 0.16100000000000003],
+                                                  [0.33333333333333337, 0.17200000000000007],
+                                                  [0.3434343434343435, 0.17200000000000007],
+                                                  [0.3434343434343435, 0.154],
+                                                  [0.3535353535353536, 0.154],
+                                                  [0.3535353535353536, 0.16100000000000003],
+                                                  [0.36363636363636365, 0.16100000000000003],
+                                                  [0.36363636363636365, 0.17200000000000007],
+                                                  [0.37373737373737376, 0.17200000000000007],
+                                                  [0.37373737373737376, 0.154],
+                                                  [0.38383838383838387, 0.154],
+                                                  [0.38383838383838387, 0.16100000000000003],
+                                                  [0.393939393939394, 0.16100000000000003],
+                                                  [0.393939393939394, 0.17200000000000007],
+                                                  [0.4040404040404041, 0.17200000000000007],
+                                                  [0.4040404040404041, 0.176],
+                                                  [0.4141414141414142, 0.176],
+                                                  [0.4141414141414142, 0.17400000000000002],
+                                                  [0.42424242424242425, 0.17400000000000002],
+                                                  [0.42424242424242425, 0.18599999999999994],
+                                                  [0.43434343434343436, 0.18599999999999994],
+                                                  [0.43434343434343436, 0.19700000000000006],
+                                                  [0.4444444444444445, 0.19700000000000006],
+                                                  [0.4444444444444445, 0.198],
+                                                  [0.4545454545454546, 0.198],
+                                                  [0.4545454545454546, 0.2],
+                                                  [0.4646464646464647, 0.2],
+                                                  [0.4646464646464647, 0.176],
+                                                  [0.4747474747474748, 0.176],
+                                                  [0.4747474747474748, 0.17400000000000002],
+                                                  [0.48484848484848486, 0.17400000000000002],
+                                                  [0.48484848484848486, 0.18599999999999994],
+                                                  [0.494949494949495, 0.18599999999999994],
+                                                  [0.494949494949495, 0.19700000000000006],
+                                                  [0.5050505050505051, 0.19700000000000006],
+                                                  [0.5050505050505051, 0.198],
+                                                  [0.5151515151515152, 0.198],
+                                                  [0.5151515151515152, 0.2],
+                                                  [0.5252525252525253, 0.2],
+                                                  [0.5252525252525253, 0.176],
+                                                  [0.5353535353535355, 0.176],
+                                                  [0.5353535353535355, 0.17400000000000002],
+                                                  [0.5454545454545455, 0.17400000000000002],
+                                                  [0.5454545454545455, 0.18599999999999994],
+                                                  [0.5555555555555556, 0.18599999999999994],
+                                                  [0.5555555555555556, 0.19700000000000006],
+                                                  [0.5656565656565657, 0.19700000000000006],
+                                                  [0.5656565656565657, 0.198],
+                                                  [0.5757575757575758, 0.198],
+                                                  [0.5757575757575758, 0.2],
+                                                  [0.5858585858585859, 0.2],
+                                                  [0.5858585858585859, 0.176],
+                                                  [0.595959595959596, 0.176],
+                                                  [0.595959595959596, 0.17400000000000002],
+                                                  [0.6060606060606061, 0.17400000000000002],
+                                                  [0.6060606060606061, 0.18599999999999994],
+                                                  [0.6161616161616162, 0.18599999999999994],
+                                                  [0.6161616161616162, 0.19700000000000006],
+                                                  [0.6262626262626263, 0.19700000000000006],
+                                                  [0.6262626262626263, 0.198],
+                                                  [0.6363636363636365, 0.198],
+                                                  [0.6363636363636365, 0.2],
+                                                  [0.6464646464646465, 0.2],
+                                                  [0.6464646464646465, 0.198],
+                                                  [0.6565656565656566, 0.198],
+                                                  [0.6565656565656566, 0.187],
+                                                  [0.6666666666666667, 0.187],
+                                                  [0.6666666666666667, 0.198],
+                                                  [0.6767676767676768, 0.198],
+                                                  [0.6767676767676768, 0.199],
+                                                  [0.686868686868687, 0.199],
+                                                  [0.686868686868687, 0.2],
+                                                  [0.696969696969697, 0.2],
+                                                  [0.696969696969697, 0.196],
+                                                  [0.7070707070707072, 0.196],
+                                                  [0.7070707070707072, 0.2],
+                                                  [0.7171717171717172, 0.2],
+                                                  [0.7171717171717172, 0.19700000000000006],
+                                                  [0.7272727272727273, 0.19700000000000006],
+                                                  [0.7272727272727273, 0.199],
+                                                  [0.7373737373737375, 0.199],
+                                                  [0.7373737373737375, 0.198],
+                                                  [0.7474747474747475, 0.198],
+                                                  [0.7474747474747475, 0.196],
+                                                  [0.7575757575757577, 0.196],
+                                                  [0.7575757575757577, 0.2],
+                                                  [0.7676767676767677, 0.2],
+                                                  [0.7676767676767677, 0.19700000000000006],
+                                                  [0.7777777777777778, 0.19700000000000006],
+                                                  [0.7777777777777778, 0.199],
+                                                  [0.787878787878788, 0.199],
+                                                  [0.787878787878788, 0.2],
+                                                  [0.797979797979798, 0.2],
+                                                  [0.797979797979798, 0.196],
+                                                  [0.8080808080808082, 0.196],
+                                                  [0.8080808080808082, 0.19000000000000003],
+                                                  [0.8181818181818182, 0.19000000000000003],
+                                                  [0.8181818181818182, 0.2],
+                                                  [0.8282828282828284, 0.2],
+                                                  [0.8282828282828284, 0.196],
+                                                  [0.8383838383838385, 0.196],
+                                                  [0.8383838383838385, 0.19000000000000003],
+                                                  [0.8484848484848485, 0.19000000000000003],
+                                                  [0.8484848484848485, 0.19399999999999995],
+                                                  [0.8585858585858587, 0.19399999999999995],
+                                                  [0.8585858585858587, 0.2],
+                                                  [0.8686868686868687, 0.2],
+                                                  [0.8686868686868687, 0.199],
+                                                  [0.8787878787878789, 0.199],
+                                                  [0.8787878787878789, 0.196],
+                                                  [0.888888888888889, 0.196],
+                                                  [0.888888888888889, 0.192],
+                                                  [0.8989898989898991, 0.192],
+                                                  [0.8989898989898991, 0.19700000000000006],
+                                                  [0.9090909090909092, 0.19700000000000006],
+                                                  [0.9090909090909092, 0.19399999999999995],
+                                                  [0.9191919191919192, 0.19399999999999995],
+                                                  [0.9191919191919192, 0.199],
+                                                  [0.9292929292929294, 0.199],
+                                                  [0.9292929292929294, 0.196],
+                                                  [0.9393939393939394, 0.196],
+                                                  [0.9393939393939394, 0.192],
+                                                  [0.9494949494949496, 0.192],
+                                                  [0.9494949494949496, 0.19700000000000006],
+                                                  [0.9595959595959597, 0.19700000000000006],
+                                                  [0.9595959595959597, 0.19399999999999995],
+                                                  [0.9696969696969697, 0.19399999999999995],
+                                                  [0.9696969696969697, 0.199],
+                                                  [0.9797979797979799, 0.199],
+                                                  [0.9797979797979799, 0.196],
+                                                  [0.98989898989899, 0.196],
+                                                  [0.98989898989899, 0.192],
+                                                  [1.0, 0.192],
+                                                  [1.0, 0.19700000000000006]]},
+                               'del2m': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                               'del2r': {'curved': False,
+                                         'data': [[0.0, 0.15],
+                                                  [0.010101010101010102, 0.15],
+                                                  [0.010101010101010102, 0.14299999999999996],
+                                                  [0.020202020202020204, 0.14299999999999996],
+                                                  [0.020202020202020204, 0.137],
+                                                  [0.030303030303030304, 0.137],
+                                                  [0.030303030303030304, 0.133],
+                                                  [0.04040404040404041, 0.133],
+                                                  [0.04040404040404041, 0.137],
+                                                  [0.05050505050505051, 0.137],
+                                                  [0.05050505050505051, 0.12800000000000003],
+                                                  [0.06060606060606061, 0.12800000000000003],
+                                                  [0.06060606060606061, 0.11799999999999997],
+                                                  [0.07070707070707072, 0.11799999999999997],
+                                                  [0.07070707070707072, 0.12999999999999998],
+                                                  [0.08080808080808081, 0.12999999999999998],
+                                                  [0.08080808080808081, 0.12800000000000003],
+                                                  [0.09090909090909091, 0.12800000000000003],
+                                                  [0.09090909090909091, 0.11799999999999997],
+                                                  [0.10101010101010102, 0.11799999999999997],
+                                                  [0.10101010101010102, 0.12999999999999998],
+                                                  [0.11111111111111112, 0.12999999999999998],
+                                                  [0.11111111111111112, 0.12800000000000003],
+                                                  [0.12121212121212122, 0.12800000000000003],
+                                                  [0.12121212121212122, 0.11799999999999997],
+                                                  [0.13131313131313133, 0.11799999999999997],
+                                                  [0.13131313131313133, 0.12999999999999998],
+                                                  [0.14141414141414144, 0.12999999999999998],
+                                                  [0.14141414141414144, 0.12899999999999998],
+                                                  [0.15151515151515152, 0.12899999999999998],
+                                                  [0.15151515151515152, 0.12099999999999997],
+                                                  [0.16161616161616163, 0.12099999999999997],
+                                                  [0.16161616161616163, 0.125],
+                                                  [0.17171717171717174, 0.125],
+                                                  [0.17171717171717174, 0.12899999999999998],
+                                                  [0.18181818181818182, 0.12899999999999998],
+                                                  [0.18181818181818182, 0.12099999999999997],
+                                                  [0.19191919191919193, 0.12099999999999997],
+                                                  [0.19191919191919193, 0.125],
+                                                  [0.20202020202020204, 0.125],
+                                                  [0.20202020202020204, 0.12899999999999998],
+                                                  [0.21212121212121213, 0.12899999999999998],
+                                                  [0.21212121212121213, 0.12099999999999997],
+                                                  [0.22222222222222224, 0.12099999999999997],
+                                                  [0.22222222222222224, 0.125],
+                                                  [0.23232323232323235, 0.125],
+                                                  [0.23232323232323235, 0.12899999999999998],
+                                                  [0.24242424242424243, 0.12899999999999998],
+                                                  [0.24242424242424243, 0.12099999999999997],
+                                                  [0.25252525252525254, 0.12099999999999997],
+                                                  [0.25252525252525254, 0.125],
+                                                  [0.26262626262626265, 0.125],
+                                                  [0.26262626262626265, 0.12899999999999998],
+                                                  [0.27272727272727276, 0.12899999999999998],
+                                                  [0.27272727272727276, 0.12099999999999997],
+                                                  [0.2828282828282829, 0.12099999999999997],
+                                                  [0.2828282828282829, 0.125],
+                                                  [0.29292929292929293, 0.125],
+                                                  [0.29292929292929293, 0.11400000000000006],
+                                                  [0.30303030303030304, 0.11400000000000006],
+                                                  [0.30303030303030304, 0.11200000000000002],
+                                                  [0.31313131313131315, 0.11200000000000002],
+                                                  [0.31313131313131315, 0.11900000000000004],
+                                                  [0.32323232323232326, 0.11900000000000004],
+                                                  [0.32323232323232326, 0.12699999999999995],
+                                                  [0.33333333333333337, 0.12699999999999995],
+                                                  [0.33333333333333337, 0.12400000000000003],
+                                                  [0.3434343434343435, 0.12400000000000003],
+                                                  [0.3434343434343435, 0.12999999999999998],
+                                                  [0.3535353535353536, 0.12999999999999998],
+                                                  [0.3535353535353536, 0.11799999999999997],
+                                                  [0.36363636363636365, 0.11799999999999997],
+                                                  [0.36363636363636365, 0.11500000000000003],
+                                                  [0.37373737373737376, 0.11500000000000003],
+                                                  [0.37373737373737376, 0.10600000000000005],
+                                                  [0.38383838383838387, 0.10600000000000005],
+                                                  [0.38383838383838387, 0.10499999999999995],
+                                                  [0.393939393939394, 0.10499999999999995],
+                                                  [0.393939393939394, 0.10300000000000002],
+                                                  [0.4040404040404041, 0.10300000000000002],
+                                                  [0.4040404040404041, 0.10800000000000001],
+                                                  [0.4141414141414142, 0.10800000000000001],
+                                                  [0.4141414141414142, 0.10700000000000003],
+                                                  [0.42424242424242425, 0.10700000000000003],
+                                                  [0.42424242424242425, 0.10899999999999999],
+                                                  [0.43434343434343436, 0.10899999999999999],
+                                                  [0.43434343434343436, 0.11400000000000006],
+                                                  [0.4444444444444445, 0.11400000000000006],
+                                                  [0.4444444444444445, 0.10800000000000001],
+                                                  [0.4545454545454546, 0.10800000000000001],
+                                                  [0.4545454545454546, 0.10700000000000003],
+                                                  [0.4646464646464647, 0.10700000000000003],
+                                                  [0.4646464646464647, 0.10899999999999999],
+                                                  [0.4747474747474748, 0.10899999999999999],
+                                                  [0.4747474747474748, 0.11699999999999999],
+                                                  [0.48484848484848486, 0.11699999999999999],
+                                                  [0.48484848484848486, 0.10499999999999995],
+                                                  [0.494949494949495, 0.10499999999999995],
+                                                  [0.494949494949495, 0.10600000000000005],
+                                                  [0.5050505050505051, 0.10600000000000005],
+                                                  [0.5050505050505051, 0.10300000000000002],
+                                                  [0.5151515151515152, 0.10300000000000002],
+                                                  [0.5151515151515152, 0.10199999999999995],
+                                                  [0.5252525252525253, 0.10199999999999995],
+                                                  [0.5252525252525253, 0.10099999999999998],
+                                                  [0.5353535353535355, 0.10099999999999998],
+                                                  [0.5353535353535355, 0.09999999999999999],
+                                                  [0.5454545454545455, 0.09999999999999999],
+                                                  [0.5454545454545455, 0.10499999999999995],
+                                                  [0.5555555555555556, 0.10499999999999995],
+                                                  [0.5555555555555556, 0.10199999999999995],
+                                                  [0.5656565656565657, 0.10199999999999995],
+                                                  [0.5656565656565657, 0.09999999999999999],
+                                                  [0.5757575757575758, 0.09999999999999999],
+                                                  [0.5757575757575758, 0.10199999999999995],
+                                                  [0.5858585858585859, 0.10199999999999995],
+                                                  [0.5858585858585859, 0.10999999999999996],
+                                                  [0.595959595959596, 0.10999999999999996],
+                                                  [0.595959595959596, 0.11799999999999997],
+                                                  [0.6060606060606061, 0.11799999999999997],
+                                                  [0.6060606060606061, 0.133],
+                                                  [0.6161616161616162, 0.133],
+                                                  [0.6161616161616162, 0.12400000000000003],
+                                                  [0.6262626262626263, 0.12400000000000003],
+                                                  [0.6262626262626263, 0.11699999999999999],
+                                                  [0.6363636363636365, 0.11699999999999999],
+                                                  [0.6363636363636365, 0.133],
+                                                  [0.6464646464646465, 0.133],
+                                                  [0.6464646464646465, 0.12400000000000003],
+                                                  [0.6565656565656566, 0.12400000000000003],
+                                                  [0.6565656565656566, 0.11699999999999999],
+                                                  [0.6666666666666667, 0.11699999999999999],
+                                                  [0.6666666666666667, 0.133],
+                                                  [0.6767676767676768, 0.133],
+                                                  [0.6767676767676768, 0.12400000000000003],
+                                                  [0.686868686868687, 0.12400000000000003],
+                                                  [0.686868686868687, 0.11699999999999999],
+                                                  [0.696969696969697, 0.11699999999999999],
+                                                  [0.696969696969697, 0.133],
+                                                  [0.7070707070707072, 0.133],
+                                                  [0.7070707070707072, 0.12400000000000003],
+                                                  [0.7171717171717172, 0.12400000000000003],
+                                                  [0.7171717171717172, 0.11699999999999999],
+                                                  [0.7272727272727273, 0.11699999999999999],
+                                                  [0.7272727272727273, 0.11400000000000006],
+                                                  [0.7373737373737375, 0.11400000000000006],
+                                                  [0.7373737373737375, 0.11799999999999997],
+                                                  [0.7474747474747475, 0.11799999999999997],
+                                                  [0.7474747474747475, 0.11299999999999999],
+                                                  [0.7575757575757577, 0.11299999999999999],
+                                                  [0.7575757575757577, 0.125],
+                                                  [0.7676767676767677, 0.125],
+                                                  [0.7676767676767677, 0.11299999999999999],
+                                                  [0.7777777777777778, 0.11299999999999999],
+                                                  [0.7777777777777778, 0.11799999999999997],
+                                                  [0.787878787878788, 0.11799999999999997],
+                                                  [0.787878787878788, 0.12800000000000003],
+                                                  [0.797979797979798, 0.12800000000000003],
+                                                  [0.797979797979798, 0.13900000000000007],
+                                                  [0.8080808080808082, 0.13900000000000007],
+                                                  [0.8080808080808082, 0.13100000000000006],
+                                                  [0.8181818181818182, 0.13100000000000006],
+                                                  [0.8181818181818182, 0.11900000000000004],
+                                                  [0.8282828282828284, 0.11900000000000004],
+                                                  [0.8282828282828284, 0.12300000000000004],
+                                                  [0.8383838383838385, 0.12300000000000004],
+                                                  [0.8383838383838385, 0.12899999999999998],
+                                                  [0.8484848484848485, 0.12899999999999998],
+                                                  [0.8484848484848485, 0.141],
+                                                  [0.8585858585858587, 0.141],
+                                                  [0.8585858585858587, 0.15499999999999997],
+                                                  [0.8686868686868687, 0.15499999999999997],
+                                                  [0.8686868686868687, 0.162],
+                                                  [0.8787878787878789, 0.162],
+                                                  [0.8787878787878789, 0.15300000000000002],
+                                                  [0.888888888888889, 0.15300000000000002],
+                                                  [0.888888888888889, 0.15499999999999997],
+                                                  [0.8989898989898991, 0.15499999999999997],
+                                                  [0.8989898989898991, 0.15999999999999998],
+                                                  [0.9090909090909092, 0.15999999999999998],
+                                                  [0.9090909090909092, 0.11699999999999999],
+                                                  [0.9191919191919192, 0.11699999999999999],
+                                                  [0.9191919191919192, 0.15499999999999997],
+                                                  [0.9292929292929294, 0.15499999999999997],
+                                                  [0.9292929292929294, 0.162],
+                                                  [0.9393939393939394, 0.162],
+                                                  [0.9393939393939394, 0.15300000000000002],
+                                                  [0.9494949494949496, 0.15300000000000002],
+                                                  [0.9494949494949496, 0.15499999999999997],
+                                                  [0.9595959595959597, 0.15499999999999997],
+                                                  [0.9595959595959597, 0.15999999999999998],
+                                                  [0.9696969696969697, 0.15999999999999998],
+                                                  [0.9696969696969697, 0.11699999999999999],
+                                                  [0.9797979797979799, 0.11699999999999999],
+                                                  [0.9797979797979799, 0.15499999999999997],
+                                                  [0.98989898989899, 0.15499999999999997],
+                                                  [0.98989898989899, 0.162],
+                                                  [1.0, 0.162],
+                                                  [1.0, 0.15300000000000002]]},
+                               'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                               'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                               'filter': {'curved': False, 'data': [[0.0, 0.9560509984272503], [1.0, 0.9560509984272503]]},
+                               'filterq': {'curved': False, 'data': [[0.0, 0.11563869392888107], [1.0, 0.11563869392888107]]},
+                               'jitamp': {'curved': False, 'data': [[0.0, 0.75], [1.0, 0.75]]},
+                               'jitspeed': {'curved': False, 'data': [[0.0, 0.4346612199809726], [1.0, 0.4346612199809726]]},
+                               'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                               'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                               'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                               'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                               'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
+                 'userInputs': {'snd': {'dursnd': 5.605260770975057,
+                                        'gain': [0.0, False, False, False, None, 1, None, None],
+                                        'loopIn': [0.0, False, False, False, None, 1, 0, 5.605260770975057, None, None],
+                                        'loopMode': 1,
+                                        'loopOut': [5.605260770975057, False, False, False, None, 1, 0, 5.605260770975057, None, None],
+                                        'loopX': [1.0, False, False, False, None, 1, None, None],
+                                        'mode': 0,
+                                        'nchnlssnd': 2,
+                                        'offsnd': 0.0,
+                                        'path': u'/home/olivier/Dropbox/private/snds/baseballmajeur_s.aif',
+                                        'srsnd': 44100.0,
+                                        'startFromLoop': 0,
+                                        'transp': [0.0, False, False, False, None, 1, None, None],
+                                        'type': 'csampler'}},
+                 'userSliders': {'del1f': [0.995, 0, None, 1, None, None],
+                                 'del1l': [0.00043151908903382735, 1, None, 1, None, None],
+                                 'del1m': [-12.0, 0, None, 1, None, None],
+                                 'del1r': [0.0006421181606128816, 1, None, 1, None, None],
+                                 'del2f': [0.995, 0, None, 1, None, None],
+                                 'del2l': [0.0006382634746842087, 1, None, 1, None, None],
+                                 'del2m': [-12.0, 0, None, 1, None, None],
+                                 'del2r': [0.00038904513348825287, 1, None, 1, None, None],
+                                 'drywet': [1.0, 0, None, 1, None, None],
+                                 'filter': [9274.602948724669, 0, None, 1, None, None],
+                                 'filterq': [0.707, 0, None, 1, None, None],
+                                 'jitamp': [0.0001, 0, None, 1, None, None],
+                                 'jitspeed': [0.030000000000000013, 0, None, 1, None, None]},
+                 'userTogglePopups': {'balance': 0, 'filtrouting': 0, 'filttype': 0, 'poly': 0, 'polynum': 0, 'routing': 1}},
+ u'05-Rising Star': {'gainSlider': 0.0,
+                     'nchnls': 2,
+                     'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                 1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                 2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                 3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                     'totalTime': 60.00000000000021,
+                     'userGraph': {'del1f': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                                   'del1l': {'curved': False, 'data': [[0.0, 0.19818859202519115], [1.0, 0.6829946695941636]]},
+                                   'del1m': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                   'del1r': {'curved': False, 'data': [[0.0, 0.21227492696431546], [1.0, 0.6795880017344075]]},
+                                   'del2f': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                                   'del2l': {'curved': False,
+                                             'data': [[0.0, 0.6383249961313449], [0.90990788024431779, 0.18387644942023185], [1.0, 0.1810079229606131]]},
+                                   'del2m': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                   'del2r': {'curved': False,
+                                             'data': [[0.0, 0.6352182518111362], [0.90740462601381811, 0.17637944822071167], [1.0, 0.1729031778407244]]},
+                                   'drywet': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                   'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                   'filter': {'curved': False, 'data': [[0.0, 0.9560509984272503], [1.0, 0.9560509984272503]]},
+                                   'filterq': {'curved': False, 'data': [[0.0, 0.11563869392888107], [1.0, 0.11563869392888107]]},
+                                   'jitamp': {'curved': False, 'data': [[0.0, 0.75], [1.0, 0.75]]},
+                                   'jitspeed': {'curved': False, 'data': [[0.0, 0.4346612199809726], [1.0, 0.4346612199809726]]},
+                                   'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                   'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                   'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                   'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                   'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]}},
+                     'userInputs': {'snd': {'dursnd': 5.605260770975057,
+                                            'gain': [0.0, False, False, False, None, 1, None, None],
+                                            'loopIn': [0.0, False, False, False, None, 1, 0, 5.605260770975057, None, None],
+                                            'loopMode': 1,
+                                            'loopOut': [5.605260770975057, False, False, False, None, 1, 0, 5.605260770975057, None, None],
+                                            'loopX': [1.0, False, False, False, None, 1, None, None],
+                                            'mode': 0,
+                                            'nchnlssnd': 2,
+                                            'offsnd': 0.0,
+                                            'path': u'/home/olivier/Dropbox/private/snds/baseballmajeur_s.aif',
+                                            'srsnd': 44100.0,
+                                            'startFromLoop': 0,
+                                            'transp': [0.0, False, False, False, None, 1, None, None],
+                                            'type': 'csampler'}},
+                     'userSliders': {'del1f': [0.99, 0, None, 1, None, None],
+                                     'del1l': [0.25860792398452787, 1, None, 1, None, None],
+                                     'del1m': [-12.0, 0, None, 1, None, None],
+                                     'del1r': [0.24870963394641885, 1, None, 1, None, None],
+                                     'del2f': [0.99, 0, None, 1, None, None],
+                                     'del2l': [0.0008038822561502454, 1, None, 1, None, None],
+                                     'del2m': [-12.0, 0, None, 1, None, None],
+                                     'del2r': [0.0007323119789361958, 1, None, 1, None, None],
+                                     'drywet': [1.0, 0, None, 1, None, None],
+                                     'filter': [7500.000000000001, 0, None, 1, None, None],
+                                     'filterq': [0.707, 0, None, 1, None, None],
+                                     'jitamp': [0.0020000000000000005, 0, None, 1, None, None],
+                                     'jitspeed': [6.000000000000003, 0, None, 1, None, None]},
+                     'userTogglePopups': {'balance': 0, 'filtrouting': 1, 'filttype': 0, 'poly': 0, 'polynum': 0, 'routing': 0}}}
\ No newline at end of file
diff --git a/Resources/modules/Time/BeatMaker.c5 b/Resources/modules/Time/BeatMaker.c5
index 38ab033..11f65e8 100644
--- a/Resources/modules/Time/BeatMaker.c5
+++ b/Resources/modules/Time/BeatMaker.c5
@@ -1,34 +1,66 @@
 class Module(BaseModule):
     """
-    Algorithmic beatmaker module
+    "Algorithmic beat maker module"
     
-    Sliders under the graph:
-    
-        - # of Taps : Number of taps in a measure
-        - Tempo : Speed of taps
-        - Tap Length : Length of taps
-        - Beat 1 Index : Soundfile index of the first beat
-        - Beat 2 Index : Soundfile index of the second beat
-        - Beat 3 Index : Soundfile index of the third beat
-        - Beat 1 Distribution : Repartition of taps for the first beat (100% weak --> 100% down)
-        - Beat 2 Distribution : Repartition of taps for the second beat (100% weak --> 100% down)
-        - Beat 3 Distribution : Repartition of taps for the third beat (100% weak --> 100% down)
-        - Beat 1 Gain : Gain of the first beat
-        - Beat 2 Gain : Gain of the second beat
-        - Beat 3 Gain : Gain of the third beat
-        - Global Seed : Seed value for the algorithmic beats, using the same seed with the same distributions will yield the exact same beats
-        
-    Dropdown menus, toggles and sliders on the bottom left:
+    Description
+
+    Four voices beat generator where sounds are extracted from a soundfile.
 
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+    Sliders
+    
+        # Num of Taps : 
+            Number of taps in a measure
+        # Tempo : 
+            Speed of taps in BPM (ref. to quarter note)
+        # Beat 1 Tap Length : 
+            Length of taps of the first beat, in seconds
+        # Beat 1 Index : 
+            Soundfile index of the first beat
+        # Beat 1 Gain : 
+            Gain of the first beat
+        # Beat 1 Distribution : 
+            Repartition of taps for the first beat (100% weak <--> 100% down)
+        # Beat 2 Tap Length : 
+            Length of taps of the second beat, in seconds
+        # Beat 2 Index : 
+            Soundfile index of the second beat
+        # Beat 2 Gain : 
+            Gain of the second beat
+        # Beat 2 Distribution : 
+            Repartition of taps for the second beat (100% weak <--> 100% down)
+        # Beat 3 Tap Length : 
+            Length of taps of the third beat, in seconds
+        # Beat 3 Index : 
+            Soundfile index of the third beat
+        # Beat 3 Gain : 
+            Gain of the third beat
+        # Beat 3 Distribution : 
+            Repartition of taps for the third beat (100% weak <--> 100% down)
+        # Beat 4 Tap Length : 
+            Length of taps of the fourth beat, in seconds
+        # Beat 4 Index : 
+            Soundfile index of the fourth beat
+        # Beat 4 Gain : 
+            Gain of the fourth beat
+        # Beat 4 Distribution : 
+            Repartition of taps for the fourth beat (100% weak <--> 100% down)
+        # Global Seed : 
+            Seed value for the algorithmic beats, using the same seed with 
+            the same distributions will yield the exact same beats.
         
-    Graph only parameters :
+    Graph Only
     
-        - Beat 1 ADSR : Envelope of taps for the first beat in breakpoint fashion
-        - Beat 2 ADSR : Envelope of taps for the second beat in breakpoint fashion
-        - Beat 3 ADSR : Envelope of taps for the third beat in breakpoint fashion
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
+        # Beat 1 ADSR : 
+            Envelope of taps for the first beat in breakpoint fashion
+        # Beat 2 ADSR : 
+            Envelope of taps for the second beat in breakpoint fashion
+        # Beat 3 ADSR : 
+            Envelope of taps for the third beat in breakpoint fashion
+        # Beat 4 ADSR : 
+            Envelope of taps for the fourth beat in breakpoint fashion
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+
     """
     def __init__(self):
         BaseModule.__init__(self)
@@ -36,11 +68,14 @@ class Module(BaseModule):
         self.last_we1 =self.last_we2 = self.last_we3 = self.last_we4 = self.last_taps = -1
         self.rtempo = 1/(self.tempo/15)
         self.setGlobalSeed(int(self.seed.get()))
-        self.beat1 = Beat(time=self.rtempo, taps=int(self.taps.get()), w1=80, w2=40, w3=20, poly=16).play()
-        self.beat2 = Beat(time=self.rtempo, taps=int(self.taps.get()), w1=50, w2=100, w3=50, poly=16).play()
-        self.beat3 = Beat(time=self.rtempo, taps=int(self.taps.get()), w1=30, w2=60, w3=70, poly=16).play()
-        self.beat4 = Beat(time=self.rtempo, taps=int(self.taps.get()), w1=30, w2=60, w3=70, poly=16).play()
-        self.beat4 = Beat(time=self.rtempo, taps=int(self.taps.get()), w1=30, w2=60, w3=70, poly=8).play()
+        w1, w2, w3 = self.newdist1(int(self.we1.get()))
+        self.beat1 = Beat(time=self.rtempo, taps=int(self.taps.get()), w1=w1, w2=w2, w3=w3, poly=10).play()
+        w1, w2, w3 = self.newdist2(int(self.we2.get()))
+        self.beat2 = Beat(time=self.rtempo, taps=int(self.taps.get()), w1=w1, w2=w2, w3=w3, poly=10).play()
+        w1, w2, w3 = self.newdist3(int(self.we3.get()))
+        self.beat3 = Beat(time=self.rtempo, taps=int(self.taps.get()), w1=w1, w2=w2, w3=w3, poly=10).play()
+        w1, w2, w3 = self.newdist4(int(self.we4.get()))
+        self.beat4 = Beat(time=self.rtempo, taps=int(self.taps.get()), w1=w1, w2=w2, w3=w3, poly=10).play()
         self.tre1 = TrigEnv(input=self.beat1, table=self.adsr1, dur=self.tapsl1, mul=self.beat1['amp'])
         self.tre2 = TrigEnv(input=self.beat2, table=self.adsr2, dur=self.tapsl2, mul=self.beat2['amp'])
         self.tre3 = TrigEnv(input=self.beat3, table=self.adsr3, dur=self.tapsl3, mul=self.beat3['amp'])
@@ -53,19 +88,16 @@ class Module(BaseModule):
         self.trf2 = TrigFunc(self.linseg2['trig'], self.newseg2)
         self.trf3 = TrigFunc(self.linseg3['trig'], self.newseg3)
         self.trf4 = TrigFunc(self.linseg4['trig'], self.newseg4)
-        self.again1 = DBToA(self.gain1)
-        self.again2 = DBToA(self.gain2)
-        self.again3 = DBToA(self.gain3)
-        self.again4 = DBToA(self.gain4)
+        self.again1 = DBToA(self.gain1, mul=0.7)
+        self.again2 = DBToA(self.gain2, mul=0.7)
+        self.again3 = DBToA(self.gain3, mul=0.7)
+        self.again4 = DBToA(self.gain4, mul=0.7)
         self.pointer1 = Pointer(table=self.snd, index=self.linseg1, mul=self.tre1*self.again1)
         self.pointer2 = Pointer(table=self.snd, index=self.linseg2, mul=self.tre2*self.again2)
         self.pointer3 = Pointer(table=self.snd, index=self.linseg3, mul=self.tre3*self.again3)
         self.pointer4 = Pointer(table=self.snd, index=self.linseg4, mul=self.tre4*self.again4)
         self.mixx = self.pointer1+self.pointer2+self.pointer3+self.pointer4
-        self.sig = Sig(self.mixx, mul=self.env).mix(self.nchnls)
-        self.chorusd = Scale(input=Sig(self.polyphony_spread), inmin=0.0001, inmax=0.5, outmin=0, outmax=5)
-        self.chorusb = Scale(input=Sig(self.number_of_voices), inmin=1, inmax=10, outmin=0, outmax=1)
-        self.out = Chorus(input=self.sig, depth=self.chorusd, feedback=0.25, bal=self.chorusb)
+        self.out = Sig(self.mixx, mul=self.env).mix(self.nchnls)
 
         self.trigend = TrigFunc(self.beat1["end"], self.newdist)
 
@@ -101,10 +133,7 @@ class Module(BaseModule):
         else:
             w2 = (100-value)*2
         w3 = 100-value
-        
-        self.beat1.setW1(w1)
-        self.beat1.setW2(w2)
-        self.beat1.setW3(w3)
+        return (w1, w2, w3)
         
     def newdist2(self, value):
         w1 = value
@@ -113,10 +142,7 @@ class Module(BaseModule):
         else:
             w2 = (100-value)*2
         w3 = 100-value
-        
-        self.beat2.setW1(w1)
-        self.beat2.setW2(w2)
-        self.beat2.setW3(w3)
+        return (w1, w2, w3)
         
     def newdist3(self, value):
         w1 = value
@@ -125,10 +151,7 @@ class Module(BaseModule):
         else:
             w2 = (100-value)*2
         w3 = 100-value
-        
-        self.beat3.setW1(w1)
-        self.beat3.setW2(w2)
-        self.beat3.setW3(w3)
+        return (w1, w2, w3)
         
     def newdist4(self, value):
         w1 = value
@@ -137,10 +160,7 @@ class Module(BaseModule):
         else:
             w2 = (100-value)*2
         w3 = 100-value
-                
-        self.beat4.setW1(w1)
-        self.beat4.setW2(w2)
-        self.beat4.setW3(w3)
+        return (w1, w2, w3)
 
     def newdist(self):
         taps = int(self.taps.get())
@@ -150,44 +170,774 @@ class Module(BaseModule):
         value = int(self.we1.get())
         if value != self.last_we1:
             self.last_we1 = value
-            self.newdist1(value)
+            self.beat1.setWeights(*self.newdist1(value))
         value = int(self.we2.get())
         if value != self.last_we2:
             self.last_we2 = value
-            self.newdist2(value)
+            self.beat2.setWeights(*self.newdist2(value))
         value = int(self.we3.get())
         if value != self.last_we3:
             self.last_we3 = value
-            self.newdist3(value)
+            self.beat3.setWeights(*self.newdist3(value))
         value = int(self.we4.get())
         if value != self.last_we4:
             self.last_we4 = value
-            self.newdist4(value)
+            self.beat4.setWeights(*self.newdist4(value))
 
 Interface = [   cfilein(name="snd", label="Audio"),
                 cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
-                cgraph(name="adsr1", label="Beat 1 ADSR", func=[(0,0),(0.001,1),(0.122,0.25),(1,0)], table=True, col="blue"),
-                cgraph(name="adsr2", label="Beat 2 ADSR", func=[(0,0),(0.001,1),(0.122,0.25),(1,0)], table=True, col="blue"),
-                cgraph(name="adsr3", label="Beat 3 ADSR", func=[(0,0),(0.001,1),(0.122,0.25),(1,0)], table=True, col="blue"),
-                cgraph(name="adsr4", label="Beat 4 ADSR", func=[(0,0),(0.001,1),(0.122,0.25),(1,0)], table=True, col="blue"),
-                cslider(name="taps", label="# of Taps", min=1, max=64, init=16, res="int", rel="lin", unit="x", col= "lightgreen"),
-                cslider(name="tempo", label="Tempo", min=20, max=240, gliss=0, init=120, rel="lin", unit="bpm", col="green"),
-                cslider(name="tapsl1", label="Beat 1 Tap Length", min=0.1, max=1, init=0.1, rel="lin", unit="sec", col="blue",half=True),
-                cslider(name="bindex1", label="Beat 1 Index", min=0, max=1, init=0, rel="lin", unit="x", col="olivegreen",half=True),
-                cslider(name="tapsl2", label="Beat 2 Tap Length", min=0.1, max=1, init=0.2, rel="lin", unit="sec", col="blue",half=True),
-                cslider(name="bindex2", label="Beat 2 Index", min=0, max=1, init=0.3, rel="lin", unit="x", col="olivegreen",half=True),
-                cslider(name="tapsl3", label="Beat 3 Tap Length", min=0.1, max=1, init=0.4, rel="lin", unit="sec", col="blue",half=True),
-                cslider(name="bindex3", label="Beat 3 Index", min=0, max=1, init=0.7, rel="lin", unit="x", col="olivegreen",half=True),
-                cslider(name="tapsl4", label="Beat 4 Tap Length", min=0.1, max=1, init=0.6, rel="lin", unit="sec", col="blue",half=True),
-                cslider(name="bindex4", label="Beat 4 Index", min=0, max=1, init=1.0, rel="lin", unit="x", col="olivegreen",half=True),
-                cslider(name="gain1", label="Beat 1 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="chorusyellow",half=True),
-                cslider(name="we1", label="Beat 1 Distribution", min=0, max=100, init=80, res="int", rel="lin", unit="%", col="red3",half=True),
-                cslider(name="gain2", label="Beat 2 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="chorusyellow",half=True),
-                cslider(name="we2", label="Beat 2 Distribution", min=0, max=100, init=50, rel="lin", res="int", unit="%", col="red3",half=True),
-                cslider(name="gain3", label="Beat 3 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="chorusyellow",half=True),
-                cslider(name="we3", label="Beat 3 Distribution", min=0, max=100, init=30, rel="lin", res="int", unit="%", col="red3",half=True),
-                cslider(name="gain4", label="Beat 4 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="chorusyellow",half=True),
-                cslider(name="we4", label="Beat 4 Distribution", min=0, max=100, init=10, rel="lin",  res="int", unit="%", col="red3",half=True),
+                cgraph(name="adsr1", label="Beat 1 ADSR", func=[(0,0),(0.001,1),(0.125,0.25),(1,0)], table=True, col="blue1"),
+                cgraph(name="adsr2", label="Beat 2 ADSR", func=[(0,0),(0.005,1),(0.135,0.3),(1,0)], table=True, col="purple1"),
+                cgraph(name="adsr3", label="Beat 3 ADSR", func=[(0,0),(0.01,1),(0.145,0.35),(1,0)], table=True, col="red1"),
+                cgraph(name="adsr4", label="Beat 4 ADSR", func=[(0,0),(0.015,1),(0.155,0.4),(1,0)], table=True, col="green1"),
+                cslider(name="taps", label="Num of Taps", min=1, max=64, init=16, res="int", rel="lin", unit="x", col= "orange1"),
+                cslider(name="tempo", label="Tempo", min=20, max=240, gliss=0, init=120, rel="lin", unit="bpm", col="orange3"),
+                cslider(name="tapsl1", label="Beat 1 Tap Length", min=0.01, max=1, init=0.2, rel="lin", unit="sec", col="blue1",half=True),
+                cslider(name="tapsl3", label="Beat 3 Tap Length", min=0.01, max=1, init=0.2, rel="lin", unit="sec", col="red1",half=True),
+                cslider(name="bindex1", label="Beat 1 Index", min=0, max=1, init=0, rel="lin", unit="x", col="blue2",half=True),
+                cslider(name="bindex3", label="Beat 3 Index", min=0, max=1, init=0.25, rel="lin", unit="x", col="red2",half=True),
+                cslider(name="gain1", label="Beat 1 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="blue3",half=True),
+                cslider(name="gain3", label="Beat 3 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="red3",half=True),
+                cslider(name="we1", label="Beat 1 Distribution", min=0, max=100, init=80, res="int", rel="lin", unit="%", col="blue4",half=True),
+                cslider(name="we3", label="Beat 3 Distribution", min=0, max=100, init=30, rel="lin", res="int", unit="%", col="red4",half=True),
+                cslider(name="tapsl2", label="Beat 2 Tap Length", min=0.01, max=1, init=0.2, rel="lin", unit="sec", col="purple1",half=True),
+                cslider(name="tapsl4", label="Beat 4 Tap Length", min=0.01, max=1, init=0.2, rel="lin", unit="sec", col="green1",half=True),
+                cslider(name="bindex2", label="Beat 2 Index", min=0, max=1, init=0.5, rel="lin", unit="x", col="purple2",half=True),
+                cslider(name="bindex4", label="Beat 4 Index", min=0, max=1, init=0.75, rel="lin", unit="x", col="green2",half=True),
+                cslider(name="gain2", label="Beat 2 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="purple3",half=True),
+                cslider(name="gain4", label="Beat 4 Gain", min=-48, max=18, init=0, rel="lin", unit="dB", col="green3",half=True),
+                cslider(name="we2", label="Beat 2 Distribution", min=0, max=100, init=50, rel="lin", res="int", unit="%", col="purple4",half=True),
+                cslider(name="we4", label="Beat 4 Distribution", min=0, max=100, init=10, rel="lin",  res="int", unit="%", col="green4",half=True),
                 cslider(name="seed", label="Global seed", min=0, max=5000, init=0, rel="lin", res="int", unit="x", up=True),
-                cpoly()
           ]
+
+
+####################################
+##### Cecilia reserved section #####
+#### Presets saved from the app ####
+####################################
+
+
+CECILIA_PRESETS = {u'01-Slow Pulse': {'active': False,
+                    'gainSlider': 0.0,
+                    'nchnls': 2,
+                    'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                    'totalTime': 60.00000000000021,
+                    'userGraph': {'adsr1': {'curved': False, 'data': [[0.0, 0.0], [0.001, 1.0], [0.9826516335356326, 1.0], [1.0, 0.0]]},
+                                  'adsr2': {'curved': False, 'data': [[0.0, 0.0], [0.005000000000000001, 1.0], [0.9769037928068709, 1.0], [1.0, 0.0]]},
+                                  'adsr3': {'curved': False, 'data': [[0.0, 0.0], [0.010000000000000002, 1.0], [0.9711559520781092, 1.0], [1.0, 0.0]]},
+                                  'adsr4': {'curved': False, 'data': [[0.0, 0.0], [0.015, 1.0], [0.9641967389855968, 1.0], [1.0, 0.0]]},
+                                  'bindex1': {'curved': False,
+                                              'data': [[0.0, 0.5403471468348998],
+                                                       [0.1111111111111111, 0.5403471468348998],
+                                                       [0.1111111111111111, 0.8376685507504241],
+                                                       [0.2222222222222222, 0.8376685507504241],
+                                                       [0.2222222222222222, 0.6113671530170711],
+                                                       [0.3333333333333333, 0.6113671530170711],
+                                                       [0.3333333333333333, 0.07848282907417256],
+                                                       [0.4444444444444444, 0.07848282907417256],
+                                                       [0.4444444444444444, 0.753948124986218],
+                                                       [0.5555555555555556, 0.753948124986218],
+                                                       [0.5555555555555556, 0.5804506293132208],
+                                                       [0.6666666666666666, 0.5804506293132208],
+                                                       [0.6666666666666666, 0.9075322668318662],
+                                                       [0.7777777777777777, 0.9075322668318662],
+                                                       [0.7777777777777777, 0.40444430180441204],
+                                                       [0.8888888888888888, 0.40444430180441204],
+                                                       [0.8888888888888888, 0.7116599563886927],
+                                                       [1.0, 0.7116599563886927],
+                                                       [1.0, 0.6034819436482516]]},
+                                  'bindex2': {'curved': False,
+                                              'data': [[0.0, 0.4003662277490314],
+                                                       [0.09090909090909091, 0.4003662277490314],
+                                                       [0.09090909090909091, 0.17009334470993281],
+                                                       [0.18181818181818182, 0.17009334470993281],
+                                                       [0.18181818181818182, 0.301281115485512],
+                                                       [0.2727272727272727, 0.301281115485512],
+                                                       [0.2727272727272727, 0.4500014894760656],
+                                                       [0.36363636363636365, 0.4500014894760656],
+                                                       [0.36363636363636365, 0.3001037936490048],
+                                                       [0.4545454545454546, 0.3001037936490048],
+                                                       [0.4545454545454546, 0.3865766251628075],
+                                                       [0.5454545454545454, 0.3865766251628075],
+                                                       [0.5454545454545454, 0.7490599897265733],
+                                                       [0.6363636363636364, 0.7490599897265733],
+                                                       [0.6363636363636364, 0.6214914784147119],
+                                                       [0.7272727272727273, 0.6214914784147119],
+                                                       [0.7272727272727273, 0.4947450117825909],
+                                                       [0.8181818181818182, 0.4947450117825909],
+                                                       [0.8181818181818182, 0.385493820163212],
+                                                       [0.9090909090909092, 0.385493820163212],
+                                                       [0.9090909090909092, 0.45105330924973025],
+                                                       [1.0, 0.45105330924973025],
+                                                       [1.0, 0.35323885050956494]]},
+                                  'bindex3': {'curved': False,
+                                              'data': [[0.0, 0.4139467648262755],
+                                                       [0.07142857142857142, 0.4139467648262755],
+                                                       [0.07142857142857142, 0.31586953409169977],
+                                                       [0.14285714285714285, 0.31586953409169977],
+                                                       [0.14285714285714285, 0.20505690974178056],
+                                                       [0.21428571428571427, 0.20505690974178056],
+                                                       [0.21428571428571427, 0.48895012003811494],
+                                                       [0.2857142857142857, 0.48895012003811494],
+                                                       [0.2857142857142857, 0.18620574249457172],
+                                                       [0.3571428571428571, 0.18620574249457172],
+                                                       [0.3571428571428571, 0.5178027435064],
+                                                       [0.42857142857142855, 0.5178027435064],
+                                                       [0.42857142857142855, 0.5468733536051207],
+                                                       [0.5, 0.5468733536051207],
+                                                       [0.5, 0.13991666960759283],
+                                                       [0.5714285714285714, 0.13991666960759283],
+                                                       [0.5714285714285714, 0.8907324995884172],
+                                                       [0.6428571428571428, 0.8907324995884172],
+                                                       [0.6428571428571428, 0.2460109902005325],
+                                                       [0.7142857142857142, 0.2460109902005325],
+                                                       [0.7142857142857142, 0.19802008040390337],
+                                                       [0.7857142857142857, 0.19802008040390337],
+                                                       [0.7857142857142857, 0.5439633341235716],
+                                                       [0.8571428571428571, 0.5439633341235716],
+                                                       [0.8571428571428571, 0.8055852037980499],
+                                                       [0.9285714285714285, 0.8055852037980499],
+                                                       [0.9285714285714285, 0.5916886367776834],
+                                                       [1.0, 0.5916886367776834],
+                                                       [1.0, 0.39679757816815014]]},
+                                  'bindex4': {'curved': False,
+                                              'data': [[0.0, 0.15169291476518695],
+                                                       [0.14285714285714285, 0.15169291476518695],
+                                                       [0.14285714285714285, 0.37541468923014326],
+                                                       [0.2857142857142857, 0.37541468923014326],
+                                                       [0.2857142857142857, 0.3838837866397447],
+                                                       [0.42857142857142855, 0.3838837866397447],
+                                                       [0.42857142857142855, 0.10925154053866537],
+                                                       [0.5714285714285714, 0.10925154053866537],
+                                                       [0.5714285714285714, 0.5817350573724489],
+                                                       [0.7142857142857142, 0.5817350573724489],
+                                                       [0.7142857142857142, 0.045534337221805166],
+                                                       [0.8571428571428571, 0.045534337221805166],
+                                                       [0.8571428571428571, 0.770728758681565],
+                                                       [1.0, 0.770728758681565],
+                                                       [1.0, 0.8441204348537712]]},
+                                  'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                  'gain1': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                  'gain2': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                  'gain3': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                  'gain4': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                  'taps': {'curved': False, 'data': [[0.0, 0.23809523809523808], [1.0, 0.23809523809523808]]},
+                                  'tapsl1': {'curved': False, 'data': [[0.0, 0.19191919191919193], [1.0, 0.19191919191919193]]},
+                                  'tapsl2': {'curved': False, 'data': [[0.0, 0.19191919191919193], [1.0, 0.19191919191919193]]},
+                                  'tapsl3': {'curved': False, 'data': [[0.0, 0.19191919191919193], [1.0, 0.19191919191919193]]},
+                                  'tapsl4': {'curved': False, 'data': [[0.0, 0.19191919191919193], [1.0, 0.19191919191919193]]},
+                                  'tempo': {'curved': False, 'data': [[0.0, 0.45454545454545453], [1.0, 0.45454545454545453]]},
+                                  'we1': {'curved': False, 'data': [[0.0, 0.8], [1.0, 0.8]]},
+                                  'we2': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                  'we3': {'curved': False, 'data': [[0.0, 0.3], [1.0, 0.3]]},
+                                  'we4': {'curved': False, 'data': [[0.0, 0.1], [1.0, 0.1]]}},
+                    'userInputs': {'snd': {'dursnd': 252.65709750566893,
+                                           'mode': 0,
+                                           'nchnlssnd': 2,
+                                           'offsnd': 0.0,
+                                           'path': u'/home/olivier/Dropbox/private/snds/feedback.aif',
+                                           'srsnd': 44100.0,
+                                           'type': 'cfilein'}},
+                    'userSliders': {'bindex1': [0.7116599678993225, 1, None, 1, None, None],
+                                    'bindex2': [0.45105332136154175, 1, None, 1, None, None],
+                                    'bindex3': [0.5916886329650879, 1, None, 1, None, None],
+                                    'bindex4': [0.7707287669181824, 1, None, 1, None, None],
+                                    'gain1': [-6.0, 0, None, 1, None, None],
+                                    'gain2': [-6.0, 0, None, 1, None, None],
+                                    'gain3': [-6.0, 0, None, 1, None, None],
+                                    'gain4': [-6.0, 0, None, 1, None, None],
+                                    'seed': [0, 0, None, 1, None, None],
+                                    'taps': [16, 0, None, 1, None, None],
+                                    'tapsl1': [0.5, 0, None, 1, None, None],
+                                    'tapsl2': [0.5, 0, None, 1, None, None],
+                                    'tapsl3': [0.5, 0, None, 1, None, None],
+                                    'tapsl4': [0.5, 0, None, 1, None, None],
+                                    'tempo': [60.0, 0, None, 1, None, None],
+                                    'we1': [80, 0, None, 1, None, None],
+                                    'we2': [50, 0, None, 1, None, None],
+                                    'we3': [30, 0, None, 1, None, None],
+                                    'we4': [10, 0, None, 1, None, None]},
+                    'userTogglePopups': {}},
+ u'02-Drifting': {'active': False,
+                  'gainSlider': 0.0,
+                  'nchnls': 2,
+                  'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                  'totalTime': 60.00000000000003,
+                  'userGraph': {'adsr1': {'curved': False,
+                                          'data': [[0.0, 0.0],
+                                                   [0.001, 1.0],
+                                                   [0.10198392508873302, 0.3438443942637614],
+                                                   [0.32677375198362224, 0.16274670811460748],
+                                                   [1.0, 0.0]]},
+                                'adsr2': {'curved': False,
+                                          'data': [[0.0, 0.0],
+                                                   [0.005, 1.0],
+                                                   [0.11319529745248393, 0.3586527464148509],
+                                                   [0.2649937614323267, 0.16861198275609257],
+                                                   [1.0, 0.0]]},
+                                'adsr3': {'curved': False,
+                                          'data': [[0.0, 0.0],
+                                                   [0.01, 1.0],
+                                                   [0.0868541265399571, 0.34120208803777236],
+                                                   [0.32677375198362224, 0.19500571864277544],
+                                                   [1.0, 0.0]]},
+                                'adsr4': {'curved': False,
+                                          'data': [[0.0, 0.0],
+                                                   [0.015000000000000001, 1.0],
+                                                   [0.12350431854247676, 0.36774098947183204],
+                                                   [0.33404198616612757, 0.13635297222792458],
+                                                   [1.0, 0.0]]},
+                                'bindex1': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.9443092172790991]]},
+                                'bindex2': {'curved': False, 'data': [[0.0, 0], [1.0, 0.9164344995454411]]},
+                                'bindex3': {'curved': False, 'data': [[0.0, 0], [1.0, 0.8805170239596469]]},
+                                'bindex4': {'curved': False, 'data': [[0.0, 0], [1.0, 0.8438443942637615]]},
+                                'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'gain1': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'gain2': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'gain3': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'gain4': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'taps': {'curved': False, 'data': [[0.0, 0.23809523809523808], [1.0, 0.23809523809523808]]},
+                                'tapsl1': {'curved': False, 'data': [[0.0, 0.11111111111111112], [1.0, 0.11111111111111112]]},
+                                'tapsl2': {'curved': False, 'data': [[0.0, 0.11111111111111112], [1.0, 0.11111111111111112]]},
+                                'tapsl3': {'curved': False, 'data': [[0.0, 0.11111111111111112], [1.0, 0.11111111111111112]]},
+                                'tapsl4': {'curved': False, 'data': [[0.0, 0.11111111111111112], [1.0, 0.11111111111111112]]},
+                                'tempo': {'curved': False, 'data': [[0.0, 0.45454545454545453], [1.0, 0.45454545454545453]]},
+                                'we1': {'curved': False, 'data': [[0.0, 0.8], [1.0, 0.8]]},
+                                'we2': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                'we3': {'curved': False, 'data': [[0.0, 0.3], [1.0, 0.3]]},
+                                'we4': {'curved': False, 'data': [[0.0, 0.1], [1.0, 0.1]]}},
+                  'userInputs': {'snd': {'dursnd': 8.01390022675737,
+                                         'mode': 0,
+                                         'nchnlssnd': 2,
+                                         'offsnd': 0.0,
+                                         'path': u'/home/olivier/Dropbox/private/snds/cacanne4.aiff',
+                                         'srsnd': 44100.0,
+                                         'type': 'cfilein'}},
+                  'userSliders': {'bindex1': [0.011511222459375858, 1, None, 1, None, None],
+                                  'bindex2': [0.011171427555382252, 1, None, 1, None, None],
+                                  'bindex3': [0.010733588598668575, 1, None, 1, None, None],
+                                  'bindex4': [0.010286547243595123, 1, None, 1, None, None],
+                                  'gain1': [0.0, 0, None, 1, None, None],
+                                  'gain2': [0.0, 0, None, 1, None, None],
+                                  'gain3': [0.0, 0, None, 1, None, None],
+                                  'gain4': [0.0, 0, None, 1, None, None],
+                                  'seed': [0, 0, None, 1, None, None],
+                                  'taps': [16, 0, None, 1, None, None],
+                                  'tapsl1': [0.2, 0, None, 1, None, None],
+                                  'tapsl2': [0.2, 0, None, 1, None, None],
+                                  'tapsl3': [0.2, 0, None, 1, None, None],
+                                  'tapsl4': [0.2, 0, None, 1, None, None],
+                                  'tempo': [144.0, 0, None, 1, None, None],
+                                  'we1': [80, 0, None, 1, None, None],
+                                  'we2': [50, 0, None, 1, None, None],
+                                  'we3': [30, 0, None, 1, None, None],
+                                  'we4': [10, 0, None, 1, None, None]},
+                  'userTogglePopups': {}},
+ u'03-Drowning': {'active': False,
+                  'gainSlider': 0.0,
+                  'nchnls': 2,
+                  'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                  'totalTime': 60.00000000000021,
+                  'userGraph': {'adsr1': {'curved': False, 'data': [[0.0, 0.0], [0.001, 1.0], [0.125, 0.25], [1.0, 0.0]]},
+                                'adsr2': {'curved': False, 'data': [[0.0, 0.0], [0.005000000000000001, 1.0], [0.13500000000000004, 0.3], [1.0, 0.0]]},
+                                'adsr3': {'curved': False, 'data': [[0.0, 0.0], [0.010000000000000002, 1.0], [0.145, 0.35], [1.0, 0.0]]},
+                                'adsr4': {'curved': False, 'data': [[0.0, 0.0], [0.015, 1.0], [0.155, 0.4], [1.0, 0.0]]},
+                                'bindex1': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                'bindex2': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                'bindex3': {'curved': False, 'data': [[0.0, 0.25], [1.0, 0.25]]},
+                                'bindex4': {'curved': False, 'data': [[0.0, 0.75], [1.0, 0.75]]},
+                                'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'gain1': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'gain2': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'gain3': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'gain4': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                'taps': {'curved': False, 'data': [[0.0, 0.23809523809523808], [1.0, 0.23809523809523808]]},
+                                'tapsl1': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.26686999618757146]]},
+                                'tapsl2': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.5161441684506877]]},
+                                'tapsl3': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.3137921933194521]]},
+                                'tapsl4': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.5630663655825683]]},
+                                'tempo': {'curved': False, 'data': [[0.0, 0.45454545454545453], [1.0, 0.45454545454545453]]},
+                                'we1': {'curved': False, 'data': [[0.0, 0.8], [1.0, 0.8]]},
+                                'we2': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                'we3': {'curved': False, 'data': [[0.0, 0.3], [1.0, 0.3]]},
+                                'we4': {'curved': False, 'data': [[0.0, 0.1], [1.0, 0.1]]}},
+                  'userInputs': {'snd': {'dursnd': 8.01390022675737,
+                                         'mode': 0,
+                                         'nchnlssnd': 2,
+                                         'offsnd': 0.0,
+                                         'path': u'/home/olivier/Dropbox/private/snds/cacanne4.aiff',
+                                         'srsnd': 44100.0,
+                                         'type': 'cfilein'}},
+                  'userSliders': {'bindex1': [0.0, 0, None, 1, None, None],
+                                  'bindex2': [0.5, 0, None, 1, None, None],
+                                  'bindex3': [0.25, 0, None, 1, None, None],
+                                  'bindex4': [0.75, 0, None, 1, None, None],
+                                  'gain1': [0.0, 0, None, 1, None, None],
+                                  'gain2': [0.0, 0, None, 1, None, None],
+                                  'gain3': [0.0, 0, None, 1, None, None],
+                                  'gain4': [0.0, 0, None, 1, None, None],
+                                  'seed': [0, 0, None, 1, None, None],
+                                  'taps': [16, 0, None, 1, None, None],
+                                  'tapsl1': [0.27394720911979675, 1, None, 1, None, None],
+                                  'tapsl2': [0.5204913020133972, 1, None, 1, None, None],
+                                  'tapsl3': [0.32035547494888306, 1, None, 1, None, None],
+                                  'tapsl4': [0.5668995380401611, 1, None, 1, None, None],
+                                  'tempo': [120.0, 0, None, 1, None, None],
+                                  'we1': [80, 0, None, 1, None, None],
+                                  'we2': [50, 0, None, 1, None, None],
+                                  'we3': [30, 0, None, 1, None, None],
+                                  'we4': [10, 0, None, 1, None, None]},
+                  'userTogglePopups': {}},
+ u'04-Jitter Beat': {'active': False,
+                     'gainSlider': 0.0,
+                     'nchnls': 2,
+                     'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                 1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                 2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                 3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                     'totalTime': 60.00000000000021,
+                     'userGraph': {'adsr1': {'curved': False,
+                                             'data': [[0.0, 1.7639813778336233e-05],
+                                                      [0.02040816326530612, 0.003585411572428532],
+                                                      [0.04081632653061224, 0.01530429714893733],
+                                                      [0.061224489795918366, 0.034981872766124744],
+                                                      [0.08163265306122448, 0.06229503317637214],
+                                                      [0.1020408163265306, 0.09679529704085682],
+                                                      [0.12244897959183673, 0.1379161709807346],
+                                                      [0.14285714285714285, 0.18498245138276131],
+                                                      [0.16326530612244897, 0.2372213112239525],
+                                                      [0.18367346938775508, 0.2937749898699378],
+                                                      [0.2040816326530612, 0.3537148774808606],
+                                                      [0.22448979591836732, 0.4160567627592767],
+                                                      [0.24489795918367346, 0.4797769936724499],
+                                                      [0.26530612244897955, 0.5438292857904259],
+                                                      [0.2857142857142857, 0.6071619022474495],
+                                                      [0.3061224489795918, 0.6687349232322202],
+                                                      [0.32653061224489793, 0.727537321442447],
+                                                      [0.3469387755102041, 0.7826035631251976],
+                                                      [0.36734693877551017, 0.8330294621144294],
+                                                      [0.3877551020408163, 0.8779870265428389],
+                                                      [0.4081632653061224, 0.9167380544454302],
+                                                      [0.42857142857142855, 0.9486462550153731],
+                                                      [0.44897959183673464, 0.9731876964814586],
+                                                      [0.4693877551020408, 0.9899594090532988],
+                                                      [0.4897959183673469, 0.9986860016741426],
+                                                      [0.5102040816326531, 0.9992241839344156],
+                                                      [0.5306122448979591, 0.9915651188962833],
+                                                      [0.5510204081632653, 0.9758345681959248],
+                                                      [0.5714285714285714, 0.9522908270409463],
+                                                      [0.5918367346938775, 0.9213204830102102],
+                                                      [0.6122448979591836, 0.88343206829648],
+                                                      [0.6326530612244897, 0.8392477096218735],
+                                                      [0.6530612244897959, 0.7894929129342843],
+                                                      [0.673469387755102, 0.7349846506197775],
+                                                      [0.6938775510204082, 0.676617946838596],
+                                                      [0.7142857142857142, 0.6153511812531914],
+                                                      [0.7346938775510203, 0.5521903524606652],
+                                                      [0.7551020408163265, 0.4881725595236149],
+                                                      [0.7755102040816326, 0.42434897283219875],
+                                                      [0.7959183673469387, 0.36176757391539405],
+                                                      [0.8163265306122448, 0.3014559476132552],
+                                                      [0.836734693877551, 0.24440440916226025],
+                                                      [0.8571428571428571, 0.19154974324650015],
+                                                      [0.8775510204081632, 0.1437598220190649],
+                                                      [0.8979591836734693, 0.10181935466528524],
+                                                      [0.9183673469387754, 0.06641700249960347],
+                                                      [0.9387755102040816, 0.03813407116582879],
+                                                      [0.9591836734693877, 0.017434965614538556],
+                                                      [0.9795918367346939, 0.004659564586627418],
+                                                      [0.9999999999999999, 1.7639813778336233e-05]]},
+                                   'adsr2': {'curved': False,
+                                             'data': [[0.0, 1.7639813778336233e-05],
+                                                      [0.02040816326530612, 0.003585411572428532],
+                                                      [0.04081632653061224, 0.01530429714893733],
+                                                      [0.061224489795918366, 0.034981872766124744],
+                                                      [0.08163265306122448, 0.06229503317637214],
+                                                      [0.1020408163265306, 0.09679529704085682],
+                                                      [0.12244897959183673, 0.1379161709807346],
+                                                      [0.14285714285714285, 0.18498245138276131],
+                                                      [0.16326530612244897, 0.2372213112239525],
+                                                      [0.18367346938775508, 0.2937749898699378],
+                                                      [0.2040816326530612, 0.3537148774808606],
+                                                      [0.22448979591836732, 0.4160567627592767],
+                                                      [0.24489795918367346, 0.4797769936724499],
+                                                      [0.26530612244897955, 0.5438292857904259],
+                                                      [0.2857142857142857, 0.6071619022474495],
+                                                      [0.3061224489795918, 0.6687349232322202],
+                                                      [0.32653061224489793, 0.727537321442447],
+                                                      [0.3469387755102041, 0.7826035631251976],
+                                                      [0.36734693877551017, 0.8330294621144294],
+                                                      [0.3877551020408163, 0.8779870265428389],
+                                                      [0.4081632653061224, 0.9167380544454302],
+                                                      [0.42857142857142855, 0.9486462550153731],
+                                                      [0.44897959183673464, 0.9731876964814586],
+                                                      [0.4693877551020408, 0.9899594090532988],
+                                                      [0.4897959183673469, 0.9986860016741426],
+                                                      [0.5102040816326531, 0.9992241839344156],
+                                                      [0.5306122448979591, 0.9915651188962833],
+                                                      [0.5510204081632653, 0.9758345681959248],
+                                                      [0.5714285714285714, 0.9522908270409463],
+                                                      [0.5918367346938775, 0.9213204830102102],
+                                                      [0.6122448979591836, 0.88343206829648],
+                                                      [0.6326530612244897, 0.8392477096218735],
+                                                      [0.6530612244897959, 0.7894929129342843],
+                                                      [0.673469387755102, 0.7349846506197775],
+                                                      [0.6938775510204082, 0.676617946838596],
+                                                      [0.7142857142857142, 0.6153511812531914],
+                                                      [0.7346938775510203, 0.5521903524606652],
+                                                      [0.7551020408163265, 0.4881725595236149],
+                                                      [0.7755102040816326, 0.42434897283219875],
+                                                      [0.7959183673469387, 0.36176757391539405],
+                                                      [0.8163265306122448, 0.3014559476132552],
+                                                      [0.836734693877551, 0.24440440916226025],
+                                                      [0.8571428571428571, 0.19154974324650015],
+                                                      [0.8775510204081632, 0.1437598220190649],
+                                                      [0.8979591836734693, 0.10181935466528524],
+                                                      [0.9183673469387754, 0.06641700249960347],
+                                                      [0.9387755102040816, 0.03813407116582879],
+                                                      [0.9591836734693877, 0.017434965614538556],
+                                                      [0.9795918367346939, 0.004659564586627418],
+                                                      [0.9999999999999999, 1.7639813778336233e-05]]},
+                                   'adsr3': {'curved': False,
+                                             'data': [[0.0, 1.7639813778336233e-05],
+                                                      [0.02040816326530612, 0.003585411572428532],
+                                                      [0.04081632653061224, 0.01530429714893733],
+                                                      [0.061224489795918366, 0.034981872766124744],
+                                                      [0.08163265306122448, 0.06229503317637214],
+                                                      [0.1020408163265306, 0.09679529704085682],
+                                                      [0.12244897959183673, 0.1379161709807346],
+                                                      [0.14285714285714285, 0.18498245138276131],
+                                                      [0.16326530612244897, 0.2372213112239525],
+                                                      [0.18367346938775508, 0.2937749898699378],
+                                                      [0.2040816326530612, 0.3537148774808606],
+                                                      [0.22448979591836732, 0.4160567627592767],
+                                                      [0.24489795918367346, 0.4797769936724499],
+                                                      [0.26530612244897955, 0.5438292857904259],
+                                                      [0.2857142857142857, 0.6071619022474495],
+                                                      [0.3061224489795918, 0.6687349232322202],
+                                                      [0.32653061224489793, 0.727537321442447],
+                                                      [0.3469387755102041, 0.7826035631251976],
+                                                      [0.36734693877551017, 0.8330294621144294],
+                                                      [0.3877551020408163, 0.8779870265428389],
+                                                      [0.4081632653061224, 0.9167380544454302],
+                                                      [0.42857142857142855, 0.9486462550153731],
+                                                      [0.44897959183673464, 0.9731876964814586],
+                                                      [0.4693877551020408, 0.9899594090532988],
+                                                      [0.4897959183673469, 0.9986860016741426],
+                                                      [0.5102040816326531, 0.9992241839344156],
+                                                      [0.5306122448979591, 0.9915651188962833],
+                                                      [0.5510204081632653, 0.9758345681959248],
+                                                      [0.5714285714285714, 0.9522908270409463],
+                                                      [0.5918367346938775, 0.9213204830102102],
+                                                      [0.6122448979591836, 0.88343206829648],
+                                                      [0.6326530612244897, 0.8392477096218735],
+                                                      [0.6530612244897959, 0.7894929129342843],
+                                                      [0.673469387755102, 0.7349846506197775],
+                                                      [0.6938775510204082, 0.676617946838596],
+                                                      [0.7142857142857142, 0.6153511812531914],
+                                                      [0.7346938775510203, 0.5521903524606652],
+                                                      [0.7551020408163265, 0.4881725595236149],
+                                                      [0.7755102040816326, 0.42434897283219875],
+                                                      [0.7959183673469387, 0.36176757391539405],
+                                                      [0.8163265306122448, 0.3014559476132552],
+                                                      [0.836734693877551, 0.24440440916226025],
+                                                      [0.8571428571428571, 0.19154974324650015],
+                                                      [0.8775510204081632, 0.1437598220190649],
+                                                      [0.8979591836734693, 0.10181935466528524],
+                                                      [0.9183673469387754, 0.06641700249960347],
+                                                      [0.9387755102040816, 0.03813407116582879],
+                                                      [0.9591836734693877, 0.017434965614538556],
+                                                      [0.9795918367346939, 0.004659564586627418],
+                                                      [0.9999999999999999, 1.7639813778336233e-05]]},
+                                   'adsr4': {'curved': False,
+                                             'data': [[0.0, 1.7639813778336233e-05],
+                                                      [0.02040816326530612, 0.003585411572428532],
+                                                      [0.04081632653061224, 0.01530429714893733],
+                                                      [0.061224489795918366, 0.034981872766124744],
+                                                      [0.08163265306122448, 0.06229503317637214],
+                                                      [0.1020408163265306, 0.09679529704085682],
+                                                      [0.12244897959183673, 0.1379161709807346],
+                                                      [0.14285714285714285, 0.18498245138276131],
+                                                      [0.16326530612244897, 0.2372213112239525],
+                                                      [0.18367346938775508, 0.2937749898699378],
+                                                      [0.2040816326530612, 0.3537148774808606],
+                                                      [0.22448979591836732, 0.4160567627592767],
+                                                      [0.24489795918367346, 0.4797769936724499],
+                                                      [0.26530612244897955, 0.5438292857904259],
+                                                      [0.2857142857142857, 0.6071619022474495],
+                                                      [0.3061224489795918, 0.6687349232322202],
+                                                      [0.32653061224489793, 0.727537321442447],
+                                                      [0.3469387755102041, 0.7826035631251976],
+                                                      [0.36734693877551017, 0.8330294621144294],
+                                                      [0.3877551020408163, 0.8779870265428389],
+                                                      [0.4081632653061224, 0.9167380544454302],
+                                                      [0.42857142857142855, 0.9486462550153731],
+                                                      [0.44897959183673464, 0.9731876964814586],
+                                                      [0.4693877551020408, 0.9899594090532988],
+                                                      [0.4897959183673469, 0.9986860016741426],
+                                                      [0.5102040816326531, 0.9992241839344156],
+                                                      [0.5306122448979591, 0.9915651188962833],
+                                                      [0.5510204081632653, 0.9758345681959248],
+                                                      [0.5714285714285714, 0.9522908270409463],
+                                                      [0.5918367346938775, 0.9213204830102102],
+                                                      [0.6122448979591836, 0.88343206829648],
+                                                      [0.6326530612244897, 0.8392477096218735],
+                                                      [0.6530612244897959, 0.7894929129342843],
+                                                      [0.673469387755102, 0.7349846506197775],
+                                                      [0.6938775510204082, 0.676617946838596],
+                                                      [0.7142857142857142, 0.6153511812531914],
+                                                      [0.7346938775510203, 0.5521903524606652],
+                                                      [0.7551020408163265, 0.4881725595236149],
+                                                      [0.7755102040816326, 0.42434897283219875],
+                                                      [0.7959183673469387, 0.36176757391539405],
+                                                      [0.8163265306122448, 0.3014559476132552],
+                                                      [0.836734693877551, 0.24440440916226025],
+                                                      [0.8571428571428571, 0.19154974324650015],
+                                                      [0.8775510204081632, 0.1437598220190649],
+                                                      [0.8979591836734693, 0.10181935466528524],
+                                                      [0.9183673469387754, 0.06641700249960347],
+                                                      [0.9387755102040816, 0.03813407116582879],
+                                                      [0.9591836734693877, 0.017434965614538556],
+                                                      [0.9795918367346939, 0.004659564586627418],
+                                                      [0.9999999999999999, 1.7639813778336233e-05]]},
+                                   'bindex1': {'curved': False,
+                                               'data': [[0.0, 0.0655856163095758],
+                                                        [0.049849268084137734, 0.08764595352329757],
+                                                        [0.09994550651222155, 0.0782558183013758],
+                                                        [0.15019126555616719, 0.08121086704397158],
+                                                        [0.20000269388649175, 0.08543762214827982],
+                                                        [0.2502036873630062, 0.1054554718466715],
+                                                        [0.30010635151290566, 0.1395202860015734],
+                                                        [0.3501129019049209, 0.09256463315277721],
+                                                        [0.39992401431035174, 0.12638363592110546],
+                                                        [0.4498912704453945, 0.13105036330155226],
+                                                        [0.5002313639693879, 0.07695488665721692],
+                                                        [0.5499540781262839, 0.10608564922195482],
+                                                        [0.6002175532252845, 0.08979053344323429],
+                                                        [0.6500318726834987, 0.10546081660372095],
+                                                        [0.7001965732418489, 0.11025892452455632],
+                                                        [0.7500774864427656, 0.07271621601123869],
+                                                        [0.7998753632490293, 0.05651808427295353],
+                                                        [0.8501857133002337, 0.06713985258151642],
+                                                        [0.89989452290159, 0.14146574891841368],
+                                                        [0.9499344358318365, 0.1291349277883772],
+                                                        [1.0, 0.09970966890524648]]},
+                                   'bindex2': {'curved': False,
+                                               'data': [[0.0, 0.5099897229938816],
+                                                        [0.04996603727822526, 0.5081684337745848],
+                                                        [0.10017252405260153, 0.46489439580206043],
+                                                        [0.14975189464597888, 0.5178273782493047],
+                                                        [0.20010845033308877, 0.5266069829699497],
+                                                        [0.25013937274432746, 0.47457294937294925],
+                                                        [0.30021785426977915, 0.47040491565962556],
+                                                        [0.3502413255293974, 0.4508089839200635],
+                                                        [0.4000521719862294, 0.5300576664765358],
+                                                        [0.44982645670242627, 0.533452781885513],
+                                                        [0.4999300361283138, 0.533902822290945],
+                                                        [0.5499713418064782, 0.5495843008898731],
+                                                        [0.5997583587466226, 0.5086986420923828],
+                                                        [0.6497673989925385, 0.5460767284621748],
+                                                        [0.7002459790874102, 0.4635914270097151],
+                                                        [0.7499049315997953, 0.5238520264314757],
+                                                        [0.7998868281948948, 0.48613956074694153],
+                                                        [0.8499809907612629, 0.5331173192644916],
+                                                        [0.899770303895594, 0.5091543813019195],
+                                                        [0.9498912452642326, 0.5474247749364843],
+                                                        [1.0, 0.5]]},
+                                   'bindex3': {'curved': False,
+                                               'data': [[0.0, 0.2780746201663172],
+                                                        [0.049990746519527764, 0.2512310351377277],
+                                                        [0.09997365335122957, 0.20531044955216515],
+                                                        [0.15008464969034366, 0.2620860649903713],
+                                                        [0.19980153372870146, 0.2357011719988404],
+                                                        [0.249754580406595, 0.28155107777695193],
+                                                        [0.3001093349199709, 0.2185130622103538],
+                                                        [0.35003588690060566, 0.26750967110389173],
+                                                        [0.3999453608420385, 0.2754193835191563],
+                                                        [0.4497924169152268, 0.24178832767370492],
+                                                        [0.4999961143108104, 0.2554512077365225],
+                                                        [0.55001132741517, 0.24130361175514595],
+                                                        [0.5997846792514355, 0.2757319340190352],
+                                                        [0.6498539082453999, 0.23285160445274763],
+                                                        [0.699995094915718, 0.2237962313249453],
+                                                        [0.7501492695264209, 0.27996297286355776],
+                                                        [0.7997582686580728, 0.2628208298447743],
+                                                        [0.8499354452517928, 0.23619997571758702],
+                                                        [0.9000405406695783, 0.23285996677480192],
+                                                        [0.9502055625602865, 0.2720032747576131],
+                                                        [1.0, 0.25]]},
+                                   'bindex4': {'curved': False,
+                                               'data': [[0.0, 0.730996748410155],
+                                                        [0.04975627837706991, 0.7734259709676562],
+                                                        [0.10013371198802229, 0.7406874878889675],
+                                                        [0.14998704030772814, 0.7542223943429202],
+                                                        [0.20024568950377064, 0.7638634397542877],
+                                                        [0.2502407765514188, 0.7284626903538547],
+                                                        [0.3001914696722997, 0.796561632501295],
+                                                        [0.3502034536188805, 0.7349516646007942],
+                                                        [0.4001871160486896, 0.7904639964996435],
+                                                        [0.45002335021167766, 0.7299384528204804],
+                                                        [0.4998203595748374, 0.7740683007286242],
+                                                        [0.5498858583509536, 0.7833603474831785],
+                                                        [0.5998430123297496, 0.7245834530233471],
+                                                        [0.6501661483179657, 0.735500838267642],
+                                                        [0.700158877854193, 0.7213747888301784],
+                                                        [0.7499579794960591, 0.781791806111233],
+                                                        [0.7998761199102733, 0.7920790592970448],
+                                                        [0.8498310875629286, 0.753270350100027],
+                                                        [0.9001893961730983, 0.7087846343222333],
+                                                        [0.9499132105477103, 0.7179819738697791],
+                                                        [1.0, 0.75]]},
+                                   'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                   'gain1': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                   'gain2': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                   'gain3': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                   'gain4': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                   'taps': {'curved': False, 'data': [[0.0, 0.23809523809523808], [1.0, 0.23809523809523808]]},
+                                   'tapsl1': {'curved': False, 'data': [[0.0, 0.19191919191919193], [1.0, 0.19191919191919193]]},
+                                   'tapsl2': {'curved': False, 'data': [[0.0, 0.19191919191919193], [1.0, 0.19191919191919193]]},
+                                   'tapsl3': {'curved': False, 'data': [[0.0, 0.19191919191919193], [1.0, 0.19191919191919193]]},
+                                   'tapsl4': {'curved': False, 'data': [[0.0, 0.19191919191919193], [1.0, 0.19191919191919193]]},
+                                   'tempo': {'curved': False, 'data': [[0.0, 0.45454545454545453], [1.0, 0.45454545454545453]]},
+                                   'we1': {'curved': False, 'data': [[0.0, 0.8], [1.0, 0.8]]},
+                                   'we2': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                   'we3': {'curved': False, 'data': [[0.0, 0.3], [1.0, 0.3]]},
+                                   'we4': {'curved': False, 'data': [[0.0, 0.1], [1.0, 0.1]]}},
+                     'userInputs': {'snd': {'dursnd': 5.466417233560091,
+                                            'mode': 0,
+                                            'nchnlssnd': 1,
+                                            'offsnd': 0.0,
+                                            'path': u'/home/olivier/Dropbox/private/snds/flute.wav',
+                                            'srsnd': 44100.0,
+                                            'type': 'cfilein'}},
+                     'userSliders': {'bindex1': [0.06484830379486084, 1, None, 1, None, None],
+                                     'bindex2': [0.5054865479469299, 1, None, 1, None, None],
+                                     'bindex3': [0.2716377377510071, 1, None, 1, None, None],
+                                     'bindex4': [0.7868015766143799, 1, None, 1, None, None],
+                                     'gain1': [-3.0, 0, None, 1, None, None],
+                                     'gain2': [-3.0, 0, None, 1, None, None],
+                                     'gain3': [-3.0, 0, None, 1, None, None],
+                                     'gain4': [-3.0, 0, None, 1, None, None],
+                                     'seed': [0, 0, None, 1, None, None],
+                                     'taps': [32, 0, None, 1, None, None],
+                                     'tapsl1': [0.1, 0, None, 1, None, None],
+                                     'tapsl2': [0.1, 0, None, 1, None, None],
+                                     'tapsl3': [0.1, 0, None, 1, None, None],
+                                     'tapsl4': [0.1, 0, None, 1, None, None],
+                                     'tempo': [144.0, 0, None, 1, None, None],
+                                     'we1': [50, 0, None, 1, None, None],
+                                     'we2': [50, 0, None, 1, None, None],
+                                     'we3': [50, 0, None, 1, None, None],
+                                     'we4': [50, 0, None, 1, None, None]},
+                     'userTogglePopups': {}},
+ u'05-Deconstruct': {'gainSlider': 0.0,
+                     'nchnls': 2,
+                     'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                 1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                 2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                 3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                     'totalTime': 60.00000000000021,
+                     'userGraph': {'adsr1': {'curved': False, 'data': [[0.0, 0.0], [0.001, 1.0], [0.125, 0.25], [1.0, 0.0]]},
+                                   'adsr2': {'curved': False, 'data': [[0.0, 0.0], [0.005000000000000001, 1.0], [0.13500000000000004, 0.3], [1.0, 0.0]]},
+                                   'adsr3': {'curved': False, 'data': [[0.0, 0.0], [0.010000000000000002, 1.0], [0.145, 0.35], [1.0, 0.0]]},
+                                   'adsr4': {'curved': False, 'data': [[0.0, 0.0], [0.015, 1.0], [0.155, 0.4], [1.0, 0.0]]},
+                                   'bindex1': {'curved': False,
+                                               'data': [[0.0, 0.1314282615165136],
+                                                        [0.10043355805743237, 0.16113635699759982],
+                                                        [0.2004617680138745, 0.12654017930037115],
+                                                        [0.3001939616580241, 0.17592642560060542],
+                                                        [0.3999539238151323, 0.18158652428724079],
+                                                        [0.5002288511489071, 0.23289441738974798],
+                                                        [0.600242622518738, 0.11097733940334521],
+                                                        [0.7003592500702799, 0.22151456201168671],
+                                                        [0.7997505658074456, 0.13128517620923205],
+                                                        [0.9004551045479713, 0.11592276645903236],
+                                                        [1.0, 0.17772807801767532]]},
+                                   'bindex2': {'curved': False,
+                                               'data': [[0.0, 0.5650630283444831],
+                                                        [0.09990311426650011, 0.4384057288421802],
+                                                        [0.19984091846059446, 0.5320032701637942],
+                                                        [0.30004317729082347, 0.5622583211064505],
+                                                        [0.39971789366844424, 0.5368076367552883],
+                                                        [0.5003909591150081, 0.5015549753284466],
+                                                        [0.5997294827206316, 0.5140058090583562],
+                                                        [0.6999289619096432, 0.4736825289602592],
+                                                        [0.7995941720808241, 0.4628142952628314],
+                                                        [0.900343379162427, 0.4972290116271719],
+                                                        [1.0, 0.4992368734189341]]},
+                                   'bindex3': {'curved': False,
+                                               'data': [[0.0, 0.27190390260690545],
+                                                        [0.09982305627992327, 0.2109449398668881],
+                                                        [0.19994873567706145, 0.21197210522148524],
+                                                        [0.29974673606993857, 0.2522943516043372],
+                                                        [0.39974079253635164, 0.22745336252052883],
+                                                        [0.49968513328105535, 0.1972397568739916],
+                                                        [0.6002116081038971, 0.18797689691668162],
+                                                        [0.7001298892551472, 0.2744726037470583],
+                                                        [0.7999235374100713, 0.2914970010615491],
+                                                        [0.9003354387885956, 0.2316589045233133],
+                                                        [1.0, 0.25451574244478925]]},
+                                   'bindex4': {'curved': False,
+                                               'data': [[0.0, 0.8007279859964139],
+                                                        [0.10041309744032723, 0.7297950688424868],
+                                                        [0.20013969307821944, 0.7241216091617073],
+                                                        [0.29962336199522394, 0.7554918714756098],
+                                                        [0.39994739008780683, 0.756710300959959],
+                                                        [0.49981052905624396, 0.709200354010572],
+                                                        [0.6001849229388864, 0.789568658303079],
+                                                        [0.700317134284277, 0.8128859307000594],
+                                                        [0.8001407860753059, 0.7761530442626434],
+                                                        [0.9000496987998745, 0.7975990496557548],
+                                                        [1.0, 0.7451410173636611]]},
+                                   'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                   'gain1': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                   'gain2': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                   'gain3': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                   'gain4': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                   'taps': {'curved': False, 'data': [[0.0, 0.23809523809523808], [1.0, 0.23809523809523808]]},
+                                   'tapsl1': {'curved': False, 'data': [[0.0, 0.19191919191919193], [1.0, 0.19191919191919193]]},
+                                   'tapsl2': {'curved': False, 'data': [[0.0, 0.19191919191919193], [1.0, 0.19191919191919193]]},
+                                   'tapsl3': {'curved': False, 'data': [[0.0, 0.19191919191919193], [1.0, 0.19191919191919193]]},
+                                   'tapsl4': {'curved': False, 'data': [[0.0, 0.19191919191919193], [1.0, 0.19191919191919193]]},
+                                   'tempo': {'curved': False, 'data': [[0.0, 0.45454545454545453], [1.0, 0.45454545454545453]]},
+                                   'we1': {'curved': False, 'data': [[0.0, 1], [0.12264610290805954, 1], [1.0, 0.10496495498401714]]},
+                                   'we2': {'curved': False, 'data': [[0.0, 1], [0.12264610290805954, 1], [0.798231305766211, 0], [1.0, 0]]},
+                                   'we3': {'curved': False, 'data': [[0.0, 1], [0.12264610290805954, 1], [1.0, 0.3982286870582715]]},
+                                   'we4': {'curved': False, 'data': [[0.0, 1], [0.12264610290805954, 1], [1.0, 0.6005806621895071]]}},
+                     'userInputs': {'snd': {'dursnd': 252.65709750566893,
+                                            'mode': 0,
+                                            'nchnlssnd': 2,
+                                            'offsnd': 0.0,
+                                            'path': u'/home/olivier/Dropbox/private/snds/feedback.aif',
+                                            'srsnd': 44100.0,
+                                            'type': 'cfilein'}},
+                     'userSliders': {'bindex1': [0.17554381489753723, 1, None, 1, None, None],
+                                     'bindex2': [0.49998655915260315, 1, None, 1, None, None],
+                                     'bindex3': [0.2498469203710556, 1, None, 1, None, None],
+                                     'bindex4': [0.7503504753112793, 1, None, 1, None, None],
+                                     'gain1': [0.0, 0, None, 1, None, None],
+                                     'gain2': [0.0, 0, None, 1, None, None],
+                                     'gain3': [0.0, 0, None, 1, None, None],
+                                     'gain4': [0.0, 0, None, 1, None, None],
+                                     'seed': [0, 0, None, 1, None, None],
+                                     'taps': [16, 0, None, 1, None, None],
+                                     'tapsl1': [0.2, 0, None, 1, None, None],
+                                     'tapsl2': [0.2, 0, None, 1, None, None],
+                                     'tapsl3': [0.2, 0, None, 1, None, None],
+                                     'tapsl4': [0.2, 0, None, 1, None, None],
+                                     'tempo': [120.0, 0, None, 1, None, None],
+                                     'we1': [10, 1, None, 1, None, None],
+                                     'we2': [0, 1, None, 1, None, None],
+                                     'we3': [39, 1, None, 1, None, None],
+                                     'we4': [60, 1, None, 1, None, None]},
+                     'userTogglePopups': {}}}
diff --git a/Resources/modules/Time/DelayMod.c5 b/Resources/modules/Time/DelayMod.c5
index fe6ba39..0edd4bd 100644
--- a/Resources/modules/Time/DelayMod.c5
+++ b/Resources/modules/Time/DelayMod.c5
@@ -1,55 +1,850 @@
 class Module(BaseModule):
     """
-    Stereo delay module with jitter control
+    "Stereo delay module with LFO on delay times"
+
+    Description
+    
+    A stereo delay whose delay times are modulated with LFO of different shapes.
+
+    Sliders
     
-    Sliders under the graph:
+        # Delay Time L : 
+            Delay time of the left channel delay
+        # Delay Time R : 
+            Delay time of the right channel delay
+        # LFO Depth L : 
+            Amplitude of the LFO applied on left channel delay time
+        # LFO Depth R : 
+            Amplitude of the LFO applied on right channel delay time
+        # LFO Freq L : 
+            Frequency of the LFO applied on left channel delay time
+        # LFO Freq R : 
+            Frequency of the LFO applied on right channel delay time
+        # Gain Delay L : 
+            Amplitude of the left channel delay
+        # Gain Delay R : 
+            Amplitude of the right channel delay
+        # Feedback : 
+            Amount of delayed signal fed back in the delay chain
+        # LFO Sharpness : 
+            Sharper waveform results in more harmonics in the LFO spectrum.
+        # Dry / Wet : 
+            Mix between the original signal and the delayed signals
     
-        - Delay Left : Delay time of first delay
-        - Delay Right : Delay time of second delay
-        - AmpModDepth Left : Range of the amplitude jitter for the first delay
-        - AmpModDepth Right : Range of the amplitude jitter for the second delay
-        - AmpModFreq Left : Speed of the amplitude jitter for the first delay
-        - AmpModFreq Right : Speed of the amplitude jitter for the second delay
-        - DelayModDepth Left : Range of the delay time jitter for the first delay
-        - DelayModDepth Right : Range of the delay time jitter for the second delay
-        - DelayModFreq Left : Speed of the delay time jitter for the first delay
-        - DelayModFreq Right : Speed of the delay time jitter for the second delay
-        - Feedback : Amount of delayed signal fed back in the delay chain
-        - Dry / Wet : Mix between the original signal and the delayed signals
+    Graph Only
     
-    Dropdown menus, toggles and sliders on the bottom left:
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
 
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
+    Popups & Toggles
+
+        # LFO Waveform L : 
+            Shape of the LFO waveform applied on left channel delay
+        # LFO Waveform R : 
+            Shape of the LFO waveform applied on right channel delay
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
         
-    Graph only parameters :
-    
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
     """
     def __init__(self):
         BaseModule.__init__(self)
-        ### Amplitude and Delay modulations are not correctly handled...
         self.snd = self.addSampler("snd")
-        self.jitl = Randi(min=1-self.jitampl, max=1+self.jitampl, freq=self.jitampspeedl)
-        self.jitr = Randi(min=1-self.jitampr, max=1+self.jitampr, freq=self.jitampspeedr)
-        self.jittl = Randi(min=1-self.jittimel, max=1+self.jittimel, freq=self.jittimespeedl)
-        self.jittr = Randi(min=1-self.jittimer, max=1+self.jittimer, freq=self.jittimespeedr)
-        self.delay = Delay(self.snd, delay=[self.dell*self.jittl,self.delr*self.jittr], feedback=self.fb, maxdelay=15, mul=[self.jitl,self.jitr])
+        self.lfol = LFO(self.speedl, sharp=self.sharp, mul=self.depthl, type=self.wavel_index, add=1)
+        self.lfor = LFO(self.speedr, sharp=self.sharp, mul=self.depthr, type=self.waver_index, add=1)
+        self.ampl = DBToA(self.gainl)
+        self.ampr = DBToA(self.gainr)
+        self.delay = Delay(self.snd, delay=[self.dell*self.lfol,self.delr*self.lfor], feedback=self.fb, maxdelay=20, mul=[self.ampl, self.ampr])
         self.out = Interp(self.snd, self.delay, self.drywet, mul=self.env*0.5)
 
+    def wavel(self, index, value):
+        self.lfol.type = index
+
+    def waver(self, index, value):
+        self.lfor.type = index
+
 Interface = [   csampler(name="snd", label="Audio"),
-                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
-                cslider(name="dell", label="Delay Left", min=0.0001, max=15, init=0.5, gliss=0.1, rel="log", unit="sec", half=True, col="green"),
-                cslider(name="delr", label="Delay Right", min=0.0001, max=15, init=1, gliss=0.1, rel="log", unit="sec", half=True, col="green"),
-                cslider(name="jitampl", label="AmpModDepth L", min=0.001, max=1, init=0.5, rel="log", unit="x", half=True, col="blue"),
-                cslider(name="jitampr", label="AmpModDepth R", min=0.001, max=1, init=0.5, rel="log", unit="x", half=True, col="red2"),
-                cslider(name="jitampspeedl", label="AmpModFreq L", min=0.001, max=200, init=1, rel="log", unit="Hz", half=True, col="blue"),
-                cslider(name="jitampspeedr", label="AmpModFreq R", min=0.001, max=200, init=1.1, rel="log", unit="Hz", half=True, col="red2"),
-                cslider(name="jittimel", label="DelModDepth L", min=0.001, max=1, init=0.5, rel="log", unit="x", half=True, col="blue3"),
-                cslider(name="jittimer", label="DelModDepth R", min=0.001, max=1, init=0.5, rel="log", unit="x", half=True, col="red4"),
-                cslider(name="jittimespeedl", label="DelModFreq L", min=0.001, max=200, init=1, rel="log", unit="Hz", half=True, col="blue3"),
-                cslider(name="jittimespeedr", label="DelModFreq R", min=0.001, max=200, init=1.1, rel="log", unit="Hz", half=True, col="red4"),
-                cslider(name="fb", label="Feedback", min=0, max=0.999, init=0.8, rel="lin", unit="x", col="forestgreen"),
-                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", unit="x", col="blue"),
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
+                cslider(name="dell", label="Delay Time L", min=0.0001, max=10, init=0.15, gliss=0.1, rel="log", unit="sec", half=True, col="purple1"),
+                cslider(name="delr", label="Delay Time R", min=0.0001, max=10, init=0.25, gliss=0.1, rel="log", unit="sec", half=True, col="red1"),
+                cslider(name="depthl", label="LFO Depth L", min=0.001, max=0.5, init=0.05, rel="log", unit="x", half=True, col="purple2"),
+                cslider(name="depthr", label="LFO Depth R", min=0.001, max=0.5, init=0.05, rel="log", unit="x", half=True, col="red2"),
+                cslider(name="speedl", label="LFO Freq L", min=0.001, max=200, init=1, rel="log", unit="Hz", half=True, col="purple3"),
+                cslider(name="speedr", label="LFO Freq R", min=0.001, max=200, init=1.1, rel="log", unit="Hz", half=True, col="red3"),
+                cslider(name="gainl", label="Gain Delay L", min=-48, max=18, init=0, rel="lin", unit="dB", half=True, col="purple4"),
+                cslider(name="gainr", label="Gain Delay R", min=-48, max=18, init=0, rel="lin", unit="dB", half=True, col="red4"),
+                cslider(name="fb", label="Feedback", min=0, max=0.999, init=0.5, rel="lin", unit="x", col="green1"),
+                cslider(name="sharp", label="LFO Sharpness", min=0, max=1, init=0.5, rel="lin", unit="x", col="green2"),
+                cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=0.7, rel="lin", unit="x", col="blue1"),
+                cpopup(name="wavel", label="LFO Waveform L", init="Saw Up", col="purple2", value=["Saw Up", "Saw Down", "Square", 
+                            "Triangle", "Pulse", "Bipolar Pulse", "Sample&Hold", "Mod Sine"]),
+                cpopup(name="waver", label="LFO Waveform R", init="Saw Up", col="red2", value=["Saw Up", "Saw Down", "Square", 
+                            "Triangle", "Pulse", "Bipolar Pulse", "Sample&Hold", "Mod Sine"]),
                 cpoly()
           ]
+
+
+####################################
+##### Cecilia reserved section #####
+#### Presets saved from the app ####
+####################################
+
+
+CECILIA_PRESETS = {u'01-Crying': {'active': False,
+                'gainSlider': 0.0,
+                'nchnls': 2,
+                'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                            1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                            2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                            3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                'totalTime': 60.00000000000003,
+                'userGraph': {'dell': {'curved': False, 'data': [[0.0, 0.6352182518111362], [1.0, 0.6352182518111362]]},
+                              'delr': {'curved': False, 'data': [[0.0, 0.6795880017344075], [1.0, 0.6795880017344075]]},
+                              'depthl': {'curved': False, 'data': [[0.0, 0.6294882868674145], [1.0, 0.6294882868674145]]},
+                              'depthr': {'curved': False, 'data': [[0.0, 0.6294882868674145], [1.0, 0.6294882868674145]]},
+                              'drywet': {'curved': False, 'data': [[0.0, 0.7], [1.0, 0.7]]},
+                              'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                              'fb': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                              'gainl': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                              'gainr': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                              'sharp': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                              'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                              'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                              'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                              'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                              'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                              'speedl': {'curved': False, 'data': [[0.0, 0.5659277541258724], [1.0, 0.5659277541258724]]},
+                              'speedr': {'curved': False, 'data': [[0.0, 0.5737361772421502], [1.0, 0.5737361772421502]]}},
+                'userInputs': {'snd': {'dursnd': 5.466417233560091,
+                                       'gain': [0.0, False, False, False, None, 1, None, None],
+                                       'loopIn': [0.0, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                       'loopMode': 1,
+                                       'loopOut': [5.466417233560091, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                       'loopX': [1.0, False, False, False, None, 1, None, None],
+                                       'mode': 0,
+                                       'nchnlssnd': 1,
+                                       'offsnd': 0.0,
+                                       'path': u'/home/olivier/Dropbox/private/snds/flute.wav',
+                                       'srsnd': 44100.0,
+                                       'startFromLoop': 0,
+                                       'transp': [0.0, False, False, False, None, 1, None, None],
+                                       'type': 'csampler'}},
+                'userSliders': {'dell': [0.015000000000000003, 0, None, 1, None, None],
+                                'delr': [0.01, 0, None, 1, None, None],
+                                'depthl': [0.049999999999999996, 0, None, 1, None, None],
+                                'depthr': [0.049999999999999996, 0, None, 1, None, None],
+                                'drywet': [0.7, 0, None, 1, None, None],
+                                'fb': [0.6, 0, None, 1, None, None],
+                                'gainl': [-3.0, 0, None, 1, None, None],
+                                'gainr': [-3.0, 0, None, 1, None, None],
+                                'sharp': [0.0, 0, None, 1, None, None],
+                                'speedl': [2.5999999999999934, 0, None, 1, None, None],
+                                'speedr': [3.0000000000000013, 0, None, 1, None, None]},
+                'userTogglePopups': {'poly': 0, 'polynum': 0, 'wavel': 7, 'waver': 7}},
+ u'02-Metal Drop': {'active': False,
+                    'gainSlider': 0.0,
+                    'nchnls': 2,
+                    'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                    'totalTime': 60.00000000000003,
+                    'userGraph': {'dell': {'curved': False, 'data': [[0.0, 0.6352182518111362], [1.0, 0.6352182518111362]]},
+                                  'delr': {'curved': False, 'data': [[0.0, 0.6795880017344075], [1.0, 0.6795880017344075]]},
+                                  'depthl': {'curved': False, 'data': [[0.0, 0.6294882868674145], [1.0, 0.6294882868674145]]},
+                                  'depthr': {'curved': False, 'data': [[0.0, 0.6294882868674145], [1.0, 0.6294882868674145]]},
+                                  'drywet': {'curved': False, 'data': [[0.0, 0.7], [1.0, 0.7]]},
+                                  'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                  'fb': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                                  'gainl': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                  'gainr': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                  'sharp': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                  'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                  'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                  'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                  'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                  'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                                  'speedl': {'curved': False, 'data': [[0.0, 0.5659277541258724], [1.0, 0.5659277541258724]]},
+                                  'speedr': {'curved': False, 'data': [[0.0, 0.5737361772421502], [1.0, 0.5737361772421502]]}},
+                    'userInputs': {'snd': {'dursnd': 5.466417233560091,
+                                           'gain': [0.0, False, False, False, None, 1, None, None],
+                                           'loopIn': [0.0, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                           'loopMode': 1,
+                                           'loopOut': [5.466417233560091, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                           'loopX': [1.0, False, False, False, None, 1, None, None],
+                                           'mode': 0,
+                                           'nchnlssnd': 1,
+                                           'offsnd': 0.0,
+                                           'path': u'/home/olivier/Dropbox/private/snds/flute.wav',
+                                           'srsnd': 44100.0,
+                                           'startFromLoop': 0,
+                                           'transp': [0.0, False, False, False, None, 1, None, None],
+                                           'type': 'csampler'}},
+                    'userSliders': {'dell': [0.02999999999999998, 0, None, 1, None, None],
+                                    'delr': [0.02999999999999998, 0, None, 1, None, None],
+                                    'depthl': [0.24999999999999994, 0, None, 1, None, None],
+                                    'depthr': [0.24999999999999994, 0, None, 1, None, None],
+                                    'drywet': [1.0, 0, None, 1, None, None],
+                                    'fb': [0.7, 0, None, 1, None, None],
+                                    'gainl': [-6.0, 0, None, 1, None, None],
+                                    'gainr': [-6.0, 0, None, 1, None, None],
+                                    'sharp': [1.0, 0, None, 1, None, None],
+                                    'speedl': [2.000000000000002, 0, None, 1, None, None],
+                                    'speedr': [1.5000000000000004, 0, None, 1, None, None]},
+                    'userTogglePopups': {'poly': 0, 'polynum': 0, 'wavel': 4, 'waver': 4}},
+ u'03-Crumble': {'active': False,
+                 'gainSlider': 0.0,
+                 'nchnls': 2,
+                 'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                             1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                             2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                             3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                 'totalTime': 60.00000000000009,
+                 'userGraph': {'dell': {'curved': False, 'data': [[0.0, 0.6352182518111362], [1.0, 0.6352182518111362]]},
+                               'delr': {'curved': False, 'data': [[0.0, 0.6795880017344075], [1.0, 0.6795880017344075]]},
+                               'depthl': {'curved': False, 'data': [[0.0, 0.6294882868674145], [1.0, 0.6294882868674145]]},
+                               'depthr': {'curved': False, 'data': [[0.0, 0.6294882868674145], [1.0, 0.6294882868674145]]},
+                               'drywet': {'curved': False, 'data': [[0.0, 0.7], [1.0, 0.7]]},
+                               'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                               'fb': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                               'gainl': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                               'gainr': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                               'sharp': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                               'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                               'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                               'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                               'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                               'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                               'speedl': {'curved': False,
+                                          'data': [[1.1102230246251565e-16, 0.6125220637948586],
+                                                   [0.020408163265306253, 0.5200359611818562],
+                                                   [0.040816326530612346, 0.5222364985670579],
+                                                   [0.06122448979591849, 0.45818008494369733],
+                                                   [0.08163265306122457, 0.5408271188426682],
+                                                   [0.10204081632653073, 0.5363182802242382],
+                                                   [0.12121973840242305, 0.7744765832912451],
+                                                   [0.14285714285714296, 0.5419771104215779],
+                                                   [0.16326530612244905, 0.45225896912711694],
+                                                   [0.1836734693877552, 0.49063993203693024],
+                                                   [0.20408163265306137, 0.5741094512869146],
+                                                   [0.22448979591836743, 0.5233696997426199],
+                                                   [0.24489795918367357, 0.522436745268596],
+                                                   [0.26530612244897966, 0.5036001975334089],
+                                                   [0.2857142857142858, 0.44064763593120854],
+                                                   [0.30612244897959195, 0.44916221685874586],
+                                                   [0.32653061224489804, 0.5352817602388494],
+                                                   [0.3469387755102042, 0.5406004318245877],
+                                                   [0.3673469387755103, 0.4505527166592806],
+                                                   [0.38652586085140261, 0.7190758363183681],
+                                                   [0.4069340241167087, 0.7234712456829209],
+                                                   [0.42857142857142866, 0.5303741130152732],
+                                                   [0.44897959183673475, 0.42571160282048065],
+                                                   [0.46938775510204095, 0.5864115674476441],
+                                                   [0.48979591836734704, 0.42054982377070493],
+                                                   [0.5102040816326532, 0.5336445521864682],
+                                                   [0.5306122448979592, 0.4198093328180701],
+                                                   [0.54979116697385155, 0.7571345559188616],
+                                                   [0.5701993302391577, 0.7425003815788223],
+                                                   [0.59060749350446384, 0.7470041895968502],
+                                                   [0.6122448979591837, 0.3857400341824692],
+                                                   [0.6326530612244899, 0.5445863243873977],
+                                                   [0.653061224489796, 0.5553664267964354],
+                                                   [0.67224014656568831, 0.7395753241615273],
+                                                   [0.6938775510204083, 0.4439488134426821],
+                                                   [0.71305647309630038, 0.6974714236486104],
+                                                   [0.7346938775510203, 0.5446252168809708],
+                                                   [0.75387279962691278, 0.7768554809530428],
+                                                   [0.77428096289221893, 0.7350007147519251],
+                                                   [0.7959183673469387, 0.5189643965765721],
+                                                   [0.81509728942283111, 0.7761436638134379],
+                                                   [0.83550545268813725, 0.7121411991112698],
+                                                   [0.8559136159534434, 0.695221513282102],
+                                                   [0.8775510204081634, 0.44069181728640355],
+                                                   [0.8979591836734694, 0.5735688086312601],
+                                                   [0.9183673469387755, 0.485160724813669],
+                                                   [0.9387755102040817, 0.4261596274330841],
+                                                   [0.9591836734693878, 0.5193541489367098],
+                                                   [0.9795918367346939, 0.5777944607990287],
+                                                   [1.0, 0.6345808647336081]]},
+                               'speedr': {'curved': False,
+                                          'data': [[1.1102230246251565e-16, 0.5185740400491707],
+                                                   [0.020408163265306253, 0.4035950975062157],
+                                                   [0.040816326530612346, 0.7262510377337247],
+                                                   [0.061224489795918491, 0.3922902592920883],
+                                                   [0.081632653061224567, 0.749063603129351],
+                                                   [0.10204081632653073, 0.5705768970131748],
+                                                   [0.12244897959183687, 0.420698797061785],
+                                                   [0.14285714285714296, 0.5225834856047142],
+                                                   [0.16326530612244905, 0.688038684366956],
+                                                   [0.18367346938775519, 0.5170676245142667],
+                                                   [0.20408163265306137, 0.7456742463615805],
+                                                   [0.22448979591836743, 0.4462284738907536],
+                                                   [0.24489795918367357, 0.7719475136707792],
+                                                   [0.26530612244897966, 0.43998869974217447],
+                                                   [0.28571428571428581, 0.6836388162789692],
+                                                   [0.30612244897959195, 0.48974224709382774],
+                                                   [0.32653061224489804, 0.4655453745076685],
+                                                   [0.34693877551020419, 0.6919241955993193],
+                                                   [0.36734693877551028, 0.5159722103720163],
+                                                   [0.38775510204081642, 0.7301759289979811],
+                                                   [0.40816326530612251, 0.43757178605354374],
+                                                   [0.42857142857142866, 0.43877134739081214],
+                                                   [0.44897959183673475, 0.46510266026859143],
+                                                   [0.46938775510204095, 0.7144758854726602],
+                                                   [0.48979591836734704, 0.5678894192888408],
+                                                   [0.51020408163265318, 0.6759835171537361],
+                                                   [0.53061224489795922, 0.5114535116817529],
+                                                   [0.55102040816326536, 0.5608328789119443],
+                                                   [0.57142857142857151, 0.5147322430840606],
+                                                   [0.59183673469387765, 0.7648510427836057],
+                                                   [0.61224489795918369, 0.4659902173775705],
+                                                   [0.63265306122448994, 0.39026156277363355],
+                                                   [0.65306122448979598, 0.5483696127595128],
+                                                   [0.67346938775510223, 0.5103441150669086],
+                                                   [0.69387755102040827, 0.752340426769797],
+                                                   [0.7142857142857143, 0.4529307207683762],
+                                                   [0.73469387755102034, 0.5422325961895065],
+                                                   [0.75510204081632659, 0.7047076627488374],
+                                                   [0.77551020408163274, 0.780633776494965],
+                                                   [0.79591836734693866, 0.41201853679498757],
+                                                   [0.81632653061224492, 0.7686692013828111],
+                                                   [0.83673469387755106, 0.42401586747079417],
+                                                   [0.85714285714285721, 0.5175049431144605],
+                                                   [0.87755102040816335, 0.4323382437989496],
+                                                   [0.89795918367346939, 0.4022862451441973],
+                                                   [0.91836734693877553, 0.44789547744578284],
+                                                   [0.93877551020408168, 0.5905672210150847],
+                                                   [0.95918367346938782, 0.4288871400060963],
+                                                   [0.97959183673469385, 0.4831593310797553],
+                                                   [1.0, 0.5333267352285629]]}},
+                 'userInputs': {'snd': {'dursnd': 5.466417233560091,
+                                        'gain': [0.0, False, False, False, None, 1, None, None],
+                                        'loopIn': [0.0, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                        'loopMode': 1,
+                                        'loopOut': [5.466417233560091, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                        'loopX': [1.0, False, False, False, None, 1, None, None],
+                                        'mode': 0,
+                                        'nchnlssnd': 1,
+                                        'offsnd': 0.0,
+                                        'path': u'/home/olivier/Dropbox/private/snds/flute.wav',
+                                        'srsnd': 44100.0,
+                                        'startFromLoop': 0,
+                                        'transp': [0.0, False, False, False, None, 1, None, None],
+                                        'type': 'csampler'}},
+                 'userSliders': {'dell': [0.049999999999999996, 0, None, 1, None, None],
+                                 'delr': [0.04000000000000001, 0, None, 1, None, None],
+                                 'depthl': [0.1, 0, None, 1, None, None],
+                                 'depthr': [0.1, 0, None, 1, None, None],
+                                 'drywet': [1.0, 0, None, 1, None, None],
+                                 'fb': [0.8, 0, None, 1, None, None],
+                                 'gainl': [-9.0, 0, None, 1, None, None],
+                                 'gainr': [-9.0, 0, None, 1, None, None],
+                                 'sharp': [1.0, 0, None, 1, None, None],
+                                 'speedl': [0.8401163816452029, 1, None, 1, None, None],
+                                 'speedr': [0.21144497394561768, 1, None, 1, None, None]},
+                 'userTogglePopups': {'poly': 0, 'polynum': 0, 'wavel': 2, 'waver': 2}},
+ u'04-Big Space': {'active': False,
+                   'gainSlider': 0.0,
+                   'nchnls': 2,
+                   'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                   'totalTime': 60.00000000000003,
+                   'userGraph': {'dell': {'curved': False, 'data': [[0.0, 0.6352182518111362], [1.0, 0.6352182518111362]]},
+                                 'delr': {'curved': False, 'data': [[0.0, 0.6795880017344075], [1.0, 0.6795880017344075]]},
+                                 'depthl': {'curved': False, 'data': [[0.0, 0.6294882868674145], [1.0, 0.6294882868674145]]},
+                                 'depthr': {'curved': False, 'data': [[0.0, 0.6294882868674145], [1.0, 0.6294882868674145]]},
+                                 'drywet': {'curved': False, 'data': [[0.0, 0.7], [1.0, 0.7]]},
+                                 'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                 'fb': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                                 'gainl': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                 'gainr': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                 'sharp': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                 'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                 'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                 'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                 'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                 'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                                 'speedl': {'curved': False, 'data': [[0.0, 0.5659277541258724], [1.0, 0.5659277541258724]]},
+                                 'speedr': {'curved': False, 'data': [[0.0, 0.5737361772421502], [1.0, 0.5737361772421502]]}},
+                   'userInputs': {'snd': {'dursnd': 5.466417233560091,
+                                          'gain': [0.0, False, False, False, None, 1, None, None],
+                                          'loopIn': [0.0, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                          'loopMode': 1,
+                                          'loopOut': [5.466417233560091, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                          'loopX': [1.0, False, False, False, None, 1, None, None],
+                                          'mode': 0,
+                                          'nchnlssnd': 1,
+                                          'offsnd': 0.0,
+                                          'path': u'/home/olivier/Dropbox/private/snds/flute.wav',
+                                          'srsnd': 44100.0,
+                                          'startFromLoop': 0,
+                                          'transp': [0.0, False, False, False, None, 1, None, None],
+                                          'type': 'csampler'}},
+                   'userSliders': {'dell': [0.24999999999999994, 0, None, 1, None, None],
+                                   'delr': [0.49999999999999994, 0, None, 1, None, None],
+                                   'depthl': [0.029999999999999995, 0, None, 1, None, None],
+                                   'depthr': [0.029999999999999995, 0, None, 1, None, None],
+                                   'drywet': [0.7, 0, None, 1, None, None],
+                                   'fb': [0.9, 0, None, 1, None, None],
+                                   'gainl': [-9.0, 0, None, 1, None, None],
+                                   'gainr': [-9.0, 0, None, 1, None, None],
+                                   'sharp': [0.0, 0, None, 1, None, None],
+                                   'speedl': [0.3000000000000001, 0, None, 1, None, None],
+                                   'speedr': [0.20000000000000004, 0, None, 1, None, None]},
+                   'userTogglePopups': {'poly': 0, 'polynum': 0, 'wavel': 6, 'waver': 6}},
+ u'05-Chain Saw': {'active': True,
+                   'gainSlider': 0.0,
+                   'nchnls': 2,
+                   'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                   'totalTime': 60.00000000000003,
+                   'userGraph': {'dell': {'curved': False, 'data': [[0.0, 0.6352182518111362], [1.0, 0.6352182518111362]]},
+                                 'delr': {'curved': False, 'data': [[0.0, 0.6795880017344075], [1.0, 0.6795880017344075]]},
+                                 'depthl': {'curved': False,
+                                            'data': [[0.0, 0.5477794500585298],
+                                                     [0.0050251256281407036, 0.57922225865198],
+                                                     [0.010050251256281407, 0.6098830564333636],
+                                                     [0.01507537688442211, 0.638999281899933],
+                                                     [0.020100502512562814, 0.6658467884458354],
+                                                     [0.025125628140703519, 0.6897578545367964],
+                                                     [0.03015075376884422, 0.710137790542734],
+                                                     [0.035175879396984924, 0.7264797292015046],
+                                                     [0.040201005025125629, 0.7383772318616977],
+                                                     [0.045226130653266333, 0.7455343969759303],
+                                                     [0.050251256281407038, 0.7477732194373612],
+                                                     [0.055276381909547749, 0.7450380177261304],
+                                                     [0.06030150753768844, 0.7373968187586317],
+                                                     [0.065326633165829151, 0.7250396659971715],
+                                                     [0.070351758793969849, 0.7082738928988455],
+                                                     [0.07537688442211056, 0.6875164792571911],
+                                                     [0.080402010050251257, 0.6632836805412475],
+                                                     [0.085427135678391955, 0.6361781881596457],
+                                                     [0.090452261306532666, 0.6068741399854638],
+                                                     [0.095477386934673378, 0.5761003539435202],
+                                                     [0.10050251256281408, 0.5446222016558023],
+                                                     [0.10552763819095477, 0.51322257296371],
+                                                     [0.1105527638190955, 0.4826824047564875],
+                                                     [0.11557788944723618, 0.45376125837132925],
+                                                     [0.12060301507537688, 0.4271784286226069],
+                                                     [0.12562814070351758, 0.4035950542955867],
+                                                     [0.1306532663316583, 0.3835976750326773],
+                                                     [0.135678391959799, 0.36768364356717953],
+                                                     [0.1407035175879397, 0.35624875611534396],
+                                                     [0.14572864321608042, 0.3495774085699714],
+                                                     [0.15075376884422112, 0.34783552331983425],
+                                                     [0.15577889447236182, 0.3510664226112558],
+                                                     [0.16080402010050251, 0.3591897510850424],
+                                                     [0.16582914572864321, 0.37200347428623776],
+                                                     [0.17085427135678391, 0.389188903441974],
+                                                     [0.17587939698492464, 0.4103186215366929],
+                                                     [0.18090452261306533, 0.43486711355614616],
+                                                     [0.18592964824120603, 0.4622238365164879],
+                                                     [0.19095477386934676, 0.4917084042151268],
+                                                     [0.19597989949748745, 0.5225875090449863],
+                                                     [0.20100502512562815, 0.5540931600114919],
+                                                     [0.20603015075376885, 0.5854417833564733],
+                                                     [0.21105527638190955, 0.6158537107393522],
+                                                     [0.21608040201005024, 0.6445725702870975],
+                                                     [0.221105527638191, 0.6708840982401657],
+                                                     [0.22613065326633167, 0.6941339033319451],
+                                                     [0.23115577889447236, 0.7137437420856749],
+                                                     [0.23618090452261306, 0.729225900247626],
+                                                     [0.24120603015075376, 0.7401953226774224],
+                                                     [0.24623115577889446, 0.7463791900142639],
+                                                     [0.25125628140703515, 0.7476237039387851],
+                                                     [0.25628140703517588, 0.7438979122750107],
+                                                     [0.2613065326633166, 0.7352944787986948],
+                                                     [0.26633165829145727, 0.7220273786062219],
+                                                     [0.271356783919598, 0.7044265763623079],
+                                                     [0.27638190954773872, 0.6829298197832515],
+                                                     [0.28140703517587939, 0.6580717524591514],
+                                                     [0.28643216080402012, 0.6304706167889566],
+                                                     [0.29145728643216084, 0.6008128777382656],
+                                                     [0.29648241206030151, 0.5698361498407847],
+                                                     [0.30150753768844224, 0.5383108520642182],
+                                                     [0.30653266331658291, 0.5070210468004996],
+                                                     [0.31155778894472363, 0.4767449395318442],
+                                                     [0.3165829145728643, 0.4482355241633934],
+                                                     [0.32160804020100503, 0.42220185539035815],
+                                                     [0.32663316582914576, 0.39929141387267314],
+                                                     [0.33165829145728642, 0.3800740028110543],
+                                                     [0.33668341708542715, 0.3650275764310423],
+                                                     [0.34170854271356782, 0.35452635283332545],
+                                                     [0.34673366834170855, 0.3488315068543984],
+                                                     [0.35175879396984927, 0.34808467441445395],
+                                                     [0.35678391959798994, 0.3523044299051883],
+                                                     [0.36180904522613067, 0.3613858242280428],
+                                                     [0.36683417085427134, 0.37510299497228505],
+                                                     [0.37185929648241206, 0.3931147838154619],
+                                                     [0.37688442211055279, 0.41497322143644366],
+                                                     [0.38190954773869351, 0.4401346689136718],
+                                                     [0.38693467336683418, 0.46797333851206147],
+                                                     [0.39195979899497491, 0.4977968575844681],
+                                                     [0.39698492462311558, 0.5288634884995607],
+                                                     [0.4020100502512563, 0.5604005763210645],
+                                                     [0.40703517587939692, 0.5916237654280679],
+                                                     [0.4120603015075377, 0.6217565071418392],
+                                                     [0.41708542713567842, 0.6500493731869954],
+                                                     [0.42211055276381909, 0.675798694643951],
+                                                     [0.42713567839195982, 0.6983640628252051],
+                                                     [0.43216080402010049, 0.7171842568129895],
+                                                     [0.43718592964824121, 0.7317912015261647],
+                                                     [0.44221105527638199, 0.7418216091667272],
+                                                     [0.44723618090452261, 0.7470260145127311],
+                                                     [0.45226130653266333, 0.7472749793417977],
+                                                     [0.457286432160804, 0.7425623116756375],
+                                                     [0.46231155778894473, 0.7330052197800981],
+                                                     [0.46733668341708551, 0.7188413970906122],
+                                                     [0.47236180904522612, 0.7004231105635637],
+                                                     [0.4773869346733669, 0.6782084394815672],
+                                                     [0.48241206030150752, 0.6527498826114236],
+                                                     [0.4874371859296483, 0.6246806170649319],
+                                                     [0.49246231155778891, 0.5946987506170034],
+                                                     [0.49748743718592969, 0.5635499591400251],
+                                                     [0.50251256281407031, 0.532008940977035],
+                                                     [0.50753768844221103, 0.5008601495000564],
+                                                     [0.51256281407035176, 0.4708782830521275],
+                                                     [0.51758793969849248, 0.4428090175056362],
+                                                     [0.52261306532663321, 0.41735046063549264],
+                                                     [0.52763819095477382, 0.39513578955349643],
+                                                     [0.53266331658291455, 0.37671750302644763],
+                                                     [0.53768844221105527, 0.36255368033696167],
+                                                     [0.542713567839196, 0.35299658844142234],
+                                                     [0.54773869346733672, 0.348283920775262],
+                                                     [0.55276381909547745, 0.3485328856043285],
+                                                     [0.55778894472361806, 0.3537372909503326],
+                                                     [0.56281407035175879, 0.3637676985908949],
+                                                     [0.56783919597989951, 0.3783746433040699],
+                                                     [0.57286432160804024, 0.3971948372918546],
+                                                     [0.57788944723618085, 0.4197602054731084],
+                                                     [0.58291457286432169, 0.44550952693006435],
+                                                     [0.58793969849246219, 0.4738023929752202],
+                                                     [0.59296482412060303, 0.5039351346889918],
+                                                     [0.59798994974874375, 0.5351583237959952],
+                                                     [0.60301507537688448, 0.5666954116174987],
+                                                     [0.60804020100502509, 0.5977620425325912],
+                                                     [0.61306532663316582, 0.6275855616049976],
+                                                     [0.61809045226130654, 0.6554242312033876],
+                                                     [0.62311557788944727, 0.6805856786806159],
+                                                     [0.62814070351758799, 0.7024441163015979],
+                                                     [0.63316582914572861, 0.7204559051447743],
+                                                     [0.63819095477386933, 0.7341730758890168],
+                                                     [0.64321608040201006, 0.7432544702118713],
+                                                     [0.64824120603015079, 0.7474742257026055],
+                                                     [0.65326633165829151, 0.7467273932626612],
+                                                     [0.65829145728643224, 0.7410325472837344],
+                                                     [0.66331658291457285, 0.7305313236860171],
+                                                     [0.66834170854271358, 0.7154848973060054],
+                                                     [0.6733668341708543, 0.6962674862443863],
+                                                     [0.67839195979899503, 0.6733570447267013],
+                                                     [0.68341708542713564, 0.6473233759536671],
+                                                     [0.68844221105527637, 0.6188139605852156],
+                                                     [0.69346733668341709, 0.5885378533165606],
+                                                     [0.69849246231155782, 0.5572480480528412],
+                                                     [0.70351758793969854, 0.5257227502762748],
+                                                     [0.70854271356783904, 0.4947460223787943],
+                                                     [0.71356783919597988, 0.4650882833281033],
+                                                     [0.71859296482412061, 0.4374871476579082],
+                                                     [0.72361809045226133, 0.4126290803338081],
+                                                     [0.72864321608040206, 0.39113232375475177],
+                                                     [0.73366834170854267, 0.3735315215108381],
+                                                     [0.7386934673366834, 0.3602644213183649],
+                                                     [0.74371859296482412, 0.35166098784204897],
+                                                     [0.74874371859296474, 0.34793519617827473],
+                                                     [0.75376884422110557, 0.3491797101027959],
+                                                     [0.7587939698492463, 0.3553635774396373],
+                                                     [0.76381909547738702, 0.36633299986943335],
+                                                     [0.76884422110552764, 0.38181515803138455],
+                                                     [0.77386934673366836, 0.4014249967851143],
+                                                     [0.77889447236180909, 0.42467480187689416],
+                                                     [0.78391959798994981, 0.4509863298299621],
+                                                     [0.78894472361809043, 0.4797051893777071],
+                                                     [0.79396984924623115, 0.5101171167605859],
+                                                     [0.79899497487437188, 0.541465740105568],
+                                                     [0.8040201005025126, 0.5729713910720735],
+                                                     [0.80904522613065333, 0.6038504959019326],
+                                                     [0.81407035175879383, 0.6333350636005715],
+                                                     [0.81909547738693467, 0.6606917865609131],
+                                                     [0.82412060301507539, 0.6852402785803667],
+                                                     [0.82914572864321612, 0.7063699966750855],
+                                                     [0.83417085427135684, 0.7235554258308221],
+                                                     [0.83919597989949746, 0.7363691490320171],
+                                                     [0.84422110552763818, 0.7444924775058036],
+                                                     [0.84924623115577891, 0.7477233767972253],
+                                                     [0.85427135678391963, 0.7459814915470883],
+                                                     [0.85929648241206036, 0.7393101440017156],
+                                                     [0.86432160804020097, 0.7278752565498804],
+                                                     [0.86934673366834181, 0.7119612250843823],
+                                                     [0.87437185929648242, 0.6919638458214732],
+                                                     [0.87939698492462304, 0.6683804714944525],
+                                                     [0.88442211055276398, 0.6417976417457303],
+                                                     [0.8894472361809046, 0.6128764953605728],
+                                                     [0.89447236180904521, 0.5823363271533498],
+                                                     [0.89949748743718583, 0.5509366984612575],
+                                                     [0.90452261306532666, 0.5194585461735393],
+                                                     [0.9095477386934675, 0.4886847601315958],
+                                                     [0.914572864321608, 0.45938071195741415],
+                                                     [0.91959798994974862, 0.43227521957581233],
+                                                     [0.92462311557788945, 0.40804242085986886],
+                                                     [0.92964824120603018, 0.38728500721821424],
+                                                     [0.93467336683417102, 0.3705192341198881],
+                                                     [0.93969849246231141, 0.358162081358428],
+                                                     [0.94472361809045224, 0.35052088239092943],
+                                                     [0.94974874371859297, 0.34778568067969845],
+                                                     [0.95477386934673381, 0.35002450314112926],
+                                                     [0.95979899497487442, 0.35718166825536196],
+                                                     [0.96482412060301503, 0.3690791709155548],
+                                                     [0.96984924623115576, 0.38542110957432524],
+                                                     [0.9748743718592966, 0.4058010455802632],
+                                                     [0.97989949748743721, 0.4297121116712239],
+                                                     [0.98492462311557782, 0.45655961821712693],
+                                                     [0.98994974874371866, 0.4856758436836961],
+                                                     [0.99497487437185939, 0.5163366414650796],
+                                                     [1.0, 0.5477794500585296]]},
+                                 'depthr': {'curved': False,
+                                            'data': [[0.0, 0.7332128083117075],
+                                                     [0.0050251256281407036, 0.7405638077787569],
+                                                     [0.010050251256281407, 0.7430012558265879],
+                                                     [0.01507537688442211, 0.7404645309391044],
+                                                     [0.020100502512562814, 0.7330167237363239],
+                                                     [0.025125628140703519, 0.7208430678541491],
+                                                     [0.03015075376884422, 0.7042463330179355],
+                                                     [0.035175879396984924, 0.6836392948882398],
+                                                     [0.040201005025125629, 0.6595344689604317],
+                                                     [0.045226130653266333, 0.63253136384528],
+                                                     [0.050251256281407038, 0.6033015709528414],
+                                                     [0.055276381909547749, 0.5725720614125689],
+                                                     [0.06030150753768844, 0.5411071056501967],
+                                                     [0.065326633165829151, 0.5096892652977187],
+                                                     [0.070351758793969849, 0.47909993018468555],
+                                                     [0.07537688442211056, 0.450099884473276],
+                                                     [0.080402010050251257, 0.42341038527477326],
+                                                     [0.085427135678391955, 0.3996952243392],
+                                                     [0.090452261306532666, 0.3795442189599572],
+                                                     [0.095477386934673378, 0.3634585426894567],
+                                                     [0.10050251256281408, 0.3518382607039864],
+                                                     [0.10552763819095477, 0.3449723798244509],
+                                                     [0.1105527638190955, 0.3430316606578805],
+                                                     [0.11557788944723618, 0.3460643706281898],
+                                                     [0.12060301507537688, 0.353995083522113],
+                                                     [0.12562814070351758, 0.36662655540668493],
+                                                     [0.1306532663316583, 0.3836446302625191],
+                                                     [0.135678391959799, 0.40462605332538965],
+                                                     [0.1407035175879397, 0.42904899781131367],
+                                                     [0.14572864321608042, 0.45630604321605317],
+                                                     [0.15075376884422112, 0.4857192824071031],
+                                                     [0.15577889447236182, 0.5165571817812568],
+                                                     [0.16080402010050251, 0.5480527751605299],
+                                                     [0.16582914572864321, 0.579422738927955],
+                                                     [0.17085427135678391, 0.6098868739875334],
+                                                     [0.17587939698492464, 0.6386875100145538],
+                                                     [0.18090452261306533, 0.6651083493951884],
+                                                     [0.18592964824120603, 0.6884922821897154],
+                                                     [0.19095477386934676, 0.7082577290452721],
+                                                     [0.19597989949748745, 0.7239131055952641],
+                                                     [0.20100502512562815, 0.7350690486028582],
+                                                     [0.20603015075376885, 0.7414480997734236],
+                                                     [0.21105527638190955, 0.7428916063908306],
+                                                     [0.21608040201005024, 0.7393636671525998],
+                                                     [0.221105527638191, 0.7309520250674519],
+                                                     [0.22613065326633167, 0.7178658852080912],
+                                                     [0.23115577889447236, 0.7004307115936693],
+                                                     [0.23618090452261306, 0.6790801326081204],
+                                                     [0.24120603015075376, 0.6543451562738656],
+                                                     [0.24623115577889446, 0.6268409636066883],
+                                                     [0.25125628140703515, 0.597251608512873],
+                                                     [0.25628140703517588, 0.5663130047558689],
+                                                     [0.2613065326633166, 0.5347946231218602],
+                                                     [0.26633165829145727, 0.5034803539921204],
+                                                     [0.271356783919598, 0.4731490112871243],
+                                                     [0.27638190954773872, 0.4445549626667873],
+                                                     [0.28140703517587939, 0.4184093677310992],
+                                                     [0.28643216080402012, 0.39536249084390757],
+                                                     [0.29145728643216084, 0.37598752847576955],
+                                                     [0.29648241206030151, 0.3607663532943325],
+                                                     [0.30150753768844224, 0.3500775295594932],
+                                                     [0.30653266331658291, 0.3441868978911841],
+                                                     [0.31155778894472363, 0.34324096357505246],
+                                                     [0.3165829145728643, 0.34726325284478415],
+                                                     [0.32160804020100503, 0.35615372776360155],
+                                                     [0.32663316582914576, 0.3696912742573515],
+                                                     [0.33165829145728642, 0.38753920141957376],
+                                                     [0.33668341708542715, 0.40925361531591004],
+                                                     [0.34170854271356782, 0.43429445902383157],
+                                                     [0.34673366834170855, 0.46203894433201703],
+                                                     [0.35175879396984927, 0.4917970410409773],
+                                                     [0.35678391959798994, 0.5228286386321569],
+                                                     [0.36180904522613067, 0.5543619534794253],
+                                                     [0.36683417085427134, 0.5856127237991192],
+                                                     [0.37185929648241206, 0.6158037149430438],
+                                                     [0.37688442211055279, 0.6441840499203157],
+                                                     [0.38190954773869351, 0.670047884380665],
+                                                     [0.38693467336683418, 0.6927519615956302],
+                                                     [0.39195979899497491, 0.7117316108295377],
+                                                     [0.39698492462311558, 0.7265147912064573],
+                                                     [0.4020100502512563, 0.7367338317895797],
+                                                     [0.40703517587939692, 0.7421345758867252],
+                                                     [0.4120603015075377, 0.7425827021549188],
+                                                     [0.41708542713567842, 0.738067065292498],
+                                                     [0.42211055276381909, 0.7286999732327469],
+                                                     [0.42713567839195982, 0.7147143939450048],
+                                                     [0.43216080402010049, 0.6964581613126074],
+                                                     [0.43718592964824121, 0.6743853241926627],
+                                                     [0.44221105527638199, 0.6490448538142988],
+                                                     [0.44723618090452261, 0.6210669903724986],
+                                                     [0.45226130653266333, 0.5911475683899626],
+                                                     [0.457286432160804, 0.5600307106892946],
+                                                     [0.46231155778894473, 0.5284903213919131],
+                                                     [0.46733668341708551, 0.49731083822939104],
+                                                     [0.47236180904522612, 0.4672677228744766],
+                                                     [0.4773869346733669, 0.43910817451473033],
+                                                     [0.48241206030150752, 0.4135325463394939],
+                                                     [0.4874371859296483, 0.3911769271287805],
+                                                     [0.49246231155778891, 0.3725973211555956],
+                                                     [0.49748743718592969, 0.358255819861668],
+                                                     [0.50251256281407031, 0.34850910922941497],
+                                                     [0.50753768844221103, 0.3435995986820871],
+                                                     [0.51256281407035176, 0.34364939214429224],
+                                                     [0.51758793969849248, 0.34865725120802704],
+                                                     [0.52261306532663321, 0.35849862593299253],
+                                                     [0.52763819095477382, 0.3729287525151651],
+                                                     [0.53266331658291455, 0.3915887407818295],
+                                                     [0.53768844221105527, 0.41401450011162244],
+                                                     [0.542713567839196, 0.43964828178395454],
+                                                     [0.54773869346733672, 0.4678525506892536],
+                                                     [0.55276381909547745, 0.4979258413981556],
+                                                     [0.55778894472361806, 0.529120204235018],
+                                                     [0.56281407035175879, 0.5606598074562658],
+                                                     [0.56783919597989951, 0.591760232880743],
+                                                     [0.57286432160804024, 0.6216479850724582],
+                                                     [0.57788944723618085, 0.6495797288648705],
+                                                     [0.58291457286432169, 0.6748607767722674],
+                                                     [0.58793969849246219, 0.6968623664897423],
+                                                     [0.59296482412060303, 0.7150372987748812],
+                                                     [0.59798994974874375, 0.7289335467830294],
+                                                     [0.60301507537688448, 0.7382054983797867],
+                                                     [0.60804020100502509, 0.7426225518243424],
+                                                     [0.61306532663316582, 0.7420748510413133],
+                                                     [0.61809045226130654, 0.7365760178397311],
+                                                     [0.62311557788944727, 0.726262813126454],
+                                                     [0.62814070351758799, 0.7113917355399179],
+                                                     [0.63316582914572861, 0.6923326420992635],
+                                                     [0.63819095477386933, 0.6695595495289965],
+                                                     [0.64321608040201006, 0.6436388450384929],
+                                                     [0.64824120603015079, 0.6152151997648011],
+                                                     [0.65326633165829151, 0.5849955352240538],
+                                                     [0.65829145728643224, 0.5537314415401967],
+                                                     [0.66331658291457285, 0.5222004847254227],
+                                                     [0.66834170854271358, 0.49118686791701627],
+                                                     [0.6733668341708543, 0.4614619275429348],
+                                                     [0.67839195979899503, 0.43376494949398925],
+                                                     [0.68341708542713564, 0.40878478242158],
+                                                     [0.68844221105527637, 0.38714270545475654],
+                                                     [0.69346733668341709, 0.36937697643182166],
+                                                     [0.69849246231155782, 0.3559294449457868],
+                                                     [0.70351758793969854, 0.3471345631492465],
+                                                     [0.70854271356783904, 0.3432110676297833],
+                                                     [0.71356783919597988, 0.3442565392351194],
+                                                     [0.71859296482412061, 0.3502449761500334],
+                                                     [0.72361809045226133, 0.3610274405847946],
+                                                     [0.72864321608040206, 0.3763357629913915],
+                                                     [0.73366834170854267, 0.39578921168038317],
+                                                     [0.7386934673366834, 0.4189039619590244],
+                                                     [0.74371859296482412, 0.4451051292847218],
+                                                     [0.74874371859296474, 0.47374106715851194],
+                                                     [0.75376884422110557, 0.5040995741571546],
+                                                     [0.7587939698492463, 0.5354256070204199],
+                                                     [0.76381909547738702, 0.5669400592532432],
+                                                     [0.76884422110552764, 0.5978591382020801],
+                                                     [0.77386934673366836, 0.627413858680212],
+                                                     [0.77889447236180909, 0.6548691683181033],
+                                                     [0.78391959798994981, 0.67954222897419],
+                                                     [0.78894472361809043, 0.7008193995310615],
+                                                     [0.79396984924623115, 0.7181714976996675],
+                                                     [0.79899497487437188, 0.7311669612568191],
+                                                     [0.8040201005025126, 0.7394825813842165],
+                                                     [0.80904522613065333, 0.7429115411612487],
+                                                     [0.81407035175879383, 0.7413685592870481],
+                                                     [0.81909547738693467, 0.734892011102827],
+                                                     [0.82412060301507539, 0.7236429741627699],
+                                                     [0.82914572864321612, 0.7079012220909896],
+                                                     [0.83417085427135684, 0.6880582663609093],
+                                                     [0.83919597989949746, 0.6646076190542567],
+                                                     [0.84422110552763818, 0.6381325187735636],
+                                                     [0.84924623115577891, 0.609291424975736],
+                                                     [0.85427135678391963, 0.5788016414955993],
+                                                     [0.85929648241206036, 0.5474214765570559],
+                                                     [0.86432160804020097, 0.5159313829683686],
+                                                     [0.86934673366834181, 0.4851145475617847],
+                                                     [0.87437185929648242, 0.45573741263555045],
+                                                     [0.87939698492462304, 0.42853061384746777],
+                                                     [0.88442211055276398, 0.4041708086516825],
+                                                     [0.8894472361809046, 0.38326384722173484],
+                                                     [0.89447236180904521, 0.3663297044141024],
+                                                     [0.89949748743718583, 0.3537895475277985],
+                                                     [0.90452261306532666, 0.34595526149641365],
+                                                     [0.9095477386934675, 0.34302169203047606],
+                                                     [0.914572864321608, 0.34506179963010997],
+                                                     [0.91959798994974862, 0.352024844992052],
+                                                     [0.92462311557788945, 0.36373765094156657],
+                                                     [0.92964824120603018, 0.3799089095038934],
+                                                     [0.93467336683417102, 0.4001364269944922],
+                                                     [0.93969849246231141, 0.423917126936213],
+                                                     [0.94472361809045224, 0.4506595620218703],
+                                                     [0.94974874371859297, 0.47969862393851587],
+                                                     [0.95477386934673381, 0.5103120852068951],
+                                                     [0.95979899497487442, 0.5417385616257374],
+                                                     [0.96482412060301503, 0.5731964485787869],
+                                                     [0.96984924623115576, 0.6039033602416687],
+                                                     [0.9748743718592966, 0.6330955882181],
+                                                     [0.97989949748743721, 0.6600470956517341],
+                                                     [0.98492462311557782, 0.6840875744130674],
+                                                     [0.98994974874371866, 0.704619116262996],
+                                                     [0.99497487437185939, 0.7211310833662474],
+                                                     [1.0, 0.7332128083117075]]},
+                                 'drywet': {'curved': False, 'data': [[0.0, 0.7], [1.0, 0.7]]},
+                                 'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                 'fb': {'curved': False, 'data': [[0.0, 0.5005005005005005], [1.0, 0.5005005005005005]]},
+                                 'gainl': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                 'gainr': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                 'sharp': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                 'sndend': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                 'sndgain': {'curved': False, 'data': [[0.0, 0.7272727272727273], [1.0, 0.7272727272727273]]},
+                                 'sndstart': {'curved': False, 'data': [[0.0, 0.0], [1.0, 0.0]]},
+                                 'sndtrans': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                                 'sndxfade': {'curved': False, 'data': [[0.0, 0.02], [1.0, 0.02]]},
+                                 'speedl': {'curved': False, 'data': [[0.0, 0.5659277541258724], [1.0, 0.5659277541258724]]},
+                                 'speedr': {'curved': False, 'data': [[0.0, 0.5737361772421502], [1.0, 0.5737361772421502]]}},
+                   'userInputs': {'snd': {'dursnd': 5.466417233560091,
+                                          'gain': [0.0, False, False, False, None, 1, None, None],
+                                          'loopIn': [0.0, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                          'loopMode': 1,
+                                          'loopOut': [5.466417233560091, False, False, False, None, 1, 0, 5.466417233560091, None, None],
+                                          'loopX': [1.0, False, False, False, None, 1, None, None],
+                                          'mode': 0,
+                                          'nchnlssnd': 1,
+                                          'offsnd': 0.0,
+                                          'path': u'/home/olivier/Dropbox/private/snds/flute.wav',
+                                          'srsnd': 44100.0,
+                                          'startFromLoop': 0,
+                                          'transp': [0.0, False, False, False, None, 1, None, None],
+                                          'type': 'csampler'}},
+                   'userSliders': {'dell': [0.04000000000000001, 0, None, 1, None, None],
+                                   'delr': [0.06000000000000003, 0, None, 1, None, None],
+                                   'depthl': [0.016333503648638725, 1, None, 1, None, None],
+                                   'depthr': [0.008675402030348776, 1, None, 1, None, None],
+                                   'drywet': [1.0, 0, None, 1, None, None],
+                                   'fb': [0.8, 0, None, 1, None, None],
+                                   'gainl': [-12.0, 0, None, 1, None, None],
+                                   'gainr': [-12.0, 0, None, 1, None, None],
+                                   'sharp': [0.5, 0, None, 1, None, None],
+                                   'speedl': [75.00000000000016, 0, None, 1, None, None],
+                                   'speedr': [49.99999999999999, 0, None, 1, None, None]},
+                   'userTogglePopups': {'poly': 0, 'polynum': 0, 'wavel': 3, 'waver': 3}}}
\ No newline at end of file
diff --git a/Resources/modules/Time/Granulator.c5 b/Resources/modules/Time/Granulator.c5
index 39b9edb..ecb24ea 100644
--- a/Resources/modules/Time/Granulator.c5
+++ b/Resources/modules/Time/Granulator.c5
@@ -1,43 +1,67 @@
 import random
 class Module(BaseModule):
     """
-    Granulator module
+    "Granulation module"
     
-    Sliders under the graph:
+    Description
+
+    A classic granulation module. Useful to stretch a sound without changing
+    the pitch or to transpose without changing the duration.
     
-        - Transpose : Base pitch of the grains
-        - Grain Position : Soundfile index
-        - Position Random : Jitter applied on the soundfile index
-        - Pitch Random : Jitter applied on the pitch of the grains using the discreet transpo list
-        - Grain Duration : Length of the grains
-        - # of Grains : Number of grains
+    Sliders
     
-    Dropdown menus, toggles and sliders on the bottom left:
+        # Transpose : 
+            Base pitch of the grains
+        # Grain Position : 
+            Soundfile index
+        # Position Random : 
+            Jitter applied on the soundfile index
+        # Pitch Random : 
+            Jitter applied on the pitch of the grains using the discreet transpo list
+        # Grain Duration : 
+            Length of the grains
+        # Num of Grains : 
+            Number of overlapping grains
 
-        - Grain Env : Shape of the grains
-        - Discreet Transpo : List of pitch ratios
-        - # of Voices : Number of voices played simultaneously (polyphony), only available at initialization time
-        - Polyphony Spread : Pitch variation between voices (chorus), only available at initialization time
-        
-    Graph only parameters :
+    Graph Only
     
-        - Overall Amplitude : The amplitude curve applied on the total duration of the performance
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+        # Grain Envelope : 
+            Emplitude envelope of the grains
+
+    Popups & Toggles
+
+        # Filter Type : 
+            Type of the post filter
+        # Discreet Transpo : 
+            List of pitch ratios    
+        # Balance :
+            Compression mode. Off, balanced with a fixed signal
+            or balanced with the input source.
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+
     """
     def __init__(self):
         BaseModule.__init__(self)
-        self.amp_scl = Map(200, 1, "lin")
+        self.amp_scl = Map(350, 1, "lin")
         firstamp = self.amp_scl.set(self.num.get())
-        pitrnds = [random.uniform(1.0-self.polyphony_spread, 1.0+self.polyphony_spread) for i in range(self.number_of_voices*2)]
-        self.t = self.addFilein("sndtable")
-        self.posr = Noise(self.posrnd*self.t.getSize(False))
+        pitrnds = self.polyphony_spread
+        self.table = self.addFilein("sndtable")
+        self.posr = Noise(self.posrnd*self.table.getSize(False))
         self.pitr = Noise(self.pitrnd, add=1)
-        self.discr = Choice(choice=self.discreet_value, freq=250)
+        self.discr = Choice(choice=self.discreet_value, freq=1000)
         self.pitch = CentsToTranspo(self.transp, mul=pitrnds)
-        self.pospos = Sig(self.pos, mul=self.t.getSize(False), add=self.posr)
-        self.gr = Granulator(self.t, self.grainenv, pitch=self.pitch, pos=self.pospos, dur=self.dur.get()*self.pitr*self.discr, 
-                            grains=int(self.num.get()), basedur=self.dur.get(), mul=self.env* 0.1 * firstamp)
-        self.gro = Biquadx(self.gr, freq=self.cut, q=self.filterq, type=self.filttype_index, stages=2)
-
+        self.pospos = Sig(self.pos, mul=self.table.getSize(False), add=self.posr)
+        self.gr = Granulator(self.table, self.grainenv, pitch=self.pitch, pos=self.pospos, 
+                            dur=self.dur.get()*self.pitr*self.discr, grains=int(self.num.get()), 
+                            basedur=self.dur.get(), mul=self.env* 0.1 * firstamp)
+        self.gro = Biquadx(self.gr.mix(self.nchnls), freq=self.cut, q=self.filterq, type=self.filttype_index, stages=2, mul=self.polyphony_scaling)
 
         self.osc = Sine(10000,mul=.1)
         self.balanced = Balance(self.gro, self.osc, freq=10)
@@ -46,7 +70,7 @@ class Module(BaseModule):
 #INIT
         self.balance(self.balance_index, self.balance_value)
 
-    def balance(self,index,value):
+    def balance(self, index, value):
         if index == 0:
             self.out.interp  = 0
         elif index ==1:
@@ -61,7 +85,7 @@ class Module(BaseModule):
 
     def dur_up(self, value):
         self.gr.basedur = value
-        self.gr.dur = value*self.discr
+        self.gr.dur = value * self.pitr * self.discr
         
     def num_up(self, value):
         gr = int(value)
@@ -72,18 +96,997 @@ class Module(BaseModule):
         self.discr.choice = value
            
 Interface = [   cfilein(name="sndtable", label="Audio"),
-                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue"),
-                cgraph(name="grainenv", label="Grain Envelope", func=[(0,0),(0.5,1),(1,0)], table=True, curved=True, col="chorusyellow"),
-                cslider(name="transp", label="Transpose", min=-4800, max=4800, init=0, rel="lin", unit="cnts", col="green"),
-                cslider(name="pos", label="Grain Position", min=0, max=1, init=0, func=[(0,0),(1,1)], rel="lin", unit="x", col="blue"),
-                cslider(name="posrnd", label="Position Random", min=0, max=0.5, init=0.005, rel="lin", unit="x", col="red3",half=True),
-                cslider(name="pitrnd", label="Pitch Random", min=0, max=0.5, init=0.005, rel="lin", unit="x", col="red3",half=True),
-                cslider(name="cut", label="Filter Freq", min=100, max=18000, init=20000, rel="log", unit="Hz", col="green3"),
-                cslider(name="filterq", label="Filter Q", min=0.5, max=10, init=0.707, rel="log", unit="Q", col="green3"),
-                cslider(name="dur", label="Grain Duration", min=0.01, max=10, init=0.1, up=True, rel="log", unit="sec", col="blue",half=True),
-                cslider(name="num", label="# of Grains", min=1, max=150, init=24, rel="lin", gliss=0, res="int", up=True, unit="grs", col="tan",half=True),
-                cpopup(name="filttype", label="Filter Type", init="Lowpass", col="green3", value=["Lowpass","Highpass","Bandpass","Bandstop"]),
-                cpopup(name="balance", label = "Balance", init= "Off", col="blue", value=["Off","Compress", "Source"]),
-                cgen(name="discreet", label="Discreet Transpo", init=[1], col="forestgreen"),
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
+                cgraph(name="grainenv", label="Grain Envelope", func=[(0,0),(0.5,1),(1,0)], table=True, curved=True, col="purple1"),
+                cslider(name="transp", label="Transpose", min=-4800, max=4800, init=0, rel="lin", unit="cnts", col="red1"),
+                cslider(name="pos", label="Grain Position", min=0, max=1, init=0, func=[(0,0),(1,1)], rel="lin", unit="x", col="purple1"),
+                cslider(name="posrnd", label="Position Random", min=0.00001, max=0.5, init=0.001, rel="log", unit="x", col="orange2", half=True),
+                cslider(name="pitrnd", label="Pitch Random", min=0.00001, max=0.5, init=0.001, rel="log", unit="x", col="orange3", half=True),
+                cslider(name="cut", label="Filter Freq", min=100, max=18000, init=20000, rel="log", unit="Hz", col="green1"),
+                cslider(name="filterq", label="Filter Q", min=0.5, max=10, init=0.707, rel="log", unit="Q", col="green2"),
+                cslider(name="dur", label="Grain Duration", min=0.01, max=10, init=0.1, up=True, rel="log", unit="sec", half=True),
+                cslider(name="num", label="Num of Grains", min=1, max=256, init=32, rel="lin", gliss=0, res="int", up=True, unit="grs", half=True),
+                cpopup(name="filttype", label="Filter Type", init="Lowpass", col="green1", value=["Lowpass","Highpass","Bandpass","Bandstop"]),
+                cpopup(name="balance", label = "Balance", init= "Off", col="blue1", value=["Off","Compress", "Source"]),
+                cgen(name="discreet", label="Discreet Transpo", init=[1], col="red1"),
                 cpoly()
           ]
+
+
+####################################
+##### Cecilia reserved section #####
+#### Presets saved from the app ####
+####################################
+
+
+CECILIA_PRESETS = {u'01-Stretcher': {'active': False,
+                   'gainSlider': -3.0,
+                   'nchnls': 2,
+                   'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                   'totalTime': 60.0,
+                   'userGraph': {'cut': {'curved': False, 'data': [[0.0, 1.0202891182582743], [1.0, 1.0202891182582743]]},
+                                 'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                 'filterq': {'curved': False, 'data': [[0.0, 0.11563869392888107], [1.0, 0.11563869392888107]]},
+                                 'grainenv': {'curved': True, 'data': [[0.0, 0.0], [0.29742808697087464, 1.0], [0.6890671188271835, 1.0], [1.0, 0.0]]},
+                                 'pitrnd': {'curved': False, 'data': [[0.0, 0.4256251898085072], [1.0, 0.4256251898085072]]},
+                                 'pos': {'curved': False, 'data': [[0.0, 0.0], [1.0, 1.0]]},
+                                 'posrnd': {'curved': False, 'data': [[0.0, 0.4256251898085072], [1.0, 0.4256251898085072]]},
+                                 'transp': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]}},
+                   'userInputs': {'sndtable': {'dursndtable': 5.768526077097506,
+                                               'mode': 0,
+                                               'nchnlssndtable': 1,
+                                               'offsndtable': 0.0,
+                                               'path': u'/home/olivier/Dropbox/private/snds/baseballmajeur_m.aif',
+                                               'srsndtable': 44100.0,
+                                               'type': 'cfilein'}},
+                   'userSliders': {'cut': [18000.000000000015, 0, None, 1, None, None],
+                                   'dur': [0.15000000000000005, 0, None, 1, None, None],
+                                   'filterq': [0.707, 0, None, 1, None, None],
+                                   'num': [64, 0, None, 1, None, None],
+                                   'pitrnd': [0.001, 0, None, 1, None, None],
+                                   'pos': [0.5799712538719177, 1, None, 1, None, None],
+                                   'posrnd': [0.001, 0, None, 1, None, None],
+                                   'transp': [0.0, 0, None, 1, None, None]},
+                   'userTogglePopups': {'balance': 0, 'discreet': [1], 'filttype': 0, 'poly': 0, 'polynum': 0}},
+ u'02-Big Chord': {'active': False,
+                   'gainSlider': -3.0,
+                   'nchnls': 2,
+                   'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                   'totalTime': 60.0,
+                   'userGraph': {'cut': {'curved': False, 'data': [[0.0, 1.0202891182582743], [1.0, 1.0202891182582743]]},
+                                 'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                 'filterq': {'curved': False, 'data': [[0.0, 0.11563869392888107], [1.0, 0.11563869392888107]]},
+                                 'grainenv': {'curved': True, 'data': [[0.0, 0.0], [0.29742808697087464, 1.0], [0.6890671188271835, 1.0], [1.0, 0.0]]},
+                                 'pitrnd': {'curved': False, 'data': [[0.0, 0.4256251898085072], [1.0, 0.4256251898085072]]},
+                                 'pos': {'curved': False, 'data': [[0.0, 0.23473658568992628], [1.0, 0.27143078592466297]]},
+                                 'posrnd': {'curved': False, 'data': [[0.0, 0.4256251898085072], [1.0, 0.4256251898085072]]},
+                                 'transp': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]}},
+                   'userInputs': {'sndtable': {'dursndtable': 5.466417233560091,
+                                               'mode': 0,
+                                               'nchnlssndtable': 1,
+                                               'offsndtable': 0.0,
+                                               'path': u'/home/olivier/Dropbox/private/snds/flute.wav',
+                                               'srsndtable': 44100.0,
+                                               'type': 'cfilein'}},
+                   'userSliders': {'cut': [18000.000000000015, 0, None, 1, None, None],
+                                   'dur': [0.15000000000000005, 0, None, 1, None, None],
+                                   'filterq': [0.707, 0, None, 1, None, None],
+                                   'num': [64, 0, None, 1, None, None],
+                                   'pitrnd': [0.001, 0, None, 1, None, None],
+                                   'pos': [0.255664587020874, 1, None, 1, None, None],
+                                   'posrnd': [0.001, 0, None, 1, None, None],
+                                   'transp': [-1200.0, 0, None, 1, None, None]},
+                   'userTogglePopups': {'balance': 0, 'discreet': [1, 1.25, 0.5, 0.75], 'filttype': 0, 'poly': 0, 'polynum': 0}},
+ u'03-Rhythm Grains': {'active': False,
+                       'gainSlider': 0.0,
+                       'nchnls': 2,
+                       'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                   1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                   2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                   3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                       'totalTime': 30.00000000000007,
+                       'userGraph': {'cut': {'curved': False,
+                                             'data': [[0.0, 0.4500000000000002],
+                                                      [0.005025125628140704, 0.4500000000000002],
+                                                      [0.005025125628140704, 0.5580000000000003],
+                                                      [0.010050251256281407, 0.5580000000000003],
+                                                      [0.010050251256281407, 0.5270000000000002],
+                                                      [0.015075376884422113, 0.5270000000000002],
+                                                      [0.015075376884422113, 0.40700000000000014],
+                                                      [0.020100502512562814, 0.40700000000000014],
+                                                      [0.020100502512562814, 0.28500000000000003],
+                                                      [0.02512562814070352, 0.28500000000000003],
+                                                      [0.02512562814070352, 0.368],
+                                                      [0.030150753768844227, 0.368],
+                                                      [0.030150753768844227, 0.4430000000000001],
+                                                      [0.035175879396984924, 0.4430000000000001],
+                                                      [0.035175879396984924, 0.5270000000000002],
+                                                      [0.04020100502512563, 0.5270000000000002],
+                                                      [0.04020100502512563, 0.40700000000000014],
+                                                      [0.04522613065326634, 0.40700000000000014],
+                                                      [0.04522613065326634, 0.28500000000000003],
+                                                      [0.05025125628140704, 0.28500000000000003],
+                                                      [0.05025125628140704, 0.368],
+                                                      [0.05527638190954775, 0.368],
+                                                      [0.05527638190954775, 0.4430000000000001],
+                                                      [0.060301507537688454, 0.4430000000000001],
+                                                      [0.060301507537688454, 0.5270000000000002],
+                                                      [0.06532663316582915, 0.5270000000000002],
+                                                      [0.06532663316582915, 0.40700000000000014],
+                                                      [0.07035175879396985, 0.40700000000000014],
+                                                      [0.07035175879396985, 0.28500000000000003],
+                                                      [0.07537688442211056, 0.28500000000000003],
+                                                      [0.07537688442211056, 0.368],
+                                                      [0.08040201005025126, 0.368],
+                                                      [0.08040201005025126, 0.4430000000000001],
+                                                      [0.08542713567839195, 0.4430000000000001],
+                                                      [0.08542713567839195, 0.5270000000000002],
+                                                      [0.09045226130653268, 0.5270000000000002],
+                                                      [0.09045226130653268, 0.40700000000000014],
+                                                      [0.09547738693467336, 0.40700000000000014],
+                                                      [0.09547738693467336, 0.28500000000000003],
+                                                      [0.10050251256281408, 0.28500000000000003],
+                                                      [0.10050251256281408, 0.368],
+                                                      [0.10552763819095477, 0.368],
+                                                      [0.10552763819095477, 0.4430000000000001],
+                                                      [0.1105527638190955, 0.4430000000000001],
+                                                      [0.1105527638190955, 0.5270000000000002],
+                                                      [0.11557788944723618, 0.5270000000000002],
+                                                      [0.11557788944723618, 0.40700000000000014],
+                                                      [0.12060301507537691, 0.40700000000000014],
+                                                      [0.12060301507537691, 0.28500000000000003],
+                                                      [0.12562814070351758, 0.28500000000000003],
+                                                      [0.12562814070351758, 0.368],
+                                                      [0.1306532663316583, 0.368],
+                                                      [0.1306532663316583, 0.4430000000000001],
+                                                      [0.135678391959799, 0.4430000000000001],
+                                                      [0.135678391959799, 0.3970000000000001],
+                                                      [0.1407035175879397, 0.3970000000000001],
+                                                      [0.1407035175879397, 0.48100000000000004],
+                                                      [0.1457286432160804, 0.48100000000000004],
+                                                      [0.1457286432160804, 0.4830000000000002],
+                                                      [0.15075376884422112, 0.4830000000000002],
+                                                      [0.15075376884422112, 0.4300000000000001],
+                                                      [0.15577889447236182, 0.4300000000000001],
+                                                      [0.15577889447236182, 0.5130000000000001],
+                                                      [0.16080402010050251, 0.5130000000000001],
+                                                      [0.16080402010050251, 0.5250000000000002],
+                                                      [0.1658291457286432, 0.5250000000000002],
+                                                      [0.1658291457286432, 0.3970000000000001],
+                                                      [0.1708542713567839, 0.3970000000000001],
+                                                      [0.1708542713567839, 0.48100000000000004],
+                                                      [0.17587939698492464, 0.48100000000000004],
+                                                      [0.17587939698492464, 0.4830000000000002],
+                                                      [0.18090452261306536, 0.4830000000000002],
+                                                      [0.18090452261306536, 0.4300000000000001],
+                                                      [0.18592964824120603, 0.4300000000000001],
+                                                      [0.18592964824120603, 0.5130000000000001],
+                                                      [0.19095477386934673, 0.5130000000000001],
+                                                      [0.19095477386934673, 0.5250000000000002],
+                                                      [0.19597989949748745, 0.5250000000000002],
+                                                      [0.19597989949748745, 0.3970000000000001],
+                                                      [0.20100502512562815, 0.3970000000000001],
+                                                      [0.20100502512562815, 0.48100000000000004],
+                                                      [0.20603015075376885, 0.48100000000000004],
+                                                      [0.20603015075376885, 0.4830000000000002],
+                                                      [0.21105527638190955, 0.4830000000000002],
+                                                      [0.21105527638190955, 0.4300000000000001],
+                                                      [0.21608040201005024, 0.4300000000000001],
+                                                      [0.21608040201005024, 0.5130000000000001],
+                                                      [0.221105527638191, 0.5130000000000001],
+                                                      [0.221105527638191, 0.5250000000000002],
+                                                      [0.22613065326633167, 0.5250000000000002],
+                                                      [0.22613065326633167, 0.5640000000000002],
+                                                      [0.23115577889447236, 0.5640000000000002],
+                                                      [0.23115577889447236, 0.5130000000000001],
+                                                      [0.2361809045226131, 0.5130000000000001],
+                                                      [0.2361809045226131, 0.49000000000000005],
+                                                      [0.24120603015075381, 0.49000000000000005],
+                                                      [0.24120603015075381, 0.5670000000000002],
+                                                      [0.24623115577889448, 0.5670000000000002],
+                                                      [0.24623115577889448, 0.5640000000000002],
+                                                      [0.25125628140703515, 0.5640000000000002],
+                                                      [0.25125628140703515, 0.5130000000000001],
+                                                      [0.2562814070351759, 0.5130000000000001],
+                                                      [0.2562814070351759, 0.49000000000000005],
+                                                      [0.2613065326633166, 0.49000000000000005],
+                                                      [0.2613065326633166, 0.5670000000000002],
+                                                      [0.2663316582914573, 0.5670000000000002],
+                                                      [0.2663316582914573, 0.5640000000000002],
+                                                      [0.271356783919598, 0.5640000000000002],
+                                                      [0.271356783919598, 0.5130000000000001],
+                                                      [0.27638190954773867, 0.5130000000000001],
+                                                      [0.27638190954773867, 0.49000000000000005],
+                                                      [0.2814070351758794, 0.49000000000000005],
+                                                      [0.2814070351758794, 0.5670000000000002],
+                                                      [0.2864321608040201, 0.5670000000000002],
+                                                      [0.2864321608040201, 0.5640000000000002],
+                                                      [0.2914572864321608, 0.5640000000000002],
+                                                      [0.2914572864321608, 0.5130000000000001],
+                                                      [0.2964824120603015, 0.5130000000000001],
+                                                      [0.2964824120603015, 0.49000000000000005],
+                                                      [0.30150753768844224, 0.49000000000000005],
+                                                      [0.30150753768844224, 0.5670000000000002],
+                                                      [0.3065326633165829, 0.5670000000000002],
+                                                      [0.3065326633165829, 0.5640000000000002],
+                                                      [0.31155778894472363, 0.5640000000000002],
+                                                      [0.31155778894472363, 0.5130000000000001],
+                                                      [0.3165829145728643, 0.5130000000000001],
+                                                      [0.3165829145728643, 0.49000000000000005],
+                                                      [0.32160804020100503, 0.49000000000000005],
+                                                      [0.32160804020100503, 0.5670000000000002],
+                                                      [0.3266331658291458, 0.5670000000000002],
+                                                      [0.3266331658291458, 0.5440000000000002],
+                                                      [0.3316582914572864, 0.5440000000000002],
+                                                      [0.3316582914572864, 0.6410000000000002],
+                                                      [0.33668341708542715, 0.6410000000000002],
+                                                      [0.33668341708542715, 0.684],
+                                                      [0.3417085427135678, 0.684],
+                                                      [0.3417085427135678, 0.6900000000000002],
+                                                      [0.34673366834170855, 0.6900000000000002],
+                                                      [0.34673366834170855, 0.6960000000000003],
+                                                      [0.35175879396984927, 0.6960000000000003],
+                                                      [0.35175879396984927, 0.7000000000000002],
+                                                      [0.35678391959798994, 0.7000000000000002],
+                                                      [0.35678391959798994, 0.5620000000000002],
+                                                      [0.3618090452261307, 0.5620000000000002],
+                                                      [0.3618090452261307, 0.6830000000000003],
+                                                      [0.3668341708542714, 0.6830000000000003],
+                                                      [0.3668341708542714, 0.6940000000000003],
+                                                      [0.37185929648241206, 0.6940000000000003],
+                                                      [0.37185929648241206, 0.64],
+                                                      [0.37688442211055284, 0.64],
+                                                      [0.37688442211055284, 0.6810000000000002],
+                                                      [0.38190954773869346, 0.6810000000000002],
+                                                      [0.38190954773869346, 0.5440000000000002],
+                                                      [0.38693467336683424, 0.5440000000000002],
+                                                      [0.38693467336683424, 0.5620000000000002],
+                                                      [0.3919597989949749, 0.5620000000000002],
+                                                      [0.3919597989949749, 0.6830000000000003],
+                                                      [0.3969849246231156, 0.6830000000000003],
+                                                      [0.3969849246231156, 0.6940000000000003],
+                                                      [0.4020100502512563, 0.6940000000000003],
+                                                      [0.4020100502512563, 0.64],
+                                                      [0.40703517587939697, 0.64],
+                                                      [0.40703517587939697, 0.6810000000000002],
+                                                      [0.4120603015075377, 0.6810000000000002],
+                                                      [0.4120603015075377, 0.5440000000000002],
+                                                      [0.4170854271356785, 0.5440000000000002],
+                                                      [0.4170854271356785, 0.5620000000000002],
+                                                      [0.4221105527638191, 0.5620000000000002],
+                                                      [0.4221105527638191, 0.6830000000000003],
+                                                      [0.42713567839195987, 0.6830000000000003],
+                                                      [0.42713567839195987, 0.6940000000000003],
+                                                      [0.4321608040201005, 0.6940000000000003],
+                                                      [0.4321608040201005, 0.64],
+                                                      [0.4371859296482413, 0.64],
+                                                      [0.4371859296482413, 0.6810000000000002],
+                                                      [0.442211055276382, 0.6810000000000002],
+                                                      [0.442211055276382, 0.5440000000000002],
+                                                      [0.44723618090452266, 0.5440000000000002],
+                                                      [0.44723618090452266, 0.5620000000000002],
+                                                      [0.45226130653266333, 0.5620000000000002],
+                                                      [0.45226130653266333, 0.6830000000000003],
+                                                      [0.45728643216080406, 0.6830000000000003],
+                                                      [0.45728643216080406, 0.6940000000000003],
+                                                      [0.4623115577889447, 0.6940000000000003],
+                                                      [0.4623115577889447, 0.64],
+                                                      [0.4673366834170855, 0.64],
+                                                      [0.4673366834170855, 0.6810000000000002],
+                                                      [0.4723618090452262, 0.6810000000000002],
+                                                      [0.4723618090452262, 0.5440000000000002],
+                                                      [0.47738693467336685, 0.5440000000000002],
+                                                      [0.47738693467336685, 0.5620000000000002],
+                                                      [0.48241206030150763, 0.5620000000000002],
+                                                      [0.48241206030150763, 0.6830000000000003],
+                                                      [0.4874371859296482, 0.6830000000000003],
+                                                      [0.4874371859296482, 0.6940000000000003],
+                                                      [0.49246231155778897, 0.6940000000000003],
+                                                      [0.49246231155778897, 0.64],
+                                                      [0.4974874371859296, 0.64],
+                                                      [0.4974874371859296, 0.6810000000000002],
+                                                      [0.5025125628140703, 0.6810000000000002],
+                                                      [0.5025125628140703, 0.684],
+                                                      [0.507537688442211, 0.684],
+                                                      [0.507537688442211, 0.5310000000000001],
+                                                      [0.5125628140703518, 0.5310000000000001],
+                                                      [0.5125628140703518, 0.5330000000000001],
+                                                      [0.5175879396984925, 0.5330000000000001],
+                                                      [0.5175879396984925, 0.6490000000000001],
+                                                      [0.5226130653266332, 0.6490000000000001],
+                                                      [0.5226130653266332, 0.6540000000000002],
+                                                      [0.5276381909547738, 0.6540000000000002],
+                                                      [0.5276381909547738, 0.6630000000000003],
+                                                      [0.5326633165829145, 0.6630000000000003],
+                                                      [0.5326633165829145, 0.684],
+                                                      [0.5376884422110553, 0.684],
+                                                      [0.5376884422110553, 0.5310000000000001],
+                                                      [0.542713567839196, 0.5310000000000001],
+                                                      [0.542713567839196, 0.5330000000000001],
+                                                      [0.5477386934673367, 0.5330000000000001],
+                                                      [0.5477386934673367, 0.6490000000000001],
+                                                      [0.5527638190954773, 0.6490000000000001],
+                                                      [0.5527638190954773, 0.6540000000000002],
+                                                      [0.5577889447236181, 0.6540000000000002],
+                                                      [0.5577889447236181, 0.6630000000000003],
+                                                      [0.5628140703517588, 0.6630000000000003],
+                                                      [0.5628140703517588, 0.6650000000000003],
+                                                      [0.5678391959798995, 0.6650000000000003],
+                                                      [0.5678391959798995, 0.6390000000000002],
+                                                      [0.5728643216080402, 0.6390000000000002],
+                                                      [0.5728643216080402, 0.515],
+                                                      [0.577889447236181, 0.515],
+                                                      [0.577889447236181, 0.5120000000000001],
+                                                      [0.5829145728643216, 0.5120000000000001],
+                                                      [0.5829145728643216, 0.4660000000000001],
+                                                      [0.5879396984924623, 0.4660000000000001],
+                                                      [0.5879396984924623, 0.35500000000000004],
+                                                      [0.592964824120603, 0.35500000000000004],
+                                                      [0.592964824120603, 0.26900000000000013],
+                                                      [0.5979899497487438, 0.26900000000000013],
+                                                      [0.5979899497487438, 0.20600000000000004],
+                                                      [0.6030150753768845, 0.20600000000000004],
+                                                      [0.6030150753768845, 0.6650000000000003],
+                                                      [0.6080402010050251, 0.6650000000000003],
+                                                      [0.6080402010050251, 0.5120000000000001],
+                                                      [0.6130653266331658, 0.5120000000000001],
+                                                      [0.6130653266331658, 0.4660000000000001],
+                                                      [0.6180904522613065, 0.4660000000000001],
+                                                      [0.6180904522613065, 0.35500000000000004],
+                                                      [0.6231155778894473, 0.35500000000000004],
+                                                      [0.6231155778894473, 0.26900000000000013],
+                                                      [0.628140703517588, 0.26900000000000013],
+                                                      [0.628140703517588, 0.20600000000000004],
+                                                      [0.6331658291457286, 0.20600000000000004],
+                                                      [0.6331658291457286, 0.6650000000000003],
+                                                      [0.6381909547738693, 0.6650000000000003],
+                                                      [0.6381909547738693, 0.5120000000000001],
+                                                      [0.6432160804020101, 0.5120000000000001],
+                                                      [0.6432160804020101, 0.4660000000000001],
+                                                      [0.6482412060301508, 0.4660000000000001],
+                                                      [0.6482412060301508, 0.35500000000000004],
+                                                      [0.6532663316582916, 0.35500000000000004],
+                                                      [0.6532663316582916, 0.26900000000000013],
+                                                      [0.6582914572864321, 0.26900000000000013],
+                                                      [0.6582914572864321, 0.20600000000000004],
+                                                      [0.6633165829145728, 0.20600000000000004],
+                                                      [0.6633165829145728, 0.32],
+                                                      [0.6683417085427136, 0.32],
+                                                      [0.6683417085427136, 0.2130000000000001],
+                                                      [0.6733668341708543, 0.2130000000000001],
+                                                      [0.6733668341708543, 0.31700000000000006],
+                                                      [0.678391959798995, 0.31700000000000006],
+                                                      [0.678391959798995, 0.357],
+                                                      [0.6834170854271356, 0.357],
+                                                      [0.6834170854271356, 0.32],
+                                                      [0.6884422110552764, 0.32],
+                                                      [0.6884422110552764, 0.31700000000000006],
+                                                      [0.6934673366834171, 0.31700000000000006],
+                                                      [0.6934673366834171, 0.357],
+                                                      [0.6984924623115579, 0.357],
+                                                      [0.6984924623115579, 0.32],
+                                                      [0.7035175879396985, 0.32],
+                                                      [0.7035175879396985, 0.31700000000000006],
+                                                      [0.708542713567839, 0.31700000000000006],
+                                                      [0.708542713567839, 0.357],
+                                                      [0.7135678391959799, 0.357],
+                                                      [0.7135678391959799, 0.32],
+                                                      [0.7185929648241206, 0.32],
+                                                      [0.7185929648241206, 0.31700000000000006],
+                                                      [0.7236180904522614, 0.31700000000000006],
+                                                      [0.7236180904522614, 0.357],
+                                                      [0.7286432160804021, 0.357],
+                                                      [0.7286432160804021, 0.32],
+                                                      [0.7336683417085428, 0.32],
+                                                      [0.7336683417085428, 0.31700000000000006],
+                                                      [0.7386934673366834, 0.31700000000000006],
+                                                      [0.7386934673366834, 0.357],
+                                                      [0.7437185929648241, 0.357],
+                                                      [0.7437185929648241, 0.30600000000000005],
+                                                      [0.7487437185929647, 0.30600000000000005],
+                                                      [0.7487437185929647, 0.3510000000000001],
+                                                      [0.7537688442211057, 0.3510000000000001],
+                                                      [0.7537688442211057, 0.45600000000000007],
+                                                      [0.7587939698492463, 0.45600000000000007],
+                                                      [0.7587939698492463, 0.5070000000000002],
+                                                      [0.7638190954773869, 0.5070000000000002],
+                                                      [0.7638190954773869, 0.6280000000000002],
+                                                      [0.7688442211055276, 0.6280000000000002],
+                                                      [0.7688442211055276, 0.64],
+                                                      [0.7738693467336685, 0.64],
+                                                      [0.7738693467336685, 0.5630000000000002],
+                                                      [0.7788944723618091, 0.5630000000000002],
+                                                      [0.7788944723618091, 0.46],
+                                                      [0.7839195979899498, 0.46],
+                                                      [0.7839195979899498, 0.30600000000000005],
+                                                      [0.7889447236180904, 0.30600000000000005],
+                                                      [0.7889447236180904, 0.5070000000000002],
+                                                      [0.7939698492462312, 0.5070000000000002],
+                                                      [0.7939698492462312, 0.6280000000000002],
+                                                      [0.7989949748743719, 0.6280000000000002],
+                                                      [0.7989949748743719, 0.64],
+                                                      [0.8040201005025126, 0.64],
+                                                      [0.8040201005025126, 0.5630000000000002],
+                                                      [0.8090452261306532, 0.5630000000000002],
+                                                      [0.8090452261306532, 0.46],
+                                                      [0.8140703517587939, 0.46],
+                                                      [0.8140703517587939, 0.30600000000000005],
+                                                      [0.8190954773869348, 0.30600000000000005],
+                                                      [0.8190954773869348, 0.5070000000000002],
+                                                      [0.8241206030150754, 0.5070000000000002],
+                                                      [0.8241206030150754, 0.6280000000000002],
+                                                      [0.8291457286432161, 0.6280000000000002],
+                                                      [0.8291457286432161, 0.64],
+                                                      [0.834170854271357, 0.64],
+                                                      [0.834170854271357, 0.5630000000000002],
+                                                      [0.8391959798994976, 0.5630000000000002],
+                                                      [0.8391959798994976, 0.46],
+                                                      [0.8442211055276382, 0.46],
+                                                      [0.8442211055276382, 0.30600000000000005],
+                                                      [0.8492462311557787, 0.30600000000000005],
+                                                      [0.8492462311557787, 0.5070000000000002],
+                                                      [0.8542713567839197, 0.5070000000000002],
+                                                      [0.8542713567839197, 0.6280000000000002],
+                                                      [0.8592964824120602, 0.6280000000000002],
+                                                      [0.8592964824120602, 0.64],
+                                                      [0.864321608040201, 0.64],
+                                                      [0.864321608040201, 0.5630000000000002],
+                                                      [0.8693467336683416, 0.5630000000000002],
+                                                      [0.8693467336683416, 0.46],
+                                                      [0.8743718592964826, 0.46],
+                                                      [0.8743718592964826, 0.30600000000000005],
+                                                      [0.8793969849246231, 0.30600000000000005],
+                                                      [0.8793969849246231, 0.5070000000000002],
+                                                      [0.884422110552764, 0.5070000000000002],
+                                                      [0.884422110552764, 0.6280000000000002],
+                                                      [0.8894472361809045, 0.6280000000000002],
+                                                      [0.8894472361809045, 0.64],
+                                                      [0.8944723618090453, 0.64],
+                                                      [0.8944723618090453, 0.5630000000000002],
+                                                      [0.8994974874371859, 0.5630000000000002],
+                                                      [0.8994974874371859, 0.46],
+                                                      [0.9045226130653267, 0.46],
+                                                      [0.9045226130653267, 0.5740000000000002],
+                                                      [0.9095477386934675, 0.5740000000000002],
+                                                      [0.9095477386934675, 0.528],
+                                                      [0.9145728643216081, 0.528],
+                                                      [0.9145728643216081, 0.44500000000000006],
+                                                      [0.9195979899497488, 0.44500000000000006],
+                                                      [0.9195979899497488, 0.414],
+                                                      [0.9246231155778895, 0.414],
+                                                      [0.9246231155778895, 0.49699999999999994],
+                                                      [0.9296482412060303, 0.49699999999999994],
+                                                      [0.9296482412060303, 0.5540000000000002],
+                                                      [0.934673366834171, 0.5540000000000002],
+                                                      [0.934673366834171, 0.6760000000000003],
+                                                      [0.9396984924623113, 0.6760000000000003],
+                                                      [0.9396984924623113, 0.6630000000000003],
+                                                      [0.9447236180904524, 0.6630000000000003],
+                                                      [0.9447236180904524, 0.5650000000000002],
+                                                      [0.9497487437185929, 0.5650000000000002],
+                                                      [0.9497487437185929, 0.46200000000000013],
+                                                      [0.9547738693467337, 0.46200000000000013],
+                                                      [0.9547738693467337, 0.5010000000000001],
+                                                      [0.9597989949748746, 0.5010000000000001],
+                                                      [0.9597989949748746, 0.495],
+                                                      [0.9648241206030153, 0.495],
+                                                      [0.9648241206030153, 0.515],
+                                                      [0.9698492462311559, 0.515],
+                                                      [0.9698492462311559, 0.5760000000000002],
+                                                      [0.9748743718592964, 0.5760000000000002],
+                                                      [0.9748743718592964, 0.5770000000000002],
+                                                      [0.9798994974874372, 0.5770000000000002],
+                                                      [0.9798994974874372, 0.5740000000000002],
+                                                      [0.9849246231155779, 0.5740000000000002],
+                                                      [0.9849246231155779, 0.5010000000000001],
+                                                      [0.9899497487437187, 0.5010000000000001],
+                                                      [0.9899497487437187, 0.495],
+                                                      [0.9949748743718592, 0.495],
+                                                      [0.9949748743718592, 0.515],
+                                                      [1.0, 0.515],
+                                                      [1.0, 0.5760000000000002]]},
+                                     'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                     'filterq': {'curved': False, 'data': [[0.0, 0.11563869392888107], [1.0, 0.11563869392888107]]},
+                                     'grainenv': {'curved': True, 'data': [[0.0, 0.0], [0.25841423705415417, 1.0], [0.7325825668112177, 1.0], [1.0, 0.0]]},
+                                     'pitrnd': {'curved': False, 'data': [[0.0, 0.4256251898085072], [1.0, 0.4256251898085072]]},
+                                     'pos': {'curved': False,
+                                             'data': [[0.0, 0.2794838009610915],
+                                                      [0.005025125628140704, 0.2794838009610915],
+                                                      [0.005025125628140704, 0.3874838009610916],
+                                                      [0.010050251256281407, 0.3874838009610916],
+                                                      [0.010050251256281407, 0.35648380096109156],
+                                                      [0.015075376884422113, 0.35648380096109156],
+                                                      [0.015075376884422113, 0.23648380096109142],
+                                                      [0.020100502512562814, 0.23648380096109142],
+                                                      [0.020100502512562814, 0.11448380096109131],
+                                                      [0.02512562814070352, 0.11448380096109131],
+                                                      [0.02512562814070352, 0.19748380096109128],
+                                                      [0.030150753768844227, 0.19748380096109128],
+                                                      [0.030150753768844227, 0.27248380096109137],
+                                                      [0.035175879396984924, 0.27248380096109137],
+                                                      [0.035175879396984924, 0.35648380096109156],
+                                                      [0.04020100502512563, 0.35648380096109156],
+                                                      [0.04020100502512563, 0.23648380096109142],
+                                                      [0.04522613065326634, 0.23648380096109142],
+                                                      [0.04522613065326634, 0.11448380096109131],
+                                                      [0.05025125628140704, 0.11448380096109131],
+                                                      [0.05025125628140704, 0.19748380096109128],
+                                                      [0.05527638190954775, 0.19748380096109128],
+                                                      [0.05527638190954775, 0.27248380096109137],
+                                                      [0.060301507537688454, 0.27248380096109137],
+                                                      [0.060301507537688454, 0.35648380096109156],
+                                                      [0.06532663316582915, 0.35648380096109156],
+                                                      [0.06532663316582915, 0.23648380096109142],
+                                                      [0.07035175879396985, 0.23648380096109142],
+                                                      [0.07035175879396985, 0.11448380096109131],
+                                                      [0.07537688442211056, 0.11448380096109131],
+                                                      [0.07537688442211056, 0.19748380096109128],
+                                                      [0.08040201005025126, 0.19748380096109128],
+                                                      [0.08040201005025126, 0.27248380096109137],
+                                                      [0.08542713567839195, 0.27248380096109137],
+                                                      [0.08542713567839195, 0.35648380096109156],
+                                                      [0.09045226130653268, 0.35648380096109156],
+                                                      [0.09045226130653268, 0.23648380096109142],
+                                                      [0.09547738693467336, 0.23648380096109142],
+                                                      [0.09547738693467336, 0.11448380096109131],
+                                                      [0.10050251256281408, 0.11448380096109131],
+                                                      [0.10050251256281408, 0.19748380096109128],
+                                                      [0.10552763819095477, 0.19748380096109128],
+                                                      [0.10552763819095477, 0.27248380096109137],
+                                                      [0.1105527638190955, 0.27248380096109137],
+                                                      [0.1105527638190955, 0.35648380096109156],
+                                                      [0.11557788944723618, 0.35648380096109156],
+                                                      [0.11557788944723618, 0.23648380096109142],
+                                                      [0.12060301507537691, 0.23648380096109142],
+                                                      [0.12060301507537691, 0.11448380096109131],
+                                                      [0.12562814070351758, 0.11448380096109131],
+                                                      [0.12562814070351758, 0.19748380096109128],
+                                                      [0.1306532663316583, 0.19748380096109128],
+                                                      [0.1306532663316583, 0.27248380096109137],
+                                                      [0.135678391959799, 0.27248380096109137],
+                                                      [0.135678391959799, 0.22648380096109136],
+                                                      [0.1407035175879397, 0.22648380096109136],
+                                                      [0.1407035175879397, 0.3104838009610913],
+                                                      [0.1457286432160804, 0.3104838009610913],
+                                                      [0.1457286432160804, 0.3124838009610915],
+                                                      [0.15075376884422112, 0.3124838009610915],
+                                                      [0.15075376884422112, 0.25948380096109136],
+                                                      [0.15577889447236182, 0.25948380096109136],
+                                                      [0.15577889447236182, 0.34248380096109143],
+                                                      [0.16080402010050251, 0.34248380096109143],
+                                                      [0.16080402010050251, 0.35448380096109156],
+                                                      [0.1658291457286432, 0.35448380096109156],
+                                                      [0.1658291457286432, 0.22648380096109136],
+                                                      [0.1708542713567839, 0.22648380096109136],
+                                                      [0.1708542713567839, 0.3104838009610913],
+                                                      [0.17587939698492464, 0.3104838009610913],
+                                                      [0.17587939698492464, 0.3124838009610915],
+                                                      [0.18090452261306536, 0.3124838009610915],
+                                                      [0.18090452261306536, 0.25948380096109136],
+                                                      [0.18592964824120603, 0.25948380096109136],
+                                                      [0.18592964824120603, 0.34248380096109143],
+                                                      [0.19095477386934673, 0.34248380096109143],
+                                                      [0.19095477386934673, 0.35448380096109156],
+                                                      [0.19597989949748745, 0.35448380096109156],
+                                                      [0.19597989949748745, 0.22648380096109136],
+                                                      [0.20100502512562815, 0.22648380096109136],
+                                                      [0.20100502512562815, 0.3104838009610913],
+                                                      [0.20603015075376885, 0.3104838009610913],
+                                                      [0.20603015075376885, 0.3124838009610915],
+                                                      [0.21105527638190955, 0.3124838009610915],
+                                                      [0.21105527638190955, 0.25948380096109136],
+                                                      [0.21608040201005024, 0.25948380096109136],
+                                                      [0.21608040201005024, 0.34248380096109143],
+                                                      [0.221105527638191, 0.34248380096109143],
+                                                      [0.221105527638191, 0.35448380096109156],
+                                                      [0.22613065326633167, 0.35448380096109156],
+                                                      [0.22613065326633167, 0.3934838009610915],
+                                                      [0.23115577889447236, 0.3934838009610915],
+                                                      [0.23115577889447236, 0.34248380096109143],
+                                                      [0.2361809045226131, 0.34248380096109143],
+                                                      [0.2361809045226131, 0.3194838009610913],
+                                                      [0.24120603015075381, 0.3194838009610913],
+                                                      [0.24120603015075381, 0.3964838009610915],
+                                                      [0.24623115577889448, 0.3964838009610915],
+                                                      [0.24623115577889448, 0.3934838009610915],
+                                                      [0.25125628140703515, 0.3934838009610915],
+                                                      [0.25125628140703515, 0.34248380096109143],
+                                                      [0.2562814070351759, 0.34248380096109143],
+                                                      [0.2562814070351759, 0.3194838009610913],
+                                                      [0.2613065326633166, 0.3194838009610913],
+                                                      [0.2613065326633166, 0.3964838009610915],
+                                                      [0.2663316582914573, 0.3964838009610915],
+                                                      [0.2663316582914573, 0.3934838009610915],
+                                                      [0.271356783919598, 0.3934838009610915],
+                                                      [0.271356783919598, 0.34248380096109143],
+                                                      [0.27638190954773867, 0.34248380096109143],
+                                                      [0.27638190954773867, 0.3194838009610913],
+                                                      [0.2814070351758794, 0.3194838009610913],
+                                                      [0.2814070351758794, 0.3964838009610915],
+                                                      [0.2864321608040201, 0.3964838009610915],
+                                                      [0.2864321608040201, 0.3934838009610915],
+                                                      [0.2914572864321608, 0.3934838009610915],
+                                                      [0.2914572864321608, 0.34248380096109143],
+                                                      [0.2964824120603015, 0.34248380096109143],
+                                                      [0.2964824120603015, 0.3194838009610913],
+                                                      [0.30150753768844224, 0.3194838009610913],
+                                                      [0.30150753768844224, 0.3964838009610915],
+                                                      [0.3065326633165829, 0.3964838009610915],
+                                                      [0.3065326633165829, 0.3934838009610915],
+                                                      [0.31155778894472363, 0.3934838009610915],
+                                                      [0.31155778894472363, 0.34248380096109143],
+                                                      [0.3165829145728643, 0.34248380096109143],
+                                                      [0.3165829145728643, 0.3194838009610913],
+                                                      [0.32160804020100503, 0.3194838009610913],
+                                                      [0.32160804020100503, 0.3964838009610915],
+                                                      [0.3266331658291458, 0.3964838009610915],
+                                                      [0.3266331658291458, 0.37348380096109146],
+                                                      [0.3316582914572864, 0.37348380096109146],
+                                                      [0.3316582914572864, 0.47048380096109155],
+                                                      [0.33668341708542715, 0.47048380096109155],
+                                                      [0.33668341708542715, 0.5134838009610914],
+                                                      [0.3417085427135678, 0.5134838009610914],
+                                                      [0.3417085427135678, 0.5194838009610915],
+                                                      [0.34673366834170855, 0.5194838009610915],
+                                                      [0.34673366834170855, 0.5254838009610916],
+                                                      [0.35175879396984927, 0.5254838009610916],
+                                                      [0.35175879396984927, 0.5294838009610915],
+                                                      [0.35678391959798994, 0.5294838009610915],
+                                                      [0.35678391959798994, 0.3914838009610915],
+                                                      [0.3618090452261307, 0.3914838009610915],
+                                                      [0.3618090452261307, 0.5124838009610916],
+                                                      [0.3668341708542714, 0.5124838009610916],
+                                                      [0.3668341708542714, 0.5234838009610916],
+                                                      [0.37185929648241206, 0.5234838009610916],
+                                                      [0.37185929648241206, 0.4694838009610913],
+                                                      [0.37688442211055284, 0.4694838009610913],
+                                                      [0.37688442211055284, 0.5104838009610915],
+                                                      [0.38190954773869346, 0.5104838009610915],
+                                                      [0.38190954773869346, 0.37348380096109146],
+                                                      [0.38693467336683424, 0.37348380096109146],
+                                                      [0.38693467336683424, 0.3914838009610915],
+                                                      [0.3919597989949749, 0.3914838009610915],
+                                                      [0.3919597989949749, 0.5124838009610916],
+                                                      [0.3969849246231156, 0.5124838009610916],
+                                                      [0.3969849246231156, 0.5234838009610916],
+                                                      [0.4020100502512563, 0.5234838009610916],
+                                                      [0.4020100502512563, 0.4694838009610913],
+                                                      [0.40703517587939697, 0.4694838009610913],
+                                                      [0.40703517587939697, 0.5104838009610915],
+                                                      [0.4120603015075377, 0.5104838009610915],
+                                                      [0.4120603015075377, 0.37348380096109146],
+                                                      [0.4170854271356785, 0.37348380096109146],
+                                                      [0.4170854271356785, 0.3914838009610915],
+                                                      [0.4221105527638191, 0.3914838009610915],
+                                                      [0.4221105527638191, 0.5124838009610916],
+                                                      [0.42713567839195987, 0.5124838009610916],
+                                                      [0.42713567839195987, 0.5234838009610916],
+                                                      [0.4321608040201005, 0.5234838009610916],
+                                                      [0.4321608040201005, 0.4694838009610913],
+                                                      [0.4371859296482413, 0.4694838009610913],
+                                                      [0.4371859296482413, 0.5104838009610915],
+                                                      [0.442211055276382, 0.5104838009610915],
+                                                      [0.442211055276382, 0.37348380096109146],
+                                                      [0.44723618090452266, 0.37348380096109146],
+                                                      [0.44723618090452266, 0.3914838009610915],
+                                                      [0.45226130653266333, 0.3914838009610915],
+                                                      [0.45226130653266333, 0.5124838009610916],
+                                                      [0.45728643216080406, 0.5124838009610916],
+                                                      [0.45728643216080406, 0.5234838009610916],
+                                                      [0.4623115577889447, 0.5234838009610916],
+                                                      [0.4623115577889447, 0.4694838009610913],
+                                                      [0.4673366834170855, 0.4694838009610913],
+                                                      [0.4673366834170855, 0.5104838009610915],
+                                                      [0.4723618090452262, 0.5104838009610915],
+                                                      [0.4723618090452262, 0.37348380096109146],
+                                                      [0.47738693467336685, 0.37348380096109146],
+                                                      [0.47738693467336685, 0.3914838009610915],
+                                                      [0.48241206030150763, 0.3914838009610915],
+                                                      [0.48241206030150763, 0.5124838009610916],
+                                                      [0.4874371859296482, 0.5124838009610916],
+                                                      [0.4874371859296482, 0.5234838009610916],
+                                                      [0.49246231155778897, 0.5234838009610916],
+                                                      [0.49246231155778897, 0.4694838009610913],
+                                                      [0.4974874371859296, 0.4694838009610913],
+                                                      [0.4974874371859296, 0.5104838009610915],
+                                                      [0.5025125628140703, 0.5104838009610915],
+                                                      [0.5025125628140703, 0.5134838009610914],
+                                                      [0.507537688442211, 0.5134838009610914],
+                                                      [0.507537688442211, 0.36048380096109145],
+                                                      [0.5125628140703518, 0.36048380096109145],
+                                                      [0.5125628140703518, 0.36248380096109145],
+                                                      [0.5175879396984925, 0.36248380096109145],
+                                                      [0.5175879396984925, 0.47848380096109144],
+                                                      [0.5226130653266332, 0.47848380096109144],
+                                                      [0.5226130653266332, 0.48348380096109156],
+                                                      [0.5276381909547738, 0.48348380096109156],
+                                                      [0.5276381909547738, 0.49248380096109157],
+                                                      [0.5326633165829145, 0.49248380096109157],
+                                                      [0.5326633165829145, 0.5134838009610914],
+                                                      [0.5376884422110553, 0.5134838009610914],
+                                                      [0.5376884422110553, 0.36048380096109145],
+                                                      [0.542713567839196, 0.36048380096109145],
+                                                      [0.542713567839196, 0.36248380096109145],
+                                                      [0.5477386934673367, 0.36248380096109145],
+                                                      [0.5477386934673367, 0.47848380096109144],
+                                                      [0.5527638190954773, 0.47848380096109144],
+                                                      [0.5527638190954773, 0.48348380096109156],
+                                                      [0.5577889447236181, 0.48348380096109156],
+                                                      [0.5577889447236181, 0.49248380096109157],
+                                                      [0.5628140703517588, 0.49248380096109157],
+                                                      [0.5628140703517588, 0.49448380096109157],
+                                                      [0.5678391959798995, 0.49448380096109157],
+                                                      [0.5678391959798995, 0.46848380096109155],
+                                                      [0.5728643216080402, 0.46848380096109155],
+                                                      [0.5728643216080402, 0.3444838009610913],
+                                                      [0.577889447236181, 0.3444838009610913],
+                                                      [0.577889447236181, 0.34148380096109143],
+                                                      [0.5829145728643216, 0.34148380096109143],
+                                                      [0.5829145728643216, 0.2954838009610914],
+                                                      [0.5879396984924623, 0.2954838009610914],
+                                                      [0.5879396984924623, 0.18448380096109132],
+                                                      [0.592964824120603, 0.18448380096109132],
+                                                      [0.592964824120603, 0.09848380096109141],
+                                                      [0.5979899497487438, 0.09848380096109141],
+                                                      [0.5979899497487438, 0.03548380096109133],
+                                                      [0.6030150753768845, 0.03548380096109133],
+                                                      [0.6030150753768845, 0.49448380096109157],
+                                                      [0.6080402010050251, 0.49448380096109157],
+                                                      [0.6080402010050251, 0.34148380096109143],
+                                                      [0.6130653266331658, 0.34148380096109143],
+                                                      [0.6130653266331658, 0.2954838009610914],
+                                                      [0.6180904522613065, 0.2954838009610914],
+                                                      [0.6180904522613065, 0.18448380096109132],
+                                                      [0.6231155778894473, 0.18448380096109132],
+                                                      [0.6231155778894473, 0.09848380096109141],
+                                                      [0.628140703517588, 0.09848380096109141],
+                                                      [0.628140703517588, 0.03548380096109133],
+                                                      [0.6331658291457286, 0.03548380096109133],
+                                                      [0.6331658291457286, 0.49448380096109157],
+                                                      [0.6381909547738693, 0.49448380096109157],
+                                                      [0.6381909547738693, 0.34148380096109143],
+                                                      [0.6432160804020101, 0.34148380096109143],
+                                                      [0.6432160804020101, 0.2954838009610914],
+                                                      [0.6482412060301508, 0.2954838009610914],
+                                                      [0.6482412060301508, 0.18448380096109132],
+                                                      [0.6532663316582916, 0.18448380096109132],
+                                                      [0.6532663316582916, 0.09848380096109141],
+                                                      [0.6582914572864321, 0.09848380096109141],
+                                                      [0.6582914572864321, 0.03548380096109133],
+                                                      [0.6633165829145728, 0.03548380096109133],
+                                                      [0.6633165829145728, 0.1494838009610913],
+                                                      [0.6683417085427136, 0.1494838009610913],
+                                                      [0.6683417085427136, 0.04248380096109139],
+                                                      [0.6733668341708543, 0.04248380096109139],
+                                                      [0.6733668341708543, 0.14648380096109134],
+                                                      [0.678391959798995, 0.14648380096109134],
+                                                      [0.678391959798995, 0.18648380096109127],
+                                                      [0.6834170854271356, 0.18648380096109127],
+                                                      [0.6834170854271356, 0.1494838009610913],
+                                                      [0.6884422110552764, 0.1494838009610913],
+                                                      [0.6884422110552764, 0.14648380096109134],
+                                                      [0.6934673366834171, 0.14648380096109134],
+                                                      [0.6934673366834171, 0.18648380096109127],
+                                                      [0.6984924623115579, 0.18648380096109127],
+                                                      [0.6984924623115579, 0.1494838009610913],
+                                                      [0.7035175879396985, 0.1494838009610913],
+                                                      [0.7035175879396985, 0.14648380096109134],
+                                                      [0.708542713567839, 0.14648380096109134],
+                                                      [0.708542713567839, 0.18648380096109127],
+                                                      [0.7135678391959799, 0.18648380096109127],
+                                                      [0.7135678391959799, 0.1494838009610913],
+                                                      [0.7185929648241206, 0.1494838009610913],
+                                                      [0.7185929648241206, 0.14648380096109134],
+                                                      [0.7236180904522614, 0.14648380096109134],
+                                                      [0.7236180904522614, 0.18648380096109127],
+                                                      [0.7286432160804021, 0.18648380096109127],
+                                                      [0.7286432160804021, 0.1494838009610913],
+                                                      [0.7336683417085428, 0.1494838009610913],
+                                                      [0.7336683417085428, 0.14648380096109134],
+                                                      [0.7386934673366834, 0.14648380096109134],
+                                                      [0.7386934673366834, 0.18648380096109127],
+                                                      [0.7437185929648241, 0.18648380096109127],
+                                                      [0.7437185929648241, 0.13548380096109133],
+                                                      [0.7487437185929647, 0.13548380096109133],
+                                                      [0.7487437185929647, 0.18048380096109137],
+                                                      [0.7537688442211057, 0.18048380096109137],
+                                                      [0.7537688442211057, 0.2854838009610914],
+                                                      [0.7587939698492463, 0.2854838009610914],
+                                                      [0.7587939698492463, 0.33648380096109154],
+                                                      [0.7638190954773869, 0.33648380096109154],
+                                                      [0.7638190954773869, 0.45748380096109154],
+                                                      [0.7688442211055276, 0.45748380096109154],
+                                                      [0.7688442211055276, 0.4694838009610913],
+                                                      [0.7738693467336685, 0.4694838009610913],
+                                                      [0.7738693467336685, 0.3924838009610915],
+                                                      [0.7788944723618091, 0.3924838009610915],
+                                                      [0.7788944723618091, 0.2894838009610913],
+                                                      [0.7839195979899498, 0.2894838009610913],
+                                                      [0.7839195979899498, 0.13548380096109133],
+                                                      [0.7889447236180904, 0.13548380096109133],
+                                                      [0.7889447236180904, 0.33648380096109154],
+                                                      [0.7939698492462312, 0.33648380096109154],
+                                                      [0.7939698492462312, 0.45748380096109154],
+                                                      [0.7989949748743719, 0.45748380096109154],
+                                                      [0.7989949748743719, 0.4694838009610913],
+                                                      [0.8040201005025126, 0.4694838009610913],
+                                                      [0.8040201005025126, 0.3924838009610915],
+                                                      [0.8090452261306532, 0.3924838009610915],
+                                                      [0.8090452261306532, 0.2894838009610913],
+                                                      [0.8140703517587939, 0.2894838009610913],
+                                                      [0.8140703517587939, 0.13548380096109133],
+                                                      [0.8190954773869348, 0.13548380096109133],
+                                                      [0.8190954773869348, 0.33648380096109154],
+                                                      [0.8241206030150754, 0.33648380096109154],
+                                                      [0.8241206030150754, 0.45748380096109154],
+                                                      [0.8291457286432161, 0.45748380096109154],
+                                                      [0.8291457286432161, 0.4694838009610913],
+                                                      [0.834170854271357, 0.4694838009610913],
+                                                      [0.834170854271357, 0.3924838009610915],
+                                                      [0.8391959798994976, 0.3924838009610915],
+                                                      [0.8391959798994976, 0.2894838009610913],
+                                                      [0.8442211055276382, 0.2894838009610913],
+                                                      [0.8442211055276382, 0.13548380096109133],
+                                                      [0.8492462311557787, 0.13548380096109133],
+                                                      [0.8492462311557787, 0.33648380096109154],
+                                                      [0.8542713567839197, 0.33648380096109154],
+                                                      [0.8542713567839197, 0.45748380096109154],
+                                                      [0.8592964824120602, 0.45748380096109154],
+                                                      [0.8592964824120602, 0.4694838009610913],
+                                                      [0.864321608040201, 0.4694838009610913],
+                                                      [0.864321608040201, 0.3924838009610915],
+                                                      [0.8693467336683416, 0.3924838009610915],
+                                                      [0.8693467336683416, 0.2894838009610913],
+                                                      [0.8743718592964826, 0.2894838009610913],
+                                                      [0.8743718592964826, 0.13548380096109133],
+                                                      [0.8793969849246231, 0.13548380096109133],
+                                                      [0.8793969849246231, 0.33648380096109154],
+                                                      [0.884422110552764, 0.33648380096109154],
+                                                      [0.884422110552764, 0.45748380096109154],
+                                                      [0.8894472361809045, 0.45748380096109154],
+                                                      [0.8894472361809045, 0.4694838009610913],
+                                                      [0.8944723618090453, 0.4694838009610913],
+                                                      [0.8944723618090453, 0.3924838009610915],
+                                                      [0.8994974874371859, 0.3924838009610915],
+                                                      [0.8994974874371859, 0.2894838009610913],
+                                                      [0.9045226130653267, 0.2894838009610913],
+                                                      [0.9045226130653267, 0.4034838009610915],
+                                                      [0.9095477386934675, 0.4034838009610915],
+                                                      [0.9095477386934675, 0.35748380096109134],
+                                                      [0.9145728643216081, 0.35748380096109134],
+                                                      [0.9145728643216081, 0.2744838009610914],
+                                                      [0.9195979899497488, 0.2744838009610914],
+                                                      [0.9195979899497488, 0.24348380096109126],
+                                                      [0.9246231155778895, 0.24348380096109126],
+                                                      [0.9246231155778895, 0.3264838009610912],
+                                                      [0.9296482412060303, 0.3264838009610912],
+                                                      [0.9296482412060303, 0.38348380096109147],
+                                                      [0.934673366834171, 0.38348380096109147],
+                                                      [0.934673366834171, 0.5054838009610916],
+                                                      [0.9396984924623113, 0.5054838009610916],
+                                                      [0.9396984924623113, 0.49248380096109157],
+                                                      [0.9447236180904524, 0.49248380096109157],
+                                                      [0.9447236180904524, 0.3944838009610915],
+                                                      [0.9497487437185929, 0.3944838009610915],
+                                                      [0.9497487437185929, 0.2914838009610914],
+                                                      [0.9547738693467337, 0.2914838009610914],
+                                                      [0.9547738693467337, 0.3304838009610914],
+                                                      [0.9597989949748746, 0.3304838009610914],
+                                                      [0.9597989949748746, 0.3244838009610913],
+                                                      [0.9648241206030153, 0.3244838009610913],
+                                                      [0.9648241206030153, 0.3444838009610913],
+                                                      [0.9698492462311559, 0.3444838009610913],
+                                                      [0.9698492462311559, 0.4054838009610915],
+                                                      [0.9748743718592964, 0.4054838009610915],
+                                                      [0.9748743718592964, 0.4064838009610915],
+                                                      [0.9798994974874372, 0.4064838009610915],
+                                                      [0.9798994974874372, 0.4034838009610915],
+                                                      [0.9849246231155779, 0.4034838009610915],
+                                                      [0.9849246231155779, 0.3304838009610914],
+                                                      [0.9899497487437187, 0.3304838009610914],
+                                                      [0.9899497487437187, 0.3244838009610913],
+                                                      [0.9949748743718592, 0.3244838009610913],
+                                                      [0.9949748743718592, 0.3444838009610913],
+                                                      [1.0, 0.3444838009610913],
+                                                      [1.0, 0.4054838009610915]]},
+                                     'posrnd': {'curved': False, 'data': [[0.0, 0.4256251898085072], [1.0, 0.4256251898085072]]},
+                                     'transp': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]}},
+                       'userInputs': {'sndtable': {'dursndtable': 5.768526077097506,
+                                                   'mode': 0,
+                                                   'nchnlssndtable': 1,
+                                                   'offsndtable': 0.0,
+                                                   'path': u'/home/olivier/Dropbox/private/snds/baseballmajeur_m.aif',
+                                                   'srsndtable': 44100.0,
+                                                   'type': 'cfilein'}},
+                       'userSliders': {'cut': [1450.3250732421875, 1, None, 1, None, None],
+                                       'dur': [0.1, 0, None, 1, None, None],
+                                       'filterq': [1.0, 0, None, 1, None, None],
+                                       'num': [32, 0, None, 1, None, None],
+                                       'pitrnd': [0.001, 0, None, 1, None, None],
+                                       'pos': [0.34448379278182983, 1, None, 1, None, None],
+                                       'posrnd': [0.001, 0, None, 1, None, None],
+                                       'transp': [0.0, 0, None, 1, None, None]},
+                       'userTogglePopups': {'balance': 0, 'discreet': [1], 'filttype': 2, 'poly': 0, 'polynum': 0}},
+ u'04-Beater': {'active': False,
+                'gainSlider': 0.0,
+                'nchnls': 2,
+                'plugins': {0: ['Compress', [-30.0, 3.0, 6.0, 1], [[-30.0, 0, None, 1], [3.0, 0, None, 1], [6.0, 0, None, 1]]],
+                            1: ['WGVerb',
+                                [0.2, 0.8999999999999999, 4999.999999999999, 1],
+                                [[0.2, 0, None, 1], [0.8999999999999999, 0, None, 1], [4999.999999999999, 0, None, 1]]],
+                            2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                            3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                'totalTime': 60.00000000000003,
+                'userGraph': {'cut': {'curved': False, 'data': [[0.0, 1.0202891182582745], [1.0, 1.0202891182582745]]},
+                              'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                              'filterq': {'curved': False, 'data': [[0.0, 0.11563869392888107], [1.0, 0.11563869392888107]]},
+                              'grainenv': {'curved': True,
+                                           'data': [[0.0, 0.0],
+                                                    [0.0138274087300991, 1.0],
+                                                    [0.07985084705070296, 1.0],
+                                                    [0.16388067764056202, 0.23599884846203245],
+                                                    [1.0, 0.0]]},
+                              'pitrnd': {'curved': False, 'data': [[0.0, 0.4256251898085072], [1.0, 0.4256251898085072]]},
+                              'plugin_0_comp_gain': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]},
+                              'plugin_0_comp_ratio': {'curved': False, 'data': [[0.0, 0.14465408805031446], [1.0, 0.14465408805031446]]},
+                              'plugin_0_comp_thresh': {'curved': False, 'data': [[0.0, 0.75], [1.0, 0.75]]},
+                              'plugin_1_wgreverb_feed': {'curved': False, 'data': [[0.0, 0.7], [1.0, 0.7]]},
+                              'plugin_1_wgreverb_lp': {'curved': False, 'data': [[0.0, 0.7807439128602032], [1.0, 0.7807439128602032]]},
+                              'plugin_1_wgreverb_mix': {'curved': False, 'data': [[0.0, 0.25], [1.0, 0.25]]},
+                              'pos': {'curved': False, 'data': [[0.0, 0.0], [1.0, 1.0]]},
+                              'posrnd': {'curved': False, 'data': [[0.0, 0.4256251898085072], [1.0, 0.4256251898085072]]},
+                              'transp': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]}},
+                'userInputs': {'sndtable': {'dursndtable': 5.768526077097506,
+                                            'mode': 0,
+                                            'nchnlssndtable': 1,
+                                            'offsndtable': 0.0,
+                                            'path': u'/home/olivier/Dropbox/private/snds/baseballmajeur_m.aif',
+                                            'srsndtable': 44100.0,
+                                            'type': 'cfilein'}},
+                'userSliders': {'cut': [18000.000000000015, 0, None, 1, None, None],
+                                'dur': [0.125, 0, None, 1, None, None],
+                                'filterq': [0.7000000000000001, 0, None, 1, None, None],
+                                'num': [1, 0, None, 1, None, None],
+                                'pitrnd': [0.22566151735076387, 0, None, 1, None, None],
+                                'pos': [0.5012468827930174, 0, None, 1, None, None],
+                                'posrnd': [0.49999999999999994, 0, None, 1, None, None],
+                                'transp': [0.0, 0, None, 1, None, None]},
+                'userTogglePopups': {'balance': 0, 'discreet': [1], 'filttype': 0, 'poly': 0, 'polynum': 0}},
+ u'05-Ouverture': {'gainSlider': -3.0,
+                   'nchnls': 2,
+                   'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                   'totalTime': 30.00000000000007,
+                   'userGraph': {'cut': {'curved': True,
+                                         'data': [[0.0, 0.31607936118849544], [0.49847195269165534, 0.8897513120889342], [1.0, 0.3182938572799099]]},
+                                 'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                 'filterq': {'curved': False, 'data': [[0.0, 0.11563869392888107], [1.0, 0.11563869392888107]]},
+                                 'grainenv': {'curved': True, 'data': [[0.0, 0.0], [0.5, 1.0], [1.0, 0.0]]},
+                                 'pitrnd': {'curved': True, 'data': [[0.0, 0.007085428531185918], [0.49694390538331062, 0.9650441791970238], [1.0, 0.0]]},
+                                 'pos': {'curved': False, 'data': [[0.0, 0.0], [1.0, 1.0]]},
+                                 'posrnd': {'curved': True, 'data': [[0.0, 0.0], [0.5, 0.9827601479283389], [1.0, 0.0]]},
+                                 'transp': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]}},
+                   'userInputs': {'sndtable': {'dursndtable': 5.768526077097506,
+                                               'mode': 0,
+                                               'nchnlssndtable': 1,
+                                               'offsndtable': 0.0,
+                                               'path': u'/home/olivier/Dropbox/private/snds/baseballmajeur_m.aif',
+                                               'srsndtable': 44100.0,
+                                               'type': 'cfilein'}},
+                   'userSliders': {'cut': [595.495361328125, 1, None, 1, None, None],
+                                   'dur': [0.1, 0, None, 1, None, None],
+                                   'filterq': [0.707, 0, None, 1, None, None],
+                                   'num': [64, 0, None, 1, None, None],
+                                   'pitrnd': [1.7802576621761542e-05, 1, None, 1, None, None],
+                                   'pos': [0.5, 0, None, 1, None, None],
+                                   'posrnd': [1.6597301510046243e-05, 1, None, 1, None, None],
+                                   'transp': [0.0, 0, None, 1, None, None]},
+                   'userTogglePopups': {'balance': 0, 'discreet': [1, 0.5, 2], 'filttype': 0, 'poly': 0, 'polynum': 0}}}
diff --git a/Resources/modules/Time/Particle.c5 b/Resources/modules/Time/Particle.c5
new file mode 100644
index 0000000..0cc7dd4
--- /dev/null
+++ b/Resources/modules/Time/Particle.c5
@@ -0,0 +1,125 @@
+import random
+class Module(BaseModule):
+    """
+    "A full-featured granulation module"
+    
+    Description
+
+    This module offers more controls than the classic granulation module. 
+    Useful to generate clouds, to stretch a sound without changing the pitch 
+    or to transpose without changing the duration.
+
+    `Density per Second * Grain Duration` defines the overall overlaps.
+
+    Sliders
+    
+        # Density per Second :
+            How many grains to play per second
+        # Transpose : 
+            Overall transposition, in cents, of the grains
+        # Grain Position : 
+            Soundfile index
+        # Grain Duration :
+            Duration of each grain, in seconds
+        # Start Time Deviation :
+            Maximum deviation of the starting time of the grain
+        # Panning Random :
+            Random added to the panning of each grain
+        # Density Random :
+            Jitter applied to the density per second
+        # Pitch Random : 
+            Jitter applied on the pitch of the grains
+        # Position Random : 
+            Jitter applied on the soundfile index
+        # Duration Random : 
+            Jitter applied to the grain duration
+
+    Graph Only
+    
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+        # Grain Envelope : 
+            Emplitude envelope of the grains
+
+    Popups & Toggles
+
+        # Discreet Transpo : 
+            List of pitch ratios    
+        # Balance :
+            Compression mode. Off, balanced with a fixed signal
+            or balanced with the input source.
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+
+    """
+    def __init__(self):
+        BaseModule.__init__(self)
+        self.table = self.addFilein("sndtable")
+        self.densr = Randi(-self.dnsrnd, self.dnsrnd, freq=1, add=1)
+        self.posr = Noise(self.posrnd * self.table.getSize(False))
+        self.pitr = Noise(self.pitrnd, add=1)
+        self.durr = Noise(self.durrnd, add=1)
+        self.discr = Choice(choice=self.discreet_value, freq=1000)
+        self.pitch = CentsToTranspo(self.transp, mul=self.polyphony_spread)
+        self.pospos = Sig(self.pos, mul=self.table.getSize(False), add=self.posr)
+        initpan = [float(i) / (self.nchnls-1) for i in range(self.nchnls)]
+        self.panr = Noise(self.pan, add=initpan)
+        self.panw = Clip(self.panr, 0, 1)
+
+        self.gr = Particle(table=self.table, 
+                           env=self.grainenv, 
+                           dens=self.dens*self.densr, 
+                           pitch=self.pitch*self.pitr*self.discr, 
+                           pos=self.pospos, 
+                           dur=self.dur*self.durr, 
+                           dev=self.dev, 
+                           pan=self.panw, 
+                           chnls=self.nchnls, 
+                           mul=self.env*0.2
+                           )
+
+        self.osc = Sine(10000,mul=.1)
+        self.balanced = Balance(self.gr, self.osc, freq=10)
+        self.out = Interp(self.gr, self.balanced)
+
+#INIT
+        self.balance(self.balance_index, self.balance_value)
+
+    def balance(self, index, value):
+        if index == 0:
+            self.out.interp  = 0
+        elif index ==1:
+           self.out.interp  = 1
+           self.balanced.input2 = self.osc
+        elif index == 2:
+           self.out.interp = 1
+           self.balanced.input2 = self.gr
+
+    def discreet(self, value):
+        self.discr.choice = value
+           
+Interface = [   cfilein(name="sndtable", label="Audio"),
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
+                cgraph(name="grainenv", label="Grain Envelope", func=[(0,0),(0.5,1),(1,0)], table=True, curved=True, col="purple1"),
+
+                cslider(name="dens", label="Density per Second", min=1, max=1000, init=100, rel="log", gliss=0, res="int", unit="x", col="blue1"),
+                cslider(name="transp", label="Transpose", min=-4800, max=4800, init=0, rel="lin", unit="cnts", col="red1"),
+                cslider(name="pos", label="Grain Position", min=0, max=1, init=0, func=[(0,0),(1,1)], rel="lin", unit="x", col="purple1"),
+                cslider(name="dur", label="Grain Duration", min=0.0001, max=1, init=0.1, rel="log", unit="sec", col="orange1"),
+                cslider(name="dev", label="Start Time Deviation", min=0.0001, max=1, init=0.01, rel="log", unit="x", col="green1"),
+                cslider(name="pan", label="Panning Random", min=0, max=1, init=0, rel="lin", unit="x", col="green3"),
+
+                cslider(name="dnsrnd", label="Density Random", min=0.00001, max=1, init=0.001, rel="log", unit="x", col="blue2", half=True),
+                cslider(name="pitrnd", label="Pitch Random", min=0.00001, max=0.5, init=0.001, rel="log", unit="x", col="red2", half=True),
+                cslider(name="posrnd", label="Position Random", min=0.00001, max=0.5, init=0.001, rel="log", unit="x", col="purple2", half=True),
+                cslider(name="durrnd", label="Duration Random", min=0.00001, max=1, init=0.001, rel="log", unit="x", col="orange2", half=True),
+
+                cpopup(name="balance", label = "Balance", init= "Off", col="blue1", value=["Off","Compress", "Source"]),
+                cgen(name="discreet", label="Discreet Transpo", init=[1], col="red1"),
+                cpoly()
+          ]
+
diff --git a/Resources/modules/Time/Pelletizer.c5 b/Resources/modules/Time/Pelletizer.c5
new file mode 100644
index 0000000..93a5834
--- /dev/null
+++ b/Resources/modules/Time/Pelletizer.c5
@@ -0,0 +1,870 @@
+import random
+class Module(BaseModule):
+    """
+    "Another granulation module"
+    
+    Description
+
+    A granulation module where the number of grains (density) and
+    the grain duration can be set independently. Useful to stretch 
+    a sound without changing the pitch or to transposition without 
+    changing the duration.
+
+    Sliders
+    
+        # Transpose : 
+            Base pitch of the grains
+        # Density of grains : 
+            Number of grains per second
+        # Grain Position : 
+            Grain start position in the position 
+        # Grain Duration : 
+            Duration of the grain in seconds
+        # Pitch Random : 
+            Jitter applied on the pitch of the grains
+        # Density Random : 
+            Jitter applied on the density
+        # Position Random : 
+            Jitter applied on the grain start position
+        # Duration Random : 
+            Jitter applied on the duration of the grain
+        # Filter Freq : 
+            Cutoff or center frequency of the filter (post-processing)
+        # Filter Q : 
+            Q of the filter
+
+    Graph Only
+    
+        # Overall Amplitude : 
+            The amplitude curve applied on the total duration of the performance
+        # Grain Envelope : 
+            Emplitude envelope of the grains
+    
+    Popups & Toggles
+
+        # Filter Type : 
+            Type of the post filter
+        # Balance :
+            Compression mode. Off, balanced with a fixed signal
+            or balanced with the input source.
+        # Discreet Transpo : 
+            List of pitch ratios
+        # Polyphony Voices : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+        # Polyphony Spread : 
+            Pitch variation between voices (chorus), 
+            only available at initialization time
+
+    """
+    def __init__(self):
+        BaseModule.__init__(self)
+        pitrnds = self.polyphony_spread * self.nchnls
+        self.t = self.addFilein("sndtable")
+        self.drng = self.densrnd*self.dens
+        self.densr = Randi(-self.drng, self.drng, freq=.2, add=self.dens)
+        self.posr = Noise(self.posrnd*self.t.getSize(False))
+        self.pitr = Noise(self.pitrnd, add=pitrnds)
+        self.discr = Choice(choice=self.discreet_value, freq=1000)
+        self.pitch = CentsToTranspo(self.transp, mul=self.pitr)
+        self.pospos = Sig(self.pos, mul=self.t.getSize(False), add=self.posr)
+        self.durr = Noise(self.durrnd*self.dur, add=self.dur)
+        self.gr = Granule(self.t, self.grainenv, dens=self.densr, pitch=self.pitch*self.discr, pos=self.pospos, dur=self.durr, mul=self.env* 0.1)
+        self.gro = Biquadx(self.gr, freq=self.cut, q=self.filterq, type=self.filttype_index, stages=2, mul=self.polyphony_scaling)
+
+        self.osc = Sine(10000,mul=.1)
+        self.balanced = Balance(self.gro, self.osc, freq=10)
+        self.out = Interp(self.gro, self.balanced)
+#INIT
+        self.balance(self.balance_index, self.balance_value)
+
+    def balance(self,index,value):
+        if index == 0:
+            self.out.interp  = 0
+        elif index ==1:
+           self.out.interp  = 1
+           self.balanced.input2 = self.osc
+        elif index == 2:
+           self.out.interp = 1
+           self.balanced.input2 = self.gr
+
+    def filttype(self, index, value):
+        self.gro.type = index
+
+    def discreet(self, value):
+        self.discr.choice = value
+           
+Interface = [   cfilein(name="sndtable", label="Audio"),
+                cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
+                cgraph(name="grainenv", label="Grain Envelope", func=[(0,0),(0.5,1),(1,0)], table=True, curved=True, col="purple1"),
+                cslider(name="transp", label="Transpose", min=-4800, max=4800, init=0, rel="lin", unit="cnts", col="red1"),
+                cslider(name="dens", label="Density of grains", min=1, max=250, init=30, rel="log", unit="x", col="purple1"),
+                cslider(name="pos", label="Grain Position", min=0, max=1, init=0, func=[(0,0),(1,1)], rel="lin", unit="x", col="blue1"),
+                cslider(name="dur", label="Grain Duration", min=0.001, max=10, init=0.2, rel="log", unit="sec", col="orange1"),
+                cslider(name="pitrnd", label="Pitch Random", min=0.0001, max=0.5, init=0.0005, rel="log", unit="x", col="red2",half=True),
+                cslider(name="densrnd", label="Density Random", min=0.0001, max=1, init=0.0005, rel="log", unit="x", col="purple2",half=True),
+                cslider(name="posrnd", label="Position Random", min=0.0001, max=0.5, init=0.0005, rel="log", unit="x", col="blue2",half=True),
+                cslider(name="durrnd", label="Duration Random", min=0.0001, max=1, init=0.0005, rel="log", unit="x", col="orange2",half=True),
+                cslider(name="cut", label="Filter Freq", min=100, max=18000, init=20000, rel="log", unit="Hz", col="green1"),
+                cslider(name="filterq", label="Filter Q", min=0.5, max=10, init=0.707, rel="log", unit="Q", col="green2"),
+                cpopup(name="filttype", label="Filter Type", init="Lowpass", col="green1", value=["Lowpass","Highpass","Bandpass","Bandstop"]),
+                cpopup(name="balance", label = "Balance", init= "Off", col="blue1", value=["Off","Compress", "Source"]),
+                cgen(name="discreet", label="Discreet Transpo", init=[1], col="red1"),
+                cpoly()
+          ]
+
+
+####################################
+##### Cecilia reserved section #####
+#### Presets saved from the app ####
+####################################
+
+
+CECILIA_PRESETS = {u'01-Stretcher': {'active': False,
+                   'gainSlider': 0.0,
+                   'nchnls': 2,
+                   'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                               3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                   'totalTime': 60.00000000000003,
+                   'userGraph': {'cut': {'curved': False, 'data': [[0.0, 1.0202891182582743], [1.0, 1.0202891182582743]]},
+                                 'dens': {'curved': False, 'data': [[0.0, 0.6159959170695358], [1.0, 0.6159959170695358]]},
+                                 'densrnd': {'curved': False, 'data': [[0.0, 0.17474250108400471], [1.0, 0.17474250108400471]]},
+                                 'dur': {'curved': False, 'data': [[0.0, 0.5752574989159953], [1.0, 0.5752574989159953]]},
+                                 'durrnd': {'curved': False, 'data': [[0.0, 0.17474250108400471], [1.0, 0.17474250108400471]]},
+                                 'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                 'filterq': {'curved': False, 'data': [[0.0, 0.11563869392888107], [1.0, 0.11563869392888107]]},
+                                 'grainenv': {'curved': True, 'data': [[0.0, 0.0], [0.33498927138725632, 1.0], [0.66675995895139473, 1.0], [1.0, 0.0]]},
+                                 'pitrnd': {'curved': False, 'data': [[0.0, 0.18896341509032782], [1.0, 0.18896341509032782]]},
+                                 'pos': {'curved': False, 'data': [[0.0, 0.0], [1.0, 1.0]]},
+                                 'posrnd': {'curved': False, 'data': [[0.0, 0.18896341509032782], [1.0, 0.18896341509032782]]},
+                                 'transp': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]}},
+                   'userInputs': {'sndtable': {'dursndtable': 5.466417233560091,
+                                               'mode': 0,
+                                               'nchnlssndtable': 1,
+                                               'offsndtable': 0.0,
+                                               'path': u'/home/olivier/Dropbox/private/snds/flute.wav',
+                                               'srsndtable': 44100.0,
+                                               'type': 'cfilein'}},
+                   'userSliders': {'cut': [18000.000000000015, 0, None, 1, None, None],
+                                   'dens': [60.0, 0, None, 1, None, None],
+                                   'densrnd': [0.0004999999999999999, 0, None, 1, None, None],
+                                   'dur': [0.20000000000000004, 0, None, 1, None, None],
+                                   'durrnd': [0.0004999999999999999, 0, None, 1, None, None],
+                                   'filterq': [0.707, 0, None, 1, None, None],
+                                   'pitrnd': [0.00020000000000000004, 0, None, 1, None, None],
+                                   'pos': [0.054179515689611435, 1, None, 1, None, None],
+                                   'posrnd': [0.00020000000000000004, 0, None, 1, None, None],
+                                   'transp': [0.0, 0, None, 1, None, None]},
+                   'userTogglePopups': {'balance': 0, 'discreet': [1], 'filttype': 0, 'poly': 0, 'polynum': 0}},
+ u'02-Shreds': {'active': False,
+                'gainSlider': 6.0,
+                'nchnls': 2,
+                'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                            1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                            2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                            3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                'totalTime': 60.00000000000003,
+                'userGraph': {'cut': {'curved': False, 'data': [[0.0, 1.0202891182582743], [1.0, 1.0202891182582743]]},
+                              'dens': {'curved': False, 'data': [[0.0, 0.6159959170695358], [1.0, 0.6159959170695358]]},
+                              'densrnd': {'curved': False, 'data': [[0.0, 0.17474250108400471], [1.0, 0.17474250108400471]]},
+                              'dur': {'curved': False, 'data': [[0.0, 0.5752574989159953], [1.0, 0.5752574989159953]]},
+                              'durrnd': {'curved': False, 'data': [[0.0, 0.17474250108400471], [1.0, 0.17474250108400471]]},
+                              'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                              'filterq': {'curved': False, 'data': [[0.0, 0.11563869392888107], [1.0, 0.11563869392888107]]},
+                              'grainenv': {'curved': True, 'data': [[0.0, 0.0], [0.032955499580184726, 1.0], [0.83118761078458803, 1.0], [1.0, 0.0]]},
+                              'pitrnd': {'curved': False, 'data': [[0.0, 0.18896341509032782], [1.0, 0.18896341509032782]]},
+                              'pos': {'curved': False, 'data': [[0.0, 0.0], [1.0, 1.0]]},
+                              'posrnd': {'curved': False, 'data': [[0.0, 0.18896341509032782], [1.0, 0.18896341509032782]]},
+                              'transp': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]}},
+                'userInputs': {'sndtable': {'dursndtable': 1.073015873015873,
+                                            'mode': 0,
+                                            'nchnlssndtable': 1,
+                                            'offsndtable': 0.0,
+                                            'path': u'/home/olivier/Dropbox/private/snds/comprendrez.aif',
+                                            'srsndtable': 44100.0,
+                                            'type': 'cfilein'}},
+                'userSliders': {'cut': [18000.000000000015, 0, None, 1, None, None],
+                                'dens': [20.000000000000004, 0, None, 1, None, None],
+                                'densrnd': [1.0, 0, None, 1, None, None],
+                                'dur': [0.003000000000000001, 0, None, 1, None, None],
+                                'durrnd': [0.49999999999999994, 0, None, 1, None, None],
+                                'filterq': [0.707, 0, None, 1, None, None],
+                                'pitrnd': [0.49999999999999994, 0, None, 1, None, None],
+                                'pos': [0.5, 0, None, 1, None, None],
+                                'posrnd': [0.49999999999999994, 0, None, 1, None, None],
+                                'transp': [0.0, 0, None, 1, None, None]},
+                'userTogglePopups': {'balance': 0, 'discreet': [1], 'filttype': 0, 'poly': 0, 'polynum': 0}},
+ u'03-Chunk Looper': {'active': False,
+                      'gainSlider': 0.0,
+                      'nchnls': 2,
+                      'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                  1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                  2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                  3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                      'totalTime': 60.00000000000003,
+                      'userGraph': {'cut': {'curved': False, 'data': [[0.0, 1.0202891182582745], [1.0, 1.0202891182582745]]},
+                                    'dens': {'curved': False, 'data': [[0.0, 0.6159959170695358], [1.0, 0.6159959170695358]]},
+                                    'densrnd': {'curved': False, 'data': [[0.0, 0.1747425010840047], [1.0, 0.1747425010840047]]},
+                                    'dur': {'curved': False, 'data': [[0.0, 0.5752574989159953], [1.0, 0.5752574989159953]]},
+                                    'durrnd': {'curved': False, 'data': [[0.0, 0.1747425010840047], [1.0, 0.1747425010840047]]},
+                                    'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                    'filterq': {'curved': False, 'data': [[0.0, 0.11563869392888107], [1.0, 0.11563869392888107]]},
+                                    'grainenv': {'curved': True, 'data': [[0.0, 0.0], [0.5, 1.0], [1.0, 0.0]]},
+                                    'pitrnd': {'curved': False, 'data': [[0.0, 0.1889634150903278], [1.0, 0.1889634150903278]]},
+                                    'pos': {'curved': False,
+                                            'data': [[0.0, 0.45],
+                                                     [0.004016064257028112, 0.442],
+                                                     [0.008032128514056224, 0.515],
+                                                     [0.012048192771084338, 0.726],
+                                                     [0.01606425702811245, 0.73],
+                                                     [0.020080321285140562, 0.658],
+                                                     [0.024096385542168676, 0.685],
+                                                     [0.028112449799196783, 0.628],
+                                                     [0.0321285140562249, 0.675],
+                                                     [0.03614457831325301, 0.681],
+                                                     [0.040160642570281124, 0.684],
+                                                     [0.04417670682730923, 0.631],
+                                                     [0.04819277108433735, 0.633],
+                                                     [0.05220883534136546, 0.675],
+                                                     [0.056224899598393566, 0.681],
+                                                     [0.06024096385542168, 0.684],
+                                                     [0.0642570281124498, 0.631],
+                                                     [0.0682730923694779, 0.633],
+                                                     [0.07228915662650602, 0.675],
+                                                     [0.07630522088353413, 0.681],
+                                                     [0.08032128514056225, 0.684],
+                                                     [0.08433734939759036, 0.631],
+                                                     [0.08835341365461846, 0.633],
+                                                     [0.09236947791164658, 0.482],
+                                                     [0.0963855421686747, 0.441],
+                                                     [0.1004016064257028, 0.097],
+                                                     [0.10441767068273092, 0.085],
+                                                     [0.10843373493975902, 0.033],
+                                                     [0.11244979919678713, 0.025],
+                                                     [0.11646586345381525, 0.011],
+                                                     [0.12048192771084336, 0.482],
+                                                     [0.12449799196787148, 0.097],
+                                                     [0.1285140562248996, 0.085],
+                                                     [0.1325301204819277, 0.033],
+                                                     [0.1365461847389558, 0.025],
+                                                     [0.14056224899598393, 0.011],
+                                                     [0.14457831325301204, 0.482],
+                                                     [0.14859437751004015, 0.097],
+                                                     [0.15261044176706826, 0.085],
+                                                     [0.15662650602409636, 0.033],
+                                                     [0.1606425702811245, 0.025],
+                                                     [0.1646586345381526, 0.011],
+                                                     [0.1686746987951807, 0.08],
+                                                     [0.17269076305220882, 0.028],
+                                                     [0.17670682730923692, 0.201],
+                                                     [0.18072289156626503, 0.41500000000000004],
+                                                     [0.18473895582329317, 0.451],
+                                                     [0.18875502008032127, 0.08],
+                                                     [0.1927710843373494, 0.41500000000000004],
+                                                     [0.1967871485943775, 0.451],
+                                                     [0.2008032128514056, 0.08],
+                                                     [0.20481927710843373, 0.41500000000000004],
+                                                     [0.20883534136546184, 0.451],
+                                                     [0.21285140562248994, 0.08],
+                                                     [0.21686746987951805, 0.41500000000000004],
+                                                     [0.22088353413654616, 0.451],
+                                                     [0.22489959839357426, 0.454],
+                                                     [0.2289156626506024, 0.546],
+                                                     [0.2329317269076305, 0.6970000000000001],
+                                                     [0.23694779116465858, 0.783],
+                                                     [0.24096385542168672, 0.675],
+                                                     [0.24497991967871482, 0.889],
+                                                     [0.24899598393574296, 0.8300000000000001],
+                                                     [0.25301204819277107, 0.852],
+                                                     [0.2570281124497992, 0.86],
+                                                     [0.2610441767068273, 0.866],
+                                                     [0.2650602409638554, 0.454],
+                                                     [0.2690763052208835, 0.852],
+                                                     [0.2730923694779116, 0.86],
+                                                     [0.2771084337349397, 0.866],
+                                                     [0.28112449799196787, 0.454],
+                                                     [0.285140562248996, 0.852],
+                                                     [0.2891566265060241, 0.86],
+                                                     [0.29317269076305214, 0.866],
+                                                     [0.2971887550200803, 0.454],
+                                                     [0.3012048192771084, 0.852],
+                                                     [0.3052208835341365, 0.86],
+                                                     [0.3092369477911646, 0.866],
+                                                     [0.3132530120481927, 0.874],
+                                                     [0.31726907630522083, 0.886],
+                                                     [0.321285140562249, 0.81],
+                                                     [0.3253012048192771, 0.741],
+                                                     [0.3293172690763052, 0.428],
+                                                     [0.3333333333333333, 0.5650000000000001],
+                                                     [0.3373493975903614, 0.874],
+                                                     [0.34136546184738953, 0.428],
+                                                     [0.34538152610441764, 0.5650000000000001],
+                                                     [0.34939759036144574, 0.874],
+                                                     [0.35341365461847385, 0.428],
+                                                     [0.35742971887550196, 0.5650000000000001],
+                                                     [0.36144578313253006, 0.47100000000000003],
+                                                     [0.3654618473895582, 0.054],
+                                                     [0.36947791164658633, 0.032],
+                                                     [0.37349397590361444, 0.47100000000000003],
+                                                     [0.37751004016064255, 0.054],
+                                                     [0.38152610441767065, 0.032],
+                                                     [0.3855421686746988, 0.47100000000000003],
+                                                     [0.38955823293172687, 0.054],
+                                                     [0.393574297188755, 0.032],
+                                                     [0.3975903614457831, 0.23],
+                                                     [0.4016064257028112, 0.21],
+                                                     [0.4056224899598393, 0.066],
+                                                     [0.40963855421686746, 0.054],
+                                                     [0.41365461847389556, 0.23],
+                                                     [0.41767068273092367, 0.21],
+                                                     [0.4216867469879518, 0.066],
+                                                     [0.4257028112449799, 0.054],
+                                                     [0.42971887550200805, 0.23],
+                                                     [0.4337349397590361, 0.21],
+                                                     [0.4377510040160642, 0.066],
+                                                     [0.4417670682730923, 0.054],
+                                                     [0.4457831325301204, 0.23],
+                                                     [0.4497991967871485, 0.21],
+                                                     [0.4538152610441767, 0.066],
+                                                     [0.4578313253012048, 0.054],
+                                                     [0.4618473895582329, 0.23],
+                                                     [0.465863453815261, 0.21],
+                                                     [0.4698795180722891, 0.066],
+                                                     [0.47389558232931717, 0.054],
+                                                     [0.47791164658634533, 0.052000000000000005],
+                                                     [0.48192771084337344, 0.056],
+                                                     [0.48594377510040154, 0.134],
+                                                     [0.48995983935742965, 0.251],
+                                                     [0.4939759036144578, 0.194],
+                                                     [0.4979919678714859, 0.052000000000000005],
+                                                     [0.502008032128514, 0.056],
+                                                     [0.5060240963855421, 0.134],
+                                                     [0.5100401606425702, 0.251],
+                                                     [0.5140562248995983, 0.194],
+                                                     [0.5180722891566265, 0.081],
+                                                     [0.5220883534136546, 0.044],
+                                                     [0.5261044176706827, 0.054],
+                                                     [0.5301204819277108, 0.049],
+                                                     [0.5341365461847389, 0.018000000000000002],
+                                                     [0.538152610441767, 0.007],
+                                                     [0.5421686746987951, 0.003],
+                                                     [0.5461847389558232, 0.092],
+                                                     [0.5502008032128514, 0.025],
+                                                     [0.5542168674698794, 0.081],
+                                                     [0.5582329317269076, 0.007],
+                                                     [0.5622489959839357, 0.003],
+                                                     [0.5662650602409638, 0.092],
+                                                     [0.570281124497992, 0.025],
+                                                     [0.57429718875502, 0.081],
+                                                     [0.5783132530120482, 0.007],
+                                                     [0.5823293172690762, 0.003],
+                                                     [0.5863453815261043, 0.092],
+                                                     [0.5903614457831324, 0.025],
+                                                     [0.5943775100401606, 0.1],
+                                                     [0.5983935742971886, 0.022],
+                                                     [0.6024096385542168, 0.027],
+                                                     [0.606425702811245, 0.04],
+                                                     [0.610441767068273, 0.061],
+                                                     [0.6144578313253012, 0.255],
+                                                     [0.6184738955823292, 0.428],
+                                                     [0.6224899598393574, 0.1],
+                                                     [0.6265060240963854, 0.061],
+                                                     [0.6305220883534136, 0.255],
+                                                     [0.6345381526104417, 0.428],
+                                                     [0.6385542168674698, 0.1],
+                                                     [0.642570281124498, 0.061],
+                                                     [0.646586345381526, 0.255],
+                                                     [0.6506024096385542, 0.428],
+                                                     [0.6546184738955823, 0.542],
+                                                     [0.6586345381526104, 0.597],
+                                                     [0.6626506024096385, 0.382],
+                                                     [0.6666666666666666, 0.267],
+                                                     [0.6706827309236947, 0.124],
+                                                     [0.6746987951807228, 0.44],
+                                                     [0.678714859437751, 0.653],
+                                                     [0.6827309236947791, 0.672],
+                                                     [0.6867469879518072, 0.542],
+                                                     [0.6907630522088353, 0.44],
+                                                     [0.6947791164658634, 0.653],
+                                                     [0.6987951807228915, 0.672],
+                                                     [0.7028112449799196, 0.542],
+                                                     [0.7068273092369477, 0.44],
+                                                     [0.7108433734939759, 0.653],
+                                                     [0.7148594377510039, 0.672],
+                                                     [0.7188755020080321, 0.542],
+                                                     [0.7228915662650601, 0.44],
+                                                     [0.7269076305220883, 0.653],
+                                                     [0.7309236947791165, 0.672],
+                                                     [0.7349397590361445, 0.542],
+                                                     [0.7389558232931727, 0.44],
+                                                     [0.7429718875502007, 0.653],
+                                                     [0.7469879518072289, 0.672],
+                                                     [0.7510040160642569, 0.755],
+                                                     [0.7550200803212851, 0.858],
+                                                     [0.7590361445783131, 0.7010000000000001],
+                                                     [0.7630522088353413, 0.864],
+                                                     [0.7670682730923695, 0.879],
+                                                     [0.7710843373493976, 0.755],
+                                                     [0.7751004016064257, 0.7010000000000001],
+                                                     [0.7791164658634537, 0.864],
+                                                     [0.7831325301204819, 0.879],
+                                                     [0.78714859437751, 0.881],
+                                                     [0.7911646586345381, 0.886],
+                                                     [0.7951807228915662, 0.871],
+                                                     [0.7991967871485943, 0.876],
+                                                     [0.8032128514056224, 0.867],
+                                                     [0.8072289156626505, 0.897],
+                                                     [0.8112449799196786, 0.852],
+                                                     [0.8152610441767068, 0.881],
+                                                     [0.8192771084337349, 0.867],
+                                                     [0.823293172690763, 0.897],
+                                                     [0.8273092369477911, 0.852],
+                                                     [0.8313253012048192, 0.885],
+                                                     [0.8353413654618473, 0.671],
+                                                     [0.8393574297188754, 0.722],
+                                                     [0.8433734939759036, 0.761],
+                                                     [0.8473895582329316, 0.885],
+                                                     [0.8514056224899598, 0.671],
+                                                     [0.8554216867469877, 0.722],
+                                                     [0.8594377510040161, 0.761],
+                                                     [0.8634538152610443, 0.885],
+                                                     [0.8674698795180722, 0.671],
+                                                     [0.8714859437751004, 0.722],
+                                                     [0.8755020080321284, 0.761],
+                                                     [0.8795180722891566, 0.885],
+                                                     [0.8835341365461846, 0.671],
+                                                     [0.8875502008032128, 0.722],
+                                                     [0.8915662650602408, 0.761],
+                                                     [0.895582329317269, 0.894],
+                                                     [0.899598393574297, 0.896],
+                                                     [0.9036144578313252, 0.897],
+                                                     [0.9076305220883534, 0.733],
+                                                     [0.9116465863453814, 0.753],
+                                                     [0.9156626506024096, 0.854],
+                                                     [0.9196787148594376, 0.894],
+                                                     [0.9236947791164658, 0.896],
+                                                     [0.9277108433734939, 0.897],
+                                                     [0.931726907630522, 0.733],
+                                                     [0.9357429718875501, 0.753],
+                                                     [0.9397590361445782, 0.854],
+                                                     [0.9437751004016064, 0.894],
+                                                     [0.9477911646586343, 0.896],
+                                                     [0.9518072289156625, 0.897],
+                                                     [0.9558232931726907, 0.733],
+                                                     [0.9598393574297188, 0.753],
+                                                     [0.9638554216867469, 0.854],
+                                                     [0.967871485943775, 0.858],
+                                                     [0.9718875502008031, 0.887],
+                                                     [0.9759036144578312, 0.9],
+                                                     [0.9799196787148593, 0.879],
+                                                     [0.9839357429718875, 0.8140000000000001],
+                                                     [0.9879518072289156, 0.8250000000000001],
+                                                     [0.9919678714859437, 0.894],
+                                                     [0.9959839357429718, 0.9],
+                                                     [0.9999999999999999, 0.858]]},
+                                    'posrnd': {'curved': False, 'data': [[0.0, 0.1889634150903278], [1.0, 0.1889634150903278]]},
+                                    'transp': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]}},
+                      'userInputs': {'sndtable': {'dursndtable': 5.768526077097506,
+                                                  'mode': 0,
+                                                  'nchnlssndtable': 1,
+                                                  'offsndtable': 0.0,
+                                                  'path': u'/home/olivier/Dropbox/private/snds/baseballmajeur_m.aif',
+                                                  'srsndtable': 44100.0,
+                                                  'type': 'cfilein'}},
+                      'userSliders': {'cut': [18000.000000000015, 0, None, 1, None, None],
+                                      'dens': [29.999999999999996, 0, None, 1, None, None],
+                                      'densrnd': [0.0004999999999999999, 0, None, 1, None, None],
+                                      'dur': [0.20000000000000004, 0, None, 1, None, None],
+                                      'durrnd': [0.0004999999999999999, 0, None, 1, None, None],
+                                      'filterq': [0.707, 0, None, 1, None, None],
+                                      'pitrnd': [0.0004999999999999999, 0, None, 1, None, None],
+                                      'pos': [0.8670288920402527, 1, None, 1, None, None],
+                                      'posrnd': [0.0004999999999999999, 0, None, 1, None, None],
+                                      'transp': [0.0, 0, None, 1, None, None]},
+                      'userTogglePopups': {'balance': 0, 'discreet': [1], 'filttype': 0, 'poly': 0, 'polynum': 0}},
+ u'04-Pendulum': {'active': False,
+                  'gainSlider': 0.0,
+                  'nchnls': 2,
+                  'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                              3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                  'totalTime': 60.00000000000003,
+                  'userGraph': {'cut': {'curved': False,
+                                        'data': [[0.0, 0.5000000000000001],
+                                                 [0.0033444816053511705, 0.5816032119331548],
+                                                 [0.006688963210702341, 0.6490033441097236],
+                                                 [0.010033444816053512, 0.6904693698920247],
+                                                 [0.013377926421404682, 0.698784106801296],
+                                                 [0.016722408026755852, 0.6725003707294642],
+                                                 [0.020066889632107024, 0.6161928590552928],
+                                                 [0.023411371237458192, 0.5396619222828556],
+                                                 [0.026755852842809364, 0.45622780814597397],
+                                                 [0.030100334448160532, 0.3804122658434043],
+                                                 [0.033444816053511704, 0.3254110283445089],
+                                                 [0.03678929765886287, 0.30079708848133024],
+                                                 [0.04013377926421405, 0.3108545147692954],
+                                                 [0.043478260869565216, 0.35383280714437515],
+                                                 [0.046822742474916385, 0.42225157237272065],
+                                                 [0.05016722408026756, 0.5042024902256951],
+                                                 [0.05351170568561873, 0.5854219625578644],
+                                                 [0.056856187290969896, 0.6517736996816784],
+                                                 [0.060200668896321065, 0.6917091486415315],
+                                                 [0.06354515050167224, 0.6982775246183596],
+                                                 [0.06688963210702341, 0.6703355984958067],
+                                                 [0.07023411371237458, 0.6127466764583934],
+                                                 [0.07357859531772575, 0.5355341391233336],
+                                                 [0.07692307692307693, 0.4521368671424884],
+                                                 [0.0802675585284281, 0.37707019731897257],
+                                                 [0.08361204013377926, 0.3233995209934849],
+                                                 [0.08695652173913043, 0.30046624616189216],
+                                                 [0.0903010033444816, 0.3122619207522304],
+                                                 [0.09364548494983277, 0.3567335017160641],
+                                                 [0.09698996655518395, 0.4261406881955285],
+                                                 [0.10033444816053512, 0.5084031247500116],
+                                                 [0.10367892976588629, 0.5892029932486348],
+                                                 [0.10702341137123746, 0.654477036260458],
+                                                 [0.11036789297658862, 0.6928642740278315],
+                                                 [0.11371237458193979, 0.6976833886622921],
+                                                 [0.11705685618729096, 0.6680956108569964],
+                                                 [0.12040133779264213, 0.6092507081031183],
+                                                 [0.12374581939799331, 0.5313906650883015],
+                                                 [0.12709030100334448, 0.4480670611510711],
+                                                 [0.13043478260869565, 0.37378241113478955],
+                                                 [0.13377926421404682, 0.32146599544248367],
+                                                 [0.137123745819398, 0.3002235123310446],
+                                                 [0.14046822742474915, 0.31375222658591834],
+                                                 [0.14381270903010032, 0.35969745874027886],
+                                                 [0.1471571906354515, 0.43006241821120467],
+                                                 [0.1505016722408027, 0.5126000486909957],
+                                                 [0.15384615384615385, 0.592944634408754],
+                                                 [0.15719063545150502, 0.6571121601287315],
+                                                 [0.1605351170568562, 0.6939342359800713],
+                                                 [0.16387959866220736, 0.6970019612868054],
+                                                 [0.16722408026755853, 0.6657813969285159],
+                                                 [0.1705685618729097, 0.6057064977106779],
+                                                 [0.17391304347826086, 0.52723332981925],
+                                                 [0.17725752508361203, 0.44402018728347714],
+                                                 [0.1806020066889632, 0.37055035908467926],
+                                                 [0.18394648829431437, 0.3196113054819577],
+                                                 [0.18729096989966554, 0.30006899417321403],
+                                                 [0.1906354515050167, 0.3153247741932571],
+                                                 [0.1939799331103679, 0.3627233694170366],
+                                                 [0.19732441471571907, 0.434015030694176],
+                                                 [0.20066889632107024, 0.5167914088051841],
+                                                 [0.2040133779264214, 0.596645233834816],
+                                                 [0.20735785953177258, 0.659677907689979],
+                                                 [0.21070234113712374, 0.6949185620331743],
+                                                 [0.2140468227424749, 0.6962335433910466],
+                                                 [0.21739130434782608, 0.6633939786020886],
+                                                 [0.22073578595317725, 0.6021156103046079],
+                                                 [0.22408026755852842, 0.5230639690783997],
+                                                 [0.22742474916387959, 0.4399980325252828],
+                                                 [0.23076923076923075, 0.36737546835184176],
+                                                 [0.23411371237458192, 0.3178362700907817],
+                                                 [0.23745819397993312, 0.30000275991926884],
+                                                 [0.24080267558528426, 0.31697886918149265],
+                                                 [0.24414715719063546, 0.3658098975893645],
+                                                 [0.24749163879598662, 0.4379967802820389],
+                                                 [0.2508361204013378, 0.5209753543059412],
+                                                 [0.25418060200668896, 0.6003031574462903],
+                                                 [0.25752508361204013, 0.6621731459823078],
+                                                 [0.2608695652173913, 0.6958168175364646],
+                                                 [0.26421404682274247, 0.6953784742867256],
+                                                 [0.26755852842809363, 0.6609344100944395],
+                                                 [0.2709030100334448, 0.5984796315196995],
+                                                 [0.274247491638796, 0.5188844239380814],
+                                                 [0.27759197324414714, 0.4360023729468009],
+                                                 [0.2809364548494983, 0.3642591408786457],
+                                                 [0.2842809364548495, 0.31614167307461577],
+                                                 [0.28762541806020064, 0.30002483881639125],
+                                                 [0.2909698996655518, 0.31871378114884225],
+                                                 [0.294314381270903, 0.36895568033331066],
+                                                 [0.29765886287625415, 0.44200590874626816],
+                                                 [0.3010033444816054, 0.5251500376807174],
+                                                 [0.30434782608695654, 0.6039167900070869],
+                                                 [0.3076923076923077, 0.6645967731787317],
+                                                 [0.3110367892976588, 0.6966286058455995],
+                                                 [0.31438127090301005, 0.6944371315482881],
+                                                 [0.3177257525083612, 0.6584037774817804],
+                                                 [0.3210702341137124, 0.594800166901826],
+                                                 [0.32441471571906355, 0.5146965399677695],
+                                                 [0.3277591973244147, 0.43203497291881826],
+                                                 [0.3311036789297659, 0.3612027527475779],
+                                                 [0.33444816053511706, 0.3145282627197961],
+                                                 [0.3377926421404682, 0.3001352211151618],
+                                                 [0.3411371237458194, 0.32052874400702136],
+                                                 [0.34448160535117056, 0.37215932855977474],
+                                                 [0.34782608695652173, 0.4460406457685942],
+                                                 [0.3511705685618729, 0.5293136155068555],
+                                                 [0.35451505016722407, 0.607484535838792],
+                                                 [0.35785953177257523, 0.6669477190737071],
+                                                 [0.3612040133779264, 0.697353568497714],
+                                                 [0.36454849498327757, 0.6934099308461882],
+                                                 [0.36789297658862874, 0.6558031982202345],
+                                                 [0.37123745819397985, 0.5910788411989831],
+                                                 [0.3745819397993311, 0.5105021664191339],
+                                                 [0.37792642140468224, 0.4280975843335025],
+                                                 [0.3812709030100334, 0.3582076535735947],
+                                                 [0.3846153846153846, 0.3129967514629177],
+                                                 [0.3879598662207358, 0.3003338580738646],
+                                                 [0.391304347826087, 0.3224229563195253],
+                                                 [0.39464882943143814, 0.37541942762788505],
+                                                 [0.3979933110367893, 0.45009920972273204],
+                                                 [0.4013377926421405, 0.5334642492655991],
+                                                 [0.40468227424749165, 0.6110048195252851],
+                                                 [0.4080267558528428, 0.6692249455557105],
+                                                 [0.411371237458194, 0.6979913853697095],
+                                                 [0.41471571906354515, 0.6922973257633376],
+                                                 [0.4180602006688963, 0.6531338206523928],
+                                                 [0.4214046822742475, 0.5873172976438399],
+                                                 [0.42474916387959866, 0.5063031554094541],
+                                                 [0.4280936454849498, 0.4241919458308094],
+                                                 [0.431438127090301, 0.3552751659081747],
+                                                 [0.43478260869565216, 0.3115478155762363],
+                                                 [0.43812709030100333, 0.3006206619800108],
+                                                 [0.4414715719063545, 0.3243955816555198],
+                                                 [0.4448160535117056, 0.37873453796966633],
+                                                 [0.44816053511705684, 0.45417980846109046],
+                                                 [0.451505016722408, 0.5376001061539227],
+                                                 [0.45484949832775917, 0.614476086608388],
+                                                 [0.45819397993311034, 0.6714274470656324],
+                                                 [0.4615384615384615, 0.6985417748196108],
+                                                 [0.4648829431438127, 0.6910998075948213],
+                                                 [0.46822742474916385, 0.6503968235002447],
+                                                 [0.47157190635451507, 0.5835171972281392],
+                                                 [0.47491638795986624, 0.5021013611037867],
+                                                 [0.4782608695652174, 0.4203197820307523],
+                                                 [0.4816053511705685, 0.3524065846553195],
+                                                 [0.48494983277591974, 0.3101820948690508],
+                                                 [0.4882943143812709, 0.3009955061890692],
+                                                 [0.4916387959866221, 0.32644574895918976],
+                                                 [0.49498327759197325, 0.3821031957257205],
+                                                 [0.4983277591973244, 0.4582806401061429],
+                                                 [0.5016722408026756, 0.5417193598938563],
+                                                 [0.5050167224080268, 0.6178968042742792],
+                                                 [0.5083612040133779, 0.6735542510408097],
+                                                 [0.5117056856187291, 0.6990044938109308],
+                                                 [0.5150501672240803, 0.6898179051309496],
+                                                 [0.5183946488294314, 0.6475934153446814],
+                                                 [0.5217391304347826, 0.5796802179692488],
+                                                 [0.5250836120401338, 0.4978986388962131],
+                                                 [0.5284280936454849, 0.4164828027718608],
+                                                 [0.5317725752508361, 0.34960317649975625],
+                                                 [0.5351170568561873, 0.3089001924051801],
+                                                 [0.5384615384615384, 0.30145822518038895],
+                                                 [0.5418060200668896, 0.3285725529343664],
+                                                 [0.5451505016722408, 0.38552391339161035],
+                                                 [0.548494983277592, 0.46239989384607527],
+                                                 [0.5518394648829431, 0.5458201915389074],
+                                                 [0.5551839464882943, 0.6212654620303321],
+                                                 [0.5585284280936454, 0.6756044183444798],
+                                                 [0.5618729096989966, 0.6993793380199894],
+                                                 [0.5652173913043478, 0.6884521844237653],
+                                                 [0.568561872909699, 0.644724834091828],
+                                                 [0.57190635451505, 0.5758080541691942],
+                                                 [0.5752508361204013, 0.49369684459054836],
+                                                 [0.5785953177257525, 0.4126827023561627],
+                                                 [0.5819397993311036, 0.346866179347609],
+                                                 [0.5852842809364548, 0.3077026742366632],
+                                                 [0.588628762541806, 0.3020086146302905],
+                                                 [0.5919732441471571, 0.33077505444428923],
+                                                 [0.5953177257525083, 0.38899518047471415],
+                                                 [0.5986622073578595, 0.46653575073439735],
+                                                 [0.6020066889632107, 0.5499007902772672],
+                                                 [0.6053511705685619, 0.6245805723721155],
+                                                 [0.6086956521739131, 0.6775770436804753],
+                                                 [0.6120401337792643, 0.6996661419261356],
+                                                 [0.6153846153846154, 0.6870032485370828],
+                                                 [0.6187290969899666, 0.6417923464264063],
+                                                 [0.6220735785953176, 0.5719024156664974],
+                                                 [0.6254180602006689, 0.48949783358086585],
+                                                 [0.6287625418060201, 0.4089211588010165],
+                                                 [0.6321070234113713, 0.34419680177976725],
+                                                 [0.6354515050167224, 0.30659006915381265],
+                                                 [0.6387959866220736, 0.30264643150228615],
+                                                 [0.6421404682274248, 0.33305228092629247],
+                                                 [0.6454849498327759, 0.3925154641612074],
+                                                 [0.6488294314381271, 0.47068638449314376],
+                                                 [0.6521739130434783, 0.5539593542314052],
+                                                 [0.6555183946488294, 0.6278406714402258],
+                                                 [0.6588628762541806, 0.6794712559929789],
+                                                 [0.6622073578595318, 0.6998647788848384],
+                                                 [0.6655518394648829, 0.685471737280205],
+                                                 [0.6688963210702341, 0.638797247252424],
+                                                 [0.6722408026755853, 0.5679650270811829],
+                                                 [0.6755852842809364, 0.4853034600322317],
+                                                 [0.6789297658862876, 0.4051998330981752],
+                                                 [0.6822742474916388, 0.3415962225182204],
+                                                 [0.68561872909699, 0.3055628684517121],
+                                                 [0.6889632107023411, 0.3033713941544007],
+                                                 [0.6923076923076923, 0.33540322682126894],
+                                                 [0.6956521739130435, 0.3960832099929113],
+                                                 [0.6989966555183946, 0.4748499623192804],
+                                                 [0.7023411371237458, 0.5579940912537297],
+                                                 [0.705685618729097, 0.6310443196666875],
+                                                 [0.7090301003344481, 0.6812862188511571],
+                                                 [0.7123745819397993, 0.6999751611836089],
+                                                 [0.7157190635451505, 0.6838583269253856],
+                                                 [0.7190635451505017, 0.635740859121355],
+                                                 [0.7224080267558528, 0.5639976270532003],
+                                                 [0.725752508361204, 0.4811155760619198],
+                                                 [0.7290969899665551, 0.4015203684803038],
+                                                 [0.7324414715719063, 0.3390655899055629],
+                                                 [0.7357859531772575, 0.3046215257132752],
+                                                 [0.7391304347826086, 0.304183182463535],
+                                                 [0.7424749163879597, 0.337826854017691],
+                                                 [0.745819397993311, 0.39969684255370774],
+                                                 [0.7491638795986622, 0.4790246456940572],
+                                                 [0.7525083612040133, 0.5620032197179595],
+                                                 [0.7558528428093645, 0.6341901024106349],
+                                                 [0.7591973244147157, 0.683021130818506],
+                                                 [0.7625418060200668, 0.6999972400807314],
+                                                 [0.765886287625418, 0.68216372990922],
+                                                 [0.7692307692307692, 0.6326245316481615],
+                                                 [0.7725752508361204, 0.5600019674747176],
+                                                 [0.7759197324414716, 0.4769360309216009],
+                                                 [0.7792642140468228, 0.3978843896953919],
+                                                 [0.782608695652174, 0.3366060213979112],
+                                                 [0.7859531772575251, 0.30376645660895363],
+                                                 [0.7892976588628763, 0.30508143796682613],
+                                                 [0.7926421404682273, 0.3403220923100202],
+                                                 [0.7959866220735786, 0.4033547661651834],
+                                                 [0.7993311036789298, 0.48320859119481524],
+                                                 [0.802675585284281, 0.565984969305824],
+                                                 [0.8060200668896321, 0.6372766305829634],
+                                                 [0.8093645484949833, 0.6846752258067429],
+                                                 [0.8127090301003345, 0.6999310058267864],
+                                                 [0.8160535117056856, 0.6803886945180428],
+                                                 [0.8193979933110368, 0.6294496409153205],
+                                                 [0.822742474916388, 0.5559798127165254],
+                                                 [0.8260869565217391, 0.4727666701807525],
+                                                 [0.8294314381270903, 0.39429350228932375],
+                                                 [0.8327759197324415, 0.3342186030714851],
+                                                 [0.8361204013377926, 0.3029980387131948],
+                                                 [0.8394648829431438, 0.3060657640199285],
+                                                 [0.842809364548495, 0.3428878398712685],
+                                                 [0.8461538461538461, 0.40705536559124605],
+                                                 [0.8494983277591973, 0.4873999513090041],
+                                                 [0.8528428093645485, 0.5699375817887955],
+                                                 [0.8561872909698997, 0.6403025412597193],
+                                                 [0.8595317725752508, 0.686247773414081],
+                                                 [0.862876254180602, 0.6997764876689557],
+                                                 [0.8662207357859533, 0.6785340045575176],
+                                                 [0.8695652173913043, 0.6262175888652121],
+                                                 [0.8729096989966555, 0.5519329388489307],
+                                                 [0.8762541806020067, 0.46860933491170015],
+                                                 [0.8795986622073578, 0.39074929189688284],
+                                                 [0.882943143812709, 0.3319043891430044],
+                                                 [0.8862876254180602, 0.30231661133770826],
+                                                 [0.8896321070234112, 0.30713572597216793],
+                                                 [0.8929765886287625, 0.3455229637395403],
+                                                 [0.8963210702341137, 0.4107970067513628],
+                                                 [0.8996655518394648, 0.4915968752499863],
+                                                 [0.903010033444816, 0.5738593118044697],
+                                                 [0.9063545150501672, 0.6432664982839345],
+                                                 [0.9096989966555183, 0.6877380792477694],
+                                                 [0.9130434782608695, 0.699533753838108],
+                                                 [0.9163879598662207, 0.6766004790065161],
+                                                 [0.9197324414715718, 0.6229298026810308],
+                                                 [0.923076923076923, 0.5478631328575151],
+                                                 [0.9264214046822742, 0.4644658608766702],
+                                                 [0.9297658862876254, 0.3872533235416095],
+                                                 [0.9331103678929765, 0.32966440150419507],
+                                                 [0.9364548494983277, 0.301722475381641],
+                                                 [0.9397993311036789, 0.3082908513584678],
+                                                 [0.9431438127090301, 0.348226300318322],
+                                                 [0.9464882943143813, 0.4145780374421366],
+                                                 [0.9498327759197325, 0.49579750977430626],
+                                                 [0.9531772575250836, 0.5777484276272782],
+                                                 [0.9565217391304348, 0.6461671928556241],
+                                                 [0.959866220735786, 0.6891454852307044],
+                                                 [0.963210702341137, 0.6992029115186698],
+                                                 [0.9665551839464883, 0.6745889716554915],
+                                                 [0.9698996655518395, 0.6195877341565961],
+                                                 [0.9732441471571907, 0.5437721918540263],
+                                                 [0.9765886287625418, 0.46033807771714447],
+                                                 [0.979933110367893, 0.383807140944707],
+                                                 [0.9832775919732442, 0.32749962927053555],
+                                                 [0.9866220735785953, 0.3012158931987044],
+                                                 [0.9899665551839465, 0.3095306301079751],
+                                                 [0.9933110367892977, 0.35099665589027573],
+                                                 [0.9966555183946488, 0.41839678806684427],
+                                                 [1.0, 0.4999999999999991]]},
+                                'dens': {'curved': False, 'data': [[0.0, 0.6159959170695358], [1.0, 0.6159959170695358]]},
+                                'densrnd': {'curved': False, 'data': [[0.0, 0.1747425010840047], [1.0, 0.1747425010840047]]},
+                                'dur': {'curved': False, 'data': [[0.0, 0.5752574989159953], [1.0, 0.5752574989159953]]},
+                                'durrnd': {'curved': False, 'data': [[0.0, 0.1747425010840047], [1.0, 0.1747425010840047]]},
+                                'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                'filterq': {'curved': False, 'data': [[0.0, 0.11563869392888107], [1.0, 0.11563869392888107]]},
+                                'grainenv': {'curved': False,
+                                             'data': [[0.0, 0.0],
+                                                      [0.0038016606026681481, 1.0],
+                                                      [0.25, 0.0],
+                                                      [0.25, 1.0],
+                                                      [0.5, 0.0],
+                                                      [0.5, 1.0],
+                                                      [0.75, 0.0],
+                                                      [0.75, 1.0],
+                                                      [1.0, 0.0]]},
+                                'pitrnd': {'curved': False, 'data': [[0.0, 0.1889634150903278], [1.0, 0.1889634150903278]]},
+                                'pos': {'curved': False, 'data': [[0.0, 0.0], [1.0, 1.0]]},
+                                'posrnd': {'curved': False, 'data': [[0.0, 0.1889634150903278], [1.0, 0.1889634150903278]]},
+                                'transp': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]}},
+                  'userInputs': {'sndtable': {'dursndtable': 5.466417233560091,
+                                              'mode': 0,
+                                              'nchnlssndtable': 1,
+                                              'offsndtable': 0.0,
+                                              'path': u'/home/olivier/Dropbox/private/snds/flute.wav',
+                                              'srsndtable': 44100.0,
+                                              'type': 'cfilein'}},
+                  'userSliders': {'cut': [2969.75317382813, 1, None, 1, None, None],
+                                  'dens': [6.0, 0, None, 1, None, None],
+                                  'densrnd': [0.0001, 0, None, 1, None, None],
+                                  'dur': [1.0, 0, None, 1, None, None],
+                                  'durrnd': [0.0001, 0, None, 1, None, None],
+                                  'filterq': [0.7000000000000001, 0, None, 1, None, None],
+                                  'pitrnd': [0.0004999999999999999, 0, None, 1, None, None],
+                                  'pos': [0.6571243405342102, 1, None, 1, None, None],
+                                  'posrnd': [0.0004999999999999999, 0, None, 1, None, None],
+                                  'transp': [0.0, 0, None, 1, None, None]},
+                  'userTogglePopups': {'balance': 0, 'discreet': [1], 'filttype': 2, 'poly': 0, 'polynum': 0}},
+ u'05-Inharmonic': {'gainSlider': 0.0,
+                    'nchnls': 2,
+                    'plugins': {0: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                1: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                2: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]],
+                                3: ['None', [0, 0, 0, 0], [[0, 0, None], [0, 0, None], [0, 0, None]]]},
+                    'totalTime': 60.00000000000003,
+                    'userGraph': {'cut': {'curved': False, 'data': [[0.0, 1.0202891182582745], [1.0, 1.0202891182582745]]},
+                                  'dens': {'curved': False, 'data': [[0.0, 0.6159959170695358], [1.0, 0.6159959170695358]]},
+                                  'densrnd': {'curved': False, 'data': [[0.0, 0.1747425010840047], [1.0, 0.1747425010840047]]},
+                                  'dur': {'curved': False, 'data': [[0.0, 0.5752574989159953], [1.0, 0.5752574989159953]]},
+                                  'durrnd': {'curved': False, 'data': [[0.0, 0.1747425010840047], [1.0, 0.1747425010840047]]},
+                                  'env': {'curved': False, 'data': [[0.0, 1.0], [1.0, 1.0]]},
+                                  'filterq': {'curved': False, 'data': [[0.0, 0.11563869392888107], [1.0, 0.11563869392888107]]},
+                                  'grainenv': {'curved': True, 'data': [[0.0, 0.0], [0.5, 1.0], [1.0, 0.0]]},
+                                  'pitrnd': {'curved': False, 'data': [[0.0, 0.1889634150903278], [1.0, 0.1889634150903278]]},
+                                  'pos': {'curved': False, 'data': [[0.0, 0.0], [1.0, 1.0]]},
+                                  'posrnd': {'curved': False, 'data': [[0.0, 0.1889634150903278], [1.0, 0.1889634150903278]]},
+                                  'transp': {'curved': False, 'data': [[0.0, 0.5], [1.0, 0.5]]}},
+                    'userInputs': {'sndtable': {'dursndtable': 5.466417233560091,
+                                                'mode': 0,
+                                                'nchnlssndtable': 1,
+                                                'offsndtable': 0.0,
+                                                'path': u'/home/olivier/Dropbox/private/snds/flute.wav',
+                                                'srsndtable': 44100.0,
+                                                'type': 'cfilein'}},
+                    'userSliders': {'cut': [18000.000000000015, 0, None, 1, None, None],
+                                    'dens': [100.0, 0, None, 1, None, None],
+                                    'densrnd': [0.0001, 0, None, 1, None, None],
+                                    'dur': [0.20000000000000004, 0, None, 1, None, None],
+                                    'durrnd': [0.0001, 0, None, 1, None, None],
+                                    'filterq': [0.707, 0, None, 1, None, None],
+                                    'pitrnd': [0.0001, 0, None, 1, None, None],
+                                    'pos': [0.7960571050643921, 1, None, 1, None, None],
+                                    'posrnd': [0.0001, 0, None, 1, None, None],
+                                    'transp': [-1200.0, 0, None, 1, None, None]},
+                    'userTogglePopups': {'balance': 0, 'discreet': [2.1, 2.15, 2.25, 2.35], 'filttype': 0, 'poly': 0, 'polynum': 0}}}
\ No newline at end of file
diff --git a/Resources/splash.py b/Resources/splash.py
new file mode 100644
index 0000000..878c3b4
--- /dev/null
+++ b/Resources/splash.py
@@ -0,0 +1,79 @@
+#!/usr/bin/env python
+# encoding: utf-8
+
+import wx, sys, os
+from Resources.constants import *
+
+def GetRoundBitmap(w, h, r):
+    maskColour = wx.Colour(0,0,0)
+    shownColour = wx.Colour(5,5,5)
+    b = wx.EmptyBitmap(w,h)
+    dc = wx.MemoryDC(b)
+    dc.SetBrush(wx.Brush(maskColour))
+    dc.DrawRectangle(0,0,w,h)
+    dc.SetBrush(wx.Brush(shownColour))
+    dc.SetPen(wx.Pen(shownColour))
+    dc.DrawRoundedRectangle(0, 0, w, h, r)
+    dc.SelectObject(wx.NullBitmap)
+    b.SetMaskColour(maskColour)
+    return b
+
+def GetRoundShape(w, h, r=17):
+    return wx.RegionFromBitmap(GetRoundBitmap(w,h,r))
+
+class CeciliaSplashScreen(wx.Frame):
+    def __init__(self, parent, img, callback):
+        display = wx.Display(0)
+        size = display.GetGeometry()[2:]
+        wx.Frame.__init__(self, parent, -1, "", pos=(-1, size[1]/6),
+                         style = wx.FRAME_SHAPED | wx.SIMPLE_BORDER | wx.FRAME_NO_TASKBAR | wx.STAY_ON_TOP)
+
+        self.Bind(wx.EVT_PAINT, self.OnPaint)
+        
+        self.callback = callback
+
+        self.bmp = wx.Bitmap(os.path.join(img), wx.BITMAP_TYPE_PNG)
+        self.w, self.h = self.bmp.GetWidth(), self.bmp.GetHeight()
+        self.SetClientSize((self.w, self.h))
+
+        if wx.Platform == "__WXGTK__":
+            self.Bind(wx.EVT_WINDOW_CREATE, self.SetWindowShape)
+        else:
+            self.SetWindowShape()
+
+        dc = wx.ClientDC(self)
+        dc.DrawBitmap(self.bmp, 0, 0, True)
+
+        self.fc = wx.FutureCall(2500, self.OnClose)
+
+        self.Center(wx.HORIZONTAL)
+        if sys.platform == 'win32':
+            self.Center(wx.VERTICAL)
+            
+        wx.CallAfter(self.Show)
+        
+    def SetWindowShape(self, *evt):
+        r = GetRoundShape(self.w, self.h)
+        self.hasShape = self.SetShape(r)
+
+    def OnPaint(self, evt):
+        w,h = self.GetSize()
+        dc = wx.PaintDC(self)
+        dc.SetPen(wx.Pen("#000000"))
+        dc.SetBrush(wx.Brush("#000000"))
+        dc.DrawRectangle(0,0,w,h)
+        dc.DrawBitmap(self.bmp, 0,0,True)
+        dc.SetTextForeground("#333333")
+        font, psize = dc.GetFont(), dc.GetFont().GetPointSize()
+        if sys.platform != "win32":
+            font.SetFaceName("Monaco")
+            font.SetPointSize(psize)
+        dc.SetFont(font)
+        dc.DrawLabel("Cecilia %s" % APP_VERSION, wx.Rect(280, 185, 200, 15), wx.ALIGN_RIGHT)
+        dc.DrawLabel(u"Spirit of the project: Jean Piché", wx.Rect(280, 200, 200, 15), wx.ALIGN_RIGHT)
+        dc.DrawLabel(u"Programmed by: Olivier Bélanger", wx.Rect(280, 215, 200, 15), wx.ALIGN_RIGHT)
+        dc.DrawLabel(APP_COPYRIGHT, wx.Rect(280, 230, 200, 15), wx.ALIGN_RIGHT)
+
+    def OnClose(self):
+        self.callback()
+        self.Destroy()
diff --git a/Resources/Cecilia5.ico b/doc-en/source/_static/Cecilia5.ico
similarity index 100%
copy from Resources/Cecilia5.ico
copy to doc-en/source/_static/Cecilia5.ico
diff --git a/doc-en/source/_static/nature.css b/doc-en/source/_static/nature.css
new file mode 100644
index 0000000..5d73f48
--- /dev/null
+++ b/doc-en/source/_static/nature.css
@@ -0,0 +1,245 @@
+/*
+ * nature.css_t
+ * ~~~~~~~~~~~~
+ *
+ * Sphinx stylesheet -- nature theme.
+ *
+ * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+ 
+ at import url("basic.css");
+ 
+/* -- page layout ----------------------------------------------------------- */
+ 
+body {
+    font-family: Arial, sans-serif;
+    font-size: 100%;
+    background-color: #111;
+    color: #555;
+    margin: 0;
+    padding: 0;
+}
+
+div.documentwrapper {
+    float: left;
+    width: 100%;
+}
+
+div.bodywrapper {
+    margin: 0 0 0 230px;
+}
+
+hr {
+    border: 1px solid #B1B4B6;
+}
+ 
+div.document {
+    background-color: #eee;
+}
+ 
+div.body {
+    background-color: #ffffff;
+    color: #3E4349;
+    padding: 0 30px 30px 30px;
+    font-size: 0.9em;
+}
+ 
+div.footer {
+    color: #555; /* text copyright*/
+    width: 100%;
+    padding: 13px 0;
+    text-align: center;
+    font-size: 75%;
+}
+ 
+div.footer a {
+    color: #666; /* Sphinx link in copyright */
+    text-decoration: underline;
+}
+ 
+div.related {
+    background-color: #33333F; /* top and bottom bars */
+    line-height: 32px;
+    color: #fff;
+    text-shadow: 0px 1px 0 #444;
+    font-size: 0.9em;
+}
+ 
+div.related a {
+    color: #E2F3CC; /* text in top and bottom bars */
+}
+ 
+div.sphinxsidebar {
+    font-size: 0.75em;
+    line-height: 1.5em;
+}
+
+div.sphinxsidebarwrapper{
+    padding: 20px 0;
+}
+ 
+div.sphinxsidebar h3,
+div.sphinxsidebar h4 {
+    font-family: Arial, sans-serif;
+    color: #222;
+    font-size: 1.2em;
+    font-weight: normal;
+    margin: 0;
+    padding: 5px 10px;
+    background-color: #ddd;
+    text-shadow: 1px 1px 0 white
+}
+
+div.sphinxsidebar h4{
+    font-size: 1.1em;
+}
+ 
+div.sphinxsidebar h3 a {
+    color: #444;
+}
+ 
+ 
+div.sphinxsidebar p {
+    color: #888;
+    padding: 5px 20px;
+}
+ 
+div.sphinxsidebar p.topless {
+}
+ 
+div.sphinxsidebar ul {
+    margin: 10px 20px;
+    padding: 0;
+    color: #000;
+}
+ 
+div.sphinxsidebar a {
+    color: #444;
+}
+ 
+div.sphinxsidebar input {
+    border: 1px solid #ccc;
+    font-family: sans-serif;
+    font-size: 1em;
+}
+
+div.sphinxsidebar input[type=text]{
+    margin-left: 20px;
+}
+ 
+/* -- body styles ----------------------------------------------------------- */
+ 
+a {
+    color: #005B81;
+    text-decoration: none;
+}
+ 
+a:hover {
+    color: #E32EFF;
+    text-decoration: underline;
+}
+ 
+div.body h1,
+div.body h2,
+div.body h3,
+div.body h4,
+div.body h5,
+div.body h6 {
+    font-family: Arial, sans-serif;
+    background-color: #CCCCD0; /* first headers */
+    font-weight: normal;
+    color: #212224;
+    margin: 30px 0px 10px 0px;
+    padding: 5px 0 5px 10px;
+    text-shadow: 0px 1px 0 white
+}
+ 
+div.body h1 { border-top: 20px solid white; margin-top: 0; font-size: 200%; } /* Just on top of big titles */
+div.body h2 { font-size: 150%; background-color: #D0D0DA; } /* second headers */
+div.body h3 { font-size: 120%; background-color: #D0D0D0; } /* third headers */
+div.body h4 { font-size: 110%; background-color: #D8DEE3; }
+div.body h5 { font-size: 100%; background-color: #D8DEE3; }
+div.body h6 { font-size: 100%; background-color: #D8DEE3; }
+ 
+a.headerlink {
+    color: #c60f0f;
+    font-size: 0.8em;
+    padding: 0 4px 0 4px;
+    text-decoration: none;
+}
+ 
+a.headerlink:hover {
+    background-color: #c60f0f;
+    color: white;
+}
+ 
+div.body p, div.body dd, div.body li {
+    line-height: 1.5em;
+}
+ 
+div.admonition p.admonition-title + p {
+    display: inline;
+}
+
+div.highlight{
+    background-color: white;
+}
+
+div.note {
+    background-color: #eee;
+    border: 1px solid #ccc;
+}
+ 
+div.seealso {
+    background-color: #EFFAEF;
+    border: 1px solid #CCDDCC;
+}
+ 
+div.topic {
+    background-color: #eee;
+}
+ 
+div.warning {
+    background-color: #ffe4e4;
+    border: 1px solid #f66;
+}
+ 
+p.admonition-title {
+    display: inline;
+}
+ 
+p.admonition-title:after {
+    content: ":";
+}
+ 
+pre {
+    padding: 10px;
+    background-color: White;
+    color: #222;
+    line-height: 1.2em;
+    border: 1px solid #C6C9CB;
+    font-size: 1.1em;
+    margin: 1.5em 0 1.5em 0;
+    -webkit-box-shadow: 1px 1px 1px #d8d8d8;
+    -moz-box-shadow: 1px 1px 1px #d8d8d8;
+}
+ 
+tt {
+    background-color: #ecf0f3;
+    color: #222;
+    /* padding: 1px 2px; */
+    font-size: 1.1em;
+    font-family: monospace;
+}
+
+.viewcode-back {
+    font-family: Arial, sans-serif;
+}
+
+div.viewcode-block:target {
+    background-color: #f4debf;
+    border-top: 1px solid #ac9;
+    border-bottom: 1px solid #ac9;
+}
diff --git a/doc-en/source/conf.py b/doc-en/source/conf.py
new file mode 100644
index 0000000..19a67ef
--- /dev/null
+++ b/doc-en/source/conf.py
@@ -0,0 +1,245 @@
+# -*- coding: utf-8 -*-
+#
+# Cecilia5 documentation build configuration file, created by
+# sphinx-quickstart on Thu May 23 18:54:14 2013.
+#
+# This file is execfile()d with the current directory set to its containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+import sys, os
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#sys.path.insert(0, os.path.abspath('.'))
+
+# -- General configuration -----------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be extensions
+# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
+extensions = ['sphinx.ext.autodoc', 'sphinx.ext.mathjax', 'sphinx.ext.ifconfig']
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix of source filenames.
+source_suffix = '.rst'
+
+# The encoding of source files.
+#source_encoding = 'utf-8-sig'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'Cecilia5'
+copyright = u'2015, Olivier Bélanger, Julie Delisle, Jean Piché'
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+version = '5.2.0'
+# The full version, including alpha/beta/rc tags.
+release = '5.2.0'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#language = None
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+#today = ''
+# Else, today_fmt is used as the format for a strftime call.
+#today_fmt = '%B %d, %Y'
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+exclude_patterns = []
+
+# The reST default role (used for this markup: `text`) to use for all documents.
+#default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+#add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+#add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+#show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# A list of ignored prefixes for module index sorting.
+#modindex_common_prefix = []
+
+
+# -- Options for HTML output ---------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  See the documentation for
+# a list of builtin themes.
+html_theme = 'nature'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further.  For a list of options available for each theme, see the
+# documentation.
+#html_theme_options = {}
+
+# Add any paths that contain custom themes here, relative to this directory.
+#html_theme_path = []
+
+# The name for this set of Sphinx documents.  If None, it defaults to
+# "<project> v<release> documentation".
+#html_title = None
+
+# A shorter title for the navigation bar.  Default is the same as html_title.
+#html_short_title = None
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+#html_logo = None
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+html_favicon = 'Cecilia5.ico'
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+#html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+#html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+#html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+#html_additional_pages = {}
+
+# If false, no module index is generated.
+html_domain_indices = False
+
+# If false, no index is generated.
+html_use_index = False
+
+# If true, the index is split into individual pages for each letter.
+#html_split_index = False
+
+# If true, links to the reST sources are added to the pages.
+#html_show_sourcelink = True
+
+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
+#html_show_sphinx = True
+
+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
+#html_show_copyright = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it.  The value of this option must be the
+# base URL from which the finished HTML is served.
+#html_use_opensearch = ''
+
+# This is the file name suffix for HTML files (e.g. ".xhtml").
+#html_file_suffix = None
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'Cecilia5doc'
+
+
+# -- Options for LaTeX output --------------------------------------------------
+
+latex_elements = {
+# The paper size ('letterpaper' or 'a4paper').
+#'papersize': 'letterpaper',
+
+# The font size ('10pt', '11pt' or '12pt').
+#'pointsize': '10pt',
+
+# Additional stuff for the LaTeX preamble.
+#'preamble': '',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title, author, documentclass [howto/manual]).
+latex_documents = [
+  ('index', 'Cecilia5.tex', u'Cecilia5 Documentation',
+   u'Olivier Bélanger, Julie Delisle, Jean Piché', 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+#latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+#latex_use_parts = False
+
+# If true, show page references after internal links.
+#latex_show_pagerefs = False
+
+# If true, show URL addresses after external links.
+#latex_show_urls = False
+
+# Documents to append as an appendix to all manuals.
+#latex_appendices = []
+
+# If false, no module index is generated.
+latex_domain_indices = False
+
+
+# -- Options for manual page output --------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+    ('index', 'cecilia5', u'Cecilia5 Documentation',
+     [u'Olivier Bélanger, Julie Delisle, Jean Piché'], 1)
+]
+
+# If true, show URL addresses after external links.
+#man_show_urls = False
+
+
+# -- Options for Texinfo output ------------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+#  dir menu entry, description, category)
+texinfo_documents = [
+  ('index', 'Cecilia5', u'Cecilia5 Documentation',
+   u'Olivier Bélanger, Julie Delisle, Jean Piché', 'Cecilia5', 'One line description of project.',
+   'Miscellaneous'),
+]
+
+# Documents to append as an appendix to all manuals.
+#texinfo_appendices = []
+
+# If false, no module index is generated.
+texinfo_domain_indices = False
+
+# How to display URL addresses: 'footnote', 'no', or 'inline'.
+#texinfo_show_urls = 'footnote'
+
+html_add_permalinks = None
+html_show_sourcelink = False
diff --git a/doc-en/source/images/Cecilia5_96.png b/doc-en/source/images/Cecilia5_96.png
new file mode 100644
index 0000000..c4c8d08
Binary files /dev/null and b/doc-en/source/images/Cecilia5_96.png differ
diff --git a/doc/images/Chapitre2/6-Icones/4-Horloge.png b/doc-en/source/images/Horloge.png
similarity index 100%
rename from doc/images/Chapitre2/6-Icones/4-Horloge.png
rename to doc-en/source/images/Horloge.png
diff --git a/doc-en/source/images/Icones-In.png b/doc-en/source/images/Icones-In.png
new file mode 100644
index 0000000..fda7487
Binary files /dev/null and b/doc-en/source/images/Icones-In.png differ
diff --git a/doc-en/source/images/Icones-Out.png b/doc-en/source/images/Icones-Out.png
new file mode 100644
index 0000000..4982f74
Binary files /dev/null and b/doc-en/source/images/Icones-Out.png differ
diff --git a/doc-en/source/images/Icones-SSC.png b/doc-en/source/images/Icones-SSC.png
new file mode 100644
index 0000000..1eb1709
Binary files /dev/null and b/doc-en/source/images/Icones-SSC.png differ
diff --git a/doc-en/source/images/Input.png b/doc-en/source/images/Input.png
new file mode 100644
index 0000000..4f662cb
Binary files /dev/null and b/doc-en/source/images/Input.png differ
diff --git a/doc-en/source/images/Interface-graphique.png b/doc-en/source/images/Interface-graphique.png
new file mode 100644
index 0000000..26815ba
Binary files /dev/null and b/doc-en/source/images/Interface-graphique.png differ
diff --git a/doc-en/source/images/Onglet_Cecilia5.png b/doc-en/source/images/Onglet_Cecilia5.png
new file mode 100644
index 0000000..beca905
Binary files /dev/null and b/doc-en/source/images/Onglet_Cecilia5.png differ
diff --git a/doc-en/source/images/Onglet_MIDI.png b/doc-en/source/images/Onglet_MIDI.png
new file mode 100644
index 0000000..6b48081
Binary files /dev/null and b/doc-en/source/images/Onglet_MIDI.png differ
diff --git a/doc-en/source/images/Onglet_dossier.png b/doc-en/source/images/Onglet_dossier.png
new file mode 100644
index 0000000..8ba25d1
Binary files /dev/null and b/doc-en/source/images/Onglet_dossier.png differ
diff --git a/doc-en/source/images/Onglet_export.png b/doc-en/source/images/Onglet_export.png
new file mode 100644
index 0000000..58502aa
Binary files /dev/null and b/doc-en/source/images/Onglet_export.png differ
diff --git a/doc-en/source/images/Onglet_haut-parleur.png b/doc-en/source/images/Onglet_haut-parleur.png
new file mode 100644
index 0000000..ae7def2
Binary files /dev/null and b/doc-en/source/images/Onglet_haut-parleur.png differ
diff --git a/doc-en/source/images/OpenSoundControl.png b/doc-en/source/images/OpenSoundControl.png
new file mode 100644
index 0000000..9e4b31e
Binary files /dev/null and b/doc-en/source/images/OpenSoundControl.png differ
diff --git a/doc-en/source/images/Output.png b/doc-en/source/images/Output.png
new file mode 100644
index 0000000..decf229
Binary files /dev/null and b/doc-en/source/images/Output.png differ
diff --git a/doc-en/source/images/Post-processing.png b/doc-en/source/images/Post-processing.png
new file mode 100644
index 0000000..5623208
Binary files /dev/null and b/doc-en/source/images/Post-processing.png differ
diff --git a/doc-en/source/images/SourceSoundControls.png b/doc-en/source/images/SourceSoundControls.png
new file mode 100644
index 0000000..4ddb4bc
Binary files /dev/null and b/doc-en/source/images/SourceSoundControls.png differ
diff --git a/doc-en/source/images/Transport.png b/doc-en/source/images/Transport.png
new file mode 100644
index 0000000..3e15710
Binary files /dev/null and b/doc-en/source/images/Transport.png differ
diff --git a/doc-en/source/images/inputMode1.png b/doc-en/source/images/inputMode1.png
new file mode 100644
index 0000000..4b27005
Binary files /dev/null and b/doc-en/source/images/inputMode1.png differ
diff --git a/doc-en/source/images/inputMode2.png b/doc-en/source/images/inputMode2.png
new file mode 100644
index 0000000..d295eba
Binary files /dev/null and b/doc-en/source/images/inputMode2.png differ
diff --git a/doc-en/source/images/inputMode3.png b/doc-en/source/images/inputMode3.png
new file mode 100644
index 0000000..927eca7
Binary files /dev/null and b/doc-en/source/images/inputMode3.png differ
diff --git a/doc-en/source/images/inputMode4.png b/doc-en/source/images/inputMode4.png
new file mode 100644
index 0000000..d8da27a
Binary files /dev/null and b/doc-en/source/images/inputMode4.png differ
diff --git a/doc-en/source/images/midiLearn.png b/doc-en/source/images/midiLearn.png
new file mode 100644
index 0000000..2170d48
Binary files /dev/null and b/doc-en/source/images/midiLearn.png differ
diff --git a/doc-en/source/index.rst b/doc-en/source/index.rst
new file mode 100644
index 0000000..10b0014
--- /dev/null
+++ b/doc-en/source/index.rst
@@ -0,0 +1,41 @@
+.. Cecilia5 documentation master file, created by
+   sphinx-quickstart on Thu May 23 18:54:14 2013.
+   You can adapt this file completely to your liking, but it should at least
+   contain the root `toctree` directive.
+
+Cecilia5 5.2.0 documentation
+====================================
+
+Welcome to the Cecilia5 documentation.
+
+**The graphical user interface:**
+
+.. toctree::
+   :maxdepth: 1
+
+   src/intro/description
+   src/intro/requirements
+   src/configuration/preferences
+   src/configuration/menubar
+   src/configuration/midi-osc
+   src/interface/interface
+
+**The audio processing tools available with Cecilia5:**
+
+.. toctree::
+   :maxdepth: 2
+
+   src/modules/index
+
+**The developement of custom audio processing tools:**
+
+.. toctree::
+   :maxdepth: 2
+
+   src/api/index
+
+
+**Search this documentation:**
+
+* :ref:`search`
+
diff --git a/doc-en/source/src/api/BaseModule/index.rst b/doc-en/source/src/api/BaseModule/index.rst
new file mode 100644
index 0000000..55453ac
--- /dev/null
+++ b/doc-en/source/src/api/BaseModule/index.rst
@@ -0,0 +1,163 @@
+BaseModule API
+===============
+
+Here are the explanations about the processing class under every cecilia5 module.
+
+Declaration of the module's class
+----------------------------------
+
+Every module must contain a class named 'Module', where the audio processing
+will be developed. In order to work properly inside the environment, this 
+class must inherit from the `BaseModule` class, defined inside the Cecilia 
+source code. The BaseModule's internals create all links between the interface 
+and the module's processing. A Cecilia module must be declared like this:
+
+.. code::
+
+    class Module(BaseModule):
+        '''
+        Module's documentation
+        '''
+        def __init__(self):
+            BaseModule.__init__(self)
+            ### Here comes the processing chain...
+
+
+The module file will be executed in an environment where both `BaseModule` and
+`pyo` are already available. No need to import anything specific to define the
+audio process of the module.
+
+Module's output
+----------------
+
+The last object of the processing chain (ie the one producing the output sound) 
+must be called 'self.out'. The audio server gets the sound from this variable 
+and sends it to the Post-Processing plugins and from there, to the soundcard.
+
+Here is an example of a typical output variable, where 'self.snd' is the dry 
+sound and 'self.dsp' is the processed sound. 'self.drywet' is a mixing slider 
+and 'self.env' is the overall gain from a grapher's line:
+
+.. code::
+
+    self.out = Interp(self.snd, self.dsp, self.drywet, mul=self.env)
+
+
+Module's documentation
+-----------------------
+
+The class should provide a __doc__ string giving relevant information about
+the processing implemented by the module. The user can show the documentation
+by selecting 'Help Menu' ---> 'Show Module Info'. Here is an example:
+
+.. code::
+
+        '''
+        "Convolution brickwall lowpass/highpass/bandpass/bandstop filter"
+        
+        Description
+    
+        Convolution filter with a user-defined length sinc kernel. This
+        kind of filters are very CPU expensive but can give quite good
+        stopband attenuation.
+        
+        Sliders
+    
+            # Cutoff Frequency :
+                Cutoff frequency, in Hz, of the filter.
+            # Bandwidth :
+                Bandwith, in Hz, of the filter. 
+                Used only by bandpass and pnadstop filters.
+            # Filter Order :
+                Number of points of the filter kernel. A longer kernel means
+                a sharper attenuation (and a higher CPU cost). This value is
+                only available at initialization time.
+    
+        Graph Only
+        
+            # Overall Amplitude : 
+                The amplitude curve applied on the total duration of the performance
+    
+        Popups & Toggles
+    
+            # Filter Type :
+                Type of the filter (lowpass, highpass, bandpass, bandstop)
+            # Balance :
+                Compression mode. Off, balanced with a fixed signal
+                or balanced with the input source.
+            # Polyphony Voices : 
+                Number of voices played simultaneously (polyphony), 
+                only available at initialization time
+            # Polyphony Spread : 
+                Pitch variation between voices (chorus), 
+                only available at initialization time
+    
+        '''
+
+
+Public Attributes
+------------------
+
+These are the attributes, defined in the BaseModule class, available to the 
+user to help in the design of his custom modules.
+
+**self.sr** 
+    Cecilia's current sampling rate.
+**self.nchnls** 
+    Cecilia's current number of channels.
+**self.totalTime** 
+    Cecilia's current duration.
+**self.filepath**
+    Path to the directory where is saved the current cecilia file.
+**self.number_of_voices** 
+    Number of voices from the cpoly widget.
+**self.polyphony_spread** 
+    List of transposition factors from the cpoly widget.
+**self.polyphony_scaling** 
+    Amplitude value according to polyphony number of voices.
+
+Public Methods
+---------------
+
+These are the methods, defined in the BaseModule class, available to the 
+user to help in the design of his custom modules.
+
+**self.addFilein(name)** 
+    Creates a SndTable object from the name of a cfilein widget.
+**self.addSampler(name, pitch, amp)** 
+    Creates a sampler/looper from the name of a csampler widget.
+**self.getSamplerDur(name)** 
+    Returns the duration of the sound used by the sampler `name`. 
+**self.duplicate(seq, num)** 
+    Duplicates elements in a sequence according to the `num` parameter.
+**self.setGlobalSeed(x)** 
+    Sets the Server's global seed used by objects from the random family.
+
+Template
+---------
+
+This template, saved in a file with the extension '.c5', created a basic 
+module where a sound can be load in a sampler for reading, with optional 
+polyphonic playback. A graph envelope modulates the amplitude of the sound 
+over the performance duration.
+ 
+.. code::
+
+    class Module(BaseModule):
+        '''
+        Module's documentation
+        '''
+        def __init__(self):
+            BaseModule.__init__(self)
+            ### get the sound from a sampler/looper
+            self.snd = self.addSampler('snd')
+            ### mix the channels and apply the envelope from the graph
+            self.out = Mix(self.snd, voices=self.nchnls, mul=self.env)
+    
+    Interface = [
+        csampler(name='snd'),
+        cgraph(name='env', label='Amplitude', func=[(0,1),(1,1)], col='blue1'),
+        cpoly()
+    ]
+
+
diff --git a/doc-en/source/src/api/Interface/cbutton.rst b/doc-en/source/src/api/Interface/cbutton.rst
new file mode 100644
index 0000000..c3def04
--- /dev/null
+++ b/doc-en/source/src/api/Interface/cbutton.rst
@@ -0,0 +1,40 @@
+cbutton : creates a button that can be used as an event trigger
+===============================================================
+
+Initline
+---------
+
+.. code::
+    
+    cbutton(name='button', label='Trigger', col='red', help='')
+    
+Description
+------------
+
+A button has no state, it only sends a trigger when it is clicked.
+
+When the button is clicked, a function is called with the current 
+state of the mouse (down or up) as argument.
+
+If `name` is set to 'foo', the function should be defined like this :
+
+
+.. code::
+
+        def foo(self, value):
+        
+value is True on mouse pressed and False on mouse released.
+
+Parameters
+-----------
+
+    **name** : str
+        Name of the widget. Used to defined the function.
+    **label** : str
+        Label shown in the interface.
+    **col** : str
+        Color of the widget.
+    **help** : str
+        Help string shown in the button tooltip.
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/api/Interface/cfilein.rst b/doc-en/source/src/api/Interface/cfilein.rst
new file mode 100644
index 0000000..08cd7d6
--- /dev/null
+++ b/doc-en/source/src/api/Interface/cfilein.rst
@@ -0,0 +1,52 @@
+cfilein : creates a popup menu to load a soundfile in a table
+=============================================================
+
+Initline
+---------
+
+.. code::
+    
+    cfilein(name='filein', label='Audio', help='')
+    
+Description
+------------
+
+This interactive menu allows the user to import a soundfile into the 
+processing module. When the user chooses a sound using the interface,
+Cecilia will scan the whole folder for soundfiles. A submenu containing 
+all soundfiles present in the folder will allow a quicker access to them 
+later on.
+
+More than one cfilein can be defined in a module. They will appear under 
+the input label in the left side panel of the main window, in the order 
+defined. 
+
+In the processing class, use the BaseModule's method `addFilein` to 
+retrieve the SndTable filled with the selected sound.
+
+
+.. code::
+
+        BaseModule.addFilein(name)
+
+For a cfilein created with name='mysound', the table is retrieved 
+using a call like this one:
+
+
+.. code::
+
+        self.table = self.addFilein('mysound')
+
+Parameters
+-----------
+
+    **name** : str
+        A string passed to the parameter `name` of the BaseModule.addFilein
+        method. This method returns a SndTable object containing Cecilia's
+        number of channels filled with the selected sound in the interface.
+    **label** : str
+        Label shown in the interface.
+    **help** : str
+        Help string shown in the widget's popup tooltip.
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/api/Interface/cgen.rst b/doc-en/source/src/api/Interface/cgen.rst
new file mode 100644
index 0000000..af52c90
--- /dev/null
+++ b/doc-en/source/src/api/Interface/cgen.rst
@@ -0,0 +1,67 @@
+cgen : creates a list entry useful to generate list of arbitrary values
+=======================================================================
+
+Initline
+---------
+
+.. code::
+    
+    cgen(name='gen', label='Wave shape', init=[1,0,.3,0,.2,0,.143,0,.111], 
+             rate='k', popup=None, col='red', help='')
+    
+Description
+------------
+
+Widget that can be used to create a list of floating-point values. A 
+left click on the widget will open a floating window to enter the desired
+values. Values can be separated by commas or by spaces.
+
+If `rate` argument is set to 'i', a built-in reserved variable is created 
+at initialization time. The variable name is constructed like this :
+
+
+.. code::
+
+        self.widget_name + '_value' for retrieving a list of floats.
+
+If `name` is set to 'foo', the variable name will be:
+
+
+.. code::
+
+        self.foo_value (this variable is a list of floats)
+
+If `rate` argument is set to 'k', a module method using one argument
+must be defined with the name `name`. If `name` is set to 'foo', the 
+function should be defined like this :
+
+
+.. code::
+
+        def foo(self, value):
+            value -> list of strings
+
+Parameters
+-----------
+
+    **name** : str
+        Name of the widget. 
+        Used to defined the function or the reserved variable.
+    **label** : str
+        Label shown in the interface.
+    **init** : int
+        An array of number, separated with commas, with which to 
+        initialize the widget.
+    **rate** : str {'k', 'i'}
+        Indicates if the widget is handled at initialization time only 
+        ('i') with a reserved variable or with a function ('k') that can 
+        be called at any time during playback.
+    **popup** : tuple (str, int) -> (popup's name, index)
+        If a tuple is specified, and cgen is modified, the popup will 
+        be automatically set to the given index.
+    **col** : str
+        Color of the widget.
+    **help** : str
+        Help string shown in the widget's tooltip.
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/api/Interface/cgraph.rst b/doc-en/source/src/api/Interface/cgraph.rst
new file mode 100644
index 0000000..50836b1
--- /dev/null
+++ b/doc-en/source/src/api/Interface/cgraph.rst
@@ -0,0 +1,56 @@
+cgraph : creates a graph only automated parameter or a shapeable envelope
+=========================================================================
+
+Initline
+---------
+
+.. code::
+    
+    cgraph(name='graph', label='Envelope', min=0.0, max=1.0, rel='lin', 
+           table=False, size=8192, unit='x', curved=False, 
+           func=[(0, 0.), (.01, 1), (.99, 1), (1, 0.)], col='red')
+    
+Description
+------------
+
+A graph line represents the evolution of a variable during a Cecilia 
+performance. The value of the graph is passed to the module with a 
+variable named `self.name`. The 'func' argument defines an initial 
+break-point line shaped with time/value pairs (floats) as a list. Time 
+values must be defined from 0 to 1 and are multiplied by the total_time 
+of the process. When True, the 'table' argument writes the graph line in 
+a PyoTableObject named with the variable `self.name`. The graph can then 
+be used for any purpose in the module by recalling its variable. The 
+`col` argument defines the color of the graph line using a color value.
+
+Parameters
+-----------
+
+    **name** : str
+        Name of the grapher line.
+    **label** : str
+        Label shown in the grapher popup.
+    **min** : float
+        Minimum value for the Y axis.
+    **max** : float
+        Maximum value for the Y axis.
+    **rel** : str {'lin', 'log'}
+        Y axis scaling.
+    **table** : boolean
+        If True, a PyoTableObject will be created instead of a 
+        control variable.
+    **size** : int
+        Size, in samples, of the PyoTableObject.
+    **unit** : str
+        Unit symbol shown in the interface.
+    **curved** : boolean
+        If True, a cosinus segments will be drawn between points. 
+        The curved mode can be switched by double-click on the curve 
+        in the grapher. Defaults to Flase
+    **func** : list of tuples
+        Initial graph line in break-points (serie of time/value points).
+        Times must be in increasing order between 0 and 1.
+    **col** : str
+        Color of the widget.
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/api/Interface/colours.rst b/doc-en/source/src/api/Interface/colours.rst
new file mode 100644
index 0000000..969a31a
--- /dev/null
+++ b/doc-en/source/src/api/Interface/colours.rst
@@ -0,0 +1,17 @@
+Colours
+========
+Five colours, with four shades each, are available to build the interface.
+The colour should be given, as a string, to the `col` argument of a widget
+function.
+
+
+.. code::
+
+            red1    blue1    green1    purple1    orange1 
+
+            red2    blue2    green2    purple2    orange2 
+
+            red3    blue3    green3    purple3    orange3 
+
+            red4    blue4    green4    purple4    orange4
+
diff --git a/doc-en/source/src/api/Interface/cpoly.rst b/doc-en/source/src/api/Interface/cpoly.rst
new file mode 100644
index 0000000..eea8a89
--- /dev/null
+++ b/doc-en/source/src/api/Interface/cpoly.rst
@@ -0,0 +1,61 @@
+cpoly : creates two popup menus used as polyphony manager
+=========================================================
+
+Initline
+---------
+
+.. code::
+    
+    cpoly(name='poly', label='Polyphony', min=1, max=10, init=1, help='')
+    
+Description
+------------
+
+cpoly is a widget conceived to help manage the voice polyphony of a 
+module. cpoly comes with a popup menu that allows the user to choose how 
+many instances (voices) of a process will be simultaneously playing. It 
+also provides another popup to choose the type of polyphony (phasing, 
+chorus, out-of-tune or one of the provided chords).
+
+cpoly has two values that are passed to the processing module: the number 
+of voices and the voice spread. The number of voices can be collected 
+using `self.number_of_voices`. `self.polyphony_spread` gives access to 
+the transposition factors defined by the type of polyphony.
+
+If a csampler is used, you don't need to take care of polyphony, it's 
+automatically handled inside the csampler. Without a csampler, user can 
+retrieve polyphony popups values with these builtin reserved 
+variables :
+    
+    **self.number_of_voices** : int
+        Number of layers of polyphony
+    **self.polyphony_spread** : list of floats
+        Transposition factors as a list of floats
+    **self.polyphony_scaling** : float
+        An amplitude factor based on the number of voices
+
+Notes 
+-------
+
+The cpoly interface object and its associated variables can be used in 
+the dsp module any way one sees fit.
+
+No more than one `cpoly` can be declared in a module.
+
+Parameters
+-----------
+
+    **name** : str
+        Name of the widget.
+    **label** : str
+        Label shown in the interface.
+    **min** : int
+        Minimum value for the number of layers slider.
+    **max** : int
+        Maximum value for the number of layers slider.
+    **init** : int
+        Initial value for the number of layers slider.
+    **help** : str
+        Help string shown in the cpoly tooltip.
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/api/Interface/cpopup.rst b/doc-en/source/src/api/Interface/cpopup.rst
new file mode 100644
index 0000000..79cee82
--- /dev/null
+++ b/doc-en/source/src/api/Interface/cpopup.rst
@@ -0,0 +1,68 @@
+cpopup : creates a popup menu offering a limited set of choices
+===============================================================
+
+Initline
+---------
+
+.. code::
+    
+    cpopup(name='popup', label='Chooser', value=['1', '2', '3', '4'],
+               init='1', rate='k', col='red', help='')
+    
+Description
+------------
+
+A popup menu offers a limited set choices that are available to modify
+the state of the current module.
+
+If `rate` argument is set to 'i', two built-in reserved variables are 
+created at initialization time. The variables' names are constructed 
+like this :
+
+
+.. code::
+
+        self.widget_name + '_index' for the selected position in the popup.
+        self.widget_name + '_value' for the selected string in the popup.
+
+If `name` is set to 'foo', the variables names will be:
+
+
+.. code::
+
+        self.foo_index (this variable is an integer)
+        self.foo_value (this variable is a string)
+
+If `rate` argument is set to 'k', a module method using two arguments
+must be defined with the name `name`. If `name` is set to 'foo', the 
+function should be defined like this :
+
+
+.. code::
+
+        def foo(self, index, value):
+            index -> int
+            value -> str
+
+Parameters
+-----------
+
+    **name** : str
+        Name of the widget. 
+        Used to defined the function or the reserved variables.
+    **label** : str
+        Label shown in the interface.
+    **value** : list of strings
+        An array of strings with which to initialize the popup.
+    **init** : int
+        Initial state of the popup.
+    **rate** : str {'k', 'i'}
+        Indicates if the popup is handled at initialization time only 
+        ('i') with reserved variables or with a function ('k') that can 
+        be called at any time during playback.
+    **col** : str
+        Color of the widget.
+    **help** : str
+        Help string shown in the popup tooltip.
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/api/Interface/crange.rst b/doc-en/source/src/api/Interface/crange.rst
new file mode 100644
index 0000000..df1d699
--- /dev/null
+++ b/doc-en/source/src/api/Interface/crange.rst
@@ -0,0 +1,79 @@
+crange : two-sided slider, with its own graph lines, for time-varying controls
+==============================================================================
+
+Initline
+---------
+
+.. code::
+    
+    crange(name='range', label='Pitch', min=20.0, max=20000.0, 
+           init=[500.0, 2000.0], rel='log', res='float', gliss=0.025, 
+           unit='x', up=False, func=None, midictl=None, col='red', help='')
+    
+Description
+------------
+
+This function creates a two-sided slider used to control a minimum and 
+a maximum range at the sime time. When created, the range slider is 
+stacked in the slider pane of the main Cecilia window in the order it 
+is defined. The values of the range slider are passed to the module 
+with a variable named `self.name`. The range minimum is collected using 
+`self.name[0]` and the range maximum is collected using `self.name[1]`. 
+The `up` argument passes the values of the range on mouse up if set to 
+True or continuously if set to False. The `gliss` argument determines 
+the duration of the portamento (in sec) applied on a new value. The 
+resolution of the range slider can be set to 'int' or 'float' using the 
+`res` argument. Slider color can be set using the `col` argument and a 
+color value. However, sliders with `up` set to True are greyed out and 
+the `col` argument is ignored.
+
+Every time a range slider is defined, two graph lines are automatically 
+defined for the grapher in the Cecilia interface. One is linked to the 
+minimum value of the range, the other one to the maximum value of the 
+range. The recording and playback of an automated slider is linked to its 
+graph line.
+
+Notes 
+-------
+
+In order to quickly select the minimum value (and graph line), the user 
+can click on the left side of the crange label, and on the right side of 
+the label to select the maximum value (and graph line).
+
+Parameters
+-----------
+
+    **name** : str
+        Name of the range slider.
+    **label** : str
+        Label shown in the crange label and the grapher popup.
+    **min** : float
+        Minimum value of the range slider.
+    **max** : float
+        Maximum value of the range slider.
+    **init** : list of float
+        Range slider minimum and maximum initial values.
+    **rel** : str {'lin', 'log'}
+        Range slider scaling. Defaults to 'lin'.
+    **res** : str {'int', 'float'}
+        Range slider resolution. Defaults to 'float'
+    **gliss** : float
+        Portamento between values in seconds. Defaults to 0.025.
+    **unit** : str
+        Unit symbol shown in the interface.
+    **up** : boolean
+        Value passed on mouse up if True. Defaults to False.
+    **func** : list of list of tuples
+        Initial automation in break-points format (serie of time/value 
+        points). Times must be in increasing order between 0 and 1.
+        The list must contain two lists of points, one for the minimum
+        value and one for the maximum value.
+    **midictl** : list of int
+        Automatically map two midi controllers to this range slider. 
+        Defaults to None.
+    **col** : str
+        Color of the widget.
+    **help** : str
+        Help string shown in the crange tooltip.
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/api/Interface/csampler.rst b/doc-en/source/src/api/Interface/csampler.rst
new file mode 100644
index 0000000..787326d
--- /dev/null
+++ b/doc-en/source/src/api/Interface/csampler.rst
@@ -0,0 +1,69 @@
+csampler : creates a popup menu to load a soundfile in a sampler
+================================================================
+
+Initline
+---------
+
+.. code::
+    
+    csampler(name='sampler', label='Audio', help='')
+    
+Description
+------------
+
+This menu allows the user to choose a soundfile for processing in the 
+module. More than one csampler can be defined in a module. They will 
+appear under the input label in the left side panel of the main window, 
+in the order they have been defined. When the user chooses a sound using 
+the interface, Cecilia will scan the whole folder for soundfiles. A 
+submenu containing all soundfiles present in the folder will allow a 
+quicker access to them later on. Loop points, pitch and amplitude 
+parameters of the loaded soundfile can be controlled by the csampler 
+window that drops when clicking the triangle just besides the name of 
+the sound.
+
+A sampler returns an audio variable containing Cecilia's number of 
+output channels regardless of the number of channels in the soundfile. 
+A distribution algorithm is used to assign X number of channels to Y 
+number of outputs.
+
+In the processing class, use the BaseModule's method `addSampler` to 
+retrieve the audio variable containing all channels of the looped sound.
+
+
+.. code::
+
+        BaseModule.addSampler(name, pitch, amp)
+
+For a csampler created with name='mysound', the audio variable is 
+retrieved using a call like this one:
+
+
+.. code::
+
+        self.snd = self.addSampler('mysound')
+  
+Audio LFOs on pitch and amplitude of the looped sound can be passed 
+directly to the addSampler method:
+
+
+.. code::
+
+        self.pitlf = Sine(freq=.1, mul=.25, add=1)
+        self.amplf = Sine(freq=.15, mul=.5, add=.5)
+        self.snd = self.addSampler('mysound', self.pitlf, self.amplf)
+        
+Parameters
+-----------
+
+    **name** : str
+        A string passed to the parameter `name` of the BaseModule.addSampler
+        method. This method returns a Mix object containing Cecilia's 
+        number of channels as audio streams from a Looper object 
+        controlled with the sampler window of the interface.
+    **label** : str
+        Label shown in the interface.
+    **help** : str
+        Help string shown in the sampler popup's tooltip.
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/api/Interface/cslider.rst b/doc-en/source/src/api/Interface/cslider.rst
new file mode 100644
index 0000000..a118e78
--- /dev/null
+++ b/doc-en/source/src/api/Interface/cslider.rst
@@ -0,0 +1,79 @@
+cslider : creates a slider, and its own graph line, for time-varying controls
+=============================================================================
+
+Initline
+---------
+
+.. code::
+    
+    cslider(name='slider', label='Pitch', min=20.0, max=20000.0, init=1000.0, 
+            rel='lin', res='float', gliss=0.025, unit='x', up=False, 
+            func=None, midictl=None, half=False, col='red', help='')
+    
+Description
+------------
+
+When created, the slider is stacked in the slider pane of the main Cecilia
+window in the order it is defined. The value of the slider is passed to 
+the module with a variable named `self.name`. The `up` argument passes 
+the value of the slider on mouse up if set to True or continuously if set 
+to False. The `gliss` argument determines the duration of the portamento 
+(in seconds) applied between values. The portamento is automatically set 
+to 0 if `up` is True. The resolution of the slider can be set to int or 
+float using the `res` argument. Slider color can be set using the `col` 
+argument and a color value. However, sliders with `up` set to True are 
+greyed out and the `col` argument is ignored.
+
+If `up` is set to True, the cslider will not create an audio rate signal,
+but will call a method named `widget_name` + '_up'. This method must be 
+defined in the class `Module`. For a cslider with the name 'grains', the
+method should be declared like this:
+
+
+.. code::
+
+    def grains_up(self, value):
+
+Every time a slider is defined with `up` set to False, a corresponding 
+graph line is automatically defined for the grapher in the Cecilia 
+interface. The recording and playback of an automated slider is linked 
+to its graph line.
+
+Parameters
+-----------
+
+    **name** : str
+        Name of the slider.
+    **label** : str
+        Label shown in the slider label and the grapher popup.
+    **min** : float
+        Minimum value of the slider.
+    **max** : float
+        Maximum value of the slider.
+    **init** : float
+        Slider's initial value.
+    **rel** : str {'lin', 'log'}
+        Slider scaling. Defaults to 'lin'.
+    **res** : str {'int', 'float'}
+        Slider resolution. Defaults to 'float'
+    **gliss** : float
+        Portamento between values in seconds. Defaults to 0.025.
+    **unit** : str
+        Unit symbol shown in the interface.
+    **up** : boolean
+        Value passed on mouse up if True. Defaults to False.
+    **func** : list of tuples
+        Initial automation in break-points format (serie of time/value 
+        points). Times must be in increasing order between 0 and 1.
+    **midictl** : int 
+        Automatically map a midi controller to this slider. 
+        Defaults to None.
+    **half** : boolean
+        Determines if the slider is full-width or half-width. Set to True
+        to get half-width slider. Defaults to False.
+    **col** : str
+        Color of the widget.
+    **help** : str
+        Help string shown in the cslider tooltip.
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/api/Interface/csplitter.rst b/doc-en/source/src/api/Interface/csplitter.rst
new file mode 100644
index 0000000..6a7004a
--- /dev/null
+++ b/doc-en/source/src/api/Interface/csplitter.rst
@@ -0,0 +1,65 @@
+csplitter : creates a multi-knobs slider used to split the spectrum in sub-regions
+==================================================================================
+
+Initline
+---------
+
+.. code::
+    
+    csplitter(name='splitter', label='Pitch', min=20.0, max=20000.0, 
+              init=[500.0, 2000.0, 5000.0], rel='log', res='float', 
+              gliss=0.025, unit='x', up=False, num_knobs=3, col='red', help='')
+    
+Description
+------------
+
+When created, the splitter is stacked in the slider pane of the main 
+Cecilia window in the order it is defined. The values of the splitter 
+slider are passed to the module with a variable named `self.name`. The 
+knob values are collected using `self.name[0]` to `self.name[num-knobs-1]`.
+The `up` argument passes the values of the splitter on mouse up if set to 
+True or continuously if set to False. The `gliss` argument determines the 
+duration of the portamento (in seconds) applied between values. The 
+resolution of the splitter slider can be set to int or float using the 
+`res` argument. The slider color can be set using the `col` argument and 
+a color value. However, sliders with `up` set to True are greyed out and 
+the `col` argument is ignored.
+
+The csplitter is designed to be used with the FourBand() object in
+order to allow multi-band processing. Although the FourBand() parameters 
+can be changed at audio rate, it is not recommended. This filter is CPU 
+intensive and can have erratic behavior when boundaries are changed too 
+quickly.
+
+Parameters
+-----------
+
+    **name** : str
+        Name of the splitter slider.
+    **label** : str
+        Label shown in the csplitter label.
+    **min** : float
+        Minimum value of the splitter slider.
+    **max** : float
+        Maximum value of the splitter slider.
+    **init** : list of float
+        Splitter knobs initial values. List must be of length `num_knobs`.
+        Defaults to [500.0, 2000.0, 5000.0].
+    **rel** : str {'lin', 'log'}
+        Splitter slider scaling. Defaults to 'lin'.
+    **res** : str {'int', 'float'}
+        Splitter slider resolution. Defaults to 'float'
+    **gliss** : float
+        Portamento between values in seconds. Defaults to 0.025.
+    **unit** : str
+        Unit symbol shown in the interface.
+    **up** : boolean
+        Value passed on mouse up if True. Defaults to False.
+    **num_knobs** : int
+        Number of junction knobs. Defaults to 3.
+    **col** : str
+        Color of the widget.
+    **help** : str
+        Help string shown in the csplitter tooltip.
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/api/Interface/ctoggle.rst b/doc-en/source/src/api/Interface/ctoggle.rst
new file mode 100644
index 0000000..b3a0aaf
--- /dev/null
+++ b/doc-en/source/src/api/Interface/ctoggle.rst
@@ -0,0 +1,66 @@
+ctoggle : creates a two-states button
+=====================================
+
+Initline
+---------
+
+.. code::
+    
+    ctoggle(name='toggle', label='Start/Stop', init=True, rate='k', 
+            stack=False, col='red', help='')
+    
+Description
+------------
+
+A toggle button is a two-states switch that can be used to start and stop
+processes.
+
+If `rate` argument is set to 'i', a built-in reserved variable is created 
+at initialization time. The variable's name is constructed like this :
+    
+
+.. code::
+
+        self.widget_name + '_value'
+    
+If `name` is set to 'foo', the variable's name will be:
+
+
+.. code::
+
+        self.foo_value
+
+If `rate` argument is set to 'k', a module method using one argument
+must be defined with the name `name`. If `name` is set to 'foo', the 
+function should be defined like this :
+
+
+.. code::
+
+        def foo(self, value):
+        
+value is an integer (0 or 1).
+
+Parameters
+-----------
+
+    **name** : str
+        Name of the widget used to defined the function or the 
+        reserved variable.
+    **label** : str
+        Label shown in the interface.
+    **init** : int
+        Initial state of the toggle.
+    **rate** : str {'k', 'i'}
+        Indicates if the toggle is handled at initialization time only 
+        ('i') with a reserved variable or with a function ('k') that can 
+        be called at any time during playback.
+    **stack** : boolean
+        If True, the toggle will be added on the same row as the last 
+        toogle with stack=True and a label not empty. Defaults to False.
+    **col** : str
+        Color of the widget.
+    **help** : str
+        Help string shown in the toggle tooltip.
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/api/Interface/example1.rst b/doc-en/source/src/api/Interface/example1.rst
new file mode 100644
index 0000000..d82088f
--- /dev/null
+++ b/doc-en/source/src/api/Interface/example1.rst
@@ -0,0 +1,63 @@
+Example 1
+==============================================
+
+.. code::
+
+    # This example shows how to use the sampler to loop any soundfile from the disk.
+    # A state-variable filter is then applied on the looped sound. 
+    
+    class Module(BaseModule):
+        """
+        "State Variable Filter"
+        
+        Description
+    
+        This module implements lowpass, bandpass and highpass filters in parallel
+        and allow the user to interpolate on an axis lp -> bp -> hp.
+        
+        Sliders
+        
+            # Cutoff/Center Freq : 
+                    Cutoff frequency for lp and hp (center freq for bp)
+            # Filter Q : 
+                    Q factor (inverse of bandwidth) of the filter
+            # Type (lp->bp->hp) : 
+                    Interpolating factor between filters
+            # Dry / Wet : 
+                    Mix between the original and the filtered signals
+    
+        Graph Only
+        
+            # Overall Amplitude : 
+                    The amplitude curve applied on the total duration of the performance
+        
+        Popups & Toggles
+        
+            # Polyphony Voices : 
+                    Number of voices played simultaneously (polyphony), 
+                    only available at initialization time
+            # Polyphony Chords : 
+                    Pitch interval between voices (chords), 
+                    only available at initialization time
+    
+        """
+        def __init__(self):
+            BaseModule.__init__(self)
+            self.snd = self.addSampler("snd")
+            self.dsp = SVF(self.snd, self.freq, self.q, self.type)
+            self.out = Interp(self.snd, self.dsp, self.drywet, mul=self.env)
+    
+    Interface = [
+        csampler(name="snd"),
+        cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
+        cslider(name="freq", label="Cutoff/Center Freq", min=20, max=20000, init=1000, 
+                rel="log", unit="Hz", col="green1"),
+        cslider(name="q", label="Filter Q", min=0.5, max=25, init=1, rel="log", 
+                unit="x", col="green2"),
+        cslider(name="type", label="Type (lp->bp->hp)", min=0, max=1, init=0.5, 
+                rel="lin", unit="x", col="green3"),
+        cslider(name="drywet", label="Dry / Wet", min=0, max=1, init=1, rel="lin", 
+                unit="x", col="blue1"),
+        cpoly()
+    ]
+    
diff --git a/doc-en/source/src/api/Interface/example2.rst b/doc-en/source/src/api/Interface/example2.rst
new file mode 100644
index 0000000..6339ac2
--- /dev/null
+++ b/doc-en/source/src/api/Interface/example2.rst
@@ -0,0 +1,78 @@
+Example 2
+==============================================
+
+.. code::
+
+    # This example shows how to load a sound in a table (RAM) in order to apply
+    # non-streaming effects. Here a frequency self-modulated reader is used to
+    # create new harmonics, in a way similar to waveshaping distortion.
+    
+    class Module(BaseModule):
+        """
+        "Self-modulated frequency sound looper"
+        
+        Description
+        
+        This module loads a sound in a table and apply a frequency self-modulated
+        playback of the content. A Frequency self-modulation occurs when the
+        output sound of the playback is used to modulate the reading pointer speed.
+        That produces new harmonics in a way similar to waveshaping distortion. 
+        
+        Sliders
+        
+            # Transposition : 
+                    Transposition, in cents, of the input sound
+            # Feedback : 
+                    Amount of self-modulation in sound playback
+            # Filter Frequency : 
+                    Frequency, in Hertz, of the filter
+            # Filter Q : 
+                    Q of the filter (inverse of the bandwidth)
+        
+        Graph Only
+        
+            # Overall Amplitude : 
+                    The amplitude curve applied on the total duration of the performance
+    
+        Popups & Toggles
+        
+            # Filter Type : 
+                    Type of the filter
+            # Polyphony Voices : 
+                    Number of voices played simultaneously (polyphony), 
+                    only available at initialization time
+            # Polyphony Chords : 
+                    Pitch interval between voices (chords), 
+                    only available at initialization time
+    
+        """
+        def __init__(self):
+            BaseModule.__init__(self)
+            self.snd = self.addFilein("snd")
+            self.trfactor = CentsToTranspo(self.transpo, mul=self.polyphony_spread)
+            self.freq = Sig(self.trfactor, mul=self.snd.getRate())
+            self.dsp = OscLoop(self.snd, self.freq, self.feed*0.0002, 
+                               mul=self.polyphony_scaling * 0.5)
+            self.mix = self.dsp.mix(self.nchnls)
+            self.out = Biquad(self.mix, freq=self.filt_f, q=self.filt_q, 
+                              type=self.filt_t_index, mul=self.env)
+    
+        def filt_t(self, index, value):
+            self.out.type = index
+    
+    Interface = [
+        cfilein(name="snd"),
+        cgraph(name="env", label="Overall Amplitude", func=[(0,1),(1,1)], col="blue1"),
+        cslider(name="transpo", label="Transposition", min=-4800, max=4800, init=0, 
+                unit="cnts", col="red1"),
+        cslider(name="feed", label="Feedback", min=0, max=1, init=0.25, unit="x", 
+                col="purple1"),
+        cslider(name="filt_f", label="Filter Frequency", min=20, max=18000, 
+                init=10000, rel="log", unit="Hz", col="green1"),
+        cslider(name="filt_q", label="Filter Q", min=0.5, max=25, init=1, 
+                rel="log", unit="x", col="green2"),
+        cpopup(name="filt_t", label="Filter Type", init="Lowpass", 
+               value=["Lowpass", "Highpass", "Bandpass", "Bandreject"], col="green1"),
+        cpoly()
+    ]
+    
diff --git a/doc-en/source/src/api/Interface/index.rst b/doc-en/source/src/api/Interface/index.rst
new file mode 100644
index 0000000..d591c9c
--- /dev/null
+++ b/doc-en/source/src/api/Interface/index.rst
@@ -0,0 +1,23 @@
+Interface API
+==============
+
+The next functions describe every available widgets for building a Cecilia5 interface.
+
+
+.. toctree::
+   :maxdepth: 1
+
+   cfilein
+   csampler
+   cpoly
+   cgraph
+   cslider
+   crange
+   csplitter
+   ctoggle
+   cpopup
+   cbutton
+   cgen
+   colours
+   example1
+   example2
diff --git a/doc-en/source/src/api/index.rst b/doc-en/source/src/api/index.rst
new file mode 100644
index 0000000..dcecec2
--- /dev/null
+++ b/doc-en/source/src/api/index.rst
@@ -0,0 +1,29 @@
+Cecilia5 API Documentation
+=============================
+
+What is a Cecilia module
+-------------------------
+
+A Cecilia module is a python file (with the extension 'C5', associated to 
+the application) containing a class named `Module`, within which the audio 
+processing chain is developed, and a list called `Interface`, telling the 
+software what are the graphical controls necessary for the proper operation 
+of the module. the file can then be loaded by the application to apply the 
+process on different audio signals, whether coming from sound files or from
+the microphone input. Processes used to manipulate the audio signal must be 
+written with the Python's dedicated signal processing module 'pyo'.
+
+API Documentation Structure
+----------------------------
+
+This API is divided into two parts: firstly, there is the description of the 
+parent class, named `BaseModule`, from which every module must inherit. This 
+class implements a lot of features that ease the creation of a dsp chain.
+Then, the various available GUI elements (widgets) are presented.
+
+
+.. toctree::
+   :maxdepth: 2
+
+   BaseModule/index
+   Interface/index
diff --git a/doc-en/source/src/configuration/menubar.rst b/doc-en/source/src/configuration/menubar.rst
new file mode 100644
index 0000000..94be12a
--- /dev/null
+++ b/doc-en/source/src/configuration/menubar.rst
@@ -0,0 +1,95 @@
+Menu Options
+==============
+
+This is a short description of the menus that the user will find in the upper part of the screen.
+
+
+File Menu
+-----------------
+
+The *File* menu gives access to the following commands:
+
+- **Open**: Opens a Cecilia5 file (with the extension .c5) saved by the user.
+- **Open Random**: Chooses a random Cecilia5 module and opens it.
+- **Open Module**: In this menu, the user can choose a Cecilia5 module. The modules fall in eight categories:
+
+    #. **Dynamics**: Modules related to waveshaping and amplitude manipulations.
+    #. **Filters**: Filtering and subtractive synthesis modules.
+    #. **Multiband**: Various processing applied independently to four spectral regions.
+    #. **Pitch**: Modules related to playback speed and pitch manipulations.
+    #. **Resonators&Verbs**: Artificial spaces generation modules.
+    #. **Spectral**: Spectral streaming processing modules.
+    #. **Synthesis**: Additive synthesis and particle generators.
+    #. **Time**: Granulation based time-stretching and delay related modules.
+
+- **Open Recent**: Opens a Cecilia5 file which has been recently modified and saved by the user.
+- **Save** and **Save as**: Saves the module on which the user is currently working. The saved file is plain text file with the ".c5" extension.
+- **Open Module as Text**: Opens a text file that contains the source code of the module, for more information on it or if the user 
+  wishes to modify it. If no text editor has been selected in the Preferences yet, a dialog window will appear to let the user choose one.
+- **Reload module**: Reloads the module from the source code. The user should execute this command if the module source code has been modified.
+- **Preferences...**: Opens the preferences window (Useful to comfigure the application's behaviour for a specific operating system).
+- **Quit**: Properly quit the application.
+
+Edit Menu
+-----------------
+
+The *Edit* menu gives access to the following commnds:
+    
+- **Undo**: Revert the grapher to the previous state.
+- **Redo**: Redo the last action undo'ed.
+- **Copy**: Copy to the clipboard the list of points of the grapher's current line.
+- **Paste**: Set the grapher's current line to the clipboard content (assumed to be a valid list of points). 
+- **Select All Points**: Select all points in the grapher's current line.
+- **Remember Input Sound**: Check this option if you wish that Cecilia5 remembers the input sound you chose for each new module opening.
+
+
+Action Menu
+-----------------
+
+The *Action* menu gives access to the following commnds:
+
+- **Play/Stop**: Start and stop the playback of the process.
+- **Bounce to Disk**: Computes the process as fast as possible and write the result in a soundfile.
+- **Batch Processing on Preset Sequence**: Applies all saved presets of the module to the chosen input sound file.  
+- **Batch Processing on Sound Folder**: Applies the module's current settings to all sound files present in the folder that contains the input sound file.  
+
+The two previous commands processes more than one sound file at a time. Before executing one of these commands, Cecilia5 will ask the user to enter a 
+suffix to identify the new created sound files.
+
+- **Use Sound Duration on Folder Batch Processing**: When processing a folder of sounds in batch mode, if this option is checked, the total duration will
+  be automatically adjusted to the duration of the processed sound. 
+- **Show Spectrum**: Open a window showing the spectral component of the sound that is heard.
+
+The **Use MIDI** menu item indicates if Cecilia5 has already found a MIDI device.
+
+
+Help Menu
+-----------------
+
+The *Help* menu gives access to the following commnds:
+
+- **Show module info**: Opens the module documentation window at the page of the module that is currently used.
+- **Show API Documentation**: Opens the documentation related to Cecilia5's Application Programming Interface (API).  
+  This documentation contains all classes and functions declarations available to design new custom module.
+
+List of Shortcuts
+-------------------
+
+- **Ctrl+O**: Open a Cecilia5 file
+- **Shift+Ctrl+O**: Open a Cecilia5 file randomly
+- **Ctrl+S**: Save the current file
+- **Shift+Ctrl+S**: Save the current file as...
+- **Ctrl+E**: Open the text file that contains the source code of the module
+- **Ctrl+R**: Reload module with all saved modifications in the source code
+- **Ctrl+,**: Open the preferences window
+- **Ctrl+Q**: Quit the application
+- **Ctrl+Z**: Undo (grapher only)
+- **Shift+Ctrl+Z**: Redo (grapher only)
+- **Ctrl+C**: Copy (grapher only)
+- **Ctrl+V**: Paste (grapher only)
+- **Ctrl+A**: Paste (grapher only)
+- **Ctrl+.**: Play/Stop
+- **Ctrl+B**: Bounce to disk
+- **Shift+Ctrl+E**: Eh Oh Mario!
+- **Ctrl+I**: Open module documentation
+- **Ctrl+D**: Open API Documentation
diff --git a/doc-en/source/src/configuration/midi-osc.rst b/doc-en/source/src/configuration/midi-osc.rst
new file mode 100644
index 0000000..417158c
--- /dev/null
+++ b/doc-en/source/src/configuration/midi-osc.rst
@@ -0,0 +1,55 @@
+MIDI - OSC Control
+===================
+
+.. _midiosc:
+
+It is possible to use a MIDI controller or an *Open Sound Control* device to have a finer control 
+on sliders and knobs related to the different parameters in Cecilia5.
+
+MIDI
+-------
+
+To use a MIDI controller, please connect it to your system before and be sure that it has been detected 
+by your computer before launching Cecilia5. If you have multiple MIDI devices connected, use the
+preferences window to select the one you want to use with Cecilia5.
+
+If the option "Automatic Midi Bindings" is checked in the MIDI Preferences, cecilia5 will automatically
+make two connection between your device and the interface. First, The controller 7 of the 
+selected device will be assigned to the gain control (in decibels) of the output sound 
+file (see the corresponding slider in the "Output" section). Second, the MIDI keyboard will be connected
+to the transposition slider of any sampler present in the "Input" section.
+
+However, most parameters will have to be assigned to a controller with the MIDI learn function. The 
+"Range Slider" (slider with two bounds) parameters will have to be assigned to two different controllers, 
+for the minimum and maximum values.
+
+To link a parameter to a MIDI controller with the MIDI learn function, **Right-Click** on the parameter 
+label you want to control and move the knob or slider of the MIDI controller to enable the connection. 
+Then, the controller number should be written in the slider of Cecilia5's graphical interface. 
+To disable the connection, hold **Shift** and **Right-Click** on the parameter label.
+
+.. image:: /images/midiLearn.png
+   :align: center
+
+OSC
+-------
+
+It is also possible to control the parameters with the Open Sound Control (OSC) protocol. To enable 
+an OSC connection, **Double-Click** on the parameter label you want to control, enter the destination port 
+and address in the window that will appear and click on "Apply":
+
+.. image:: /images/OpenSoundControl.png
+   :align: center
+   :scale: 90
+   
+In the first box, you should enter the *port:address* pair where Cecilia5 will read values coming from 
+the controller. Optionally, the second box can be used to set a triplet *host:port:address* identifying 
+the controller IP and the concerned widget. If not empty, Cecilia5 will send its widget value to initialize
+the controller at the beginning of the playback.
+
+To assign OSC controller to a *Range Slider*, you must **Double-Click** one time on the left part of the
+parameter label to create a connection with the minimum value and **Double-Click** another time on 
+the right part of the label to create the connection with the maximum value. 
+
+Please be aware that activating an OSC connection will automatically disable the previons MIDI connection 
+related to the chosen parameter.
diff --git a/doc-en/source/src/configuration/preferences.rst b/doc-en/source/src/configuration/preferences.rst
new file mode 100644
index 0000000..3b30f41
--- /dev/null
+++ b/doc-en/source/src/configuration/preferences.rst
@@ -0,0 +1,85 @@
+Setting Up the Environment
+================================
+
+Preferences panel
+--------------------
+
+The Preferences panel (accessible with the shortcut "Ctrl+," or in the *File* menu (*Cecilia5* menu under OSX)) 
+allows the user to configure the application's behaviour for a specific operating system.
+The window is separated into five sections.
+
+Path
+--------
+
+In the *Path* tab, the user can choose a sound file player (or audio sequencer - see "Soundfile Player"), 
+a sound file editor (see "Soundfile editor") and a text editor (see "Text Editor") to be used with Cecilia5. 
+To choose an application, enter the path of the application in the appropriate space or click on "set" button. 
+A dialog window will then appear for choosing the application.
+
+The user can also enter a path (or multiple path separated by semicolon (;)) in the "Preferred paths" box to 
+save custom modules (.c5 files) in specific folders. Cecilia5 will then scan these folders and add new 
+categories/modules in the *Files* -> *Modules* menu.
+
+
+.. image:: /images/Onglet_dossier.png
+   :align: center
+   :scale: 75
+
+Audio
+--------
+
+The *Speaker* tab offers different options related to the audio parameters of Cecilia5. The user can choose 
+an audio driver (see "Audio Driver") and the input and output devices (see "Input Device" and "Output Device").
+The check box in front of the input device menu must be checked in order to get live input signal in Cecilia5.
+
+The popup menus "Sample Precision" and "Buffer Size" contains different values to set the sample precision in bits 
+(32 or 64) and the buffer size in samples (64, 128, 256, 512, 1024 or 2048). The user can also choose the default 
+number of audio channels (up to 36 - see "Default # of channels") and the sample rate (22 050, 44 100, 48 000, 
+88 200 or 96 000 Hertz - see "Sample Rate"). 
+
+The last two popups allows the user to give an offset to the soundcard input and output channels. In stereo mode, 
+with "First Physical Output" set to 8, the signal will be sent to outputs 8 and 9 (beginning at 0).
+
+.. image:: /images/Onglet_haut-parleur.png
+   :align: center
+   :scale: 75
+
+MIDI
+-------
+
+In the *MIDI* tab, the user can choose a MIDI driver (PortMidi is the only available driver at this time) and a MIDI 
+controller for input (see "Input Device") 
+
+**Warning**, the MIDI controller should be already connected and detected by the computer to be detected by Cecilia5. 
+
+If the "Automatic Midi Bindings" box is checked, the controller 7 of the selected MIDI device will automatically 
+be assigned to the Gain slider (in the "In/Out" section of the control panel) and the MIDI keyboard will be binded
+to the sampler's transposition slider.
+
+.. image:: /images/Onglet_MIDI.png
+   :align: center
+   :scale: 75
+
+Export
+----------
+
+In the *Export* tab, the user can set the default file format (WAV, AIFF, FLAC, OGG, SD2, AU, CAF) and the bit depth (16, 24 or 32 bits integer, or 32 bits float) of the output sound files that 
+will be exported to hard drive.
+
+.. image:: /images/Onglet_export.png
+   :align: center
+   :scale: 75
+
+Cecilia
+--------
+
+The *Cecilia5* tab provides different settings:
+
+- The default duration (10, 30, 60, 120, 300, 600, 1200, 2400 or 3600 seconds - see "Total time default (sec)" of the output sound file and its default fadein/fadeout duration (0, 0.001, 0.002, 0.003, 0.004, 0.005, 0.01, 0.015, 0.02, 0.025, 0.03, 0.05, 0.075, 0.1, 0.2, 0.3, 0.4 or 0.5 seconds - see "Global fadein/fadeout (sec)").
+- Check the "Use tooltips" box to see the tooltip information windows appear in the graphical interface when the mouse is over a particular widget.
+- Check the "Use grapher texture" to obtain a textured background on the graph.
+- Check the "Verbose" box to obtain more information when you work with Cecilia5 from the terminal, which can be useful for debugging.
+
+.. image:: /images/Onglet_Cecilia5.png
+   :align: center
+   :scale: 75
diff --git a/doc-en/source/src/interface/interface.rst b/doc-en/source/src/interface/interface.rst
new file mode 100644
index 0000000..e47fe44
--- /dev/null
+++ b/doc-en/source/src/interface/interface.rst
@@ -0,0 +1,406 @@
+Cecilia5 Interface
+======================
+
+In Cecilia5, all built-in modules come with a graphical interface, which is divided in different sections, common 
+to all treatment and synthesis modules of the software: the transports panel, the In/Out and 
+Post-Processing tabs, the Presets section, the graphic and the sliders that control the parameters of the module. 
+All these sections will be described in this chapter.
+
+
+.. image:: /images/Interface-graphique.png
+   :align: center
+   :scale: 80
+
+Transport panel
+-----------------
+
+The transport section contains a window that indicates the current time of the playback and 
+two buttons: **Play/Stop** and **Record**.
+
+.. image:: /images/Transport.png
+   :align: center
+
+ 
+- **Play/stop** button: Press to launch playback of the output sound file.  Click again to stop.
+- **Record** button: Press to record the output sound to a sound file in realtime. You will hear the playback but priority is
+  given to disk writing.  A "Save audio file as ..." dialog window will appear if the output file name is not already defined. 
+  If multiple recordings with the same output file name are done, Cecilia5 will append "_xxx" to file names, where "xxx" is a 
+  three digits increment number.
+  
+By default, all sound files will be recorded in AIFF format (soundfile format and resolution can be changed in the preferences panel) 
+and will be named by the name of the module (with the extension .aif).
+
+Input - Output
+----------------
+
+The In/Out tab, which is situated below the transports bar, features different control options related to the 
+input/output sound files.
+
+Input
+********
+
+.. image:: /images/Input.png
+   :align: center
+
+This section is only provided with the treatment modules. To import an audio file from hard drive, click on the 
+popup menu, below the label "Audio", and select your file from the standard dialog. Accepted file formats are 
+WAV, AIFF, FLAC, OGG, SD2, AU or CAF. All audio files located in the same folder as the chosen file will be 
+loaded in the popup menu. To open the popup menu and select another pre-loaded soundfile, click on the triangle 
+at the right of the menu.
+
+**Hint** : A right-click on the popup menu will open a window with the last opened sound files, for a quick access.
+
+The icon just at the right of the popup menu lets the user to switch the input mode of Cecilia5. Four modes are available:
+
+.. image:: /images/inputMode1.png
+   :align: left
+
+mode 1 : classic mode, load a soundfile in a sampler or a table.
+
+.. image:: /images/inputMode2.png
+   :align: left
+
+mode 2 : uses the live input sound (eg. inputs from soundcard) to feed the module's processing (not available with 
+modules using a table as input (ex. Granulator)).
+
+.. image:: /images/inputMode3.png
+   :align: left
+
+mode 3 : uses the live input sound (eg. inputs from soundcard) to fill the sampler buffer (instead of loading a soundfile).
+
+.. image:: /images/inputMode4.png
+   :align: left
+
+mode 4 : uses a double buffer to continuously fill the sampler with new samples from the live input sound (not available with 
+modules using a table as input).
+
+In the Input section, the toolbox at the far right presents three icons that are shortcuts to some features of Cecilia5:
+
+.. image:: /images/Icones-In.png
+
+Click on the *loudspeaker* to open the imported sound file with your favorite sound player. If no application has been selected 
+in the Preferences yet, a dialog window will appear. 
+
+Click on the *scissors* to edit the sound file in an editor application. If no application has been selected in the 
+Preferences yet, a dialog window will appear.
+
+Click on the *triangle* to open the sampler frame dialog window for more options on the source sound file:
+
+.. image:: /images/SourceSoundControls.png
+   :align: center
+
+In this window, as in the main Input section, click on the *loudspeaker* to play the source sound file or on the *scissors* 
+to edit the source sound file with an external application. Click on the icon *clock* to set the duration of the output 
+sound to the source sound duration.
+
+.. image:: /images/Icones-SSC.png
+
+Controls over the sampler behaviour are:
+
+- The "Audio Offset" slider sets the offset time into the source sound (start position in the source sound file).  In the 
+  "Loop" menu, there are four options available: *Off* (no loop), *Forward* (forward loop), *Backward* (backward loop) and 
+  *Back & Forth* (forward and backward loop in alternance).
+- If the "Start from loop" box is checked, Cecilia will start reading the sound file from the loop point.  
+- The "Xfade" widget controls the shape of the crossface between loops. Choices are: *Linear*, *Equal Power* and *Sine/Cosine*.
+- The "Loop In" slider sets the start position of the loop in the source soundfile.
+- The "Loop Time" slider sets the duration (in seconds) of the loop.
+- The "Loop X" slider sets the duration of the crossfade between two loops (percentage of the total loop time).
+- The "Gain" slider sets the intensity (in decibels) of the sound source.
+- Move the "Transpo" slider to transpose (direct transposition) the looped sound.  The duration of the loop 
+  is affected by the transposition, as while reading a tape at different speeds.
+
+**Automations**
+
+All settings can be controlled through automations. To record an automation, click on the red circle on the left side 
+of the slider and press play (on the transport bar) to start the playback.  All slider variations will then be recorded 
+and exposed in the grapher at the end of the playback.  Afterwards, you can modify the automation curve in the graphic (see the 
+corresponding following section).  Then, click on the green triangle to enable automation while playing the sound file.
+
+**Bindings**
+
+As with module's sliders below the grapher, sampler sliders can be controlled with MIDI controller or OSC device. Start
+the MIDI learn algorithm with a **Right-Click** on the slider label or open the OSC assignation window with a **Double-Click**
+on the slider label. See *MIDI - OSC Control* for more details.
+
+Output
+**********
+
+.. image:: /images/Output.png
+   :align: center
+
+This section contains all options for recording the audio file on hard drive. Click on the "File name" label to choose 
+the name and repertory of the audio file to record. Then, two sliders allows you to choose the duration (in seconds) 
+and the gain (in decibels) of the output file.  Choose the desired number of audio channels with the "Channels" popup 
+menu. The "Peak" bar indicates the maximum intensity of the processed audio signal.
+
+In the Output section, the toolbox at the far right presents three icons that are shortcuts to some features of Cecilia5:
+
+.. image:: /images/Icones-Out.png
+
+In the Output section, as in the Input section, click on the *loudspeaker* to play the source sound file or on the *scissors* 
+to edit the source sound file with an external application (see above). Click on the *arrows* to use the output sound file 
+as the source sound.
+
+Post-Processing
+-----------------
+
+The post-processing tab is situated below the transports bar, just beside the In/Out tab.
+
+.. image:: /images/Post-processing.png
+   :align: center
+
+In this tab, you can add post-processing effects on the output audio file. It is possible to add up to 4 post-processing modules.  
+Signal routing is from top to bottom (but the order can be changed with the little arrows in the top-right corner of each slot.  
+Set audio parameters with the buttons on the left side.
+
+Choose the post-processing module in the "Effects" menu. The "Type" menu allows you to alternate between active module and bypass 
+or to make a choice between different options, depending of the module.
+
+**Automations**
+
+All "plugin" parameters can be controlled through automations. To record an automation, *Double-Click* on the the little dot 
+of the knob (it will turn red) and press play (on the transport bar) to start the playback.  All knob variations will then be recorded 
+and exposed in the grapher at the end of the playback.  Afterwards, you can modify the automation curve in the graphic (see the 
+corresponding following section).  Then, *Double-Click* again (it will turn green) to enable automation while playing the sound file.
+Another *Double-Click* will turn off both automation recording and playback.
+
+**Bindings**
+
+As with module's sliders below the grapher, port processing knobs can be controlled with MIDI controller. Start
+the MIDI learn algorithm with a **Right-Click** on the knob. See *MIDI - OSC Control* for more details.
+
+Reverb
+**************
+
+Simple reverb effect using the Freeverb algorithm.
+
+**Parameters**
+
+- *Mix*: dry/wet mix
+- *Time*: reverberation time in seconds
+- *Damp*: filtering of high frequencies
+    
+In the "Type" menu, you can choose between activate and bypass the effect.
+
+WGVerb
+**************
+
+Simple reverb effect using a network of eight interconnected waveguides.
+
+**Parameters**
+
+- *Mix*: dry/wet mix
+- *Feed*: depth of the reverb
+- *Cutoff*: lowpass cutoff in Hertz
+    
+In the "Type" menu, you can choose between activate and bypass the effect.
+
+Filter
+***************
+
+Variable state recursive second order filter.
+
+**Parameters**
+ 
+- *Level*: gain of the filtered signal
+- *Freq*: cutoff or center frequency of the filter
+- *Q*: Q factor/filter resonance. 
+    
+In the "Type" menu, you can choose between four types of filters : lowpass, highpass, bandpass and band reject. 
+You can also select "bypass" to bypass the effect.
+
+Chorus
+***************
+
+Delay-based chorus effect.
+
+**Parameters**
+ 
+- *Mix*: dry/wet mix
+- *Depth*: amplitude of the modulation
+- *Feed*: Amount of output signal fed back into the delay lines. 
+    
+In the "Type" menu, you can choose between activate and bypass the effect.
+
+Para EQ
+***********************
+
+One band parametric equalizer.
+
+**Parameters** 
+
+- *Freq*: cutoff or center frequency of the filter
+- *Q*: Q factor/filter resonance
+- *Gain*: intensity of the filtered signal, in decibels. 
+    
+In the "Type" menu, you can choose between three types of equalizers: Peak/Notch, Lowshelf and Highshelf. 
+You can also select "bypass" to bypass the effect.
+
+3 Bands EQ
+*******************
+
+Three bands amplitude control.
+
+**Parameters** 
+
+- *Low*: boost/cut, in dB, for a lowshelf with a cutoff at 250 Hz 
+- *Mid*: boost/cut, in dB, for a peak/notch with a center frequency at 1500 Hz
+- *High*: boost/cut, in dB, for a highshelf with a cutoff at 2500 Hz  
+    
+In the "Type" menu, you can choose between activate and bypass the effect.
+
+Compress
+***************
+
+Dynamic range reducer.
+
+**Parameters** 
+
+- *Thresh*: compression threshold, in decibels
+- *Ratio*: compression ratio
+- *Gain*: intensity of the compressed signal, in decibels. 
+    
+In the "Type" menu, you can choose between activate and bypass the effect.
+
+Gate
+***************
+
+A noise gates attenuates signals that register below a given threshold.
+
+**Parameters** 
+
+- *Thresh*: in decibels - threshold below which the sound is attenuated
+- *Rise*: rise time or attack, in seconds
+- *Fall*: release time, in seconds. 
+    
+In the "Type" menu, you can choose between activate and bypass the effect.
+
+Disto
+***************
+
+Arctangent distortion with lowpass filter.
+ 
+**Parameters** 
+
+- *Drive*: intensity of the distorsion; from 0 - no distorsion - to 1 - square transfert fonction
+- *Slope*: normalized cutoff frequency of the low-pass filter; from 0 - no filter - to 1 - very low cutoff frequency
+- *Gain*: level of the distorted signal, in decibels. 
+    
+In the "Type" menu, you can choose between activate and bypass the effect.
+
+AmpMod
+**********************
+
+Stereo amplitude modulation effect.
+
+**Parameters** 
+
+- *Freq*: frequency of the modulating wave
+- *Amp*: amplitude of the modulating wave
+- *Stereo*: phase difference between the two stereo channels; from 0 - no phase difference - and 1 - left and right channels are 180 degrees out-of-phase. 
+    
+In the "Type" menu, you can choose between amplitude modulation (*Amplitude*) and ring modulation (*RingMod*) or bypass the effect.
+
+Phaser
+***************
+
+Phasing effect based on all-pass filters that generates resonance peaks in the spectrum. 
+
+**Parameters** 
+
+- *Freq*: frequency of the first all-pass filter
+- *Q*: Q factor/filter resonance
+- *Spread*: spread factor - exponential operator that determinates the frequency of all other all-pass filters. 
+    
+In the "Type" menu, you can choose between activate and bypass the effect.
+
+Delay
+***************
+
+Delay with feedback.
+
+**Parameters** 
+
+- *Delay*: delay time, in seconds
+- *Feed*: feedback factor, between 0 and 1
+- *Mix*: dry/wet mix. 
+    
+In the "Type" menu, you can choose between activate and bypass the effect.
+
+Flange
+***************
+
+Swept comb filter effect.
+
+**Parameters** 
+
+- *Depth*: amplitude of the LFO that modulates the delay. The modulation is set around a central time of 5 milliseconds 
+- *Freq*: frequency of the modulating LFO
+- *Feed*: feedback factor - enhances the resonances in the spectrum. 
+    
+In the "Type" menu, you can choose between activate and bypass the effect.
+
+Harmonizer
+***************
+
+Transpose the signal without changing its duration.
+
+**Parameters** 
+
+- *Transpo*: transposition factor, in semi-tones
+- *Feed*: feedback factor
+- *Mix*: dry/wet mix. 
+    
+In the "Type" menu, you can choose between activate and bypass the effect.
+
+Resonators
+***************
+
+Audio effect based on delays that generates harmonic resonances in the spectrum. 
+
+**Parameters** 
+
+- *Freq*: frequency of the first harmonic resonance
+- *Spread*: spread factor - exponential operator that determinates the frequency of all other harmonic resonances
+- *Mix*: dry/wet mix. 
+    
+In the "Type" menu, you can choose between activate and bypass the effect.
+
+DeadReson
+*********************
+
+Similar to the Resonators effect. In this case, the harmonic resonances are slightly detuned. 
+
+**Parameters** 
+
+- *Freq*: frequency of the first harmonic resonance
+- *Detune*: detune of the other harmonic resonances
+- *Mix*: dry/wet mix. 
+    
+In the "Type" menu, you can choose between activate and bypass the effect.
+
+ChaosMod
+*********************
+
+Amplitude modulation with a strange attractor as the waveform.
+
+**Parameters** 
+
+- *Speed*: relative frequency of the oscillator
+- *Chaos*: control the periodicity of the waveform: 0 means nearly periodic, 1 means totally chaotic
+- *Amp*: amplitude of the modulating wave
+    
+In the "Type" menu, you can choose between two attractors (*Lorenz* and *Rossler*) or bypass the effect.
+
+Presets
+--------------
+
+Grapher
+------------
+
+Sliders
+------------
+
+Popups&Toggles
+----------------
+
diff --git a/doc-en/source/src/intro/description.rst b/doc-en/source/src/intro/description.rst
new file mode 100644
index 0000000..d5b5d8b
--- /dev/null
+++ b/doc-en/source/src/intro/description.rst
@@ -0,0 +1,34 @@
+About Cecilia5
+================
+
+.. image:: /images/Cecilia5_96.png
+     :align: center
+
+.. centered::
+   ear-bending sonics for OSX, Windows & Linux
+
+Cecilia is an audio signal processing environment. Cecilia lets you create your own GUI (grapher, 
+sliders, toggles, popup menus) using a simple syntax. Cecilia comes with many original built-in 
+modules for sound effects and synthesis.
+
+Previously written in tcl/tk by Jean Piché and Alexandre Burton, Cecilia (version 4) 
+was entirely rewritten in Python/wxPython and used the Python-Csound API for communicating between 
+the interface and the audio engine. At this time, version 4.2 is the last release of version 4.
+
+Cecilia5 now uses Pyo, an audio engine written in C and created for the Python programming language. 
+Pyo allows a much more powerful integration of the audio engine to the graphical interface. Since it 
+is a standard python module, there is no need to use an API to communicate with the interface.
+
+Cecilia is free and open source (`GNU GPL v3 <http://www.gnu.org/licenses/gpl.html>`_). 
+Cecilia is programmed and maintained by Olivier Bélanger.
+
+External links
+-----------------
+
+`Cecilia5 official web site <http://ajaxsoundstudio.com/software/cecilia/>`_
+
+`Cecilia5 on github <https://github.com/belangeo/cecilia5>`_
+
+`Cecilia5 bug tracker <https://github.com/belangeo/cecilia5/issues>`_
+
+`Pyo official web site <http://ajaxsoundstudio.com/software/pyo/>`_
diff --git a/doc-en/source/src/intro/requirements.rst b/doc-en/source/src/intro/requirements.rst
new file mode 100644
index 0000000..d428cc2
--- /dev/null
+++ b/doc-en/source/src/intro/requirements.rst
@@ -0,0 +1,42 @@
+Installation - Requirements
+============================
+
+Cecilia5 is compatible with the following systems:
+
+- Mac OS X (from 10.5 to 10.10) 
+- Windows (XP, Vista, 7 or 8)
+- Linux (at least Debian-based distros but should work with other linux flavours)
+    
+
+Installing Cecilia5 on Windows or OSX
+---------------------------------------
+
+Windows and OSX users can download self-contained binaries of the latest version of 
+Cecilia5 `here <http://ajaxsoundstudio.com/software/cecilia/>`_.
+
+Running Cecilia5 from the lastest sources
+-------------------------------------------
+
+Before running Cecilia5 from the latest sources, 
+please check if all these elements are installed on your computer:
+
+- `Python 2.6 <https://www.python.org/download/releases/2.6.6>`_ or `Python 2.7 <https://www.python.org/download/releases/2.7.8>`_. 
+- `Pyo 0.7.6 <http://ajaxsoundstudio.com/software/pyo/>`_ (or compiled with latest `sources <http://code.google.com/p/pyo>`_).
+- `Numpy 1.6.0 or higher <http://sourceforge.net/projects/numpy/files/NumPy/>`_ (but below 1.9).
+- `WxPython 3.0 <http://wxpython.org/download.php>`_. 
+- `Git client <https://git-scm.com/downloads>`_.
+    
+Then, you can download Cecilia5's sources by checking out the source code (in a terminal window):
+    
+.. code-block:: bash
+
+    git clone https://github.com/belangeo/cecilia5.git
+    
+This will create a folder named "cecilia5" with the source code. 
+Just go inside the folder and run Cecilia!
+
+.. code-block:: bash
+
+    cd cecilia5
+    python Cecilia5.py
+
diff --git a/doc-en/source/src/modules/Dynamics/Degrade.rst b/doc-en/source/src/modules/Dynamics/Degrade.rst
new file mode 100644
index 0000000..08563b9
--- /dev/null
+++ b/doc-en/source/src/modules/Dynamics/Degrade.rst
@@ -0,0 +1,48 @@
+Degrade : Sampling rate and bit depth degradation with optional mirror clipping
+===============================================================================
+
+Description
+------------
+
+This module allows the user to degrade a sound with artificial resampling
+and quantization. This process emulates the artifacts caused by a poor
+sampling frequency or bit depth resolution. It optionally offers a simple
+mirror distortion, if the degradation is not enough! 
+
+Sliders
+--------
+
+    **Bit Depth** : 
+            Resolution of the amplitude in bits
+    **Sampling Rate Ratio** : 
+            Ratio of the new sampling rate compared to the original one
+    **Mirror Threshold** : 
+            Clipping limits between -1 and 1 (signal is reflected around the thresholds)
+    **Filter Freq** : 
+            Center frequency of the filter
+    **Filter Q** : 
+            Q factor of the filter
+    **Dry / Wet** : 
+            Mix between the original signal and the degraded signal
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+            The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Filter Type** : 
+            Type of filter
+    **Clip Type** : 
+            Choose between degradation only or with mirror clipping
+    **Polyphony Voices** : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+    **Polyphony Chords** : 
+            Pitch interval between voices (chords), 
+            only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Dynamics/Distortion.rst b/doc-en/source/src/modules/Dynamics/Distortion.rst
new file mode 100644
index 0000000..849b10a
--- /dev/null
+++ b/doc-en/source/src/modules/Dynamics/Distortion.rst
@@ -0,0 +1,44 @@
+Distortion : Arctangent distortion module with pre and post filters
+===================================================================
+
+Description
+------------
+
+This module applies an arctangent distortion with control on the amount
+of drive and pre/post filtering.
+
+Sliders
+--------
+
+    **Pre Filter Freq** : 
+        Center frequency of the filter applied before distortion
+    **Pre Filter Q** : 
+        Q factor of the filter applied before distortion
+    **Drive** : 
+        Amount of distortion applied on the signal
+    **Post Filter Freq** : 
+        Center frequency of the filter applied after distortion
+    **Post Filter Q** : 
+        Q factor of the filter applied after distortion
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Pre Filter Type** : 
+        Type of filter used before distortion
+    **Post Filter Type** : 
+        Type of filter used after distortion
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Dynamics/DynamicsProcessor.rst b/doc-en/source/src/modules/Dynamics/DynamicsProcessor.rst
new file mode 100644
index 0000000..39bc5a7
--- /dev/null
+++ b/doc-en/source/src/modules/Dynamics/DynamicsProcessor.rst
@@ -0,0 +1,50 @@
+DynamicsProcessor : Dynamic compression and gate module
+=======================================================
+
+Description
+------------
+
+This module can be used to adjust the dynamic range of a signal by applying a compressor
+followed by a gate.
+
+Sliders
+--------
+
+    **Input Gain** : 
+        Adjust the amount of signal sent to the processing chain
+    **Comp Thresh** : 
+        dB value at which the compressor becomes active
+    **Comp Rise Time** : 
+        Time taken by the compressor to reach compression ratio
+    **Comp Fall Time** : 
+        Time taken by the compressor to reach uncompressed state
+    **Comp Knee** : 
+        Steepness of the compression curve
+    **Gate Thresh** : 
+        dB value at which the gate becomes active
+    **Gate Rise Time** : 
+        Time taken to open the gate
+    **Gate Fall Time** : 
+        Time taken to close the gate
+    **Output Gain** : 
+        Makeup gain applied after the processing chain
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Compression Ratio** : 
+        Ratio between the compressed signal and the uncompressed signal
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Dynamics/FeedbackLooper.rst b/doc-en/source/src/modules/Dynamics/FeedbackLooper.rst
new file mode 100644
index 0000000..90d07e4
--- /dev/null
+++ b/doc-en/source/src/modules/Dynamics/FeedbackLooper.rst
@@ -0,0 +1,42 @@
+FeedbackLooper : Frequency self-modulated sound looper
+======================================================
+
+Description
+------------
+
+This module loads a sound in a table and apply a frequency self-modulated
+playback of the content. A Frequency self-modulation occurs when the
+output sound of the playback is used to modulate the reading pointer speed.
+That produces new harmonics in a way similar to waveshaping distortion. 
+
+Sliders
+--------
+
+    **Transposition** : 
+            Transposition, in cents, of the input sound
+    **Feedback** : 
+            Amount of self-modulation in sound playback
+    **Filter Frequency** : 
+            Frequency, in Hertz, of the filter
+    **Filter Q** : 
+            Q of the filter (inverse of the bandwidth)
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+            The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Filter Type** : 
+            Type of the filter
+    **Polyphony Voices** : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+    **Polyphony Chords** : 
+            Pitch interval between voices (chords), 
+            only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Dynamics/WaveShaper.rst b/doc-en/source/src/modules/Dynamics/WaveShaper.rst
new file mode 100644
index 0000000..c6fa903
--- /dev/null
+++ b/doc-en/source/src/modules/Dynamics/WaveShaper.rst
@@ -0,0 +1,38 @@
+WaveShaper : Table lookup waveshaping module
+============================================
+
+Description
+------------
+
+This module applies a waveshaping-based distortion on the input sound. 
+It allows the user to draw the transfert function on the screen.
+
+Sliders
+--------
+
+    **Filter Freq** : 
+        Center frequency of the post-process filter
+    **Filter Q** : 
+        Q factor of the post-process filter
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+    **Transfer Function** : 
+        Table used as transfert function for waveshaping
+
+Popups & Toggles
+-----------------
+
+    **Filter Type** : 
+        Type of the post-process filter
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Dynamics/index.rst b/doc-en/source/src/modules/Dynamics/index.rst
new file mode 100644
index 0000000..fa7e470
--- /dev/null
+++ b/doc-en/source/src/modules/Dynamics/index.rst
@@ -0,0 +1,12 @@
+Dynamics : Modules related to waveshaping and amplitude manipulations
+=====================================================================
+
+
+.. toctree::
+   :maxdepth: 1
+
+   Degrade
+   Distortion
+   DynamicsProcessor
+   FeedbackLooper
+   WaveShaper
diff --git a/doc-en/source/src/modules/Filters/AMFMFilter.rst b/doc-en/source/src/modules/Filters/AMFMFilter.rst
new file mode 100644
index 0000000..a48516a
--- /dev/null
+++ b/doc-en/source/src/modules/Filters/AMFMFilter.rst
@@ -0,0 +1,55 @@
+AMFMFilter : AM/FM modulated filter
+===================================
+
+Description
+------------
+
+The input sound is filtered by a variable type modulated filter.
+Speed, depth and shape can be modified for both AM and FM modulators.
+
+Sliders
+--------
+
+    **Filter Mean Freq** : 
+        Mean frequency of the filter
+    **Resonance** : 
+        Q factor of the filter
+    **AM Depth** : 
+        Amplitude of the amplitude modulator
+    **AM Freq** : 
+        Speed, in Hz, of the amplitude modulator 
+    **FM Depth** : 
+        Amplitude of the frequency modulator
+    **FM Freq** : 
+        Speed, in Hz, of the frequency modulator 
+    **Mod Sharpness** :
+        Sharpness of waveforms used as modulators
+    **Dry / Wet** : 
+        Mix between the original signal and the filtered signal
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Filter Type** : 
+        Type of filter
+    **AM Mod Type** : 
+        Shape of the amplitude modulator
+    **FM Mod Type** : 
+        Shape of the frequency modulator
+    **Balance** :
+        Compression mode. Off, balanced with a fixed signal
+        or balanced with the input source.
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Filters/BrickWall.rst b/doc-en/source/src/modules/Filters/BrickWall.rst
new file mode 100644
index 0000000..ffcc501
--- /dev/null
+++ b/doc-en/source/src/modules/Filters/BrickWall.rst
@@ -0,0 +1,45 @@
+BrickWall : Convolution brickwall lowpass/highpass/bandpass/bandstop filter
+===========================================================================
+
+Description
+------------
+
+Convolution filter with a user-defined length sinc kernel. This
+kind of filters are very CPU expensive but can give quite good
+stopband attenuation.
+
+Sliders
+--------
+
+    **Cutoff Frequency** :
+        Cutoff frequency, in Hz, of the filter.
+    **Bandwidth** :
+        Bandwith, in Hz, of the filter. 
+        Used only by bandpass and pnadstop filters.
+    **Filter Order** :
+        Number of points of the filter kernel. A longer kernel means
+        a sharper attenuation (and a higher CPU cost). This value is
+        only available at initialization time.
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Filter Type** :
+        Type of the filter (lowpass, highpass, bandpass, bandstop)
+    **Balance** :
+        Compression mode. Off, balanced with a fixed signal
+        or balanced with the input source.
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Filters/MaskFilter.rst b/doc-en/source/src/modules/Filters/MaskFilter.rst
new file mode 100644
index 0000000..086716f
--- /dev/null
+++ b/doc-en/source/src/modules/Filters/MaskFilter.rst
@@ -0,0 +1,42 @@
+MaskFilter : Ranged filter module using lowpass and highpass filters
+====================================================================
+
+Description
+------------
+
+The signal is first lowpassed and then highpassed to create a bandpass
+filter with independant lower and higher boundaries. The user can
+interpolate between two such filters.
+
+Sliders
+--------
+
+    **Filter 1 Limits** : 
+        Range of the first filter (min = highpass, max = lowpass)
+    **Filter 2 Limits** : 
+        Range of the second filter (min = highpass, max = lowpass)
+    **Mix** :
+        Balance between filter 1 and filter 2
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Number of Stages** : 
+        Amount of stacked biquad filters
+    **Balance** :
+        Compression mode. Off, balanced with a fixed signal
+        or balanced with the input source.
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Filters/ParamEQ.rst b/doc-en/source/src/modules/Filters/ParamEQ.rst
new file mode 100644
index 0000000..4ccff7b
--- /dev/null
+++ b/doc-en/source/src/modules/Filters/ParamEQ.rst
@@ -0,0 +1,64 @@
+ParamEQ : Parametric equalizer
+==============================
+
+Description
+------------
+
+Standard parametric equalizer built with four lowshelf/highshelf/peak/notch filters.
+
+Sliders
+--------
+
+    **Freq 1 Boost/Cut** : 
+        Gain of the first EQ
+    **Freq 1** : 
+        Center frequency of the first EQ
+    **Freq 1 Q** : 
+        Q factor of the first EQ
+    **Freq 2 Boost/Cut** : 
+        Gain of the second EQ
+    **Freq 2** : 
+        Center frequency of the second EQ
+    **Freq 2 Q** : 
+        Q factor of the second EQ
+    **Freq 3 Boost/Cut** : 
+        Gain of the third EQ
+    **Freq 3** : 
+        Center frequency of the third EQ
+    **Freq 3 Q** : 
+        Q factor of the third EQ
+    **Freq 5 Boost/Cut** : 
+        Gain of the fourth EQ
+    **Freq 4** : 
+        Center frequency of the fourth EQ
+    **Freq 5 Q** : 
+        Q factor of the fourth EQ
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **EQ Type 1** : 
+        EQ type of the first EQ
+    **EQ Type 2** : 
+        EQ type of the second EQ
+    **EQ Type 3** : 
+        EQ type of the third EQ
+    **EQ Type 4** :
+        EQ type of the fourth EQ
+    **Balance** :
+        Compression mode. Off, balanced with a fixed signal
+        or balanced with the input source.
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Filters/Phaser.rst b/doc-en/source/src/modules/Filters/Phaser.rst
new file mode 100644
index 0000000..784855c
--- /dev/null
+++ b/doc-en/source/src/modules/Filters/Phaser.rst
@@ -0,0 +1,44 @@
+Phaser : Multi-stages second-order phase shifter allpass filters
+================================================================
+
+Description
+------------
+
+Phaser implements a multi-stages second-order allpass filters,
+which, when mixed with the original signal, create a serie of
+peaks/notches in the sound.
+
+Sliders
+--------
+
+    **Base Freq** : 
+        Center frequency of the first notch of the phaser
+    **Q Factor** : 
+        Q factor (resonance) of the phaser notches
+    **Notch Spread** : 
+        Distance between phaser notches
+    **Feedback** : 
+        Amount of phased signal fed back into the phaser
+    **Dry / Wet** : 
+        Mix between the original signal and the phased signal
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Number of Stages** : 
+        Changes notches bandwidth (stacked filters),
+        only available at initialization time
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Filters/StateVar.rst b/doc-en/source/src/modules/Filters/StateVar.rst
new file mode 100644
index 0000000..40dffcd
--- /dev/null
+++ b/doc-en/source/src/modules/Filters/StateVar.rst
@@ -0,0 +1,41 @@
+StateVar : State Variable Filter
+================================
+
+Description
+------------
+
+This module implements lowpass, bandpass and highpass filters in parallel
+and allow the user to interpolate on an axis lp -> bp -> hp.
+
+Sliders
+--------
+
+    **Cutoff/Center Freq** : 
+            Cutoff frequency for lp and hp (center freq for bp)
+    **Filter Q** :
+            Q factor (inverse of bandwidth) of the filter
+    **Type (lp->bp->hp)** : 
+            Interpolating factor between filters
+    **Dry / Wet** : 
+            Mix between the original and the filtered signals
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+            The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Balance** :
+        Compression mode. Off, balanced with a fixed signal
+        or balanced with the input source.
+    **Polyphony Voices** : 
+            Number of voices played simultaneously (polyphony), 
+            only available at initialization time
+    **Polyphony Chords** : 
+            Pitch interval between voices (chords), 
+            only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Filters/Vocoder.rst b/doc-en/source/src/modules/Filters/Vocoder.rst
new file mode 100644
index 0000000..c4348d1
--- /dev/null
+++ b/doc-en/source/src/modules/Filters/Vocoder.rst
@@ -0,0 +1,56 @@
+Vocoder : Time domain vocoder effect
+====================================
+
+Description
+------------
+
+Applies the spectral envelope of a first sound to the spectrum of a second sound.
+
+The vocoder is an analysis/synthesis system, historically used to reproduce
+human speech. In the encoder, the first input (spectral envelope) is passed
+through a multiband filter, each band is passed through an envelope follower,
+and the control signals from the envelope followers are communicated to the
+decoder. The decoder applies these (amplitude) control signals to corresponding
+filters modifying the second source (exciter).
+
+Sliders
+--------
+
+    **Base Frequency** :
+        Center frequency of the first band. This is the base 
+        frequency used tocompute the upper bands.
+    **Frequency Spread** :
+        Spreading factor for upper band frequencies. Each band is 
+        `freq * pow(order, spread)`, where order is the harmonic rank of the band.
+    **Q Factor** :
+        Q of the filters as `center frequency / bandwidth`. Higher values 
+        imply more resonance around the center frequency.
+    **Time Response** :
+        Time response of the envelope follower. Lower values mean smoother changes,
+        while higher values mean a better time accuracy.
+    **Gain** :
+        Output gain of the process in dB.
+    **Num of Bands** : 
+        The number of bands in the filter bank. Defines the number of notches in
+        the spectrum.
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Balance** :
+        Compression mode. Off, balanced with a fixed signal
+        or balanced with the input source.
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Filters/index.rst b/doc-en/source/src/modules/Filters/index.rst
new file mode 100644
index 0000000..a8c2d5a
--- /dev/null
+++ b/doc-en/source/src/modules/Filters/index.rst
@@ -0,0 +1,14 @@
+Filters : Filtering and subtractive synthesis modules
+=====================================================
+
+
+.. toctree::
+   :maxdepth: 1
+
+   AMFMFilter
+   BrickWall
+   MaskFilter
+   ParamEQ
+   Phaser
+   StateVar
+   Vocoder
diff --git a/doc-en/source/src/modules/Multiband/MultiBandBeatMaker.rst b/doc-en/source/src/modules/Multiband/MultiBandBeatMaker.rst
new file mode 100644
index 0000000..647eab5
--- /dev/null
+++ b/doc-en/source/src/modules/Multiband/MultiBandBeatMaker.rst
@@ -0,0 +1,71 @@
+MultiBandBeatMaker : Multi-band algorithmic beatmaker
+=====================================================
+
+Description
+------------
+
+MultiBandBeatMaker uses four algorithmic beat generators to play
+spectral separated chunks of a sound. 
+
+Sliders
+--------
+
+    **Frequency Splitter** : 
+        Split points for multi-band processing
+    **Num of Taps** : 
+        Number of taps in a measure
+    **Tempo** : 
+        Speed of taps
+    **Tap Length** : 
+        Length of taps
+    **Beat 1 Index** : 
+        Soundfile index of the first beat
+    **Beat 2 Index** : 
+        Soundfile index of the second beat
+    **Beat 3 Index** : 
+        Soundfile index of the third beat
+    **Beat 4 Index** : 
+        Soundfile index of the fourth beat
+    **Beat 1 Distribution** : 
+        Repartition of taps for the first beat (100% weak --> 100% down)
+    **Beat 2 Distribution** : 
+        Repartition of taps for the second beat (100% weak --> 100% down)
+    **Beat 3 Distribution** : 
+        Repartition of taps for the third beat (100% weak --> 100% down)
+    **Beat 4 Distribution** : 
+        Repartition of taps for the fourth beat (100% weak --> 100% down)
+    **Beat 1 Gain** : 
+        Gain of the first beat
+    **Beat 2 Gain** : 
+        Gain of the second beat
+    **Beat 3 Gain** : 
+        Gain of the third beat
+    **Beat 4 Gain** : 
+        Gain of the fourth beat
+    **Global Seed** : 
+        Seed value for the algorithmic beats, using the same seed with 
+        the same distributions will yield the exact same beats
+    
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+    **Beat 1 ADSR** : 
+        Envelope of taps for the first beat in breakpoint fashion
+    **Beat 2 ADSR** : 
+        Envelope of taps for the second beat in breakpoint fashion
+    **Beat 3 ADSR** : 
+        Envelope of taps for the third beat in breakpoint fashion
+    **Beat 4 ADSR** : 
+        Envelope of taps for the fourth beat in breakpoint fashion
+
+Popups & Toggles
+-----------------
+
+    **Polyphony per Voice** :
+        The number of streams used for each voice's polpyhony. High values
+        allow more overlaps but are more CPU expensive, only available at 
+        initialization time.
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Multiband/MultiBandDelay.rst b/doc-en/source/src/modules/Multiband/MultiBandDelay.rst
new file mode 100644
index 0000000..1ecb871
--- /dev/null
+++ b/doc-en/source/src/modules/Multiband/MultiBandDelay.rst
@@ -0,0 +1,58 @@
+MultiBandDelay : Multi-band delay with feedback
+===============================================
+
+Description
+------------
+
+MultiBandDelay implements four separated spectral band delays
+with independent delay time, gain and feedback.
+
+Sliders
+--------
+
+    **Frequency Splitter** : 
+        Split points for multi-band processing
+    **Delay Band 1** : 
+        Delay time for the first band
+    **Feedback Band 1** : 
+        Amount of delayed signal fed back into the first band delay
+    **Gain Band 1** : 
+        Gain of the delayed first band
+    **Delay Band 2** : 
+        Delay time for the second band
+    **Feedback Band 2** : 
+        Amount of delayed signal fed back into the second band delay
+    **Gain Band 2** : 
+        Gain of the delayed second band
+    **Delay Band 3** : 
+        Delay time for the third band
+    **Feedback Band 3** : 
+        Amount of delayed signal fed back into the third band delay
+    **Gain Band 3** : 
+        Gain of the delayed third band
+    **Delay Band 4** : 
+        Delay time for the fourth band
+    **Feedback Band 4** : 
+        Amount of delayed signal fed back into the fourth band delay
+    **Gain Band 4** : 
+        Gain of the delayed fourth band
+    **Dry / Wet** : 
+        Mix between the original signal and the delayed signals
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Multiband/MultiBandDisto.rst b/doc-en/source/src/modules/Multiband/MultiBandDisto.rst
new file mode 100644
index 0000000..38e444a
--- /dev/null
+++ b/doc-en/source/src/modules/Multiband/MultiBandDisto.rst
@@ -0,0 +1,58 @@
+MultiBandDisto : Multi-band distortion module
+=============================================
+
+Description
+------------
+
+MultiBandDisto implements four separated spectral band distortions
+with independent drive, slope and gain.
+
+Sliders
+--------
+
+    **Frequency Splitter** : 
+        Split points for multi-band processing
+    **Band 1 Drive** : 
+        Amount of distortion applied on the first band
+    **Band 1 Slope** : 
+        Harshness of distorted first band
+    **Band 1 Gain** : 
+        Gain of the distorted first band
+    **Band 2 Drive** : 
+        Amount of distortion applied on the second band
+    **Band 2 Slope** : 
+        Harshness of distorted second band
+    **Band 2 Gain** : 
+        Gain of the distorted second band
+    **Band 3 Drive** : 
+        Amount of distortion applied on the third band
+    **Band 3 Slope** : 
+        Harshness of distorted third band
+    **Band 3 Gain** : 
+        Gain of the distorted third band
+    **Band 4 Drive** : 
+        Amount of distortion applied on the fourth band
+    **Band 4 Slope** : 
+        Harshness of distorted fourth band
+    **Band 4 Gain** : 
+        Gain of the distorted fourth band
+    **Dry / Wet** : 
+        Mix between the original signal and the delayed signals
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Multiband/MultiBandFreqShift.rst b/doc-en/source/src/modules/Multiband/MultiBandFreqShift.rst
new file mode 100644
index 0000000..5d28f2a
--- /dev/null
+++ b/doc-en/source/src/modules/Multiband/MultiBandFreqShift.rst
@@ -0,0 +1,50 @@
+MultiBandFreqShift : Multi-band frequency shifter module
+========================================================
+
+Description
+------------
+
+MultiBandFreqShift implements four separated spectral band 
+frequency shifters with independent amount of shift and gain.
+
+Sliders
+--------
+
+    **Frequency Splitter** : 
+        Split points for multi-band processing
+    **Freq Shift Band 1** : 
+        Shift frequency of first band
+    **Gain Band 1** : 
+        Gain of the shifted first band
+    **Freq Shift Band 2** : 
+        Shift frequency of second band
+    **Gain Band 2** : 
+        Gain of the shifted second band
+    **Freq Shift Band 3** : 
+        Shift frequency of third band
+    **Gain Band 3** : 
+        Gain of the shifted third band
+    **Freq Shift Band 4** : 
+        Shift frequency of fourth band
+    **Gain Band 5** : 
+        Gain of the shifted fourth band
+    **Dry / Wet** : 
+        Mix between the original signal and the shifted signals
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Multiband/MultiBandGate.rst b/doc-en/source/src/modules/Multiband/MultiBandGate.rst
new file mode 100644
index 0000000..f2a67db
--- /dev/null
+++ b/doc-en/source/src/modules/Multiband/MultiBandGate.rst
@@ -0,0 +1,54 @@
+MultiBandGate : Multi-band noise gate module
+============================================
+
+Description
+------------
+
+MultiBandGate implements four separated spectral band 
+noise gaters with independent threshold and gain.
+
+Sliders
+--------
+
+    **Frequency Splitter** : 
+        Split points for multi-band processing
+    **Threshold Band 1** : 
+        dB value at which the gate becomes active on the first band
+    **Gain Band 1** : 
+        Gain of the gated first band
+    **Threshold Band 2** : 
+        dB value at which the gate becomes active on the second band
+    **Gain Band 2** : 
+        Gain of the gated second band
+    **Threshold Band 3** : 
+        dB value at which the gate becomes active on the third band
+    **Gain Band 3** : 
+        Gain of the gated third band
+    **Threshold Band 4** : 
+        dB value at which the gate becomes active on the fourth band
+    **Gain Band 4** : 
+        Gain of the gated fourth band
+    **Rise Time** : 
+        Time taken by the gate to close
+    **Fall Time** : 
+        Time taken by the gate to open
+    **Dry / Wet** : 
+        Mix between the original signal and the shifted signals
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Multiband/MultiBandHarmonizer.rst b/doc-en/source/src/modules/Multiband/MultiBandHarmonizer.rst
new file mode 100644
index 0000000..75cc4a0
--- /dev/null
+++ b/doc-en/source/src/modules/Multiband/MultiBandHarmonizer.rst
@@ -0,0 +1,60 @@
+MultiBandHarmonizer : Multi-band harmonizer module
+==================================================
+
+Description
+------------
+
+MultiBandHarmonizer implements four separated spectral band 
+harmonizers with independent transposition, feedback and gain.
+
+Sliders
+--------
+
+    **Frequency Splitter** : 
+        Split points for multi-band processing
+    **Transpo Band 1** : 
+        Pitch shift for the first band
+    **Feedback Band 1** : 
+        Amount of harmonized signal fed back into the first band harmonizer
+    **Gain Band 1** : 
+        Gain of the harmonized first band
+    **Transpo Band 2** : 
+        Pitch shift for the second band
+    **Feedback Band 2** : 
+        Amount of harmonized signal fed back into the second band harmonizer
+    **Gain Band 2** : 
+        Gain of the harmonized second band
+    **Transpo Band 3** : 
+        Pitch shift for the third band
+    **Feedback Band 3** : 
+        Amount of harmonized signal fed back into the third band harmonizer
+    **Gain Band 3** : 
+        Gain of the harmonized third band
+    **Transpo Band 4** : 
+        Pitch shift for the fourth band
+    **Feedback Band 4** : 
+        Amount of harmonized signal fed back into the fourth band harmonizer
+    **Gain Band 4** : 
+        Gain of the harmonized fourth band
+    **Dry / Wet** : 
+        Mix between the original signal and the harmonized signals
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Win Size** : 
+        Harmonizer window size (delay) in seconds
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Multiband/MultiBandReverb.rst b/doc-en/source/src/modules/Multiband/MultiBandReverb.rst
new file mode 100644
index 0000000..0657850
--- /dev/null
+++ b/doc-en/source/src/modules/Multiband/MultiBandReverb.rst
@@ -0,0 +1,58 @@
+MultiBandReverb : Multi-band reverberation module
+=================================================
+
+Description
+------------
+
+MultiBandReverb implements four separated spectral band 
+harmonizers with independent reverb time, cutoff and gain.
+
+Sliders
+--------
+
+    **Frequency Splitter** : 
+        Split points for multi-band processing
+    **Reverb Time 1** : 
+        Amount of reverb (tail duration) applied on first band
+    **Lowpass Cutoff 1** : 
+        Cutoff frequency of the reverb's lowpass filter (damp) for the first band
+    **Gain 1** : 
+        Gain of the reverberized first band
+    **Reverb Time 2** : 
+        Amount of reverb (tail duration) applied on second band
+    **Lowpass Cutoff 2** : 
+        Cutoff frequency of the reverb's lowpass filter (damp) for the second band
+    **Gain 2** : 
+        Gain of the reverberized second band
+    **Reverb Time 3** : 
+        Amount of reverb (tail duration) applied on third band
+    **Lowpass Cutoff 3** : 
+        Cutoff frequency of the reverb's lowpass filter (damp) for the third band
+    **Gain 3** : 
+        Gain of the reverberized third band
+    **Reverb Time 4** : 
+        Amount of reverb (tail duration) applied on fourth band
+    **Lowpass Cutoff 4** : 
+        Cutoff frequency of the reverb's lowpass filter (damp) for the fourth band
+    **Gain 4** : 
+        Gain of the reverberized fourth band
+    **Dry / Wet** : 
+        Mix between the original signal and the harmonized signals
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Multiband/index.rst b/doc-en/source/src/modules/Multiband/index.rst
new file mode 100644
index 0000000..13a1b1c
--- /dev/null
+++ b/doc-en/source/src/modules/Multiband/index.rst
@@ -0,0 +1,14 @@
+Multiband : Various processing applied independently to four spectral regions 
+==============================================================================
+
+
+.. toctree::
+   :maxdepth: 1
+
+   MultiBandBeatMaker
+   MultiBandDelay
+   MultiBandDisto
+   MultiBandFreqShift
+   MultiBandGate
+   MultiBandHarmonizer
+   MultiBandReverb
diff --git a/doc-en/source/src/modules/Pitch/ChordMaker.rst b/doc-en/source/src/modules/Pitch/ChordMaker.rst
new file mode 100644
index 0000000..04079f0
--- /dev/null
+++ b/doc-en/source/src/modules/Pitch/ChordMaker.rst
@@ -0,0 +1,62 @@
+ChordMaker : Sampler-based harmonizer module with multiple voices
+=================================================================
+
+Description
+------------
+
+The input sound is mixed with five real-time, non-stretching,
+harmonization voices.
+
+Sliders
+--------
+
+    **Transpo Voice 1** : 
+        Pitch shift of the first voice
+    **Gain Voice 1** : 
+        Gain of the transposed first voice
+    **Transpo Voice 2** : 
+        Pitch shift of the second voice
+    **Gain Voice 2** : 
+        Gain of the transposed second voice
+    **Transpo Voice 3** : 
+        Pitch shift of the third voice
+    **Gain Voice 3** : 
+        Gain of the transposed third voice
+    **Transpo Voice 4** : 
+        Pitch shift of the fourth voice
+    **Gain Voice 4** : 
+        Gain of the transposed fourth voice
+    **Transpo Voice 5** : 
+        Pitch shift of the fifth voice
+    **Gain Voice 5** : 
+        Gain of the transposed fifth voice
+    **Feedback** : 
+        Amount of transposed signal fed back into the harmonizers
+        (feedback is voice independent)
+    **Dry / Wet** : 
+        Mix between the original signal and the harmonized signals
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Win Size** :
+        Harmonizer window size in seconds
+    **Balance** :
+        Compression mode. Off, balanced with a fixed signal
+        or balanced with the input source.
+    # Voice Activation (1 --> 5)
+        Mute or unmute each voice independently
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Pitch/FreqShift.rst b/doc-en/source/src/modules/Pitch/FreqShift.rst
new file mode 100644
index 0000000..c5ae00c
--- /dev/null
+++ b/doc-en/source/src/modules/Pitch/FreqShift.rst
@@ -0,0 +1,53 @@
+FreqShift : Two frequency shifters with optional cross-delay and feedback
+=========================================================================
+
+Description
+------------
+
+This module implements two frequency shifters from which the output 
+sound of both one can be fed back in the input of the other. Cross-
+feedback occurs after a user-defined delay of the output sounds.  
+
+Sliders
+--------
+
+    **Filter Freq** :
+        Cutoff or center frequency of the pre-filtering stage
+    **Filter Q** :
+        Q factor of the pre-filtering stage
+    **Frequency Shift 1** : 
+        Frequency shift, in Hz, of the first voice
+    **Frequency Shift 2** : 
+        Frequency shift, in Hz, of the second voice
+    **Feedback Delay** :
+        Delay time before the signal is fed back into the delay lines
+    **Feedback** :
+        Amount of signal fed back into the delay lines
+    **Feedback Gain** :
+        Amount of delayed signal cross-fed back into the frequency shifters.
+        Signal from delay 1 into shifter 2 and signal from delay 2 into shifter 1.
+    **Dry / Wet** : 
+        Mix between the original signal and the shifted signals
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Filter Type** : 
+        Type of filter
+    **Balance** :
+        Compression mode. Off, balanced with a fixed signal
+        or balanced with the input source.
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Pitch/Harmonizer.rst b/doc-en/source/src/modules/Pitch/Harmonizer.rst
new file mode 100644
index 0000000..ba8094a
--- /dev/null
+++ b/doc-en/source/src/modules/Pitch/Harmonizer.rst
@@ -0,0 +1,43 @@
+Harmonizer : Two voices harmonization module 
+=============================================
+
+Description
+------------
+
+This module implements a two voices harmonization with independent feedback.
+
+Sliders
+--------
+
+    **Transpo Voice 1** : 
+        Pitch shift of the first voice
+    **Transpo Voice 2** : 
+        Pitch shift of the second voice
+    **Feedback** : 
+        Amount of transposed signal fed back into the harmonizers (feedback is voice independent)
+    **Harm1 / Harm2** : 
+        Mix between the first and the second harmonized signals
+    **Dry / Wet** : 
+        Mix between the original signal and the harmonized signals
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Win Size Voice 1** : 
+        Window size of the first harmonizer (delay) in second
+    **Win Size Voice 2** : 
+        Window size of the second harmonizer (delay) in second
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Pitch/LooperBank.rst b/doc-en/source/src/modules/Pitch/LooperBank.rst
new file mode 100644
index 0000000..f1359cb
--- /dev/null
+++ b/doc-en/source/src/modules/Pitch/LooperBank.rst
@@ -0,0 +1,55 @@
+LooperBank : Sound looper bank with independant pitch and amplitude random
+==========================================================================
+
+Description
+------------
+
+Huge oscillator bank (up to 500 players) looping a soundfile stored in a waveform 
+table. The frequencies and amplitudes can be modulated by two random generators 
+with interpolation (each partial have a different set of randoms).
+
+Sliders
+--------
+
+    **Transposition** : 
+        Transposition of the base frequency of the process, given by the sound length.
+    **Frequency Spread** : 
+        Coefficient of expansion used to compute partial frequencies. If 0, all 
+        partials will be at the base frequency. A value of 1 will generate integer 
+        harmonics, a value of 2 will skip even harmonics and non-integer values will 
+        generate different series of inharmonic frequencies.
+    **Amplitude Slope** : 
+        Specifies the multiplier in the series of amplitude coefficients.
+    **Boost / Cut** : 
+        Controls the overall amplitude.
+    **Freq Rand Speed** : 
+        Frequency, in cycle per second, of the frequency modulations.
+    **Freq Rand Gain** : 
+        Maximum frequency deviation (positive and negative) in portion of the partial 
+        frequency. A value of 1 means that the frequency can drift from 0 Hz to twice 
+        the partial frequency. A value of 0 deactivates the frequency deviations.
+    **Amp Rand Speed** : 
+        Frequency, in cycle per second, of the amplitude modulations.
+    **Amp Rand Gain** : 
+        Amount of amplitude deviation. 0 deactivates the amplitude modulations 
+        and 1 gives full amplitude modulations.
+    **Voices Per Channel** : 
+        Number of loopers created for each output channel. Changes will be 
+        effective on next start.
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Partials Freq Jitter** : 
+        If active, a small jitter is added to the frequency of each partial. For a 
+        large number of oscillators and a very small `Frequency Spread`, the
+        periodicity between partial frequencies can cause very strange artefact. 
+        Adding a jitter breaks the periodicity.
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Pitch/LooperMod.rst b/doc-en/source/src/modules/Pitch/LooperMod.rst
new file mode 100644
index 0000000..6893714
--- /dev/null
+++ b/doc-en/source/src/modules/Pitch/LooperMod.rst
@@ -0,0 +1,48 @@
+LooperMod : Looper module with optional amplitude and frequency modulation
+==========================================================================
+
+Description
+------------
+
+A simple soundfile looper with optional amplitude and frequency modulations
+of variable shapes.
+
+Sliders
+--------
+
+    **AM Range** : 
+        Minimum and maximum amplitude of the Amplitude Modulation LFO
+    **AM Speed** : 
+        Frequency of the Amplitude Modulation LFO
+    **FM Range** : 
+        Minimum and maximum amplitude of the Frequency Modulation LFO
+    **FM Speed** : 
+        Frequency of the Frequency Modulation LFO
+    **Dry / Wet** : 
+        Mix between the original signal and the processed signal
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **AM LFO Type** : 
+        Shape of the amplitude modulation waveform
+    **AM On/Off** : 
+        Activate or deactivate the amplitude modulation
+    **FM LFO Type** : 
+        Shape of the frequency modulation waveform
+    **FM On/Off** : 
+        Activate or deactivate frequency modulation
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Pitch/PitchLooper.rst b/doc-en/source/src/modules/Pitch/PitchLooper.rst
new file mode 100644
index 0000000..ede7e98
--- /dev/null
+++ b/doc-en/source/src/modules/Pitch/PitchLooper.rst
@@ -0,0 +1,54 @@
+PitchLooper : Table-based transposition module with multiple voices
+===================================================================
+
+Description
+------------
+
+This module implements five sound loopers playing in parallel.
+Loopers are table-based so a change in pitch will produce a 
+change in sound duration. This can be useful to create rhythm
+effects as well as harmonic effects.
+
+Sliders
+--------
+
+    **Transpo Voice 1** : 
+        Playback speed of the first voice
+    **Gain Voice 1** : 
+        Gain of the transposed first voice
+    **Transpo Voice 2** : 
+        Playback speed of the second voice
+    **Gain Voice 2** : 
+        Gain of the transposed second voice
+    **Transpo Voice 3** : 
+        Playback speed of the third voice
+    **Gain Voice 3** : 
+        Gain of the transposed third voice
+    **Transpo Voice 4** : 
+        Playback speed of the fourth voice
+    **Gain Voice 4** : 
+        Gain of the transposed fourth voice
+    **Transpo Voice 5** : 
+        Playback speed of the fifth voice
+    **Gain Voice 5** : 
+        Gain of the transposed fifth voice
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Voice Activation 1 --> 5** :
+        Mute or unmute each voice independently
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Pitch/index.rst b/doc-en/source/src/modules/Pitch/index.rst
new file mode 100644
index 0000000..d0da876
--- /dev/null
+++ b/doc-en/source/src/modules/Pitch/index.rst
@@ -0,0 +1,13 @@
+Pitch : Modules related to playback speed and pitch manipulations
+=================================================================
+
+
+.. toctree::
+   :maxdepth: 1
+
+   ChordMaker
+   FreqShift
+   Harmonizer
+   LooperBank
+   LooperMod
+   PitchLooper
diff --git a/doc-en/source/src/modules/Resonators&Verbs/ConvolutionReverb.rst b/doc-en/source/src/modules/Resonators&Verbs/ConvolutionReverb.rst
new file mode 100644
index 0000000..9929cd4
--- /dev/null
+++ b/doc-en/source/src/modules/Resonators&Verbs/ConvolutionReverb.rst
@@ -0,0 +1,33 @@
+ConvolutionReverb : FFT-based convolution reverb
+================================================
+
+Description
+------------
+
+This module implements a convolution based on a uniformly partitioned overlap-save
+algorithm. It can be used to convolve an input signal with an impulse response 
+soundfile to simulate real acoustic spaces.
+
+Sliders
+--------
+
+    **Dry / Wet** : 
+        Mix between the original signal and the convoluted signal
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Resonators&Verbs/Convolve.rst b/doc-en/source/src/modules/Resonators&Verbs/Convolve.rst
new file mode 100644
index 0000000..adb8a1f
--- /dev/null
+++ b/doc-en/source/src/modules/Resonators&Verbs/Convolve.rst
@@ -0,0 +1,45 @@
+Convolve : Circular convolution filtering module
+================================================
+
+Description
+------------
+
+Circular convolution filter where the filter kernel is extract from a soundfile segments.
+
+Circular convolution is very expensive to compute, so the impulse response must be kept 
+very short to run in real time.
+
+Sliders
+--------
+
+    **Impulse index 1** : 
+        Position of the first impulse response in the soundfile (mouse up)
+    **Impulse index 2** : 
+        Position of the second impulse response in the soundfile (mouse up)
+    **Imp 1 <--> Imp 2** : 
+        Morphing between the two impulse responses
+    **Dry / Wet** : 
+        Mix between the original signal and the convoluted signal
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Size** : 
+        Buffer size of the convolution
+    **Balance** :
+        Compression mode. Off, balanced with a fixed signal
+        or balanced with the input source.
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Resonators&Verbs/DetunedResonators.rst b/doc-en/source/src/modules/Resonators&Verbs/DetunedResonators.rst
new file mode 100644
index 0000000..223e8f3
--- /dev/null
+++ b/doc-en/source/src/modules/Resonators&Verbs/DetunedResonators.rst
@@ -0,0 +1,67 @@
+DetunedResonators : Eight detuned resonators with jitter control
+================================================================
+
+Description
+------------
+
+This module implements a detuned resonator (waveguide) bank with 
+random controls.
+
+This waveguide model consists of one delay-line with a 3-stages recursive
+allpass filter which made the resonances of the waveguide out of tune.
+
+Sliders
+--------
+
+    **Pitch Offset** : 
+        Base pitch of all the resonators
+    **Amp Random Amp** : 
+        Amplitude of the jitter applied on the resonators amplitude
+    **Amp Random Speed** : 
+        Frequency of the jitter applied on the resonators amplitude
+    **Delay Random Amp** : 
+        Amplitude of the jitter applied on the resonators delay (pitch)
+    **Delay Random Speed** : 
+        Frequency of the jitter applied on the resonators delay (pitch)
+    **Detune Factor** : 
+        Detune spread of the resonators
+    **Pitch Voice 1** : 
+        Pitch of the first resonator
+    **Pitch Voice 2** : 
+        Pitch of the second resonator
+    **Pitch Voice 3** : 
+        Pitch of the third resonator
+    **Pitch Voice 4** : 
+        Pitch of the fourth resonator
+    **Pitch Voice 5** : 
+        Pitch of the fifth resonator
+    **Pitch Voice 6** : 
+        Pitch of the sixth resonator
+    **Pitch Voice 7** : 
+        Pitch of the seventh resonator
+    **Pitch Voice 8** : 
+        Pitch of the eigth resonator
+    **Feedback** : 
+        Amount of resonators fed back in the resonators
+    **Dry / Wet** : 
+        Mix between the original signal and the resonators
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Voice Activation ( 1 --> 8 )** :
+        Mute or unmute each of the eigth voices independently
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Resonators&Verbs/Resonators.rst b/doc-en/source/src/modules/Resonators&Verbs/Resonators.rst
new file mode 100644
index 0000000..d39cec2
--- /dev/null
+++ b/doc-en/source/src/modules/Resonators&Verbs/Resonators.rst
@@ -0,0 +1,64 @@
+Resonators : Eight resonators with jitter control
+=================================================
+
+Description
+------------
+
+This module implements a resonator (waveguide) bank with random controls.
+
+This waveguide model consists of one delay-line with a simple
+lowpass filtering and lagrange interpolation.
+
+Sliders
+--------
+
+    **Pitch Offset** : 
+        Base pitch of all the resonators
+    **Amp Random Amp** : 
+        Amplitude of the jitter applied on the resonators amplitude
+    **Amp Random Speed** : 
+        Frequency of the jitter applied on the resonators amplitude
+    **Delay Random Amp** : 
+        Amplitude of the jitter applied on the resonators delay (pitch)
+    **Delay Random Speed** : 
+        Frequency of the jitter applied on the resonators delay (pitch)
+    **Pitch Voice 1** : 
+        Pitch of the first resonator
+    **Pitch Voice 2** : 
+        Pitch of the second resonator
+    **Pitch Voice 3** : 
+        Pitch of the third resonator
+    **Pitch Voice 4** : 
+        Pitch of the fourth resonator
+    **Pitch Voice 5** : 
+        Pitch of the fifth resonator
+    **Pitch Voice 6** : 
+        Pitch of the sixth resonator
+    **Pitch Voice 7** : 
+        Pitch of the seventh resonator
+    **Pitch Voice 8** : 
+        Pitch of the eigth resonator
+    **Feedback** : 
+        Amount of resonators fed back in the resonators
+    **Dry / Wet** : 
+        Mix between the original signal and the resonators
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Voice Activation ( 1 --> 8 )** :
+        Mute or unmute each of the eigth voices independently
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Resonators&Verbs/WGuideBank.rst b/doc-en/source/src/modules/Resonators&Verbs/WGuideBank.rst
new file mode 100644
index 0000000..1f87aee
--- /dev/null
+++ b/doc-en/source/src/modules/Resonators&Verbs/WGuideBank.rst
@@ -0,0 +1,54 @@
+WGuideBank : Multiple waveguide models module
+=============================================
+
+Description
+------------
+
+Resonators whose frequencies are controlled with an expansion expression.
+
+freq[i] = BaseFreq * pow(WGExpansion, i)
+
+Sliders
+--------
+
+    **Base Freq** : 
+        Base pitch of the waveguides
+    **WG Expansion** : 
+        Spread between waveguides
+    **WG Feedback** : 
+        Length of the waveguides
+    **WG Filter** : 
+        Center frequency of the filter
+    **Amp Deviation Amp** : 
+        Amplitude of the jitter applied on the waveguides amplitude
+    **Amp Deviation Speed** : 
+        Frequency of the jitter applied on the waveguides amplitude
+    **Freq Deviation Amp** : 
+        Amplitude of the jitter applied on the waveguides pitch
+    **Freq Deviation Speed** : 
+        Frequency of the jitter applied on the waveguides pitch
+    **Dry / Wet** : 
+        Mix between the original signal and the waveguides
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Filter Type** : 
+        Type of the post-process filter
+    **Balance** :
+        Compression mode. Off, balanced with a fixed signal
+        or balanced with the input source.
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Resonators&Verbs/index.rst b/doc-en/source/src/modules/Resonators&Verbs/index.rst
new file mode 100644
index 0000000..8ef0b23
--- /dev/null
+++ b/doc-en/source/src/modules/Resonators&Verbs/index.rst
@@ -0,0 +1,12 @@
+Resonators&Verbs : Artificial spaces generation modules
+=======================================================
+
+
+.. toctree::
+   :maxdepth: 1
+
+   ConvolutionReverb
+   Convolve
+   DetunedResonators
+   Resonators
+   WGuideBank
diff --git a/doc-en/source/src/modules/Spectral/AddResynth.rst b/doc-en/source/src/modules/Spectral/AddResynth.rst
new file mode 100644
index 0000000..eeebbcc
--- /dev/null
+++ b/doc-en/source/src/modules/Spectral/AddResynth.rst
@@ -0,0 +1,47 @@
+AddResynth : Phase vocoder additive resynthesis
+===============================================
+
+Description
+------------
+
+This module uses the magnitudes and true frequencies of a
+phase vocoder analysis to control amplitudes and frequencies 
+envelopes of an oscillator bank.
+
+Sliders
+--------
+
+    **Transpo** : 
+        Transposition factor
+    **Num of Oscs** : 
+        Number of oscillators used to synthesize the sound
+    **First bin** : 
+        First synthesized bin
+    **Increment** : 
+        Step between synthesized bins
+    **Dry / Wet** : 
+        Mix between the original signal and the processed signal
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **FFT Size** : 
+        Size, in samples, of the FFT
+    **FFT Envelope** : 
+        Windowing shape of the FFT
+    **FFT Overlaps** : 
+        Number of FFT overlaping analysis
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+    
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Spectral/BinModulator.rst b/doc-en/source/src/modules/Spectral/BinModulator.rst
new file mode 100644
index 0000000..ddc9c70
--- /dev/null
+++ b/doc-en/source/src/modules/Spectral/BinModulator.rst
@@ -0,0 +1,57 @@
+BinModulator : Frequency independent amplitude and frequency modulations
+========================================================================
+
+Description
+------------
+
+This module modulates both the amplitude and the frequency of 
+each bin from a phase vocoder analysis with an independent 
+oscillator. Power series are used to compute modulating 
+oscillator frequencies.
+
+Sliders
+--------
+
+    **AM Base Freq** : 
+        Base amplitude modulation frequency, in Hertz.
+    **AM Spread** : 
+        Spreading factor for AM oscillator frequencies. 0 means every 
+        oscillator has the same frequency.
+    **FM Base Freq** : 
+        Base frequency modulation frequency, in Hertz.
+    **FM Spread** : 
+        Spreading factor for FM oscillator frequencies. 0 means every 
+        oscillator has the same frequency.
+    **FM Depth** : 
+        Amplitude of the modulating oscillators.
+    **Dry / Wet** : 
+        Mix between the original signal and the delayed signals
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Reset** : 
+        On mouse down, this button reset the phase of all 
+        bin's oscillators to 0. 
+    **Routing** : 
+        Path of the sound
+    **FFT Size** : 
+        Size, in samples, of the FFT
+    **FFT Envelope** : 
+        Windowing shape of the FFT
+    **FFT Overlaps** : 
+        Number of FFT overlaping analysis
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+    
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Spectral/BinWarper.rst b/doc-en/source/src/modules/Spectral/BinWarper.rst
new file mode 100644
index 0000000..4b47209
--- /dev/null
+++ b/doc-en/source/src/modules/Spectral/BinWarper.rst
@@ -0,0 +1,49 @@
+BinWarper : Phase vocoder buffer with bin independent speed playback
+====================================================================
+
+Description
+------------
+
+This module pre-analyses the input sound and keeps the
+phase vocoder frames in a buffer for the playback. User
+has control on playback position independently for every 
+frequency bin.
+
+Sliders
+--------
+
+    **Low Bin Speed** : 
+        Lowest bin speed factor
+    **High Bin Speed** : 
+        Highest bin speed factor
+
+    * For random distribution, these values are the 
+      minimum and the maximum of the distribution.
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+        
+Popups & Toggles
+-----------------
+
+    **Reset** : 
+        Reset pointer positions to the beginning of the buffer.
+    **Speed Distribution** : 
+        Speed distribution algorithm.
+    **FFT Size** : 
+        Size, in samples, of the FFT
+    **FFT Envelope** : 
+        Windowing shape of the FFT
+    **FFT Overlaps** : 
+        Number of FFT overlaping analysis
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Spectral/CrossSynth.rst b/doc-en/source/src/modules/Spectral/CrossSynth.rst
new file mode 100644
index 0000000..c72cdbb
--- /dev/null
+++ b/doc-en/source/src/modules/Spectral/CrossSynth.rst
@@ -0,0 +1,43 @@
+CrossSynth : Phase Vocoder based cross synthesis module
+=======================================================
+
+Description
+------------
+
+Multiplication of magnitudes from two phase vocoder streaming objects.
+
+Sliders
+--------
+
+    **Exciter Pre Filter Freq** : 
+        Frequency of the pre-FFT filter
+    **Exciter Pre Filter Q** : 
+        Q of the pre-FFT filter
+    **Dry / Wet** : 
+        Mix between the original signal and the processed signal
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Exc Pre Filter Type** : 
+        Type of the pre-FFT filter
+    **FFT Size** : 
+        Size, in samples, of the FFT
+    **FFT Envelope** : 
+        Windowing shape of the FFT
+    **FFT Overlaps** : 
+        Number of FFT overlaping analysis
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Spectral/CrossSynth2.rst b/doc-en/source/src/modules/Spectral/CrossSynth2.rst
new file mode 100644
index 0000000..1aa60d6
--- /dev/null
+++ b/doc-en/source/src/modules/Spectral/CrossSynth2.rst
@@ -0,0 +1,48 @@
+CrossSynth2 : Phase Vocoder based cross synthesis module
+========================================================
+
+Description
+------------
+
+Performs cross-synthesis between two phase vocoder streaming objects.
+
+The amplitudes from `Source Exciter` and `Spectral Envelope`, scaled
+by `Crossing Index`, are applied to the frequencies of `Source Exciter`.
+
+Sliders
+--------
+
+    **Crossing Index** : 
+        Morphing index between the two source's magnitudes
+    **Exc Pre Filter Freq** : 
+        Frequency of the pre-FFT filter
+    **Exc Pre Filter Q** : 
+        Q of the pre-FFT filter
+    **Dry / Wet** : 
+        Mix between the original signal and the processed signal
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Exc Pre Filter Type** : 
+        Type of the pre-FFT filter
+    **FFT Size** : 
+        Size, in samples, of the FFT
+    **FFT Envelope** : 
+        Windowing shape of the FFT
+    **FFT Overlaps** : 
+        Number of FFT overlaping analysis
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Spectral/Morphing.rst b/doc-en/source/src/modules/Spectral/Morphing.rst
new file mode 100644
index 0000000..0edb994
--- /dev/null
+++ b/doc-en/source/src/modules/Spectral/Morphing.rst
@@ -0,0 +1,43 @@
+Morphing : Phase Vocoder based morphing module
+==============================================
+
+Description
+------------
+
+This module performs spectral morphing between two phase vocoder analysis.
+
+According to `Morphing Index`, the amplitudes from two PV analysis
+are interpolated linearly while the frequencies are interpolated
+exponentially.
+
+Sliders
+--------
+
+    **Morphing Index** : 
+        Morphing index between the two sources
+    **Dry / Wet** : 
+        Mix between the original signal and the morphed signal
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **FFT Size** : 
+        Size, in samples, of the FFT
+    **FFT Envelope** : 
+        Windowing shape of the FFT
+    **FFT Overlaps** : 
+        Number of FFT overlaping analysis
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Spectral/Shifter.rst b/doc-en/source/src/modules/Spectral/Shifter.rst
new file mode 100644
index 0000000..4b0ef06
--- /dev/null
+++ b/doc-en/source/src/modules/Spectral/Shifter.rst
@@ -0,0 +1,37 @@
+Shifter : Phase Vocoder based frequency shifters
+================================================
+
+Description
+------------
+
+This module implements two voices that linearly moves the analysis bins 
+by the amount, in Hertz, specified by the the `Shift 1` and `Shift 2` 
+parameters.
+
+Sliders
+--------
+
+    **Shift 1** : 
+        Shifting, in Hertz, of the first voice
+    **Shift 2** : 
+        Shifting, in Hertz, of the second voice
+    **Dry / Wet** : 
+        Mix between the original signal and the delayed signals
+
+Popups & Toggles
+-----------------
+
+    **FFT Size** : 
+        Size, in samples, of the FFT
+    **FFT Envelope** : 
+        Windowing shape of the FFT
+    **FFT Overlaps** : 
+        Number of FFT overlaping analysis
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Spectral/SpectralDelay.rst b/doc-en/source/src/modules/Spectral/SpectralDelay.rst
new file mode 100644
index 0000000..70f764b
--- /dev/null
+++ b/doc-en/source/src/modules/Spectral/SpectralDelay.rst
@@ -0,0 +1,47 @@
+SpectralDelay : Phase vocoder spectral delay
+============================================
+
+Description
+------------
+
+This module applies different delay times and feedbacks for
+each bin of a phase vocoder analysis. Delay times and
+feedbacks are specified via grapher functions.
+
+Sliders
+--------
+
+    **Max Delay** : 
+        Maximum delay time per bin. Used to allocate memories.
+        only available at initialization time
+    **Dry / Wet** : 
+        Mix between the original signal and the delayed signals
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance 
+    **Bin Delays** : 
+        Controls the delay time for every bin, 
+        from left (low freq) to right (high freq) on the graph
+    **Bin Feedbacks** : 
+        Controls the feedback factor for every bin, from left to right on the graph
+
+Popups & Toggles
+-----------------
+
+    **FFT Size** : 
+        Size, in samples, of the FFT
+    **FFT Envelope** : 
+        Windowing shape of the FFT
+    **FFT Overlaps** : 
+        Number of FFT overlaping analysis
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Spectral/SpectralFilter.rst b/doc-en/source/src/modules/Spectral/SpectralFilter.rst
new file mode 100644
index 0000000..e05341d
--- /dev/null
+++ b/doc-en/source/src/modules/Spectral/SpectralFilter.rst
@@ -0,0 +1,41 @@
+SpectralFilter : Phase Vocoder based filter
+===========================================
+
+Description
+------------
+
+This module filters frequency components of a phase
+vocoder analysed sound according to the shape drawn 
+in the grapher function.
+
+Sliders
+--------
+
+    **Dry / Wet** : 
+        Mix between the original signal and the processed signal
+
+Graph Only
+-----------
+
+    **Spectral Filter** : 
+        Shape of the filter (amplitude of analysis bins)
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **FFT Size** : 
+        Size, in samples, of the FFT
+    **FFT Envelope** : 
+        Windowing shape of the FFT
+    **FFT Overlaps** : 
+        Number of FFT overlaping analysis
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Spectral/SpectralGate.rst b/doc-en/source/src/modules/Spectral/SpectralGate.rst
new file mode 100644
index 0000000..fa33e13
--- /dev/null
+++ b/doc-en/source/src/modules/Spectral/SpectralGate.rst
@@ -0,0 +1,41 @@
+SpectralGate : Spectral gate (Phase Vocoder)
+============================================
+
+Description
+------------
+
+For each frequency band of a phase vocoder analysis, if the amplitude
+of the bin falls below a given threshold, it is attenuated according
+to the `Gate Attenuation` parameter.
+
+Sliders
+--------
+
+    **Gate Threshold** : 
+        dB value at which the gate becomes active
+    **Gate Attenuation** : 
+        Gain in dB of the gated signal
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **FFT Size** : 
+        Size, in samples, of the FFT
+    **FFT Envelope** : 
+        Windowing shape of the FFT
+    **FFT Overlaps** : 
+        Number of FFT overlaping analysis
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Spectral/SpectralWarper.rst b/doc-en/source/src/modules/Spectral/SpectralWarper.rst
new file mode 100644
index 0000000..f480809
--- /dev/null
+++ b/doc-en/source/src/modules/Spectral/SpectralWarper.rst
@@ -0,0 +1,42 @@
+SpectralWarper : Phase Vocoder buffer and playback with transposition
+=====================================================================
+
+Description
+------------
+
+This module pre-analyses the input sound and keeps the
+phase vocoder frames in a buffer for the playback. User
+has control on playback position and transposition.
+
+Sliders
+--------
+
+    **Position** : 
+        Normalized position (0 -> 1) inside the recorded PV buffer.
+        Buffer length is the same as the sound duration.
+    **Transposition** : 
+        Pitch of the playback sound.
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **FFT Size** : 
+        Size, in samples, of the FFT
+    **FFT Envelope** : 
+        Windowing shape of the FFT
+    **FFT Overlaps** : 
+        Number of FFT overlaping analysis
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Spectral/Transpose.rst b/doc-en/source/src/modules/Spectral/Transpose.rst
new file mode 100644
index 0000000..74620ca
--- /dev/null
+++ b/doc-en/source/src/modules/Spectral/Transpose.rst
@@ -0,0 +1,42 @@
+Transpose : Phase Vocoder based two voices transposer
+=====================================================
+
+Description
+------------
+
+This module transpose the frequency components of a phase 
+vocoder analysis.
+
+Sliders
+--------
+
+    **Transpo 1** : 
+        Transposition factor of the first voice
+    **Transpo 2** : 
+        Transposition factor of the second voice
+    **Dry / Wet** : 
+        Mix between the original signal and the delayed signals
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **FFT Size** : 
+        Size, in samples, of the FFT
+    **FFT Envelope** : 
+        Windowing shape of the FFT
+    **FFT Overlaps** : 
+        Number of FFT overlaping analysis
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Spectral/Vectral.rst b/doc-en/source/src/modules/Spectral/Vectral.rst
new file mode 100644
index 0000000..6a998b4
--- /dev/null
+++ b/doc-en/source/src/modules/Spectral/Vectral.rst
@@ -0,0 +1,45 @@
+Vectral : Phase Vocoder based vectral module (spectral gate and verb)
+=====================================================================
+
+Description
+------------
+
+This module implements a spectral gate followed by a spectral reverb.
+
+Sliders
+--------
+
+    **Gate Threshold** : 
+        dB value at which the gate becomes active
+    **Gate Attenuation** : 
+        Gain in dB of the gated signal
+    **Time Factor** : 
+        Filter coefficient for decreasing bins
+    **High Freq Damping** : 
+        High frequencies damping factor
+    **Dry / Wet** : 
+        Mix between the original signal and the delayed signals
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **FFT Size** : 
+        Size, in samples, of the FFT
+    **FFT Envelope** : 
+        Windowing shape of the FFT
+    **FFT Overlaps** : 
+        Number of FFT overlaping analysis
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Spectral/index.rst b/doc-en/source/src/modules/Spectral/index.rst
new file mode 100644
index 0000000..02a10a6
--- /dev/null
+++ b/doc-en/source/src/modules/Spectral/index.rst
@@ -0,0 +1,20 @@
+Spectral : Spectral streaming processing modules
+================================================
+
+
+.. toctree::
+   :maxdepth: 1
+
+   AddResynth
+   BinModulator
+   BinWarper
+   CrossSynth
+   CrossSynth2
+   Morphing
+   Shifter
+   SpectralDelay
+   SpectralFilter
+   SpectralGate
+   SpectralWarper
+   Transpose
+   Vectral
diff --git a/doc-en/source/src/modules/Synthesis/AdditiveSynth.rst b/doc-en/source/src/modules/Synthesis/AdditiveSynth.rst
new file mode 100644
index 0000000..c556dc2
--- /dev/null
+++ b/doc-en/source/src/modules/Synthesis/AdditiveSynth.rst
@@ -0,0 +1,49 @@
+AdditiveSynth : Additive synthesis module
+=========================================
+
+Description
+------------
+
+An all featured additive synthesis module.
+
+Sliders
+--------
+
+    **Base Frequency** : 
+        Base pitch of the synthesis
+    **Partials Spread** : 
+        Distance between partials
+    **Partials Freq Rand Amp** : 
+        Amplitude of the jitter applied on the partials pitch
+    **Partials Freq Rand Speed** : 
+        Frequency of the jitter applied on the partials pitch
+    **Partials Amp Rand Amp** : 
+        Amplitude of the jitter applied on the partials amplitude
+    **Partials Amp Rand Speed** : 
+        Frequency of the jitter applied on the partials amplitude
+    **Amplitude Factor** : 
+        Spread of amplitude between partials
+    **Chorus Depth** : 
+        Amplitude of the chorus
+    **Chorus Feedback** : 
+        Amount of chorused signal fed back to the chorus
+    **Chorus Dry / Wet** : 
+        Mix between the original synthesis and the chorused signal
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Num of Partials** : 
+        Number of partials present
+    **Wave Shape** : 
+        Shape used for the synthesis
+    **Custom Wave** : 
+        Define a custom wave shape by entering amplitude values
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Synthesis/Pulsar.rst b/doc-en/source/src/modules/Synthesis/Pulsar.rst
new file mode 100644
index 0000000..3bf2418
--- /dev/null
+++ b/doc-en/source/src/modules/Synthesis/Pulsar.rst
@@ -0,0 +1,37 @@
+Pulsar : Pulsar synthesis module
+================================
+
+Description
+------------
+
+This module implements the classic pulsar synthesis.
+
+Sliders
+--------
+
+    **Base Frequency** : 
+        Base pitch of the synthesis
+    **Pulsar Width** : 
+        Amount of silence added to one period
+    **Detune Factor** : 
+        Amount of jitter applied to the pitch
+    **Detune Speed** : 
+        Speed of the jitter applied to the pitch
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Wave Shape** : 
+        Shape used for the synthesis
+    **Custom Wave** : 
+        Define a custom wave shape by entering amplitude values
+    **Window Type** : 
+        Pulsar envelope
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Synthesis/StochGrains.rst b/doc-en/source/src/modules/Synthesis/StochGrains.rst
new file mode 100644
index 0000000..fabe6ac
--- /dev/null
+++ b/doc-en/source/src/modules/Synthesis/StochGrains.rst
@@ -0,0 +1,69 @@
+StochGrains : Stochastic granular synthesis with different instrument tone qualities
+====================================================================================
+
+Description
+------------
+
+This module implements a stochastic granular synthesis. Different synthesis
+engine are available and the user has control over the range of every 
+generation parameters and envelopes.
+
+Sliders
+--------
+
+    **Pitch Offset** : 
+        Base transposition, in semitones, applied to every grain
+    **Pitch Range** : 
+        Range, in semitone, over which grain pitches are chosen randomly
+    **Speed Range** : 
+        Range, in second, over which grain start times are chosen randomly
+    **Duration Range** : 
+        Range, in second, over which grain durations are chosen randomly
+    **Brightness Range** : 
+        Range over which grain brightness factors (high frequency power) 
+        are chosen randomly
+    **Detune Range** : 
+        Range over which grain detune factors (frequency deviation between
+        voices) are chosen randomly
+    **Intensity Range** : 
+        Range, in dB, over which grain amplitudes are chosen randomly
+    **Pan Range** : 
+        Range over which grain spatial positions are chosen randomly
+    **Density** :
+        Density of active grains, expressed as percent of the total generated grains
+    **Global Seed** :
+        Root of stochatic generators. If 0, a new value is chosen randomly each
+        time the performance starts. Otherwise, the same root is used every 
+        performance, making the generated sequences the same every time.
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+    **Grain Envelope** :
+        Amplitude envelope of each grain
+    **Brightness Envelope** :
+        Brightness (high frequency power) envelope of each grain
+
+Popups & Toggles
+-----------------
+
+    **Synth Type** : 
+        Choose between the different synthesis engines
+    **Pitch Scaling** :
+        Controls the possible values (as chords or scales) of the pitch generation
+    **Pitch Algorithm** :
+        Noise distribution used by the pitch generator
+    **Speed Algorithm** :
+        Noise distribution used by the speed generator
+    **Duration Algorithm** :
+        Noise distribution used by the duration generator
+    **Intensity Algorithm** :
+        Noise distribution used by the intensity generator
+    **Max Num of Grains** :
+        Regardless the speed generation and the duration of each grain, there will
+        never be more overlapped grains than this value. The more CPU power you have,
+        higher this value can be.
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Synthesis/StochGrains2.rst b/doc-en/source/src/modules/Synthesis/StochGrains2.rst
new file mode 100644
index 0000000..e5bb222
--- /dev/null
+++ b/doc-en/source/src/modules/Synthesis/StochGrains2.rst
@@ -0,0 +1,62 @@
+StochGrains2 : Stochastic granular synthesis based on a soundfile
+=================================================================
+
+Description
+------------
+
+This module implements a stochastic granular synthesis where grains
+coe from a given soundfile. The user has control over the range of 
+every generation parameters and envelopes.
+
+Sliders
+--------
+
+    **Pitch Offset** : 
+        Base transposition, in semitones, applied to every grain
+    **Pitch Range** : 
+        Range, in semitone, over which grain transpositions are chosen randomly
+    **Speed Range** : 
+        Range, in second, over which grain start times are chosen randomly
+    **Duration Range** : 
+        Range, in second, over which grain durations are chosen randomly
+    **Start Range** : 
+        Range, in seconds, over which grain starting poistions (in the file) 
+        are chosen randomly
+    **Intensity Range** : 
+        Range, in dB, over which grain amplitudes are chosen randomly
+    **Pan Range** : 
+        Range over which grain spatial positions are chosen randomly
+    **Density** :
+        Density of active grains, expressed as percent of the total generated grains
+    **Global Seed** :
+        Root of stochatic generators. If 0, a new value is chosen randomly each
+        time the performance starts. Otherwise, the same root is used every 
+        performance, making the generated sequences the same every time.
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+    **Grain Envelope** :
+        Amplitude envelope of each grain
+
+Popups & Toggles
+-----------------
+
+    **Pitch Scaling** :
+        Controls the possible values (as chords or scales) of the pitch generation
+    **Pitch Algorithm** :
+        Noise distribution used by the pitch generator
+    **Speed Algorithm** :
+        Noise distribution used by the speed generator
+    **Duration Algorithm** :
+        Noise distribution used by the duration generator
+    **Intensity Algorithm** :
+        Noise distribution used by the intensity generator
+    **Max Num of Grains** :
+        Regardless the speed generation and the duration of each grain, there will
+        never be more overlapped grains than this value. The more CPU power you have,
+        higher this value can be.
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Synthesis/index.rst b/doc-en/source/src/modules/Synthesis/index.rst
new file mode 100644
index 0000000..8eca417
--- /dev/null
+++ b/doc-en/source/src/modules/Synthesis/index.rst
@@ -0,0 +1,11 @@
+Synthesis : Additive synthesis and particle generators
+======================================================
+
+
+.. toctree::
+   :maxdepth: 1
+
+   AdditiveSynth
+   Pulsar
+   StochGrains
+   StochGrains2
diff --git a/doc-en/source/src/modules/Time/4Delays.rst b/doc-en/source/src/modules/Time/4Delays.rst
new file mode 100644
index 0000000..6246a97
--- /dev/null
+++ b/doc-en/source/src/modules/Time/4Delays.rst
@@ -0,0 +1,66 @@
+4Delays : Two stereo delays with parallel or serial routing
+===========================================================
+
+Description
+------------
+
+A classical module implementing a pair of stereo delays
+with user-defined delay time, feedback and gain. Routing
+of delays and filters can be defined with the popup menus.
+
+Sliders
+--------
+
+    **Delay 1 Left** : 
+        Delay one, left channel, delay time in seconds
+    **Delay 1 Right** : 
+        Delay one, right channel, delay time in seconds
+    **Delay 1 Feedback** : 
+        Amount of delayed signal fed back to the delay line input
+    **Delay 1 Gain** : 
+        Gain of the delayed signal
+    **Delay 2 Left** : 
+        Delay two, left channel, delay time in seconds
+    **Delay 2 Right** : 
+        Delay two, right channel, delay time in seconds
+    **Delay 2 Feedback** : 
+        Amount of delayed signal fed back to the delay line input
+    **Delay 2 Gain** : 
+        Gain of the delayed signal
+    **Jitter Amp** : 
+        Amplitude of the jitter applied on the delay times
+    **Jitter Speed** : 
+        Speed of the jitter applied on the delay times
+    **Filter Freq** : 
+        Cutoff or center frequency of the filter
+    **Filter Q** : 
+        Q factor of the filter
+    **Dry / Wet** : 
+        Mix between the original signal and the processed signals
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **Delay Routing** : 
+        Type of routing
+    **Filter Type** : 
+        Type of filter
+    **Filter Routing** : 
+        Specify if the filter is pre or post process
+    **Balance** :
+        Compression mode. Off, balanced with a fixed signal
+        or balanced with the input source.
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Time/BeatMaker.rst b/doc-en/source/src/modules/Time/BeatMaker.rst
new file mode 100644
index 0000000..0682301
--- /dev/null
+++ b/doc-en/source/src/modules/Time/BeatMaker.rst
@@ -0,0 +1,66 @@
+BeatMaker : Algorithmic beat maker module
+=========================================
+
+Description
+------------
+
+Four voices beat generator where sounds are extracted from a soundfile.
+
+Sliders
+--------
+
+    **Num of Taps** : 
+        Number of taps in a measure
+    **Tempo** : 
+        Speed of taps in BPM (ref. to quarter note)
+    **Beat 1 Tap Length** : 
+        Length of taps of the first beat, in seconds
+    **Beat 1 Index** : 
+        Soundfile index of the first beat
+    **Beat 1 Gain** : 
+        Gain of the first beat
+    **Beat 1 Distribution** : 
+        Repartition of taps for the first beat (100% weak <--> 100% down)
+    **Beat 2 Tap Length** : 
+        Length of taps of the second beat, in seconds
+    **Beat 2 Index** : 
+        Soundfile index of the second beat
+    **Beat 2 Gain** : 
+        Gain of the second beat
+    **Beat 2 Distribution** : 
+        Repartition of taps for the second beat (100% weak <--> 100% down)
+    **Beat 3 Tap Length** : 
+        Length of taps of the third beat, in seconds
+    **Beat 3 Index** : 
+        Soundfile index of the third beat
+    **Beat 3 Gain** : 
+        Gain of the third beat
+    **Beat 3 Distribution** : 
+        Repartition of taps for the third beat (100% weak <--> 100% down)
+    **Beat 4 Tap Length** : 
+        Length of taps of the fourth beat, in seconds
+    **Beat 4 Index** : 
+        Soundfile index of the fourth beat
+    **Beat 4 Gain** : 
+        Gain of the fourth beat
+    **Beat 4 Distribution** : 
+        Repartition of taps for the fourth beat (100% weak <--> 100% down)
+    **Global Seed** : 
+        Seed value for the algorithmic beats, using the same seed with 
+        the same distributions will yield the exact same beats.
+    
+Graph Only
+-----------
+
+    **Beat 1 ADSR** : 
+        Envelope of taps for the first beat in breakpoint fashion
+    **Beat 2 ADSR** : 
+        Envelope of taps for the second beat in breakpoint fashion
+    **Beat 3 ADSR** : 
+        Envelope of taps for the third beat in breakpoint fashion
+    **Beat 4 ADSR** : 
+        Envelope of taps for the fourth beat in breakpoint fashion
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Time/DelayMod.rst b/doc-en/source/src/modules/Time/DelayMod.rst
new file mode 100644
index 0000000..0eeda57
--- /dev/null
+++ b/doc-en/source/src/modules/Time/DelayMod.rst
@@ -0,0 +1,55 @@
+DelayMod : Stereo delay module with LFO on delay times
+======================================================
+
+Description
+------------
+
+A stereo delay whose delay times are modulated with LFO of different shapes.
+
+Sliders
+--------
+
+    **Delay Time L** : 
+        Delay time of the left channel delay
+    **Delay Time R** : 
+        Delay time of the right channel delay
+    **LFO Depth L** : 
+        Amplitude of the LFO applied on left channel delay time
+    **LFO Depth R** : 
+        Amplitude of the LFO applied on right channel delay time
+    **LFO Freq L** : 
+        Frequency of the LFO applied on left channel delay time
+    **LFO Freq R** : 
+        Frequency of the LFO applied on right channel delay time
+    **Gain Delay L** : 
+        Amplitude of the left channel delay
+    **Gain Delay R** : 
+        Amplitude of the right channel delay
+    **Feedback** : 
+        Amount of delayed signal fed back in the delay chain
+    **LFO Sharpness** : 
+        Sharper waveform results in more harmonics in the LFO spectrum.
+    **Dry / Wet** : 
+        Mix between the original signal and the delayed signals
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+
+Popups & Toggles
+-----------------
+
+    **LFO Waveform L** : 
+        Shape of the LFO waveform applied on left channel delay
+    **LFO Waveform R** : 
+        Shape of the LFO waveform applied on right channel delay
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+    
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Time/Granulator.rst b/doc-en/source/src/modules/Time/Granulator.rst
new file mode 100644
index 0000000..902186c
--- /dev/null
+++ b/doc-en/source/src/modules/Time/Granulator.rst
@@ -0,0 +1,51 @@
+Granulator : Granulation module
+===============================
+
+Description
+------------
+
+A classic granulation module. Useful to stretch a sound without changing
+the pitch or to transposition without changing the duration.
+
+Sliders
+--------
+
+    **Transpose** : 
+        Base pitch of the grains
+    **Grain Position** : 
+        Soundfile index
+    **Position Random** : 
+        Jitter applied on the soundfile index
+    **Pitch Random** : 
+        Jitter applied on the pitch of the grains using the discreet transpo list
+    **Grain Duration** : 
+        Length of the grains
+    **Num of Grains** : 
+        Number of overlapping grains
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+    **Grain Envelope** : 
+        Emplitude envelope of the grains
+
+Popups & Toggles
+-----------------
+
+    **Filter Type** : 
+        Type of the post filter
+    **Discreet Transpo** : 
+        List of pitch ratios    
+    **Balance** :
+        Compression mode. Off, balanced with a fixed signal
+        or balanced with the input source.
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Time/Particle.rst b/doc-en/source/src/modules/Time/Particle.rst
new file mode 100644
index 0000000..fdcb959
--- /dev/null
+++ b/doc-en/source/src/modules/Time/Particle.rst
@@ -0,0 +1,58 @@
+Particle : A full-featured granulation module
+=============================================
+
+Description
+-----------
+
+This module offers more controls than the classic granulation module. 
+Useful to generate clouds, to stretch a sound without changing the pitch 
+or to transpose without changing the duration.
+
+`Density per Second * Grain Duration` defines the overall overlaps.
+
+Sliders
+-------
+
+    **Density per Second** :
+        How many grains to play per second
+    **Transpose** : 
+        Overall transposition, in cents, of the grains
+    **Grain Position** : 
+        Soundfile index
+    **Grain Duration** :
+        Duration of each grain, in seconds
+    **Start Time Deviation** :
+        Maximum deviation of the starting time of the grain
+    **Panning Random** :
+        Random added to the panning of each grain
+    **Density Random** :
+        Jitter applied to the density per second
+    **Pitch Random** : 
+        Jitter applied on the pitch of the grains
+    **Position Random** : 
+        Jitter applied on the soundfile index
+    **Duration Random** : 
+        Jitter applied to the grain duration
+
+Graph Only
+----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+    **Grain Envelope** : 
+        Emplitude envelope of the grains
+
+Popups & Toggles
+----------------
+
+    **Discreet Transpo** : 
+        List of pitch ratios    
+    **Balance** :
+        Compression mode. Off, balanced with a fixed signal
+        or balanced with the input source.
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
diff --git a/doc-en/source/src/modules/Time/Pelletizer.rst b/doc-en/source/src/modules/Time/Pelletizer.rst
new file mode 100644
index 0000000..f084ba8
--- /dev/null
+++ b/doc-en/source/src/modules/Time/Pelletizer.rst
@@ -0,0 +1,61 @@
+Pelletizer : Another granulation module
+=======================================
+
+Description
+------------
+
+A granulation module where the number of grains (density) and
+the grain duration can be set independently. Useful to stretch 
+a sound without changing the pitch or to transposition without 
+changing the duration.
+
+Sliders
+--------
+
+    **Transpose** : 
+        Base pitch of the grains
+    **Density of grains** : 
+        Number of grains per second
+    **Grain Position** : 
+        Grain start position in the position 
+    **Grain Duration** : 
+        Duration of the grain in seconds
+    **Pitch Random** : 
+        Jitter applied on the pitch of the grains
+    **Density Random** : 
+        Jitter applied on the density
+    **Position Random** : 
+        Jitter applied on the grain start position
+    **Duration Random** : 
+        Jitter applied on the duration of the grain
+    **Filter Freq** : 
+        Cutoff or center frequency of the filter (post-processing)
+    **Filter Q** : 
+        Q of the filter
+
+Graph Only
+-----------
+
+    **Overall Amplitude** : 
+        The amplitude curve applied on the total duration of the performance
+    **Grain Envelope** : 
+        Emplitude envelope of the grains
+
+Popups & Toggles
+-----------------
+
+    **Filter Type** : 
+        Type of the post filter
+    **Balance** :
+        Compression mode. Off, balanced with a fixed signal
+        or balanced with the input source.
+    **Discreet Transpo** : 
+        List of pitch ratios
+    **Polyphony Voices** : 
+        Number of voices played simultaneously (polyphony), 
+        only available at initialization time
+    **Polyphony Spread** : 
+        Pitch variation between voices (chorus), 
+        only available at initialization time
+
+    
\ No newline at end of file
diff --git a/doc-en/source/src/modules/Time/index.rst b/doc-en/source/src/modules/Time/index.rst
new file mode 100644
index 0000000..5a4642d
--- /dev/null
+++ b/doc-en/source/src/modules/Time/index.rst
@@ -0,0 +1,13 @@
+Time : Granulation based time-stretching and delay related modules
+==================================================================
+
+
+.. toctree::
+   :maxdepth: 1
+
+   4Delays
+   BeatMaker
+   DelayMod
+   Granulator
+   Pelletizer
+   Particle
diff --git a/doc-en/source/src/modules/index.rst b/doc-en/source/src/modules/index.rst
new file mode 100644
index 0000000..75dffe6
--- /dev/null
+++ b/doc-en/source/src/modules/index.rst
@@ -0,0 +1,17 @@
+Documentation of Built-In Modules 
+=====================================
+
+The built-in modules are classified into different categories:
+
+
+.. toctree::
+   :maxdepth: 2
+
+   Dynamics/index
+   Filters/index
+   Multiband/index
+   Pitch/index
+   Resonators&Verbs/index
+   Spectral/index
+   Synthesis/index
+   Time/index
diff --git a/doc/Cecilia5_manuel.pdf b/doc/Cecilia5_manuel.pdf
deleted file mode 100644
index 4363d9d..0000000
Binary files a/doc/Cecilia5_manuel.pdf and /dev/null differ
diff --git a/doc/Cecilia5_manuel.tex b/doc/Cecilia5_manuel.tex
deleted file mode 100755
index c38ca98..0000000
--- a/doc/Cecilia5_manuel.tex
+++ /dev/null
@@ -1,121 +0,0 @@
-%!TEX TS-program = /usr/texbin/pdflatex
-\documentclass[11pt,francais]{book}
-\usepackage{amssymb,amsmath,epsfig}
-\usepackage{graphics}
-\usepackage[utf8]{inputenc}
-\usepackage[francais]{babel}
-\usepackage{listings}
-\usepackage{color}
-\usepackage[pdfborder=0]{hyperref}
-%\usepackage[utf8x]{inputenc}
-\hypersetup{
-urlcolor=blue,
-linkcolor=blue,
-colorlinks=true, 
-linkbordercolor={1 1 1}, % set to white
-citebordercolor={1 1 1} % set to white
-}
-
-\oddsidemargin 0.2in
-\evensidemargin 0in
-\marginparwidth 40pt
-\marginparsep 10pt
-\topmargin 0pt
-\headsep .5in
-\textheight 8.35in \textwidth 6.3in
-
-\definecolor{green}{rgb}{0,0.7,0}
-\definecolor{dkgreen}{rgb}{0,0.5,0}
-\definecolor{verylightgray}{rgb}{0.97,0.97,0.97}
-\definecolor{lightgray}{rgb}{0.95,0.95,0.95}
-\definecolor{gray}{rgb}{0.6,0.6,0.6}
-\definecolor{dkgray}{rgb}{0.4,0.4,0.4}
-
-%
-% Il faut installer le package lstlisting pour obtenir le formattage du code source
-% http://www.ctan.org/tex-archive/macros/latex/contrib/listings/
-%
-
-\lstdefinestyle{Python}{ %
-  language=Python,                % the language of the code
-  basicstyle=\footnotesize,       % the size of the fonts that are used for the code
-  numbers=left,                   % where to put the line-numbers
-  numberstyle=\tiny\color{gray},  % the style that is used for the line-numbers
-  stepnumber=1,                   % the step between two line-numbers. If it's 1, each line will be numbered
-  numbersep=10pt,                  % how far the line-numbers are from the code
-  backgroundcolor=\color{lightgray},  % choose the background color. You must add \usepackage{color}
-  showspaces=false,               % show spaces adding particular underscores
-  showstringspaces=false,         % underline spaces within strings
-  showtabs=false,                 % show tabs within strings adding particular underscores
-  frame=false,                    % adds a frame around the code
-  rulecolor=\color{lightgray},    % if not set, the frame-color may be changed on line-breaks within not-black text 
-  tabsize=4,                      % sets default tabsize to 2 spaces
-  captionpos=b,                   % sets the caption-position to bottom
-  breaklines=true,                % sets automatic line breaking
-  breakatwhitespace=false,        % sets if automatic breaks should only happen at whitespace
-  title=\lstname,                 % show the filename of files included with \lstinputlisting;
-                                  % also try caption instead of title
-  keywordstyle=\color{blue},      % keyword style
-  commentstyle=\color{dkgray},      % comment style
-  stringstyle=\color{dkgreen},    % string literal style
-  escapeinside={\%*}{*)},         % if you want to add a comment within your code
-  morekeywords={Abs, Atan2, Ceil, Cos, Floor, Log, Log10, Log2, Pow, Round, Sin, Sqrt, Tan, CarToPol, FFT, FrameAccum, FrameDelta, IFFT, PolToCar, Vectral, MatrixMorph, MatrixPointer, MatrixRec, MatrixRecLoop, OscDataReceive, OscDataSend, OscListReceive, OscReceive, OscSend, Bendin, CtlScan, MidiAdsr, MidiDelAdsr, Midictl, Notein, Programin, Touchin, CallAfter, Pattern, Score, AToDB, Between, CentsToTranspo, Clean_objects, Compare, ControlRead, ControlRec, DBToA, Denorm, Interp, MToF, MToT, NoteinRead, NoteinRec, Print, Record, SampHold, Scale, Snap, TranspoToCents, Dummy, InputFader, Mix, VarPort, Follower, Follower2, ZCross, SfMarkerLooper, SfMarkerShuffler, SfPlayer, Choice, RandDur, RandInt, Randh, Randi, Urn, Xnoise, XnoiseDur, XnoiseMidi, Blit, BrownNoise, CrossFM, FM, Input, LFO, Lorenz, Noise, Phasor, PinkNoise, Rossler, Sine, SineLoop, Adsr, Expseg, Fader, Linseg, Sig, SigTo, Allpass, Allpass2, BandSplit, Biquad, Biquada, Biquadx, DCBlock, EQ, FourBand, Hilbert, IRAverage, IRFM, IRPulse, IRWinSinc, Phaser, Port, Tone, Clip, Compress, Degrade, Gate, Mirror, Wrap, Granulator, Lookup, Looper, Osc, OscBank, OscLoop, Pointer, Pulsar, TableIndex, TableMorph, TableRead, TableRec, Beat, Change, Cloud, Count, Counter, Iter, Metro, NextTrig, Percent, Select, Seq, Thresh, Timer, Trig, TrigChoice, TrigEnv, TrigExpseg, TrigFunc, TrigLinseg, TrigRand, TrigRandInt, TrigTableRec, TrigXnoise, TrigXnoiseMidi, Mixer, Pan, SPan, Selector, Switch, VoiceManager, AllpassWG, Chorus, Convolve, Delay, Disto, Freeverb, FreqShift, Harmonizer, SDelay, Vocoder, WGVerb, Waveguide, SLMapDur, SLMapFreq, SLMapMul, SLMapPan, SLMapPhase, SLMapQ, class_args, convertStringToSysEncoding, distanceToSegment, downsamp, example, getVersion, linToCosCurve, midiToHz, midiToTranspo, pa_count_devices, pa_count_host_apis, pa_get_default_host_api, pa_get_default_input, pa_get_default_output, pa_get_input_devices, pa_get_output_devices, pa_list_devices, pa_list_host_apis, pm_count_devices, pm_get_default_input, pm_get_default_output, pm_get_input_devices, pm_get_output_devices, pm_list_devices, reducePoints, rescale, sampsToSec, savefile, savefileFromTable, secToSamps, serverBooted, serverCreated, sndinfo, upsamp, ChebyTable, CosTable, CurveTable, DataTable, ExpTable, HannTable, HarmTable, LinTable, NewTable, ParaTable, SawTable, SincTable, SndTable, SquareTable, WinTable, NewMatrix, PyoObject, PyoTableObject, PyoMatrixObject, Server},% if you want to add more keywords to the set
-  morestring=[b][\color{green}]{"""},
-  morecomment=[l][\color{dkgray}]{\#},
-  morecomment=[l][\color{gray}]{\#\#\#},
-}
-
-\newcommand\IMGPATH{images/}
-
-\newcommand{\insertImage}[3]{
-    \medskip
-    \begin{figure}[htbp]
-        \begin{center}
-            \includegraphics[width=#1in]{\IMGPATH #2}
-        \end{center}
-        \caption{#3}
-    \end{figure}
-}
-
-\newcommand{\insertImageLeft}[3]{
-    \begin{table}[ht]
-        \begin{minipage}[b]{0.5\linewidth}
-            \includegraphics[width=#1in]{\IMGPATH #2}
-        \end{minipage}
-        \hspace{0.1in}
-        \begin{minipage}[b]{0.5\linewidth}
-            {#3}
-        \end{minipage}
-    \end{table}
-}
-
-\newcommand{\insertImageRight}[3]{
-    \begin{table}[ht]
-        \begin{minipage}[b]{0.5\linewidth}
-            {#3}
-        \end{minipage}
-        \hspace{0.1in}
-        \begin{minipage}[b]{0.5\linewidth}
-            \includegraphics[width=#1in]{\IMGPATH #2}
-        \end{minipage}
-    \end{table}
-}
-
-\begin{document}
-
-\title{Cecilia5 - Manuel d'utilisation}
-\author{iACT - 2012}
-\maketitle
-\tableofcontents
-
-
-\chapter{Template}
-\input{chapitres/template}
-
-\chapter{Introduction}
-\section{PrŽsentation}
-\input{chapitres/Chapitre1_F/Description_F.txt}
-\section{Configuration requise}
-\input{chapitres/Chapitre1_F/Requirements_F.txt}
-
-\end{document}
diff --git a/doc/chapitres/Chapitre10_A/10.1-AdditiveSynth_A.txt b/doc/chapitres/Chapitre10_A/10.1-AdditiveSynth_A.txt
deleted file mode 100644
index 6129965..0000000
--- a/doc/chapitres/Chapitre10_A/10.1-AdditiveSynth_A.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Additive synthesis module.
-
-Sliders under the graph:
--Base Frequency: Base pitch of the synthesis (in Hertz).
--Partials Spread: Spread factor that determines the distance between the partials.
--Partials Freq Rand Amp: Amplitude of the jitter applied to the partials pitch.
--Partials Freq Rand Speed: Frequency of the jitter applied to the partials pitch.
--Partials Amp Rand Amp: Amplitude of the jitter applied to the jitter amplitude.
--Partials Amp Rand Speed: Frequency of the jitter applied to the partials amplitude.
--Amplitude Factor: Spread of amplitude between the partials.
-
-Dropdown menus and toggles:
--# of Partials: Number of partials present in the generated signal (5, 10, 20, 40, 80, 160, 320 or 640).
--Wave Shape: Shape of the soundwaves used for the synthesis (sine, sawtooth, square, complex 1, 2 or 3 or custom).
--Custom Wave: Click in the box to enter amplitude values that will create the shape of a custom wave.
--# of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
--Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-
-Graph only parameters:
--Overall Amplitude: The amplitude curve applied on the total duration of the performance.
diff --git a/doc/chapitres/Chapitre10_A/10.2-Pulsar_A.txt b/doc/chapitres/Chapitre10_A/10.2-Pulsar_A.txt
deleted file mode 100644
index 500c365..0000000
--- a/doc/chapitres/Chapitre10_A/10.2-Pulsar_A.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-Pulsar synthesis module.
-
-Sliders under the graph:
--Base Frequency: Base pitch of the synthesis (in Hertz).
--Pulsar Width: Amount of silence added to one period.
--Detune Factor: Amount of jitter applied to the pitch.
--Detune Speed: Frequency of the jitter applied to the pitch.
--Source index: Position in the input soundfile where the sound pulsar is taken. 
-
-Dropdown menus and toggles:
--Window Size: Size of the pulsar window (in samples - 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384 or 32768).
--Window Type: Type of the pulsar window (rectangular, Hanning, Hamming, Bartlett, Blackman 3, 4 or 7, Tuckey or sine).
--# of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
--Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-
-Graph only parameters:
--Overall Amplitude: The amplitude curve applied on the total duration of the performance.
diff --git a/doc/chapitres/Chapitre10_A/10.3-StochGrains_A.txt b/doc/chapitres/Chapitre10_A/10.3-StochGrains_A.txt
deleted file mode 100644
index 3999d99..0000000
--- a/doc/chapitres/Chapitre10_A/10.3-StochGrains_A.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-Granular synthesis module.
-**à compléter**
-
-Sliders under the graph:
--Pitch Offset:
--Pitch Range:
--Speed Range:
--Duration Range:
--Brightness Range:
--Detune Range:
--Intensity Range:
--Pan Range:
--Density:
--Global seed:
-
-Dropdown menus and toggles:
--Synth Type: Synthesis type (FM - frequency modulation, looped sine, impulse train, cross FM, sawtooth, square, pulsar, addsynth - additive synthesis).
--Pitch Scaling: Scale or chord on which the pitch scaling is based (All-over, serial, major, minor, seventh, major 7, minor 7, minor 7 b5, diminished, diminished 7, ninth, major 9, minor 9, eleventh, major 11, minor 11, thirteeth, major 13 or whole-tone).
--Pitch Algorithm: ** (uniform, linear minimum, linear maximum, triangular, exponential minimum, exponential maximum, bi-exponential, Cauchy, Weibull, Gaussian, Poisson, Walker or loopseg).
--Speed Algorithm: ** (uniform, linear minimum, linear maximum, triangular, exponential minimum, exponential maximum, bi-exponential, Cauchy, Weibull, Gaussian, Poisson, Walker or loopseg).
--Duration Algorithm: ** (uniform, linear minimum, linear maximum, triangular, exponential minimum, exponential maximum, bi-exponential, Cauchy, Weibull, Gaussian, Poisson, Walker or loopseg).
--Intensity Algorithm: ** (uniform, linear minimum, linear maximum, triangular, exponential minimum, exponential maximum, bi-exponential, Cauchy, Weibull, Gaussian, Poisson, Walker or loopseg).
--Max Num of Grains: Maximum number of pulsar grains for the synthesis (5, 10, 15, 20, 25, 30, 40, 50 or 60).
-
-Graph only parameters:
--Grain Envelope: Envelope of the pulsar grain (custom).
--Overall Amplitude: The amplitude curve applied on the total duration of the performance.
diff --git a/doc/chapitres/Chapitre10_A/10.4-StochGrains2_A.txt b/doc/chapitres/Chapitre10_A/10.4-StochGrains2_A.txt
deleted file mode 100644
index 2d24c15..0000000
--- a/doc/chapitres/Chapitre10_A/10.4-StochGrains2_A.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-Granular synthesis module.
-**à compléter**
-
-Sliders under the graph:
--Pitch Offset:
--Pitch Range:
--Speed Range:
--Duration Range:
--Sample Start Range:
--Intensity Range:
--Pan Range:
--Density:
--Global seed:
-
-Dropdown menus and toggles:                                                                                                                 
--Pitch Scaling: Scale or chord on which the pitch scaling is based (All-over, serial, major, minor, seventh, major 7, minor 7, minor 7 b5, diminished, diminished 7, ninth, major 9, minor 9, eleventh, major 11, minor 11, thirteeth, major 13 or whole-tone).
--Pitch Algorithm: ** (uniform, linear minimum, linear maximum, triangular, exponential minimum, exponential maximum, bi-exponential, Cauchy, Weibull, Gaussian, Poisson, Walker or loopseg).
--Speed Algorithm: ** (uniform, linear minimum, linear maximum, triangular, exponential minimum, exponential maximum, bi-exponential, Cauchy, Weibull, Gaussian, Poisson, Walker or loopseg).
--Duration Algorithm: ** (uniform, linear minimum, linear maximum, triangular, exponential minimum, exponential maximum, bi-exponential, Cauchy, Weibull, Gaussian, Poisson, Walker or loopseg).
--Intensity Algorithm: ** (uniform, linear minimum, linear maximum, triangular, exponential minimum, exponential maximum, bi-exponential, Cauchy, Weibull, Gaussian, Poisson, Walker or loopseg).
--Max Num of Grains: Maximum number of pulsar grains for the synthesis (5, 10, 15, 20, 25, 30, 40, 50 or 60).
-
-Graph only parameters:
--Grain Envelope: Envelope of the pulsar grain (custom).
--Overall Amplitude: The amplitude curve applied on the total duration of the performance.
diff --git a/doc/chapitres/Chapitre10_F/10.1-AdditiveSynth_F.txt b/doc/chapitres/Chapitre10_F/10.1-AdditiveSynth_F.txt
deleted file mode 100644
index 6137ed2..0000000
--- a/doc/chapitres/Chapitre10_F/10.1-AdditiveSynth_F.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-AdditiveSynth est un module de synthèse additive.
-
-Potentiomètres:
--Base Frequency: Fréquence de base des partiels du son de synthèse (en Hertz).
--Partials Spread: Facteur "spread" déterminant la distance entre chaque partiel; il s'agit d'une puissance par laquelle est multipliée la fréquence de base de la synthèse.
--Partials Freq Rand Amp: Amplitude de la variation aléatoire (jitter) appliquée à la fréquence des partiels.
--Partials Freq Rand Speed: Fréquence de la variation aléatoire (jitter) appliquée à la fréquence des partiels.
--Partials Amp Rand Amp: Amplitude de la variation aléatoire (jitter) appliquée à l'amplitude des partiels.
--Partials Amp Rand Speed: Fréquence de la variation aléatoire (jitter) appliquée à l'amplitude des partiels.
-
-Paramètres fixes:
--# of Partials: Nombre de partiels présents dans le signal généré (5, 10, 20, 40, 80, 160, 320 ou 640).
--Wave Shape: Forme des ondes sonores utilisées pour générer le son de synthèse (sine - sinusoïdale, sawtooth - en dents de scie, square - carrée, complexe 1, 2 ou 3 ou custom - à définir).
--Custom Wave: Cliquez à l'intérieur de l'espace désigné pour entrer une liste de valeurs d'amplitude qui créeront la forme d'onde voulue (dans le cas où la forme d'onde "custom" serait sélectionnée au paramètre "Wave Shape").
--# of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
--Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-
-Paramètres du graphique:
--Overall Amplitude: Définit l'enveloppe d'amplitude appliquée au son sur sa durée totale en secondes.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre10_F/10.2-Pulsar_F.txt b/doc/chapitres/Chapitre10_F/10.2-Pulsar_F.txt
deleted file mode 100644
index e91ac02..0000000
--- a/doc/chapitres/Chapitre10_F/10.2-Pulsar_F.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-Pulsar est un module de synthèse pulsar.
-
-Potentiomètres:
--Base Frequency: Fréquence de base des partiels du son de synthèse (en Hertz).
--Pulsar Width: Pourcentage de silence ajouté à chaque période de l'onde.
--Detune Factor: Facteur déterminant la quantité de variation aléatoire (jitter) appliquée à la hauteur du son.
--Detune Speed: Fréquence de la variation aléatoire (jitter) appliquée à la hauteur du son.
--Source index: Position dans le fichier son original à laquelle le pulsar sonore est tiré.
-
-Paramètres fixes:
--Window Size: Taille de la fenêtre de synthèse pulsar (en échantillons - 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384 ou 32768).
--Window Type: Type de fenêtre utilisée pour la synthèse pulsar (rectangulaire, Hanning, Hamming, Bartlett, Blackman 3, 4 ou 7, Tuckey ou sinusoïdale).
--# of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
--Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-
-Paramètres du graphique:
--Overall Amplitude: Définit l'enveloppe d'amplitude appliquée au son sur sa durée totale en secondes. 
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre10_F/10.3-StochGrains_F.txt b/doc/chapitres/Chapitre10_F/10.3-StochGrains_F.txt
deleted file mode 100644
index a24f4e7..0000000
--- a/doc/chapitres/Chapitre10_F/10.3-StochGrains_F.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-StochGrains est un module de synthèse granulaire. ** à compléter et vérifier**
-
-Potentiomètres:
--Pitch Offset:
--Pitch Range:
--Speed Range:
--Duration Range:
--Brightness Range:
--Detune Range:
--Intensity Range:
--Pan Range:
--Density:
--Global seed:
-
-Paramètres fixes:
--Synth Type: Type de synthèse sonore (FM - modulation de fréquence, looped sine - sinusoïdale en boucle, impulse train - par train d'impulsions, cross FM - par modulation de fréquence croisée, sawtooth - en dents de scie, square - carrée, pulsar, addsynth - synthèse additive).
--Pitch Scaling: Échelle de notes ou accord sur lequel/laquelle l'accord des différentes voix est basé (All-over - toutes les notes, serial - sériel, major - majeur, minor - mineur, seventh - septième, major 7 - accord de septième majeure, minor 7 - accord de septième mineure, minor 7 b5 - accord de septième mineure avec quinte diminuée, diminished - accord diminuéz,z diminished 7 - accord de septième diminuée, ninth - neuvième, major 9 - accord de neuvième majeure, minor 9 - accord de neuvième mineure, eleventh - onzième, major 11 - accord de onzième majeure, minor 11 - accord de onzième mineure, thirteeth - treizième, major 13 - accord de treizième majeure ou whole-tone - gamme par tons).
--Pitch Algorithm: ** (uniforme, linéaire minimum, linéaire maximum, triangulaire, exponentiel minimum, exponentiel maximum, bi-exponentiel, Cauchy, Weibull, Gaussien, Poisson, Walker ou loopseg).
--Speed Algorithm: ** (uniforme, linéaire minimum, linéaire maximum, triangulaire, exponentiel minimum, exponentiel maximum, bi-exponentiel, Cauchy, Weibull, Gaussien, Poisson, Walker ou loopseg).
--Duration Algorithm: ** (uniforme, linéaire minimum, linéaire maximum, triangulaire, exponentiel minimum, exponentiel maximum, bi-exponentiel, Cauchy, Weibull, Gaussien, Poisson, Walker ou loopseg).
--Intensity Algorithm: ** (uniforme, linéaire minimum, linéaire maximum, triangulaire, exponentiel minimum, exponentiel maximum, bi-exponentiel, Cauchy, Weibull, Gaussien, Poisson, Walker ou loopseg).
--Max Num of Grains: Nombre maximum de grains pulsar pour la synthèse (5, 10, 15, 20, 25, 30, 40, 50 ou 60).
-
-Paramètres du graphique:
--Overall Amplitude: Définit l'enveloppe d'amplitude appliquée au son sur sa durée totale en secondes.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre10_F/10.4-StochGrains2_F.txt b/doc/chapitres/Chapitre10_F/10.4-StochGrains2_F.txt
deleted file mode 100644
index f887290..0000000
--- a/doc/chapitres/Chapitre10_F/10.4-StochGrains2_F.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-StochGrains2 est un module de synthèse granulaire. **à vérifier et compléter.**
-
-Potentiomètres:
--Pitch Offset:
--Pitch Range:
--Speed Range:
--Duration Range:
--Sample Start Range:
--Intensity Range:
--Pan Range:
--Density:
--Global seed:
-
-Paramètres fixes:
--Pitch Scaling: Échelle de notes ou accord sur lequel/laquelle est basé l'accord des voix (All-over - toutes les notes, serial - sériel, major - majeur, minor - mineur, seventh - septième, major 7 - accord de septième majeure, minor 7 - accord de septième mineure, minor 7 b5 - accord de septième mineure avec quinte diminuée, diminished - accord diminuéz,z diminished 7 - accord de septième diminuée, ninth - neuvième, major 9 - accord de neuvième majeure, minor 9 - accord de neuvième mineure, eleventh - onzième, major 11 - accord de onzième majeure, minor 11 - accord de onzième mineure, thirteeth - treizième, major 13 - accord de treizième majeure ou whole-tone - gamme par tons).
--Pitch Algorithm: ** (uniforme, linéaire minimum, linéaire maximum, triangulaire, exponentiel minimum, exponentiel maximum, bi-exponentiel, Cauchy, Weibull, Gaussien, Poisson, Walker ou loopseg).
--Speed Algorithm: ** (uniforme, linéaire minimum, linéaire maximum, triangulaire, exponentiel minimum, exponentiel maximum, bi-exponentiel, Cauchy, Weibull, Gaussien, Poisson, Walker ou loopseg).
--Duration Algorithm: ** (uniforme, linéaire minimum, linéaire maximum, triangulaire, exponentiel minimum, exponentiel maximum, bi-exponentiel, Cauchy, Weibull, Gaussien, Poisson, Walker ou loopseg).
--Intensity Algorithm: ** (uniforme, linéaire minimum, linéaire maximum, triangulaire, exponentiel minimum, exponentiel maximum, bi-exponentiel, Cauchy, Weibull, Gaussien, Poisson, Walker ou loopseg).
--Max Num of Grains: Nombre maximum de grains pulsar pour la synthèse (5, 10, 15, 20, 25, 30, 40, 50 ou 60).
-
-Paramètres du graphique:
--Overall Amplitude: Définit l'enveloppe d'amplitude appliquée au son sur sa durée totale en secondes.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre11_A/11.1-4Delays_A.txt b/doc/chapitres/Chapitre11_A/11.1-4Delays_A.txt
deleted file mode 100644
index 75de37e..0000000
--- a/doc/chapitres/Chapitre11_A/11.1-4Delays_A.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-Waveterrain synthesis module based on two stereo delays with parallel or serial routing.
-
-Sliders under the graph:
--Delay 1 Right: Delay time of the right portion of the first delay.
--Delay 1 Left: Delay time of the left portion of the first delay.
--Delay 1 Feedback: Amount of the delayed signal fed back into the first delay.
--Delay 1 Mix: Gain of the first delayed signal.
--Delay 2 Right: Delay time of the right portion of the second delay.
--Delay 2 Left: Delay time of the left portion of the second delay.
--Delay 2 Feedback: Amount of the delayed signal fed back into the second delay.
--Delay 2 Mix: Gain of the second delayed signal.
--Jitter Amp: Amplitude of the jitter applied on the signal.
--Jitter Speed: Frequency of the jitter applied on the signal.
--Filter Freq: Center or cut-off frequency of the filter.
--Filter Q: Q factor of the filter.
--Dry/Wet: Mix between the original signal and the processed signals.
-
-Dropdown menus and toggles:
--Delay Routing: Type of delay routing (serial or parallel).
--Filter Type: Type of the filter (lowpass, highpass, bandpass or bandstop).
--Filter Routing: Determines if the filter is applied before or after the signal processing (pre or post).
--Balance: Adjust the signal amplitude by comparing it with a sinusoidal wave with a fixed amplitude (see "compress") or with the amplitude of the source (see "source").
--# of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
--Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-
-Graph only parameters:
--Overall Amplitude: The amplitude curve applied on the total duration of the performance.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre11_A/11.2-BeatMaker_A.txt b/doc/chapitres/Chapitre11_A/11.2-BeatMaker_A.txt
deleted file mode 100644
index c92a3a7..0000000
--- a/doc/chapitres/Chapitre11_A/11.2-BeatMaker_A.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-Algorithmic beatmaker module.
-
-Sliders under the graph:
--# of Taps: Number of taps in each bar.
--Tempo: Speed of taps (in bpm).
--Beat Tap Length: Length of taps (in seconds - for beats one to four).
--Beat Index: Input soundfile index for each beat (from 0 to 1 - for beats one to four).
--Beat Gain: Gain (in decibels) of the beat (for beats one to four).
--Beat Distribution: Repartition of taps for each beat (from 100% weak to 100% down - for beats one to four).
--Global seed: Seed value for the algorithmic beats, using the same seed with the same distribution will yield the exact same beats.
-
-Dropdown menus and toggles:
--# of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
--Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-
-Graph only parameters:
--Beat 1 ADSR: Amplitude envelope of taps for the first beat in breakpoint fashion.
--Beat 2 ADSR: Amplitude envelope of taps for the second beat in breakpoint fashion.
--Beat 3 ADSR: Amplitude envelope of taps for the third beat in breakpoint fashion.
--Beat 4 ADSR: Amplitude envelope of taps for the fourth beat in breakpoint fashion.
--Overall Amplitude: The amplitude curve applied on the total duration of the performance.
diff --git a/doc/chapitres/Chapitre11_A/11.3-DelayMod_A.txt b/doc/chapitres/Chapitre11_A/11.3-DelayMod_A.txt
deleted file mode 100644
index 7ad0bd4..0000000
--- a/doc/chapitres/Chapitre11_A/11.3-DelayMod_A.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Stereo delay module with jitter control.
-
-Sliders under the graph:
--Delay Left: Delay time of the first delay (in seconds).
--Delay Right: Delay time of the second delay (in seconds).
--AmpModDepth L: Range of the amplitude jitter for the first delay.
--AmpModDepth R: Range of the amplitude jitter for the second delay.
--AmpModFreq L: Speed of the amplitude jitter for the first delay.
--AmpModFreq R: Speed of the amplitude jitter for the second delay.
--DelModDepth L: Range of the delay time jitter for the first delay.
--DelModDepth R: Range of the delay time jitter for the second delay.
--DelModFreq L: Speed of the delay time jitter for the first delay.
--DelModFreq R: Speed of the delay time jitter for the second delay.
--Feedback: Amount of delayed signal fed back into the delay chain.
--Dry/Wet: Mix between the original signal and the delayed signals.
-
-Dropdown menus and toggles:
--# of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
--Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-
-Graph only parameters:
--Overall Amplitude: The amplitude curve applied on the total duration of the performance.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre11_A/11.4-Granulator_A.txt b/doc/chapitres/Chapitre11_A/11.4-Granulator_A.txt
deleted file mode 100644
index 8e10caa..0000000
--- a/doc/chapitres/Chapitre11_A/11.4-Granulator_A.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-Granulation module.
-
-Sliders under the graph:
--Transpose: Base pitch of the grains compared to the original signal (in cents).
--Grain Position: Input soundfile index for the beginning of the grains.
--Position Random: Jitter applied on the soundfile index.
--Pitch Random: Jitter applied on the pitch of the grains using a discreet transposition list (see below).
--Filter Freq: Center or cut-off frequency of the filter.
--Filter Q: Q factor of the filter.
--Grain Duration: Length of the grains (in seconds).
--# of Grains: Number of grains.
-
-Dropdown menus and toggles:
--Filter Type: Type of the filter (lowpass, highpass, bandpass or bandstop).
--Balance: Adjust the signal amplitude by comparing it with a sinusoidal wave with a fixed amplitude (see "compress") or with the amplitude of the source (see "source").
--Discreet Transpo: Click in the box to enter a list of discreet values for transposition (see "Pitch Random" above).
--# of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
--Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-
-Graph only parameters:
--Overall Amplitude: The amplitude curve applied on the total duration of the performance.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre11_F/11.1-4Delays_F.txt b/doc/chapitres/Chapitre11_F/11.1-4Delays_F.txt
deleted file mode 100644
index 765d8cb..0000000
--- a/doc/chapitres/Chapitre11_F/11.1-4Delays_F.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-4Delays est un module de synthèse "waveterrain", basé sur deux délais appliqués respectivement en stéréo, avec option d'aiguillage parallèle ou en série.
-
-Potentiomètres:
--Delay 1 Right: Temps de délai de la portion droite du premier délai.
--Delay 1 Left: Temps de délai de la portion gauche du premier délai.
--Delay 1 Feedback: Niveau de réinjection du signal dans le premier délai.
--Delay 1 Mix: Niveau d'intensité du premier signal délayé.
--Delay 2 Right: Temps de délai de la portion droite du second délai.
--Delay 2 Left: Temps de délai de la portion gauche du second délai.
--Delay 2 Feedback: Niveau de réinjection du signal dans le second délai.à
--Delay 2 Mix: Niveau d'intensité du second signal délayé.
--Jitter Amp: Amplitude de la variation aléatoire (jitter) appliquée au signal.
--Jitter Speed: Fréquence de la variation aléatoire (jitter) appliquée au signal.
--Filter Freq: Fréquence centrale ou fréquence de coupure du filtre.
--Filter Q: Facteur Q du filtre.
--Dry/Wet: Rapport de niveau entre le son original et le son traité par le module.
-
-Paramètres fixes:
--Delay Routing: Type d'aiguillage des délais (en série ou parallèle).
--Filter Type: Type de filtre utilisé (lowpass - passe-bas, highpass - passe-haut, bandpass - passe-bande ou bandstop - réjecteur de bande).
--Filter Routing: Détermine si le filtrage est effectué avant ou après le traitement du signal par les délais (pre ou post).à
--Balance: Ajuste l'amplitude du son traité en la comparant avec celle d'une onde sinusoïdale à amplitude fixe (compress) ou celle de la source (source).
--# of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
--Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-
-Paramètres du graphique:
--Overall Amplitude: Définit l'enveloppe d'amplitude appliquée au son sur sa durée totale en secondes.
diff --git a/doc/chapitres/Chapitre11_F/11.2-BeatMaker_F.txt b/doc/chapitres/Chapitre11_F/11.2-BeatMaker_F.txt
deleted file mode 100644
index 421e5bf..0000000
--- a/doc/chapitres/Chapitre11_F/11.2-BeatMaker_F.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-BeatMaker est un module permettant de créer des rythmes complexes à partir d'algorithmes.
-
-Potentiomètres:
--# of Taps: Nombre de temps par mesure.
--Tempo: Vitesse de métronome (en bpm).
--Beat Tap Length: Longueur des figures rythmiques (en secondes, pour les figures rythmiques 1 à 4 - beat 1,2,3 et 4).
--Beat Index: Position dans le fichier son d'origine à partir de laquelle chaque son rythmique est créé (sur une échelle allant de 0 à 1 - pour les figures rythmiques 1 à 4 - beat 1,2,3 et 4).
--Beat Gain: Niveau d'intensité (en décibels) de chaque temps (pour les figures rythmiques 1 à 4 - beat 1,2,3 et 4).
--Beat Distribution: Répartition aléatoire des figures rythmiques 1 à 4 - beat 1,2,3 et 4.
--Global seed: Valeur de base pour la génération algorithmique des figures rythmiques; une même base avec les mêmes distributions reproduira exactement un même résultat.
-
-Paramètres fixes:
--# of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
--Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-
-Paramètres du graphique:
--Beat 1 ADSR: Enveloppe d'amplitude des "notes" pour la première figure rythmique, dessinée à l'aide de points.
--Beat 2 ADSR: Enveloppe d'amplitude des "notes" pour la deuxième figure rythmique, dessinée à l'aide de points.
--Beat 3 ADSR: Enveloppe d'amplitude des "notes" pour la troisième figure rythmique, dessinée à l'aide de points.
--Beat 4 ADSR: Enveloppe d'amplitude des "notes" pour la quatrième figure rythmique, dessinée à l'aide de points.
--Overall Amplitude: Définit l'enveloppe d'amplitude appliquée au son sur sa durée totale en secondes.
diff --git a/doc/chapitres/Chapitre11_F/11.3-DelayMod_F.txt b/doc/chapitres/Chapitre11_F/11.3-DelayMod_F.txt
deleted file mode 100644
index 9235cd2..0000000
--- a/doc/chapitres/Chapitre11_F/11.3-DelayMod_F.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-DelayMod est un module de délai appliqué en stéréo avec un contrôle de variation aléatoire (jitter).
-
-Potentiomètres:
--Delay Left: Temps de délai du premier délai (gauche - en secondes).
--Delay Right: Temps de délai du second délai (droit - en secondes).
--AmpModDepth L: Amplitude de la variation aléatoire (jitter) appliquée à l'amplitude du premier délai.
--AmpModDepth R: Amplitude de la variation aléatoire (jitter) appliquée à l'amplitude du second délai.
--AmpModFreq L: Fréquence de la variation aléatoire (jitter) appliquée à l'amplitude du premier délai.
--AmpModFreq R: Fréquence de la variation aléatoire (jitter) appliquée à l'amplitude du second délai.
--DelModDepth L: Amplitude de la variation aléatoire (jitter) appliquée au temps de délai du premier délai.
--DelModDepth R: Amplitude de la variation aléatoire (jitter) appliquée au temps de délai du second délai.
--DelModFreq L: Fréquence de la variation aléatoire (jitter) appliquée au temps de délai du premier délai.
--DelModFreq R: Fréquence de la variation aléatoire (jitter) appliquée au temps de délai du second délai.
--Feedback: Niveau de réinjection du signal dans le module.
--Dry/Wet: Rapport de niveau entre le son original et le son traité par le module.
-
-Paramètres fixes:
--# of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
--Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-
-Paramètres du graphique:
--Overall Amplitude: Définit l'enveloppe d'amplitude appliquée au son sur sa durée totale en secondes.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre11_F/11.4-Granulator_F.txt b/doc/chapitres/Chapitre11_F/11.4-Granulator_F.txt
deleted file mode 100644
index 0204968..0000000
--- a/doc/chapitres/Chapitre11_F/11.4-Granulator_F.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-Granulator est un module de granulation.
-
-Potentiomètres:
--Transpose: Hauteur (en cents) de base des grains en comparaison au signal original.
--Grain Position: Position dans le fichier son d'origine d'où l'échantillon sonore du grain est tiré.
--Position Random: Variation aléatoire appliquée au paramètre précédent.
--Pitch Random: Variation aléatoire appliquée à la hauteur du son des grains, utilisant une liste de transposition discrète (voir plus bas).
--Filter Freq: Fréquence centrale ou fréquence de coupure du filtre.
--Filter Q: Facteur Q (largeur de bande) du filtre.
--Grain Duration: Longueur (en secondes) des grains.
--# of Grains: Nombre de grains utilisés.
-
-Paramètres fixes:
--Filter Type: Type de filtre utilisé (lowpass - passe-bas, highpass - passe-haut, bandpass - passe-bande ou bandstop - réjecteur de bande).
--Balance: Ajuste l'amplitude du son traité en la comparant avec celle d'une onde sinusoïdale à amplitude fixe (compress) ou celle de la source (source).
--Discreet Transpo: Cliquez dans l'espace désigné pour entrer une liste de valeurs discrètes pour la transposition (voir "Pitch Random", plus haut).
--# of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
--Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-
-Paramètres du graphique:
--Overall Amplitude: Définit l'enveloppe d'amplitude appliquée au son sur sa durée totale en secondes.
diff --git a/doc/chapitres/Chapitre1_A/Description_A.txt b/doc/chapitres/Chapitre1_A/Description_A.txt
deleted file mode 100644
index c96b56d..0000000
--- a/doc/chapitres/Chapitre1_A/Description_A.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Cecilia is an audio signal processing environment. Cecilia lets you create your own GUI (grapher, sliders, toggles, popup menus) using a simple syntax. Cecilia comes with many original built-in modules for sound effects and synthesis.
-
-Previously written in tcl/tk, Cecilia (version 4, deprecated) used the Csound API for communicating between the interface and the audio engine. Version 4.2 is the final release of version 4.
-
-Cecilia5 has been now entirely rewritten in Python/wxPython and uses Pyo, an audio engine written in C and created for the Python programming language. Pyo allows a much more powerful integration of the audio engine to the graphical interface. Since it is a standard python module, there is no need to use an API to communicate with the interface.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre1_A/Requirements_A.txt b/doc/chapitres/Chapitre1_A/Requirements_A.txt
deleted file mode 100644
index a215824..0000000
--- a/doc/chapitres/Chapitre1_A/Requirements_A.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Cecilia5 is compatible with the following systems:
-\begin{itemize}
-\item Mac OS X (10.5, 10.6 or 10.7) 
-\item Windows (XP, Vista or Seven)
-\item Linux (In this case, you should install Pyo (a python library for audio signal processing) from the source code first; then you will be able to install Cecilia5.  For the complete procedure, follow this link: http://code.google.com/p/pyo/wiki/Installation )
-\end{itemize}
-Minimum versions (for running Cecilia5 from sources):
-
-Before installing and using Cecilia5 (especially if you do it from the source code), please check if all these elements are installed on your computer:
-\begin{itemize}
-\item Python 2.6 ou 2.7 (http://www.python.org/getit/releases/2.6/ or http://www.python.org/getit/releases/2.7/)
-\item Pyo 0.6.2 (or compiled with sources up-to-date - http://code.google.com/p/pyo/downloads/list)
-\item Numpy 1.6.0 (http://sourceforge.net/projects/numpy/files/NumPy/1.6.0/)
-\item WxPython 2.8.12.1 (http://wxpython.org/download.php) \end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre1_F/Description_F.txt b/doc/chapitres/Chapitre1_F/Description_F.txt
deleted file mode 100644
index 349a4f1..0000000
--- a/doc/chapitres/Chapitre1_F/Description_F.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Cecilia est un logiciel libre proposant plusieurs modules destinés à la synthèse sonore et au traitement du signal audio. Il permet à l'utilisateur de créer sa propre interface graphique (potentiomètres, boutons, menus et graphique central) grâce à l'utilisation d'une syntaxe simple.  
-
-À l'origine écrit en tcl/tk (version 3) et conçu pour tirer profit des possibilités offertes par l'environnement CSound, Cecilia utilisait l'API de CSound comme intermédiaire entre l'interface graphique et l'engin audio.  La version 4.2 est la dernière mise à jour de la version 4.
-
-Cecilia a été entièrement réécrit en Python/wxPython et fonctionne maintenant avec Pyo, un module Python écrit en C et créé pour le langage de programmation Python.  Pyo est beaucoup plus performant que CSound du point de vue de l'intégration de l'engin audio à l'interface graphique.  Comme il s'agit d'un module Python standard, aucun API n'est nécessaire pour communiquer avec l'interface.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre1_F/Requirements_F.txt b/doc/chapitres/Chapitre1_F/Requirements_F.txt
deleted file mode 100644
index 3a14a23..0000000
--- a/doc/chapitres/Chapitre1_F/Requirements_F.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Cecilia5 est compatible avec les systèmes suivants:
-\begin{itemize} 
-\item Mac OS X (10.5, 10.6 ou 10.7) 
-\item Windows (XP, Vista ou Seven)
-\item Linux (Il sera alors nécessaire d'installer d'abord la librairie Pyo à partir du code source; on pourra ensuite installer Cecilia5. Pour la procédure complète, suivez ce lien: http://code.google.com/p/pyo/wiki/Installation )
-\end{itemize}
-
-Avant d'installer et d'utiliser Cecilia5 (spécialement si vous le faites à partir des sources), veuillez vous assurer que tous les éléments suivants sont installés sur votre ordinateur:
-\begin{itemize}
-\item Python 2.6 ou 2.7 (http://www.python.org/getit/releases/2.6/ ou http://www.python.org/getit/releases/2.7/)
-\item Pyo 0.6.2 (ou compilé à partir des sources mises à jour - http://code.google.com/p/pyo/downloads/list)
-\item Numpy 1.6.0 (http://sourceforge.net/projects/numpy/files/NumPy/1.6.0/)
-\item WxPython 2.8.12.1 (http://wxpython.org/download.php) \end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_A/1-Presentation_A.txt b/doc/chapitres/Chapitre2_A/1-Presentation_A.txt
deleted file mode 100644
index bf8a6fb..0000000
--- a/doc/chapitres/Chapitre2_A/1-Presentation_A.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-In Cecilia5, all built-in modules come with a graphical interface, which is divided in different sections, common to all treatment and synthesis modules of the software: the transports bar, the In/Out, Pre-processing and Post-Processing tabs, the presets section, the graphic and the sliders that control the parameters of the module. All these sections will be described in this chapter.
-
-***image 1-Interface-graphique.png***
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_A/2-Transports_A.txt b/doc/chapitres/Chapitre2_A/2-Transports_A.txt
deleted file mode 100644
index f22312d..0000000
--- a/doc/chapitres/Chapitre2_A/2-Transports_A.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-The transport section contains a window that indicates the current time of playback of the output sound file and two buttons: "Play/stop" and "Record".
-**Image 2-Transport.png**
-
--"Play/stop" button **image 2a-play.png**: Press to launch playback of the output sound file.  Click again to stop.
-
--"Record" button **image 2b-record.png**: Press to record output to a file.  No sound will be heard.  A "Save audio file as ..." dialog window will appear. By default, all sound files will be recorded in AIFF format and will be named by the name of the module (with the extension .aif).
-**image 3-SaveAudioFileAs.png**
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_A/3-In-Out_A/3-InOut_A.txt b/doc/chapitres/Chapitre2_A/3-In-Out_A/3-InOut_A.txt
deleted file mode 100644
index 6d38a08..0000000
--- a/doc/chapitres/Chapitre2_A/3-In-Out_A/3-InOut_A.txt
+++ /dev/null
@@ -1 +0,0 @@
-The In/Out tab, which is situated below the transports bar, features different control options related to the input/output sound files.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_A/3-In-Out_A/3.1-Input_A.txt b/doc/chapitres/Chapitre2_A/3-In-Out_A/3.1-Input_A.txt
deleted file mode 100644
index 56ee6cf..0000000
--- a/doc/chapitres/Chapitre2_A/3-In-Out_A/3.1-Input_A.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-**image 4-Input.png**
-This section is only provided with the treatment modules. To import an audio file from hard drive, click on the "Audio" bar. Only WAV and AIFF files will be accepted by the module.
-
-In the Input section, these icons are shortcuts to some features of Cecilia5:
-**image 3.1-Icones-In.png**
-
-Click on the loudspeaker **image 1-Haut-parleur.png** to listen to the imported sound file or to the output sound file with another sound player or sequencer application. If no application has been selected in the Preferences yet, a dialog window ***image*** will appear.  Please select a sound player in the Application folder.
-***image 1.1-ChooseSoundfilePlayer.png***
-
-Click on the scissors **image 2-Ciseaux.png** to edit the sound file in an editor application. If no application has been selected in the Preferences yet, a dialog window will appear.  Please select a sound editor in the Application folder. 
-**image 2.1-ChooseSoundfileEditor.png**
-
-Click on the triangle **image 5-Triangle.png** to open the "Sound source controls" dialog window for more options on the source sound file:
-**image 6-SourceSoundControls.png**
-
-In this window, as in the main Input section, click on the loudspeaker to play the source sound file or on the scissors to edit the source sound file with an external application. Click on the icon clock to set the duration of the output sound to the source sound duration.
-**image 3.3-Icones-SSC.png**
-
-The "Audio Offset" slider sets the offset time into the source sound (start position in the source sound file).  In the "Loop" menu, there are four options available: Off (no loop), Forward (forward loop), Backward (backward loop) and Back & Forth (forward and backward loop in alternance).
-
-If the "Start from loop" box is checked, Cecilia will start reading the sound file from the loop point.  If the "Xfade" box is checked, Cecilia will make a crossfade between loops.
-
-The "Loop In" slider sets the start position of the loop in the source soundfile.
-
-The "Loop Time" slider sets the duration (in seconds) of the loop.
-
-The "Loop X" slider sets the duration of the crossfade between two loops (percentage of the total loop time).
-
-The "Gain" slider sets the intensity (in decibels) of the sound source.
-
-Move the "Transpo" slider to transpose (direct transposition) the original sound file.  The duration of the sound file is affected by the transposition, as while reading a tape at different speeds.
-
-All settings can be controlled through automations.  To record an automation, click on the red circle on the left side of the slider and press play (on the transport bar) to read the sound file.  All slider variations will then be recorded in real time in the graphic of the interface.  Afterwards, you can modify the automation curve in the graphic (see the corresponding following section).  Then, click on the green triangle to enable automation while playing the sound file.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_A/3-In-Out_A/3.2-Output_A.txt b/doc/chapitres/Chapitre2_A/3-In-Out_A/3.2-Output_A.txt
deleted file mode 100644
index b3faf98..0000000
--- a/doc/chapitres/Chapitre2_A/3-In-Out_A/3.2-Output_A.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-**image 5-Output.png**
-This section contains all options for recording the audio file on hard drive. Click on the "file name" bar to choose the name, format and repertory of the audio file to record.
-Then, two sliders allows you to choose the duration (in seconds) and the gain (in decibels) of the output file.  Enter the number of audio channels in the "Channels" bar.  The "Peak" bar indicates the maximum intensity of the audio signal.
-
-In the Input section, these icons are shortcuts to some features of Cecilia5:
-**image 3.2-Icones-Out.png**
-
-In the Output section, as in the Input section, click on the loudspeaker to play the source sound file or on the scissors to edit the source sound file with an external application (see above). Click on the arrows **image 3-Fleches.png** to use the output sound file as the source sound.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5-Post-processing_A.txt b/doc/chapitres/Chapitre2_A/5-Post-processing_A/5-Post-processing_A.txt
deleted file mode 100644
index f638348..0000000
--- a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5-Post-processing_A.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-The post-processing tab is situated below the transports bar, just beside the In/Out tab.
-**image 7-Post-processing.png**
-
-In this tab, you can add post-processing effects on the output audio file. It is possible to add up to 3 post-processing modules.  Signal routing is from top to bottom.  Set audio parameters with the buttons on the left side.  Computation must be restarted for the post-processing to take effects.
-
-Choose the post-processing module in the "Effects" menu. The "Type" menu allows you to alternate between active module and bypass or to make a choice between different options, depending of the module.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.1-Reverb_A.txt b/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.1-Reverb_A.txt
deleted file mode 100644
index e1e811d..0000000
--- a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.1-Reverb_A.txt
+++ /dev/null
@@ -1 +0,0 @@
-Reverberation module. Parameters: Mix (dry/wet mix), Time (reverberation time in seconds) and Damp (filtering of high frequencies). In the "Type" menu, you can choose between activate (active) and bypass the effect.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.10-Phaser_A.txt b/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.10-Phaser_A.txt
deleted file mode 100644
index 0c5d524..0000000
--- a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.10-Phaser_A.txt
+++ /dev/null
@@ -1 +0,0 @@
-Phasing effect based on all-pass filters that generates resonance peaks in the spectrum. Knobs: Freq (frequency of the first all-pass filter), Q (Q factor/filter resonance) and Spread (spread factor - exponential operator that determinates the frequency of all other all-pass filters). In the "Type" menu, you can choose between activate (active) and bypass the effect.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.11-Delay_A.txt b/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.11-Delay_A.txt
deleted file mode 100644
index 5cf7996..0000000
--- a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.11-Delay_A.txt
+++ /dev/null
@@ -1 +0,0 @@
-Delay module. Parameters: Delay (delay time, in milliseconds), Feed (feedback factor, between 0 and 1) and Mix (dry/wet mix). In the "Type" menu, you can choose between activate (active) and bypass the effect.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.12-Flange_A.txt b/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.12-Flange_A.txt
deleted file mode 100644
index 2656eaa..0000000
--- a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.12-Flange_A.txt
+++ /dev/null
@@ -1 +0,0 @@
-Flanger effect based on a delay. Parameters: Depth (amplitude of the LFO that modulates the delay. The modulation is set around a central time of 5 milliseconds; depth factor = amplitude of the modulation in milliseconds/5 milliseconds), Freq (frequency of the modulating LFO) and Feed (feedback factor - enhances the resonances in the spectrum). In the "Type" menu, you can choose between activate (active) and bypass the effect.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.13-Harmonizer_A.txt b/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.13-Harmonizer_A.txt
deleted file mode 100644
index 980ca44..0000000
--- a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.13-Harmonizer_A.txt
+++ /dev/null
@@ -1 +0,0 @@
-Transposition module.  Parameters: Transpo (transposition factor, in semi-tones), Feed (feedback factor) and Mix (dry/wet mix). In the "Type" menu, you can choose between activate (active) and bypass the effect.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.14-Resonators_A.txt b/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.14-Resonators_A.txt
deleted file mode 100644
index 46ab8f9..0000000
--- a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.14-Resonators_A.txt
+++ /dev/null
@@ -1 +0,0 @@
-Audio effect based on delays that generates harmonic resonances in the spectrum. Parameters: Freq (frequency of the first harmonic resonance), Spread (spread factor - exponential operator that determinates the frequency of all other harmonic resonances) and Mix (dry/wet mix). In the "Type" menu, you can choose between activate (active) and bypass the effect.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.15-DeadReson_A.txt b/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.15-DeadReson_A.txt
deleted file mode 100644
index a040b1b..0000000
--- a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.15-DeadReson_A.txt
+++ /dev/null
@@ -1 +0,0 @@
-Similar to the Resonators effect. In this case, the harmonic resonances are slightly detuned. Parameters: Freq (frequency of the first harmonic resonance), Detune (detune of the other harmonic resonances) and Mix (dry/wet mix). In the "Type" menu, you can choose between activate (active) and bypass the effect.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.2-Filter_A.txt b/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.2-Filter_A.txt
deleted file mode 100644
index 673952d..0000000
--- a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.2-Filter_A.txt
+++ /dev/null
@@ -1 +0,0 @@
-Filter module.  Parameters: Level (gain of the filtered signal, in decibels), Freq (cutoff frequency or central frequency of the filter) and Q (Q factor/filter resonance). In the "Type" menu, you can choose between four types of filters : lowpass, highpass, bandpass and band reject. You can also select "bypass" to bypass the effect.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.3-Chorus_A.txt b/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.3-Chorus_A.txt
deleted file mode 100644
index dca331f..0000000
--- a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.3-Chorus_A.txt
+++ /dev/null
@@ -1 +0,0 @@
-Chorus module. Parameters: Mix (dry/wet mix), Depth (amplitude of the modulation) and Feed (feedback factor). In the "Type" menu, you can choose between activate (active) and bypass the effect.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.4-ParaEQ_A.txt b/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.4-ParaEQ_A.txt
deleted file mode 100644
index 5feb36a..0000000
--- a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.4-ParaEQ_A.txt
+++ /dev/null
@@ -1 +0,0 @@
-Parametric equalizer. Parameters: Freq (cutoff frequency or central frequency of the filter), Q (Q factor/filter resonance) and Gain (intensity of the filtered signal, in decibels). In the "Type" menu, you can choose between three types of equalizers: Peak/Notch, Lowshelf and Highshelf. You can also select "bypass" to bypass the effect.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.5-3BandsEQ_A.txt b/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.5-3BandsEQ_A.txt
deleted file mode 100644
index 9c3766e..0000000
--- a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.5-3BandsEQ_A.txt
+++ /dev/null
@@ -1 +0,0 @@
-Equalizer in three frequency bands. Parameters: Low (low-freq filtering), Mid (mid-freq filtering) and High (high-freq filtering). In the "Type" menu, you can choose between activate (active) and bypass the effect.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.6-Compress_A.txt b/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.6-Compress_A.txt
deleted file mode 100644
index d64d116..0000000
--- a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.6-Compress_A.txt
+++ /dev/null
@@ -1 +0,0 @@
-Compression module. Parameters: Thresh (compression threshold, in decibels), Ratio (compression ratio) and Gain (intensity of the compressed signal, in decibels). In the "Type" menu, you can choose between activate (active) and bypass the effect.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.7-Gate_A.txt b/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.7-Gate_A.txt
deleted file mode 100644
index a047546..0000000
--- a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.7-Gate_A.txt
+++ /dev/null
@@ -1 +0,0 @@
-Noise gate module. Parameters: Thresh (in decibels - threshold below which the sound is attenuated), Rise (rise time or attack, in seconds) and Fall (release time, in seconds). In the "Type" menu, you can choose between activate (active) and bypass the effect.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.8-Disto_A.txt b/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.8-Disto_A.txt
deleted file mode 100644
index 02b72bf..0000000
--- a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.8-Disto_A.txt
+++ /dev/null
@@ -1 +0,0 @@
-Distorsion module. Parameters: Drive (intensity of the distorsion; from 0 - no distorsion - to 1 - square transfert fonction), Slope (normalized cutoff frequency of the low-pass filter; from 0 - no filter - to 1 - very low cutoff frequency) and Gain (level of the distorted signal, in decibels). In the "Type" menu, you can choose between activate (active) and bypass the effect.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.9-AmpMod_A.txt b/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.9-AmpMod_A.txt
deleted file mode 100644
index 596c412..0000000
--- a/doc/chapitres/Chapitre2_A/5-Post-processing_A/5.9-AmpMod_A.txt
+++ /dev/null
@@ -1 +0,0 @@
-Amplitude modulator and ring modulator. Parameters: Freq (frequency of the modulating wave), Amp (amplitude of the modulating wave) and Stereo (phase difference between the two stereo channels; from 0 - no phase difference - and 1 - left and right channels are modulated in alternance through the phase offset of the modulator of the right channel). In the "Type" menu, you can choose between amplitude modulation (Amplitude) and ring modulation (RingMod) or bypass the effect.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_F/1-Presentation_F.txt b/doc/chapitres/Chapitre2_F/1-Presentation_F.txt
deleted file mode 100644
index d895e7d..0000000
--- a/doc/chapitres/Chapitre2_F/1-Presentation_F.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-L'interface graphique de Cecilia5 comporte plusieurs sections communes à tous les modules de synthèse et de traitement du logiciel: La barre des transports, les onglets In/Out (entrée et sortie), pre-processing (effets sonores avant traitement) et post-processing (effets sonores post-traitement), la section des préréglages (presets), le graphique et la section de réglages des paramètres du module. Les différentes sections de l'interface seront décrites dans ce chapitre.
-  
-
-***image 1-Interface-graphique.png***
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_F/2-Transports_F.txt b/doc/chapitres/Chapitre2_F/2-Transports_F.txt
deleted file mode 100644
index 18e1398..0000000
--- a/doc/chapitres/Chapitre2_F/2-Transports_F.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-La barre des transports comprend une fenêtre indiquant la position temporelle lors de la lecture du fichier son généré par le module, ainsi qu'un bouton "Play/stop" et un bouton "Record".
-**Image 2-Transport.png**
-
--Bouton "play/stop" **image 2a-play.png**: cliquez sur ce bouton pour lancer la lecture du fichier son généré à la sortie du module.  Pour arrêter la lecture, cliquez une autre fois sur le bouton.
-
--Bouton "record" **image 2b-record.png**: cliquez sur ce bouton pour enregistrer le fichier son généré à la sortie du module sur le disque dur.  Aucun son n'est entendu lors de l'enregistrement du fichier.
-Une fenêtre "Save audio file as ..." apparaîtra.  Par défaut, les fichiers son sont sauvegardés en format AIFF et portent le nom du module (avec l'extension .aif).
-**image 3-SaveAudioFileAs.png**
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_F/3-In-Out_F/3-InOut_F.txt b/doc/chapitres/Chapitre2_F/3-In-Out_F/3-InOut_F.txt
deleted file mode 100644
index ceb4a7d..0000000
--- a/doc/chapitres/Chapitre2_F/3-In-Out_F/3-InOut_F.txt
+++ /dev/null
@@ -1 +0,0 @@
-L'onglet In/Out, situé sous la barre des transports, permet la gestion des entrées et des sorties du logiciel.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_F/3-In-Out_F/3.1-Input_F.txt b/doc/chapitres/Chapitre2_F/3-In-Out_F/3.1-Input_F.txt
deleted file mode 100644
index 96dc5d6..0000000
--- a/doc/chapitres/Chapitre2_F/3-In-Out_F/3.1-Input_F.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-**image 4-Input.png**
-Cette section n'est présente que dans les modules de traitement. Cliquez sur la barre "Audio" pour importer un fichier son à partir du disque dur. Seuls les fichiers WAV et AIFF sont pris en charge par le logiciel.
-
-Les pictogrammes suivants offrent des raccourcis vers certaines fonctionnalités du logiciel:
-**image 3.1-Icones-In.png
-
-L'icône haut-parleur permet d'écouter le fichier son sélectionné en entrée ou le fichier son généré à la sortie du module à partir d'un autre logiciel au choix de l'utilisateur.  Si aucun logiciel n'a été sélectionné dans les préférences de Cecilia5, une fenêtre apparaîtra afin de vous permettre de sélectionner le logiciel de votre choix à partir du dossier Applications.
-***image 1.1-ChooseSoundfilePlayer.png*** 
-
-L'icône ciseaux permet d'éditer le fichier son à partir d'un éditeur de fichiers sons au choix de l'utilisateur. Si aucun logiciel n'a été sélectionné dans les préférences de Cecilia5, une fenêtre apparaîtra afin de vous permettre de sélectionner le logiciel de votre choix à partir du dossier Applications.
-***image 2.1-ChooseSoundfileEditor.png***
-
-L'icône triangle donne accès à une fenêtre d'options sur le fichier sélectionné comme source sonore (Sound source controls). 
-***Image 6-SourceSoundControls.png***
-
-Dans cette fenêtre, tout comme dans l'onglet principal In/Out, les icônes haut-parleur et ciseaux permettent respectivement d'écouter et d'éditer le fichier son d'origine.  Quant à lui, l'icône horloge règle la durée du fichier son généré en sortie sur celle du fichier son d'origine.
-**image 3.3-Icones-SSC.png**
-
-Le curseur "Audio Offset" permet de fixer la position de départ de lecture dans le fichier son sélectionné.  Dans le menu "Loop", on peut choisir parmi quatre options: Off (pas de lecture en boucle), Forward (lecture en boucle du début vers la fin), Backward (lecture en boucle de la fin vers le début) et Back & Forth (lecture en boucle dans les deux sens, en alternance).
-
-Si la case "Start from loop" est cochée, la lecture se fera à partir du point de répétition.  Si la case "Xfade" est cochée, le module effectuera un fondu enchaîné entre la fin d'une boucle et le début de la suivante.
-
-Le curseur "Loop In" permet de fixer la position de départ de la boucle dans le fichier son d'origine.
-
-Le curseur "Loop Time" permet de régler la durée (en secondes) de la boucle.
-
-Le curseur "Loop X" permet de régler la durée du fondu enchaîné entre deux boucles. La durée se règle en rapport avec la durée de la boucle (en pourcentage).
-
-Le curseur "Gain" permet de régler l'intensité sonore (en décibels) de la source sonore.
-
-Le curseur "Transpo" permet d'effectuer une transposition directe sur la source sonore.  La durée du fichier son est affectée par la transposition, comme lors d'une lecture de bande.
-
-Ces réglages sont automatisables.  Pour ce faire, cliquez sur le cercle rouge à gauche du curseur et déclenchez la lecture du son à partir de la barre des transports; les mouvements du curseur seront enregistrés en temps réel dans le graphique de l'interface. Il est ensuite possible de modifier le tracé de l'automatisation dans le graphique (voir la section correspondante).  Le triangle vert permet ensuite de rejouer l'automatisation à chaque nouvelle lecture du fichier son.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_F/3-In-Out_F/3.2-Output_F.txt b/doc/chapitres/Chapitre2_F/3-In-Out_F/3.2-Output_F.txt
deleted file mode 100644
index 01e9ddf..0000000
--- a/doc/chapitres/Chapitre2_F/3-In-Out_F/3.2-Output_F.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-**image 5-Output.png**
-Cette section contient les réglages pour l'enregistrement du son sur le disque dur.  En cliquant dans la barre "file name", on peut choisir le nom et le format du fichier son à enregistrer ainsi que le répertoire dans lequel on veut le placer.
-Ensuite, deux curseurs permettent de régler respectivement la longueur en secondes et le gain en décibels du fichier son.
-Finalement, la fenêtre "Channels" permet de choisir le nombre de canaux audio désiré, tandis que la fenêtre "Peak" indique l'intensité maximale du signal de sortie en décibels.
-
-
-Les pictogrammes suivants offrent des raccourcis vers certaines fonctionnalités du logiciel:
-**image 3.2-Icones-Out.png**
-Dans cette section, tout comme dans la section des entrées, les icônes haut-parleur et ciseaux permettent respectivement d'écouter et d'éditer le fichier son d'origine à partir d'une application externe (voir section précédente).  Quant à lui, l'icône flèches permet d'utiliser le fichier son généré à la sortie du module comme source sonore et ainsi, de le réinjecter dans le module de traitement.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5-Post-processing_F.txt b/doc/chapitres/Chapitre2_F/5-Post-processing_F/5-Post-processing_F.txt
deleted file mode 100644
index c0c1a87..0000000
--- a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5-Post-processing_F.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-L'onglet "Post-proc" (effets sonores post-traitement) est situé juste sous la barre des transports, à côté de l'onglet "In/Out".
-
-**image 7-Post-processing.png**
-
-Cette section permet d'ajouter des effets sonores supplémentaires sur le fichier son généré à la sortie du module.  On peut ajouter jusqu'à trois modules d'effets différents.  La chaîne de traitement va du haut vers le bas.  La gestion des paramètres du traitement se fait à partir des potentiomètres à gauche.  Il est nécessaire d'arrêter et de repartir la lecture du son afin que le module puisse prendre les ajouts de traitement en charge.
-
-Choisir l'effet sonore désiré à partir du menu "Effects"; le menu "Type" permet ensuite d'alterner entre l'activation et la désactivation de l'effet ou de choisir parmi plusieurs options, selon les cas.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.1-Reverb_F.txt b/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.1-Reverb_F.txt
deleted file mode 100644
index c8a0cda..0000000
--- a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.1-Reverb_F.txt
+++ /dev/null
@@ -1 +0,0 @@
-Module de réverbération.  Paramètres: Mix (dry/wet - rapport son direct/son réverbéré), Time (temps de réverbération en secondes) et Damp (filtrage des fréquences aiguës). Le menu "Type" permet de choisir entre l'activation (active) et la désactivation (bypass) de l'effet.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.10-Phaser_F.txt b/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.10-Phaser_F.txt
deleted file mode 100644
index c8ea5ea..0000000
--- a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.10-Phaser_F.txt
+++ /dev/null
@@ -1 +0,0 @@
-Effet de phasing basé sur l'utilisation de filtres passe-tout provoquant des pics de résonance. Paramètres: Freq (fréquence du premier filtre passe-tout), Q (facteur Q des filtres), Spread (facteur d'expansion des filtres - puissance à laquelle la fréquence du premier filtre passe-tout est élevée, déterminant la fréquence de chacun des autres filtres). Le menu "Type" permet de choisir entre l'activation (active) et la désactivation (bypass) de l'effet.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.11-Delay_F.txt b/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.11-Delay_F.txt
deleted file mode 100644
index e60b2ac..0000000
--- a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.11-Delay_F.txt
+++ /dev/null
@@ -1 +0,0 @@
-Module de délai.  Paramètres: Delay (durée du délai, en millisecondes), Feed (facteur de récursion ou feedback, entre 0 et 1), Mix (rapport son direct/son traité). Le menu "Type" permet de choisir entre l'activation (active) et la désactivation (bypass) de l'effet.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.12-Flange_F.txt b/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.12-Flange_F.txt
deleted file mode 100644
index 3befd63..0000000
--- a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.12-Flange_F.txt
+++ /dev/null
@@ -1 +0,0 @@
-Effet de flange. Paramètres: Depth (amplitude du LFO modulant la durée du délai à l'origine de l'effet. La modulation se fait autour d'un temps de délai central de 5 millisecondes; le facteur depth est le rapport amplitude en millisecondes de la modulation/5 millisecondes.), Freq (fréquence du LFO modulant la durée du délai) et Feed (facteur de récursion ou feedback; accentue la résonance des pics du spectre). Le menu "Type" permet de choisir entre l'activation (active) et la désactivation (bypass) de l'effet.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.13-Harmonizer_F.txt b/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.13-Harmonizer_F.txt
deleted file mode 100644
index 567b174..0000000
--- a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.13-Harmonizer_F.txt
+++ /dev/null
@@ -1 +0,0 @@
-Module de transposition. Paramètres: Transpo (facteur de transposition, en demi-tons), Feed (facteur de récursion ou feedback), Mix (rapport signal direct/signal traité). Le menu "Type" permet de choisir entre l'activation (active) et la désactivation (bypass) de l'effet.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.14-Resonators_F.txt b/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.14-Resonators_F.txt
deleted file mode 100644
index b602348..0000000
--- a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.14-Resonators_F.txt
+++ /dev/null
@@ -1 +0,0 @@
-Effet à base de délais causant des résonances harmoniques dans le spectre. Paramètres: Freq (fréquence de la première résonance harmonique), Spread (puissance à laquelle la fréquence de la première résonance est élevée, déterminant ainsi la fréquence des autres résonances), Mix (rapport son direct/son traité). Le menu "Type" permet de choisir entre l'activation (active) et la désactivation (bypass) de l'effet.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.15-DeadReson_F.txt b/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.15-DeadReson_F.txt
deleted file mode 100644
index 831c327..0000000
--- a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.15-DeadReson_F.txt
+++ /dev/null
@@ -1 +0,0 @@
-Fonctionne de manière similaire aux Resonators. Dans ce cas, les résonances harmoniques sont légèrement désaccordées. Paramètres: Freq (fréquence de la première résonance harmonique), Detune (désaccord plus ou moins accentué des résonances harmoniques), Mix (rapport son direct/son traité ). Le menu "Type" permet de choisir entre l'activation (active) et la désactivation (bypass) de l'effet.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.2-Filter_F.txt b/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.2-Filter_F.txt
deleted file mode 100644
index c1bc704..0000000
--- a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.2-Filter_F.txt
+++ /dev/null
@@ -1 +0,0 @@
-Module de filtrage.  Paramètres: Level (gain du signal filtré, en décibels), Freq (Fréquence de coupure ou fréquence centrale du filtre), Q (facteur Q du filtre; affecte la résonance du filtre).  Le menu "Type" permet de choisir entre plusieurs types de filtres: lowpass (filtre passe-bas), highpass (filtre passe-haut), bandpass (filtre passe-bande) et band reject (filtre réjecteur de bande).  L'option bypass permet de désactiver le filtre.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.3-Chorus_F.txt b/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.3-Chorus_F.txt
deleted file mode 100644
index 5d720f1..0000000
--- a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.3-Chorus_F.txt
+++ /dev/null
@@ -1 +0,0 @@
-Effet de chorus. Paramètres: Mix (dry/wet - rapport son direct/son traité), Depth (amplitude de la modulation) et Feed (feedback - facteur de récursion). Le menu "Type" permet de choisir entre l'activation (active) et la désactivation (bypass) de l'effet.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.4-ParaEQ_F.txt b/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.4-ParaEQ_F.txt
deleted file mode 100644
index 6437557..0000000
--- a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.4-ParaEQ_F.txt
+++ /dev/null
@@ -1 +0,0 @@
-Égalisateur paramétrique. Paramètres: Freq (Fréquence de coupure ou fréquence centrale du filtre), Q (facteur Q du filtre) et Gain (gain du signal filtré, en décibels).  Le menu "Type" permet de choisir entre plusieurs types d'égalisateurs: Peak/Notch (passe-bande/réjecteur de bande), Lowshelf (passe-bas/coupe-bas) et Highshelf (passe-haut/coupe-haut). L'option bypass permet de désactiver le filtre.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.5-3BandsEQ_F.txt b/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.5-3BandsEQ_F.txt
deleted file mode 100644
index 909bc8b..0000000
--- a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.5-3BandsEQ_F.txt
+++ /dev/null
@@ -1 +0,0 @@
-Égalisateur en trois bandes de fréquences. Paramètres: Low (niveau de filtrage des fréquences graves), Mid (niveau de filtrage des fréquences moyennes) et High (niveau de filtrage des hautes fréquences). Le menu "Type" permet de choisir entre l'activation (active) et la désactivation (bypass) du filtrage.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.6-Compress_F.txt b/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.6-Compress_F.txt
deleted file mode 100644
index 881b1c4..0000000
--- a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.6-Compress_F.txt
+++ /dev/null
@@ -1 +0,0 @@
-Module de compression. Paramètres: Thresh (seuil de compression, en décibels), Ratio (rapport de compression), Gain (gain sonore du signal compressé, en décibels). Le menu "Type" permet de choisir entre l'activation (active) et la désactivation (bypass) de l'effet.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.7-Gate_F.txt b/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.7-Gate_F.txt
deleted file mode 100644
index ac90a58..0000000
--- a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.7-Gate_F.txt
+++ /dev/null
@@ -1 +0,0 @@
-Noise gate (ou porte de bruit).  Paramètres: Thresh (seuil à partir duquel le son n'est plus atténué, en décibels), Rise (temps d'attaque, en secondes), Fall (temps de relâchement, en secondes). Le menu "Type" permet de choisir entre l'activation (active) et la désactivation (bypass) de l'effet.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.8-Disto_F.txt b/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.8-Disto_F.txt
deleted file mode 100644
index 32479e4..0000000
--- a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.8-Disto_F.txt
+++ /dev/null
@@ -1 +0,0 @@
-Module de distorsion.  Paramètres: Drive (intensité de la distorsion; de 0 - aucune distorsion à 1 - fonction de transfert carrée.), Slope (fréquence de coupure normalisée du filtre passe-bas; de 0 - aucun filtrage à 1 - fréquence de coupure très basse) et Gain (niveau du signal traité, en décibels). Le menu "Type" permet de choisir entre l'activation (active) et la désactivation (bypass) de l'effet.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.9-AmpMod_F.txt b/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.9-AmpMod_F.txt
deleted file mode 100644
index 75f2624..0000000
--- a/doc/chapitres/Chapitre2_F/5-Post-processing_F/5.9-AmpMod_F.txt
+++ /dev/null
@@ -1 +0,0 @@
-Modulation d'amplitude et modulation en anneaux.  Paramètres: Freq (fréquence de l'onde modulante), Amp (amplitude de l'onde modulante), Stereo (différence de phase entre les deux canaux stéréo; de 0 - les deux canaux sont traités également - à 1 - les canaux gauche et droit sont modulés en alternance grâce au déphasage du modulateur du canal de droite). Le menu "Type" permet de choisir entre la modulation d'amplitude (Amplitude), la modulation en anneaux (RingMod) et la désactivation (bypass) de l'effet.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre3_A/3.1-Preferences_A.txt b/doc/chapitres/Chapitre3_A/3.1-Preferences_A.txt
deleted file mode 100644
index 59892b2..0000000
--- a/doc/chapitres/Chapitre3_A/3.1-Preferences_A.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-The Preferences window is accessible by opening the Python menu, in the upper part of the screen:
-**image 1-Menu_preferences.png**
-
-\subsection
-In the "File" tab, the user can choose a sound file player (or audio sequencer - see "Soundfile Player"), a sound file editor (see "Soundfile editor") and a text editor (see "Text Editor") to be used with Cecilia5. To choose an application, enter the path of the application in the appropriate space or click on "set" button. A dialog window will then appear for choosing the application.
-
-The user can also enter a path in the "Preferred paths" box to save new modules (.c5 files) in a specific folder; Cecilia5 will then save these modules in the Files -> Modules menu.
-
-**image 2-Onglet_dossier.png**
-
-\subsection
-The "Speaker" tab offers different options related to the audio parameters of Cecilia5. The user can choose an audio driver (see "Audio Driver") and the input and output devices (see "Input Device" and "Output Device").
-The boxes "Sample Precision" and "Buffer Size" contains different values to set the sample precision in bits (32 or 64) and the buffer size in samples (64, 128, 256, 512, 1024 or 2048). The user can also choose the default number of audio channels (up to 36 - see "Default # of channels") and the sample rate (22 050, 44 100, 48 000, 88 200 or 96 000 Hertz - see "Sample Rate").
-**image 3-Onglet_haut-parleur.png**
-
-\subsection
-In the MIDI tab, the user can choose a MIDI driver (Port MIDI, for example - see "Midi Driver") and a MIDI controller for input (see "Input Device" - Warning! The MIDI controller should be already connected and detected by the computer to be detected by Cecilia5). For an automatic detection of your MIDI controller by Cecilia5, check the "Automatic Midi Bindings" box.
-**image 4-Onglet_MIDI.png**
-
-\subsection
-In the "Export" tab, the user can set the default file format (AIFF or WAV - see "File Format") and the bit depth (16, 24 or 32 bits integer, or 32 bits float) of the output sound files that will be exported to hard drive.
-**image 5-Onglet_export.png**
-
-\subsection
-The "Cecilia5" tab provides different settings:
-\begin{itemize}
-\item The default duration (10, 30, 60, 120, 300, 600, 1200, 2400 or 3600 seconds - see "Total time default (sec)" of the output sound file and its default fadein/fadeout duration (0, 0.001, 0.002, 0.003, 0.004, 0.005, 0.01, 0.015, 0.02, 0.025, 0.03, 0.05, 0.075, 0.1, 0.2, 0.3, 0.4 or 0.5 seconds - see "Global fadein/fadeout (sec)").
-\item Check the "Use tooltips" box to see the yellow information windows appear in the graphical interface during using Cecilia5.
-\item Check the "Use grapher texture" to obtain a precise grid on the graph.
-\item Check the "Verbose" box to obtain more information when you work with Cecilia5 from the terminal, which can be useful for debugging.
-\end{itemize}
-**image 6-Onglet_Cecilia5.png**
-
---> À ajouter si c'est implanté: "last saved" loade le dernier module à avoir été sauvegardé par l'utilisateur (?) 
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre3_A/3.2-Barre_menus_A.txt b/doc/chapitres/Chapitre3_A/3.2-Barre_menus_A.txt
deleted file mode 100644
index 5eee025..0000000
--- a/doc/chapitres/Chapitre3_A/3.2-Barre_menus_A.txt
+++ /dev/null
@@ -1,62 +0,0 @@
-This is a short description of the menus that the user will find in the upper part of the screen.
-
-\subsection
-The "Python" menu gives access to the Preferences window. There are also commands to hide the graphical interface (see "Hide Python") or the other applications (see "Hide Others"); the user can also quit Cecilia5 (see "Quit Python").
-**image 7-Menu_python.png** --> image à remplacer pcq version 5.0.7 beta?
-
-\subsection
-The "File" menu gives access to the following commands:
-\begin{itemize}
-\item Open: Opens a Cecilia5 file (with the extension .c5) saved by the user.
-\item Open Random: Chooses a random Cecilia5 module and opens it.
-\items Modules: In this menu, the user can choose a Cecilia5 module. The modules fall in eight categories. For more information on modules, please see chapters 4 to 11.
-**image 8b-ModulesCategories.png**
-\item Open Recent: Opens a Cecilia5 file which has been recently modified and saved by the user.
-\item Save and Save as: Saves the module on which the user is currently working. The saved file will be in Cecilia5 (.c5) format.
-\intem Module as Text: Opens a text file that contains the source code of the module, for more information on it or if the user wishes to modify it. (For more information on modifications on those files, please see chapter 12.) If no text editor has been selected in the Preferences yet, a dialog window will appear to let the user choose one.
-**image 9-ChooseTextEditor.png**
-\item Reload module: Reloads the module from the source code. The user should execute this command if the module source code has been modified.
-**image 8-Menu_file.png** \end{itemize}
-
-\subsection
-The "Edit" menu gives access to the Undo, Redo, Copy and Paste commands. These commands will only have an effect on the graph and are not related to the other parameters of the module.  Check the "Remember input sound" if you wish that Cecilia5 remembers the input sound you chose for each new module opening.
-**image 10-Menu_edit.png**
-
-\subsection
-In the "Action" menu, the commands "Play/Stop" and "Bounce to Disk" are equivalent to the "Play" and "Record" buttons of the transport bar.
-**image 11-Menu_Action.png**
-The command "Batch Processing on Sound Folder" applies the module's current settings to all sound files present in the folder that contains the input sound file.  The command "Batch Processing on Preset Sequence" applies all saved presets of the module to the chosen input sound file.  These two commands processes more than one sound file at a time. Before executing one of these commands, Cecilia5 will ask the user to enter a suffix to identify the new created sound files.
-**image 12-ChooseFilenameSuffix.png**
-The "Use MIDI" indicates if Cecilia5 has already found a MIDI device.
-
-
-\subsection
-In the "Window" menu, the user can minimize the graphical interface window (see "Minimize"), zoom in this window (see "Zoom" - click once to zoom in and twice to zoom out) and bring all Cecilia5 windows to fromt (see "Bring All to Front").  The command "Eh Oh Mario!" changes a little something in the graphical interface that could make the user smile. The command "interface - nameofthemodule.c5" is part of the system's properties that makes all open windows of the application available to the user.
-**image 13-Menu_Window.png**
-
-\subsection
-In the "Help" menu, the user can search for a command in the different menus; please enter a key word in the search box.  Click on "Show module info" to access a short description of the module that is currently used.  Click on "Show API Documentation" to access the documentation related to Cecilia5's programming interface.  This documentation contains all classes and methods declarations and information on all menus and commands related to the currently used module. For more information on Cecilia5's API, please see chapter 12.
-**image 14-Menu_Help.png**
-
-\subsection
-List of shortcuts:
-\begin{itemize}
-\item cmd-h: Hide Cecilia5' window
-\item alt-cmd-h: Hide the other applications' windows
-\item cmd-o: Open a Cecilia5 file
-\item shift-cmd-o: Open a random Cecilia5 file
-\item cmd s: Save the current file
-\item shift-cmd-s: Save the current file as...
-\item cmd-e: Open the text file that contains the source code of the module
-\item cmd-r: Reload module with all saved modifications in the source code
-\item cmd-c: Copy (graph only)
-\item cmd-v: Paste (graph only)
-\item cmd-z: Undo (graph only)
-\item shift-cmd-z: Redo (graph only)
-\item cmd-.: Play/Stop
-\item cmd-b: Bounce to disk ("Record" button)
-\item cmd-m: Minimize window
-\item shift-cmd-e: Eh Oh Mario!
-\item cmd-i: Open module documentation
-\item cmd-d: Open API Documentation
-\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre3_A/3.3-MIDI_OSC_A.txt b/doc/chapitres/Chapitre3_A/3.3-MIDI_OSC_A.txt
deleted file mode 100644
index d832923..0000000
--- a/doc/chapitres/Chapitre3_A/3.3-MIDI_OSC_A.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-\subsection
-MIDI
-It is possible to use a MIDI controller to have a finer control on sliders and knobs related to the different parameters in Cecilia5.  To use a MIDI controller, please connect it to your system before and be sure that it has been detected by your computer.
-
-Check the "Automatic Midi Bindings" in the Preferences (menu "Python") to have your controller be automatically detected by Cecilia5. Some parameters will be assigned by default to a controller. For example, the controller 7 will often be assigned to the gain control (in decibels) of the output sound file (see the corresponding slider in the "Output" section).
-
-However, most parameters will have to be assigned to a controller with the MIDI learn function. The "rangeslider" parameters will have to be assigned to two different controllers, for the minimum and maximum values.
-
-To link a parameter to a MIDI controller with the MIDI learn function, right-click on the parameter you want to control and move the knob or slider of the MIDI controller to enable the connection.  Then, the controller number should be written in the slider of Cecilia5's graphical interface.  To disable the connection, press "shift" and right-click on the parameter.
-
-\subsection
-OSC
-It is also possible to control the parameters with the Open Sound Control (OSC) protocol.  To enable an OSC connection, double-click on the parameter you want to control, enter the destination port address in the window that will appear and click on "Apply":
-**image 15-OpenSoundControl.png**
-
-Please be aware that activating an OSC connection will automatically disable the previons MIDI connection related to the chosen parameter.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre3_F/3.1-Preferences_F.txt b/doc/chapitres/Chapitre3_F/3.1-Preferences_F.txt
deleted file mode 100644
index 8240de4..0000000
--- a/doc/chapitres/Chapitre3_F/3.1-Preferences_F.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-La fenêtre des Préférences est accessible par le menu Python, dans le haut de l'écran:
-**image 1-Menu_preferences.png**
-
-\subsection
-L'onglet "Dossier" permet de choisir un lecteur de fichiers audio (ou un séquenceur audio - voir "Soundfile Player"), un éditeur de sons (voir "Soundfile Editor") et un éditeur de texte (voir "Text Editor") à utiliser conjointement avec Cecilia5.  Pour ce faire, il suffit d'entrer le répertoire contenant le dossier de l'application ou de cliquer sur le bouton "set", qui fera apparaître une fenêtre permettant d'aller chercher l'application voulue.
-
-La case "Preferred paths" permet d'entrer un répertoire dans lequel l'utilisateur peut placer ses propres modules (fichiers .c5); Cecilia5 les ajoutera alors dans le menu Files -> Modules.
-**image 2-Onglet_dossier.png**
-
-\subsection
-L'onglet "Haut-parleur" offre différentes options concernant la gestion de l'audio dans Cecilia5.  On peut y choisir son engin audio (voir "Audio Driver"), l'entrée microphone ou ligne (voir "Input Device"), la sortie vers les haut-parleurs (voir "Output Device").
-Les cases "Sample Precision" et "Buffer Size" permettent de choisir respectivement la précision en bits (32 ou 64 bits) et la taille de la mémoire tampon (64, 128, 256, 512, 1024 ou 2048 échantillons).  On peut ensuite choisir le nombre de canaux audio (jusqu'à 36 canaux - voir "Default # of channels") et la fréquence d'échantillonnage (22 050, 44 100, 48 000, 88 200 ou 96 000 Hertz - voir "Sample Rate").
-**image 3-Onglet_haut-parleur.png**
-
-\subsection
-L'onglet "MIDI" permet de choisir un engin MIDI (par exemple PortMidi - voir "Midi Driver") et un contrôleur MIDI (voir "Input Device" - Attention! le contrôleur MIDI doit être branché et détecté par l'ordinateur pour pouvoir être détecté par Cecilia5). Pour que Cecilia5 détecte automatiquement votre contrôleur MIDI, cochez la case "Automatic Midi Bindings".
-**image 4-Onglet_MIDI.png**
-
-\subsection
-L'onglet "Export" permet de définir le format (voir "File Format" - formats AIFF et WAV) et la profondeur en bits (voir "Bit Depth" - 16, 24 ou 32 bits en integer, ou encore 32 bits en float) par défaut des fichiers sons qui seront exportés vers le disque dur.
-**image 5-Onglet_export.png**
-
-\subsection
-L'onglet "Cecilia5" propose différents réglages: 
-\begin{itemize} 
-\item La durée par défaut (voir "Total time default (sec)" - 10, 30, 60, 120, 300, 600, 1200, 2400 ou 3600 secondes) et le temps de fondu au début et à la fin du fichier son généré à la sortie (voir "Global fadein/fadeout (sec)" - 0, 0.001, 0.002, 0.003, 0.004, 0.005, 0.01, 0.015, 0.02, 0.025, 0.03, 0.05, 0.075, 0.1, 0.2, 0.3, 0.4 ou 0.5 secondes).
-\item Cochez la case "Use tooltips" pour voir apparaître les fenêtres jaunes de renseignements dans l'interface graphique lors de l'utilisation du logiciel.
-\item Cochez la case "Use grapher texture" pour obtenir une graduation précise du graphique.
-\item Cochez la case "Verbose" pour obtenir plus de renseignements lorsque vous travaillez sur Cecilia5 à partir du terminal (utile pour le debuggage).
-\end{itemize}
-**image 6-Onglet_Cecilia5.png**
-
---> À ajouter si c'est implanté: "last saved" loade le dernier module à avoir été sauvegardé par l'utilisateur (?)
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre3_F/3.2-Barre_menus_F.txt b/doc/chapitres/Chapitre3_F/3.2-Barre_menus_F.txt
deleted file mode 100644
index 8043039..0000000
--- a/doc/chapitres/Chapitre3_F/3.2-Barre_menus_F.txt
+++ /dev/null
@@ -1,62 +0,0 @@
-Voici une brève description des menus accessibles dans le haut de l'écran.
-
-\subsection
-En plus de donner accès à la fenêtre des préférences (consultez la section précédente de ce chapitre), le menu "Python" permet de cacher l'interface graphique (voir "Hide Python") ou les autres applications (voir "Hide Others"), ou encore de quitter Cecilia5 (voir "Quit Python"). 
-**image 7-Menu_python.png** --> image à remplacer pcq version 5.0.7 beta?
-
-\subsection
-Le menu "File" (Fichier) donne accès aux fonctions suivantes:
-\begin{itemize}
-\item Open: Permet d'ouvrir un fichier Cecilia5 (dont l'extension est .c5), sauvegardé au préalable par l'utilisateur.
-\item Open Random: Permet d'ouvrir un module Cecilia5 choisi au hasard par le logiciel.
-\item Modules: Ce sous-menu permet de choisir un module; les différents modules Cecilia5 sont classés par catégorie. Pour plus d'information sur les modules, consultez les chapitres 4 à 11, qui en font une description détaillée.
-**image 8b-ModulesCategories.png**
-\item Open Recent: Permet d'ouvrir un fichier Cecilia5 récemment modifié et sauvegardé par l'utilisateur.
-\item Save et Save as: Permettent de sauvegarder le module sur lequel l'utilisateur travaille; la sauvegarde se fera sous la forme d'un fichier Cecilia5.
-\item Open Module as Text: Permet d'avoir accès au code source du module, si on désire y trouver des renseignements ou y apporter des modifications. (Pour plus d'informations à ce sujet, consultez le chapitre 12.) Si aucun éditeur de texte par défaut n'a été choisi dans les préférences, une fenêtre apparaîtra pour vous permettre d'en choisir un.
-**image 9-ChooseTextEditor.png**
-\item Reload module: Réexécute le code source à l'origine de l'ouverture du module; on doit exécuter cette commande si on a apporté des modifications au code source du module. \end{itemize}
-**image 8-Menu_file.png**
-
-\subsection
-Le menu "Edit" (Édition) donne accès aux fonctions Annuler (Undo), Rétablir (Redo), Copier (Copy) et Coller (Paste). Ces fonctions ne concernent toutefois que les modifications apportées au graphique. Pour que Cecilia5 garde le fichier son d'origine que vous avez choisi lors des changements de module, cochez la case "Remember input sound".
-**image 10-Menu_edit.png**
-
-\subsection
-Dans le menu "Action", les commandes "Play/Stop" et "Bounce to Disk" sont l'équivalent des boutons "Play" et "Record" de la barre de transport. 
-**image 11-Menu_Action.png**
-La commande "Batch Processing on Sound Folder" applique l'état courant du module sur tous les sons du dossier choisi (celui contenant le son inséré dans la section "input"). La commande "Batch Processing on Preset Sequence", elle, qpplique tous les préréglages enregistrés du module sur le son choisi. Ces deux commandes permettent donc de sauvegarder plusieurs fichiers son à la fois. Avant d'exécuter une de ces deux commandes, Cecilia5 vous demandera d'entrer un suffixe permettant d'identifier les fichiers son créés.
-**image 12-ChooseFilenameSuffix.png**
-Quant à la commande "Use MIDI", elle indique simplement si Cecilia5 a trouvé une connexion MIDI. 
-
-
-\subsection
-Le menu "Window" (Fenêtre) permet de réduire la fenêtre de l'interface graphique (Minimize), d'effectuer un zoom avant sur cette même fenêtre (Zoom - cliquez une deuxième fois sur cette commande pour ramener la fenêtre à sa taille d'origine) et de ramener toutes les fenêtres relatives à Cecilia5 en avant-plan (Bring All to Front).  Quant à la commande "Eh Oh Mario!", il s'agit d'un effet visuel qui se veut être un petit clin d'oeil à l'utilisateur. La commande "interface - nomdumodule.c5" est une propriété du système qui affiche les fenêtres ouvertes d'une application, permettant ainsi de naviguer de l'une à l'autre.
-**image 13-Menu_Window.png**
-
-\subsection
-Du menu "Help" (Aide), on peut rechercher une commande du menu en inscrivant un mot-clé dans la case "Search". En cliquant sur "Show module info", l'utilisateur a accès à une brève description du module en cours d'utilisation. En cliquant sur "Show API Documentation", l'utilisateur a accès à la documentation relative à l'interface de programmation de l'application Cecilia5.  Cette documentation contient l'ensemble des déclarations de classes et de méthodes ainsi que les menus qui sont propres au module en cours d'utilisation.  Pour plus d'informations à ce sujet, consultez le chapitre 12.
-**image 14-Menu_Help.png**
-
-\subsection
-Liste des raccourcis clavier:
-\begin{itemize}
-\item cmd-h: Cacher la fenêtre Cecilia5
-\item alt-cmd-h: Cacher les fenêtres des autres applications
-\item cmd-o: Ouvrir un fichier Cecilia5
-\item shift-cmd-o: Ouvrir un module choisi au hasard par le logiciel
-\item cmd s: Sauvergarder
-\item shift-cmd-s: Sauvegarder sous...
-\item cmd-e: Ouvrir le fichier texte des sources du module
-\item cmd-r: Ferme et ré-ouvre le module (reload module)
-\item cmd-c: Copier (graphique seulement)
-\item cmd-v: Coller (graphique seulement)
-\item cmd-z: Annuler (graphique seulement)
-\item shift-cmd-z: Rétablir (graphique seulement)
-\item cmd-.: Play/Stop
-\item cmd-b: Enregistrer sur le disque dur (bouton "Record")
-\item cmd-m: Réduire la fenêtre
-\item shift-cmd-e: Eh Oh Mario!
-\item cmd-i: Accès à la documentation du module
-\item cmd-d: Accès à la documentation de l'interface de programmation
-\end{itemize} 
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre3_F/3.3-MIDI_OSC_F.txt b/doc/chapitres/Chapitre3_F/3.3-MIDI_OSC_F.txt
deleted file mode 100644
index fe29598..0000000
--- a/doc/chapitres/Chapitre3_F/3.3-MIDI_OSC_F.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-\subsection
-MIDI
-Il est possible d'utiliser un contrôleur MIDI pour manipuler les différents potentiomètres des modules de Cecilia5 avec plus de précision.  Si vous désirez utiliser un contrôleur MIDI, vous devez d'abord le brancher à votre système et vous assurer qu'il est ensuite détecté par votre ordinateur.
-
-Pour que les appareils MIDI soient détectés automatiquement par Cecilia5, cochez la case "Automatic Midi Bindings" dans les Préférences (menu "Python").  Certains paramètres seront assignés par défaut à des contrôleurs particuliers. Par exemple, le contrôleur 7 est, la plupart du temps, assigné au contrôle du gain en décibels du fichier son de sortie (voir le potentiomètre correspondant dans la section "Output"). 
-
-Par contre, la plupart des paramètres devront être assignés à leurs contrôleurs via la fonction d'apprentissage MIDI. Il est à noter que les paramètres de type "rangeslider" seront, eux, assignés à deux contrôleurs distincts, pour la valeur minimale et la valeur maximale.
-
-Pour relier un paramètre à un contrôleur MIDI via la fonction d'apprentissage, faites un clic droit sur le paramètre que vous désirez contrôler et activez votre contrôleur MIDI. Normalement, le numéro de contrôleur correspondant devrait s'inscrire dans le potentiomètre de la fenêtre Cecilia5. Pour désactiver la connexion MIDI, refaites un clic droit sur le paramètre tout en appuyant sur la touche "Maj" (Shift).
-
-\subsection
-OSC
-Il est également possible de contrôler les paramètres de Cecilia5 via le protocole Open Sound Control. Pour activer une connexion OSC, double-cliquez sur le paramètre que vous désirez contrôler, entrez l'adresse du port de destination dans la fenêtre qui apparaîtra et cliquez sur "Apply":
-**image 15-OpenSoundControl.png**
-
-Il est à noter que le fait d'activer une connexion OSC écrasera toute connexion préalable avec un contrôleur MIDI pour le paramètre choisi.
-
diff --git a/doc/chapitres/Chapitre4_A/4.1-Degrade_A.txt b/doc/chapitres/Chapitre4_A/4.1-Degrade_A.txt
deleted file mode 100644
index 1f2f54e..0000000
--- a/doc/chapitres/Chapitre4_A/4.1-Degrade_A.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-Sampling rate and bit depth degradation module with optional waveform aliasing around a clipping threshold.
-
-**image 1-Parametres_Degrade.png**
-
-Sliders under the graph:
-\begin{itemize}
-\item Bit Depth: Resolution of the amplitude in bits.
-\item Sampling Rate Ratio: Ratio of the new sampling rate compared to the original one.
-\item Wrap Threshold: Clipping limit (for the waveform aliasing) between -1 and 1 (signal then wraps around the thresholds).
-\item Filter Freq: Center or cut-off frequency of the filter.
-\item Filter Q: Q factor of the filter
-\item Dry/Wet: Mix between the original signal and the degraded signal.
-\end{itemize}
-
-Dropdown menus and toggles:
-\begin{itemize}
-\item Filter Type: Type of filter (lowpass, highpass, bandpass or bandstop).
-\item Clip Type: **à vérifier**Choose between degradation only or degradation with waveform aliasing.
-\item Balance: Adjust the signal amplitude by comparing it with a sinusoidal wave with a fixed amplitude (see "compress") or with the amplitude of the source (see "source").
-\item **à vérifier** # of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
-\item **à vérifier** Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-\end{itemize}
-
-Graph only parameters:
-\begin{itemize}
-\item Overall Amplitude: The amplitude curve applied on the total duration of the performance.
-\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre4_A/4.2-Distorsion_A.txt b/doc/chapitres/Chapitre4_A/4.2-Distorsion_A.txt
deleted file mode 100644
index d8cf03e..0000000
--- a/doc/chapitres/Chapitre4_A/4.2-Distorsion_A.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-Distortion module with pre and post filters.
-
-**image 2-Parametres_Distorsion.png**
-
-Sliders under the graph:
-\begin{itemize}
-\item Pre-Filter Freq: Center or cut-off frequency of the filter applied before distortion.
-\item Pre-Filter Q: Q factor of the filter applied before distorsion.
-\item Drive: Amount of distortion applied on the signal.
-\item Post-Filter Freq: Center or cut-off frequency of the filter applied after distortion.
-\item Post-Filter Q: Q factor of the filter applied after distortion.
-\end{itemize}
-
-Dropdown menus and toggles:
-\begin{itemize}
-\item Pre-Filter Type: Type of filter used before distortion (lowpass, highpass, bandpass or bandstop).
-\item Post-Filter Type: Type of filter used after distortion (lowpass, highpass, bandpass or bandstop).
-\item Balance: Adjust the signal amplitude by comparing it with a sinusoidal wave with a fixed amplitude (see "compress") or with the amplitude of the source (see "source").
-\item **à vérifier** # of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
-\item **à vérifier** Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-\end{itemize}
-
-Graph only parameters:
-\begin{itemize}
-\item Overall Amplitude: The amplitude curve applied on the total duration of the performance.
-\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre4_A/4.3-DynamicsProcessor_A.txt b/doc/chapitres/Chapitre4_A/4.3-DynamicsProcessor_A.txt
deleted file mode 100644
index 7845961..0000000
--- a/doc/chapitres/Chapitre4_A/4.3-DynamicsProcessor_A.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-Compression and noise gate module.
-
-**image 3-Parametres_Dynamics.png**
-
-Sliders under the graph:
-\begin{itemize}
-\item Input Gain: Adjust the amount of signal sent to the processing chain.
-\item Compression Thresh: Value in decibels at which the compressor becomes active.
-\item Compression Rise Time: Time taken by the compressor to reach compression ratio.
-\item Compression Fall Time: Time taken by the compressor to reach uncompressed state.
-\item Compression Knee: Steepness of the compression curve.
-\item Gate Thresh: Value in decibels at which the noise gate becomes active.
-\item Gate Slope: Shape of the gate (rise time and fall time).
-\item Output Gain: Makeup gain applied after the processing chain.
-\end{itemize}
-
-Dropdown menus and toggles:
-\begin{itemize}
-\item Compression Ratio: Ratio between the compressed signal and the uncompressed signal.
-\item # of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
-\item Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-\end{itemize}
-
-Graph only parameters:
-\begin{itemize}
-\item Transfer Function: Table used for waveshaping
-\item Overall Amplitude: The amplitude curve applied on the total duration of the performance.
-\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre4_A/4.4-WaveShaper_A.txt b/doc/chapitres/Chapitre4_A/4.4-WaveShaper_A.txt
deleted file mode 100644
index 5a0529b..0000000
--- a/doc/chapitres/Chapitre4_A/4.4-WaveShaper_A.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Waveshaping module working with a filter.
-
-**image 4-Parametres_WaveShaper.png**
-
-Sliders under the graph:
-\begin{itemize}
-\item Filter Freq: Center frequency of the filter
-\item Filter Q: Q factor of the filter
-\end{itemize}
-
-Dropdown menus and toggles:
-\begin{itemize}
-\item Filter Type: Type of filter (lowpass, highpass, bandpass or bandstop).
-\item # of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
-\item Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-\end{itemize}
-
-Graph only parameters:
-\begin{itemize}
-\item Transfer Function: Table used for waveshaping
-\item Overall Amplitude: The amplitude curve applied on the total duration of the performance.
-\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre4_F/4.1-Degrade_F.txt b/doc/chapitres/Chapitre4_F/4.1-Degrade_F.txt
deleted file mode 100644
index cb88431..0000000
--- a/doc/chapitres/Chapitre4_F/4.1-Degrade_F.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-Le module Degrade cause une dégradation du son en réduisant la résolution en bits et la fréquence d'échantillonnage du fichier son; l'utilisateur peut choisir d'y ajouter un repliement de la forme d'onde autour d'une valeur d'écrêtage.
-
-**image 1-Parametres_Degrade.png**
-
-Potentiomètres:
-\begin{itemize}
-\item Bit Depth: Résolution de l'amplitude en bits
-\item Sampling Rate Ratio: Rapport de la fréquence d'échantillonnage modifiée sur la fréquence d'échantillonnage originale.
-\item Wrap Threshold: Seuil d'écrêtage (entre -1 et 1); le niveau du signal s'ajuste à ce seuil et la forme d'onde s'en rapproche.
-\item Filter Freq: Fréquence centrale ou fréquence de coupure du filtre.
-\item Filter Q: Facteur Q du filtre
-\item Dry/Wet: Rapport son direct et son traité par le module. \end{itemize}
-
-Paramètres fixes:
-\begin{itemize}
-\item Filter Type: Type de filtre - passe-bas (lowpass), passe-haut (highpass), passe-bande (bandpass) et réjecteur de bande (bandstop).
-\item Clip Type: Choix entre la dégradation du son seulement ou avec l'ajustement au niveau de distorsion.
-\item Balance: Ajuste l'amplitude du son traité en la comparant avec celle d'une onde sinusoïdale à amplitude fixe (compress) ou celle de la source (source).
-\item **On ajoute # of Polyphony et Polyphony Spread? - faire un copier coller d'un autre module du chapitre 4.** spread?**\end{itemize}
-
-Paramètres du graphique:
-\begin{itemize}
-\item Overall Amplitude: Définit l'enveloppe d'amplitude appliqué au son sur sa durée totale en secondes.\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre4_F/4.2-Distorsion_F.txt b/doc/chapitres/Chapitre4_F/4.2-Distorsion_F.txt
deleted file mode 100644
index 5ffc3d6..0000000
--- a/doc/chapitres/Chapitre4_F/4.2-Distorsion_F.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-Ce module crée une distorsion du son; le son est filtré avant et après le traitement.
-
-**image 2-Parametres_Distorsion.png**
-
-Potentiomètres:
-\begin{itemize}
-\item Pre-Filter Freq: Fréquence du filtre appliqué avant la distorsion.
-\item Pre-Filter Q: Facteur Q du filtre appliqué avant la distorsion.
-\item Drive: Niveau de distorsion appliqué au signal.
-\item Post-Filter Freq: Fréquence du filtre appliqué après la distorsion.
-\item Post-Filter Q: Facteur Q du filtre appliqué après la distorsion.\end{itemize}
-
-Paramètres fixes:
-\begin{itemize}
-\item Pre-Filter Type: Type du filtre appliqué avant la distorsion - passe-bas (lowpass), passe-haut (highpass), passe-bande (bandpass) ou réjecteur de bande (bandstop).
-\item Balance: Ajuste l'amplitude du son traité en la comparant avec celle d'une onde sinusoïdale à amplitude fixe (compress) ou celle de la source (source).
-\item **On ajoute # of Polyphony et Polyphony spread?**
-\end{itemize}
-
-Paramètres du graphique:
-\begin{itemize}
-\item Overall Amplitude: Définit l'enveloppe d'amplitude appliqué au son sur sa durée totale en secondes.
-\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre4_F/4.3-DynamicsProcessor_F.txt b/doc/chapitres/Chapitre4_F/4.3-DynamicsProcessor_F.txt
deleted file mode 100644
index 01a005e..0000000
--- a/doc/chapitres/Chapitre4_F/4.3-DynamicsProcessor_F.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-DynamicsProcessor est un module de compression ainsi qu'une porte de bruit (noise gate).
-
-**image 3-Parametres_Dynamics.png***
-
-Potentiomètres:
-\begin{itemize}
-\item Input Gain: Ajuste le niveau du signal envoyé au module de traitement.
-\item Compression Thresh: Seuil de compression, en décibels, à partir duquel la compression s'effectue.
-\item Compression Rise Time: Temps nécessaire à l'atteinte du rapport de compression par le compresseur (lorsque le seuil de compression est atteint).
-\item Compression Fall Time: Temps nécessaire au compresseur pour ramener le signal à la normale (lorsque le seuil de compression n'est plus dépassé).
-\item Compression Knee: Raideur de la pente lors de l'activation ou de la désactivation du compresseur.
-\item Gate Thresh: Seuil en décibels à partir duquel la porte de bruit est activée.
-\item Gate Slope: Pente de la courbe décrivant l'entrée en fonction et la désactivation de la porte de bruit (équivalent du Rise and Fall time).
-\item Output Gain: Niveau du signal de sortie, à la fin de la chaîne de traitement.
-\end{itemize}
-
-Paramètres fixes:
-\begin{itemize}
-\item Compression Ratio: Rapport de niveau entre le signal compressé et le signal d'origine.
-\item # of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
-\item Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-\end{itemize}
-
-Paramètres du graphique:
-\begin{itemize}
-\item Overall Amplitude: Définit l'enveloppe d'amplitude appliqué au son sur sa durée totale en secondes.
-\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre4_F/4.4-WaveShaper_F.txt b/doc/chapitres/Chapitre4_F/4.4-WaveShaper_F.txt
deleted file mode 100644
index 4e21cf2..0000000
--- a/doc/chapitres/Chapitre4_F/4.4-WaveShaper_F.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Le module WaveShaper est un modulateur de signal fonctionnant grâce à un filtre.
-
-**image 4-Parametres_WaveShaper.png**
-
-Potentiomètres:
-\begin{itemize}
-\item Filter Freq: Fréquence centrale ou fréquence de coupure du filtre
-\item Filter Q: Facteur Q du filtre
-\end{itemize}
-
-Paramètres fixes:
-\begin{itemize}
-\item Filter Type: Type du filtre - passe-bas (lowpass), passe-haut (highpass), passe-bande (bandpass) ou réjecteur de bande (bandstop).
-\item # of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
-\item Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-\end{itemize}
-
-Paramètres du graphique:
-\begin{itemize}
-\item Transfer Function: Fonction de transfert définissant la modulation sonore (lecture de table).
-\item Overall Amplitude: Définit l'enveloppe d'amplitude appliqué au son sur sa durée totale en secondes.
-\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre5_A/5.1-AMFilter_A.txt b/doc/chapitres/Chapitre5_A/5.1-AMFilter_A.txt
deleted file mode 100644
index 5227130..0000000
--- a/doc/chapitres/Chapitre5_A/5.1-AMFilter_A.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-Filtering module that works with an amplitude modulation (AM filter) or a frequency modulation (FM filter).
-
-**image 1-Parametres_AMFilter.png**
-
-Sliders under the graph:
-\begin{itemize}
-\item Filter Freq: Center or cut-off frequency of the filter.
-\item Resonance: Q factor (resonance) of the filter.
-\item Mod Depth: Amplitude of the modulating wave (LFO - Low frequency oscillator).
-\item Mod Freq: Frequency of the modulating wave (LFO).
-\item Dry/Wet: Mix between the original signal and the filtered signal.
-\end{itemize}
-
-Dropdown menus and toggles:
-\begin{itemize}
-\item Filter Type: Type of the filter (lowpass, highpass, bandpass or bandstop).
-\item AM Mod Type: Waveform of the modulating LFO for amplitude modulation (saw up, saw down, square, triangle, pulse, bi-polar pulse, sample & hold or modulated sine).
-\item FM Mod Type: Waveform of the modulating LFO for frequency modulation (saw up, saw down, square, triangle, pulse, bi-polar pulse, sample & hold or modulated sine).
-\item Balance: Adjust the signal amplitude by comparing it with a sinusoidal wave with a fixed amplitude (see "compress") or with the amplitude of the source (see "source").
-\item # of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
-\item Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-\end{itemize}
-
-Graph only parameters:
-\begin{itemize}
-\item Overall Amplitude: The amplitude curve applied on the total duration of the performance.
-\end{itemize}
diff --git a/doc/chapitres/Chapitre5_A/5.2-BrickWall_A.txt b/doc/chapitres/Chapitre5_A/5.2-BrickWall_A.txt
deleted file mode 100644
index 5157a41..0000000
--- a/doc/chapitres/Chapitre5_A/5.2-BrickWall_A.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-Convolution brickwall lowpass or highpass filter.
-
-**image 2-Parametres_BrickWall.png**
-
-Sliders under the graph:
-\begin{itemize}
-\item Cut-off Frequency: cut-off frequency of the lowpass/highpass filter.
-\item Bandwidth: Bandwidth of the lowpass/highpass filter.
-\item Filter order: Filter order of the lowpass/highpass filter.
-\end{itemize}
-
-Dropdown menus and toggles:
-\begin{itemize}
-\item Label Type: Type of filter (lowpass or highpass **à vérifier --> autres types).
-\item Balance: Adjust the signal amplitude by comparing it with a sinusoidal wave with a fixed amplitude (see "compress") or with the amplitude of the source (see "source").
-\item # of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
-\item Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-\end{itemize}
-
-Graph only parameters:
-\begin{itemize}
-\item Overall Amplitude: The amplitude curve applied on the total duration of the performance.
-\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre5_A/5.3-MaskFilter_A.txt b/doc/chapitres/Chapitre5_A/5.3-MaskFilter_A.txt
deleted file mode 100644
index e4b1ab9..0000000
--- a/doc/chapitres/Chapitre5_A/5.3-MaskFilter_A.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-Ranged filter module using band-pass filtering made with lowpass and highpass filters.
-
-**image 3-Parametres_MaskFilter.png**
-
-Sliders under the graph:
-\begin{itemize}
-\item Filter 1 limits: Range of the first filter (minimum value = cut-off frequency of the highpass filter; maximum value = cut-off frequency of the lowpass filter).
-\item Filter 2 limits: Range of the first filter (minimum value = cut-off frequency of the highpass filter; maximum value = cut-off frequency of the lowpass filter).
-\item Mix: **à vérifier!**
-\end{itemize}
-
-Dropdown menus and toggles:
-\begin{itemize}
-\item Number of Stages: Amount of stacked biquad filters.
-\item Balance: Adjust the signal amplitude by comparing it with a sinusoidal wave with a fixed amplitude (see "compress") or with the amplitude of the source (see "source").
-\item # of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
-\item Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-\end{itemize}
-
-Graph only parameters:
-\begin{itemize}
-\item Overall Amplitude: The amplitude curve applied on the total duration of the performance.
-\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre5_A/5.4-ParamEQ_A.txt b/doc/chapitres/Chapitre5_A/5.4-ParamEQ_A.txt
deleted file mode 100644
index c3e1d60..0000000
--- a/doc/chapitres/Chapitre5_A/5.4-ParamEQ_A.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-Parametric equalization module.
-
-**image 4-Parametres_ParamEQ.png**
-
-Sliders under the graph:
-\begin{itemize}
-\item Freq 1 Boost/Cut: Gain of the first equalizer.
-\item Freq 1: Center or cut-off frequency of the first equalizer.
-\item Freq 1 Q: Q factor of the first equalizer.
-\item Freq 2 Boost/Cut: Gain of the second equalizer.
-\item Freq 2: Center or cut-off frequency of the second equalizer.
-\item Freq 2 Q: Q factor of the second equalizer.
-\item Freq 3 Boost/Cut: Gain of the third equalizer.
-\item Freq 3: Center or cut-off frequency of the third equalizer.
-\item Freq 3 Q: Q factor of the third equalizer.
-\item Freq 4 Boost/Cut: Gain of the fourth equalizer.
-\item Freq 4: Center or cut-off frequency of the fourth equalizer.
-\item Freq 4 Q: Q factor of the fourth equalizer.
-\end{itemize}
-
-Dropdown menus and toggles:
-\begin{itemize}
-\item EQ 1 Type: Type of the first equalizer (Peak/Notch, Lowshelf, Highshelf).
-\item EQ 2 Type: Type of the second equalizer (Peak/Notch, Lowshelf, Highshelf).
-\item EQ 3 Type: Type of the third equalizer (Peak/Notch, Lowshelf, Highshelf).
-\item EQ 4 Type: Type of the fourth equalizer (Peak/Notch, Lowshelf, Highshelf).
-\item Balance: Adjust the signal amplitude by comparing it with a sinusoidal wave with a fixed amplitude (see "compress") or with the amplitude of the source (see "source").
-\item # of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
-\item Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-\end{itemize}
-
-Graph only parameters:
-\begin{itemize}
-\item Overall Amplitude: The amplitude curve applied on the total duration of the performance.
-\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre5_A/5.5-Phaser_A.txt b/doc/chapitres/Chapitre5_A/5.5-Phaser_A.txt
deleted file mode 100644
index 7359d02..0000000
--- a/doc/chapitres/Chapitre5_A/5.5-Phaser_A.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-Phaser effect module.
-
-**image 5-Parametres_Phaser.png**
-
-Sliders under the graph:
-\begin{itemize}
-\item Center Freq: Center frequency of the phaser (all-pass filter).
-\item Q Factor: Q factor (resonance) of the phaser (all-pass filter).
-\item Notch Spread: Distance between the phaser notches.
-\item Feedback: Amount of phased signal fed back into the phaser.
-\item Dry/Wet: Mix between the original signal and the phased signal.
-\end{itemize}
-
-Dropdown menus and toggles:
-\begin{itemize}
-\item Number of Stages: Number of stacked filters - changes notches bandwidth.
-\item # of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
-\item Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-\end{itemize}
-
-Graph only parameters:
-\begin{itemize}
-\item Overall Amplitude: The amplitude curve applied on the total duration of the performance.
-\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre5_A/5.6-Vocoder_A.txt b/doc/chapitres/Chapitre5_A/5.6-Vocoder_A.txt
deleted file mode 100644
index bce2d3b..0000000
--- a/doc/chapitres/Chapitre5_A/5.6-Vocoder_A.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-Vocoder module in which the user will have to choose two inputs: a source signal (see "Spectral Envelope" - a signal with a preferably rich spectral envelope) and an exciter (see "Exciter" - preferably a dynamic signal).
-
-**image 6-Parametres_Vocoder.png**
-
-Sliders under the graph:
-\begin{itemize}
-\item Base Frequency: Frequency of the first filter of the analyzer.
-\item Frequency Spread: Frequency spread factor - exponential operator that determinates the frequency of all other filters of the analyzer.
-\item Q Factor: Q factor of the filters of the analyzer.
-\item Time Response: **à vérifier**
-\item Gain: Gain of the vocoder filters.
-\item Num of Bands: **à vérifier** Number of filters for analyzing the signal.
-\end{itemize}
-
-Dropdown menus and toggles:
-\begin{itemize}
-\item Balance: Adjust the signal amplitude by comparing it with a sinusoidal wave with a fixed amplitude (see "compress") or with the amplitude of the source (see "source").
-\item # of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
-\item Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-\end{itemize}
-
-Graph only parameters:
-\begin{itemize}
-\item Overall Amplitude: The amplitude curve applied on the total duration of the performance.
-\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre5_F/5.1-AMFilter_F.txt b/doc/chapitres/Chapitre5_F/5.1-AMFilter_F.txt
deleted file mode 100644
index 8b163c1..0000000
--- a/doc/chapitres/Chapitre5_F/5.1-AMFilter_F.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-AMFMFilter est un module de filtrage par modulation d'amplitude (AM Filter) ou de fréquence (FM Filter).
-
-**image 1-Parametres_AMFilter.png**
-
-Potentiomètres:
-\begin{itemize}
-\item Filter Freq: Fréquence centrale ou fréquence de coupure du filtre.
-\item Resonance: Facteur Q (résonance) du filtre.
-\item Mod Depth: Amplitude de l'onde modulante (LFO - Oscillateur à basse fréquence).
-Potentiomètres:
-\begin{itemize}
-\item Dry/Wet: Rapport de niveau entre le signal d'origine et le signal filtré.
-\end{itemize}
-
-Paramètres fixes:
-\begin{itemize}
-\item Filter Type: Type du filtre - passe-bas (lowpass), passe-haut (highpass), passe-bande (bandpass) ou réjecteur de bande (bandstop).
-\item AM Mod Type: Forme d'onde de l'oscillateur à basse fréquence modulant l'amplitude du signal (LFO) - saw up (dents de scie vers le haut), saw down (dents de scie vers le bas), square (onde carrée), triangle (onde triangulaire), pulse (onde pulsatoire unipolaire), bi-polar pulse (onde pulsatoire bipolaire), sample & hold ou modulated sine (onde sinusoïdale modulée).
-\item FM Mod Type: Forme d'onde de l'oscillateur à basse fréquence modulant la fréquence du signal (LFO) - saw up (dents de scie vers le haut), saw down (dents de scie vers le bas), square (onde carrée), triangle (onde triangulaire), pulse (onde pulsatoire unipolaire), bi-polar pulse (onde pulsatoire bipolaire), sample & hold ou modulated sine (onde sinusoïdale modulée).
-\item Balance: Ajuste l'amplitude du son traité en la comparant avec celle d'une onde sinusoïdale à amplitude fixe (compress) ou celle de la source (source).
-\item # of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
-\item Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-\end{itemize}
-
-Paramètres du graphique:
-\begin{itemize}
-\item Overall Amplitude: Définit l'enveloppe d'amplitude appliqué au son sur sa durée totale en secondes.
-\end{itemize}
diff --git a/doc/chapitres/Chapitre5_F/5.2-BrickWall_F.txt b/doc/chapitres/Chapitre5_F/5.2-BrickWall_F.txt
deleted file mode 100644
index 94efcd4..0000000
--- a/doc/chapitres/Chapitre5_F/5.2-BrickWall_F.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-BrickWall est un module de filtrage fonctionnant grâce à un filtre passe-bas ou passe-haut de type "brickwall" (à la pente d'atténuation très abrupte).
-
-**image 2-Parametres_BrickWall.png**
-
-Potentiomètres: **à vérifier**
-\begin{itemize}
-\item Cut-off Frequency: Fréquence de coupure du filtre passe-haut ou passe bas.
-\item Bandwidth: Largeur de bande de bande du filtre
-\item Filter Order: Ordre du filtre.
-\end{itemize}
-
-Paramètres fixes:
-\begin{itemize}
-\item Label Type: Type of filter (lowpass or highpass **à vérifier --> autres types de filtres).
-\item Balance: Ajuste l'amplitude du son traité en la comparant avec celle d'une onde sinusoïdale à amplitude fixe (compress) ou celle de la source (source).
-\item # of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
-\item Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-\end{itemize}
-
-Paramètres du graphique:
-\begin{itemize}
-\item Overall Amplitude: Définit l'enveloppe d'amplitude appliqué au son sur sa durée totale en secondes.
-\end{itemize}
diff --git a/doc/chapitres/Chapitre5_F/5.3-MaskFilter_F.txt b/doc/chapitres/Chapitre5_F/5.3-MaskFilter_F.txt
deleted file mode 100644
index 144c9d6..0000000
--- a/doc/chapitres/Chapitre5_F/5.3-MaskFilter_F.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-MaskFilter est un module de filtrage fonctionnant grâce à des filtres passe-bande plus ou moins étendus (faits de filtres passe-bas et passe-haut).
-
-**image 3-Parametres_MaskFilter.png**
-
-Potentiomètres:
-\begin{itemize}
-\item Filter 1 limits: Valeur minimale et valeur maximale définissant l'étendue du premier filtre (minimum = fréquence de coupure du filtre passe-haut; maximum = fréquence de coupure du filtre passe-bas).
-\item Filter 2 limits: Valeur minimale et valeur maximale définissant l'étendue du second filtre (minimum = fréquence de coupure du filtre passe-haut; maximum = fréquence de coupure du filtre passe-bas).
-\item Mix: **à vérifier**
-\end{itemize}
-
-Paramètres fixes:
-\begin{itemize}
-\item Number of Stages: Nombre de filtres biquad enchaînés.
-\item Balance: Ajuste l'amplitude du son traité en la comparant avec celle d'une onde sinusoïdale à amplitude fixe (compress) ou celle de la source (source).
-\item # of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
-\item Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-\end{itemize}
-
-Paramètres du graphique:
-\begin{itemize}
-\item Overall Amplitude: Définit l'enveloppe d'amplitude appliqué au son sur sa durée totale en secondes.
-\end{itemize}
diff --git a/doc/chapitres/Chapitre5_F/5.4-ParamEQ_F.txt b/doc/chapitres/Chapitre5_F/5.4-ParamEQ_F.txt
deleted file mode 100644
index b182249..0000000
--- a/doc/chapitres/Chapitre5_F/5.4-ParamEQ_F.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-ParamEQ est un module d'égalisation paramétrique.
-
-**image 4-Parametres_ParamEQ.png**
-
-Potentiomètres:
-\begin{itemize}
-\item Freq 1 Boost/Cut: Gain du premier égalisateur.
-\item Freq 1: Fréquence centrale ou fréquence de coupure du premier égalisateur.
-\item Freq 1 Q: Facteur Q du premier égalisateur.
-\item Freq 2 Boost/Cut: Gain du second égalisateur.
-\item Freq 2: Fréquence centrale ou fréquence de coupure du second égalisateur.
-\item Freq 2 Q: Facteur Q du second égalisateur.
-\item Freq 3 Boost/Cut: Gain du troisième égalisateur.
-\item Freq 3: Fréquence centrale ou fréquence de coupure du troisième égalisateur.
-\item Freq 3 Q: Facteur Q du troisième égalisateur.
-\item Freq 4 Boost/Cut: Gain du quatrième égalisateur.
-\item Freq 4: Fréquence centrale ou fréquence de coupure du quatrième égalisateur.
-\item Freq 4 Q: Facteur Q du quatrième égalisateur.
-\end{itemize}
-
-Paramètres fixes:
-\begin{itemize}
-\item EQ 1 Type: Type du premier égalisateur - Peak/Notch (passe-bande/réjecteur de bande), Lowshelf - (passe/coupe-bas) ou Highshelf (passe/coupe-haut).
-\item EQ 2 Type: Type du second égalisateur - Peak/Notch (passe-bande/réjecteur de bande), Lowshelf - (passe/coupe-bas) ou Highshelf (passe/coupe-haut).
-\item EQ 3 Type: Type du troisième égalisateur - Peak/Notch (passe-bande/réjecteur de bande), Lowshelf - (passe/coupe-bas) ou Highshelf (passe/coupe-haut).
-\item EQ 4 Type: Type du quatrième égalisateur - Peak/Notch (passe-bande/réjecteur de bande), Lowshelf - (passe/coupe-bas) ou Highshelf (passe/coupe-haut).
-\item Balance: Ajuste l'amplitude du son traité en la comparant avec celle d'une onde sinusoïdale à amplitude fixe (compress) ou celle de la source (source).
-\item # of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
-\item Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-\end{itemize}
-
-Paramètres du graphique:
-\begin{itemize}
-\item Overall Amplitude: Définit l'enveloppe d'amplitude appliqué au son sur sa durée totale en secondes.
-\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre5_F/5.5-Phaser_F.txt b/doc/chapitres/Chapitre5_F/5.5-Phaser_F.txt
deleted file mode 100644
index 78f37e2..0000000
--- a/doc/chapitres/Chapitre5_F/5.5-Phaser_F.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-Module causant un effet de phasing.
-
-**image 5-Parametres_Phaser.png**
-
-Potentiomètres:
-\begin{itemize}
-\item Center Freq: Fréquence centrale du phaser (filtre passe-tout).
-\item Q Factor: Facteur Q (résonance) du phaser (filtre passe-tout).
-\item Notch Spread: Distance entre les différentes instances du filtre passe-tout.
-\item Feedback: Niveau de réinjection du signal dans le phaser.
-\item Dry/Wet: Rapport de niveau entre le son original et le son traité par le module.
-\end{itemize}
-
-Paramètres fixes:
-\begin{itemize}
-\item Number of Stages: Nombre de filtres enchaînés (change la largeur de bande du filtre résultant).
-\item # of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
-\item Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-\end{itemize}
-
-Paramètres du graphique:
-\begin{itemize}
-\item Overall Amplitude: Définit l'enveloppe d'amplitude appliqué au son sur sa durée totale en secondes.
-\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre5_F/5.6-Vocoder_F.txt b/doc/chapitres/Chapitre5_F/5.6-Vocoder_F.txt
deleted file mode 100644
index 258883b..0000000
--- a/doc/chapitres/Chapitre5_F/5.6-Vocoder_F.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-Module de vocodeur pour lequel l'utilisateur devra choisir deux fichiers sons (dans la section input): une source sonore (voir "Spectral Envelope" - préférablement un signal dont l'enveloppe spectrale est riche) et un excitateur (voir "Exciter" - préférablement un signal dynamique).
-
-**image 6-Parametres_Vocoder.png**
-
-Potentiomètres:
-\begin{itemize}
-\item Base Frequency: Fréquence du premier filtre de l'analyseur.
-\item Frequency Spread: Puissance à laquelle la fréquence de la première résonance est élevée, déterminant ainsi la fréquence des autres filtres de l'analyseur.
-\item Q Factor: Facteur Q des filtres de l'analyseur.
-\item Time Response: **à vérifier**
-\item Gain: Gain des filtres du vocodeur.
-\item Num of Bands: **à vérifier** Nombre de filtres analysant le signal.
-\end{itemize}
-
-Paramètres fixes:
-\begin{itemize}
-\item Balance: Ajuste l'amplitude du son traité en la comparant avec celle d'une onde sinusoïdale à amplitude fixe (compress) ou celle de la source (source).
-\item # of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
-\item Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-\end{itemize}
-
-Paramètres du graphique:
-\begin{itemize}
-\item Overall Amplitude: Définit l'enveloppe d'amplitude appliqué au son sur sa durée totale en secondes.
-\end{itemize}
diff --git a/doc/chapitres/Chapitre6_A/6.1-MultiBandBeatMaker_A.txt b/doc/chapitres/Chapitre6_A/6.1-MultiBandBeatMaker_A.txt
deleted file mode 100644
index ba45985..0000000
--- a/doc/chapitres/Chapitre6_A/6.1-MultiBandBeatMaker_A.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-Multi-band algorithmic beatmaker module.
-
-**image 1-Parametres_MBBeatMaker.png**
-
-Sliders under the graph:
-\begin{itemize}
-\item Frequency splitter: Split points of the frequency range for multi-band processing.
-\item # of Taps: Number of taps in a measure.
-\item Tempo: Speed of taps (in beats per minute).
-\item Tap Length: Length of taps (in seconds).
-\item Beat 1 Index: Soundfile index of the first beat.
-\item Beat 2 Index: Soundfile index of the second beat.
-\item Beat 3 Index: Soundfile index of the third beat.
-\item Beat 4 Index: Soundfile index of the fourth beat.
-\item Beat 1 Distribution: Repartition of taps for the first beat (100 % weak --> 100 % down).
-\item Beat 2 Distribution: Repartition of taps for the second beat (100 % weak --> 100 % down).
-\item Beat 3 Distribution: Repartition of taps for the third beat (100 % weak --> 100 % down).
-\item Beat 4 Distribution: Repartition of taps for the fourth beat (100 % weak --> 100 % down).
-\item Beat 1 Gain: Gain of the first beat.
-\item Beat 2 Gain: Gain of the second beat.
-\item Beat 3 Gain: Gain of the third beat.
-\item Beat 4 Gain: Gain of the fourth beat.
-\item Global Seed: Seed value for the algorithmic beats; using the same seed with the same distributions will yield the exact same beats.
-\end{itemize}
-
-Dropdown menus and toggles:
-\begin{itemize}
-\item # of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
-\item Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-\end{itemize}
-
-Graph only parameters:
-\begin{itemize}
-\item Beat 1 ADSR: Envelope of taps for the first beat in breakpoint fashion.
-\item Beat 2 ADSR: Envelope of taps for the second beat in breakpoint fashion.
-\item Beat 3 ADSR: Envelope of taps for the third beat in breakpoint fashion.
-\item Beat 4 ADSR: Envelope of taps for the fourth beat in breakpoint fashion.
-\item Overall Amplitude: The amplitude curve applied on the total duration of the performance.
-\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre6_A/6.2-MultiBandDelay_A.txt b/doc/chapitres/Chapitre6_A/6.2-MultiBandDelay_A.txt
deleted file mode 100644
index fb10c62..0000000
--- a/doc/chapitres/Chapitre6_A/6.2-MultiBandDelay_A.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-Multi-band delay module.
-
-**image 2-Parametres_MBDelay.png**
-
-Sliders under the graph:
-\begin{itemize}
-\item Frequency Splitter: Split points in the frequency range for multi-band processing.
-\item Delay Band 1: Delay time for the first band (in seconds).
-\item Feedback Band 1: Amount of delayed signal fed back into the first band delay.
-\item Gain Band 1: Gain of the delayed first band (in decibels).
-\item Delay Band 2: Delay time for the second band (in seconds).
-\item Feedback Band 2: Amount of delayed signal fed back into the second band delay.
-\item Gain Band 2: Gain of the delayed second band (in decibels).
-\item Delay Band 3: Delay time for the third band (in seconds).
-\item Feedback Band 3: Amount of delayed signal fed back into the third band delay.
-\item Gain Band 3: Gain of the delayed third band (in decibels).
-\item Delay Band 4: Delay time for the fourth band (in seconds).
-\item Feedback Band 4: Amount of delayed signal fed back into the fourth band delay.
-\item Gain Band 4: Gain of the delayed fourth band (in decibels).
-\end{itemize}
-
-Dropdown menus and toggles:
-\begin{itemize}
-\item # of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
-\item Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-\end{itemize}
-
-Graph only parameters:
-\begin{itemize}
-\item Overall Amplitude: The amplitude curve applied on the total duration of the performance.
-\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre6_A/6.3-MultiBandDisto_A.txt b/doc/chapitres/Chapitre6_A/6.3-MultiBandDisto_A.txt
deleted file mode 100644
index 5b1873b..0000000
--- a/doc/chapitres/Chapitre6_A/6.3-MultiBandDisto_A.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-Multi-band distortion module.
-
-**image 3-Parametres_MBDisto.png**
-
-Sliders under the graph:
-\begin{itemize}
-\item Frequency Splitter: Split points in the frequency range for multi-band processing.
-\item Band 1 Drive: Amount of distortion applied on the first band.
-\item Band 1 Slope: Harshness of distorted first band.
-\item Band 1 Gain: Gain of the distorted first band.
-\item Frequency Splitter: Split points in the frequency range for multi-band processing.
-\item Band 2 Drive: Amount of distortion applied on the second band.
-\item Band 2 Slope: Harshness of distorted second band.
-\item Band 2 Gain: Gain of the distorted second band.
-\item Frequency Splitter: Split points in the frequency range for multi-band processing.
-\item Band 3 Drive: Amount of distortion applied on the third band.
-\item Band 3 Slope: Harshness of distorted third band.
-\item Band 3 Gain: Gain of the distorted third band.
-\item Frequency Splitter: Split points in the frequency range for multi-band processing.
-\item Band 4 Drive: Amount of distortion applied on the fourth band.
-\item Band 4 Slope: Harshness of distorted fourth band.
-\item Band 4 Gain: Gain of the distorted fourth band.
-\end{itemize}
-
-Dropdown menus and toggles:
-\begin{itemize}
-\item # of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
-\item Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-\end{itemize}
-
-Graph only parameters:
-\begin{itemize}
-\item Overall Amplitude: The amplitude curve applied on the total duration of the performance.
-\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre6_A/6.4-MultiBandFreqShift_A.txt b/doc/chapitres/Chapitre6_A/6.4-MultiBandFreqShift_A.txt
deleted file mode 100644
index 8f39f62..0000000
--- a/doc/chapitres/Chapitre6_A/6.4-MultiBandFreqShift_A.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-Multi-band frequency shifter module.
-
-**image 4-Parametres_MBFreqShift.png**
-
-Sliders under the graph:
-\begin{itemize}
-\item Frequency splitter: Split points in frequency range for multi-band processing.
-\item Freq Shift Band 1: Frequency shift of the first band (in Hertz).
-\item Gain Band 1: Gain of the shifted first band.
-\item Freq Shift Band 2: Frequency shift of the second band (in Hertz).
-\item Gain Band 2: Gain of the shifted second band.
-\item Freq Shift Band 3: Frequency shift of the third band (in Hertz).
-\item Gain Band 3: Gain of the shifted third band.
-\item Freq Shift Band 4: Frequency shift of the fourth band (in Hertz).
-\item Gain Band 4: Gain of the shifted fourth band.
-\item Dry/Wet: Mix between the original signal and the shifted signals.
-\end{itemize}
-
-Dropdown menus and toggles:
-\begin{itemize}
-\item # of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
-\item Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-\end{itemize}
-
-Graph only parameters:
-\begin{itemize}
-\item Overall Amplitude: The amplitude curve applied on the total duration of the performance.
-\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre6_A/6.5-MultiBandGate_A.txt b/doc/chapitres/Chapitre6_A/6.5-MultiBandGate_A.txt
deleted file mode 100644
index 84afb9d..0000000
--- a/doc/chapitres/Chapitre6_A/6.5-MultiBandGate_A.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-Multi-band noise gate module.
-
-**image 5-Parametres_MBBandGate.png**
-
-Sliders under the graph:
-\begin{itemize}
-\item Frequency Splitter: Split points in the frequency range for multi-band processing.
-\item Threshold Band 1: Value in decibels at which the gate becomes active on the first band.
-\item Gain Band 1: Gain of the gated first band (in decibels). 
-\item Threshold Band 2: Value in decibels at which the gate becomes active on the second band.
-\item Gain Band 2: Gain of the gated second band (in decibels).
-\item Threshold Band 3: Value in decibels at which the gate becomes active on the third band.
-\item Gain Band 3: Gain of the gated third band (in decibels).
-\item Threshold Band 4: Value in decibels at which the gate becomes active on the fourth band.
-\item Gain Band 4: Gain of the gated fourth band (in decibels).
-\item Rise Time: Time taken by the gate to close (in seconds).
-\item Fall Time: Time taken by the gate to re-open (in seconds).
-\end{itemize}
-
-Dropdown menus and toggles:
-\item # of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
-\item Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-\end{itemize}
-
-Graph only parameters:
-\begin{itemize}
-\item Overall Amplitude: The amplitude curve applied on the total duration of the performance.
-\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre6_A/6.6-MultiBandHarmonizer_A.txt b/doc/chapitres/Chapitre6_A/6.6-MultiBandHarmonizer_A.txt
deleted file mode 100644
index 9126b90..0000000
--- a/doc/chapitres/Chapitre6_A/6.6-MultiBandHarmonizer_A.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-Multi-band harmonizer module.
-
-**image 6-Parametres_MBHarmonizer.png**
-
-Sliders under the graph:
-\begin{itemize}
-\item Frequency Splitter: Split points in the frequency range for multi-band processing.
-\item Transpo Band 1: Pitch shift in semi-tones for the first band.
-\item Feedback Band 1: Amount of harmonized signal fed back into the first band harmonizer. 
-\item Gain Band 1: Gain of the harmonized first band.
-\item Transpo Band 2: Pitch shift in semi-tones for the second band.
-\item Feedback Band 2: Amount of harmonized signal fed back into the second band harmonizer. 
-\item Gain Band 2: Gain of the harmonized second band.
-\item Transpo Band 3: Pitch shift in semi-tones for the third band.
-\item Feedback Band 3: Amount of harmonized signal fed back into the third band harmonizer. 
-\item Gain Band 3: Gain of the harmonized third band.
-\item Transpo Band 4: Pitch shift in semi-tones for the fourth band.
-\item Feedback Band 4: Amount of harmonized signal fed back into the fourth band harmonizer. 
-\item Gain Band 4: Gain of the harmonized fourth band.
-\item Dry/Wet: Mix between the original signal and the harmonized signals.
-\end{itemize}
-
-Dropdown menus and toggles:
-\begin{itemize}
-\item Win Size: Window size (for delay). **à préciser**
-\item # of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
-\item Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-\end{itemize}
-
-Graph only parameters:
-\begin{itemize}
-\item Overall Amplitude: The amplitude curve applied on the total duration of the performance.
-\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre6_A/6.7-MultiBandReverb_A.txt b/doc/chapitres/Chapitre6_A/6.7-MultiBandReverb_A.txt
deleted file mode 100644
index 3471d64..0000000
--- a/doc/chapitres/Chapitre6_A/6.7-MultiBandReverb_A.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-Multi-band reverb module.
-
-**image 7-Parametres_MBReverb.png**
-
-Sliders under the graph:
-\begin{itemize}
-\item Frequency Splitter: Split points in frequency range for multi-band processing.
-\item Reverb Band 1: Amount of reverb applied on first band.
-\item Cutoff Band 1: Damp - Cutoff frequency of the reverb's lowpass filter for the first band.
-\item Gain Band 1: Gain of the reverberized first band.
-\item Reverb band 2: Amount of reverb applied on second band.
-\item Cutoff Band 2: Damp - Cutoff frequency of the reverb's lowpass filter for the second band.
-\item Gain Band 2: Gain of the reverberized second band.
-\item Reverb band 3: Amount of reverb applied on third band.
-\item Cutoff Band 3: Damp - Cutoff frequency of the reverb's lowpass filter for the third band.
-\item Gain Band 3: Gain of the reverberized third band.
-\item Reverb band 4: Amount of reverb applied on fourth band.
-\item Cutoff Band 4: Damp - Cutoff frequency of the reverb's lowpass filter for the fourth band.
-\item Gain Band 4: Gain of the reverberized fourth band.
-\item Dry/Wet: Mix between the original signal and the harmonized signals.
-\end{itemize}
-
-Dropdown menus and toggles:
-\begin{itemize}
-\item # of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
-\item Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-\end{itemize}
-
-Graph only parameters:
-\begin{itemize}
-\item Overall Amplitude: The amplitude curve applied on the total duration of the performance.
-\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre6_F/6.1-MultiBandBeatMaker_F.txt b/doc/chapitres/Chapitre6_F/6.1-MultiBandBeatMaker_F.txt
deleted file mode 100644
index 07a22b8..0000000
--- a/doc/chapitres/Chapitre6_F/6.1-MultiBandBeatMaker_F.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-MultiBandBeatMaker est un module générant des rythmes à partir d'algorithmes en divisant le signal d'origine en quatre bandes de fréquences.
-
-**image 1-Parametres_MBBeatMaker.png**
-
-Potentiomètres:
-\begin{itemize}
-\item Frequency Splitter: Points de découpage du registre fréquenciel pour le traitement multi-bandes.
-\item # of Taps: Nombre de pulsations par mesure.
-\item Tempo: Vitesse de la pulsation (en pulsations par minute).
-\item Tap Length: Longueur des figures rythmiques (en secondes).
-\item Beat 1 Index: Position de lecture dans le fichier son d'origine pour la génération de la première figure rythmique.
-\item Beat 2 Index: Position de lecture dans le fichier son d'origine pour la génération de la seconde figure rythmique.
-\item Beat 3 Index: Position de lecture dans le fichier son d'origine pour la génération de la troisième figure rythmique.
-\item Beat 4 Index: Position de lecture dans le fichier son d'origine pour la génération de la quatrième figure rythmique.
-\item Beat 1 Distribution: Probabilité qu'un rythme soit généré sur le premier temps (en pourcentage de probabilité).
-\item Beat 2 Distribution: Probabilité qu'un rythme soit généré sur le deuxième temps (en pourcentage de probabilité).
-\item Beat 3 Distribution: Probabilité qu'un rythme soit généré sur le troisième temps (en pourcentage de probabilité).
-\item Beat 4 Distribution: Probabilité qu'un rythme soit généré sur le quatrième temps (en pourcentage de probabilité).
-\item Beat 1 Gain: Niveau sonore (en décibels) du premier temps.
-\item Beat 2 Gain: Niveau sonore (en décibels) du deuxième temps.
-\item Beat 3 Gain: Niveau sonore (en décibels) du troisième temps.
-\item Beat 4 Gain: Niveau sonore (en décibels) du quatrième temps.
-\item Global Seed: Valeur initiale (racine) pour la génération de figures rythmiques par algorithmie; utiliser la même racile avec la même formule de distribution produira exactement le même résultat d'une fois à l'autre (génération pseudo-aléatoire).
-\end{itemize}
-
-Paramètres fixes:
-\begin{itemize}
-\item # of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
-\item Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-\end{itemize}
-
-Paramètres du graphique:
-\begin{itemize}
-\item Overall Amplitude: Définit l'enveloppe d'amplitude appliqué au son sur sa durée totale en secondes.
-\end{itemize}
-
diff --git a/doc/chapitres/Chapitre6_F/6.2-MultiBandDelay_F.txt b/doc/chapitres/Chapitre6_F/6.2-MultiBandDelay_F.txt
deleted file mode 100644
index 48f0873..0000000
--- a/doc/chapitres/Chapitre6_F/6.2-MultiBandDelay_F.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-MultiBandDelay est un module de délai avec traitement sur quatre bandes de fréquences.
-
-**image 2-Parametres_MBDelay.png**
-
-Potentiomètres:
-\begin{itemize}
-\item Frequency Splitter: Points de découpage du registre fréquenciel pour le traitement multi-bandes.
-\item Delay Band 1: Temps de délai pour la première bande de fréquences (en secondes).
-\item Feedback Band 1: Quantité de signal délayé réinjecté dans le délai de la première bande.
-\item Gain Band 1: Niveau (en décibels) de la première bande délayée.
-\item Delay Band 2: Temps de délai pour la seconde bande de fréquences (en secondes).
-\item Feedback Band 2: Quantité de signal délayé réinjecté dans le délai de la seconde bande.
-\item Gain Band 2: Niveau (en décibels) de la seconde bande délayée.
-\item Delay Band 3: Temps de délai pour la troisième bande de fréquences (en secondes).
-\item Feedback Band 3: Quantité de signal délayé réinjecté dans le délai de la troisième bande.
-\item Gain Band 1: Niveau (en décibels) de la troisième bande de fréquences délayée.
-\item Delay Band 4: Temps de délai pour la quatrième bande de fréquences (en secondes).
-\item Feedback Band 4: Quantité de signal délayé réinjecté dans le délai de la quatrième bande.
-\item Gain Band 4: Niveau (en décibels) de la quatrième bande de fréquences délayée.
-\end{itemize}
-
-Paramètres fixes:
-\begin{itemize}
-\item # of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
-\item Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-\end{itemize}
-
-Paramètres du graphique:
-\begin{itemize}
-\item Overall Amplitude: Définit l'enveloppe d'amplitude appliqué au son sur sa durée totale en secondes.
-\end{itemize}
-
diff --git a/doc/chapitres/Chapitre6_F/6.3-MultiBandDisto_F.txt b/doc/chapitres/Chapitre6_F/6.3-MultiBandDisto_F.txt
deleted file mode 100644
index 4a8d3ea..0000000
--- a/doc/chapitres/Chapitre6_F/6.3-MultiBandDisto_F.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-MultiBandDisto est un module de distorsion avec traitement sur quatre bandes de fréquences.
-
-**image 3-Parametres_MBDisto.png**
-
-Potentiomètres:
-\begin{itemize}
-\item Frequency Splitter: Points de découpage du registre fréquenciel pour le traitement multi-bandes.
-\item Band 1 Drive: Niveau de distorsion appliqué sur la première bande de fréquences.
-\item Band 1 Slope: Accentuation de la pente du filtre passe-bas appliqué sur la distorsion pour la première bande de fréquences.
-\item Band 1 Gain: Niveau (en décibels) de la première bande de fréquence avec distorsion. 
-\item Band 2 Drive: Niveau de distorsion appliqué sur la deuxième bande de fréquences.
-\item Band 2 Slope: Accentuation de la pente du filtre passe-bas appliqué sur la distorsion pour la deuxième bande de fréquences.
-\item Band 2 Gain: Niveau (en décibels) de la deuxième bande de fréquence avec distorsion.
-\item Band 3 Drive: Niveau de distorsion appliqué sur la troisième bande de fréquences.
-\item Band 3 Slope: Accentuation de la pente du filtre passe-bas appliqué sur la distorsion pour la troisième bande de fréquences.
-\item Band 3 Gain: Niveau (en décibels) de la troisième bande de fréquence avec distorsion.
-\item Band 4 Drive: Niveau de distorsion appliqué sur la quatrième bande de fréquences.
-\item Band 4 Slope: Accentuation de la pente du filtre passe-bas appliqué sur la distorsion pour la quatrième bande de fréquences.
-\item Band 4 Gain: Niveau (en décibels) de la quatrième bande de fréquence avec distorsion.
-\end{itemize}
-
-Paramètres fixes:
-\begin{itemize}
-\item # of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
-\item Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-\end{itemize}
-
-Paramètres du graphique:
-\begin{itemize}
-\item Overall Amplitude: Définit l'enveloppe d'amplitude appliqué au son sur sa durée totale en secondes.
-\end{itemize}
diff --git a/doc/chapitres/Chapitre6_F/6.4-MultiBandFreqShift_F.txt b/doc/chapitres/Chapitre6_F/6.4-MultiBandFreqShift_F.txt
deleted file mode 100644
index 325528c..0000000
--- a/doc/chapitres/Chapitre6_F/6.4-MultiBandFreqShift_F.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-MultiBandFreqShift est un module de variation fréquentielle agissant sur quatre bandes de fréquences distinctes.
-
-**image 4-Parametres_MBFreqShift.png**
-
-Potentiomètres:
-\begin{itemize}
-\item Frequency Splitter: Points de découpage du registre fréquenciel pour le traitement multi-bandes.
-\item Freq Shift Band 1: Variation fréquentielle de la première bande de fréquences (en Hertz).
-\item Gain Band 1: Niveau sonore de la première bande de fréquences traitée (en décibels).
-\item Freq Shift Band 2: Variation fréquentielle de la deuxième bande de fréquences (en Hertz).
-\item Gain Band 2: Niveau sonore de la deuxième bande de fréquences traitée (en décibels).
-\item Freq Shift Band 3: Variation fréquentielle de la troisième bande de fréquences (en Hertz).
-\item Gain Band 3: Niveau sonore de la troisième bande de fréquences traitée (en décibels).
-\item Freq Shift Band 4: Variation fréquentielle de la quatrième bande de fréquences (en Hertz).
-\item Gain Band 4: Niveau sonore de la quatrième bande de fréquences traitée (en décibels).
-\item Dry/Wet: Rapport entre signal d'origine et le signal traité.
-\end{itemize}
-
-Paramètres fixes:
-\begin{itemize}
-\item # of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
-\item Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-\end{itemize}
-
-Paramètres du graphique:
-\begin{itemize}
-\item Overall Amplitude: Définit l'enveloppe d'amplitude appliqué au son sur sa durée totale en secondes.
-\end{itemize}
-
diff --git a/doc/chapitres/Chapitre6_F/6.5-MultiBandGate_F.txt b/doc/chapitres/Chapitre6_F/6.5-MultiBandGate_F.txt
deleted file mode 100644
index 18c5ab1..0000000
--- a/doc/chapitres/Chapitre6_F/6.5-MultiBandGate_F.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-MultiBandGate est un module de porte de bruit (noise gate) agissant sur quatre bandes de fréquences distinctes.
-
-**image 5-Parametres_MBBandGate.png**
-
-Potentiomètres:
-\begin{itemize}
-\item Frequency Splitter: Points de découpage du registre fréquenciel pour le traitement multi-bandes.
-\item Threshold Band 1: Seuil à partir duquel la porte de bruit devient active pour la première bande de fréquences (en décibels).
-\item Gain Band 1: Niveau sonore de la première bande de fréquences traitée (en décibels).
-\item Threshold Band 2: Seuil à partir duquel la porte de bruit devient active pour la deuxième bande de fréquences (en décibels).
-\item Gain Band 2: Niveau sonore de la deuxième bande de fréquences traitée (en décibels).
-\item Threshold Band 3: Seuil à partir duquel la porte de bruit devient active pour la troisième bande de fréquences (en décibels).
-\item Gain Band 3: Niveau sonore de la troisième bande de fréquences traitée (en décibels).
-\item Threshold Band 4: Seuil à partir duquel la porte de bruit devient active pour la quatrième bande de fréquences (en décibels).
-\item Gain Band 4: Niveau sonore de la quatrième bande de fréquences traitée (en décibels).
-\item Rise Time: Temps requis pour que la porte de bruit se ferme après l'atteinte du seuil (en secondes).
-\item Fall Time: Temps requis pour que la porte s'ouvre à nouveau lorsque le seuil n'est plus atteint (en secondes).
-\end{itemize}
-
-Paramètres fixes:
-\begin{itemize}
-\item # of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
-\item Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-\end{itemize}
-
-Paramètres du graphique:
-\begin{itemize}
-\item Overall Amplitude: Définit l'enveloppe d'amplitude appliqué au son sur sa durée totale en secondes.
-\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre6_F/6.6-MultiBandHarmonizer_F.txt b/doc/chapitres/Chapitre6_F/6.6-MultiBandHarmonizer_F.txt
deleted file mode 100644
index c527193..0000000
--- a/doc/chapitres/Chapitre6_F/6.6-MultiBandHarmonizer_F.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-MultiBandHarmonizer est un module de transposition agissant sur quatre bandes de fréquences distinctes.
-
-**image 6-Parametres_MBHarmonizer.png**
-
-Potentiomètres:
-\begin{itemize}
-\item Frequency Splitter: Points de découpage du registre fréquenciel pour le traitement multi-bandes.
-\item Transpo Band 1: Transposition en demi-tons de la première bande de fréquences.
-\item Feedback Band 1: Quantité de signal traité réinjecté dans le module de transposition pour la première bande de fréquences.
-\item Gain Band 1: Niveau sonore de la première bande de fréquences transposée (en décibels).
-\item Transpo Band 2: Transposition en demi-tons de la deuxième bande de fréquences.
-\item Feedback Band 2: Quantité de signal traité réinjecté dans le module de transposition pour la deuxième bande de fréquences.
-\item Gain Band 2: Niveau sonore de la deuxième bande de fréquences transposée (en décibels).
-\item Transpo Band 3: Transposition en demi-tons de la troisième bande de fréquences.
-\item Feedback Band 3: Quantité de signal traité réinjecté dans le module de transposition pour la troisième bande de fréquences.
-\item Gain Band 3: Niveau sonore de la troisième bande de fréquences transposée (en décibels).
-\item Transpo Band 4: Transposition en demi-tons de la quatrième bande de fréquences.
-\item Feedback Band 4: Quantité de signal traité réinjecté dans le module de transposition pour la quatrième bande de fréquences.
-\item Gain Band 4: Niveau sonore de la quatrième bande de fréquences transposée (en décibels).
-\item Dry/Wet: Rapport entre signal d'origine et le signal traité.
-\end{itemize}
-
-Paramètres fixes:
-\begin{itemize}
-\item # of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
-\item Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-\end{itemize}
-
-Paramètres du graphique:
-\begin{itemize}
-\item Overall Amplitude: Définit l'enveloppe d'amplitude appliqué au son sur sa durée totale en secondes.
-\end{itemize}
diff --git a/doc/chapitres/Chapitre6_F/6.7-MultiBandReverb_F.txt b/doc/chapitres/Chapitre6_F/6.7-MultiBandReverb_F.txt
deleted file mode 100644
index 03e6a66..0000000
--- a/doc/chapitres/Chapitre6_F/6.7-MultiBandReverb_F.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-MultiBandReverb est un module de réverbération où le traitement est appliqué sur quatre bandes de fréquences distinctes.
-
-**image 7-Parametres_MBReverb.png**
-
-Potentiomètres:
-\begin{itemize}
-\item Frequency Splitter: Points de découpage du registre fréquenciel pour le traitement multi-bandes.
-\item Reverb Band 1: Quantité de réverbération appliquée sur la première bande de fréquences.
-\item Cutoff Band 1: Damp - Fréquence de coupure du filtre passe-bas appliqué sur le signal traité de la première bande de fréquences.
-\item Gain Band 1: Niveau sonore de la première bande de fréquences traitée (en décibels).
-\item Reverb Band 2: Quantité de réverbération appliquée sur la deuxième bande de fréquences.
-\item Cutoff Band 2: Damp - Fréquence de coupure du filtre passe-bas appliqué sur le signal traité de la deuxième bande de fréquences.
-\item Gain Band 2: Niveau sonore de la deuxième bande de fréquences traitée (en décibels).
-\item Reverb Band 3: Quantité de réverbération appliquée sur la troisième bande de fréquences.
-\item Cutoff Band 3: Damp - Fréquence de coupure du filtre passe-bas appliqué sur le signal traité de la troisième bande de fréquences.
-\item Gain Band 3: Niveau sonore de la troisième bande de fréquences traitée (en décibels).
-\item Reverb Band 4: Quantité de réverbération appliquée sur la quatrième bande de fréquences.
-\item Cutoff Band 4: Damp - Fréquence de coupure du filtre passe-bas appliqué sur le signal traité de la quatrième bande de fréquences.
-\item Gain Band 4: Niveau sonore de la quatrième bande de fréquences traitée (en décibels).
-\item Dry/Wet: Rapport entre signal d'origine et le signal traité.
-\end{itemize}
-
-Paramètres fixes:
-\begin{itemize}
-\item # of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
-\item Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-\end{itemize}
-
-Paramètres du graphique:
-\begin{itemize}
-\item Overall Amplitude: Définit l'enveloppe d'amplitude appliqué au son sur sa durée totale en secondes.
-\end{itemize}
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre7_A/7.1-ChordMaker_A.txt b/doc/chapitres/Chapitre7_A/7.1-ChordMaker_A.txt
deleted file mode 100644
index 5574bed..0000000
--- a/doc/chapitres/Chapitre7_A/7.1-ChordMaker_A.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-Sampler based harmonizer module with multiple voices.
-
-**image **
-
-Sliders under the graph:
--Transpo Voice 1: Pitch shift of the first voice.
--Gain Voice 1: Gain of the transposed first voice.
--Transpo Voice 2: Pitch shift of the second voice.
--Gain Voice 2: Gain of the transposed second voice.
--Transpo Voice 3: Pitch shift of the third voice.
--Gain Voice 3: Gain of the transposed third voice.
--Transpo Voice 4: Pitch shift of the fourth voice.
--Gain Voice 4: Gain of the transposed fourth voice.
--Transpo Voice 5: Pitch shift of the fifth voice.
--Gain Voice 5: Gain of the transposed fifth voice.
--Feedback: Amount of transposed signal fed back into the harmonizers (feedback is voice independent).
--Dry/Wet: Mix between the original signal and the harmonized signals.
-
-Dropdown menus and toggles:
--Voice 1: Mute or unmute the first voice 
--Voice 2: Mute or unmute the second voice
--Voice 3: Mute or unmute the third voice
--Voice 4: Mute or unmute the fourth voice
--Voice 5: Mute or unmute the fifth voice
--# of Polyphony: Number of voices played simultaneously (in polyphony); only available at initialization time.
--Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-
-Graph only parameters:
--Overall Amplitude: The amplitude curve applied on the total duration of the performance.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre7_A/7.2-FreqShift_A.txt b/doc/chapitres/Chapitre7_A/7.2-FreqShift_A.txt
deleted file mode 100644
index 214db14..0000000
--- a/doc/chapitres/Chapitre7_A/7.2-FreqShift_A.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Double frequency shifter module.
-
-Sliders under the graph:
--Frequency Shift 1: First frequency shift value.
--Frequency Shift 2: Second frequency shift value.
--Filter Freq: Cut-off frequency of the lowpass filter.
--Filter Q: Q factor of the lowpass filter.
--Feedback Delay: Delay time (in seconds) causing the feedback.
--Feedback: **à vérifier**
--Feedback Gain: **à vérifier**
--Dry/Wet: Mix between the original signal and the shifted signals.
-
-Dropdown menus and toggles:
--Balance: Adjust the signal amplitude by comparing it with a sinusoidal wave with a fixed amplitude (see "compress") or with the amplitude of the source (see "source").
--# of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
--Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-
-Graph only parameters:
--Overall Amplitude: The amplitude curve applied on the total duration of the performance.
diff --git a/doc/chapitres/Chapitre7_A/7.3-Harmonizer_A.txt b/doc/chapitres/Chapitre7_A/7.3-Harmonizer_A.txt
deleted file mode 100644
index f18ceab..0000000
--- a/doc/chapitres/Chapitre7_A/7.3-Harmonizer_A.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-Harmonizer module with two voices.
-
-Sliders under the graph:
--Transpo Voice 1: Pitch shift of the first voice (in semi-tones).
--Transpo Voice 2: Pitch shift of the second voice (in semi-tones).
--Feedback: Amount of transposed signal fed back into the harmonizers (feedback is voice independent).
--Harm1/Harm2: Mix between the first and the second harmonized voices.
--Dry/Wet: Mix between the original signal and the harmonized signals.
-
-Dropdown menus and toggles:
--Win Size Voice 1: Window size of the first harmonizer for delay (1, 0.75, 0.5, 0.25, 0.2, 0.15, 0.1, 0.05 or 0.025).
--Win Size Voice 2: Window size of the first harmonizer for delay (1, 0.75, 0.5, 0.25, 0.2, 0.15, 0.1, 0.05 or 0.025).
--# of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
--Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-
-Graph only parameters:
--Overall Amplitude: The amplitude curve applied on the total duration of the performance.
-
diff --git a/doc/chapitres/Chapitre7_A/7.4-LooperMod_A.txt b/doc/chapitres/Chapitre7_A/7.4-LooperMod_A.txt
deleted file mode 100644
index 468d048..0000000
--- a/doc/chapitres/Chapitre7_A/7.4-LooperMod_A.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-Looper module with optional amplitude and frequency modulation.
-
-Sliders under the graph:
--AM Range: Amplitude of the amplitude modulation LFO (low frequency oscillator).
--AM Speed: Frequency of the amplitude modulation LFO.
--FM Range: Amplitude of the frequency modulation LFO.
--FM Speed: Frequency of the frequency modulation LFO.
--Loop Range: Range in the soundfile to loop.
--Dry/Wet: Mix between the original signal and the processed signal.
-
-Dropdown menus and toggles:
--AM LFO Type: Waveform of the amplitude modulation wave (saw up, saw down, square, triangle, pulse, bipolar pulse, sample and hold or modulated sine).
--AM On/Off: To enable or disable the amplitude modulation.
--FM LFO Type: Waveform of the amplitude modulation wave (saw up, saw down, square, triangle, pulse, bipolar pulse, sample and hold or modulated sine).
--FM On/Off: To enable or disable the frequency modulation.
--# of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
--Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-
-Graph only parameters:
--Overall Amplitude: The amplitude curve applied on the total duration of the performance.
-
diff --git a/doc/chapitres/Chapitre7_A/7.5-PitchLooper_A.txt b/doc/chapitres/Chapitre7_A/7.5-PitchLooper_A.txt
deleted file mode 100644
index 924ee67..0000000
--- a/doc/chapitres/Chapitre7_A/7.5-PitchLooper_A.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-Table based transposition module that creates up to five polyphonic voices.
-
-Sliders under the graph:
--Transpo Voice 1: Playback speed of the first voice (direct transposition).
--Gain Voice 1: Gain of the transposed first voice.
--Transpo Voice 2: Playback speed of the second voice (direct transposition).
--Gain Voice 2: Gain of the transposed second voice.
--Transpo Voice 3: Playback speed of the third voice (direct transposition).
--Gain Voice 3: Gain of the transposed third voice.
--Transpo Voice 4: Playback speed of the fourth voice (direct transposition).
--Gain Voice 4: Gain of the transposed fourth voice.
--Transpo Voice 5: Playback speed of the fifth voice (direct transposition).
--Gain Voice 5: Gain of the transposed fifth voice.
-
-Dropdown menus and toggles:
--Voice 1: To mute or unmute the first voice.
--Voice 2: To mute or unmute the second voice.
--Voice 3: To mute or unmute the third voice.
--Voice 4: To mute or unmute the fourth voice.
--Voice 5: To mute or unmute the fifth voice.
--# of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
--Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-
-Graph only parameters:
--Overall Amplitude: The amplitude curve applied on the total duration of the performance.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre7_F/7.1-ChordMaker_F.txt b/doc/chapitres/Chapitre7_F/7.1-ChordMaker_F.txt
deleted file mode 100644
index f0f95d4..0000000
--- a/doc/chapitres/Chapitre7_F/7.1-ChordMaker_F.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-ChordMaker est un module d'harmonisation créant une polyphonie à plusieurs voix et dont le fonctionnement est basé sur l'échantillonnage.
-
-**image**
-
-Potentiomètres:
--Transpo Voice 1: Variation de hauteur de la première voix.
--Gain Voice 1: Niveau d'intensité de la première voix transposée.
--Transpo Voice 2: Variation de hauteur de la deuxième voix.
--Gain Voice 2: Niveau d'intensité de la deuxième voix transposée.
--Transpo Voice 3: Variation de hauteur de la troisième voix.
--Gain Voice 3: Niveau d'intensité de la troisième voix transposée.
--Transpo Voice 4: Variation de hauteur de la quatrième voix.
--Gain Voice 4: Niveau d'intensité de la quatrième voix transposée.
--Transpo Voice 5: Variation de hauteur de la cinquième voix.
--Gain Voice 5: Niveau d'intensité de la cinquième voix transposée.
--Feedback: Niveau de réinjection du signal dans le module.
--Dry/Wet: Rapport de niveau entre le son original et le son traité par le module.
-
-Paramètres fixes:
--Voice 1: Cochez pour entendre la première voix; décochez pour la mettre en sourdine.
--Voice 2: Cochez pour entendre la deuxième voix; décochez pour la mettre en sourdine.
--Voice 3: Cochez pour entendre la troisième voix; décochez pour la mettre en sourdine.
--Voice 4: Cochez pour entendre la quatrième voix; décochez pour la mettre en sourdine.
--Voice 5: Cochez pour entendre la cinquième voix; décochez pour la mettre en sourdine.
--# of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
--Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-
-Paramètres du graphique:
--Overall Amplitude: Définit l'enveloppe d'amplitude appliquée au son sur sa durée totale en secondes.
diff --git a/doc/chapitres/Chapitre7_F/7.2-FreqShift_F.txt b/doc/chapitres/Chapitre7_F/7.2-FreqShift_F.txt
deleted file mode 100644
index d8a11cd..0000000
--- a/doc/chapitres/Chapitre7_F/7.2-FreqShift_F.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-FreqShift est un module créant un double décalage fréquentiel à partir du son original.
-
-Potentiomètres:
--Frequency Shift 1: Valeur du premier décalage fréquentiel.
--Frequency Shift 2: Valeur du second décalage fréquentiel.
--Filter Freq: Fréquence de coupure du filtre passe-bas.
--Filter Q: Facteur Q (pente) du filtre passe-bas.
--Feedback Delay: Temps de délai (en secondes) lors de la réinjection du signal dans le module de traitement.
--Feedback: ** à vérifier **
--Feedback Gain: Niveau d'intensité du signal traité avec la réinjection. **à vérifier**
--Dry/Wet: Rapport de niveau entre le son original et le son traité par le module.
-
-Paramètres fixes:
--Balance: Ajuste l'amplitude du son traité en la comparant avec celle d'une onde sinusoïdale à amplitude fixe (compress) ou celle de la source (source).
--# of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
--Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-
-Paramètres du graphique:
--Overall Amplitude: Définit l'enveloppe d'amplitude appliquée au son sur sa durée totale en secondes.
diff --git a/doc/chapitres/Chapitre7_F/7.3-Harmonizer_F.txt b/doc/chapitres/Chapitre7_F/7.3-Harmonizer_F.txt
deleted file mode 100644
index a9b89a0..0000000
--- a/doc/chapitres/Chapitre7_F/7.3-Harmonizer_F.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Harmonizer est un module créant deux voix de polyphonie à partir du signal original.
-
-Potentiomètres:
--Transpo Voice 1: Variation de hauteur de la première voix (en demi-tons).
--Transpo Voice 2: Variation de hauteur de la seconde voix (en demi-tons).
--Feedback: Niveau de réinjection du signal dans le module.
--Dry/Wet: Rapport de niveau entre le son original et le son traité par le module.
-
-Paramètres fixes:
--Win Size Voice 1: Grandeur de la fenêtre du premier harmoniseur pour l'application du délai (1, 0.75, 0.5, 0.25, 0.2, 0.15, 0.1, 0.05 ou 0.025).
--Win Size Voice 2: Grandeur de la fenêtre du second harmoniseur pour l'application du délai (1, 0.75, 0.5, 0.25, 0.2, 0.15, 0.1, 0.05 ou 0.025).
--# of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
--Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-
-Paramètres du graphique:
--Overall Amplitude: Définit l'enveloppe d'amplitude appliquée au son sur sa durée totale en secondes.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre7_F/7.4-LooperMod_F.txt b/doc/chapitres/Chapitre7_F/7.4-LooperMod_F.txt
deleted file mode 100644
index b036184..0000000
--- a/doc/chapitres/Chapitre7_F/7.4-LooperMod_F.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-LooperMod est un module créant des boucles, avec modulations d'amplitude et de fréquence optionnelles.
-
-Potentiomètres:
--AM Range: Amplitude de l'oscillateur à basse fréquence (LFO) pour la modulation d'amplitude.
--AM Speed: Fréquence de l'oscillateur à basse fréquence (LFO) pour la modulation d'amplitude.
--FM Range: Amplitude de l'oscillateur à basse fréquence (LFO) pour la modulation de fréquence.
--FM Speed: Fréquence de l'oscillateur à basse fréquence (LFO) pour la modulation de fréquence.
--Loop Range: Portion du fichier son original qui sera jouée en boucle.
--Dry/Wet: Rapport de niveau entre le son original et le son traité par le module.
-
-Paramètres fixes:
--AM LFO Type: Forme d'onde de l'oscillateur à basse fréquence (LFO) pour la modulation d'amplitude (saw up/down - dents de scie vers le haut ou le bas, square - onde carrée, triangle - onde triangulaire, pulse - onde en pulsation unipolaire, bipolar pulse - onde en pulsation bipolaire, sample and hold ou modulated sine - sinusoïde avec modulation).
--AM On/Off: Active ou désactive la modulation d'amplitude.
--FM LFO Type: Forme d'onde de l'oscillateur à basse fréquence (LFO) pour la modulation de fréquence (saw up/down - dents de scie vers le haut ou le bas, square - onde carrée, triangle - onde triangulaire, pulse - onde en pulsation unipolaire, bipolar pulse - onde en pulsation bipolaire, sample and hold ou modulated sine - sinusoïde avec modulation).
--FM On/Off: Active ou désactive la modulation de fréquence.
--# of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
--Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-
-Paramètres du graphique:
--Overall Amplitude: Définit l'enveloppe d'amplitude appliquée au son sur sa durée totale en secondes.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre7_F/7.5-PitchLooper_F.txt b/doc/chapitres/Chapitre7_F/7.5-PitchLooper_F.txt
deleted file mode 100644
index ef8cb05..0000000
--- a/doc/chapitres/Chapitre7_F/7.5-PitchLooper_F.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-PitchLooper est un module de transposition basé sur la lecture de tables de valeurs, qui crée jusqu'à cinq voix en polyphonie.
-
-Potentiomètres:
--Transpo Voice 1: Vitesse de lecture de la première voix (transposition directe).
--Gain Voice 1: Niveau d'intensité de la première voix transposée.
--Transpo Voice 2: Vitesse de lecture de la deuxième voix (transposition directe).
--Gain Voice 2: Niveau d'intensité de la deuxième voix transposée.
--Transpo Voice 3: Vitesse de lecture de la troisième voix (transposition directe).
--Gain Voice 3: Niveau d'intensité de la troisième voix transposée.
--Transpo Voice 4: Vitesse de lecture de la quatrième voix (transposition directe).
--Gain Voice 4: Niveau d'intensité de la quatrième voix transposée.
--Transpo Voice 5: Vitesse de lecture de la cinquième voix (transposition directe).
--Gain Voice 5: Niveau d'intensité de la cinquième voix transposée.
-
-Paramètres fixes:
--Voice 1 à 5: Cochez pour entendre la voix; décochez pour la mettre en sourdine.
--# of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
--Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-
-Paramètres du graphique:
--Overall Amplitude: Définit l'enveloppe d'amplitude appliquée au son sur sa durée totale en secondes.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre8_A/8.1-Convolve_A.txt b/doc/chapitres/Chapitre8_A/8.1-Convolve_A.txt
deleted file mode 100644
index 4450329..0000000
--- a/doc/chapitres/Chapitre8_A/8.1-Convolve_A.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Circular convolution filtering module.
-
-Sliders under the graph:
--Dry/Wet: Mix between the original signal and the convoluted signal.
-
-Dropdown menus and toggles:
--Size: Buffer size of the convolution (128, 256, 512, 1024 or 2048).
--Balance: Adjust the signal amplitude by comparing it with a sinusoidal wave with a fixed amplitude (see "compress") or with the amplitude of the source (see "source").
--# of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
--Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-
-Graph only parameters:
--Overall Amplitude: The amplitude curve applied on the total duration of the performance.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre8_A/8.2-DetunedResonators_A.txt b/doc/chapitres/Chapitre8_A/8.2-DetunedResonators_A.txt
deleted file mode 100644
index 53ad8b4..0000000
--- a/doc/chapitres/Chapitre8_A/8.2-DetunedResonators_A.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-Module with eight detuned resonators with jitter control.
-
-Sliders under the graph:
--Pitch offset: Base pitch of all the resonators (in cents).
--Amp Rand Amp: Amplitude of the jitter applied to the resonators amplitude.
--Amp Rand Speed: Frequency (in Hertz) of the jitter applied to the resonators amplitude.
--Delay Rand Amp: Amplitude of the jitter applied to the resonators delay; this has an effect on the pitch of each resonator.
--Delay Rand Speed: Frequency (in Hertz) of the jitter applied to the resonators delay; this has an effect on the pitch of each resonator.
--Detune factor: Spread factor that determines how each resonator will be detuned compared to the original signal.
--Pitch Voice 1: Pitch of the first resonator compared to the original signal (in semi-tones).
--Pitch Voice 2: Pitch of the second resonator compared to the original signal (in semi-tones).
--Pitch Voice 3: Pitch of the third resonator compared to the original signal (in semi-tones).
--Pitch Voice 4: Pitch of the fourth resonator compared to the original signal (in semi-tones).
--Pitch Voice 5: Pitch of the fifth resonator compared to the original signal (in semi-tones).
--Pitch Voice 6: Pitch of the sixth resonator compared to the original signal (in semi-tones).
--Pitch Voice 7: Pitch of the seventh resonator compared to the original signal (in semi-tones).
--Pitch Voice 8: Pitch of the eighth resonator compared to the original signal (in semi-tones).
--Feedback: Amount of the resonators signal fed back into the resonators (between 0 and 1).
--Dry/Wet: Mix between the original signal and the processed signals.
-
-Dropdown menus and toggles:
--Voice Activation (1 to 8): Check the boxes to activate the voices (first to eighth); uncheck to mute them.
--# of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
--Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-
-Graph only parameters:
--Overall Amplitude: The amplitude curve applied on the total duration of the performance.
diff --git a/doc/chapitres/Chapitre8_A/8.3-Resonators_A.txt b/doc/chapitres/Chapitre8_A/8.3-Resonators_A.txt
deleted file mode 100644
index d375314..0000000
--- a/doc/chapitres/Chapitre8_A/8.3-Resonators_A.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-Module with eight resonators with jitter control.
-
-Sliders under the graph:
--Pitch offset: Base pitch of all the resonators (in cents).
--Pitch Voice 1: Pitch of the first resonator compared to the original signal (in semi-tones).
--Pitch Voice 2: Pitch of the second resonator compared to the original signal (in semi-tones).
--Pitch Voice 3: Pitch of the third resonator compared to the original signal (in semi-tones).
--Pitch Voice 4: Pitch of the fourth resonator compared to the original signal (in semi-tones).
--Pitch Voice 5: Pitch of the fifth resonator compared to the original signal (in semi-tones).
--Pitch Voice 6: Pitch of the sixth resonator compared to the original signal (in semi-tones).
--Pitch Voice 7: Pitch of the seventh resonator compared to the original signal (in semi-tones).
--Pitch Voice 8: Pitch of the eighth resonator compared to the original signal (in semi-tones).
--Amp Rand Amp: Amplitude of the jitter applied to the resonators amplitude.
--Amp Rand Speed: Frequency (in Hertz) of the jitter applied to the resonators amplitude.
--Delay Rand Amp: Amplitude of the jitter applied to the resonators delay; this has an effect on the pitch of each resonator.
--Delay Rand Speed: Frequency (in Hertz) of the jitter applied to the resonators delay; this has an effect on the pitch of each resonator.
--Feedback: Amount of the resonators signal fed back into the resonators (between 0 and 1).
--Dry/Wet: Mix between the original signal and the processed signals.
-
-Dropdown menus and toggles:
--Balance: Adjust the signal amplitude by comparing it with a sinusoidal wave with a fixed amplitude (see "compress") or with the amplitude of the source (see "source").
--Voice Activation (1 to 8): Check the boxes to activate the voices (first to eighth); uncheck to mute them.
--# of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
--Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-
-Graph only parameters:
--Overall Amplitude: The amplitude curve applied on the total duration of the performance.
diff --git a/doc/chapitres/Chapitre8_A/8.4-WGuideBank_A.txt b/doc/chapitres/Chapitre8_A/8.4-WGuideBank_A.txt
deleted file mode 100644
index 5d702c6..0000000
--- a/doc/chapitres/Chapitre8_A/8.4-WGuideBank_A.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-Multiple waveguide models module.
-
-Sliders under the graph:
--Base Freq: Base pitch of the waveguides (in Hertz).
--WG Expansion: Spread factor that determines the range between the waveguides.
--WG Feedback: Length of the waveguides (**à vérifier; en quelle unité?).
--Filter Cutoff: Cutoff or center frequency of the filter (in Hertz).
--Amp Dev Amp: Amplitude of the jitter applied to the waveguides amplitudes.
--Amp Dev Speed: Frequency of the jitter applied to the waveguides amplitudes.
--Freq Dev Amp: Amplitude of the jitter applied to the waveguides pitch.
--Freq Dev Speed: Frequency of the jitter applied to the waveguides pitch.
--Dry/Wet: Mix betwwen the original signal and the waveguides signals.
-
-Dropdown menus and toggles:
--Filter Type: Type of the filter used in the module (lowpass, highpass, bandpass or bandstop).
--Balance: Adjust the signal amplitude by comparing it with a sinusoidal wave with a fixed amplitude (see "compress") or with the amplitude of the source (see "source").
--# of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
--Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-
-Graph only parameters:
--Overall Amplitude: The amplitude curve applied on the total duration of the performance.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre8_F/8.1-Convolve_F.txt b/doc/chapitres/Chapitre8_F/8.1-Convolve_F.txt
deleted file mode 100644
index e94247b..0000000
--- a/doc/chapitres/Chapitre8_F/8.1-Convolve_F.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Convolve est un module de filtrage basé sur une convolution circulaire.
-
-Potentiomètres:
--Dry/Wet: Rapport de niveau entre le son original et le son traité par le module.
-
-Paramètres fixes:
--Size: Taille de la mémoire tampon pour l'opération de convolution (128, 256, 512, 1024 ou 2048).
--Balance: Ajuste l'amplitude du son traité en la comparant avec celle d'une onde sinusoïdale à amplitude fixe (compress) ou celle de la source (source).
--# of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
--Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-
-Paramètres du graphique:
--Overall Amplitude: Définit l'enveloppe d'amplitude appliquée au son sur sa durée totale en secondes.
-
diff --git a/doc/chapitres/Chapitre8_F/8.2-DetunedResonators_F.txt b/doc/chapitres/Chapitre8_F/8.2-DetunedResonators_F.txt
deleted file mode 100644
index d73516e..0000000
--- a/doc/chapitres/Chapitre8_F/8.2-DetunedResonators_F.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-DetunedResonators est un module comportant huit résonateurs désaccordés ainsi que la possibilité d'appliquer une légère variation aléatoire sur le signal (jitter).
-
-Potentiomètres:
--Pitch Offset: Hauteur de base de tous les résonateurs (en cents).
--Amp Rand Amp: Amplitude de la variation (jitter) appliquée à l'amplitude des résonateurs.
--Amp Rand Speed: Fréquence (en Hertz) de la variation (jitter) appliquée à l'amplitude des résonateurs.
--Delay Rand Amp: Amplitude de la variation (jitter) appliquée au délai des résonateurs; ceci a un effet sur la hauteur du son.
--Delay Rand Speed: Fréquence (en Hertz) de la variation (jitter) appliquée au délai des résonateurs; ceci a un effet sur la hauteur du son.
--Detune factor: Facteur de désaccord des voix. Il s'agit d'une puissance par laquelle sont multipliés les temps de délai de chaque résonateur, déterminant à quel point ils seront désaccordés par rapport au signal original.
--Pitch Voice 1: Hauteur du premier résonateur par rapport au signal original (en demi-tons).
--Pitch Voice 2: Hauteur du deuxième résonateur par rapport au signal original (en demi-tons).
--Pitch Voice 3: Hauteur du troisième résonateur par rapport au signal original (en demi-tons).
--Pitch Voice 4: Hauteur du quatrième résonateur par rapport au signal original (en demi-tons).
--Pitch Voice 5: Hauteur du cinquième résonateur par rapport au signal original (en demi-tons).
--Pitch Voice 6: Hauteur du sixième résonateur par rapport au signal original (en demi-tons).
--Pitch Voice 7: Hauteur du septième résonateur par rapport au signal original (en demi-tons).
--Pitch Voice 8: Hauteur du huitième résonateur par rapport au signal original (en demi-tons).
--Feedback: Niveau de réinjection du signal dans le module.
--Dry/Wet: Rapport de niveau entre le son original et le son traité par le module.
-
-Paramètres fixes:
--Voice Activation (1 à 8): Cochez pour entendre les voix; décochez pour les mettre en sourdine.
--# of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
--Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-
-Paramètres du graphique:
--Overall Amplitude: Définit l'enveloppe d'amplitude appliquée au son sur sa durée totale en secondes.
diff --git a/doc/chapitres/Chapitre8_F/8.3-Resonators_F.txt b/doc/chapitres/Chapitre8_F/8.3-Resonators_F.txt
deleted file mode 100644
index 4454efe..0000000
--- a/doc/chapitres/Chapitre8_F/8.3-Resonators_F.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-Resonators est un module comportant huit résonateurs ainsi que la possibilité d'appliquer une légère variation aléatoire sur le signal (jitter).
-
-Potentiomètres:
--Pitch Offset: Hauteur de base de tous les résonateurs (en cents).
--Pitch Voice 1: Hauteur du premier résonateur par rapport à celle du signal original (en demi-tons).
--Pitch Voice 2: Hauteur du deuxième résonateur par rapport à celle du signal original (en demi-tons).
--Pitch Voice 3: Hauteur du troisième résonateur par rapport à celle du signal original (en demi-tons).
--Pitch Voice 4: Hauteur du quatrième résonateur par rapport à celle du signal original (en demi-tons).
--Pitch Voice 5: Hauteur du cinquième résonateur par rapport à celle du signal original (en demi-tons).
--Pitch Voice 6: Hauteur du sixième résonateur par rapport à celle du signal original (en demi-tons).
--Pitch Voice 7: Hauteur du septième résonateur par rapport à celle du signal original (en demi-tons).
--Pitch Voice 8: Hauteur du huitième résonateur par rapport à celle du signal original (en demi-tons).
--Amp Rand Amp: Amplitude de la variation (jitter) appliquée à l'amplitude des résonateurs.
--Amp Rand Speed: Fréquence (en Hertz) de la variation (jitter) appliquée à l'amplitude des résonateurs.
--Delay Rand Amp: Amplitude de la variation (jitter) appliquée au délai des résonateurs; ceci a un effet sur la hauteur du son.
--Delay Rand Speed: Fréquence (en Hertz) de la variation (jitter) appliquée au délai des résonateurs; ceci a un effet sur la hauteur du son.
--Feedback: Niveau de réinjection du signal dans le module.
--Dry/Wet: Rapport de niveau entre le son original et le son traité par le module.
-
-Paramètres fixes:
--Balance: Ajuste l'amplitude du son traité en la comparant avec celle d'une onde sinusoïdale à amplitude fixe (compress) ou celle de la source (source).
--Voice Activation (1 à 8): Cochez pour entendre les voix; décochez pour les mettre en sourdine.
--# of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
--Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-
-Paramètres du graphique:
--Overall Amplitude: Définit l'enveloppe d'amplitude appliquée au son sur sa durée totale en secondes.
diff --git a/doc/chapitres/Chapitre8_F/8.4-WGuideBank_F.txt b/doc/chapitres/Chapitre8_F/8.4-WGuideBank_F.txt
deleted file mode 100644
index 6cfa542..0000000
--- a/doc/chapitres/Chapitre8_F/8.4-WGuideBank_F.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-WGuideBank est un module traitant le son à partir de plusieurs modèles de guides d'onde.
-
-Potentiomètres:
--Base Freq: Fréquence de base des guides d'onde (en Hertz).
--WG Expansion: Facteur "spread" déterminant l'intervalle en Hertz entre les guides d'onde (puissance par laquelle est multipliée la fréquence de base).
--WG Feedback: Longueur des guides d'onde. **à vérifier**
--Filter Cutoff: Fréquence de coupure ou fréquence centrale du filtre.
--Amp Dev Amp: Amplitude de la variation aléatoire (jitter) appliquée à l'amplitude des guides d'onde.
--Amp Dev Speed: Fréquence de la variation aléatoire (jitter) appliquée à l'amplitude des guides d'onde.
--Freq Dev Amp: Amplitude de la variation aléatoire (jitter) appliquée à la fréquence des guides d'onde.
--Freq Dev Speed: Fréquence de la variation aléatoire (jitter) appliquée à la fréquence des guides d'onde.
--Dry/Wet: Rapport de niveau entre le son original et le son traité par le module.
-
-Paramètres fixes:
--Filter Type: Type de filtre utilisé lors du traitement (lowpass - passe-bas, highpass - passe-haut, bandpass - passe-bande ou bandstop - réjecteur de bande).
--Balance: Ajuste l'amplitude du son traité en la comparant avec celle d'une onde sinusoïdale à amplitude fixe (compress) ou celle de la source (source).
--# of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
--Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-
-Paramètres du graphique:
--Overall Amplitude: Définit l'enveloppe d'amplitude appliquée au son sur sa durée totale en secondes.
diff --git a/doc/chapitres/Chapitre9_A/9.1-CrossSynth_A.txt b/doc/chapitres/Chapitre9_A/9.1-CrossSynth_A.txt
deleted file mode 100644
index 2620b4c..0000000
--- a/doc/chapitres/Chapitre9_A/9.1-CrossSynth_A.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-Cross synthesis module based on fast-Fourier-transform (FFT) operations.
-
-Sliders under the graph:
--Exciter Pre Filter Freq: Center or cut-off frequency (in Hertz) of the pre-FFT filter.
--Exciter Pre Filter Q: Q factor of the pre-FFT filter.
--Dry/Wet: Mix between the original signal and the processed signal.
-
-Dropdown menus and toggles:
--Exc Pre Filter Type: Type of the pre-FFT filter (lowpass, highpass, bandpass or bandstop).
--FFT Size: Window size of the FFT (in samples - 16, 32, 64, 128, 256, 512, 1024, 2048, 4096 or 8192).
--FFT Envelope: Envelope type for the FFT (rectangular, Hanning, Hamming, Bartlett, Blackmann 3, 4 or 7, Tuckey or sine).
--FFT Overlaps: Number of FFT overlaps (1, 2, 4, 8 or 16).
--# of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
--Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-
-Graph only parameters:
--Overall Amplitude: The amplitude curve applied on the total duration of the performance.
diff --git a/doc/chapitres/Chapitre9_A/9.2-Morphing_A.txt b/doc/chapitres/Chapitre9_A/9.2-Morphing_A.txt
deleted file mode 100644
index f025922..0000000
--- a/doc/chapitres/Chapitre9_A/9.2-Morphing_A.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-Morphing module based on fast-Fourier-transform (FFT) operations.
-
-Sliders under the graph:
--Morph src1 <-> src 2: Morphing index between the two sources.
--Dry/Wet: Mix between the original signal and the morphed signal.
-
-Dropdown menus and toggles:
--FFT Size: Window size of the FFT (in samples - 16, 32, 64, 128, 256, 512, 1024, 2048, 4096 or 8192).
--FFT Envelope: Envelope type for the FFT (rectangular, Hanning, Hamming, Bartlett, Blackmann 3, 4 or 7, Tuckey or sine).
--FFT Overlaps: Number of FFT overlaps (1, 2, 4, 8 or 16).
--# of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
--Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-
-Graph only parameters:
--Overall Amplitude: The amplitude curve applied on the total duration of the performance.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre9_A/9.3-SpectralDelay_A.txt b/doc/chapitres/Chapitre9_A/9.3-SpectralDelay_A.txt
deleted file mode 100644
index 2587e06..0000000
--- a/doc/chapitres/Chapitre9_A/9.3-SpectralDelay_A.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-Spectral delay module based on fast-Fourier-transform (FFT) operations.
-
-Sliders under the graph:
--Bin Regions: Split points in the frequency range for FFT processing.
--Band 1 Delay: Delay time applied on the first band.
--Band 1 Amp: Gain of the delayed first band.
--Band 2 Delay: Delay time applied on the second band.
--Band 2 Amp: Gain of the delayed second band.
--Band 3 Delay: Delay time applied on the third band.
--Band 3 Amp: Gain of the delayed third band.
--Band 4 Delay: Delay time applied on the fourth band.
--Band 4 Amp: Gain of the delayed fourth band.
--Band 5 Delay: Delay time applied on the fifth band.
--Band 5 Amp: Gain of the delayed fifth band.
--Band 6 Delay: Delay time applied on the sixth band.
--Band 6 Amp: Gain of the delayed sixth band.
--Feedback: Amount of the delayed signal fed back into the delays (feedback is band independent).
--Dry/Wet: Mix between the original signal and the delayed signals.
-
-Dropdown menus and toggles:
--FFT Size: Window size of the FFT (in samples - 16, 32, 64, 128, 256, 512, 1024, 2048, 4096 or 8192).
--FFT Envelope: Envelope type for the FFT (rectangular, Hanning, Hamming, Bartlett, Blackmann 3, 4 or 7, Tuckey or sine).
--FFT Overlaps: Number of FFT overlaps (1, 2, 4, 8 or 16).
--# of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
--Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-
-Graph only parameters:
--Overall Amplitude: The amplitude curve applied on the total duration of the performance.
-
diff --git a/doc/chapitres/Chapitre9_A/9.4-SpectralFilter_A.txt b/doc/chapitres/Chapitre9_A/9.4-SpectralFilter_A.txt
deleted file mode 100644
index e23a652..0000000
--- a/doc/chapitres/Chapitre9_A/9.4-SpectralFilter_A.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-Spectral filter module based on fast-Fourier-transform (FFT) operations.
-
-Sliders under the graph:
--Filter interpolation: Morphing index between the two filters.
--Dry/Wet: Mix between the original signal and the delayed signals.
-
-Dropdown menus and toggles:
--Filter Range: Limits of the filter (up to Nyquist, up to Nyquist/2, up to Nyquist/4 or up to Nyquist/8). 
--FFT Size: Window size of the FFT (in samples - 16, 32, 64, 128, 256, 512, 1024, 2048, 4096 or 8192).
--FFT Envelope: Envelope type for the FFT (rectangular, Hanning, Hamming, Bartlett, Blackmann 3, 4 or 7, Tuckey or sine).
--FFT Overlaps: Number of FFT overlaps (1, 2, 4, 8 or 16).
--# of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
--Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-
-Graph only parameters:
--Spectral Filter 1: Shape of the first filter.
--Spectral Filter 2: Shape of the second filter.
--Overall Amplitude: The amplitude curve applied on the total duration of the performance.
diff --git a/doc/chapitres/Chapitre9_A/9.5-SpectralGate_A.txt b/doc/chapitres/Chapitre9_A/9.5-SpectralGate_A.txt
deleted file mode 100644
index 1e1d31d..0000000
--- a/doc/chapitres/Chapitre9_A/9.5-SpectralGate_A.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Spectral noise gate module based on fast-Fourier-transform (FFT) operations.
-
-Sliders under the graph:
--Gate Threshold: value (in decibels) at which the gate becomes active.
--Gate Attenuation: Gain (in decibels) of the gated signal.
--Dry/Wet: Mix between the original signal and the delayed signals.
-
-Dropdown menus and toggles:
--FFT Size: Window size of the FFT (in samples - 16, 32, 64, 128, 256, 512, 1024, 2048, 4096 or 8192).
--FFT Envelope: Envelope type for the FFT (rectangular, Hanning, Hamming, Bartlett, Blackmann 3, 4 or 7, Tuckey or sine).
--FFT Overlaps: Number of FFT overlaps (1, 2, 4, 8 or 16).
--# of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
--Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-
-Graph only parameters:
--Overall Amplitude: The amplitude curve applied on the total duration of the performance.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre9_A/9.6-Vectral_A.txt b/doc/chapitres/Chapitre9_A/9.6-Vectral_A.txt
deleted file mode 100644
index 3ce17bd..0000000
--- a/doc/chapitres/Chapitre9_A/9.6-Vectral_A.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Vectral module based on fast-Fourier-transform (FFT) operations. **À vérifier avec Olivier!**
-
-Sliders under the graph:
--Gate Threshold: Value (in decibels) at which the gate becomes active.
--Gate Attenuation: Gain (in decibels) of the gated signal.
--Upward Time Factor: Filter coefficient for the increasing bins.
--Downward Time Factor: Filter coefficient for the decreasing bins.
--Phase Time Factor: Phase blur.
--High Freq Damping: High frequencies damping factor.
--Dry/Wet: Mix between the original signal and the delayed signals.
-
-Dropdown menus and toggles:
--FFT Size: Window size of the FFT (in samples - 16, 32, 64, 128, 256, 512, 1024, 2048, 4096 or 8192).
--FFT Envelope: Envelope type for the FFT (rectangular, Hanning, Hamming, Bartlett, Blackmann 3, 4 or 7, Tuckey or sine).
--FFT Overlaps: Number of FFT overlaps (1, 2, 4, 8 or 16).
--# of Polyphony: Number of voices played simultaneously (polyphony); only available at initialization time.
--Polyphony Spread: Pitch variation between polyphony voices (chorus); only available at initialization time.
-
-Graph only parameters:
--Overall Amplitude: The amplitude curve applied on the total duration of the performance.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre9_F/9.1-CrossSynth_F.txt b/doc/chapitres/Chapitre9_F/9.1-CrossSynth_F.txt
deleted file mode 100644
index ae68984..0000000
--- a/doc/chapitres/Chapitre9_F/9.1-CrossSynth_F.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-CrossSynth est un module de synthèse croisée basée sur des opérations de transformée de Fourier rapide (FFT).
-
-Potentiomètres:
--Exciter Pre Filter Freq: Fréquence centrale ou fréquence de coupure du filtre appliqué avant la transformée de Fourier rapide (FFT).
--Exciter Pre Filter Q: Facteur Q du filtre appliqué avant la transformée de Fourier rapide (FFT).
-
-Paramètres fixes:
--Exc Pre Filter Type: Type de filtre utilisé avant la transformée de Fourier rapide (lowpass - passe-bas, highpass - passe-haut, bandpass - passe-bande ou bandstop - réjecteur de bande).
--FFT Size: Taille de la fenêtre de la transformée de Fourier rapide (en échantillons - 16, 32, 64, 128, 256, 512, 1024, 2048, 4096 ou 8192).
--FFT Envelope: Type d'enveloppe utilisée pour la transformée de Fourier rapide (rectangulaire, Hanning, Hamming, Bartlett, Blackmann 3, 4 ou 7, Tuckey ou sinusoïdale).
--FFT Overlaps: Facteur de chevauchement des fenêtres de transformée de Fourier rapide (1, 2, 4, 8 ou 16).
--# of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
--Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-
-Paramètres du graphique:
--Overall Amplitude: Définit l'enveloppe d'amplitude appliquée au son sur sa durée totale en secondes.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre9_F/9.2-Morphing_F.txt b/doc/chapitres/Chapitre9_F/9.2-Morphing_F.txt
deleted file mode 100644
index fc0df39..0000000
--- a/doc/chapitres/Chapitre9_F/9.2-Morphing_F.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-Morphing est un module dont le fonctionnement est basé sur des opérations de transformée de Fourier rapide (FFT) et qui permet la fusion entre deux sons sélectionnées (morphing).
-
-Potentiomètres:
--Morph src1 <-> src 2: Index de fusion entre les deux sources sonores.
--Dry/Wet: Rapport de niveau entre le son original et le son traité par le module.
-
-Paramètres fixes:
--FFT Size: Taille de la fenêtre de la transformée de Fourier rapide (en échantillons - 16, 32, 64, 128, 256, 512, 1024, 2048, 4096 ou 8192).
--FFT Envelope: Type d'enveloppe utilisée pour la transformée de Fourier rapide (rectangulaire, Hanning, Hamming, Bartlett, Blackmann 3, 4 ou 7, Tuckey ou sinusoïdale).
--FFT Overlaps: Facteur de chevauchement des fenêtres de transformée de Fourier rapide (1, 2, 4, 8 ou 16).
--# of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
--Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-
-Paramètres du graphique:
--Overall Amplitude: Définit l'enveloppe d'amplitude appliquée au son sur sa durée totale en secondes.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre9_F/9.3-SpectralDelay_F.txt b/doc/chapitres/Chapitre9_F/9.3-SpectralDelay_F.txt
deleted file mode 100644
index d260242..0000000
--- a/doc/chapitres/Chapitre9_F/9.3-SpectralDelay_F.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-SpectralDelay est un module de délai spectral basé sur des opérations de transformée de Fourier rapide (FFT).
-
-Potentiomètres:
--Bin Regions: Points de séparation dans le registre fréquentiel pour le traitement par FFT.
--Band 1 Delay: Temps de délai appliqué à la première bande de fréquences.
--Band 1 Amp: Niveau d'intensité de la première bande de fréquences délayée.
--Band 2 Delay: Temps de délai appliqué à la deuxième bande de fréquences.
--Band 2 Amp: Niveau d'intensité de la deuxième bande de fréquences délayée.
--Band 3 Delay: Temps de délai appliqué à la troisième bande de fréquences.
--Band 3 Amp: Niveau d'intensité de la troisième bande de fréquences délayée.
--Band 4 Delay: Temps de délai appliqué à la quatrième bande de fréquences.
--Band 4 Amp: Niveau d'intensité de la quatrième bande de fréquences délayée.
--Band 5 Delay: Temps de délai appliqué à la cinquième bande de fréquences.
--Band 5 Amp: Niveau d'intensité de la cinquième bande de fréquences délayée.
--Band 6 Delay: Temps de délai appliqué à la sixième bande de fréquences.
--Band 6 Amp: Niveau d'intensité de la sixième bande de fréquences délayée.
--Feedback: Niveau de réinjection du signal dans le module.
--Dry/Wet: Rapport de niveau entre le son original et le son traité par le module.
-
-Paramètres fixes:
--FFT Size: Taille de la fenêtre de la transformée de Fourier rapide (en échantillons - 16, 32, 64, 128, 256, 512, 1024, 2048, 4096 ou 8192).
--FFT Envelope: Type d'enveloppe utilisée pour la transformée de Fourier rapide (rectangulaire, Hanning, Hamming, Bartlett, Blackmann 3, 4 ou 7, Tuckey ou sinusoïdale).
--FFT Overlaps: Facteur de chevauchement des fenêtres de transformée de Fourier rapide (1, 2, 4, 8 ou 16).
--# of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
--Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-
-Paramètres du graphique:
--Overall Amplitude: Définit l'enveloppe d'amplitude appliquée au son sur sa durée totale en secondes.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre9_F/9.4-SpectralFilter_F.txt b/doc/chapitres/Chapitre9_F/9.4-SpectralFilter_F.txt
deleted file mode 100644
index a10251b..0000000
--- a/doc/chapitres/Chapitre9_F/9.4-SpectralFilter_F.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-SpectralFilter est un module de filtrage spectral basé sur des opérations de transformée de Fourier rapide (FFT).
-
-Potentiomètres:
--Filter interpolation: Index de morphing entre les deux filtres du module.
--Dry/Wet: Rapport de niveau entre le son original et le son traité par le module.
-
-Paramètres fixes:
--Filter Range: Limites du filtre (up to Nyquist, up to Nyquist/2, up to Nyquist/4 ou up to Nyquist/8 - jusqu'à la fréquence de Nyquist, ou jusqu'à la moitié, jusqu'au quart ou jusqu'au huitième de la fréquence de Nyquist).
--FFT Size: Taille de la fenêtre de la transformée de Fourier rapide (en échantillons - 16, 32, 64, 128, 256, 512, 1024, 2048, 4096 ou 8192).
--FFT Envelope: Type d'enveloppe utilisée pour la transformée de Fourier rapide (rectangulaire, Hanning, Hamming, Bartlett, Blackmann 3, 4 ou 7, Tuckey ou sinusoïdale).
--FFT Overlaps: Facteur de chevauchement des fenêtres de transformée de Fourier rapide (1, 2, 4, 8 ou 16).
--# of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
--Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-
-Paramètres du graphique:
--Spectral Filter 1: Forme donnée au premier filtre spectral.
--Spectral Filter 2: Forme donnée au deuxième filtre spectral.
--Overall Amplitude: Définit l'enveloppe d'amplitude appliquée au son sur sa durée totale en secondes.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre9_F/9.5-SpectralGate_F.txt b/doc/chapitres/Chapitre9_F/9.5-SpectralGate_F.txt
deleted file mode 100644
index d4bb260..0000000
--- a/doc/chapitres/Chapitre9_F/9.5-SpectralGate_F.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-SpectralGate est un module de porte de bruit (noise gate) basé sur des opérations de transformée de Fourier rapide (FFT).
-
-Potentiomètres:
--Gate Threshold: Seuil (en décibels) à partir duquel la porte de bruit s'active.
--Gate Attenuation: Niveau d'intensité (en décibels) du signal diffusé par la porte de bruit.
--Dry/Wet: Rapport de niveau entre le son original et le son traité par le module.
-
-Paramètres fixes:
--FFT Size: Taille de la fenêtre de la transformée de Fourier rapide (en échantillons - 16, 32, 64, 128, 256, 512, 1024, 2048, 4096 ou 8192).
--FFT Envelope: Type d'enveloppe utilisée pour la transformée de Fourier rapide (rectangulaire, Hanning, Hamming, Bartlett, Blackmann 3, 4 ou 7, Tuckey ou sinusoïdale).
--FFT Overlaps: Facteur de chevauchement des fenêtres de transformée de Fourier rapide (1, 2, 4, 8 ou 16).
--# of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
--Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-
-Paramètres du graphique:
--Overall Amplitude: Définit l'enveloppe d'amplitude appliquée au son sur sa durée totale en secondes.
\ No newline at end of file
diff --git a/doc/chapitres/Chapitre9_F/9.6-Vectral_F.txt b/doc/chapitres/Chapitre9_F/9.6-Vectral_F.txt
deleted file mode 100644
index d5e46a3..0000000
--- a/doc/chapitres/Chapitre9_F/9.6-Vectral_F.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Module de traitement vectral basé sur des opérations de transformée de Fourier rapide (FFT). **à vérifier avec Olivier!**
-
-Potentiomètres:
--Gate Threshold: Seuil (en décibels) à partir duquel la porte de bruit s'active.
--Gate Attenuation: Niveau (en décibels) du signal diffusé par la porte de bruit.
--Upward Time Factor: Coefficient de filtrage pour les paniers de fréquence ascendants.
--Downward Time Factor: Coefficient de filtrage pour les paniers de fréquence descendants.
--Phase Time Factor: Coefficient de filtrage créant un effet de flou obtenu par manipulation de la phase du signal.
--High Freq Damping: Facteur d'atténuation des hautes fréquences.
--Dry/Wet: Rapport de niveau entre le son original et le son traité par le module.
-
-Paramètres fixes:
--FFT Size: Taille de la fenêtre de la transformée de Fourier rapide (en échantillons - 16, 32, 64, 128, 256, 512, 1024, 2048, 4096 ou 8192).
--FFT Envelope: Type d'enveloppe utilisée pour la transformée de Fourier rapide (rectangulaire, Hanning, Hamming, Bartlett, Blackmann 3, 4 ou 7, Tuckey ou sinusoïdale).
--FFT Overlaps: Facteur de chevauchement des fenêtres de transformée de Fourier rapide (1, 2, 4, 8 ou 16).
--# of Polyphony: Nombre de voix de polyphonie jouées simultanément; paramètre ajustable à l'initialisation du module seulement. 
--Polyphony spread: Variation de hauteur entre les différentes voix de polyphonie (chorus); paramètre ajustable seulement à l'initialisation du module.
-
-Paramètres du graphique:
--Overall Amplitude: Définit l'enveloppe d'amplitude appliquée au son sur sa durée totale en secondes.
\ No newline at end of file
diff --git a/doc/chapitres/ListeParametresFixes.txt b/doc/chapitres/ListeParametresFixes.txt
deleted file mode 100644
index 2d0c73b..0000000
--- a/doc/chapitres/ListeParametresFixes.txt
+++ /dev/null
@@ -1,55 +0,0 @@
-Paramètres fixes
-
--Degrade: Filter type, Clip type, # of polyphony, polyphony spread
--Distortion: Pre filter type, Post filter type, # of polyphony, polyphony spread
--DynamicsProcessor: Compression Ratio, # of polyphony, polyphony spread
--Gate: # of polyphony, polyphony spread
--WaveShaper: Filter type, # of polyphony, polyphony spread
-
--AMFilter: Filter type, Mod type, # of polyphony, polyphony spread
--BandBrickWall: Label type, # of polyphony, polyphony spread
--BrickWall: Label type, # of polyphony, polyphony spread
--FMFilter: Filter type, Mod type, # of polyphony, polyphony spread
--MaskFilter: Number of stages, # of polyphony, polyphony spread
--ParamEQ: EQ 1 à 4 type, # of polyphony, polyphony spread
--Phaser: Number of stages, # of polyphony, polyphony spread
--Vocoder: # of polyphony, polyphony spread
-
--MultiBandBeatMaker: # of polyphony, polyphony spread
--MultiBandDelay: # of polyphony, polyphony spread
--MultiBandDisto: # of polyphony, polyphony spread
--MultiBandFreqShift: # of polyphony, polyphony spread
--MultiBandGate: # of polyphony, polyphony spread
--MultiBandHarmonizer: Win size, # of polyphony, polyphony spread
--MultiBandReverb: # of polyphony, polyphony spread
-
--ChordMaker: Win size, Voice 1 à 5, # of polyphony, polyphony spread
--FreqShift: # of polyphony, polyphony spread
--Harmonizer: Win size voice 1, win size voice 2, # of polyphony, polyphony spread
--LooperMod: AM LFO type, AM On/Off, FM LFO type, FM On/Off, # of polyphony, polyphony spread
--PitchLooper: Voice 1 à 5, # of polyphony, polyphony spread
-
--Convolve: Size, # of polyphony, polyphony spread
--DetunedResonators: Voice 1 à 8, # of polyphony, polyphony spread
--Resonators: Voice 1 à 8, # of polyphony, polyphony spread
--WaveGuideReverb: # of polyphony, polyphony spread
--WGuideBank: Filter type, # of polyphony, polyphony spread
-
--CrossSynth: Exc Pre filter type, FFT size, FFt envelope, FFT overlaps, # of polyphony, polyphony spread
--Morphing: FFT size, FFT Envelope, FFT overlaps, # of polyphony, polyphony spread
--SpectralDelay: FFT size, FFT envelope, FFT overlaps, # of polyphony, polyphony spread
--SpectralFilter: Filter range, FFT size, FFT envelope, FFT overlaps, # of polyphony, polyphony spread
--SpectralGate: FFT size, FFT envelope, FFT overlaps, # of polyphony, polyphony spread
--Vectral: FFT size, FFT envelope, FFT overlaps, # of polyphony, polyphony spread
-
--AdditiveSynth: # of partials, wave shape, custom wave, # of polyphony, polyphony spread
--CrossModulation: C FreqMode wave, C FreqMode On/Off, M RatioMod wave, M RatioMod On/Off, C IndexMod wave, C IndexMod On/Off, M IndexMod wave, M IndexMod On/Off, # of polyphony, polyphony spread
--Pulsar: Wave shpae, window type, custom wave, # of polyphony, polyphony spread
--StochGrains: Synth type, pitch scaling, pitch algorithm, speed algorithm, duration algorithm, max num of grains
--StochGrains2: Pitch scaling, pitch algorithm, speed algorithm, duration algorithm, max num of grains
--WaveTerrain: X wave type, Y wave type, Terrain size, # of polyphony, polyphony spread
-
--4Delays: delay routing, filter type, # of polyphony, polyphony spread
--BeatMaker: # of polyphony, polyphony spread
--DelayMod: # of polyphony, polyphony spread
--Granulator: discreet transpo # of polyphony, polyphony spread
\ No newline at end of file
diff --git a/doc/chapitres/ListePresets.txt b/doc/chapitres/ListePresets.txt
deleted file mode 100644
index d80f876..0000000
--- a/doc/chapitres/ListePresets.txt
+++ /dev/null
@@ -1,55 +0,0 @@
-Presets
-
--Degrade: Filter type, Clip type, # of polyphony, polyphony spread
--Distortion: Pre filter type, Post filter type, # of polyphony, polyphony spread
--DynamicsProcessor: Compression Ratio, # of polyphony, polyphony spread
--Gate: # of polyphony, polyphony spread
--WaveShaper: Filter type, # of polyphony, polyphony spread
-
--AMFilter: Filter type, Mod type, # of polyphony, polyphony spread
--BandBrickWall: Label type, # of polyphony, polyphony spread
--BrickWall: Label type, # of polyphony, polyphony spread
--FMFilter: Filter type, Mod type, # of polyphony, polyphony spread
--MaskFilter: Number of stages, # of polyphony, polyphony spread
--ParamEQ: EQ 1 à 4 type, # of polyphony, polyphony spread
--Phaser: Number of stages, # of polyphony, polyphony spread
--Vocoder: # of polyphony, polyphony spread
-
--MultiBandBeatMaker: # of polyphony, polyphony spread
--MultiBandDelay: # of polyphony, polyphony spread
--MultiBandDisto: # of polyphony, polyphony spread
--MultiBandFreqShift: # of polyphony, polyphony spread
--MultiBandGate: # of polyphony, polyphony spread
--MultiBandHarmonizer: Win size, # of polyphony, polyphony spread
--MultiBandReverb: # of polyphony, polyphony spread
-
--ChordMaker: Win size, Voice 1 à 5, # of polyphony, polyphony spread
--FreqShift: # of polyphony, polyphony spread
--Harmonizer: Win size voice 1, win size voice 2, # of polyphony, polyphony spread
--LooperMod: AM LFO type, AM On/Off, FM LFO type, FM On/Off, # of polyphony, polyphony spread
--PitchLooper: Voice 1 à 5, # of polyphony, polyphony spread
-
--Convolve: Size, # of polyphony, polyphony spread
--DetunedResonators: Voice 1 à 8, # of polyphony, polyphony spread
--Resonators: Voice 1 à 8, # of polyphony, polyphony spread
--WaveGuideReverb: # of polyphony, polyphony spread
--WGuideBank: Filter type, # of polyphony, polyphony spread
-
--CrossSynth: Exc Pre filter type, FFT size, FFt envelope, FFT overlaps, # of polyphony, polyphony spread
--Morphing: FFT size, FFT Envelope, FFT overlaps, # of polyphony, polyphony spread
--SpectralDelay: FFT size, FFT envelope, FFT overlaps, # of polyphony, polyphony spread
--SpectralFilter: Filter range, FFT size, FFT envelope, FFT overlaps, # of polyphony, polyphony spread
--SpectralGate: FFT size, FFT envelope, FFT overlaps, # of polyphony, polyphony spread
--Vectral: FFT size, FFT envelope, FFT overlaps, # of polyphony, polyphony spread
-
--AdditiveSynth: # of partials, wave shape, custom wave, # of polyphony, polyphony spread
--CrossModulation: C FreqMode wave, C FreqMode On/Off, M RatioMod wave, M RatioMod On/Off, C IndexMod wave, C IndexMod On/Off, M IndexMod wave, M IndexMod On/Off, # of polyphony, polyphony spread
--Pulsar: Wave shpae, window type, custom wave, # of polyphony, polyphony spread
--StochGrains: Synth type, pitch scaling, pitch algorithm, speed algorithm, duration algorithm, max num of grains
--StochGrains2: Pitch scaling, pitch algorithm, speed algorithm, duration algorithm, max num of grains
--WaveTerrain: X wave type, Y wave type, Terrain size, # of polyphony, polyphony spread
-
--4Delays: delay routing, filter type, # of polyphony, polyphony spread
--BeatMaker: # of polyphony, polyphony spread
--DelayMod: # of polyphony, polyphony spread
--Granulator: discreet transpo # of polyphony, polyphony spread
\ No newline at end of file
diff --git a/doc/chapitres/ListeSliders.txt b/doc/chapitres/ListeSliders.txt
deleted file mode 100644
index b1645f1..0000000
--- a/doc/chapitres/ListeSliders.txt
+++ /dev/null
@@ -1,55 +0,0 @@
-Sliders:
-
--Degrade: Bit Depth, sampling rate ratio, wrap threshold, filter freq, filter Q, dry/wet
--Distortion: Pre filter freq, pre filter Q, drive, post filter freq, post filter Q
--DynamicsProcessor: Input Gain, Compression Thresh, COmpression Rise Time, compression fall time, compression knee, Gate thresh, gate slope, output gain
--Gate: threshold, rise time, fall time
--WaveShaper: filter freq, filter Q
-
--AMFilter: filter freq, resonance, mod depth, mod freq, dry/wet
--BandBrickWall: cutoff frequency, bandwidth frequency, filter order
--BrickWall: cutoff frequency, filter order
--FMFilter: filter freq, resonance, mod depth, mod freq, dry/wet
--MaskFilter: filter limits
--ParamEQ: freq 1, freq 1 Q, freq 1 boost/cut, même chose pour freq 2 à 4.
--Phaser: center freq, Q factor, Notch spread, feedback, dry/wet
--Vocoder: base frequency, frequency spread, Q factor, time response, gain, num of bands
-
--MultiBandBeatMaker: Frequency splitter, # of taps, tempo, tap length, beat 1 à 3: index, distribution, gain; global seed.
--MultiBandDelay: frequency splitter, dry/wet, delay band 1, feedback band 1, gain band 1, delay band 3, feedback band 3, gain band 3.
--MultiBandDisto: Frequency splitter, band 1 à 4: drive, slope, gain
--MultiBandFreqShift: frequency splitter, band 1 à 4: freq shift, gain; dry/wet
--MultiBandGate: frequency splitter, band 1 à 4: threshold, gain; rise time, fall time
--MultiBandHarmonizer: frequency splitter, band 1 à 4: transpo, feedback, gain; dry/wet
--MultiBandReverb: frequency splitter, band 1 à 4: reverb, cutoff, gain; dry/wet
-
--ChordMaker: Voice 1 à 5: transpo, gain; feedback, dry/wet
--FreqShift: Frequency shift, dry/wet
--Harmonizer: transpo voice 1, transpo voice 2, feedback, dry/wet
--LooperMod: AM range, AM speed, FM range, FM speed, index range, dry/wet
--PitchLooper: Voice 1 à 5: transpo, gain
-
--Convolve: dry/wet
--DetunedResonators: pitch offset, amp random amp, amp random speed, delay random amp, delay random speed, detune factor, pitch voice 1 à 8, feedback, dry/wet
--Resonators: pitch offset, amp random amp, amp random speed, delay random amp, delay random speed, feedback, dry/wet, pitch voice 1 à 8
--WaveGuideReverb: room size, cutoff frequency, dry/wet
--WGuideBank: base freq, WG expansion, WG feedback, WG filter, amp deviation amp, amp deviation speed, freq deviation amp, freq deviation speed, dry/wet
-
--CrossSynth: exciter pre filter freq, exciter pre filter Q, dry/wet
--Morphing: morph src1 <-> src2, dry/wet
--SpectralDelay: bin regions, band 1 à 6: delay, amp; feedback, dry/wet
--SpectralFilter: filters interpolation, dry/wet
--SpectralGate: gate threshold, gate attenuation
--Vectral: gate threshold, gate attenuation, upward time factor, downward time factor, phase time factor, high freq damping, dry/wet
-
--AdditiveSynth: base frequency, partials spread, partials freq rand amp, partials freq rand speed, partials amp rand amp, partials amp rand speed, amplitude factor, chorus depth, chorus feedback, chorus dry/wet.
--CrossModulation: carrier frequency, C FreqMod Range, C FreqMod speed, modulator ratio, M RatioMod range, M RatioMod speed, carrier index, C IndexMod Range, C IndexMod speed, modulator index, M IndexMode range, M IndexMode speed.
--Pulsar: base frequency, pulsar width, detune factor, detune speed
--StochGrains: pitch offset, pitch range, speed range, duration range, brightness range, detune range, intensity range, pan range, density, global seed
--StochGrains2: pitch offset, pitch range, speed range, duration range, sample start range, intensity range, pan range, density, global seed
--WaveTerrain: X Frequency, Y Frequency, X & Y sharpness, terrain frequency, terrain deviation.
-
--4Delays: delay 1 et 2: right, left, feedback, mix; jitter amp, jitter speed, filter freq, filter Q, dry/wet
--BeatMaker:# of taps, tempo, beat 1 à 3: tap length, index, distribution, gain; global seed.
--DelayMod: delay left, delay right, AmpModDepth Left, AmpModDepth right, AmpModFreq left, AmpModFreq right, DelayModDepth left, DelayModDepth right, DelayModFreq left, DelayModFreq right, feedback, dry/wet
--Granulator: transpose, grain position, position random, pitch random, grain duration, # of grains.
\ No newline at end of file
diff --git a/doc/chapitres/template.log b/doc/chapitres/template.log
deleted file mode 100644
index 45bdbda..0000000
--- a/doc/chapitres/template.log
+++ /dev/null
@@ -1,1170 +0,0 @@
-This is pdfTeX, Version 3.1415926-1.40.11 (TeX Live 2010) (format=pdflatex 2010.7.21)  1 AUG 2012 17:06
-entering extended mode
- restricted \write18 enabled.
- file:line:error style messages enabled.
- %&-line parsing enabled.
-**template.tex
-(./template.tex
-LaTeX2e <2009/09/24>
-Babel <v3.8l> and hyphenation patterns for english, dumylang, nohyphenation, ge
-rman-x-2009-06-19, ngerman-x-2009-06-19, ancientgreek, ibycus, arabic, armenian
-, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danish, dutch, u
-kenglish, usenglishmax, esperanto, estonian, farsi, finnish, french, galician, 
-german, ngerman, swissgerman, monogreek, greek, hungarian, icelandic, assamese,
- bengali, gujarati, hindi, kannada, malayalam, marathi, oriya, panjabi, tamil, 
-telugu, indonesian, interlingua, irish, italian, kurmanji, lao, latin, latvian,
- lithuanian, mongolian, mongolianlmc, bokmal, nynorsk, polish, portuguese, roma
-nian, russian, sanskrit, serbian, slovak, slovenian, spanish, swedish, turkish,
- turkmen, ukrainian, uppersorbian, welsh, loaded.
-./template.tex:1: Undefined control sequence.
-l.1 \section
-            {Hiérarchie}
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-
-
-./template.tex:1: LaTeX Error: Missing \begin{document}.
-
-See the LaTeX manual or LaTeX Companion for explanation.
-Type  H <return>  for immediate help.
- ...                                              
-                                                  
-l.1 \section{H
-              iérarchie}
-You're in trouble here.  Try typing  <return>  to proceed.
-If that doesn't work, type  X <return>  to quit.
-
-Missing character: There is no H in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no © in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no h in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no e in font nullfont!
-
-Overfull \hbox (20.0pt too wide) in paragraph at lines 1--2
-[] 
- []
-
-./template.tex:3: Undefined control sequence.
-l.3 \subsection
-               {Chapitres}
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-
-
-./template.tex:3: LaTeX Error: Missing \begin{document}.
-
-See the LaTeX manual or LaTeX Companion for explanation.
-Type  H <return>  for immediate help.
- ...                                              
-                                                  
-l.3 \subsection{C
-                 hapitres}
-You're in trouble here.  Try typing  <return>  to proceed.
-If that doesn't work, type  X <return>  to quit.
-
-Missing character: There is no C in font nullfont!
-Missing character: There is no h in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-
-Overfull \hbox (20.0pt too wide) in paragraph at lines 3--4
-[] 
- []
-
-
-./template.tex:5: LaTeX Error: Missing \begin{document}.
-
-See the LaTeX manual or LaTeX Companion for explanation.
-Type  H <return>  for immediate help.
- ...                                              
-                                                  
-l.5 C
-     haque chapitre (chacun couvrant une section de l'interface ou une secti...
-
-You're in trouble here.  Try typing  <return>  to proceed.
-If that doesn't work, type  X <return>  to quit.
-
-Missing character: There is no C in font nullfont!
-Missing character: There is no h in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no q in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no h in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no ( in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no h in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no v in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no ' in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no f in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no ) in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no ª in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no © in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no f in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no h in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no © in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no © in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no " in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no h in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no " in font nullfont!
-Missing character: There is no . in font nullfont!
-Missing character: There is no L in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no h in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no f in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no h in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no , in font nullfont!
-Missing character: There is no " in font nullfont!
-Missing character: There is no C in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no 5 in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no . in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no x in font nullfont!
-Missing character: There is no " in font nullfont!
-Missing character: There is no . in font nullfont!
-Missing character: There is no E in font nullfont!
-Missing character: There is no x in font nullfont!
-Missing character: There is no . in font nullfont!
-Missing character: There is no : in font nullfont!
-
-Overfull \hbox (20.0pt too wide) in paragraph at lines 5--7
-[]
- []
-
-
-./template.tex:8: LaTeX Error: Missing \begin{document}.
-
-See the LaTeX manual or LaTeX Companion for explanation.
-Type  H <return>  for immediate help.
- ...                                              
-                                                  
-l.8 \begin{verbatim}
-                    
-You're in trouble here.  Try typing  <return>  to proceed.
-If that doesn't work, type  X <return>  to quit.
-
-
-Overfull \hbox (20.0pt too wide) in paragraph at lines 8--8
-[] 
- []
-
-
-Overfull \hbox (94.49918pt too wide) in paragraph at lines 11--11
-[]\OT1/cmtt/m/n/10 \chapter{Template}[] 
- []
-
-
-Overfull \hbox (136.49881pt too wide) in paragraph at lines 11--11
-[]\OT1/cmtt/m/n/10 \input{chapitres/template}[] 
- []
-
-Missing character: There is no L in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no g in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no : in font nullfont!
-
-Overfull \hbox (20.0pt too wide) in paragraph at lines 16--16
-[] 
- []
-
-
-Overfull \hbox (78.74931pt too wide) in paragraph at lines 20--20
-[]\OT1/cmtt/m/n/10 \section{titre}[] 
- []
-
-
-Overfull \hbox (94.49918pt too wide) in paragraph at lines 20--20
-[]\OT1/cmtt/m/n/10 \subsection{titre}[] 
- []
-
-
-Overfull \hbox (110.24904pt too wide) in paragraph at lines 20--20
-[]\OT1/cmtt/m/n/10 \subsubsection{titre}[] 
- []
-
-Missing character: There is no s in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no © in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no © in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no © in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no b in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no ¨ in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no . in font nullfont!
-./template.tex:25: Undefined control sequence.
-l.25 \subsection
-                {Images}
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-
-Missing character: There is no I in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no g in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-
-Overfull \hbox (20.0pt too wide) in paragraph at lines 25--26
-[] 
- []
-
-Missing character: There is no L in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no g in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no , in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no f in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no P in font nullfont!
-Missing character: There is no D in font nullfont!
-Missing character: There is no F in font nullfont!
-Missing character: There is no , in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no v in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no © in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no , in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no h in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no , in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no   in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no ' in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no © in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no " in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no g in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no " in font nullfont!
-Missing character: There is no . in font nullfont!
-Missing character: There is no U in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no g in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no , in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no © in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no , in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no © in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no © in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no   in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no ' in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no " in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no I in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no g in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no " in font nullfont!
-Missing character: There is no , in font nullfont!
-Missing character: There is no q in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no 3 in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no ¨ in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no , in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no : in font nullfont!
-
-Overfull \hbox (20.0pt too wide) in paragraph at lines 27--29
-[]
- []
-
-
-Overfull \hbox (20.0pt too wide) in paragraph at lines 30--30
-[] 
- []
-
-Missing character: There is no L in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no ' in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no g in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no . in font nullfont!
-Missing character: There is no L in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no h in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no f in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no h in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no , in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no   in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no " in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no g in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no " in font nullfont!
-Missing character: There is no . in font nullfont!
-Missing character: There is no L in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no © in font nullfont!
-Missing character: There is no g in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no   in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no f in font nullfont!
-Missing character: There is no f in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no h in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no . in font nullfont!
-Missing character: There is no E in font nullfont!
-Missing character: There is no x in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no ' in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no g in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no © in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no © in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no   in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no ' in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no g in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no v in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no : in font nullfont!
-
-Overfull \hbox (20.0pt too wide) in paragraph at lines 39--39
-[] 
- []
-
-
-Overfull \hbox (388.49661pt too wide) in paragraph at lines 41--41
-[]\OT1/cmtt/m/n/10 \insertImage{3}{template/preferences}{Exemple d'insertion d'
-image simple.}[] 
- []
-
-./template.tex:43: Undefined control sequence.
-l.43 \insertImage
-                 {3}{template/preferences}{Exemple d'insertion d'image simple.}
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-
-Missing character: There is no 3 in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no / in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no f in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no E in font nullfont!
-Missing character: There is no x in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no ' in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no ' in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no g in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no . in font nullfont!
-
-Overfull \hbox (20.0pt too wide) in paragraph at lines 43--44
-[]
- []
-
-./template.tex:45: Undefined control sequence.
-l.45 \insertImageLeft
-                     {2.5}{template/postprocessing}{
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-
-Missing character: There is no 2 in font nullfont!
-Missing character: There is no . in font nullfont!
-Missing character: There is no 5 in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no / in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no g in font nullfont!
-Missing character: There is no L in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no P in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no - in font nullfont!
-Missing character: There is no P in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no g in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no ' in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no q in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no f in font nullfont!
-Missing character: There is no f in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no   in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no . in font nullfont!
-
-Overfull \hbox (20.0pt too wide) in paragraph at lines 45--53
-[]
- []
-
-./template.tex:54: Undefined control sequence.
-l.54 \insertImageRight
-                      {2.5}{template/postprocessing}{
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-
-Missing character: There is no 2 in font nullfont!
-Missing character: There is no . in font nullfont!
-Missing character: There is no 5 in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no / in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no g in font nullfont!
-Missing character: There is no L in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no P in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no - in font nullfont!
-Missing character: There is no P in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no g in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no ' in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no q in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no f in font nullfont!
-Missing character: There is no f in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no à in font nullfont!
-Missing character: There is no   in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no s in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no i in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no p in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no m in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no d in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no l in font nullfont!
-Missing character: There is no e in font nullfont!
-Missing character: There is no c in font nullfont!
-Missing character: There is no o in font nullfont!
-Missing character: There is no u in font nullfont!
-Missing character: There is no r in font nullfont!
-Missing character: There is no a in font nullfont!
-Missing character: There is no n in font nullfont!
-Missing character: There is no t in font nullfont!
-Missing character: There is no . in font nullfont!
-)
-! Emergency stop.
-<*> template.tex
-                
-*** (job aborted, no legal \end found)
-
- 
-Here is how much of TeX's memory you used:
- 11 strings out of 493747
- 186 string characters out of 3143546
- 51070 words of memory out of 3000000
- 3402 multiletter control sequences out of 15000+200000
- 3808 words of font info for 15 fonts, out of 3000000 for 9000
- 714 hyphenation exceptions out of 8191
- 18i,1n,14p,174b,156s stack positions out of 5000i,500n,10000p,200000b,50000s
-!  ==> Fatal error occurred, no output PDF file produced!
diff --git a/doc/chapitres/template.tex b/doc/chapitres/template.tex
deleted file mode 100644
index f875a19..0000000
--- a/doc/chapitres/template.tex
+++ /dev/null
@@ -1,61 +0,0 @@
-\section{Hiérarchie}
-
-\subsection{Chapitres}
-
-Chaque chapitre (chacun couvrant une section de l'interface ou une section de tutoriel) doit être écrit dans un fichier séparé dans le dossier "chapitres".
-Les chapitres sont inclus dans le fichier principal, "Cecilia5\_manuel.tex". Ex.:
-
-\begin{verbatim}
-\chapter{Template}
-\input{chapitres/template}
-\end{verbatim}
-
-\noindent
-Les tags :
-
-\begin{verbatim}
-\section{titre}
-\subsection{titre}
-\subsubsection{titre}
-\end{verbatim}
-
-\noindent
-seront utilisés pour délimiter les sections et créer la table des matières.
-
-\subsection{Images}
-
-Les images, en format PDF, doivent résider dans un dossier, portant le nom du chapitre, à l'intérieur du dossier "images".
-Une image simple, centrée, est insérée à l'aide de la commande "insertImage", qui prend 3 paramètres, soit:
-
-\begin{enumerate}
-    \item La taille de l'image est pouce.
-    \item Le path du fichier, à partir du dossier "images".
-    \item La légende à afficher.
-\end{enumerate}
-
-\noindent
-Exemple d'image insérée à l'aide de la ligne suivante:
-
-\begin{verbatim}
-\insertImage{3}{template/preferences}{Exemple d'insertion d'image simple.}
-\end{verbatim}
-
-\insertImage{3}{template/preferences}{Exemple d'insertion d'image simple.}
-
-\insertImageLeft{2.5}{template/postprocessing}{
-La section Post-Processing permet d'appliquer des effets à la suite du traitement produit par le module courant.
-\bigskip
-\bigskip
-\bigskip
-\bigskip
-\bigskip
-}
-
-\insertImageRight{2.5}{template/postprocessing}{
-La section Post-Processing permet d'appliquer des effets à la suite du traitement produit par le module courant.
-\bigskip
-\bigskip
-\bigskip
-\bigskip
-\bigskip
-}
diff --git a/doc/images/Chapitre10/1-Parametres_AddSynth.png b/doc/images/Chapitre10/1-Parametres_AddSynth.png
deleted file mode 100644
index 2e448df..0000000
Binary files a/doc/images/Chapitre10/1-Parametres_AddSynth.png and /dev/null differ
diff --git a/doc/images/Chapitre10/2-Parametres_Pulsar.png b/doc/images/Chapitre10/2-Parametres_Pulsar.png
deleted file mode 100644
index bc49dfc..0000000
Binary files a/doc/images/Chapitre10/2-Parametres_Pulsar.png and /dev/null differ
diff --git a/doc/images/Chapitre10/3-Parametres_StochGrains1.png b/doc/images/Chapitre10/3-Parametres_StochGrains1.png
deleted file mode 100644
index 92f3611..0000000
Binary files a/doc/images/Chapitre10/3-Parametres_StochGrains1.png and /dev/null differ
diff --git a/doc/images/Chapitre10/4-Parametres_StochGrains2.png b/doc/images/Chapitre10/4-Parametres_StochGrains2.png
deleted file mode 100644
index 8b19277..0000000
Binary files a/doc/images/Chapitre10/4-Parametres_StochGrains2.png and /dev/null differ
diff --git a/doc/images/Chapitre11/1-Parametres_4Delays.png b/doc/images/Chapitre11/1-Parametres_4Delays.png
deleted file mode 100644
index 025c013..0000000
Binary files a/doc/images/Chapitre11/1-Parametres_4Delays.png and /dev/null differ
diff --git a/doc/images/Chapitre11/2-Parametres_BeatMaker.png b/doc/images/Chapitre11/2-Parametres_BeatMaker.png
deleted file mode 100644
index 1ee946f..0000000
Binary files a/doc/images/Chapitre11/2-Parametres_BeatMaker.png and /dev/null differ
diff --git a/doc/images/Chapitre11/3-Parametres_DelayMod.png b/doc/images/Chapitre11/3-Parametres_DelayMod.png
deleted file mode 100644
index 3094da9..0000000
Binary files a/doc/images/Chapitre11/3-Parametres_DelayMod.png and /dev/null differ
diff --git a/doc/images/Chapitre11/4-Parametres_Granulator.png b/doc/images/Chapitre11/4-Parametres_Granulator.png
deleted file mode 100644
index 4f23dca..0000000
Binary files a/doc/images/Chapitre11/4-Parametres_Granulator.png and /dev/null differ
diff --git a/doc/images/Chapitre2/1-Interface-graphique.png b/doc/images/Chapitre2/1-Interface-graphique.png
deleted file mode 100644
index b9970b0..0000000
Binary files a/doc/images/Chapitre2/1-Interface-graphique.png and /dev/null differ
diff --git a/doc/images/Chapitre2/10-Graphique.png b/doc/images/Chapitre2/10-Graphique.png
deleted file mode 100644
index dacba7f..0000000
Binary files a/doc/images/Chapitre2/10-Graphique.png and /dev/null differ
diff --git a/doc/images/Chapitre2/2-Transport.png b/doc/images/Chapitre2/2-Transport.png
deleted file mode 100644
index b3a01e8..0000000
Binary files a/doc/images/Chapitre2/2-Transport.png and /dev/null differ
diff --git a/doc/images/Chapitre2/2a-Play.png b/doc/images/Chapitre2/2a-Play.png
deleted file mode 100644
index e15b093..0000000
Binary files a/doc/images/Chapitre2/2a-Play.png and /dev/null differ
diff --git a/doc/images/Chapitre2/2b-Record.png b/doc/images/Chapitre2/2b-Record.png
deleted file mode 100644
index fd7921b..0000000
Binary files a/doc/images/Chapitre2/2b-Record.png and /dev/null differ
diff --git a/doc/images/Chapitre2/3-SaveAudioFileAs.png b/doc/images/Chapitre2/3-SaveAudioFileAs.png
deleted file mode 100644
index e0be4ad..0000000
Binary files a/doc/images/Chapitre2/3-SaveAudioFileAs.png and /dev/null differ
diff --git a/doc/images/Chapitre2/4-Input.png b/doc/images/Chapitre2/4-Input.png
deleted file mode 100644
index ab760e4..0000000
Binary files a/doc/images/Chapitre2/4-Input.png and /dev/null differ
diff --git a/doc/images/Chapitre2/5-Output.png b/doc/images/Chapitre2/5-Output.png
deleted file mode 100644
index 2f8d64c..0000000
Binary files a/doc/images/Chapitre2/5-Output.png and /dev/null differ
diff --git a/doc/images/Chapitre2/6-Icones/1-Haut-parleur.png b/doc/images/Chapitre2/6-Icones/1-Haut-parleur.png
deleted file mode 100644
index 3ea54ee..0000000
Binary files a/doc/images/Chapitre2/6-Icones/1-Haut-parleur.png and /dev/null differ
diff --git a/doc/images/Chapitre2/6-Icones/1.1-ChooseSoundfilePlayer.png b/doc/images/Chapitre2/6-Icones/1.1-ChooseSoundfilePlayer.png
deleted file mode 100644
index 0fa19d3..0000000
Binary files a/doc/images/Chapitre2/6-Icones/1.1-ChooseSoundfilePlayer.png and /dev/null differ
diff --git a/doc/images/Chapitre2/6-Icones/2-Ciseaux.png b/doc/images/Chapitre2/6-Icones/2-Ciseaux.png
deleted file mode 100644
index d4bf97a..0000000
Binary files a/doc/images/Chapitre2/6-Icones/2-Ciseaux.png and /dev/null differ
diff --git a/doc/images/Chapitre2/6-Icones/2.1-ChooseSoundfileEditor.png b/doc/images/Chapitre2/6-Icones/2.1-ChooseSoundfileEditor.png
deleted file mode 100644
index 49beb5a..0000000
Binary files a/doc/images/Chapitre2/6-Icones/2.1-ChooseSoundfileEditor.png and /dev/null differ
diff --git a/doc/images/Chapitre2/6-Icones/3-Fleches.png b/doc/images/Chapitre2/6-Icones/3-Fleches.png
deleted file mode 100644
index 62c2666..0000000
Binary files a/doc/images/Chapitre2/6-Icones/3-Fleches.png and /dev/null differ
diff --git a/doc/images/Chapitre2/6-Icones/3.1-Icones-In.png b/doc/images/Chapitre2/6-Icones/3.1-Icones-In.png
deleted file mode 100644
index 61ce6fd..0000000
Binary files a/doc/images/Chapitre2/6-Icones/3.1-Icones-In.png and /dev/null differ
diff --git a/doc/images/Chapitre2/6-Icones/3.2-Icones-Out.png b/doc/images/Chapitre2/6-Icones/3.2-Icones-Out.png
deleted file mode 100644
index 0b7c6e7..0000000
Binary files a/doc/images/Chapitre2/6-Icones/3.2-Icones-Out.png and /dev/null differ
diff --git a/doc/images/Chapitre2/6-Icones/3.3-Icones-SSC.png b/doc/images/Chapitre2/6-Icones/3.3-Icones-SSC.png
deleted file mode 100644
index bbd306f..0000000
Binary files a/doc/images/Chapitre2/6-Icones/3.3-Icones-SSC.png and /dev/null differ
diff --git a/doc/images/Chapitre2/6-Icones/5-Triangle.png b/doc/images/Chapitre2/6-Icones/5-Triangle.png
deleted file mode 100644
index 4ef4249..0000000
Binary files a/doc/images/Chapitre2/6-Icones/5-Triangle.png and /dev/null differ
diff --git a/doc/images/Chapitre2/6-Icones/6-SourceSoundControls.png b/doc/images/Chapitre2/6-Icones/6-SourceSoundControls.png
deleted file mode 100644
index 89e6cdf..0000000
Binary files a/doc/images/Chapitre2/6-Icones/6-SourceSoundControls.png and /dev/null differ
diff --git a/doc/images/Chapitre2/7-Post-processing.png b/doc/images/Chapitre2/7-Post-processing.png
deleted file mode 100644
index 2e78e33..0000000
Binary files a/doc/images/Chapitre2/7-Post-processing.png and /dev/null differ
diff --git a/doc/images/Chapitre2/8-Presets.png b/doc/images/Chapitre2/8-Presets.png
deleted file mode 100644
index 4bf2127..0000000
Binary files a/doc/images/Chapitre2/8-Presets.png and /dev/null differ
diff --git a/doc/images/Chapitre2/9-Potentiometres.png b/doc/images/Chapitre2/9-Potentiometres.png
deleted file mode 100644
index 1da26a1..0000000
Binary files a/doc/images/Chapitre2/9-Potentiometres.png and /dev/null differ
diff --git a/doc/images/Chapitre3/1-Menu_preferences.png b/doc/images/Chapitre3/1-Menu_preferences.png
deleted file mode 100644
index fea05fd..0000000
Binary files a/doc/images/Chapitre3/1-Menu_preferences.png and /dev/null differ
diff --git a/doc/images/Chapitre3/10-Menu_edit.png b/doc/images/Chapitre3/10-Menu_edit.png
deleted file mode 100644
index b08a77d..0000000
Binary files a/doc/images/Chapitre3/10-Menu_edit.png and /dev/null differ
diff --git a/doc/images/Chapitre3/11-Menu_Action.png b/doc/images/Chapitre3/11-Menu_Action.png
deleted file mode 100644
index e76f71a..0000000
Binary files a/doc/images/Chapitre3/11-Menu_Action.png and /dev/null differ
diff --git a/doc/images/Chapitre3/12-ChooseFilenameSuffix.png b/doc/images/Chapitre3/12-ChooseFilenameSuffix.png
deleted file mode 100644
index 268f029..0000000
Binary files a/doc/images/Chapitre3/12-ChooseFilenameSuffix.png and /dev/null differ
diff --git a/doc/images/Chapitre3/13-Menu_Window.png b/doc/images/Chapitre3/13-Menu_Window.png
deleted file mode 100644
index cfe44a7..0000000
Binary files a/doc/images/Chapitre3/13-Menu_Window.png and /dev/null differ
diff --git a/doc/images/Chapitre3/14-Menu_Help.png b/doc/images/Chapitre3/14-Menu_Help.png
deleted file mode 100644
index 430c1ac..0000000
Binary files a/doc/images/Chapitre3/14-Menu_Help.png and /dev/null differ
diff --git a/doc/images/Chapitre3/15-OpenSoundControl.png b/doc/images/Chapitre3/15-OpenSoundControl.png
deleted file mode 100644
index 7789835..0000000
Binary files a/doc/images/Chapitre3/15-OpenSoundControl.png and /dev/null differ
diff --git a/doc/images/Chapitre3/2-Onglet_dossier.png b/doc/images/Chapitre3/2-Onglet_dossier.png
deleted file mode 100644
index 0dd8772..0000000
Binary files a/doc/images/Chapitre3/2-Onglet_dossier.png and /dev/null differ
diff --git a/doc/images/Chapitre3/3-Onglet_haut-parleur.png b/doc/images/Chapitre3/3-Onglet_haut-parleur.png
deleted file mode 100644
index d381917..0000000
Binary files a/doc/images/Chapitre3/3-Onglet_haut-parleur.png and /dev/null differ
diff --git a/doc/images/Chapitre3/4-Onglet_MIDI.png b/doc/images/Chapitre3/4-Onglet_MIDI.png
deleted file mode 100644
index 2fd5ac3..0000000
Binary files a/doc/images/Chapitre3/4-Onglet_MIDI.png and /dev/null differ
diff --git a/doc/images/Chapitre3/5-Onglet_export.png b/doc/images/Chapitre3/5-Onglet_export.png
deleted file mode 100644
index 1594ff1..0000000
Binary files a/doc/images/Chapitre3/5-Onglet_export.png and /dev/null differ
diff --git a/doc/images/Chapitre3/6-Onglet_Cecilia5.png b/doc/images/Chapitre3/6-Onglet_Cecilia5.png
deleted file mode 100644
index e92769f..0000000
Binary files a/doc/images/Chapitre3/6-Onglet_Cecilia5.png and /dev/null differ
diff --git a/doc/images/Chapitre3/7-Menu_python.png b/doc/images/Chapitre3/7-Menu_python.png
deleted file mode 100644
index c10f97a..0000000
Binary files a/doc/images/Chapitre3/7-Menu_python.png and /dev/null differ
diff --git a/doc/images/Chapitre3/8-Menu_file.png b/doc/images/Chapitre3/8-Menu_file.png
deleted file mode 100644
index 6b23ba2..0000000
Binary files a/doc/images/Chapitre3/8-Menu_file.png and /dev/null differ
diff --git a/doc/images/Chapitre3/8b-ModulesCategories.png b/doc/images/Chapitre3/8b-ModulesCategories.png
deleted file mode 100644
index 7fcd26f..0000000
Binary files a/doc/images/Chapitre3/8b-ModulesCategories.png and /dev/null differ
diff --git a/doc/images/Chapitre3/9-ChooseTextEditor.png b/doc/images/Chapitre3/9-ChooseTextEditor.png
deleted file mode 100644
index ac29a04..0000000
Binary files a/doc/images/Chapitre3/9-ChooseTextEditor.png and /dev/null differ
diff --git a/doc/images/Chapitre4/1-Parametres_Degrade.png b/doc/images/Chapitre4/1-Parametres_Degrade.png
deleted file mode 100644
index 2447199..0000000
Binary files a/doc/images/Chapitre4/1-Parametres_Degrade.png and /dev/null differ
diff --git a/doc/images/Chapitre4/2-Parametres_Distorsion.png b/doc/images/Chapitre4/2-Parametres_Distorsion.png
deleted file mode 100644
index b6c6c78..0000000
Binary files a/doc/images/Chapitre4/2-Parametres_Distorsion.png and /dev/null differ
diff --git a/doc/images/Chapitre4/3-Parametres_Dynamics.png b/doc/images/Chapitre4/3-Parametres_Dynamics.png
deleted file mode 100644
index 5f53e94..0000000
Binary files a/doc/images/Chapitre4/3-Parametres_Dynamics.png and /dev/null differ
diff --git a/doc/images/Chapitre4/4-Parametres_WaveShaper.png b/doc/images/Chapitre4/4-Parametres_WaveShaper.png
deleted file mode 100644
index 06797c7..0000000
Binary files a/doc/images/Chapitre4/4-Parametres_WaveShaper.png and /dev/null differ
diff --git a/doc/images/Chapitre5/1-Parametres_AMFilter.png b/doc/images/Chapitre5/1-Parametres_AMFilter.png
deleted file mode 100644
index 4b003cb..0000000
Binary files a/doc/images/Chapitre5/1-Parametres_AMFilter.png and /dev/null differ
diff --git a/doc/images/Chapitre5/2-Parametres_BrickWall.png b/doc/images/Chapitre5/2-Parametres_BrickWall.png
deleted file mode 100644
index a109508..0000000
Binary files a/doc/images/Chapitre5/2-Parametres_BrickWall.png and /dev/null differ
diff --git a/doc/images/Chapitre5/3-Parametres_MaskFilter.png b/doc/images/Chapitre5/3-Parametres_MaskFilter.png
deleted file mode 100644
index d35cdd4..0000000
Binary files a/doc/images/Chapitre5/3-Parametres_MaskFilter.png and /dev/null differ
diff --git a/doc/images/Chapitre5/4-Parametres_ParamEQ.png b/doc/images/Chapitre5/4-Parametres_ParamEQ.png
deleted file mode 100644
index d07133b..0000000
Binary files a/doc/images/Chapitre5/4-Parametres_ParamEQ.png and /dev/null differ
diff --git a/doc/images/Chapitre5/5-Parametres_Phaser.png b/doc/images/Chapitre5/5-Parametres_Phaser.png
deleted file mode 100644
index 6d59b55..0000000
Binary files a/doc/images/Chapitre5/5-Parametres_Phaser.png and /dev/null differ
diff --git a/doc/images/Chapitre5/6-Parametres_Vocoder.png b/doc/images/Chapitre5/6-Parametres_Vocoder.png
deleted file mode 100644
index 09dedd5..0000000
Binary files a/doc/images/Chapitre5/6-Parametres_Vocoder.png and /dev/null differ
diff --git a/doc/images/Chapitre6/1-Parametres_MBBeatMaker.png b/doc/images/Chapitre6/1-Parametres_MBBeatMaker.png
deleted file mode 100644
index 2289fbd..0000000
Binary files a/doc/images/Chapitre6/1-Parametres_MBBeatMaker.png and /dev/null differ
diff --git a/doc/images/Chapitre6/2-Parametres_MBDelay.png b/doc/images/Chapitre6/2-Parametres_MBDelay.png
deleted file mode 100644
index 4e7c971..0000000
Binary files a/doc/images/Chapitre6/2-Parametres_MBDelay.png and /dev/null differ
diff --git a/doc/images/Chapitre6/3-Parametres_MBDisto.png b/doc/images/Chapitre6/3-Parametres_MBDisto.png
deleted file mode 100644
index 3b6c035..0000000
Binary files a/doc/images/Chapitre6/3-Parametres_MBDisto.png and /dev/null differ
diff --git a/doc/images/Chapitre6/4-Parametres_MBFreqShift.png b/doc/images/Chapitre6/4-Parametres_MBFreqShift.png
deleted file mode 100644
index 1dae016..0000000
Binary files a/doc/images/Chapitre6/4-Parametres_MBFreqShift.png and /dev/null differ
diff --git a/doc/images/Chapitre6/5-Parametres_MBBandGate.png b/doc/images/Chapitre6/5-Parametres_MBBandGate.png
deleted file mode 100644
index 09be1fb..0000000
Binary files a/doc/images/Chapitre6/5-Parametres_MBBandGate.png and /dev/null differ
diff --git a/doc/images/Chapitre6/6-Parametres_MBHarmonizer.png b/doc/images/Chapitre6/6-Parametres_MBHarmonizer.png
deleted file mode 100644
index 169640e..0000000
Binary files a/doc/images/Chapitre6/6-Parametres_MBHarmonizer.png and /dev/null differ
diff --git a/doc/images/Chapitre6/7-Parametres_MBReverb.png b/doc/images/Chapitre6/7-Parametres_MBReverb.png
deleted file mode 100644
index 4b66d45..0000000
Binary files a/doc/images/Chapitre6/7-Parametres_MBReverb.png and /dev/null differ
diff --git a/doc/images/Chapitre7/1-Parametres_ChordMaker.png b/doc/images/Chapitre7/1-Parametres_ChordMaker.png
deleted file mode 100644
index 2dd4119..0000000
Binary files a/doc/images/Chapitre7/1-Parametres_ChordMaker.png and /dev/null differ
diff --git a/doc/images/Chapitre7/2-Parametres_FreqShift.png b/doc/images/Chapitre7/2-Parametres_FreqShift.png
deleted file mode 100644
index 87ca95b..0000000
Binary files a/doc/images/Chapitre7/2-Parametres_FreqShift.png and /dev/null differ
diff --git a/doc/images/Chapitre7/3-Parametres_Harmonizer.png b/doc/images/Chapitre7/3-Parametres_Harmonizer.png
deleted file mode 100644
index 1fcfc60..0000000
Binary files a/doc/images/Chapitre7/3-Parametres_Harmonizer.png and /dev/null differ
diff --git a/doc/images/Chapitre7/4-Parametres_LooperMod.png b/doc/images/Chapitre7/4-Parametres_LooperMod.png
deleted file mode 100644
index dccd12f..0000000
Binary files a/doc/images/Chapitre7/4-Parametres_LooperMod.png and /dev/null differ
diff --git a/doc/images/Chapitre7/5-Parametres_PitchLooper.png b/doc/images/Chapitre7/5-Parametres_PitchLooper.png
deleted file mode 100644
index 4155c47..0000000
Binary files a/doc/images/Chapitre7/5-Parametres_PitchLooper.png and /dev/null differ
diff --git a/doc/images/Chapitre8/1-Parametres_Convolve.png b/doc/images/Chapitre8/1-Parametres_Convolve.png
deleted file mode 100644
index d285c4c..0000000
Binary files a/doc/images/Chapitre8/1-Parametres_Convolve.png and /dev/null differ
diff --git a/doc/images/Chapitre8/2-Parametres_DetunedResonators.png b/doc/images/Chapitre8/2-Parametres_DetunedResonators.png
deleted file mode 100644
index a0a5193..0000000
Binary files a/doc/images/Chapitre8/2-Parametres_DetunedResonators.png and /dev/null differ
diff --git a/doc/images/Chapitre8/3-Parametres_Resonators.png b/doc/images/Chapitre8/3-Parametres_Resonators.png
deleted file mode 100644
index c3c35f0..0000000
Binary files a/doc/images/Chapitre8/3-Parametres_Resonators.png and /dev/null differ
diff --git a/doc/images/Chapitre8/4-Parametres_WGuideBank.png b/doc/images/Chapitre8/4-Parametres_WGuideBank.png
deleted file mode 100644
index 62c0c9f..0000000
Binary files a/doc/images/Chapitre8/4-Parametres_WGuideBank.png and /dev/null differ
diff --git a/doc/images/Chapitre9/1-Parametres_CrossSynth.png b/doc/images/Chapitre9/1-Parametres_CrossSynth.png
deleted file mode 100644
index 4c7a0d2..0000000
Binary files a/doc/images/Chapitre9/1-Parametres_CrossSynth.png and /dev/null differ
diff --git a/doc/images/Chapitre9/2-Parametres_Morphing.png b/doc/images/Chapitre9/2-Parametres_Morphing.png
deleted file mode 100644
index c04d14d..0000000
Binary files a/doc/images/Chapitre9/2-Parametres_Morphing.png and /dev/null differ
diff --git a/doc/images/Chapitre9/3-Parametres_SpectralDelay.png b/doc/images/Chapitre9/3-Parametres_SpectralDelay.png
deleted file mode 100644
index 6acc1f3..0000000
Binary files a/doc/images/Chapitre9/3-Parametres_SpectralDelay.png and /dev/null differ
diff --git a/doc/images/Chapitre9/4-Parametres_SpectralFilter.png b/doc/images/Chapitre9/4-Parametres_SpectralFilter.png
deleted file mode 100644
index 982b63a..0000000
Binary files a/doc/images/Chapitre9/4-Parametres_SpectralFilter.png and /dev/null differ
diff --git a/doc/images/Chapitre9/5-Parametres_SpectralGate.png b/doc/images/Chapitre9/5-Parametres_SpectralGate.png
deleted file mode 100644
index fd5f783..0000000
Binary files a/doc/images/Chapitre9/5-Parametres_SpectralGate.png and /dev/null differ
diff --git a/doc/images/Chapitre9/6-Parametres_Vectral.png b/doc/images/Chapitre9/6-Parametres_Vectral.png
deleted file mode 100644
index 700fd55..0000000
Binary files a/doc/images/Chapitre9/6-Parametres_Vectral.png and /dev/null differ
diff --git a/doc/images/template/postprocessing.pdf b/doc/images/template/postprocessing.pdf
deleted file mode 100644
index ac3239a..0000000
Binary files a/doc/images/template/postprocessing.pdf and /dev/null differ
diff --git a/doc/images/template/preferences.pdf b/doc/images/template/preferences.pdf
deleted file mode 100644
index 1146136..0000000
Binary files a/doc/images/template/preferences.pdf and /dev/null differ
diff --git a/scripts/Build_routine_Win32.py b/scripts/Build_routine_Win32.py
index f59499e..e8ccd17 100644
--- a/scripts/Build_routine_Win32.py
+++ b/scripts/Build_routine_Win32.py
@@ -1,18 +1,21 @@
-import os
+import os, sys
 
-build = True
+version = sys.version_info[:2]
 
-os.system("python ..\pyinstaller\Configure.py")
-os.system('python ..\pyinstaller\Makespec.py -F -c --icon=Resources\Cecilia5.ico "Cecilia5.py"')
-if build:
-    os.system('python ..\pyinstaller\Build.py "Cecilia5.spec"')
-    os.system("svn export . Cecilia5_Win")
-    os.system("copy dist\Cecilia5.exe Cecilia5_Win /Y")
-    os.system("rmdir /Q /S Cecilia5_Win\scripts")
-    os.remove("Cecilia5_Win/Cecilia5.py")
-    os.remove("Cecilia5_Win/Resources/Cecilia5.icns")
-    os.remove("Cecilia5_Win/Resources/CeciliaFileIcon5.icns")
-    os.remove("Cecilia5.spec")
-    os.system("rmdir /Q /S build")
-    os.system("rmdir /Q /S dist")
+os.system('C:\Python%d%d\Scripts\pyi-makespec -F -c --icon=Resources\Cecilia5.ico "Cecilia5.py"' % version)
+os.system('C:\Python%d%d\Scripts\pyi-build "Cecilia5.spec"' % version)
+
+os.system("git checkout-index -a -f --prefix=Cecilia5_Win/")
+os.system("copy dist\Cecilia5.exe Cecilia5_Win /Y")
+os.system("rmdir /Q /S Cecilia5_Win\scripts")
+os.system("rmdir /Q /S Cecilia5_Win\doc-en")
+os.remove("Cecilia5_Win/Cecilia5.py")
+os.remove("Cecilia5_Win/Resources/Cecilia5.icns")
+os.remove("Cecilia5_Win/Resources/CeciliaFileIcon5.icns")
+os.remove("Cecilia5.spec")
+os.system("rmdir /Q /S build")
+os.system("rmdir /Q /S dist")
+for f in os.listdir(os.getcwd()):
+    if f.startswith("warn") or f.startswith("logdict"):
+        os.remove(f)
 
diff --git a/scripts/builder_OSX.sh b/scripts/builder_OSX.sh
index 3462b37..d3e2c8f 100755
--- a/scripts/builder_OSX.sh
+++ b/scripts/builder_OSX.sh
@@ -1,13 +1,13 @@
 rm -rf build dist
 
-export DMG_DIR="Cecilia 5.0.8"
-export DMG_NAME="Cecilia_5.0.8.dmg"
+export DMG_DIR="Cecilia5 5.2.0"
+export DMG_NAME="Cecilia5_5.2.0.dmg"
 
 if [ -f setup.py ]; then
     mv setup.py setup_back.py;
 fi
 
-py2applet --make-setup Cecilia5.py Resources/*
+py2applet --make-setup --argv-emulation=0 Cecilia5.py Resources/*
 python setup.py py2app --plist=scripts/info.plist
 rm -f setup.py
 rm -rf build
@@ -15,7 +15,7 @@ mv dist Cecilia5_OSX
 
 if cd Cecilia5_OSX;
 then
-    find . -name .svn -depth -exec rm -rf {} \
+    find . -name .git -depth -exec rm -rf {} \
     find . -name *.pyc -depth -exec rm -f {} \
     find . -name .* -depth -exec rm -f {} \;
 else
@@ -26,18 +26,14 @@ fi
 rm Cecilia5.app/Contents/Resources/Cecilia5.ico
 rm Cecilia5.app/Contents/Resources/CeciliaFileIcon5.ico
 
-ditto --rsrc --arch i386 Cecilia5.app Cecilia5-i386.app
+# keep only 64-bit arch
+ditto --rsrc --arch x86_64 Cecilia5.app Cecilia5-x86_64.app
 rm -rf Cecilia5.app
-mv Cecilia5-i386.app Cecilia5.app
+mv Cecilia5-x86_64.app Cecilia5.app
 
 cd ..
 cp -R Cecilia5_OSX/Cecilia5.app .
 
-# Fixed wrong path in Info.plist
-cd Cecilia5.app/Contents
-awk '{gsub("Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python", "@executable_path/../Frameworks/Python.framework/Versions/2.6/Python")}1' Info.plist > Info.plist_tmp && mv Info.plist_tmp Info.plist
-
-cd ../..
 echo "assembling DMG..."
 mkdir "$DMG_DIR"
 cd "$DMG_DIR"
diff --git a/scripts/info.plist b/scripts/info.plist
index 6c7c9fd..abbeda1 100644
--- a/scripts/info.plist
+++ b/scripts/info.plist
@@ -38,11 +38,11 @@
 	<key>CFBundlePackageType</key>
 	<string>APPL</string>
 	<key>CFBundleShortVersionString</key>
-	<string>5.0.8</string>
+	<string>5.2.0</string>
 	<key>CFBundleSignature</key>
 	<string>????</string>
 	<key>CFBundleVersion</key>
-	<string>5.0.8</string>
+	<string>5.2.0</string>
 	<key>LSHasLocalizedDisplayName</key>
 	<false/>
 	<key>NSAppleScriptEnabled</key>
@@ -62,7 +62,7 @@
 		<key>alias</key>
 		<false/>
 		<key>argv_emulation</key>
-		<true/>
+		<false/>
 		<key>no_chdir</key>
 		<false/>
 		<key>optimize</key>
@@ -78,17 +78,16 @@
 	<array/>
 	<key>PyRuntimeLocations</key>
 	<array>
-		<string>@executable_path/../Frameworks/Python.framework/Versions/2.6/Python</string>
+		<string>@executable_path/../Frameworks/Python.framework/Versions/2.7/Python</string>
 	</array>
 	<key>PythonInfoDict</key>
 	<dict>
 		<key>PythonExecutable</key>
-		<string>@executable_path/../Frameworks/Python.framework/Versions/2.6/Python</string>
+		<string>@executable_path/../Frameworks/Python.framework/Versions/2.7/Python</string>
 		<key>PythonLongVersion</key>
-		<string>2.6.6 (r266:84374, Aug 31 2010, 11:00:51)
-[GCC 4.0.1 (Apple Inc. build 5493)]</string>
+		<string>2.7.8 (v2.7.8:ee879c0ffa11, Jun 29 2014, 21:07:35) \n[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]</string>
 		<key>PythonShortVersion</key>
-		<string>2.6</string>
+		<string>2.7</string>
 		<key>py2app</key>
 		<dict>
 			<key>alias</key>
@@ -96,7 +95,7 @@
 			<key>template</key>
 			<string>app</string>
 			<key>version</key>
-			<string>0.6.4</string>
+			<string>0.9</string>
 		</dict>
 	</dict>
 </dict>
diff --git a/scripts/release_src.sh b/scripts/release_src.sh
old mode 100644
new mode 100755
index 0ddbc00..4b66554
--- a/scripts/release_src.sh
+++ b/scripts/release_src.sh
@@ -5,13 +5,13 @@
 # 2. Execute from cecilia5 folder : ./scripts/release_src.sh
 #
 
-version=5.0.8
+version=5.2.0
 replace=XXX
 
 src_rep=Cecilia5_XXX-src
 src_tar=Cecilia5_XXX-src.tar.bz2
 
-svn export . ${src_rep/$replace/$version}
+git checkout-index -a -f --prefix=${src_rep/$replace/$version}/
 tar -cjvf ${src_tar/$replace/$version} ${src_rep/$replace/$version}
 rm -R ${src_rep/$replace/$version}
 
diff --git a/scripts/win_installer.iss b/scripts/win_installer.iss
index 61e2ea7..cb30aed 100644
--- a/scripts/win_installer.iss
+++ b/scripts/win_installer.iss
@@ -7,17 +7,17 @@
 ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
 AppId={{A970BBE5-4FA8-496E-9823-2491D09DA043}
 AppName=Cecilia5
-AppVersion=5.0.8 beta
+AppVersion=5.2.0
 AppPublisher=iACT.umontreal.ca
-AppPublisherURL=http://code.google.com/p/cecilia5
-AppSupportURL=http://code.google.com/p/cecilia5
-AppUpdatesURL=http://code.google.com/p/cecilia5
+AppPublisherURL=http://ajaxsoundstudio.com/software/cecilia/
+AppSupportURL=https://github.com/belangeo/cecilia5
+AppUpdatesURL=http://ajaxsoundstudio.com/software/cecilia/
 DefaultDirName={pf}\Cecilia5
 DisableDirPage=yes
 DefaultGroupName=Cecilia5
 AllowNoIcons=yes
-LicenseFile=C:\Documents and Settings\user\svn\cecilia5\Cecilia5_Win\Resources\COPYING.txt
-OutputBaseFilename=Cecilia5_5.0.8_setup
+LicenseFile=C:\Users\olivier\git\cecilia5\Cecilia5_Win\Resources\COPYING.txt
+OutputBaseFilename=Cecilia5_5.2.0_setup
 Compression=lzma
 SolidCompression=yes
 ChangesAssociations=yes
@@ -30,8 +30,8 @@ Name: "english"; MessagesFile: "compiler:Default.isl"
 Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
 
 [Files]
-Source: "C:\Documents and Settings\user\svn\cecilia5\Cecilia5_Win\Cecilia5.exe"; DestDir: "{app}"; Flags: ignoreversion
-Source: "C:\Documents and Settings\user\svn\cecilia5\Cecilia5_Win\Resources\*"; DestDir: "{app}\Resources"; Flags: ignoreversion recursesubdirs createallsubdirs
+Source: "C:\Users\olivier\git\cecilia5\Cecilia5_Win\Cecilia5.exe"; DestDir: "{app}"; Flags: ignoreversion
+Source: "C:\Users\olivier\git\cecilia5\Cecilia5_Win\Resources\*"; DestDir: "{app}\Resources"; Flags: ignoreversion recursesubdirs createallsubdirs
 ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
 
 [Registry]
diff --git a/whatsnew.md b/whatsnew.md
new file mode 100644
index 0000000..3de3c1b
--- /dev/null
+++ b/whatsnew.md
@@ -0,0 +1,140 @@
+# Changes #
+
+## Version 5.0.8 ##
+
+- Record button now records in realtime (offline rendering is now triggered with Menubar->Action->Bounce to Disk.
+
+- User can set the starting point by moving the cursor above the grapher.
+
+- Drag and Drop file or folder on the input sound popup to loads sounds.
+
+- Right-click on sound popup opens a "Recent audio files" popup.
+
+- Sliders can be controlled with MIDI or Open Sound Control messages.
+
+- When moving a point on the graph, Alt key clipped the position on the horizontal axis while Shift-Alt keys clipped the position on the vertical axis.
+
+- Added two batch processing modes. Either every presets applied on the selected sound, or the current preset applied to every sounds in the folder.
+
+- Midi notes are automatically assigned to the sampler transposition and controller 7 to the master gain. Must be activated in the preferences.
+
+
+## Version 5.0.7 ##
+
+- Disabled duration slider while playing.
+
+- Fixed segmentation fault on preset changes.
+
+- Added a DropFileTarget on the Grapher (for .c5 or .py files).
+
+- Fixed opening soundfile player/editor on Windows and OSX.
+
+- Changed delay time before a popup close itself (when loosing focus) from 500 ms to 1000 ms.
+
+## Version 5.0.6 ##
+
+- Fixed memory leak occuring on each run play/stop (need pyo [revision 974](https://code.google.com/p/cecilia5/source/detail?r=974)).
+
+- Allow fraction notation in cgen (list entry in the interface).
+
+## Version 5.0.5 ##
+
+- Disabled printing sound info for all sounds in the selected folder.
+
+- Added new filter module, Vocoder. (need pyo to be up-to-date with sources).
+
+- Fixed wrong executable path generated by py2app (OSX app).
+
+- Removed Jack and Coreaudio from driver's list in bundled app on OSX (leaved them when running from sources).
+
+- Fixed bug: The red button doesn't turn off at the end of recording.
+
+- cgen ignores trailing coma in poup entry.
+
+- Fixed bug: Do not quiery for the control panel if the interface doesn't exist yet.
+
+- Fixed bug in ListEntry widget when loading from a preset.
+
+## Version 5.0.3 ##
+
+- List in cgen popup window can now be entered as 'comma' or 'space' separated values.
+
+- Fixed number of channels used by the audio Server.
+
+- Wait for the audio Server releasing soundcard's stream before allowing to play again.
+
+- Fixed saving .c5 file on Windows.
+
+- Added 2 filter modules: BrickWall.c5 and BandBrickWall.c5.
+
+## Version 5.0.2 ##
+
+- Automatically save a preset named "last save" when saving a module. On module loading, if "last save" preset exists, it is activated.
+
+- Fixed display of the Channels menu.
+
+- Fixed bugs in sliders automation recording.
+
+## Version 5.0.1 ##
+
+- Fixed audio input/output selection.
+
+- Fixed BaseModule.addSampler "pitch" argument.
+
+## Version 5.0.0 ##
+
+First beta release.
+
+#########################################################################################
+
+Version 5.0.9:
+
+- L'outil de polyphonie, dans la section des popup menus, offre maintenant une sélection d'accords, plutôt que seulement des vitesses de lecture au hasard.
+
+- Ajout d'un spectrogramme temps-réel à l'application.
+
+- Multiple modes pour le signal source d'un module (icône juste à droite du menu de sélection du son source).
+ -- mode 0 (icône de fichier): mode standard, par la lecture d'un fichier son
+ -- mode 1 (icône de micro): Entrée micro temps-réel, les paramètres du sampler sont ignorés.
+ -- mode 2 (icône de micro avec un "1"): La mémoire du sampler est remplie par le signal provenant de l'entrée micro, une seule fois au début de la performance. Ensuite, le sampler boucle le signal selon les paramètres définis dans l'interface.
+ -- mode 3 (icône de micro entouré de flèches): La mémoire du sampler est remplie, en continu, par le signal provenant de l'entrée micro. Une mémoire à double tampons est utilisée pour éviter les clics. Le sampler agit normalement sur un signal audio constamment renouvelé.
+ ** Les mode 1 et 3 ne sont pas disponibles pour les modules nécéssitant un son en RAM comme origine du processus (exemple les modules de granulation).
+
+- Ajout d'une adresse d'envoi OSC aux sliders, pour communiquer la valeurs d'initialisation à une interface externe au début de la performance.
+
+- Ajout de l'option menu "Use Sound Duration on Folder Batch Processing". La durée de chacun des sons contrôle la durée de l'export du son traité.
+
+- Optimization du rafraichissement graphique du Grapher.
+
+- Possibilité de modifier en temps réel, à l'aide des flèches au dessus du menu de sélection, l'ordre des plugins dans l'onglet "Port-Processing".
+
+- Sans changer le nombre de canaux audio du processus, l'utilisateur peut changer, via les préférences, les premières entrée/sortie physiques (sur la carte-son) utilisées.
+
+- Ajout du contrôle MIDI sur les sliders de la fenêtre du sampler (Clic droit sur le nom du paramètre pour lancer l'assignation d'un potentiomètre. Shift+Clic droit pour annuler l'assignation courante).
+
+- Ajout du contrôle OSC sur les sliders de la fenêtre du sampler (Double-clic sur le nom du paramètre pour ouvrir la fenêtre de configuration).
+
+- Nouveaux formats audio supportés: FLAC, OGG, SD2, AU, CAF.
+
+
+Nouveaux modules:
+
+- ResonatorsVerbs/ConvolutionReverb : Réverbe par convolution.
+
+- Time/Pelletizer : Module de granulation où la fréquence de génération des grains, la hauteur et la durée sont indépendantes.
+
+- Pitch/LooperBank : Jusqu'à 500 lectures en boucle simultannées, avec chacune leur random propre sur la hauteur et l'amplitude.
+
+- Catégorie "Spectral", 13 modules de manipulations spectrales basées sur le vocodeur de phase.
+
+- Amélioration d'un grand nombre de modules déjà présents.
+
+
+Nouveau Plugin:
+
+- ChaosMod : Modulation en anneaux à l'aide d'attracteurs chaotique.
+
+Version 5.1.0:
+    
+Version 5.2.0:
+

-- 
cecilia packaging



More information about the pkg-multimedia-commits mailing list