Best practice for fx clicking oninit?
-
I have an FX that causes a click or pop sound when initialized in a daw. Is there a standard best practice way to have a soft on init? I'm trying some hacky things now but thought I should ask if there is a built in function for this I'm not aware of.
-
@whoopsydoodle If your FX is correctly built, it shouldn't produce clicks or artifacts on init. Something in your FX must cause this.
Do you have a snippet ? -
@Matt_SF In this case I'm doing some fairly silly processing in Faust, it's very understandable that it would pop the audio stream when initiated because of a large phase shift being introduced.
What I'm looking for is a graceful way to ease on the fx over 1ms or so.
-
you can add a gain module, init at -100, use Content.callWithDelay to set it back to 0. make sure you set smoothing to something like 1 second.
-
@aaronventure Great. This will work nicely.
...then of course, a noob question. How do I address the value of the gain module?
For a knob on the interface I would use this. Right?
const var x = Content.getComponent("KnobName"); x.setValue (y);
But I don't know how to send a setValue or other function to an FX module directly.
-
@whoopsydoodle make a scriptnode network, make a parameter, get a reference, call setAttribute.
But there's an even simpler way: you can make use of the ramp node and it'll just reset itself on init, You can leverage that into setting the gain.
If you want, call Content.callWithDelay to bypass the network a few seconds into the runtime but the overhead should be insignificant.
HiseSnippet 2016.3oc2YszbabbDdWRtPlfJObrT4bbN3pLUEZT.T1J1kOHJ9xBUDHQwklN5D8vcG.LgKlYqYlkfvt78bym8M+SHWyM8SHUkS4V9Ijq4jc2ytK2cIfnWAqGIFpJBL8z8LcO8W+XF0WICXZsT43t5wSiYNt21yepvLZmQTtvo6tNt+ZudTsgoHoj1dZLUqYgNttK+YHA2UWww94+7vsoQTQ.qfjiyIRd.6I7wbSA09a8m3QQ6SCYGyGWh6ObqtARwNxHYBnOK601IlFbNcH6.Jx1RdNtM1KjajJeC0vz.OaKCm5ORNQjx+IbM+rHFNniiOrPojc1YDOJretspcbb85WX4KmZ42wqGOjeE8hSfeqcBRgDkOCbW5lToNu.pjaIUZkTU5s87CT7XSwLn9rlWWA3PFPgi5xpRJuNt+Kucj.CBSqwzyY6qfAWIv5Onc6MHvet2m1ro0S2JNhN8.oAmBm4de5fDQfgKEDo.oenX8607qatZyuoI45SMXvbmC2ekLJhol6znaWcSBttHY7YL0FjKnQIrqXDNWpdX2ndG1AoGGkXTJ5J3lCiYYi2WFEhGh3um003jcdB+5y6tK0PQuUFMfuXlxvQ0wcW1E.bO02sp2tL84FYL.3mwwBPJYXRD0TEmgATYS.mGUbtnGTn4lokC3dA.esuQvWcUw21qO2DLZ953RyQGgSpWE5XVH6uxauACXAlBEbEu8+yKZ7Y6W33ylYwmvdha9uwC1EkIIFys0UL2fy+pWAdOVwhoJ1wx9PH35Z533H1QfZtA4rHYv497uhMaPRbpVrMxw5AinBAKRuHwRMdIk3x4HYhgKF1iZT7KgTqGjL1GRgGv1IS6.ZtKggQoiaiiQngOSDZG7CvmrI6ficylrS9jkh.OfYlHUma8HY+1w8V3w+s8z1C4SGbYGmGEEImribbLOCnB9.Ks9xnowijBd.RJkibM8QikIvljotOlpOlxiPjsehFxUDdnvGX1Vhyc4SXJscgukW6Vv+.j9AxPXpF6SCfC1o8olQXHCl9AvmLUqfqvoUz0x3DbIxKAldJAp3XzzwBfn+oOUA0Cg74XFmkbWtTFnTPJNBBAWJce5pOAmMfF4bBh.PgbvcAYOSi8PVa5MVFlpgULf6Tx.thiZpx+Wutl2WSnQQDtfPI4xSNiEPSzLhgQ.qIF.7LVnl.HIB2X+NNwrAgcASPLijICGAzIinvZQBn.2HKMa9TYBr3JFMbJL4ELBU.aDHJQyGJnQaPlBbDJEuugLgJLvZksgFIgFFheAqqTQjWvTSTbPe3lTo9KIZCQ.pExAv23zjdL6ZLDMBpEtPF.hizJuwNu77Kq5IjmNF5.opa4cJ4VxYnldkswteNCNEmBmlCkRvBCYTzFmnnwn4xE34CIacguCYomGfUGP0rellmaIyqgG5OpZaqA1lh0xNQMso2y63bWqhoY.F5rojP1.ZRD3eQTA1B5Jk0ZmhxXGSUCAYvSdHSifEjlxv5F5FhEZrftSM3ectJBDm5Vdo1mybErgGhTpJwZd9ikRyHHmo0.fr9Wl2UwtbM1O11IPcszpNUnfGuhP1k44E2CRsGBctXEOOWYoDDneJeDnL83hLmgs972+ce2e+g8nWVlliyVe6V9FVLV8oLe9mylj5jJ2ARpytOSwkg1t4mYsbtAEv9YFE.V1qo.1OOeEXMumHkw1ZuNyrTuF1+FPiaF1Ms0HZqDluJbpBz+t1vZntcqxrTyffHrmM9foEo4XhKXQ.jmnk.QJlcEh3YZLXuCgN.uXGPRkHz1DuAvxpgFPX19p3fvSIvsH.nZozBFr+85DL4V6XhF1demIb3Xz50W8qaF9+Qd2+Asp94hCa059r+PkwsFXG+I6XG6TMbwsDZ4VuZPK4ILlYoeThQNF.R1doetXmrSu4kubX8qLuzCb87YP0p7LQjQ7giZQ7kjynZLsczzMJfQV7AVmqCQy..ZncNQQovbLUanBbnEIkm68C5ztMQiMYRPTQ1NBUUwZ8VIvRu1UJE7QjCriJTMDu0pYy9QICKTIKVrfGssPNMZBcpF2NErU.be..ISUgrZ.Y8TLgaFkWn.T+G20eOx54Mk.Jfn7ZChpSar+d.BrBp+4lqcNfmm9rYAO.PoN4Ze1v+1c2JOUC3jqK1otf35ly+Kemc+mYobKpgMyR8bUlFuZNTts2QnmbtgUO8YUij1VJOeL0d+ge1Wl+toStl2W.sdZeLEau820NFhVFS9LFzdFdE5N2vCm8Op6CmEW6GN6v.CnBGqnBcrTy5Tdku1baVdtcYlDQU1SIUgKz71GLuR78VakSbyxD6SEUVLXbkUpGdgw7g+6Gtm.yx6ayvbnN.LV50Rf1OIRy9BdnYTmxBVPdyxjeLUEB9kfJuGwxUu26J06duUeZlR7OmWJnwafGW7ky667F7Inp79Jqlqi9bref8x5hwpi+NHVzVZImZ0XqdRgL+98Ed8iXFEe3PV0pwyyfdjwPCNufxc15HVDydmmbRu2VOAt1EU0yVUdgNKdweK345u98dopKASHP9+2mNb4eQ+zg0O5CxG9+1dw20CxKuIw5JIuY7kuNdtwWG6wXZfRdZ1s8vf92xRArag8+uqU85giIcbt35sGgOJyoAAUWpYDbyEUv6unB9gKpfezhJ3CVTA+iKpfe7OsfXE8rdfwXCnMm96kdEU2zNbrgIN+HPMSRhd
-
@aaronventure thanks!
I had actually just figured out on my own how to do this with a gain module directly. But your version in scriptnode is better.
-
@whoopsydoodle Yeah you can just set it and forget it.