HISE Logo Forum
    • Categories
    • Register
    • Login

    Making Modulation Table Presets Accessible Across Projects

    Scheduled Pinned Locked Moved General Questions
    7 Posts 2 Posters 1.5k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • d.healeyD
      d.healey
      last edited by

      I've created some modulation table presets that are saved with my current project. Is there a file location that HISE will look in that I can put these that will make them available to all of my projects?

      Libre Wave - Freedom respecting instruments and effects
      My Patreon - HISE tutorials
      YouTube Channel - Public HISE tutorials

      1 Reply Last reply Reply Quote 0
      • Christoph HartC
        Christoph Hart
        last edited by

        You can use absolute paths in the include() statement (I just checked it on OS X and it works there). However I strongly recommend avoiding it because you can't port it to another system, but while developing it might be OK.

        Do you need it just for developing or do you want to have a common file folder also for exported plugins?

        1 Reply Last reply Reply Quote 0
        • d.healeyD
          d.healey
          last edited by

          I'm not sure I was clear with my original post. I've made some s-shaped and equal power x-fade gain modulation tables that I'd like to have available for other projects so I don't have to copy the files to each project. Are you saying these can be added using the include() command?
          0_1477680281296_Capture.JPG

          Libre Wave - Freedom respecting instruments and effects
          My Patreon - HISE tutorials
          YouTube Channel - Public HISE tutorials

          1 Reply Last reply Reply Quote 0
          • Christoph HartC
            Christoph Hart
            last edited by

            Did you know you can create table curves via scripting?

            HiseSnippet 836.3ocsVstbRCDEdCPloEacTGe.xzeQGqoIPuPGGGagVbvdAFCV8e0sIKvZC6hIanRc7YyWIeCz8BPBRZAbFyvjImuy24vWN64raZFPcQggz.f1iZMrOBnsltyPBqa0tPLAT+Xf1i0OGFxPAFJnJC6CCCQd.MsruU.nsZNf75WuoBzGRbQwP.vkTrK5LbOLKF8yGdJ12uFzC0B2KA6cNrtKkTk5Si35IqtEnOz8FXGzEPAsL5fAXzsg.MK8REMCtw956NxjeUbvocp8wxHSyl0Mm4phoIvMJH.QXWxCGnoq8a9kl9IdXFMvgAYHdNyVg5MzoK8Vh5u9RbH9ZejvvF3v0jBFTsK12q43xVH.nkqYbQLqpH9b8ywd3I3wEymHcXDGQxxoVlokTtojj88IoZTeOQBtG4okPd4Tx6o5NtA39rXOBs8rQn2i5TNAY3UN9pTHyX.LvfA4BpEha8ZCYeiYGDqk.bRRJrgz1PvZiMe054WO+jnLCPgHVAKAbLX33TPwDtysLT+r42M2cZpPOuooZaZYrsgcwT3NSZskz2dDYwshKT12SPcdZtnJ4JthakmS.kjALhtsJ+siHtLLkXPIWPYnFjBal+64WM+OlwS61o4pJkvBn99nfz7Jl9BdfvJPh5cMJXK9JseDZLOdi1zso4Wr1TdSCiOClfHkTmfYM5ilXqdIGiXAl7xkDJ9kJIp7kIEZwPyNa.ppzD+oYGR3ipTuHeHa54WwddibvKVSMgTWjrPLaXx8D++OTuxD8BcCnSDsTuqoGO7Mes9gPjjdRLYRqS7PeKA5Oc5QortSu8M9PIWYFNFxf.sSz2ob7FwGTkeaPiu1ueeI59NCOa3WD1u6.Iglb66Zven8KlDToFf+tBlcwpforbufKxOUuIl41M8U4LoT4.fkXU1J0UY64n2QGrrt9IsaibYwhMmdsO8udJxRHk2SiXXRmygr.LuSP+hndN7iocQbkPHH+Pw4pYDiTJaKgsnx3fHdViOzcjSags1Hm1icB5IZetxUM2J5xWQhv0DQ9A.qp5vMrAxMjT5tG+7zqbcEEhWxUd5QTboinzRGwNKcD6tzQr2RGw9KcDkefHDe7xQQLZO0XA.7G7KiGmI
            
            1 Reply Last reply Reply Quote 0
            • d.healeyD
              d.healey
              last edited by

              Ah I had no idea, that opens up some new possibilities for me, thanks

              Libre Wave - Freedom respecting instruments and effects
              My Patreon - HISE tutorials
              YouTube Channel - Public HISE tutorials

              1 Reply Last reply Reply Quote 0
              • d.healeyD
                d.healey
                last edited by d.healey

                I've created a handy little module for generating these table curves. Drop it in a script slot after you've added your Midi controller modulators and then once you've used the script to apply the curves you can remove it. - no license on this just use it for whatever you want however you like.

                alt text

                <?xml version="1.0" encoding="UTF-8"?>
                
                <Processor Type="ScriptProcessor" ID="XFade Curves" Bypassed="0" Script="Content.setHeight(50);&#10;&#10;const var tableEnvelopes = Synth.getIdList(&quot;Midi Controller&quot;);&#10;const var modulators = [];&#10;&#10;for (env in tableEnvelopes)&#10;{&#10;&#9;modulators.push(Synth.getTableProcessor(env));&#10;}&#10;&#10;//---GUI&#10;const var cmbType = Content.addComboBox(&quot;Type&quot;, 0, 0);&#10;cmbType.set(&quot;items&quot;, [&quot;Equal Power&quot;, &quot;S-Shaped&quot;].join(&quot;\n&quot;));&#10;&#10;const var cmbCount = Content.addComboBox(&quot;Count&quot;, 150, 0);&#10;cmbCount.set(&quot;items&quot;, [&quot;2&quot;, &quot;3&quot;, &quot;4&quot;, &quot;5&quot;, &quot;6&quot;, &quot;7&quot;].join(&quot;\n&quot;));&#10;&#10;const var btnApply = Content.addButton(&quot;Apply&quot;, 300, 0);&#10;&#10;//FUNCTIONS&#10;inline function equalPower2(tableProcessor, stage)&#10;{&#10;&#9;tableProcessor.reset(0);&#10;&#10;&#9;switch (stage)&#10;&#9;{&#10;&#9;&#9;case 0:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1, 0, 0.25);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 1:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1, 1, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#9;}&#10;};&#10;&#10;inline function equalPower3(tableProcessor, stage)&#10;{&#10;&#9;tableProcessor.reset(0);&#10;&#10;&#9;switch (stage)&#10;&#9;{&#10;&#9;&#9;case 0:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1.0/2, 0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1, 0, 0);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 1:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/2, 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1, 0, 0.25);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 2:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/2, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1, 1, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#9;}&#10;};&#10;&#10;inline function equalPower4(tableProcessor, stage)&#10;{&#10;&#9;tableProcessor.reset(0);&#10;&#10;&#9;switch (stage)&#10;&#9;{&#10;&#9;&#9;case 0:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1.0/3, 0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1, 0, 0);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 1:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/3, 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1/3+1/3, 0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 1, 0, 0.25);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 2:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/3, 0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1/3+1/3, 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 1, 0, 0.25);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 3:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/3+1/3, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1/3+1/3, 0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 1, 1, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#9;}&#10;};&#10;&#10;inline function equalPower5(tableProcessor, stage)&#10;{&#10;&#9;tableProcessor.reset(0);&#10;&#10;&#9;switch (stage)&#10;&#9;{&#10;&#9;&#9;case 0:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/4, 0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 0, 0, 0.25);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 1:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/4, 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1/4+1/4, 0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 0, 0, 0.25);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 2:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/4, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1/4+1/4, 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, (1/4)*3, 0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 4, 0, 0, 0.25);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 3:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/4*2, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1/4+1/4*2, 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 0, 0, 0.25);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 4:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/4*3, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 0, 1, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#9;}&#10;};&#10;&#10;inline function equalPower6(tableProcessor, stage)&#10;{&#10;&#9;tableProcessor.reset(0);&#10;&#10;&#9;switch (stage)&#10;&#9;{&#10;&#9;&#9;case 0:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/5, 0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 1:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/5, 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1/5*2, 0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 2:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/5, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1/5*2, 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 1/5*3, 0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 4, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 3:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/5*2, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1/5*3, 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 1/5*4, 0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 4, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#9;&#9;&#9;&#10;&#9;&#9;case 4:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/5*3, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1/5*4, 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 0, 0, 0.25);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 5:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/5*4, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 0, 1, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#9;}&#10;};&#10;&#10;inline function equalPower7(tableProcessor, stage)&#10;{&#10;&#9;tableProcessor.reset(0);&#10;&#10;&#9;switch (stage)&#10;&#9;{&#10;&#9;&#9;case 0:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1.0/4, 0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 0, 0, 0.25);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 1:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, (1.0/4), 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, (1.0/4)*2, 0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 2:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, (1.0/4/2), 0.0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, (1.0/4+1/4/2), 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, ((1.0/4)*2)+1/8, 0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 4, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 3:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, (1.0/4), 0.0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, (1.0/4*2), 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, ((1.0/4)*2)+1/8*2, 0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 4, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 4:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, (1.0/4+1/4/2), 0.0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, (1.0/4*2)+1/8, 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, ((1.0/4)*2)+1/8*3, 0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 4, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 5:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, (1.0/4*2), 0.0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, (1.0/4*2)+1/8*2, 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, ((1.0/4)*2)+1/8*4, 0, 0.25);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 6:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, (1.0/4*2)+1/8*2, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, ((1.0/4)*2)+1/8*4, 1, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#9;}&#10;};&#10;&#10;inline function sShape2(tableProcessor, stage)&#10;{&#10;&#9;tableProcessor.reset(0);&#10;&#10;&#9;switch (stage)&#10;&#9;{&#10;&#9;&#9;case 0:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1.0/2, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 1:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1.0/2, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 0, 1, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#9;}&#10;};&#10;&#10;inline function sShape3(tableProcessor, stage)&#10;{&#10;&#9;tableProcessor.reset(0);&#10;&#10;&#9;switch (stage)&#10;&#9;{&#10;&#9;&#9;case 0:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1.0/4, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1.0/2, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 1:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1.0/4, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1.0/2, 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 1.0/4*3, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 4, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 2:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1.0/2, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1.0/4*3, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 0, 1, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#9;}&#10;};&#10;&#10;inline function sShape4(tableProcessor, stage)&#10;{&#10;&#9;tableProcessor.reset(0);&#10;&#10;&#9;switch (stage)&#10;&#9;{&#10;&#9;&#9;case 0:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1.0/3/2, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1.0/3, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 1, 0, 0);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 1:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/3/2, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1/3, 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 1/3+1/3/2, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 4, 1/3+1/3, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 5, 1, 0, 0.25);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 2:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/3, 0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1/3+1/3/2, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 1/3+1/3, 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 4, 1/3+1/3+1/6, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 5, 1, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 3:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/3+1/3, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1/3+1/3+1/6, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 1, 1, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#9;}&#10;};&#10;&#10;inline function sShape5(tableProcessor, stage)&#10;{&#10;&#9;tableProcessor.reset(0);&#10;&#10;&#9;switch (stage)&#10;&#9;{&#10;&#9;&#9;case 0:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1.0/3/2, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1.0/3, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 1:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1.0/3/2, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1.0/3, 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 1.0/3+1/3/2, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 4, 1.0/3+1/3, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 5, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 2:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1.0/3/2, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1.0/3, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 1.0/3+1/3/2, 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 4, 1.0/3+1/3, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 5, 1.0/3+1/3+1/6, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 6, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 3:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1.0/3, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1.0/3+1/3/2, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 1.0/3+1/3, 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 4, 1.0/3+1/3+1/6, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 5, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 4:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1.0/3+1/3, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1.0/3+1/3+1/6, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 0, 1, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#9;}&#10;};&#10;&#10;inline function sShape6(tableProcessor, stage)&#10;{&#10;&#9;tableProcessor.reset(0);&#10;&#10;&#9;switch (stage)&#10;&#9;{&#10;&#9;&#9;case 0:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/5/2, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1/5, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 1:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/5/2, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1/5, 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 1/5+1/5/2, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 4, 1/5*2, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 5, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 2:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/5, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1/5+1/5/2, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 1/5*2, 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 4, 1/5+1/5+1/10, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 5, 1/5*3, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 6, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 3:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/5+1/5, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1/5+1/5+1/5/2, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 1/5*3, 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 4, 1/5*3+1/5/2, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 5, 1/5*4, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 6, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#9;&#9;&#9;&#10;&#9;&#9;case 4:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/5+1/5+1/5, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1/5+1/5+1/5+1/5/2, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 1/5*4, 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 4, 1/5*4+1/5/2, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 5, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 5:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1/5*4, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1/5*4+1/5/2, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 0, 1, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#9;}&#10;};&#10;&#10;inline function sShape7(tableProcessor, stage)&#10;{&#10;&#9;tableProcessor.reset(0);&#10;&#10;&#9;switch (stage)&#10;&#9;{&#10;&#9;&#9;case 0:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1.0/4/2, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, 1.0/4, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 1:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, 1.0/4/2, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, (1.0/4), 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, (1/4+1/4/2), 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 4, (1.0/4)*2, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 5, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 2:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, (1.0/4/2), 0.0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, (1.0/4), 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, (1.0/4+1/4/2), 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 4, ((1.0/4)*2), 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 5, ((1.0/4)*2)+1/8, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 6, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 3:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, (1.0/4), 0.0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, (1.0/4+1/4/2), 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, (1.0/4*2), 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 4, ((1.0/4)*2)+1/8, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 5, ((1.0/4)*2)+1/8*2, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 6, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 4:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, (1.0/4+1/4/2), 0.0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, (1.0/4*2), 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, (1.0/4*2)+1/8, 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 4, (1.0/4*2)+1/8*2, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 5, ((1.0/4)*2)+1/8*3, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 6, 0, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 5:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, (1.0/4*2), 0.0, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, (1.0/4*2)+1/8, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, (1.0/4*2)+1/8*2, 1, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 4, (1.0/4*2)+1/8*3, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 5, ((1.0/4)*2)+1/8*4, 0, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#10;&#9;&#9;case 6:&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 0, 0, 0, 1);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 1, (1.0/4*2)+1/8*2, 0, 0.75);&#10;&#9;&#9;&#9;tableProcessor.addTablePoint(0, 1, 1);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 2, (1.0/4*2)+1/8*3, 0.5, 0.25);&#10;&#9;&#9;&#9;tableProcessor.setTablePoint(0, 3, ((1.0/4)*2)+1/8*4, 1, 0.75);&#10;&#9;&#9;&#9;break;&#10;&#9;}&#10;};&#10;&#10;function onNoteOn()&#10;{&#10;&#9;&#10;}&#10;function onNoteOff()&#10;{&#10;&#9;&#10;}&#10;function onController()&#10;{&#10;&#9;&#10;}&#10;function onTimer()&#10;{&#10;&#9;&#10;}&#10;function onControl(number, value)&#10;{&#10;&#9;switch (number)&#10;&#9;{&#10;&#9;&#9;case btnApply:&#10;&#10;&#9;&#9;&#9;btnApply.setValue(0);&#10;&#9;&#9;&#9;&#10;&#9;&#9;&#9;for (i = 0; i &lt; modulators.length; i++)&#10;&#9;&#9;&#9;{&#10;&#9;&#9;&#9;&#9;if (cmbType.getValue() == 1) //Equal power&#10;&#9;&#9;&#9;&#9;{&#10;&#9;&#9;&#9;&#9;&#9;switch (cmbCount.getValue())&#10;&#9;&#9;&#9;&#9;&#9;{&#10;&#9;&#9;&#9;&#9;&#9;&#9;case 1: equalPower2(modulators[i], i); break;&#10;&#9;&#9;&#9;&#9;&#9;&#9;case 2: equalPower3(modulators[i], i); break;&#10;&#9;&#9;&#9;&#9;&#9;&#9;case 3: equalPower4(modulators[i], i); break;&#10;&#9;&#9;&#9;&#9;&#9;&#9;case 4: equalPower5(modulators[i], i); break;&#10;&#9;&#9;&#9;&#9;&#9;&#9;case 5: equalPower6(modulators[i], i); break;&#10;&#9;&#9;&#9;&#9;&#9;&#9;case 6: equalPower7(modulators[i], i); break;&#10;&#9;&#9;&#9;&#9;&#9;}&#10;&#9;&#9;&#9;&#9;}&#10;&#9;&#9;&#9;&#9;else &#10;&#9;&#9;&#9;&#9;{&#10;&#9;&#9;&#9;&#9;&#9;switch (cmbCount.getValue())&#10;&#9;&#9;&#9;&#9;&#9;{&#10;&#9;&#9;&#9;&#9;&#9;&#9;case 1: sShape2(modulators[i], i); break;&#10;&#9;&#9;&#9;&#9;&#9;&#9;case 2: sShape3(modulators[i], i); break;&#10;&#9;&#9;&#9;&#9;&#9;&#9;case 3: sShape4(modulators[i], i); break;&#10;&#9;&#9;&#9;&#9;&#9;&#9;case 4: sShape5(modulators[i], i); break;&#10;&#9;&#9;&#9;&#9;&#9;&#9;case 5: sShape6(modulators[i], i); break;&#10;&#9;&#9;&#9;&#9;&#9;&#9;case 6: sShape7(modulators[i], i); break;&#10;&#9;&#9;&#9;&#9;&#9;}&#10;&#9;&#9;&#9;&#9;}&#10;&#9;&#9;&#9;}&#10;&#10;&#9;&#9;break;&#10;&#9;}&#10;}">
                  <EditorStates BodyShown="1" Visible="1" Solo="0" contentShown="1" onInitOpen="0"
                                onNoteOnOpen="0" onNoteOffOpen="0" onControllerOpen="0" onTimerOpen="0"
                                onControlOpen="0"/>
                  <ChildProcessors/>
                  <Content>
                    <Control type="ScriptComboBox" id="Type" value="0"/>
                    <Control type="ScriptComboBox" id="Count" value="0"/>
                    <Control type="ScriptButton" id="Apply" value="0"/>
                  </Content>
                </Processor>
                
                

                Libre Wave - Freedom respecting instruments and effects
                My Patreon - HISE tutorials
                YouTube Channel - Public HISE tutorials

                1 Reply Last reply Reply Quote 0
                • Christoph HartC
                  Christoph Hart
                  last edited by Christoph Hart

                  Nice! You might want to add an option to specify the index so that you can build crossfade tables for each group more quickly. This is a screenshot of three linear XFades with different indexes:

                  0_1488133216539_Bildschirmfoto 2017-02-26 um 19.18.42.png

                  EDIT: Nevermind, just realized you are doing this already on different modulators.

                  BTW, did you know you can copy & paste tables? Just select one (so it gets outlined), Ctrl + C, select another and press Ctrl + V.

                  You could add a dummy table to your script which can then just be used as copy source for all kinds of modulators.

                  1 Reply Last reply Reply Quote 1
                  • First post
                    Last post

                  50

                  Online

                  1.7k

                  Users

                  11.7k

                  Topics

                  101.9k

                  Posts