Scriptnode LFO shape
-
@d-healey Didn't try much, indeed
control.resetter
works but actually it might be unnecessary : putting the two oscillators one after the other also works and they seem to stay in phase. No need to bother with a convoluted send/receive system.HiseSnippet 1135.3oc6X8zaaTDEeFaOowtoUAodhSqp5gToRvNTnEgPN3j3JKvQVwgnbqZxrShG4cmYYmYShAwI9TDt.eC3LW3a.m3DG3Fhy4a.LucW6cW6jzfUaxg18jeu27l2u2emYbuPEiq0pPDt5tiB3H7Rj9ijlAaLfJjnNahv2mzkpM7PmDVsFEP0ZtKBiK+BfAtZET724MaQ8nRFOiEBsmRv3ekvWXx31a8uT340l5x2U3ma0Oc8NLkbCkmJxhmxj5n.JaH8H91TXYkHH7Ba4JLpv9FpgqQ3JsTti5OPchLY86IzhC73.QCTe6FkvtsxyEPLvEsw.gmauw9sFY2kdYQgxIQgGP5JbES3mEMVNVfSlF4iG3RWE7ZjGd0u1vCkCcURPmEDJ2HOpoHxfzQp.gpXlpizvkZgYT9z0sJbeOROggM3hwaoK.u1D0aZ7ll7uGYqCOjyLYfsBo89u4yzX7rwtZj9rPQfwZe.HKkR5zd+FE.TBaD9WHN1dHswg574NaIORH4qxB4VTtoNXat4DU3vUdH8gO9yNLRxf3tSPHOfFx2U0yiNZEM0OviuiUgm3bfmhMru3a4Ot12UqZsuulSNkhQZKXEqvFPkRtmd1kAsyRSnxaEYj+A7vm3bL0KJa+loit7kGHy2QeA4wcTQFg7ntTSn3TDlrcjee6fDFeiTzY4gKg.UioqCzPYUetzMl3eseoBa.z3TgMFKDANCWZr7SCkwYszea+EjhJSn.OkqEzUZSYVmaTOpY.TxaSMFaMEObU1jZKX8ExjVmuGMzNxyNzUCMC3xVGMfGZD7wUI.ks2nTRMQG8dfTF0CsGDdgsAAHHAdIPAV5cI9J2XS2.U.ZOHGzFuDjMBlO1Agih8.iMwB4Lw8HJMyNdG51mxHf+GxWMS9q1BanfpwS2jZnfqroPGXKRaEY6OS5XJvAx.RW9oSxW4hiVTNgxJuqPlFpxluzkd5T7Vd89Fd.zAjetI3lK.yz3noV+hqixYjEtdF4QSaje9ry90l8GxOII5kxc8ev+2aljDaGx+lHtjMB8EQFkusyIdnI5pcvyaNqsqeoN3RwVwYGX1LZlcB8+OVddyKOV9BqKb49RkqqAfM6NjdCn5WW61BwGpl4++3Yv2e1DkqheobU7usUvCme9tB92xJ3qQzhiVydLwZEK2uOwZ+AqlJ7UVqiKTrhme+Og8rorbPlP7i7Jh1ZInE3eagze6md+O7udz+T.o2gDvoCmJxd2jAIfjazQH4A1hDlGmN8Y5KkDEiEcKmwyOKROEQQikTnC2wEccs6DF+Q2CVd+O8uahw1KCJ4wWyELPoLxzKD0wc5aCMACfn7S0d8O2DcgvovQU2jn4q6LtbL8Jz4tQqsfjerfwSdvSUxlb8PiJ3l4F89TVn5krjGo.4wEi4XuVtL9OcnJoKP6z.cbh6SH0WsNxW3JdIiAuL7CrOk6h0Ys4PmOZNz4oygNe7bnymLG57r4Pmmek5.++Kom0AE2VF81Jt3Bi2RRsuULdVC5+.Dvd1bA
-
@Matt_SF I like the simplicity! But your snippet is giving me this:
-
@d-healey That's odd, it's working here :
Maybe having a parameter to reset the oscillators' gate once in a while is worth having after all... ?
And the oscs do seem to stay synced when changing their phases btw
Edit : and which osc's phase you choose to change doesn't matter, the end result is the same -
@d-healey About this case : just inverting one osc's phase gives you the rounded rect wave.
-
Here's another approach using a
math.expr
node with theMath.smoothstep()
function and a single triangle oscillator that is being rectified:HiseSnippet 1249.3ocsW80aiTCD2aabNRtxo6j3QdvpBDohdQIG8NNIDpkl1TUQaunlRg254tqShU10dOudaa.AeY3q.R7FhG4Mj3i.R798M.Fudyta9S+CQWyCs1imY7OOyuYr2NJoKKJRpPNUNYTHC4rBt6HgdPqATt.s+NHmGgOjFoYJhUz1iBoQQLOjiyx6YD3ToDJ42a2bapOU3xxEgPmJ4trC3AbctzNa80be+1TO1I7fBZuwV66JEsj9xX.OKiafBotCo8YGQMpsDF4TdWOtVp5poZVDxoz1RuQcGHuTX0+TdD+belYRSTWvQVwsk9dFDajhZMf660Y74NBAdoSdTXYaT3CvGx83YxyiFONYARtEEiGNKMI7VdB30rH7ZT.dyARNEfTIKjdBtqqhGpyWwfmGh2W.ImdTHrWDJVcQN+NtkDTPnqGPGxZqfIYFT6EMZrNA9yZeQuXgqlKEDo3Hol8JQs0p9CUqT8GqRldod8l6ZlsQI88Yp4trISqtICqIhCNmoVmbA0OlkoHb7mLlhu9XZwTtq8TWPQoXeAW+pPl35HBnzPEL5a1eGplZRDox.8BYJM2.AmcXW.rZaZoBdGVzPsLD30yjy.1hzK1mpmjBYpaRW.hASj2LIGQDWOpXc08CuBaw3GlxqLYnSoJNUny.cBdIoJPLZPRUgjoSyaG+iIi+MNOwGpXgTE6DYGe5nZQzfPe1wvwachcbTGlZaeo6vY4Lg1yPxp0NOtWOl5ZYquyIx2FcEemSUMuwTUAx3QL8kR0vj7W5XXjM0DkDZOSColytvlZNKHO0.FH8L6VapKHXTGpdfoUho7.HgLUc2Ld4s5rIa0YbbR2S6NTx3hUvxHWn2dB2YlsTwpWX4Vxf.y4y4mveK6S78IwQLBknMaaeeXnvinXPXu2HBWStjqGPzCXjn.oTO.tQJLOsTquTZrY08Nn6AEzXUBomTAthvtJDtaJodi.YiDOZhoqM0oBPEP9tZb0+N7HvtQamPxhlQhIMH7XWAocm+E9g5PUvcUZqtkylAqeHWbpgpT7xwCoWMkrGuUW.1c4eOqX8iIzV1zJggl1GagJrIktaaxGsk8li1J1ahYB2Q4d8u94vur5u9OahtYn+1Mm0qMtVnuRxNQN1D8Qy3Iz++nDzQ4ZiR6A0c27lT5ttIFG9.bmAznYi6nE1ikSZ+OGHlVoZzoBNh2+YPo2jEQOBG.+u930lf45LA0yYwOuVwyddKTlWFCkSSUf+PK1RVHqztM9Dnh80I8HeMICSUgpYnf2yLN.5BkTWupRFK7DP+uUIxd1R82DCWQTcpRzBWEixlA22rjEZsJTlrA71US.KqgPMtHLVuNoQ8m2i7Tay6zYeZZq7j6wK5xG.2vedb+w9zYYz8Tn9k+xebwu8w+4DLgx3PFc3zg5jdoIKbu08ZxI2muG5I3Nbs6f4+fnklyCJLo82QOHBM6S+ee7tPvwUmCvR31e28y67QGKi0bQefkp3l7vQwAcgu9wkA6tPv7MO30YIyqAryaXlah.cYBuFiSboK1zL2IcwlYY0.pqRdlq8cKFVv6kHAvjH46pp.EIvbRSzEVlHF2ndCT.7cNm45ZN9OEds77s4YKfMe1BXyFKfMOeAr4EKfMe9BXyKuQaLeh4WEqkA1xAPPmcSp+bb1UPAlUBKD8e.Su9RO.
-
@Matt_SF @Christoph-Hart Thanks! How did you add those annotations?
-
Rightclick on a node, then enter it in the
comment field
. It supports markdown syntax -
Here's how I do it
HiseSnippet 1222.3oc0XszaiTDDtGa2NXmrqVj1e.iVwgrRKV1KKOjPnDxCGYANxJNDs2V0omNws7LSOzSOIwf3B7yfCbiy7OfKHARH9OfDm3DQhSbB5Z5YxzSrSbhIKO7E6t5tp5q9pG8LdfTPYwwBIxow9ShXHmUvCmDpFs4HBOD0aKjy8w8IwJlz0HZiIQj3XlGxwo5Nf.mF0PoeNesMH9jPJqPDBcffSYeHOfqJjNX8Of662k3w1mGXc5msdOpHbSguHQimp31nHBcL4X1tD3XUvHm5a6wUB4PEQwhQN01P3MY3Hwoglye.OlenOCVzAMTaHi3tBeO.wfTzli39dCxi6Xj1JCJXgpFV3g39bO9ExKXiGjtgagF17gSkqCdcrgW6aL7PVnqlAcZPH7R7IpxHCRGYavEkyT8BUrvXtZhc55eU39p3AbEczrwakYfWch5kMdyR92Cu8QGwnpBvVC284u7yzNNSycMwCoRdjR6e.Hqjszs6y6TBPFwHmuGqaghUtmPjtRQRn1c6oCE22yc6vi4grVTISC4shi1koNUHGu5irN1id7617njPJjObijrHhjsuXfOYxpwjfHe1dZceh6g9B53g7Og83leZyFM+rltVJkFAa.mXU5HRXHyOd5iAs4gJove0vjfCYxmnAreRg8lpSu5USv1c5yH+tmHQwCOtOQI4mgbv6lDLTOfgx1LCcZYNUPfpoqaCqgxsgrPuzE+o9S1lcf0NYa1IeSDDLrPkVdFqllMy9s9WPp6dXKhF1U3AvuKgpCyICHpQPSgN6ozUcLYK5EUek0rbYHXEiyRMWM37MwABOi5kr9Csr9EmPSG1DADak7P0bOzvxCqfEwT8LbnkFMUDHYsr1ddNnxlBnx5rsHJBDHawiizEbajn6AMcEkj.rolKN6Bte.QpudPYNa8KVo2uOO7.npxdFRexYWR1CVenhEAUy1yFgnrNL2hglxFHKmTeZmb9ZS6jWyxIoiDFyN0vaYmY8uH3mRc5x3tR1GmvBoSJ77x+3m+6izFFc8g2r7b6qL7VI0St6ASeQSYIzsmIOesqlI2Q2Fe8No1M0IfAWBOXDIdN4lakEqmd84LfnorGCmoANle7S0sNkq4uONP+cq78lSAe9c.NUzy6sqccVbxvHdZxvpkcIbDiLtSYjuroaE1Y9CBJtpdeh7XlJEyWVHLfU6zdd.acHOR3SjE4DPbNZ2NjnGfmRD2zfEcGNpvlaJP5LlFqujpU91ycV1skivXhm2BvOm+syjeJUOUcQ5fsqmd+DkPWYmggoBB8klWeE6rAowCCoDe1c0TGqgoviCX7vNjf.RgG94e4d+1e7U+Po94kvTe1ky5qX5lM67eydYSUSIT2zfZP97JRuZjhuc4vaZURIjGj3OSjCxWbj+2ii+5u76b+F4uVp1nY9r9N+ObXe8zg8K9r96xmI6RKjhHlTwY4uuCrR+VdULOQRu3Cfc0CGxCPmpkMvG0KGTYOzskE0vhcBmxLu5TC7Vr3wJQz+LuCP.gJEuH6FCH5dkTI5QRgo+8EMv8g0tcPmXhLLtcq1n.tG+ETJ7Nlut9kBmsNOcAz4MV.cd1Bnyat.57VKfNu8Bny6bs5.+SNYSuf++AsfAamVb43Tb4aUzeAUld97A
using a math expression is less convoluted...
But the cool thing is that you can go linearly from sine to rectangle just by using the Gamma parameter ;) -
I've built up Christoph's example into a larger module. I'd now like to include a fade in time to the LFO. I've added an envelope and tried it in various places in the chain but it doesn't work as I want.
Any ideas?
HiseSnippet 998.3oc4W80iZaDDeMvVUtzVkTEU0G5CtR8Ahz0HHIMMR8gvcbPDp4tCcPt12P6YObrB6ccVulTTU+t0OB8yP+DjuAsy50fM47Qnz6hpT4Aj24O3eyL+lYGFnjdPbrTQbpOZQDPb9D5vEB8zNSYbAo+QDmOhpgXM4vEQr3Xvm33T8EFcN0qQR+71meHKfI7fbQDx4RtG7RdHWmKcP6ejGDzi4Ci3gEr9Is66IEcjAxDDGUoMIQLuYrKgSXFypPQPz0mqkpgZFBFhSsCk9KFNU9Fg09y4w7KB.ygVjg3OjUbOYfuAwFojNS4A9CVFuwDhCcPdzW0F82mdL2muRddV3toJby8nX9vox5vq5ZvqUQ30r.7JARNEfTMKjtGcnmhGoy0Xvycn8EZPMggo8hPwZKw42ocjnAB8CCYyfdJ7vJGZ7zlM22E+5A+vjDgmlKEtRwIRMbpnwC16W2q9d+1dtuqpISJUm40njAAfpT0lJsZSN1PjDdAn12cNKHAVYHF9qmSoWeNsXI2yF0ELTJ5K35Si.w0QDHYoJ7oW0+HllYJDYxP6h.klaffyQvbjUaKK0oGAwyzxHjWekZFxVj9IAL85THSeSlBLGrVcyTbDwb8hh8UuKup11wq1Lseag68nC3Zuoki2JkfWLqcai2rtzOk1cxDvSmC1Zzd+7FaIuwgxmYgxcnC4BHcjYJP9hzyt+DaN39BP.JSRs00M8r8W24O11omQa8zyS8z3qejhIhijwq8CODB4ijBSFIW3qhwADvqOyTkKJuijoJU0aedOLHK0mgLchJktbPnLQnWidTcqqIEaoWuqof8kL+r1s0H8Onsd+6mTr62.UYvUVI3tHmNLJ.5JlCA33vTL9437uIrj.8RoqSxOVJjQSkBtWQFvYfVwu7RPUD6kFPGn03N.4Rte6yf.fUjM+MseIxBYJLOA6Xtn0+3aiKsd8kTKbcMclt+mZBO0B6uJaIBC.Omo3LgdUbjFBtYFXCgLSbWYyid+gxxMO9SZ9s7QJHhofQxAArEMhYFVDNx.1209b7.PcXfza1UWPHxFCoZabQBNuWcsqlbiu0x6a2D5MDCqvlGm.52HUyRocYOiOYKMwoo1wZrzLdtszLNbYoo0s6VKabMfp++bMfyjIZt3xiY3zreAYCmjDNDu80CPjHDPfYcUmJlxq8bSyY60uB+zC+E9ISYKyYmLksVp7Cx6Hj4oji8rjcCy6iSkfwsH8edUmdr4raKRZC.5Gs4CaRBwqMG64YR2eKleJ2mGsC973cvmmrC97c6fOOcG7462Aed1F8wrwxAIZYnsUDELnaZuuiSWACYxordxe2XsKAI
Also, how could I add some random variation to the frequency value? (another math node? or could I feed my noise osc back into the freq of my triangle osc?)
-
@d-healey Are you using new_layout? Because the snippet crashes on develop...
-
-
Also, is there a way to get the Math.expr node with the smoothstep to be bidirectional? Currently it always goes from 0.0 - 1.0 but I'd like it to go from -1.0 - 1.0
Actually I think I can work around this by editing the modulation table.
-
Also also is there a way to get LFO to restart on keypress, so every note in a chord stays in sync?
-
@d-healey Built new_layout but it crashes too with your snippet...
-
@ustk Yep, my snippet crashes here too :p I'll post a new one when I'm back
-
@d.healey Your snippet contains a network that was saved to a file, so it can't find it (crashing is not the smartest hint though).
However I still need to think about a good solution to share scriptnode examples (including SNEX files)
-
@Christoph-Hart Got an idea => SnippeX
-
Ok well here's my network file.
-
Or Snippnode...
-
Alright, here is an example snippet that might answer a few of your LFO questions and the network was saved to a file before so we can test that one too :)
HiseSnippet 2016.3oc2Y07baabEGPTqrEsqqShmL4POrGxA4YT3P574jNSsr9fd3TSYNhJJ4l7JfkhXHvtHXWHJzN4dtjomysdr+Kza8OgNSO1a8u.+eP66s.f.fjhVhgVoI7fD1291cee768wBzKR5vUJYjk8lGmDxsruOoehPObugLOgUm8sre.oKSo4QzTR6lDxTJtqkscsmiDr2bcKyuW+zcY9LgCufjk0IROG9K7B7zET6syezy2uMykerWPIt+jc53HE6I8kwf7TizzJj4LhcN+PFx1ZDK6MNv0SKi5qYZtxxd8cktI8GJGKR4+DOk2Y9bbPKq9vFkRtsz2EkXjp0dC87c6kq2JKKaRuBqPsTqviHc8b8lPuvZ7PyDzhUT1dXuVUwqVEwqUYwqYIwaNhjcIQZ8TQ5cH8ch7B0Eyfxy8HcDfyY.CL6kEkTdsr+Gj8j.CBci.1Hd6HXvjEr0m0r41T3OO92OHV3n8jBpTbnTyeoXqGW+OWey5eWc5zSMXvbmCOlHouOOZtSid5nEsvsDwAmwi1ldAyOlOgQP8qZSIWsMsrK2IUqKwnTzQ3oeYHWbU.AqLSE7zW0YellgNhLZ.eg7HsGJB16yu.P0otkMI6yUizxP.WOiOCPKR2XeltJDBiaxl.rAU7anyQn7zIkiqVY3pqqH9NjddZmgyWFWaNxHXodaHiYQi+FxACFvczEB35j1eysWnW8rPO3LwC+9YCos+lVyMn66IE.7vHdHKherrmOKYKEKHzmeDHiaSOyW5Lpu2ehOaTQXpHrKxwVNCYBA2WsLAOabssJsVrS4HYr1SbdWlNx6RHJ7v3f9PZZG9dYRGPydMLFJcbSbLhK5yEtlA+W3W1jsvw1YS1JexRgeGx0ikQiLtirmAmAZ6uCAz9QIVOy2WNdOYPnWF.EL+FZ8j9IgCkBOGjTJG4B4yBjwv9mIo1qcnzEzcRalCXiR5wzCQnOl5.vY7nFNSva4GKth7BTo5GbBAnPikmp.HqUJkQJpBGAwLqkhg5nNAm0g4acB50vHKy9ahAXQPMOHOMNXWobT.yXN9ImX5AoSdORePCMU5M526aFS+Z1Eb5y4fti4CZsfh8+yqaw9vqcw9W5ngi+3HlPEJUU1397.uikBTGKH9UJndF+aOB8+koumjEM2od8SaCJ4bWSelNNx.jxwHkxrUaQMcbkAQUSxWh+4jyY8+uqCjeATLydsdyz85CAbLlg8.wEbeHvvHiuKDILfE6qyoVEX2UJj4YLJ75GwgLcmeNOprrOWE5YZMzlZAkGsyQbeNqLB9C24E.xiE00jvYorEstwUslq+5CHohKEiFo+r2DBIUT+cYUTQg5DVjGSnmH6FwllWx0H1YrPmvSq2r3mWa9+bspMm9rpGOxTC9MTg9rXn8jnqri4Udyzuop9jUUU+qWE4fD+Axa+JxoG6sTE4IhVJqC7t7KN0z.mUEY88KIqk3YAB4djulSEbtKUOjSi3JtFursVROiSUBVXXBUIoiyXhQUALeeZJjiVWA8O9SVKqMQKqURK2jHjmF.0ZpphuWIULmgEne+.A0KoxA5B.CUoAwJMUH0ftBaKpnc6reGpmHLVS25rDpaZxZpmlBFCE7eEc.TzNlKbRP9wMLDhXAyArO7GW19.SONhEhK1SX30SQmHvqP7fcE7Pg9YMC1Mh2nzzKKdEYCRIcYd6e66oPavtFbfZFJnRHb4Wl2b8APlBWWtqY44MbWtKS6MlLBdtqmHSkKpH1kc4Tzd3N807P7JLUxzNhON0HTozIXm1fXJ.NyNacyO5ObNGMzF2Udz2izNGBM04G95m9FN+W+zYO+l2PU+9lyml134L6eYA3NWOC.bX2Pa+ygpAydzOKVKCfYL2reIbDySNVji3NjdCwdiVEffa5YugoY0EY9w.sRA10I4IjqFV+tlbfPI3FSleAw0+MxwXVHAvAcLjG.RqIvL4dP6nQfkmBsrF6q3zsZscysa8X53gvUvt.qB.Y5LE2ov5OC5ccLsYiOsAc2DLmlf6f2IGy0kkU7bvQRgapioRkCLj3Y87tMlhzgIRKwjlCEcD478h1ubQYeJ5T7XVz4PZYLiyzDsruKZF53NUJwIlWblLf3ABFzChA0s5A7GbIzZmRY5BAxpVMQm8pIXawf7zMXlstZzVIj18HJyEWNkMET6QjbOXiBNV.X6emB1xWTNfKBtXOz0FMLNBubs5KqWuUCJdsb.FR0PW00eRC5QbSE24ANnwJDqUtIk50+CziyGSUdmKX9ommT3mX5eAA5HZt.c53iG+1XMalh5Kg8D9OSjPGwSPXtwywc2Fg0oBulkPk36ssB9jrvp2+V7MTUxsm4IR6ybdnYq9iwW4YA5dsxDxdgKlHNoXZ1mY1xCAzPdPQozIUBIxgKqdv3zABqxlHlIvp1MNC9N+koKi9W+we7uOaP8qdu8+Wl.q6lc8UqY1Gq29G9lj7K1OSyHqnhW27B3S+tBqz+NDR9j.oa0DJOf.IfF1HetEjJYKrJGVhBhOou5iZ0nQiVuJONGp37plFJ0m5MPUotwUl4cia4Luu8dkpK8GRo1up+PJ2JexfaiyHf4DIOMqgODFeWCEPuEluK8ljt3XZKqKxJxPZ1noEdw3ScbPS7G0xxZ9q4IKwZ93kXMexRrlOcIVymsDq4yWh07EKbM3KHOqSKLjCHz6fzZV1EscVy5+we+39x