<?xml version="1.0" encoding="UTF-8"?>

<RACKSPACE name="Rackspace_1" uid="1f9b6ab5c8f146ec8e1c44c56d1d11ef" bpm="120.0"
           timeNum="4" timeDen="4" resetTimeInfo="0" syncClock="0" maxDeactivationTime="2.5"
           scriptWindowPos="10 45 785 904" usePatchPersist="0" activePreset="0"
           version="3.0">
  <PROCESSORSTATE_IN>489.VMjLg.d....OPwTUGkjSSQUPTUDHig1WvziHw3BLh.Ra0QWYeMFZeASOh.iHfLFZeESOhDiKvHBHsUGck80Xn8UL8HBLh.xXn8kL8HRLt.iHfzVczU1Wig1WxziHvHBHig1WyziHw3BLh.Ra0QWYeMFZeMSOh.iHfLFZeQSOhDiKvHBHsUGck80Xn8EM8HBLh.xXn8UM8HRLt.iHfzVczU1Wig1W0ziHvHBHig1W1ziHw3BLh.Ra0QWYeMFZeYSOh.iHfLFZecSOhDiKvHBHsUGck80Xn80M8HBLh.xXn8EN8HRLt.iHfzVczU1Wig1W3ziHvHBHig1W4ziHw3BLh.Ra0QWYeMFZekSOh.iHfLFZeECL8HRLt.iHfzVczU1Wig1Ww.SOh.iHfLFZeESL8HRLt.iHfzVczU1Wig1WwDSOh.iHfLFZeEiL8HRLt.iHfzVczU1Wig1WwHSOh.iHfLFZeEyL8HRLt.iHfzVczU1Wig1WwLSOh.iHfLFZeECM8HRLt.iHfzVczU1Wig1WwPSOh.iHfLFZeESM8HRLt.iHfzVczU1Wig1WwTSOh.iHfLFZeEiM8HRLt.iHfzVczU1Wig1WwXSOh.iHfLFZeEyM8HRLt.iHfzVczU1Wig1WwbSOh.iHu3C.</PROCESSORSTATE_IN>
  <PROCESSORSTATE_OUT>489.VMjLg.d....OPwTUGkjSSQUPTUDHig1WvziHw3BLh.Ra0QWYeMFZeASOh.iHfLFZeESOhDiKvHBHsUGck80Xn8UL8HBLh.xXn8kL8HRLt.iHfzVczU1Wig1WxziHvHBHig1WyziHw3BLh.Ra0QWYeMFZeMSOh.iHfLFZeQSOhDiKvHBHsUGck80Xn8EM8HBLh.xXn8UM8HRLt.iHfzVczU1Wig1W0ziHvHBHig1W1ziHw3BLh.Ra0QWYeMFZeYSOh.iHfLFZecSOhDiKvHBHsUGck80Xn80M8HBLh.xXn8EN8HRLt.iHfzVczU1Wig1W3ziHvHBHig1W4ziHw3BLh.Ra0QWYeMFZekSOh.iHfLFZeECL8HRLt.iHfzVczU1Wig1Ww.SOh.iHfLFZeESL8HRLt.iHfzVczU1Wig1WwDSOh.iHfLFZeEiL8HRLt.iHfzVczU1Wig1WwHSOh.iHfLFZeEyL8HRLt.iHfzVczU1Wig1WwLSOh.iHfLFZeECM8HRLt.iHfzVczU1Wig1WwPSOh.iHfLFZeESM8HRLt.iHfzVczU1Wig1WwTSOh.iHfLFZeEiM8HRLt.iHfzVczU1Wig1WwXSOh.iHfLFZeEyM8HRLt.iHfzVczU1Wig1WwbSOh.iHu3C.</PROCESSORSTATE_OUT>
  <PROCESSOR id="4" bypass="0" prop_str_nodeName="MIDI In" prop_dbl_x="0.26158535480499267578"
             prop_dbl_y="0.10082872956991195679" prop_str_nodeHandleName="iRigKeys"
             prop_bool_nodeGPScriptEnabled="1">
    <PLUGIN name="MIDI In (M-Audio Code61)" descriptiveName="Code 61" format="Internal"
            category="MIDI IN Processor" manufacturer="Deskew Technologies, LLC"
            version="1.0" file="424242" uid="67932" isInstrument="0" fileTime="0"
            infoUpdateTime="0" numInputs="0" numOutputs="0" isShell="0" isEnabled="1"
            useDelayedLoading="0"/>
    <PROCESSORSTATE>4868.VMjLgruD...OPwTUGkjSSQUPTUDHCgVXt4VYrEyS0QGb0QWOh.iKvXiL0HBHCgVXt4VYrIyS0QGb0QWOh.iKwHSMh.xPnElatUFay7TczAWcz0iHv3RL3bSMh.xPnElatUFaz7TczAWcz0iHv3hL0HBHCgVXt4VYrUyS0QGb0QWOh.iKyDiL0HBHCgVXt4VYrYyS0QGb0QWOh.iKybSMh.xPnElatUFa27TczAWcz0iHv3BMybSMh.xPnElatUFa37TczAWcz0iHv3RMh.xPnElatUFa47TczAWcz0iHv3RM1HSMh.xPnElatUFaw.yS0QGb0QWOh.iK1HSMh.xPnElatUFawDyS0QGb0QWOh.iK1fyM0HBHCgVXt4VYrEiLOUGcvUGc8HBLtbSMh.xPnElatUFawLyS0QGb0QWOh.iK3DiL0HBHCgVXt4VYrECMOUGcvUGc8HBLtfyM0HBHCgVXt4VYrESMOUGcvUGc8HBLtjyL2TiHfLDZg4lakwVL17TczAWcz0iHw3BLh.RSo4lSuQWY8HBLt.iHfzTX34zazUVOhDiKvHBHTIWXtMGbuMWY8HBLtTiHfLEcuAWPrwlSuQWYy0iHv3BLh.xTzk1XqkmSuQWYCgVXt4VYr0iHv3BLh.xTzk1XqkmSuQWYVUFauMVZzkWOh.iK0HBHC0hLe4zazU1St8EL8HBLt.iHfPjXsHyWN8Fck8jaeESOh.iKvHBHD0hLe4zazU1St8kL8HBLt.iHfTjXsHyWN8Fck8jaeMSOh.iKvHBHE0hLe4zazU1St8EM8HBLt.iHfXTKx7kSuQWYO41W0ziHv3BLh.xQh0hLe4zazU1St8kM8HBLt.iHfbTKx7kSuQWYO41W2ziHv3BLh.RPh0hLe4zazU1St8EN8HBLt.iHfDTKx7kSuQWYO41W4ziHv3BLh.hPh0hLe4zazU1St8ULvziHv3BLh.hPsHyWN8Fck8jaeESL8HBLt.iHfLTKw7kSuQWYO41WwHSOh.iKvHBHDIVKw7kSuQWYO41WwLSOh.iKvHBHD0RLe4zazU1St8ULzziHv3BLh.RQh0RLe4zazU1St8UL0ziHv3BLh.RQsDyWN8Fck8jaeEiM8HBLt.iHfXTKw7kSuQWYO41WwbSOh.iKvHBHGIVKw7kSuQWYO41WwfSOh.iKvHBHG0RLe4zazU1St8UL4ziHv3BLh.RPh0RLe4zazU1St8kLvziHv3BLh.RPsDyWN8Fck8jaeISL8HBLt.iHfHjXsDyWN8Fck8jaeIiL8HBLt.iHfHTKw7kSuQWYO41WxLSOh.iKvHBHCAyWN8Fck8jaeICM8HBLt.iHfPjXv7kSuQWYO41WxTSOh.iKvHBHDAyWN8Fck8jaeIiM8HBLt.iHfTjXv7kSuQWYO41WxbSOh.iKvHBHEAyWN8Fck8jaeICN8HBLt.iHfXDLe4zazU1St8kL4ziHv3BLh.xQhAyWN8Fck8jaeMCL8HBLt.iHfbDLe4zazU1St80LwziHv3BLh.RPhAyWN8Fck8jaeMiL8HBLt.iHfDDLe4zazU1St80LyziHv3BLh.hPhAyWN8Fck8jaeMCM8HBLt.iHfHDLe4zazU1St80L0ziHv3BLh.xPw7kSuQWYO41WyXSOh.iKvHBHDIVLe4zazU1St80L2ziHv3BLh.BQw7kSuQWYO41WyfSOh.iKvHBHEIVLe4zazU1St80L4ziHv3BLh.RQw7kSuQWYO41Wz.SOh.iKvHBHFEyWN8Fck8jaeQSL8HBLt.iHfbjXw7kSuQWYO41WzHSOh.iKvHBHGEyWN8Fck8jaeQyL8HBLt.iHfDjXw7kSuQWYO41WzPSOh.iKvHBHAEyWN8Fck8jaeQSM8HBLt.iHfHjXw7kSuQWYO41WzXSOh.iKvHBHBEyWN8Fck8jaeQyM8HBLt.iHfLjLe4zazU1St8EM3ziHv3BLh.BQhIyWN8Fck8jaeQSN8HBLt.iHfPjLe4zazU1St8UMvziHv3BLh.RQhIyWN8Fck8jaeUSL8HBLt.iHfTjLe4zazU1St8UMxziHv3BLh.hQx7kSuQWYO41W0LSOh.iKvHBHGIlLe4zazU1St8UMzziHv3BLh.xQx7kSuQWYO41W0TSOh.iKvHBHAIlLe4zazU1St8UM1ziHv3BLh.RPx7kSuQWYO41W0bSOh.iKvHBHBIlLe4zazU1St8UM3ziHv3BLh.hPx7kSuQWYO41W0jSOh.iKvHBHCMyWN8Fck8jaeYCL8HBLt.iHfPjXy7kSuQWYO41W1DSOh.iKvHBHDMyWN8Fck8jaeYiL8HBLt.iHfTjXy7kSuQWYO41W1LSOh.iKvHBHEMyWN8Fck8jaeYCM8HBLt.iHfXzLe4zazU1St8kM0ziHv3BLh.xQhMyWN8Fck8jaeYiM8HBLt.iHfbzLe4zazU1St8kM2ziHv3BLh.RPhMyWN8Fck8jaeYCN8HBLt.iHfDzLe4zazU1St8kM4ziHv3BLh.hPhMyWN8Fck8jaecCL8HBLt.iHfHzLe4zazU1St80MwziHv3BLh.xPz7kSuQWYO41W2HSOh.iKvHBHDIFMe4zazU1St80MyziHv3BLh.BQz7kSuQWYO41W2PSOh.iKvHBHEIFMe4zazU1St80M0ziHv3BLh.RQz7kSuQWYO41W2XSOh.iKvHBHFQyWN8Fck8jaecyM8HBLt.iHfbjXz7kSuQWYO41W2fSOh.iKvHBHGQyWN8Fck8jaecSN8HBLt.iHfDjXz7kSuQWYO41W3.SOh.iKvHBHAQyWN8Fck8jaegSL8HBLt.iHfHjXz7kSuQWYO41W3HSOh.iKvHBHBQyWN8Fck8jaegyL8HBLt.iHfLTMe4zazU1St8ENzziHv3BLh.BQhUyWN8Fck8jaegSM8HBLt.iHfPTMe4zazU1St8EN1ziHv3BLh.RQhUyWN8Fck8jaegyM8HBLt.iHfTTMe4zazU1St8EN3ziHv3BLh.hQ07kSuQWYO41W3jSOh.iKvHBHGIVMe4zazU1St8UNvziHv3BLh.xQ07kSuQWYO41W4DSOh.iKvHBHAIVMe4zazU1St8UNxziHv3BLh.RP07kSuQWYO41W4LSOh.iKvHBHBIVMe4zazU1St8UNzziHv3BLh.hP07kSuQWYO41W4TSOh.iKvHBHCYyWN8Fck8jaekiM8HBLt.iHfPjX17kSuQWYO41W4bSOh.iKvHBHDYyWN8Fck8jaekCN8HBLt.iHfTjX17kSuQWYO41W4jSOh.iKvHBHEYyWN8Fck8jaeECLvziHv3BLh.hQ17kSuQWYO41Ww.SL8HBLt.iHfbjX17kSuQWYO41Ww.iL8HBLt.iHfbjMe4zazU1St8ULvLSOh.iKvHBHAIlMe4zazU1St8ULvPSOh.iKvHBHAYyWN8Fck8jaeECL0ziHv3BLh.hPhYyWN8Fck8jaeECL1ziHv3BLh.hP17kSuQWYO41Ww.yM8HBLt.iHfLzMe4zazU1St8ULvfSOh.iKvHBHDI1Me4zazU1St8ULvjSOh.iKvHBHDcyWN8Fck8jaeESLvziHv3BLh.RQhcyWN8Fck8jaeESLwziHv3BLh.RQ27kSuQWYO41WwDiL8HBLt.iHfXzMe4zazU1St8ULwLSOh.iKvHBHGI1Me4zazU1St8ULwPSOh.iKvHBHGcyWN8Fck8jaeESL0ziHv3BLh.RPhcyWN8Fck8jaeESL1ziHv3BLh.RP27kSuQWYO41WwDyM8HBLt.iHfHjX27kSuQWYO41WwDCN8HBLt.iHfHzMe4zazU1St8ULwjSOh.iKvHBHCgyWN8Fck8jaeEiLvziHv3BLh.BQhgyWN8Fck8jaeEiLwziHv3BLh.BQ37kSuQWYO41WwHiL8HBLt.iHfTjX37kSuQWYO41WwHyL8HBLt.iHfTDNe4zazU1St8ULxPSOh.iKvHBHFgyWN8Fck8jaeEiL0ziHv3BLh.xQhgyWN8Fck8jaeEiL1ziHv3BLh.xQ37kSuQWYO41WwHyM8HBLt.iHfzTZt4zazUlUkw1aikFc40iHv3BLh.RSggmSuQWYVUFauMVZzkWOhDiKvHBHMklaSMVXrUFYN8FckYUYr81XoQWd8HBLt.iHfzTX3M0XgwVYj4zazUlUkw1aikFc40iHw3BLh.xS0QGb0QmUkw1aikFc40zajUVOh.iKvHBHPMTOh.iKvHBHCMDL8HBLt.iHfLzPwziHv3BLh.xPCISOh.iKvHBHCMzL8HBLt.iHfLzPzziHv3BLh.xPCUSOh.iKvHBHCMjM8HBLt.iHfLzP2ziHv3BLh.xPCgSOh.iKvHBHCMTN8HBLt.iHfLzPw.SOh.iKvHBHCMTLwziHv3BLh.xPCEiL8HBLt.iHfLzPwLSOh.iKvHBHCMTLzziHv3BLh.xPCESM8HBLt.iHfLzPwXSOh.iKvHBHCMTL2ziHv3BLh.xPCECN8HBLt.iHfLzPwjSOh.iKvHBHCMjLvziHv3BLh.xPCISL8HBLt.iHfLzPxHSOh.iKvHBHCMjLyziHv3BLh.xPCICM8HBLt.iHfLzPxTSOh.iKvHBHCMjL1ziHv3BLh.xPCIyM8HBLt.iHfLzPxfSOh.iKvHBHCMjL4ziHv3BLh.xPCMCL8HBLt.iHfLzPyDSOh.iKvHBHCMzLxziHv3BLh.xPCMyL8HBLt.iHfLzPyPSOh.iKvHBHCMzL0ziHv3BLh.xPCMiM8HBLt.iHfLzPybSOh.iKvHBHCMzL3ziHv3BLh.xPCMSN8HBLt.iHfLzPz.SOh.iKvHBHCMDMwziHv3BLh.xPCQiL8HBLt.iHfLzPzLSOh.iKvHBHCMDMzziHv3BLh.xPCQSM8HBLt.iHfLzPzXSOh.iKvHBHCMDM2ziHv3BLh.xPCQCN8HBLt.iHfLzPzjSOh.iKvHBHCMTMvziHv3BLh.xPCUSL8HBLt.iHfLzP0HSOh.iKvHBHCMTMyziHv3BLh.xPCUCM8HBLt.iHfLzP0TSOh.iKvHBHCMTM1ziHv3BLh.xPCUyM8HBLt.iHfLzP0fSOh.iKvHBHCMTM4ziHv3BLh.xPCYCL8HBLt.iHfLzP1DSOh.iKvHBHCMjMxziHv3BLh.xPCYyL8HBLt.iHfLzP1PSOh.iKvHBHCMjM0ziHv3BLh.xPCYiM8HBLt.iHfLzP1bSOh.iKvHBHCMjM3ziHv3BLh.xPCYSN8HBLt.iHfLzP2.SOh.iKvHBHCMzMwziHv3BLh.xPCciL8HBLt.iHfLzP2LSOh.iKvHBHCMzMzziHv3BLh.xPCcSM8HBLt.iHfLzP2XSOh.iKvHBHCMzM2ziHv3BLh.xPCcCN8HBLt.iHfLzP2jSOh.iKvHBHCMDNvziHv3BLh.xPCgSL8HBLt.iHfLzP3HSOh.iKvHBHCMDNyziHv3BLh.xPCgCM8HBLt.iHfLzP3TSOh.iKvHBHCMDN1ziHv3BLh.xPCgyM8HBLt.iHfLzP3fSOh.iKvHBHCMDN4ziHv3BLh.xPCkCL8HBLt.iHfLzP4DSOh.iKvHBHCMTNxziHv3BLh.xPCkyL8HBLt.iHfLzP4PSOh.iKvHBHCMTN0ziHv3BLh.xPCkiM8HBLt.iHfLzP4bSOh.iKvHBHCMTN3ziHv3BLh.xPCkSN8HBLt.iHfLzPw.CL8HBLt.iHfLzPw.SL8HBLt.iHfLzPw.iL8HBLt.iHfLzPw.yL8HBLt.iHfLzPw.CM8HBLt.iHfLzPw.SM8HBLt.iHfLzPw.iM8HBLt.iHfLzPw.yM8HBLt.iHfLzPw.CN8HBLt.iHfLzPw.SN8HBLt.iHfLzPwDCL8HBLt.iHfLzPwDSL8HBLt.iHfLzPwDiL8HBLt.iHfLzPwDyL8HBLt.iHfLzPwDCM8HBLt.iHfLzPwDSM8HBLt.iHfLzPwDiM8HBLt.iHfLzPwDyM8HBLt.iHfLzPwDCN8HBLt.iHfLzPwDSN8HBLt.iHfLzPwHCL8HBLt.iHfLzPwHSL8HBLt.iHfLzPwHiL8HBLt.iHfLzPwHyL8HBLt.iHfLzPwHCM8HBLt.iHfLzPwHSM8HBLt.iHfLzPwHiM8HBLt.iHfLzPwHyM8HBLt.iHf.UZzMFZhUlaj0iHv3BLh.RPlQWYxQ2a0MFZ8HBLtTiHfzzat8FSucWYyQ2StwVd8HBLt.iHfzzat8FRocFZkMGcO4Fa40iHv3BLh.hPr81Xq4zazU1St0iHv3BLh.hPr81Xq4zazU1SlYVOh.iKvHBHBw1aisFToQ2XnIVYtQVOh.iKvHBHBw1aisVPlQWYxQ2a0MFZ8HBLt.iHfHDauM1ZP8Fa4Q2a0MFZ8HBLt.iHfHDauM1ZC8lazI2arwVYxMWOh.iKvHBHBw1aisVSuQ1UnUVYr0iHv3BLh.hPr81XqY0arUWak0iHv3BLh.hPr81XqMUcyQWXo4VOh.iKvHBHxk1YeUWZj0iHwHxK9..</PROCESSORSTATE>
  </PROCESSOR>
  <RACKVIEW>
    <RACKUNIT size="11" style="0">
      <WIDGET type="0" style="0" id="1" x="0.1363636404275894165" y="0.32535883784294128418"
              width="0.1004784703254699707" height="0.40191388130187988281"
              caption="" overrideName="0" captionVisible="1" captionHeight="0.16867469251155853271"
              reflectMIDI="" reflectMIDIOn="0" midiSource="" midiDevice=""
              midiData="0" rigId="0" nodeId="0" paramIndex="-1" widgetValue="0.0"
              backPlate="1" backPlateVisible="1" min="0.0" max="1.0" invert="0"
              invertMIDI="0" displayRange="2" ignoresVariations="0" widgetHandle="Knob1"
              enableOSC="0" groupName="" widgetMoveBehavior="0" updateOnLoadGig="0"
              updateOnActivateRackspace="0"/>
      <WIDGET type="0" style="0" id="2" x="0.24401913583278656006" y="0.32535883784294128418"
              width="0.1004784703254699707" height="0.40191388130187988281"
              caption="" overrideName="0" captionVisible="1" captionHeight="0.16867469251155853271"
              reflectMIDI="" reflectMIDIOn="0" midiSource="" midiDevice=""
              midiData="0" rigId="0" nodeId="0" paramIndex="-1" widgetValue="0.0"
              backPlate="1" backPlateVisible="1" min="0.0" max="1.0" invert="0"
              invertMIDI="0" displayRange="2" ignoresVariations="0" widgetHandle="Knob2"
              enableOSC="0" groupName="" widgetMoveBehavior="0" updateOnLoadGig="0"
              updateOnActivateRackspace="0"/>
      <WIDGET type="0" style="0" id="3" x="0.35167464613914489746" y="0.32535883784294128418"
              width="0.1004784703254699707" height="0.40191388130187988281"
              caption="" overrideName="0" captionVisible="1" captionHeight="0.16867469251155853271"
              reflectMIDI="" reflectMIDIOn="0" midiSource="" midiDevice=""
              midiData="0" rigId="0" nodeId="0" paramIndex="-1" widgetValue="0.0"
              backPlate="1" backPlateVisible="1" min="0.0" max="1.0" invert="0"
              invertMIDI="0" displayRange="2" ignoresVariations="0" widgetHandle="Knob3"
              enableOSC="0" groupName="" widgetMoveBehavior="0" updateOnLoadGig="0"
              updateOnActivateRackspace="0"/>
    </RACKUNIT>
  </RACKVIEW>
  <PRESET name="Default" pcNumber="0">
    <PARAM widgetId="1" value="0.0" onLoadValue="0.0"/>
    <PARAM widgetId="2" value="0.0" onLoadValue="0.0"/>
    <PARAM widgetId="3" value="0.0" onLoadValue="0.296875"/>
  </PRESET>
  <SCRIPT_CONTENT>
Var
   iRigKeys : MidiInBlock
   Knob1, Knob2, Knob3 : Widget

   WidgetList : widget array
   
   myRamp : Ramp // A generator that moves smoothly from 0.0 to 1.0 over some specified time
   
   step_width : double
   rel_step : double
    CCvalue : double

   
initialization
   WidgetList = [Knob1, Knob2, Knob3]
   SetGeneratorOneShot(myRamp, true) // Generator will only run once when triggered
   // Also, check the SetGeneratorCoarseness function
   // which can be used to control how often we get called back
   // Choose values wisely! You're trading accuracy against CPU cycles
   
   step_width = 0.01
   rel_step = 0
end

function GetValues(value : integer) returns double
   if value &lt; 63
      then result = step_width * -1.0
      else result = step_width
   end
end   

function AdjustWidget( m : ControlChangeMessage) 
    var widgetIndex : integer;
        
        widgetValue : double 
        
    widgetIndex = GetCCNumber(m) - 102 // Be careful you don't go out of range here or you'll crash GP
//Print (&quot;Adjust OK&quot;)
    If IsGeneratorEnabled(myRamp) == false
    Then
        rel_step = GetValues(GetCCValue(m))
    End
    
    myRamp.SetGeneratorLength(30); // 30ms
    SetTimersRunning(true)
    myRamp.EnableGenerator(True)    
    
    
    CCvalue = GetValues(GetCCValue(m))
    widgetValue = GetWidgetValue(WidgetList[widgetIndex]) 
    SetWidgetValue(WidgetList[widgetIndex], widgetValue + rel_step)
end

// This gets called by the ramp generator as time passes
on TimePassing(timeX : integer, amplitudeY : double) from myRamp

rel_step = rel_step  + CCvalue

//Print (rel_step)
//Print(&quot;X = &quot; + timeX + &quot; Y = &quot; + amplitudeY) 
end

// Just doing three widgets here -- adjust this and knoblist array to suit
On ControlChangeEvent(m : ControlChangeMessage) Matching [102 .. 104] from iRigKeys
    AdjustWidget(m)
  
    
End


</SCRIPT_CONTENT>
</RACKSPACE>
