HISE Logo Forum
    • Categories
    • Register
    • Login

    How do you change the 'SaveInPreset' by using code

    Scheduled Pinned Locked Moved General Questions
    16 Posts 5 Posters 742 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.
    • L
      LeeC
      last edited by LeeC

      Does anybody know how to set the SaveInPreset value to Enabled/Disabled via code?

      I'm hoping to create a button that changes the 'SaveinPreset' value when pressed from on to off.

      Cheers

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

        You can change almost all properties using the set function. But I'm not sure changing the saveInPreset property will work. What are you trying to achieve? There may be another way.

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

        L 1 Reply Last reply Reply Quote 0
        • L
          LeeC @d.healey
          last edited by LeeC

          @d-healey thanks for the rapid reply ☺

          I'm essentially trying to create a button (ArpLock) that will lock an Arpeggiator's current sequence in place when a user changes preset.

          Something along these lines but it's not working at all....

          const var ArpLock = Content.getComponent("ArpLock");
          
          inline function onArpLockControl(number, value)
          {
                  Arpeggiator1.set(saveInPreset, value);
                  
          }
          
          ArpLock.setControlCallback(onArpLockControl);
          
          d.healeyD 1 Reply Last reply Reply Quote 0
          • d.healeyD
            d.healey @LeeC
            last edited by

            @LeeC Why not just disable saveInPreset completely for the Arpeggiators sequence controls?

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

            L 1 Reply Last reply Reply Quote 0
            • L
              LeeC @d.healey
              last edited by LeeC

              @d-healey Disabling it completely was the initial approach.
              But then I had an ambitious thought to create the following funtionality.

              A. Allow a user to load pre-defined arp patterns that are coupled with sounds in the preset menu.

              B. Allow a user to then decouple and lock the arp patterns in place, whilst continuing to change the sounds via the preset menu.

              So in a nutshell, the user flicks through the preset menu and thinks "I love that arpeggiator pattern but hate the sound...." they then lock the pattern they love in place and then continue to flick through the sounds etc

              Hope that makes sense.

              Appreciate your time either way ☺

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

                @LeeC My initial thought is to duplicate the controls, have one set that has saveInPreset set to true and is visible on initial load, and another set that has saveInPreset set to false. When the instrument first opens you set both sets of controls to have the same values.

                When the user loads a preset you can check the status of the lock button. If it's locked then you show the controls with saveInPreset set to false which should contain the previous settings.

                There might be a better way but that's the first thing that came to mind. Try your method too and see if you can change the saveInPreset state on the fly. You need to provide a string as the first parameter to the set function. So it will be something like myControl.set("property", value);

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

                L 2 Replies Last reply Reply Quote 1
                • L
                  LeeC @d.healey
                  last edited by

                  @d-healey Yeah I'm struggling to control the 'saveInPreset' value on the fly but really like the solution that you've come up with. Would never have looked at it that way!

                  How do you check the status of the lock button when the user loads a preset?

                  Is there an 'engine' function that can be used or something.

                  Thanks again ☺

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

                    @LeeC Put if (lockbutton.getValue() == 1); in the control callback of one of the controls that has saveInPreset set to true.

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

                    1 Reply Last reply Reply Quote 1
                    • L
                      LeeC @d.healey
                      last edited by

                      @d-healey I've had a go at this but I've hit a dead end trying to figure this out ☹

                      Was excited to try the 'duplicate controls' method that you mentioned but couldn't get the two slider pack arpeggiator controls to work independently using a 'lock button' as the slider pack that has savedInPreset disabled will always reflect the current state of the arp.

                      If you could take a quick look at this code snippet I would be eternally grateful. You've helped out this community massively and we always appreciate you time.

                      Thanks

                      HiseSnippet 1639.3oc4XsraabCEkikYPjRThcPPetYfQQgMZhfjyi9HHHRxRNP0uTsbbypFLZFJIBOhbxLbbrZP.5GPWzOg9Kz+frua5eP+E7xhtw8RNijnrdjwpMAEsyBAMWx68b3kWd3PV2maSBB39HizGzyifLtJtQOlnyFcrnLTsJHiqfK46sM29Hy0Qk64YEDPbPFFodrrCFoWDodN8QksbsX1jglPnC4Tax1ztTwPq0KtE00cSKGxAztZ89tEqYyYavc4g.YRgyi7rrOxpMYWKY2V.iLtTUGpf62PXIHAHiEKyc50nC+Ern9eHMf1zkHeo.pADnHyaxccjLVZEsQGpqS89C5.Dx.WeXJHUTJ3l3cnNzA1GlJVR0f4POzyGFKLK5UPmd4SN8VPidKFQukwMr8odhgsDMMUiIH9srfo.cZE0WzB+tAdCNzClHWWqiHa5CuLviUue972x7d4yu1CxlIaFXhHPXdrkuYCWpCwuNLSTv7gl8CPahXCdWONCdY0Uz5yJR+G5sKT0zLTH3ro57vtrxZYxPYtTFwrUHyVPAu3LsfKCfO2cUVX2lD+aAH3FRVKyKylwDdnsLWcXvjnbnr8UWy7gOzrvZOP0I0Op+7pLYzBct.IoTgeCKW2lfsUmD1q8.MpsKWP1isJvfLog3Yd9lZ0ZhsEGJWh+DaVtpveVNN13OpiP4wn0e3oW+ou7vNZZQqibVMFUrmGgMspRT7bor9LlU.7BU04MhqNGl7PTnPLKVKahTTWW7vwRXgL9Xbg6mCdNtzF4x0pbE3ueSc3GQoRQXp.JUDPWKFnxpIbEHWEOrB37X.OOoVEILvphX9CiIOhufJSWFUHGCpUQKwRiqPBNRv8.QmAEqvZLQr9PDxa5xsDTV6CnPZUh+0w5lJfNY.7+v1E6oykXBDg10AMHBTAV1m+h.hOpY69xfouDz2+P5.UP5Nz5ub1Oc1nVWWZ9We8YJypgowOiUKMVQN01v5XRThZkuxT3GRt0flTBP9SoQYgbvXVkEZQNLdaaZcL2G3kTMejF2MTR0vtJetS1LuB8BpinCTnZ7mFHTGBscGg7MrgJAMHqiu.EVCy3nc0x3u1qnW+52ZNxZGXOMR61TKXASgQP6RIFs00meOVCskd9LQK.lKpwhlxkJzSXrlMF8ssZRbU.eYr5+pQH136.T5I+yOB4JA4DvyOD2nzgUqTa256WsQ0CLusY0cKUd6pUPWj3qOlL+dswzomTLBmOZLbpTqwTA5MsHcHZ48zmudYLZYwpu7H1cz36UmUO2p1H7bY6Q1hN0nRjoRlD4LE.WNA5RWCGwhxSSYJAwHKdekFwEMDQ0qwxSvZvFBhWrsyEjkJljfbErLBJtLerXIU.ZbDcJz3zGkjzADEtuXKRuf+NYDXv3QHNaw3MOe.9zwyFKEG.nLuIuL+DUH.gBxyCIvW9NvbxGPZTIKdOaAnLruEqMY9FMowM5D1pk6Lce1aSCasQ5RO.VDq0vXQ6hra8aBuCIfb.UzKw305yJWJWtubK.u6DVO58Di2MvaSXsEcRNZGIQ6vuFP6o75QuiRVkwxX3jCLFwsAwkXKkmdyEFSLPuOduPgWn3envsLdm5UAIP+9AbrTPBK8utLPUYNSIL4KhF+vKvQn3NgtRsY8yUIOLYbCvG6Nhns7PJr.nBQej9V4vVIktKiqSE1clLeWXB7U9cxuk46fsCq1pETcLjrKh27ou8OmpNUtVDU.sU3rbpKSPQj2S8t42BZblOlvH9iu+7nWovukzqTvKwWoPjD6A9Vr.OdvHAtutWftwmD.GTl778kyxi946V9SroSezlvfbh9zvRD5qJWJ0kGxDiTdjJwyIWfq1Xw+Ue0Fu6DGRkL5NgLnQ8wteLPIj10ykTkcLryEXQxwa.mWrkUnqnu0Qqq2gy3dc3Lps9j99DgOscahuN2m3.pjPH2oZfkaVbeXO.K8B3Oo31PgmkOjmHyYtnPxyEyZ95CvQz0TtXz7+Fh5o9+on997P4kYriETnJO2o73CfVJ7otQ63KukIiEj5gQumGEc3cPLk4nd4L3ItwBx2MharP+FemfQWKae9yri9lFYs7kUVfwMSc4xow6He2bvESgw4ykG0ETDelssLceaH+LYeVeN74NygO2cN74dygO2eN74ymCe9hY5ibynRgBd2nkhfg5UitUKipLKnRVU0i9KGaimXA
                      
                      1 Reply Last reply Reply Quote 0
                      • L
                        LeeC
                        last edited by

                        I've probably misinterpreted your method to be honest.... Would be ace if you could steer me in the right direction.

                        Assuming this is all possible to do in HISE that is ☺

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

                          Ok I played around with it and had to make a few changes to my initial idea, but it works.

                          Firstly the lock button needs to have saveInPreset disabled, otherwise it will reset to however the preset was saved and then it's not going to work.

                          I've never used the arpeggiator before so I didn't realise the sliderpack connected to it via processor ID. A control can't have both a callback function and be connect by processor ID, it's one or the other. So I removed the processor ID on sliderpack2 but kept it on sliderpack1.

                          So now sliderpack1 controls the arpeggiator and sliderpack2 controls sliderpack1. This means we can hide sliderpack1 all the time, we never need to see it.

                          When you make a change to sliderpack2 it will be passed on to sliderpack1 through the control callback.

                          Now the last piece of the puzzle. We need a control that has saveInPreset enabled so that when the preset is changed we can check the lock status and update sliderpack1 or sliderpack2 as needed. For this I added a new button called btnTrigger. You don't have to do it with this control, if you have another control that is more suitable you can use that, you could also do it in a timer but I prefer using control callbacks.

                          HiseSnippet 1907.3oc4YszbabbDdWBNxBvFRjpbE+HWlhUpT.kjAAnrUjeUBfjf1HhjBEAMku4ZwtC.lh6NypcmkOrhq3eB4mfuje.4efpbMWxOEcLWRI2yLK.F7fPKgeUUxd.E2dlt+9lt6omYa1Nh6Rhi4QV14O9xPhk8ag5bISLXmANTlUqcsreSTinv84tmh2xZ6KCchiIdV1149B4Dryupkk02+ee5e+Qa636vbIohTOmvotj8oATwXosq+Xpu+dNdjioAFy9Cq2xky1g6yS.xjCU0Jzw8Tm9jCcjSaEjk8MZ5QE7nNBGAI1xd0s4dW1Y.+bld9mPioc8IxWpY0ALjV7dbeOIikRs1Y.02q8vEcrkkMp8XWPNsK3sQGP8nijO1UrlZ.7XML8G1qrH5U60SupyidqXPuU0zacTG2HZnX7H5vTKlfD0yABAlzROWqU9mqh1gCyfIpD3bJYuH3kQZT5AUqdO7GUsZ4OsXghEf.Qr.elSDtiO0iD0FhD0veNdnA5SD6vCB4L3kRaXLmMj5OOs2JCZu0TZ6C4bcSDBN6JUd7T1nLvaJymxH3dILWAETiyLrtzBQb+RtCU+d.J9IjxEK77hEvvSOdDtDE.q5mho3OCOZlRTOLIPar3Rkggu6cKqUJUW4iginRLQnesA3k8HWThduIsmdzSjLngnDsrbsKMx2Urv2oBBYvcIQIcYsiiueWPZo4sl0Q0hE1byiin86Sh.pnF.KF3HvmCaHwQIL74CHLbXDALKlFicG3v5S7lmesqfkZpE6VyS6gKMNJIWLpkboxkwatYqdpfrDKByA1b.XkeRO4VURYgzqu4llYTfVhADbWdbLnFwOlLoI8nwo1bp3zlad.rC.GqrUnxVANB2AFRpMd1SmUXxsEjWLElSuplW9gY9yBxPTYIYIWYbP5pRUlILJwvHLeHWPdBqT4BOuP9B.lSOTudycrTi4Shl6vxB+QKRwRrjftjngYRCmHTAbxRrnrUh0U6cLlHm0hQEOIjvtpyErRcoxRvorBfWnJ.emzBviiWVTnVaQjQ.zRQciCCq64Hbrr+8nZOnh7owNvOM2G9431vOeYiczXp.JmFnakBz1pMOJPdKz3X1LXXY8Us1UBCT3Ok+vZJjDInR2k8tjyfCj0mhjGsKI9TAOzx9MFky.GiHROBTi7d9bGAk0+XJ3Vk3eajonZVWLB9ue+5WZxkTBnQ61vwrxxJaGwOOFXd29COoO+Mf49ejJPEjfwR+Gu5u8pIktkT7+5EuRIVsLs+AjZK1FxPaGmyHZG0FeBVDkPt2ngTmwFcECJSjimQpLQSqvrismyY7HfWxKrLwfPs.fpIAJctOr4z5bpmXvHuxO7WqOfP6OX70gZGV2xv6eiqQB1XOu0gFd9WDVObXdbKOYNDb8MR+9TGXiCjVNbKhcNSfuYlAdKyP9YF.u1ypGCgfVLcjVhftdZi.dBy3FfqUOXzMGgmG9h.Gi0xCmvgfz7pXJu12oKwWQoahT+8DIfO0zMbQcA4BvBuGpSiSZtaqCaeTyNMOF+A3lG1X68atq00AGyUM9aMv4kCw48mAmca0YVftwB1YO9bRCzpFZtpddJZEQpajmp9z9cS.WMakRLh.erAfs+K0sl8BxEMyoT29bprrItWbtIKZmKaEsWXI40yPkxagzrHUzr0JyfMJhNRU055ZB81kzBlxaHHHgoxlxHqUOKF4MQRKn3xxwh0TFnyozqfFu7QYwc.VgGIdL4x3eJdDXwDRHdOlw6NsA9iy5MVK0.PJcW917KTl.pSQdVBA9byQhy9BxfJEQOwU.adNRdEyka0jG0YPRud9KT8EewA3vVR.8XXCqw.yXsqy8Gdc3cBAp0PEWlY75c2saToxG+3cqT49Is0umY7tCZeBquXP1Q6TIZm7mAz9Zda86VYKyXcD745LFwuCwm3JKO85SLlqgdGzSRDgIhelL25nCZ2DJAFMzfydAwrYnaKMTSl2UXlpSTuNsiAqgNf6k3KqMa1LCYGbRG.t98DEskcFfECYHlqzqQGNpl4FvjU5tNpME9Fs4y2UlCek2b+WX9N53vl85AYGiI6pn895ks4PKGUtklJPsU3K0UcvSQjem5c7SgZb3ufvHQyd9rQe7fm+cV6iWXl6imtD6wQNr3Pd7DFdXcuXSgeULYuHxyNRFkm7CJbhl6Pu7Q6AKx4pSGGQRjJcY5agBoG49kngcq9aP+D+4e21O8hC4xFcmiGzt8LMkFpDRCB8IMYmAmbARjb7NvWv1yIwWLT5j40GvY7vAbF00LneDQjdiWCtO2ETCgPdR0HIuc8ify.bLSf+C02GR7bh.+DYI8E0xtuXQwq2EooKVtYD++FE0y8+mE0OhmHauxANPhJ7UYpOe.pkBW0UehuruW1qHqGpeup7ccwTlm5kWAOoCVS9tc5f0FN3uJXD33Fw+lzFMKykuoRBrtYp+iN4QGHeGOpUYHT0JUsBfJheiqqzc+Af+Y95r0Rny8WBc9vkPmOZIz4AKgN+okPmGtPcjGF0HQvCzaEAAsap6ylcSc64UMW3GA33xj9F
                          

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

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

                            I would recommend a totally different approach: having a second (hidden) UI element is rather weird.

                            Just take a copy of the current values when you press the lock button and restore this array in the slider pack' callback:

                            HiseSnippet 1847.3ocsX0sbaTCEVaRDPbvsIcfgKfKD4FblVL1sPggxOt4OvsMsdpSCkggoi7tx1hrVZQq1j5goyvvS.uC7Dva.2yKCWxckij1+bsiqSlhuHSzQme9NGcNGcV0QI8YwwRExa0CGGwPduIt6Xgd3NCobAp8tHuKgOfFqYJhiz1iinwwr.jm2xeigf2pqfr+9mudaZHU3yJHgPGI49r6wGw0ET6z5t7vv8oArC4iJw8G2psuTriLTl.3YYbCTD0+X5.18oF1VBi7ds8B3ZopqlpYw.OaKCF2cn7Tgi+i3w7dgLyhlntfhbjQ6LjGFzIyWiQHuU5T34K6772Be.OfmSuHBrtcCRgDkiAdKMIjVYBH07rfz9xv.iBNC3sTI3shCdaf65q3Q5hcLXaMbaAb3zmBg8xvxwKZo5uNdGIvgPWeD8X19JXQtD0tYiFWi7IMZr0spVoZkO5iHGNjGSNENcHGyXQD8PFYyPo+wrfMImPCSXwUqnXCHNZcC4AL0QV5juj7C+nUMvYXrF3VQb62ANDaBamgiAL8NxQQRArn1lk3YSCLJj9dfM1NQqkhyT3BV1z4BUqvEgbAizOQ3q4fnRQASFknjg07yzv0bN0VUq7KUqPfePHXmPFXbim6bRGKjPdr1wyY66lcqVYUd+ZYp0PIU0YpWFM1pc+DkBfPdXsDOeGrKU7AZxOk.wBMbtYkfpTzwvoidHABCVSWaKROlOMIlMgBNkQNUlDFPjQLEjWBQAqFhgBIR.USMqD0qWuPpo8p5JVLScBqVoiHS7+9IibThqs0V2pPCE+WeopFGBJMtEgS9BxbjGX3pWcqBIKEqNCPEkDO7EQTIFtstFGPUtVdl8+dV0JOyle7xSipGa1xlmrCMLrGXiZyHG5rS2JgsEJeaWIQH0C4hADd+x4clLNBTNxFEoG6XGxrlQHIjIF.4DeIDvKEJULchRjmUNWqQ54py3wlrNlfBcrBxM46W380KR7dol5PSRdZHzjRXslC3l95t1L8fXGWAdqMsF3HWb+gTw.XCtHf8TCXGKSH9gbPR.oTRrUSYY1OpMQpxkMSYfqnAsmV4jpCHsF5WCDIQlLbc8bwZazEDw8owLSMjs7qGDt.6P6ISzthHFziJvxTtjwRC+9CY.5.yvsGbTQpgC41JXd7mmGSs4AYmbeU9A2j8Jtiw9ld5FEZLsqWA7uTMXuO3DlwENgKShCGOgj9xHNKXhB77jPSFt6Lb5bozJmm4NHmWMyD8smcQyzUBYUMkJWtuTydfn1VU9kJqVApVews52el6kpvPlZlaaFrPMOAqIRF0ioxJHyXDtscxqyWawtN22EiJwnTzVv0OHhktt3BeydNuNa2FnbmsLoBerLUqqMC1JHM87DnzyPXxBuT1AOUamq3JoyUTbZg3.NqhKc7grQIjG1yCTl4BDj2aiadcHAq9C291ve+lcqW+aUcPnG0dWy1oFBrIfC3RHM2DM81ExV8YtAZVEuKK9XsLBPcdhEx60OGv5o4CO156aMNewe0oUTl22NvLB6sUQrAC3T3jEN1x0PaSuE2Yxo7.8vhYQG2BUBSXGltTJlb8Bs34MwEMGKAGTY3f3shomvZK5X62XFOqrxWSmN9oS46GJoZn+7gbHMyXhKiKSprSiduRV4WEsRi3tv6kwNyssRdJbONp2frIqW80.1+WKvzrQET+ym+6OeRpW2P9u+qmaIaOW89CrsG0llT8tfWkdu4mSzpD10x2xltqx2rOMLtztlj83oIaJ8bhDOsBomHU.xLehvjRByS.nMYjUna.csdgyxneq0PFevvhu.okrEZ54+qVNKI8SelHuYhw9WddeIRyE+KQJUZtQdo4xmY91kvNTjRJstr36sPKfNphenMwXBUf8lq3tZlz7QyDbZVTJsbErxBpf0vFosX3b3.kTv5VEz8X9TPvaACAfFjJ8cYiO+AxIcjHFK3tBYuBHr1rDd8Tggx9dxskO0JNzhi8yIL3KlyIuXNRIHTE+.eMTF9PyvRm+yxUwcGlzueHadAf4eQAz2hMheHzLqzFSoM2cFuKt4MqO6emC6cDCFbgqG+xs2YbG0BZoqfumc9rE1u5erwNGcGvNOV1wsdAyE1.uCLuqfE1kEx7MMflepvLUx6fePhNJQ+JPUafOnydPyMUlxJTxRKrRtrQI6IBlREqaeFnodhi0wGHCRBMcaK+5KlmYJcCXFtIZCadJCQLjKT9YnNGOISiY9jLMmUe5EDtaf6v09CmMdWZF307ZO+Oi27K31qeeHin.rqf2+wuZeMqYBkGBe5DL9xATshCSuXu+.lt.564RLhyRqRW2HqEVWlHvt34vuzMalkHa1rY1lnQTek7I9tzRySn8FVJ.lD1WObU7Al0jhYYwMp2.MhGvehuuIT7g.1msLW+BHyMt.x7wW.Y9jKfL27BHymdAj4ylqLlGU81IZ4HWYBPnydtYL81y8BD1Ik+OjXiR0K
                            
                            1 Reply Last reply Reply Quote 2
                            • L
                              LeeC
                              last edited by

                              Wow, thanks both for 2 great working solutions to the problem.

                              Pure gold!!

                              Hope you're both good ☺

                              LindonL 1 Reply Last reply Reply Quote 0
                              • LindonL
                                Lindon @LeeC
                                last edited by

                                @LeeC

                                or theres this(a combo box listing arp presets, and an arp setting save button):

                                inline function onSaveSettingsControl(component, value)
                                {
                                	//save a setting
                                	local arpsetDX = ArpSettings.getValue() - 1;
                                	//Console.print("index is:" + arpindx);
                                    ArpSettingsArray[arpsetDX] = Arpeggiator1.exportState();
                                    //Console.print("arp settings are:" + ArpSettingsArray[arpsetDX]);
                                    ArpSettingsArrayPanel.setValue(ArpSettingsArray);
                                	ArpSettingsArray = ArpSettingsArrayPanel.getValue();
                                    //Console.print("retriving:" + ArpSettingsArray[arpsetDX]);
                                    component.setValue(0);
                                };
                                
                                Content.getComponent("SaveSettings").setControlCallback(onSaveSettingsControl);
                                
                                
                                inline function onArpSettingsControl(component, value)
                                {
                                	//load an arp setting
                                	//Console.print(ArpSettingsArrayPanel.getValue());
                                	local arpLoadDx;
                                	arpLoadDx = value -1;
                                	ArpSettingsArray = ArpSettingsArrayPanel.getValue();
                                	
                                    //Console.print("returned value is:" + ArpSettingsArray[arpLoadDx]);
                                    Arpeggiator1.restoreState(ArpSettingsArray[arpLoadDx]);
                                    //Console.print("num steps:..........." + Arpeggiator1.getAttribute(Arpeggiator1.NumStepSlider));
                                    ArpSteps.setValue(Arpeggiator1.getAttribute(Arpeggiator1.NumStepSlider));
                                    ArpTempo.setValue(Arpeggiator1.getAttribute(Arpeggiator1.SpeedKnob));
                                    ArpSwing.setValue(Arpeggiator1.getAttribute(Arpeggiator1.Shuffle));
                                    ArpDirection.setValue(Arpeggiator1.getAttribute(Arpeggiator1.SequenceComboBox));
                                    ArpOctave.setValue(Arpeggiator1.getAttribute(Arpeggiator1.OctaveRange));
                                    ArpSteps.setValue(Arpeggiator1.getAttribute(Arpeggiator1.StepSkipSlider));
                                    ArpSteps.setValue(Arpeggiator1.getAttribute(Arpeggiator1.NumStepSlider));
                                    // start it in the off state
                                    Arpeggiator1.setAttribute(Arpeggiator1.BypassButton, true);
                                    Content.getComponent("ArpBypass").setValue(false);
                                };
                                
                                Content.getComponent("ArpSettings").setControlCallback(onArpSettingsControl);
                                

                                HISE Development for hire.
                                www.channelrobot.com

                                L DanHD 2 Replies Last reply Reply Quote 1
                                • L
                                  LeeC @Lindon
                                  last edited by LeeC

                                  @Lindon This looks interesting ☺
                                  Would actually make a lot of sense to include the option to 'save' an arpeggiator sequence.

                                  Will take a look when I get back to the machine.

                                  Big thanks for this!

                                  1 Reply Last reply Reply Quote 0
                                  • DanHD
                                    DanH @Lindon
                                    last edited by

                                    @Lindon Reviving this old thread. Is combobox still the way forward for Arp / Sliderpack presets?

                                    DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                                    https://dhplugins.com/ | https://dcbreaks.com/
                                    London, UK

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

                                    27

                                    Online

                                    1.8k

                                    Users

                                    12.0k

                                    Topics

                                    104.2k

                                    Posts