Confusion speed btw LFO speed sync/non-sync makes HISE bug



  • Hey!
    I added a knob controlling LFO speed, from 0hz to 40 Hz.
    Now the problem is that when I clic on the button LFO Sync I created, the max value changes (To 10).
    So If my LFO non-Sync speed was above 10 Hz, and if I would change to sync speed... Then the software bug!
    Is there a way to add a property saying something like 'If LFO is synchronized then Speed max value set=10' ?



  • When in tempo sync mode the LFO will "sync" with the host tempo, the frequency knob then goes into tempo sync mode and locks to a note value so you don't need to set it in hertz. Take a look at the knob of the LFO and you will see the different note values.



  • This post is deleted!


  • Yes I understood it's in division by main tempo, but how to fix its max value?
    I upload a video to show you the bug



  • For the moment button colors are inverted, red=off and black=on ^^
    First, the values with max 10, it works.
    Then the values max 15, not sync works; sync bug.

    I didn't understand how to fix that!



  • You need to switch the mode of the knob when you press the button:

    HiseSnippet 1405.3oc2Xs2aaaCDWxIZaVctacqCX+ofwFfCZlpcR5dzhg7vMtMsIwAUoYCXXniVhNlHRjdRToMoH.6K29+8Qo.6Cv1cTOMhpabZ6ZwDBBDuG7N96Nd2IuWnvkFEIB0zux9mLlpo+wFNmvki5Nhv3ZacWM8qZrCIRRCsRHswIiIQQTOMc84tGRPu97ZpmWr5FDeB2kVPRS6.AyktMKfIKn9aq8PlueOhGceVPIoWYssbE7tBeQL3OyYzVaLw8HxgzcInX0LzNlQeZjldaikWxN7nNCNcca7YC7e2e8issuK91v8sOU8hs8fMsuwM5q4FGFR4xC.00zMz+G3Q2XSOlTD5HIRJrmyugv6DmQhmxSL8ArH1.eJtnilC3SIj6I78vCO9tV2QLeu8xfvHMXu2q.PmKAPutwNLOVN8Bf8SULrJznLzpWaZtWmKo6oWx8lOw8tlgiaHarrfC5aeVJ0Wh2kvTq1Cl2vDBYQRqiIgVOjKFX8iVcEbI.11DOOjRql3+atnUa3uEtSCSyadSqe4AN82UovuZlIeDEchwzPIiF0KTDfxjq8yaXZY0LP3Qadaql8Bo+dLk6dRyEUzgDzwNrSQdss6jPyiNjD6KOf3Gqz4VYxFObH6YHEq6eZyFlmsvcLKcJ1tW+cDdw9D.8gSi51f8gTYNwVMAQrxW1bR0A4c2HVJE7IghDZsZVvGNTcVA.kN.pX1vjw8Ybp0vXtqjAZK3Ehh6SnvukqHXrfC63hfsfi0BMLAboN.n.3YIGQUlG8MXi.2Go.NKHR4SEhzqKkgrAwRZqI3rOEL.tGYF.hW0g+XCakYv5nEQS57TlzcjxFGgQdovRhpaEg9.FoPAwvGZvVIwtEsZlailpcurDjm0LEOpeFvh5GQmtAGlkGLE6UjqbN6wvfPa6kp1QtU6yqfmmOcOQDCCQnHot5YffMLKBXn3oAstDe+APcrVUDPw8uT.eWgj1m2ZAymaV27rywY3vpXktU9zvp3hUXCmhZs3wACngYgakb0iT.cJqEf...BtjHp5B6sgEHgKZJUN7mmRgJOHjRNBe6L.+tC3ZPMqIq3Ydwp34lbEqjfB9Vblr+XZ95DbMiRasb7rLoBbrLUE9UgXEjNeYVszq8PA2ZohChJUkauZZgUGelGMTiAkS+.CDV0TfSZyv0Vd4+dUsWltIoPJcUcqSyolXGRdNe4dnoSVjobmHrSdJCH8XhZ8agmEHg+jxc5mg1Ssqr8TmpvsKn6dMi8v7yp82ZU3uXf3sr+l1rugwlCGRckEN67F894Kam8Kmqb0DW4JFNP+DU6Kki7Ep0V+D4Xp08nbZHBpSYbt+5M+3b8ckf02OjviFKhlXicnAr8gVaQkI93HJV83QXPtL8tBRXkrdwp8fyXk53Pjwgprk0CDwb4DYGycoF1ZxKMkjuhIul+cvfgu4u485WnXtKl69Jlc8Cy7QGVvXe5l7io9vjioUGtaxfe4TekNIz4BZPWP45q8HpOkTNC8qVaaHyhDhiVcIOect3muoEC9RiD20BusY8+ih1y85Vz9R9MPoeyqgALwhxK+DiIlsep93e73G+mqlOcS4N2Xsvs3kOJXUWXf7fD6UDR1ldHXmxTxmNdhhWABgbDie3jUXu9ZciijhfrcWS+qMVZE6IeNtO9Iw2.e8G5pVq8lKos1EL5+4JbMGAQD98770DONO79dhG+tdLiGIhkPZ3NDXT+mAWb1MNvAZu6RAOgyguWC+4UpgsnSV2FWmzem60N62dIkYGbsdJyNYL+OwFAD2PwSbSFvFSj+HEE3byU+VS0M1AWa0IanZDafu9i8DWWDr+F.cpViklYMVdl0XkYViaMyZ7syrFe2Lqw2OEMvQfVOFJtkzrPS6eA+B2m7.
    

    Interesting part:

    inline function onSyncButtonControl(component, value)
    {
    	// set the Sync Mode for the LFO
    	LFOModulator.setAttribute(LFOModulator.TempoSync, value);
    	
    	if(value)
    	{
    		// Switch the knob to tempo sync mode
    		Knob.set("mode", "TempoSync");
    		Knob.set("max", 10);
    	}
    	else
    	{
    		// Switch the knob to frequency mode
    		Knob.set("mode", "Frequency");
    		Knob.set("min", 0.2);
    		Knob.set("max", 50);
    		Knob.set("middlePosition", 5);
    	}
    };
    


  • Mmmh... I entered it but doesn't affect the values or anything.
    I replaced the word 'knob' by my LFO's name [LFOSpeed]

    Is it because the button has a max value set? I erased it but it changed to 0 or 1... 😕



  • Well it still doesn't work...
    Here is an adaptation for Delay, with dealy ms / bpm sync...
    It should work, isn't it?

    const var Delay = Synth.getEffect("Delay");
    inline function onDelaySyncControl(component, value)
    {
    	// set the Sync Mode for the Delay
    	Delay.setAttribute(Delay.TempoSync, value);
    	
    	if(value)
    	{
    		DelaySpeed.set("mode", "TempoSync");
    		DelaySpeed.set("max", 20000);
    	}
    	else
    	{
    		DelaySpeed.set("mode", "Frequency");
    		DelaySpeed.set("min", 0);
    		DelaySpeed.set("max", 1);
    	}
    };
    

    Do you read here anything anormal?



  • Hi,

    First of all; Did you check out the Hise Snippet ? You can simply copy it, make a new file in HISE and add it via File > Replace with Clipboard Content (could actually be named a bit more intuitively). There you can look at Christophs Code. I hope this will sort some things out 🙂
    (also look at the onControl Tab)

    Best, d



  • Well yeah I opened it, it works but not when I insert it in my code, but I'm sure it's about onctrol.
    I have found another solution!

    Add knob, speed LFO knob. When you select 'not sync button' (position 1), the knob has range 0 to 50.
    Until here that's the same as before.
    But if I insert this condition:

    inline function onBUTTONControl(component, value)
    {
    KNOBHERTZ.set("visible", value);
    };
    BUTTON.setControlCallback(onBUTTONControl);
    

    And then add a second knob, with value 0 to 1 for synchro, then add this similar line:

    inline function onBUTTONControl(component, value)
    {
    KNOBSYNC.set("visible", !value); //Inverse value of the other knob
    };
    BUTTON.setControlCallback(onBUTTONControl);
    

    And then it switches btw the two knobs, but we don't see it! 😄

    I go try it, I hope it works 😛


 

1
Online

353
Users

1.1k
Topics

7.5k
Posts