HISE Logo Forum
    • Categories
    • Register
    • Login

    Scheduled knob task after initialization

    Scheduled Pinned Locked Moved General Questions
    9 Posts 4 Posters 66 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.
    • JulesVJ
      JulesV
      last edited by

      After the plugin is initialized, a knob needs to be set to 20 after 1 second, and then set to -50 after waiting half a second.

      I tried the method below, and it works for the first 1 second, but I couldn't figure out how to do the second step after waiting half a second.

      HiseSnippet 1204.3oc0W0sTaaDEdEXQiTayjjgGfsbkRmLDavPfgIINXfTmT.OQ.o8llYszJ6MrZWORqnwIC20mm9LjWk9Fz2f1ytR1VFnfi6OSydgGume+1yd9YU6DY.MMUlfrbOZPeJx5qr8GHT8Z1ivDnV6frts89jTEMAmSZ6A8IoozPjk07OWSvxoBxr98mtMgSDAzwjPnSjr.52yhYpwTa23kLNeORH8HVbIoq2nUfTzTxkY.dl2tJpOI3TRW5ADsXyYi9NRZOj02Zu1JqFTO7QgqrxZatd.Yc5lQjnnZqFVu95arYsU2jTei0oUWCYsvtgLkLwWQTzTvnaKCG32S9yhbGbBKk0gS0apg7AOmSF0rGiG1dXvIEgrpzdbnZ97P0h16yBYinONjcGCC7XMJGzrl65fTsOAHYUBRUxgzcs8CRX8Ui4nwyWZ2R.2fQD3toLTxkEM2Kl2toDjPnVNlbJcuDXyHM7VsZ0Gfget+VtttvETpBeFIA6yh6yo5TfZ3GiMIMK2kp1MJhFn7VJmM1veoKn5KExNZkF5TPslx39RArwaICWsJLAmIn3nLQfhIEXovvRqUhj6ELTkG.FkmQuu6GbcJgpkSopmoTIrNYJpWYF5eGpzVtmuk60BDscJ7YSBm2AxI8lDJlim6kvKSvTuHSzml3AXyw0Ig1EqhSfS9thtfnKGjPgj.cUPxgcdqNtAlxADQ6SC4QdbnUAS4.mSvZN5PYRlPKGXRsV.92GJsX9THXGl5yfpwlxL8U4qnfIMlWqJKB6MT0mfqUEtcApZ65XNXZ+ehN93sRUiNEjC5QDcog41Qanbvpj8MnEniAhmCbNWKRwYQQRxOMdqoSivXGcPWud3C+F7iKsvsNn0QSPwsbTLWIXUJm3.ohdnNr.n28bW7EYEEck7Jt534WNWhcww4uVQOQVbGZR4bOsfPk3jk2KLck2A4YfkDTJZAm7C6SK1umjGpKa0++xMCPEov51BEHDDUYZJb6hlB9bVHMAw.i7E1l6SjA7PG3EVbXC6iasCQQFZFvhfWfXuhoOLV6POC5mm2qwwdGZ5ovUuQ1hpFX.xM5z2Mpk+GOtwfw8++oFopA5PyBFAQwrvPNssLkoC8kmp.yi56yduY1wGV7We9u89e4owkmE8ieLlL1MnsajlEEwdmYHRDiGmBsE52JFlsfrtm8woTbHMhjwU3zSA6.0wmRCORZjGc41rPCdYXFmnlrqutuRACMfK2pU2NU.GjAkmW9ILJn50NJXZg3csayTA8tZLN2UfQHO3eCLVL.8qsymVLFfUr26Gl0okUm9ok2ZzacFMUn3sNkGacMu0odicnbxDApWyBU8JkA13JdMTKwYPoTaImjbwv77+S8pfJSctf9Hg+6juVY5tLtgNWSIdumsIj+4DfMoDe9.36X2l7+gDhWIyTLQ28IPSZnks8AYw9vmD.OkAd8gfxAGYaMmdlW99p58Z.4SEglM+ArJXVSu2pfYsgL+OwGwjfD4aBxmFqKMukgBbtElOnwA9xJXOd7X3QsCfQer2DDLootjhqLqJt5rpX8YUw0lUEWeVU7QyphabyJp+7tmkojw40IHz9s207rIKqcEDHi2Txf9S.ERqNeC
      
      
      const var SimpleGain1 = Synth.getEffect("Simple Gain1");
      
      const var Knob1 = Content.getComponent("Knob1");
      inline function onKnob1Control(component, value)
      {
      	SimpleGain1.setAttribute(SimpleGain1.Gain, value);
      };
      Content.getComponent("Knob1").setControlCallback(onKnob1Control);
      
      
      
      
      inline function initJunper()
      {	
      	reg tmr = Engine.createTimerObject();
      	tmr.setTimerCallback(function()
      	{
      		
      		var runTime = tmr.getMilliSecondsSinceCounterReset();
      		
      		if (runTime > 1000)
      		{
      			Knob1.setValue(20);
      			Knob1.changed();
      			
      			tmr.stopTimer(); 
      		}	
      	});
      	
      	tmr.startTimer(500);  	
      };
      
      
      
      
      //! ============ INIT ============
      initJunper();
      
      
      
      
      d.healeyD dannytaurusD 2 Replies Last reply Reply Quote 0
      • d.healeyD
        d.healey @JulesV
        last edited by

        @JulesV said in Scheduled knob task after initialization:

        reg tmr = Engine.createTimerObject();

        The timer object should be created in onInit as a const, or if you're creating it in an inline function as a factory function then as a local, I didn't even know you could use reg in an inline function 😁

        But I think there is probably a simpler way in this case

        15109522-be5b-4b26-bcb7-c4b805a76dad-image.png

        Free HISE Bootcamp Full Course for beginners.
        YouTube Channel - Public HISE tutorials
        My Patreon - HISE tutorials

        ustkU 1 Reply Last reply Reply Quote 3
        • ustkU
          ustk @d.healey
          last edited by ustk

          An object timer could do as well, switching between two predefined timings and values

          HiseSnippet 983.3ocsV0uaaaCDmxIpqVaqXEXO.B8uTVKLjcbr8PWwRiiSmQqcLlRC1PQP.MEkEWjHMnnSmQQe+5qPeK5av1QJ4H4Fu9gAF+CCce+i2w6NOQJHzrLgDY4b1x4Tj02YGrjqh6GiYbzviQV2ydDNSQkt4rNZ4bbVFMDYYsyyzLrpuKxb9vudDNAyIzRVHz4BFg9BVJSUxcxgOmkjbBNjdFKsh1sObHQv6KRDK.7risOZNlbEdFcLVqVMazugyhQV+j89c6fiZ0sKkF0w+m61MpSWBtEk1d+1smFhm1pWORuC51CYcmAgLkPFnvJZF3ziDgKChEulmGfyYYroITMQST.D4b1n9wrjvIqRNYHj0tSJSU6jmp9Q6QrP1M7KSY+fQfaoEUSZV09TPp4WAjrp.ocygz8sCHR1bUoDMd9V6gbnBFggZSUnjqKp16qY2W.ZvUMRwWQOQBD2XgWGe+G4B+r2icbf5Slx8Zrz84bwzltOwckgynp9hz4BNP38.izG.VX9nQFUcNNYA0yugwMU7iB7w.9LFm1fHoPJQ+lPd5z+hRTdqGxyFNZ33mE3pOOw8UM80.6.e+KdbUbM9nKO+ou3kCBLJ0xnxE5XJoybIhEbcD80LbTZfYhWebRxT3wlWzBNQwDbu8bdiScULKqQlRL2njFN0cp+QWox.9Ji2uPqUtNjXLeFMrvNVjq2CeXNB9kUWlFIT9LU7dN0qCnQgk43wqPboKeqIusQc7uvHSeX7DHS5t5V3J3FjnKRRQhGYUE5QPtB.u4RBByDIzFykLnzkyGhWkZWg42jjV2qfxUh2XghdZQ5y4sNternnnMJqvWI5r7FDWj++uMziuHcJUV8doUDZLVua6NeYcaj7W0UTTvGxYpSmSKnOQjDp6hzee6dSTQaA70KGdLVg0sqE7.8lSkJlFNVGSuFFPl27V29XZ1UvqMitEUJj0cUFo2qn0NHgERkHFD6uw1TGP+c4LT1gKqRjhqH6OO70rPEL.015c.YLkMKVshJCeMcHehjB0a8rAzsGt.i0DgKRvp0m0o2BTH.JIqMfQODgmwTKqtk3qX.n+mb.3WJDuu8DlhDuYLVaCXDJV+efwh0Feu8fnHX5VI.209j+Xa2Q7YB+uKVnX7YivJICdJXOdQZ.rdkPgny4zjLc8ul9AaNsulVmABn7PCw+.mBgM0zVEBatRHJESjhKI4Mh5ES20vAvD2r3tN7OH.Z2lHSyY07bJrm7RBYcWcKCassFt+1ZX6s0vC1VC6rsF1caMr2m2P8ei4oKThz71FDZzjAloYVVC3X3En40J5eAbKVeyM
          

          Hise made me an F5 dude, browser just suffers...

          1 Reply Last reply Reply Quote 1
          • JulesVJ
            JulesV
            last edited by

            @d-healey @ustk Both methods work great for me, thank you.

            d.healeyD 1 Reply Last reply Reply Quote 0
            • dannytaurusD
              dannytaurus @JulesV
              last edited by

              @JulesV Interesting! What's the use case for this, if you don't mind me asking?

              Meat Beats: https://meatbeats.com
              Klippr Video: https://klippr.video

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

                @JulesV said in Scheduled knob task after initialization:

                @d-healey @ustk Both methods work great for me, thank you.

                Does it work if the plugin UI is minimised?

                Free HISE Bootcamp Full Course for beginners.
                YouTube Channel - Public HISE tutorials
                My Patreon - HISE tutorials

                ustkU JulesVJ 2 Replies Last reply Reply Quote 0
                • ustkU
                  ustk @d.healey
                  last edited by

                  @d-healey I reckon only panel timers are stopped when the interface is not showing

                  Hise made me an F5 dude, browser just suffers...

                  1 Reply Last reply Reply Quote 1
                  • JulesVJ
                    JulesV @d.healey
                    last edited by JulesV

                    @d-healey said in Scheduled knob task after initialization:

                    Does it work if the plugin UI is minimised?

                    I tried callWithDelay and Yes, it does.

                    When I apply it in 4 stages as shown below, it works.

                    HiseSnippet 1230.3ocyW0ubaTCDWWhuRrA5zxvCfF+WmgPp+JeQFl5ZmDvSIodvoovzozQVmrslbmjGc5Rwgo+GuQ7BzWEdC3M.Vo6r84DGmPFnT+G1i1O+s6pcW4NJIkEEIUHmBmLdDC47ItcGKzCaMjvEn16ibtu6QjHMSgSH0b7HRTDyG43r52ZH3jOGx94OebSR.QPYyHgPmJ4T12yC45YT6z3o7ffCI9rS3gYjtdi1TonkLPFC3YU2xnQD5YjAriIFwVwE8cjngHmuvcyp0n0821uZ0M2cKJYK1t8I86Wole85asytUpsKo9NawJuIx4dG3y0RUWMQyhPN4ZJ8G2cn7MhDGbJOh2KfYNTA0E7bB4CkA9lPzPE0ZHOvuyjDUDBrRmYosUSRaet6Qbe9T5yReOvx.OSirIPmUlGdqNG7pjEdky.uE.ImLPJWBjdnaWphOROiiAOeraaATM6Sf5TVnjHKZkeOmaKIHgPuQH4L1gJ3vTM7pUt75X3qR6UnPAnXEowmST3t7vQALy0gJ3uAau.sw.l9f98YTsWwD1XK+hWR0mJj8LJMwofZsjgijB3fWQKWiJbQ.Wvv8iETMWJvRgkkQKkLviNQk0AiFDyJU3WKjOCp1HhoehVq38h0LurLLeOQo8J718JrTfXrSpOaQBB5A2O8lGJ1vqvUvKUwfR79r.x3lJIwmZ6o7NCzzhUESGqD3CDC.01HQ5rBBhjuH2u3WiMpX.mm4XI7WhKhslkoJttQHhZPDH1KwEiEwPwsH9UEx+VSrU3RI9dUZp7oQZEj9uF7YiLSHMMPhzPC4yDLOKryXjMnPB4Eb8PqQ7pT1bU4kGQfqBJhvWF5U5Uqmn9IuQlfm4sJP1ZUiYA2Zx0mZpKdU2FDOkHcHQLf46kP4Z8d0k38gJFag92vXRbMG.9p509GifkD+GBC3lTPlGBFNdkx+nGgOJNPywbnZYFohg1WnbJhwT4EgLLIjPC3K.okuYbBxNow2SqhYqi6SBhl7So8xaA1r5bxE5rPUJNVpAlI4JPb7kY0u+B4k1iD.2rVDay5.0xTzSDG1iox1jaDDF4M+bT2qeNZ1w7zjV8LBJEsEb8yFwDW2veT57AyL2TTAhpsSbue5D2tAbelBwgAqejqsXfr.FV0cuIKFQOu89DMYhY.KBdYDSo4l.vYe14vhyjA44c2mEclVNxJa5HIjyZ2nS+ko6Ve2yaLd1h1etQH22Of0QFwMI3rKrg19Qc4WLYsbi+3he6wgYWy+SuKjLyvnlMPWc0CrzS5GGPzyuIzLqMkgwqYW+XVwH.zLN66I9Wa83sEhOzsCWSGtXLtxBvHT99u.ioOp3ScS1fNCf4bO7GeO7Bh0l9VvoaJSeKX1U4K4sfHjcJXVBuf6qGl4ZTiE7Zw1hygNfNx.h5xo4Uu0wYkkGm4t02ELgD9C56qelqMM+gNHsk9OrA4Cb6P9+pX+CxXMWL.dpfhCSVcONNrK7N.JCfmPvBLKzbVwr5I4bYyYCH5xD91C+E7IkYEyYmTlUlv78hOf2jnjullrTzzpslkBD2B6efKO7OIgy3YaCm1dC6i3ulRm2TWQwp2UEqcWUr9cUwMuqJt0cUwsuqJtyMqn4uv9jXsLLo2.gNpyA1Wu33bff.2xssIn+lzPnoS
                    
                    const var SimpleGain1 = Synth.getEffect("Simple Gain1");
                    
                    
                    const var Knob1 = Content.getComponent("Knob1");
                    inline function onKnob1Control(component, value)
                    {
                    	SimpleGain1.setAttribute(SimpleGain1.Gain, value);
                    };
                    Content.getComponent("Knob1").setControlCallback(onKnob1Control);
                    
                    
                    
                    
                    inline function createDelayBroadcaster(knob)
                    {
                    	return Engine.createBroadcaster({
                    		"id": knob.get("id") + " Delayer",
                    		"args": [ "unused" ]
                    	});
                    }
                    
                    
                    
                    const var Knb1Brdcstr = createDelayBroadcaster(Knob1);
                    
                    function stageOne()
                    {
                    	Knb1Brdcstr.callWithDelay(1000, [Math.random()], stageTwo);
                    }
                    
                    function stageTwo()
                    {
                    
                    	Knob1.setValue(27);
                    	Knob1.changed();
                    	Knb1Brdcstr.callWithDelay(1200, [Math.random()], stageThree);
                    }
                    
                    function stageThree()
                    {
                    	Knob1.setValue(-43);
                    	Knob1.changed();
                    	Knb1Brdcstr.callWithDelay(1100, [Math.random()], stageFour);
                    }
                    
                    
                    
                    function stageFour()	// Multi instance sorununu cozme amacli
                    {
                    	Knob1.setValue(0);
                    	Knob1.changed();
                    	Knb1Brdcstr.setBypassed(true, false, false);	
                    }
                    
                    
                    stageOne();
                    
                    
                    
                    1 Reply Last reply Reply Quote 0
                    • JulesVJ
                      JulesV @dannytaurus
                      last edited by JulesV

                      @dannytaurus said in Scheduled knob task after initialization:

                      @JulesV Interesting! What's the use case for this, if you don't mind me asking?

                      It can actually be used for other purposes.

                      But in my case, I'm actually using it for a bug workaround. When I buld a complex custom node with 23 parameters and use it in HardcodedFX, I noticed that in one parameter, the knob, wasn't getting its value during plugin initialization.

                      However, after init, when the knob is tweaked, the value is updated. That's why I chose this method. Creating a custom node with fewer parameters isn't a problem, by the way. As the number of parameters increases in custom nodes, the problems increase.

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

                      39

                      Online

                      2.1k

                      Users

                      12.9k

                      Topics

                      112.2k

                      Posts