routing.send/receive between two chains
-
@Christoph-Hart Is that normal behaviour or an issue to have audio artefacts when using send/receive between two chain modules?
HiseSnippet 1317.3oc6X0raabCDlqjYpkhcfSfOjiBA8fCPpfjryO.8fj+QJvnVFpVNt8V.8tikH7tja4RYakzdp8PeEZeH589PDfBzmfdr2zaPKI2UVqjVI4nhTYjVcQKmgyxONy2LC41Pvsgf.t.Yk43t9.xZEbytLY6caSnLz96grVE2zVP8kAZwnc55SBB.GjkU5WpmhUlkPle8JuCwkvrgAhPnS3Ta3.pGUNPZiJeA00sFwANl5Ea1aUYeaNaWtKuiBNowEP9D6yIsfCI5okBirtSUGpjKZJIRH.YszNbmtMayujEN+SnAzScA8fhnlpWTn3ZbWGMh0Oi1sM00oQ+sc.BYgaLvIjNzIrNtN0gds7ANi0LJxMvh39CqTSCdEiCuBIBuhI.OTLzsTH5Tff6zwkHGFY5vQjBJmMDx1mIAV.U1Md3ZgB26iaPk1sSFuoR.up.0GZ7FE7WEW8ry.a4.vtDt1W+uajNSenDl6YRIMP4gQRXbGHmVLDPC.QwojX9a2zDS+abhYHFPVeItJqEkA4sEfxSrWf+gf7Rt37MdjWWCneziy84ql8rNLacPNm90vjBt6FrNdmBhmj6BhaG3wYea1LY+tr4lQJdwYmhmjm05N+eJ97A2DKXZMNQcMbSpmuKTkcA3xURz38AQBy0W5vrz5bF2uMmQsiSLOBjBZqVfH99HwM21Rop+v.IqW4HvEHAwXteZkCTrShP4yfo4WReyXYyvWLsX2CwgvMmN0J2GGkoS+e9xzSy0sLt5URAo3s7HbDLKsnf4Q7NRJqUchJs+J0gwNriWSUeFaPAQFCbUKD1JERapYbA8XMfZBLmBinrndrUjRyfz5op64.Lo5on1SlL2nmUOo8CYvQcrzZBKWTiXq1tcaPzBuOV0CTp7ZfHu80dur8spHRA7Qg7Ab6yGRrUZ8qtemzv8wtbOOM3zGvM54uh5nWRr0STyHLtbDwyWW5ndP79xZueChPc9XIHLu+vUPu+REtKVNLHG36RkEQSbKYz+AaOzmCLY7YboOEMCW9hvGO.wQ7hrZDiwBvdT3JB4x4Up.5EvBAtwSii61GTB+XhnEHiJQ3CBIE52ISORkymN7dea63bLuIsEi3hNQeLM8Qyaz4TWcGaUlULlm179iTnYeUCegLpMOkEY7fdD0IWMhrdkOfeIHF4DoHzq78GSZuxMkfeS5aL1+10+kW9Gu4GJ27b3xv3wPmbvjjVC.mS0GVXrUcnMwPNDz37yWb6lelNptUXuvy7FFsYTnU.4UhWzzxIPFiylReyYSaUYL1zO96URhMsUkDXSp4FmM8y+j92uNBa5ce6e97u26cF1zcw0Dv2zAX1cQiAEzhJKn+LmbVvcGz8GMFTdOvcuxii6MRze2qbR3diJii6dSI6cMi+tdGWIU0iBDIkCOdZqII3N3.04.FNM3dWWk1naQjK7Opr7JX0oYXf45zW6JvdbmR5FRSn5LJVmKUsL0sjDOaX2xJXO0+4MpVrNkTumkJtE234SvgKVBoawYrStEzrZNYX42SE8Y7RApoA7RCGVePXQ+XSXAGbmc.8l5Ad096QjDMAH538wzZYsGbA0FBu2SF7dPv4Rt+X21HSh21Xoocai+R8ah21HlxRwsrzHJ2Ltka1WIxiXK3u1N7Kjo41Kajnx7YlOAdFbc83bEQWDxnv3B4Kf7nNzWaaqa5+Yp6XkrMklCa1bNrYq4vlmNG17r4vlmOG17hoZi9SEtcGI2K7iinDznpgVZYUkQT2F1TIB82vFkw43
-
There's two things wrong in the snippet:
First of all you've not connected them (you probably changed the ID somehow). If they are connected they are coloured with the same colour to indicate that the connection is live. Just go into the properties of the send node and change it to the item in the dropdown
Now the artifacts come from the simple fact that you have the order reversed (and I probably need to add a save check to prevent this). The send / receive node must either be in the same container or the receive node must come after the send node. In this case, swapping the order of the chains in the split node will remove the artefacts.
-
@Christoph-Hart thanks, yes I surely made a modification in the send's setting jus before exporting the snippet, but I got it ;)
It's strange for the order that is reversed, because they are where I want them to be, I don't intend to create a feedback loop but to send the signal somewhere else, it's working as expected when I place them inside the same container.When you say "OR the receive node MUST come after.." do I have to understand that it works in another container, but it is a matter of level (place) compared to the send's level in the hierarchy? Or maybe in different containers that are in a vertical order instead of horizontal (split)?
-
When you say "OR the receive node MUST come after.." do I have to understand that it works in another container, but it is a matter of level (place) compared to the send's level in the hierarchy? Or maybe in different containers that are in a vertical order instead of horizontal (split)?
At some point scriptnode has to "serialise" the graph and process each node after another (spoiler-alert: it's always top-down, left-to right). The problem is that if you put the receive node before the send node in a split node, the signal is not duplicated yet and points to anything, which is why you're hearing these clicks at the start and end of the node.
You might go through the different container types and check which ones need to have the send / receives in the correct order, but the chain (and its subtypes) and multi nodes should be fine but I can imagine the oversample nodes will cause problems, because they again create an oversampled copy of the signal.
-
@Christoph-Hart Thanks man! I figured it out thanks to you ;)
Other problems:
1 - When the send & receive are linked, this connection disappears when you relaunch Hise or the preset.
In therouting.send
node properties, thereceive node
is still attributed in the combobox, but neither the matching color, nor the action of thereceive node
knob are working. I have to select anotherreceive node
, and come back to the good one in order to reactivate it.2 - When you set the value range of a parameter, it is the opposite problem. New values are only taken into account when you relaunch Hise or the preset. For instance I have a parameter to control the fm frequency, so in order not to have a continuous control, but rather a stepped action from 1 to 12, I set
MinValue:1
,MaxValue:12
, andStepSize:1
. But it'll work only after a relaunch. -
@Christoph-Hart One more:
3 - Using
hise.mod
node, sometimes a glitch appears when the AHDSR reaches the release point. But it might be the way I handle it... Still, I tried at different places.(In the snippet, the send/receive nodes are connected but the connections disappear when you load the preset, as seen in the post above)
HiseSnippet 2299.3oc6b0DaiabEdnjGuVZ8OYabA5ghBgfdvKZhfHky5En.UxqsbhQWuQwZ2sI.EXAWxwxDljiJIkWqMM.KRSAxsbt4RtVzCE8R.RNDfsAn.EncAJPtzSAo2ZPxAeo4Z5LbnDG9iro8tJhRl9hEmgC427duu2OCGxlVXEjsM1BHT3185f.ByCa0yzY+M1WVyDr8lj1gasy8VWuMFbidcjssQp.Ag7uBsagBy.b+63Z2PVW1TA42D.bWrlB5lZFZN9s1r9uTSWeKYUzs0L3N6UqusB1bCrNtKAJ4gU.cjUNPtM5VxzSKGDHLaCUMGrUKGYGjMPXlafU60Ze7CLYm+c0r0tuNhdfHnE4BwZdKrtJEwzVAarultZy9SYa.P.1zW.jmI.VFtilp1f18EDOmaGk7GAu7PH2IAOQd3UIwvCvgtYXni.BrZWcYmfHipN75PCaF.Yaa5fLs0b5wqtFqv8JvlZNJ6GOdyECdIJpQMd8T9K.ar2dHEGevNCbq236WMcg9PokhkVGGW5nKT9QdsXhUQknMir0rQVhCiX9ndO++JoDyNIlXxv.P30gMLaqYhJqXgHRhMs6bKjyCvVGrxKXzyEzuvUK8yWn3dcMUnJ4RzKioiEVeEytF2GY8hkNTVuK5pEeqhEJ91EKcJTbwSmhWINJ9rYTbW3lOYRyXjfBbXbIFFuDb8WcyV65Qmc+coFlGhzwcPAsG2Aah6rO1TSg2DbWjikV61HKdDG6zXcGGRjfM5ZcX.a3MQJx8hzJ6jGzxi1nNqkahHPi+DeUhRw+3eZc2K2fFdrU8VcscBDhihYcjrs+86m8Wq2PASTInQiXGlPSiEfrIYIWla510+h8wJSijtA67PWyhIA45RPOC1IBA6hPOtzjfn8DyVI+E9rUNIQ2bvFG4XIKlhCVIMhCV8kOb4unVhBV8ue2jErxK12fFV4cBGr5I+y4dbnfUO5e7YYAqxBVkErZJOXkmGWoTrG2polxCFzxo3w83ZA839GeunkG7lg83B96+sLOtYdby73No5wcWbWGMy16HSbEcDgtcqtFsvcsTPDfZZhzI2HnPN.cntGWgdLEPsPlpUB0oH8XAuNcOHO8ToKHFxzg7Ku0Ny0ep2uI+hs96dKmFsGl2jsjUHS2dMkoMdEnB4pPjcHqxJCjgE6OJQ.A3gg7MwJGDnYg7zKc+k4iMO1.aXPAGc02898uRSkdKgBuH4LX5kckM5PUS6XyungToeSYKYCjCxx85ytCz4WduYAElj.E5swhfgNir6nq4LxlB8MADxGAv47ALjA3K4IWwpLwb.LuLGlGbFiJX6CsbLnMGCZ6qYitG4tGDZKQflEp7fNGG1Cz.88qe91xVsQNtV5gaj3Tkde2VkZYzlHBEACTJzFm0cUPAuVGl2ihvVHm6RWDYPCSYBE26AHbHxxwK8BMSV+bAp2Q9nPsQE.O.YEZIweyGemNchzJgB6f5zR6gHJbpTtBIL8AnGvj3T15KWdUIIo0.MNpiEwYBcACnRL.m0EMmo9GQIBmHfAfX.b83.L.DKfq6CXeelAvreJVtTxsMUQGABcKOtF08M4x6nQs7.bFdWdfgm3zikW0LKuThkGndPKO9oyPsIWBtGBodeZsAQcVGMj43wxruW7Y3hHdkA.uklQ2WyVIHzKvnT6YLVfre7xXoUAszxmbKsUqGwR6897XszVsdLVZjyk2R6C9Cz+9jPVZO429Uq86LdRMlGqsrP+ltHSkdfHPA7zwPNtVxYHD1PDFB.LbFxk8SWNBKAbFv8w0hh6UhUdebs3v8JmQl8y4Ju2oqtiFIeNj0YH3xxA3Cqaf6RrcCPItLiRzd7wiikJvMeDx4cDork7rRG2EY2O.RDEYyt2WmtdHjZDBMtkf2wFkzgxyEykbaiu2BSQmPdgUi.gmNNX82O4QoHm6o663658gMe9M+bONXKCL1YeRsgw36fyxcQeKWRQeAsYWDZwJurrMsuTpYqPDyVRAqlH2syQ+49BClk6hTFl8GfK.2bPERw8VgRUbdnA4+kc6Z7FZKWBBsILtBQ7VK+mek+yCe2SLIpg3Z3bjD0koE6Jpj9SfxqB8hLWJQKDY7l0D+BXkkA0DRFTEmrxfZ45QqnkXcOLl87tjjrrollylpH7kpV95hhWaMvzP5T8WPvLq0ozb+e7G0B9i+SWMkk6OYVTshXkpfgXrNCTpRf7aceBAh1owT9O0jONqI+WvctZkrD+uDKw+r79mLx6WZxIu+BCx6WJsl2eV19YY6+rKaev4Haeorr8mxy1e0xqt10u9pSQY6WMyZ8owZsXpek9I1ew5HaxuB.oKPU.Hc5U.Tjao+uVpsDfyXFaWPJGXQnhrkEIMjMlXpHXN1Nel+QSEB18ohDSWj1gnIkGA2Bv0UUuMtkVaSY89ZWhS+gDMHEagVDtkm1IlcC.mVzeMFxzfSbZvhCzfRoTM3Y5gykoW40qK.cv2fjjpA9PjZZT2Faf8bY51X0sfP4v5EyWLa+GlsdZIX8znaguol8e3vSKNfE1rby3KwJxkde.IcB6OIbea+hE9QuPwTvrffekYtKB.WgZ9ar8nas3.aw8HBIxEwUIRWIA31pDhJ8EuJls.e5QYGdquGqbfy21Tu.fyBc1P9+Sp6jjGfIxkKrcoPr5iX2huw81W7LRe7rbcuF1ZFcpuKFCzGD9r3n1qAndxzDd6ctKbrh4c0BdVdiPdw275e7O42+0eUsjoMBrIstHwGjF07gRmE9fzET9fznmO7sq7qe+O6+8eOK7Aoob9Pz0f0a2MzNxZuNtebXm5VmI6w3N7xA+EJe5SZ+W9g0G9yFakI82BlBrGdfA1DKYSlDHbnsmyOfY.ycBo9s.VRqS7NauorirmqL523AtdED1DcnlBh4Vp.bSj8AN3NQ9jSTH1O4DybRexI9NxeC8SNAWmR7iTJTmU4GY09cBLjUrv2Sg8MbkxnlysEBuzz8izbA3NziKIBNjYP.oOSXfglp18TTnOmzWRD.heLRmiwT8bLlUOGi4kOGi4Zmiwr14XLW+DGC8iY65ccvFruagjFZ1v0rTPv+sVOO3+Cc76aCA
4 - parameters aren't showing up in
parameterId
for scriptnode Synth only5 - Hise crashes when deleting a parameter. When the parameter is connected to a node and Hise crashes when removing it, disconnecting first the parameter before removing it fixes the issue. If the parameter isn't connected to a node, it is the opposite: connecting it to any node allows you to remove it with no crash.
-
OK, 1, 4 are fixed, but I can't reproduce 2 and don't know how 3 should sound
-
- doesn't work here (
parameterIds
are not listed in the property editor for scriptSynth) - seem to be fixed somehow
Another issue though with the ```core.fm`` node
when you play a chord and release the notes one by one (when beginning with lowest first), a weird glitch you can't miss soon appears. I have the impression it is related to the Frequency knob that is in conflict with the MIDI notes (because when you play a note and turn the frequency knob, it tries to take over so it might be related) - doesn't work here (
-
Ooops, I meant 5 is fixed - which explains why it's magically not crashing anymore :)