The delay module temposync slider popup
-
When temposync is not enabled, I see a popup showing delay time in ms. When temposync is enabled, I see 1/4, 1/4t, etc in the module itself, but not the popup value on the slider.
How can I have that display change when temposync is toggle? -
@pcs800 There are two methods, both require scripting. The first is to have two knobs, one in tempo sync mode, and one in time mode, both connected to delay, and you just show one of them at a time.
The second method is to use a single knob and dynamically change its properties when the user switches modes.
-
@d-healey yeah I was actually thinking about the double knob method, but thought there was probably a better way. What about a script generated pop-up that changes depending on the tempo sync state?
-
@pcs800 said in The delay module temposync slider popup:
What about a script generated pop-up that changes depending on the tempo sync state?
I haven't seen it done but I don't see why not.
-
@d-healey
What is the property called that will display time mode?
And is the component called "popupText"? -
@pcs800 said in The delay module temposync slider popup:
What is the property called that will display time mode?
"mode"
@pcs800 said in The delay module temposync slider popup:
And is the component called "popupText"?
There is no separate component. There is a
showPopupValue
property for knobs/sliders though. -
@d-healey
Pulling out my hair here. Would you mind taking a look?HiseSnippet 3112.3oc6a8zbaabEGTxH1RxNVIMSmbnGPzjCzs1L7eRhJYZDkHEkXMoDCnrcZyzZuBXI4NBD.A.TxJYbG2Y5gdp8Zuzo4SPm9QHe.RlIyzu.o25Qeomae6t.DKH.onoTcT5DmwYL1ceu2u829duceK.a4XogccsbjRs3gmYikRcS41mY50qRODwTpdUoTKI2bqFJUwFnyj19LajqKVWJUp42kNfTKbMI1edwlaiLPlZ3vljjdnEQC2fzm3E1Zqx2mXXTCoiOjzWXzEKWWyxrhkg0..LyKmUxFocLpKdeDcXyIKsGxsmTpepb97czJkMaoBEVMKBUPGgJlCWXCbm05nsZ1MxpezpYg+aMoTu1N5DOKm1dHOrqTpqssk9Ys6YcpI2.Oj3RNx.SeHmTavx7lqYYnSmhzVkpziXn2JfkbkjRI2JjylmyYukbShNYX6gb2xrNTBkPj.SMWT3MeD3kSDdYEfWBPJk.jtFGRugbaMGhsWXO70x5ldXmNHXcRDJ7wJM2WcS4JVvHL8xzGcLtlC7vPIRu5ZqcWkhYydmOXwEg0JWOkSPNJtmYps8.OOKSEEketRf7cwdUr5aaYBOjdkvAsBHcnvMHlGetBGNnUhZ5FLuxG22UYRRyFTNXTQMs5zHr5XD12xzo04aY5nRz1SVb0wJdiZXr9QP3wDm2ACZDSOMxpJJqfvbDAhwxQPEZmNcvZfD7dRhjZgbP8qWEDJabJHrybINAC6OehShv9K..88dOEZ7y6sGQGuHwzfXhU5LvTyi.9WtXO.0ZrnszTN8NK94KRIggdQYfgjdkS3gcqbWk2gMpOfMH0oYPBdEiNr3pZBi5Yw.ukY6gQPzkLGKizZv50cA5vHXhDYFBsq7gJYyrJSegweTS5qgJHCCJIlNAsCRArYcShGATjKkU6ArJ0FCre+EiQl9JG7HdHxX.N8cFZbpdt28tmRi56e+cppT4f8OT8fFJMNX25UTR2CYpafUNxxqmBDJBOwHApcbuCUtDnBNM2zUjHXNtL1X.NfO39jzI7VddNjiF.XMhOYv34qKjNJoCS0HLUtCqatNi4KvFy9VN8QFjOCqmNzapa7NuiuoFG5TGO5dVhdEpW.pP8RfJZLIpP8hPEMdYoBt.Tuxui8KBBrGimAq6Wc9FyJgbI5cLNBQ8hQHu7dHA6ZLSNHirkyr5iDnlD8PF14r3eLQ.NFWjKBind4vHMlDindQXjFmKiP2aZKWWRWSEM+MCcWLRNs3aUNxtOf1Tmr.pwDXj3hwYCgP2PqLdgTSPnHjaB1Yj0epYlrDpwjPvcZeKO7AlooNMK.rqxnc0oSh84qJCrShcSqSzYRBl1bP+ivNBtrrAB0BEs.K4wWfkX8eZ7iDKLPKS5AgNvFaNtpBk7OGMTL1M8QELTOVoXuteoXsMfCP4HQzoEYGVUhDC0hkMKMNMvik70P3otdIzPDLnNKXPPCKIOz+IhB9x+c5uZyoQAxxMZUa1rsr7dwDs7es7zAa0KJraRd5rsrsfL+g7y1r90kEqoLTGywTvMJOc5PMQcHcd5Hh2WXp8Q0vK1T5A0qh7PzKlvOr.BUrwNdDZTXpp3SHZX90TrfbUr6wdV1vxxv5OkRcctkukukq2G0EyL7MjY+6bROUj5NS7gNDC+6L5mI+4sTO3WrSkCebsCZTcG0m0DpkosG1Aawn.ks2UIWtL1lckNkn60anZ96+tx8vjt8Bu2puzoLMxdHBWd5hsEf49kEf4gksQNfhDz3voFLA56B6gYym1odmXSiVFHh48MsNp.G7P9u1TAbCMvlkiNiJqN5LB.jG9odL.i634eCedVVFdD6QZkV+2gvf215o7bj8Qgyr+v+nbehNTEWKKWBMybnQ+SkoRx12tkk8.PsWWdqirNAKo6f5Vk3f03Brn7Co9Gvlvz3fgbxRSW9uPrrrmHKqOAV1NH6cclaEeISxldRAL3gTmkn3PLHHcGUo.ph0hBqonD7y+nXDbwxBroffRSoej545G8jdWg7itkrJsiQcjh172UdRuwTsKVHTJiupFtdadf4PLOjnGsi3Tcxbqz2t433VaiAcIlsBBJ3oUuMOXgdrLpAkHtshNL9gjlt0k27bNbP3Jxy+zqfqHAbOGrQxorfbMhAvF4ilT40jYu3jIFG.GjYLqUewebrwA8EecLEKewo+8hP+Jmdkl92abzetueR+hGRcLYktRk7eY+r7wSKEqmKg7RD2lXOzHIbRLY0xgIqXv3hksZ4yolfvUprdWAWoBCWnfcJNADefWBKXSG8dSO+WmJmdqYXg7HlcODNQOijusrXShEAj82JP2vQwFOc6WQRvaIsIBXxm1BiNtIyY3ntAuB5aJWL+5kxsQ1rkxJQ7v8E6nTg0KkuXoUE5HueOYAwf+JwJAZt2NkL8ptVoUHYux6qD75xtKsq5l53mBMdubrGqYYXXc5irbN10FoggN5fLbwr9Zi61G.eCrdaxmQ6JalrrNdfcUrF2MWn0pVmZlT6OvE2FPrFtROjoI1vMpQNFeZMjlmkCzbNeQZgz0Ad22rAsRuijlHF8IzpuVYyKLU2eB6B2XcpnjC9++5Ee1HGeV5Ci4vRJK5abqonlZgCK7Lwcq9IWr5.tgL+ckGKTckXgptmR7z58XPTjAKV0E7wwb1LDO+qMGYxWM1juped0g1dXv6vVltMRF4JC9gBReoyP02RGGsXvSBt3vTyKtH7il16b4Gpl6RYYXfK9Al5VMQl.i.gWolaLKLKF85jZfNBa3ecRr+s3NIOugvJxWnMzkjegQruYooovePpD2HoCr8C+jI2PdqSvNDDqIZd0P4yT9kA8EE8mvIg9EkGd3qqXXORN6OQLgTfe3qwB6upg6BiC2ks8w804AJW0.9phUSHVQ829jgNKMrNUoEcGlqXXeMAr+hSRB6KIuG.vqjfecwnTwhCJa4Cd9gsuhA6RBv9aNSL.s3nmPYJP9TBvQmfajKaoUWMaoHG44FS2amHD9O4IBvWQu7n6n9tw1QkpFki3edhYKL9yy8Mm+44RWd1KzI+3daGeoS4Hkyrn78wmcjExQej5XJUb801nvH0wrjbwUyuQohkJjKdYLaTbi0VO+FqJItVP2gmWVyuwurFvdOhN0om9uXPUGDWaXuxCz7Pmf2m8pYiTeAjdADCZpvZrm2iveLW904kOLv0yp+tNH6dDsnklTE2AMvvaKaaLb.cSV0QdNC3ctsArAGnJUf3rXU6r1Fr+TpT102H657xqNzpaWCbS3vDQzL86z0utEJTBJS5gX5Js.VFZMnyZFHu1dmYLhlZsSvpvns21C43EZk7AsuiotfsWKVwQOO1qiR5WVVJ9G86xxv7Z.fpneCxza7xuC5gpD+veoebulvoyNS782co8gIOsP7MjaQKaJYLNWBXTR5+IXz+y49Vx7up0P.dM4Ze7qfuc6k31+57Caxr7vJREsdz6eWfUF4ttD5I3.fBRvde2AsKJ.qCHJktMZMG7mJ50sGIoVoabIXrvinKthM+TSY4l7Jlp0.ZpQ9U2.6aB4XhdcFPaonuRb+myRelBg1XSc1C+G3O9cli9bJ+NyEzonWwqyWUVRtMwDy9vmYqL+X1yJOBRxorK1D6P8oyMgehDeyz9Sjvdp+IRvywdHjJz01xMhhai6SND1twUrQZRKXoikgTr8JP1pD65EaVCljIJSaj2.GVz5V8sFX5Mo05qMcq0myu7hqck6Wdw2CxAGIAyBAXrMousAdGySvFVPKTL9lx96tFzZTe4lVlV18rLIQBpUwPLXWV02gXOwIzVddz5OG1xaUVEafQhNsuaY3.WvF6MYU5OSbQtW5enLItd81xb3xp2W46u6cN++Wu24qjMBdUXi9HMGqGqw+tqn9o2f0BLuMYEKsfbS5yJ4h+Ui0Gxx8XMsnpJlf4mUAKLqBVbVEb0YUv0lUAWeVErz4KHcSnsF.kyvCM8+h33erqgepnrG3NFhmFT3GqGyfrWnRfpY0RHZZnHBwqds1.CiXig13Hii91dnOu1etx670+kulk71AlWz19725us6+7y98aBvDJVm8tRWWtv5YLObs6Wpx161sRlLObmZnrOHWqAEMzNt9tz+lYqps9XxG8neUtGTC92cxjIizvuJ6Q9.4py0LKwfDTJDq7xTo1wDAo.3s9eAgqhPcB
The linking works when "LinkButton" is engaged, but I cannot for the life of me get the 4 knobs to hide/show when "syncButton" (temposync) is clicked.
I have 4 knobs
LDelay_ms
RDelay_ms
LDelay_sync
RDelay_syncLDelay_ms
RDelay_ms
should be visible when synButton is disabled
While
LDelay_sync
RDelay_sync
Should be not visibleAnd vide/versa.
However, it simply doesn't work.
-
@pcs800 You don't need this
const var LDelayParamID = 0; const var RDelayParamID = 1; const var LFeedbackParamID = 2; const var RFeedbackParamID = 3;
HISE already has built in constants - you can find them by right clicking on the module header and selecting Dump parameter ID and values.
Then you can use it like this
Delay1.DelayTimeLeft
.Your sync button isn't triggering the callback - Console.print is your friend here. You have the button connected via processor/parameter ID.
-
@d-healey Thank you! It works now!
-
@d-healey
I have noticed with this particular plugin, that if I have it on a track in a daw, then save the project and re-open it, there's no effect from the plugin until I move one of the knobs. Then it comes right back.
Is there a refresh or some kind of code to put in onit at the top that will "kick it in gear" without the user having to move a knob?Maybe move a knob onit, and then right back to the position it was saved?
-
@pcs800 If the controls are have saveInPreset enabled then they should be triggered automatically.
-
@d-healey Every component in the project has saveInPreset enabled.
-
@pcs800 Which DAWs have you tested? Is it just what's in the snippet you posted earlier, or is there additional stuff?
-
@pcs800 I noticed 2 things in your snippet. 1 is the mix knob is all the way to zero. The other is the delay time is super short.
But assuming that is not the issue it could be related to the nature of the delay. I don't know if this is necessarily true for this particular delay. However, some models are designed to output the difference between the delay time and the input signal. This happens to me in Gen~ all the time where the delayed signal isn't processed until there is a change in the delay time itself.
So you're solution might work, you maybe able to script it to change values with a delayed callback, and then an even later delayed callback to set it back to it's initial value.
I don't recommend this though. I would recommend just building your own delay in scriptnode.
-
I would highly recommend using two controls and hide the one that isn't enabled as this will work much better with the data model - otherwise you have to ensure that when restoring the preset the correct value will be used for the slider.