Multi-point envelope as modulator
-
It would be really nice to have an end user editable multi-point envelope - the sort that just loops round its values.
Clearly the first and last point would need to be the same, but it would be nice if the user could add points and set the overall "loop-time" of the envelope.
Products like Absynth have these and they are very very useful. In Kontakt I "emulate" these with a table of values, so I could do this here in HISE but its clunky and "steppy" in a way the Absynth envelopes arnt.
Of course if theres a way to do this already then great - point me at it.
-
Perhaps actually all I need is the LFO modulator (Custom) to be enhanced to allow longer values like say 8 bars instead of just 1 bar...
and whilst I'm here, the steps modulator to move from 16 steps to 128?
-
Hmm I can‘t add more values to the Tempo list (especially at the beginning) because i would break existing values. But if you use the unsynced mode, you can use any arbitrary low frequency (0.1 Hz gives you a 10 second loop, and 1 / (3600*24) will keep you entertained for a whole day.
-
@Christoph-Hart said in Multi-point envelope as modulator:
1 / (3600*24) will keep you entertained for a whole day
-
@Christoph-Hart yeah, but no.
I cant get the freq in unsync-ed mode down below 0.5Hz
I think the only (user sets a shape) approach I can use is the step modulator - so I would really really like this to extend beyond the 16 steps in there right now...so if 16 was the default that wouldnt break anything would it?
-
I cant get the freq in unsync-ed mode down below 0.5Hz
With the knob on the LFO interface yes, but this is just a random range that I picked at some point in the past. The actual frequency limit is much higher (lower) and can be changed using scripting calls:
HiseSnippet 1100.3oc0V0zaaaCFlzIpX1ataEsG5oBkbxAIyyNNwMFCa0we04kOrQURV.1gBZIpXBKQ5HQkVuhBrK679mr+V659Gr8RIYKoUmt3g1CUGL762O7kO7kbnmvj56K7P37mMaJEg+BMiYb431iILNpeGD99ZmP7kTO8HUslMk36SsPX7ZOWo.mecT32e8rVDGB2jlnBgtPvLoGybYxDsCadDywoGwhdFyMk260ruof2V3HB.7rlVEzTh4DxUzSIJ2xogv2qqESJ7LjDI0G7okvZlwXwq3Q9eAymMxgpDphLfDEoF0dLywZ370pOBgWeXxJesnU9izNgYwVnOoC7UgFzShHcO.mKKjVOCjpdaPpmvwRkfaAd3Tva8H38.MCSO1TYhEE19bs9bXywl.s8zvJxWTt+Dq0V.dvkkcISn87.gEQTpdkJ6nuekJa8sEKTr.z78k52P7zOt2fSDVANDXgUU+6zCoDkuhJWnszlfO5INsYTJJVfwcXbptc.2TxDbcAGbTsOaPg7a4qPimvojovcpfC3ZGnhNAzsJV3MEKjOSkK6SkGJkdrQARZorl54QuNfxMmsid0xUz+l3r.nPG9JV3sg3Y9ZGfd64ELD5oPzlaopSLtZSbbFArtR2BtUEH0Z6TgjNfWZqBuoP9Bu8crXauLSwoxg5sLqpZ58dBqDOvcD0adaK1OfljkGdu6FOzLpAkxQAuOmIGLkFKmvTqtDlJJtCq3rw.DbUFxXueLi0vgYQ8PLK0QorcUT3hHYDP0lny62gHIyyGjZnbSodRlZUg6PuAFnDchHuVGp+DoXZnuw6tHbg6d0ecRk6zbVZgWwrjiQXMbWLBMlxtZbx.re84MgAhSMX+BTFMMf9gbIoR022zM6bQ+.aaF3vWpo6GU4M1Xipa.SBemS4vrl4b7zCfTSZiM.jgLmzUml49L4rzU7i+TohQ3US0RiAY1IB+2fbwQ3Xk5O4I+wyTWKzOo6072a9Sjan1BO23M83vebyioWAEJcBOiBj.XVkY5afLbEB4XF+prW17nlGKDS6xIPavJcRZG3KEtyKJB+aZMpWN62MCtb2qqef5uMZGJO47W+iMrGu6fZQx1GcyjF78t97Chj6Uq0SaL7hdmsej7nCk+v1WNTzJ19DuWb51kq06nYQxvO1auH+kKiL.BW34B7OqUeuxYsWavGFYz+l1r1ci1rDpRt6H09ggrlEzCE+4CJ6txRY2KcR1Jg3Eb2OAP7CzFxjliW97ibKAuHzGc7F+lqhZcssolxDvttVuK++9.qU.JuPDHgYBmPfWW.Sl0NMv0.d1oIEPBmSc7Uy9yoteKRthRNbbBkaEJ72vWrwpJYbrwpyMBWJX5IdoYzshpCEeVnF.S7vGzlGdYMHqWc9sfJb6BO07kllpFwWCHe4Qr6JGQsUNh8V4H1ekin9JGwSW4HN38Dg5c8GF.i6iNV.JF1MZJKdwMC30P+CTSIApI
This is actually one of the rare cases of RTFM:
If you do so, you are not limited to the listed range, but be careful or you crash the application when used with wild values.
-
@Christoph-Hart ok great, but my real need is for the added steps in the step modulator....
-
I am doing this actually already in HEXERACT. It works by adding a SliderPack on the UI, assigning it to the LFO and then pass an array into
SliderPack.setValue()
, which resizes the slider pack automatically:HiseSnippet 1755.3oc6X01aZaEE1lDuUnio1s9w8AqHMIhbGBH.NntoQf7RokDSFoMIappxw9BbaL9Rru7hSUkxWl1uj8+aR6Gv14bsAbZouvVqzlT7G.et2y8bdtOm602G6VdLKhuOySRN4QACHRxegR6.Wdu58LotRM1VR9KU12zmS7TCapVv.Seehsjr7J6gMHmbUIw0e7i0LcLcsHyaRR5oLpEoIsOkOu0VUeL0wYWSaxQz9w7tX0FVL25LG1P.OqnjSZfo04lcIGXhtkPQR9y1wlxYds4lbhuj7p0X1As6wF6F5+So9zybHnQdo1PfBadWliMhXrUo58nN1slNu8kfnzZNKrRHKbOk8o1zYsOmMtinC04iHNeHm3cAu7wgWtEBubKBdxwf2pgv6tJss7nC3y6Aw1sUZ3BEpNlPIHNrB8UJwumPoNC7vkmsu44jc8.iYiHS4b4tuZob4V+AoSkNETH74piL8Tatqw9L6gNlvDKu5OnJVdjsKgOq0LqA9nN2o0vPLO.scn1DuVPoDG9TD.AnNq+.lKXjYsX9rVH.Rmh55PcIpcF5ZwoLWUboQ+yX0XSxiAwi4jwZZDtOjImgj0Sm5koSkzgYY5n5RFukmmY.jze4YPLSFum1zKIPGCL87I.GLORHvZvI8OhLgmY80iF2zXk0i3S7FQxDEho82AXAJDubOPkp98SS.XnoAXJoJbMKDCF52KS9rBhVzC7Wr4eVeB+o3jIyzQDywWI3lEygyXm0VGiQDGU2zw4LHtYdS5a8GDiaOfwIFtYVO0KSkL0qR858zoyh5JJPNDuE0Kt616cLrLtC6eFwaZsKxOXQ902Eo712EEeStUHoDyQlaCWJ2X.w8ss0WJhIwcYQfBROWrG6qh1iMuzHQgsSoUhUqjDHGfn7eBAy1jaJk3YJJ4yUnXVu81gu4H6i1He8xG10zXtc6flAmYrO76lW1LnYgON1aT5vspDylCoZSc2Q4JDPqcLwv3Qms4lctXuc1nMbWGie14zcq.cS2H.7rmA.xGWAAYbaDuaf3mh3+fJf60JV+XiG8BL+sE4qXaHzmaro6nmT4RHUQ1P9Ooh9gcunX.DTGL+VUP7TDwS+P6rvUo5fqtH96VAw2+QrGmi1qx1vTsD04TGFxWNUd3Nb6Rzi1nDCoSWA+UBlNFCP95BAeUB4qKLdQsiGVoE3UIju7D0KAeUF4Gei7zZEpbBbaY5oNmxMHvHq.wbTYjeFJpWB9QuN7yHC7VMDe5H9Fg3qlFhOcrdOBiecMHFGp2t6E6MVTe0bgPqSgfN13mfV0vIoNh2IFvzog1Ivu5AvjXBl+Gog0ecDOSLPTqg0Ocb8vDCvroFhO8.HyAFPRapg0ScDuAHd2OzFm+Ah0KZc..oWGRcfAPcGng7gdc1nbAH+X7u1NV7E4KDO.xhvGdWDdec7iquilevjNZ9J3iP9AH4GFwWB9CpW6EwmfSiw066nsM3UDeCqL1VCAU75Qr5Cfzszv5udcv0qU+PT8F1hwK7OV7BsARXjAPBSq2vOiM.PLEOPoHBe39wH7Fa8v6wN13iM+D4KFdDymv0ih0mP8sRErdTF42ggqmQ9rLxe9H+bY35eb96Et+.qOkv0eCB2eI1uE97AwySDOuI74QPR5nkUR5IM1FeNazSrgGdCOPe.wiSwyJj2lLBDbFpRJox1D+y4rAf1wYmSJI+4Kwy2mLSc5UOrZPbop8Hzt8lKp8Jypio17dyc4ppCldRSCaT330EIgm8LCR2JDR2IBRSOnV.naqL6b6XvoJKFbtpS09lSvigT.KJndwG0smOUgTESUrPpBkJKwA8LXvNXXe01bx.eIeyQfzmVnhFNJST5M0YBpcmB33RfQc+Qc.GneMslndRWeJOH96ErD5hy+OSWb5P7pfjbDHeM598Bxc8HWLj3ZEqQ0p3KozX563n9qM9spGCrFn1qezRrHO+lpMIcgDEOfGQf5KnV1J96C0tOiw6Qc6d8W84dUaxXC1w0DnA63Ao9PeNq+zjJI+sJfzhqeMJZqAbUIbqnDVf29F0H2nF4F0H2nF4F0He5Ti75mrsxG1IaK3zrDefm990hC1lcBFdD2G0Cfy8A+cyjVJDO630+Gf36pzhxs5sXINIV.dkj9ji2nOLYZkc5zgXwmC1UU18jOteExEBkehMjCxV12j6QQolfNx1rgdVD.IttDG7C0Hm.+jJg14PaghGhqsv3ufqnNyi1xQcleZmR8Ms7XO2J7CwfaJtknE.Sthu.bRk8Qa0Ye2ED28o1zmaYgDw2AHewinvROhMV5QTboGQokdDkW5QnuziXy2wHvO98VCAEogaKfFZsiPnor7LwqvaR72PXBsxN
-
@Christoph-Hart OH cool _ I'll give this a go then.
-
OK follow up question. I cant seem to get the LFO to retrigger - restart on new note - is that possible with step based LFOs?
-
Turn Legato off?
-
@Christoph-Hart yes that works on everything EXCEPT the LFO applied to gain...
-
What if you put the LFO into a Global Modulation Container and a TimeVariant Global modulator into the gain modulation chain?
-
@Christoph-Hart wha? :-)
-
@Christoph-Hart well that seems to work, but its very very fragile. Everything must be declared in the right order - Global Modulator Containers and their modulators before the TimeVariant Global modulator, everything must be re-named every time you make a change - or the UI wont connect up.
I think at the very least the LFO Modulator needs a call to set the steps to some SliderPack like some of the other elements that use tables...doing it via the UI continues to be something I'm having a lot of problems trusting these days.
-
@Christoph-Hart If I set the LFO wave-selector to sin or anything else, it doesn't go back to the values given by the slider pack, even if I recompile.
Also if I set up something like a noise generator and and lfo modulating the gain, and I add a slider pack which I assign to the LFO modulator in the interface property, it doesn't work.
Do I have to add some code for this or is it supposed to work just by assigning the property in the interface editor?
Thanks,
u