Flanger Problems
-
Hello!
I have made a flanger in scriptnode using @Lindon's post: https://forum.hise.audio/topic/3125/scriptnode-first-attempts?_=1681206983968
In this post, I took the last HISE Snippet (Which is Script FX1) and rebuilt it with minor modifications (Script FX2). I also made another simple flanger (Script FX3) to try and see what was going on. Basically, the flanger has some random artifacts in it when playing through a sine wave and I was confused on why it was happening. I have included the snippet for you all to take a look and help!
HiseSnippet 3083.3oc6c0DaaibEl5mQdsi81j1Dr6oBgE6AuE6ZHRY6MAEnRww1ItMNQvxIaBvB3RSNRhvTjrjT9mcaAJP6gdKaO1do8VA5gEsG6ghDzK8R2KaO0SM8Pu0B3dn851YFRJNiHkHkh9g1gxWLmYH4279aduGeCYMScInkktIWl42+LCHWlEA0OSyt0cZIpnwsyln1AMTE0ZBM413LCQKKnLWlL4tKt6Lymmi767JaHhFjDzuINtGqqHAuuRaEa+VqU86onptsnLbek1Tid0p6HoqcGcU8NHnjCThyPT5HwlvGHhGVV.WlBaIqXqaV2VzFZwkI+F5xmUuk9IZNi+wJVJGpBwGvyUGcgbZdacUYLhwsxcmVJpx07lxVbbY.07I.4bH.WGrqhrR218IDWkzQQ+yfldjIKK7xw.OdZ3UhBdAgDGEhx6fHzMVWtipnMKZvr.2NTz0XPyNZ1PMKE6ynYQScHdMPMEaoVgiwrgfQDCYRfQWF6RfsZz.JY6Cv7fsexjgKlIWPZzBf5RlJF1n6I9lun6gE29I7LDFml4x74fhEKtkVSEM3JRlPDh1zx3AP6SzMOZ42YaGkx24891EazQSBSdKZXBMDMg6qWSU7rksDaanB2CcduewCU0kNptxm.euE9zElegezBzmDAnafGwxRsD0zfpVAGFV6Ty1TWcYsNsODZ99EOVTsi+0KfB5.nc7Cl0smdGaEsl6JZapbJRG8AcZWGYWPBdGWzgZKSVN7oRNtD9XrzScnlL4fuB8ysSd7wYb6j2qSN7jApYiZ2khhYZYb+ezbwwxmKQl61pp5mbG81FJtBxHYERa0zUOynktlhDtImQ3Aya2VuC5N3h06IZsunhJlA+XnoE4hLGnzJn+PR8OPWFQYJrsnDhBdVMQ6VX0GjIQajrJzbEotxrK3AJdNDcoWJB953YE0glfvTa7DEaCkQTGKgZ.MsUfjot6QHswrNRm6X8XbuRhpbOFyowHmb8cnTN.FOzk.MTNke8CHxXbLSg2hZJPOnDBxeSf9wHdAQOQ3TVn+1TPmYTIDrOGvxPEszZeEYb5dLh1tvHOCy+DSQCh3IOOWDxuyPRGfgz0DCWVzdEDZMgqzbbiyrAv4dPKnsCBcwo+5eb8L5uF3QVvAdB9qttunYSnMYsOQSjaS1P2Uh7NBcd6ngDksc.5tJZ8b4d5K1U7z.2h6qeBzrG+3d5KdjgQfVQFYsgF3kYvs8K+E3e+gJ0OBdhCoF252Q5O9EM+c2nJd1Uf3CSXTgXCYDAnWHW8YUCCxbbg.YzXiFxe0Y+pZeiM+qUvP9Jf5s00sagVepWbuZUZbWHtjW56O5vecv6Op0W3QxhP7gRJeAfITBpbLTnW0RSm0WWws+IpZ4RfaKKuudcklZL5kQJ1l4URF.4tarkAPiklG7oW+yu6+3S9oA4AjQ5tDLDJeHJ.kAyAnsMJLKLTmkwnmiM3InI5ruZlnKPg1qf8o3.YHxOVVDeUGyz98NFAbzBkYSxFl1DSOHgUOlMnx8YwG2nw1iAMGErAoL4kMfApLMum4rTqYScqY.mwQT3NPsLKGXIfk8Qq312vS8GVUPZJ4UFdJ42ZHDke2PDkQqW2WJ4bNpfAIi8NovxL2tisdaQGrmki0wdRjpLD42rqXNtyIriznXi0fjn96NU5p7EIChdpT.zti55ryjE.nYcqUPcLVWx6hrF3bfPcm6kU3BDzhPZPKIsfVZP98ceQZPKiZPK8y7wa33xZRNsBz9rtnuOq7oNsl5zJcL37odsN48Z8K9K3e+qJrb.WOSEFqdsNt7D4RrGrBIJOXozDGdWX+vTWXGVWX+3m8m9uK+w+8PbgsbpKro4c+RsKr8yVhicwxIS6hBCmcQju4pPQydLxunikQRWSWmbu3EdezA9HjfC7ICyZjMC7jERMqmTLq+MSyLwjJyDkSvJnYYdZZs0kCKWJWmBwdCIoTkFKAzsjTTI0TXHVBQFW76mEy4.BLHFWlY8Eu4GHdmGav.W1mdfkTxZQZjnP3Zb3S1WNlbTWI3bfUYLMf6kVCC2uurMoF5njpwG6XBXWLELtd1wBH.nzJ7TPB.3KUhAT4ABrnZNTCneTHq.tl1XA2BnlDDt0sJsFmiz31lvePGnlDUfleFNbgm8kU3hGkiFl4A7q2CoimAjjADMsaQBtJtGlwxEv+fHLFEtSECWVkv1usgSra8fC7uVKQqHDblP26vW1BMswkSoJ7zMEsEwplapXYnJd1FcZzv0mOlVvZrZxvS8JwysZeHTVFJSNcux9jIyPVJMEPV8BjnBhOrtclFgejdw1a1RJmlsjQiVddk.zxakRKGGzx4.FPwiB+gmh64UjZlOJpYlLASf5b3avNxLontKYF2tWxXenQ28OfmmpzrfgIavacpgIzxo3yQSBV+am.la6elPbRQvjI4A4RSdfh1pW3hMQHYGaRg9DaR4zXSFkXSHfMMpjznRRiJIznRJmFUxXMpj0R8jdb3IM.HJKGJoD2dRkTd9ySFjxmGPr7lohkCKs7+sLt3BdYHA3UNgGfW4WaBvy8wCymFg23JBuQ4fMz0OpsHYusy8nc736ta8cJBHhyCOVQB5HFNORrz5HacivdQOz+WhABg9RL3mARe8DLgd8DrHvhPjOnwoBSq2PAfX7FJfAWzJsCyFAZDqGAvH9BIXV.yXtC9GUn0610GPkbn0iJ4PSK5QdF5Qyf4shtNRFBPkkgRz2B3XBUUAwo95JD2huHV25u+Ep8mNfo13KGUswOd36YF9bF7xgLmAgUT5+1+yWt6g262TgiQKjnZKLwU8yRcSuFngK3b1DJBCzxXYgQvxXXZ0yCZb3AHFJehkKe9XfK6ToS+sd3xwZu.Mdl2zaxm4lTlV56l04oUY2L.COSX7sCb9wUYYBHwu.08TOEc6nxBh4dm0SAHrnknV4asKcq7MG3CVSXkalttG2n3iT+jV50Pd4oqgbgWWMjKjZHe1aHWX1aHWHJC4qmFBSpo79aJu+BOQu8flnB3TQjEODG2xfe1jckH1rgophW7UEGrb4pIE4xrLo8nawLEc4NMs.HfBfKRUaSQUZSibBJlvOJJlhbJlNtb0pCacwD8Vsn2aMQbO3s9owSsr5Oo8WToO0pDtJoJGkIgyC4dWZHm1o0iTBqdjXBQyq9fFTsCcgI9rnJtGP2pnPnuUQA8yj7h3jkkAGw9q3x1jkT4F8sjNFB43XT+FTtC6P7vUnQ2T3xT2FzwOOwKphA3iSTUXwEcwgn8vasjnGdC2tscZgvBLOfbee33S8wK0GuTe7tv3iW2BDm+0Mm7V80D+dFbIVOUlqgWuzim45yCvXW6RGiEuciVqbOY2E6zJeRvcVgjq6rBwyc1bWFbmMIVDukSKh2YVQ7VNgVDukuTWcrCpD43mbUVQtdez1H4wK0EVgcqe9+9GV4eVgcMw37EdYpTWEua0fS6UGG0Ug26.sjZcULmScUL6dpyck96YMvwXESEyu8QyBybIxGGXtzGG3E7TEkGvWJMSQoOMvW+dZfy7mYjmSMIjXrmAQYdCmNuB3iDOFR9ZxSBo3Fjiana1t3cgn00bd5C84iJew+7C98w8iJuQr+nx+PIaDD12TTyxP2BxSek6oOA591DZ2Qic3NMwLJ7zaazzimVz0qQA5FqIpwbwPGybk1EGSp+tPZKMQTTs0gnYi7C8Wtk9B1Q0B9QJx1s3oOQ+lEna9dhlxH9hDyWd8brgVmOdgVustpryqBG9v9LnWH3mg8qCvuyh51N8WzdbGE8OiIxWl839wq+pDKrg+sqOWHe65Oux36iGeFJLNuGFqqfsZrk1wPUj1HAiecj5WCwNp1dsxpNsqtltWVC7Yz6AsMUZ1DxZfMrIzssswgv0skqWcOnJDujGUXS2G4hpnIw2mQiVvGeZwf3WuMvAtEw1.JNS3awUz5ZfZJ1RshOFwguNAvnqB4RfsPqyHY6Cv7fsexrV6CYBLYyEeK.xTrPQBqr3rgWNMRh4z3dzVTxT+.Imb+hU5eCRKn4slHYAcvt3iKxycr+SBuDWazxEGHIgkW+.zpOgeNBiv4TdDNmUGgyYsQ3bVeDNmObDNmaNvyAuRsaFsvx7nFpskiCoYbbVgH9y8+AfJJkyL
Thanks!
-
-
@Gudru Let's talk about example 3, as the problems will be the same in the other ones.
One thing that is very different from most other DSP programming environments is that scriptnode requires you to define the processing context and the control rate (= modulation update rate) by using different containers.
If you're making a flanger, you need to modulate at audio rate, therefore you need to put your entire processing chain into a frame2_block container.
The second issue is that you're using the wrong delay type. There is an interpolating delay line (
jdelay
) and a standard delay node which crossfades between fade times. For a flanger you need the first one as the delay time will be fractional and you actually want the resulting doppler effect.This is the 3rd version with the corrections:
HiseSnippet 3236.3oc6c0DabiUG2yGuYZRSJsPq18DZzJNjEsaTrmjrsBIxz7UaXaZGkIMaqzJEbreyLtwisw1S9XWABI3.25dE3.bAgDRrB3FGPa0dAjfdY2SHPhhPhSbnb.j3vpk26Y6wu2LdF6Y57gSpmdo98g8u2+ud+++2+eNkM0kfVV5lbolZ2SMfbolAT4TM65qUWTQiaq0QsCppJpUCZxs5oFhVVPYtToxbKb2olJKG42yWYUQzfjf9MwwsmthD7NJMTr8asbo2VQUcSQY3tJMnF8hk1RRWaMcU8lHnjAr.mgnzgh0f2UDOrz.tT41PVwV2rhsnMzhKU1U0kOsRc8i0bF+dJVJGnBwWvyUAcibZdScUYLhwsxsVcEU4xdKYKNtTfx9DfLNDfqB1VQVoU69DhKS5nf+LnoGoRyBuLLvimFdKPAuNgDGEhx5fHzCVWtopnMKZvr.2NTz0XPyVZ1PMKE6SoYQicHdEPYEao5AiwzAfQDCYTfQWF6rfMpVEJY6CvrfMevngKlJSmznoAUjLULrQOS7CeF2KKr4C3YHLNMyk5CAEJTXCsZJZv4kLgHDstkwcg1Gqad3bu1lNJku1q+0JTsolDl7VvvDZHZB2Uurp3oyYI1vPEtCZduQgCT0kNrhx6Ae8oe+omZ5u8zzSh.zUwiXNo5hZZPUqNGFV6Ty1TWcNslMN.Z9FENRTso+8qCEzdP636MqaG8l1JZ01Vz1T4DjN5ca1nBxtfDbMWzgZKUZN7TIWu.9ZrzSEnlL4hOG8ysSd70ob6j2qSN7hApYiZ2khhYZob++box6X4ykHycSUU8iWSugghqfLRVgzVYc0SMpqqoHgaxYDdv7lMzahdBtX81hV6JpnhYv6AMsH2j7fElG8OtJMsLPn6dZUPylXEEKJdWcYz+K2lhRHp5okEsqiUoPlIsQxuPy4kZIGOsGP44Pzp1oR36imkUG5DBmMvKdrcUFwerTqAzzVARHGtWgzPS6Hwtk0d3dkDU41Cy8wqFx82g54.X7PmETU4D9k2mH2wwrDdEpk.8fhIH+R.8iP7GhtivIrP+UofNynhIXOOvxPEscaWEYb5dHh1VvHKCy+XSQCh3IOOWHxuSPRGfgzUCCWVzdQDZMgyWaXiyzcfycfVPaGD5hS+8D4ZazeAv8sf8bB963tqnYMnMY+PQSjqT1P2cm7tBMuszPhx1N.caEs1tcO7IaKdRGOh6neLzrMe6d3StugQGshL7ZCMva8fa6G8Cw+9sqT4P3wNjZbqecoe2Sq8qtVI7pKGwulfnBQFxHBP6PtziKEDj43B.xnwFNj+7S+Ik+Rq+oqfg7EAUZnqaWGsmU63dwRz3NWTIuzOezk+zNe9nVehGIKDwGJo7oAlPInxQPg1UKMc1ycd29GopkyBtor7t5UTpownWFpXapWHY.jKvQVF.MVZdv6e0O7V+82662IOfLR2sfgP4CPAszaN.ssQgIgg5zLF8brAOBMQm9EyDcNJzdQrOE6KCQ91xh3K6Xl1u2gHfCWnLcb1vz5X5AIT6grAUtOH53FM11Ln4nf0KkIuLDzSkoo7LmkXMaraMC3LNhB29pEY4.yBrrObd295epe+pBRSIuX+SI+p8gn7WI.QYz90ckRl2QErSxX6KJrLyMaZq2PzA6o4XcrmD8JCQ9RsDywcNhcjFEurFjjIfVKkVJegxfnWJ4.MZptL6JYZ.ZUWedTGC0s7NKqAlGDn6bOaEtNBZQHInk3VPKUI+9FOIInkAMnktY93BNtrFmSq.sOqy36yJehSqINsRGCNehWqiduVe5eB+6esBKGv0yTggpWqCKOQNG6AqPrxCVJMw92E12JwE190E128we7+Yt28uEfKrESbgMIu6mqcgsa1RbrKVLdZWTn+rKh7MWEJZ1lQ9YbrLR5Z75j6Yuv6COvGgXbfOoX1irVGuYgDy5wEy5e4jLSLpxLQwXrBZZl2lVCc4fxkxUoPr2PhKUowr.cKIEURcFFfkPjwE+9YwbFf.ChwkdVWwa1dh2ovFLvkBpGXIkwVnFIxErFGdx9xwjqZIAmArHioAbuzZX398ksI0UGkTM9ZGS.aiofQ0yNV.A.KLOOEj..9EVfATYABrnJOpAzOJjkCWmarfaZTSBB23FKrDmiz3llvuUSnlDUfle.NbgG+IqvEMJGMLyB3WtMRGOCHICHbZ2LDbUXGLikqC+CBwXTvNUzeYUBa+1FNxdz8Nv+x0EsBQvYD8rCdaKzxFWhkpvSVWzVDqZtthkgp3oq1rZUWe9XZAqwpICOwqrO2nwAPYYnLY5dkBJSlgrTpIfr50QhJH9v51YRD9g5Ea6YKoXR1RFLZ4yWoCZ4MRnkCCZYdfAT7vfe4o3ddAolYCiZlJUmIPMO9ArkLSJpaQlws6kL16Yz5LE34oJMKnexF7FmXXBsbJHczhf0+1Qf41tmIDmTDLZRdPljjGnns3YtXSDh2wljqKwlTLI1jAI1DBXShJIIpjjnRBLpjhIQkLTiJYoDOoGFdRC.hxxARJwsGWIkO+ihGjxOpCwxqmHV1uzx+6b3hK3YADfWwXd.dEeoI.O2WOLeRDdCqH7FjKVUW+vFhjy6N282xiu6db3oHfHNO7HEIniX3THwRqCs0MB5i+P2+vFHD3G1fe.H4SVvH5SVvL.KBQd+pmHLI+pE.hvWs.FrRqH2OGNnArFE.C3GofIALi3o5ePgV6Gge.UBiVNrDFMtnGYYnG05LWVz0VRe.pzLThtVTGinJMHJ0bWtnVPFQ5Q+MOScl0AL0KewvpW9gCeOU+mGgm0m4QHnBU+W7u+jsO31+7U3XzBIp1BibU+zTOzq.p5BNmClhPOsLVTX.rLFjV8TfpGrOhgxGa4xOeHvkcp9o+bab4Hc9fFNqa5C9S9Qkoktd.ddXI1CHP+yDFdmJmuaIVl.R7qiZgpsBwcPYAQ77z5o.DTDTT67sz4tc9xCdykDl+5I66wMH9H0Mok1MjWb7ZHW3kUC4BIFxm7FxEl7FxEByP9xIgvjXJu6lx6tvS3GYnQp.NUDYQCwQsz3mLYWIjCfXhp3YeUwdKWtXbQtLMSZOZUfSgWBTiK.Bn.3LT06TXk6z.mfhQ7qmhovmhniKWtT+VqLge7KZ+QSD267Q+vnoVV5603oqzk5WBW4TECyjvyC3YuPetrSpQoXVMJwDhlWMC0q5I5LS7YgUvOfVUVgPWqrB52S4YwEKKCNjybw4sEKoZN5ZYdzGxwQnlNnbG1g3gqZiVovkoVNniedjWnE8vGmvp5hy5hCg6g2RwQO75uSf63Bg4XdA499vwm3iWhOdI93clwGuVEMN+KaN4s3KI98z6xtdrrVCtFpGNq0OpCF6Rm6Xr3ifzREaK6tXmV4iCtyJDecmUHZtyl47f6rwwB6sHCUNovdGmE1awyPE1awIRjUWBTEqXHDTk8R+2vKlQcdtzd6U88wO5JKjLs+d4QJSmqqJj+x+667n+5u4e1VUg7n.9aVyrnVsLl+QipRBYPeQeAuna8h9xCbNYKstMe1u7Ort.JvQt9tbT56ODw87CCdPe3gcUwH0Cxj6sk2Rvus8tGhU5UD+63zjvBWr70XlI40XdFOEWjAb8hE+zUlvo45BkRRy03JMW68O9Y+30+r+XxqxLN7Bub8bIljgfHdA6aeQQVIfcltF8NSsFxXZqowT78WyoyKBdGwifUNUCstwX6Zjqqpa1nvsfn0uy68gdoSTHcDKK76u6udkUEUEIQH5KotmN5g214e1nzai1CsUA7RUbXaIgCl2+6dz8jrQPXWSQMKCcKHO8cts9Dn6acncSM1g6zDynvKuMQKOdZ8NuFEnarrnFyMCcMycZab1.7O+WanIdfJrBDsZjumuCCz2vlpVv2QQ1tNO8D8aVft4aKZJi3KRzOxTYXSpQ1nkTiM0Ukc9vDwGzen5yQIVjwQr3p.7WPpVsuVq.6uLoiB9yf432mNx4bYgdmykNSD0kAtllXQCVZz2lECZ1BqVXofU674ACMHRzp8v3TdXrhB1h2FZGAUQZiDL9EQpeUEapZ60Jq5z15Z5d4qwmQuCz1ToVMH6tCAsftosMN9yVsb0R6.Ug38qohx5NHSYhlDu2FLZAezoE8he8p.G3V.aCnvDguEUQqq.JqXKUO5XDG88H.itJjyB1.sGojsO.yB17ASZsOjIv3MW7U.HSwBEHrxBSFd43H8wiimQCQIS88kbx5NVo+BjVPqaMQxF5fswWWfm6H+ZPXANr+S6KIgkWeSztOAOGgAXNEGf4r3.LmkFf4r7.Lm2Z.ly064bv6T6lTLrLOpgxa33LcJGmUHh+b+ezkBY8D
Be aware that you definitely need to export DSP networks like this as C++ - frame processing is super slow when using the interpreted graph, but will get a 10x performance boost when compiled to native C++.
-
@Christoph-Hart
Thanks for your reply! I do have a question though, when I play low notes, the gain seems to sound quiet, but when I play really high notes, the gain seems to be turned up. Its not actually, but it sounds like it is. In this case, how would I make it so that the gain sounds level on every single note for the oscillator? And the LFO seems to change speed to low for low notes and high for high notes -
@Gudru Because you are testing it with the wrong material. A sine is by definition the worst signal, because the harmonic content is, well, there's no harmonics except H1... So you can't hear the recombination causing phase modulation in the harmonics because there is none, and all you get in the end is a tremolo like effect...
So just stick a saw or a square instead, or a real world sample and it'll work nicely -
-
-
-
All i would need to do to compile this effect would be to follow david's video on compiling scriptnode, right?
-
@Gudru
Should work fine!
At least it did for me. :) -
@VorosMusic Thanks!
-