diff --git a/example_processed_texts.zip b/example_processed_texts.zip new file mode 100644 index 0000000..07974b7 Binary files /dev/null and b/example_processed_texts.zip differ diff --git a/examples/maxmsp/MagePackage/docs/mage~.maxref.xml b/examples/maxmsp/MagePackage/docs/mage~.maxref.xml new file mode 100644 index 0000000..2e91875 --- /dev/null +++ b/examples/maxmsp/MagePackage/docs/mage~.maxref.xml @@ -0,0 +1,203 @@ + + + + + + + HMM-based performative speech synthesis + + + + The mage~ object + implements the mage speech synthesis toolbox as a MaxMSP object. + + + + + + numediart + Audio + Speech + mage + Synthesis + + + + + + + + + + + + Set the buffer to reference. + + + + + Resets mage. + + + + + + Empties mage label queue. + + + + + + Jumps to next label. + + + + + + Fills the label queue with labels from currently loaded label list file. + + + + + + Like labelfill but starts from current label. + + + + + + Jumps to next vowel or pause label. + + + + + Loads .lab file at given path. + + + + Loads an engine at given path (2d argument) with a custom name (first argument). + + + + Removes an already loaded and named engine. + + + + Sets mage audio output volume. + + + + + Sets mage vocoder alpha value. + + + + + Sets mage vocoder gamma value. + + + + + Sets or calculates a new frame length in samples. + + + + + Sets or calculates a new pitch frequency in hertz. + + + + + Sets a new pitch value in hertz. + + + + + Multiplies pitch by a given factor. + + + + + Shifts pitch by a given amount of hertz. + + + + + + Tells mage to compute the pitch. + + + + + Jump to nth label, labelnext will jump to nth label. + + + + + Jump to nth label. + + + + + Jump to nth label, labelnext will jump to (n+1)th label. + + + + + Sets a vibrato amplitude. + + + + + Sets the size, in samples, of one vibrato period. + + + + + Sets the zoom factor in vibrato sine periods. + + + + + An offset factor (between -pi and +pi) for the vibrato sine periods. + + + + + Sets or calculates a new duration in frames for each state of next label, given five integers : one for each state, and a last integer to set the type of operation to apply - overwrite, shift, scale, resynthesis, nothing. + + + + + + + + + + + + + + diff --git a/examples/maxmsp/MagePackage/externals/mage~.mxo/Contents/PkgInfo b/examples/maxmsp/MagePackage/externals/mage~.mxo/Contents/PkgInfo new file mode 100644 index 0000000..0febb6e --- /dev/null +++ b/examples/maxmsp/MagePackage/externals/mage~.mxo/Contents/PkgInfo @@ -0,0 +1 @@ +iLaXmax2 \ No newline at end of file diff --git a/examples/maxmsp/MagePackage/externals/mage~.mxo/Contents/Resources/CMakeLists.txt b/examples/maxmsp/MagePackage/externals/mage~.mxo/Contents/Resources/CMakeLists.txt new file mode 100644 index 0000000..67125fc --- /dev/null +++ b/examples/maxmsp/MagePackage/externals/mage~.mxo/Contents/Resources/CMakeLists.txt @@ -0,0 +1,11 @@ +FILE(GLOB SRC ${SRC} *.cpp *.c) +FILE(GLOB HDR ${HDR} *.hpp *.h) + +INCLUDE_DIRECTORIES(${MAGE_HTS_ENGINE_PATH}) +INCLUDE_DIRECTORIES(${MAGE_PORTAUDIO_PATH}) +INCLUDE_DIRECTORIES(${MAGE_SPTK_PATH}) + +ADD_LIBRARY(${MAGE_LIB_NAME} ${SRC} ${HDR}) +TARGET_LINK_LIBRARIES(${MAGE_LIB_NAME} pthread m) +TARGET_LINK_LIBRARIES(${MAGE_LIB_NAME} ${MAGE_LIB_NAME}-htsengine) +TARGET_LINK_LIBRARIES(${MAGE_LIB_NAME} ${MAGE_LIB_NAME}-sptk) diff --git a/examples/maxmsp/MagePackage/externals/mage~.mxo/Contents/Resources/COPYING b/examples/maxmsp/MagePackage/externals/mage~.mxo/Contents/Resources/COPYING new file mode 100644 index 0000000..578df19 --- /dev/null +++ b/examples/maxmsp/MagePackage/externals/mage~.mxo/Contents/Resources/COPYING @@ -0,0 +1,43 @@ +/* ----------------------------------------------------------------- */ +/* The HMM-Based Speech Synthesis Engine "hts_engine API" */ +/* developed by HTS Working Group */ +/* http://hts-engine.sourceforge.net/ */ +/* ----------------------------------------------------------------- */ +/* */ +/* Copyright (c) 2001-2011 Nagoya Institute of Technology */ +/* Department of Computer Science */ +/* */ +/* 2001-2008 Tokyo Institute of Technology */ +/* Interdisciplinary Graduate School of */ +/* Science and Engineering */ +/* */ +/* All rights reserved. */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* - Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* - Redistributions in binary form must reproduce the above */ +/* copyright notice, this list of conditions and the following */ +/* disclaimer in the documentation and/or other materials provided */ +/* with the distribution. */ +/* - Neither the name of the HTS working group nor the names of its */ +/* contributors may be used to endorse or promote products derived */ +/* from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */ +/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */ +/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */ +/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */ +/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS */ +/* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, */ +/* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, */ +/* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON */ +/* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, */ +/* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY */ +/* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */ +/* POSSIBILITY OF SUCH DAMAGE. */ +/* ----------------------------------------------------------------- */ diff --git a/examples/maxmsp/MagePackage/help/mage~.maxhelp b/examples/maxmsp/MagePackage/help/mage~.maxhelp new file mode 100644 index 0000000..20fd6cd --- /dev/null +++ b/examples/maxmsp/MagePackage/help/mage~.maxhelp @@ -0,0 +1,6244 @@ +{ + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 2.0, 44.0, 1411.0, 785.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 12.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "boxes" : [ { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-7", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 809.5, 355.380951, 43.0, 18.0 ], + "text" : "set $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-49", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 780.5, 335.380951, 72.0, 20.0 ], + "text" : "loadmess 1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-9", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 139.0, 12.469513, 37.0, 18.0 ], + "text" : "open" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-6", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 139.0, 35.5, 92.0, 20.0 ], + "text" : "mage_glossary" + } + + } +, { + "box" : { + "data" : [ 9240, "png", "IBkSG0fBZn....PCIgDQRA...rG...fdHX....vmaxh1....DLmPIQEBHf.B7g.YHB..f.PRDEDU3wY6cdGkjcUem+y89dUrSS2S2STwQgQn.BoAgD1qPFA3EzhAQPBSxlCAkVXcPXu1m0qw9v4fLdMgEyAVhBgjHHIPfwDDAIDf.EXzLZDLAoQStSSGpt5J+B269Gu6q5ppt5tqp5pCy.e6yzRcUuv889du+t+R2eWAmjfGh+73cQrd8Q0mMxM.hsIv5rz3sdMpA7P1uMh0.zsMhn9nc7QWDz4EHSCbDKj61B1u.0ylA2g8QO5KgaerU5ms1EDqzMfVE6jasCE4uXP+xjHddBzazGNUfSIF1wz.fFs43q8ugJe3EHL+sv7+W.OWfmwBwdllhClG2mb.54GOJxItF92Ksz+D19wILj8ugqKZQ58RDXcwBzWoF8KIBx0YgU7HXgBE9nwGcMTZqAABrQfERTno.tZAhLEvavnX+y.8uJCYejWJ209aCOdKKXUMY+PbU1qgKXqZTuVAbsBDmWRh1kBEdnPQsiUW5P3ndIBrQhFHOtCVD2mxG8WZbx9nuN95GcYowzhXUIY+T79NEebdC1X8p7QcUwIRbMfOJTKSjai.KjHQfBM4nzn.euonz2IME9tWO2qyJc6qVrphreJtospP7N.dGQvZC1HwwHXd0NrPRDjjGWuR3c.A5Oywn3c8F3tN9JcaKDqJH6mja77A4sXi70GEqM5gOpUwTrn7uCZiyzN0kEyagf73r2z374OLo9R+47slXko0NCVQI6Gma5BsgaUf3MFG6NCTvRsR1jlEBeA4anTABJhKdnIJRhSDhXFUKQRI7HGNTBerQRDrnDt6eLx8Y+A7Te5OE6N6J8yxxJ1A+EqAJ8dDH9qSPjM3XFIuZCFkvJOZEzrA5jDXil.h2xnzVnBbgcXCedjHn.dLJYwA+cNN49fCx99N2Ha2c494YYmr2A27+MM7OEG6WnZU1HYAB7vG.bQQRroChhMR5kDXivzZqTvc8tNy9SjHPilTTPKQ7iyh2e24vG+IWRdPlCrrQ1OEu6SwkH+CVv6JN11NlWpqzP.nL1m6fOcPD5hXzOIA.Kyqn1kjGKDDAKlhBSMN4usGlC8IuQ9Oy2Vt3K.VVH6eM2vebDr+3ww94UZUl10kvCEZ5jnrN5fjDor4TKkHvrMHEEd3QH6e0Kf+e6XI8FxRLYq4pr2Im+sZg7evFQmtqBDYKfxdZyFA8Pb5k3DEKil0KecDE.wvloozXSR1+hylO4Wco99sjfsy67zkD8iFE6WuB8pFEvBm9X.RxZIIVl4RWIacQvh73nGi7ereHC+AdubuKIZrujP1ON2zkDCwWNFQtvR3sTbKZZ3abuZ2Fw0QwZUSGPfxZ7OLY+wOKC81d470FsceOZ6j814VdY1vWLJVm1pAkvzFQ1cQTVKIMlMsZRqgYPnX8QI6NOJS9VuBt8c2tu9sMrCt4q0Bwm0FqAbWEPzdnHFVL.IoShAr7Nmbqh3XSJJ9LGhwe6WFegGucccaaj8ula5lif7+iMxN7VAUDKTALG7oeRx5HY4vTdhDhgMoo3vGfIuoWDet+i1w0rsP16fa9FrQ7IEHh3uB9RU.TBejH3TnK5hXmvQxUhXXwTTL0NYz2xqf63GrXudKZxdGbiuNIV2gEhtVIIZMAhs6fHrY5BKjmPHxdgPTrXJJcr8wHW2Uxc7nKlq0hhreRtwWgMxuhEV8uRJ5VYh1z.jjdH1IATb0HFVjhhGXeL1q+J41epV85zxj8ula3xiRj62FwFWIcVhOJhfEmJcSDrNoXzb8PbrYHl9Y9Mb7W10vcerV4ZX0JmziyMepQw59hh0YtRRzN3S2DiMS2DwjpPmrBOTzKIVqK9WxVYs2+Of82zI8XSS1OCuuXd3+ERf8UtRZGcdbY.RxFoSSDkN4G9nYcj7LSPrt+L7q+dM64Ka1Sn.t2ZLhbsqTDsFvEe1HcxFnqZxTjStgFMdnYKzyM+37dd6M642TireBtwqQh7SI.6UhWvZzXgfMQ2zGINg1rpVEZfXXKrQdUWAm4O4d4oGtQO2Flr2A23YXi7qDEq0sRXhUPTpjrY5ljD4jVEwZDnPyZHdBaDmeZJdO6hQanrdogH6O.e.44R9OVRhb0K2huC7HlBar3ToKhYBE4I5nx7Pu1eZDij7QSej3z1Hcouc1wC1n2yEDama90aC2CHZIs2aUH.bPQTjbZzyIrlVU4xJB.EPQbws7DQUmkpQQRLrw1zUPOGgH1BISRgB+bdtq9Ok6eAc3xBR1OIuuAD38Shi8EsbOp1EehfEmIqwD24SLP3nUeTFBUyDjmb3hkYIEkGGJVQV6nIP7bXju5fHlzQ1idHF8SGHIH12vLoIUbrYeLwO8cw25ZdTNVg4qcsfiTuI11eaBru9kShNTz8IJD8LibC9IEEXRJPJJvAIEiRNbvGW7wAEgw32xDC6v+ElRxPfODJhOdnn.dLLYHso6gBMIHBXReptH5YbNrlCcm7zyaBLNuj814le9VH9TZHwx4KaezDEKN8U4Ds.vFIt3SNbYDxxwHMooHonHtlPrFwLVWVwbzK70VT0b5gNMZJJxTTjzThnXQLrHdPVqewqine8GjiLmY4xbR12CWm0ZI4skjHu3kSujoL4F1oPOqZ8JVnSbJfKGfo33jiQHKgwGPhfnkyl71KBWeYdnXBxSVbwFAajNWiChh2EO0bpr1b1Z1N271rP+KjXEe4ToHEZNUi4UqlritxEAvTTfwo.SSQrLK0mUBIPB.OSd2rY5lR3MwCxQdg2Le6CUuiutdPSiVHP+WFiHKqDsCJ1fIcdWMQzVHnD9LDSydYLNLSQQbIA1lk8yJyTMZlYd+iRZ.V6oSWuu453qqX7WCGeaQP9gzPrkqGhh3wlnK5k3qJHZAAhicQwQHMGkoICNHHPT5RgH5ECrLq30R3tksxZu+GhCkp1iotirEvMDE6tWtdo6X70ceqRHZIBbPwfLM+FNNon.1HIFVq5H4JgFMCPGqeizyatde+rFY+TbSaUi3ixxjF39noahx5oyUbGlHMyIOJ43HjloMZ7FLR9DCXgfB3bNNn9x6kwqxt6YMx1A8aLNV8tbLBKbQ8sd5fUxXWMi8wE4YYBFgoAzDq0B2+JJ7Py5oqMeorw2PseWUj8CvaqCaju5kCQUg4t8YPOkqQIqDPhfrThmgI3.LINFu1IVEae+7Acv5VStU5+0tM1VjJ+tpH60QGWfDwKb4vaYdnXSzEwMq04kaDtDZODSw9XBJfCQMBrOQjjqDASMF6pesz8Vp7ykUePh2TTrrWpaLkvm0Pb5YEHUeC0xdJJxdYblf7DyLu7IKvGECPx38SxquxOu7S3uj2Ue1vqZoVIoPEx1DctrSzAddRyQHMGfT3ihnm.Nubi.IB5iNd0mODclOyfXXcIBjm8RYkPHbIwtA5bYWToDAooH6liyDjur+pOYEZftHxE7GvkdogeVYxVf8KHIQhrT5EbO7YSzU40B8xABcy4PjgmiTnMY7xI6PgldIQGWHq6BB+LIDjIJRzW8RY.ObPQ2DitWFmmNzCXGhoXXxPDjmTM277AEZRRD5jnWMlXfHA3Ogg6Si9EsTIBWglXHYSzIKW1SGXRkC6mIIMEOoct44CJTzMwupafsk.JKFWdEBDqYohF7PwFnSjKC1SGNK7XjiCPJ7vubQv420fOZFfj82KwuTvP1B3phgsc6VSbAAkXpf0Gczkbw2BSlabHlhgHS44q+cUnQSBrisVR9J.vN3WhyJXtr1qyTBS+20tLji2RDjCGNDSgK9+NybyyGzDjyZcS7yE.6GhaoSE5MtTLesGJNc5YI2qTRjLN43njtbHH+8H.RDzKw1.fkcW30mOxSq0S7+5edt3SuDmNHZEQypwpGfMy8QhfwHCGkzUk5sAcuZrbvdgtGMFlu6SXhB2pSor3lJxF6y3UvyOtsGt8lf3aP0BirEQrvpujfn1FiFo.VuaWDDkMe.KDqqSPJmo86oPOQdP4Qf5C06gRiHVDnuDyhKD.SPdFEIIouZ9RA5Rd3MYVC4O2i103i.IxDwPDs0zZWkyAsW8lFTiUWIP1YLP2Zcl7lHGZWOZEROHKcEmxUyoF0NNQNqHXIaVar03ShK7T4z+FuGjIiDPhhJ+dHhO38vGD2a6mQj+lqDqW9YUkabPoQORFb+nOBd20N.+Z68qQrgtH929sg3zWCHEk6XEdTqGeV+bnFl1WQle9yxQ9quWJczwqKgqEZ560borg+pWAwNm0gvpIlBPCnTnc84f23cQpG3oPhcEesGccEmKa4NeWX0cbDBQSwWZsFTZxs8Cyy8V973mNOMKgqA5l31QYzj1RjWZqp7jHpE1arGjwswepBncC5YKQfTHf0DC6q+hv5ke1H5KATvEc1vBruFrDHe9afXewWOD0BuO2iQ04SgBwYsVjW7FgXVnmpHXtGNnV.gzZr5LF88F2FBKI6+M+YPWxupyPiOIO+Sgy5te2H6HF9SWDsupwdepAgkDqtiCJMxDQoVQOZTDeqaf3m8.fVi2j4QnloTVW4QFdlhxeBXEMBhdhSmuvyfnanGxmNKhlzeAg4XdQXs1tvoFcgOm5CcvubO1T7bW4GEuT4wSp3z08PLgMxKayD61eCH1TWndjiPo2+2G8dG2TW10PLI12vkSzOvKkn+ueo3801Ejod61BZzGNMEu5u.pIxwvxbk8u8b1z78I4kb5bt2+sP2uryinqaMT7niOqWxcd4aAYGwX5exd4f2xchtfWclVp9O6VcDky99tIRb9arrHZQs+174S9M2AG3luSJ55fqHbONQahBmbVEDWsRQhyZ8bY+n+mfVSk5TEd0aTSksQfCxtsUnVeKV.FBtkBApLEv4PigaP0AfX3hFG7+g6C+evyf86ba3dW6D+G8YQXpGYAPi6+xCSj+rW.hynWjm2.ndhiPUsGo.rjPlR3efw4nLc4bBa9pchZTjeWGCmASQhKXSPTKpmBX1CzE.jamGg7OyQPVU6agfF2gSShKXSkSneWTTBeSZ95PLBJPBSbvg3nicLzlJqnxj9FUtZRpdqoRQrC5iyT4HRWIXBJvjjlnDktIJBDjvjlEKjj4fk4qHosBV2h1rHg.soJ6tV5H7CAjPnX6BNl4LqbTi.b8Pmp.hszGhthW6EF8HYfzkv6no3Pl7Bytg5bJBl+UHZHkrEVRBKU7MvU1Pl9nMG9jTfiQFrHBEMcCE3QulatvRh1blVMfvXMBrsrBlmmftARS8baRJhGpxoxb2l0DRP2k5e0hhLtMn6cgeUrPO7AlZETSPqo.yEJRbNEMNiRWyVaUI7rSP9W0WhCO1vFhtQTfxrtGc8aYMfqoEZtpAHiovUmGGNC7nGBz50GEBStqoA7Whx3mfUbhEdls7pLjgNHBqg3DqN0jUyB3OlsEhdVrAmvCMwwdIIUf0.G4IdZljhDg5kDMgqBRU4+YQThzWWj7hNEr5sCzpVTATCMGtmfj1PxgEj9vM4sviMLGTaauAVfKTX6KBBJZ1ZJ5fnziIom0UcrD0VhrqESiSatoqkDl4OZePhfCQZljRDAazn.CgFrULDAYrHH6LNw255IwEtIR771DwOq9I5YzOwNy9wpyXnJ13aGGgEVdezjkRTDOJEHvlHXUVQp4SnYcgPP39IXi.MJzJEBYiYpUXGsooD4vgMPmkWqbZf3XGw1B4hNmyhhkIN0sOHQvfLMSPNhh.MdDoudH1Y1OQO09H9V5mDWzlI4EsYhctqGqNiWsc9t93OUdnyFSgqPpaJJRI7IKNkW7+VFqmWLCJ13qYa3mqHpRMn19JMwOkdIwotVJMVlF6bHXUkpPywIGCXlVEBVRWskjKrcGWIKDLHYXXxRLDD6LWGa9e5OgNewmEQ2TOH6XFBTUxCuwyPo8ebJrmgovtFj7+lAo3gFCqDw4btuajHat9pkToc54vkAIiofdHJG+aQaRzbGaYcr0+WutV6jc8wOeiW1yBWrCGmrrN5fXXiC99K4YRZyBIRNFSaHZIhn1blew2Ac+GctfRQg8NB4e5AovucHJs+iSoCMINGdBbFJE5JTHRilHqoa7yTjn0HJLz+44virDHhOzTn4y18ECxr6iwgt8eJZG+.yIaBjcuCQgiNAxlvD4voiFiBrY5DeztKJxNb23pcMxVBLDYXDxQbyNmahydcz4kel3MQV1207uSgcOHp7tnTt.JioRgKy8JebTHrspx8pgK41B3PFbvEGFnhNHKkQ9dzGXWr2+s6qgLsa1PfEMuquBFgqHMN3gp0I6PEMZeufDLIEYHxPThTVGaqd6.gk.2gRS1Ge+keYIqql4yMbPwDTfRnMYuhrbGfkKXQzl1cmU66rlGRDjgRjGmRsrLKeB1djjsIwdZTLIEl2kPWvKpFKrk0544iSNxgCJiBWmH.MZ557NU56RNKVLZMXRri7szScnn6dI9hpQTKZ1nOOWPZr6bRJfC9DrwmKOgJSw0nIRWI3R+b2.uvux6k3arOiImMGBJuX9jGx1zjcn2xVqY6XXwfPmSDFd0EKQDr8JpXTxxnji73UVYrS7fFY7Hj3zVKwFnGhzSxV54PX53KwahldNaEAo8SOMU.CpWiHfnO.o3LwiXKDUqAEdTOIIg0VjooDooX4Begnj+BJ3QqLczDBT3RyT6dEnaX2wpUJy0uwFcpQgpnGZ+.mqrXb6afG.sS2BjshtHFwvFsvz.lOdRvbdLGkoIGNXIjy4wf.zJHxF6l9u9q.uIyV0AJHP+gIHOIA5xHpVghNN0AH9l6Es+b8hRP9CNF.rt+qWLm109GgW1BMjvdMfcxXzwYsg42crlKUeWw4vldkWNJO+FRBlFEIOs0Q702CdYJ1.mQ8gEBJh+DOKiTpoH6JSMXEZjk7gXVySmUcPx..f2LuPjHXXxZBUo.TJPFjFQ0x3ZGejQjHGnKN6u9MzLM2ZZ7y9Ur.Ii+K1KSuqiP2O+Siq39u0V5Rqbm6.dD1Qas+gak+fu+eWKc88y6Ly6wlDZ.W7GbO35zTjsGZVCwKuWRq1yX39g+YndlIn9ITmFu642hHQD7ejCClTBbBxyPLsYMeoXjO9CRGa6zI+SMXU1gJPRwe6fLxm7gH9Y1eUO.EvsgU2R43ge1hyp8IPRgQljG6M9w3LdOWMIOiAPFKR8uH0BMXkHB8+Rddfc8E8KwhI9U6ii7k+YDo2NZYcYm5IOHElizppAZljCuQNLG1Q7TbKMbSv0T5pprVeqK+Ret523yLyzaQFJwyxjDoBcuCJY5JjlRzXsMWM9HDA91pH9LN4wGUyUoSlmmRM93iafcvh5mjC065IhH4Jen+QV6e3V4Qu1OBC9s+UlmgJOr.eyIEst20UZWieEZNUXCcmziyw9T2F+7+6M7HaMAptzSMgwTvBMRvhvcgZG74HlT9s5Fk87ZcsDazZESRIllRDjVDMYTmV.62CRHBcfBBMHTtdKXD0B2lzalqasn1NPMJDHHKNpTj+Qf4d33rfFMcG3s5V1TliPZbvuoVxrBD3XFM2rmayiVXjSUtic1I5PqbcaWP.LNExNAE9EPCR1BD3heKatk.AGloZ5USoffrBYRJZlnX40yW0qjxpYlflnPEjtuDLEWQ7JWP7jTYgos5ye4xteABljB69dY2CAMHYGluSIZgsqgfUrQdRQgFlnCe4LFEHONF6la+n5B9d.4oLYhhOA1mVBe7LAKIzIRgofjBE9wC9rIEE3XLM1DsbME21j0npJdqEEK5xHgr5raocunJETJHpdOLDjTbMnX7fE1sEhlxs7A9j0kiQ5F1aaAhs8LAsn8H1tVcvgfWt4wEGSxAVBW76LFVcGCgNLDgA0P0vVPn8FVZv1VvVd0uX5+h2RfiO77JOJVYT4K7ZW4ar7HJW2viiMcRLrQXRyf12F2t.XZJ4OBo+Uge1BR1AdmRQ+jroHZAPI734XxF1mzAQnwgIHOg9ydwfvQMkLoCjK9jAGbvGIAOWtnPgGa9h2Jux63ugncmbguvZMBKK59zWG.TX7zLwtORUwadV4OdMvxL033jCIfko1guFRTtrYtXncIBFmBGZPl9wB+rEjrCrsNA1z7qDyiPZSTlZLgvSRAlhRsbBDTYtW6hhzTBEJJfKdUYpl1DdDHBxf8kWMDIYLRtt0T1EpyKzPoTYI09Ghm3195j5.C1TIWPHBe23ihblzgpChPmDitHFsp.dMPJx+vOLGdjvOadIagoQjD6lpmljfBVSXs+b9uGBTn33TfR31zDc3XGEZxEHLlzTrrhTgsmp6vUcmOKrYrccP9JW1+CrhEorRWMB7J3PorYaIht1miP4e4wkb3PVbXsjfXX2TYsaXkgJCktmJ+74krCpEJVzcSjhvRDLMkXTx1.DcfnzQHaSGm4vQwNnHKkHGtTBuJrAGZV05JlNSSc7gsjEKQWKBSqh73PAboeRR2DuoFrMJYe1syvOQke9BJFOnTRsvKwDXlvedXlZAEcKHvaXiQNiCaZLhITBiI6KHKtkU4ZwV6TZsTFZoCgEwfwHGt3SeMPA8MLjlGjz+vGkiMYke27R19nYyzUSMqwgXJ7PMuJWIHHUYRYretQH5v8EirThonnI+2zUbtmnjVBMGBEuG7LCCv7q.oEBNHoyNDY9x09cyIYGNecipQrERFgrjEmEjnmjBjgRMjX6PRNEEHqQS5vR79IN4cxhGASOVjHHmy8gzvoEGlbe+uE69wq86mSx1CMcQrFppAGpPvwH87NOsf.MtSu.ZbGRg9nYZyVaTvxtoVEs9cKDVfcSRj5tMUFD53bkNJY+b067mSxNb4j1HNRwif8QiERS5wMiniLOcHBW1qYMYcRnISm3TK+W5PngkiQN1LcW2i3Xj9WtK14CWuyeNIaIBVGcrfJlIBtAlhx9rI6POJMN4IOdyIQGp3UvlTVAbQYV.s+dRtRD5rpooDqoBqjrPvwIGGio+L6FpWEMXtIaWTKXAkMT78TTXNH5f4aGm7TBu5NWdncxEvkTTnbRI76xhqaDjCG5th.SoANHS9id.F46LWmScIaeTrNRvBEw3v3SWOEkpLzjdnpqxXgQSaJi3cn4sM92EgDAELqtz3XiERNDSUXeL0GbXFN+bcdyhrCyyL6Ev+rAqxxL00LqfDUviQmCanCutoL65cU6JyeOZTT.ORPDSLHRcOeCd5e97c7yhrU.IIBII5bNpNz7oII+rz9Nbz5njCndDMT.GSTsBxq61MQ2JWsSzxrbAPVbX.RxdH0D6gI9WVnyYVjcPP4wrv5lKa4B1pBqcd5vvSNJ4K+2U9cA0CjBjlhPUNDo0Ps1ZGDiYJGlvJkJUSUHnp1U30wt7eMS8bX0bm.IPJJxAXhOwOjmYuKzwWWw3KjsxGkoMh5qLSPEkEcG92U9cEwkwIGkBhwDMy3uJCTXkDYPUQvu7FRtG9lTWLLM+XNslXlzHRXLwLXG4al0CpEwwhnl7ialNVqN5.D91a2L9C9XL3GoQNmYQ1dn4Tn9K0DQYsuKV0n5PkwNN4oRZNTAuTTjTjmFczrnl+OG7vAeSouv0TYSBSMnZWQoUqt37c2pbzuG9UTkin7zKg+zoIScrQRbiLfYF+u7CKDLBYScHl58uKFMWibNUQ1giNmK2PpHX+ozpF5HfnyYbDinpq0XjiB3YNm4KCOmQTuKJbvmooDdljNv03ZmZyKr1kaSq20QQXEIARgGSRQrQRTrJWRphgrbo5Z4ZLuYimSODY+m+ZrqcznmWUjsBEqkjDkYWw+Cz9NKEqvwHgZtO1rHZXJJPJJfddhFUkhEyiO4oDkLIavLdsaFJdkTe8v6uBMEviB.SiC1HHIQnKhRGDshw6KUsi.2HeLx7s9ILwmoYN2pHaWTzkIQ4ps7IV.OFmbU4ALeimw7MhmCePGi7LMEKKFr1Fa3H3B3RA7JWxoBq44UmFSq9LIqxVjOAkLqrlc7udHNcWNexVJt2BNLSsuiPo2+g4vM0h.qJxNbi2tdyVOLYLiAm4QcLxiSEt0rDdLF4o.tyZzbXM9vAkIVzdFmhpK2k3DUasCI1h3SQxRZhPeDmNayizsPvnjezQH2636xSefl87qhrCp57UmUJRDjhBLIEHtw8oBBRy2.Q5Aknxr3vXjCkg7gpSX9LThr3xz3TVe5kBarWIQ3ScQ7XHxPODm9HQcmVrYgEBlhRNCR1a8d3oezV4ZTEY6T1rHLM6.Q6CQ1xM3v7.OKkHJ1lfWD3fkJmYUZzPOGtLEEwwjtAyHh9jGRtVD97klhjCWVOcPWDoEpaBAHHFDk3fj9e9N3Iu6VscUlr0.qwrj3C6EJPXrM1yT7zDLN4IiY9IEZFkrT.mplm0EEonHYM4kcshoqbDek+25AcM+tRs.Vs2cILPPCQF1.cQOsvNfT39S1gYp+suD63CuXZOkIaW7oK5fPqiCGUebxV1l5oonQQj.E3FhoMIxevqcOS56lxjD70NObkN6HvgGpY43iJ6.Le9kuRGhDl8nqF21ECe5GgrHnS5tIH7v.dbHR++8KvN96YQt8LYG1f7Ylhcd3HniSlxY8YI7Hkop.6fOiPVbMwvNH8cKQZSp7FpWtGAE1ovZAZkD3LROZdnpnKQkWGqxjtU4TWZ0BBS5f3Fazajr+Ifnm5S74Y6ueXdKu5MDrgffezIQIgY4tH.JhGGmbDAoIceygEAwc93jyLxUX7NVAypt.iITy3xx4BsKhnVyf7MZ7GVRJWppXgMKBc9zjTj0u.YIZ3Ji4vj9197r8+QZCDMXH6PSpBC9gDAiPVBpPdvvjEIAQYYBxi1zvCTTKP0qfZeckystxBeiyO7Ld7Z0PxPX77E8Sh4zJDKDLFEJMHo+P2N67CRazGMFxNXzc37eYvkon.VHYLSfMBR82B3ilTTjwMYURk9lNDq7uVmAtlNhwvZUwluZXUcp1LDMTGjgI2XCR522cxt95s66sMDPvCT9lKXTxf.ISSIJZlOdJic0CSViZYqFh8SigPGd.yeD8VdZKyT22BQn1EGgoe5ixTu66sNoAb6.Wc9lA..v.CmDQAQE1AtB0kDlpbRVbHigjSQQxgCoHOSQIFjLlPTN6.RT8CT0+0pktEEMcQishS3y.KDjGOFho+d6kodu+HdlCtTceKOxFBHvQIaY6jKfKiSdFgrLNELi609ZHkFxnQ4BxhfNi.gRftKEhjfNp.hB5XfHoMxDg9Ce4ZiRetPX7zWoUbKv6gvHjOywI2GZmLzmX6yS9i0NfsOZ5mjDAI4vkooDSQIxPINN43vjlIovn.eeM7jBTOmB49U3Nz8xtyVumi2IasyLn51lXcIgAbQe1f57DvKQCWrDQhv8vhUBx2w3afUBiyDFqDJgOGio+oiPw+16gc9DK7Y1Ft2ON2nd.RvlnKNLo44XRNN44.Lg+fj6AmlheUItOvWi8MLKRMCuNN+Nih0ZDHtbEhqQ.+WjHN2fPGt7JvON1DqM3y5lAgYDSTrxlEmO9SyA+W+kLQqrzQas6+14lzCPGzGwYmLB6kIXOb7GYHl9C8U427.zt2Tsq.+obIaRf6KBrd6RzuDKj8ubMZ2hf3PubM11rRWbcv+a6h2G4tawfYrXfXWbKtagdsmf77cXetOCS9guWdzaaXXIc9iZwahy6bsHxaUf75DHddRBqJQKcnKSHHWpPn4T9nnD9+xh3+Q+prquwR3sb9aO6jaYjym9W+8xuM6OjCbK2A63NWoZL.7V3h5E3kCh2MvUFAqDAtZs8S6IwdIwe5g9qvEMkvamN38omlwuq+ykXEvVv10g3uZrLTZseZ19e4mhG6SrR1XpEuYtvWrEVuIE5q2B4FCGkztP6lrCCPSI7K5g5gcw+yoI+O5tY+S21tIKBHRweu99XOes2Ceq2FKgyOuXv0x4s1jD6OCzuRA7xjHsfEeAjqyx6fksNBIXiO4G2E+GPg5KdWrqeJMZwEeYBhcxMc3ODOxapUy9gkSbCrsHYovEnv9MJgWJvEFAqt0UD5zFEspBZUFZ0fLgUOTI72gB08kGmG5axdNbSdIW1f8XT39uGd5kE67Vr3yx1cA1o4e7V4EbYkv+hrP7GqPe0RDcKPDKzFdc4elMhPvVYyB0AIz4GgSg3hpnGpI.8uvC+ueN79keS1yy1VePWhf8nj4axpTw2KDt6.mQ7D.290w42aDrtPMhKSi3r0n2DH1BvYXgnSXFhML2ugYVHCgnxrnQA3iWVAh86ided3uCeTObFb9s+GrurzFiH0xABTbbU1bKsK7lYa8Ck5WfXc.aUiXsRDaLJxSW.8og0Hfd.5BDcnQ6oPuGM5GSC6Dz6wC03SiXzuKOcpU5mmEK9+mg+Gdbbf6pa.....jTQNQjqBAlf" ], + "embed" : 1, + "id" : "obj-168", + "maxclass" : "fpic", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 0.5, -0.402985, 122.0, 123.0 ], + "pic" : "mage.png" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-167", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 25.0, 69.0, 78.0, 74.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 12.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "boxes" : [ { + "box" : { + "comment" : "", + "id" : "obj-2", + "maxclass" : "outlet", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 9.0, 42.0, 25.0, 25.0 ] + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-1", + "maxclass" : "inlet", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 9.0, 8.0, 25.0, 25.0 ] + } + + } + ], + "lines" : [ { + "patchline" : { + "destination" : [ "obj-2", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 18.5, 34.0 ], + "source" : [ "obj-1", 0 ] + } + + } + ] + } +, + "patching_rect" : [ 26.0, 465.5, 41.0, 20.0 ], + "saved_object_attributes" : { + "default_fontface" : 0, + "default_fontname" : "Arial", + "default_fontsize" : 12.0, + "description" : "", + "digest" : "", + "fontface" : 0, + "fontname" : "Arial", + "fontsize" : 12.0, + "globalpatchername" : "", + "tags" : "" + } +, + "text" : "p thru" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-157", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 26.0, 494.739197, 83.0, 20.0 ], + "text" : "r interpolation" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-156", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 818.212769, 541.885498, 85.0, 20.0 ], + "text" : "s interpolation" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-10", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 1226.0, 437.040802, 143.0, 21.0 ], + "text" : "Sum of all the weigths" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-44", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 1143.37146, 314.618103, 34.0, 21.0 ], + "text" : "bdl" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-45", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 1143.841431, 240.618103, 34.0, 21.0 ], + "text" : "rms" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-58", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 1143.841431, 166.263733, 34.0, 21.0 ], + "text" : "jmk" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-67", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 895.371399, 314.618103, 34.0, 21.0 ], + "text" : "clb" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-69", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 895.371399, 240.618103, 34.0, 21.0 ], + "text" : "slt" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-80", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 895.584167, 166.263733, 34.0, 21.0 ], + "text" : "awb" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-87", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 1219.0, 494.885498, 150.0, 49.0 ], + "text" : "Multiply the sum of the weights here, to obtain saturation (careful !)" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-111", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 1219.0, 541.885498, 50.0, 20.0 ] + } + + } +, { + "box" : { + "color" : [ 0.820369, 0.84, 0.212246, 1.0 ], + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-113", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 1219.0, 571.166504, 82.0, 20.0 ], + "text" : "s interpmultip" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-114", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 1210.568115, 458.040802, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 8.171595, + "frgb" : 0.0, + "id" : "obj-115", + "linecount" : 8, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 1066.970947, 141.995087, 66.826286, 80.0 ], + "text" : " ________\n ( \\\n 0) )\n ∆ 3 /\n l H l \n o HH /\n HHHHH |\n | |\n" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.110359, + "frgb" : 0.0, + "id" : "obj-116", + "linecount" : 6, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 1066.970947, 213.030487, 70.538864, 82.0 ], + "text" : " cccccc\n / 33333\n \t • Q333\n< 3333\n ≥ 333\n T |" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.710993, + "frgb" : 0.0, + "id" : "obj-117", + "linecount" : 5, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 1066.970947, 287.655212, 76.870453, 67.0 ], + "text" : "((())))))))\n ⁄ )))))) \n/° p)))\n - )))\n Y | " + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.710993, + "frgb" : 0.0, + "id" : "obj-118", + "linecount" : 5, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 925.584167, 287.655212, 79.615822, 67.0 ], + "text" : " ( ( ( ( ) ) )\n ( ( ( s ô\n ( ( .\\\n ( ( \\ c\n | ---\\" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.110359, + "frgb" : 0.0, + "id" : "obj-119", + "linecount" : 6, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 933.0, 146.385498, 76.107719, 82.0 ], + "text" : " '''''''''''''''' `ı\n \" C ", + "maxclass" : "umenu", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "int", "", "" ], + "parameter_enable" : 0, + "patching_rect" : [ 208.474182, 153.092346, 100.0, 20.0 ] + } + + } +, { + "box" : { + "id" : "obj-159", + "maxclass" : "dropfile", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 208.474182, 63.990173, 61.0, 42.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 7.323481, + "frgb" : 0.0, + "id" : "obj-2", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 581.0, 102.0, 102.0, 31.0 ], + "text" : "<- actual rate compared to initial samples amount in one frame (240)" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-104", + "maxclass" : "number", + "minimum" : 0, + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "int", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 601.5, 350.5, 50.0, 18.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-105", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 601.5, 368.5, 73.0, 16.0 ], + "text" : "labelswitch $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-102", + "maxclass" : "number", + "minimum" : 0, + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "int", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 601.5, 302.5, 50.0, 18.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-103", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 601.5, 320.5, 70.0, 16.0 ], + "text" : "labelinsert $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-101", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 0, + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 746.0, 44.0, 427.0, 543.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 12.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "boxes" : [ { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-3", + "linecount" : 11, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 1.0, 378.0, 424.0, 155.0 ], + "text" : "And now, in addition to this :\n\nlabelnextvowel\nlabelfilluntilend\n\nlabelnextvowel sends 'labelnext'-like instructions to Mage until it reaches a vowel phonem, or a pause phonem. It allows to stay on vowels or pause, in a singing-like fashion.\n\nlabelfilluntilend works similarly to labelfill, except it starts pushing labels from current reading point, not from the beginning of the file." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-2", + "linecount" : 26, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 1.0, 1.0, 413.0, 355.0 ], + "text" : "Several messages make it possible to manipulate the sequence of labels in real-time: \n\nlabel alice.lab \nlabelnext \nlabelinsert 0 \nlabelreplace 42 \nlabelswitch 17 \n\nwhere the first message loads a list of label from file alice.lab and \n\nlabelnext sends a label from that list to Mage and goes to the next label of the list. \n\nlabelinsert N sends the Nth label of the list to Mage, \n\nlabelreplace N sends the Nth label of the list to Mage and makes labelnext jump to its next label. \n\nlabelswitch N sends the Nth label of the list and makes labelnext point to label N + 1 \n\nIf a command reaches the end of the list, it loops back to the start.\n\nlabelfill\nsends all the labels of the loaded lab file at once to the queue." + } + + } + ], + "lines" : [ ] + } +, + "patching_rect" : [ 679.0, 302.5, 91.0, 20.0 ], + "saved_object_attributes" : { + "default_fontface" : 0, + "default_fontname" : "Arial", + "default_fontsize" : 12.0, + "description" : "", + "digest" : "", + "fontface" : 0, + "fontname" : "Arial", + "fontsize" : 12.0, + "globalpatchername" : "", + "tags" : "" + } +, + "text" : "p label_what_?" + } + + } +, { + "box" : { + "id" : "obj-132", + "maxclass" : "toggle", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 678.0, 66.092621, 17.254902, 17.254902 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 9.661969, + "id" : "obj-128", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "bang" ], + "patching_rect" : [ 678.0, 82.995087, 44.0, 17.0 ], + "text" : "metro 1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 6.671921, + "hidden" : 1, + "id" : "obj-91", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 722.0, 62.995087, 27.0, 12.0 ], + "text" : "select" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 6.671921, + "hidden" : 1, + "id" : "obj-92", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 858.0, 63.995087, 27.0, 12.0 ], + "text" : "select" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 6.671921, + "hidden" : 1, + "id" : "obj-93", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 824.0, 63.995087, 27.0, 12.0 ], + "text" : "select" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 6.671921, + "hidden" : 1, + "id" : "obj-94", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 790.0, 63.995087, 27.0, 12.0 ], + "text" : "select" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 6.671921, + "hidden" : 1, + "id" : "obj-68", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 756.0, 63.995087, 27.0, 12.0 ], + "text" : "select" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "frgb" : 0.0, + "id" : "obj-59", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 944.5, 80.747528, 37.0, 18.0 ], + "text" : "scale" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "frgb" : 0.0, + "id" : "obj-95", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 933.0, 62.995087, 28.0, 18.0 ], + "text" : "shift" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "frgb" : 0.0, + "id" : "obj-61", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 918.0, 45.995087, 49.0, 18.0 ], + "text" : "overwrite" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-96", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 919.0, 82.995087, 25.5, 16.0 ], + "text" : "2" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-63", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 905.5, 64.995087, 25.5, 16.0 ], + "text" : "1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-64", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 892.0, 46.995087, 25.5, 16.0 ], + "text" : "0" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-97", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "int", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 858.0, 82.995087, 35.0, 18.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-98", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "int", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 824.0, 82.995087, 35.0, 18.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-99", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "int", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 790.0, 82.995087, 35.0, 18.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-24", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "int", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 756.0, 82.995087, 35.0, 18.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-23", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "int", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 722.0, 82.995087, 35.0, 18.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-100", + "maxclass" : "newobj", + "numinlets" : 6, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 722.0, 109.995087, 189.0, 18.0 ], + "text" : "pak 1 1 1 1 1 0" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-13", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 722.0, 141.995087, 130.0, 16.0 ], + "text" : "duration $1 $2 $3 $4 $5 $6" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "frgb" : 0.0, + "hidden" : 1, + "id" : "obj-90", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 265.565857, 739.0, 116.710724, 33.0 ], + "text" : "mage works better at 48000 Hz." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-317", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 383.75, 686.504883, 30.0, 20.0 ], + "text" : "s sr" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 7.148188, + "hidden" : 1, + "id" : "obj-162", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "bang" ], + "patching_rect" : [ 226.75, 653.0, 38.914223, 14.0 ], + "text" : "loadbang" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 6.601909, + "hidden" : 1, + "id" : "obj-161", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 227.710724, 675.859253, 21.078537, 12.0 ], + "text" : "1" + } + + } +, { + "box" : { + "bubble" : 1, + "fontname" : "Arial", + "fontsize" : 8.158198, + "frgb" : 0.0, + "hidden" : 1, + "id" : "obj-131", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 333.903168, 708.359253, 110.0, 20.0 ], + "text" : "choose a sampling rate" + } + + } +, { + "box" : { + "bubble" : 1, + "fontname" : "Arial", + "fontsize" : 8.158198, + "frgb" : 0.0, + "hidden" : 1, + "id" : "obj-134", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 280.710724, 662.611694, 128.630203, 20.0 ], + "text" : "report sampling rate choices" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 7.148188, + "hidden" : 1, + "id" : "obj-135", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "int", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 346.039337, 691.859253, 35.671371, 14.0 ], + "presentation_rect" : [ 210.0, 210.0, 50.0, 20.0 ], + "triangle" : 0, + "triscale" : 0.9 + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 13.0, + "hidden" : 1, + "id" : "obj-136", + "items" : [ 44100, ",", 48000, ",", 88200, ",", 96000 ], + "maxclass" : "umenu", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "int", "", "" ], + "parameter_enable" : 0, + "patching_rect" : [ 265.565857, 708.359253, 64.588486, 21.0 ] + } + + } +, { + "box" : { + "hidden" : 1, + "id" : "obj-137", + "maxclass" : "button", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "bang" ], + "patching_rect" : [ 268.387878, 666.040222, 13.370986, 13.370986 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 7.148188, + "hidden" : 1, + "id" : "obj-138", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "int" ], + "patching_rect" : [ 265.565857, 686.504883, 71.342743, 14.0 ], + "text" : "adstatus sr" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 7.386712, + "frgb" : 0.0, + "id" : "obj-88", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 421.0, 365.0, 82.0, 23.0 ], + "text" : "kind of \"vocal track length\" simulation" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-85", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 369.75, 412.252472, 50.0, 18.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-86", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 369.75, 432.252472, 58.0, 16.0 ], + "text" : "gamma $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-5", + "maxclass" : "flonum", + "maximum" : 0.9, + "minimum" : 0.1, + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 369.75, 358.5, 50.0, 18.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-84", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 369.75, 378.5, 49.0, 16.0 ], + "text" : "alpha $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-47", + "maxclass" : "number", + "minimum" : 0, + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "int", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 601.5, 248.752472, 50.0, 18.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-83", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 601.5, 266.0, 78.0, 16.0 ], + "text" : "labelreplace $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 26.604845, + "frgb" : 0.0, + "id" : "obj-82", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 722.0, 402.0, 34.0, 36.0 ], + "text" : ")" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 26.604845, + "frgb" : 0.0, + "id" : "obj-81", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 578.0, 402.0, 34.0, 36.0 ], + "text" : "(" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 7.309227, + "frgb" : 0.0, + "id" : "obj-79", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 650.0, 406.752472, 72.0, 31.0 ], + "text" : "tells Mage to begin synthesizing the pitch again" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-78", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 595.0, 639.655212, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 5.664751, + "frgb" : 0.0, + "id" : "obj-74", + "linecount" : 5, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 664.0, 653.0, 44.0, 38.0 ], + "text" : "0 = overwrite\n1 = shift\n2 = scale\n3 = synthetic\n4 = no action" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 5.981776, + "id" : "obj-75", + "maxclass" : "number", + "maximum" : 5, + "minimum" : 0, + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "int", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 654.0, 639.655212, 32.0, 13.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-76", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 595.0, 662.0, 69.0, 20.0 ], + "text" : "pack 240 0" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 6.843845, + "hidden" : 1, + "id" : "obj-73", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 558.5, 514.0, 34.0, 14.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 8.283234, + "hidden" : 1, + "id" : "obj-60", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 558.5, 580.0, 32.0, 14.0 ], + "text" : "set $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 8.283234, + "hidden" : 1, + "id" : "obj-62", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 558.5, 603.0, 32.0, 14.0 ], + "text" : "set $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 9.753232, + "id" : "obj-65", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 595.0, 600.0, 44.0, 17.0 ] + } + + } +, { + "box" : { + "id" : "obj-70", + "maxclass" : "slider", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "parameter_enable" : 0, + "patching_rect" : [ 595.0, 578.0, 72.0, 18.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-71", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 595.0, 683.0, 59.0, 16.0 ], + "text" : "pitch $1 $2" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-72", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 595.0, 618.0, 64.0, 16.0 ], + "text" : "pitchshift $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 8.818506, + "hidden" : 1, + "id" : "obj-56", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 525.5, 514.0, 33.0, 14.0 ], + "text" : "set $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "hidden" : 1, + "id" : "obj-55", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 492.0, 514.0, 32.5, 18.0 ], + "text" : "* 10." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 8.283234, + "hidden" : 1, + "id" : "obj-54", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 533.0, 443.5, 32.0, 14.0 ], + "text" : "set $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "hidden" : 1, + "id" : "obj-52", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 499.0, 443.5, 32.5, 18.0 ], + "text" : "/ 10." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 8.283234, + "hidden" : 1, + "id" : "obj-51", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 533.0, 483.5, 32.0, 14.0 ], + "text" : "set $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 8.818506, + "hidden" : 1, + "id" : "obj-48", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 525.5, 553.0, 33.0, 14.0 ], + "text" : "set $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-42", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 50.5, 153.092346, 72.0, 20.0 ], + "text" : "loadmess 6" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 6.843845, + "hidden" : 1, + "id" : "obj-112", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 565.0, 443.5, 34.0, 14.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 9.753232, + "id" : "obj-110", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 595.0, 465.5, 44.0, 17.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-147", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 595.0, 532.0, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "hidden" : 1, + "id" : "obj-38", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 525.5, 534.0, 32.5, 18.0 ], + "text" : "/ 10." + } + + } +, { + "box" : { + "floatoutput" : 1, + "id" : "obj-35", + "maxclass" : "slider", + "min" : 1.0, + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "parameter_enable" : 0, + "patching_rect" : [ 595.0, 511.0, 72.0, 18.0 ], + "size" : 40.0 + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "hidden" : 1, + "id" : "obj-39", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 533.0, 465.5, 32.5, 18.0 ], + "text" : "* 10." + } + + } +, { + "box" : { + "id" : "obj-33", + "maxclass" : "slider", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "parameter_enable" : 0, + "patching_rect" : [ 595.0, 443.5, 72.0, 18.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-40", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 595.0, 412.252472, 56.0, 16.0 ], + "text" : "pitchsynth" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-30", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 595.0, 553.0, 69.0, 16.0 ], + "text" : "pitchscale $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-41", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 595.0, 483.5, 86.0, 16.0 ], + "text" : "pitchoverwrite $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-37", + "maxclass" : "flonum", + "maximum" : 3.0, + "minimum" : 0.0, + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 255.25, 432.252472, 50.0, 18.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-27", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 255.25, 451.252472, 57.0, 16.0 ], + "text" : "volume $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-8", + "linecount" : 4, + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 95.5, 588.0, 67.5, 58.0 ], + "text" : "reset, pitchscale 1., alpha 0.55" + } + + } +, { + "box" : { + "id" : "obj-36", + "maxclass" : "button", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "bang" ], + "patching_rect" : [ 207.875, 562.0, 20.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 7.854039, + "frgb" : 0.0, + "id" : "obj-284", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 465.5, 14.0, 153.0, 33.0 ], + "text" : "amount of samples for one frame in one state of one label at 48 kHz (default is 240 samples, meaning 5 ms)" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 9.789138, + "frgb" : 0.0, + "id" : "obj-34", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 60.0, 268.0, 121.0, 17.0 ], + "text" : "resets nearly everything" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 8.432214, + "frgb" : 0.0, + "id" : "obj-32", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 116.0, 386.5, 83.0, 25.0 ], + "text" : "goes to next vowel or pause label" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.995022, + "frgb" : 0.0, + "id" : "obj-31", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 79.479599, 368.5, 138.520401, 19.0 ], + "text" : "goes to next label" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 6.985397, + "frgb" : 0.0, + "id" : "obj-29", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 116.0, 335.380951, 102.0, 22.0 ], + "text" : "sends the label file at once from current reading point" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 6.985397, + "frgb" : 0.0, + "id" : "obj-28", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 73.0, 317.0, 65.148384, 22.0 ], + "text" : "sends the whole label file at once" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 7.309227, + "frgb" : 0.0, + "id" : "obj-220", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 93.25, 281.155212, 72.0, 31.0 ], + "text" : "tells Mage to begin synthesizing the pitch again" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 5.664751, + "frgb" : 0.0, + "id" : "obj-262", + "linecount" : 5, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 567.25, 146.495087, 44.0, 38.0 ], + "text" : "0 = overwrite\n1 = shift\n2 = scale\n3 = synthetic\n4 = no action" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-26", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 26.0, 287.655212, 65.0, 18.0 ], + "text" : "pitchsynth" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-347", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 26.0, 337.0, 89.0, 18.0 ], + "text" : "labelfilluntilend" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-20", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 26.0, 368.5, 59.0, 18.0 ], + "text" : "labelnext" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-14", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 26.0, 386.5, 89.0, 18.0 ], + "text" : "labelnextvowel" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 5.981776, + "id" : "obj-297", + "maxclass" : "number", + "maximum" : 5, + "minimum" : 0, + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "int", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 557.25, 133.150299, 32.0, 13.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-276", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 498.25, 155.495087, 69.0, 20.0 ], + "text" : "pack 240 0" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-326", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 576.75, 65.995087, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-25", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 385.0, 95.0, 640.0, 480.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 10.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "boxes" : [ { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-20", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 50.0, 118.0, 41.0, 18.0 ], + "text" : "pow -1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-17", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 50.0, 100.0, 36.0, 18.0 ], + "text" : "/ 240." + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-23", + "maxclass" : "inlet", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 50.0, 40.0, 25.0, 25.0 ] + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-24", + "maxclass" : "outlet", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 50.0, 196.0, 25.0, 25.0 ] + } + + } + ], + "lines" : [ { + "patchline" : { + "destination" : [ "obj-20", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-17", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-24", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-20", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-17", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-23", 0 ] + } + + } + ] + } +, + "patching_rect" : [ 523.25, 91.995087, 25.0, 18.0 ], + "saved_object_attributes" : { + "default_fontface" : 0, + "default_fontname" : "Arial", + "default_fontsize" : 10.0, + "description" : "", + "digest" : "", + "fontface" : 0, + "fontname" : "Arial", + "fontsize" : 10.0, + "globalpatchername" : "", + "tags" : "" + } +, + "text" : "p" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-22", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 523.25, 109.995087, 50.0, 18.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-11", + "maxclass" : "flonum", + "maximum" : 1200.0, + "minimum" : 12.0, + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 498.25, 69.995087, 50.0, 18.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-16", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 498.25, 47.995087, 73.0, 18.0 ], + "text" : "loadmess 240" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-12", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 498.25, 177.495087, 66.0, 16.0 ], + "text" : "speed $1 $2" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 4.700932, + "id" : "obj-360", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 303.237244, 72.597015, 75.75, 10.0 ], + "text" : "clearchecks, checkitem $1 1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-361", + "items" : "", + "maxclass" : "umenu", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "int", "", "" ], + "parameter_enable" : 0, + "patching_rect" : [ 303.237244, 47.995087, 100.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-359", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "patching_rect" : [ 343.802338, 114.990173, 35.0, 20.0 ], + "text" : "shell" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-355", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 343.802338, 86.490173, 107.0, 20.0 ], + "text" : "sprintf open %s -e" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 6.14584, + "id" : "obj-107", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 50.5, 206.101929, 93.0, 11.0 ], + "text" : "clearchecks, checkitem $1 1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-226", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 139.0, 221.252472, 83.0, 20.0 ], + "text" : "prepend label" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-225", + "items" : "", + "maxclass" : "umenu", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "int", "", "" ], + "parameter_enable" : 0, + "patching_rect" : [ 50.5, 181.5, 100.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-160", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 181.0, 246.0, 217.0, 18.0 ], + "text" : "label /Users/vichug/Downloads/test.lab" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-21", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 26.0, 269.5, 37.0, 18.0 ], + "text" : "reset" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-19", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 26.0, 319.0, 47.0, 18.0 ], + "text" : "labelfill" + } + + } +, { + "box" : { + "id" : "obj-17", + "maxclass" : "toggle", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 139.0, 732.0, 20.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-15", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 0, + "patching_rect" : [ 169.0, 752.0, 37.0, 20.0 ], + "text" : "dac~" + } + + } +, { + "box" : { + "id" : "obj-4", + "maxclass" : "live.gain~", + "numinlets" : 2, + "numoutlets" : 5, + "outlettype" : [ "signal", "signal", "", "float", "list" ], + "parameter_enable" : 1, + "patching_rect" : [ 169.0, 597.0, 48.0, 136.0 ], + "saved_attribute_attributes" : { + "valueof" : { + "parameter_longname" : "live.gain~[1]", + "parameter_shortname" : "live.gain~", + "parameter_type" : 0, + "parameter_mmin" : -70.0, + "parameter_mmax" : 6.0, + "parameter_initial" : [ 0.0 ], + "parameter_unitstyle" : 4 + } + + } +, + "varname" : "live.gain~[1]" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-3", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 4, + "outlettype" : [ "signal", "bang", "int", "int" ], + "patching_rect" : [ 169.0, 514.0, 59.5, 20.0 ], + "text" : "mage~" + } + + } + ], + "lines" : [ { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-1", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-13", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-100", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-103", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-102", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-103", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-105", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-104", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-105", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-225", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 60.0, 221.747559, 40.5, 221.747559, 40.5, 180.747559, 60.0, 180.747559 ], + "source" : [ "obj-107", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-25", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-11", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-276", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-11", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-41", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-110", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-52", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-110", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-113", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-111", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-39", 1 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-112", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-52", 1 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-112", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-12", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-100", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-128", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-133", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-129", 5 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-140", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-129", 4 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-141", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-129", 3 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-142", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-129", 2 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-143", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-129", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-153", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-129", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-13", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-144", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-130", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-128", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-132", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-144", 6 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-133", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-138", 0 ], + "disabled" : 0, + "hidden" : 1, + "midpoints" : [ 275.065857, 737.575867, 251.834747, 737.575867, 251.834747, 684.109009, 275.065857, 684.109009 ], + "source" : [ "obj-136", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-138", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-137", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-135", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-138", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-136", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-138", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-317", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-138", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-167", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-14", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-144", 5 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-140", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-144", 4 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-141", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-144", 3 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-142", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-144", 2 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-143", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-114", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-144", 6 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-121", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-144", 5 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-122", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-144", 4 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-124", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-144", 3 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-125", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-144", 2 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-126", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-144", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-127", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-144", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-145", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-144", 5 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-146", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-144", 4 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-148", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-144", 3 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-149", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-144", 2 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-150", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-144", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-151", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-144", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-152", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-145", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-152", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-146", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-30", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-147", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-55", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-147", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-152", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-148", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-152", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-149", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-152", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-150", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-152", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-151", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-156", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-152", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-144", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-153", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-129", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-154", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-157", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-204", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-159", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-204", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-159", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-11", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-16", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-160", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-138", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-161", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-161", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-162", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-163", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-165", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-164", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-19", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-165", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-110", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-166", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-167", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-167", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-169", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-15", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-17", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-175", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-178", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-166", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-179", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-180", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-175", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-181", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-175", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-183", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-181", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-187", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-192", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-187", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-187", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-188", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-167", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-19", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-188", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-190", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-178", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-194", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-183", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-195", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-197", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-196", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-175", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-197", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-205", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-198", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-226", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-198", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-167", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-20", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-198", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-204", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-198", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 217.974182, 188.490173, 194.724182, 188.490173, 194.724182, 179.490173, 193.724182, 179.490173, 193.724182, 149.490173, 217.974182, 149.490173 ], + "source" : [ "obj-205", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-198", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-207", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-167", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-21", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-107", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-225", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-226", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-225", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-226", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-100", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-23", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-68", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-23", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-100", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-24", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-94", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-24", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-22", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-25", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-167", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-26", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-27", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-12", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-276", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-276", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-297", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-182", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-3", 3 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-184", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-3", 3 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-185", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-3", 2 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-186", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-3", 2 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-36", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-3", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-3", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-30", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-25", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-326", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-276", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-326", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-39", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-33", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-167", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-347", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-38", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-35", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-359", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-355", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-361", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 312.737244, 88.242645, 293.237244, 88.242645, 293.237244, 47.242645, 312.737244, 47.242645 ], + "source" : [ "obj-360", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-355", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-361", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-360", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-361", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-27", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-37", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-30", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-38", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-48", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-38", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-41", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-39", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-51", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-39", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-15", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-4", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-15", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-4", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-40", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-41", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-225", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-42", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-83", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-47", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-147", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-48", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-130", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-49", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-7", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-49", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-84", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-5", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-110", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-51", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-54", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-52", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-33", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-54", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-56", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-55", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-35", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-56", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-70", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-60", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-65", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-62", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-100", 5 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-63", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-100", 5 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-64", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-60", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-65", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-72", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-65", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-24", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-68", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-143", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-7", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-62", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-70", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-72", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-70", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-71", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-72", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-38", 1 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-73", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-55", 1 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-73", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-76", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-75", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-71", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-76", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-76", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-78", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-8", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-83", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-84", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-86", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-85", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-86", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-6", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-9", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-23", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-91", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-97", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-92", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-98", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-93", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-99", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-94", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-100", 5 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-96", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-100", 4 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-97", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-91", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-97", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-100", 3 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-98", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-92", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-98", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-100", 2 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-99", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-93", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-99", 1 ] + } + + } + ], + "parameters" : { + "obj-4" : [ "live.gain~[1]", "live.gain~", 0 ] + } +, + "dependency_cache" : [ { + "name" : "mage_glossary.maxpat", + "bootpath" : "/Users/vichug/Documents/_STAGE_NUMEDIART_MAGE", + "patcherrelativepath" : "../../../../../../../Documents/_STAGE_NUMEDIART_MAGE", + "type" : "JSON", + "implicit" : 1 + } +, { + "name" : "mage~.mxo", + "type" : "iLaX" + } +, { + "name" : "shell.mxo", + "type" : "iLaX" + } + ] + } + +} diff --git a/examples/maxmsp/MagePackage/patchers/MageMaxTuto.maxpat b/examples/maxmsp/MagePackage/patchers/MageMaxTuto.maxpat new file mode 100644 index 0000000..a389ee4 --- /dev/null +++ b/examples/maxmsp/MagePackage/patchers/MageMaxTuto.maxpat @@ -0,0 +1,14658 @@ +{ + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 134.0, 44.0, 967.0, 719.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 12.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "showrootpatcherontab" : 0, + "showontab" : 0, + "boxes" : [ { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-16", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 0, + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 134.0, 70.0, 967.0, 693.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 12.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "showontab" : 1, + "boxes" : [ { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-27", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 818.5, 57.5, 92.0, 20.0 ], + "text" : "mage_glossary" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-38", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 818.5, 30.5, 108.0, 21.0 ], + "prototypename" : "magefont", + "text" : "some vocabulary", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "underline" : 1 + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 19.240288, + "frgb" : 0.0, + "id" : "obj-24", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 297.5, 416.0, 312.0, 29.0 ], + "text" : "about the data outlets of mage~" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-22", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 297.5, 455.5, 634.0, 49.0 ], + "text" : "You may have noticed rarely used data outlets from the mage~ object. The first one (from left to right) is a bang each time a label is pushed to the labelqueue. The second one is the number of labels when a label lists is loaded. The third one is the duration, in frames, of currently computed label." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-23", + "linecount" : 12, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 297.5, 513.5, 640.0, 176.0 ], + "text" : "Data outlets provide half useful information because they are synced with the label queue, not the model queue, hence it gives informations at a different rate than what is output. For exemple : the \"label size\" outlet gives the size of the label that just got computed, not of the next to-be-output label ; if you give a big list to compute it is likely to be computed very fast or slightly faster than it is output. \n\nIt is possible to sort of workaround this, using a custom queue, recalculating each size of label in samples and syncing precisely with the start of the synthesis ; however it is not really easy to achieve, even harder if you take into account that your aim is to control the timing of labels and you have to recompute the size of a label each time its duration is affected - so you need to recalculate values in the queue, etc... what's more, you have to detect the exact time mage begins to synthesize, which is different from the time you fill the queue (there is the computation inbetween, which time frame is not known in advance.) Example patch will come later." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-21", + "linecount" : 8, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 9.0, 513.5, 266.0, 120.0 ], + "text" : "It's obviously interesting to use controllers of all sorts with mage~, and the main interest of mage's implementation in MaxMSP and PureData. Patch example of interfacing mage with the native macbooks trackpad, a wacom bamboo tablet and the Razer Hydra game controller will come later." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 19.240288, + "frgb" : 0.0, + "id" : "obj-16", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 9.0, 464.0, 226.0, 29.0 ], + "text" : "using controllers" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 19.240288, + "frgb" : 0.0, + "id" : "obj-15", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 9.0, 339.0, 226.0, 29.0 ], + "text" : "using poly~" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-14", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 9.0, 384.0, 243.0, 35.0 ], + "text" : "Many things to do with mage~ and poly~ ! Example patchs will come later." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 19.240288, + "frgb" : 0.0, + "id" : "obj-13", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 156.5, 13.5, 226.0, 29.0 ], + "text" : "creating a voice engine" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-8", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 160.5, 86.0, 203.0, 21.0 ], + "prototypename" : "magefont", + "text" : "http://www.acapela-group.com/", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "underline" : 1 + } + + } +, { + "box" : { + "handoff" : "", + "id" : "obj-10", + "maxclass" : "ubutton", + "numinlets" : 1, + "numoutlets" : 4, + "outlettype" : [ "bang", "bang", "", "int" ], + "patching_rect" : [ 157.5, 88.0, 206.0, 17.5 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-11", + "linecount" : 2, + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 401.0, 89.0, 283.0, 32.0 ], + "text" : ";\rmax launchbrowser http://www.acapela-group.com/" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-12", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 156.5, 57.5, 574.0, 49.0 ], + "text" : "Creating a voice engine is a complex and long process, those included are freely available and were created using, among other things, proprietary software from the acapela group \n( )." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 19.240288, + "frgb" : 0.0, + "id" : "obj-6", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 297.5, 128.5, 172.0, 29.0 ], + "text" : "creating .lab files" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-9", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 602.5, 229.5, 264.0, 21.0 ], + "prototypename" : "magefont", + "text" : "http://www.cstr.ed.ac.uk/projects/festival/", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "underline" : 1 + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-7", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 297.5, 384.0, 194.0, 21.0 ], + "text" : "Better solutions will come later." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-2", + "linecount" : 5, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 297.5, 300.0, 597.0, 77.0 ], + "text" : "You could also look at the formating of a .lab file in the examples and, knowing that each line is a label and that the important information is the first few characters of each line, where you see the 3 previous phonems - the current phonem - then the 3 next phonems - all separated by special separator characters that are the same for each line ; you can recompose label files from this... obviously, the result will be strange." + } + + } +, { + "box" : { + "handoff" : "", + "id" : "obj-5", + "maxclass" : "ubutton", + "numinlets" : 1, + "numoutlets" : 4, + "outlettype" : [ "bang", "bang", "", "int" ], + "patching_rect" : [ 601.5, 232.5, 268.0, 16.5 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-4", + "linecount" : 4, + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 601.5, 305.0, 122.0, 59.0 ], + "text" : ";\rmax launchbrowser http://www.cstr.ed.ac.uk/projects/festival/" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-1", + "linecount" : 5, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 297.5, 215.5, 583.0, 77.0 ], + "text" : "This is a quite sensible and legitimate request. However, it is quite difficult at the moment. You need to install the festival speech synthesis system ( ) and figure how to translate a text to a format used by mage, using this. If you know nothing about this, it means quite a lot of work. Alternately, provided it's not on a per-day basis, you can send me a text to format at vic.hvk@gmail.com. " + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-3", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 297.5, 173.5, 583.0, 35.0 ], + "text" : "By now, you might know everyting about mage and mage~, and may want to create your own .lab files from whatever text you fancy." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-108", + "linecount" : 8, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 17.5, 191.5, 255.0, 120.0 ], + "text" : "If you recompile mage~, you can replace the commented out lines (in mage~.cpp, lines 222-230) that load the engines on mage startup by the path to the engines on your computer. This will allow you to have all engines preloaded each start you start mage (hence not needing engineadd engineremove mesages)." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 19.240288, + "frgb" : 0.0, + "id" : "obj-113", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 17.5, 146.5, 121.0, 29.0 ], + "text" : "recompiling" + } + + } +, { + "box" : { + "data" : [ 9240, "png", "IBkSG0fBZn....PCIgDQRA...rG...fdHX....vmaxh1....DLmPIQEBHf.B7g.YHB..f.PRDEDU3wY6cdGkjcUem+y89dUrSS2S2STwQgQn.BoAgD1qPFA3EzhAQPBSxlCAkVXcPXu1m0qw9v4fLdMgEyAVhBgjHHIPfwDDAIDf.EXzLZDLAoQStSSGpt5J+B269Gu6q5ppt5tqp5pCy.e6yzRcUuv889du+t+R2eWAmjfGh+73cQrd8Q0mMxM.hsIv5rz3sdMpA7P1uMh0.zsMhn9nc7QWDz4EHSCbDKj61B1u.0ylA2g8QO5KgaerU5ms1EDqzMfVE6jasCE4uXP+xjHddBzazGNUfSIF1wz.fFs43q8ugJe3EHL+sv7+W.OWfmwBwdllhClG2mb.54GOJxItF92Ksz+D19wILj8ugqKZQ58RDXcwBzWoF8KIBx0YgU7HXgBE9nwGcMTZqAABrQfERTno.tZAhLEvavnX+y.8uJCYejWJ209aCOdKKXUMY+PbU1qgKXqZTuVAbsBDmWRh1kBEdnPQsiUW5P3ndIBrQhFHOtCVD2mxG8WZbx9nuN95GcYowzhXUIY+T79NEebdC1X8p7QcUwIRbMfOJTKSjai.KjHQfBM4nzn.euonz2IME9tWO2qyJc6qVrphreJtospP7N.dGQvZC1HwwHXd0NrPRDjjGWuR3c.A5Oywn3c8F3tN9JcaKDqJH6mja77A4sXi70GEqM5gOpUwTrn7uCZiyzN0kEyagf73r2z374OLo9R+47slXko0NCVQI6Gma5BsgaUf3MFG6NCTvRsR1jlEBeA4anTABJhKdnIJRhSDhXFUKQRI7HGNTBerQRDrnDt6eLx8Y+A7Te5OE6N6J8yxxJ1A+EqAJ8dDH9qSPjM3XFIuZCFkvJOZEzrA5jDXil.h2xnzVnBbgcXCedjHn.dLJYwA+cNN49fCx99N2Ha2c494YYmr2A27+MM7OEG6WnZU1HYAB7vG.bQQRroChhMR5kDXivzZqTvc8tNy9SjHPilTTPKQ7iyh2e24vG+IWRdPlCrrQ1OEu6SwkH+CVv6JN11NlWpqzP.nL1m6fOcPD5hXzOIA.Kyqn1kjGKDDAKlhBSMN4usGlC8IuQ9Oy2Vt3K.VVH6eM2vebDr+3ww94UZUl10kvCEZ5jnrN5fjDor4TKkHvrMHEEd3QH6e0Kf+e6XI8FxRLYq4pr2Im+sZg7evFQmtqBDYKfxdZyFA8Pb5k3DEKil0KecDE.wvloozXSR1+hylO4Wco99sjfsy67zkD8iFE6WuB8pFEvBm9X.RxZIIVl4RWIacQvh73nGi7ereHC+AdubuKIZrujP1ON2zkDCwWNFQtvR3sTbKZZ3abuZ2Fw0QwZUSGPfxZ7OLY+wOKC81d470FsceOZ6j814VdY1vWLJVm1pAkvzFQ1cQTVKIMlMsZRqgYPnX8QI6NOJS9VuBt8c2tu9sMrCt4q0Bwm0FqAbWEPzdnHFVL.IoShAr7Nmbqh3XSJJ9LGhwe6WFegGucccaaj8ula5lif7+iMxN7VAUDKTALG7oeRx5HY4vTdhDhgMoo3vGfIuoWDet+i1w0rsP16fa9FrQ7IEHh3uB9RU.TBejH3TnK5hXmvQxUhXXwTTL0NYz2xqf63GrXudKZxdGbiuNIV2gEhtVIIZMAhs6fHrY5BKjmPHxdgPTrXJJcr8wHW2Uxc7nKlq0hhreRtwWgMxuhEV8uRJ5VYh1z.jjdH1IATb0HFVjhhGXeL1q+J41epV85zxj8ula3xiRj62FwFWIcVhOJhfEmJcSDrNoXzb8PbrYHl9Y9Mb7W10vcerV4ZX0JmziyMepQw59hh0YtRRzN3S2DiMS2DwjpPmrBOTzKIVqK9WxVYs2+Of82zI8XSS1OCuuXd3+ERf8UtRZGcdbY.RxFoSSDkN4G9nYcj7LSPrt+L7q+dM64Ka1Sn.t2ZLhbsqTDsFvEe1HcxFnqZxTjStgFMdnYKzyM+37dd6M642TireBtwqQh7SI.6UhWvZzXgfMQ2zGINg1rpVEZfXXKrQdUWAm4O4d4oGtQO2Flr2A23YXi7qDEq0sRXhUPTpjrY5ljD4jVEwZDnPyZHdBaDmeZJdO6hQanrdogH6O.e.44R9OVRhb0K2huC7HlBar3ToKhYBE4I5nx7Pu1eZDij7QSej3z1Hcouc1wC1n2yEDama90aC2CHZIs2aUH.bPQTjbZzyIrlVU4xJB.EPQbws7DQUmkpQQRLrw1zUPOGgH1BISRgB+bdtq9Ok6eAc3xBR1OIuuAD38Shi8EsbOp1EehfEmIqwD24SLP3nUeTFBUyDjmb3hkYIEkGGJVQV6nIP7bXju5fHlzQ1idHF8SGHIH12vLoIUbrYeLwO8cw25ZdTNVg4qcsfiTuI11eaBru9kShNTz8IJD8LibC9IEEXRJPJJvAIEiRNbvGW7wAEgw32xDC6v+ElRxPfODJhOdnn.dLLYHso6gBMIHBXReptH5YbNrlCcm7zyaBLNuj814le9VH9TZHwx4KaezDEKN8U4Ds.vFIt3SNbYDxxwHMooHonHtlPrFwLVWVwbzK70VT0b5gNMZJJxTTjzThnXQLrHdPVqewqine8GjiLmY4xbR12CWm0ZI4skjHu3kSujoL4F1oPOqZ8JVnSbJfKGfo33jiQHKgwGPhfnkyl71KBWeYdnXBxSVbwFAajNWiChh2EO0bpr1b1Z1N271rP+KjXEe4ToHEZNUi4UqlritxEAvTTfwo.SSQrLK0mUBIPB.OSd2rY5lR3MwCxQdg2Le6CUuiutdPSiVHP+WFiHKqDsCJ1fIcdWMQzVHnD9LDSydYLNLSQQbIA1lk8yJyTMZlYd+iRZ.V6oSWuu453qqX7WCGeaQP9gzPrkqGhh3wlnK5k3qJHZAAhicQwQHMGkoICNHHPT5RgH5ECrLq30R3tksxZu+GhCkp1iotirEvMDE6tWtdo6X70ceqRHZIBbPwfLM+FNNon.1HIFVq5H4JgFMCPGqeizyatde+rFY+TbSaUi3ixxjF39noahx5oyUbGlHMyIOJ43HjloMZ7FLR9DCXgfB3bNNn9x6kwqxt6YMx1A8aLNV8tbLBKbQ8sd5fUxXWMi8wE4YYBFgoAzDq0B2+JJ7Py5oqMeorw2PseWUj8CvaqCaju5kCQUg4t8YPOkqQIqDPhfrThmgI3.LINFu1IVEae+7Acv5VStU5+0tM1VjJ+tpH60QGWfDwKb4vaYdnXSzEwMq04kaDtDZODSw9XBJfCQMBrOQjjqDASMF6pesz8Vp7ykUePh2TTrrWpaLkvm0Pb5YEHUeC0xdJJxdYblf7DyLu7IKvGECPx38SxquxOu7S3uj2Ue1vqZoVIoPEx1DctrSzAddRyQHMGfT3ihnm.Nubi.IB5iNd0mODclOyfXXcIBjm8RYkPHbIwtA5bYWToDAooH6liyDjur+pOYEZftHxE7GvkdogeVYxVf8KHIQhrT5EbO7YSzU40B8xABcy4PjgmiTnMY7xI6PgldIQGWHq6BB+LIDjIJRzW8RY.ObPQ2DitWFmmNzCXGhoXXxPDjmTM277AEZRRD5jnWMlXfHA3Ogg6Si9EsTIBWglXHYSzIKW1SGXRkC6mIIMEOoct44CJTzMwupafsk.JKFWdEBDqYohF7PwFnSjKC1SGNK7XjiCPJ7vubQv420fOZFfj82KwuTvP1B3phgsc6VSbAAkXpf0Gczkbw2BSlabHlhgHS44q+cUnQSBrisVR9J.vN3WhyJXtr1qyTBS+20tLji2RDjCGNDSgK9+NybyyGzDjyZcS7yE.6GhaoSE5MtTLesGJNc5YI2qTRjLN43njtbHH+8H.RDzKw1.fkcW30mOxSq0S7+5edt3SuDmNHZEQypwpGfMy8QhfwHCGkzUk5sAcuZrbvdgtGMFlu6SXhB2pSor3lJxF6y3UvyOtsGt8lf3aP0BirEQrvpujfn1FiFo.VuaWDDkMe.KDqqSPJmo86oPOQdP4Qf5C06gRiHVDnuDyhKD.SPdFEIIouZ9RA5Rd3MYVC4O2i103i.IxDwPDs0zZWkyAsW8lFTiUWIP1YLP2Zcl7lHGZWOZEROHKcEmxUyoF0NNQNqHXIaVar03ShK7T4z+FuGjIiDPhhJ+dHhO38vGD2a6mQj+lqDqW9YUkabPoQORFb+nOBd20N.+Z68qQrgtH929sg3zWCHEk6XEdTqGeV+bnFl1WQle9yxQ9quWJczwqKgqEZ560borg+pWAwNm0gvpIlBPCnTnc84f23cQpG3oPhcEesGccEmKa4NeWX0cbDBQSwWZsFTZxs8Cyy8V973mNOMKgqA5l31QYzj1RjWZqp7jHpE1arGjwswepBncC5YKQfTHf0DC6q+hv5ke1H5KATvEc1vBruFrDHe9afXewWOD0BuO2iQ04SgBwYsVjW7FgXVnmpHXtGNnV.gzZr5LF88F2FBKI6+M+YPWxupyPiOIO+Sgy5te2H6HF9SWDsupwdepAgkDqtiCJMxDQoVQOZTDeqaf3m8.fVi2j4QnloTVW4QFdlhxeBXEMBhdhSmuvyfnanGxmNKhlzeAg4XdQXs1tvoFcgOm5CcvubO1T7bW4GEuT4wSp3z08PLgMxKayD61eCH1TWndjiPo2+2G8dG2TW10PLI12vkSzOvKkn+ueo3801Ejod61BZzGNMEu5u.pIxwvxbk8u8b1z78I4kb5bt2+sP2uryinqaMT7niOqWxcd4aAYGwX5exd4f2xchtfWclVp9O6VcDky99tIRb9arrHZQs+174S9M2AG3luSJ55fqHbONQahBmbVEDWsRQhyZ8bY+n+mfVSk5TEd0aTSksQfCxtsUnVeKV.FBtkBApLEv4PigaP0AfX3hFG7+g6C+evyf86ba3dW6D+G8YQXpGYAPi6+xCSj+rW.hynWjm2.ndhiPUsGo.rjPlR3efw4nLc4bBa9pchZTjeWGCmASQhKXSPTKpmBX1CzE.jamGg7OyQPVU6agfF2gSShKXSkSneWTTBeSZ95PLBJPBSbvg3nicLzlJqnxj9FUtZRpdqoRQrC5iyT4HRWIXBJvjjlnDktIJBDjvjlEKjj4fk4qHosBV2h1rHg.soJ6tV5H7CAjPnX6BNl4LqbTi.b8Pmp.hszGhthW6EF8HYfzkv6no3Pl7Bytg5bJBl+UHZHkrEVRBKU7MvU1Pl9nMG9jTfiQFrHBEMcCE3QulatvRh1blVMfvXMBrsrBlmmftARS8baRJhGpxoxb2l0DRP2k5e0hhLtMn6cgeUrPO7AlZETSPqo.yEJRbNEMNiRWyVaUI7rSP9W0WhCO1vFhtQTfxrtGc8aYMfqoEZtpAHiovUmGGNC7nGBz50GEBStqoA7Whx3mfUbhEdls7pLjgNHBqg3DqN0jUyB3OlsEhdVrAmvCMwwdIIUf0.G4IdZljhDg5kDMgqBRU4+YQThzWWj7hNEr5sCzpVTATCMGtmfj1PxgEj9vM4sviMLGTaauAVfKTX6KBBJZ1ZJ5fnziIom0UcrD0VhrqESiSatoqkDl4OZePhfCQZljRDAazn.CgFrULDAYrHH6LNw255IwEtIR771DwOq9I5YzOwNy9wpyXnJ13aGGgEVdezjkRTDOJEHvlHXUVQp4SnYcgPP39IXi.MJzJEBYiYpUXGsooD4vgMPmkWqbZf3XGw1B4hNmyhhkIN0sOHQvfLMSPNhh.MdDoudH1Y1OQO09H9V5mDWzlI4EsYhctqGqNiWsc9t93OUdnyFSgqPpaJJRI7IKNkW7+VFqmWLCJ13qYa3mqHpRMn19JMwOkdIwotVJMVlF6bHXUkpPywIGCXlVEBVRWskjKrcGWIKDLHYXXxRLDD6LWGa9e5OgNewmEQ2TOH6XFBTUxCuwyPo8ebJrmgovtFj7+lAo3gFCqDw4btuajHat9pkToc54vkAIiofdHJG+aQaRzbGaYcr0+WutV6jc8wOeiW1yBWrCGmrrN5fXXiC99K4YRZyBIRNFSaHZIhn1blew2Ac+GctfRQg8NB4e5AovucHJs+iSoCMINGdBbFJE5JTHRilHqoa7yTjn0HJLz+44virDHhOzTn4y18ECxr6iwgt8eJZG+.yIaBjcuCQgiNAxlvD4voiFiBrY5DeztKJxNb23pcMxVBLDYXDxQbyNmahydcz4kel3MQV1207uSgcOHp7tnTt.JioRgKy8JebTHrspx8pgK41B3PFbvEGFnhNHKkQ9dzGXWr2+s6qgLsa1PfEMuquBFgqHMN3gp0I6PEMZeufDLIEYHxPThTVGaqd6.gk.2gRS1Ge+keYIqql4yMbPwDTfRnMYuhrbGfkKXQzl1cmU66rlGRDjgRjGmRsrLKeB1djjsIwdZTLIEl2kPWvKpFKrk0544iSNxgCJiBWmH.MZ557NU56RNKVLZMXRri7szScnn6dI9hpQTKZ1nOOWPZr6bRJfC9DrwmKOgJSw0nIRWI3R+b2.uvux6k3arOiImMGBJuX9jGx1zjcn2xVqY6XXwfPmSDFd0EKQDr8JpXTxxnji73UVYrS7fFY7Hj3zVKwFnGhzSxV54PX53KwahldNaEAo8SOMU.CpWiHfnO.o3LwiXKDUqAEdTOIIg0VjooDooX4Begnj+BJ3QqLczDBT3RyT6dEnaX2wpUJy0uwFcpQgpnGZ+.mqrXb6afG.sS2BjshtHFwvFsvz.lOdRvbdLGkoIGNXIjy4wf.zJHxF6l9u9q.uIyV0AJHP+gIHOIA5xHpVghNN0AH9l6Es+b8hRP9CNF.rt+qWLm109GgW1BMjvdMfcxXzwYsg42crlKUeWw4vldkWNJO+FRBlFEIOs0Q702CdYJ1.mQ8gEBJh+DOKiTpoH6JSMXEZjk7gXVySmUcPx..f2LuPjHXXxZBUo.TJPFjFQ0x3ZGejQjHGnKN6u9MzLM2ZZ7y9Ur.Ii+K1KSuqiP2O+Siq39u0V5Rqbm6.dD1Qas+gak+fu+eWKc88y6Ly6wlDZ.W7GbO35zTjsGZVCwKuWRq1yX39g+YndlIn9ITmFu642hHQD7ejCClTBbBxyPLsYMeoXjO9CRGa6zI+SMXU1gJPRwe6fLxm7gH9Y1eUO.EvsgU2R43ge1hyp8IPRgQljG6M9w3LdOWMIOiAPFKR8uH0BMXkHB8+Rddfc8E8KwhI9U6ii7k+YDo2NZYcYm5IOHElizppAZljCuQNLG1Q7TbKMbSv0T5pprVeqK+Ret523yLyzaQFJwyxjDoBcuCJY5JjlRzXsMWM9HDA91pH9LN4wGUyUoSlmmRM93iafcvh5mjC065IhH4Jen+QV6e3V4Qu1OBC9s+UlmgJOr.eyIEst20UZWieEZNUXCcmziyw9T2F+7+6M7HaMAptzSMgwTvBMRvhvcgZG74HlT9s5Fk87ZcsDazZESRIllRDjVDMYTmV.62CRHBcfBBMHTtdKXD0B2lzalqasn1NPMJDHHKNpTj+Qf4d33rfFMcG3s5V1TliPZbvuoVxrBD3XFM2rmayiVXjSUtic1I5PqbcaWP.LNExNAE9EPCR1BD3heKatk.AGloZ5USoffrBYRJZlnX40yW0qjxpYlflnPEjtuDLEWQ7JWP7jTYgos5ye4xteABljB69dY2CAMHYGluSIZgsqgfUrQdRQgFlnCe4LFEHONF6la+n5B9d.4oLYhhOA1mVBe7LAKIzIRgofjBE9wC9rIEE3XLM1DsbME21j0npJdqEEK5xHgr5raocunJETJHpdOLDjTbMnX7fE1sEhlxs7A9j0kiQ5F1aaAhs8LAsn8H1tVcvgfWt4wEGSxAVBW76LFVcGCgNLDgA0P0vVPn8FVZv1VvVd0uX5+h2RfiO77JOJVYT4K7ZW4ar7HJW2viiMcRLrQXRyf12F2t.XZJ4OBo+Uge1BR1AdmRQ+jroHZAPI734XxF1mzAQnwgIHOg9ydwfvQMkLoCjK9jAGbvGIAOWtnPgGa9h2Jux63ugncmbguvZMBKK59zWG.TX7zLwtORUwadV4OdMvxL033jCIfko1guFRTtrYtXncIBFmBGZPl9wB+rEjrCrsNA1z7qDyiPZSTlZLgvSRAlhRsbBDTYtW6hhzTBEJJfKdUYpl1DdDHBxf8kWMDIYLRtt0T1EpyKzPoTYI09Ghm3195j5.C1TIWPHBe23ihblzgpChPmDitHFsp.dMPJx+vOLGdjvOadIagoQjD6lpmljfBVSXs+b9uGBTn33TfR31zDc3XGEZxEHLlzTrrhTgsmp6vUcmOKrYrccP9JW1+CrhEorRWMB7J3PorYaIht1miP4e4wkb3PVbXsjfXX2TYsaXkgJCktmJ+74krCpEJVzcSjhvRDLMkXTx1.DcfnzQHaSGm4vQwNnHKkHGtTBuJrAGZV05JlNSSc7gsjEKQWKBSqh73PAboeRR2DuoFrMJYe1syvOQke9BJFOnTRsvKwDXlvedXlZAEcKHvaXiQNiCaZLhITBiI6KHKtkU4ZwV6TZsTFZoCgEwfwHGt3SeMPA8MLjlGjz+vGkiMYke27R19nYyzUSMqwgXJ7PMuJWIHHUYRYretQH5v8EirThonnI+2zUbtmnjVBMGBEuG7LCCv7q.oEBNHoyNDY9x09cyIYGNecipQrERFgrjEmEjnmjBjgRMjX6PRNEEHqQS5vR79IN4cxhGASOVjHHmy8gzvoEGlbe+uE69wq86mSx1CMcQrFppAGpPvwH87NOsf.MtSu.ZbGRg9nYZyVaTvxtoVEs9cKDVfcSRj5tMUFD53bkNJY+b067mSxNb4j1HNRwif8QiERS5wMiniLOcHBW1qYMYcRnISm3TK+W5PngkiQN1LcW2i3Xj9WtK14CWuyeNIaIBVGcrfJlIBtAlhx9rI6POJMN4IOdyIQGp3UvlTVAbQYV.s+dRtRD5rpooDqoBqjrPvwIGGio+L6FpWEMXtIaWTKXAkMT78TTXNH5f4aGm7TBu5NWdncxEvkTTnbRI76xhqaDjCG5th.SoANHS9id.F46LWmScIaeTrNRvBEw3v3SWOEkpLzjdnpqxXgQSaJi3cn4sM92EgDAELqtz3XiERNDSUXeL0GbXFN+bcdyhrCyyL6Ev+rAqxxL00LqfDUviQmCanCutoL65cU6JyeOZTT.ORPDSLHRcOeCd5e97c7yhrU.IIBII5bNpNz7oII+rz9Nbz5njCndDMT.GSTsBxq61MQ2JWsSzxrbAPVbX.RxdH0D6gI9WVnyYVjcPP4wrv5lKa4B1pBqcd5vvSNJ4K+2U9cA0CjBjlhPUNDo0Ps1ZGDiYJGlvJkJUSUHnp1U30wt7eMS8bX0bm.IPJJxAXhOwOjmYuKzwWWw3KjsxGkoMh5qLSPEkEcG92U9cEwkwIGkBhwDMy3uJCTXkDYPUQvu7FRtG9lTWLLM+XNslXlzHRXLwLXG4al0CpEwwhnl7ialNVqN5.D91a2L9C9XL3GoQNmYQ1dn4Tn9K0DQYsuKV0n5PkwNN4oRZNTAuTTjTjmFczrnl+OG7vAeSouv0TYSBSMnZWQoUqt37c2pbzuG9UTkin7zKg+zoIScrQRbiLfYF+u7CKDLBYScHl58uKFMWibNUQ1giNmK2PpHX+ozpF5HfnyYbDinpq0XjiB3YNm4KCOmQTuKJbvmooDdljNv03ZmZyKr1kaSq20QQXEIARgGSRQrQRTrJWRphgrbo5Z4ZLuYimSODY+m+ZrqcznmWUjsBEqkjDkYWw+Cz9NKEqvwHgZtO1rHZXJJPJJfddhFUkhEyiO4oDkLIavLdsaFJdkTe8v6uBMEviB.SiC1HHIQnKhRGDshw6KUsi.2HeLx7s9ILwmoYN2pHaWTzkIQ4ps7IV.OFmbU4ALeimw7MhmCePGi7LMEKKFr1Fa3H3B3RA7JWxoBq44UmFSq9LIqxVjOAkLqrlc7udHNcWNexVJt2BNLSsuiPo2+g4vM0h.qJxNbi2tdyVOLYLiAm4QcLxiSEt0rDdLF4o.tyZzbXM9vAkIVzdFmhpK2k3DUasCI1h3SQxRZhPeDmNayizsPvnjezQH2636xSefl87qhrCp57UmUJRDjhBLIEHtw8oBBRy2.Q5Aknxr3vXjCkg7gpSX9LThr3xz3TVe5kBarWIQ3ScQ7XHxPODm9HQcmVrYgEBlhRNCR1a8d3oezV4ZTEY6T1rHLM6.Q6CQ1xM3v7.OKkHJ1lfWD3fkJmYUZzPOGtLEEwwjtAyHh9jGRtVD97klhjCWVOcPWDoEpaBAHHFDk3fj9e9N3Iu6VscUlr0.qwrj3C6EJPXrM1yT7zDLN4IiY9IEZFkrT.mplm0EEonHYM4kcshoqbDek+25AcM+tRs.Vs2cILPPCQF1.cQOsvNfT39S1gYp+suD63CuXZOkIaW7oK5fPqiCGUebxV1l5oonQQj.E3FhoMIxevqcOS56lxjD70NObkN6HvgGpY43iJ6.Le9kuRGhDl8nqF21ECe5GgrHnS5tIH7v.dbHR++8KvN96YQt8LYG1f7Ylhcd3HniSlxY8YI7Hkop.6fOiPVbMwvNH8cKQZSp7FpWtGAE1ovZAZkD3LROZdnpnKQkWGqxjtU4TWZ0BBS5f3Fazajr+Ifnm5S74Y6ueXdKu5MDrgffezIQIgY4tH.JhGGmbDAoIceygEAwc93jyLxUX7NVAypt.iITy3xx4BsKhnVyf7MZ7GVRJWppXgMKBc9zjTj0u.YIZ3Ji4vj9197r8+QZCDMXH6PSpBC9gDAiPVBpPdvvjEIAQYYBxi1zvCTTKP0qfZeckystxBeiyO7Ld7Z0PxPX77E8Sh4zJDKDLFEJMHo+P2N67CRazGMFxNXzc37eYvkon.VHYLSfMBR82B3ilTTjwMYURk9lNDq7uVmAtlNhwvZUwluZXUcp1LDMTGjgI2XCR522cxt95s66sMDPvCT9lKXTxf.ISSIJZlOdJic0CSViZYqFh8SigPGd.yeD8VdZKyT22BQn1EGgoe5ixTu66sNoAb6.Wc9lA..v.CmDQAQE1AtB0kDlpbRVbHigjSQQxgCoHOSQIFjLlPTN6.RT8CT0+0pktEEMcQishS3y.KDjGOFho+d6kodu+HdlCtTceKOxFBHvQIaY6jKfKiSdFgrLNELi609ZHkFxnQ4BxhfNi.gRftKEhjfNp.hB5XfHoMxDg9Ce4ZiRetPX7zWoUbKv6gvHjOywI2GZmLzmX6yS9i0NfsOZ5mjDAI4vkooDSQIxPINN43vjlIovn.eeM7jBTOmB49U3Nz8xtyVumi2IasyLn51lXcIgAbQe1f57DvKQCWrDQhv8vhUBx2w3afUBiyDFqDJgOGio+oiPw+16gc9DK7Y1Ft2ON2nd.RvlnKNLo44XRNN44.Lg+fj6AmlheUItOvWi8MLKRMCuNN+Nih0ZDHtbEhqQ.+WjHN2fPGt7JvON1DqM3y5lAgYDSTrxlEmO9SyA+W+kLQqrzQas6+14lzCPGzGwYmLB6kIXOb7GYHl9C8U427.zt2Tsq.+obIaRf6KBrd6RzuDKj8ubMZ2hf3PubM11rRWbcv+a6h2G4tawfYrXfXWbKtagdsmf77cXetOCS9guWdzaaXXIc9iZwahy6bsHxaUf75DHddRBqJQKcnKSHHWpPn4T9nnD9+xh3+Q+prquwR3sb9aO6jaYjym9W+8xuM6OjCbK2A63NWoZL.7V3h5E3kCh2MvUFAqDAtZs8S6IwdIwe5g9qvEMkvamN38omlwuq+ykXEvVv10g3uZrLTZseZ19e4mhG6SrR1XpEuYtvWrEVuIE5q2B4FCGkztP6lrCCPSI7K5g5gcw+yoI+O5tY+S21tIKBHRweu99XOes2Ceq2FKgyOuXv0x4s1jD6OCzuRA7xjHsfEeAjqyx6fksNBIXiO4G2E+GPg5KdWrqeJMZwEeYBhcxMc3ODOxapUy9gkSbCrsHYovEnv9MJgWJvEFAqt0UD5zFEspBZUFZ0fLgUOTI72gB08kGmG5axdNbSdIW1f8XT39uGd5kE67Vr3yx1cA1o4e7V4EbYkv+hrP7GqPe0RDcKPDKzFdc4elMhPvVYyB0AIz4GgSg3hpnGpI.8uvC+ueN79keS1yy1VePWhf8nj4axpTw2KDt6.mQ7D.290w42aDrtPMhKSi3r0n2DH1BvYXgnSXFhML2ugYVHCgnxrnQA3iWVAh86ided3uCeTObFb9s+GrurzFiH0xABTbbU1bKsK7lYa8Ck5WfXc.aUiXsRDaLJxSW.8og0Hfd.5BDcnQ6oPuGM5GSC6Dz6wC03SiXzuKOcpU5mmEK9+mg+Gdbbf6pa.....jTQNQjqBAlf" ], + "embed" : 1, + "id" : "obj-41", + "maxclass" : "fpic", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 17.5, 17.5, 122.0, 123.0 ], + "pic" : "mage.png" + } + + } +, { + "box" : { + "handoff" : "", + "id" : "obj-33", + "maxclass" : "ubutton", + "numinlets" : 1, + "numoutlets" : 4, + "outlettype" : [ "bang", "bang", "", "int" ], + "patching_rect" : [ 818.5, 30.5, 108.0, 21.0 ] + } + + } + ], + "lines" : [ { + "patchline" : { + "destination" : [ "obj-11", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-10", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-27", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-33", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-5", 0 ] + } + + } + ] + } +, + "patching_rect" : [ 668.0, 86.0, 186.0, 20.0 ], + "saved_object_attributes" : { + "default_fontface" : 0, + "default_fontname" : "Arial", + "default_fontsize" : 12.0, + "description" : "", + "digest" : "", + "fontface" : 0, + "fontname" : "Arial", + "fontsize" : 12.0, + "globalpatchername" : "", + "tags" : "" + } +, + "text" : "p \"slightly more advanced topics\"" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-15", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 0, + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 0.0, 26.0, 967.0, 693.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 12.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "showontab" : 1, + "boxes" : [ { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-32", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 743.212769, 160.640747, 134.0, 21.0 ], + "text" : "vibrato rate in Hz" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-31", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 25.0, 69.0, 374.0, 271.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 11.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "boxes" : [ { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.0, + "id" : "obj-3", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 50.0, 115.0, 132.0, 19.0 ], + "text" : "expr pow($f1\\,-1.)*48000." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-2", + "linecount" : 5, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 201.0, 92.5, 145.0, 77.0 ], + "text" : "conversion from vibrato rate in hz to period size in samples at samplerate of 48000 Hz" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-187", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "float", "int" ], + "patching_rect" : [ 50.0, 168.5, 95.0, 20.0 ], + "text" : "maximum 0.001" + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-28", + "maxclass" : "inlet", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 50.0, 40.0, 25.0, 25.0 ] + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-30", + "maxclass" : "outlet", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 50.0, 200.0, 25.0, 25.0 ] + } + + } + ], + "lines" : [ { + "patchline" : { + "destination" : [ "obj-30", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-187", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-28", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-187", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-3", 0 ] + } + + } + ] + } +, + "patching_rect" : [ 639.0, 186.640747, 116.0, 20.0 ], + "saved_object_attributes" : { + "default_fontface" : 0, + "default_fontname" : "Arial", + "default_fontsize" : 11.0, + "description" : "", + "digest" : "", + "fontface" : 0, + "fontname" : "Arial", + "fontsize" : 11.0, + "globalpatchername" : "", + "tags" : "" + } +, + "text" : "p \"rate to threshold\"" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-29", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 408.0, 8.0, 318.0, 35.0 ], + "text" : "Vibrato - to give a vibrato effect to the currently synthesized speech." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-27", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 164.0, 77.0, 92.0, 20.0 ], + "text" : "mage_glossary" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-38", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 164.0, 50.0, 90.0, 21.0 ], + "prototypename" : "magefont", + "text" : "a sort of lexic", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "underline" : 1 + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-8", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 332.5, 215.90274, 37.0, 18.0 ], + "text" : "clear" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-19", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 278.5, 215.90274, 54.0, 20.0 ], + "text" : "r menus" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-23", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 278.5, 193.40274, 56.0, 20.0 ], + "text" : "s menus" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 4.700932, + "id" : "obj-205", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 278.5, 266.90274, 75.75, 10.0 ], + "text" : "clearchecks, checkitem $1 1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-204", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 676.0, 102.0, 317.0, 504.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 12.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "boxes" : [ { + "box" : { + "fontname" : "Arial", + "fontsize" : 13.0, + "id" : "obj-1", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "int" ], + "patching_rect" : [ 168.0, 282.0, 140.0, 21.0 ], + "text" : "conformpath max boot" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 13.0, + "id" : "obj-12", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "int" ], + "patching_rect" : [ 23.0, 391.0, 140.0, 21.0 ], + "text" : "conformpath max boot" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-11", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "bang", "" ], + "patching_rect" : [ 23.0, 338.0, 32.5, 20.0 ], + "text" : "t b l" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-9", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 23.0, 365.0, 128.5, 20.0 ], + "text" : "zl reg" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-8", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 23.0, 418.747559, 123.0, 20.0 ], + "text" : "sprintf append %s%s" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-7", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 23.0, 205.0, 128.5, 20.0 ], + "text" : "t l l" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-197", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 168.0, 330.747528, 106.0, 20.0 ], + "text" : "prepend append" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 13.0, + "id" : "obj-196", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 5, + "outlettype" : [ "", "", "", "", "" ], + "patching_rect" : [ 23.0, 310.0, 104.0, 21.0 ], + "text" : "regexp (.+).lab" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-150", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "bang" ], + "patching_rect" : [ 168.0, 203.397827, 35.0, 20.0 ], + "text" : "b 1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-141", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 168.0, 240.247528, 86.0, 20.0 ], + "text" : "zl reg" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-151", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 23.0, 97.0, 61.0, 20.0 ], + "text" : "zl reg" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-152", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "bang", "" ], + "patching_rect" : [ 23.0, 72.0, 91.5, 20.0 ], + "text" : "t b l" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-153", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 23.0, 282.0, 81.0, 20.0 ], + "text" : "route append" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-156", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "int" ], + "patching_rect" : [ 23.0, 245.747528, 41.0, 20.0 ], + "text" : "folder" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-157", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 23.0, 165.247528, 91.5, 20.0 ], + "text" : "zl reg" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-158", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 23.0, 128.397827, 61.0, 20.0 ], + "text" : "route fold" + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-201", + "maxclass" : "inlet", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 23.0, 12.0, 25.0, 25.0 ] + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-202", + "maxclass" : "inlet", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 65.0, 12.0, 25.0, 25.0 ] + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-203", + "maxclass" : "outlet", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 168.0, 445.747559, 25.0, 25.0 ] + } + + } + ], + "lines" : [ { + "patchline" : { + "destination" : [ "obj-197", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-1", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-8", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-11", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-9", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-11", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-8", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-12", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-1", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-141", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-141", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-150", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-158", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-151", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-141", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-152", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-151", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-152", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-157", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-152", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-196", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-153", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-153", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-156", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-7", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-157", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-150", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-158", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-157", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-158", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-11", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-196", 2 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-203", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-197", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-152", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-201", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-151", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-202", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-156", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-7", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-9", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-7", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-203", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-8", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-12", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-9", 0 ] + } + + } + ] + } +, + "patching_rect" : [ 278.5, 167.5, 75.0, 20.0 ], + "saved_object_attributes" : { + "default_fontface" : 0, + "default_fontname" : "Arial", + "default_fontsize" : 12.0, + "description" : "", + "digest" : "", + "fontface" : 0, + "fontname" : "Arial", + "fontsize" : 12.0, + "globalpatchername" : "", + "tags" : "" + } +, + "text" : "p filldamenu" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd-Regular", + "fontsize" : 7.588239, + "frgb" : 0.0, + "id" : "obj-200", + "linecount" : 4, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 278.5, 105.897827, 64.0, 42.0 ], + "text" : "drop one label file or folder full of label files" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-198", + "items" : "", + "maxclass" : "umenu", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "int", "", "" ], + "parameter_enable" : 0, + "patching_rect" : [ 278.5, 243.5, 100.0, 20.0 ], + "pattrmode" : 1 + } + + } +, { + "box" : { + "id" : "obj-159", + "maxclass" : "dropfile", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 278.5, 105.897827, 61.0, 42.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-91", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 318.5, 282.0, 53.0, 18.0 ], + "text" : "label $1" + } + + } +, { + "box" : { + "id" : "obj-11", + "maxclass" : "ezdac~", + "numinlets" : 2, + "numoutlets" : 0, + "patching_rect" : [ 114.860001, 509.320007, 45.0, 45.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-34", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "signal" ], + "patching_rect" : [ 272.0, 465.687683, 54.0, 20.0 ], + "text" : "sig~ -99" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-1", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "signal" ], + "patching_rect" : [ 272.0, 486.318176, 48.0, 20.0 ], + "text" : "dbtoa~" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-2", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 272.0, 445.551331, 45.0, 20.0 ], + "text" : "r siglvl" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-3", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 206.5, 652.7771, 40.0, 20.0 ], + "text" : "s ctlvl" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-5", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 182.5, 461.824036, 55.0, 20.0 ], + "text" : "r outctlvl" + } + + } +, { + "box" : { + "id" : "obj-7", + "maxclass" : "live.gain~", + "numinlets" : 2, + "numoutlets" : 5, + "outlettype" : [ "signal", "signal", "", "float", "list" ], + "parameter_enable" : 1, + "patching_rect" : [ 182.5, 509.320007, 67.0, 131.0 ], + "saved_attribute_attributes" : { + "valueof" : { + "parameter_longname" : "live.gain~[6]", + "parameter_shortname" : "output level", + "parameter_type" : 0, + "parameter_mmin" : -70.0, + "parameter_mmax" : 6.0, + "parameter_initial" : [ 0.0 ], + "parameter_unitstyle" : 4 + } + + } +, + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "varname" : "live.gain~[1]" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-9", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 182.5, 482.454529, 43.0, 18.0 ], + "text" : "set $1" + } + + } +, { + "box" : { + "color" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-4", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 182.5, 439.5, 73.0, 20.0 ], + "text" : "s magehelp" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-22", + "linecount" : 4, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 735.0, 320.393188, 134.0, 63.0 ], + "text" : "offset the period -\nuseful with zoom, to create different shapes than sinus." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-21", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 735.0, 267.893188, 134.0, 35.0 ], + "text" : "zoom inside one period" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-20", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 743.212769, 206.5, 134.0, 49.0 ], + "text" : "threshold is the size of one vibrato period, in samples" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-18", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 743.212769, 88.897827, 103.0, 49.0 ], + "text" : "amplitude of the vibrato, in hertz" + } + + } +, { + "box" : { + "id" : "obj-179", + "maxclass" : "toggle", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 705.490173, 555.490234, 14.509805, 14.509805 ] + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 7.77605, + "frgb" : 0.0, + "id" : "obj-177", + "linecount" : 4, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 726.5, 523.5, 156.0, 43.0 ], + "text" : "sending a pitch overwrite message continuously is necessary in order for the vibrato to be updated when the phonem is frozen." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 7.862669, + "id" : "obj-166", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "bang" ], + "patching_rect" : [ 703.5, 581.239197, 37.0, 15.0 ], + "text" : "metro 1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 8.283234, + "hidden" : 1, + "id" : "obj-54", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 558.0, 530.0, 32.0, 14.0 ], + "text" : "set $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "hidden" : 1, + "id" : "obj-52", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 524.0, 530.0, 32.5, 18.0 ], + "text" : "/ 10." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 8.283234, + "hidden" : 1, + "id" : "obj-51", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 558.0, 570.0, 32.0, 14.0 ], + "text" : "set $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 6.843845, + "hidden" : 1, + "id" : "obj-112", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 590.0, 530.0, 34.0, 14.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 9.753232, + "id" : "obj-14", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 620.0, 552.0, 44.0, 17.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "hidden" : 1, + "id" : "obj-39", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 558.0, 552.0, 32.5, 18.0 ], + "text" : "* 10." + } + + } +, { + "box" : { + "floatoutput" : 1, + "id" : "obj-15", + "maxclass" : "slider", + "min" : 0.01, + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "parameter_enable" : 0, + "patching_rect" : [ 620.0, 530.0, 72.0, 18.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-16", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 620.0, 570.0, 86.0, 16.0 ], + "text" : "pitchoverwrite $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-12", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 658.0, 495.0, 89.0, 18.0 ], + "text" : "labelnextvowel" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-196", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 639.0, 320.393188, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-197", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 639.0, 340.393188, 92.0, 18.0 ], + "text" : "vibratooffset $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-195", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 639.0, 267.893188, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-194", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 639.0, 88.897827, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-192", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 658.0, 213.5, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-190", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 639.0, 160.640747, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-183", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 639.0, 287.893188, 93.0, 18.0 ], + "text" : "vibratozoom $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-181", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 639.0, 234.640747, 97.0, 18.0 ], + "text" : "vibratothresh $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-178", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 639.0, 109.897827, 87.0, 18.0 ], + "text" : "vibratoamp $1" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-6", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 67.86364, 415.0, 78.0, 21.0 ], + "text" : "play it safe." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-10", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 67.86364, 439.5, 92.0, 20.0 ], + "text" : "loadmess reset" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-118", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 388.212769, 398.5, 47.0, 18.0 ], + "text" : "labelfill" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-111", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 419.212769, 377.5, 103.0, 21.0 ], + "text" : "fills label queue" + } + + } +, { + "box" : { + "data" : [ 9240, "png", "IBkSG0fBZn....PCIgDQRA...rG...fdHX....vmaxh1....DLmPIQEBHf.B7g.YHB..f.PRDEDU3wY6cdGkjcUem+y89dUrSS2S2STwQgQn.BoAgD1qPFA3EzhAQPBSxlCAkVXcPXu1m0qw9v4fLdMgEyAVhBgjHHIPfwDDAIDf.EXzLZDLAoQStSSGpt5J+B269Gu6q5ppt5tqp5pCy.e6yzRcUuv889du+t+R2eWAmjfGh+73cQrd8Q0mMxM.hsIv5rz3sdMpA7P1uMh0.zsMhn9nc7QWDz4EHSCbDKj61B1u.0ylA2g8QO5KgaerU5ms1EDqzMfVE6jasCE4uXP+xjHddBzazGNUfSIF1wz.fFs43q8ugJe3EHL+sv7+W.OWfmwBwdllhClG2mb.54GOJxItF92Ksz+D19wILj8ugqKZQ58RDXcwBzWoF8KIBx0YgU7HXgBE9nwGcMTZqAABrQfERTno.tZAhLEvavnX+y.8uJCYejWJ209aCOdKKXUMY+PbU1qgKXqZTuVAbsBDmWRh1kBEdnPQsiUW5P3ndIBrQhFHOtCVD2mxG8WZbx9nuN95GcYowzhXUIY+T79NEebdC1X8p7QcUwIRbMfOJTKSjai.KjHQfBM4nzn.euonz2IME9tWO2qyJc6qVrphreJtospP7N.dGQvZC1HwwHXd0NrPRDjjGWuR3c.A5Oywn3c8F3tN9JcaKDqJH6mja77A4sXi70GEqM5gOpUwTrn7uCZiyzN0kEyagf73r2z374OLo9R+47slXko0NCVQI6Gma5BsgaUf3MFG6NCTvRsR1jlEBeA4anTABJhKdnIJRhSDhXFUKQRI7HGNTBerQRDrnDt6eLx8Y+A7Te5OE6N6J8yxxJ1A+EqAJ8dDH9qSPjM3XFIuZCFkvJOZEzrA5jDXil.h2xnzVnBbgcXCedjHn.dLJYwA+cNN49fCx99N2Ha2c494YYmr2A27+MM7OEG6WnZU1HYAB7vG.bQQRroChhMR5kDXivzZqTvc8tNy9SjHPilTTPKQ7iyh2e24vG+IWRdPlCrrQ1OEu6SwkH+CVv6JN11NlWpqzP.nL1m6fOcPD5hXzOIA.Kyqn1kjGKDDAKlhBSMN4usGlC8IuQ9Oy2Vt3K.VVH6eM2vebDr+3ww94UZUl10kvCEZ5jnrN5fjDor4TKkHvrMHEEd3QH6e0Kf+e6XI8FxRLYq4pr2Im+sZg7evFQmtqBDYKfxdZyFA8Pb5k3DEKil0KecDE.wvloozXSR1+hylO4Wco99sjfsy67zkD8iFE6WuB8pFEvBm9X.RxZIIVl4RWIacQvh73nGi7ereHC+AdubuKIZrujP1ON2zkDCwWNFQtvR3sTbKZZ3abuZ2Fw0QwZUSGPfxZ7OLY+wOKC81d470FsceOZ6j814VdY1vWLJVm1pAkvzFQ1cQTVKIMlMsZRqgYPnX8QI6NOJS9VuBt8c2tu9sMrCt4q0Bwm0FqAbWEPzdnHFVL.IoShAr7Nmbqh3XSJJ9LGhwe6WFegGucccaaj8ula5lif7+iMxN7VAUDKTALG7oeRx5HY4vTdhDhgMoo3vGfIuoWDet+i1w0rsP16fa9FrQ7IEHh3uB9RU.TBejH3TnK5hXmvQxUhXXwTTL0NYz2xqf63GrXudKZxdGbiuNIV2gEhtVIIZMAhs6fHrY5BKjmPHxdgPTrXJJcr8wHW2Uxc7nKlq0hhreRtwWgMxuhEV8uRJ5VYh1z.jjdH1IATb0HFVjhhGXeL1q+J41epV85zxj8ula3xiRj62FwFWIcVhOJhfEmJcSDrNoXzb8PbrYHl9Y9Mb7W10vcerV4ZX0JmziyMepQw59hh0YtRRzN3S2DiMS2DwjpPmrBOTzKIVqK9WxVYs2+Of82zI8XSS1OCuuXd3+ERf8UtRZGcdbY.RxFoSSDkN4G9nYcj7LSPrt+L7q+dM64Ka1Sn.t2ZLhbsqTDsFvEe1HcxFnqZxTjStgFMdnYKzyM+37dd6M642TireBtwqQh7SI.6UhWvZzXgfMQ2zGINg1rpVEZfXXKrQdUWAm4O4d4oGtQO2Flr2A23YXi7qDEq0sRXhUPTpjrY5ljD4jVEwZDnPyZHdBaDmeZJdO6hQanrdogH6O.e.44R9OVRhb0K2huC7HlBar3ToKhYBE4I5nx7Pu1eZDij7QSej3z1Hcouc1wC1n2yEDama90aC2CHZIs2aUH.bPQTjbZzyIrlVU4xJB.EPQbws7DQUmkpQQRLrw1zUPOGgH1BISRgB+bdtq9Ok6eAc3xBR1OIuuAD38Shi8EsbOp1EehfEmIqwD24SLP3nUeTFBUyDjmb3hkYIEkGGJVQV6nIP7bXju5fHlzQ1idHF8SGHIH12vLoIUbrYeLwO8cw25ZdTNVg4qcsfiTuI11eaBru9kShNTz8IJD8LibC9IEEXRJPJJvAIEiRNbvGW7wAEgw32xDC6v+ElRxPfODJhOdnn.dLLYHso6gBMIHBXReptH5YbNrlCcm7zyaBLNuj814le9VH9TZHwx4KaezDEKN8U4Ds.vFIt3SNbYDxxwHMooHonHtlPrFwLVWVwbzK70VT0b5gNMZJJxTTjzThnXQLrHdPVqewqine8GjiLmY4xbR12CWm0ZI4skjHu3kSujoL4F1oPOqZ8JVnSbJfKGfo33jiQHKgwGPhfnkyl71KBWeYdnXBxSVbwFAajNWiChh2EO0bpr1b1Z1N271rP+KjXEe4ToHEZNUi4UqlritxEAvTTfwo.SSQrLK0mUBIPB.OSd2rY5lR3MwCxQdg2Le6CUuiutdPSiVHP+WFiHKqDsCJ1fIcdWMQzVHnD9LDSydYLNLSQQbIA1lk8yJyTMZlYd+iRZ.V6oSWuu453qqX7WCGeaQP9gzPrkqGhh3wlnK5k3qJHZAAhicQwQHMGkoICNHHPT5RgH5ECrLq30R3tksxZu+GhCkp1iotirEvMDE6tWtdo6X70ceqRHZIBbPwfLM+FNNon.1HIFVq5H4JgFMCPGqeizyatde+rFY+TbSaUi3ixxjF39noahx5oyUbGlHMyIOJ43HjloMZ7FLR9DCXgfB3bNNn9x6kwqxt6YMx1A8aLNV8tbLBKbQ8sd5fUxXWMi8wE4YYBFgoAzDq0B2+JJ7Py5oqMeorw2PseWUj8CvaqCaju5kCQUg4t8YPOkqQIqDPhfrThmgI3.LINFu1IVEae+7Acv5VStU5+0tM1VjJ+tpH60QGWfDwKb4vaYdnXSzEwMq04kaDtDZODSw9XBJfCQMBrOQjjqDASMF6pesz8Vp7ykUePh2TTrrWpaLkvm0Pb5YEHUeC0xdJJxdYblf7DyLu7IKvGECPx38SxquxOu7S3uj2Ue1vqZoVIoPEx1DctrSzAddRyQHMGfT3ihnm.Nubi.IB5iNd0mODclOyfXXcIBjm8RYkPHbIwtA5bYWToDAooH6liyDjur+pOYEZftHxE7GvkdogeVYxVf8KHIQhrT5EbO7YSzU40B8xABcy4PjgmiTnMY7xI6PgldIQGWHq6BB+LIDjIJRzW8RY.ObPQ2DitWFmmNzCXGhoXXxPDjmTM277AEZRRD5jnWMlXfHA3Ogg6Si9EsTIBWglXHYSzIKW1SGXRkC6mIIMEOoct44CJTzMwupafsk.JKFWdEBDqYohF7PwFnSjKC1SGNK7XjiCPJ7vubQv420fOZFfj82KwuTvP1B3phgsc6VSbAAkXpf0Gczkbw2BSlabHlhgHS44q+cUnQSBrisVR9J.vN3WhyJXtr1qyTBS+20tLji2RDjCGNDSgK9+NybyyGzDjyZcS7yE.6GhaoSE5MtTLesGJNc5YI2qTRjLN43njtbHH+8H.RDzKw1.fkcW30mOxSq0S7+5edt3SuDmNHZEQypwpGfMy8QhfwHCGkzUk5sAcuZrbvdgtGMFlu6SXhB2pSor3lJxF6y3UvyOtsGt8lf3aP0BirEQrvpujfn1FiFo.VuaWDDkMe.KDqqSPJmo86oPOQdP4Qf5C06gRiHVDnuDyhKD.SPdFEIIouZ9RA5Rd3MYVC4O2i103i.IxDwPDs0zZWkyAsW8lFTiUWIP1YLP2Zcl7lHGZWOZEROHKcEmxUyoF0NNQNqHXIaVar03ShK7T4z+FuGjIiDPhhJ+dHhO38vGD2a6mQj+lqDqW9YUkabPoQORFb+nOBd20N.+Z68qQrgtH929sg3zWCHEk6XEdTqGeV+bnFl1WQle9yxQ9quWJczwqKgqEZ560borg+pWAwNm0gvpIlBPCnTnc84f23cQpG3oPhcEesGccEmKa4NeWX0cbDBQSwWZsFTZxs8Cyy8V973mNOMKgqA5l31QYzj1RjWZqp7jHpE1arGjwswepBncC5YKQfTHf0DC6q+hv5ke1H5KATvEc1vBruFrDHe9afXewWOD0BuO2iQ04SgBwYsVjW7FgXVnmpHXtGNnV.gzZr5LF88F2FBKI6+M+YPWxupyPiOIO+Sgy5te2H6HF9SWDsupwdepAgkDqtiCJMxDQoVQOZTDeqaf3m8.fVi2j4QnloTVW4QFdlhxeBXEMBhdhSmuvyfnanGxmNKhlzeAg4XdQXs1tvoFcgOm5CcvubO1T7bW4GEuT4wSp3z08PLgMxKayD61eCH1TWndjiPo2+2G8dG2TW10PLI12vkSzOvKkn+ueo3801Ejod61BZzGNMEu5u.pIxwvxbk8u8b1z78I4kb5bt2+sP2uryinqaMT7niOqWxcd4aAYGwX5exd4f2xchtfWclVp9O6VcDky99tIRb9arrHZQs+174S9M2AG3luSJ55fqHbONQahBmbVEDWsRQhyZ8bY+n+mfVSk5TEd0aTSksQfCxtsUnVeKV.FBtkBApLEv4PigaP0AfX3hFG7+g6C+evyf86ba3dW6D+G8YQXpGYAPi6+xCSj+rW.hynWjm2.ndhiPUsGo.rjPlR3efw4nLc4bBa9pchZTjeWGCmASQhKXSPTKpmBX1CzE.jamGg7OyQPVU6agfF2gSShKXSkSneWTTBeSZ95PLBJPBSbvg3nicLzlJqnxj9FUtZRpdqoRQrC5iyT4HRWIXBJvjjlnDktIJBDjvjlEKjj4fk4qHosBV2h1rHg.soJ6tV5H7CAjPnX6BNl4LqbTi.b8Pmp.hszGhthW6EF8HYfzkv6no3Pl7Bytg5bJBl+UHZHkrEVRBKU7MvU1Pl9nMG9jTfiQFrHBEMcCE3QulatvRh1blVMfvXMBrsrBlmmftARS8baRJhGpxoxb2l0DRP2k5e0hhLtMn6cgeUrPO7AlZETSPqo.yEJRbNEMNiRWyVaUI7rSP9W0WhCO1vFhtQTfxrtGc8aYMfqoEZtpAHiovUmGGNC7nGBz50GEBStqoA7Whx3mfUbhEdls7pLjgNHBqg3DqN0jUyB3OlsEhdVrAmvCMwwdIIUf0.G4IdZljhDg5kDMgqBRU4+YQThzWWj7hNEr5sCzpVTATCMGtmfj1PxgEj9vM4sviMLGTaauAVfKTX6KBBJZ1ZJ5fnziIom0UcrD0VhrqESiSatoqkDl4OZePhfCQZljRDAazn.CgFrULDAYrHH6LNw255IwEtIR771DwOq9I5YzOwNy9wpyXnJ13aGGgEVdezjkRTDOJEHvlHXUVQp4SnYcgPP39IXi.MJzJEBYiYpUXGsooD4vgMPmkWqbZf3XGw1B4hNmyhhkIN0sOHQvfLMSPNhh.MdDoudH1Y1OQO09H9V5mDWzlI4EsYhctqGqNiWsc9t93OUdnyFSgqPpaJJRI7IKNkW7+VFqmWLCJ13qYa3mqHpRMn19JMwOkdIwotVJMVlF6bHXUkpPywIGCXlVEBVRWskjKrcGWIKDLHYXXxRLDD6LWGa9e5OgNewmEQ2TOH6XFBTUxCuwyPo8ebJrmgovtFj7+lAo3gFCqDw4btuajHat9pkToc54vkAIiofdHJG+aQaRzbGaYcr0+WutV6jc8wOeiW1yBWrCGmrrN5fXXiC99K4YRZyBIRNFSaHZIhn1blew2Ac+GctfRQg8NB4e5AovucHJs+iSoCMINGdBbFJE5JTHRilHqoa7yTjn0HJLz+44virDHhOzTn4y18ECxr6iwgt8eJZG+.yIaBjcuCQgiNAxlvD4voiFiBrY5DeztKJxNb23pcMxVBLDYXDxQbyNmahydcz4kel3MQV1207uSgcOHp7tnTt.JioRgKy8JebTHrspx8pgK41B3PFbvEGFnhNHKkQ9dzGXWr2+s6qgLsa1PfEMuquBFgqHMN3gp0I6PEMZeufDLIEYHxPThTVGaqd6.gk.2gRS1Ge+keYIqql4yMbPwDTfRnMYuhrbGfkKXQzl1cmU66rlGRDjgRjGmRsrLKeB1djjsIwdZTLIEl2kPWvKpFKrk0544iSNxgCJiBWmH.MZ557NU56RNKVLZMXRri7szScnn6dI9hpQTKZ1nOOWPZr6bRJfC9DrwmKOgJSw0nIRWI3R+b2.uvux6k3arOiImMGBJuX9jGx1zjcn2xVqY6XXwfPmSDFd0EKQDr8JpXTxxnji73UVYrS7fFY7Hj3zVKwFnGhzSxV54PX53KwahldNaEAo8SOMU.CpWiHfnO.o3LwiXKDUqAEdTOIIg0VjooDooX4Begnj+BJ3QqLczDBT3RyT6dEnaX2wpUJy0uwFcpQgpnGZ+.mqrXb6afG.sS2BjshtHFwvFsvz.lOdRvbdLGkoIGNXIjy4wf.zJHxF6l9u9q.uIyV0AJHP+gIHOIA5xHpVghNN0AH9l6Es+b8hRP9CNF.rt+qWLm109GgW1BMjvdMfcxXzwYsg42crlKUeWw4vldkWNJO+FRBlFEIOs0Q702CdYJ1.mQ8gEBJh+DOKiTpoH6JSMXEZjk7gXVySmUcPx..f2LuPjHXXxZBUo.TJPFjFQ0x3ZGejQjHGnKN6u9MzLM2ZZ7y9Ur.Ii+K1KSuqiP2O+Siq39u0V5Rqbm6.dD1Qas+gak+fu+eWKc88y6Ly6wlDZ.W7GbO35zTjsGZVCwKuWRq1yX39g+YndlIn9ITmFu642hHQD7ejCClTBbBxyPLsYMeoXjO9CRGa6zI+SMXU1gJPRwe6fLxm7gH9Y1eUO.EvsgU2R43ge1hyp8IPRgQljG6M9w3LdOWMIOiAPFKR8uH0BMXkHB8+Rddfc8E8KwhI9U6ii7k+YDo2NZYcYm5IOHElizppAZljCuQNLG1Q7TbKMbSv0T5pprVeqK+Ret523yLyzaQFJwyxjDoBcuCJY5JjlRzXsMWM9HDA91pH9LN4wGUyUoSlmmRM93iafcvh5mjC065IhH4Jen+QV6e3V4Qu1OBC9s+UlmgJOr.eyIEst20UZWieEZNUXCcmziyw9T2F+7+6M7HaMAptzSMgwTvBMRvhvcgZG74HlT9s5Fk87ZcsDazZESRIllRDjVDMYTmV.62CRHBcfBBMHTtdKXD0B2lzalqasn1NPMJDHHKNpTj+Qf4d33rfFMcG3s5V1TliPZbvuoVxrBD3XFM2rmayiVXjSUtic1I5PqbcaWP.LNExNAE9EPCR1BD3heKatk.AGloZ5USoffrBYRJZlnX40yW0qjxpYlflnPEjtuDLEWQ7JWP7jTYgos5ye4xteABljB69dY2CAMHYGluSIZgsqgfUrQdRQgFlnCe4LFEHONF6la+n5B9d.4oLYhhOA1mVBe7LAKIzIRgofjBE9wC9rIEE3XLM1DsbME21j0npJdqEEK5xHgr5raocunJETJHpdOLDjTbMnX7fE1sEhlxs7A9j0kiQ5F1aaAhs8LAsn8H1tVcvgfWt4wEGSxAVBW76LFVcGCgNLDgA0P0vVPn8FVZv1VvVd0uX5+h2RfiO77JOJVYT4K7ZW4ar7HJW2viiMcRLrQXRyf12F2t.XZJ4OBo+Uge1BR1AdmRQ+jroHZAPI734XxF1mzAQnwgIHOg9ydwfvQMkLoCjK9jAGbvGIAOWtnPgGa9h2Jux63ugncmbguvZMBKK59zWG.TX7zLwtORUwadV4OdMvxL033jCIfko1guFRTtrYtXncIBFmBGZPl9wB+rEjrCrsNA1z7qDyiPZSTlZLgvSRAlhRsbBDTYtW6hhzTBEJJfKdUYpl1DdDHBxf8kWMDIYLRtt0T1EpyKzPoTYI09Ghm3195j5.C1TIWPHBe23ihblzgpChPmDitHFsp.dMPJx+vOLGdjvOadIagoQjD6lpmljfBVSXs+b9uGBTn33TfR31zDc3XGEZxEHLlzTrrhTgsmp6vUcmOKrYrccP9JW1+CrhEorRWMB7J3PorYaIht1miP4e4wkb3PVbXsjfXX2TYsaXkgJCktmJ+74krCpEJVzcSjhvRDLMkXTx1.DcfnzQHaSGm4vQwNnHKkHGtTBuJrAGZV05JlNSSc7gsjEKQWKBSqh73PAboeRR2DuoFrMJYe1syvOQke9BJFOnTRsvKwDXlvedXlZAEcKHvaXiQNiCaZLhITBiI6KHKtkU4ZwV6TZsTFZoCgEwfwHGt3SeMPA8MLjlGjz+vGkiMYke27R19nYyzUSMqwgXJ7PMuJWIHHUYRYretQH5v8EirThonnI+2zUbtmnjVBMGBEuG7LCCv7q.oEBNHoyNDY9x09cyIYGNecipQrERFgrjEmEjnmjBjgRMjX6PRNEEHqQS5vR79IN4cxhGASOVjHHmy8gzvoEGlbe+uE69wq86mSx1CMcQrFppAGpPvwH87NOsf.MtSu.ZbGRg9nYZyVaTvxtoVEs9cKDVfcSRj5tMUFD53bkNJY+b067mSxNb4j1HNRwif8QiERS5wMiniLOcHBW1qYMYcRnISm3TK+W5PngkiQN1LcW2i3Xj9WtK14CWuyeNIaIBVGcrfJlIBtAlhx9rI6POJMN4IOdyIQGp3UvlTVAbQYV.s+dRtRD5rpooDqoBqjrPvwIGGio+L6FpWEMXtIaWTKXAkMT78TTXNH5f4aGm7TBu5NWdncxEvkTTnbRI76xhqaDjCG5th.SoANHS9id.F46LWmScIaeTrNRvBEw3v3SWOEkpLzjdnpqxXgQSaJi3cn4sM92EgDAELqtz3XiERNDSUXeL0GbXFN+bcdyhrCyyL6Ev+rAqxxL00LqfDUviQmCanCutoL65cU6JyeOZTT.ORPDSLHRcOeCd5e97c7yhrU.IIBII5bNpNz7oII+rz9Nbz5njCndDMT.GSTsBxq61MQ2JWsSzxrbAPVbX.RxdH0D6gI9WVnyYVjcPP4wrv5lKa4B1pBqcd5vvSNJ4K+2U9cA0CjBjlhPUNDo0Ps1ZGDiYJGlvJkJUSUHnp1U30wt7eMS8bX0bm.IPJJxAXhOwOjmYuKzwWWw3KjsxGkoMh5qLSPEkEcG92U9cEwkwIGkBhwDMy3uJCTXkDYPUQvu7FRtG9lTWLLM+XNslXlzHRXLwLXG4al0CpEwwhnl7ialNVqN5.D91a2L9C9XL3GoQNmYQ1dn4Tn9K0DQYsuKV0n5PkwNN4oRZNTAuTTjTjmFczrnl+OG7vAeSouv0TYSBSMnZWQoUqt37c2pbzuG9UTkin7zKg+zoIScrQRbiLfYF+u7CKDLBYScHl58uKFMWibNUQ1giNmK2PpHX+ozpF5HfnyYbDinpq0XjiB3YNm4KCOmQTuKJbvmooDdljNv03ZmZyKr1kaSq20QQXEIARgGSRQrQRTrJWRphgrbo5Z4ZLuYimSODY+m+ZrqcznmWUjsBEqkjDkYWw+Cz9NKEqvwHgZtO1rHZXJJPJJfddhFUkhEyiO4oDkLIavLdsaFJdkTe8v6uBMEviB.SiC1HHIQnKhRGDshw6KUsi.2HeLx7s9ILwmoYN2pHaWTzkIQ4ps7IV.OFmbU4ALeimw7MhmCePGi7LMEKKFr1Fa3H3B3RA7JWxoBq44UmFSq9LIqxVjOAkLqrlc7udHNcWNexVJt2BNLSsuiPo2+g4vM0h.qJxNbi2tdyVOLYLiAm4QcLxiSEt0rDdLF4o.tyZzbXM9vAkIVzdFmhpK2k3DUasCI1h3SQxRZhPeDmNayizsPvnjezQH2636xSefl87qhrCp57UmUJRDjhBLIEHtw8oBBRy2.Q5Aknxr3vXjCkg7gpSX9LThr3xz3TVe5kBarWIQ3ScQ7XHxPODm9HQcmVrYgEBlhRNCR1a8d3oezV4ZTEY6T1rHLM6.Q6CQ1xM3v7.OKkHJ1lfWD3fkJmYUZzPOGtLEEwwjtAyHh9jGRtVD97klhjCWVOcPWDoEpaBAHHFDk3fj9e9N3Iu6VscUlr0.qwrj3C6EJPXrM1yT7zDLN4IiY9IEZFkrT.mplm0EEonHYM4kcshoqbDek+25AcM+tRs.Vs2cILPPCQF1.cQOsvNfT39S1gYp+suD63CuXZOkIaW7oK5fPqiCGUebxV1l5oonQQj.E3FhoMIxevqcOS56lxjD70NObkN6HvgGpY43iJ6.Le9kuRGhDl8nqF21ECe5GgrHnS5tIH7v.dbHR++8KvN96YQt8LYG1f7Ylhcd3HniSlxY8YI7Hkop.6fOiPVbMwvNH8cKQZSp7FpWtGAE1ovZAZkD3LROZdnpnKQkWGqxjtU4TWZ0BBS5f3Fazajr+Ifnm5S74Y6ueXdKu5MDrgffezIQIgY4tH.JhGGmbDAoIceygEAwc93jyLxUX7NVAypt.iITy3xx4BsKhnVyf7MZ7GVRJWppXgMKBc9zjTj0u.YIZ3Ji4vj9197r8+QZCDMXH6PSpBC9gDAiPVBpPdvvjEIAQYYBxi1zvCTTKP0qfZeckystxBeiyO7Ld7Z0PxPX77E8Sh4zJDKDLFEJMHo+P2N67CRazGMFxNXzc37eYvkon.VHYLSfMBR82B3ilTTjwMYURk9lNDq7uVmAtlNhwvZUwluZXUcp1LDMTGjgI2XCR522cxt95s66sMDPvCT9lKXTxf.ISSIJZlOdJic0CSViZYqFh8SigPGd.yeD8VdZKyT22BQn1EGgoe5ixTu66sNoAb6.Wc9lA..v.CmDQAQE1AtB0kDlpbRVbHigjSQQxgCoHOSQIFjLlPTN6.RT8CT0+0pktEEMcQishS3y.KDjGOFho+d6kodu+HdlCtTceKOxFBHvQIaY6jKfKiSdFgrLNELi609ZHkFxnQ4BxhfNi.gRftKEhjfNp.hB5XfHoMxDg9Ce4ZiRetPX7zWoUbKv6gvHjOywI2GZmLzmX6yS9i0NfsOZ5mjDAI4vkooDSQIxPINN43vjlIovn.eeM7jBTOmB49U3Nz8xtyVumi2IasyLn51lXcIgAbQe1f57DvKQCWrDQhv8vhUBx2w3afUBiyDFqDJgOGio+oiPw+16gc9DK7Y1Ft2ON2nd.RvlnKNLo44XRNN44.Lg+fj6AmlheUItOvWi8MLKRMCuNN+Nih0ZDHtbEhqQ.+WjHN2fPGt7JvON1DqM3y5lAgYDSTrxlEmO9SyA+W+kLQqrzQas6+14lzCPGzGwYmLB6kIXOb7GYHl9C8U427.zt2Tsq.+obIaRf6KBrd6RzuDKj8ubMZ2hf3PubM11rRWbcv+a6h2G4tawfYrXfXWbKtagdsmf77cXetOCS9guWdzaaXXIc9iZwahy6bsHxaUf75DHddRBqJQKcnKSHHWpPn4T9nnD9+xh3+Q+prquwR3sb9aO6jaYjym9W+8xuM6OjCbK2A63NWoZL.7V3h5E3kCh2MvUFAqDAtZs8S6IwdIwe5g9qvEMkvamN38omlwuq+ykXEvVv10g3uZrLTZseZ19e4mhG6SrR1XpEuYtvWrEVuIE5q2B4FCGkztP6lrCCPSI7K5g5gcw+yoI+O5tY+S21tIKBHRweu99XOes2Ceq2FKgyOuXv0x4s1jD6OCzuRA7xjHsfEeAjqyx6fksNBIXiO4G2E+GPg5KdWrqeJMZwEeYBhcxMc3ODOxapUy9gkSbCrsHYovEnv9MJgWJvEFAqt0UD5zFEspBZUFZ0fLgUOTI72gB08kGmG5axdNbSdIW1f8XT39uGd5kE67Vr3yx1cA1o4e7V4EbYkv+hrP7GqPe0RDcKPDKzFdc4elMhPvVYyB0AIz4GgSg3hpnGpI.8uvC+ueN79keS1yy1VePWhf8nj4axpTw2KDt6.mQ7D.290w42aDrtPMhKSi3r0n2DH1BvYXgnSXFhML2ugYVHCgnxrnQA3iWVAh86ided3uCeTObFb9s+GrurzFiH0xABTbbU1bKsK7lYa8Ck5WfXc.aUiXsRDaLJxSW.8og0Hfd.5BDcnQ6oPuGM5GSC6Dz6wC03SiXzuKOcpU5mmEK9+mg+Gdbbf6pa.....jTQNQjqBAlf" ], + "embed" : 1, + "id" : "obj-41", + "maxclass" : "fpic", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 17.5, 17.5, 122.0, 123.0 ], + "pic" : "mage.png" + } + + } +, { + "box" : { + "handoff" : "", + "id" : "obj-33", + "maxclass" : "ubutton", + "numinlets" : 1, + "numoutlets" : 4, + "outlettype" : [ "bang", "bang", "", "int" ], + "patching_rect" : [ 164.0, 50.0, 90.0, 21.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-26", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 605.073486, 325.636353, 21.853052, 22.0 ], + "rounded" : 60.0, + "text" : "6", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-25", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 605.073486, 274.393188, 21.853052, 22.0 ], + "rounded" : 60.0, + "text" : "5", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-24", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 605.073486, 220.0, 21.853052, 22.0 ], + "rounded" : 60.0, + "text" : "4", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-17", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 605.0, 96.211609, 21.853052, 22.0 ], + "rounded" : 60.0, + "text" : "3", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-13", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 41.51059, 424.636353, 22.706104, 22.858788 ], + "presentation_rect" : [ 90.0, 90.0, 27.123047, 30.34375 ], + "rounded" : 60.0, + "text" : "0", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-110", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 391.0, 368.454529, 21.853052, 22.0 ], + "presentation_rect" : [ 60.0, 60.0, 27.123047, 30.34375 ], + "rounded" : 60.0, + "text" : "2", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-94", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 253.718628, 116.897827, 21.790001, 21.0 ], + "presentation_rect" : [ 75.0, 75.0, 27.123047, 30.34375 ], + "rounded" : 60.0, + "text" : "1", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } + ], + "lines" : [ { + "patchline" : { + "destination" : [ "obj-7", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-1", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-10", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-39", 1 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-112", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-52", 1 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-112", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 397.712769, 423.0, 192.0, 423.0 ], + "source" : [ "obj-118", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-12", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-16", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-14", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-52", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-14", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-39", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-15", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-204", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-159", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-204", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-159", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-16", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-14", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-166", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 648.5, 138.0, 583.0, 138.0, 583.0, 432.0, 192.0, 432.0 ], + "source" : [ "obj-178", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-166", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-179", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 648.5, 252.0, 583.0, 252.0, 583.0, 432.0, 192.0, 432.0 ], + "source" : [ "obj-181", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 648.5, 306.0, 583.0, 306.0, 583.0, 432.0, 192.0, 432.0 ], + "source" : [ "obj-183", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-198", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-19", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-31", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-190", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-178", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-194", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-183", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-195", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-197", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-196", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 648.5, 360.0, 583.0, 360.0, 583.0, 432.0, 192.0, 432.0 ], + "source" : [ "obj-197", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-205", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-198", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-91", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-198", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-34", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-2", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-23", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-204", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-198", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 288.0, 277.397827, 267.75, 277.397827, 267.75, 238.397827, 288.0, 238.397827 ], + "source" : [ "obj-205", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-181", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-31", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-192", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-31", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-27", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-33", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-1", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-34", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-16", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-39", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-51", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-39", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-9", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-5", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-14", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-51", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-54", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-52", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-15", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-54", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-7", 2 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-198", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-8", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-7", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-9", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 328.0, 422.75, 192.0, 422.75 ], + "source" : [ "obj-91", 0 ] + } + + } + ] + } +, + "patching_rect" : [ 603.0, 86.0, 65.0, 20.0 ], + "saved_object_attributes" : { + "default_fontface" : 0, + "default_fontname" : "Arial", + "default_fontsize" : 12.0, + "description" : "", + "digest" : "", + "fontface" : 0, + "fontname" : "Arial", + "fontsize" : 12.0, + "globalpatchername" : "", + "tags" : "" + } +, + "text" : "p vibrato" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-5", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 0, + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 0.0, 26.0, 967.0, 693.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 12.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "showontab" : 1, + "boxes" : [ { + "box" : { + "fontname" : "Arial", + "fontsize" : 8.556233, + "hidden" : 1, + "id" : "obj-80", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 865.0, 533.0, 66.0, 16.0 ], + "text" : "loadmess 110" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-79", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 668.5, 610.0, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-76", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 802.0, 557.0, 91.0, 21.0 ], + "text" : "base pitch" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-71", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 751.5, 557.0, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-67", + "maxclass" : "newobj", + "numinlets" : 3, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 25.0, 69.0, 707.0, 376.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 11.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "boxes" : [ { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.0, + "id" : "obj-20", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 220.0, 70.0, 60.0, 19.0 ], + "text" : "prepend 3" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.0, + "id" : "obj-19", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "bang" ], + "patching_rect" : [ 515.0, 153.0, 26.0, 19.0 ], + "text" : "b 1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.0, + "id" : "obj-11", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 515.0, 193.0, 32.5, 19.0 ], + "text" : "f" + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-18", + "maxclass" : "inlet", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 639.0, 147.0, 25.0, 25.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.0, + "id" : "obj-17", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 161.0, 70.0, 60.0, 19.0 ], + "text" : "prepend 2" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.0, + "id" : "obj-15", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 101.0, 70.0, 60.0, 19.0 ], + "text" : "prepend 1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.0, + "id" : "obj-5", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 41.0, 70.0, 60.0, 19.0 ], + "text" : "prepend 0" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.0, + "id" : "obj-2", + "maxclass" : "newobj", + "numinlets" : 5, + "numoutlets" : 5, + "outlettype" : [ "", "", "", "", "" ], + "patching_rect" : [ 41.0, 41.0, 258.0, 19.0 ], + "text" : "route pitchoverwrite pitchshift pitchscale pitchsynth" + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-1", + "maxclass" : "inlet", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 41.0, 6.0, 25.0, 25.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.0, + "id" : "obj-16", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 320.0, 46.0, 38.0, 17.0 ], + "text" : "$2 $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.0, + "id" : "obj-14", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 291.5, 259.0, 81.0, 19.0 ], + "text" : "loadmess 110." + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-13", + "maxclass" : "outlet", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 385.0, 328.0, 25.0, 25.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.0, + "id" : "obj-12", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 385.0, 285.0, 32.5, 19.0 ], + "text" : "f" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.0, + "id" : "obj-10", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 450.0, 221.0, 38.0, 19.0 ], + "text" : "* 110." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.0, + "id" : "obj-9", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 385.0, 221.0, 41.0, 19.0 ], + "text" : "+ 110." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-8", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 466.5, 124.0, 40.0, 21.0 ], + "text" : "scale" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-7", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 399.5, 124.0, 36.0, 21.0 ], + "text" : "shift" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-6", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 262.0, 124.0, 64.0, 21.0 ], + "text" : "overwrite" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.0, + "id" : "obj-4", + "maxclass" : "newobj", + "numinlets" : 6, + "numoutlets" : 6, + "outlettype" : [ "", "", "", "", "", "" ], + "patching_rect" : [ 320.0, 105.0, 344.0, 19.0 ], + "text" : "route 0 1 2 3 4" + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-3", + "maxclass" : "inlet", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 320.0, 6.0, 25.0, 25.0 ] + } + + } + ], + "lines" : [ { + "patchline" : { + "destination" : [ "obj-2", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-1", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-12", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-10", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-10", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-11", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-9", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-11", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-13", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-12", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-12", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-14", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-15", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-16", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-17", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-11", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-18", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-11", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-19", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-15", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-2", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-17", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-2", 2 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-20", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-2", 3 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-5", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-2", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-20", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-16", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-3", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-10", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-4", 2 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-12", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-4", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-19", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-4", 4 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-19", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-4", 3 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-9", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-4", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-5", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-12", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-9", 0 ] + } + + } + ] + } +, + "patching_rect" : [ 668.5, 583.0, 102.0, 20.0 ], + "saved_object_attributes" : { + "default_fontface" : 0, + "default_fontname" : "Arial", + "default_fontsize" : 11.0, + "description" : "", + "digest" : "", + "fontface" : 0, + "fontname" : "Arial", + "fontsize" : 11.0, + "globalpatchername" : "", + "tags" : "" + } +, + "text" : "p \"current pitch\"" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-66", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 591.0, 631.318176, 359.0, 49.0 ], + "text" : "The \"current pitch\" subpatcher gives current speech pitch. You will need to provide it with a base pitch though, if it's different from mage's default pitch (110 Hz)." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-63", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 616.0, 252.90274, 19.0, 21.0 ], + "text" : "Î" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-61", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 580.0, 266.5, 91.0, 21.0 ], + "text" : "current speed" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-59", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 693.5, 254.5, 192.0, 49.0 ], + "text" : "this gives a ratio of current speed compared to the default speed (240 - ratio of 1)" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-58", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 677.5, 232.363647, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-57", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 677.5, 204.40274, 125.0, 20.0 ], + "text" : "expr pow($f1/240.\\,-1)" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-53", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 602.0, 232.363647, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-49", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 25.0, 69.0, 539.0, 395.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 11.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "boxes" : [ { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.0, + "id" : "obj-16", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 107.0, 79.0, 38.0, 17.0 ], + "text" : "$2 $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.0, + "id" : "obj-14", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 322.5, 257.0, 82.0, 19.0 ], + "text" : "loadmess 240." + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-13", + "maxclass" : "outlet", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 172.0, 327.0, 25.0, 25.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.0, + "id" : "obj-12", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 172.0, 284.0, 32.5, 19.0 ], + "text" : "f" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.0, + "id" : "obj-11", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 197.75, 174.0, 32.5, 19.0 ], + "text" : "f" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.0, + "id" : "obj-10", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 237.0, 220.0, 39.0, 19.0 ], + "text" : "* 240." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.0, + "id" : "obj-9", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 172.0, 220.0, 41.0, 19.0 ], + "text" : "+ 240." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-8", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 253.5, 123.0, 40.0, 21.0 ], + "text" : "scale" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-7", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 186.5, 123.0, 36.0, 21.0 ], + "text" : "shift" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-6", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 49.0, 123.0, 64.0, 21.0 ], + "text" : "overwrite" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.0, + "id" : "obj-4", + "maxclass" : "newobj", + "numinlets" : 6, + "numoutlets" : 6, + "outlettype" : [ "", "", "", "", "", "" ], + "patching_rect" : [ 107.0, 104.0, 344.0, 19.0 ], + "text" : "route 0 1 2 3 4" + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-3", + "maxclass" : "inlet", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 107.0, 6.0, 25.0, 25.0 ] + } + + } + ], + "lines" : [ { + "patchline" : { + "destination" : [ "obj-12", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-10", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-10", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-11", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-9", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-11", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-11", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 181.5, 304.0, 292.0, 304.0, 292.0, 164.0, 207.25, 164.0 ], + "source" : [ "obj-12", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-13", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-12", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-12", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-14", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-16", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-16", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-3", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-10", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-4", 2 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-11", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-4", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-12", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-4", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-14", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-4", 4 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-14", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-4", 3 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-9", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-4", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-12", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-9", 0 ] + } + + } + ] + } +, + "patching_rect" : [ 631.5, 175.5, 102.0, 20.0 ], + "saved_object_attributes" : { + "default_fontface" : 0, + "default_fontname" : "Arial", + "default_fontsize" : 11.0, + "description" : "", + "digest" : "", + "fontface" : 0, + "fontname" : "Arial", + "fontsize" : 11.0, + "globalpatchername" : "", + "tags" : "" + } +, + "text" : "p \"current speed\"" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-45", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 476.0, 9.0, 318.0, 35.0 ], + "text" : "\"speed\" is the size of one frame, in samples. Default speed is of 240 samples per frame." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-43", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 0, + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 25.0, 69.0, 370.0, 342.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 11.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "boxes" : [ { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-4", + "linecount" : 10, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 4.0, 184.5, 352.0, 148.0 ], + "text" : "Mage synthesizes speech not only at a given central frequency, but also with continuous variations (accentuation). The shift and scale methods allow you to preserve that accentuation, whereas the overwrite method doesn't. If you overwrite, you set a new pitch, which won't be altered by mage. If after overwriting you use the shift or scale method, the accentuation will be synthesized again, but the shifting and scaling will occur from default frequency, not the one currently set with pitch overwrite method." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-3", + "linecount" : 9, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 4.0, 45.0, 352.0, 134.0 ], + "text" : "Whatever pitch method you use, it will always perform the requested operation comparatively to a fixed default pitch, not the one set previously by user. The default Mage pitch is 110 Hz, but this value is very dependant on currently used voice engine. The pitch scale and shift methods will perform change relatively to that current default frequency (which depends on the engine). The overwrite method will overwrite the current pitch, and is agnostic in regard to that default frequency." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-2", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 4.0, 4.0, 347.0, 35.0 ], + "text" : "Different rules apply to operations on pitch - notwithstanding vibrato (see later)." + } + + } + ], + "lines" : [ ] + } +, + "patching_rect" : [ 589.0, 422.5, 147.0, 20.0 ], + "saved_object_attributes" : { + "default_fontface" : 0, + "default_fontname" : "Arial", + "default_fontsize" : 11.0, + "description" : "", + "digest" : "", + "fontface" : 0, + "fontname" : "Arial", + "fontsize" : 11.0, + "globalpatchername" : "", + "tags" : "" + } +, + "text" : "p \"about pitch operations\"" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-36", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 0, + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 25.0, 69.0, 535.0, 367.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 11.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "boxes" : [ { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-7", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 4.0, 272.0, 516.0, 35.0 ], + "text" : "The subpatcher \"current speed\" gives you the current speed, taking into consideration the changes you may effect with the connected sliders and different methods." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-6", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 4.0, 216.0, 516.0, 49.0 ], + "text" : "Each time you shift or scale, you're shifting or scaling the current speed value, not the original/default one - so using those shift and scale sliders you can very quickly exponentially increase the duration in an uncontrolled fashion." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-4", + "linecount" : 9, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 4.0, 76.0, 523.0, 134.0 ], + "text" : "Each phoneme has a different amount of frames. Each frame has a fixed number of samples. The \"speed\" parameter affects the number of samples in all the frames, but the number of frames per phoneme is still calculated by mage, and more than likely to be different for each phoneme. Each phoneme is divided in 5 states, and mage calculates the duration of each states individually, which is heavily dependant on everything (surrounding phonemes, consonne/vowel...). The \"duration $1 $2 $3 $4 $5\" message is the way to override default Mage's generated duration in frames for one phoneme. Each number argument you give to that message will override the corresponding state's duration for the next generated phoneme." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-2", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 4.0, 17.0, 523.0, 49.0 ], + "text" : "-overwrite : redefines the size, in samples, of one frame. \n-shift : shifts the size of the frame by the given amount of samples. \n-scale : multiplies the current number of samples in one frame by the number you give." + } + + } + ], + "lines" : [ ] + } +, + "patching_rect" : [ 770.5, 166.5, 154.0, 20.0 ], + "saved_object_attributes" : { + "default_fontface" : 0, + "default_fontname" : "Arial", + "default_fontsize" : 11.0, + "description" : "", + "digest" : "", + "fontface" : 0, + "fontname" : "Arial", + "fontsize" : 11.0, + "globalpatchername" : "", + "tags" : "" + } +, + "text" : "p \"about speed operations\"" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-29", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 164.0, 77.0, 92.0, 20.0 ], + "text" : "mage_glossary" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-31", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 164.0, 50.0, 138.0, 21.0 ], + "prototypename" : "magefont", + "text" : "an attempt at helping", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "underline" : 1 + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-8", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 332.5, 215.90274, 37.0, 18.0 ], + "text" : "clear" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-19", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 278.5, 215.90274, 54.0, 20.0 ], + "text" : "r menus" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-32", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 278.5, 193.40274, 56.0, 20.0 ], + "text" : "s menus" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 4.700932, + "id" : "obj-205", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 278.5, 266.90274, 75.75, 10.0 ], + "text" : "clearchecks, checkitem $1 1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-204", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 676.0, 102.0, 317.0, 504.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 12.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "boxes" : [ { + "box" : { + "fontname" : "Arial", + "fontsize" : 13.0, + "id" : "obj-1", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "int" ], + "patching_rect" : [ 168.0, 282.0, 140.0, 21.0 ], + "text" : "conformpath max boot" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 13.0, + "id" : "obj-12", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "int" ], + "patching_rect" : [ 23.0, 391.0, 140.0, 21.0 ], + "text" : "conformpath max boot" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-11", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "bang", "" ], + "patching_rect" : [ 23.0, 338.0, 32.5, 20.0 ], + "text" : "t b l" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-9", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 23.0, 365.0, 128.5, 20.0 ], + "text" : "zl reg" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-8", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 23.0, 418.747559, 123.0, 20.0 ], + "text" : "sprintf append %s%s" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-7", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 23.0, 205.0, 128.5, 20.0 ], + "text" : "t l l" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-197", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 168.0, 330.747528, 106.0, 20.0 ], + "text" : "prepend append" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 13.0, + "id" : "obj-196", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 5, + "outlettype" : [ "", "", "", "", "" ], + "patching_rect" : [ 23.0, 310.0, 104.0, 21.0 ], + "text" : "regexp (.+).lab" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-150", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "bang" ], + "patching_rect" : [ 168.0, 203.397827, 35.0, 20.0 ], + "text" : "b 1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-141", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 168.0, 240.247528, 86.0, 20.0 ], + "text" : "zl reg" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-151", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 23.0, 97.0, 61.0, 20.0 ], + "text" : "zl reg" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-152", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "bang", "" ], + "patching_rect" : [ 23.0, 72.0, 91.5, 20.0 ], + "text" : "t b l" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-153", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 23.0, 282.0, 81.0, 20.0 ], + "text" : "route append" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-156", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "int" ], + "patching_rect" : [ 23.0, 245.747528, 41.0, 20.0 ], + "text" : "folder" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-157", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 23.0, 165.247528, 91.5, 20.0 ], + "text" : "zl reg" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-158", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 23.0, 128.397827, 61.0, 20.0 ], + "text" : "route fold" + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-201", + "maxclass" : "inlet", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 23.0, 12.0, 25.0, 25.0 ] + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-202", + "maxclass" : "inlet", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 65.0, 12.0, 25.0, 25.0 ] + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-203", + "maxclass" : "outlet", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 168.0, 445.747559, 25.0, 25.0 ] + } + + } + ], + "lines" : [ { + "patchline" : { + "destination" : [ "obj-197", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-1", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-8", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-11", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-9", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-11", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-8", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-12", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-1", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-141", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-141", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-150", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-158", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-151", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-141", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-152", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-151", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-152", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-157", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-152", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-196", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-153", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-153", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-156", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-7", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-157", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-150", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-158", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-157", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-158", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-11", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-196", 2 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-203", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-197", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-152", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-201", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-151", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-202", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-156", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-7", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-9", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-7", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-203", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-8", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-12", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-9", 0 ] + } + + } + ] + } +, + "patching_rect" : [ 278.5, 167.5, 75.0, 20.0 ], + "saved_object_attributes" : { + "default_fontface" : 0, + "default_fontname" : "Arial", + "default_fontsize" : 12.0, + "description" : "", + "digest" : "", + "fontface" : 0, + "fontname" : "Arial", + "fontsize" : 12.0, + "globalpatchername" : "", + "tags" : "" + } +, + "text" : "p filldamenu" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd-Regular", + "fontsize" : 7.588239, + "frgb" : 0.0, + "id" : "obj-200", + "linecount" : 4, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 278.5, 105.897827, 64.0, 42.0 ], + "text" : "drop one label file or folder full of label files" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-198", + "items" : "", + "maxclass" : "umenu", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "int", "", "" ], + "parameter_enable" : 0, + "patching_rect" : [ 278.5, 243.5, 100.0, 20.0 ], + "pattrmode" : 1 + } + + } +, { + "box" : { + "id" : "obj-159", + "maxclass" : "dropfile", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 278.5, 105.897827, 61.0, 42.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-91", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 318.5, 282.0, 53.0, 18.0 ], + "text" : "label $1" + } + + } +, { + "box" : { + "id" : "obj-28", + "maxclass" : "ezdac~", + "numinlets" : 2, + "numoutlets" : 0, + "patching_rect" : [ 114.860001, 509.320007, 45.0, 45.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-34", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "signal" ], + "patching_rect" : [ 272.0, 465.869507, 54.0, 20.0 ], + "text" : "sig~ -99" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-1", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "signal" ], + "patching_rect" : [ 272.0, 486.5, 48.0, 20.0 ], + "text" : "dbtoa~" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-2", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 272.0, 445.733154, 45.0, 20.0 ], + "text" : "r siglvl" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-3", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 206.5, 652.958923, 40.0, 20.0 ], + "text" : "s ctlvl" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-5", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 182.5, 462.005859, 55.0, 20.0 ], + "text" : "r outctlvl" + } + + } +, { + "box" : { + "id" : "obj-26", + "maxclass" : "live.gain~", + "numinlets" : 2, + "numoutlets" : 5, + "outlettype" : [ "signal", "signal", "", "float", "list" ], + "parameter_enable" : 1, + "patching_rect" : [ 182.5, 509.320007, 67.0, 131.0 ], + "saved_attribute_attributes" : { + "valueof" : { + "parameter_longname" : "live.gain~[5]", + "parameter_shortname" : "output level", + "parameter_type" : 0, + "parameter_mmin" : -70.0, + "parameter_mmax" : 6.0, + "parameter_initial" : [ 0.0 ], + "parameter_unitstyle" : 4 + } + + } +, + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "varname" : "live.gain~[1]" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-27", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 182.5, 482.636353, 43.0, 18.0 ], + "text" : "set $1" + } + + } +, { + "box" : { + "color" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-4", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 182.5, 439.5, 73.0, 20.0 ], + "text" : "s magehelp" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-25", + "linecount" : 6, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 620.0, 445.733154, 101.0, 91.0 ], + "text" : "Alternatively, you can send explicit messages for pitch operations." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 6.843845, + "hidden" : 1, + "id" : "obj-73", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 450.0, 557.0, 34.0, 14.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 8.283234, + "hidden" : 1, + "id" : "obj-60", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 450.0, 491.5, 32.0, 14.0 ], + "text" : "set $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 8.283234, + "hidden" : 1, + "id" : "obj-62", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 450.0, 514.5, 32.0, 14.0 ], + "text" : "set $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 9.753232, + "id" : "obj-65", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 486.5, 511.5, 44.0, 17.0 ] + } + + } +, { + "box" : { + "floatoutput" : 1, + "id" : "obj-70", + "maxclass" : "slider", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "parameter_enable" : 0, + "patching_rect" : [ 486.5, 489.5, 72.0, 18.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-72", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 486.5, 529.5, 64.0, 16.0 ], + "text" : "pitchshift $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 8.818506, + "hidden" : 1, + "id" : "obj-56", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 417.0, 557.0, 33.0, 14.0 ], + "text" : "set $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "hidden" : 1, + "id" : "obj-55", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 383.5, 557.0, 32.5, 18.0 ], + "text" : "* 10." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 8.283234, + "hidden" : 1, + "id" : "obj-54", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 424.5, 425.0, 32.0, 14.0 ], + "text" : "set $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "hidden" : 1, + "id" : "obj-52", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 390.5, 425.0, 32.5, 18.0 ], + "text" : "/ 10." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 8.283234, + "hidden" : 1, + "id" : "obj-51", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 424.5, 465.0, 32.0, 14.0 ], + "text" : "set $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 8.818506, + "hidden" : 1, + "id" : "obj-48", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 417.0, 596.0, 33.0, 14.0 ], + "text" : "set $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 6.843845, + "hidden" : 1, + "id" : "obj-112", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 456.5, 425.0, 34.0, 14.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 9.753232, + "id" : "obj-7", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 486.5, 447.0, 44.0, 17.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-147", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 486.5, 575.0, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "hidden" : 1, + "id" : "obj-16", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 417.0, 577.0, 32.5, 18.0 ], + "text" : "/ 10." + } + + } +, { + "box" : { + "floatoutput" : 1, + "id" : "obj-35", + "maxclass" : "slider", + "min" : 1.0, + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "parameter_enable" : 0, + "patching_rect" : [ 486.5, 554.0, 72.0, 18.0 ], + "size" : 40.0 + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "hidden" : 1, + "id" : "obj-22", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 424.5, 447.0, 32.5, 18.0 ], + "text" : "* 10." + } + + } +, { + "box" : { + "floatoutput" : 1, + "id" : "obj-23", + "maxclass" : "slider", + "min" : 0.01, + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "parameter_enable" : 0, + "patching_rect" : [ 487.0, 425.0, 72.0, 18.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-40", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 486.5, 638.818176, 56.0, 16.0 ], + "text" : "pitchsynth" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-30", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 486.5, 596.0, 69.0, 16.0 ], + "text" : "pitchscale $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-24", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 486.5, 465.0, 86.0, 16.0 ], + "text" : "pitchoverwrite $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-18", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 532.0, 75.5, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-17", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 770.5, 422.0, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-15", + "maxclass" : "tab", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "int", "", "" ], + "parameter_enable" : 0, + "patching_rect" : [ 857.5, 377.5, 78.0, 107.0 ], + "tabs" : [ "overwrite", "shift", "scale", "synthetic", "noaction" ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-14", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 770.5, 462.5, 59.0, 20.0 ], + "text" : "pack 0. 0" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-12", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 770.5, 498.5, 69.0, 18.0 ], + "text" : "pitch $1 $2" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-11", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 532.0, 120.5, 59.0, 20.0 ], + "text" : "pack 0. 0" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-9", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 532.0, 166.5, 77.0, 18.0 ], + "text" : "speed $1 $2" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-39", + "maxclass" : "tab", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "int", "", "" ], + "parameter_enable" : 0, + "patching_rect" : [ 620.0, 43.0, 78.0, 107.0 ], + "tabs" : [ "overwrite", "shift", "scale", "synthetic", "noaction" ] + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-38", + "linecount" : 8, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 698.0, 43.0, 257.0, 120.0 ], + "text" : "2d integer is the type of operation to apply :\n\n0 - overwrite old value by current value\n1 - shift old by current value\n2 - scale old by current\n3 - mage will compute duration (default) \n4 - no effect" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-6", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 67.86364, 415.0, 78.0, 21.0 ], + "text" : "play it safe." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-10", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 67.86364, 439.5, 92.0, 20.0 ], + "text" : "loadmess reset" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-118", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 168.0, 350.5, 47.0, 18.0 ], + "text" : "labelfill" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-111", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 199.0, 329.5, 103.0, 21.0 ], + "text" : "fills label queue" + } + + } +, { + "box" : { + "data" : [ 9240, "png", "IBkSG0fBZn....PCIgDQRA...rG...fdHX....vmaxh1....DLmPIQEBHf.B7g.YHB..f.PRDEDU3wY6cdGkjcUem+y89dUrSS2S2STwQgQn.BoAgD1qPFA3EzhAQPBSxlCAkVXcPXu1m0qw9v4fLdMgEyAVhBgjHHIPfwDDAIDf.EXzLZDLAoQStSSGpt5J+B269Gu6q5ppt5tqp5pCy.e6yzRcUuv889du+t+R2eWAmjfGh+73cQrd8Q0mMxM.hsIv5rz3sdMpA7P1uMh0.zsMhn9nc7QWDz4EHSCbDKj61B1u.0ylA2g8QO5KgaerU5ms1EDqzMfVE6jasCE4uXP+xjHddBzazGNUfSIF1wz.fFs43q8ugJe3EHL+sv7+W.OWfmwBwdllhClG2mb.54GOJxItF92Ksz+D19wILj8ugqKZQ58RDXcwBzWoF8KIBx0YgU7HXgBE9nwGcMTZqAABrQfERTno.tZAhLEvavnX+y.8uJCYejWJ209aCOdKKXUMY+PbU1qgKXqZTuVAbsBDmWRh1kBEdnPQsiUW5P3ndIBrQhFHOtCVD2mxG8WZbx9nuN95GcYowzhXUIY+T79NEebdC1X8p7QcUwIRbMfOJTKSjai.KjHQfBM4nzn.euonz2IME9tWO2qyJc6qVrphreJtospP7N.dGQvZC1HwwHXd0NrPRDjjGWuR3c.A5Oywn3c8F3tN9JcaKDqJH6mja77A4sXi70GEqM5gOpUwTrn7uCZiyzN0kEyagf73r2z374OLo9R+47slXko0NCVQI6Gma5BsgaUf3MFG6NCTvRsR1jlEBeA4anTABJhKdnIJRhSDhXFUKQRI7HGNTBerQRDrnDt6eLx8Y+A7Te5OE6N6J8yxxJ1A+EqAJ8dDH9qSPjM3XFIuZCFkvJOZEzrA5jDXil.h2xnzVnBbgcXCedjHn.dLJYwA+cNN49fCx99N2Ha2c494YYmr2A27+MM7OEG6WnZU1HYAB7vG.bQQRroChhMR5kDXivzZqTvc8tNy9SjHPilTTPKQ7iyh2e24vG+IWRdPlCrrQ1OEu6SwkH+CVv6JN11NlWpqzP.nL1m6fOcPD5hXzOIA.Kyqn1kjGKDDAKlhBSMN4usGlC8IuQ9Oy2Vt3K.VVH6eM2vebDr+3ww94UZUl10kvCEZ5jnrN5fjDor4TKkHvrMHEEd3QH6e0Kf+e6XI8FxRLYq4pr2Im+sZg7evFQmtqBDYKfxdZyFA8Pb5k3DEKil0KecDE.wvloozXSR1+hylO4Wco99sjfsy67zkD8iFE6WuB8pFEvBm9X.RxZIIVl4RWIacQvh73nGi7ereHC+AdubuKIZrujP1ON2zkDCwWNFQtvR3sTbKZZ3abuZ2Fw0QwZUSGPfxZ7OLY+wOKC81d470FsceOZ6j814VdY1vWLJVm1pAkvzFQ1cQTVKIMlMsZRqgYPnX8QI6NOJS9VuBt8c2tu9sMrCt4q0Bwm0FqAbWEPzdnHFVL.IoShAr7Nmbqh3XSJJ9LGhwe6WFegGucccaaj8ula5lif7+iMxN7VAUDKTALG7oeRx5HY4vTdhDhgMoo3vGfIuoWDet+i1w0rsP16fa9FrQ7IEHh3uB9RU.TBejH3TnK5hXmvQxUhXXwTTL0NYz2xqf63GrXudKZxdGbiuNIV2gEhtVIIZMAhs6fHrY5BKjmPHxdgPTrXJJcr8wHW2Uxc7nKlq0hhreRtwWgMxuhEV8uRJ5VYh1z.jjdH1IATb0HFVjhhGXeL1q+J41epV85zxj8ula3xiRj62FwFWIcVhOJhfEmJcSDrNoXzb8PbrYHl9Y9Mb7W10vcerV4ZX0JmziyMepQw59hh0YtRRzN3S2DiMS2DwjpPmrBOTzKIVqK9WxVYs2+Of82zI8XSS1OCuuXd3+ERf8UtRZGcdbY.RxFoSSDkN4G9nYcj7LSPrt+L7q+dM64Ka1Sn.t2ZLhbsqTDsFvEe1HcxFnqZxTjStgFMdnYKzyM+37dd6M642TireBtwqQh7SI.6UhWvZzXgfMQ2zGINg1rpVEZfXXKrQdUWAm4O4d4oGtQO2Flr2A23YXi7qDEq0sRXhUPTpjrY5ljD4jVEwZDnPyZHdBaDmeZJdO6hQanrdogH6O.e.44R9OVRhb0K2huC7HlBar3ToKhYBE4I5nx7Pu1eZDij7QSej3z1Hcouc1wC1n2yEDama90aC2CHZIs2aUH.bPQTjbZzyIrlVU4xJB.EPQbws7DQUmkpQQRLrw1zUPOGgH1BISRgB+bdtq9Ok6eAc3xBR1OIuuAD38Shi8EsbOp1EehfEmIqwD24SLP3nUeTFBUyDjmb3hkYIEkGGJVQV6nIP7bXju5fHlzQ1idHF8SGHIH12vLoIUbrYeLwO8cw25ZdTNVg4qcsfiTuI11eaBru9kShNTz8IJD8LibC9IEEXRJPJJvAIEiRNbvGW7wAEgw32xDC6v+ElRxPfODJhOdnn.dLLYHso6gBMIHBXReptH5YbNrlCcm7zyaBLNuj814le9VH9TZHwx4KaezDEKN8U4Ds.vFIt3SNbYDxxwHMooHonHtlPrFwLVWVwbzK70VT0b5gNMZJJxTTjzThnXQLrHdPVqewqine8GjiLmY4xbR12CWm0ZI4skjHu3kSujoL4F1oPOqZ8JVnSbJfKGfo33jiQHKgwGPhfnkyl71KBWeYdnXBxSVbwFAajNWiChh2EO0bpr1b1Z1N271rP+KjXEe4ToHEZNUi4UqlritxEAvTTfwo.SSQrLK0mUBIPB.OSd2rY5lR3MwCxQdg2Le6CUuiutdPSiVHP+WFiHKqDsCJ1fIcdWMQzVHnD9LDSydYLNLSQQbIA1lk8yJyTMZlYd+iRZ.V6oSWuu453qqX7WCGeaQP9gzPrkqGhh3wlnK5k3qJHZAAhicQwQHMGkoICNHHPT5RgH5ECrLq30R3tksxZu+GhCkp1iotirEvMDE6tWtdo6X70ceqRHZIBbPwfLM+FNNon.1HIFVq5H4JgFMCPGqeizyatde+rFY+TbSaUi3ixxjF39noahx5oyUbGlHMyIOJ43HjloMZ7FLR9DCXgfB3bNNn9x6kwqxt6YMx1A8aLNV8tbLBKbQ8sd5fUxXWMi8wE4YYBFgoAzDq0B2+JJ7Py5oqMeorw2PseWUj8CvaqCaju5kCQUg4t8YPOkqQIqDPhfrThmgI3.LINFu1IVEae+7Acv5VStU5+0tM1VjJ+tpH60QGWfDwKb4vaYdnXSzEwMq04kaDtDZODSw9XBJfCQMBrOQjjqDASMF6pesz8Vp7ykUePh2TTrrWpaLkvm0Pb5YEHUeC0xdJJxdYblf7DyLu7IKvGECPx38SxquxOu7S3uj2Ue1vqZoVIoPEx1DctrSzAddRyQHMGfT3ihnm.Nubi.IB5iNd0mODclOyfXXcIBjm8RYkPHbIwtA5bYWToDAooH6liyDjur+pOYEZftHxE7GvkdogeVYxVf8KHIQhrT5EbO7YSzU40B8xABcy4PjgmiTnMY7xI6PgldIQGWHq6BB+LIDjIJRzW8RY.ObPQ2DitWFmmNzCXGhoXXxPDjmTM277AEZRRD5jnWMlXfHA3Ogg6Si9EsTIBWglXHYSzIKW1SGXRkC6mIIMEOoct44CJTzMwupafsk.JKFWdEBDqYohF7PwFnSjKC1SGNK7XjiCPJ7vubQv420fOZFfj82KwuTvP1B3phgsc6VSbAAkXpf0Gczkbw2BSlabHlhgHS44q+cUnQSBrisVR9J.vN3WhyJXtr1qyTBS+20tLji2RDjCGNDSgK9+NybyyGzDjyZcS7yE.6GhaoSE5MtTLesGJNc5YI2qTRjLN43njtbHH+8H.RDzKw1.fkcW30mOxSq0S7+5edt3SuDmNHZEQypwpGfMy8QhfwHCGkzUk5sAcuZrbvdgtGMFlu6SXhB2pSor3lJxF6y3UvyOtsGt8lf3aP0BirEQrvpujfn1FiFo.VuaWDDkMe.KDqqSPJmo86oPOQdP4Qf5C06gRiHVDnuDyhKD.SPdFEIIouZ9RA5Rd3MYVC4O2i103i.IxDwPDs0zZWkyAsW8lFTiUWIP1YLP2Zcl7lHGZWOZEROHKcEmxUyoF0NNQNqHXIaVar03ShK7T4z+FuGjIiDPhhJ+dHhO38vGD2a6mQj+lqDqW9YUkabPoQORFb+nOBd20N.+Z68qQrgtH929sg3zWCHEk6XEdTqGeV+bnFl1WQle9yxQ9quWJczwqKgqEZ560borg+pWAwNm0gvpIlBPCnTnc84f23cQpG3oPhcEesGccEmKa4NeWX0cbDBQSwWZsFTZxs8Cyy8V973mNOMKgqA5l31QYzj1RjWZqp7jHpE1arGjwswepBncC5YKQfTHf0DC6q+hv5ke1H5KATvEc1vBruFrDHe9afXewWOD0BuO2iQ04SgBwYsVjW7FgXVnmpHXtGNnV.gzZr5LF88F2FBKI6+M+YPWxupyPiOIO+Sgy5te2H6HF9SWDsupwdepAgkDqtiCJMxDQoVQOZTDeqaf3m8.fVi2j4QnloTVW4QFdlhxeBXEMBhdhSmuvyfnanGxmNKhlzeAg4XdQXs1tvoFcgOm5CcvubO1T7bW4GEuT4wSp3z08PLgMxKayD61eCH1TWndjiPo2+2G8dG2TW10PLI12vkSzOvKkn+ueo3801Ejod61BZzGNMEu5u.pIxwvxbk8u8b1z78I4kb5bt2+sP2uryinqaMT7niOqWxcd4aAYGwX5exd4f2xchtfWclVp9O6VcDky99tIRb9arrHZQs+174S9M2AG3luSJ55fqHbONQahBmbVEDWsRQhyZ8bY+n+mfVSk5TEd0aTSksQfCxtsUnVeKV.FBtkBApLEv4PigaP0AfX3hFG7+g6C+evyf86ba3dW6D+G8YQXpGYAPi6+xCSj+rW.hynWjm2.ndhiPUsGo.rjPlR3efw4nLc4bBa9pchZTjeWGCmASQhKXSPTKpmBX1CzE.jamGg7OyQPVU6agfF2gSShKXSkSneWTTBeSZ95PLBJPBSbvg3nicLzlJqnxj9FUtZRpdqoRQrC5iyT4HRWIXBJvjjlnDktIJBDjvjlEKjj4fk4qHosBV2h1rHg.soJ6tV5H7CAjPnX6BNl4LqbTi.b8Pmp.hszGhthW6EF8HYfzkv6no3Pl7Bytg5bJBl+UHZHkrEVRBKU7MvU1Pl9nMG9jTfiQFrHBEMcCE3QulatvRh1blVMfvXMBrsrBlmmftARS8baRJhGpxoxb2l0DRP2k5e0hhLtMn6cgeUrPO7AlZETSPqo.yEJRbNEMNiRWyVaUI7rSP9W0WhCO1vFhtQTfxrtGc8aYMfqoEZtpAHiovUmGGNC7nGBz50GEBStqoA7Whx3mfUbhEdls7pLjgNHBqg3DqN0jUyB3OlsEhdVrAmvCMwwdIIUf0.G4IdZljhDg5kDMgqBRU4+YQThzWWj7hNEr5sCzpVTATCMGtmfj1PxgEj9vM4sviMLGTaauAVfKTX6KBBJZ1ZJ5fnziIom0UcrD0VhrqESiSatoqkDl4OZePhfCQZljRDAazn.CgFrULDAYrHH6LNw255IwEtIR771DwOq9I5YzOwNy9wpyXnJ13aGGgEVdezjkRTDOJEHvlHXUVQp4SnYcgPP39IXi.MJzJEBYiYpUXGsooD4vgMPmkWqbZf3XGw1B4hNmyhhkIN0sOHQvfLMSPNhh.MdDoudH1Y1OQO09H9V5mDWzlI4EsYhctqGqNiWsc9t93OUdnyFSgqPpaJJRI7IKNkW7+VFqmWLCJ13qYa3mqHpRMn19JMwOkdIwotVJMVlF6bHXUkpPywIGCXlVEBVRWskjKrcGWIKDLHYXXxRLDD6LWGa9e5OgNewmEQ2TOH6XFBTUxCuwyPo8ebJrmgovtFj7+lAo3gFCqDw4btuajHat9pkToc54vkAIiofdHJG+aQaRzbGaYcr0+WutV6jc8wOeiW1yBWrCGmrrN5fXXiC99K4YRZyBIRNFSaHZIhn1blew2Ac+GctfRQg8NB4e5AovucHJs+iSoCMINGdBbFJE5JTHRilHqoa7yTjn0HJLz+44virDHhOzTn4y18ECxr6iwgt8eJZG+.yIaBjcuCQgiNAxlvD4voiFiBrY5DeztKJxNb23pcMxVBLDYXDxQbyNmahydcz4kel3MQV1207uSgcOHp7tnTt.JioRgKy8JebTHrspx8pgK41B3PFbvEGFnhNHKkQ9dzGXWr2+s6qgLsa1PfEMuquBFgqHMN3gp0I6PEMZeufDLIEYHxPThTVGaqd6.gk.2gRS1Ge+keYIqql4yMbPwDTfRnMYuhrbGfkKXQzl1cmU66rlGRDjgRjGmRsrLKeB1djjsIwdZTLIEl2kPWvKpFKrk0544iSNxgCJiBWmH.MZ557NU56RNKVLZMXRri7szScnn6dI9hpQTKZ1nOOWPZr6bRJfC9DrwmKOgJSw0nIRWI3R+b2.uvux6k3arOiImMGBJuX9jGx1zjcn2xVqY6XXwfPmSDFd0EKQDr8JpXTxxnji73UVYrS7fFY7Hj3zVKwFnGhzSxV54PX53KwahldNaEAo8SOMU.CpWiHfnO.o3LwiXKDUqAEdTOIIg0VjooDooX4Begnj+BJ3QqLczDBT3RyT6dEnaX2wpUJy0uwFcpQgpnGZ+.mqrXb6afG.sS2BjshtHFwvFsvz.lOdRvbdLGkoIGNXIjy4wf.zJHxF6l9u9q.uIyV0AJHP+gIHOIA5xHpVghNN0AH9l6Es+b8hRP9CNF.rt+qWLm109GgW1BMjvdMfcxXzwYsg42crlKUeWw4vldkWNJO+FRBlFEIOs0Q702CdYJ1.mQ8gEBJh+DOKiTpoH6JSMXEZjk7gXVySmUcPx..f2LuPjHXXxZBUo.TJPFjFQ0x3ZGejQjHGnKN6u9MzLM2ZZ7y9Ur.Ii+K1KSuqiP2O+Siq39u0V5Rqbm6.dD1Qas+gak+fu+eWKc88y6Ly6wlDZ.W7GbO35zTjsGZVCwKuWRq1yX39g+YndlIn9ITmFu642hHQD7ejCClTBbBxyPLsYMeoXjO9CRGa6zI+SMXU1gJPRwe6fLxm7gH9Y1eUO.EvsgU2R43ge1hyp8IPRgQljG6M9w3LdOWMIOiAPFKR8uH0BMXkHB8+Rddfc8E8KwhI9U6ii7k+YDo2NZYcYm5IOHElizppAZljCuQNLG1Q7TbKMbSv0T5pprVeqK+Ret523yLyzaQFJwyxjDoBcuCJY5JjlRzXsMWM9HDA91pH9LN4wGUyUoSlmmRM93iafcvh5mjC065IhH4Jen+QV6e3V4Qu1OBC9s+UlmgJOr.eyIEst20UZWieEZNUXCcmziyw9T2F+7+6M7HaMAptzSMgwTvBMRvhvcgZG74HlT9s5Fk87ZcsDazZESRIllRDjVDMYTmV.62CRHBcfBBMHTtdKXD0B2lzalqasn1NPMJDHHKNpTj+Qf4d33rfFMcG3s5V1TliPZbvuoVxrBD3XFM2rmayiVXjSUtic1I5PqbcaWP.LNExNAE9EPCR1BD3heKatk.AGloZ5USoffrBYRJZlnX40yW0qjxpYlflnPEjtuDLEWQ7JWP7jTYgos5ye4xteABljB69dY2CAMHYGluSIZgsqgfUrQdRQgFlnCe4LFEHONF6la+n5B9d.4oLYhhOA1mVBe7LAKIzIRgofjBE9wC9rIEE3XLM1DsbME21j0npJdqEEK5xHgr5raocunJETJHpdOLDjTbMnX7fE1sEhlxs7A9j0kiQ5F1aaAhs8LAsn8H1tVcvgfWt4wEGSxAVBW76LFVcGCgNLDgA0P0vVPn8FVZv1VvVd0uX5+h2RfiO77JOJVYT4K7ZW4ar7HJW2viiMcRLrQXRyf12F2t.XZJ4OBo+Uge1BR1AdmRQ+jroHZAPI734XxF1mzAQnwgIHOg9ydwfvQMkLoCjK9jAGbvGIAOWtnPgGa9h2Jux63ugncmbguvZMBKK59zWG.TX7zLwtORUwadV4OdMvxL033jCIfko1guFRTtrYtXncIBFmBGZPl9wB+rEjrCrsNA1z7qDyiPZSTlZLgvSRAlhRsbBDTYtW6hhzTBEJJfKdUYpl1DdDHBxf8kWMDIYLRtt0T1EpyKzPoTYI09Ghm3195j5.C1TIWPHBe23ihblzgpChPmDitHFsp.dMPJx+vOLGdjvOadIagoQjD6lpmljfBVSXs+b9uGBTn33TfR31zDc3XGEZxEHLlzTrrhTgsmp6vUcmOKrYrccP9JW1+CrhEorRWMB7J3PorYaIht1miP4e4wkb3PVbXsjfXX2TYsaXkgJCktmJ+74krCpEJVzcSjhvRDLMkXTx1.DcfnzQHaSGm4vQwNnHKkHGtTBuJrAGZV05JlNSSc7gsjEKQWKBSqh73PAboeRR2DuoFrMJYe1syvOQke9BJFOnTRsvKwDXlvedXlZAEcKHvaXiQNiCaZLhITBiI6KHKtkU4ZwV6TZsTFZoCgEwfwHGt3SeMPA8MLjlGjz+vGkiMYke27R19nYyzUSMqwgXJ7PMuJWIHHUYRYretQH5v8EirThonnI+2zUbtmnjVBMGBEuG7LCCv7q.oEBNHoyNDY9x09cyIYGNecipQrERFgrjEmEjnmjBjgRMjX6PRNEEHqQS5vR79IN4cxhGASOVjHHmy8gzvoEGlbe+uE69wq86mSx1CMcQrFppAGpPvwH87NOsf.MtSu.ZbGRg9nYZyVaTvxtoVEs9cKDVfcSRj5tMUFD53bkNJY+b067mSxNb4j1HNRwif8QiERS5wMiniLOcHBW1qYMYcRnISm3TK+W5PngkiQN1LcW2i3Xj9WtK14CWuyeNIaIBVGcrfJlIBtAlhx9rI6POJMN4IOdyIQGp3UvlTVAbQYV.s+dRtRD5rpooDqoBqjrPvwIGGio+L6FpWEMXtIaWTKXAkMT78TTXNH5f4aGm7TBu5NWdncxEvkTTnbRI76xhqaDjCG5th.SoANHS9id.F46LWmScIaeTrNRvBEw3v3SWOEkpLzjdnpqxXgQSaJi3cn4sM92EgDAELqtz3XiERNDSUXeL0GbXFN+bcdyhrCyyL6Ev+rAqxxL00LqfDUviQmCanCutoL65cU6JyeOZTT.ORPDSLHRcOeCd5e97c7yhrU.IIBII5bNpNz7oII+rz9Nbz5njCndDMT.GSTsBxq61MQ2JWsSzxrbAPVbX.RxdH0D6gI9WVnyYVjcPP4wrv5lKa4B1pBqcd5vvSNJ4K+2U9cA0CjBjlhPUNDo0Ps1ZGDiYJGlvJkJUSUHnp1U30wt7eMS8bX0bm.IPJJxAXhOwOjmYuKzwWWw3KjsxGkoMh5qLSPEkEcG92U9cEwkwIGkBhwDMy3uJCTXkDYPUQvu7FRtG9lTWLLM+XNslXlzHRXLwLXG4al0CpEwwhnl7ialNVqN5.D91a2L9C9XL3GoQNmYQ1dn4Tn9K0DQYsuKV0n5PkwNN4oRZNTAuTTjTjmFczrnl+OG7vAeSouv0TYSBSMnZWQoUqt37c2pbzuG9UTkin7zKg+zoIScrQRbiLfYF+u7CKDLBYScHl58uKFMWibNUQ1giNmK2PpHX+ozpF5HfnyYbDinpq0XjiB3YNm4KCOmQTuKJbvmooDdljNv03ZmZyKr1kaSq20QQXEIARgGSRQrQRTrJWRphgrbo5Z4ZLuYimSODY+m+ZrqcznmWUjsBEqkjDkYWw+Cz9NKEqvwHgZtO1rHZXJJPJJfddhFUkhEyiO4oDkLIavLdsaFJdkTe8v6uBMEviB.SiC1HHIQnKhRGDshw6KUsi.2HeLx7s9ILwmoYN2pHaWTzkIQ4ps7IV.OFmbU4ALeimw7MhmCePGi7LMEKKFr1Fa3H3B3RA7JWxoBq44UmFSq9LIqxVjOAkLqrlc7udHNcWNexVJt2BNLSsuiPo2+g4vM0h.qJxNbi2tdyVOLYLiAm4QcLxiSEt0rDdLF4o.tyZzbXM9vAkIVzdFmhpK2k3DUasCI1h3SQxRZhPeDmNayizsPvnjezQH2636xSefl87qhrCp57UmUJRDjhBLIEHtw8oBBRy2.Q5Aknxr3vXjCkg7gpSX9LThr3xz3TVe5kBarWIQ3ScQ7XHxPODm9HQcmVrYgEBlhRNCR1a8d3oezV4ZTEY6T1rHLM6.Q6CQ1xM3v7.OKkHJ1lfWD3fkJmYUZzPOGtLEEwwjtAyHh9jGRtVD97klhjCWVOcPWDoEpaBAHHFDk3fj9e9N3Iu6VscUlr0.qwrj3C6EJPXrM1yT7zDLN4IiY9IEZFkrT.mplm0EEonHYM4kcshoqbDek+25AcM+tRs.Vs2cILPPCQF1.cQOsvNfT39S1gYp+suD63CuXZOkIaW7oK5fPqiCGUebxV1l5oonQQj.E3FhoMIxevqcOS56lxjD70NObkN6HvgGpY43iJ6.Le9kuRGhDl8nqF21ECe5GgrHnS5tIH7v.dbHR++8KvN96YQt8LYG1f7Ylhcd3HniSlxY8YI7Hkop.6fOiPVbMwvNH8cKQZSp7FpWtGAE1ovZAZkD3LROZdnpnKQkWGqxjtU4TWZ0BBS5f3Fazajr+Ifnm5S74Y6ueXdKu5MDrgffezIQIgY4tH.JhGGmbDAoIceygEAwc93jyLxUX7NVAypt.iITy3xx4BsKhnVyf7MZ7GVRJWppXgMKBc9zjTj0u.YIZ3Ji4vj9197r8+QZCDMXH6PSpBC9gDAiPVBpPdvvjEIAQYYBxi1zvCTTKP0qfZeckystxBeiyO7Ld7Z0PxPX77E8Sh4zJDKDLFEJMHo+P2N67CRazGMFxNXzc37eYvkon.VHYLSfMBR82B3ilTTjwMYURk9lNDq7uVmAtlNhwvZUwluZXUcp1LDMTGjgI2XCR522cxt95s66sMDPvCT9lKXTxf.ISSIJZlOdJic0CSViZYqFh8SigPGd.yeD8VdZKyT22BQn1EGgoe5ixTu66sNoAb6.Wc9lA..v.CmDQAQE1AtB0kDlpbRVbHigjSQQxgCoHOSQIFjLlPTN6.RT8CT0+0pktEEMcQishS3y.KDjGOFho+d6kodu+HdlCtTceKOxFBHvQIaY6jKfKiSdFgrLNELi609ZHkFxnQ4BxhfNi.gRftKEhjfNp.hB5XfHoMxDg9Ce4ZiRetPX7zWoUbKv6gvHjOywI2GZmLzmX6yS9i0NfsOZ5mjDAI4vkooDSQIxPINN43vjlIovn.eeM7jBTOmB49U3Nz8xtyVumi2IasyLn51lXcIgAbQe1f57DvKQCWrDQhv8vhUBx2w3afUBiyDFqDJgOGio+oiPw+16gc9DK7Y1Ft2ON2nd.RvlnKNLo44XRNN44.Lg+fj6AmlheUItOvWi8MLKRMCuNN+Nih0ZDHtbEhqQ.+WjHN2fPGt7JvON1DqM3y5lAgYDSTrxlEmO9SyA+W+kLQqrzQas6+14lzCPGzGwYmLB6kIXOb7GYHl9C8U427.zt2Tsq.+obIaRf6KBrd6RzuDKj8ubMZ2hf3PubM11rRWbcv+a6h2G4tawfYrXfXWbKtagdsmf77cXetOCS9guWdzaaXXIc9iZwahy6bsHxaUf75DHddRBqJQKcnKSHHWpPn4T9nnD9+xh3+Q+prquwR3sb9aO6jaYjym9W+8xuM6OjCbK2A63NWoZL.7V3h5E3kCh2MvUFAqDAtZs8S6IwdIwe5g9qvEMkvamN38omlwuq+ykXEvVv10g3uZrLTZseZ19e4mhG6SrR1XpEuYtvWrEVuIE5q2B4FCGkztP6lrCCPSI7K5g5gcw+yoI+O5tY+S21tIKBHRweu99XOes2Ceq2FKgyOuXv0x4s1jD6OCzuRA7xjHsfEeAjqyx6fksNBIXiO4G2E+GPg5KdWrqeJMZwEeYBhcxMc3ODOxapUy9gkSbCrsHYovEnv9MJgWJvEFAqt0UD5zFEspBZUFZ0fLgUOTI72gB08kGmG5axdNbSdIW1f8XT39uGd5kE67Vr3yx1cA1o4e7V4EbYkv+hrP7GqPe0RDcKPDKzFdc4elMhPvVYyB0AIz4GgSg3hpnGpI.8uvC+ueN79keS1yy1VePWhf8nj4axpTw2KDt6.mQ7D.290w42aDrtPMhKSi3r0n2DH1BvYXgnSXFhML2ugYVHCgnxrnQA3iWVAh86ided3uCeTObFb9s+GrurzFiH0xABTbbU1bKsK7lYa8Ck5WfXc.aUiXsRDaLJxSW.8og0Hfd.5BDcnQ6oPuGM5GSC6Dz6wC03SiXzuKOcpU5mmEK9+mg+Gdbbf6pa.....jTQNQjqBAlf" ], + "embed" : 1, + "id" : "obj-41", + "maxclass" : "fpic", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 17.5, 17.5, 122.0, 123.0 ], + "pic" : "mage.png" + } + + } +, { + "box" : { + "handoff" : "", + "id" : "obj-33", + "maxclass" : "ubutton", + "numinlets" : 1, + "numoutlets" : 4, + "outlettype" : [ "bang", "bang", "", "int" ], + "patching_rect" : [ 164.0, 50.0, 138.0, 21.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-21", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 770.5, 388.181824, 21.853052, 22.0 ], + "rounded" : 60.0, + "text" : "4", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-20", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 532.0, 43.0, 21.853052, 22.0 ], + "rounded" : 60.0, + "text" : "3", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-13", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 41.51059, 424.636353, 22.706104, 22.858788 ], + "presentation_rect" : [ 90.0, 90.0, 27.123047, 30.34375 ], + "rounded" : 60.0, + "text" : "0", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-110", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 170.787231, 320.454529, 21.853052, 22.0 ], + "presentation_rect" : [ 60.0, 60.0, 27.123047, 30.34375 ], + "rounded" : 60.0, + "text" : "2", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-94", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 253.718628, 116.897827, 21.790001, 21.0 ], + "presentation_rect" : [ 105.0, 105.0, 27.123047, 30.34375 ], + "rounded" : 60.0, + "text" : "1", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } + ], + "lines" : [ { + "patchline" : { + "destination" : [ "obj-26", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-1", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-10", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-49", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-11", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-9", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-11", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-22", 1 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-112", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-52", 1 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-112", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 177.5, 424.0, 192.0, 424.0 ], + "source" : [ "obj-118", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 780.0, 532.0, 747.0, 532.0, 747.0, 408.0, 326.0, 408.0, 326.0, 424.0, 192.0, 424.0 ], + "source" : [ "obj-12", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-12", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-14", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-67", 1 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 780.0, 489.0, 850.0, 489.0, 850.0, 541.0, 719.5, 541.0 ], + "source" : [ "obj-14", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-30", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-147", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-55", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-147", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-14", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-15", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-204", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-159", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-204", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-159", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-30", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-16", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-48", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-16", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-14", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-17", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-11", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-18", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-198", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-19", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-205", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-198", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-91", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-198", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-34", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-2", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-32", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-204", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-198", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 288.0, 277.397827, 267.75, 277.397827, 267.75, 238.397827, 288.0, 238.397827 ], + "source" : [ "obj-205", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-24", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-22", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-51", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-22", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-22", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-23", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-24", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-67", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 496.0, 483.0, 588.0, 483.0, 588.0, 546.0, 678.0, 546.0 ], + "source" : [ "obj-24", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-26", 2 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-26", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-27", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-30", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-67", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 496.0, 624.0, 618.0, 624.0, 618.0, 546.0, 678.0, 546.0 ], + "source" : [ "obj-30", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-29", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-33", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-1", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-34", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-16", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-35", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-11", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-39", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-40", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-67", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 496.0, 667.0, 573.0, 667.0, 573.0, 624.0, 618.0, 624.0, 618.0, 546.0, 678.0, 546.0 ], + "source" : [ "obj-40", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-147", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-48", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-53", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-49", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-57", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-49", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-27", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-5", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-7", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-51", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-54", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-52", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-23", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-54", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-56", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-55", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-35", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-56", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-58", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-57", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-70", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-60", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-65", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-62", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-60", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-65", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-72", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-65", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-79", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-67", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-24", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-7", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-52", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-7", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-62", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-70", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-72", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-70", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-67", 2 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-71", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-72", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-67", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 496.0, 547.0, 678.0, 547.0 ], + "source" : [ "obj-72", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-16", 1 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-73", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-55", 1 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-73", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-198", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-8", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-71", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-80", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 541.5, 307.0, 328.0, 307.0, 328.0, 424.0, 192.0, 424.0 ], + "source" : [ "obj-9", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 328.0, 423.25, 192.0, 423.25 ], + "source" : [ "obj-91", 0 ] + } + + } + ] + } +, + "patching_rect" : [ 445.0, 86.0, 159.0, 20.0 ], + "saved_object_attributes" : { + "default_fontface" : 0, + "default_fontname" : "Arial", + "default_fontsize" : 12.0, + "description" : "", + "digest" : "", + "fontface" : 0, + "fontname" : "Arial", + "fontsize" : 12.0, + "globalpatchername" : "", + "tags" : "" + } +, + "text" : "p \"pitch and speed controls\"" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-2", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 0, + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 0.0, 26.0, 967.0, 693.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 12.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "showontab" : 1, + "boxes" : [ { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-56", + "linecount" : 4, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 589.0, 299.0, 216.0, 63.0 ], + "text" : "example of very simple control with keyboard's characters ascii codes (one state duration is typically between 1 and 10 frames)" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-55", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 25.0, 69.0, 78.0, 113.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 11.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "boxes" : [ { + "box" : { + "comment" : "", + "id" : "obj-2", + "maxclass" : "outlet", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 18.0, 79.0, 25.0, 25.0 ] + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-1", + "maxclass" : "inlet", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 24.0, 13.0, 25.0, 25.0 ] + } + + } + ], + "lines" : [ { + "patchline" : { + "destination" : [ "obj-2", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-1", 0 ] + } + + } + ] + } +, + "patching_rect" : [ 857.5, 439.5, 41.0, 20.0 ], + "saved_object_attributes" : { + "default_fontface" : 0, + "default_fontname" : "Arial", + "default_fontsize" : 11.0, + "description" : "", + "digest" : "", + "fontface" : 0, + "fontname" : "Arial", + "fontsize" : 11.0, + "globalpatchername" : "", + "tags" : "" + } +, + "text" : "p thru" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-54", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 881.0, 327.0, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-52", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 814.0, 354.0, 34.0, 20.0 ], + "text" : "/ 10." + } + + } +, { + "box" : { + "id" : "obj-48", + "maxclass" : "toggle", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 814.0, 297.0, 20.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-45", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 814.0, 327.0, 54.0, 20.0 ], + "text" : "gate 1 0" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-42", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 4, + "outlettype" : [ "int", "int", "int", "int" ], + "patching_rect" : [ 849.0, 297.0, 59.5, 20.0 ], + "text" : "key" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-49", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 164.0, 77.0, 92.0, 20.0 ], + "text" : "mage_glossary" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-50", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 164.0, 50.0, 81.0, 21.0 ], + "prototypename" : "magefont", + "text" : "some words", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "underline" : 1 + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-8", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 332.5, 215.90274, 37.0, 18.0 ], + "text" : "clear" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-19", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 278.5, 215.90274, 54.0, 20.0 ], + "text" : "r menus" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-4", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 278.5, 193.40274, 56.0, 20.0 ], + "text" : "s menus" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 4.700932, + "id" : "obj-205", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 278.5, 266.90274, 75.75, 10.0 ], + "text" : "clearchecks, checkitem $1 1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-204", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 676.0, 102.0, 317.0, 504.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 12.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "boxes" : [ { + "box" : { + "fontname" : "Arial", + "fontsize" : 13.0, + "id" : "obj-1", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "int" ], + "patching_rect" : [ 168.0, 282.0, 140.0, 21.0 ], + "text" : "conformpath max boot" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 13.0, + "id" : "obj-12", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "int" ], + "patching_rect" : [ 23.0, 391.0, 140.0, 21.0 ], + "text" : "conformpath max boot" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-11", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "bang", "" ], + "patching_rect" : [ 23.0, 338.0, 32.5, 20.0 ], + "text" : "t b l" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-9", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 23.0, 365.0, 128.5, 20.0 ], + "text" : "zl reg" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-8", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 23.0, 418.747559, 123.0, 20.0 ], + "text" : "sprintf append %s%s" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-7", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 23.0, 205.0, 128.5, 20.0 ], + "text" : "t l l" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-197", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 168.0, 330.747528, 106.0, 20.0 ], + "text" : "prepend append" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 13.0, + "id" : "obj-196", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 5, + "outlettype" : [ "", "", "", "", "" ], + "patching_rect" : [ 23.0, 310.0, 104.0, 21.0 ], + "text" : "regexp (.+).lab" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-150", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "bang" ], + "patching_rect" : [ 168.0, 203.397827, 35.0, 20.0 ], + "text" : "b 1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-141", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 168.0, 240.247528, 86.0, 20.0 ], + "text" : "zl reg" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-151", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 23.0, 97.0, 61.0, 20.0 ], + "text" : "zl reg" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-152", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "bang", "" ], + "patching_rect" : [ 23.0, 72.0, 91.5, 20.0 ], + "text" : "t b l" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-153", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 23.0, 282.0, 81.0, 20.0 ], + "text" : "route append" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-156", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "int" ], + "patching_rect" : [ 23.0, 245.747528, 41.0, 20.0 ], + "text" : "folder" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-157", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 23.0, 165.247528, 91.5, 20.0 ], + "text" : "zl reg" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-158", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 23.0, 128.397827, 61.0, 20.0 ], + "text" : "route fold" + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-201", + "maxclass" : "inlet", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 23.0, 12.0, 25.0, 25.0 ] + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-202", + "maxclass" : "inlet", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 65.0, 12.0, 25.0, 25.0 ] + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-203", + "maxclass" : "outlet", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 168.0, 445.747559, 25.0, 25.0 ] + } + + } + ], + "lines" : [ { + "patchline" : { + "destination" : [ "obj-197", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-1", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-8", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-11", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-9", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-11", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-8", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-12", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-1", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-141", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-141", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-150", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-158", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-151", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-141", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-152", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-151", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-152", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-157", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-152", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-196", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-153", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-153", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-156", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-7", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-157", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-150", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-158", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-157", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-158", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-11", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-196", 2 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-203", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-197", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-152", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-201", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-151", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-202", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-156", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-7", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-9", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-7", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-203", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-8", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-12", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-9", 0 ] + } + + } + ] + } +, + "patching_rect" : [ 278.5, 167.5, 75.0, 20.0 ], + "saved_object_attributes" : { + "default_fontface" : 0, + "default_fontname" : "Arial", + "default_fontsize" : 12.0, + "description" : "", + "digest" : "", + "fontface" : 0, + "fontname" : "Arial", + "fontsize" : 12.0, + "globalpatchername" : "", + "tags" : "" + } +, + "text" : "p filldamenu" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd-Regular", + "fontsize" : 7.588239, + "frgb" : 0.0, + "id" : "obj-200", + "linecount" : 4, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 278.5, 105.897827, 64.0, 42.0 ], + "text" : "drop one label file or folder full of label files" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-198", + "items" : "", + "maxclass" : "umenu", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "int", "", "" ], + "parameter_enable" : 0, + "patching_rect" : [ 278.5, 243.5, 100.0, 20.0 ], + "pattrmode" : 1 + } + + } +, { + "box" : { + "id" : "obj-159", + "maxclass" : "dropfile", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 278.5, 105.897827, 61.0, 42.0 ] + } + + } +, { + "box" : { + "id" : "obj-35", + "maxclass" : "ezdac~", + "numinlets" : 2, + "numoutlets" : 0, + "patching_rect" : [ 114.860001, 509.320007, 45.0, 45.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-9", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "signal" ], + "patching_rect" : [ 272.0, 467.369507, 54.0, 20.0 ], + "text" : "sig~ -99" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-1", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "signal" ], + "patching_rect" : [ 272.0, 488.0, 48.0, 20.0 ], + "text" : "dbtoa~" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-2", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 272.0, 447.233154, 45.0, 20.0 ], + "text" : "r siglvl" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-3", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 206.5, 654.458923, 40.0, 20.0 ], + "text" : "s ctlvl" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-24", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 182.5, 463.505859, 55.0, 20.0 ], + "text" : "r outctlvl" + } + + } +, { + "box" : { + "id" : "obj-25", + "maxclass" : "live.gain~", + "numinlets" : 2, + "numoutlets" : 5, + "outlettype" : [ "signal", "signal", "", "float", "list" ], + "parameter_enable" : 1, + "patching_rect" : [ 182.5, 509.320007, 67.0, 131.0 ], + "saved_attribute_attributes" : { + "valueof" : { + "parameter_longname" : "live.gain~[4]", + "parameter_shortname" : "output level", + "parameter_type" : 0, + "parameter_mmin" : -70.0, + "parameter_mmax" : 6.0, + "parameter_initial" : [ 0.0 ], + "parameter_unitstyle" : 4 + } + + } +, + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "varname" : "live.gain~[1]" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-28", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 182.5, 484.136353, 43.0, 18.0 ], + "text" : "set $1" + } + + } +, { + "box" : { + "color" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-5", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 182.5, 439.5, 73.0, 20.0 ], + "text" : "s magehelp" + } + + } +, { + "box" : { + "id" : "obj-46", + "maxclass" : "toggle", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 505.0, 584.318176, 20.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-43", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "int", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 537.0, 584.318176, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-40", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "bang" ], + "patching_rect" : [ 505.0, 616.0, 51.0, 20.0 ], + "text" : "metro 1" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-44", + "linecount" : 7, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 297.0, 552.818176, 207.0, 105.0 ], + "text" : "The change is only effective on next synthesized (computed ?) label. If you want a permanent change from mage's default, you will need to send the message at least once each label. Easiest way to do that is to use a metro." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-39", + "maxclass" : "tab", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "int", "", "" ], + "parameter_enable" : 0, + "patching_rect" : [ 608.5, 530.0, 78.0, 107.0 ], + "tabs" : [ "overwrite", "shift", "scale", "synthetic", "noaction" ] + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-38", + "linecount" : 8, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 686.5, 530.0, 257.0, 120.0 ], + "text" : "6th integer is the type of operation to apply :\n\n0 - overwrite old value by current value\n1 - shift old by current value\n2 - scale old by current\n3 - mage will compute duration (default) \n4 - no effect" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-37", + "linecount" : 4, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 529.0, 396.5, 288.0, 63.0 ], + "text" : "control on the duration of all 5 successive states for next synthesized (or computed ?) phoneme.\nThe duration is expressed in number of frames." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-34", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "int", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 645.200012, 468.0, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-32", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "int", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 593.0, 468.0, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-31", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "int", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 542.0, 468.0, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-30", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "int", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 490.0, 468.0, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-29", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "int", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 438.0, 468.0, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-27", + "maxclass" : "newobj", + "numinlets" : 6, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 438.0, 494.0, 278.0, 20.0 ], + "text" : "pak 0 0 0 0 0 0" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-26", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 438.0, 521.0, 154.0, 18.0 ], + "text" : "duration $1 $2 $3 $4 $5 $6" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-17", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 710.5, 199.5, 248.0, 35.0 ], + "text" : "gamma is another vocoder parameter which control is slightly useless." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-18", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 637.0, 195.5, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-20", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 637.0, 229.0, 67.0, 18.0 ], + "text" : "gamma $1" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-14", + "linecount" : 4, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 710.5, 124.0, 257.0, 63.0 ], + "text" : "alpha is one of the vocoder's parameters ; simulates the vocal track length. Default is 0.55. Should not go outside 0. - 1. range. (Shift+drag for precision tuning)" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-15", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 637.0, 131.5, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-16", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 637.0, 165.0, 57.0, 18.0 ], + "text" : "alpha $1" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-12", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 710.5, 70.5, 179.0, 35.0 ], + "text" : "a quite standard though fine volume control" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-11", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 637.0, 67.5, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-7", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 637.0, 101.0, 66.0, 18.0 ], + "text" : "volume $1" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-6", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 67.86364, 415.0, 78.0, 21.0 ], + "text" : "play it safe." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-10", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 67.86364, 439.5, 92.0, 20.0 ], + "text" : "loadmess reset" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-118", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 346.213745, 396.5, 47.0, 18.0 ], + "text" : "labelfill" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-111", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 385.5, 371.454529, 103.0, 21.0 ], + "text" : "fills label queue" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-91", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 318.5, 282.0, 53.0, 18.0 ], + "text" : "label $1" + } + + } +, { + "box" : { + "data" : [ 9240, "png", "IBkSG0fBZn....PCIgDQRA...rG...fdHX....vmaxh1....DLmPIQEBHf.B7g.YHB..f.PRDEDU3wY6cdGkjcUem+y89dUrSS2S2STwQgQn.BoAgD1qPFA3EzhAQPBSxlCAkVXcPXu1m0qw9v4fLdMgEyAVhBgjHHIPfwDDAIDf.EXzLZDLAoQStSSGpt5J+B269Gu6q5ppt5tqp5pCy.e6yzRcUuv889du+t+R2eWAmjfGh+73cQrd8Q0mMxM.hsIv5rz3sdMpA7P1uMh0.zsMhn9nc7QWDz4EHSCbDKj61B1u.0ylA2g8QO5KgaerU5ms1EDqzMfVE6jasCE4uXP+xjHddBzazGNUfSIF1wz.fFs43q8ugJe3EHL+sv7+W.OWfmwBwdllhClG2mb.54GOJxItF92Ksz+D19wILj8ugqKZQ58RDXcwBzWoF8KIBx0YgU7HXgBE9nwGcMTZqAABrQfERTno.tZAhLEvavnX+y.8uJCYejWJ209aCOdKKXUMY+PbU1qgKXqZTuVAbsBDmWRh1kBEdnPQsiUW5P3ndIBrQhFHOtCVD2mxG8WZbx9nuN95GcYowzhXUIY+T79NEebdC1X8p7QcUwIRbMfOJTKSjai.KjHQfBM4nzn.euonz2IME9tWO2qyJc6qVrphreJtospP7N.dGQvZC1HwwHXd0NrPRDjjGWuR3c.A5Oywn3c8F3tN9JcaKDqJH6mja77A4sXi70GEqM5gOpUwTrn7uCZiyzN0kEyagf73r2z374OLo9R+47slXko0NCVQI6Gma5BsgaUf3MFG6NCTvRsR1jlEBeA4anTABJhKdnIJRhSDhXFUKQRI7HGNTBerQRDrnDt6eLx8Y+A7Te5OE6N6J8yxxJ1A+EqAJ8dDH9qSPjM3XFIuZCFkvJOZEzrA5jDXil.h2xnzVnBbgcXCedjHn.dLJYwA+cNN49fCx99N2Ha2c494YYmr2A27+MM7OEG6WnZU1HYAB7vG.bQQRroChhMR5kDXivzZqTvc8tNy9SjHPilTTPKQ7iyh2e24vG+IWRdPlCrrQ1OEu6SwkH+CVv6JN11NlWpqzP.nL1m6fOcPD5hXzOIA.Kyqn1kjGKDDAKlhBSMN4usGlC8IuQ9Oy2Vt3K.VVH6eM2vebDr+3ww94UZUl10kvCEZ5jnrN5fjDor4TKkHvrMHEEd3QH6e0Kf+e6XI8FxRLYq4pr2Im+sZg7evFQmtqBDYKfxdZyFA8Pb5k3DEKil0KecDE.wvloozXSR1+hylO4Wco99sjfsy67zkD8iFE6WuB8pFEvBm9X.RxZIIVl4RWIacQvh73nGi7ereHC+AdubuKIZrujP1ON2zkDCwWNFQtvR3sTbKZZ3abuZ2Fw0QwZUSGPfxZ7OLY+wOKC81d470FsceOZ6j814VdY1vWLJVm1pAkvzFQ1cQTVKIMlMsZRqgYPnX8QI6NOJS9VuBt8c2tu9sMrCt4q0Bwm0FqAbWEPzdnHFVL.IoShAr7Nmbqh3XSJJ9LGhwe6WFegGucccaaj8ula5lif7+iMxN7VAUDKTALG7oeRx5HY4vTdhDhgMoo3vGfIuoWDet+i1w0rsP16fa9FrQ7IEHh3uB9RU.TBejH3TnK5hXmvQxUhXXwTTL0NYz2xqf63GrXudKZxdGbiuNIV2gEhtVIIZMAhs6fHrY5BKjmPHxdgPTrXJJcr8wHW2Uxc7nKlq0hhreRtwWgMxuhEV8uRJ5VYh1z.jjdH1IATb0HFVjhhGXeL1q+J41epV85zxj8ula3xiRj62FwFWIcVhOJhfEmJcSDrNoXzb8PbrYHl9Y9Mb7W10vcerV4ZX0JmziyMepQw59hh0YtRRzN3S2DiMS2DwjpPmrBOTzKIVqK9WxVYs2+Of82zI8XSS1OCuuXd3+ERf8UtRZGcdbY.RxFoSSDkN4G9nYcj7LSPrt+L7q+dM64Ka1Sn.t2ZLhbsqTDsFvEe1HcxFnqZxTjStgFMdnYKzyM+37dd6M642TireBtwqQh7SI.6UhWvZzXgfMQ2zGINg1rpVEZfXXKrQdUWAm4O4d4oGtQO2Flr2A23YXi7qDEq0sRXhUPTpjrY5ljD4jVEwZDnPyZHdBaDmeZJdO6hQanrdogH6O.e.44R9OVRhb0K2huC7HlBar3ToKhYBE4I5nx7Pu1eZDij7QSej3z1Hcouc1wC1n2yEDama90aC2CHZIs2aUH.bPQTjbZzyIrlVU4xJB.EPQbws7DQUmkpQQRLrw1zUPOGgH1BISRgB+bdtq9Ok6eAc3xBR1OIuuAD38Shi8EsbOp1EehfEmIqwD24SLP3nUeTFBUyDjmb3hkYIEkGGJVQV6nIP7bXju5fHlzQ1idHF8SGHIH12vLoIUbrYeLwO8cw25ZdTNVg4qcsfiTuI11eaBru9kShNTz8IJD8LibC9IEEXRJPJJvAIEiRNbvGW7wAEgw32xDC6v+ElRxPfODJhOdnn.dLLYHso6gBMIHBXReptH5YbNrlCcm7zyaBLNuj814le9VH9TZHwx4KaezDEKN8U4Ds.vFIt3SNbYDxxwHMooHonHtlPrFwLVWVwbzK70VT0b5gNMZJJxTTjzThnXQLrHdPVqewqine8GjiLmY4xbR12CWm0ZI4skjHu3kSujoL4F1oPOqZ8JVnSbJfKGfo33jiQHKgwGPhfnkyl71KBWeYdnXBxSVbwFAajNWiChh2EO0bpr1b1Z1N271rP+KjXEe4ToHEZNUi4UqlritxEAvTTfwo.SSQrLK0mUBIPB.OSd2rY5lR3MwCxQdg2Le6CUuiutdPSiVHP+WFiHKqDsCJ1fIcdWMQzVHnD9LDSydYLNLSQQbIA1lk8yJyTMZlYd+iRZ.V6oSWuu453qqX7WCGeaQP9gzPrkqGhh3wlnK5k3qJHZAAhicQwQHMGkoICNHHPT5RgH5ECrLq30R3tksxZu+GhCkp1iotirEvMDE6tWtdo6X70ceqRHZIBbPwfLM+FNNon.1HIFVq5H4JgFMCPGqeizyatde+rFY+TbSaUi3ixxjF39noahx5oyUbGlHMyIOJ43HjloMZ7FLR9DCXgfB3bNNn9x6kwqxt6YMx1A8aLNV8tbLBKbQ8sd5fUxXWMi8wE4YYBFgoAzDq0B2+JJ7Py5oqMeorw2PseWUj8CvaqCaju5kCQUg4t8YPOkqQIqDPhfrThmgI3.LINFu1IVEae+7Acv5VStU5+0tM1VjJ+tpH60QGWfDwKb4vaYdnXSzEwMq04kaDtDZODSw9XBJfCQMBrOQjjqDASMF6pesz8Vp7ykUePh2TTrrWpaLkvm0Pb5YEHUeC0xdJJxdYblf7DyLu7IKvGECPx38SxquxOu7S3uj2Ue1vqZoVIoPEx1DctrSzAddRyQHMGfT3ihnm.Nubi.IB5iNd0mODclOyfXXcIBjm8RYkPHbIwtA5bYWToDAooH6liyDjur+pOYEZftHxE7GvkdogeVYxVf8KHIQhrT5EbO7YSzU40B8xABcy4PjgmiTnMY7xI6PgldIQGWHq6BB+LIDjIJRzW8RY.ObPQ2DitWFmmNzCXGhoXXxPDjmTM277AEZRRD5jnWMlXfHA3Ogg6Si9EsTIBWglXHYSzIKW1SGXRkC6mIIMEOoct44CJTzMwupafsk.JKFWdEBDqYohF7PwFnSjKC1SGNK7XjiCPJ7vubQv420fOZFfj82KwuTvP1B3phgsc6VSbAAkXpf0Gczkbw2BSlabHlhgHS44q+cUnQSBrisVR9J.vN3WhyJXtr1qyTBS+20tLji2RDjCGNDSgK9+NybyyGzDjyZcS7yE.6GhaoSE5MtTLesGJNc5YI2qTRjLN43njtbHH+8H.RDzKw1.fkcW30mOxSq0S7+5edt3SuDmNHZEQypwpGfMy8QhfwHCGkzUk5sAcuZrbvdgtGMFlu6SXhB2pSor3lJxF6y3UvyOtsGt8lf3aP0BirEQrvpujfn1FiFo.VuaWDDkMe.KDqqSPJmo86oPOQdP4Qf5C06gRiHVDnuDyhKD.SPdFEIIouZ9RA5Rd3MYVC4O2i103i.IxDwPDs0zZWkyAsW8lFTiUWIP1YLP2Zcl7lHGZWOZEROHKcEmxUyoF0NNQNqHXIaVar03ShK7T4z+FuGjIiDPhhJ+dHhO38vGD2a6mQj+lqDqW9YUkabPoQORFb+nOBd20N.+Z68qQrgtH929sg3zWCHEk6XEdTqGeV+bnFl1WQle9yxQ9quWJczwqKgqEZ560borg+pWAwNm0gvpIlBPCnTnc84f23cQpG3oPhcEesGccEmKa4NeWX0cbDBQSwWZsFTZxs8Cyy8V973mNOMKgqA5l31QYzj1RjWZqp7jHpE1arGjwswepBncC5YKQfTHf0DC6q+hv5ke1H5KATvEc1vBruFrDHe9afXewWOD0BuO2iQ04SgBwYsVjW7FgXVnmpHXtGNnV.gzZr5LF88F2FBKI6+M+YPWxupyPiOIO+Sgy5te2H6HF9SWDsupwdepAgkDqtiCJMxDQoVQOZTDeqaf3m8.fVi2j4QnloTVW4QFdlhxeBXEMBhdhSmuvyfnanGxmNKhlzeAg4XdQXs1tvoFcgOm5CcvubO1T7bW4GEuT4wSp3z08PLgMxKayD61eCH1TWndjiPo2+2G8dG2TW10PLI12vkSzOvKkn+ueo3801Ejod61BZzGNMEu5u.pIxwvxbk8u8b1z78I4kb5bt2+sP2uryinqaMT7niOqWxcd4aAYGwX5exd4f2xchtfWclVp9O6VcDky99tIRb9arrHZQs+174S9M2AG3luSJ55fqHbONQahBmbVEDWsRQhyZ8bY+n+mfVSk5TEd0aTSksQfCxtsUnVeKV.FBtkBApLEv4PigaP0AfX3hFG7+g6C+evyf86ba3dW6D+G8YQXpGYAPi6+xCSj+rW.hynWjm2.ndhiPUsGo.rjPlR3efw4nLc4bBa9pchZTjeWGCmASQhKXSPTKpmBX1CzE.jamGg7OyQPVU6agfF2gSShKXSkSneWTTBeSZ95PLBJPBSbvg3nicLzlJqnxj9FUtZRpdqoRQrC5iyT4HRWIXBJvjjlnDktIJBDjvjlEKjj4fk4qHosBV2h1rHg.soJ6tV5H7CAjPnX6BNl4LqbTi.b8Pmp.hszGhthW6EF8HYfzkv6no3Pl7Bytg5bJBl+UHZHkrEVRBKU7MvU1Pl9nMG9jTfiQFrHBEMcCE3QulatvRh1blVMfvXMBrsrBlmmftARS8baRJhGpxoxb2l0DRP2k5e0hhLtMn6cgeUrPO7AlZETSPqo.yEJRbNEMNiRWyVaUI7rSP9W0WhCO1vFhtQTfxrtGc8aYMfqoEZtpAHiovUmGGNC7nGBz50GEBStqoA7Whx3mfUbhEdls7pLjgNHBqg3DqN0jUyB3OlsEhdVrAmvCMwwdIIUf0.G4IdZljhDg5kDMgqBRU4+YQThzWWj7hNEr5sCzpVTATCMGtmfj1PxgEj9vM4sviMLGTaauAVfKTX6KBBJZ1ZJ5fnziIom0UcrD0VhrqESiSatoqkDl4OZePhfCQZljRDAazn.CgFrULDAYrHH6LNw255IwEtIR771DwOq9I5YzOwNy9wpyXnJ13aGGgEVdezjkRTDOJEHvlHXUVQp4SnYcgPP39IXi.MJzJEBYiYpUXGsooD4vgMPmkWqbZf3XGw1B4hNmyhhkIN0sOHQvfLMSPNhh.MdDoudH1Y1OQO09H9V5mDWzlI4EsYhctqGqNiWsc9t93OUdnyFSgqPpaJJRI7IKNkW7+VFqmWLCJ13qYa3mqHpRMn19JMwOkdIwotVJMVlF6bHXUkpPywIGCXlVEBVRWskjKrcGWIKDLHYXXxRLDD6LWGa9e5OgNewmEQ2TOH6XFBTUxCuwyPo8ebJrmgovtFj7+lAo3gFCqDw4btuajHat9pkToc54vkAIiofdHJG+aQaRzbGaYcr0+WutV6jc8wOeiW1yBWrCGmrrN5fXXiC99K4YRZyBIRNFSaHZIhn1blew2Ac+GctfRQg8NB4e5AovucHJs+iSoCMINGdBbFJE5JTHRilHqoa7yTjn0HJLz+44virDHhOzTn4y18ECxr6iwgt8eJZG+.yIaBjcuCQgiNAxlvD4voiFiBrY5DeztKJxNb23pcMxVBLDYXDxQbyNmahydcz4kel3MQV1207uSgcOHp7tnTt.JioRgKy8JebTHrspx8pgK41B3PFbvEGFnhNHKkQ9dzGXWr2+s6qgLsa1PfEMuquBFgqHMN3gp0I6PEMZeufDLIEYHxPThTVGaqd6.gk.2gRS1Ge+keYIqql4yMbPwDTfRnMYuhrbGfkKXQzl1cmU66rlGRDjgRjGmRsrLKeB1djjsIwdZTLIEl2kPWvKpFKrk0544iSNxgCJiBWmH.MZ557NU56RNKVLZMXRri7szScnn6dI9hpQTKZ1nOOWPZr6bRJfC9DrwmKOgJSw0nIRWI3R+b2.uvux6k3arOiImMGBJuX9jGx1zjcn2xVqY6XXwfPmSDFd0EKQDr8JpXTxxnji73UVYrS7fFY7Hj3zVKwFnGhzSxV54PX53KwahldNaEAo8SOMU.CpWiHfnO.o3LwiXKDUqAEdTOIIg0VjooDooX4Begnj+BJ3QqLczDBT3RyT6dEnaX2wpUJy0uwFcpQgpnGZ+.mqrXb6afG.sS2BjshtHFwvFsvz.lOdRvbdLGkoIGNXIjy4wf.zJHxF6l9u9q.uIyV0AJHP+gIHOIA5xHpVghNN0AH9l6Es+b8hRP9CNF.rt+qWLm109GgW1BMjvdMfcxXzwYsg42crlKUeWw4vldkWNJO+FRBlFEIOs0Q702CdYJ1.mQ8gEBJh+DOKiTpoH6JSMXEZjk7gXVySmUcPx..f2LuPjHXXxZBUo.TJPFjFQ0x3ZGejQjHGnKN6u9MzLM2ZZ7y9Ur.Ii+K1KSuqiP2O+Siq39u0V5Rqbm6.dD1Qas+gak+fu+eWKc88y6Ly6wlDZ.W7GbO35zTjsGZVCwKuWRq1yX39g+YndlIn9ITmFu642hHQD7ejCClTBbBxyPLsYMeoXjO9CRGa6zI+SMXU1gJPRwe6fLxm7gH9Y1eUO.EvsgU2R43ge1hyp8IPRgQljG6M9w3LdOWMIOiAPFKR8uH0BMXkHB8+Rddfc8E8KwhI9U6ii7k+YDo2NZYcYm5IOHElizppAZljCuQNLG1Q7TbKMbSv0T5pprVeqK+Ret523yLyzaQFJwyxjDoBcuCJY5JjlRzXsMWM9HDA91pH9LN4wGUyUoSlmmRM93iafcvh5mjC065IhH4Jen+QV6e3V4Qu1OBC9s+UlmgJOr.eyIEst20UZWieEZNUXCcmziyw9T2F+7+6M7HaMAptzSMgwTvBMRvhvcgZG74HlT9s5Fk87ZcsDazZESRIllRDjVDMYTmV.62CRHBcfBBMHTtdKXD0B2lzalqasn1NPMJDHHKNpTj+Qf4d33rfFMcG3s5V1TliPZbvuoVxrBD3XFM2rmayiVXjSUtic1I5PqbcaWP.LNExNAE9EPCR1BD3heKatk.AGloZ5USoffrBYRJZlnX40yW0qjxpYlflnPEjtuDLEWQ7JWP7jTYgos5ye4xteABljB69dY2CAMHYGluSIZgsqgfUrQdRQgFlnCe4LFEHONF6la+n5B9d.4oLYhhOA1mVBe7LAKIzIRgofjBE9wC9rIEE3XLM1DsbME21j0npJdqEEK5xHgr5raocunJETJHpdOLDjTbMnX7fE1sEhlxs7A9j0kiQ5F1aaAhs8LAsn8H1tVcvgfWt4wEGSxAVBW76LFVcGCgNLDgA0P0vVPn8FVZv1VvVd0uX5+h2RfiO77JOJVYT4K7ZW4ar7HJW2viiMcRLrQXRyf12F2t.XZJ4OBo+Uge1BR1AdmRQ+jroHZAPI734XxF1mzAQnwgIHOg9ydwfvQMkLoCjK9jAGbvGIAOWtnPgGa9h2Jux63ugncmbguvZMBKK59zWG.TX7zLwtORUwadV4OdMvxL033jCIfko1guFRTtrYtXncIBFmBGZPl9wB+rEjrCrsNA1z7qDyiPZSTlZLgvSRAlhRsbBDTYtW6hhzTBEJJfKdUYpl1DdDHBxf8kWMDIYLRtt0T1EpyKzPoTYI09Ghm3195j5.C1TIWPHBe23ihblzgpChPmDitHFsp.dMPJx+vOLGdjvOadIagoQjD6lpmljfBVSXs+b9uGBTn33TfR31zDc3XGEZxEHLlzTrrhTgsmp6vUcmOKrYrccP9JW1+CrhEorRWMB7J3PorYaIht1miP4e4wkb3PVbXsjfXX2TYsaXkgJCktmJ+74krCpEJVzcSjhvRDLMkXTx1.DcfnzQHaSGm4vQwNnHKkHGtTBuJrAGZV05JlNSSc7gsjEKQWKBSqh73PAboeRR2DuoFrMJYe1syvOQke9BJFOnTRsvKwDXlvedXlZAEcKHvaXiQNiCaZLhITBiI6KHKtkU4ZwV6TZsTFZoCgEwfwHGt3SeMPA8MLjlGjz+vGkiMYke27R19nYyzUSMqwgXJ7PMuJWIHHUYRYretQH5v8EirThonnI+2zUbtmnjVBMGBEuG7LCCv7q.oEBNHoyNDY9x09cyIYGNecipQrERFgrjEmEjnmjBjgRMjX6PRNEEHqQS5vR79IN4cxhGASOVjHHmy8gzvoEGlbe+uE69wq86mSx1CMcQrFppAGpPvwH87NOsf.MtSu.ZbGRg9nYZyVaTvxtoVEs9cKDVfcSRj5tMUFD53bkNJY+b067mSxNb4j1HNRwif8QiERS5wMiniLOcHBW1qYMYcRnISm3TK+W5PngkiQN1LcW2i3Xj9WtK14CWuyeNIaIBVGcrfJlIBtAlhx9rI6POJMN4IOdyIQGp3UvlTVAbQYV.s+dRtRD5rpooDqoBqjrPvwIGGio+L6FpWEMXtIaWTKXAkMT78TTXNH5f4aGm7TBu5NWdncxEvkTTnbRI76xhqaDjCG5th.SoANHS9id.F46LWmScIaeTrNRvBEw3v3SWOEkpLzjdnpqxXgQSaJi3cn4sM92EgDAELqtz3XiERNDSUXeL0GbXFN+bcdyhrCyyL6Ev+rAqxxL00LqfDUviQmCanCutoL65cU6JyeOZTT.ORPDSLHRcOeCd5e97c7yhrU.IIBII5bNpNz7oII+rz9Nbz5njCndDMT.GSTsBxq61MQ2JWsSzxrbAPVbX.RxdH0D6gI9WVnyYVjcPP4wrv5lKa4B1pBqcd5vvSNJ4K+2U9cA0CjBjlhPUNDo0Ps1ZGDiYJGlvJkJUSUHnp1U30wt7eMS8bX0bm.IPJJxAXhOwOjmYuKzwWWw3KjsxGkoMh5qLSPEkEcG92U9cEwkwIGkBhwDMy3uJCTXkDYPUQvu7FRtG9lTWLLM+XNslXlzHRXLwLXG4al0CpEwwhnl7ialNVqN5.D91a2L9C9XL3GoQNmYQ1dn4Tn9K0DQYsuKV0n5PkwNN4oRZNTAuTTjTjmFczrnl+OG7vAeSouv0TYSBSMnZWQoUqt37c2pbzuG9UTkin7zKg+zoIScrQRbiLfYF+u7CKDLBYScHl58uKFMWibNUQ1giNmK2PpHX+ozpF5HfnyYbDinpq0XjiB3YNm4KCOmQTuKJbvmooDdljNv03ZmZyKr1kaSq20QQXEIARgGSRQrQRTrJWRphgrbo5Z4ZLuYimSODY+m+ZrqcznmWUjsBEqkjDkYWw+Cz9NKEqvwHgZtO1rHZXJJPJJfddhFUkhEyiO4oDkLIavLdsaFJdkTe8v6uBMEviB.SiC1HHIQnKhRGDshw6KUsi.2HeLx7s9ILwmoYN2pHaWTzkIQ4ps7IV.OFmbU4ALeimw7MhmCePGi7LMEKKFr1Fa3H3B3RA7JWxoBq44UmFSq9LIqxVjOAkLqrlc7udHNcWNexVJt2BNLSsuiPo2+g4vM0h.qJxNbi2tdyVOLYLiAm4QcLxiSEt0rDdLF4o.tyZzbXM9vAkIVzdFmhpK2k3DUasCI1h3SQxRZhPeDmNayizsPvnjezQH2636xSefl87qhrCp57UmUJRDjhBLIEHtw8oBBRy2.Q5Aknxr3vXjCkg7gpSX9LThr3xz3TVe5kBarWIQ3ScQ7XHxPODm9HQcmVrYgEBlhRNCR1a8d3oezV4ZTEY6T1rHLM6.Q6CQ1xM3v7.OKkHJ1lfWD3fkJmYUZzPOGtLEEwwjtAyHh9jGRtVD97klhjCWVOcPWDoEpaBAHHFDk3fj9e9N3Iu6VscUlr0.qwrj3C6EJPXrM1yT7zDLN4IiY9IEZFkrT.mplm0EEonHYM4kcshoqbDek+25AcM+tRs.Vs2cILPPCQF1.cQOsvNfT39S1gYp+suD63CuXZOkIaW7oK5fPqiCGUebxV1l5oonQQj.E3FhoMIxevqcOS56lxjD70NObkN6HvgGpY43iJ6.Le9kuRGhDl8nqF21ECe5GgrHnS5tIH7v.dbHR++8KvN96YQt8LYG1f7Ylhcd3HniSlxY8YI7Hkop.6fOiPVbMwvNH8cKQZSp7FpWtGAE1ovZAZkD3LROZdnpnKQkWGqxjtU4TWZ0BBS5f3Fazajr+Ifnm5S74Y6ueXdKu5MDrgffezIQIgY4tH.JhGGmbDAoIceygEAwc93jyLxUX7NVAypt.iITy3xx4BsKhnVyf7MZ7GVRJWppXgMKBc9zjTj0u.YIZ3Ji4vj9197r8+QZCDMXH6PSpBC9gDAiPVBpPdvvjEIAQYYBxi1zvCTTKP0qfZeckystxBeiyO7Ld7Z0PxPX77E8Sh4zJDKDLFEJMHo+P2N67CRazGMFxNXzc37eYvkon.VHYLSfMBR82B3ilTTjwMYURk9lNDq7uVmAtlNhwvZUwluZXUcp1LDMTGjgI2XCR522cxt95s66sMDPvCT9lKXTxf.ISSIJZlOdJic0CSViZYqFh8SigPGd.yeD8VdZKyT22BQn1EGgoe5ixTu66sNoAb6.Wc9lA..v.CmDQAQE1AtB0kDlpbRVbHigjSQQxgCoHOSQIFjLlPTN6.RT8CT0+0pktEEMcQishS3y.KDjGOFho+d6kodu+HdlCtTceKOxFBHvQIaY6jKfKiSdFgrLNELi609ZHkFxnQ4BxhfNi.gRftKEhjfNp.hB5XfHoMxDg9Ce4ZiRetPX7zWoUbKv6gvHjOywI2GZmLzmX6yS9i0NfsOZ5mjDAI4vkooDSQIxPINN43vjlIovn.eeM7jBTOmB49U3Nz8xtyVumi2IasyLn51lXcIgAbQe1f57DvKQCWrDQhv8vhUBx2w3afUBiyDFqDJgOGio+oiPw+16gc9DK7Y1Ft2ON2nd.RvlnKNLo44XRNN44.Lg+fj6AmlheUItOvWi8MLKRMCuNN+Nih0ZDHtbEhqQ.+WjHN2fPGt7JvON1DqM3y5lAgYDSTrxlEmO9SyA+W+kLQqrzQas6+14lzCPGzGwYmLB6kIXOb7GYHl9C8U427.zt2Tsq.+obIaRf6KBrd6RzuDKj8ubMZ2hf3PubM11rRWbcv+a6h2G4tawfYrXfXWbKtagdsmf77cXetOCS9guWdzaaXXIc9iZwahy6bsHxaUf75DHddRBqJQKcnKSHHWpPn4T9nnD9+xh3+Q+prquwR3sb9aO6jaYjym9W+8xuM6OjCbK2A63NWoZL.7V3h5E3kCh2MvUFAqDAtZs8S6IwdIwe5g9qvEMkvamN38omlwuq+ykXEvVv10g3uZrLTZseZ19e4mhG6SrR1XpEuYtvWrEVuIE5q2B4FCGkztP6lrCCPSI7K5g5gcw+yoI+O5tY+S21tIKBHRweu99XOes2Ceq2FKgyOuXv0x4s1jD6OCzuRA7xjHsfEeAjqyx6fksNBIXiO4G2E+GPg5KdWrqeJMZwEeYBhcxMc3ODOxapUy9gkSbCrsHYovEnv9MJgWJvEFAqt0UD5zFEspBZUFZ0fLgUOTI72gB08kGmG5axdNbSdIW1f8XT39uGd5kE67Vr3yx1cA1o4e7V4EbYkv+hrP7GqPe0RDcKPDKzFdc4elMhPvVYyB0AIz4GgSg3hpnGpI.8uvC+ueN79keS1yy1VePWhf8nj4axpTw2KDt6.mQ7D.290w42aDrtPMhKSi3r0n2DH1BvYXgnSXFhML2ugYVHCgnxrnQA3iWVAh86ided3uCeTObFb9s+GrurzFiH0xABTbbU1bKsK7lYa8Ck5WfXc.aUiXsRDaLJxSW.8og0Hfd.5BDcnQ6oPuGM5GSC6Dz6wC03SiXzuKOcpU5mmEK9+mg+Gdbbf6pa.....jTQNQjqBAlf" ], + "embed" : 1, + "id" : "obj-41", + "maxclass" : "fpic", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 17.5, 17.5, 122.0, 123.0 ], + "pic" : "mage.png" + } + + } +, { + "box" : { + "handoff" : "", + "id" : "obj-33", + "maxclass" : "ubutton", + "numinlets" : 1, + "numoutlets" : 4, + "outlettype" : [ "bang", "bang", "", "int" ], + "patching_rect" : [ 164.0, 50.0, 81.0, 21.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-51", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 785.200012, 297.0, 21.853052, 22.0 ], + "rounded" : 60.0, + "text" : "7", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-36", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 499.0, 425.5, 21.853052, 22.0 ], + "rounded" : 60.0, + "text" : "6", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-23", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 607.0, 217.0, 21.853052, 22.0 ], + "rounded" : 60.0, + "text" : "5", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-22", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 607.0, 152.5, 21.853052, 22.0 ], + "rounded" : 60.0, + "text" : "4", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-21", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 607.0, 88.5, 21.853052, 22.0 ], + "rounded" : 60.0, + "text" : "3", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-13", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 41.51059, 424.636353, 22.706104, 22.858788 ], + "presentation_rect" : [ 120.0, 120.0, 27.123047, 30.34375 ], + "rounded" : 60.0, + "text" : "0", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-110", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 358.787231, 371.454529, 21.853052, 22.0 ], + "presentation_rect" : [ 90.0, 90.0, 27.123047, 30.34375 ], + "rounded" : 60.0, + "text" : "2", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-94", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 253.718628, 116.897827, 21.790001, 21.0 ], + "presentation_rect" : [ 60.0, 60.0, 27.123047, 30.34375 ], + "rounded" : 60.0, + "text" : "1", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } + ], + "lines" : [ { + "patchline" : { + "destination" : [ "obj-25", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-1", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-5", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-10", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-7", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-11", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-5", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 355.713745, 424.0, 192.0, 424.0 ], + "source" : [ "obj-118", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-16", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-15", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-204", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-159", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-204", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-159", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-5", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-16", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-20", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-18", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-198", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-19", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-205", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-198", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-91", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-198", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-9", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-2", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-5", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-20", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-204", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-198", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 288.0, 277.397827, 267.75, 277.397827, 267.75, 238.397827, 288.0, 238.397827 ], + "source" : [ "obj-205", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-28", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-24", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-25", 2 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-5", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-26", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-26", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-27", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-25", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-28", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-27", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-29", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-27", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-30", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-27", 2 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-31", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-27", 3 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-32", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-49", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-33", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-27", 4 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-34", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-27", 5 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 618.0, 638.0, 594.0, 638.0, 594.0, 548.0, 603.0, 548.0, 603.0, 524.0, 723.0, 524.0, 723.0, 486.0, 706.5, 486.0 ], + "source" : [ "obj-39", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-27", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 514.5, 638.0, 501.0, 638.0, 501.0, 557.0, 486.0, 557.0, 486.0, 545.0, 429.0, 545.0, 429.0, 490.0, 447.5, 490.0 ], + "source" : [ "obj-40", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-45", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-42", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-40", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-43", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-52", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-45", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-40", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-46", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-45", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-48", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-55", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 823.5, 375.0, 867.0, 375.0 ], + "source" : [ "obj-52", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-52", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-54", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-29", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-55", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-30", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-55", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-31", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-55", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-32", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-55", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-34", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-55", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-5", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-7", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-198", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-8", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-1", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-9", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-5", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 328.0, 423.0, 192.0, 423.0 ], + "source" : [ "obj-91", 0 ] + } + + } + ] + } +, + "patching_rect" : [ 345.0, 86.0, 100.0, 20.0 ], + "saved_object_attributes" : { + "default_fontface" : 0, + "default_fontname" : "Arial", + "default_fontsize" : 12.0, + "description" : "", + "digest" : "", + "fontface" : 0, + "fontname" : "Arial", + "fontsize" : 12.0, + "globalpatchername" : "", + "tags" : "" + } +, + "text" : "p \"base controls\"" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-124", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 0, + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 0.0, 26.0, 967.0, 693.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 12.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "showontab" : 1, + "boxes" : [ { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-43", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 163.5, 76.5, 92.0, 20.0 ], + "text" : "mage_glossary" + } + + } +, { + "box" : { + "id" : "obj-37", + "maxclass" : "ezdac~", + "numinlets" : 2, + "numoutlets" : 0, + "patching_rect" : [ 114.86364, 509.318176, 45.0, 45.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-34", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "signal" ], + "patching_rect" : [ 272.0, 470.687683, 54.0, 20.0 ], + "text" : "sig~ -99" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-1", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "signal" ], + "patching_rect" : [ 272.0, 491.318176, 48.0, 20.0 ], + "text" : "dbtoa~" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-2", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 272.0, 450.551331, 45.0, 20.0 ], + "text" : "r siglvl" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-3", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 206.5, 657.7771, 40.0, 20.0 ], + "text" : "s ctlvl" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-13", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 182.5, 466.824036, 55.0, 20.0 ], + "text" : "r outctlvl" + } + + } +, { + "box" : { + "id" : "obj-14", + "maxclass" : "live.gain~", + "numinlets" : 2, + "numoutlets" : 5, + "outlettype" : [ "signal", "signal", "", "float", "list" ], + "parameter_enable" : 1, + "patching_rect" : [ 182.5, 509.318176, 67.0, 131.0 ], + "saved_attribute_attributes" : { + "valueof" : { + "parameter_longname" : "live.gain~[2]", + "parameter_shortname" : "output level", + "parameter_type" : 0, + "parameter_mmin" : -70.0, + "parameter_mmax" : 6.0, + "parameter_initial" : [ 0.0 ], + "parameter_unitstyle" : 4 + } + + } +, + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "varname" : "live.gain~[1]" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-15", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 182.5, 487.454529, 43.0, 18.0 ], + "text" : "set $1" + } + + } +, { + "box" : { + "color" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-4", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 182.5, 439.5, 73.0, 20.0 ], + "text" : "s magehelp" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-31", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 25.0, 69.0, 640.0, 480.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 12.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "boxes" : [ { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-8", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 343.374512, 240.280975, 150.0, 20.0 ], + "text" : "The default engine is slt." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-7", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ -12.787231, 260.280975, 43.0, 18.0 ], + "text" : "set $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-3", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ -41.787231, 240.280975, 72.0, 20.0 ], + "text" : "loadmess 1" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-2", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 84.0, 402.0, 287.0, 49.0 ], + "text" : "If you have loaded n voices, you should interpolate all n voices at a time - if you don't, expect strange result." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-21", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 438.0, 307.936249, 143.0, 21.0 ], + "text" : "Sum of all the weigths" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-18", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 251.0, 191.5, 34.0, 21.0 ], + "text" : "bdl" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-19", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 251.469955, 117.5, 34.0, 21.0 ], + "text" : "rms" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-20", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 251.469955, 43.14563, 34.0, 21.0 ], + "text" : "jmk" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-17", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 3.0, 191.5, 34.0, 21.0 ], + "text" : "clb" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-16", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 3.0, 117.5, 34.0, 21.0 ], + "text" : "slt" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-12", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 3.212769, 43.14563, 34.0, 21.0 ], + "text" : "awb" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-9", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 431.0, 365.780975, 150.0, 49.0 ], + "text" : "Multiply the sum of the weights here, to obtain saturation (careful !)" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-6", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 431.0, 412.780975, 50.0, 20.0 ] + } + + } +, { + "box" : { + "color" : [ 0.820369, 0.84, 0.212246, 1.0 ], + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-4", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 431.0, 442.061951, 82.0, 20.0 ], + "text" : "s interpmultip" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-23", + "linecount" : 6, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 371.568115, 104.968567, 212.0, 91.0 ], + "text" : "Once you have loaded all six engines from mage source's data/configFiles/smu-artic folder, the \"interpall\" abstraction here shows how to make sure the total of weights is always 1." + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-1", + "maxclass" : "outlet", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 30.212769, 426.0, 25.0, 25.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-15", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 422.568115, 328.936249, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 8.171595, + "frgb" : 0.0, + "id" : "obj-376", + "linecount" : 8, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 175.972168, 23.761227, 66.826286, 80.0 ], + "text" : " ________\n ( \\\n 0) )\n ∆ 3 /\n l H l \n o HH /\n HHHHH |\n | |\n" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.110359, + "frgb" : 0.0, + "id" : "obj-34", + "linecount" : 6, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 174.599472, 89.912399, 70.538864, 82.0 ], + "text" : " cccccc\n / 33333\n \t • Q333\n< 3333\n ≥ 333\n T |" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.710993, + "frgb" : 0.0, + "id" : "obj-378", + "linecount" : 5, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 174.599472, 164.537125, 76.870453, 67.0 ], + "text" : "((())))))))\n ⁄ )))))) \n/° p)))\n - )))\n Y | " + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.710993, + "frgb" : 0.0, + "id" : "obj-379", + "linecount" : 5, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 33.212769, 164.537125, 79.615822, 67.0 ], + "text" : " ( ( ( ( ) ) )\n ( ( ( s ô\n ( ( .\\\n ( ( \\ c\n | ---\\" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.110359, + "frgb" : 0.0, + "id" : "obj-380", + "linecount" : 6, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 37.798725, 28.72257, 76.107719, 82.0 ], + "text" : " '''''''''''''''' `ı\n \" C ", + "maxclass" : "umenu", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "int", "", "" ], + "parameter_enable" : 0, + "patching_rect" : [ 416.712769, 394.636353, 61.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-118", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 346.712769, 291.5, 47.0, 18.0 ], + "text" : "labelfill" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-111", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 398.712769, 256.0, 136.0, 35.0 ], + "text" : "fills label queue with everything at once" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-108", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 366.5, 146.5, 122.0, 35.0 ], + "text" : "drop a .lab (labels list) file here" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-107", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 196.0, 361.5, 73.0, 20.0 ], + "text" : "print engine" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-105", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 182.5, 210.681824, 100.0, 20.0 ], + "text" : "t l l" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-104", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 182.5, 271.0, 100.0, 20.0 ], + "text" : "pack l l" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-102", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 34.36364, 239.681824, 37.0, 18.0 ], + "text" : "clear" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-98", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 34.36364, 271.0, 103.000008, 20.0 ], + "text" : "prepend append" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.595187, + "id" : "obj-19", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 5, + "outlettype" : [ "", "", "", "", "" ], + "patching_rect" : [ 163.5, 239.681824, 95.0, 19.0 ], + "text" : "regexp .+/(.*)\\\\..*" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-96", + "items" : "", + "maxclass" : "umenu", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "int", "", "" ], + "parameter_enable" : 0, + "patching_rect" : [ 34.36364, 303.454529, 61.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-89", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 95.36364, 295.954529, 103.000008, 35.0 ], + "text" : "you can revoke it any time here" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-86", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 55.36364, 334.636353, 103.0, 18.0 ], + "text" : "engineremove $1" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-79", + "linecount" : 4, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 59.36364, 146.5, 119.0, 63.0 ], + "text" : "drop a .slt (engine configuration informations) file here" + } + + } +, { + "box" : { + "data" : [ 9240, "png", "IBkSG0fBZn....PCIgDQRA...rG...fdHX....vmaxh1....DLmPIQEBHf.B7g.YHB..f.PRDEDU3wY6cdGkjcUem+y89dUrSS2S2STwQgQn.BoAgD1qPFA3EzhAQPBSxlCAkVXcPXu1m0qw9v4fLdMgEyAVhBgjHHIPfwDDAIDf.EXzLZDLAoQStSSGpt5J+B269Gu6q5ppt5tqp5pCy.e6yzRcUuv889du+t+R2eWAmjfGh+73cQrd8Q0mMxM.hsIv5rz3sdMpA7P1uMh0.zsMhn9nc7QWDz4EHSCbDKj61B1u.0ylA2g8QO5KgaerU5ms1EDqzMfVE6jasCE4uXP+xjHddBzazGNUfSIF1wz.fFs43q8ugJe3EHL+sv7+W.OWfmwBwdllhClG2mb.54GOJxItF92Ksz+D19wILj8ugqKZQ58RDXcwBzWoF8KIBx0YgU7HXgBE9nwGcMTZqAABrQfERTno.tZAhLEvavnX+y.8uJCYejWJ209aCOdKKXUMY+PbU1qgKXqZTuVAbsBDmWRh1kBEdnPQsiUW5P3ndIBrQhFHOtCVD2mxG8WZbx9nuN95GcYowzhXUIY+T79NEebdC1X8p7QcUwIRbMfOJTKSjai.KjHQfBM4nzn.euonz2IME9tWO2qyJc6qVrphreJtospP7N.dGQvZC1HwwHXd0NrPRDjjGWuR3c.A5Oywn3c8F3tN9JcaKDqJH6mja77A4sXi70GEqM5gOpUwTrn7uCZiyzN0kEyagf73r2z374OLo9R+47slXko0NCVQI6Gma5BsgaUf3MFG6NCTvRsR1jlEBeA4anTABJhKdnIJRhSDhXFUKQRI7HGNTBerQRDrnDt6eLx8Y+A7Te5OE6N6J8yxxJ1A+EqAJ8dDH9qSPjM3XFIuZCFkvJOZEzrA5jDXil.h2xnzVnBbgcXCedjHn.dLJYwA+cNN49fCx99N2Ha2c494YYmr2A27+MM7OEG6WnZU1HYAB7vG.bQQRroChhMR5kDXivzZqTvc8tNy9SjHPilTTPKQ7iyh2e24vG+IWRdPlCrrQ1OEu6SwkH+CVv6JN11NlWpqzP.nL1m6fOcPD5hXzOIA.Kyqn1kjGKDDAKlhBSMN4usGlC8IuQ9Oy2Vt3K.VVH6eM2vebDr+3ww94UZUl10kvCEZ5jnrN5fjDor4TKkHvrMHEEd3QH6e0Kf+e6XI8FxRLYq4pr2Im+sZg7evFQmtqBDYKfxdZyFA8Pb5k3DEKil0KecDE.wvloozXSR1+hylO4Wco99sjfsy67zkD8iFE6WuB8pFEvBm9X.RxZIIVl4RWIacQvh73nGi7ereHC+AdubuKIZrujP1ON2zkDCwWNFQtvR3sTbKZZ3abuZ2Fw0QwZUSGPfxZ7OLY+wOKC81d470FsceOZ6j814VdY1vWLJVm1pAkvzFQ1cQTVKIMlMsZRqgYPnX8QI6NOJS9VuBt8c2tu9sMrCt4q0Bwm0FqAbWEPzdnHFVL.IoShAr7Nmbqh3XSJJ9LGhwe6WFegGucccaaj8ula5lif7+iMxN7VAUDKTALG7oeRx5HY4vTdhDhgMoo3vGfIuoWDet+i1w0rsP16fa9FrQ7IEHh3uB9RU.TBejH3TnK5hXmvQxUhXXwTTL0NYz2xqf63GrXudKZxdGbiuNIV2gEhtVIIZMAhs6fHrY5BKjmPHxdgPTrXJJcr8wHW2Uxc7nKlq0hhreRtwWgMxuhEV8uRJ5VYh1z.jjdH1IATb0HFVjhhGXeL1q+J41epV85zxj8ula3xiRj62FwFWIcVhOJhfEmJcSDrNoXzb8PbrYHl9Y9Mb7W10vcerV4ZX0JmziyMepQw59hh0YtRRzN3S2DiMS2DwjpPmrBOTzKIVqK9WxVYs2+Of82zI8XSS1OCuuXd3+ERf8UtRZGcdbY.RxFoSSDkN4G9nYcj7LSPrt+L7q+dM64Ka1Sn.t2ZLhbsqTDsFvEe1HcxFnqZxTjStgFMdnYKzyM+37dd6M642TireBtwqQh7SI.6UhWvZzXgfMQ2zGINg1rpVEZfXXKrQdUWAm4O4d4oGtQO2Flr2A23YXi7qDEq0sRXhUPTpjrY5ljD4jVEwZDnPyZHdBaDmeZJdO6hQanrdogH6O.e.44R9OVRhb0K2huC7HlBar3ToKhYBE4I5nx7Pu1eZDij7QSej3z1Hcouc1wC1n2yEDama90aC2CHZIs2aUH.bPQTjbZzyIrlVU4xJB.EPQbws7DQUmkpQQRLrw1zUPOGgH1BISRgB+bdtq9Ok6eAc3xBR1OIuuAD38Shi8EsbOp1EehfEmIqwD24SLP3nUeTFBUyDjmb3hkYIEkGGJVQV6nIP7bXju5fHlzQ1idHF8SGHIH12vLoIUbrYeLwO8cw25ZdTNVg4qcsfiTuI11eaBru9kShNTz8IJD8LibC9IEEXRJPJJvAIEiRNbvGW7wAEgw32xDC6v+ElRxPfODJhOdnn.dLLYHso6gBMIHBXReptH5YbNrlCcm7zyaBLNuj814le9VH9TZHwx4KaezDEKN8U4Ds.vFIt3SNbYDxxwHMooHonHtlPrFwLVWVwbzK70VT0b5gNMZJJxTTjzThnXQLrHdPVqewqine8GjiLmY4xbR12CWm0ZI4skjHu3kSujoL4F1oPOqZ8JVnSbJfKGfo33jiQHKgwGPhfnkyl71KBWeYdnXBxSVbwFAajNWiChh2EO0bpr1b1Z1N271rP+KjXEe4ToHEZNUi4UqlritxEAvTTfwo.SSQrLK0mUBIPB.OSd2rY5lR3MwCxQdg2Le6CUuiutdPSiVHP+WFiHKqDsCJ1fIcdWMQzVHnD9LDSydYLNLSQQbIA1lk8yJyTMZlYd+iRZ.V6oSWuu453qqX7WCGeaQP9gzPrkqGhh3wlnK5k3qJHZAAhicQwQHMGkoICNHHPT5RgH5ECrLq30R3tksxZu+GhCkp1iotirEvMDE6tWtdo6X70ceqRHZIBbPwfLM+FNNon.1HIFVq5H4JgFMCPGqeizyatde+rFY+TbSaUi3ixxjF39noahx5oyUbGlHMyIOJ43HjloMZ7FLR9DCXgfB3bNNn9x6kwqxt6YMx1A8aLNV8tbLBKbQ8sd5fUxXWMi8wE4YYBFgoAzDq0B2+JJ7Py5oqMeorw2PseWUj8CvaqCaju5kCQUg4t8YPOkqQIqDPhfrThmgI3.LINFu1IVEae+7Acv5VStU5+0tM1VjJ+tpH60QGWfDwKb4vaYdnXSzEwMq04kaDtDZODSw9XBJfCQMBrOQjjqDASMF6pesz8Vp7ykUePh2TTrrWpaLkvm0Pb5YEHUeC0xdJJxdYblf7DyLu7IKvGECPx38SxquxOu7S3uj2Ue1vqZoVIoPEx1DctrSzAddRyQHMGfT3ihnm.Nubi.IB5iNd0mODclOyfXXcIBjm8RYkPHbIwtA5bYWToDAooH6liyDjur+pOYEZftHxE7GvkdogeVYxVf8KHIQhrT5EbO7YSzU40B8xABcy4PjgmiTnMY7xI6PgldIQGWHq6BB+LIDjIJRzW8RY.ObPQ2DitWFmmNzCXGhoXXxPDjmTM277AEZRRD5jnWMlXfHA3Ogg6Si9EsTIBWglXHYSzIKW1SGXRkC6mIIMEOoct44CJTzMwupafsk.JKFWdEBDqYohF7PwFnSjKC1SGNK7XjiCPJ7vubQv420fOZFfj82KwuTvP1B3phgsc6VSbAAkXpf0Gczkbw2BSlabHlhgHS44q+cUnQSBrisVR9J.vN3WhyJXtr1qyTBS+20tLji2RDjCGNDSgK9+NybyyGzDjyZcS7yE.6GhaoSE5MtTLesGJNc5YI2qTRjLN43njtbHH+8H.RDzKw1.fkcW30mOxSq0S7+5edt3SuDmNHZEQypwpGfMy8QhfwHCGkzUk5sAcuZrbvdgtGMFlu6SXhB2pSor3lJxF6y3UvyOtsGt8lf3aP0BirEQrvpujfn1FiFo.VuaWDDkMe.KDqqSPJmo86oPOQdP4Qf5C06gRiHVDnuDyhKD.SPdFEIIouZ9RA5Rd3MYVC4O2i103i.IxDwPDs0zZWkyAsW8lFTiUWIP1YLP2Zcl7lHGZWOZEROHKcEmxUyoF0NNQNqHXIaVar03ShK7T4z+FuGjIiDPhhJ+dHhO38vGD2a6mQj+lqDqW9YUkabPoQORFb+nOBd20N.+Z68qQrgtH929sg3zWCHEk6XEdTqGeV+bnFl1WQle9yxQ9quWJczwqKgqEZ560borg+pWAwNm0gvpIlBPCnTnc84f23cQpG3oPhcEesGccEmKa4NeWX0cbDBQSwWZsFTZxs8Cyy8V973mNOMKgqA5l31QYzj1RjWZqp7jHpE1arGjwswepBncC5YKQfTHf0DC6q+hv5ke1H5KATvEc1vBruFrDHe9afXewWOD0BuO2iQ04SgBwYsVjW7FgXVnmpHXtGNnV.gzZr5LF88F2FBKI6+M+YPWxupyPiOIO+Sgy5te2H6HF9SWDsupwdepAgkDqtiCJMxDQoVQOZTDeqaf3m8.fVi2j4QnloTVW4QFdlhxeBXEMBhdhSmuvyfnanGxmNKhlzeAg4XdQXs1tvoFcgOm5CcvubO1T7bW4GEuT4wSp3z08PLgMxKayD61eCH1TWndjiPo2+2G8dG2TW10PLI12vkSzOvKkn+ueo3801Ejod61BZzGNMEu5u.pIxwvxbk8u8b1z78I4kb5bt2+sP2uryinqaMT7niOqWxcd4aAYGwX5exd4f2xchtfWclVp9O6VcDky99tIRb9arrHZQs+174S9M2AG3luSJ55fqHbONQahBmbVEDWsRQhyZ8bY+n+mfVSk5TEd0aTSksQfCxtsUnVeKV.FBtkBApLEv4PigaP0AfX3hFG7+g6C+evyf86ba3dW6D+G8YQXpGYAPi6+xCSj+rW.hynWjm2.ndhiPUsGo.rjPlR3efw4nLc4bBa9pchZTjeWGCmASQhKXSPTKpmBX1CzE.jamGg7OyQPVU6agfF2gSShKXSkSneWTTBeSZ95PLBJPBSbvg3nicLzlJqnxj9FUtZRpdqoRQrC5iyT4HRWIXBJvjjlnDktIJBDjvjlEKjj4fk4qHosBV2h1rHg.soJ6tV5H7CAjPnX6BNl4LqbTi.b8Pmp.hszGhthW6EF8HYfzkv6no3Pl7Bytg5bJBl+UHZHkrEVRBKU7MvU1Pl9nMG9jTfiQFrHBEMcCE3QulatvRh1blVMfvXMBrsrBlmmftARS8baRJhGpxoxb2l0DRP2k5e0hhLtMn6cgeUrPO7AlZETSPqo.yEJRbNEMNiRWyVaUI7rSP9W0WhCO1vFhtQTfxrtGc8aYMfqoEZtpAHiovUmGGNC7nGBz50GEBStqoA7Whx3mfUbhEdls7pLjgNHBqg3DqN0jUyB3OlsEhdVrAmvCMwwdIIUf0.G4IdZljhDg5kDMgqBRU4+YQThzWWj7hNEr5sCzpVTATCMGtmfj1PxgEj9vM4sviMLGTaauAVfKTX6KBBJZ1ZJ5fnziIom0UcrD0VhrqESiSatoqkDl4OZePhfCQZljRDAazn.CgFrULDAYrHH6LNw255IwEtIR771DwOq9I5YzOwNy9wpyXnJ13aGGgEVdezjkRTDOJEHvlHXUVQp4SnYcgPP39IXi.MJzJEBYiYpUXGsooD4vgMPmkWqbZf3XGw1B4hNmyhhkIN0sOHQvfLMSPNhh.MdDoudH1Y1OQO09H9V5mDWzlI4EsYhctqGqNiWsc9t93OUdnyFSgqPpaJJRI7IKNkW7+VFqmWLCJ13qYa3mqHpRMn19JMwOkdIwotVJMVlF6bHXUkpPywIGCXlVEBVRWskjKrcGWIKDLHYXXxRLDD6LWGa9e5OgNewmEQ2TOH6XFBTUxCuwyPo8ebJrmgovtFj7+lAo3gFCqDw4btuajHat9pkToc54vkAIiofdHJG+aQaRzbGaYcr0+WutV6jc8wOeiW1yBWrCGmrrN5fXXiC99K4YRZyBIRNFSaHZIhn1blew2Ac+GctfRQg8NB4e5AovucHJs+iSoCMINGdBbFJE5JTHRilHqoa7yTjn0HJLz+44virDHhOzTn4y18ECxr6iwgt8eJZG+.yIaBjcuCQgiNAxlvD4voiFiBrY5DeztKJxNb23pcMxVBLDYXDxQbyNmahydcz4kel3MQV1207uSgcOHp7tnTt.JioRgKy8JebTHrspx8pgK41B3PFbvEGFnhNHKkQ9dzGXWr2+s6qgLsa1PfEMuquBFgqHMN3gp0I6PEMZeufDLIEYHxPThTVGaqd6.gk.2gRS1Ge+keYIqql4yMbPwDTfRnMYuhrbGfkKXQzl1cmU66rlGRDjgRjGmRsrLKeB1djjsIwdZTLIEl2kPWvKpFKrk0544iSNxgCJiBWmH.MZ557NU56RNKVLZMXRri7szScnn6dI9hpQTKZ1nOOWPZr6bRJfC9DrwmKOgJSw0nIRWI3R+b2.uvux6k3arOiImMGBJuX9jGx1zjcn2xVqY6XXwfPmSDFd0EKQDr8JpXTxxnji73UVYrS7fFY7Hj3zVKwFnGhzSxV54PX53KwahldNaEAo8SOMU.CpWiHfnO.o3LwiXKDUqAEdTOIIg0VjooDooX4Begnj+BJ3QqLczDBT3RyT6dEnaX2wpUJy0uwFcpQgpnGZ+.mqrXb6afG.sS2BjshtHFwvFsvz.lOdRvbdLGkoIGNXIjy4wf.zJHxF6l9u9q.uIyV0AJHP+gIHOIA5xHpVghNN0AH9l6Es+b8hRP9CNF.rt+qWLm109GgW1BMjvdMfcxXzwYsg42crlKUeWw4vldkWNJO+FRBlFEIOs0Q702CdYJ1.mQ8gEBJh+DOKiTpoH6JSMXEZjk7gXVySmUcPx..f2LuPjHXXxZBUo.TJPFjFQ0x3ZGejQjHGnKN6u9MzLM2ZZ7y9Ur.Ii+K1KSuqiP2O+Siq39u0V5Rqbm6.dD1Qas+gak+fu+eWKc88y6Ly6wlDZ.W7GbO35zTjsGZVCwKuWRq1yX39g+YndlIn9ITmFu642hHQD7ejCClTBbBxyPLsYMeoXjO9CRGa6zI+SMXU1gJPRwe6fLxm7gH9Y1eUO.EvsgU2R43ge1hyp8IPRgQljG6M9w3LdOWMIOiAPFKR8uH0BMXkHB8+Rddfc8E8KwhI9U6ii7k+YDo2NZYcYm5IOHElizppAZljCuQNLG1Q7TbKMbSv0T5pprVeqK+Ret523yLyzaQFJwyxjDoBcuCJY5JjlRzXsMWM9HDA91pH9LN4wGUyUoSlmmRM93iafcvh5mjC065IhH4Jen+QV6e3V4Qu1OBC9s+UlmgJOr.eyIEst20UZWieEZNUXCcmziyw9T2F+7+6M7HaMAptzSMgwTvBMRvhvcgZG74HlT9s5Fk87ZcsDazZESRIllRDjVDMYTmV.62CRHBcfBBMHTtdKXD0B2lzalqasn1NPMJDHHKNpTj+Qf4d33rfFMcG3s5V1TliPZbvuoVxrBD3XFM2rmayiVXjSUtic1I5PqbcaWP.LNExNAE9EPCR1BD3heKatk.AGloZ5USoffrBYRJZlnX40yW0qjxpYlflnPEjtuDLEWQ7JWP7jTYgos5ye4xteABljB69dY2CAMHYGluSIZgsqgfUrQdRQgFlnCe4LFEHONF6la+n5B9d.4oLYhhOA1mVBe7LAKIzIRgofjBE9wC9rIEE3XLM1DsbME21j0npJdqEEK5xHgr5raocunJETJHpdOLDjTbMnX7fE1sEhlxs7A9j0kiQ5F1aaAhs8LAsn8H1tVcvgfWt4wEGSxAVBW76LFVcGCgNLDgA0P0vVPn8FVZv1VvVd0uX5+h2RfiO77JOJVYT4K7ZW4ar7HJW2viiMcRLrQXRyf12F2t.XZJ4OBo+Uge1BR1AdmRQ+jroHZAPI734XxF1mzAQnwgIHOg9ydwfvQMkLoCjK9jAGbvGIAOWtnPgGa9h2Jux63ugncmbguvZMBKK59zWG.TX7zLwtORUwadV4OdMvxL033jCIfko1guFRTtrYtXncIBFmBGZPl9wB+rEjrCrsNA1z7qDyiPZSTlZLgvSRAlhRsbBDTYtW6hhzTBEJJfKdUYpl1DdDHBxf8kWMDIYLRtt0T1EpyKzPoTYI09Ghm3195j5.C1TIWPHBe23ihblzgpChPmDitHFsp.dMPJx+vOLGdjvOadIagoQjD6lpmljfBVSXs+b9uGBTn33TfR31zDc3XGEZxEHLlzTrrhTgsmp6vUcmOKrYrccP9JW1+CrhEorRWMB7J3PorYaIht1miP4e4wkb3PVbXsjfXX2TYsaXkgJCktmJ+74krCpEJVzcSjhvRDLMkXTx1.DcfnzQHaSGm4vQwNnHKkHGtTBuJrAGZV05JlNSSc7gsjEKQWKBSqh73PAboeRR2DuoFrMJYe1syvOQke9BJFOnTRsvKwDXlvedXlZAEcKHvaXiQNiCaZLhITBiI6KHKtkU4ZwV6TZsTFZoCgEwfwHGt3SeMPA8MLjlGjz+vGkiMYke27R19nYyzUSMqwgXJ7PMuJWIHHUYRYretQH5v8EirThonnI+2zUbtmnjVBMGBEuG7LCCv7q.oEBNHoyNDY9x09cyIYGNecipQrERFgrjEmEjnmjBjgRMjX6PRNEEHqQS5vR79IN4cxhGASOVjHHmy8gzvoEGlbe+uE69wq86mSx1CMcQrFppAGpPvwH87NOsf.MtSu.ZbGRg9nYZyVaTvxtoVEs9cKDVfcSRj5tMUFD53bkNJY+b067mSxNb4j1HNRwif8QiERS5wMiniLOcHBW1qYMYcRnISm3TK+W5PngkiQN1LcW2i3Xj9WtK14CWuyeNIaIBVGcrfJlIBtAlhx9rI6POJMN4IOdyIQGp3UvlTVAbQYV.s+dRtRD5rpooDqoBqjrPvwIGGio+L6FpWEMXtIaWTKXAkMT78TTXNH5f4aGm7TBu5NWdncxEvkTTnbRI76xhqaDjCG5th.SoANHS9id.F46LWmScIaeTrNRvBEw3v3SWOEkpLzjdnpqxXgQSaJi3cn4sM92EgDAELqtz3XiERNDSUXeL0GbXFN+bcdyhrCyyL6Ev+rAqxxL00LqfDUviQmCanCutoL65cU6JyeOZTT.ORPDSLHRcOeCd5e97c7yhrU.IIBII5bNpNz7oII+rz9Nbz5njCndDMT.GSTsBxq61MQ2JWsSzxrbAPVbX.RxdH0D6gI9WVnyYVjcPP4wrv5lKa4B1pBqcd5vvSNJ4K+2U9cA0CjBjlhPUNDo0Ps1ZGDiYJGlvJkJUSUHnp1U30wt7eMS8bX0bm.IPJJxAXhOwOjmYuKzwWWw3KjsxGkoMh5qLSPEkEcG92U9cEwkwIGkBhwDMy3uJCTXkDYPUQvu7FRtG9lTWLLM+XNslXlzHRXLwLXG4al0CpEwwhnl7ialNVqN5.D91a2L9C9XL3GoQNmYQ1dn4Tn9K0DQYsuKV0n5PkwNN4oRZNTAuTTjTjmFczrnl+OG7vAeSouv0TYSBSMnZWQoUqt37c2pbzuG9UTkin7zKg+zoIScrQRbiLfYF+u7CKDLBYScHl58uKFMWibNUQ1giNmK2PpHX+ozpF5HfnyYbDinpq0XjiB3YNm4KCOmQTuKJbvmooDdljNv03ZmZyKr1kaSq20QQXEIARgGSRQrQRTrJWRphgrbo5Z4ZLuYimSODY+m+ZrqcznmWUjsBEqkjDkYWw+Cz9NKEqvwHgZtO1rHZXJJPJJfddhFUkhEyiO4oDkLIavLdsaFJdkTe8v6uBMEviB.SiC1HHIQnKhRGDshw6KUsi.2HeLx7s9ILwmoYN2pHaWTzkIQ4ps7IV.OFmbU4ALeimw7MhmCePGi7LMEKKFr1Fa3H3B3RA7JWxoBq44UmFSq9LIqxVjOAkLqrlc7udHNcWNexVJt2BNLSsuiPo2+g4vM0h.qJxNbi2tdyVOLYLiAm4QcLxiSEt0rDdLF4o.tyZzbXM9vAkIVzdFmhpK2k3DUasCI1h3SQxRZhPeDmNayizsPvnjezQH2636xSefl87qhrCp57UmUJRDjhBLIEHtw8oBBRy2.Q5Aknxr3vXjCkg7gpSX9LThr3xz3TVe5kBarWIQ3ScQ7XHxPODm9HQcmVrYgEBlhRNCR1a8d3oezV4ZTEY6T1rHLM6.Q6CQ1xM3v7.OKkHJ1lfWD3fkJmYUZzPOGtLEEwwjtAyHh9jGRtVD97klhjCWVOcPWDoEpaBAHHFDk3fj9e9N3Iu6VscUlr0.qwrj3C6EJPXrM1yT7zDLN4IiY9IEZFkrT.mplm0EEonHYM4kcshoqbDek+25AcM+tRs.Vs2cILPPCQF1.cQOsvNfT39S1gYp+suD63CuXZOkIaW7oK5fPqiCGUebxV1l5oonQQj.E3FhoMIxevqcOS56lxjD70NObkN6HvgGpY43iJ6.Le9kuRGhDl8nqF21ECe5GgrHnS5tIH7v.dbHR++8KvN96YQt8LYG1f7Ylhcd3HniSlxY8YI7Hkop.6fOiPVbMwvNH8cKQZSp7FpWtGAE1ovZAZkD3LROZdnpnKQkWGqxjtU4TWZ0BBS5f3Fazajr+Ifnm5S74Y6ueXdKu5MDrgffezIQIgY4tH.JhGGmbDAoIceygEAwc93jyLxUX7NVAypt.iITy3xx4BsKhnVyf7MZ7GVRJWppXgMKBc9zjTj0u.YIZ3Ji4vj9197r8+QZCDMXH6PSpBC9gDAiPVBpPdvvjEIAQYYBxi1zvCTTKP0qfZeckystxBeiyO7Ld7Z0PxPX77E8Sh4zJDKDLFEJMHo+P2N67CRazGMFxNXzc37eYvkon.VHYLSfMBR82B3ilTTjwMYURk9lNDq7uVmAtlNhwvZUwluZXUcp1LDMTGjgI2XCR522cxt95s66sMDPvCT9lKXTxf.ISSIJZlOdJic0CSViZYqFh8SigPGd.yeD8VdZKyT22BQn1EGgoe5ixTu66sNoAb6.Wc9lA..v.CmDQAQE1AtB0kDlpbRVbHigjSQQxgCoHOSQIFjLlPTN6.RT8CT0+0pktEEMcQishS3y.KDjGOFho+d6kodu+HdlCtTceKOxFBHvQIaY6jKfKiSdFgrLNELi609ZHkFxnQ4BxhfNi.gRftKEhjfNp.hB5XfHoMxDg9Ce4ZiRetPX7zWoUbKv6gvHjOywI2GZmLzmX6yS9i0NfsOZ5mjDAI4vkooDSQIxPINN43vjlIovn.eeM7jBTOmB49U3Nz8xtyVumi2IasyLn51lXcIgAbQe1f57DvKQCWrDQhv8vhUBx2w3afUBiyDFqDJgOGio+oiPw+16gc9DK7Y1Ft2ON2nd.RvlnKNLo44XRNN44.Lg+fj6AmlheUItOvWi8MLKRMCuNN+Nih0ZDHtbEhqQ.+WjHN2fPGt7JvON1DqM3y5lAgYDSTrxlEmO9SyA+W+kLQqrzQas6+14lzCPGzGwYmLB6kIXOb7GYHl9C8U427.zt2Tsq.+obIaRf6KBrd6RzuDKj8ubMZ2hf3PubM11rRWbcv+a6h2G4tawfYrXfXWbKtagdsmf77cXetOCS9guWdzaaXXIc9iZwahy6bsHxaUf75DHddRBqJQKcnKSHHWpPn4T9nnD9+xh3+Q+prquwR3sb9aO6jaYjym9W+8xuM6OjCbK2A63NWoZL.7V3h5E3kCh2MvUFAqDAtZs8S6IwdIwe5g9qvEMkvamN38omlwuq+ykXEvVv10g3uZrLTZseZ19e4mhG6SrR1XpEuYtvWrEVuIE5q2B4FCGkztP6lrCCPSI7K5g5gcw+yoI+O5tY+S21tIKBHRweu99XOes2Ceq2FKgyOuXv0x4s1jD6OCzuRA7xjHsfEeAjqyx6fksNBIXiO4G2E+GPg5KdWrqeJMZwEeYBhcxMc3ODOxapUy9gkSbCrsHYovEnv9MJgWJvEFAqt0UD5zFEspBZUFZ0fLgUOTI72gB08kGmG5axdNbSdIW1f8XT39uGd5kE67Vr3yx1cA1o4e7V4EbYkv+hrP7GqPe0RDcKPDKzFdc4elMhPvVYyB0AIz4GgSg3hpnGpI.8uvC+ueN79keS1yy1VePWhf8nj4axpTw2KDt6.mQ7D.290w42aDrtPMhKSi3r0n2DH1BvYXgnSXFhML2ugYVHCgnxrnQA3iWVAh86ided3uCeTObFb9s+GrurzFiH0xABTbbU1bKsK7lYa8Ck5WfXc.aUiXsRDaLJxSW.8og0Hfd.5BDcnQ6oPuGM5GSC6Dz6wC03SiXzuKOcpU5mmEK9+mg+Gdbbf6pa.....jTQNQjqBAlf" ], + "embed" : 1, + "id" : "obj-41", + "maxclass" : "fpic", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 17.5, 17.5, 122.0, 123.0 ], + "pic" : "mage.png" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-8", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 182.5, 334.636353, 100.0, 18.0 ], + "text" : "engineadd $1 $2" + } + + } +, { + "box" : { + "border" : 1.0, + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "id" : "obj-47", + "maxclass" : "dropfile", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 182.5, 156.5, 42.712784, 43.0 ] + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-40", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 163.5, 49.5, 76.0, 21.0 ], + "prototypename" : "magefont", + "text" : "dictionary", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "underline" : 1 + } + + } +, { + "box" : { + "handoff" : "", + "id" : "obj-39", + "maxclass" : "ubutton", + "numinlets" : 1, + "numoutlets" : 4, + "outlettype" : [ "bang", "bang", "", "int" ], + "patching_rect" : [ 163.5, 49.5, 67.712784, 21.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-32", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 650.85498, 619.318176, 21.790001, 21.0 ], + "presentation_rect" : [ 90.0, 90.0, 27.123047, 30.34375 ], + "rounded" : 60.0, + "text" : "6", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-35", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 312.212769, 554.5, 21.790001, 21.0 ], + "presentation_rect" : [ 75.0, 75.0, 27.123047, 30.34375 ], + "rounded" : 60.0, + "text" : "5", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-18", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 388.712769, 373.636353, 21.790001, 21.0 ], + "presentation_rect" : [ 60.0, 60.0, 27.123047, 30.34375 ], + "rounded" : 60.0, + "text" : "4", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-5", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 41.51059, 424.636353, 22.706104, 22.858788 ], + "presentation_rect" : [ 75.0, 75.0, 27.123047, 30.34375 ], + "rounded" : 60.0, + "text" : "0", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-93", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 193.0, 167.5, 21.792936, 21.0 ], + "presentation_rect" : [ 30.0, 30.0, 27.123047, 30.34375 ], + "rounded" : 60.0, + "text" : "1", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-12", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 322.674194, 158.5, 21.790001, 21.0 ], + "presentation_rect" : [ 75.0, 75.0, 27.123047, 30.34375 ], + "rounded" : 60.0, + "text" : "2", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-110", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 359.286255, 262.5, 21.853052, 22.0 ], + "presentation_rect" : [ 60.0, 60.0, 27.123047, 30.34375 ], + "rounded" : 60.0, + "text" : "3", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } + ], + "lines" : [ { + "patchline" : { + "destination" : [ "obj-14", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-1", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 321.712769, 422.25, 192.0, 422.25 ], + "source" : [ "obj-10", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-96", 0 ], + "disabled" : 0, + "hidden" : 1, + "midpoints" : [ 43.86364, 258.0, 21.0, 258.0, 21.0, 300.0, 43.86364, 300.0 ], + "source" : [ "obj-102", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-8", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-104", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-104", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-105", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-19", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-105", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-11", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 356.212769, 423.0, 192.0, 423.0 ], + "source" : [ "obj-118", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-15", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-13", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-14", 2 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-14", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-15", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 355.212769, 627.0, 261.0, 627.0, 261.0, 423.0, 192.0, 423.0 ], + "source" : [ "obj-16", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 477.212769, 627.0, 261.0, 627.0, 261.0, 423.0, 192.0, 423.0 ], + "source" : [ "obj-17", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-104", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-19", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-7", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 192.0, 264.0, 306.0, 264.0, 306.0, 363.0, 426.212769, 363.0 ], + "source" : [ "obj-19", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-98", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-19", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-34", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-2", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-11", 2 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-20", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-11", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-20", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-16", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-21", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-26", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 355.212769, 593.5, 445.212769, 593.5, 445.212769, 562.0, 477.212769, 562.0 ], + "source" : [ "obj-21", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-20", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-25", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-28", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-25", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-17", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-26", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-30", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-26", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-29", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 691.5, 651.0, 261.0, 651.0, 261.0, 423.0, 192.0, 423.0 ], + "source" : [ "obj-31", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-10", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-33", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-1", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-34", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-43", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-39", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-105", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-47", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-33", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-6", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-11", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-7", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-107", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-8", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-8", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-86", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-86", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-96", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-96", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-98", 0 ] + } + + } + ] + } +, + "patching_rect" : [ 54.0, 86.0, 132.0, 20.0 ], + "saved_object_attributes" : { + "default_fontface" : 0, + "default_fontname" : "Arial", + "default_fontsize" : 12.0, + "description" : "", + "digest" : "", + "fontface" : 0, + "fontname" : "Arial", + "fontsize" : 12.0, + "globalpatchername" : "", + "tags" : "" + } +, + "text" : "p \"voices interpolation\"" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-123", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 0, + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 0.0, 26.0, 967.0, 693.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 12.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "showontab" : 1, + "boxes" : [ { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-53", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 663.356384, 451.5, 277.0, 21.0 ], + "text" : "note : the label queue is only 512 labels long." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-47", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 638.356384, 521.5, 318.0, 49.0 ], + "text" : "You can see above the size in samples of your currently loaded label file, which is sent by the third data outlet of mage~ when said files is loaded." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-27", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 164.0, 77.0, 92.0, 20.0 ], + "text" : "mage_glossary" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-38", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 164.0, 50.0, 76.0, 21.0 ], + "prototypename" : "magefont", + "text" : "index", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "underline" : 1 + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-31", + "linecount" : 10, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 128.5, 151.0, 137.0, 148.0 ], + "text" : "This abstraction allows one to fill the umenu with either a .lab file or a folder containing numerous .lab files, those send/receives are to share the umenu's files list through all tabs of this tutorial." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-8", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 332.5, 215.90274, 37.0, 18.0 ], + "text" : "clear" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-19", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 278.5, 215.90274, 54.0, 20.0 ], + "text" : "r menus" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-29", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 278.5, 193.40274, 56.0, 20.0 ], + "text" : "s menus" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 4.700932, + "id" : "obj-205", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 278.5, 266.90274, 75.75, 10.0 ], + "text" : "clearchecks, checkitem $1 1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-204", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 676.0, 102.0, 317.0, 504.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 12.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "boxes" : [ { + "box" : { + "fontname" : "Arial", + "fontsize" : 13.0, + "id" : "obj-1", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "int" ], + "patching_rect" : [ 168.0, 282.0, 140.0, 21.0 ], + "text" : "conformpath max boot" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 13.0, + "id" : "obj-12", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "int" ], + "patching_rect" : [ 23.0, 391.0, 140.0, 21.0 ], + "text" : "conformpath max boot" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-11", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "bang", "" ], + "patching_rect" : [ 23.0, 338.0, 32.5, 20.0 ], + "text" : "t b l" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-9", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 23.0, 365.0, 128.5, 20.0 ], + "text" : "zl reg" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-8", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 23.0, 418.747559, 123.0, 20.0 ], + "text" : "sprintf append %s%s" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-7", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 23.0, 205.0, 128.5, 20.0 ], + "text" : "t l l" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-197", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 168.0, 330.747528, 106.0, 20.0 ], + "text" : "prepend append" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 13.0, + "id" : "obj-196", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 5, + "outlettype" : [ "", "", "", "", "" ], + "patching_rect" : [ 23.0, 310.0, 104.0, 21.0 ], + "text" : "regexp (.+).lab" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-150", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "bang" ], + "patching_rect" : [ 168.0, 203.397827, 35.0, 20.0 ], + "text" : "b 1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-141", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 168.0, 240.247528, 86.0, 20.0 ], + "text" : "zl reg" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-151", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 23.0, 97.0, 61.0, 20.0 ], + "text" : "zl reg" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-152", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "bang", "" ], + "patching_rect" : [ 23.0, 72.0, 91.5, 20.0 ], + "text" : "t b l" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-153", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 23.0, 282.0, 81.0, 20.0 ], + "text" : "route append" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-156", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "int" ], + "patching_rect" : [ 23.0, 245.747528, 41.0, 20.0 ], + "text" : "folder" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-157", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 23.0, 165.247528, 91.5, 20.0 ], + "text" : "zl reg" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-158", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 23.0, 128.397827, 61.0, 20.0 ], + "text" : "route fold" + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-201", + "maxclass" : "inlet", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 23.0, 12.0, 25.0, 25.0 ] + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-202", + "maxclass" : "inlet", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 65.0, 12.0, 25.0, 25.0 ] + } + + } +, { + "box" : { + "comment" : "", + "id" : "obj-203", + "maxclass" : "outlet", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 168.0, 445.747559, 25.0, 25.0 ] + } + + } + ], + "lines" : [ { + "patchline" : { + "destination" : [ "obj-197", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-1", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-8", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-11", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-9", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-11", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-8", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-12", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-1", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-141", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-141", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-150", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-158", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-151", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-141", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-152", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-151", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-152", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-157", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-152", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-196", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-153", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-153", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-156", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-7", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-157", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-150", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-158", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-157", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-158", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-11", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-196", 2 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-203", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-197", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-152", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-201", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-151", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-202", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-156", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-7", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-9", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-7", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-203", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-8", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-12", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-9", 0 ] + } + + } + ] + } +, + "patching_rect" : [ 278.5, 167.5, 75.0, 20.0 ], + "saved_object_attributes" : { + "default_fontface" : 0, + "default_fontname" : "Arial", + "default_fontsize" : 12.0, + "description" : "", + "digest" : "", + "fontface" : 0, + "fontname" : "Arial", + "fontsize" : 12.0, + "globalpatchername" : "", + "tags" : "" + } +, + "text" : "p filldamenu" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd-Regular", + "fontsize" : 7.588239, + "frgb" : 0.0, + "id" : "obj-200", + "linecount" : 4, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 278.5, 105.897827, 64.0, 42.0 ], + "text" : "drop one label file or folder full of label files" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-198", + "items" : "", + "maxclass" : "umenu", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "int", "", "" ], + "parameter_enable" : 0, + "patching_rect" : [ 278.5, 243.5, 100.0, 20.0 ], + "pattrmode" : 1 + } + + } +, { + "box" : { + "id" : "obj-159", + "maxclass" : "dropfile", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 278.5, 105.897827, 61.0, 42.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-91", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 318.5, 282.0, 53.0, 18.0 ], + "text" : "label $1" + } + + } +, { + "box" : { + "id" : "obj-21", + "maxclass" : "ezdac~", + "numinlets" : 2, + "numoutlets" : 0, + "patching_rect" : [ 114.860001, 509.320007, 45.0, 45.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-34", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "signal" ], + "patching_rect" : [ 272.0, 467.369507, 54.0, 20.0 ], + "text" : "sig~ -99" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-1", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "signal" ], + "patching_rect" : [ 272.0, 488.0, 48.0, 20.0 ], + "text" : "dbtoa~" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-2", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 272.0, 447.233154, 45.0, 20.0 ], + "text" : "r siglvl" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-3", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 206.5, 654.458923, 40.0, 20.0 ], + "text" : "s ctlvl" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-17", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 182.5, 463.505859, 55.0, 20.0 ], + "text" : "r outctlvl" + } + + } +, { + "box" : { + "id" : "obj-18", + "maxclass" : "live.gain~", + "numinlets" : 2, + "numoutlets" : 5, + "outlettype" : [ "signal", "signal", "", "float", "list" ], + "parameter_enable" : 1, + "patching_rect" : [ 182.5, 509.320007, 67.0, 131.0 ], + "saved_attribute_attributes" : { + "valueof" : { + "parameter_longname" : "live.gain~[3]", + "parameter_shortname" : "output level", + "parameter_type" : 0, + "parameter_mmin" : -70.0, + "parameter_mmax" : 6.0, + "parameter_initial" : [ 0.0 ], + "parameter_unitstyle" : 4 + } + + } +, + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "varname" : "live.gain~[1]" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-20", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 182.5, 484.136353, 43.0, 18.0 ], + "text" : "set $1" + } + + } +, { + "box" : { + "color" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-15", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 182.5, 439.5, 73.0, 20.0 ], + "text" : "s magehelp" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-6", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 67.86364, 415.0, 78.0, 21.0 ], + "text" : "play it safe." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-10", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 67.86364, 439.5, 92.0, 20.0 ], + "text" : "loadmess reset" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd-Regular", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-52", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 476.5, 7.0, 457.0, 21.0 ], + "text" : "Three methods to directly jump at a given label given its position in the list :" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd-Regular", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-50", + "linecount" : 4, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 757.356384, 203.0, 160.0, 63.0 ], + "text" : "labelswitch N sends the Nth label of the list and makes labelnext point to label N + 1." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd-Regular", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-48", + "linecount" : 5, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 757.356384, 105.0, 155.0, 77.0 ], + "text" : "labelreplace N sends the Nth label of the list to Mage and makes labelnext jump to its next label," + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd-Regular", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-45", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 757.356384, 43.0, 164.0, 49.0 ], + "text" : "labelinsert N sends the Nth label of the list to Mage, " + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd-Regular", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-43", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 678.5, 280.0, 219.0, 35.0 ], + "text" : "If a command reaches the end of the list, it loops back to the start." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-42", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "int", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 659.0, 186.5, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-40", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "int", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 659.0, 43.0, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-39", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "int", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 659.0, 117.0, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-37", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 659.0, 69.0, 82.0, 18.0 ], + "text" : "labelinsert $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-36", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 659.0, 144.0, 92.0, 18.0 ], + "text" : "labelreplace $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-35", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 659.0, 212.5, 86.0, 18.0 ], + "text" : "labelswitch $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-32", + "ignoreclick" : 1, + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "float", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 783.217102, 501.0, 50.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-30", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 783.217102, 475.0, 65.0, 20.0 ], + "text" : "r labelsize" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-28", + "linecount" : 8, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 638.356384, 570.5, 328.0, 120.0 ], + "text" : "If you use labelfill or labelfilluntilend and your label file contains more than 512 labels or if you try filling the queue with more than 512 elements, it will freeze once it reaches the 512th label. Once the queue has read that 512th element which is frozen, the queue is empty ; therefore you can refill it with the rest of the labels list using labelnext, labelnextvowel or labelfilluntilend." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-16", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 767.717102, 346.0, 124.0, 35.0 ], + "text" : "empties the queue, all at once" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-14", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 714.717102, 389.0, 62.0, 18.0 ], + "text" : "labelclear" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-11", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 423.212769, 632.818176, 89.0, 18.0 ], + "text" : "labelfilluntilend" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-12", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 453.212769, 580.5, 168.0, 49.0 ], + "text" : "fills label queue from your current position in the label list to the very end" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-7", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 423.212769, 559.5, 89.0, 18.0 ], + "text" : "labelnextvowel" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-9", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 453.212769, 506.0, 138.0, 49.0 ], + "text" : "fills label queue until the next vowel or silence label" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-4", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 423.212769, 480.0, 59.0, 18.0 ], + "text" : "labelnext" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-5", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 453.212769, 441.5, 133.0, 35.0 ], + "text" : "fills label queue with only the next label" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-118", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 423.212769, 397.5, 47.0, 18.0 ], + "text" : "labelfill" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-111", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 452.212769, 359.5, 136.0, 35.0 ], + "text" : "fills label queue with everything at once" + } + + } +, { + "box" : { + "data" : [ 9240, "png", "IBkSG0fBZn....PCIgDQRA...rG...fdHX....vmaxh1....DLmPIQEBHf.B7g.YHB..f.PRDEDU3wY6cdGkjcUem+y89dUrSS2S2STwQgQn.BoAgD1qPFA3EzhAQPBSxlCAkVXcPXu1m0qw9v4fLdMgEyAVhBgjHHIPfwDDAIDf.EXzLZDLAoQStSSGpt5J+B269Gu6q5ppt5tqp5pCy.e6yzRcUuv889du+t+R2eWAmjfGh+73cQrd8Q0mMxM.hsIv5rz3sdMpA7P1uMh0.zsMhn9nc7QWDz4EHSCbDKj61B1u.0ylA2g8QO5KgaerU5ms1EDqzMfVE6jasCE4uXP+xjHddBzazGNUfSIF1wz.fFs43q8ugJe3EHL+sv7+W.OWfmwBwdllhClG2mb.54GOJxItF92Ksz+D19wILj8ugqKZQ58RDXcwBzWoF8KIBx0YgU7HXgBE9nwGcMTZqAABrQfERTno.tZAhLEvavnX+y.8uJCYejWJ209aCOdKKXUMY+PbU1qgKXqZTuVAbsBDmWRh1kBEdnPQsiUW5P3ndIBrQhFHOtCVD2mxG8WZbx9nuN95GcYowzhXUIY+T79NEebdC1X8p7QcUwIRbMfOJTKSjai.KjHQfBM4nzn.euonz2IME9tWO2qyJc6qVrphreJtospP7N.dGQvZC1HwwHXd0NrPRDjjGWuR3c.A5Oywn3c8F3tN9JcaKDqJH6mja77A4sXi70GEqM5gOpUwTrn7uCZiyzN0kEyagf73r2z374OLo9R+47slXko0NCVQI6Gma5BsgaUf3MFG6NCTvRsR1jlEBeA4anTABJhKdnIJRhSDhXFUKQRI7HGNTBerQRDrnDt6eLx8Y+A7Te5OE6N6J8yxxJ1A+EqAJ8dDH9qSPjM3XFIuZCFkvJOZEzrA5jDXil.h2xnzVnBbgcXCedjHn.dLJYwA+cNN49fCx99N2Ha2c494YYmr2A27+MM7OEG6WnZU1HYAB7vG.bQQRroChhMR5kDXivzZqTvc8tNy9SjHPilTTPKQ7iyh2e24vG+IWRdPlCrrQ1OEu6SwkH+CVv6JN11NlWpqzP.nL1m6fOcPD5hXzOIA.Kyqn1kjGKDDAKlhBSMN4usGlC8IuQ9Oy2Vt3K.VVH6eM2vebDr+3ww94UZUl10kvCEZ5jnrN5fjDor4TKkHvrMHEEd3QH6e0Kf+e6XI8FxRLYq4pr2Im+sZg7evFQmtqBDYKfxdZyFA8Pb5k3DEKil0KecDE.wvloozXSR1+hylO4Wco99sjfsy67zkD8iFE6WuB8pFEvBm9X.RxZIIVl4RWIacQvh73nGi7ereHC+AdubuKIZrujP1ON2zkDCwWNFQtvR3sTbKZZ3abuZ2Fw0QwZUSGPfxZ7OLY+wOKC81d470FsceOZ6j814VdY1vWLJVm1pAkvzFQ1cQTVKIMlMsZRqgYPnX8QI6NOJS9VuBt8c2tu9sMrCt4q0Bwm0FqAbWEPzdnHFVL.IoShAr7Nmbqh3XSJJ9LGhwe6WFegGucccaaj8ula5lif7+iMxN7VAUDKTALG7oeRx5HY4vTdhDhgMoo3vGfIuoWDet+i1w0rsP16fa9FrQ7IEHh3uB9RU.TBejH3TnK5hXmvQxUhXXwTTL0NYz2xqf63GrXudKZxdGbiuNIV2gEhtVIIZMAhs6fHrY5BKjmPHxdgPTrXJJcr8wHW2Uxc7nKlq0hhreRtwWgMxuhEV8uRJ5VYh1z.jjdH1IATb0HFVjhhGXeL1q+J41epV85zxj8ula3xiRj62FwFWIcVhOJhfEmJcSDrNoXzb8PbrYHl9Y9Mb7W10vcerV4ZX0JmziyMepQw59hh0YtRRzN3S2DiMS2DwjpPmrBOTzKIVqK9WxVYs2+Of82zI8XSS1OCuuXd3+ERf8UtRZGcdbY.RxFoSSDkN4G9nYcj7LSPrt+L7q+dM64Ka1Sn.t2ZLhbsqTDsFvEe1HcxFnqZxTjStgFMdnYKzyM+37dd6M642TireBtwqQh7SI.6UhWvZzXgfMQ2zGINg1rpVEZfXXKrQdUWAm4O4d4oGtQO2Flr2A23YXi7qDEq0sRXhUPTpjrY5ljD4jVEwZDnPyZHdBaDmeZJdO6hQanrdogH6O.e.44R9OVRhb0K2huC7HlBar3ToKhYBE4I5nx7Pu1eZDij7QSej3z1Hcouc1wC1n2yEDama90aC2CHZIs2aUH.bPQTjbZzyIrlVU4xJB.EPQbws7DQUmkpQQRLrw1zUPOGgH1BISRgB+bdtq9Ok6eAc3xBR1OIuuAD38Shi8EsbOp1EehfEmIqwD24SLP3nUeTFBUyDjmb3hkYIEkGGJVQV6nIP7bXju5fHlzQ1idHF8SGHIH12vLoIUbrYeLwO8cw25ZdTNVg4qcsfiTuI11eaBru9kShNTz8IJD8LibC9IEEXRJPJJvAIEiRNbvGW7wAEgw32xDC6v+ElRxPfODJhOdnn.dLLYHso6gBMIHBXReptH5YbNrlCcm7zyaBLNuj814le9VH9TZHwx4KaezDEKN8U4Ds.vFIt3SNbYDxxwHMooHonHtlPrFwLVWVwbzK70VT0b5gNMZJJxTTjzThnXQLrHdPVqewqine8GjiLmY4xbR12CWm0ZI4skjHu3kSujoL4F1oPOqZ8JVnSbJfKGfo33jiQHKgwGPhfnkyl71KBWeYdnXBxSVbwFAajNWiChh2EO0bpr1b1Z1N271rP+KjXEe4ToHEZNUi4UqlritxEAvTTfwo.SSQrLK0mUBIPB.OSd2rY5lR3MwCxQdg2Le6CUuiutdPSiVHP+WFiHKqDsCJ1fIcdWMQzVHnD9LDSydYLNLSQQbIA1lk8yJyTMZlYd+iRZ.V6oSWuu453qqX7WCGeaQP9gzPrkqGhh3wlnK5k3qJHZAAhicQwQHMGkoICNHHPT5RgH5ECrLq30R3tksxZu+GhCkp1iotirEvMDE6tWtdo6X70ceqRHZIBbPwfLM+FNNon.1HIFVq5H4JgFMCPGqeizyatde+rFY+TbSaUi3ixxjF39noahx5oyUbGlHMyIOJ43HjloMZ7FLR9DCXgfB3bNNn9x6kwqxt6YMx1A8aLNV8tbLBKbQ8sd5fUxXWMi8wE4YYBFgoAzDq0B2+JJ7Py5oqMeorw2PseWUj8CvaqCaju5kCQUg4t8YPOkqQIqDPhfrThmgI3.LINFu1IVEae+7Acv5VStU5+0tM1VjJ+tpH60QGWfDwKb4vaYdnXSzEwMq04kaDtDZODSw9XBJfCQMBrOQjjqDASMF6pesz8Vp7ykUePh2TTrrWpaLkvm0Pb5YEHUeC0xdJJxdYblf7DyLu7IKvGECPx38SxquxOu7S3uj2Ue1vqZoVIoPEx1DctrSzAddRyQHMGfT3ihnm.Nubi.IB5iNd0mODclOyfXXcIBjm8RYkPHbIwtA5bYWToDAooH6liyDjur+pOYEZftHxE7GvkdogeVYxVf8KHIQhrT5EbO7YSzU40B8xABcy4PjgmiTnMY7xI6PgldIQGWHq6BB+LIDjIJRzW8RY.ObPQ2DitWFmmNzCXGhoXXxPDjmTM277AEZRRD5jnWMlXfHA3Ogg6Si9EsTIBWglXHYSzIKW1SGXRkC6mIIMEOoct44CJTzMwupafsk.JKFWdEBDqYohF7PwFnSjKC1SGNK7XjiCPJ7vubQv420fOZFfj82KwuTvP1B3phgsc6VSbAAkXpf0Gczkbw2BSlabHlhgHS44q+cUnQSBrisVR9J.vN3WhyJXtr1qyTBS+20tLji2RDjCGNDSgK9+NybyyGzDjyZcS7yE.6GhaoSE5MtTLesGJNc5YI2qTRjLN43njtbHH+8H.RDzKw1.fkcW30mOxSq0S7+5edt3SuDmNHZEQypwpGfMy8QhfwHCGkzUk5sAcuZrbvdgtGMFlu6SXhB2pSor3lJxF6y3UvyOtsGt8lf3aP0BirEQrvpujfn1FiFo.VuaWDDkMe.KDqqSPJmo86oPOQdP4Qf5C06gRiHVDnuDyhKD.SPdFEIIouZ9RA5Rd3MYVC4O2i103i.IxDwPDs0zZWkyAsW8lFTiUWIP1YLP2Zcl7lHGZWOZEROHKcEmxUyoF0NNQNqHXIaVar03ShK7T4z+FuGjIiDPhhJ+dHhO38vGD2a6mQj+lqDqW9YUkabPoQORFb+nOBd20N.+Z68qQrgtH929sg3zWCHEk6XEdTqGeV+bnFl1WQle9yxQ9quWJczwqKgqEZ560borg+pWAwNm0gvpIlBPCnTnc84f23cQpG3oPhcEesGccEmKa4NeWX0cbDBQSwWZsFTZxs8Cyy8V973mNOMKgqA5l31QYzj1RjWZqp7jHpE1arGjwswepBncC5YKQfTHf0DC6q+hv5ke1H5KATvEc1vBruFrDHe9afXewWOD0BuO2iQ04SgBwYsVjW7FgXVnmpHXtGNnV.gzZr5LF88F2FBKI6+M+YPWxupyPiOIO+Sgy5te2H6HF9SWDsupwdepAgkDqtiCJMxDQoVQOZTDeqaf3m8.fVi2j4QnloTVW4QFdlhxeBXEMBhdhSmuvyfnanGxmNKhlzeAg4XdQXs1tvoFcgOm5CcvubO1T7bW4GEuT4wSp3z08PLgMxKayD61eCH1TWndjiPo2+2G8dG2TW10PLI12vkSzOvKkn+ueo3801Ejod61BZzGNMEu5u.pIxwvxbk8u8b1z78I4kb5bt2+sP2uryinqaMT7niOqWxcd4aAYGwX5exd4f2xchtfWclVp9O6VcDky99tIRb9arrHZQs+174S9M2AG3luSJ55fqHbONQahBmbVEDWsRQhyZ8bY+n+mfVSk5TEd0aTSksQfCxtsUnVeKV.FBtkBApLEv4PigaP0AfX3hFG7+g6C+evyf86ba3dW6D+G8YQXpGYAPi6+xCSj+rW.hynWjm2.ndhiPUsGo.rjPlR3efw4nLc4bBa9pchZTjeWGCmASQhKXSPTKpmBX1CzE.jamGg7OyQPVU6agfF2gSShKXSkSneWTTBeSZ95PLBJPBSbvg3nicLzlJqnxj9FUtZRpdqoRQrC5iyT4HRWIXBJvjjlnDktIJBDjvjlEKjj4fk4qHosBV2h1rHg.soJ6tV5H7CAjPnX6BNl4LqbTi.b8Pmp.hszGhthW6EF8HYfzkv6no3Pl7Bytg5bJBl+UHZHkrEVRBKU7MvU1Pl9nMG9jTfiQFrHBEMcCE3QulatvRh1blVMfvXMBrsrBlmmftARS8baRJhGpxoxb2l0DRP2k5e0hhLtMn6cgeUrPO7AlZETSPqo.yEJRbNEMNiRWyVaUI7rSP9W0WhCO1vFhtQTfxrtGc8aYMfqoEZtpAHiovUmGGNC7nGBz50GEBStqoA7Whx3mfUbhEdls7pLjgNHBqg3DqN0jUyB3OlsEhdVrAmvCMwwdIIUf0.G4IdZljhDg5kDMgqBRU4+YQThzWWj7hNEr5sCzpVTATCMGtmfj1PxgEj9vM4sviMLGTaauAVfKTX6KBBJZ1ZJ5fnziIom0UcrD0VhrqESiSatoqkDl4OZePhfCQZljRDAazn.CgFrULDAYrHH6LNw255IwEtIR771DwOq9I5YzOwNy9wpyXnJ13aGGgEVdezjkRTDOJEHvlHXUVQp4SnYcgPP39IXi.MJzJEBYiYpUXGsooD4vgMPmkWqbZf3XGw1B4hNmyhhkIN0sOHQvfLMSPNhh.MdDoudH1Y1OQO09H9V5mDWzlI4EsYhctqGqNiWsc9t93OUdnyFSgqPpaJJRI7IKNkW7+VFqmWLCJ13qYa3mqHpRMn19JMwOkdIwotVJMVlF6bHXUkpPywIGCXlVEBVRWskjKrcGWIKDLHYXXxRLDD6LWGa9e5OgNewmEQ2TOH6XFBTUxCuwyPo8ebJrmgovtFj7+lAo3gFCqDw4btuajHat9pkToc54vkAIiofdHJG+aQaRzbGaYcr0+WutV6jc8wOeiW1yBWrCGmrrN5fXXiC99K4YRZyBIRNFSaHZIhn1blew2Ac+GctfRQg8NB4e5AovucHJs+iSoCMINGdBbFJE5JTHRilHqoa7yTjn0HJLz+44virDHhOzTn4y18ECxr6iwgt8eJZG+.yIaBjcuCQgiNAxlvD4voiFiBrY5DeztKJxNb23pcMxVBLDYXDxQbyNmahydcz4kel3MQV1207uSgcOHp7tnTt.JioRgKy8JebTHrspx8pgK41B3PFbvEGFnhNHKkQ9dzGXWr2+s6qgLsa1PfEMuquBFgqHMN3gp0I6PEMZeufDLIEYHxPThTVGaqd6.gk.2gRS1Ge+keYIqql4yMbPwDTfRnMYuhrbGfkKXQzl1cmU66rlGRDjgRjGmRsrLKeB1djjsIwdZTLIEl2kPWvKpFKrk0544iSNxgCJiBWmH.MZ557NU56RNKVLZMXRri7szScnn6dI9hpQTKZ1nOOWPZr6bRJfC9DrwmKOgJSw0nIRWI3R+b2.uvux6k3arOiImMGBJuX9jGx1zjcn2xVqY6XXwfPmSDFd0EKQDr8JpXTxxnji73UVYrS7fFY7Hj3zVKwFnGhzSxV54PX53KwahldNaEAo8SOMU.CpWiHfnO.o3LwiXKDUqAEdTOIIg0VjooDooX4Begnj+BJ3QqLczDBT3RyT6dEnaX2wpUJy0uwFcpQgpnGZ+.mqrXb6afG.sS2BjshtHFwvFsvz.lOdRvbdLGkoIGNXIjy4wf.zJHxF6l9u9q.uIyV0AJHP+gIHOIA5xHpVghNN0AH9l6Es+b8hRP9CNF.rt+qWLm109GgW1BMjvdMfcxXzwYsg42crlKUeWw4vldkWNJO+FRBlFEIOs0Q702CdYJ1.mQ8gEBJh+DOKiTpoH6JSMXEZjk7gXVySmUcPx..f2LuPjHXXxZBUo.TJPFjFQ0x3ZGejQjHGnKN6u9MzLM2ZZ7y9Ur.Ii+K1KSuqiP2O+Siq39u0V5Rqbm6.dD1Qas+gak+fu+eWKc88y6Ly6wlDZ.W7GbO35zTjsGZVCwKuWRq1yX39g+YndlIn9ITmFu642hHQD7ejCClTBbBxyPLsYMeoXjO9CRGa6zI+SMXU1gJPRwe6fLxm7gH9Y1eUO.EvsgU2R43ge1hyp8IPRgQljG6M9w3LdOWMIOiAPFKR8uH0BMXkHB8+Rddfc8E8KwhI9U6ii7k+YDo2NZYcYm5IOHElizppAZljCuQNLG1Q7TbKMbSv0T5pprVeqK+Ret523yLyzaQFJwyxjDoBcuCJY5JjlRzXsMWM9HDA91pH9LN4wGUyUoSlmmRM93iafcvh5mjC065IhH4Jen+QV6e3V4Qu1OBC9s+UlmgJOr.eyIEst20UZWieEZNUXCcmziyw9T2F+7+6M7HaMAptzSMgwTvBMRvhvcgZG74HlT9s5Fk87ZcsDazZESRIllRDjVDMYTmV.62CRHBcfBBMHTtdKXD0B2lzalqasn1NPMJDHHKNpTj+Qf4d33rfFMcG3s5V1TliPZbvuoVxrBD3XFM2rmayiVXjSUtic1I5PqbcaWP.LNExNAE9EPCR1BD3heKatk.AGloZ5USoffrBYRJZlnX40yW0qjxpYlflnPEjtuDLEWQ7JWP7jTYgos5ye4xteABljB69dY2CAMHYGluSIZgsqgfUrQdRQgFlnCe4LFEHONF6la+n5B9d.4oLYhhOA1mVBe7LAKIzIRgofjBE9wC9rIEE3XLM1DsbME21j0npJdqEEK5xHgr5raocunJETJHpdOLDjTbMnX7fE1sEhlxs7A9j0kiQ5F1aaAhs8LAsn8H1tVcvgfWt4wEGSxAVBW76LFVcGCgNLDgA0P0vVPn8FVZv1VvVd0uX5+h2RfiO77JOJVYT4K7ZW4ar7HJW2viiMcRLrQXRyf12F2t.XZJ4OBo+Uge1BR1AdmRQ+jroHZAPI734XxF1mzAQnwgIHOg9ydwfvQMkLoCjK9jAGbvGIAOWtnPgGa9h2Jux63ugncmbguvZMBKK59zWG.TX7zLwtORUwadV4OdMvxL033jCIfko1guFRTtrYtXncIBFmBGZPl9wB+rEjrCrsNA1z7qDyiPZSTlZLgvSRAlhRsbBDTYtW6hhzTBEJJfKdUYpl1DdDHBxf8kWMDIYLRtt0T1EpyKzPoTYI09Ghm3195j5.C1TIWPHBe23ihblzgpChPmDitHFsp.dMPJx+vOLGdjvOadIagoQjD6lpmljfBVSXs+b9uGBTn33TfR31zDc3XGEZxEHLlzTrrhTgsmp6vUcmOKrYrccP9JW1+CrhEorRWMB7J3PorYaIht1miP4e4wkb3PVbXsjfXX2TYsaXkgJCktmJ+74krCpEJVzcSjhvRDLMkXTx1.DcfnzQHaSGm4vQwNnHKkHGtTBuJrAGZV05JlNSSc7gsjEKQWKBSqh73PAboeRR2DuoFrMJYe1syvOQke9BJFOnTRsvKwDXlvedXlZAEcKHvaXiQNiCaZLhITBiI6KHKtkU4ZwV6TZsTFZoCgEwfwHGt3SeMPA8MLjlGjz+vGkiMYke27R19nYyzUSMqwgXJ7PMuJWIHHUYRYretQH5v8EirThonnI+2zUbtmnjVBMGBEuG7LCCv7q.oEBNHoyNDY9x09cyIYGNecipQrERFgrjEmEjnmjBjgRMjX6PRNEEHqQS5vR79IN4cxhGASOVjHHmy8gzvoEGlbe+uE69wq86mSx1CMcQrFppAGpPvwH87NOsf.MtSu.ZbGRg9nYZyVaTvxtoVEs9cKDVfcSRj5tMUFD53bkNJY+b067mSxNb4j1HNRwif8QiERS5wMiniLOcHBW1qYMYcRnISm3TK+W5PngkiQN1LcW2i3Xj9WtK14CWuyeNIaIBVGcrfJlIBtAlhx9rI6POJMN4IOdyIQGp3UvlTVAbQYV.s+dRtRD5rpooDqoBqjrPvwIGGio+L6FpWEMXtIaWTKXAkMT78TTXNH5f4aGm7TBu5NWdncxEvkTTnbRI76xhqaDjCG5th.SoANHS9id.F46LWmScIaeTrNRvBEw3v3SWOEkpLzjdnpqxXgQSaJi3cn4sM92EgDAELqtz3XiERNDSUXeL0GbXFN+bcdyhrCyyL6Ev+rAqxxL00LqfDUviQmCanCutoL65cU6JyeOZTT.ORPDSLHRcOeCd5e97c7yhrU.IIBII5bNpNz7oII+rz9Nbz5njCndDMT.GSTsBxq61MQ2JWsSzxrbAPVbX.RxdH0D6gI9WVnyYVjcPP4wrv5lKa4B1pBqcd5vvSNJ4K+2U9cA0CjBjlhPUNDo0Ps1ZGDiYJGlvJkJUSUHnp1U30wt7eMS8bX0bm.IPJJxAXhOwOjmYuKzwWWw3KjsxGkoMh5qLSPEkEcG92U9cEwkwIGkBhwDMy3uJCTXkDYPUQvu7FRtG9lTWLLM+XNslXlzHRXLwLXG4al0CpEwwhnl7ialNVqN5.D91a2L9C9XL3GoQNmYQ1dn4Tn9K0DQYsuKV0n5PkwNN4oRZNTAuTTjTjmFczrnl+OG7vAeSouv0TYSBSMnZWQoUqt37c2pbzuG9UTkin7zKg+zoIScrQRbiLfYF+u7CKDLBYScHl58uKFMWibNUQ1giNmK2PpHX+ozpF5HfnyYbDinpq0XjiB3YNm4KCOmQTuKJbvmooDdljNv03ZmZyKr1kaSq20QQXEIARgGSRQrQRTrJWRphgrbo5Z4ZLuYimSODY+m+ZrqcznmWUjsBEqkjDkYWw+Cz9NKEqvwHgZtO1rHZXJJPJJfddhFUkhEyiO4oDkLIavLdsaFJdkTe8v6uBMEviB.SiC1HHIQnKhRGDshw6KUsi.2HeLx7s9ILwmoYN2pHaWTzkIQ4ps7IV.OFmbU4ALeimw7MhmCePGi7LMEKKFr1Fa3H3B3RA7JWxoBq44UmFSq9LIqxVjOAkLqrlc7udHNcWNexVJt2BNLSsuiPo2+g4vM0h.qJxNbi2tdyVOLYLiAm4QcLxiSEt0rDdLF4o.tyZzbXM9vAkIVzdFmhpK2k3DUasCI1h3SQxRZhPeDmNayizsPvnjezQH2636xSefl87qhrCp57UmUJRDjhBLIEHtw8oBBRy2.Q5Aknxr3vXjCkg7gpSX9LThr3xz3TVe5kBarWIQ3ScQ7XHxPODm9HQcmVrYgEBlhRNCR1a8d3oezV4ZTEY6T1rHLM6.Q6CQ1xM3v7.OKkHJ1lfWD3fkJmYUZzPOGtLEEwwjtAyHh9jGRtVD97klhjCWVOcPWDoEpaBAHHFDk3fj9e9N3Iu6VscUlr0.qwrj3C6EJPXrM1yT7zDLN4IiY9IEZFkrT.mplm0EEonHYM4kcshoqbDek+25AcM+tRs.Vs2cILPPCQF1.cQOsvNfT39S1gYp+suD63CuXZOkIaW7oK5fPqiCGUebxV1l5oonQQj.E3FhoMIxevqcOS56lxjD70NObkN6HvgGpY43iJ6.Le9kuRGhDl8nqF21ECe5GgrHnS5tIH7v.dbHR++8KvN96YQt8LYG1f7Ylhcd3HniSlxY8YI7Hkop.6fOiPVbMwvNH8cKQZSp7FpWtGAE1ovZAZkD3LROZdnpnKQkWGqxjtU4TWZ0BBS5f3Fazajr+Ifnm5S74Y6ueXdKu5MDrgffezIQIgY4tH.JhGGmbDAoIceygEAwc93jyLxUX7NVAypt.iITy3xx4BsKhnVyf7MZ7GVRJWppXgMKBc9zjTj0u.YIZ3Ji4vj9197r8+QZCDMXH6PSpBC9gDAiPVBpPdvvjEIAQYYBxi1zvCTTKP0qfZeckystxBeiyO7Ld7Z0PxPX77E8Sh4zJDKDLFEJMHo+P2N67CRazGMFxNXzc37eYvkon.VHYLSfMBR82B3ilTTjwMYURk9lNDq7uVmAtlNhwvZUwluZXUcp1LDMTGjgI2XCR522cxt95s66sMDPvCT9lKXTxf.ISSIJZlOdJic0CSViZYqFh8SigPGd.yeD8VdZKyT22BQn1EGgoe5ixTu66sNoAb6.Wc9lA..v.CmDQAQE1AtB0kDlpbRVbHigjSQQxgCoHOSQIFjLlPTN6.RT8CT0+0pktEEMcQishS3y.KDjGOFho+d6kodu+HdlCtTceKOxFBHvQIaY6jKfKiSdFgrLNELi609ZHkFxnQ4BxhfNi.gRftKEhjfNp.hB5XfHoMxDg9Ce4ZiRetPX7zWoUbKv6gvHjOywI2GZmLzmX6yS9i0NfsOZ5mjDAI4vkooDSQIxPINN43vjlIovn.eeM7jBTOmB49U3Nz8xtyVumi2IasyLn51lXcIgAbQe1f57DvKQCWrDQhv8vhUBx2w3afUBiyDFqDJgOGio+oiPw+16gc9DK7Y1Ft2ON2nd.RvlnKNLo44XRNN44.Lg+fj6AmlheUItOvWi8MLKRMCuNN+Nih0ZDHtbEhqQ.+WjHN2fPGt7JvON1DqM3y5lAgYDSTrxlEmO9SyA+W+kLQqrzQas6+14lzCPGzGwYmLB6kIXOb7GYHl9C8U427.zt2Tsq.+obIaRf6KBrd6RzuDKj8ubMZ2hf3PubM11rRWbcv+a6h2G4tawfYrXfXWbKtagdsmf77cXetOCS9guWdzaaXXIc9iZwahy6bsHxaUf75DHddRBqJQKcnKSHHWpPn4T9nnD9+xh3+Q+prquwR3sb9aO6jaYjym9W+8xuM6OjCbK2A63NWoZL.7V3h5E3kCh2MvUFAqDAtZs8S6IwdIwe5g9qvEMkvamN38omlwuq+ykXEvVv10g3uZrLTZseZ19e4mhG6SrR1XpEuYtvWrEVuIE5q2B4FCGkztP6lrCCPSI7K5g5gcw+yoI+O5tY+S21tIKBHRweu99XOes2Ceq2FKgyOuXv0x4s1jD6OCzuRA7xjHsfEeAjqyx6fksNBIXiO4G2E+GPg5KdWrqeJMZwEeYBhcxMc3ODOxapUy9gkSbCrsHYovEnv9MJgWJvEFAqt0UD5zFEspBZUFZ0fLgUOTI72gB08kGmG5axdNbSdIW1f8XT39uGd5kE67Vr3yx1cA1o4e7V4EbYkv+hrP7GqPe0RDcKPDKzFdc4elMhPvVYyB0AIz4GgSg3hpnGpI.8uvC+ueN79keS1yy1VePWhf8nj4axpTw2KDt6.mQ7D.290w42aDrtPMhKSi3r0n2DH1BvYXgnSXFhML2ugYVHCgnxrnQA3iWVAh86ided3uCeTObFb9s+GrurzFiH0xABTbbU1bKsK7lYa8Ck5WfXc.aUiXsRDaLJxSW.8og0Hfd.5BDcnQ6oPuGM5GSC6Dz6wC03SiXzuKOcpU5mmEK9+mg+Gdbbf6pa.....jTQNQjqBAlf" ], + "embed" : 1, + "id" : "obj-41", + "maxclass" : "fpic", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 17.5, 17.5, 122.0, 123.0 ], + "pic" : "mage.png" + } + + } +, { + "box" : { + "handoff" : "", + "id" : "obj-33", + "maxclass" : "ubutton", + "numinlets" : 1, + "numoutlets" : 4, + "outlettype" : [ "bang", "bang", "", "int" ], + "patching_rect" : [ 164.0, 50.0, 41.712784, 21.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-51", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 599.359741, 48.0, 21.853052, 22.0 ], + "rounded" : 60.0, + "text" : "7", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-25", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 729.146973, 359.5, 21.853052, 22.0 ], + "rounded" : 60.0, + "text" : "6", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-13", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 41.51059, 424.636353, 22.706104, 22.858788 ], + "presentation_rect" : [ 90.0, 90.0, 27.123047, 30.34375 ], + "rounded" : 60.0, + "text" : "0", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-24", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 426.0, 604.0, 21.853052, 22.0 ], + "rounded" : 60.0, + "text" : "5", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-23", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 426.0, 527.5, 21.853052, 22.0 ], + "rounded" : 60.0, + "text" : "4", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-22", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 426.0, 448.5, 21.853052, 22.0 ], + "rounded" : 60.0, + "text" : "3", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-110", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 426.0, 367.454529, 21.790001, 21.0 ], + "rounded" : 60.0, + "text" : "2", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-94", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 253.718628, 116.897827, 21.790001, 21.0 ], + "presentation_rect" : [ 75.0, 75.0, 27.123047, 30.34375 ], + "rounded" : 60.0, + "text" : "1", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } + ], + "lines" : [ { + "patchline" : { + "destination" : [ "obj-18", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-1", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-15", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-10", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-15", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 432.712769, 651.0, 288.0, 651.0, 288.0, 423.0, 192.0, 423.0 ], + "source" : [ "obj-11", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-15", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 432.712769, 424.0, 192.0, 424.0 ], + "source" : [ "obj-118", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-15", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 724.217102, 424.0, 633.0, 424.0, 633.0, 342.0, 400.0, 342.0, 400.0, 424.0, 192.0, 424.0 ], + "source" : [ "obj-14", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-204", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-159", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-204", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-159", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-20", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-17", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-18", 2 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-198", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-19", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-205", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-198", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-91", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-198", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-34", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-2", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-18", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-20", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-29", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-204", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-198", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 288.0, 277.397827, 267.75, 277.397827, 267.75, 238.397827, 288.0, 238.397827 ], + "source" : [ "obj-205", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-32", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-30", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-27", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-33", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-1", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-34", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-15", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-35", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-15", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-36", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-15", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-37", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-36", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-39", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-15", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 432.712769, 498.0, 288.0, 498.0, 288.0, 423.0, 192.0, 423.0 ], + "source" : [ "obj-4", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-37", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-40", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-35", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-42", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-15", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 432.712769, 579.0, 288.0, 579.0, 288.0, 423.0, 192.0, 423.0 ], + "source" : [ "obj-7", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-198", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-8", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-15", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 328.0, 423.25, 192.0, 423.25 ], + "source" : [ "obj-91", 0 ] + } + + } + ] + } +, + "patching_rect" : [ 186.0, 86.0, 159.0, 20.0 ], + "saved_object_attributes" : { + "default_fontface" : 0, + "default_fontname" : "Arial", + "default_fontsize" : 12.0, + "description" : "", + "digest" : "", + "fontface" : 0, + "fontname" : "Arial", + "fontsize" : 12.0, + "globalpatchername" : "", + "tags" : "" + } +, + "text" : "p \"labels queue commands\"" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-120", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 0, + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 0.0, 26.0, 967.0, 693.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 12.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "showontab" : 1, + "boxes" : [ { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-20", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 224.0, 92.5, 150.0, 20.0 ], + "text" : "step-by-step tutorial" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 10.0, + "id" : "obj-46", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 0, + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 564.0, 150.0, 372.0, 473.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 10.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "boxes" : [ { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-15", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 1.0, 444.0, 363.0, 20.0 ], + "text" : "/* ----------------------------------------------------------------------------- */" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-14", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 124.0, 418.0, 206.5, 20.0 ], + "text" : "Nicolas d'Alessandro, Thierry Dutoit" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-13", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 175.0, 326.0, 130.0, 21.0 ], + "text" : "( www.numediart.org )\n" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-11", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 65.5, 398.0, 265.0, 20.0 ], + "text" : "Maria Astrinaki, Alexis Moinet, Geoffrey Wilfart, " + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-10", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 30.0, 377.0, 265.0, 21.0 ], + "text" : "Developed by :\n" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-9", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 64.0, 344.0, 268.0, 21.0 ], + "text" : "Acapela Group ( www.acapela-group.com )\n" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-8", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 64.0, 310.0, 212.0, 20.0 ], + "text" : "Numediart Institute for New Media Art " + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-7", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 30.0, 290.0, 268.0, 20.0 ], + "text" : "Copyright 2011 University of Mons :" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-6", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 30.0, 233.0, 298.0, 47.0 ], + "text" : "You should have received a copy of the GNU General Public License along with MAGE / pHTS. If not, see http://www.gnu.org/licenses\n" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-5", + "linecount" : 6, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 30.0, 144.0, 298.0, 87.0 ], + "text" : "MAGE / pHTS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY, without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-4", + "linecount" : 5, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 30.0, 69.0, 301.0, 74.0 ], + "text" : "MAGE / pHTS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the license, or any later version.\n" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-3", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 30.0, 28.0, 298.0, 33.0 ], + "text" : "This file is part of MAGE / pHTS (the performative HMM-based speech synthesis system)" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-2", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 1.0, 8.0, 363.0, 20.0 ], + "text" : "/* ----------------------------------------------------------------------------- */" + } + + } + ], + "lines" : [ ] + } +, + "patching_rect" : [ 783.0, 81.0, 50.0, 18.0 ], + "saved_object_attributes" : { + "default_fontface" : 0, + "default_fontname" : "Arial", + "default_fontsize" : 10.0, + "description" : "", + "digest" : "", + "fontface" : 0, + "fontname" : "Arial", + "fontsize" : 10.0, + "globalpatchername" : "", + "tags" : "" + } +, + "text" : "p licence" + } + + } +, { + "box" : { + "handoff" : "", + "id" : "obj-39", + "maxclass" : "ubutton", + "numinlets" : 1, + "numoutlets" : 4, + "outlettype" : [ "bang", "bang", "", "int" ], + "patching_rect" : [ 850.0, 565.0, 55.0, 21.0 ] + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-23", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 850.0, 565.0, 66.0, 21.0 ], + "prototypename" : "magefont", + "text" : "glossary", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "underline" : 1 + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-18", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 682.0, 565.0, 239.0, 35.0 ], + "text" : "Confused by a word ? try the , and get even more confused !" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-10", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 741.0, 600.0, 92.0, 20.0 ], + "text" : "mage_glossary" + } + + } +, { + "box" : { + "id" : "obj-24", + "maxclass" : "button", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "bang" ], + "patching_rect" : [ 196.0, 462.0, 20.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-13", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 34.36364, 376.5, 60.0, 18.0 ], + "text" : "delete $1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-31", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 292.683319, 623.725769, 49.0, 20.0 ], + "text" : "zl nth 1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-27", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 292.683319, 650.725769, 47.0, 20.0 ], + "text" : "s siglvl" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-12", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 145.856384, 495.266846, 38.0, 20.0 ], + "text" : "r ctlvl" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-11", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 233.0, 650.725769, 57.0, 20.0 ], + "text" : "s outctlvl" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-16", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 342.403381, 411.0, 62.0, 18.0 ], + "text" : "labelclear" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-6", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 246.0, 462.0, 67.0, 20.0 ], + "text" : "s labelsize" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-5", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 196.0, 411.0, 71.0, 20.0 ], + "text" : "r magehelp" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-90", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 339.58136, 581.407593, 116.710724, 33.0 ], + "text" : "mage works better at 48000 Hz." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-317", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 494.973755, 527.912476, 30.0, 20.0 ], + "text" : "s sr" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.825288, + "hidden" : 1, + "id" : "obj-162", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "bang" ], + "patching_rect" : [ 281.829742, 495.266846, 57.853584, 20.0 ], + "text" : "loadbang" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.352581, + "id" : "obj-161", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 291.067413, 522.5849, 30.254025, 17.0 ], + "text" : "1" + } + + } +, { + "box" : { + "bubble" : 1, + "fontname" : "Arial", + "fontsize" : 11.96198, + "frgb" : 0.0, + "id" : "obj-131", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 409.487305, 550.766846, 151.0, 24.0 ], + "text" : "choose a sampling rate" + } + + } +, { + "box" : { + "bubble" : 1, + "fontname" : "Arial", + "fontsize" : 11.96198, + "frgb" : 0.0, + "id" : "obj-134", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 360.675842, 495.266846, 191.62294, 24.0 ], + "text" : "report sampling rate choices" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.825288, + "id" : "obj-135", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "int", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 443.774628, 527.912476, 51.19912, 20.0 ], + "presentation_rect" : [ 315.0, 315.0, 50.0, 20.0 ], + "triangle" : 0, + "triscale" : 0.9 + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 13.0, + "id" : "obj-136", + "items" : [ 44100, ",", 48000, ",", 88200, ",", 96000 ], + "maxclass" : "umenu", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "int", "", "" ], + "parameter_enable" : 0, + "patching_rect" : [ 339.58136, 550.766846, 64.588486, 21.0 ] + } + + } +, { + "box" : { + "id" : "obj-137", + "maxclass" : "button", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "bang" ], + "patching_rect" : [ 339.58136, 495.266846, 19.191378, 19.191378 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.825288, + "id" : "obj-138", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "int" ], + "patching_rect" : [ 339.58136, 527.912476, 102.398239, 20.0 ], + "text" : "adstatus sr" + } + + } +, { + "box" : { + "handoff" : "", + "id" : "obj-22", + "maxclass" : "ubutton", + "numinlets" : 1, + "numoutlets" : 4, + "outlettype" : [ "bang", "bang", "", "int" ], + "patching_rect" : [ 504.0, 99.0, 150.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-21", + "linecount" : 2, + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 504.0, 128.5, 255.0, 32.0 ], + "text" : ";\rmax launchbrowser http://mage.numediart.org" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-17", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 504.0, 99.0, 150.0, 20.0 ], + "text" : "http://mage.numediart.org/", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "underline" : 1 + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 27.600929, + "frgb" : 0.0, + "id" : "obj-15", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 193.0, 6.5, 100.0, 39.0 ], + "text" : "mage~" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-33", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "int" ], + "patching_rect" : [ 314.5, 210.0, 130.0, 20.0 ], + "text" : "conformpath max boot" + } + + } +, { + "box" : { + "border" : 1.0, + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "id" : "obj-95", + "maxclass" : "dropfile", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 314.5, 156.5, 42.712784, 43.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-91", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 314.5, 240.0, 53.0, 18.0 ], + "text" : "label $1" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-9", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 68.220032, 415.0, 78.0, 21.0 ], + "text" : "play it safe." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-7", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 68.220032, 439.5, 92.0, 20.0 ], + "text" : "loadmess reset" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-118", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 436.356384, 412.0, 47.0, 18.0 ], + "text" : "labelfill" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-116", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 504.0, 79.0, 264.0, 20.0 ], + "text" : "numediart | University of Mons | Acapela Group" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 14.315886, + "frgb" : 0.0, + "id" : "obj-114", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 152.0, 71.5, 161.0, 23.0 ], + "text" : "as a MaxMSP external" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 19.240288, + "frgb" : 0.0, + "id" : "obj-113", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 145.856384, 45.5, 488.0, 29.0 ], + "text" : "hmm-based performative speech synthesis toolkit" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-111", + "linecount" : 8, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 491.0, 334.636353, 176.0, 120.0 ], + "text" : "fill mage's label queue with this message - as soon as there is something in the label queue, mage will synthesize it and remove it - \"labelfill\" fills the queue with the whole label list currently loaded" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-108", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 366.5, 146.5, 122.0, 35.0 ], + "text" : "drop a .lab (labels list) file here" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-107", + "linecount" : 2, + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 196.0, 361.5, 75.0, 33.0 ], + "text" : "print engine @popup 1" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-105", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 182.5, 210.681824, 100.0, 20.0 ], + "text" : "t l l" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-104", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 182.5, 271.0, 100.0, 20.0 ], + "text" : "pack l l" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-102", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 34.36364, 239.681824, 37.0, 18.0 ], + "text" : "clear" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-98", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 34.36364, 271.0, 103.000008, 20.0 ], + "text" : "prepend append" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.595187, + "id" : "obj-19", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 5, + "outlettype" : [ "", "", "", "", "" ], + "patching_rect" : [ 163.5, 239.681824, 95.0, 19.0 ], + "text" : "regexp .+/(.*)\\\\..*" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-96", + "items" : "", + "maxclass" : "umenu", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "int", "", "" ], + "parameter_enable" : 0, + "patching_rect" : [ 34.36364, 303.454529, 61.0, 20.0 ] + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-89", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 95.36364, 295.954529, 103.000008, 35.0 ], + "text" : "you can revoke it any time here" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-86", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 55.36364, 334.636353, 103.0, 18.0 ], + "text" : "engineremove $1" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-79", + "linecount" : 4, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 59.36364, 146.5, 119.0, 63.0 ], + "text" : "drop a .slt (engine configuration informations) file here" + } + + } +, { + "box" : { + "data" : [ 9240, "png", "IBkSG0fBZn....PCIgDQRA...rG...fdHX....vmaxh1....DLmPIQEBHf.B7g.YHB..f.PRDEDU3wY6cdGkjcUem+y89dUrSS2S2STwQgQn.BoAgD1qPFA3EzhAQPBSxlCAkVXcPXu1m0qw9v4fLdMgEyAVhBgjHHIPfwDDAIDf.EXzLZDLAoQStSSGpt5J+B269Gu6q5ppt5tqp5pCy.e6yzRcUuv889du+t+R2eWAmjfGh+73cQrd8Q0mMxM.hsIv5rz3sdMpA7P1uMh0.zsMhn9nc7QWDz4EHSCbDKj61B1u.0ylA2g8QO5KgaerU5ms1EDqzMfVE6jasCE4uXP+xjHddBzazGNUfSIF1wz.fFs43q8ugJe3EHL+sv7+W.OWfmwBwdllhClG2mb.54GOJxItF92Ksz+D19wILj8ugqKZQ58RDXcwBzWoF8KIBx0YgU7HXgBE9nwGcMTZqAABrQfERTno.tZAhLEvavnX+y.8uJCYejWJ209aCOdKKXUMY+PbU1qgKXqZTuVAbsBDmWRh1kBEdnPQsiUW5P3ndIBrQhFHOtCVD2mxG8WZbx9nuN95GcYowzhXUIY+T79NEebdC1X8p7QcUwIRbMfOJTKSjai.KjHQfBM4nzn.euonz2IME9tWO2qyJc6qVrphreJtospP7N.dGQvZC1HwwHXd0NrPRDjjGWuR3c.A5Oywn3c8F3tN9JcaKDqJH6mja77A4sXi70GEqM5gOpUwTrn7uCZiyzN0kEyagf73r2z374OLo9R+47slXko0NCVQI6Gma5BsgaUf3MFG6NCTvRsR1jlEBeA4anTABJhKdnIJRhSDhXFUKQRI7HGNTBerQRDrnDt6eLx8Y+A7Te5OE6N6J8yxxJ1A+EqAJ8dDH9qSPjM3XFIuZCFkvJOZEzrA5jDXil.h2xnzVnBbgcXCedjHn.dLJYwA+cNN49fCx99N2Ha2c494YYmr2A27+MM7OEG6WnZU1HYAB7vG.bQQRroChhMR5kDXivzZqTvc8tNy9SjHPilTTPKQ7iyh2e24vG+IWRdPlCrrQ1OEu6SwkH+CVv6JN11NlWpqzP.nL1m6fOcPD5hXzOIA.Kyqn1kjGKDDAKlhBSMN4usGlC8IuQ9Oy2Vt3K.VVH6eM2vebDr+3ww94UZUl10kvCEZ5jnrN5fjDor4TKkHvrMHEEd3QH6e0Kf+e6XI8FxRLYq4pr2Im+sZg7evFQmtqBDYKfxdZyFA8Pb5k3DEKil0KecDE.wvloozXSR1+hylO4Wco99sjfsy67zkD8iFE6WuB8pFEvBm9X.RxZIIVl4RWIacQvh73nGi7ereHC+AdubuKIZrujP1ON2zkDCwWNFQtvR3sTbKZZ3abuZ2Fw0QwZUSGPfxZ7OLY+wOKC81d470FsceOZ6j814VdY1vWLJVm1pAkvzFQ1cQTVKIMlMsZRqgYPnX8QI6NOJS9VuBt8c2tu9sMrCt4q0Bwm0FqAbWEPzdnHFVL.IoShAr7Nmbqh3XSJJ9LGhwe6WFegGucccaaj8ula5lif7+iMxN7VAUDKTALG7oeRx5HY4vTdhDhgMoo3vGfIuoWDet+i1w0rsP16fa9FrQ7IEHh3uB9RU.TBejH3TnK5hXmvQxUhXXwTTL0NYz2xqf63GrXudKZxdGbiuNIV2gEhtVIIZMAhs6fHrY5BKjmPHxdgPTrXJJcr8wHW2Uxc7nKlq0hhreRtwWgMxuhEV8uRJ5VYh1z.jjdH1IATb0HFVjhhGXeL1q+J41epV85zxj8ula3xiRj62FwFWIcVhOJhfEmJcSDrNoXzb8PbrYHl9Y9Mb7W10vcerV4ZX0JmziyMepQw59hh0YtRRzN3S2DiMS2DwjpPmrBOTzKIVqK9WxVYs2+Of82zI8XSS1OCuuXd3+ERf8UtRZGcdbY.RxFoSSDkN4G9nYcj7LSPrt+L7q+dM64Ka1Sn.t2ZLhbsqTDsFvEe1HcxFnqZxTjStgFMdnYKzyM+37dd6M642TireBtwqQh7SI.6UhWvZzXgfMQ2zGINg1rpVEZfXXKrQdUWAm4O4d4oGtQO2Flr2A23YXi7qDEq0sRXhUPTpjrY5ljD4jVEwZDnPyZHdBaDmeZJdO6hQanrdogH6O.e.44R9OVRhb0K2huC7HlBar3ToKhYBE4I5nx7Pu1eZDij7QSej3z1Hcouc1wC1n2yEDama90aC2CHZIs2aUH.bPQTjbZzyIrlVU4xJB.EPQbws7DQUmkpQQRLrw1zUPOGgH1BISRgB+bdtq9Ok6eAc3xBR1OIuuAD38Shi8EsbOp1EehfEmIqwD24SLP3nUeTFBUyDjmb3hkYIEkGGJVQV6nIP7bXju5fHlzQ1idHF8SGHIH12vLoIUbrYeLwO8cw25ZdTNVg4qcsfiTuI11eaBru9kShNTz8IJD8LibC9IEEXRJPJJvAIEiRNbvGW7wAEgw32xDC6v+ElRxPfODJhOdnn.dLLYHso6gBMIHBXReptH5YbNrlCcm7zyaBLNuj814le9VH9TZHwx4KaezDEKN8U4Ds.vFIt3SNbYDxxwHMooHonHtlPrFwLVWVwbzK70VT0b5gNMZJJxTTjzThnXQLrHdPVqewqine8GjiLmY4xbR12CWm0ZI4skjHu3kSujoL4F1oPOqZ8JVnSbJfKGfo33jiQHKgwGPhfnkyl71KBWeYdnXBxSVbwFAajNWiChh2EO0bpr1b1Z1N271rP+KjXEe4ToHEZNUi4UqlritxEAvTTfwo.SSQrLK0mUBIPB.OSd2rY5lR3MwCxQdg2Le6CUuiutdPSiVHP+WFiHKqDsCJ1fIcdWMQzVHnD9LDSydYLNLSQQbIA1lk8yJyTMZlYd+iRZ.V6oSWuu453qqX7WCGeaQP9gzPrkqGhh3wlnK5k3qJHZAAhicQwQHMGkoICNHHPT5RgH5ECrLq30R3tksxZu+GhCkp1iotirEvMDE6tWtdo6X70ceqRHZIBbPwfLM+FNNon.1HIFVq5H4JgFMCPGqeizyatde+rFY+TbSaUi3ixxjF39noahx5oyUbGlHMyIOJ43HjloMZ7FLR9DCXgfB3bNNn9x6kwqxt6YMx1A8aLNV8tbLBKbQ8sd5fUxXWMi8wE4YYBFgoAzDq0B2+JJ7Py5oqMeorw2PseWUj8CvaqCaju5kCQUg4t8YPOkqQIqDPhfrThmgI3.LINFu1IVEae+7Acv5VStU5+0tM1VjJ+tpH60QGWfDwKb4vaYdnXSzEwMq04kaDtDZODSw9XBJfCQMBrOQjjqDASMF6pesz8Vp7ykUePh2TTrrWpaLkvm0Pb5YEHUeC0xdJJxdYblf7DyLu7IKvGECPx38SxquxOu7S3uj2Ue1vqZoVIoPEx1DctrSzAddRyQHMGfT3ihnm.Nubi.IB5iNd0mODclOyfXXcIBjm8RYkPHbIwtA5bYWToDAooH6liyDjur+pOYEZftHxE7GvkdogeVYxVf8KHIQhrT5EbO7YSzU40B8xABcy4PjgmiTnMY7xI6PgldIQGWHq6BB+LIDjIJRzW8RY.ObPQ2DitWFmmNzCXGhoXXxPDjmTM277AEZRRD5jnWMlXfHA3Ogg6Si9EsTIBWglXHYSzIKW1SGXRkC6mIIMEOoct44CJTzMwupafsk.JKFWdEBDqYohF7PwFnSjKC1SGNK7XjiCPJ7vubQv420fOZFfj82KwuTvP1B3phgsc6VSbAAkXpf0Gczkbw2BSlabHlhgHS44q+cUnQSBrisVR9J.vN3WhyJXtr1qyTBS+20tLji2RDjCGNDSgK9+NybyyGzDjyZcS7yE.6GhaoSE5MtTLesGJNc5YI2qTRjLN43njtbHH+8H.RDzKw1.fkcW30mOxSq0S7+5edt3SuDmNHZEQypwpGfMy8QhfwHCGkzUk5sAcuZrbvdgtGMFlu6SXhB2pSor3lJxF6y3UvyOtsGt8lf3aP0BirEQrvpujfn1FiFo.VuaWDDkMe.KDqqSPJmo86oPOQdP4Qf5C06gRiHVDnuDyhKD.SPdFEIIouZ9RA5Rd3MYVC4O2i103i.IxDwPDs0zZWkyAsW8lFTiUWIP1YLP2Zcl7lHGZWOZEROHKcEmxUyoF0NNQNqHXIaVar03ShK7T4z+FuGjIiDPhhJ+dHhO38vGD2a6mQj+lqDqW9YUkabPoQORFb+nOBd20N.+Z68qQrgtH929sg3zWCHEk6XEdTqGeV+bnFl1WQle9yxQ9quWJczwqKgqEZ560borg+pWAwNm0gvpIlBPCnTnc84f23cQpG3oPhcEesGccEmKa4NeWX0cbDBQSwWZsFTZxs8Cyy8V973mNOMKgqA5l31QYzj1RjWZqp7jHpE1arGjwswepBncC5YKQfTHf0DC6q+hv5ke1H5KATvEc1vBruFrDHe9afXewWOD0BuO2iQ04SgBwYsVjW7FgXVnmpHXtGNnV.gzZr5LF88F2FBKI6+M+YPWxupyPiOIO+Sgy5te2H6HF9SWDsupwdepAgkDqtiCJMxDQoVQOZTDeqaf3m8.fVi2j4QnloTVW4QFdlhxeBXEMBhdhSmuvyfnanGxmNKhlzeAg4XdQXs1tvoFcgOm5CcvubO1T7bW4GEuT4wSp3z08PLgMxKayD61eCH1TWndjiPo2+2G8dG2TW10PLI12vkSzOvKkn+ueo3801Ejod61BZzGNMEu5u.pIxwvxbk8u8b1z78I4kb5bt2+sP2uryinqaMT7niOqWxcd4aAYGwX5exd4f2xchtfWclVp9O6VcDky99tIRb9arrHZQs+174S9M2AG3luSJ55fqHbONQahBmbVEDWsRQhyZ8bY+n+mfVSk5TEd0aTSksQfCxtsUnVeKV.FBtkBApLEv4PigaP0AfX3hFG7+g6C+evyf86ba3dW6D+G8YQXpGYAPi6+xCSj+rW.hynWjm2.ndhiPUsGo.rjPlR3efw4nLc4bBa9pchZTjeWGCmASQhKXSPTKpmBX1CzE.jamGg7OyQPVU6agfF2gSShKXSkSneWTTBeSZ95PLBJPBSbvg3nicLzlJqnxj9FUtZRpdqoRQrC5iyT4HRWIXBJvjjlnDktIJBDjvjlEKjj4fk4qHosBV2h1rHg.soJ6tV5H7CAjPnX6BNl4LqbTi.b8Pmp.hszGhthW6EF8HYfzkv6no3Pl7Bytg5bJBl+UHZHkrEVRBKU7MvU1Pl9nMG9jTfiQFrHBEMcCE3QulatvRh1blVMfvXMBrsrBlmmftARS8baRJhGpxoxb2l0DRP2k5e0hhLtMn6cgeUrPO7AlZETSPqo.yEJRbNEMNiRWyVaUI7rSP9W0WhCO1vFhtQTfxrtGc8aYMfqoEZtpAHiovUmGGNC7nGBz50GEBStqoA7Whx3mfUbhEdls7pLjgNHBqg3DqN0jUyB3OlsEhdVrAmvCMwwdIIUf0.G4IdZljhDg5kDMgqBRU4+YQThzWWj7hNEr5sCzpVTATCMGtmfj1PxgEj9vM4sviMLGTaauAVfKTX6KBBJZ1ZJ5fnziIom0UcrD0VhrqESiSatoqkDl4OZePhfCQZljRDAazn.CgFrULDAYrHH6LNw255IwEtIR771DwOq9I5YzOwNy9wpyXnJ13aGGgEVdezjkRTDOJEHvlHXUVQp4SnYcgPP39IXi.MJzJEBYiYpUXGsooD4vgMPmkWqbZf3XGw1B4hNmyhhkIN0sOHQvfLMSPNhh.MdDoudH1Y1OQO09H9V5mDWzlI4EsYhctqGqNiWsc9t93OUdnyFSgqPpaJJRI7IKNkW7+VFqmWLCJ13qYa3mqHpRMn19JMwOkdIwotVJMVlF6bHXUkpPywIGCXlVEBVRWskjKrcGWIKDLHYXXxRLDD6LWGa9e5OgNewmEQ2TOH6XFBTUxCuwyPo8ebJrmgovtFj7+lAo3gFCqDw4btuajHat9pkToc54vkAIiofdHJG+aQaRzbGaYcr0+WutV6jc8wOeiW1yBWrCGmrrN5fXXiC99K4YRZyBIRNFSaHZIhn1blew2Ac+GctfRQg8NB4e5AovucHJs+iSoCMINGdBbFJE5JTHRilHqoa7yTjn0HJLz+44virDHhOzTn4y18ECxr6iwgt8eJZG+.yIaBjcuCQgiNAxlvD4voiFiBrY5DeztKJxNb23pcMxVBLDYXDxQbyNmahydcz4kel3MQV1207uSgcOHp7tnTt.JioRgKy8JebTHrspx8pgK41B3PFbvEGFnhNHKkQ9dzGXWr2+s6qgLsa1PfEMuquBFgqHMN3gp0I6PEMZeufDLIEYHxPThTVGaqd6.gk.2gRS1Ge+keYIqql4yMbPwDTfRnMYuhrbGfkKXQzl1cmU66rlGRDjgRjGmRsrLKeB1djjsIwdZTLIEl2kPWvKpFKrk0544iSNxgCJiBWmH.MZ557NU56RNKVLZMXRri7szScnn6dI9hpQTKZ1nOOWPZr6bRJfC9DrwmKOgJSw0nIRWI3R+b2.uvux6k3arOiImMGBJuX9jGx1zjcn2xVqY6XXwfPmSDFd0EKQDr8JpXTxxnji73UVYrS7fFY7Hj3zVKwFnGhzSxV54PX53KwahldNaEAo8SOMU.CpWiHfnO.o3LwiXKDUqAEdTOIIg0VjooDooX4Begnj+BJ3QqLczDBT3RyT6dEnaX2wpUJy0uwFcpQgpnGZ+.mqrXb6afG.sS2BjshtHFwvFsvz.lOdRvbdLGkoIGNXIjy4wf.zJHxF6l9u9q.uIyV0AJHP+gIHOIA5xHpVghNN0AH9l6Es+b8hRP9CNF.rt+qWLm109GgW1BMjvdMfcxXzwYsg42crlKUeWw4vldkWNJO+FRBlFEIOs0Q702CdYJ1.mQ8gEBJh+DOKiTpoH6JSMXEZjk7gXVySmUcPx..f2LuPjHXXxZBUo.TJPFjFQ0x3ZGejQjHGnKN6u9MzLM2ZZ7y9Ur.Ii+K1KSuqiP2O+Siq39u0V5Rqbm6.dD1Qas+gak+fu+eWKc88y6Ly6wlDZ.W7GbO35zTjsGZVCwKuWRq1yX39g+YndlIn9ITmFu642hHQD7ejCClTBbBxyPLsYMeoXjO9CRGa6zI+SMXU1gJPRwe6fLxm7gH9Y1eUO.EvsgU2R43ge1hyp8IPRgQljG6M9w3LdOWMIOiAPFKR8uH0BMXkHB8+Rddfc8E8KwhI9U6ii7k+YDo2NZYcYm5IOHElizppAZljCuQNLG1Q7TbKMbSv0T5pprVeqK+Ret523yLyzaQFJwyxjDoBcuCJY5JjlRzXsMWM9HDA91pH9LN4wGUyUoSlmmRM93iafcvh5mjC065IhH4Jen+QV6e3V4Qu1OBC9s+UlmgJOr.eyIEst20UZWieEZNUXCcmziyw9T2F+7+6M7HaMAptzSMgwTvBMRvhvcgZG74HlT9s5Fk87ZcsDazZESRIllRDjVDMYTmV.62CRHBcfBBMHTtdKXD0B2lzalqasn1NPMJDHHKNpTj+Qf4d33rfFMcG3s5V1TliPZbvuoVxrBD3XFM2rmayiVXjSUtic1I5PqbcaWP.LNExNAE9EPCR1BD3heKatk.AGloZ5USoffrBYRJZlnX40yW0qjxpYlflnPEjtuDLEWQ7JWP7jTYgos5ye4xteABljB69dY2CAMHYGluSIZgsqgfUrQdRQgFlnCe4LFEHONF6la+n5B9d.4oLYhhOA1mVBe7LAKIzIRgofjBE9wC9rIEE3XLM1DsbME21j0npJdqEEK5xHgr5raocunJETJHpdOLDjTbMnX7fE1sEhlxs7A9j0kiQ5F1aaAhs8LAsn8H1tVcvgfWt4wEGSxAVBW76LFVcGCgNLDgA0P0vVPn8FVZv1VvVd0uX5+h2RfiO77JOJVYT4K7ZW4ar7HJW2viiMcRLrQXRyf12F2t.XZJ4OBo+Uge1BR1AdmRQ+jroHZAPI734XxF1mzAQnwgIHOg9ydwfvQMkLoCjK9jAGbvGIAOWtnPgGa9h2Jux63ugncmbguvZMBKK59zWG.TX7zLwtORUwadV4OdMvxL033jCIfko1guFRTtrYtXncIBFmBGZPl9wB+rEjrCrsNA1z7qDyiPZSTlZLgvSRAlhRsbBDTYtW6hhzTBEJJfKdUYpl1DdDHBxf8kWMDIYLRtt0T1EpyKzPoTYI09Ghm3195j5.C1TIWPHBe23ihblzgpChPmDitHFsp.dMPJx+vOLGdjvOadIagoQjD6lpmljfBVSXs+b9uGBTn33TfR31zDc3XGEZxEHLlzTrrhTgsmp6vUcmOKrYrccP9JW1+CrhEorRWMB7J3PorYaIht1miP4e4wkb3PVbXsjfXX2TYsaXkgJCktmJ+74krCpEJVzcSjhvRDLMkXTx1.DcfnzQHaSGm4vQwNnHKkHGtTBuJrAGZV05JlNSSc7gsjEKQWKBSqh73PAboeRR2DuoFrMJYe1syvOQke9BJFOnTRsvKwDXlvedXlZAEcKHvaXiQNiCaZLhITBiI6KHKtkU4ZwV6TZsTFZoCgEwfwHGt3SeMPA8MLjlGjz+vGkiMYke27R19nYyzUSMqwgXJ7PMuJWIHHUYRYretQH5v8EirThonnI+2zUbtmnjVBMGBEuG7LCCv7q.oEBNHoyNDY9x09cyIYGNecipQrERFgrjEmEjnmjBjgRMjX6PRNEEHqQS5vR79IN4cxhGASOVjHHmy8gzvoEGlbe+uE69wq86mSx1CMcQrFppAGpPvwH87NOsf.MtSu.ZbGRg9nYZyVaTvxtoVEs9cKDVfcSRj5tMUFD53bkNJY+b067mSxNb4j1HNRwif8QiERS5wMiniLOcHBW1qYMYcRnISm3TK+W5PngkiQN1LcW2i3Xj9WtK14CWuyeNIaIBVGcrfJlIBtAlhx9rI6POJMN4IOdyIQGp3UvlTVAbQYV.s+dRtRD5rpooDqoBqjrPvwIGGio+L6FpWEMXtIaWTKXAkMT78TTXNH5f4aGm7TBu5NWdncxEvkTTnbRI76xhqaDjCG5th.SoANHS9id.F46LWmScIaeTrNRvBEw3v3SWOEkpLzjdnpqxXgQSaJi3cn4sM92EgDAELqtz3XiERNDSUXeL0GbXFN+bcdyhrCyyL6Ev+rAqxxL00LqfDUviQmCanCutoL65cU6JyeOZTT.ORPDSLHRcOeCd5e97c7yhrU.IIBII5bNpNz7oII+rz9Nbz5njCndDMT.GSTsBxq61MQ2JWsSzxrbAPVbX.RxdH0D6gI9WVnyYVjcPP4wrv5lKa4B1pBqcd5vvSNJ4K+2U9cA0CjBjlhPUNDo0Ps1ZGDiYJGlvJkJUSUHnp1U30wt7eMS8bX0bm.IPJJxAXhOwOjmYuKzwWWw3KjsxGkoMh5qLSPEkEcG92U9cEwkwIGkBhwDMy3uJCTXkDYPUQvu7FRtG9lTWLLM+XNslXlzHRXLwLXG4al0CpEwwhnl7ialNVqN5.D91a2L9C9XL3GoQNmYQ1dn4Tn9K0DQYsuKV0n5PkwNN4oRZNTAuTTjTjmFczrnl+OG7vAeSouv0TYSBSMnZWQoUqt37c2pbzuG9UTkin7zKg+zoIScrQRbiLfYF+u7CKDLBYScHl58uKFMWibNUQ1giNmK2PpHX+ozpF5HfnyYbDinpq0XjiB3YNm4KCOmQTuKJbvmooDdljNv03ZmZyKr1kaSq20QQXEIARgGSRQrQRTrJWRphgrbo5Z4ZLuYimSODY+m+ZrqcznmWUjsBEqkjDkYWw+Cz9NKEqvwHgZtO1rHZXJJPJJfddhFUkhEyiO4oDkLIavLdsaFJdkTe8v6uBMEviB.SiC1HHIQnKhRGDshw6KUsi.2HeLx7s9ILwmoYN2pHaWTzkIQ4ps7IV.OFmbU4ALeimw7MhmCePGi7LMEKKFr1Fa3H3B3RA7JWxoBq44UmFSq9LIqxVjOAkLqrlc7udHNcWNexVJt2BNLSsuiPo2+g4vM0h.qJxNbi2tdyVOLYLiAm4QcLxiSEt0rDdLF4o.tyZzbXM9vAkIVzdFmhpK2k3DUasCI1h3SQxRZhPeDmNayizsPvnjezQH2636xSefl87qhrCp57UmUJRDjhBLIEHtw8oBBRy2.Q5Aknxr3vXjCkg7gpSX9LThr3xz3TVe5kBarWIQ3ScQ7XHxPODm9HQcmVrYgEBlhRNCR1a8d3oezV4ZTEY6T1rHLM6.Q6CQ1xM3v7.OKkHJ1lfWD3fkJmYUZzPOGtLEEwwjtAyHh9jGRtVD97klhjCWVOcPWDoEpaBAHHFDk3fj9e9N3Iu6VscUlr0.qwrj3C6EJPXrM1yT7zDLN4IiY9IEZFkrT.mplm0EEonHYM4kcshoqbDek+25AcM+tRs.Vs2cILPPCQF1.cQOsvNfT39S1gYp+suD63CuXZOkIaW7oK5fPqiCGUebxV1l5oonQQj.E3FhoMIxevqcOS56lxjD70NObkN6HvgGpY43iJ6.Le9kuRGhDl8nqF21ECe5GgrHnS5tIH7v.dbHR++8KvN96YQt8LYG1f7Ylhcd3HniSlxY8YI7Hkop.6fOiPVbMwvNH8cKQZSp7FpWtGAE1ovZAZkD3LROZdnpnKQkWGqxjtU4TWZ0BBS5f3Fazajr+Ifnm5S74Y6ueXdKu5MDrgffezIQIgY4tH.JhGGmbDAoIceygEAwc93jyLxUX7NVAypt.iITy3xx4BsKhnVyf7MZ7GVRJWppXgMKBc9zjTj0u.YIZ3Ji4vj9197r8+QZCDMXH6PSpBC9gDAiPVBpPdvvjEIAQYYBxi1zvCTTKP0qfZeckystxBeiyO7Ld7Z0PxPX77E8Sh4zJDKDLFEJMHo+P2N67CRazGMFxNXzc37eYvkon.VHYLSfMBR82B3ilTTjwMYURk9lNDq7uVmAtlNhwvZUwluZXUcp1LDMTGjgI2XCR522cxt95s66sMDPvCT9lKXTxf.ISSIJZlOdJic0CSViZYqFh8SigPGd.yeD8VdZKyT22BQn1EGgoe5ixTu66sNoAb6.Wc9lA..v.CmDQAQE1AtB0kDlpbRVbHigjSQQxgCoHOSQIFjLlPTN6.RT8CT0+0pktEEMcQishS3y.KDjGOFho+d6kodu+HdlCtTceKOxFBHvQIaY6jKfKiSdFgrLNELi609ZHkFxnQ4BxhfNi.gRftKEhjfNp.hB5XfHoMxDg9Ce4ZiRetPX7zWoUbKv6gvHjOywI2GZmLzmX6yS9i0NfsOZ5mjDAI4vkooDSQIxPINN43vjlIovn.eeM7jBTOmB49U3Nz8xtyVumi2IasyLn51lXcIgAbQe1f57DvKQCWrDQhv8vhUBx2w3afUBiyDFqDJgOGio+oiPw+16gc9DK7Y1Ft2ON2nd.RvlnKNLo44XRNN44.Lg+fj6AmlheUItOvWi8MLKRMCuNN+Nih0ZDHtbEhqQ.+WjHN2fPGt7JvON1DqM3y5lAgYDSTrxlEmO9SyA+W+kLQqrzQas6+14lzCPGzGwYmLB6kIXOb7GYHl9C8U427.zt2Tsq.+obIaRf6KBrd6RzuDKj8ubMZ2hf3PubM11rRWbcv+a6h2G4tawfYrXfXWbKtagdsmf77cXetOCS9guWdzaaXXIc9iZwahy6bsHxaUf75DHddRBqJQKcnKSHHWpPn4T9nnD9+xh3+Q+prquwR3sb9aO6jaYjym9W+8xuM6OjCbK2A63NWoZL.7V3h5E3kCh2MvUFAqDAtZs8S6IwdIwe5g9qvEMkvamN38omlwuq+ykXEvVv10g3uZrLTZseZ19e4mhG6SrR1XpEuYtvWrEVuIE5q2B4FCGkztP6lrCCPSI7K5g5gcw+yoI+O5tY+S21tIKBHRweu99XOes2Ceq2FKgyOuXv0x4s1jD6OCzuRA7xjHsfEeAjqyx6fksNBIXiO4G2E+GPg5KdWrqeJMZwEeYBhcxMc3ODOxapUy9gkSbCrsHYovEnv9MJgWJvEFAqt0UD5zFEspBZUFZ0fLgUOTI72gB08kGmG5axdNbSdIW1f8XT39uGd5kE67Vr3yx1cA1o4e7V4EbYkv+hrP7GqPe0RDcKPDKzFdc4elMhPvVYyB0AIz4GgSg3hpnGpI.8uvC+ueN79keS1yy1VePWhf8nj4axpTw2KDt6.mQ7D.290w42aDrtPMhKSi3r0n2DH1BvYXgnSXFhML2ugYVHCgnxrnQA3iWVAh86ided3uCeTObFb9s+GrurzFiH0xABTbbU1bKsK7lYa8Ck5WfXc.aUiXsRDaLJxSW.8og0Hfd.5BDcnQ6oPuGM5GSC6Dz6wC03SiXzuKOcpU5mmEK9+mg+Gdbbf6pa.....jTQNQjqBAlf" ], + "embed" : 1, + "id" : "obj-41", + "maxclass" : "fpic", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 17.5, 17.5, 122.0, 123.0 ], + "pic" : "mage.png" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-8", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 182.5, 334.636353, 100.0, 18.0 ], + "text" : "engineadd $1 $2" + } + + } +, { + "box" : { + "id" : "obj-3", + "maxclass" : "ezdac~", + "numinlets" : 2, + "numoutlets" : 0, + "patching_rect" : [ 182.5, 643.725769, 45.0, 45.0 ] + } + + } +, { + "box" : { + "id" : "obj-2", + "maxclass" : "live.gain~", + "numinlets" : 2, + "numoutlets" : 5, + "outlettype" : [ "signal", "signal", "", "float", "list" ], + "parameter_enable" : 1, + "patching_rect" : [ 182.5, 495.266846, 67.0, 131.0 ], + "saved_attribute_attributes" : { + "valueof" : { + "parameter_longname" : "live.gain~[1]", + "parameter_shortname" : "output level", + "parameter_type" : 0, + "parameter_mmin" : -70.0, + "parameter_mmax" : 6.0, + "parameter_initial" : [ 0.0 ], + "parameter_unitstyle" : 4 + } + + } +, + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "varname" : "live.gain~" + } + + } +, { + "box" : { + "color" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial", + "fontsize" : 12.0, + "id" : "obj-1", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 4, + "outlettype" : [ "signal", "bang", "int", "int" ], + "patching_rect" : [ 182.5, 436.5, 59.5, 20.0 ], + "text" : "mage~" + } + + } +, { + "box" : { + "border" : 1.0, + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "id" : "obj-47", + "maxclass" : "dropfile", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 182.5, 156.5, 42.712784, 43.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-4", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 41.5, 425.0, 22.706104, 22.858788 ], + "presentation_rect" : [ 60.0, 60.0, 27.123047, 30.34375 ], + "rounded" : 60.0, + "text" : "0", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-93", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 193.0, 167.5, 21.792936, 21.0 ], + "presentation_rect" : [ 15.0, 15.0, 27.123047, 30.34375 ], + "rounded" : 60.0, + "text" : "1", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-110", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 450.5, 382.5, 21.853052, 22.0 ], + "presentation_rect" : [ 45.0, 45.0, 27.123047, 30.34375 ], + "rounded" : 60.0, + "text" : "3", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } +, { + "box" : { + "background" : 1, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "bgovercolor" : [ 0.698039, 0.698039, 0.698039, 1.0 ], + "bordercolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "borderoncolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "fontname" : "Arial Bold", + "fontsize" : 12.0, + "hint" : "", + "id" : "obj-94", + "ignoreclick" : 1, + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 324.961395, 167.5, 21.790001, 21.0 ], + "presentation_rect" : [ 60.0, 60.0, 27.123047, 30.34375 ], + "rounded" : 60.0, + "text" : "2", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "textovercolor" : [ 0.2, 0.2, 0.2, 1.0 ] + } + + } + ], + "lines" : [ { + "patchline" : { + "destination" : [ "obj-2", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-1", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-24", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-1", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-6", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-1", 3 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-96", 0 ], + "disabled" : 0, + "hidden" : 1, + "midpoints" : [ 43.86364, 258.0, 21.0, 258.0, 21.0, 300.0, 43.86364, 300.0 ], + "source" : [ "obj-102", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-8", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-104", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-104", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-105", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-19", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-105", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-1", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-118", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-2", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-12", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-96", 0 ], + "disabled" : 0, + "hidden" : 1, + "midpoints" : [ 43.86364, 396.0, 21.0, 396.0, 21.0, 300.0, 43.86364, 300.0 ], + "source" : [ "obj-13", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-138", 0 ], + "disabled" : 0, + "hidden" : 1, + "midpoints" : [ 349.08136, 579.983459, 325.85022, 579.983459, 325.85022, 526.516602, 349.08136, 526.516602 ], + "source" : [ "obj-136", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-138", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-137", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-135", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-138", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-136", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-138", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-317", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-138", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-1", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-16", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-138", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-161", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-104", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-19", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-98", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-19", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-11", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-2", 2 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 1 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-2", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-2", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-31", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-2", 4 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-21", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-22", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-27", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-31", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-91", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-33", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-10", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-39", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-105", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-47", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-1", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-5", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-1", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-7", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-1", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-8", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-107", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-8", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-1", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-86", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-1", 0 ], + "disabled" : 0, + "hidden" : 0, + "midpoints" : [ 324.0, 432.75, 192.0, 432.75 ], + "source" : [ "obj-91", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-33", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-95", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-13", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-96", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-86", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-96", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-96", 0 ], + "disabled" : 0, + "hidden" : 0, + "source" : [ "obj-98", 0 ] + } + + } + ] + } +, + "patching_rect" : [ 9.0, 86.0, 47.0, 20.0 ], + "saved_object_attributes" : { + "default_fontface" : 0, + "default_fontname" : "Arial", + "default_fontsize" : 12.0, + "description" : "", + "digest" : "", + "fontface" : 0, + "fontname" : "Arial", + "fontsize" : 12.0, + "globalpatchername" : "", + "tags" : "" + } +, + "text" : "p main", + "varname" : "main" + } + + } + ], + "lines" : [ ], + "parameters" : { + "obj-2::obj-25" : [ "live.gain~[4]", "output level", 0 ], + "obj-15::obj-7" : [ "live.gain~[6]", "output level", 0 ], + "obj-120::obj-2" : [ "live.gain~[1]", "output level", 0 ], + "obj-124::obj-14" : [ "live.gain~[2]", "output level", 0 ], + "obj-123::obj-18" : [ "live.gain~[3]", "output level", 0 ], + "obj-5::obj-26" : [ "live.gain~[5]", "output level", 0 ] + } +, + "dependency_cache" : [ { + "name" : "mage_glossary.maxpat", + "bootpath" : "/Users/vichug/Documents/_STAGE_NUMEDIART_MAGE", + "patcherrelativepath" : ".", + "type" : "JSON", + "implicit" : 1 + } +, { + "name" : "mage~.mxo", + "type" : "iLaX" + } + ] + } + +} diff --git a/examples/maxmsp/MagePackage/patchers/mage_glossary.maxpat b/examples/maxmsp/MagePackage/patchers/mage_glossary.maxpat new file mode 100644 index 0000000..3de2307 --- /dev/null +++ b/examples/maxmsp/MagePackage/patchers/mage_glossary.maxpat @@ -0,0 +1,652 @@ +{ + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 6, + "minor" : 1, + "revision" : 3, + "architecture" : "x86" + } +, + "rect" : [ 25.0, 69.0, 740.0, 781.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 11.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 0, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 0, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "boxanimatetime" : 200, + "imprint" : 0, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "boxes" : [ { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-39", + "linecount" : 3, + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 423.0, 972.636353, 238.0, 45.0 ], + "prototypename" : "hidden link", + "text" : ";\rmax launchbrowser http://mage.numediart.org/publications.php" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-37", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 293.0, 984.636353, 130.0, 21.0 ], + "prototypename" : "magefont", + "text" : "mage.numediart.org", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "underline" : 1 + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-19", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 34.212769, 984.636353, 566.0, 21.0 ], + "text" : "some more theorical informations/papers @ ." + } + + } +, { + "box" : { + "comment" : "", + "hidden" : 1, + "id" : "obj-32", + "maxclass" : "inlet", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "bang" ], + "patching_rect" : [ 20.0, 73.0, 25.0, 25.0 ] + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.0, + "hidden" : 1, + "id" : "obj-21", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 20.0, 105.0, 33.0, 17.0 ], + "text" : "front" + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 11.0, + "hidden" : 1, + "id" : "obj-14", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 20.0, 131.0, 64.0, 19.0 ], + "save" : [ "#N", "thispatcher", ";", "#Q", "end", ";" ], + "text" : "thispatcher" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-30", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 131.212769, 905.636353, 566.0, 35.0 ], + "text" : "Simply means a system suited for real-time manipulation. Mage allows control over many synthesis parameters during said synthesis, at real time ; hence the \"performative\" appellation." + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-27", + "linecount" : 3, + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 519.5, 879.636353, 140.0, 45.0 ], + "prototypename" : "hidden link", + "text" : ";\rmax launchbrowser http://hts.sp.nitech.ac.jp/" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-20", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 513.5, 845.636353, 19.0, 21.0 ], + "text" : "/" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-17", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 519.5, 845.636353, 33.0, 21.0 ], + "prototypename" : "magefont", + "text" : "HTK", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "underline" : 1 + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-16", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 490.5, 845.636353, 33.0, 21.0 ], + "prototypename" : "magefont", + "text" : "HTS", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "underline" : 1 + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-18", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 294.0, 831.636353, 66.0, 21.0 ], + "prototypename" : "magelink", + "text" : "wikipedia", + "textcolor" : [ 0.901961, 0.227451, 0.47451, 1.0 ], + "underline" : 1 + } + + } +, { + "box" : { + "fontname" : "Arial", + "fontsize" : 12.0, + "hidden" : 1, + "id" : "obj-15", + "linecount" : 4, + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 420.0, 767.636353, 268.0, 59.0 ], + "text" : ";\rmax launchbrowser http://en.wikipedia.org/wiki/Hidden_Markov_model" + } + + } +, { + "box" : { + "handoff" : "", + "id" : "obj-6", + "maxclass" : "ubutton", + "numinlets" : 1, + "numoutlets" : 4, + "outlettype" : [ "bang", "bang", "", "int" ], + "patching_rect" : [ 294.0, 831.636353, 62.0, 21.0 ] + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-5", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 131.212769, 831.636353, 566.0, 49.0 ], + "text" : "Hidden Markov Models. See for more info. Statistical model which allows for multiple transitions between several states. They are at the core of the speech synthesis systems, which in turn are at the core of mage." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-33", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 131.212769, 786.636353, 537.0, 21.0 ], + "text" : "Parameters generation/interfacing/everything engine at the core of mage." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 14.315886, + "frgb" : 0.0, + "id" : "obj-34", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 21.5, 786.636353, 66.0, 23.0 ], + "text" : "mage" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 14.315886, + "frgb" : 0.0, + "id" : "obj-31", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 21.5, 905.636353, 102.0, 40.0 ], + "text" : "performative system" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 14.315886, + "frgb" : 0.0, + "id" : "obj-29", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 21.5, 831.636353, 66.0, 23.0 ], + "text" : "hmm" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-25", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 131.212769, 743.636353, 537.0, 21.0 ], + "text" : "Synthesis engine at the core of mage." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 14.315886, + "frgb" : 0.0, + "id" : "obj-26", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 21.5, 743.636353, 66.0, 23.0 ], + "text" : "vocoder" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-24", + "linecount" : 7, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 131.212769, 617.636353, 574.0, 105.0 ], + "text" : "Shortest temporal unit that is used by mage (except the vocoder which of course synthesizes sound at sample rate). Frame length is an absolute value (= not changing, as opposed to state duration for example, which depends on many parameters) expressed in samples. User has direct and realtime control on that value with the message \"speed\" ans its derivatives (see relevant tab). Default frame length is 240 samples, default mage framerate is 48000 Hz (doesn't work correctly at other rates at the moment) ; which gives a defaut frame length of 240 samples at 48000 samples per second <-> 200 frames per second <-> 5 miliseconds per frame." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-22", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 131.212769, 473.636353, 525.0, 49.0 ], + "text" : "Similarly to the label queue, FIFO list containing all the models to be synthesized by the vocoder. Unlike the label queue, user has very few control or information on the model queue." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 14.315886, + "frgb" : 0.0, + "id" : "obj-23", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 20.0, 473.636353, 101.0, 23.0 ], + "text" : "model queue" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-13", + "linecount" : 4, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 131.212769, 536.636353, 537.0, 63.0 ], + "text" : "A temporal subdivision of a phoneme/label/model ; each of those has five states, \"beginning - beginning/middle - middle - middle/end - end\", each state lasts a different number of frames (usually between 1 and 10, first is shorter, middle is longer, or somehting along those lines) " + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 14.315886, + "frgb" : 0.0, + "id" : "obj-12", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 21.5, 617.636353, 57.0, 23.0 ], + "text" : "frame" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-11", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 131.212769, 426.636353, 525.0, 21.0 ], + "text" : "Label computed into a set of synthesis parameter for the vocoder ?" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 14.315886, + "frgb" : 0.0, + "id" : "obj-10", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 21.5, 536.636353, 57.0, 23.0 ], + "text" : "state" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 14.315886, + "frgb" : 0.0, + "id" : "obj-9", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 20.0, 426.636353, 57.0, 23.0 ], + "text" : "model" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 14.315886, + "frgb" : 0.0, + "id" : "obj-7", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 20.0, 327.636353, 90.0, 23.0 ], + "text" : "label queue" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-8", + "linecount" : 5, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 131.212769, 327.636353, 525.0, 77.0 ], + "text" : "Internal mage's buffer where are waiting the next labels to be processed/synthesized. It is a FIFO (first in first out) queue. When you send a label in the queue, it waits until the queue reaches his turn, then it is computed (all the information are translated to parameters to give to the vocoder) then the computed parameters are sent to the models queue." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 14.315886, + "frgb" : 0.0, + "id" : "obj-3", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 20.0, 268.636353, 90.0, 40.0 ], + "text" : ".lab or labels list" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-4", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 131.212769, 268.636353, 522.0, 35.0 ], + "text" : "File containing a list of several successive labels, it is the output of label file generation from a text file." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 14.315886, + "frgb" : 0.0, + "id" : "obj-1", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 20.0, 200.636353, 57.0, 23.0 ], + "text" : "label" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-2", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 131.212769, 200.636353, 525.0, 49.0 ], + "text" : "One label is a string containing information needed to synthesize a phoneme. It gives info about what is the current phoneme, what are the few previous and next phonemes, current phoneme's duration, intonation, accentuation, etc." + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 14.315886, + "frgb" : 0.0, + "id" : "obj-114", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 20.0, 21.636353, 57.0, 23.0 ], + "text" : "engine" + } + + } +, { + "box" : { + "fontname" : "AdobeKaitiStd", + "fontsize" : 12.0, + "frgb" : 0.0, + "id" : "obj-111", + "linecount" : 11, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 131.212769, 21.636353, 534.0, 162.0 ], + "text" : "a set of all the rules needed to make mage replicate a trained model's specific voice. You will need one different engine for each voice you want to imitate. \n\nSix different engines are provided in the \"data\" archives, in the folder data/configFiles/cmu-artic are the .conf files ; you will probably need to modify the filepath in these so that they point to your current installation's path of folder data/voices/[engine name].\n\nThose files were obtained after a training procedure, which consists - to summarize - in recording one person's voice reading phonetically balanced texts, then analysing and processing the result until the obtention of a set of rules for speech synthesis." + } + + } +, { + "box" : { + "handoff" : "", + "id" : "obj-28", + "maxclass" : "ubutton", + "numinlets" : 1, + "numoutlets" : 4, + "outlettype" : [ "bang", "bang", "", "int" ], + "patching_rect" : [ 490.5, 845.636353, 62.0, 21.0 ] + } + + } +, { + "box" : { + "handoff" : "", + "id" : "obj-38", + "maxclass" : "ubutton", + "numinlets" : 1, + "numoutlets" : 4, + "outlettype" : [ "bang", "bang", "", "int" ], + "patching_rect" : [ 293.212769, 984.636353, 129.787231, 21.0 ] + } + + } + ], + "lines" : [ { + "patchline" : { + "destination" : [ "obj-14", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-21", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-27", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-28", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-21", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-32", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-39", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-38", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-15", 0 ], + "disabled" : 0, + "hidden" : 1, + "source" : [ "obj-6", 0 ] + } + + } + ] + } + +} diff --git a/examples/maxmsp/README b/examples/maxmsp/README index e89ae78..f867383 100644 --- a/examples/maxmsp/README +++ b/examples/maxmsp/README @@ -1 +1,6 @@ external for Max/MSP + +16/09/2013 +installation : +* Place the MagePackage fodler in one of your max package folders. +* Try the MaxMageTuto.maxpat first if you're new to mage~ with MaxMSP. \ No newline at end of file diff --git a/examples/maxmsp/mage~.cpp b/examples/maxmsp/mage~.cpp old mode 100644 new mode 100755 index b0fa554..b5758d6 --- a/examples/maxmsp/mage~.cpp +++ b/examples/maxmsp/mage~.cpp @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------------------------- */ -/* */ +/* */ /* This file is part of MAGE / pHTS( the performative HMM-based speech synthesis system ) */ /* */ /* MAGE / pHTS is free software: you can redistribute it and/or modify it under the terms */ @@ -26,10 +26,14 @@ /* */ /* ----------------------------------------------------------------------------------------------- */ -/** - * @file mage~.cpp - * @author Loïc Reboursière, Victor Huguenin +/** + * @file mage~.cpp + * @author Loïc Reboursière, Victor Huguenin */ + +// Github version + +//MaxMSP #include "ext.h" #include "ext_obex.h" #include "z_dsp.h" @@ -39,6 +43,8 @@ #include #include #include +#include + using namespace std; using namespace MAGE; @@ -46,6 +52,8 @@ using namespace MAGE; extern "C" { + void *mage_tilde_class; + typedef struct _mage_tilde { t_pxobject ob; @@ -54,106 +62,124 @@ extern "C" vector < string > labels; int currentLabel; Mage *mage; - void *intout2; // essai - void *intout; // essai - void *bangout; // essai + void *intout; // V + void *intout2; // V + void *bangout; // V } t_mage_tilde; - /* typedef struct _fftinfo - { - t_pxobject x_obj; - t_pfftpub *x_pfft; // pointer to owning fftpatcher struct - - long x_fftsize; // size of input fft (in samples) - long x_ffthop; // hop size for window advance - long x_n; // vector size (half of fft size if fullspect = 0) - int x_fullspect; // if full spectra are used - - void *x_out[4]; // array of outlets - - } t_fftinfo; -*/ - //void *mage_tilde_new(t_symbol *s, double f); void *mage_tilde_new( t_symbol *s, long argc, t_atom *argv ); t_int *mage_tilde_perform( t_int * w ); void mage_tilde_dsp( t_mage_tilde * x, t_signal ** sp, short *count ); void mage_tilde_bang( t_mage_tilde * x); void mage_tilde_free( t_mage_tilde * x ); - void mage_tilde_setup( void ); void * genThread( void * argv ); void fillLabels( t_mage_tilde * x ); //access to MAGE controls - void mage_tilde_alpha( t_mage_tilde * x, double alpha ); void mage_tilde_reset( t_mage_tilde * x ); - void mage_tilde_speed( t_mage_tilde * x, double speed, double action ); - void mage_tilde_volume( t_mage_tilde * x, double volume ); - - void mage_tilde_label_clear( t_mage_tilde * x ); //essai - + //manually add/remove engines + void mage_tilde_engine_add( t_mage_tilde * x, t_symbol *name, t_symbol *conf ); + void mage_tilde_engine_remove( t_mage_tilde * x, t_symbol *name ); + //interpolation between voices - V + void mage_tilde_interpolation( t_mage_tilde * x, t_symbol *voice,double weight ); + // duration of each state of a label, in frames + void mage_tilde_duration( t_mage_tilde * x, Symbol *s, long ac, t_atom *argv ); + //labels manipulation void mage_tilde_label( t_mage_tilde * x, t_symbol *label ); + void mage_tilde_label_clear( t_mage_tilde * x ); //V + void mage_tilde_label_pause( t_mage_tilde * x ); //V void mage_tilde_label_fill( t_mage_tilde * x ); + void mage_tilde_label_fill_until_end( t_mage_tilde * x ); // V void mage_tilde_label_next( t_mage_tilde * x ); + void mage_tilde_label_nextvowel( t_mage_tilde * x ); // V void mage_tilde_label_insert( t_mage_tilde * x, long lab ); void mage_tilde_label_replace( t_mage_tilde * x, long lab ); void mage_tilde_label_switch( t_mage_tilde * x, long lab ); - + //pitch + void mage_tilde_pitch( t_mage_tilde * x, Symbol *s, long ac, t_atom *argv ); // V void mage_tilde_pitch_overwrite( t_mage_tilde * x, double pitch ); void mage_tilde_pitch_scale( t_mage_tilde * x, double pitch ); void mage_tilde_pitch_shift( t_mage_tilde * x, double pitch ); void mage_tilde_pitch_synth( t_mage_tilde * x ); -//essai d'ajouter l'interpolation entre voix - void mage_tilde_interpolation( t_mage_tilde * x, t_symbol *voice,double weight ); -//essai d'ajouter l'assistance aux inlets/outlets + //speed + void mage_tilde_speed( t_mage_tilde * x, Symbol *s, long ac, t_atom *argv );//V + //volume, alpha, gamma + void mage_tilde_volume( t_mage_tilde * x, double volume ); + void mage_tilde_alpha( t_mage_tilde * x, double alpha ); + void mage_tilde_gamma( t_mage_tilde * x, double gamma );// V + //vibrato + void mage_tilde_vib_amp (t_mage_tilde *x, double vibamp); // V + void mage_tilde_vib_thresh (t_mage_tilde *x, double vibthresh); // V + void mage_tilde_vib_zoom (t_mage_tilde *x, double vibzoom); // V + void mage_tilde_vib_offset (t_mage_tilde *x, double viboffset); // V + //inlets/outlets assistance - V void mage_tilde_assist (t_mage_tilde *x, void *b, long io, long index, char *s); - void mage_tilde_printquery (t_mage_tilde *x); // essai - // engines add/remove manually - void mage_tilde_engine_add( t_mage_tilde * x, t_symbol *name, t_symbol *conf ); - void mage_tilde_engine_remove( t_mage_tilde * x, t_symbol *name ); - - void mage_tilde_duration( t_mage_tilde * x, Symbol *s, long ac, t_atom *argv ); - - void *mage_tilde_class; - + int main( void ) { t_class *c; c = class_new("mage~", (method)mage_tilde_new, (method)mage_tilde_free, (long)sizeof(t_mage_tilde), 0L, A_GIMME, 0); + // Core class_addmethod(c, (method)mage_tilde_bang, "bang", 0); // post("_setup : blocksize = %d",sys_getblksize()); class_addmethod(c, (method)mage_tilde_dsp, "dsp", A_CANT, 0); - class_addmethod(c, (method)mage_tilde_alpha, "alpha", A_FLOAT, 0); + + // Reset class_addmethod(c, (method)mage_tilde_reset, "reset", A_GIMME, 0); -// class_addmethod(c, (method)mage_tilde_speed, "speed", A_FLOAT, 0); // this one - class_addmethod(c, (method)mage_tilde_speed, "speed", A_FLOAT, A_FLOAT, 0); // this one - class_addmethod(c, (method)mage_tilde_volume, "volume", A_FLOAT, 0); + + // Engine + class_addmethod(c, (method)mage_tilde_engine_add, "engineadd", A_SYM, A_SYM, 0); + class_addmethod(c, (method)mage_tilde_engine_remove, "engineremove", A_SYM, 0); + + // Interpolate - V + class_addmethod(c, (method)mage_tilde_interpolation, "interpolate", A_SYM, A_FLOAT, 0); + + // Duration + class_addmethod(c, (method)mage_tilde_duration, "duration", A_GIMME, 0); + + // Label class_addmethod(c, (method)mage_tilde_label, "label", A_SYM, 0); - class_addmethod(c, (method)mage_tilde_label_clear, "labelclear",0);//essai + class_addmethod(c, (method)mage_tilde_label_clear, "labelclear",0);// V + class_addmethod(c, (method)mage_tilde_label_pause, "labelpause",0);// V class_addmethod(c, (method)mage_tilde_label_fill, "labelfill", A_GIMME, 0); + class_addmethod(c, (method)mage_tilde_label_fill_until_end, "labelfilluntilend", A_GIMME, 0);// V class_addmethod(c, (method)mage_tilde_label_next, "labelnext",0); + class_addmethod(c, (method)mage_tilde_label_nextvowel, "labelnextvowel",0);//essai class_addmethod(c, (method)mage_tilde_label_insert, "labelinsert", A_LONG, 0); class_addmethod(c, (method)mage_tilde_label_replace, "labelreplace", A_LONG, 0); class_addmethod(c, (method)mage_tilde_label_switch, "labelswitch", A_LONG, 0); + + // Pitch + class_addmethod(c, (method)mage_tilde_pitch, "pitch", A_GIMME, 0); // V class_addmethod(c, (method)mage_tilde_pitch_overwrite, "pitchoverwrite", A_FLOAT, 0); class_addmethod(c, (method)mage_tilde_pitch_scale, "pitchscale", A_FLOAT, 0); class_addmethod(c, (method)mage_tilde_pitch_shift, "pitchshift", A_FLOAT, 0); class_addmethod(c, (method)mage_tilde_pitch_synth, "pitchsynth", A_GIMME, 0); - class_addmethod(c, (method)mage_tilde_duration, "duration", A_GIMME, 0); -//essai d'ajouter l'interpolation entre voix - class_addmethod(c, (method)mage_tilde_interpolation, "interpolate", A_SYM, A_FLOAT, 0); -//essai d'ajouter l'assistance aux inlets/outlets - class_addmethod(c, (method)mage_tilde_assist, "assist", A_CANT, 0); -// class_addmethod(c, (method)mage_tilde_curlabel, 0) - class_addmethod(c, (method)mage_tilde_printquery, "printquery", 0); // ça c'est moi qui l'ai fait - // Engine - class_addmethod(c, (method)mage_tilde_engine_add, "engineadd", A_SYM, A_SYM, 0); - class_addmethod(c, (method)mage_tilde_engine_remove, "engineremove", A_SYM, 0); - - // ps_spfft = gensym("__pfft~__"); // owning pfft~ is bound to this while patch is loaded - // fftinfo_warning = 1; + // Speed + class_addmethod(c, (method)mage_tilde_speed, "speed", A_GIMME, 0); //V + + // Volume + class_addmethod(c, (method)mage_tilde_volume, "volume", A_FLOAT, 0); + + // Alpha + class_addmethod(c, (method)mage_tilde_alpha, "alpha", A_FLOAT, 0); + + // Gamma + class_addmethod(c, (method)mage_tilde_gamma, "gamma", A_FLOAT, 0); //V + + // Vibrato + class_addmethod(c, (method)mage_tilde_vib_amp, "vibratoamp", A_FLOAT, 0);// V + class_addmethod(c, (method)mage_tilde_vib_thresh, "vibratothresh", A_FLOAT, 0);// V + class_addmethod(c, (method)mage_tilde_vib_zoom, "vibratozoom", A_FLOAT, 0);// V + class_addmethod(c, (method)mage_tilde_vib_offset, "vibratooffset", A_FLOAT, 0);// V + + + + //inlets/outlets assistance - V + class_addmethod(c, (method)mage_tilde_assist, "assist", A_CANT, 0); class_dspinit(c); class_register(CLASS_BOX, c); @@ -175,57 +201,38 @@ extern "C" x->mage = new Mage(); // fillLabels(x); -// post("_new: loading engine"); -// x->mage->addEngine( "slt", "/Users/vichug/Music/MAGE/mage-2.00/data/configFiles/cmu-artic/slt.conf" ); -// x->mage->addEngine( "awb", "/Users/vichug/Music/MAGE/mage-2.00/data/configFiles/cmu-artic/awb.conf" ); -// x->mage->addEngine( "clb", "/Users/vichug/Music/MAGE/mage-2.00/data/configFiles/cmu-artic/clb.conf" ); -// x->mage->addEngine( "jmk", "/Users/vichug/Music/MAGE/mage-2.00/data/configFiles/cmu-artic/jmk.conf" ); -// x->mage->addEngine( "rms", "/Users/vichug/Music/MAGE/mage-2.00/data/configFiles/cmu-artic/rms.conf" ); -// x->mage->addEngine( "bdl", "/Users/vichug/Music/MAGE/mage-2.00/data/configFiles/cmu-artic/bdl.conf" ); -// x->mage->addEngine( "hpo", "/Users/vichug/Music/MAGE/mage-2.00/data/configFiles/cmu-artic/hpo.conf" ); -// x->mage->addEngine( "hpr", "/Users/vichug/Music/MAGE/mage-2.00/data/configFiles/cmu-artic/hpr.conf" ); -// x->mage->addEngine( "neu", "/Users/vichug/Music/MAGE/mage-2.00/data/configFiles/cmu-artic/neu.conf" ); - x->mage->enableInterpolation(true); +// Uncomment the following block and replace MageSourcePath with your path to your Mage sources; +// then recompile, if you want to avoid needing to manually add voice engines each time +// that you create a new Mage instance. +/* post("_new: loading engine"); + x->mage->addEngine( "slt", "/MageSourcePath/data/configFiles/cmu-artic/slt.conf" ); + x->mage->addEngine( "awb", "/MageSourcePath/data/configFiles/cmu-artic/awb.conf" ); + x->mage->addEngine( "clb", "/MageSourcePath/data/configFiles/cmu-artic/clb.conf" ); + x->mage->addEngine( "jmk", "/MageSourcePath/data/configFiles/cmu-artic/jmk.conf" ); + x->mage->addEngine( "rms", "/MageSourcePath/data/configFiles/cmu-artic/rms.conf" ); + x->mage->addEngine( "bdl", "/MageSourcePath/data/configFiles/cmu-artic/bdl.conf" ); + post("_new: done with engine"); */ -// post("_new: done with engine"); - + x->mage->enableInterpolation(true); + post("_new: starting genThread"); pthread_create(&(x->thread), NULL, genThread, (void *) x); post("_new : done with genThread"); - x->intout2 = intout((t_object *)x); // essai - x->intout = intout((t_object *)x); // essai - x->bangout = bangout((t_object *)x); // essai -// outlet_new(&x->x_obj, &s_signal); // Pd line -// outlet_new((t_pxobject *)x, "signal"); + x->intout = intout((t_object *)x); // V + x->intout2 = intout((t_object *)x); // V + x->bangout = bangout((t_object *)x); // V outlet_new(x, "signal"); post("_new: done\n"); return (x); } - - void mage_tilde_free( t_mage_tilde * x ) - { - pthread_cancel(x->thread); - printf( "stopping genThread\n" ); - pthread_join(x->thread,NULL); - post("free mage memory"); - delete x->mage; - } - - void mage_tilde_dsp( t_mage_tilde * x, t_signal ** sp, short *count ) - { - post("_dsp"); - post("my sample rate is: %f", sp[0]->s_sr); - dsp_add( mage_tilde_perform, 3, x, sp[0]->s_vec, sp[0]->s_n ); - } - + t_int *mage_tilde_perform( t_int * w ) { t_mage_tilde * x = ( t_mage_tilde * )( w[1] ); t_float * out = ( t_float * )( w[2] ); -// t_float * out2 = ( t_float * )( w[2] ); // a tous les coups c'est a cause de ca int n = ( int )( w[3] ); while( n-- ) @@ -235,14 +242,33 @@ extern "C" // get the generated samples *out++ = x->mage->popSamples(); -// *out2++ = x->mage->popSamples(); // commented out voir plus haut - } return ( w+4 ); } + void mage_tilde_dsp( t_mage_tilde * x, t_signal ** sp, short *count ) + { + post("_dsp"); + post("my sample rate is: %f", sp[0]->s_sr); + dsp_add( mage_tilde_perform, 3, x, sp[0]->s_vec, sp[0]->s_n ); + } + + void mage_tilde_bang( t_mage_tilde * x ) + { + post( "blocksize: %d",sys_getblksize() ); + } + + void mage_tilde_free( t_mage_tilde * x ) + { + pthread_cancel(x->thread); + printf( "stopping genThread\n" ); + pthread_join(x->thread,NULL); + post("free mage memory"); + delete x->mage; + } + void * genThread(void * argv) { printf( "running genThread\n" ); @@ -255,6 +281,7 @@ extern "C" if( x->mage->popLabel() ) { + // prepare the model x->mage->prepareModel(); @@ -262,7 +289,7 @@ extern "C" // and if set, the interpolation and/or duration functions set by the user x->mage->computeDuration(); - outlet_int(x->intout2, x->mage->getDuration() ); //essai + outlet_int(x->intout2, x->mage->getDuration() ); //V // compute the corresponding parameters taking into account the model // and if set, the interpolation and/or duration functions set by the user @@ -281,7 +308,7 @@ extern "C" return ( NULL ); } - + void fillLabels( t_mage_tilde * x ) { string line; @@ -305,7 +332,7 @@ extern "C" } // post ("labels number %d", x->labels.size()); - outlet_int(x->intout, x->labels.size()); // ça c'est moi qui l'ai fait + outlet_int(x->intout, x->labels.size()); // V - give the size of the file myfile.close(); @@ -316,58 +343,86 @@ extern "C" } - - void mage_tilde_bang( t_mage_tilde * x ) - { - post( "blocksize: %d",sys_getblksize() ); - } - - - void mage_tilde_alpha( t_mage_tilde * x, double alpha ) - { - x->mage->setAlpha( alpha ); -// post("alpha : %f", alpha); - post("path : %s", x->labelPath); - - return; - } - + void mage_tilde_reset( t_mage_tilde * x ) { x->mage->reset(); return; } - + - void mage_tilde_speed( t_mage_tilde * x, double speed, double action ) + // engines add/remove + + void mage_tilde_engine_add( t_mage_tilde * x, t_symbol * name, t_symbol * conf ) { - // controlValue = MAGE::overwrite; - // controlValue = MAGE::shift; - // controlValue = MAGE::scale; - // controlValue = MAGE::synthetic; - // controlValue = MAGE::noaction; - - x->mage->setSpeed( speed, action ); + post( "_new: loading engine %s", name->s_name ); + x->mage->addEngine( name->s_name, conf->s_name ); } - - -/* void mage_tilde_speed( t_mage_tilde * x, double speed ) + void mage_tilde_engine_remove( t_mage_tilde * x, t_symbol * name ) { - x->mage->setSpeed( speed, MAGE::overwrite ); - - return; - } */ - - void mage_tilde_volume( t_mage_tilde * x, double volume ) + post( "_new: removing engine %s", name->s_name ); + x->mage->removeEngine( name->s_name ); + } + + void mage_tilde_interpolation( t_mage_tilde * x, t_symbol *voice, double weight ) //V { - x->mage->setVolume( volume ); - + string s(voice->s_name); + + x->mage->enableInterpolation(true); + + double interpolationWeights[nOfStreams + 1]; + map < string, double * > interpolationFunctions; + + for( unsigned int i = 0; i < nOfStreams + 1; i++ ) + { + interpolationWeights[i] = (double) weight; + } + + interpolationFunctions[s] = interpolationWeights; + + x->mage->setInterpolationFunctions( interpolationFunctions ); + return; } - + + void mage_tilde_duration ( t_mage_tilde * x, Symbol *s, long ac, t_atom *argv ) + { + double *updateDuration = new double [5]; + int durationMode=0; + + if (ac != 6) + post("Bad number of parameters for durationoverwrite message ! "); + else + { +// post("Good number of parameters for durationoverwrite message ! "); + for( int i = 0; i < 5; i++ ) + { + if ((argv+i)->a_type == A_LONG) { + updateDuration[i] = atom_getlong(argv+i); +// post("value: %f ", updateDuration[i]); + } + else + { + post ("Bad type"); + } + } + if ((argv+5)->a_type == A_LONG) + { + durationMode = atom_getlong(argv+5); +// post("mode value: %d ", durationMode); + } + else + post ("Bad mode type"); + } + + x->mage->setDuration( updateDuration, durationMode ); + } + + + void mage_tilde_label( t_mage_tilde * x, t_symbol *label ) { post("filepath %s", label->s_name); @@ -377,13 +432,15 @@ extern "C" return; } - void mage_tilde_label_clear( t_mage_tilde * x ) //essai + void mage_tilde_label_clear( t_mage_tilde * x ) //V { - x->mage->clearLabels(); + const char *lastlab = x->mage->clearLabels().c_str(); + + post ("last label : %s", lastlab ); return; } - + void mage_tilde_label_fill( t_mage_tilde * x ) { Label label; @@ -392,6 +449,7 @@ extern "C" for( it = x->labels.begin(); it < x->labels.end(); it++ ) { // post( "pushing %s",line.c_str() ); + outlet_bang( x->bangout ); // V label.setQuery( ( * it ) ); x->mage->pushLabel( label ); @@ -401,12 +459,36 @@ extern "C" return; } + void mage_tilde_label_fill_until_end( t_mage_tilde * x ) // V + { + Label label; + int i; + + if( x->labels.size() > 0 ) + { + for (i = x->currentLabel; i < x->labels.size(); i++) + { + outlet_bang( x->bangout ); // V + label.setQuery( x->labels[x->currentLabel] ); + + x->mage->pushLabel( label ); + + x->currentLabel = ( x->currentLabel + 1 ) % x->labels.size(); +// post("onepush"); + } + } + + + return; + } + void mage_tilde_label_next( t_mage_tilde * x ) { Label label; if( x->labels.size() > 0 ) { + outlet_bang( x->bangout ); // V label.setQuery( x->labels[x->currentLabel] ); x->mage->pushLabel( label ); @@ -417,6 +499,69 @@ extern "C" return; } + void mage_tilde_label_nextvowel( t_mage_tilde * x ) // V - thanks R. + { + Label label; + const char* carac = "+"; + + if( x->labels.size() > 0 ) + { + outlet_bang( x->bangout ); // V + label.setQuery( x->labels[x->currentLabel] ); + + x->mage->pushLabel( label ); + + x->currentLabel = ( x->currentLabel + 1 ) % x->labels.size(); + + const char* vla = x->mage->getLabel().getQuery().c_str(); + // post ("%s", vla ); + + char index = 1 + strchr(vla, *carac) - vla; + const char *firstelem = vla + index; + char pau_buf[3]; + + bool isitvowel = ((firstelem[0] == 'a') || (firstelem[0] == 'e') || (firstelem[0] == 'i') || (firstelem[0] == 'o') || (firstelem[0] == 'u') || (firstelem[0] == 'y')); + // if (isitvowel==1) { post("vowel"); } + if (isitvowel == 0) { + if (firstelem[0]=='p') { + strncpy(pau_buf,firstelem,3); + if(strcmp(pau_buf,"pau")==0){ + isitvowel=1; + // post("pau"); + } + } + } + while (isitvowel == 0) { + usleep(100000); + if( x->labels.size() > 0 ) + { + label.setQuery( x->labels[x->currentLabel] ); + + x->mage->pushLabel( label ); + + x->currentLabel = ( x->currentLabel + 1 ) % x->labels.size(); + } + + vla = x->mage->getLabel().getQuery().c_str(); + index = 1 + strchr(vla, *carac) - vla; + firstelem = vla + index; + isitvowel = ((firstelem[0] == 'a') || (firstelem[0] == 'e') || (firstelem[0] == 'i') || (firstelem[0] == 'o') || (firstelem[0] == 'u') || (firstelem[0] == 'y')); + // if (isitvowel==1) { post("vowel"); } + if (isitvowel == 0) { + if (firstelem[0]=='p') { + strncpy(pau_buf,firstelem,3); + if(strcmp(pau_buf,"pau")==0){ + isitvowel=1; + // post("pau"); + } + } + } + } + } + + return; + } + void mage_tilde_label_insert( t_mage_tilde * x, long lab ) { Label label; @@ -426,6 +571,7 @@ extern "C" int k = ( ( int ) lab ) % x->labels.size(); // always 0 <= lab < x->labels.size() ? < 0 ? post("inserting label %d\n",k); + outlet_bang( x->bangout ); // V label.setQuery( x->labels[k] ); x->mage->pushLabel( label ); @@ -445,6 +591,7 @@ extern "C" int k = ( ( int ) lab ) % x->labels.size(); // always 0 <= lab < x->labels.size() ? < 0 ? post("replacing label %d with %d\n",x->currentLabel,k); + outlet_bang( x->bangout ); // V label.setQuery( x->labels[k] ); x->mage->pushLabel( label ); @@ -464,7 +611,7 @@ extern "C" long k = lab % x->labels.size(); // always 0 <= lab < x->labels.size() ? < 0 ? post("switching from label %d to %d\n",x->currentLabel,k); - outlet_bang( x->bangout ); // ça c'est moi qui l'ai fait + outlet_bang( x->bangout ); // V label.setQuery( x->labels[k] ); x->mage->pushLabel( label ); @@ -473,7 +620,57 @@ extern "C" return; } + + void mage_tilde_label_pause( t_mage_tilde * x ) //V - does work on very exceptionnal circumstances + { + int cur; + + cur = x->currentLabel; + + x->mage->clearLabels(); + + x->currentLabel = cur; + + return; + } + + + void mage_tilde_pitch ( t_mage_tilde * x, Symbol *s, long ac, t_atom *argv ) + { + // controlValue = MAGE::overwrite; + // controlValue = MAGE::shift; + // controlValue = MAGE::scale; + // controlValue = MAGE::synthetic; + // controlValue = MAGE::noaction; + + if ( ac != 2 ) + { + if ( (ac == 1) && (argv->a_type == A_FLOAT) ) + { + x->mage->setPitch(atom_getfloat(argv), MAGE::overwrite); + } + else if ( (ac == 1) && (argv->a_type == A_LONG ) ) + { + x->mage->setPitch((float)atom_getlong(argv), MAGE::overwrite); + } + else + + post("need either one float/int (pitchoverwrite by that value) or one float/int and one int (int will precise the action)"); + } + else + { + if ( (argv->a_type == A_FLOAT ) && ((argv+1)->a_type == A_LONG) ) { + x->mage->setPitch(atom_getfloat(argv),atom_getlong(argv+1)); + } + else if ( (argv->a_type == A_LONG ) && ((argv+1)->a_type == A_LONG) ) { + x->mage->setPitch((float)atom_getlong(argv),atom_getlong(argv+1)); + } + } + + return; + } + void mage_tilde_pitch_overwrite( t_mage_tilde * x, double pitch ) { x->mage->setPitch(pitch,MAGE::overwrite); @@ -501,65 +698,100 @@ extern "C" return; } - - void mage_tilde_duration ( t_mage_tilde * x, Symbol *s, long ac, t_atom *argv ) - { - double *updateDuration = new double [5]; - int durationMode=0; - - if (ac != 6) - post("Bad number of parameters for durationoverwrite message ! "); - else - { -// post("Good number of parameters for durationoverwrite message ! "); - for( int i = 0; i < 5; i++ ) - { - if ((argv+i)->a_type == A_LONG) { - updateDuration[i] = atom_getlong(argv+i); -// post("value: %f ", updateDuration[i]); - } - else - { - post ("Bad type"); - } - } - if ((argv+5)->a_type == A_LONG) - { - durationMode = atom_getlong(argv+5); -// post("mode value: %d ", durationMode); - } - else - post ("Bad mode type"); - } - - x->mage->setDuration( updateDuration, durationMode ); - } - -//essai d'interpolation - void mage_tilde_interpolation( t_mage_tilde * x, t_symbol *voice, double weight ) + + void mage_tilde_speed ( t_mage_tilde * x, Symbol *s, long ac, t_atom *argv ) //V { - string s(voice->s_name); - - x->mage->enableInterpolation(true); - - double interpolationWeights[nOfStreams + 1]; - map < string, double * > interpolationFunctions; - - for( unsigned int i = 0; i < nOfStreams + 1; i++ ) + // controlValue = MAGE::overwrite; + // controlValue = MAGE::shift; + // controlValue = MAGE::scale; + // controlValue = MAGE::synthetic; + // controlValue = MAGE::noaction; + + if ( ac != 2 ) { - interpolationWeights[i] = (double) weight; + if ( (ac == 1) && (argv->a_type == A_FLOAT) ) + { + x->mage->setSpeed(atom_getfloat(argv), MAGE::overwrite); + } + else if ( (ac == 1) && (argv->a_type == A_LONG ) ) + { + x->mage->setSpeed((float)atom_getlong(argv), MAGE::overwrite); + } + else + post("need either one float/int (speedoverwrite by that value) or one float/int and one int (int will precise the action)"); + } + else + { + if ( (argv->a_type == A_FLOAT) && ((argv+1)->a_type == A_LONG) ) { + x->mage->setSpeed(atom_getfloat(argv),atom_getlong(argv+1)); + } + else if ( (argv->a_type == A_LONG ) && ((argv+1)->a_type == A_LONG) ) { + x->mage->setSpeed((float)atom_getlong(argv),atom_getlong(argv+1)); + } } - interpolationFunctions[s] = interpolationWeights; + return; + } - x->mage->setInterpolationFunctions( interpolationFunctions ); + + + void mage_tilde_volume( t_mage_tilde * x, double volume ) + { + x->mage->setVolume( volume ); + + return; + } + + void mage_tilde_alpha( t_mage_tilde * x, double alpha ) + { + x->mage->setAlpha( alpha ); +// post("alpha : %f", alpha); +// post("path : %s", x->labelPath); + + return; + } + + void mage_tilde_gamma( t_mage_tilde * x, double gamma )// V + { + x->mage->setGamma( gamma ); return; } -//essai d'ajouter l'assistance aux inlets/outlets + + //Vibrato -V + void mage_tilde_vib_amp (t_mage_tilde *x, double vibamp) // V + { + x->mage->setvibamp( vibamp ); + + return; + } + + void mage_tilde_vib_thresh (t_mage_tilde *x, double vibthresh) // V + { + x->mage->setvibthresh( vibthresh ); + + return; + } + + void mage_tilde_vib_zoom (t_mage_tilde *x, double vibzoom) // V + { + x->mage->setvibzoom( vibzoom ); + + return; + } + + void mage_tilde_vib_offset (t_mage_tilde *x, double viboffset) // V + { + x->mage->setviboffset( viboffset ); + + return; + } + + + // "The io argument will be 1 for inlets, 2 for outlets. // The index argument will be 0 for the leftmost inlet or outlet." void mage_tilde_assist (t_mage_tilde *x, void *b, long io, long index, char *s) @@ -584,35 +816,16 @@ extern "C" sprintf(s, "bang at beginning of a label read with labelswitch method"); break; case 2: - sprintf(s, "total number of labels when a label list is read"); + sprintf(s, "number of frames in currently processed label"); break; case 3: - sprintf(s, "number of frames in currently processed label"); + sprintf(s, "total number of labels when a label list is read"); break; } break; } } - void mage_tilde_printquery (t_mage_tilde *x) - { -// x->mage->label.printQuery(); // ne marche pas - } - - // engines add/remove - - void mage_tilde_engine_add( t_mage_tilde * x, t_symbol * name, t_symbol * conf ) - { - post( "_new: loading engine %s", name->s_name ); - x->mage->addEngine( name->s_name, conf->s_name ); - } - - void mage_tilde_engine_remove( t_mage_tilde * x, t_symbol * name ) - { - post( "_new: removing engine %s", name->s_name ); - x->mage->removeEngine( name->s_name ); - } - } diff --git a/examples/puredata/mage~.cpp b/examples/puredata/mage~.cpp index 3abfe0f..548b206 100644 --- a/examples/puredata/mage~.cpp +++ b/examples/puredata/mage~.cpp @@ -26,6 +26,14 @@ /* */ /* ----------------------------------------------------------------------------------------------- */ +/** + * @file mage~.cpp + * @author A. Moinet, V. Huguenin + */ + +// GitHub version + +//PureData #include "m_pd.h" #include "m_imp.h" #include @@ -49,129 +57,101 @@ extern "C" vector < string > labels; int currentLabel; + t_outlet *sig_out, *bang_out, *f_out, *f_out2; // V + Mage *mage; } t_mage_tilde; - //void *mage_tilde_new(t_symbol *s, t_floatarg f); + void mage_tilde_setup( void ); void *mage_tilde_new( void ); t_int *mage_tilde_perform( t_int * w ); void mage_tilde_dsp( t_mage_tilde * x, t_signal ** sp ); void mage_tilde_bang( t_mage_tilde * x); void mage_tilde_free( t_mage_tilde * x ); - void mage_tilde_setup( void ); void * genThread( void * argv ); + void fillLabels( t_mage_tilde * x ); //access to MAGE controls - void mage_tilde_alpha( t_mage_tilde * x, t_floatarg alpha ); - void mage_tilde_debug( t_mage_tilde * x ); + void mage_tilde_reset( t_mage_tilde * x ); + void mage_tilde_debug( t_mage_tilde * x ); + //manually add/remove engines void mage_tilde_engine_add( t_mage_tilde * x, t_symbol *name, t_symbol *conf ); void mage_tilde_engine_remove( t_mage_tilde * x, t_symbol *name ); + //interpolation between voices void mage_tilde_interpolation( t_mage_tilde * x, t_symbol *voice, t_floatarg weight ); - void mage_tilde_label( t_mage_tilde * x, t_symbol *label ); + // duration of each state of a label, in frames + void mage_tilde_duration ( t_mage_tilde * x, t_symbol *s, int ac, t_atom *argv ); // V + //labels manipulation void mage_tilde_label_clear( t_mage_tilde * x ); + void mage_tilde_label( t_mage_tilde * x, t_symbol *label ); void mage_tilde_label_fill( t_mage_tilde * x ); + void mage_tilde_label_fill_until_end( t_mage_tilde * x ); // V void mage_tilde_label_next( t_mage_tilde * x ); + void mage_tilde_label_nextvowel( t_mage_tilde * x ); // V void mage_tilde_label_insert( t_mage_tilde * x, t_floatarg lab ); void mage_tilde_label_replace( t_mage_tilde * x, t_floatarg lab ); void mage_tilde_label_switch( t_mage_tilde * x, t_floatarg lab ); + //pitch void mage_tilde_pitch( t_mage_tilde * x, t_floatarg pitchvalue, t_floatarg action ); +// void mage_tilde_pitch ( t_mage_tilde * x, t_symbol *s, int ac, t_atom *argv ); // V void mage_tilde_pitch_overwrite( t_mage_tilde * x, t_floatarg pitchvalue ); void mage_tilde_pitch_scale( t_mage_tilde * x, t_floatarg pitchvalue ); void mage_tilde_pitch_shift( t_mage_tilde * x, t_floatarg pitchvalue ); void mage_tilde_pitch_synth( t_mage_tilde * x ); - void mage_tilde_reset( t_mage_tilde * x ); + //speed void mage_tilde_speed( t_mage_tilde * x, t_floatarg speed, t_floatarg action ); +// void mage_tilde_speed ( t_mage_tilde * x, t_symbol *s, int ac, t_atom *argv ); // V void mage_tilde_speed_overwrite( t_mage_tilde * x, t_floatarg speedvalue ); void mage_tilde_speed_scale( t_mage_tilde * x, t_floatarg speedvalue ); void mage_tilde_speed_shift( t_mage_tilde * x, t_floatarg speedvalue ); void mage_tilde_speed_synth( t_mage_tilde * x ); + //volume, alpha, gamma void mage_tilde_volume( t_mage_tilde * x, t_floatarg volume ); - - void fillLabels( t_mage_tilde * x ) - { - string line; - string filename = string(x->labelPath); - - ifstream myfile( filename.c_str() ); - - x->currentLabel = -1; - x->labels.clear(); - - if( !myfile.is_open() ) - { - post( "could not open file %s",filename.c_str() ); - return; - } - - while( getline( myfile, line ) ) - { - x->labels.push_back(line); - } - - myfile.close(); - - if( x->labels.size() > 0 ) - x->currentLabel = 0; - - return; - } - - void mage_tilde_bang( t_mage_tilde * x ) - { - post( "blocksize: %d",sys_getblksize() ); - } - - void * mage_tilde_new( void ) - { - t_mage_tilde * x = ( t_mage_tilde * ) pd_new( mage_tilde_class ); - - post( "mage~ loaded from %s",mage_tilde_class->c_externdir->s_name ); - - strcpy( x->labelPath, mage_tilde_class->c_externdir->s_name ); - strcat( x->labelPath, "/../../data/labels/cmu-artic/alice01.lab" ); - x->mage = new Mage(); - fillLabels(x); - - //post("_new: loading engine"); - //x->mage->addEngine( "slt", "../../../data/configFiles/cmu-artic/slt.conf" ); - //x->mage->addEngine( "awb", "../../../data/configFiles/cmu-artic/awb.conf" ); - //x->mage->enableInterpolation(true); - - //post("_new: done with engine"); - - post( "_new: starting genThread" ); - pthread_create(&(x->thread), NULL, genThread, (void *) x); - post( "_new: done with genThread" ); - - outlet_new(&x->x_obj, &s_signal); - - post( "_new: done\n" ); - - return ( void * ) x; - } - + void mage_tilde_alpha( t_mage_tilde * x, t_floatarg alpha ); + void mage_tilde_gamma( t_mage_tilde * x, t_floatarg gamma ); + //vibrato + void mage_tilde_vib_amp (t_mage_tilde *x, t_floatarg vibamp); // V + void mage_tilde_vib_thresh (t_mage_tilde *x, t_floatarg vibthresh); // V + void mage_tilde_vib_zoom (t_mage_tilde *x, t_floatarg vibzoom); // V + void mage_tilde_vib_offset (t_mage_tilde *x, t_floatarg viboffset); // V + + void mage_tilde_setup( void ) { mage_tilde_class = class_new(gensym("mage~"),(t_newmethod)mage_tilde_new,(t_method)mage_tilde_free,sizeof(t_mage_tilde),CLASS_DEFAULT, (t_atomtype) 0); - - class_addbang( mage_tilde_class, mage_tilde_bang ); - post( "_setup: blocksize = %d", sys_getblksize() ); + + class_addbang(mage_tilde_class, mage_tilde_bang); + post("_setup : blocksize = %d",sys_getblksize()); class_addmethod(mage_tilde_class, (t_method)mage_tilde_dsp, gensym("dsp"), (t_atomtype) 0); + // Reset + class_addmethod(mage_tilde_class, (t_method)mage_tilde_reset, gensym("reset"), (t_atomtype) 0); + + // Debug + class_addmethod(mage_tilde_class, (t_method)mage_tilde_debug, gensym("debug"), (t_atomtype) 0); + // Engine class_addmethod(mage_tilde_class, (t_method)mage_tilde_engine_add, gensym("engineadd"), A_SYMBOL, A_SYMBOL, 0); class_addmethod(mage_tilde_class, (t_method)mage_tilde_engine_remove, gensym("engineremove"), A_SYMBOL, 0); + + // Interpolate + class_addmethod(mage_tilde_class, (t_method)mage_tilde_interpolation, gensym("interpolate"), A_SYMBOL, A_FLOAT, 0); + + // Duration + class_addmethod(mage_tilde_class, (t_method)mage_tilde_duration, gensym("duration"), A_GIMME, 0); // essai // Label class_addmethod(mage_tilde_class, (t_method)mage_tilde_label, gensym("label"), A_SYMBOL, 0); class_addmethod(mage_tilde_class, (t_method)mage_tilde_label_clear, gensym("labelclear"), (t_atomtype) 0); class_addmethod(mage_tilde_class, (t_method)mage_tilde_label_fill, gensym("labelfill"), (t_atomtype) 0); + class_addmethod(mage_tilde_class, (t_method)mage_tilde_label_fill_until_end, gensym("labelfilluntilend"), (t_atomtype) 0); class_addmethod(mage_tilde_class, (t_method)mage_tilde_label_next, gensym("labelnext"), (t_atomtype) 0); + class_addmethod(mage_tilde_class, (t_method)mage_tilde_label_nextvowel, gensym("labelnextvowel"), (t_atomtype) 0);//essai class_addmethod(mage_tilde_class, (t_method)mage_tilde_label_insert, gensym("labelinsert"), A_FLOAT, 0); class_addmethod(mage_tilde_class, (t_method)mage_tilde_label_replace, gensym("labelreplace"), A_FLOAT, 0); class_addmethod(mage_tilde_class, (t_method)mage_tilde_label_switch, gensym("labelswitch"), A_FLOAT, 0); - + // Pitch class_addmethod(mage_tilde_class, (t_method)mage_tilde_pitch, gensym("pitch"), A_FLOAT, A_FLOAT, 0); class_addmethod(mage_tilde_class, (t_method)mage_tilde_pitch_overwrite, gensym("pitchoverwrite"), A_FLOAT, 0); @@ -179,9 +159,6 @@ extern "C" class_addmethod(mage_tilde_class, (t_method)mage_tilde_pitch_shift, gensym("pitchshift"), A_FLOAT, 0); class_addmethod(mage_tilde_class, (t_method)mage_tilde_pitch_synth, gensym("pitchsynth"), (t_atomtype) 0); - // Reset - class_addmethod(mage_tilde_class, (t_method)mage_tilde_reset, gensym("reset"), (t_atomtype) 0); - // Speed class_addmethod(mage_tilde_class, (t_method)mage_tilde_speed, gensym("speed"), A_FLOAT, A_FLOAT, 0); class_addmethod(mage_tilde_class, (t_method)mage_tilde_speed_overwrite, gensym("speedoverwrite"), A_FLOAT, 0); @@ -194,28 +171,55 @@ extern "C" // Alpha class_addmethod(mage_tilde_class, (t_method)mage_tilde_alpha, gensym("alpha"), A_FLOAT, 0); - - // Interpolate - class_addmethod(mage_tilde_class, (t_method)mage_tilde_interpolation, gensym("interpolate"), A_SYMBOL, A_FLOAT, 0); - - // Debug - class_addmethod(mage_tilde_class, (t_method)mage_tilde_debug, gensym("debug"), (t_atomtype) 0); + + // Gamma + class_addmethod(mage_tilde_class, (t_method)mage_tilde_alpha, gensym("gamma"), A_FLOAT, 0); + + // Vibrato + class_addmethod(mage_tilde_class, (t_method)mage_tilde_vib_amp, gensym("vibratoamp"), A_FLOAT, 0);// V + class_addmethod(mage_tilde_class, (t_method)mage_tilde_vib_thresh, gensym("vibratothresh"), A_FLOAT, 0);// V + class_addmethod(mage_tilde_class, (t_method)mage_tilde_vib_zoom, gensym("vibratozoom"), A_FLOAT, 0);// V + class_addmethod(mage_tilde_class, (t_method)mage_tilde_vib_offset, gensym("vibratooffset"), A_FLOAT, 0);// V } - - void mage_tilde_free( t_mage_tilde * x ) - { - pthread_cancel(x->thread); - printf( "stopping genThread\n" ); - pthread_join(x->thread,NULL); - post( "free mage memory" ); - delete x->mage; - } - - void mage_tilde_dsp( t_mage_tilde * x, t_signal ** sp ) + + void * mage_tilde_new( void ) { - post( "_dsp" ); - dsp_add( mage_tilde_perform, 3, x, sp[0]->s_vec, sp[0]->s_n ); + t_mage_tilde *x = (t_mage_tilde *) pd_new(mage_tilde_class); + + post( "mage~ loaded from %s",mage_tilde_class->c_externdir->s_name ); + + strcpy( x->labelPath, mage_tilde_class->c_externdir->s_name ); + strcat( x->labelPath, "/../../data/labels/cmu-artic/alice01.lab" ); + x->mage = new Mage(); + fillLabels(x); + +// Uncomment the following block and replace MageSourcePath with your path to your Mage sources; +// then recompile, if you want to avoid needing to manually add voice engines each time +// that you create a new Mage instance. +/* post("_new: loading engine"); + x->mage->addEngine( "slt", "/MageSourcePath/data/configFiles/cmu-artic/slt.conf" ); + x->mage->addEngine( "awb", "/MageSourcePath/data/configFiles/cmu-artic/awb.conf" ); + x->mage->addEngine( "clb", "/MageSourcePath/data/configFiles/cmu-artic/clb.conf" ); + x->mage->addEngine( "jmk", "/MageSourcePath/data/configFiles/cmu-artic/jmk.conf" ); + x->mage->addEngine( "rms", "/MageSourcePath/data/configFiles/cmu-artic/rms.conf" ); + x->mage->addEngine( "bdl", "/MageSourcePath/data/configFiles/cmu-artic/bdl.conf" ); + post("_new: done with engine"); */ + + x->mage->enableInterpolation(true); + + post("_new: starting genThread"); + pthread_create(&(x->thread), NULL, genThread, (void *) x); + post("_new : done with genThread"); + + x->sig_out = outlet_new(&x->x_obj, &s_signal); + x->bang_out = outlet_new(&x->x_obj, &s_bang); // essai + x->f_out = outlet_new(&x->x_obj, &s_float); // essai + x->f_out2 = outlet_new(&x->x_obj, &s_float); // essai + + post("_new: done\n"); + + return (void *)x; } t_int *mage_tilde_perform( t_int * w ) @@ -236,6 +240,26 @@ extern "C" return ( w+4 ); } + void mage_tilde_dsp( t_mage_tilde * x, t_signal ** sp ) + { + post("_dsp"); + dsp_add( mage_tilde_perform, 3, x, sp[0]->s_vec, sp[0]->s_n ); + } + + void mage_tilde_bang( t_mage_tilde * x ) + { + post( "blocksize: %d",sys_getblksize() ); + } + + void mage_tilde_free( t_mage_tilde * x ) + { + pthread_cancel(x->thread); + printf( "stopping genThread\n" ); + pthread_join(x->thread,NULL); + post("free mage memory"); + delete x->mage; + } + void * genThread(void * argv) { printf( "running genThread\n" ); @@ -246,39 +270,72 @@ extern "C" { pthread_testcancel(); - if( x->mage->ready() ) + if( x->mage->popLabel() ) { - if( x->mage->popLabel() ) - { - // prepare the model - x->mage->prepareModel(); - - // compute the corresponding durations taking into account the model - // and if set, the interpolation and/or duration functions set by the user - x->mage->computeDuration(); - - // compute the corresponding parameters taking into account the model - // and if set, the interpolation and/or duration functions set by the user - x->mage->computeParameters (); - - // optimize the generated parameters - x->mage->optimizeParameters(); + // prepare the model + x->mage->prepareModel(); + + // compute the corresponding durations taking into account the model + // and if set, the interpolation and/or duration functions set by the user + x->mage->computeDuration(); + + outlet_float(x->f_out, x->mage->getDuration() );//V - usleep( 100 ); - } + // compute the corresponding parameters taking into account the model + // and if set, the interpolation and/or duration functions set by the user + x->mage->computeParameters (); + + // optimize the generated parameters + x->mage->optimizeParameters(); + + usleep( 100 ); } else { - usleep( 1000 ); - } + usleep( 100 ); + } } return ( NULL ); } - void mage_tilde_alpha( t_mage_tilde * x, t_floatarg alpha ) + void fillLabels( t_mage_tilde * x ) { - x->mage->setAlpha( alpha ); + string line; + string filename = string(x->labelPath); + + ifstream myfile( filename.c_str() ); + + x->currentLabel = -1; + x->labels.clear(); + + if( !myfile.is_open() ) + { + post( "could not open file %s",filename.c_str() ); + return; + } + + while( getline( myfile, line ) ) + { + x->labels.push_back(line); + } + + post ("labels number %d", x->labels.size()); + outlet_float(x->f_out2, x->labels.size()); // V - give size of file + + myfile.close(); + + if( x->labels.size() > 0 ) + x->currentLabel = 0; + + return; + } + + + + void mage_tilde_reset( t_mage_tilde * x ) + { + x->mage->reset(); return; } @@ -289,7 +346,9 @@ extern "C" return; } - + + + void mage_tilde_engine_add( t_mage_tilde * x, t_symbol * name, t_symbol * conf ) { post( "_new: loading engine %s", name->s_name ); @@ -302,7 +361,6 @@ extern "C" x->mage->removeEngine( name->s_name ); } - void mage_tilde_interpolation( t_mage_tilde * x, t_symbol * voice, t_floatarg weight ) { string s(voice->s_name); @@ -322,10 +380,46 @@ extern "C" x->mage->setInterpolationFunctions( interpolationFunctions ); return; - } + } + + void mage_tilde_duration ( t_mage_tilde * x, t_symbol *s, int ac, t_atom *argv ) + { + double *updateDuration = new double [5]; + int durationMode = 0; + + if (ac != 6) + post("Bad number of parameters for durationoverwrite message ! "); + else + { +// post("Good number of parameters for durationoverwrite message ! "); + for( int i = 0; i < 5; i++ ) + { + if ((argv+i)->a_type == A_FLOAT) { + updateDuration[i] = atom_getint(argv+i); +// post("value: %f ", updateDuration[i]); + } + else + { + post ("Bad type"); + } + } + if ((argv+5)->a_type == A_FLOAT) + { + durationMode = atom_getint(argv+5); +// post("mode value: %d ", durationMode); + } + else + post ("Bad mode type"); + } + + x->mage->setDuration( updateDuration, durationMode ); + } + + void mage_tilde_label( t_mage_tilde * x, t_symbol *label ) { + post("filepath %s", label->s_name);//V strcpy(x->labelPath, label->s_name); fillLabels(x); @@ -334,7 +428,9 @@ extern "C" void mage_tilde_label_clear( t_mage_tilde * x ) { - x->mage->clearLabels(); + const char *lastlab = x->mage->clearLabels().c_str(); + + post ("last label : %s", lastlab ); return; } @@ -347,12 +443,36 @@ extern "C" for( it = x->labels.begin(); it < x->labels.end(); it++ ) { //post( "pushing %s",line.c_str() ); + outlet_bang( x->bang_out ); // V label.setQuery( ( * it ) ); x->mage->pushLabel( label ); } return; } + + void mage_tilde_label_fill_until_end( t_mage_tilde * x ) // V + { + Label label; + int i; + + if( x->labels.size() > 0 ) + { + for (i = x->currentLabel; i < x->labels.size(); i++) + { + outlet_bang( x->bang_out ); // V + label.setQuery( x->labels[x->currentLabel] ); + + x->mage->pushLabel( label ); + + x->currentLabel = ( x->currentLabel + 1 ) % x->labels.size(); +// post("onepush"); + } + } + + + return; + } void mage_tilde_label_next( t_mage_tilde * x ) { @@ -360,11 +480,75 @@ extern "C" if( x->labels.size() > 0 ) { + outlet_bang( x->bang_out ); // V + label.setQuery( x->labels[x->currentLabel] ); + + x->mage->pushLabel( label ); + + x->currentLabel = ( x->currentLabel + 1 ) % x->labels.size(); + } + + return; + } + + void mage_tilde_label_nextvowel( t_mage_tilde * x ) // V - thanks R. Seems to behave with difficulty on Pure Data + { + Label label; + const char* carac = "+"; + + if( x->labels.size() > 0 ) + { + outlet_bang( x->bang_out ); // V label.setQuery( x->labels[x->currentLabel] ); x->mage->pushLabel( label ); x->currentLabel = ( x->currentLabel + 1 ) % x->labels.size(); + + const char* vla = x->mage->getLabel().getQuery().c_str(); + // post ("%s", vla ); + + char index = 1 + strchr(vla, *carac) - vla; + const char *firstelem = vla + index; + char pau_buf[3]; + + bool isitvowel = ((firstelem[0] == 'a') || (firstelem[0] == 'e') || (firstelem[0] == 'i') || (firstelem[0] == 'o') || (firstelem[0] == 'u') || (firstelem[0] == 'y')); + // if (isitvowel==1) { post("vowel"); } + if (isitvowel == 0) { + if (firstelem[0]=='p') { + strncpy(pau_buf,firstelem,3); + if(strcmp(pau_buf,"pau")==0){ + isitvowel=1; + // post("pau"); + } + } + } + while (isitvowel == 0) { + usleep(100000); + if( x->labels.size() > 0 ) + { + label.setQuery( x->labels[x->currentLabel] ); + + x->mage->pushLabel( label ); + + x->currentLabel = ( x->currentLabel + 1 ) % x->labels.size(); + } + + vla = x->mage->getLabel().getQuery().c_str(); + index = 1 + strchr(vla, *carac) - vla; + firstelem = vla + index; + isitvowel = ((firstelem[0] == 'a') || (firstelem[0] == 'e') || (firstelem[0] == 'i') || (firstelem[0] == 'o') || (firstelem[0] == 'u') || (firstelem[0] == 'y')); + // if (isitvowel==1) { post("vowel"); } + if (isitvowel == 0) { + if (firstelem[0]=='p') { + strncpy(pau_buf,firstelem,3); + if(strcmp(pau_buf,"pau")==0){ + isitvowel=1; + // post("pau"); + } + } + } + } } return; @@ -377,8 +561,9 @@ extern "C" if( x->labels.size() > 0 ) { int k = ( ( int ) lab ) % x->labels.size(); // always 0 <= lab < x->labels.size() ? < 0 ? - - printf("inserting label %d\n",k); + + post("inserting label %d\n",k); + outlet_bang( x->bang_out ); // V label.setQuery( x->labels[k] ); x->mage->pushLabel( label ); @@ -396,8 +581,9 @@ extern "C" if( x->labels.size() > 0 ) { int k = ( ( int ) lab ) % x->labels.size(); // always 0 <= lab < x->labels.size() ? < 0 ? - - printf("replacing label %d with %d\n",x->currentLabel,k); + + post("replacing label %d with %d\n",x->currentLabel,k); + outlet_bang( x->bang_out ); // V label.setQuery( x->labels[k] ); x->mage->pushLabel( label ); @@ -415,7 +601,8 @@ extern "C" { int k = ( ( int ) lab ) % x->labels.size(); // always 0 <= lab < x->labels.size() ? < 0 ? - printf("switching from label %d to %d\n",x->currentLabel,k); + post("switching from label %d to %d\n",x->currentLabel,k); + outlet_bang( x->bang_out ); // V label.setQuery( x->labels[k] ); x->mage->pushLabel( label ); @@ -424,7 +611,8 @@ extern "C" return; } - + + void mage_tilde_pitch( t_mage_tilde * x, t_floatarg pitchvalue, t_floatarg action ) { // controlValue = MAGE::overwrite; @@ -466,13 +654,6 @@ extern "C" return; } - void mage_tilde_reset( t_mage_tilde * x ) - { - x->mage->reset(); - - return; - } - void mage_tilde_speed( t_mage_tilde * x, t_floatarg speed, t_floatarg action ) { // controlValue = MAGE::overwrite; @@ -514,11 +695,58 @@ extern "C" return; } + + void mage_tilde_volume( t_mage_tilde * x, t_floatarg volume ) { x->mage->setVolume( volume ); return; } + + void mage_tilde_alpha( t_mage_tilde * x, t_floatarg alpha ) + { + x->mage->setAlpha( alpha ); + + return; + } + void mage_tilde_gamma( t_mage_tilde * x, t_floatarg gamma ) + { + x->mage->setGamma( gamma ); + + return; + } + + + + //Vibrato -V + void mage_tilde_vib_amp (t_mage_tilde *x, t_floatarg vibamp) // V + { + x->mage->setvibamp( vibamp ); + + return; + } + + void mage_tilde_vib_thresh (t_mage_tilde *x, t_floatarg vibthresh) // V + { + x->mage->setvibthresh( vibthresh ); + + return; + } + + void mage_tilde_vib_zoom (t_mage_tilde *x, t_floatarg vibzoom) // V + { + x->mage->setvibzoom( vibzoom ); + + return; + } + + void mage_tilde_vib_offset (t_mage_tilde *x, t_floatarg viboffset) // V + { + x->mage->setviboffset( viboffset ); + + return; + } + } diff --git a/examples/puredata/pd_mage_tutos_helpfile/awb.gif b/examples/puredata/pd_mage_tutos_helpfile/awb.gif new file mode 100644 index 0000000..9247d60 Binary files /dev/null and b/examples/puredata/pd_mage_tutos_helpfile/awb.gif differ diff --git a/examples/puredata/pd_mage_tutos_helpfile/bdl.gif b/examples/puredata/pd_mage_tutos_helpfile/bdl.gif new file mode 100644 index 0000000..b417dc7 Binary files /dev/null and b/examples/puredata/pd_mage_tutos_helpfile/bdl.gif differ diff --git a/examples/puredata/pd_mage_tutos_helpfile/clb.gif b/examples/puredata/pd_mage_tutos_helpfile/clb.gif new file mode 100644 index 0000000..a7b3984 Binary files /dev/null and b/examples/puredata/pd_mage_tutos_helpfile/clb.gif differ diff --git a/examples/puredata/pd_mage_tutos_helpfile/jmk.gif b/examples/puredata/pd_mage_tutos_helpfile/jmk.gif new file mode 100644 index 0000000..7cfe2af Binary files /dev/null and b/examples/puredata/pd_mage_tutos_helpfile/jmk.gif differ diff --git a/examples/puredata/pd_mage_tutos_helpfile/mageForPd.gif b/examples/puredata/pd_mage_tutos_helpfile/mageForPd.gif new file mode 100644 index 0000000..5f8f2de Binary files /dev/null and b/examples/puredata/pd_mage_tutos_helpfile/mageForPd.gif differ diff --git a/examples/puredata/pd_mage_tutos_helpfile/mage_glossary.pd b/examples/puredata/pd_mage_tutos_helpfile/mage_glossary.pd new file mode 100644 index 0000000..b8d87df --- /dev/null +++ b/examples/puredata/pd_mage_tutos_helpfile/mage_glossary.pd @@ -0,0 +1,85 @@ +#N canvas 567 22 603 751 10; +#X obj 44 32 cnv 6 5 5 engin engout engine 0 0 0 16 -262144 -1 0; +#X obj 52 305 cnv 6 5 5 labin labout label 0 0 0 16 -262144 -1 0; +#X obj 33 429 cnv 6 15 15 empty empty .lab 0 0 0 16 -262144 -1 0; +#X obj 84 428 cnv 6 15 1 empty empty or 0 0 0 16 -262144 -1 0; +#X obj 26 450 cnv 6 1 1 empty empty labels 0 0 0 16 -262144 -1 0; +#X obj 92 450 cnv 6 1 1 empty empty list 0 0 0 16 -262144 -1 0; +#X obj 22 513 cnv 6 1 1 empty empty labels 0 0 0 16 -262144 -1 0; +#X obj 89 513 cnv 6 1 1 empty empty queue 0 0 0 16 -262144 -1 0; +#X obj 50 650 cnv 6 1 1 empty empty model 0 0 0 16 -262144 -1 0; +#X obj 27 728 cnv 6 1 1 empty empty model 0 0 0 16 -262144 -1 0; +#X obj 81 728 cnv 6 1 1 empty empty queue 0 0 0 16 -262144 -1 0; +#X obj 50 851 cnv 6 1 1 empty empty state 0 0 0 16 -262144 -1 0; +#X obj 52 981 cnv 6 1 1 empty empty frame 0 0 0 16 -262144 -1 0; +#X obj 42 1198 cnv 6 1 1 empty empty vocoder 0 0 0 16 -262144 -1 0 +; +#X obj 55 1268 cnv 6 1 1 empty empty mage 0 0 0 16 -262144 -1 0; +#X obj 26 1479 cnv 6 1 1 empty empty performative 0 0 0 16 -262144 +-1 0; +#X obj 54 1498 cnv 6 1 1 empty empty system 0 0 0 16 -262144 -1 0; +#X text 190 22 a set of all the rules needed to make mage replicate +a trained model's specific voice. You will need one different engine +for each voice you want to imitate.; +#X text 189 87 Six different engines are provided in the "data" archives +\, in the folder data/configFiles/cmu-artic are the .conf files \; +you will probably need to modify the filepath in these so that they +point to your current installation's path of folder data/voices/[engine +name].; +#X text 188 174 Those files were obtained after a training procedure +\, which consists - to summarize - in recording one person's voice +reading phonetically balanced texts \, then analysing and processing +the result until the obtention of a set of rules for speech synthesis. +; +#X text 188 296 One label is a string containing information needed +to synthesize a phoneme. It gives info about what is the current phoneme +\, what are the few previous and next phonemes \, current phoneme's +duration \, intonation \, accentuation \, etc.; +#X text 186 418 File containing a list of several successive labels +\, it is the output of label file generation from a text file.; +#X text 184 506 Internal mage's buffer where are waiting the next labels +to be processed/synthesized. It is a FIFO (first in first out) queue. +When you send a label in the queue \, it waits until the queue reaches +his turn \, then it is computed (all the information are translated +to parameters to give to the vocoder) then the computed parameters +are sent to the models queue.; +#X text 183 640 Label computed into a set of synthesis parameter for +the vocoder ?; +#X text 183 720 Similarly to the label queue \, FIFO list containing +all the models to be synthesized by the vocoder. Unlike the label queue +\, user has very few control or information on the model queue.; +#X text 181 842 A temporal subdivision of a phoneme/label/model \; +each of those has five states \, "beginning - beginning/middle - middle +- middle/end - end" \, each state lasts a different number of frames +(usually between 1 and 10 \, first is shorter \, middle is longer \, +or somehting along those lines); +#X text 182 971 Shortest temporal unit that is used by mage (except +the vocoder which of course synthesizes sound at sample rate). Frame +length is an absolute value (= not changing \, as opposed to state +duration for example \, which depends on many parameters) expressed +in samples. User has direct and realtime control on that value with +the message "speed" ans its derivatives (see relevant tab). Default +frame length is 240 samples \, default mage framerate is 48000 Hz (doesn't +work correctly at other rates at the moment) \; which gives a defaut +frame length of 240 samples at 48000 samples per second <-> 200 frames +per second <-> 5 miliseconds per frame.; +#X text 180 1190 Synthesis engine at the core of mage.; +#X text 180 1260 Parameters generation/interfacing/everything engine +at the core of mage.; +#X obj 58 1344 cnv 6 1 1 empty empty hmm 0 0 0 16 -262144 -1 0; +#X obj 336 1336 pddp/pddplink http://en.wikipedia.org/wiki/Hidden_Markov_model +-text wikipedia; +#X obj 180 1375 pddp/pddplink http://hts.sp.nitech.ac.jp/ -text HTS/HTK +; +#X text 178 1473 Simply means a system suited for real-time manipulation. +Mage allows control over many synthesis parameters during said synthesis +\, at real time \; hence the "performative" appellation.; +#X obj 340 1578 pddp/pddplink http://mage.numediart.org/publications.php +-text mage.numediart.org.; +#X text 92 1578 some more theorical informations/papers @; +#X text 179 1336 Hidden Markov Models. See; +#X text 180 1349 Statistical model which allows for multiple transitions +between several states. They are at the core of the; +#X text 394 1336 for more info.; +#X text 224 1375 speech synthesis systems \, which in turn are; +#X text 180 1387 at the core of mage.; diff --git a/examples/puredata/pd_mage_tutos_helpfile/mage_tuto.pd b/examples/puredata/pd_mage_tutos_helpfile/mage_tuto.pd new file mode 100644 index 0000000..fdbaa87 --- /dev/null +++ b/examples/puredata/pd_mage_tutos_helpfile/mage_tuto.pd @@ -0,0 +1,1152 @@ +#N canvas 121 70 1135 762 10; +#X declare -path ./; +#X declare -lib unauthorized; +#X declare -lib mediasettings; +#X obj -672 -219 image mageForPd.gif; +#N canvas 248 116 621 465 Licence 0; +#X text 65 34 This file is part of MAGE / pHTS; +#X text 64 49 (the performative HMM-based speech synthesis system) +; +#X text 65 73 MAGE / pHTS is free software: you can redistribute it +and/or modify it under the terms of the GNU General Public License +as published by the Free Software Foundation \, either version 3 of +the license \, or any later version.; +#X text 65 134 MAGE / pHTS is distributed in the hope that it will +be useful \, but WITHOUT ANY WARRANTY \, without even the implied warranty +of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details.; +#X text 66 209 You should have received a copy of the GNU General Public +License along with MAGE / pHTS. If not \, see http://www.gnu.org/licenses +; +#X text 44 19 /* ----------------------------------------------------- +*/; +#X text 66 263 Copyright 2011 University of Mons :; +#X text 126 281 Numediart Institute for New Media Art; +#X text 259 295 ( www.numediart.org ); +#X text 126 309 Acapela Group ( www.acapela-group.com ); +#X text 70 338 Developed by :; +#X text 128 359 Maria Astrinaki \, Alexis Moinet \, Geoffrey Wilfart +\,; +#X text 204 373 Nicolas d'Alessandro \, Thierry Dutoit; +#X text 70 390 /* ------------------------------------------------------ +*/; +#X restore -746 -155 pd Licence; +#X obj -746 -136 declare -path ./; +#X obj -680 -155 mage_glossary; +#X obj -548 -245 cnv 6 5 5 empty empty mage~ 0 0 0 32 -262144 -1 0 +; +#X obj -461 -214 cnv 6 5 5 empty empty performative 0 0 0 20 -262144 +-1 0; +#X obj -576 -214 cnv 6 5 5 empty empty hmm-based 0 0 0 20 -262144 -1 +0; +#X obj -311 -214 cnv 6 5 5 empty empty speech 0 0 0 20 -262144 -1 0 +; +#X obj -235 -214 cnv 6 5 5 empty empty synthesis 0 0 0 20 -262144 -1 +0; +#X obj -124 -214 cnv 6 5 5 empty empty toolkit 0 0 0 20 -262144 -1 +0; +#X obj -568 -191 cnv 6 5 5 empty empty as 0 0 0 14 -262144 -1 0; +#X obj -550 -191 cnv 6 5 5 empty empty a 0 0 0 14 -262144 -1 0; +#X obj -539 -191 cnv 6 5 5 empty empty PureData 0 0 0 14 -262144 -1 +0; +#X obj -473 -191 cnv 6 5 5 empty empty external 0 0 0 14 -262144 -1 +0; +#X text -162 -190 numediart | University of Mons | Acapela Group; +#X obj -143 -172 pddplink http://mage.numediart.org; +#X obj -598 122 cnv 5 5 5 empty empty 1 -15 5 0 20 -234399 -234399 +0; +#X obj -725 364 cnv 5 5 5 empty empty 2 -15 5 0 20 -234399 -234399 +0; +#X obj -705 183 cnv 15 40 20 empty empty empty 0 0 0 20 -234399 -234399 +0; +#X obj -702 185 mage~; +#X obj -718 435 prepend set; +#X msg -718 457 reset; +#X obj -626 279 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0; +#X obj -627 231 rms~; +#X obj -710 344 output~; +#X obj -702 161 r tomagetuto; +#X obj -708 -60 cnv 5 5 5 empty empty 0 -15 5 0 20 -234399 -234399 +0; +#X obj -695 -65 ii reset; +#X obj -695 -88 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X text -660 -90 panic !; +#X msg -689 -41 pitchsynth; +#X msg -683 -16 labelclear; +#X text -635 -66 resets nearly everything; +#X text -609 -17 make it stop; +#X text -615 -49 tells Mage to begin; +#X text -616 -38 synthesizing the pitch again; +#X obj -695 14 s tomagetuto; +#X obj -584 -154 import unauthorized; +#X msg -707 91 params @samplerate 48000; +#X text -741 68 mage~ works better at a sample rate of 48000 Hz; +#X obj -586 -135 import mediasettings; +#X obj -707 117 audiosettings; +#X obj -414 -16 cnv 5 5 5 empty empty 3 -15 5 0 20 -234399 -234399 +0; +#N canvas 396 73 1101 616 filesloader 0; +#X obj 103 155 playlist lab 500 120 {Helvetica 10 bold} #FEFEFE #E63A79 +black red; +#X symbolatom 116 379 50 0 0 0 - - -; +#X symbolatom 435 378 50 0 0 0 - - -; +#X msg 112 40 /Users/vichug/Music/pd_files/txt2labscrpt/out; +#X obj 112 -1 loadbang; +#X obj 112 77 prepend location; +#X obj 54 358 outlet; +#X obj 318 352 outlet; +#X obj 565 355 outlet; +#X obj 262 76 prepend set; +#X obj 260 16 prepend set; +#X symbolatom 106 118 80 0 0 0 - - -; +#X obj 218 2 t b s; +#X symbolatom 680 212 50 0 0 0 - - -; +#X obj 734 17 prepend set; +#X text 102 101 Input here the path/navigate with the below filebrowser +to; +#X text 454 101 a folder with .lab files; +#X connect 0 0 1 0; +#X connect 0 0 6 0; +#X connect 0 1 2 0; +#X connect 0 1 7 0; +#X connect 0 2 8 0; +#X connect 0 2 13 0; +#X connect 3 0 5 0; +#X connect 3 0 9 0; +#X connect 4 0 3 0; +#X connect 5 0 0 0; +#X connect 9 0 11 0; +#X connect 10 0 3 0; +#X connect 11 0 12 0; +#X connect 12 0 3 0; +#X connect 12 1 10 0; +#X connect 13 0 14 0; +#X connect 14 0 3 0; +#X coords 0 -1 1 1 505 180 2 100 100; +#X restore -145 231 pd filesloader; +#X obj -145 417 prepend label; +#X obj -145 442 s tomagetuto; +#X obj -263 116 prepend engineadd; +#X obj -143 116 prepend engineremove; +#X text -357 104 add engine; +#X text -374 122 remove engine; +#N canvas 731 48 265 213 formatenginename 0; +#X obj -198 -458 stripfilename -5; +#X obj -114 -435 list; +#X obj -120 -484 t s s; +#X obj -147 -413 gate 2; +#X obj -147 -433 ii 1; +#X obj -114 -388 unpack s s; +#X obj -120 -507 inlet; +#X obj -227 -430 inlet; +#X obj -172 -360 outlet; +#X obj -114 -360 outlet; +#X obj -187 -432 + 1; +#X connect 0 0 1 0; +#X connect 1 0 3 1; +#X connect 2 0 0 0; +#X connect 2 1 1 1; +#X connect 3 0 8 0; +#X connect 3 1 5 0; +#X connect 4 0 3 0; +#X connect 5 0 9 0; +#X connect 6 0 2 0; +#X connect 7 0 10 0; +#X connect 10 0 3 0; +#X restore -263 92 pd formatenginename; +#X obj -197 142 s tomagetuto; +#X text -399 71 Click on an engine name on the above list to load it. +; +#X obj -292 107 vradio 15 1 0 2 empty empty empty 0 -8 0 10 -262144 +-1 -1 0; +#X text -375 159 Remove it later if needed by toggling "remove engine" +first \, then clicking again on its name in the above list.; +#X obj -157 326 cnv 5 5 5 empty empty 4 -15 5 0 20 -234399 -234399 +0; +#X text -47 421 Click on a label file in the above it to load it into +mage~.; +#X obj -718 414 r tomagetuto; +#X obj -488 310 cnv 5 5 5 empty empty 5 -15 5 0 20 -234399 -234399 +0; +#X obj 151 -105 cnv 5 5 5 empty empty 6 -15 5 0 20 -234399 -234399 +0; +#X obj 151 -79 cnv 5 5 5 empty empty 7 -15 5 0 20 -234399 -234399 0 +; +#X obj 151 -52 cnv 5 5 5 empty empty 8 -15 5 0 20 -234399 -234399 0 +; +#X obj 151 -24 cnv 5 5 5 empty empty 9 -15 5 0 20 -234399 -234399 0 +; +#X obj 151 2 cnv 5 5 5 empty empty 10 -20 5 0 20 -234399 -234399 0 +; +#X text -497 -183 step-by-step tutorial; +#N canvas 395 22 692 768 voices_interpolation 0; +#X obj 42 92 s tomagetuto; +#X obj 43 13 prepend interpolate; +#X msg 81 -194 awb; +#X obj 43 -76 knob 32 32 0 1 0 0 empty mageknobin1 empty 0 -8 0 8 -234399 +-234399 -1 0 1; +#X obj 88 -51 symbol; +#X obj 43 -28 pack 1 s; +#X msg 88 -175 slt; +#X msg 94 -156 clb; +#X msg 98 -137 jmk; +#X msg 104 -118 rms; +#X msg 110 -99 bdl; +#X msg 43 -8 \$2 \$1; +#X obj 53 -194 cnv 5 5 5 empty empty 1 -15 5 0 20 -234399 -234399 0 +; +#X obj 13 -61 cnv 5 5 5 empty empty 2 -15 5 0 20 -234399 -234399 0 +; +#X obj 239 -203 cnv 5 5 5 empty empty 3 -15 5 0 20 -234399 -234399 +0; +#X obj 377 -3 cnv 5 5 5 empty empty 4 -15 5 0 20 -234399 -234399 0 +; +#X obj -69 216 cnv 5 5 5 empty empty 5 -15 5 0 20 -234399 -234399 0 +; +#X obj -85 71 prepend set; +#X msg -85 92 interpolate awb 1; +#X text 29 -252 interpolation between voices.; +#X text -138 -173 Select one already loaded engine...; +#X text -105 -86 ...then move the dial.; +#X text 178 -121 At any moment \, the cumulated interpolation weights +of all the engines should not exceed 1 \, or it will result in saturation. +You might want it at a certain point \, though. Up to you.; +#X text 145 -180 Then select another loaded engine \, move the dial +again - carefully.; +#X text 177 -39 The most natural (intended) result will happen if cumulated +weights of all voices is 1; +#X obj 256 32 knob 32 32 0 1 0 0 empty mageknobin1 empty 0 -8 0 8 -234399 +-234399 -1 0 1; +#X obj 375 31 knob 32 32 0 1 0 0 empty empty empty 0 -8 0 8 -234399 +-234399 -1 0 1; +#X obj 319 51 -; +#X obj 318 10 t b f; +#X obj 318 31 1; +#X msg 256 75 interpolate awb \$1; +#X msg 375 75 interpolate slt \$1; +#X text 182 98 Ensuring this with two voices is rather easy...; +#X obj 118 306 knob 32 32 0 1 0 0 empty mageknobin3 empty 0 -8 0 8 +-234399 -234399 -1 0 1; +#X obj 191 307 knob 32 32 0 1 0 0 empty mageknobin4 empty 0 -8 0 8 +-234399 -234399 -1 0 1; +#X obj 260 308 knob 32 32 0 1 0 0 empty mageknobin5 empty 0 -8 0 8 +-234399 -234399 -1 0 1; +#X obj 331 308 knob 32 32 0 1 0 0 empty mageknobin6 empty 0 -8 0 8 +-234399 -234399 -1 0 1; +#N canvas 352 78 962 586 interpall 0; +#X obj 121 89 t b f; +#X obj 186 90 t b f; +#X obj 251 91 t b f; +#X obj 316 91 t b f; +#X obj 382 92 t b f; +#X obj 12 18 inlet; +#X obj 371 7 inlet; +#X obj 422 8 inlet; +#X obj 472 8 inlet; +#X obj 522 8 inlet; +#X obj 569 8 inlet; +#X obj 616 8 inlet; +#X obj 214 336 spigot; +#X obj 154 336 spigot; +#X obj 94 336 spigot; +#X obj 388 336 spigot; +#X obj 328 336 spigot; +#X obj 267 336 spigot; +#X obj 741 276 spigot; +#X obj 685 276 spigot; +#X obj 624 276 spigot; +#X obj 915 276 spigot; +#X obj 855 276 spigot; +#X obj 796 276 spigot; +#X obj 293 389 outlet; +#X obj 349 390 outlet; +#X obj 403 389 outlet; +#X obj 463 387 outlet; +#X obj 527 389 outlet; +#X obj 582 388 outlet; +#X obj 9 256 - 1; +#X obj 12 154 t b f; +#X msg 12 187 1; +#X obj 24 49 loadbang; +#X msg 24 88 1; +#X obj 88 88 t f; +#X msg 133 46 1; +#X obj 101 139 expr $f1 / ($f1 + $f2 + $f3 + $f4 + $f5 + $f6) \; $f2 +/ ($f1 + $f2 + $f3 + $f4 + $f5 + $f6) \; $f3 / ($f1 + $f2 + $f3 + $f4 ++ $f5 + $f6) \; $f4 / ($f1 + $f2 + $f3 + $f4 + $f5 + $f6) \; $f5 / +($f1 + $f2 + $f3 + $f4 + $f5 + $f6) \; $f6 / ($f1 + $f2 + $f3 + $f4 ++ $f5 + $f6); +#X obj 39 321 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 +-262144 -1 -1 1 256; +#X connect 0 0 37 0; +#X connect 0 1 37 1; +#X connect 1 0 37 0; +#X connect 1 1 37 2; +#X connect 2 0 37 0; +#X connect 2 1 37 3; +#X connect 3 0 37 0; +#X connect 3 1 37 4; +#X connect 4 0 37 0; +#X connect 4 1 37 5; +#X connect 5 0 31 0; +#X connect 6 0 20 0; +#X connect 6 0 35 0; +#X connect 7 0 0 0; +#X connect 7 0 19 0; +#X connect 8 0 1 0; +#X connect 8 0 18 0; +#X connect 9 0 2 0; +#X connect 9 0 23 0; +#X connect 10 0 3 0; +#X connect 10 0 22 0; +#X connect 11 0 4 0; +#X connect 11 0 21 0; +#X connect 12 0 26 0; +#X connect 13 0 25 0; +#X connect 14 0 24 0; +#X connect 15 0 29 0; +#X connect 16 0 28 0; +#X connect 17 0 27 0; +#X connect 18 0 26 0; +#X connect 19 0 25 0; +#X connect 20 0 24 0; +#X connect 21 0 29 0; +#X connect 22 0 28 0; +#X connect 23 0 27 0; +#X connect 30 0 20 1; +#X connect 30 0 19 1; +#X connect 30 0 18 1; +#X connect 30 0 23 1; +#X connect 30 0 22 1; +#X connect 30 0 21 1; +#X connect 31 0 32 0; +#X connect 31 1 30 1; +#X connect 31 1 38 0; +#X connect 32 0 30 0; +#X connect 33 0 34 0; +#X connect 34 0 31 0; +#X connect 35 0 37 0; +#X connect 36 0 37 1; +#X connect 37 0 14 0; +#X connect 37 1 13 0; +#X connect 37 2 12 0; +#X connect 37 3 17 0; +#X connect 37 4 16 0; +#X connect 37 5 15 0; +#X connect 38 0 14 1; +#X connect 38 0 13 1; +#X connect 38 0 12 1; +#X connect 38 0 17 1; +#X connect 38 0 16 1; +#X connect 38 0 15 1; +#X restore -26 351 pd interpall ----------------------------------------------- +; +#X obj -26 396 prepend interpolate; +#X msg -26 374 awb \$1; +#X msg 45 374 slt \$1; +#X msg 116 373 clb \$1; +#X msg 188 372 jmk \$1; +#X msg 259 372 rms \$1; +#X msg 331 371 bdl \$1; +#X obj -51 353 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj -12 266 image awb.gif; +#X obj 67 263 image slt.gif; +#X obj 140 263 image clb.gif; +#X obj 218 262 image jmk.gif; +#X obj 285 263 image rms.gif; +#X obj 358 263 image bdl.gif; +#X text 43 203 slt; +#X text 121 201 clb; +#X text 194 199 jmk; +#X text 264 199 rms; +#X text 329 200 bdl; +#X obj 45 308 knob 32 32 0 1 0 0 empty mageknobinslt empty 0 -8 0 8 +-234399 -234399 -1 3100 1; +#X obj -26 309 knob 32 32 0 1 0 0 empty mageknobin1 empty 0 -8 0 8 +-234399 -234399 -1 0 1; +#X obj -65 326 ii 1; +#X text -46 131 ...but it can quickly get complicated.; +#X text 0 450 If you have loaded n voices \, you should interpolate +all n voices at a time - if you don't \, expect strange result.; +#X text -27 204 awb; +#X obj -26 418 s tomagetuto; +#X msg 401 316 \; mageknobinslt set 1; +#X obj 401 294 loadbang; +#X text 400 353 The default engine; +#X text 401 364 is slt.; +#X text -47 146 Once you have loaded all six engines from mage source's +data/configFiles/smu-artic folder \, the "interpall" subpatcher here +shows how to make sure the total of weights is always 1; +#X connect 1 0 0 0; +#X connect 1 0 17 0; +#X connect 2 0 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 1; +#X connect 5 0 11 0; +#X connect 6 0 4 0; +#X connect 7 0 4 0; +#X connect 8 0 4 0; +#X connect 9 0 4 0; +#X connect 10 0 4 0; +#X connect 11 0 1 0; +#X connect 17 0 18 0; +#X connect 25 0 28 0; +#X connect 25 0 30 0; +#X connect 26 0 31 0; +#X connect 27 0 26 0; +#X connect 28 0 29 0; +#X connect 28 1 27 1; +#X connect 29 0 27 0; +#X connect 30 0 0 0; +#X connect 31 0 0 0; +#X connect 33 0 37 3; +#X connect 34 0 37 4; +#X connect 35 0 37 5; +#X connect 36 0 37 6; +#X connect 37 0 39 0; +#X connect 37 1 40 0; +#X connect 37 2 41 0; +#X connect 37 3 42 0; +#X connect 37 4 43 0; +#X connect 37 5 44 0; +#X connect 38 0 63 0; +#X connect 39 0 38 0; +#X connect 40 0 38 0; +#X connect 41 0 38 0; +#X connect 42 0 38 0; +#X connect 43 0 38 0; +#X connect 44 0 38 0; +#X connect 45 0 37 0; +#X connect 57 0 37 2; +#X connect 58 0 37 1; +#X connect 59 0 45 0; +#X connect 65 0 64 0; +#X restore 165 -112 pd voices_interpolation; +#N canvas 340 34 962 584 labels_queue_commands 0; +#X obj -672 21 cnv 5 5 5 empty empty 1 -15 5 0 20 -234399 -234399 0 +; +#X obj -673 78 cnv 5 5 5 empty empty 2 -15 5 0 20 -234399 -234399 0 +; +#X obj -674 142 cnv 5 5 5 empty empty 3 -15 5 0 20 -234399 -234399 +0; +#X obj -675 192 cnv 5 5 5 empty empty 4 -15 5 0 20 -234399 -234399 +0; +#X obj -678 256 cnv 5 5 5 empty empty 5 -15 5 0 20 -234399 -234399 +0; +#X obj -219 44 cnv 5 5 5 empty empty 6 -15 5 0 20 -234399 -234399 0 +; +#X text -648 12 fills label queue with everything at once; +#X msg -657 32 labelfill; +#X msg -658 88 labelnext; +#X text -649 69 fills label queue with only the next label; +#X text -650 128 fills label queue until the next vowel or silence +label; +#X msg -659 149 labelnextvowel; +#X text -650 184 fills label queue from your current position in the +label list to the very end; +#X msg -659 215 labelfilluntilend; +#X text -646 247 empties the queue \, all at once; +#X obj -670 320 s tomagetuto; +#X msg -659 267 labelclear; +#X text -235 6 Three methods to directly jump at a given label given +its position in the list :; +#X obj -189 148 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 +10 -262144 -1 -1 0 256; +#X msg -189 168 labelreplace \$1; +#X text -130 76 labelinsert N sends the Nth label of the list to Mage +\,; +#X obj -189 77 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 +-262144 -1 -1 0 256; +#X msg -189 97 labelinsert \$1; +#X text -126 137 labelreplace N sends the Nth label of the list to +Mage and makes labelnext jump to its next label \,; +#X text -129 203 labelswitch N sends the Nth label of the list and +makes labelnext point to label N + 1; +#X obj -190 216 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 +10 -262144 -1 -1 0 256; +#X msg -190 236 labelswitch \$1; +#X obj -229 313 s tomagetuto; +#X text -128 278 If a command reaches the end of the list \, it loops +back to the start.; +#X text -415 367 note : the label queue is only 512 labels long.; +#X text -436 480 If you use labelfill or labelfilluntilend and your +label file contains more than 512 labels or if you try filling the +queue with more than 512 elements \, it will freeze once it reaches +the 512th label. Once the queue has read that 512th element which is +frozen \, the queue is empty \; therefore you can refill it with the +rest of the labels list using labelnext \, labelnextvowel or labelfilluntilend. +; +#X obj -341 388 r labelsize; +#X obj -341 410 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 +10 -262144 -1 -1 0 256; +#X text -435 429 You can see above the size in samples of your currently +loaded label file \, which is sent by the second data outlet of mage~ +when said files is loaded.; +#X text -562 149 Use this carefully; +#X connect 7 0 15 0; +#X connect 8 0 15 0; +#X connect 11 0 15 0; +#X connect 13 0 15 0; +#X connect 16 0 15 0; +#X connect 18 0 19 0; +#X connect 19 0 27 0; +#X connect 21 0 22 0; +#X connect 22 0 27 0; +#X connect 25 0 26 0; +#X connect 26 0 27 0; +#X connect 31 0 32 0; +#X restore 165 -84 pd labels_queue_commands; +#N canvas 561 22 880 654 base_controls 0; +#X obj -547 -100 cnv 5 5 5 empty empty 1 -15 5 0 20 -234399 -234399 +0; +#X obj -546 -29 cnv 5 5 5 empty empty 2 -15 5 0 20 -234399 -234399 +0; +#X obj -546 45 cnv 5 5 5 empty empty 3 -15 5 0 20 -234399 -234399 0 +; +#X obj -541 200 cnv 5 5 5 empty empty 4 -15 5 0 20 -234399 -234399 +0; +#X obj -518 -96 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 +10 -262144 -1 -1 0 256; +#X msg -518 -72 volume \$1; +#X text -439 -95 a quite standard though fine volume control; +#X obj -517 -26 nbx 5 14 0 1 0 0 empty empty empty 0 -8 0 10 -262144 +-1 -1 0 256; +#X msg -517 -2 alpha \$1; +#X text -441 47 gamma is another vocoder parameter which control is +slightly useless.; +#X obj -516 48 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 +-262144 -1 -1 0 256; +#X msg -516 72 gamma \$1; +#X text -503 179 control on the duration of all 5 successive states +for next synthesized (or computed ?) phoneme. The duration is expressed +in number of frames.; +#X obj -175 448 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 +10 -262144 -1 -1 0 256; +#X obj 10 298 metro 10; +#X obj -391 314 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 +10 -262144 -1 -1 0 256; +#X obj 10 278 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj -391 293 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj -598 249 key; +#X obj -598 281 spigot; +#X msg -565 249 1; +#X msg -532 250 0; +#X text -182 371 0 = overwrite \; 1 = shift \; 2 = scale \; 3 = synthetic +\; 4 = no action; +#X floatatom -396 392 5 0 0 0 - - -; +#X floatatom -363 392 5 0 0 0 - - -; +#X floatatom -330 392 5 0 0 0 - - -; +#X floatatom -297 392 5 0 0 0 - - -; +#X floatatom -264 392 5 0 0 0 - - -; +#X obj -391 364 any; +#X obj -391 336 / 10; +#X obj -387 473 s tomagetuto; +#X obj -538 118 s tomagetuto; +#X text -440 -27 alpha is one of the vocoder's parameters \; simulates +the vocal track length. Default is 0.55. Should not go outside a 0 +- 1 range. (Shift+drag for precision tuning); +#X obj -316 315 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 +10 -262144 -1 -1 0 256; +#X text -140 216 The change is only effective on next synthesized (computed +?) label. If you want a permanent change from mage's default \, you +will need to send the message at least once each label. Easiest way +to do that is to use a metro.; +#X text -92 355 6th integer is the type of operation to apply :; +#X text -82 369 0 - overwrite old value by current value; +#X text -82 383 1 - shift old by current value; +#X text -82 397 2 - scale old by current; +#X text -82 410 3 - mage will compute duration (default); +#X text -82 424 4 - no effect; +#X obj -390 444 cnv 15 168 23 empty empty empty 0 0 0 20 -234399 -234399 +0; +#N canvas 610 363 450 300 pack------------- 0; +#X obj 27 66 inlet; +#X obj 67 66 inlet; +#X obj 107 66 inlet; +#X obj 147 66 inlet; +#X obj 187 66 inlet; +#X obj 227 66 inlet; +#X obj 27 234 outlet; +#X obj 67 97 t b f; +#X obj 107 97 t b f; +#X obj 147 97 t b f; +#X obj 187 97 t b f; +#X obj 227 97 t b f; +#X obj 27 168 pack 1 1 1 1 1 0; +#X connect 0 0 12 0; +#X connect 1 0 7 0; +#X connect 2 0 8 0; +#X connect 3 0 9 0; +#X connect 4 0 10 0; +#X connect 5 0 11 0; +#X connect 7 0 12 0; +#X connect 7 1 12 1; +#X connect 8 0 12 0; +#X connect 8 1 12 2; +#X connect 9 0 12 0; +#X connect 9 1 12 3; +#X connect 10 0 12 0; +#X connect 10 1 12 4; +#X connect 11 0 12 0; +#X connect 11 1 12 5; +#X connect 12 0 6 0; +#X restore -387 422 pd pack-------------; +#X msg -387 447 duration \$1 \$2 \$3 \$4 \$5 \$6; +#X text -495 254 This is just an example of controlling this; +#X text -500 265 with the ascii numbers of the keys in your keyboard +; +#X text -360 332 An example of simple math on input; +#X text -361 343 (a state typical duration is 2-10 frames); +#X obj -433 365 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X connect 4 0 5 0; +#X connect 5 0 31 0; +#X connect 7 0 8 0; +#X connect 8 0 31 0; +#X connect 10 0 11 0; +#X connect 11 0 31 0; +#X connect 13 0 42 5; +#X connect 14 0 29 0; +#X connect 15 0 29 0; +#X connect 16 0 14 0; +#X connect 17 0 15 0; +#X connect 18 0 19 0; +#X connect 19 0 29 0; +#X connect 20 0 19 1; +#X connect 21 0 19 1; +#X connect 23 0 42 0; +#X connect 24 0 42 1; +#X connect 25 0 42 2; +#X connect 26 0 42 3; +#X connect 27 0 42 4; +#X connect 28 0 23 0; +#X connect 28 0 24 0; +#X connect 28 0 25 0; +#X connect 28 0 26 0; +#X connect 28 0 27 0; +#X connect 29 0 28 0; +#X connect 33 0 29 1; +#X connect 42 0 43 0; +#X connect 43 0 30 0; +#X connect 48 0 28 0; +#X restore 165 -57 pd base_controls; +#N canvas 370 38 959 828 pitch_and_speed_controls 0; +#X obj -502 74 cnv 5 5 5 empty empty 1 -15 5 0 20 -234399 -234399 0 +; +#X obj -657 479 cnv 5 5 5 empty empty 2 -15 5 0 20 -234399 -234399 +0; +#X obj -632 643 hsl 64 15 20 1000 0 0 empty empty empty -2 -8 0 10 +-262144 -1 -1 0 1; +#X floatatom -635 664 5 0 0 0 - - -; +#X msg -635 699 pitchoverwrite \$1; +#X obj -426 643 hsl 64 15 0.25 4 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X floatatom -429 665 5 0 0 0 - - -; +#X msg -429 699 pitchscale \$1; +#X obj -517 643 hsl 64 15 -200 1000 0 0 empty empty empty -2 -8 0 10 +-262144 -1 -1 0 1; +#X floatatom -520 665 5 0 0 0 - - -; +#X msg -520 699 pitchshift \$1; +#X msg -333 700 pitchsynth; +#X obj -622 475 hsl 64 15 20 1000 0 0 empty empty empty -2 -8 0 10 +-262144 -1 -1 0 1; +#X floatatom -625 500 5 0 0 0 - - -; +#X obj -545 475 hsl 64 15 -200 1000 0 0 empty empty empty -2 -8 0 10 +-262144 -1 -1 0 1; +#X floatatom -548 501 5 0 0 0 - - -; +#X obj -470 475 hsl 64 15 0.25 4 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X floatatom -473 501 5 0 0 0 - - -; +#X msg -625 548 pitch \$1 0; +#X msg -548 549 pitch \$1 1; +#X msg -473 549 pitch \$1 2; +#X msg -429 617 1; +#X text -615 527 overwrite; +#X text -540 528 shift; +#X text -464 529 scale; +#X msg -520 618 0; +#X obj -466 72 hsl 64 15 12 1200 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X floatatom -461 142 5 0 0 0 - - -; +#X obj -461 93 / 240; +#X obj -461 118 pow -1; +#X msg -469 180 speed \$1 0; +#X obj -384 72 hsl 64 15 -200 1000 0 0 empty empty empty -2 -8 0 10 +-262144 -1 -1 0 1; +#X msg -387 180 speed \$1 1; +#X obj -301 72 hsl 64 15 -5 5 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X msg -304 180 speed \$1 2; +#X text -456 159 overwrite; +#X text -377 160 shift; +#X text -294 160 scale; +#X msg -469 46 240; +#X floatatom -304 127 5 0 0 0 - - -; +#X msg -304 46 1; +#X msg -387 45 0; +#X floatatom -387 127 5 0 0 0 - - -; +#X text -714 524 0 = overwrite \; 1 = shift \; 2 = scale \; 3 = synthetic +\; 4 = no action; +#X text -238 110 0 = overwrite \; 1 = shift \; 2 = scale \; 3 = synthetic +\; 4 = no action; +#X obj -677 758 r pitchvib; +#X text -135 306 Each time you shift or scale \, you're shifting or +scaling the current speed value \, not the original/default one - so +using those shift and scale sliders you can very quikly exponentially +increase the duration in an uncontrolled fashion.; +#X text -133 90 -scale : multiplies the current number of samples in +one frame by the number you give.; +#X text -133 51 -overwrite : redefines the size \, in samples \, of +one frame.; +#X text -133 65 -shift : shifts the size of the frame by the given +amount of samples.; +#X obj -387 219 s tomagetuto; +#X text -684 136 this gives a ratio of current speed; +#X text -690 148 compared to the default speed; +#X text -693 160 (240 - ratio of 1); +#X obj -483 292 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 +10 -262144 -1 -1 240 256; +#X floatatom -398 337 9 0 0 0 - - -; +#X obj -398 288 / 240; +#X obj -398 313 pow -1; +#X text -344 294 ratio; +#X obj -256 602 nbx 6 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 +10 -262144 -1 -1 110 256; +#X text -320 10 Default speed is of 240; +#X text -641 14 "speed" is the size of one frame \, in samples.; +#X text -321 22 samples per frame.; +#X text -23 15 More details :; +#X obj -543 577 s tomagetuto; +#X obj -503 736 s tomagetuto; +#X obj -342 658 f; +#X obj -280 658 f; +#X obj -311 658 f; +#X obj -342 490 f; +#X obj -311 490 f; +#X obj -280 490 f; +#N canvas 780 345 450 300 current_speed 0; +#X obj 25 46 inlet; +#X obj 200 46 inlet; +#X obj 386 44 inlet; +#X text 199 23 shift; +#X text 386 20 scale; +#X obj 169 247 outlet; +#X obj 169 210 f; +#X obj 297 77 f; +#X obj 200 112 + 240; +#X obj 386 112 * 240; +#X obj 81 169 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 86 195 ii 240; +#X text 17 23 original/overwrite; +#X connect 0 0 6 0; +#X connect 0 0 7 0; +#X connect 1 0 8 0; +#X connect 2 0 9 0; +#X connect 6 0 7 0; +#X connect 6 0 5 0; +#X connect 7 0 8 1; +#X connect 7 0 9 1; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 11 0; +#X connect 11 0 6 0; +#X restore -469 260 pd current_speed -----------; +#X msg -635 618 110; +#X text -404 723 Alternatively \, you can send explicit; +#X text -410 734 messages for pitch operations.; +#X text -133 636 Mage synthesizes speech not only at a given central +frequency \, but also with continuous variations (accentuation). The +shift and scale methods allow you to preserve that accentuation \, +whereas the overwrite method doesn't. If you overwrite \, you set a +new pitch \, which won't be altered by mage. If after overwriting you +use the shift or scale method \, the accentuation will be synthesized +again \, but the shifting and scaling will occur from default frequency +\, not the one currently set with pitch overwrite method.; +#X text -134 512 Whatever pitch method you use \, it will always perform +the requested operation comparatively to a fixed default pitch \, not +the one set previously by user. The default Mage pitch is 110 Hz \, +but this value is very dependant on currently used voice engine. The +pitch scale and shift methods will perform change relatively to that +current default frequency (which depends on the engine). The overwrite +method will overwrite the current pitch \, and is agnostic in regard +to that default frequency.; +#X text -134 125 Each phoneme has a different amount of frames. Each +frame has a fixed number of samples. The "speed" parameter affects +the number of samples in all the frames \, but the number of frames +per phoneme is still calculated by mage \, and more than likely to +be different for each phoneme. Each phoneme is divided in 5 states +\, and mage calculates the duration of each states individually \, +which is heavily dependant on everything (surrounding phonemes \, consonne/vowel +\, voice engine...). The "duration \$1 \$2 \$3 \$4 \$5" message is +the way to override default Mage's generated duration in frames for +one phoneme. Each number argument you give to that message will override +the corresponding state's duration for the next generated phoneme. +; +#N canvas 780 345 620 288 current_pitch 0; +#X obj 25 46 inlet; +#X obj 200 46 inlet; +#X obj 386 44 inlet; +#X text 17 23 original; +#X text 199 23 shift; +#X text 386 20 scale; +#X obj 169 247 outlet; +#X obj 169 210 f; +#X obj 81 169 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 86 195 ii 110; +#X obj 200 112 + 110; +#X obj 386 112 * 110; +#X obj 494 44 inlet; +#X text 462 22 default base speech; +#X connect 0 0 7 0; +#X connect 1 0 10 0; +#X connect 2 0 11 0; +#X connect 7 0 6 0; +#X connect 8 0 9 0; +#X connect 9 0 7 0; +#X connect 10 0 7 0; +#X connect 11 0 7 0; +#X connect 12 0 11 1; +#X connect 12 0 10 1; +#X restore -342 576 pd current_pitch; +#X obj -264 558 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 +10 -262144 -1 -1 110 256; +#X text -254 534 base pitch; +#X obj -264 515 ii 110; +#X text -136 383 The subpatcher "current speed" gives you the current +speed \, taking into consideration the changes you may effect with +the connected sliders and different methods.; +#X text -134 467 Different rules apply to operations on pitch - notwithstanding +vibrato (see "vibrato" subpatcher from main patch).; +#X text -133 775 The "current_pitch" subpatcher gives current speech +pitch. You will need to provide it with a base pitch though \, if it's +different from mage's default pitch (110 Hz).; +#X text -697 775 this will be used in the vibrato subpatcher; +#X connect 2 0 3 0; +#X connect 2 0 66 0; +#X connect 3 0 4 0; +#X connect 4 0 65 0; +#X connect 5 0 6 0; +#X connect 5 0 67 0; +#X connect 6 0 7 0; +#X connect 7 0 65 0; +#X connect 8 0 9 0; +#X connect 8 0 68 0; +#X connect 9 0 10 0; +#X connect 10 0 65 0; +#X connect 11 0 65 0; +#X connect 12 0 13 0; +#X connect 12 0 69 0; +#X connect 13 0 18 0; +#X connect 14 0 15 0; +#X connect 14 0 70 0; +#X connect 15 0 19 0; +#X connect 16 0 17 0; +#X connect 16 0 71 0; +#X connect 17 0 20 0; +#X connect 18 0 64 0; +#X connect 19 0 64 0; +#X connect 20 0 64 0; +#X connect 21 0 5 0; +#X connect 25 0 8 0; +#X connect 26 0 28 0; +#X connect 26 0 30 0; +#X connect 26 0 72 0; +#X connect 28 0 29 0; +#X connect 29 0 27 0; +#X connect 30 0 50 0; +#X connect 31 0 42 0; +#X connect 31 0 72 1; +#X connect 32 0 50 0; +#X connect 33 0 39 0; +#X connect 33 0 72 2; +#X connect 34 0 50 0; +#X connect 38 0 26 0; +#X connect 39 0 34 0; +#X connect 40 0 33 0; +#X connect 41 0 31 0; +#X connect 42 0 32 0; +#X connect 45 0 4 0; +#X connect 56 0 57 0; +#X connect 57 0 55 0; +#X connect 66 0 79 0; +#X connect 67 0 79 2; +#X connect 68 0 79 1; +#X connect 69 0 79 0; +#X connect 70 0 79 1; +#X connect 71 0 79 2; +#X connect 72 0 54 0; +#X connect 72 0 56 0; +#X connect 73 0 2 0; +#X connect 79 0 59 0; +#X connect 80 0 79 3; +#X connect 82 0 80 0; +#X restore 165 -29 pd pitch_and_speed_controls; +#N canvas 350 78 763 668 vibrato 0; +#X obj -328 -219 cnv 5 5 5 empty empty 1 -15 5 0 20 -234399 -234399 +0; +#X obj -501 -58 cnv 5 5 5 empty empty 2 -15 5 0 20 -234399 -234399 +0; +#X obj -437 169 cnv 5 5 5 empty empty 3 -15 5 0 20 -234399 -234399 +0; +#X obj -187 158 cnv 5 5 5 empty empty 4 -15 5 0 20 -234399 -234399 +0; +#X obj -30 38 cnv 5 5 5 empty empty 5 -15 5 0 20 -234399 -234399 0 +; +#X floatatom -477 -71 5 0 0 0 - - -; +#X floatatom -173 155 5 0 0 0 - - -; +#X floatatom -490 168 5 0 0 0 - - -; +#X msg -477 -46 vibratoamp \$1; +#X msg -173 179 vibratooffset \$1; +#X msg -490 192 vibratozoom \$1; +#X obj -6 94 s pitchvib; +#X floatatom -311 -123 10 0 0 0 - - -; +#X msg -311 -104 vibratothresh \$1; +#X obj -311 -207 pow -1; +#X obj -311 -186 * 48000; +#X obj -311 -228 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 +10 -262144 -1 -1 0 256; +#X obj -6 39 metro 10; +#X obj -6 19 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X obj -6 67 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 +-262144 -1 -1 0 256; +#X text -26 -47 it is required to update; +#X text -25 -35 the pitch continuously; +#X text -26 -24 in order to have the; +#X text -25 -13 vibrato working on; +#X text -25 -2 frozen phonems.; +#X text -339 -260 frequency of vibrato; +#X text -325 -248 in hertz; +#X text -504 -117 amplitude of; +#X text -504 -105 the voice's; +#X text -504 -94 vibrato \, in hertz; +#X obj -311 -165 sel 0; +#X obj -311 -144 48000; +#X obj -311 -9 s tomagetuto; +#X obj -303 249 s tomagetuto; +#X text -404 -324 vibrato - to give a vibrato effect to the current +synthesized speech.; +#X text -507 137 zoom inside one period; +#X text -287 120 offset the period - useful in conjonction with zoom +\, to create different shapes than sinus.; +#X msg -153 39 labelnextvowel; +#X obj -153 61 s tomagetuto; +#X text -242 -152 threshold is the size of one vibrato period \, in +samples - above is conversion from hertz to period at samplerate of +48000; +#X connect 5 0 8 0; +#X connect 6 0 9 0; +#X connect 7 0 10 0; +#X connect 8 0 32 0; +#X connect 9 0 33 0; +#X connect 10 0 33 0; +#X connect 12 0 13 0; +#X connect 13 0 32 0; +#X connect 14 0 15 0; +#X connect 15 0 30 0; +#X connect 16 0 14 0; +#X connect 17 0 19 0; +#X connect 18 0 17 0; +#X connect 19 0 11 0; +#X connect 30 0 31 0; +#X connect 30 1 12 0; +#X connect 31 0 12 0; +#X connect 37 0 38 0; +#X restore 165 -2 pd vibrato; +#N canvas 55 22 1277 498 slightly_more_advanced_topics 0; +#X obj -441 -204 cnv 6 5 5 empty empty a 0 0 0 20 -262144 -1 0; +#X obj -543 -204 cnv 6 5 5 empty empty creating 0 0 0 20 -262144 -1 +0; +#X obj -420 -204 cnv 6 5 5 empty empty voice 0 0 0 20 -262144 -1 0 +; +#X obj -347 -204 cnv 6 5 5 empty empty engine 0 0 0 20 -262144 -1 0 +; +#X obj -547 -71 cnv 6 5 5 empty empty recompiling 0 0 0 20 -262144 +-1 0; +#X text -544 -189 Creating a voice engine is a complex and long process +\, those included are freely available and were created using \, among +other things \, proprietary software from the acapela group; +#X obj -512 -150 pddp/pddplink http://www.acapela-group.com/ -text +(http://www.acapela-group.com/).; +#X text -549 -56 If you recompile mage~ \, you can replace the commented +out lines (in mage~.cpp \, lines 222-230) that load the engines on +mage startup by the path to the engines on your computer. This will +allow you to have all engines preloaded each start you start mage (hence +not needing engineadd engineremove mesages).; +#X text -553 81 Many things to do with mage~ and poly~ ! Example patchs +will come later.; +#X obj -551 64 cnv 6 5 5 empty empty using 0 0 0 20 -262144 -1 0; +#X obj -485 64 cnv 6 5 5 empty empty poly~ 0 0 0 20 -262144 -1 0; +#X obj -129 150 cnv 6 5 5 empty empty using 0 0 0 20 -262144 -1 0; +#X obj -63 150 cnv 6 5 5 empty empty controllers 0 0 0 20 -262144 -1 +0; +#X text -132 167 It's obviously interesting to use controllers of all +sorts with mage~ \, and the main interest of mage's implementation +in MaxMSP and PureData. Patch examples of interfacing mage with the +native macbooks trackpad \, a wacom bamboo tablet and the Razer Hydra +game controller will come later.; +#X text -131 -186 By now \, you might know everyting about mage and +mage~ \, and may want to create your own .lab files from whatever text +you fancy.; +#X text -132 -140 However \, it is quite difficult at the moment. You +need to install the festival speech synthesis system; +#X obj -134 -114 pddp/pddplink http://www.cstr.ed.ac.uk/projects/festival/ +-text (http://www.cstr.ed.ac.uk/projects/festival/); +#X text -133 -101 and figure how to translate a text to a format used +by mage \, using this. If you know nothing about this \, it means quite +a lot of work. Alternately \, provided it's not on a per-day basis +\, you can send me a text to format at vic.hvk@gmail.com. about mage +and mage~ \, and may want to create your own .lab files from whatever +text you fancy.; +#X text -133 -16 You could also look at the formating of a .lab file +in the examples and \, knowing that each line is a label and that the +important information is the first few characters of each line \, where +you see the 3 previous phonems - the current phonem - then the 3 next +phonems - all separated by special separator characters that are the +same for each line \; you can recompose label files from this... obviously +\, the result will be strange.; +#X text -133 91 Better solutions will come later.; +#X obj -129 -202 cnv 6 5 5 empty empty creating 0 0 0 20 -262144 -1 +0; +#X obj -31 -202 cnv 6 5 5 empty empty .lab 0 0 0 20 -262144 -1 0; +#X obj 21 -202 cnv 6 5 5 empty empty files 0 0 0 20 -262144 -1 0; +#X text 298 -146 You may have noticed rarely used data outlets from +the mage~ object. The first one (from left to right) is a bang each +time a label is pushed to the labelqueue. The second one is the number +of labels when a label lists is loaded. The third one is the duration +\, in frames \, of currently computed label.; +#X text 298 -58 Data outlets provide half useful information because +they are synced with the label queue \, not the model queue \, hence +it gives informations at a different rate than what is output. For +exemple : the "label size" outlet gives the size of the label that +just got computed \, not of the next to-be-output label - if you give +a big list to compute it is likely to be computed very fast or slightly +faster than it is synthesized.; +#X text 299 55 It is possible to sort of workaround this \, using a +custom queue \, recalculating each size of label in samples and syncing +precisely with the start of the synthesis \; however it is not really +easy to achieve \, even harder if you take into account that your aim +is to control the timing of labels and you have to recompute the size +of a label each time its duration is affected - so you need to recalculate +values in the queue \, etc... what's more \, you have to detect the +exact time mage begins to synthesize \, which is different from the +time you fill the queue (there is the computation inbetween \, which +time frame is not known in advance.) Example patch will come later. +; +#X obj 363 -163 cnv 6 5 5 empty empty the 0 0 0 20 -262144 -1 0; +#X obj 297 -163 cnv 6 5 5 empty empty about 0 0 0 20 -262144 -1 0; +#X obj 406 -163 cnv 6 5 5 empty empty data 0 0 0 20 -262144 -1 0; +#X obj 462 -163 cnv 6 5 5 empty empty outlets 0 0 0 20 -262144 -1 0 +; +#X obj 552 -163 cnv 6 5 5 empty empty of 0 0 0 20 -262144 -1 0; +#X obj 582 -164 cnv 6 5 5 empty empty mage~  0 0 0 20 -262144 -1 0 +; +#X restore 165 26 pd slightly_more_advanced_topics; +#X obj 152 30 cnv 5 5 5 empty empty 11 -20 5 0 20 -234399 -234399 0 +; +#X msg -465 291 labelfill; +#X obj -465 322 s tomagetuto; +#X obj -435 435 mage_glossary; +#X text -557 411 Lost with words ? Try the glossary (just click on +it) :; +#X text -537 225 fill mage's label queue with this message - as soon +as there is something in the label queue \, mage will synthesize it +and remove it - "labelfill" fills the queue with the whole label list +currently loaded; +#X text -718 386 dsp start/stop; +#N canvas 177 507 1101 616 filesloader 0; +#X obj 104 178 playlist conf 430 130 {Helvetica 10 bold} #FEFEFE #E63A79 +black red; +#X symbolatom 117 444 50 0 0 0 - - -; +#X symbolatom 436 443 50 0 0 0 - - -; +#X symbolatom 670 202 50 0 0 0 - - -; +#X obj 112 -1 loadbang; +#X obj 112 77 prepend location; +#X obj 55 423 outlet; +#X obj 319 417 outlet; +#X obj 566 420 outlet; +#X obj 262 76 prepend set; +#X obj 263 7 prepend set; +#X symbolatom 105 117 80 0 0 0 - - -; +#X text 105 144 Scroll the list by clic-dragging in the colored area. +; +#X text 104 132 It is possible to then save this patcher so that it +will; +#X text 443 132 remember this path.; +#X obj 208 1 t b s; +#X msg 112 40 /Users/vichug/Music/MAGE/mage-2.00/data/configFiles/cmu-artic +; +#X obj 724 7 prepend set; +#X msg 708 535 /Users/vichug/Music/MAGE/mage-2.00/data/configFiles/cmu-artic +; +#X obj 139 496 prepend set; +#X msg 131 537 /Users/vichug/Music/MAGE/mage-2.00/data/configFiles/cmu-artic/jmk.conf +; +#X text 101 100 Input here the path/navigate to the folder with; +#X text 387 100 engine configuration files :; +#X obj 803 81 stripfilename; +#X connect 0 0 1 0; +#X connect 0 0 6 0; +#X connect 0 1 2 0; +#X connect 0 1 7 0; +#X connect 0 2 3 0; +#X connect 0 2 8 0; +#X connect 1 0 19 0; +#X connect 3 0 17 0; +#X connect 4 0 16 0; +#X connect 5 0 0 0; +#X connect 9 0 11 0; +#X connect 10 0 16 0; +#X connect 11 0 15 0; +#X connect 15 0 16 0; +#X connect 15 1 10 0; +#X connect 16 0 5 0; +#X connect 16 0 9 0; +#X connect 17 0 16 0; +#X connect 19 0 20 0; +#X coords 0 -1 1 1 505 210 2 100 100; +#X restore -401 -143 pd filesloader; +#X text 7 110 In the filebrowsers \, navigate by clicking on two dots +for the above folder \, and on a folder name to open said folder \, +then load an appopriate item. If you tehn save the patch it should +remember this folder next time you open this patcher.; +#X obj -642 205 s labelsize; +#X obj -560 195 print a; +#X obj -502 195 print b; +#X obj -442 195 print c; +#X text -546 175 bang; +#X text -447 176 labelsize; +#X text -506 176 framesize; +#X obj -627 250 - 100; +#X connect 19 0 23 0; +#X connect 19 0 24 0; +#X connect 19 0 24 1; +#X connect 19 1 81 0; +#X connect 19 2 82 0; +#X connect 19 3 80 0; +#X connect 19 3 83 0; +#X connect 20 0 21 0; +#X connect 23 0 87 0; +#X connect 25 0 19 0; +#X connect 27 0 36 0; +#X connect 28 0 27 0; +#X connect 30 0 36 0; +#X connect 31 0 36 0; +#X connect 38 0 41 0; +#X connect 43 0 44 0; +#X connect 44 0 45 0; +#X connect 46 0 51 0; +#X connect 47 0 51 0; +#X connect 50 0 46 0; +#X connect 50 1 47 0; +#X connect 53 0 50 0; +#X connect 57 0 20 0; +#X connect 72 0 73 0; +#X connect 78 1 50 1; +#X connect 87 0 22 0; diff --git a/examples/puredata/pd_mage_tutos_helpfile/mage~-help.pd b/examples/puredata/pd_mage_tutos_helpfile/mage~-help.pd new file mode 100644 index 0000000..57f2601 --- /dev/null +++ b/examples/puredata/pd_mage_tutos_helpfile/mage~-help.pd @@ -0,0 +1,720 @@ +#N canvas 4 22 1439 852 10; +#X declare -lib unauthorized; +#X declare -path ./; +#X declare -lib mediasettings; +#N canvas 573 22 1101 616 filesloader 0; +#X obj 102 177 playlist lab 500 200 {Helvetica 10 bold} #FEFEFE #E63A79 +black red; +#X symbolatom 117 444 50 0 0 0 - - -; +#X symbolatom 436 443 50 0 0 0 - - -; +#X msg 112 40 /Users/vichug/Music/pd_files/txt2labscrpt/out; +#X obj 112 -1 loadbang; +#X obj 112 77 prepend location; +#X obj 55 423 outlet; +#X obj 319 417 outlet; +#X obj 566 420 outlet; +#X obj 262 76 prepend set; +#X obj 260 16 prepend set; +#X symbolatom 105 118 80 0 0 0 - - -; +#X text 102 100 Input here the path to the folder with .lab files; +#X text 104 145 Scroll the list by clic-dragging in the colored area. +; +#X obj 218 2 t b s; +#X text 103 133 It is possible to then save this patcher so that it +will; +#X text 442 133 remember this path.; +#X symbolatom 700 232 50 0 0 0 - - -; +#X obj 754 37 prepend set; +#X text 406 100 (or navigate until finding it); +#X connect 0 0 1 0; +#X connect 0 0 6 0; +#X connect 0 1 2 0; +#X connect 0 1 7 0; +#X connect 0 2 8 0; +#X connect 0 2 17 0; +#X connect 3 0 5 0; +#X connect 3 0 9 0; +#X connect 4 0 3 0; +#X connect 5 0 0 0; +#X connect 9 0 11 0; +#X connect 10 0 3 0; +#X connect 11 0 14 0; +#X connect 14 0 3 0; +#X connect 14 1 10 0; +#X connect 17 0 18 0; +#X connect 18 0 3 0; +#X coords 0 -1 1 1 505 280 2 100 100; +#X restore -1004 -590 pd filesloader; +#N canvas 154 316 1101 616 filesloader 0; +#X obj 111 205 playlist conf 430 130 {Helvetica 10 bold} #FEFEFE #E63A79 +black red; +#X symbolatom 117 444 50 0 0 0 - - -; +#X symbolatom 436 443 50 0 0 0 - - -; +#X symbolatom 757 443 50 0 0 0 - - -; +#X msg 112 40 /Users/vichug/Music/MAGE/mage-2.00/data/configFiles/cmu-artic +; +#X obj 112 -1 loadbang; +#X obj 112 77 prepend location; +#X obj 55 423 outlet; +#X obj 319 417 outlet; +#X obj 566 420 outlet; +#X obj 262 76 prepend set; +#X obj 263 7 prepend set; +#X symbolatom 111 160 80 0 0 0 - - -; +#X text 107 110 Input here the path to the folder with engine configuration +; +#X text 465 110 files :; +#X obj 107 517 cnv 15 100 60 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 207 7 t b s; +#X symbolatom 690 222 50 0 0 0 - - -; +#X obj 744 27 prepend set; +#X text 107 122 (or just navigate until you find it. Clicking on a +folder; +#X text 453 122 opens said folder.; +#X text 110 134 Click on the two dots for upper folder.); +#X connect 0 0 1 0; +#X connect 0 0 7 0; +#X connect 0 1 2 0; +#X connect 0 1 8 0; +#X connect 0 2 3 0; +#X connect 0 2 9 0; +#X connect 0 2 17 0; +#X connect 4 0 6 0; +#X connect 4 0 10 0; +#X connect 5 0 4 0; +#X connect 6 0 0 0; +#X connect 10 0 12 0; +#X connect 11 0 4 0; +#X connect 12 0 16 0; +#X connect 16 0 4 0; +#X connect 16 1 11 0; +#X connect 17 0 18 0; +#X connect 18 0 4 0; +#X coords 0 -1 1 1 505 250 2 100 100; +#X restore -494 -590 pd filesloader; +#X obj 301 -581 import unauthorized; +#X obj -1004 -300 prepend label; +#X obj -1004 -275 s tomagehelp; +#X obj -983 28 r tomagehelp; +#X obj -898 27 prepend set; +#X obj -289 -277 s tomagehelp; +#X obj -289 -302 prepend engineadd; +#X obj -169 -302 prepend engineremove; +#X msg -334 -305 2; +#X msg -334 -333 1; +#X text -398 -333 add engine; +#X text -416 -306 remove engine; +#X obj -923 110 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0; +#X obj -991 193 output~; +#X obj -613 -270 ii reset; +#X obj -613 -191 s tomagehelp; +#X obj -613 -293 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X text -578 -295 panic !; +#X msg -607 -246 pitchsynth; +#X msg -601 -221 labelclear; +#X text -553 -271 resets nearly everything; +#X text -527 -222 make it stop; +#X obj -992 -3 s tomagehelp; +#X msg -992 -117 labelfill; +#X text -921 -118 sends the whole label file at once; +#X msg -985 -89 labelfilluntilend; +#X text -908 -59 goes to next label; +#X text -876 -37 goes to next vowel or pause label; +#X msg -978 -57 labelnext; +#X msg -973 -34 labelnextvowel; +#X msg -1003 -184 volume \$1; +#X msg -930 -184 alpha \$1; +#X msg -853 -185 gamma \$1; +#X floatatom -1003 -207 9 0 0 0 - - -; +#X floatatom -930 -206 9 0 0 0 - - -; +#X floatatom -853 -206 9 0 0 0 - - -; +#X obj -930 -149 s tomagehelp; +#N canvas 248 116 621 465 Licence 0; +#X text 65 34 This file is part of MAGE / pHTS; +#X text 64 49 (the performative HMM-based speech synthesis system) +; +#X text 65 73 MAGE / pHTS is free software: you can redistribute it +and/or modify it under the terms of the GNU General Public License +as published by the Free Software Foundation \, either version 3 of +the license \, or any later version.; +#X text 65 134 MAGE / pHTS is distributed in the hope that it will +be useful \, but WITHOUT ANY WARRANTY \, without even the implied warranty +of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details.; +#X text 66 209 You should have received a copy of the GNU General Public +License along with MAGE / pHTS. If not \, see http://www.gnu.org/licenses +; +#X text 44 19 /* ----------------------------------------------------- +*/; +#X text 66 263 Copyright 2011 University of Mons :; +#X text 126 281 Numediart Institute for New Media Art; +#X text 259 295 ( www.numediart.org ); +#X text 126 309 Acapela Group ( www.acapela-group.com ); +#X text 70 338 Developed by :; +#X text 128 359 Maria Astrinaki \, Alexis Moinet \, Geoffrey Wilfart +\,; +#X text 204 373 Nicolas d'Alessandro \, Thierry Dutoit; +#X text 70 390 /* ------------------------------------------------------ +*/; +#X restore -756 -165 pd Licence; +#X msg -1003 -248 1; +#X msg -930 -247 0.55; +#X obj -927 -225 hsl 64 15 0.1 0.9 0 0 empty empty empty -2 -8 0 10 +-262144 -1 -1 0 1; +#X obj -1000 -226 hsl 64 15 0 2 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X msg -853 -247 1; +#X obj -850 -225 hsl 64 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X obj -622 -89 hsl 64 15 20 1000 0 0 empty empty empty -2 -8 0 10 +-262144 -1 -1 0 1; +#X floatatom -625 -68 5 0 0 0 - - -; +#X msg -625 -33 pitchoverwrite \$1; +#X obj -506 -89 hsl 64 15 0.25 4 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X floatatom -509 -67 5 0 0 0 - - -; +#X msg -509 -33 pitchscale \$1; +#X obj -413 -89 hsl 64 15 -200 1000 0 0 empty empty empty -2 -8 0 10 +-262144 -1 -1 0 1; +#X floatatom -416 -67 5 0 0 0 - - -; +#X msg -416 -33 pitchshift \$1; +#X msg -323 -32 pitchsynth; +#X obj -622 33 hsl 64 15 20 1000 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X floatatom -625 58 5 0 0 0 - - -; +#X obj -545 33 hsl 64 15 -200 1000 0 0 empty empty empty -2 -8 0 10 +-262144 -1 -1 0 1; +#X floatatom -548 59 5 0 0 0 - - -; +#X obj -470 33 hsl 64 15 0.25 4 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X floatatom -473 59 5 0 0 0 - - -; +#X msg -625 106 pitch \$1 0; +#X msg -548 107 pitch \$1 1; +#X msg -473 107 pitch \$1 2; +#X obj -493 4 s tomagehelp; +#X msg -509 -115 1; +#X obj -543 135 s tomagehelp; +#X text -615 85 overwrite; +#X text -540 86 shift; +#X text -464 87 scale; +#X msg -625 -114 220; +#X msg -416 -114 0; +#X obj -209 17 hsl 64 15 12 1200 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X floatatom -204 87 5 0 0 0 - - -; +#X obj -204 38 / 240; +#X obj -204 63 pow -1; +#X msg -212 125 speed \$1 0; +#X obj -126 17 hsl 64 15 -200 1000 0 0 empty empty empty -2 -8 0 10 +-262144 -1 -1 0 1; +#X msg -129 125 speed \$1 1; +#X obj -48 17 hsl 64 15 -5 5 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X msg -51 125 speed \$1 2; +#X obj -129 162 s tomagehelp; +#X text -199 104 overwrite; +#X text -119 105 shift; +#X text -41 105 scale; +#X msg -212 -9 240; +#X floatatom -51 72 5 0 0 0 - - -; +#X msg -51 -9 1; +#X msg -129 -10 0; +#X msg -848 196 params @samplerate 48000; +#X floatatom -129 72 5 0 0 0 - - -; +#X text -215 -35 speed is size of one frame \, in samples.; +#X text -853 160 mage~ works better at a sample rate of 48000 Hz; +#N canvas 694 33 450 300 formatenginename 0; +#X obj -281 -471 stripfilename -5; +#X obj -197 -448 list; +#X obj -203 -497 t s s; +#X obj -230 -426 gate 2; +#X obj -230 -446 ii 1; +#X obj -197 -401 unpack s s; +#X obj -203 -520 inlet; +#X obj -273 -446 inlet; +#X obj -255 -373 outlet; +#X obj -197 -373 outlet; +#X connect 0 0 1 0; +#X connect 1 0 3 1; +#X connect 2 0 0 0; +#X connect 2 1 1 1; +#X connect 3 0 8 0; +#X connect 3 1 5 0; +#X connect 4 0 3 0; +#X connect 5 0 9 0; +#X connect 6 0 2 0; +#X connect 7 0 3 0; +#X restore -289 -326 pd formatenginename; +#X msg 180 153 labelnext; +#X msg 124 6 labelinsert \$1; +#X msg 158 91 bang; +#X msg 202 91 stop; +#X obj 180 124 metro 250; +#X obj -126 -144 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 +10 -262144 -1 -1 0 256; +#X obj -258 -95 prepend duration; +#X obj -314 -163 metro 10; +#X obj -245 -154 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 +10 -262144 -1 -1 0 256; +#X obj -314 -183 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 +0 1; +#X obj -244 -179 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 154 -171 knob 32 32 0 1 0 0 empty mageknobin3 empty 0 -8 0 8 +-234399 -234399 -1 0 1; +#X obj 227 -170 knob 32 32 0 1 0 0 empty mageknobin4 empty 0 -8 0 8 +-234399 -234399 -1 0 1; +#X obj 296 -169 knob 32 32 0 1 0 0 empty mageknobin5 empty 0 -8 0 8 +-234399 -234399 -1 0 1; +#X obj 367 -169 knob 32 32 0 1 0 0 empty mageknobin6 empty 0 -8 0 8 +-234399 -234399 -1 0 1; +#N canvas 100 22 962 586 interpall 0; +#X obj 121 89 t b f; +#X obj 186 90 t b f; +#X obj 251 91 t b f; +#X obj 316 91 t b f; +#X obj 382 92 t b f; +#X obj 12 18 inlet; +#X obj 371 7 inlet; +#X obj 422 8 inlet; +#X obj 472 8 inlet; +#X obj 522 8 inlet; +#X obj 569 8 inlet; +#X obj 616 8 inlet; +#X obj 214 496 spigot; +#X obj 154 496 spigot; +#X obj 93 496 spigot; +#X obj 388 496 spigot; +#X obj 328 496 spigot; +#X obj 267 496 spigot; +#X obj 741 436 spigot; +#X obj 685 436 spigot; +#X obj 624 436 spigot; +#X obj 915 436 spigot; +#X obj 855 436 spigot; +#X obj 796 436 spigot; +#X obj 293 549 outlet; +#X obj 349 550 outlet; +#X obj 403 549 outlet; +#X obj 463 547 outlet; +#X obj 527 549 outlet; +#X obj 582 548 outlet; +#X obj 12 414 - 1; +#X obj 12 154 t b f; +#X msg 12 187 1; +#X obj 24 49 loadbang; +#X msg 24 88 1; +#X obj 88 88 t f; +#X obj 39 479 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 +-262144 -1 -1 1 256; +#X obj 101 139 expr $f1 / ($f1 + $f2 + $f3 + $f4 + $f5 + $f6) \; $f2 +/ ($f1 + $f2 + $f3 + $f4 + $f5 + $f6) \; $f3 / ($f1 + $f2 + $f3 + $f4 ++ $f5 + $f6) \; $f4 / ($f1 + $f2 + $f3 + $f4 + $f5 + $f6) \; $f5 / +($f1 + $f2 + $f3 + $f4 + $f5 + $f6) \; $f6 / ($f1 + $f2 + $f3 + $f4 ++ $f5 + $f6); +#X obj 156 35 ii 1; +#X connect 0 0 37 0; +#X connect 0 1 37 1; +#X connect 1 0 37 0; +#X connect 1 1 37 2; +#X connect 2 0 37 0; +#X connect 2 1 37 3; +#X connect 3 0 37 0; +#X connect 3 1 37 4; +#X connect 4 0 37 0; +#X connect 4 1 37 5; +#X connect 5 0 31 0; +#X connect 6 0 20 0; +#X connect 6 0 35 0; +#X connect 7 0 0 0; +#X connect 7 0 19 0; +#X connect 8 0 1 0; +#X connect 8 0 18 0; +#X connect 9 0 2 0; +#X connect 9 0 23 0; +#X connect 10 0 3 0; +#X connect 10 0 22 0; +#X connect 11 0 4 0; +#X connect 11 0 21 0; +#X connect 12 0 26 0; +#X connect 13 0 25 0; +#X connect 14 0 24 0; +#X connect 15 0 29 0; +#X connect 16 0 28 0; +#X connect 17 0 27 0; +#X connect 18 0 26 0; +#X connect 19 0 25 0; +#X connect 20 0 24 0; +#X connect 21 0 29 0; +#X connect 22 0 28 0; +#X connect 23 0 27 0; +#X connect 30 0 20 1; +#X connect 30 0 19 1; +#X connect 30 0 18 1; +#X connect 30 0 23 1; +#X connect 30 0 22 1; +#X connect 30 0 21 1; +#X connect 31 0 32 0; +#X connect 31 1 30 1; +#X connect 31 1 36 0; +#X connect 32 0 30 0; +#X connect 33 0 34 0; +#X connect 34 0 31 0; +#X connect 35 0 37 0; +#X connect 36 0 14 1; +#X connect 36 0 13 1; +#X connect 36 0 12 1; +#X connect 36 0 17 1; +#X connect 36 0 16 1; +#X connect 36 0 15 1; +#X connect 37 0 14 0; +#X connect 37 1 13 0; +#X connect 37 2 12 0; +#X connect 37 3 17 0; +#X connect 37 4 16 0; +#X connect 37 5 15 0; +#X connect 38 0 37 1; +#X restore 10 -126 pd interpall ----------------------------------------------- +; +#X obj 10 -81 prepend interpolate; +#X msg 10 -103 awb \$1; +#X msg 81 -103 slt \$1; +#X msg 152 -104 clb \$1; +#X msg 224 -105 jmk \$1; +#X msg 295 -105 rms \$1; +#X msg 367 -106 bdl \$1; +#X obj -15 -124 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 +1 1; +#N canvas 539 22 371 334 about_speed 0; +#X text -70 8 -overwrite : redefines the size \, in samples \, of one +frame. -shift : shifts the size of the frame by the given amount of +samples. -scale : multiplies the current number of samples in one frame +by the number you give.; +#X text -64 68 Each phoneme has a different amount of frames. Each +frame has a fixed number of samples. The "speed" parameter affects +the number of samples in all the frames \, but the number of frames +per phoneme is still calculated by mage \, and more than likely to +be different for each phoneme. Each phoneme is divided in 5 states +\, and mage calculates the duration of each states individually \, +which is heavily dependant on everything (surrounding phonemes \, consonne/vowel...). +The "duration \$1 \$2 \$3 \$4 \$5" message is the way to override default +Mage's generated duration in frames for one phoneme. Each number argument +you give to that message will override the corresponding state's duration +for the next generated phoneme.; +#X text -66 253 Each time you shift or scale \, you're shifting or +scaling the current speed value \, not the original/default one - so +using those shift and scale sliders you can very quikly exponentially +increase the duration in an uncontrolled fashion.; +#X restore -22 161 pd about_speed; +#X obj 10 -59 s tomagehelp; +#N canvas 938 22 386 438 label_what_? 0; +#X text -1 295 labelnextvowel; +#X text -1 308 labelfilluntilend; +#X text 0 337 labelnextvowel sends 'labelnext'-like instructions to +Mage until it reaches a vowel phonem \, or a pause phonem. It allows +to stay on vowels or pause \, in a singing-like fashion. labelfilluntilend +works similarly to labelfill \, except it starts pushing labels from +current reading point \, not from the beginning of the file.; +#X text 1 2 Several messages make it possible to manipulate the sequence +of labels in real-time:; +#X text 2 107 where the first message loads a list of label from file +alice.lab and labelnext sends a label from that list to Mage and goes +to the next label of the list. labelinsert N sends the Nth label of +the list to Mage \, labelreplace N sends the Nth label of the list +to Mage and makes labelnext jump to its next label. labelswitch N sends +the Nth label of the list and makes labelnext point to label N + 1 +If a command reaches the end of the list \, it loops back to the start. +labelfill sends all the labels of the loaded lab file at once to the +queue.; +#X text 1 38 label alice.lab; +#X text 1 48 labelnext; +#X text 1 59 labelinsert 0; +#X text 1 82 labelswitch 17; +#X text 1 71 labelreplace 42; +#X text 3 266 In addition to this :; +#X restore 233 36 pd label_what_?; +#X msg 223 6 labelreplace \$1; +#X msg 329 6 labelswitch \$1; +#X floatatom 124 -19 5 0 0 0 - - -; +#X floatatom 223 -18 5 0 0 0 - - -; +#X floatatom 329 -18 5 0 0 0 - - -; +#X obj 124 33 s tomagehelp; +#X msg 259 153 labelnextvowel; +#X obj 24 -211 image awb.gif; +#X obj 103 -214 image slt.gif; +#X obj 176 -214 image clb.gif; +#X obj 254 -215 image jmk.gif; +#X obj 321 -214 image rms.gif; +#X obj 394 -214 image bdl.gif; +#X text 7 -275 awb; +#X text 79 -274 slt; +#X text 157 -276 clb; +#X text 230 -278 jmk; +#X text 300 -278 rms; +#X text 365 -277 bdl; +#X text -389 52 0 = overwrite \; 1 = shift \; 2 = scale \; 3 = synthetic +\; 4 = no action; +#X text 19 55 0 = overwrite \; 1 = shift \; 2 = scale \; 3 = synthetic +\; 4 = no action; +#X text -869 -87 from current reading point; +#X text -533 -254 tells Mage to begin; +#X text -534 -243 synthesizing the pitch again; +#X text -868 -98 sends the label file at once beginning; +#X obj -258 -241 key; +#X obj -258 -209 spigot; +#X msg -224 -241 1; +#X msg -191 -240 0; +#X obj 81 -169 knob 32 32 0 1 0 0 empty mageknobin2 empty 0 -8 0 8 +-234399 -234399 -1 0 1; +#X obj 10 -168 knob 32 32 0 1 0 0 empty mageknobin1 empty 0 -8 0 8 +-234399 -234399 -1 0 1; +#X obj -29 -151 ii 1; +#X obj -692 -239 image mageForPd.gif; +#X obj 180 181 s tomagehelp; +#X obj -756 -146 declare -path ./; +#N canvas 976 356 450 300 duration_of_successive_frames 0; +#N canvas 610 363 450 300 pack------------- 0; +#X obj 27 66 inlet; +#X obj 67 66 inlet; +#X obj 107 66 inlet; +#X obj 147 66 inlet; +#X obj 187 66 inlet; +#X obj 228 151 inlet; +#X obj 27 234 outlet; +#X obj 67 97 t b f; +#X obj 107 97 t b f; +#X obj 147 97 t b f; +#X obj 187 97 t b f; +#X obj 27 168 pack 1 1 1 1 1 0; +#X connect 0 0 11 0; +#X connect 1 0 7 0; +#X connect 2 0 8 0; +#X connect 3 0 9 0; +#X connect 4 0 10 0; +#X connect 5 0 11 5; +#X connect 7 0 11 0; +#X connect 7 1 11 1; +#X connect 8 0 11 0; +#X connect 8 1 11 2; +#X connect 9 0 11 0; +#X connect 9 1 11 3; +#X connect 10 0 11 0; +#X connect 10 1 11 4; +#X connect 11 0 6 0; +#X restore 29 83 pd pack-------------; +#X obj 18 -139 inlet; +#X floatatom 13 49 5 0 0 0 - - -; +#X floatatom 46 49 5 0 0 0 - - -; +#X floatatom 79 49 5 0 0 0 - - -; +#X floatatom 112 49 5 0 0 0 - - -; +#X floatatom 145 49 5 0 0 0 - - -; +#X floatatom 218 49 5 0 0 0 - - -; +#X text 260 -1 0 = overwrite \; 1 = shift \; 2 = scale \; 3 = synthetic +\; 4 = no action; +#X obj 218 -12 inlet; +#X obj 24 129 outlet; +#X obj 18 1 any; +#X obj 18 -68 / 10; +#X floatatom 57 -114 5 0 0 0 - - -; +#X connect 0 0 10 0; +#X connect 1 0 12 0; +#X connect 2 0 0 0; +#X connect 3 0 0 1; +#X connect 4 0 0 2; +#X connect 5 0 0 3; +#X connect 6 0 0 4; +#X connect 7 0 0 5; +#X connect 9 0 7 0; +#X connect 11 0 2 0; +#X connect 11 0 3 0; +#X connect 11 0 4 0; +#X connect 11 0 5 0; +#X connect 11 0 6 0; +#X connect 12 0 11 0; +#X connect 13 0 12 1; +#X restore -258 -122 pd duration_of_successive_frames; +#X text -133 -221 0 = overwrite \; 1 = shift \; 2 = scale \; 3 = synthetic +\; 4 = no action; +#X obj -258 -67 s tomagehelp; +#X floatatom 49 -456 5 0 0 0 - - -; +#X floatatom 49 -382 5 0 0 0 - - -; +#X floatatom 155 -382 5 0 0 0 - - -; +#X obj 49 -409 s tomagehelp; +#X msg 49 -431 vibratoamp \$1; +#X msg 49 -358 vibratooffset \$1; +#X msg 155 -358 vibratozoom \$1; +#X obj -664 -9 r pitchvib; +#X obj 263 -431 s pitchvib; +#X floatatom 139 -450 10 0 0 0 - - -; +#X msg 139 -431 vibratothresh \$1; +#X obj 49 -336 s tomagehelp; +#X obj 139 -534 pow -1; +#X obj 139 -513 * 48000; +#X obj 139 -555 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 +10 -262144 -1 -1 0 256; +#X obj 263 -453 metro 10; +#X obj 263 -473 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 +0 1; +#X obj 327 -452 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 +10 -262144 -1 -1 0 256; +#X text 242 -539 it is required to update; +#X text 244 -527 the pitch continuously; +#X text 243 -516 in order to have the; +#X text 244 -505 vibrato working on; +#X text 244 -494 frozen phonems.; +#X text 111 -587 frequency of vibrato; +#X text 125 -575 in hertz; +#X text 22 -502 amplitude of; +#X text 22 -490 the voice's; +#X text 22 -479 vibrato \, in hertz; +#X obj 139 -492 sel 0; +#X obj 139 -471 48000; +#X text -12 -304 Once all six engines are loaded it is possible to +interpolate between voices :; +#X obj 299 -562 import mediasettings; +#X obj -848 222 audiosettings; +#X obj -690 -165 mage_glossary; +#X msg -898 49 reset; +#X obj -986 50 cnv 15 40 20 empty empty empty 0 0 0 20 -234399 -234399 +0; +#X obj -983 52 mage~; +#X obj -924 68 rms~; +#X obj -924 88 - 100; +#X text 266 129 use this with care; +#X connect 0 0 3 0; +#X connect 1 1 94 1; +#X connect 3 0 4 0; +#X connect 5 0 6 0; +#X connect 5 0 196 0; +#X connect 6 0 194 0; +#X connect 8 0 7 0; +#X connect 9 0 7 0; +#X connect 10 0 94 0; +#X connect 11 0 94 0; +#X connect 16 0 17 0; +#X connect 18 0 16 0; +#X connect 20 0 17 0; +#X connect 21 0 17 0; +#X connect 25 0 24 0; +#X connect 27 0 24 0; +#X connect 30 0 24 0; +#X connect 31 0 24 0; +#X connect 32 0 38 0; +#X connect 33 0 38 0; +#X connect 34 0 38 0; +#X connect 35 0 32 0; +#X connect 36 0 33 0; +#X connect 37 0 34 0; +#X connect 40 0 43 0; +#X connect 41 0 42 0; +#X connect 42 0 36 0; +#X connect 43 0 35 0; +#X connect 44 0 45 0; +#X connect 45 0 37 0; +#X connect 46 0 47 0; +#X connect 47 0 48 0; +#X connect 48 0 65 0; +#X connect 49 0 50 0; +#X connect 50 0 51 0; +#X connect 51 0 65 0; +#X connect 52 0 53 0; +#X connect 53 0 54 0; +#X connect 54 0 65 0; +#X connect 55 0 65 0; +#X connect 56 0 57 0; +#X connect 57 0 62 0; +#X connect 58 0 59 0; +#X connect 59 0 63 0; +#X connect 60 0 61 0; +#X connect 61 0 64 0; +#X connect 62 0 67 0; +#X connect 63 0 67 0; +#X connect 64 0 67 0; +#X connect 66 0 49 0; +#X connect 71 0 46 0; +#X connect 72 0 52 0; +#X connect 73 0 75 0; +#X connect 73 0 77 0; +#X connect 75 0 76 0; +#X connect 76 0 74 0; +#X connect 77 0 82 0; +#X connect 78 0 91 0; +#X connect 79 0 82 0; +#X connect 80 0 87 0; +#X connect 81 0 82 0; +#X connect 86 0 73 0; +#X connect 87 0 81 0; +#X connect 88 0 80 0; +#X connect 89 0 78 0; +#X connect 90 0 192 0; +#X connect 91 0 79 0; +#X connect 94 0 8 0; +#X connect 94 1 9 0; +#X connect 95 0 155 0; +#X connect 96 0 127 0; +#X connect 97 0 99 0; +#X connect 98 0 99 0; +#X connect 99 0 95 0; +#X connect 100 0 157 1; +#X connect 101 0 159 0; +#X connect 102 0 157 0; +#X connect 103 0 157 0; +#X connect 104 0 102 0; +#X connect 105 0 103 0; +#X connect 106 0 110 3; +#X connect 107 0 110 4; +#X connect 108 0 110 5; +#X connect 109 0 110 6; +#X connect 110 0 112 0; +#X connect 110 1 113 0; +#X connect 110 2 114 0; +#X connect 110 3 115 0; +#X connect 110 4 116 0; +#X connect 110 5 117 0; +#X connect 111 0 120 0; +#X connect 112 0 111 0; +#X connect 113 0 111 0; +#X connect 114 0 111 0; +#X connect 115 0 111 0; +#X connect 116 0 111 0; +#X connect 117 0 111 0; +#X connect 118 0 110 0; +#X connect 122 0 127 0; +#X connect 123 0 127 0; +#X connect 124 0 96 0; +#X connect 125 0 122 0; +#X connect 126 0 123 0; +#X connect 128 0 155 0; +#X connect 147 0 148 0; +#X connect 148 0 157 0; +#X connect 149 0 148 1; +#X connect 150 0 148 1; +#X connect 151 0 110 2; +#X connect 152 0 110 1; +#X connect 153 0 118 0; +#X connect 157 0 101 0; +#X connect 160 0 164 0; +#X connect 161 0 165 0; +#X connect 162 0 166 0; +#X connect 164 0 163 0; +#X connect 165 0 171 0; +#X connect 166 0 171 0; +#X connect 167 0 48 0; +#X connect 169 0 170 0; +#X connect 170 0 163 0; +#X connect 172 0 173 0; +#X connect 173 0 188 0; +#X connect 174 0 172 0; +#X connect 175 0 168 0; +#X connect 176 0 175 0; +#X connect 177 0 168 0; +#X connect 188 0 189 0; +#X connect 188 1 169 0; +#X connect 189 0 169 0; +#X connect 196 0 15 0; +#X connect 196 0 15 1; +#X connect 196 0 197 0; +#X connect 197 0 198 0; +#X connect 198 0 14 0; diff --git a/examples/puredata/pd_mage_tutos_helpfile/mage~.pd_darwin b/examples/puredata/pd_mage_tutos_helpfile/mage~.pd_darwin new file mode 100755 index 0000000..deed4cf Binary files /dev/null and b/examples/puredata/pd_mage_tutos_helpfile/mage~.pd_darwin differ diff --git a/examples/puredata/pd_mage_tutos_helpfile/mage~.pd_darwin.dSYM/Contents/Info.plist b/examples/puredata/pd_mage_tutos_helpfile/mage~.pd_darwin.dSYM/Contents/Info.plist new file mode 100644 index 0000000..07e6be0 --- /dev/null +++ b/examples/puredata/pd_mage_tutos_helpfile/mage~.pd_darwin.dSYM/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.mage~.pd_darwin + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/examples/puredata/pd_mage_tutos_helpfile/mage~.pd_darwin.dSYM/Contents/Resources/DWARF/mage~.pd_darwin b/examples/puredata/pd_mage_tutos_helpfile/mage~.pd_darwin.dSYM/Contents/Resources/DWARF/mage~.pd_darwin new file mode 100644 index 0000000..c87e09f Binary files /dev/null and b/examples/puredata/pd_mage_tutos_helpfile/mage~.pd_darwin.dSYM/Contents/Resources/DWARF/mage~.pd_darwin differ diff --git a/examples/puredata/pd_mage_tutos_helpfile/rms.gif b/examples/puredata/pd_mage_tutos_helpfile/rms.gif new file mode 100644 index 0000000..03e92c6 Binary files /dev/null and b/examples/puredata/pd_mage_tutos_helpfile/rms.gif differ diff --git a/examples/puredata/pd_mage_tutos_helpfile/slt.gif b/examples/puredata/pd_mage_tutos_helpfile/slt.gif new file mode 100644 index 0000000..2b949fd Binary files /dev/null and b/examples/puredata/pd_mage_tutos_helpfile/slt.gif differ diff --git a/libs/sptk/fft-sptk.h b/libs/sptk/fft-sptk.h index 3fafcc4..0ef7d1c 100755 --- a/libs/sptk/fft-sptk.h +++ b/libs/sptk/fft-sptk.h @@ -25,6 +25,7 @@ extern "C" { int ifft(double* x, double* y, const int m); int fftr(double* x, double* y, const int m); int ifftr(double* x, double* y, const int m); + #ifdef __cplusplus diff --git a/src/Vocoder.cpp b/src/Vocoder.cpp index edf9ddf..7d096ac 100644 --- a/src/Vocoder.cpp +++ b/src/Vocoder.cpp @@ -46,6 +46,7 @@ MAGE::Vocoder::Vocoder( int am, double aalpha, int afprd, int aiprd, int astage, this->pd = apd; // 4; this->ngain = angain; // true; this->alpha = aalpha; // 0.55; + this->vibamp = 0; // V //excitation this->count = 0; @@ -138,6 +139,8 @@ void MAGE::Vocoder::setPitch( double pitch, int action, bool forceVoiced ) this->action = action; this->actionValue = pitch; + this->f0 = fabs(this->f0 + (this->sinresult * this->vibamp));//V + // ATTENTION!! Should I do that??? //set a default value for the pitch in case a negative value is entered if( this->f0 < 0 ) @@ -221,6 +224,8 @@ void MAGE::Vocoder::push( Frame &frame, bool ignoreVoicing ) default: this->f0 = frame.streams[lf0StreamIndex][0] ; } + + this->f0 = fabs(this->f0 + (this->sinresult * this->vibamp));//V if( this->f0 < 0 ) this->f0 = MAGE::defaultPitch; @@ -295,6 +300,8 @@ void MAGE::Vocoder::push( Frame * frame, bool ignoreVoicing ) default: this->f0 = frame->streams[lf0StreamIndex][0] ; } + + this->f0 = fabs(this->f0 + (this->sinresult * this->vibamp));//V if( this->f0 < 0 ) this->f0 = MAGE::defaultPitch; @@ -383,6 +390,7 @@ void MAGE::Vocoder::reset() this->pd = MAGE::defaultPadeOrder; this->volume = MAGE::defaultVolume; this->flagFirstPush = true; + this->vibamp = 0; // V return; } diff --git a/src/Vocoder.h b/src/Vocoder.h index fa8b078..9233605 100644 --- a/src/Vocoder.h +++ b/src/Vocoder.h @@ -38,6 +38,7 @@ #include "Constants.h" #include "Frame.h" #include "MathFunctions.h" +#include namespace MAGE { @@ -105,6 +106,13 @@ namespace MAGE * @return The volume parameter value used in the Vocoder. */ inline double getVolume( void ){ return( this->volume ); }; + + /** // V + * This function gets the current value of the vibrato amplitude parameter used in the Vocoder. + * + * @return The vibrato amplitude parameter value used in the Vocoder. + */ + inline double getvibamp( void ){ return ( this->vibamp ); }; //V /** * This function gets the current value of the pade order parameter used in the Vocoder. @@ -149,6 +157,20 @@ namespace MAGE * @param volume The new value of the volume parameter. */ inline void setVolume( double volume ){ this->volume = volume; }; + + /** // V + * This function sets a new value of the vibrato amplitude parameter to be used in the Vocoder. + * + * @param vibamp The new value of the vibrato amplitude parameter. + */ + inline void setvibamp( double vibamp ){ this->vibamp = vibamp; }; //V + + /** // V + * This function sets current value for the sinusoid wave to be used in the Vocoder. + * Happens very fast (at samplerate). + * @param sinresult The curent value of the sinusoid parameter. + */ + inline void setsinresult( double sinresult ){ this->sinresult = sinresult; }; //V /** * This function sets a new value of the pade order parameter to be used in the Vocoder. @@ -273,6 +295,10 @@ namespace MAGE */ double volume; // >= 0 + double vibamp; //V + double sinresult; //V + + private: int m; diff --git a/src/mage.cpp b/src/mage.cpp index 155a30a..eb67bb4 100644 --- a/src/mage.cpp +++ b/src/mage.cpp @@ -140,6 +140,20 @@ void MAGE::Mage::setVolume( double volume ) return; } +// This function sets a new amplitude value for vibrato. //V +void MAGE::Mage::setvibamp( double vibamp ) +{ + this->vocoder->setvibamp( vibamp ); +} + +// This function should access the sine wave used in vocoder for vibrato. //V +void MAGE::Mage::setsinresult( double sinresult ) +{ + this->vocoder->setsinresult ( sinresult ); + return; +} + + // This function sets a new pitch value to be used in the Vocoder, taking into account a // given action. The existing pitch value can be :: replaced / overwritten, shifted, scaled, // or decide to take no action or use the pitch trajectory generated by the Model. @@ -247,6 +261,12 @@ void MAGE::Mage::setInterpolationFunctions( std::map < std::string, double * > i return; } +// Sinus wave for vibrato. // V +double MAGE::Mage::mysin ( double indx ) +{ + return sin( indx ); +} + // methods // This function returns a single sample from the Vocoder. double MAGE::Mage::popSamples ( void ) @@ -255,6 +275,12 @@ double MAGE::Mage::popSamples ( void ) if( this->vocoder->ready() ) { + this->sinusoid++; + if (this->sinusoid > this->vibthresh) + {this->sinusoid = 0 ;} // V + + this->setsinresult( (double)mysin( (2 * 3.14159265359 * ((double)this->sinusoid/((double)this->vibthresh)) * ((double)this->vibzoom)) + (double)this->viboffset ) ); // for vibrato // V + sample = 0.5 * this->vocoder->pop() / 32768; if( sample > 1.0 ) @@ -312,6 +338,10 @@ void MAGE::Mage::reset( void ) this->action = noaction; this->hopLen = defaultFrameRate; this->interpolationFlag = false; // if comment this => crap + + this->vibthresh = defaultSamplingRate; // V + this->viboffset = 0; + this->vibzoom = 1; this->resetVocoder(); @@ -588,6 +618,11 @@ void MAGE::Mage::init( void ) this->hopLen = defaultFrameRate; this->interpolationFlag = false; + this->vibthresh = defaultSamplingRate; // V + this->viboffset = 0; + this->vibzoom = 1; + + return; } diff --git a/src/mage.h b/src/mage.h index 2d0df5c..0829300 100644 --- a/src/mage.h +++ b/src/mage.h @@ -168,6 +168,10 @@ namespace MAGE */ inline double getLabelSpeed( void ){ return( this->labelSpeed ); }; + inline double getvibthresh( void ){ return( this->vibthresh ); }; //V - threshold of sinewave + inline double getvibzoom( void ){ return( this->vibzoom ); }; //V - zoom of sinewave + inline double getviboffset( void ){ return( this->viboffset ); }; //V - offset of sinewave + /** * This function returns true if the currently added Engine instance is ready to be accessed, and false otherwise. * @@ -216,6 +220,8 @@ namespace MAGE * @return The volume value used in the Vocoder. */ double getVolume( void ); + + double getvibamp(void); //V /** * This function gets the duration value of the Model used. @@ -261,6 +267,11 @@ namespace MAGE * @param labelSpeed The new Vocoder instance. */ inline void setLabelSpeed( double labelSpeed ){ this->labelSpeed = labelSpeed; }; // less reactive + + inline void setvibthresh( double vibthresh ){ this->vibthresh = vibthresh; }; //V + inline void setvibzoom( double vibzoom ){ this->vibzoom = vibzoom; }; //V - zoom of sinewave + inline void setviboffset( double viboffset ){ this->viboffset = viboffset; }; //V - offset of sinewave + /** * This function sets a new LabelQueue instance instead of the currently used. @@ -310,6 +321,9 @@ namespace MAGE * @param volume The new volume value. */ void setVolume( double volume ); + + void setvibamp(double vibamp); //V + void setsinresult(double sinresult); //V /** * This function sets a new pitch value to be used in the Vocoder, taking into account a @@ -499,6 +513,13 @@ namespace MAGE * @return The compilation time and day. */ std::string timestamp( void ); + + /** + * This function returns a sinus wave, at a rate of defaultSampleRate/vibthresh per second, + * the shape of the wave can be modified by vibzoom and viboffset //V + */ + double mysin ( double indx ); + protected: @@ -594,6 +615,13 @@ namespace MAGE */ double labelSpeed; // we need this because the speed changes on the lable // level and we need to have memory of this + + double sinresult; // V - this is the sinewave + double vibthresh; // V - this is the threshhold of the sinewave + double vibzoom; // V - "zoom" factor for the sinewave + double viboffset; // V - offset of the sinewave + double sinusoid; //V - this is the counter for the sinewave + private: