How do you use synced modules in a project ?



  • I am having massive problems trying to use an lfo and a delay with a synced option .
    When switching between synced and unsynced it does not hold the correct display values.
    It seems to use the correct value for modulation but displays the wrong one.
    Not entirely sure what is going on here ?
    The same thing with the delay , a complete mess.

    So I tried this - using 2 panels and two sliders , with the sync button switching between the panels, so one showing the synced value and one showing the non synced value. This works ...in terms of displaying and retrieving the correct values. This is the closest I have gotten to getting out of this mess.
    This means having 2 callbacks to the same frequency knob on the LFO....so

    This does not save correctly in the preset....Unless I could script which parameter gets saved in the preset ?

    HiseSnippet 1464.3oc0X0saSbDEd1jrTrSMBn7.rJppxPCA6j.zpJTLwIgZ0DhaW9oU8BzjcGGOM6Ni6tyFvfPpuA8pdA20mj9rvs8NdCZOy92Lq8ZGWKfBNRQ5blyYNemu4myY1tAbGRXHO.YT4ACGPPFepo8Plne69XJC0YGjwELO.GJHAVIp1d3.bXHwEYXr38jJLprDJ92a1ZarGl4PTpPnGwoNj8o9TgRa2VeG0yaOrK4ATeMq2rUGGNqM2iGA3YQyFnAXmSvGStOVZ1BlHiysqKUvCrEXAIDrYat6P697mxRr+QzP5QdDoPSjMLQIpQs6S8b6lkqgHjwRcUY9hIY9ULOf5Ry0qXfKFOfkxCcNvXghPZoBPp4jfzdbOW4DLA3YnAukRf2kLscBnCDpQjXaYyNLXwoGFnccXkXKZg+xzrMGrfIVyGeBYu.PH2i52pQiUstYiFW8apUsVUf7CEVmhCr1euCOf6F4ggDqo0crh2Rr1wDQt15q.1XoLZE4TnlftLOoeYgF7rM2e.mAB0WQN331u9zre8QrG.jyDsWN3H1+PVHnz1yMXhdoLojXMUOs08qfmOkJb5usfMYWyrH0W0eTlGkQr5EwbDTNyhyT.TNWAbu5NYSzpP37hHWsV0WTqZkBqdqERD2UHBnGEIH0KNzdAjeMhvbFtZh6.DdYLLNaFRNsovnM1y6H3fZ8RfXwrZ7bx9+2Lx9LxG6ImMkmKusxiGP.+kSXl+PjqHOGrVHb0RVTZZc8Bi1rvnZdd1rvzXfwx9absRy+r8xmAILVZLkb.xvYOMTmklPtLB.ky40tgbB0xh6yEjCY0uZ0WTsR0WV0Zzg50qzwRmRORPoCKKzELMGqyh7OhDjwTYFB29Wr7xxyV4EmDFRyPNqCiJNb.IUVU.RNVRVmMZCTdxpqRki5ZiSsRLSoZ75anzUPYg3TyASEw04tPZcNaOpKI.Qck8jntXAESPplFVoEZFlgpl1k4+e9pW82aMQ+2NRH3rX+OWr+iF62LS9trY9FuQm.32C6rCVfkk7S4DfmFPBDT4pswNjSg9mRZ.nh4NjvSD7AwjV51d.ZIAtVV6AXFwKEyxiSnmoB2VsFpDvsdJ0UzGYXZ7RPrOgdbegT51nDzjGgkmsEFs.8E5A57p.cRg.0DjFfCfXnmNIn1m6RjTW9EgHerV.VuEzR5.a5yKrZ3Scc8Hc4gT4gqQ1ijGgOYpD15Z4wqc0xCKMBKpPdrAHcZ14PniPctq1rrk7Y5IwPcgIDwMmHysdNykWJD4q2k9q2p.QtiFQZZ1Xslnvnd8nOSJY8sOGMIJ8yKPom6rN3nhXKa88F2Qwo+RgLbUT7sDyPDzOdoByu885Kcdpv7GiszgFuWani+rZw5OCP9dmzAjjgd+1xdpY.IUX06+vaCZT5aCZV1cmyHbujYWIsTNdWnD7Bm5eWi2zWZUyb2d8HNBEXWxbue787ypNe96co9C7H2S8d2DEVRMMmx6cgCODObAB7wI6xxT7SsJ4EwcXmBWu2k6gCFk9WbZuts4b951ouGQlRVui1SOmKLWHAvllPKwoG7J9VyyFjp69znW4GbniZ8q0u25w3SI83A9o0WyceexwPfz0nJCooz1myE8oriK9YLtRq847A6xv.M3pae293PYOUPyo53pcTnf6mgk3uygMbmbbaAF+r4s1bM3WuuT9+utM7uMN7si7XG2m+8aKLi629r3Ux7kL4Z5G32hlf378SeDf3KaFesj0GMEptrY70le7.3KZB8L9A.b+Adj.t84.rHHtgs6G4ayiBbH.TYPSsgxNbVPdCShbCorDP1Dlarv+.+RGroT1HcvlYC9dIF9Xm.9SbRdIk75jyGqAxaV7G9sh4ARYqlYOeR1nZCYqozm33Had35.+TtOqOG9rwb3ylygO2bN74VygO2dN74qlpOxuG9cifpVI6+AEc2ModkQdcOiEQ+KfeOLZB
    
    

    This method also fails , as it just displays the same problem as on the modulator itself.

    HiseSnippet 1561.3oc2X8taaTDD+NaeU3q3VJTj3imrPHGQH0tMs.sBkz3DWBM+wJWRAoJT6l6VGuJ2s6wc6kV2pHwC.u.vaBO.7A9FOJ8M.lYu+ZpqiwjRqvJxx6ryryu82L6ryl9gBGZTjHTSu99iBnZ5uqg8HtbX2gDFWay00zujw1jHIMzJQzZiBHQQTWMc8p2CEnWull5yKVYMhGg6PKDoo8.AygtEymIKj93UuOyyqGwktOyuj1Ku5lNBdWgmHFvSUi1ZADmiIGQ2gfpUwPS+Ba3xjhPaIQRizzqslvcj8PwS3I5+.VD6POJNnilMrPIh6I7bQDiR05Nj441OaeGoooazufEplvBW0XalKKWdAa7dpIrJrnLenWYZvqyYCu1SBd5kfWsD3cECamPVfrXFDauepzWA5RlTqxN0LLAdNRZcBIz59bwgVekUWAWR4xkHttnjVMwuatnUa3uEtSCSyqcMqG9M16tixfu2LS+HJBh.ZnjQi5EJ7Qcxs94MLsrZ5KboMusUydgzeHlxcF0bQkbHqJvl8Lbt1K0IQlKc.I1S9.hWrxlaloa7fArmhRr95m0rg4oKbGyR6hs5s61B2XOBv9vtQkBuzQTYtvVMAUrxG1bbyA8cVKVJE7wohDYsZVLOro5rLPJc.VwrgIi6w3TqAwbGICrVvKTEWmPgWKGgeffCq3hfufs0BMLAdoNPn.4YIGRUtGwFrP.7QI.XAUJuqPl9tRYH6vXIs0XyrOEb.tFYN.hW0g+XCZk4v5nGQWZ+DlzYnxGGiQdovRhlaEgX.iTnhX3CcXqjX2hVMy8QS0pWVCxSalxG0OElh5EQmtCGjkGLE+Ujq7R9igAg1Kc8ICja19kMv00i1WDwvPDpRJTOETrgYQ.CUOMn0k34cHT7o0DBn35WJfuiPR2k2ZAymaV27TSq+9TCFLw4RWLOZ3DmFqLFNMCawi8OjFlExUJVORQ1oSs.DD.hvgDQUGZuML.ELqoU4gf7zJz3CCojiwecJvg2AvFTTZ7pdWb1p54jbLqjhB9lblb2.Z93DtMSRasbJsrnBlrrTEANA0JDM8aEzRKC.EfqjZJnpTU98RoEZs8XtzPMFrHWv.oXMEQkdi1iGL3SVU6UYaRJkxV0Uto4XisBpKU0NXy0IRBdQPJjJJ3BxVmdBbCax0B0MVmFcrTDnvbZUGvkmEpeJbGnN5sQY+HRNBiXoyO9InBvc0UyJgix9keF+7qq3mzTPxveeE3XIL7BloMDjTHG7iATHWa.yyOBx9B1zGtmGuB6.HaM8R.qnigkBJvdL0cegpA.r7.jgYjWNRq7EFkQlVIBn1rQ8JZ3mxnAEfe4qdgF.xNgTtq.rUnzIPJp78tahAMf5FUNp9OnUg1ybmLyJbuhQerNwjwakIfW7PvqY7l13UCiMFLf5HK.aMide271k07AkKk.kKZXC2sqZkPAjOTM15aImPstGkSCQRcJ8C+Gm+8CuqiD799gDdTfHZrE1l5y1Gx2iJKDNLgUw2CCxkk2UPBm3TuXkdvdbh1XSjwgprk65Kh4xwxNp95nw2ZuA5K+7+v1+9ZCUmM17Ld5P8LLZy7C7navOg5A2ijVPX8jxn4RKCxsEbQvPAm4TNluGEpaezQzvxBm39A5u.Zkpbw48ndTR472Od0sf7NR31p56utohoEt9HiD3ZgmEs9+QI8pyTI8yGt8xIfzv.5kTgrKaL1KulJt9wCN32VYMVfviDhWEk2BZ4jGrP4l7x6DrjL7xI+ztfxiHaQOBbYYIE8MTRnsuPHGx3GMd42qt5VBQvFbBPBtk0u+PH2EZBEZcdrhpwQRgeFVTsqXCsGoZdS+gF2Z4kfOC9T76urK70M187Y74XfrxLls8ApXZdzCituke9HAw44Sukf32zM8rmHVB48aSfR4X2u6D6aCMa3PAjv4vK4wFgqf41Iiam89.aJ2UM3OgOoS1AGqmNYmrI+OwG9DmPwibRdpElH+NJIv9lq9WGV2XabrUmrmWYXzdo136ZXOxwAo6OC3mIay0mCatwbXyxygM2bNr4VygMe9bXyWLUavt0taLTuL4xJPP+MRpTpmWwUup1eAX+SETA
    

    sync2.gif

    
    const var Knob = Content.addKnob("Knob", 0, 0);
    
    // [JSON Knob]
    Content.setPropertiesFromJSON("Knob", {
      "mode": "Frequency",
      "stepSize": 0.1,
      "defaultValue": "5",
      "suffix": " Hz"
    });
    
    const var LFOModulator = Synth.getModulator("LFO Modulator");
    
    const var SyncButton = Content.addButton("SyncButton", 140, 10);
    
    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);
    	}
    };
    
    SyncButton.setControlCallback(onSyncButtonControl);
    
    

    Same thing with the delay ?

    HiseSnippet 1688.3oc2X80aaTDD+tjbkZWRKEJR73IKdvQTRsaRKPiPwM+wsAhSrxkTPpB0t4t0wqxc6db2do0sJR7HOfDOWdhuF7Af2Qph2guA8a.Lyd+mb0MMjVpvJx06L6r6u82L6Ly19ABaZXnHPSu11i7oZ5usg0Htb3xCILt1ZqnoedidjPIMvLVzRi7IggTGMc8IuEJPu1TZpOOawkHtDtMMWjl1cDLa55LOlLW5867kLW2tDG51LuByd9NqYK3KKbEQ.dlznklOwdexdzMH3zlvPS+Lq5vjh.KIQRC0zmZIgyHqghGvim+cXgrcco3f1ZVvBEKtqv0AQLJUa4gLWm9om6PMMci94rvjwrvkL5wbXYxyYi2QovL2hh7g9DiCdsewvqUUvSu.7lJFdWzvxNf4Ky0fX6cSj9bPWrRsIbmxnNvygRyCHAleIWrq4matrfKob4rDGGTRyF32MtrYK3uYVX550uxULu6WXs4FJC9l5oyOjhfvmFHYzvtABObNYV+3oqaZ1vS3PabCyFcCneaDkaOpwkUxgnJeK1iPcslscrLG5.Rjq7ND2HkMWKctQCFvdHJw71Opwz0OblEPLkeNVu6l8DNQtDf+gyiJHd18nxLgMa.SwLaXCXAxsdEpKYT6h1s5fATaYyFwZZfb.vB4V.SzdoHoTvKydwxZ1HWOvCsmG3w1.QBqAi6x3TyAQbaICrVvymJtNAB2l1BOeAGVwKC6EvDyLccfJqA9.fuMkCopsGOLvBAmWTBb5foDCWzsbSoLfsajj1LQ11TXQQ6RWT3HUC9iMnY5lTC2Ebard.SZOTst6iAHRgoDM2LD2WzghSD8x3V0L1EeYyFY6ghvJMCxCajvA0NDTQcCoieCGjFtLt8CRfbzsho37pQvUaAeNpENNtz9hPF5RT3rUJROT44y8QnEI9okItt6BonZVgOD2hB93MDR5l7lyT+w0qU+v5l+SUCFTotjEykFToZ73GLNCaxi71kFj5wUSrVnhqSTMC3C.tvlDRUWsuAL.ELtHI0+f685zAYgnKfFsa.krO9qCAtaA.SPJqx4DO2wKmnc7MpBSTvWiyja5SyFGyooRZokQkEEkyfEkpHtJlVtnwWyPK4FOjddhDSgoJUImOeRZXKWlCMPiAKxYLPpUSQTI0694m7m9czdd1FGJorUUPNI1pzJD+Ym0VgHIXYhDHkmNFjsB8.n9abQiZFqPC2WJ7UXNIACrkuHT+PnBoNtUiR+QnbD5wRzW9xSF357icRSvix9omfe9kE8TsLbF8D3CWJwglaDOLNMOrOFPZdsALWuPH1yeMOnK.r.2NPTZRIByv8gkBxktO0Yagp8.Lq.BKUaEEqjjyXWB47ry9TGOVWw.+PJCTGWmiVSF5LHs1Rw1EvdjRTfrSwBxqg9Kf0FUrGpWhdHZcraw43B2KZzGSMTMdmnB7hw+uhwaRGYSaDWQNGrSYz8qeM2904hwxaYnx.pPwYi+c6RHoTBxhW3yTrEaugoZt+N+trSWJ0AqkTvhNyM2SWLUdQCTJVW7f9vFhMUk4O99m141riHUakN8vKUoC+iEyJSWxSNYY5axiG8Ug2aKQjjw2qGAt6h2c1HxyB5o2lBNONGp7iWil.yhFOtUZhEKJ2QM3ufOIJaii0ST1NUYwHjyG6UNmgEzXkpANkm48UiM+JxATyaQ4z.LVeLue42N8e+xl1RX22NfvC8EgkVXKpGaaHMTXQgP5MzysEd2qn7kEjfJU8rE6BmwJswhHiBTWhuomHhKGmq9k9lRkuiZp+CdG0oeNv+8orOwWbJkqoVJFsXd9tzU4GPcgJ6I4oWIt5VlzhfrmfK7GJ3rRWu2hB2F2aOZPQgUddf98fDNEqYtE0kRJF+9gcVGh6HA8TUbeUSEiyc8AFwv0DuKZ9+iJsSdrpzd5vsWHFjFFv6GUH6BFkdm7Xw02syN+5hKw7Etj.rCgrW3WL3ASTtFu3IASICOa0KouzLOx5z8fsrnjJJT8rEs7DB4Pn.S4zuWpy5Bg+pbBPBNEme+gPrK7r.3oLkRpFEJEdoXQ0.oEzvppcZ86Zb84mE9L3ivu+rkgulaySmwmhNxINlQaumxml48Pu6a32OhQbV7zaHH9URunuDP40QiUuN1COhcf3d1wO9ECjOqRBbt4p+qdqYzCGa1N8AuFFslsE9RS18rsQ59iaqoUsMW8DXybm.al+DXy0NA1b8SfMexIvlOcr1fcqcyHHeYbwJPP+UiyTpmkwUeRs+FDPlAZG
    

    In any event , someone must have used a synced/unsynced lfo/delay in a project and made it work .
    I am at a complete loss as to how this can work ?
    If anyone could explain that would be super helpful as this is driving me a bit mad 😛

    sync.gif



  • This post is deleted!


  • @lalalandsynth - I've already told you how to do this in the other thread,

    in the syncButton control call back:

    • check the value
    • if == 0 then hide the SyncKnob and show the UnSyncKnob
      change the mode to "frequency"
      then call UnSyncKnob.changed();
    • if == 1 then show the SyncKnob and hide the UnSyncKnob
      change the mode to "TempoSync"
      then call SyncKnob.changed();

    in SyncKnob callback:

    • check the value of syncButton
    • if == 1 then do something
    • else do nothing

    in UnSyncKnob

    • check the value of SyncButton
    • if == 0 then do something
    • else do nothing

    put SyncButton, SyncKnob and UnSyncKnob in your preset.



  • @Lindon said in How do you use synced modules in a project ?:

    then call UnSyncKnob.changed();

    Well,its not for lack of effort , I spent hours on this yesterday 🙂
    I guess I am missing something.
    I initially thought it would be enough to put each slider in a panel , and switch between them.
    Seems like its more then that .




  • @Lindon This works fine for a modulator but not for a delay.
    Actually it works for a delay in a test project but not in a larger project...not the preset recalling.

    inline function ontremoloFreqControl(component, value)
    {
        LFO1.setAttribute(LFO1.Frequency, value);
    }
    Content.getComponent("tremoloFreq").setControlCallback(ontremoloFreqControl);
    
    
    
    
    inline function onLFO1SyncControl(component, value)
    {
      LFO1.setAttribute(LFO1.TempoSync, value);
      
    	if(value)
    	{
    		// Switch the knob to tempo sync mode
    		tremoloFreq.set("mode", "TempoSync");
    		tremoloFreq.set("min", 0);
    		tremoloFreq.set("max", 18);
    		tremoloFreq.set("stepSize", 1);
    		tremoloFreq.set("middlePosition", 9);
    
    	}
    	else
    	{
    		// Switch the knob to frequency mode
    		tremoloFreq.set("mode", "Frequency");
    		tremoloFreq.set("min", 0.5);
    		tremoloFreq.set("max", 20);
    		tremoloFreq.set("middlePosition", 3);
    		tremoloFreq.set("stepSize", 0.01);
    
    	}
    	
    	tremoloFreq.setValue(LFO1.getAttribute(LFO1.Frequency));
    	
    }
    
    Content.getComponent("LFO1Sync").setControlCallback(onLFO1SyncControl);
    


  • @lalalandsynth - please re-read my solution above - have you tried that approach? The approach you keep posting about isnt anywhere near what works for me.



  • @Lindon Yes, I have this , that I assumed would work . This switches the knobs in a panel , one is set at tempo sync, and one as time in properties.

    Your explanation is a bit complicated for me to be honest , such a noob 😛

    I guess I am not sure how to implement this
    "use two UI knobs - one set to Tempo sync and one to Hz, when the user switches issue the mode change and a element.changed() command"

    This is my basic panel switching .

    HiseSnippet 1446.3oc0XstaSbDEd1jLTrAi.JO.qhppLTHXGtzVUgxRbhAWRHtrboWTEZxtiiGwty3t63.FDR7Fzey+30n+opO.7Pvi.uAsmYuNquW2zVvQJRyYNm47c9NyLmyrsCDNzvPQ.xnz8GzihLNI1d.W1sQWBiiZsEx3T3cIgRZfYrnMGziDFRcQFFKeKk.iRqfh989M1j3Q3NzbQHzCELG5NLelLWZaq6v77ZRbo2m4qo8UsZ4H3MDdh9.dVFWC0i37DxAz6RTpsDFYbrscYRQfsjHogHiU1T3Nvtq3o7X8eHKjsuGUMnNxFVnXwMEdtJDqjhZzk441NMtCQvpzNmEVNlENGdWlKKSdNab5nILysPmOLVZZvq9BBOCM3sRL7NC11If0SlOiBam.2hCIpNDHEnCqXcQK86XbCAnAWtlO4IzlAvfLKpd8Z0tn40pU67eSkxUJCIhPo4gj.ycZt2tB29dDHvpadCynsGqc.UlIs5pfNl4JspZIxWf1bOkcotFrrgvumfCCptpZxQ0e8oo+5CoO.HmIpuZxgz+A7PPnsmavDsJWkw3qoZostcEr7oLoS2Mk7IaZpFI1l+Gi6w3TyN84NRlfaJ34.TsVABupNoKzEA240md9JkeQkxkJj8VKjJuoTFv1uujVs3TMCn+ReJ2YvEiMGfvKifwrYH0xl.iFDOu8gCsUGCDKFUiFS1++FQ1yHdrmbzL9X4nJNtOErWsfo1Cdtj5bvZgvUKodot4kJLa8BypY4rYgow.iD8W9BiM9S2KOCRXjvXJw.DgyeXjeVZBwxP.TslW3xpETKJtqPR2iW87keQ4RkeYYygmpSmwNWxR5QCF6zphdASyvp7996SCRYpTEga+KVdAOekWbhYHMEE7VblbudT9jJ5fRnUU0wDTApJiJ9bpjhO1dLWZ.h4pZZH+zNJB04U0OmEZNVgxX6wY+6d6aO4jsey9RofGY+whreXe+9MlGaOANa2vvK.76As1hHIp5vIbBvS8nARlJEXrE8PnAm3pxkvaQCehTzKhzR1KBPK1wURqYS3TuDLq1iidVt61vZP9.h0SYtxtYBrdrUWJ6ft4cR8p6XoPUlmNw7kfzb3mq6viOjC+iebDGdaqdj.vW5gWbT3KboJpL61JjOQyQqaA8P1yl87BYGelqqGssHjoNAjOyppbdlG9joRfqqEOuyUKdLGg.+4QhmVVGldnAZeSmKqLOaUeldvLPevr7L5am.StdFSlU+B4q2l861n.wt0vD6ad8q+sMB62oCCzBiMu8yQShl+rBz7wl0gqbuZYquu4FCwyuZj8MnlyomzOJl6tW8c5oUugb2a1eLoUznMMCstmVTUued0iXRlPQN5MNqZNlCjVgL6eil7qM2M4Ouv8L31J5Y73cowfW3dq+swaxSlpf2tSGpiLGrqfa98GsuOp1rdezwydDKyumG8V4OhMVfoRR8o7HV3.E0iTf.eTgcanevZLOysE+PnjPagGIXX5e4hw7xyWLOimoN88HpPx7exd5EGj5IiSECRLF5mM4vVwGJNafkeGnV+DpubPq7bl0uZ8HxgzNh.+j5vYluC8.vQ5RxKOoIz1WHjcY7CJ98HNm0NBQus4DHzc00ucWRnp6OnyR8Tci9gRgeJVh9fE1vcyQsOX7S3qe00fec9B0++5Fv+txdGMiQGcoukly8XeZTlLKkoxoefeyYLhy1O8Q.hOKN5pHyOZJNcVbzUke7.3SigdI+..t2SzWB29rKQFD0z1c66aK5G3PAnxglcUu0yXI0MLwiqoFq.jMk6FM3OgeISVWM1HYx5oS9ehO7INAhG6D+hK00IGORBD27nufaI7tpwl0SelEFWasZp1SYO1wQ0vvk.9Y71r9BXyUV.at5BXy0V.at9BXyWt.17US0F0Gy9l8gpVw6+AAs2NtdkQVcOikQ+ELr9nT
    

    And this is my non working attempt at implementing what you said ...

    HiseSnippet 1645.3oc0YslbaaCDFz1z0RINSRZN.b7O5HO0wVx4QSZmLgwxVoJwOTKyi9X5jAlDxBio.TIgbhZFOStA8JziROJ8+8O4FztfOAEonTUSZSjs0LD6tX+1uEbwB3NdbahuO2CoU4IiFPPZWT2ZDSzqYOLkgZuKR6R5Gf8EDOivg1Yz.ruOwAoos3CkCnUYITvm2d+cvtXlMIcHD5YbpMYeZepHczNlOl551B6PdBsuh12zrsMm0j6xGB3YQ85nAX6SwmPNDKUaAcj1x64PEbOKAVP7QZKsC2YjUO9KYg5+LpO8XWh7gFHKXhBGtE20QhX4nnl8ntNchiaeDLKcRYgECYgqoe.0glLdJab4.AFoVnxGZKTF7ZnBu5yN7zTf2Rgv6J5V1dzAhTIRrcA81LHQ0ECo.UXEpKZg+rhdSNnASrYe7ojVdvCIVT610qugwspWe8uZ0pqVERD9BiyvdF625nC3NCcwPf0v3dFAKO17DhHYzZqA5XjpzZxoHcB5vbk1E6Zvxl79C3L3gZqIElW+sKS+sGSe.P1STeovwz+oLeXPKWGuIZUpJE3qRszR0tLV9Rpvt2NB1jMMViHay9SrM9DYVe.wSPI9PJr+irN5PE+tgwqWspgwZ84Nj09Ri0dBAbP.KrQv3vqxCrn+hTVCXjyC80TlcE9H27CuBW5TuZUJykxHFcGxrETNyfyj3Q5ROtaM6XFXCfmbGRVe0pfGpjYYmDWOPH7nGOTPpkUTR.FaO30JxkIa5Cu4E6kFFWOq3FYDmJB9k1sVLRpHgRks1JJ8YH5QLNkwO1PvMDRGaHIFCIYHULNKHwasPJZC0TPfGFWKJCTpdghvuBD03NEIKgrAEJdZcbbIc39TImCZc2Ps9GEOo48xinb5oFS4DlIpFWZ93J+jWVjkvB18vrSHN0BEt0VJSSVQxknUNG9i35SJOk20i7yCIL6QSkgZEqY4Lzl2pLNZ65yHCbioxk02rdios.HezYMSwlUYQlUIwk0LEUVyZLMwL7DWUjj5geyRdOSV.XrJMmL4hPITx5QEQNOSY0h1SR5knxOMwttGCs5TKSkQ0cAxWBMEtuqJjlDCajTMrrnPcOxhikbPL69ZEusv+iQj0ThGq7QiB3OjKHGwpsd0WWsR0yqZLtntcKTVzj4R7JTrb6UuxLrFaX+iIdwLTrhPqhY6EUex8hp1prcHynnHm0lQEGMfvlTGpnH5T1JcDp.UEAcpdonNUsboNDODEZHspdLQhBvb5A.VwDMC1eQ8zEViOCnIOC6LTH3rfYX4.DLtsu89yhsWPOoOsBlfm1dWr.KaZOhSR6lBFaWxYvogBaguh9tD+SE7AAjVzZP.ZgNd03F7wLhaDlkMsfdUp6tu4nzGvluj5H5kLf4KL6QnmzK8XWu4wlRTk3oKLKIHE28Yptakwb2u+C4b2WaN.6AdRM3BiA49HRhLoKBDrs.X3xWMJIlcmfTutlYb0eo1ZwmwTwCeRoz21Jwye3nDOF4nueJW7z17r3WYfS5MaLYlkpuRckxH0GlluQOZBb41uO4xkm16OoAjok5hi6MFY9lbKNPsLmMOo91Vp6dy2nl6bGyc+1wEj6P4ODMbT93sJTOeu7RMhDHIL0CRKOrLCHxLIu2KG5eVg6Uz6Homhw6BEfWnzz6a7FcEJqpuW2tDaQJXWRu02Mu2WRwWmS8oceIqjboVz9CbIOL8RsBGvPNRiRtTKDZWhKNCA97Lq1PeuYAW6Ua1YPU+NbWr23z+hYi4EmsXdJWaU4qQjgjw+l0zyOHUSFWJDj55PWZQurk8hilNvR5nScKe4MI1NMmY9qlOGeFoK2qezVsIluO4DvQpijV2TYPq9btnGkcR16m7Zl6y4C1iggP2QU+N8v9xF7ftFUS0MG5K38iwRvEXZA0bC5PP6G0u8M2D9z8ykee2lvW23n2MOid2k9VXFWi8oAYxjTlLm9AdkyPDmrd5i.DeU8fRQFezr4zU0CJU9wCfurNzv3G.v8a4CEP0mCvvwZgtdzObXeK9POaB.UFzQq73bZKHqvD9bc4yR.YQXNAO7WvmHgMjOqEIrQrv+S7QersG+E1gGpRVNYkfQf3lE7ezoh9AxmMZDeRJc85aVW1xJ8E11xFFtNvOEay1ygM2XNr4lygM2ZNr41ygMewbXycJ0F4+bqGLD10Jb8OLPm8B2uRKYeOsEQ+MGywsZA
    


  • @lalalandsynth

    HiseSnippet 1545.3oc0Y0ubSaDD+jSDDaHL.kG.M4O53Lklwl.z1oSlHhSL31DhGT.5GSG5EoSw2fzctRmB3xjY3O6+wqDuC7BvaP4Ins6oOrNYK+QcgNfxLw41a+c6ua202sqR2.tMILjGfzpdzf9Dj1E0sFvD8Z0CSYnN6hztj9A3PAIvHQzNC5iCCINHMsktqTfV0kQwOua6cvdXlMIWDB8HN0lrO0mJxk1076oddswNjin9JZeSyN1bVKtGOB3yR5MP8w1OEeB49XoZUzQZmaOGpfGXIvBRHRa4c3NCr5weFKQ+GQCoG6QjCZhrfEJQbatmijwRonV8ndNcy12gHXU5l6EVJwKbM8CnNzgxy8FWNdBibDp9CsJSidMUoWi4mdZJza4D5cEcK6.ZeQ9LRtcA8NLHP4hgPfJsRzEU4O00awAMXhM7wOkzN.FLDQ8a2nw0MtUiFq+sqVa0ZPfHTXbJNvX+1Gd.2IxCCarlFaYDmdrwIDwPo0WCzwHWo0FcI.H1.xLiCXaw86yYvf5qImLFQQ8s7bBlJFoBif6grYhLWkwX4tDO7fB6v8bcI1.njYRAj+Ck4QYDC2HlsfxYF730VZ2.tWc6LidcX08hHquZsWHQUMY01HjHtiPDPONRPpmJ6HBfQtHWOABXvpT25Y3qBKfQ5S9FYiPHCKyptXuvXbY5UpVhfnxUxtGlcBwodxVs5YDX0lsQm3xMUlorXplsZUogiM+p0NKlGSKwQ5GSMQKrm2wvIF0KDHTiZiGwdHKLkDyJtIoL00ntbokL4QxIqutwVaYzX8joA8pJ+bJQ33OjG6sOwUnDkmWXOfdROEbRXmMc2jZFe4Nqw7AESzKOMe1trpSva07iYu0r7UVi6oTbL2mKHGxpudsWTqZsypYL5TttkNW5h4QBJcZ4NIXZ.qyh7OlDj48yTDttn38Q5S99H0qKsS7LJJxYcXTwg8IrIcKEJ0cJuNMkUfph3aqtT5sUVdTGR.h5HqxHOoCEyZkhFLQSZE1IRH3r3U3bx5TrGE661FMGVult0Dr8mahlS1OgU3kGYhdXmcwBr7l6TmB3n5SBDTYLPaWxoPIQI2iWUeWR3SE79wdszjPj14Sr7pY2xiYDuzMcWl2MPOen4dqi4fgCLvlOi5H5MTf4uX1iH+JPN85XdZVPGpWQSwnWX9BVOW0YOPcvrrM56L6iC.aoXzzMjO2gHqeY38eHerhgtgoO0wwizkGRkY94yrlITZZeK5uOZNPtElUFTtcLsTblnsFwY9xeZrMTaSUKUadx2xs1qefh0L+0Qr1qGyZu7dle.cSWb9R1m.8eq67S+yoGW0uJy+i2TBy+q+Fd19Ukx7vHWWJfWW2vODojQiFuVYnh8rJSUKiW16R5DRCpVurrlXFPjBY2ePpsedo6Uz6RE18JmuUJguvgOen4aZmRqpmTkbNYWVu8OrnsEUdWaMJqsnJJbYkg8tR866QtaduqIBLjRZNkdWQn3ZFTE73BIznezrjta6vNENWuK2CGLp6eoh64klu87L5Nc54Hxsjw+kb5klubjYzi5kRHotNzUX5W1J1e3rIV6.xuEQX1JBWwT9BC5jGyLek4iwmRb4A9oWlND99jS.CoJI+DSEgV9btnGkcRwWCw0L2my6uGCCacGU861CGJqgCJLTMT2JJTv8y3R76ovBNyJtF.seV+12bC3w8Kj+9aZA+ZyCe+LF8uH7MibrJyYN1mEGIGFxjwzOxO4LgwCym9DfwWUO9nHiOYtb5p5wGU9oCgurNTQ8GAz8A7HAb5yAXn8UYwL2Ox2hGEXS.pxfR9kcroUQdBSx3FxwRBYQXNwCjkHkNYS4XszIalMopK4BItjymjeE6IVI4uKdhbgltUaMpXa0pyzlPbjMHqfvbyMey1YxUADOw97m0ELn76kpUAdO5XRQ6Zd.UoH22V9Y4u2tu8+knx+G1vGaGvehcR2rxC4WIVBruYwuN8p5GHGazLqCVc8Faz.AEhSehssrLtuDxZKGyMV.Lat.Xt4Bf4VK.lau.X9pE.yWOULx+yB2IBpkH4TIPP28RphPaX0HPKN+yB+sNK
    


  • @Lindon wow...I was way off , understandably so , 0.001 % programming skills !

    Thanks mate , this was driving me a bit mad!
    Seriously ...thanks !

    btw> did not know about this if (Sync.getValue() == 1) , very nice 😛



  • @lalalandsynth no problem.

    Clearly this allows the user to decide on two completely arbitrary values (one for each knob) - so (say) turning off sync and setting the delay time to 50 ms, then turning it on and setting the delay time to 1/2 will make the delay flip-flop between these two values - one very short and one very long. But in the end we rationalised it that the user would probably have two very different scenarios for using Sync-ed and Unsync-ed so that was OK...



  • @Lindon Yes , That makes sense , although I have seen where the unsynced value approximates the synced one.
    But this way is fine.

    Thanks again mate ! Onwards ! 😉



  • @lalalandsynth - yeah you could do the maths - but its a pain...


Log in to reply
 

17
Online

805
Users

3.0k
Topics

25.5k
Posts