Global pitch modulator problem
-
I've modified my previous script to be more useful now. It can set a CC to control the "intensity" and has a table to shape the CC response curve. The only thing I don't know how to do is add a smoothing value, I don't know if it's necessary though anyway.
HiseSnippet 1753.3oc4Y0sSbaDEdL65jvlrjllToppJUKTakIkf1kPf1FEwFLPJJ7mXARk5EoC1yt6HrmYq8rTnQ4YH20qyE8Mnu.Q8InOB8QHW2aZOiG60igkkcSH8mDqDD97yLemely4LlMC4tjnHdHxXzsOpMAYbEy5GwDsbZgoLzJKhLFybMbjfDZoHsvQswQQDOjgQgGHIXLZQT7yKmeArOl4RxHgP6xotjUoATQF0Mq8Ppu+xXOx1z.Momo1JtblC2m2AvSAyJn1X28wMIqikhMhIx3BK4QE7v5BrfDgLJt.26n5s3+HSI+tzH5d9D4KUQ0gERQdYtumDwRpHmVTeuMSs6HDrnal4EJn7B2vbMpGsK8Luw6EyvJSCc+gwH8CdUOa3UoWvyPCdEUv6Zl0cCosEYbjX65ITyP2z4fmhKZjmUzzgyDDlXpHh3QTOQK6YqTYh6VtjF8ugPa1RXemX5kKEmULkGoAIzA66uGDYhrEgcHJ1PfKRXc.NzZ0k2v5dVJwaRDqw853iAmh83RNcecbodYZEv8NEsdfOeOrukLUwZWbHEyDGaUzWm8Y6sIU31BVrTaA648PFeO6wS4M9jVUf+IUMkjzfsGWPNT.LGWI0I4GP877IaxinBJmMdOVisvrlD6aUc5Isj+uxTUp1CDthDXvhbzofxt7gsn5czvZWF4wal78RN4NDx8SiZ157cVnGvyw4TvkiCra2thFfbbxiDPhbbT9iJRuwbvON9lI1y2oS3Aj7621X3PBrlILg0cltNgxknLeJiX0nCyUFErxaN1tJqcRX88gjyxkdR4RVvCj7IATWQsU7uqhKj9kma2fJjLtqTR6ItYhFkdZ28lyVmKHavrmnzSJMZomV53bZznWrRhH9jPI2xkFk1vxdM3DKTqStgY7WuSvdRort28TQFM7LgB5I1m743Qdkfo9QopwtVE4dteoKcpe4DqpaKYD0yFbCRdOMugIOjF1GK1lEaOoAmD4fxZ4qaVZvpa5pRYzDjyVgQEazlz8cU7IkRET23hNoL6WmZrwzCwxHcxh0njzXnrcwDwAQEwEsGKo7bcepGIDQgZxWzLNnhhcGYMB+7ZnAP4wL0iLGeMd97CxZTxLMQ+35+RM8Kpzubh9wIQIpmlbkptogTeOr.iL9LyomYp7OGrA7iFeg7W+Jm32QncVYQo3PGpDmG3PaSBETYpfwhjCfIHTs8F0bQRz9Bd6XuaPaNS5pMt3Y5eOTBrIMPnij+hz7fIZZWm9S4L3.7gce8EOtlrlFrQlf9HscybPCHwa5Oiz1T0JdYyLYzW3qLHQoCSWKMK4H4QiKXJKSix2hReRLcqCYWKpSiFzCimppA0OHR.64JAPAAjw6atSDwBZ0i63Krh1GF8AJ4tOwaadr7Jy3hlJDEnOCn8KzsnAIuI1f9M8PC5jy6.Sck1wWeTL47mILjFq9rNYtXs.7PLeVkAd7wAEtWS4u5MdGoG3ENQ7lFuIS6V1boFMHthLvVzb4u8Ucz1WMnbIET9HS07dYNPnl.fJhZD2ONgc1DfVYBb5WM42GzqlzdfuZhQg2Dy5W7egqhb9mpe8SDkhF9CmEFLG5YbgowTvzzDl+KFaW0L20PNKb874Wf1l6iCk7WNj7CcHLWM9WplLYYkrbsZOq1ivGPZvCCRZZ00BWkzD1RcJaSfZkvkdb0yKqGv4hVTVy7of2n1pbd6kXxhnd5KhSmHAOHcSGz1t0gFfw8cM9NyYikWi+s2374cz4WPcjAN2SFeytgEHx+waLnPb2bq+Gf391Jqv6lsx1h2Q.mYWCCCRImoAt4VcnYgKAPBiQ7iji2Lh7FBp2qjNtScByK9k+BdRXVU9tQBypoLQmrt1kMqCs9h+rIwF6GD+tkrXf0CHPSwSTiSqw3e7m+xud92XbCWAr6aGhYQs4Q4V35j.51vrgQ5DgYMk49aISjzo6vwg8j0KmeYvF6oN0whNgwYj2Of2gIxkA9VSC6pm6Gne8GktvfcH5L5VWJEi0oAs8IKwNf3C2ELonyhpajzkpNHWiy3sawYzbsR2h.mFa1jDl6qTm0Puml18EBr695Md2h3Sv5oxeZsUgTPbH3wHu4mgoeQtOzTAW02G8siKC8Z2A4U7iqm7W.I8NFROZxGbNabQI3+Dy99Mo6qo786rCQOCDp9otVbrrGPBEJ8hIt3Y7YTlSL65ykLOGbMHFwUco+a1maI804G+8bKi8csdw+SrGAX2P9iS9h1xr0KESAraV7eQrQMWS9tU0zu9lz2D.8XdrqqzYeqpHTu0X5gViaOzZLyPqwcFZMlcn0XtgViurOZHane+Nv0uTEw.Batj5TqQ2apYT.82.olE8fA
I did some more testing too and discovered this issue isn't just with the global modulators. It happens even when just applying and LFO directly to a sound generator's pitch parameter. :(
-
@Christoph-Hart your suggested solution, using an inverted modulator, seems to have solved the issue :)
HiseSnippet 969.3oc6W0saaaCElz1ZnAcqqsKEXWpK5tZXCwoo+cUbhicgwbZLhbxFvFPKqzw1DkhTihJc9on2tWjc8dk5Sv5HEssnVzbsac5FFltvP7PdH+z46b9NzCjhPHMUHQ3sFNMAP3O0KXJWMo8DBki5cDBeCuiIoJP5aMc3zDRZJDgv35OwX.uUCT9ya1+PBivCgBSHz4BZHzmFSUEVGz56nLVWRDLjF6r58Z0KTvaKXhLMdp6sCJgD9RxX3oDyxp4gveRmHpRHCTDEjhvMNTDMMXh3Ub65OmlReACLCZhBzaj0bWAKxfXy6n1SnrnAy+tSQHr2fhnPcaTXauioQzE1KhF2LeB+BObiG3ZKCdMcg2NUBulU.OjC5ZXQmFDhnLFQUFYF5X1DTQYlpGWA7TpZpKc8OJbuk2.pJbR03sVE3USTW03cF4+YdcFMBBUEfsgW2e3iKSeCKTttW.kC4Uj4.4N4i8+dxEf+S.NHMA0+tZxme.9WW0ZxjUtl7jPk9zGJI7zDQZoMN.hoCEbS.ov3YoPWI7ymZHYW6sEDYkS8l86p+Fqzm.hJSlmsbPrHiqJkcTekoDWsgxEMNquBghF+uPQNbquZvshHHdvkZ3bScJcbBC5vu.XBsEq5vQvHRFSsvpKHOVvEISDbZnaBvofRRGOFjtPuxumCTJcikBKa25TfAD2j461puNIjH0gI38LTzb0CEKit9ROKb8MEl9+2Peu9Gp99Zzcu1kUU87528jbT94l27W.+khwme1Y+19GRSDLhzLuQgJC3gym2+md8eruQAsWwkhZ85VFs5QBYr8nKXm9vX8Q5ZYHDmHzZ8kxpChEB0DJebYc4sa0WHR5vI5.Rj6lzNKUIhmenH7W4s6dea4mKNQ+ynu175iamOFEnfjiHJBB+idOHe8NyeuS1LiQathmZqXV3WjyuKXRCSuQqaVi7vJk9L8HZK3JofwzBWFHeaaiiBq69tQrtG6PRNjJRb5oUNkJ2jCSO24a5SyheQYkRahV4rLZqYxvmSXYvFsV8CQawxpKp+13r56mZ30WBodq+Jo9NUZ9cGklKSulFaWkzawNkevVogxRIyjNVTpOSZ4pQE+eS2R+TQlRqGeLQecieQ2LQGqCz2NNDzHgyAl9f7v0LAQ63cLisWOlGkO3s5mYS1zLFOaxlym7ixYDSBkhmEZYZiB00xsn+t44+e6sz+we8X+lnKroGlXSrNM9Ygglf82niNU6wtqsG2as8Xu01i6u1d7f01iGt1d7nk3gQy3fLc6b6EnzFFzwVJhWz4GWG8m.+GNYQ
-
@Christoph-Hart Seems there is still a problem here (maybe fixed in the develop branch?).
Using the last snippet I posted if I have the mod-wheel at 0 and play a note it gives one pitch, if I move the mod-wheel to 127 and play the same note it gives a different pitch.
-
This issue is still there in the develop branch. Here is a video comparing the behaviour in Kontakt and HISE, with accompanying project files so you can test it yourself.
https://www.youtube.com/watch?v=c4I1XZYKbpg
HISE snippet:
HiseSnippet 1149.3oc6X8zaaTDEe1XOzDZaZQzJPHPZufDRPqrcSK+4h2DG6DKrarx5jhDGZmt633Qrdlkcm0fOw2B9lvY3C.G3i.G3C.W3L7lYWu63TSv0xIMAXOX44MuY2eu++dSuHgGMNVDgr1n+jPJx5FX2Ib4vFCILNp8tHq0w8hnwTIZmIgj3XpOxxpzdpcs1nLBdBe+uu9Nj.B2iNkj54XAyi1gMhIKn1y4yYAAsH9z9rQFbukSaOAugHPj.HoDtBJj38UjSnOlnXaMLx50Z5yjhHWIQRiQVk2Q3Owcn3a3o7eLKl87.pZQUjK7hRI2RD3qPrhJpwPVfeuoRbLBdo8Jj+Rox+cvcY9rb5E5gaq2vt3Dl5Cq0NK3U0DdUVX3gLPW4TzAfP3mDPjyhLk4HaClfOCxZykTdLSNoPa+60ekB22.2iI8FNe7t1bvKXnNuwalw+l3lCFP8jEfsLt0WbwZoWOEJuCdu.wyIAEJPAWBnhFow06kssc9914LT8uMTEg9kEMTMbgCUsJsvZj4GZVYdglk+WQn4a9Blo3W9nyRKlBcNJQKCXtYJLw3NsNHSqA+q.XU+mAVqH5WmP4dFDenixEosgG1cbdBYLcfHZT5GL2MyoC8D3CY530mNJT.0a7LI5NRHjCY7Sl0wi4zQHBaxIfn6axeugjX5ACFnpQY3m2HIVJFMEK5hHtRZ3tDIAY8k3Gs08gmAen52OsA7yCNX0rFs5LeqsvdYJKYtISYSWodYUVburLX95XHaTrjvkZ.d87kUu.c+QuTpubm6kS8c4oDZo+aVB8PQhDRZzkHiXeKjm6wIibgZTdT.IbNM.9PXq0PpipWWQsVmugx80K9S3Iaypp0VYaVc5llh6cSE2qiUYXzsLqE16hmlwwdOJTK9EyrdtWO9.OI.g9QDdbnHlV0vq8GO0d0L2aWpLgaxNBkRplIIk30BDOC9damoDM371N8H7YdYv5YdScUlI8xe5O9fetdZlcWJHM9GD6ABqR2YFx0KIHl9Dlubnw68WMHWyj79jH+SWZ47oUk+eJhUYEjakhwqg2d+ccOLKcm9+1M4ioAhPvgzDacEbQ3PAmMio9PJjG3jSny3AMWwXaoDF1rQRzXZg+3uUeWpGYhIU8SJylc6jRoCEflIi6CFkYCkfWWNAmuywE5OYlTAJLGPgdYJH01oom.LIzym1CwKnqwMwoBosN0yk6RiaNEqoVjK2f8FXsawUA85svYNrWITrahyhktJnZWAcysZFQL6J.e2rgVUptiIQLns8bTqAr8zoZUbXmwRwjj0NS7+riN5GpuCKTDPhTW3yQwz9DMVUW9yXZjL8bZhoSqAitAyOvgtJUJGqO5rt6iO6TC0dtLMwknqK5rKoC8XYek4hAeKLz2WMacvf8q9YatHFn3h3aLh3EIdJzVsLRDnB4WWSAjat9102.2Us1tJZLIHQeEQUteEzHnO0m54o7ouGnel+YpsDm4AKwY1ZINyCWhy7nk3Le7RblO4LOiZDgsSjhQo9+.gdMSyDZke+WVkP+k4R85Z
Kontakt Monolith: lfoTest.nki.zip
-
So we partly solved this using a scriptnode LFO. However that only works if the pitch mod ranges is set to -1...1 when it's set to 0...1 the problem is still there, that is when the intensity is at 0 the pitch shift is applied almost as if it's a constant pitch modulator.
Here's a snippet, using a scriptnode LFO, that demonstrates the issue. I think the pitch lfo used in this context (which is a common context) needs some special handling implementing in HISE.
HiseSnippet 2684.3oc6astaaibElRxirksSxtqSCJJRATA5O7hlHPRcus.Iw2BL55D0Huo6+LFSMxhvTbXIobraQe25iPQeBJ5Svh9BzdlY3kgTTxTJxd2ro9GFhy0u4b+b3vdtTChmG0UoPkSuwgnTXaT+ar8Gs+HrosxwGnT3gnSvd9D2phl16FGrmGYfRgBkdMqgBUVSg+22+h8vVXaCRbSJJumZZP9Fywl9ws16k+ASKqivCHmZNVZzMd4wFT68oVzI.dJgTUbvFWhuf7FLaXEQJEJe3.SepaeerOwCFydzA2zeD8C1hw+dSOyysHrGzT5CKjnYk8GYZMnW3Y0SAVndwm7RhS9iQmXNvLp8XJvWv6nZ7LjoAEJNOHos.PpfDjVS.ouD02v0zwOtGFd1BcrMvPFhARsLTDiUoveGsOEFfsesw3KIG4BODMgcaop9rpv+95e2vI1F9lT6pT62P8Iu0d2udy+5lU17usY0zcMbXl8w1FWpkEwMytYbW24MwcsmL9bh6ypdE1ZBIZfvwOIMsb9noFhSsz.o1Gaa5+VGRvyGQsFvnUreOMGPIfrA+5aO9.rOlwTBZCFmCw02jAmBGPtBjpErnJnCHdW5Sc.45o3efjCcvDKreRwIldSPG.8HAOjwnr8L8uQVuZAjwTmqLVdg3Wh5Y5aLJaLVLCLBTp6BLFnY9.zgCGRL7iA3Zni9tkUML+a+Fhs+WfdsE8brULgBjI.jPDpi+xftqF0e0nAnMG6k+i7ZuzI21KKTZUYLZse.rOtZjc2YJ1g28nFVBq3HALeZfUbF268XWSrseD13PtZv.pxFQ0fgDiesaG+gl9+2nXyrNtDGrK4TZOK7M65gG6XQdGb7dVUwu85Qb2yhZb4zVncDmAdu6d9DP4ycl9FV4tMtMmCnUjLtj492P7+.08RN+K32fPlvW63IV9lmYMjp7JKK5G1mN1wLvnHvM3s0iZciyHpsoAqIwHHfDosMw5UioSf8n.pPQtUx2PG.Xq7QXC3LbSOr+Hl4ViPCF0LhDjk25XA.t.HbZ6gcgnh.u5dhSJacCMEfJnvOdiGyNd7.mJw5Wb9D.fsCaiFZdcmyNmwlURfnmHgHowbavPM2vnj.FHFLdLxaLk5OhL3LmvkKIbdJGNfPQsLFYRPca.PxQtPYk8DnKUjgjxLCJDk2yj3Xtc9Ff.fcq9NPeQQI1a3oX2KH97iQ5FgMkgfiGvntTOCvvMWMOhNw5oLOB.kCswffZP3HmXZGrsHjZMUkSvWK8byo2doc5AR6j1htUMSrUZvVmwVsd3VUFcAa8Vf8Xczyq2LwABZQmcD66Sb5a9W3tVTqooJ9SqQWUMsVft6kjOHjBXF0aVqgttda01sazogVc0tJJRxdLFaj.Qg0lGwjcBY750Qhld0De5XvTRXXgRqCJdcxDgwK6FHVm29YhswOB0mKDaZeA2edvRrCaIpkb3y.LYenh253CYETHWIIGVR6CgbFiSpt8fH0MVWKl9UVZIEVJsjsPG4R9ySH1F2jW420Ezv6AQiTqiVlqylnSXVvcrtImKEnY.XRWZw9YLPp0M4eJB91qFLX50Ux7lLWdCjmikoulxLc7v6eAY1gVyKlXm3tvzUtEWbK2Ngj1oMQ1zyFCgdl5TsizdELhkb2JHsaIDTm5r4RpI08hsar.FrHWGlw4Al.q.eyd7vt7lpE34isGPtlkDzy0RIpWNuFLZLCCFI8.hP5IzllRtOKkOQrKw5t4y.q.BwqVYjVqYfws4KN3UFLnjxt1Gq8RlqL+EQweVFP5MB6IQFUmOYbZ28gfATTlqJtL2WYtw1rM5Xu2y50.aEBLHlTII7sPdlLIwyvoDveLhXeEwBVtZwiXgjwQyEZOB8lIikNIgTBdHyJ8+.qVDwdSJJ2PPIZrI7rG7RM7o5U9QfKD5DZSjKwi3yXMIbAE5H3134JKpJbQYU3Cg7bFLfLfOaF4Z1tuJOajTgGBxBFWEa.0U0TqCCna2NM51VUDjxFnW46igP9mipvb.SdiGJWXoB5cDKhj9DDpTyfPkz0q2TqcC8UlpeRU1LhlQVioBnwbg9X5fj5KODATrQ0B6agzTJlf2WXYCcIkkmYDUfjbehCvWEE.XT+2IQAVNe4JArkbmqTVrWkUCMMuwZUFQt1IEEcKgHAuiETdP1xYwoRXceI20MPmvk63oW3ADgcMscl3+rpfGkgUetnRJAO8aBpqRzwHbIWGc.47IWDtl7ZmbGQ+Vg9t1F4hsGPGWEjitah7rTVQdpeeD4Yxz6+rIzyFohYRxcyNrIMyjwqfzWNOg55c6p1nYKvoRiNs6zbpPYmy1+oPXsybQuSBpsYlqx8cPsOBIp1MXcXD0ZPZ+bCutVx9WQNqmiHvNnl5sp0sY6F06VuEDsidmYT6l8YkNFVsnDrzU6NO24qKRx+tOG+0E43eeXnkZSNygZQlhwYZwH60h5+ixv2QhUK9mKVH5nr47kQ5oiQOxxzxa5QUuV25MZ0sodS0Nc51ZVlG1gGOsvJkVWPzQuaBovt05vqlTKsNMqqp2t9zfpUi1Zs6n0ttZqlZcZwAUIzeLWFRVGnacRa6qSRq.yzTxsakKOINrUbkVC2pmvVM0f5n0tcqFcza1Ykj8PRmWyMr6fhnmJ.Qtm7KVX8lh4IYw6rhvOOS52+YJlACOPGbFnYCPHUc55urRHKaCosBIOsH4iscbEXz9LqDLaEkJp1+uFLeBTCFvXt5cQnoyrrKqxfBCdGEZ2GAvDTEH8e7VhHs4GSoCAeoVlNqX8rXPesE80CJd6jILHHdwWynfPkYuAMszu.stoeAZJqtDemCky.zXRUGnsE7cQO+HqvfezZXylr7oxRmHR90joa2FMNzCP7EhLWt8x7turv9+TqkLKf0Rm8PNQu3g7g7LzLkde2IzH0xxccZ3xtm4WOKDm06YLhh+e9mmb9W7c+pWtz3N2gXLsvQ+QXmbKbrNOQuF4j.GTF4UCRihkHOAuDE.QawyowaQY7VNNBt3HSS.5bs25qn.mTxDaIBrdQA2JKPpkx7zdT5kiw7Km3c50Ret246R+z9Ne+N5DeHmwSv9tlWyh9Xx39feXivKwoWXlPAOqF5gtOwd.+g+K7WPmZrmKDzoVXmxGwGJNhP1pPrl7O2F9A7I7mq9mvWQp9ZBDE5zW9267aP9aM7gs+TWrsmC0KwB2mL17TpMiRG2325QX1rEEsVp88oX2L656ewQvgLy4zG6OwkK5EdoYkD0Rcy1WKe252jeoERi+mTW48e.+hRRbe2qDhw9bisGFTwBNF+JvfzPLDdPXqIErOgZSCuB0wb82Q.ExKtf4EKF6YdfBLhG0xieYX9pQM8qeo357xKT2xQKV7ufqL4W+7.eNh66+mteIP4yqvZ4CiweaV4UN6oAeoGy46pH3SAYI+tJ9WuXOSGpElk+WIvR2oXNtYi8JvqqXd7FiJajbzG+948gA8aukO4iUlT4mC9VuO1iwXCW5YA2KFlD4F7VfysM+ySsBj+B7bUMkqjCijcG.NyvHrxAYOG8kXN0Wh4zXIlSykXNsVh4zdIlSm4NGlK5fRmxzGgF5cnPQsPT0iJTR4+AIsLDK
-
@d-healey Even with the pitch mod set to -1 to 1, I still don't see how you would use your scriptnode global lfo to manipulate more than one modulation target. The only way to control the amount of the modulator going to the pitch modulation is with your value knob which effects all the destinations of your global lfo.
It would be great to have a intensity value and a pitch amount value for the pitch modulators. Right now I am just changing the pitch amount which is not the same as controlling the lfo intensity.
-
@crd I can control multiple targets, that's not the issue.
-
@d-healey I see the issue you are having. I think I think the pitch modulator was intended by cut on and off at the modulator's pitch amount which is not the same as changing the lfo amount being sent to the modulator which I would love to see implemented... I think this was how it was intended to be used (?) :
HiseSnippet 2853.3oc6assaaibFlRxirksSxtwtAEEaATA5EYQSDHoN2Vfj3SAF65DsQNt6cFzTirHLIGVRpDqcQuq2zWl9Jz9HTz2f1mfE8En8elgGFJQIQoHYroY8EFhyo+u4e9OSNcbI5XOOhqTtRmOxAKkaWT2Q19CNbflgszoGIk69nyz77wtk4McvHGMOObOob4J7RZC4JsgD6ue3YGnYpYqiiaRR5BhgN9qMrL7iasyy+JCSySz5gO2vRXz0d9o5D6CIljg.dJfjkbzzuQ6Z7qznCKORJWwi6Y3Sb65q4i8jxswAjdi5Nf7da93uvvy3JSL8AEotvBwa9DhYOJhosJc3.CydcB22dRvh1IlKTfyE1GclQOin1i4FeFqixwyPjejKeR3UHA7TlF7RAR4DfzFbH84nt5tFN9w8PwyNnSsgCm9Z.aWDJ7wJk6uiNj.Cv1uhk1M3SbgGhlviaHK+jxv+9xeW+g159FD6xD6WQ7wu19we41e+1k19Osc4w6pe+T6iRFWhoI1M0tomztyZhO1dn0UX2mT9cZlCwQCD19I4onrwS046ZgARrO01v+0NX6oIHHEvpn7+.TAC0mw8ue.2uqoQOrqjAvj2D8U1jqTjX.VTlW5smdjluV3x.qHPEGrquAcCj6H76.cB9gZIzQXua7INrwZ4ProzO2ClKQuE3D49K.sFQ+wQvO77GQYCEYCPxxnWOSbGhmAkMKnj92.cYmtFeGCwe+9+0W9u9t+7yrD0ikjrztUTs1aX+9F2xT.6aXZ44CX5TKPuTJ2CQu0CWtGtu1PS+xd2.qiog8M3dmSXi2Ij8dJf8xnWZRtRyrLUXn7EZtFZ19kOizanoFbBq.p6tflNHcRGMWx1F1.ij7w25SYGNF95CJqYQFROklTGAzNCWMQUVpcpfNnLCQ8jXZHrgGWOdioKyImYyLYEteNpCcWlNdymBdA4r0MdCrJdOzw86i08iA6FnS91YZBbkCks3P4WDHKEy.AMM.UXtYweYnnVT+kiFfxL7g8OxpOLmL6CKWgLyQR2mUpNH1Xc4y5NUVeuINl7VbsyUiWVDGleQfIW5oZfEpHrwfb4fALUiXyE+gtl+2nX2fNtXv3G9bRGSsQO1SyxwD+FX68jx7e60A6dfIQ+lI8fFXhk06iuBLUicmpu6Uta8447FshNphcMK8Jr+6It2vN+B9MHjwiExB7BYboYehzKLMIum5Q0HvHJbZvZqCwbjy.hsgNsI9HvfDosM17EbGKfC07Lqpuhzi5Q8DMcXOLpil+.p4Y8PCIUziDjEIcr..SkA1scB8q4w2oz0MzDAJmDa6YYw77SCxs.se99iC.JE1EA9fac4UziYoDH5QBHRXLyCFxYFFE3v.Qgw9HOKBwe.t2kQdqSBmufAGPnnRJiLInlG.DBahqrReBzkxSQRQpAErzE7nutG5qAFfla42.5KRRwdOOWy8ZrOaaLdi.QoHfFrwtHhmNXPmol2QLLjhrnGjN1VCDTCL3clgc.YQH4JxRmocqvy0mj7BT5dBTRYQIU8DjRAHcJjZyPRUDcMc8V.ZrI5oUqmXCAsnR2hcihZbe.GJx7+Tp0VVQoAn6dC98bo.pQ85Upopp1TtYyZspoTUtsjjfrG8fMRfH2FyhYR2gzy5MQ7ldwPehEXJIzwiv5fhWmTQX7xtEh1472STB+.TWlPrg80L+7AKwdzknRxgOEvj9lJlzwaxRnvSkjmvBZeHjikVR0s6EotQ6ZwzuRSKI2RokrC5DW7ebH1VeTVke2jyCuCDMFacTRcc1FcF0Bti4nLtTflAfIUgE6mQAoR6j+IwO2dQudSttBl2DOk2B44XZ3qHMUGOr9WvC6Pq44SPIlKLUo43ha4nDRfRairIWBIkZL1tZOAZELhkjZ4DnVBA0I1at3JBcuXTiFvfI91v76Ox.NJzFc.KrKuIZAd9T6d3aoIJ8TkwD0KlUCF0lhAijd.QH0DZSSH2mlxGO1kXc2rYfkCg3UqHRowTv3trEG7JCFTFyt1Gp8RpqL+EQweZFP5LPySfMJOa13jt6CACnnLSUbwSeoYFaytnS8tf1qtlYHvfXREjv2A4YPkDuTaLA78QX62gMgkqR7HVHYbzLg1CPuZnkvNIjSvBYVp66o0tH1aRdwFBJHlMlk8f2XCehdEeDNEBcBsMxE6g8oGMIbAE5HXdm4RKpJbdQU3ig7b5AY9xlMkcMc2WEmNRJwBAYAiqhNfpxJxUgAztcqZsaJyCRYKzK780fP9mgpvL.SViGJSXoD5MXSrf9DDpT8fPkTUqVWoYM0UlpeRU1ThlQTioDnwbspEoWR8k6i.N1fJg8sPZJ4Sb1maYCcYLKOSIp.A49DafGFE.XT+qkn.KlsbkfikLmqTZGuRqFdZVi0pHBeqyXbzc3hDrNVP4AQKm4mHg0CEbWWCcFStikdAsl7O1v1Yn+SJCdT5W9o7JoD7zuIntJQaivkbSzQ3qFdc3ZxpcxZh+sB8csKxUytGwpLHGsdh7rPZQdpdWD4Yxz6+jIzyZiEyjf6l8nSZpIiWBotbdBUUa2VtV8FfSkZsZ1p9DgxNCx+wPXsScQWKA0VO0U4tNn1Gf3U6FrNLfX1ab+b8usRx9WQNqmgHvdn5pMpztdyZUaWsADsiZqoT6lCokNFVsnDrTkaOK24axSxe8mi+l7b7uKLzRrwW5PLwSbvYXRY6Uh5+Cxv2I7UK9mKVH5nzO4KhTGOF8HKSKuoGY0JsqVqQ65p0ka0pcioYdXOV7zbqTJsAQG01IjBaWoEqZRMTZUuprZypSBpF0ZpzrkRypxMpqzpACTEPeSlLjrIv2ZMtsuVIsBLUSIy2JWVRbXm3JsFRpGQWM4f5n0rYiZsTq2Zkj8PRmWyLr6fhnOV.hLO4Wuv5M4yRxhqshvOKS528YJlxAdfN3TPyVfPp7j0eYkvV1ERaERdZQxGa23Jvn7IVIX1IJUTkepFLeDTCFvXt75HzzoV1kUYPgAuiBk6h.XBpBj5OdKQjxriozAqciRpNqn8rXPeiE80Cxe6jILHvewWSofPEouAMkweAZsG+EnIs5R7cFbNcPiYr5.sK+bm2yOxJL3GrF1zYKerrzIhjeCQ9173wWj7K18GdV1b6k529xB6+StRxr.1X7rGxH54OjMjmhlov66NgFoRZtqGGtz6DvsSCwo8dFi33+m+4YW8Ye6u54KMtybHFSJbzcflSlEN1jknWsLxfCJi7pAoQwRjkfWhBfnI+4wwadQ7VLNBt3HSS.5LQa0UTfSRohsDAVunfakEH0RYd5.B4FKM1Gm3RcI.VIei3E9z7aD+Mjg9Ptjmo46RurBzbj5B9m0C+3N8ByPJ3Y4PO2cw18XO7eg+B5Tg9btfNUB6Tb6de91ExhEhAkckoXa1Gwdt7eP6c3xuDCQmN4GE7Z+KN+059.4O2Uy1yg3kXg6hsLNmXS45wM9VOL0VNuX1BseHQyM0t9gmcBrIScNc07G5xDIC+XZEDA+ouD903kToP1f6b9L3KEhwtLavGGTHCFFeHXmhcQeBaMob8YDaR3WVc7g9avf930WSctEi8T2PA11iZY+mGlFaTS+5my+JeY0uasek.l040OOvUD+Z.7+GWtnr43X0vaKEdcK3W.jYbcKlycFat3+.CGhoFMsv7fgty0XXkN12ANi4yi0XT0jDCJ42Oq6QzucN2DjUFm6SM2r2EzvRS2kbYvmNCU5bKVKv91lcaiKAo3.OWN59cxizj9YBbotdXwEReNpKwbptDyo1RLm5KwbZrDyo4RLmVybNTW2AUWkpaBMz4XtRatnBLkqfz+SqUEX1
-
This is the problem that keeps on giving :p
To summarize, using a global LFO connected to pitch results in the pitch being set to its maximum specified value when the modulator's intensity is at 0. This prevents it being used for anything where you will want to vary the LFO's intensity.
A workaround using a scriptnode LFO partly solves the problem but it has two drawbacks.
- It will only work with pitch if the modulator is bi-polar.
- It won't work when applied to other parameters such as gain or group xfade because when the LFO's gain value is set to 0 it sets these parameters to their minimum specified value instead of 1.
I've made a video demonstration explaining this in more detail. I've also provided the snippet I'm using in the video so you can test for yourself.
My proposal is that we "fix" the problem properly by treating pitch modulators (perhaps there are others too) as a special case where the intensity value from the global LFO affects the pitch modulator not from one end of its range but from the centre value. It should also work in unipolar mode as well of course.
https://www.dropbox.com/s/hs4kmwbly6gjqpj/lfo-issue.mp4?dl=0
HiseSnippet 2131.3oc4ZssaiiaFlxNzSblo61cmfEEEaA7E8hrXm0vx4vLYaARlbZfQyAi3roEsWDvHSGKDIQsRT4PKJPun22Wo9DTzGgh1Wf4Mn8mj5.kOJ60yry1UWDXR9Spu+y++Toc.yhFFxBPFUu3QeJx3Y3NO5w6ueehsGp0Av7XmdLNMji16QeRXHsKxvn7aDKaTcIj74s6rGwg3YQylBgtjYaQO110lmMa6c+M1NNGQ5Ruv1Ui5M1skEyaelCKBfRYbCjOw5VxMzSIBxJgQFUNrqMmEzgS.v.zrGq6ic5yt2SQ+k1g1W6PECLQcfCRMMZ+91NcamvlgH3fZmwzkUL8p3Sr6ZmNeFy+SkKTKaG5x.iRSBRly.jLzfzRJH8I3NVA197rUD34o3VdbZPOBHp0ghhVjweGuOCHviW2kbK8n.XP5FVaqFMdQM3OewupWjmE2l4Ui4cJnaOyasuXk+zJUW4OuRsAWpWuQtl30DvbbnAibYg1MXRabMuH2qoAun1cDmHZJg.6mWlVoXxTKEWqQHyqkmM+LeZ73iXNcExJwuGVCfhEavu9lVGP3DgRIdNfNeZ.2V.GiCn2AV0JUTU7Azva4LevtdH8GX4v5F4P34MmD9MwK.xib5PghxKzl+nte0f1XKMd4QCM4wT31BB2OA21la0ez3szHvKH0dWi2XO1eB9vd8nV7LvtD9ne2DcOW3PYYET94323vtl3jI.A6F.UTkK6uHd4ZoqWKk.yIDS8eVzXp9ENlpQ4EU.qkdWEC88p88yGR0D98jGoQIMH+QJHiwGezYwRP3WYfzbZfDgNJf9sQTOK8I2UXhzJyBa2+1t+Vxczdr.233Yo73wzafWj9LWPc8YPkAV5ukNtLFuus2M4M7Vc2iYL+C8HfXnq9gztOITjQIjx0Ol8iB4L2DrHy12gS8kggM9C3s1nN7z6KE+c68g+r9YKlwnEWB7RE1hSnISUYBc5G34.THN0d5CDDiUH9yiKRRX+cIIvl3wSYAI5qESPMAE0hIYF7jd6NIUV8uwYUw3GP8IAzKXscHOtVHw02gdNvounl52gsoA64vrtc3Bf7U7fb00tNBxgEL1RuV3UkMsZuvKH2AspoNkxumEbqrH23eClCp9J54DwgZSQu1wgc+9LWe63pL.cgbt1LmG86y7rsDSonfBllddTmW6xhf2fA1njrriSYcAjU4HhEvAO1lv6KpewJISacKsFZRdwYJeocHvosIAPCGvZgJtTbpIYPwFxfULWWAqI6IorXcEuod8hy+Y3d1O7pqtVnhQ4vymogGMZlFLZTXXTQACr.FqhCkgmocuxO43xCmOWBGvfn9HnLOnlF.zpQV0MiXD3GURfjJh3JTzkBqMQkaGCB.RPsyAeEDJq3xKHA2P4xCXvIgWp.As5JjtrPKndGoKdpbRrREYw0nz7NB82I1dwuVLtQ8FnSHOnMdSDRSRKXiT12XoIsUSXrfydBVM0qifDXfSSRrKsyAmcNqBmiYC0i4Fa2vzbKSsicYrXQ3jEI+5X+GG2NDu3OFmO2a7Q7bwQTOO4iALiloxd0YLYUbhHMGoHMasUvdrqbgp7Lyag8bMC9XJlQCqAbvvJGLMSfgb3Cn00Vd1dahPLNzGRZ.7.6PeHB+dxvzgCMCLtkWW5ChdO9JyArkpTTw9FiQrm2qAiaJj4i2.cSsC8IJyf3aLHqVv3kypHbr1Fl4.YEr4ViAkOSd7fuL3rNf8w2U6Ng+Leh9VEzGUV1IJGgE9TDB1Dv.AWFBLZw8xo+QSLh3yvsBuTrpEwIAXPdLMa7mhCsE1hWQFvDeUL06NpCbb0ynXlrxwSDZeL9zHWMNIQRHSyh5bu3BAxhTWReh36LwiJq2Hb.xGZU8gfVHI.+J3.JzffP0jK7dRr1ooyQypSbIcm3CgJi5BEgpZ9.DWiOCQkwijpxP4EHVdmao2qTuJBVugYi0AB1d6Wsw1urgJX+x3Wy4DnPgzn7MaDGlu41upQy0a1LmA8D.VQywTHbUEeN0gp4aAoe1LN8Sylquo4K2n4BKLPd22QT0ft2SUv64lltPqJ47c9HL361udxZyjWSob1AFyakBCDERO7Qt7oo9.4XfOMshsz0msDbErZqJEqZKPsT3psFk5EsXjoSLnrlTsBl9f+.RzmpLIjKLi1C5QQKMTIu6qk7dC7IR6NYIagfPXMaO+H9KpAYW5U6qT8gEO5Ki6JKkMRNxmfOfdczMImoryqEpM4SDAB1dqEPdrwCK8W6zf3fUqTv7GirumYNSRi5aMe79dL1stDYGuuS+TBS7t4K+iy6l+bVDG5HBb1BrePzyXjaGv+0J4NCBSpiIdbiDO6NTutxA+W3IdQSwXi3EMSVDM78z9TbGnAG4WMUxrelbbMw8YV6MTn0mguoIsa5+u7W+8+iE+M8elEGd8WDP7B8Yg4N3NTW6KXdBod1jeSHUTGupLd8qlkQBF4Rucmi.lbj6oCgGEHMIStiFMSvxEVuqeES4+pYZz++seZhu6eovxECtS4xrqlfwNxlMNLt2CIF+THnUORjCOY17F4mv7XI2dWlEv4Tv47laDYCxv9HYn3hd09rBIkalN0ubW0cII6Td9jEy9Wlej5qeVbM5pKZ9Cpuv6xI2Ut5icMg6JO9qgMO2U9tqu9+YGHJxEDIVEDbGjoSQrbxzNpzyZ+qmzGG8qmxc2uvzx+PKmaNqxpuOTuvy+Zm8r8YNDw0dURSSW5GpZ5eLTsx6i2gKwJfcUbioBqykky.7sm7edqpP2Ov3Zln6zq1VbYvWYYkb4oidOMmi8r9brmMli8r4brmsli87x4XOuZh6QTzSbSyBeSXh1GpbZMR6m2nL5+AQwsss.
-
Why don't you leave the intensity of the source LFO at 1.0 and then adjust the intensity of the global target pitch modulator, then you get the desired behaviour?
-
adjust the intensity of the global target pitch modulator,
That was your first response in this thread in 2017 :p
Then you said
Now I get it. I think I need to change the way how the intensity modulation affects the intensity. Right now it just "modulates" the intensity and for Global Modulators this has no effect so in this case I need to apply this directly on the actual modulation signal. Does that make sense?
Then we get to today :)
-
You missed the part where I get it :)Lol forget it, it's the same thread, I think I can scroll upwards myself... -
@Christoph-Hart said in Global pitch modulator problem:
Or add a intensity modulation to the receiving modulator which might be even cleaner...
I think that is the cleanest and least intrusive solution so before I implement this, please tell me this would fix your problem.
-
@Christoph-Hart said in Global pitch modulator problem:
please tell me this would fix your problem.
I'll try now, but I'm sure I attempted this and found a reason against it.
-
How did you attempt this? It's a rather complicated addition that requires a hefty redesign of the time variant global modulator.
-
I probably did something like this:
HiseSnippet 2423.3oc2ZkzaibbEtZJUThZjkimQvvHvAnw.efCrLAapkYjMBDGsMfvZgVTihA7AgRcWTrA6tKltaJIZCC3C4d9CDfbOGxobN4ZNleBI4Wv7OH4UUuUMWaxP6IdzAAUau56U0a46Usp6xzoddLWjRgK60ghTVE2nmieqCZQLcP0NDorF9ThmO0UMnq860g34QMPJJK7JdGJEVDI94M6sOwh3nSS5BgthYpSOwz1zOo25U+RSKqiIFzKMskl8VUqoybNfYw5B3YAbYTGhdaxszyH7okCiTxejgoOysgOwm5AyYelQuFsX26DL+qL8LuwhxangZ.BJnazAsLsLpGoqdHPP0Sz7EBz70wmZZXF2exIvuPLfZxJjOCTxMNHoMEPRQBRKF.oO.2P20riexHb77HbMG3BoIANpkgRvbQ49CJ3CXvLb7KYSZSO1EZDuhh6Tt7Fpvud1WrxJvwsmu5cDWUalg5uVUb0W5Vp+oLitVDPsJ9zWYwtgXoxupTuh3ZRb7UiGV6obwX5XY5PUa10Q22j4nxb9RG1MZbP3xrJpyr6vb.3rArUVcoOakuakBvFVxiJvkimoeuhAC8Eq78f.ifOfjChVbwmJD5SeFeYgh9.hk0MfMRwz6HHEIrbFymdtSQwttx2uhZ+C0r4PGKTVVT2gNL+7vcbKrnSW6antx5LehvcaZCl7YyfQO3HQZhLmZNl9m2gF19XlkA2Pf+2CZdgBOSg+500Nj3S3Vbg8AyqC002jCGkCo2AtrA1eEvGR8Z6y5.dewWDHk2yWL5ZgVmMrLMntHSXuWBKtGPOj3UeX0dwM9guppmeOtxkWLQjsoggEsNCr.fCujE8O2CB4zog42JBO7cq+me0+5a+c6YKGtAgrIRayGU0qayllOHhSzzzx1yGvVMaH7AR4w3W6QUMnMIcs7U8ZCxArXaSMtjIluG4NZMm5tTvzh6IgjT10lfxVQRY+g1yhx9l+1PUVYsCNOleZWmHyhZfR7I3Q4fyitG3jCwgcgPvPDD9JBB+HbZgX4CDyBhVFEcPNDJWZgCvUd43VIhSJWxTDWs7XiqlUH9A35l95sFNFyMDLBNP+XfwvrQuG9nlMo59I.bQ7we8rl5I6a+xAa+uLzrH4fBBU.HgFjB5WEY0DOtZ7DzFCGg+QV4HzIybDTVXdk.dw2BbBlO1tOYfqCueB8vTxIAy0BfIFexwmGdRA+kDigICrico+1tTGcoNWtJ2TnVhkT0ee0eCDVqIy0NLUU7xOgdKrQx8bIEhlCbazks5ZXyX9sLctMsA15UOgw5bjCATcCYgTuEwiSVPDDMQLGz0ymYGgEQ71FPzbQFVkuAuyVkfeZ9o7eu6Avu1774Saz7i3YtLakwuIiux32oSuU1hYyJaBjYlJDGaO8+IHFGf3ONjQA29KLuarJHPuZ3DFE26IqJgUDn7uwIDT63Rgz4zKY0sH8J5Qr6XQu.zzMTC9au5T28sX5sGjaaHwAwnEuAHjPcGIq54Ng6IQqFOmbGjHJeF0+dlaaQwYg+MXNvuZJfaZ00GHDgdokE6dNcQyPVCvcgnu5LqdcZwbL04cELCJXZ53PsdoMqKmaIVImfFwYLCNMwiI5fFzqNwuEmOhdTF0R5wVzIabxkuvNDzz5Qrz7BzRtTixThUDAqX11BRs7ZoWfOdftEr8b4uJFXY9hqugeEiRgmOTBORyYRvnblgQ9.Xf4vXcrmH7L035XtmogyGKfCXPTZHyLMnlD.jJ+InJbdKvOJGGI44wUnnq3VabVYm.G.P8xW.9JHTBYwKItPwpBAzemvlxQ.m57pXlmNvqQ3hWWlTcdAAYTbdG982olNgaKFWtTYzojGjZuMBIcRyUiX0WYwwsTMnMWyVBGz0K6BIv.mlnXWRxAmHm0A4nUN3Gss1srl1NZRhcYLePPxMhKkYnqfuwuONct2PQ7DtHJkd5i.LCWoR15Dkr.N5HM0TQR1ZqfcXWC0lYpk1B6IRF7gyXJMr5yACG3fIYBLfCuKsjzvS2twCwXQeHp19CM85.Q32WDl1afdf10bLnOvqq3yz5yVJeVO12ZDG6o8Zv3J7y7QaftsjPWJvLH7ktR3BFNbBivQZankBj4wZ6LBTtpP7fuL3r1m8w+q1cb+Y+w5akQeTAsSTpIlYovOXi.CDbY.vHE2K08OZrQDWEWy6J9n5DqHfA4wjrweD1yjaKdMoOS70wTm6nVf3JkLioxJGOVn893y5ZKoIQmDhzrnF2yKvOIRcN4NBeNLGpfugWeSefQkaB2BQA3WAKdkE9USpv6QwZmzcNZZchyI6DeDvLx.HgFT7AbbM5LD4GMRJHBkmgX4MZSuO35MXBaVVq7lvD1c2Wr0tOubPv9kwuz2m.DEhixWobXX9J69hxU1rRkTFziAXYMGSlvUA7ETKpjuEj9Y6vzOUpr41ZOeqJysv.oceGBqAYumBf2ysUrgRUR46rFF7caUJZroxqIWJ6.kYkoPeQgjCejJeZrOPJE3wwL1hGe5RvkQ1V4yFaK3ZIyrsF10KZ9blN1fxRmp4wzG5z2I5iBLIDCLk1CxQQyM.k2CjRduE9TgcmfxF+gpKZ5zoq+FpP1klpeVPcXgs9zvpxhUiHQtD9P5McuMRlhJulq1jKwCDr6Nyg7XiFVxa6jfXLakO+u72u6u9G+S6ks7GCstmoNSR4R6La599LVaahnh2Y5qDMWdq8Ed29s1uf00Gp7Abpb4eOGNikFfepdzaC3EwWIrc4HO3FTGCQi+C7S3fZ71JgCpEMHZv2i8Q3FPgLhuuqPA+PQaU96Vp9JJThyfunzO5ub+459v1eoKwwqCyKkfaPsMuj4vOoS570dTNe8.55xOAKi3NzgdydGCJ4PWSCheWWgoWzawHYpsPle.P4mRJ8W3RZ9uS8oFdK9k7R8P0EhvXCQgDGEVWg.iOFBHI9XnQ8l1v9TlCK5k4Rt0ufBNj2dKOReB1GpBERnU5SFDQkLtqOoZv6DIpBd1NKl9+aQF580GEx+N3Qjeq+EXWN5suC9fUi7suyzmkdhIMfHFWRDXjOg6frWASVzYbURxYh2XbeXyOuuuj0b617mC4MSYwUHiWip3w+uOzjw+9lcXVD9yUkS51L2OWtMeWkgwOE6gMQ2kccXQibKvkE8.5si3eHvBPkIPaUMzcxLg4OT6055QOr4vWSkYXMaNCqYqYXMaOCqYmYXMOeFVyKF6Z3DUBKnk6+AcT+n.GSk3ZsUV.8ekn1uAE
This sort of works for pitch but it's a bit fudgy because I have to set the knob range to cover the pitch value, 0 - 6 in this case, but once you get down to a lower value it's hard to hear any difference because it's linear. Really I want the knob to be 0 - 1 so I'd probably need to use a conversion function with a suitable skew to make it sound right at all values.
If I want to use the same modulator for other parameters, gain, xfade, etc. I'd have to script conversions functions for each of these too, or use separate knobs on the UI. I'd also have to hard code their intensity ranges. Using the global LFO intensity I could just set the gain mod's intensity slider to 0.5 and then changing the LFO intensity would stick in the range of 0 - 0.5 but doing it through scripting I have to hardcode the 0.5 upper value - or add additional UI controls to hold this value which I then reference in the script.
Another solution is to use multiple LFOs but then what's the point in having global LFOs.
I think we have enough workarounds to get a working result, but it's hacky.
-
Here's what I think is a workable but hacky solution. It includes a skew factor to make the pitch intensity behave in a more useful way.
HiseSnippet 1526.3oc0Y0saaaCEVxNrK1cqXcqXnXXCPqXW3rk4Zul18SQWbiSbPvRZLhRyFvtnfQh1lHRjZRToMXXOO6t8LzGgs2f9Hz2fsCknrnRbbT7RR67EAlmeH+N+vy4Pm9gbGRTDOzvr1tGEPLLeWj8QLwntivTlwFqBzQdC3BRjvXkiBvQQDWCSypqKYaVaNijOud4UvdXlCImjgwdbpCYSpOUjSsemej540C6R1k5qI8Rc1vgy5x83w.TphZYDfcN.Oj7DrTrJHCyqslKUvCsEX.LfLqvcOxdD+4rT42iFQ22iHWz1vF1nTxFcGQ8b6mYlQFvF0O2nqlZz2BsE0kNldtw+9ILrx0P2GXVYZPp84.RlZPZtTHcSjsSHMPjyQhmqi1fIHgCvfqVGJoxZTYspntbPBlnoO9.RuPXwXMZ7fVsVzB9yBOrdcvcGIrNDGZsYus2h6F6gASos0irRh+MGRDio13NfLV4BcGXCR0WlF.zOEsTbyEuOU3L5zkOisTg528tVGv1WtEJkUq.cyLQP6tb+.NCVz3NJ9ZJmre4ZmrbZpmHfl9ROGKhJNJeOFSZZ6yXgj6k95lQRQYhPtWWrm29PNdCNSWBEWIFnLOJiXMHl4Hnbl0DErgS1IuHDL8hIKT+2pUuVgXp7TGqWiDor9rGYISCpoBQEEQ4IkF1dRoarf0Wn1cPkrnzIzIgQQk1BCA4.9ySO0EsZ079KrvCqU+2A6qtlk8DnBy1rF.3qCLqacbVCFLQdJmfGIbhrk0XBmlhMXw96SByccoBBWBKdy9Zk6lsSZBglfb1FLpX6.hZcOtmq7Fq76mrNfgJiBpHTUgP3ahj5A2PUOv1i5RBMntRR5IDFI1fdAXiRrG0QYAtiq+s6TF8qgTIKGW8WsrwS2XUr.KKuorKvVCHgBpzkZtJ4Pn+PZwtZnUIQGH3AIFtJgFb6k0zeQ949CcNRushf7BQVYyTY8ottdj9bXAjKT.vZG87kwikerub3jN12AkJmuduxFuzGqg2FcNM.kD.KguHODjusuJdR3oNZK7KRpYOMuvI6EAcAyJln2ZTU6PxPtG58ixc2ZyHbN5W1Zp8KKKDuIJqV0DvXkIfQHW8x.ipoLdOzZCFPbD4.bNTuedVGon7G+7oG+GiV2iuO1K2QA2JAjPRGs3SUry6yaMVf1SY1u+pry9ET5Y+LqdQMX0bWVy5MW4BLmQ89RlG+gmHzDcEdaqvzo2HElHDLggxqUb1vyBXFF8BI+ZLg4nQb9NxzhMxypB9iN+D9Px.dnupCwX6ZSxP3fzorKApRByS5neJ19btXDkMTKYy5OW+uWdSNOXMFFLcW8Mo+HbjbNCXnF8b6twQBteFVRdIhsfDjzXy7WPOXolvmAeYyrO2a6we865l8sYfuwE2iKpT5rLYjLe.WPjyeV1U78BIhGmO8+.DO0NRUKUGoKb7N6cmtXfxN7XAbOEdpPHElfA8jXeanUfCAPBiQ7fCBYVQNMT55Vx0IWwIL2jE+C7QwrsbsohY6LlFmrB10Q1PmsjWglXreTxZK4Mcq0IPOuSVM6Ruu21NB332MDyhB3QE1XahOcWXTvHchOMhHS92QlIoSuKGGNQVud4dfQNQcrwh3vjTxG6yiYhBofUKcbWuVTw4C0j+prQ8k9PluAmCtPo8ZYXzl5G3QVicHwCdtUBF+.38UCvwdhLpESr2hy3Ai3LZgNn6PfKjCGRB0w9DMnGKDXmCxobqN6P7HX8L3OuylPlGND7SjYzWb9+MzlX751nT3ZIuMZ8eItcgWIVMn9mnF2SBv8vgTLK+GIS8SxpR4N6tGPIhcwIfRJvgvquSENgX5TLvHMvf9LhS5KAWbZuC36O1vdWXgu2lafdloa0JYbq9Xve1ndEZ.2CGJen5oDCq71bL7MwSduJFj3p3L7wNg7m4j9iuIy0lOgBX2rj+aH0PaIWa0N62bCgZ0rk7mzg9LGGoK9qfJMSVmudFz4dyfNKMC5b+YPmGLC57MyfNe6T0QNOxiigGJlVRBHzeszKlliepoYUi+Eng+wAJ
-
Not to derail David's thread but I just want to chime in to say I would love a better solution for this as well.
@Christoph-Hart said in Global pitch modulator problem:
Why don't you leave the intensity of the source LFO at 1.0 and then adjust the intensity of the global target pitch modulator, then you get the desired behaviour?
Changing the pitch amount is not the same as changing the amount of the LFO modulating the pitch.
It would be great to have .setIntensity function the same on the pitch modulators as it does on all the other modulator modules where .setIntensity is setting the amount or amplitude of the modulation. I don't think the issue is with the time variant global modulator but with all pitch modulation.
-
Oh boy, this is so annoying, so let's sum up the problem in a novel (maybe I'll find a solution by typing this, wouldn't be the first time).
The problem is that the way the intensity affects the modulation value is fundamentally different between pitch modulation and gain modulation and there is no "clean" way how to use a global LFO (which uses gain modulation) for a pitch target if you have already applied the gain modulation at the source. Also there is absolutely no way changing this without breaking every existing project.
So the actual problem is the LFO intensity modulation when you intend to use the signal as a pitch modulation later on, so the only way to use a global LFO for both pitch and gain is without modulating the LFO intensity.
The advice I gave earlier (modulate the target) however only works until you need to modulate the intensity (eg. with a MIDI CC modulator).
Now we always have two solutions:
- Fix / add it to the modulator system in HISE
- Offer a solution that works in scriptnode
So let's talk about this first before we tackle the actual problem.
If we fix it in HISE it appears to be a more "clean" solution, however it will add overhead to all existing projects because every time variant global modulator will get a modulation chain. These things can go into the hundreds for big projects.
If we fix it in scriptnode, we can leave the existing modulators alone and offer a narrow solution to a narrow problem (plus we get a few new tools in scriptnode along the way), however that means that people will have to go into scriptnode for a problem that appears trivially at first sight. Another thing to consider is that currently the usage of any node that connects to an external modulator cannot be compiled and must be used in the interpreted graph.What do you prefer?
-
@Christoph-Hart What about a adding an additional pitch modulation type that has two parameters. Regular gain style intensity + a pitch value. This would (I think) remove the need for additional overhead for the other modulators, not affect older projects, and wouldn't require the use of scriptnode.