@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.
I am attempting to use my knob text to display the value and then have it switch back to the normal knob text after it's been moved.
This version mostly works but the knob text doesn't update back to the proper label unless it gets a new event like hover. The console prints correctly on time but the UI doesn't update. I know there are redraw commands but I haven't been able to figure them out properly. I also was trying putting the text label draw into a LAF and then calling that but didn't have success.
Also I'm sure there has to be a cleaner way to do this instead of declaring a variable to count outside of the function. Eventually I plan on doing this for multiple knobs and would prefer to write a version that is nicely reusable.
const var MixKnob = Content.getComponent("MixKnob");
var MixInt = 0;
const var MixTimer = Engine.createTimerObject();
inline function onMixControl(component, value)
{
MixKnob.set("text", Engine.doubleToString(value, 0)+" dB");
MixTimer.startTimer(500);
};
MixTimer.setTimerCallback(function()
{
if (MixInt > 1) {
MixKnob.set("text", "INPUT");
Console.print("hit");
this.stopTimer();
}
MixInt++;
});
MixKnob.setControlCallback(onMixControl);
@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.