@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.
@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.
@Matt_SF ok good to know. I’ll test different things to see if I can figure out why it was giving me an error. The project I was trying was very simple except for what was in the Faust node.
I'm playing around with some reverb constructions in Faust. My code compiles fine in the Faust online IDE but when trying it in Hise I get an "Unexpected character '~' in source" compile error.
Does Hise not support recursive compositions?
@whoopsydoodle Yep I just did further testing putting the whole feedback loop into a faust node instead of using hise for the feedback loop and the latency is gone. All repeats line up perfectly as they should.
It seems like there is a bug with the scriptnode send receive nodes that is causing latency to be added into the feedback signal.
@ustk I did a few further tests. It's not the tempo_sync node because taking it out and just manually setting the jdelay to a specific value gives the same result.
My best guess is there is some kind of compounding latency in the send receive nodes? I really don't know. All I can tell you is that the latency grows with each repeat. It's not a static amount that can be easily offset for.
I'm thinking it's time to call @Christoph-Hart on this one. It seems like it must be a deeper bug in scriptnode or something else.
@ustk I am getting very strange results in DAW. I don't think it's jdelay. I think it's the tempo_sync node, or possibly something else.
It actually now looks fine in Plugin Doctor. If I set 300ms it's right on that and matches other delay plugins. But in Ableton I get this.
Top is the Ableton delay set to 300ms
Middle is this test set to 300ms
Bottom is this test except I replaced the jdelay with a delay node I made in Faust that has a negative sample offset from the value sent to it by the tempo node in Hise. I set that offset to -350samples. The project is at 44,1. If you look closely you can see that it's actually early on the first tap but then late on the later taps. I don't know what's going on.
For some reason this simple delay scriptnode patch results in a delay that drifts off time. With an additional latency getting compounded with each feedback loop.
Is this a bug in the jdelay? I briefly tried one of the other delay modules and it wasn't better.
HiseSnippet 1779.3oc6Z0raaaDDdojWYKGmzDzfdVmJb.REDsb7OnnvN9uViTaKD431S0XM4JqMhhKAIksUK50hdrOH8gHnO.8RAJPu0GgdonGSmYIo3RYIaIk3Df.SCX3c2YmY1gey2Ljz07kV7f.oOwn3gc83Di4n065F1bylLgKY2svIB55ZUxl6v5R1nqGKHfaSLLx+knDFEmhnt9m01f4vbs3oSQHGIEV7uVzVDlNas0elvwYGlM+PQaMoWb8csjtaJcjc.uIOsBwiY0hcJeeFJVNJwnv11hPoe8PVHOfXL0FR6t0aJO2MR9iDAhSb33.SRcPQQSuizwF8XbVxlMEN10RN0ADPK0RiA4ihAOjtmvVza9zXw8UKTJcG5wCibYcu7YbOSc2qhl6M.WxPyklJxkd.stkuvKLcEzetCcW2PteCFD10ckHYIFuhtoDDvMrbaVK9N9vfdaX9kpT4wkfe8nOuQGWqPgzsjzceYH+.24ezr+vrEm8GmsT+K0nw.WCMiuzwg6Ovkw6z9W0Fm2sS6S39OtzYLmN7dBBG+rwT5vio52xshN0ZBJc20UDdfG2cX.ARbnBh+4h8JPzPUz+dwQ+5NBatOQ.A4ooOyUdhIQ4vwn3W8eewetFYj2b0Latzu582qQdwtawBYHFH1c.Wzi6GJvSuwV7yfDpHDQQ5V7fVgROk+11S5hNuwzWqGeQZN2tq2Mcv9qGxu.z.k13jVDujPytvVmkFnzViKfjReHeDvP37QhRFCyWcnl+65Y9y4gip4+FPTxkyVf7TocGGVX1jWjwJdA.8kIiASKbCDgc0Yz5OidpQKi9pIbFU28AzZhPqlC1eyM.+EAt2v9aL+3coa2nA2JL0Ymhty29tiLb1XzEXSz3ZviAQB9yzTBGOeNff3GJqAUylOf01yg+bvCeboSbjVspK9d9kYohwhafRLuUSlqK2IXRHyJLxwDyqLlPdtrSnv8z8Xg9BHehtem10gxlV7Mi8NXNibHmVz3J3XDgTm6ZqF7Z3JdQSbrQ7hlIKlRGR1mGdtzuk5lQ7eCoyw8FnBxG23Bv849AHLExzqTF9g7TGG44H2fHF.C2TTyUS5z0qozUXgSEIQhq+z1xNHQRj++UrfCYBGDwWuS.vdaefacPXUeFHJaeoM7WE1gYAA1t0XgMwLGj+Gflb+xV58wj5qo3DE9CtGTKgXIHJ9iJNoYjnXG3msUbbXqH4w0ihHJOfhlXZZj4tFuIqwGUCkSyPyPunACIVyXo6qrD..KGu53YHsJMvLwi.9kbnE+HDioEiNJpxUd5BJBBcQKfrY7DIJRO3LtuCyCvWmiDZGx7OkGprg9Dwk7b4pjofrCiO8HmeA5oXLrldcfBJl8rF3x5K2.02zJ8YNXEdE6XgAuCsPDRckLBnt1S3FGRnX9AYO1E8FaBii.PQS8zNgx1.IQBobFLVfmCzO8PwXQK+liwhCzYryc.63yKe5XihykItjWKtTHMtLC8yLqzenAGWOj6gTyXm4UJCxntLWb0JllKATks3mG4lDiOl9jxKtvBKrbkkWdwUVzrZkUIQmF08Gs.KvuLX2n+aOyPQKNdtAJP0JlUpBBr5pqr3pKWwLti85skxvl.6cRFRA5Bn1Iu6CJyQeNOfGFo1LJmnSFjE90tiSnX3vunkeaPwoHKqdyPlR0rzbzPNz+5w3i4l0ZOrGgplDimASaeKk2avDaEouT8L18QEcGnMeXV0yJmkcYJM.Cc3v2BTyUx.WzoaNDOW8npiaj7SWenYFl8q5kFhpmitGBD.tHPG8oex55og4Ii14HR2CxVEoa6xfFmrujgHintG0TbzZ2i9BWDHvsU2S5YxW+50JPHh0uhTmn5F2xndKipFrnH0mawEmw6moyOpI+xIK+F.OLFmTrnGoZGN29DlUqT.dU00erVe2wG5wJgNKyw5tvzAdke4kechi0AJ23lWOJHoooQupx92L4lvX575iVDE57S8.ZYhm2qGLAWbbwH5c7azWa7yQ0JS0qY9DvXlRQ8M3p05tAGgqZwbRzJblubgeya9B+2Uqvu46wJ+yDmpbag+OjK7adag+aK7qCKlMgL07CqJ+8nyFoB+i8I5C1R+p2zyvBpETE+eeV6WCt9Vt3+PUvjrxjXzLXpovME8kktt7kdIH+xu8uyie9tQ6UX16s2lodex69KC4UjufejsTeIsHWp+j9MqR4xRkSGUlJYus9Sexe863Wtbzdgoo8.lw803MF7qMUC+LzMNI2H2PJa0lo97DSzWO8cxGSoMyxWdbbOk3gaF0LPppq5+tghz8vwkx98jUWsE1hisrxppKswElzMVcR23hS5FexjtwklzMt7jtwUt9Mh+CgDShi3cHor11JPngQRyoXqt+Of8WEUI
@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.
@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.
@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.
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.