A few bugs...



  • @Christoph-Hart Little bugs:

    • A - Pitch modulator => doesn't seem to initialise at 0% but at 50% (or the other way...)
      In this case scenario, the LFO leaks at init but should be at 0
      Thanks to @ulrik for the snippet:
    HiseSnippet 1034.3oc6X0saaaCElx1bHAaqX+TLTLrAnK1ccKvdIM6malSbrCLlcsQjW5.1EErRGaQLIRMIJ24mh8psGk8FrcHkskThmqiPRZwV0EFgGxC4GO+9wLNV5BIIxXh09SVDADq2i5rPn763y3BR+yHVOfNjknfX6LQmtHhkj.dDKq5mqEXseCh46u9gSYALgKjKhPtTxcgA7PtJW531+HOHnGyClvCKr5iZ22UJ5HCjoHdpSaRhXt+JaF7TldY0nDq2oqGWIicTLEjPrZbpzagiu7khr0eIOg+h.POnEwA2nLw8jAdZDq+aRGedf23U26DBtoiysB0yrBOjNj6wWKO2Z7AlIry0nn8vp11fWqhvq4FgWqM.ORAz0HCcHHjdoALUYjocGKmfKK6o5KTfHgqVTzc8ZEteHcLW45uY7VaC3EcT203coy+8ocmNEbU4fsAs2Oe+5o2KCJeJ87.4KXA4FPoPgnBhM35yWNs854sWufVaIU8O20T0ncNU0pdYKR8+cKRwTyMjN13+Doie70bMI2pYj2f5aVEf7CxfLkNn2nkVP7uxAYqWMH6EC+VJHbKHbu15Pj94QXs+i1OiMGlJiCyNvb0G.yvCpnjIPXjD653VLZzITJU9bwrxAdOr8.oLpqfglAuhaxXeVBLZ5zDPUba5jlnjgqvhoIhiBhNioXDqegd7QGfeSer92uqC9ygitcFStabk014nOsWcs6S6eeSH5auUbLL09elO.AF39nLA1FI2nfweJAlvLfJWVewbHVUL7XU3T4XIdayo9R8gZ1jrnhmPO73CV+Y7py0d0Cd7ZgyuhWe9nq4uqb8OxMxEuNY7V2EeO2xu9+Oa4egLUgE4FxTw7eGqK+zzPGrmpKfHQHf.7fnV0zExxF2TO1DPCBOyf+F+VNYK8XqkS1Z0jjqW9+coNHEACQeyk8SLis0kIsOGPxCWO66Nm.wHWEd7ShYhjHYRoM1AB4SjBsUOWHl4qC9uPGIUphujEuwovNW3kbi53vTowlPxSBkohRcPtJwF5tkXWlLdg0+JJW13sOF4Npe49qvqCOLJ.5hcIBjnDMd+H5YvTVZfZkzxA+CkBYjuTvKQQ4B.SZmMChK27YCWtSTJ7krEYwbAD.rhQ4eQ6AXzIKFsYv1rKUmWs0N56dDMCt15LV62ndP4R9Ce1Rt0Z.dIKlyDp02CyUvdE4ayUX4RpHuB8BVwm.yHy4IfTIwGaIvtFZii0Wts2h88Wgj88Nag21680Su26iyHj4FKeN1NUEKCzY56Yjf2ag4eb19zg5w1sHyYAolW+07fljPr2wycc0l6uBsOaVmutB5bXEz4nJnySpfNGWAc9lJny2tUczssOIEeXZVpHJXb2rhJVqeZqUcx+bwakh.
    
    • B - Using registeredTableData, the tables in scriptnode don't initialise. When setting points by script (not UI tables, so you need globalsto make the dataTable to be known from the sript interface), they stay empty despite the script sending reset() and new points. You need to change the index of the tables manually in the node and go back to the good index for connecting all tables once for all. After that, it works when making modifications. It's like if the Table Index is not taken into account at init despite what the knob shows.

    Also, the registered table data doesn't seem to initialise at all at init (table.reset() throws unknown function error), I have to recompile manually, and then the table init problem in scriptnode described above has to be addressed too.

    HiseSnippet 1251.3oc2W0saaaCElxIrM1KYXEXO.BA6BErLCorlrALLT23DOXr3Ti3rrdWGiDcLgkHEnnShWQ.1i1dj5av1gjxVx+jTCCzsgobQDO7bN7Sme93wckhPZVlPhbpd43TJxYabuwb0flCHLNp8IHmuFqnYJ2rPIKUwEQTWE45Xp6nzHhhwuwE9GwkkkMhhNdbJIKiFgbb13mzNvo5lHyyGd0wjXBOjVHBgtRvBomwRXpBoca7yr33VjH5krjRZ+xFsCE7lhXwH.raf8QojvgjanmSzpUAibd1oQLkP1SQ.Dib17XQz3dCD2ws5eEKiA.WuH.0CbjUbKQbjFwZonlCXwQcmDTxPfW5VDh1vFh9RbGVDap7hP0WX1vsvhxwCmJOE7BJCO+UGdNkf2lV38BbOStpXGM19LbathJ6SBmMMY0EUQUA2T.ZvU0SHCosjvhoV3cju+9tG56u2OrSMPsLQLsdXLkH8zRr+w3wLN0s+HdnhI3tB9wiTJAOP6WoH1KTjjJ3vIru6sj3Qz81o162olK7v565YEkKP+T7Vx3K0kb90kzLpxbjysUPosp9HFShhLu0Uv3JO+5Gruqe8CWhyVT0izpdPYUWBBVY+G7Q7+Cv2vN0dvFpMYjanplSBdd6lGV2cu5YZ4lfaSRb70PCg27QcsSKkRNWnnug6sWs2WqZsGp4N+V86uz8xcVLUtzs0spxmxPO9njqoxII9IJB0ry1Tfe7lhx8rg13RIEE71bl5MoT9i0pfxCl5llbTAppLsLeddKiMzgXPmQUbdbDYfbYZKzuz9Dfyahi.eBmSJUpX5OAmSn2BzZ1dwp3SnYCUhTit4YP3ybEN16mdj+Asw3oK9yeqAKqiHA7CQBhcpfVjB.HhDQihIpYYmzTx4a.YmYnAzs57LlZbYJ6OITVqJbeAtKSENX43sxRvKjO9Ti27K.1AeZ+9zPUAX2D25sqKa+xuLx+iw1isXoVdMDb9Zfrc9R2VuMXF.c9nDCkitIyQGrlP7+UN3S42.L20CkT.rmjkdNUcmPNza2nrzcmPvC8bvX.2RjSoIc+Q2Yr707nKn2vxfKMLJnaR7LWYrfsAqjsAyPdkJooDI8RQ2XxXuLRRZL8Bvz8cuNVDNrG62oKx.kZCXGq0vKb.gyowYqCQ0bCW77UKeNOszLeCSDCixTBkERmBpBQKo77BwH8XXcHJIC3LvPhtGLiTHsY9WqNgWQy+YW6Os.fxiLK9K3Iey.8Zm7MClrYA0IJuzvTLl+N7ltxCigpEsTXDQjyVsHgP3ZbWhZftWVyXCMKTY8voMMOSaQ.B.77P8LHNLiXn9Eb6jo+r3G3SSLrovre4u+qrH8wgc1GzvV8eATmnudpSV4YIcpn8m9qnRNd0.54XynsnYv91.1kz51c9WAqaTvAdIQByBXXkHRXvWncwxKLYEXXa9svcQ1t9NL9Uye8UGx8yKqwYh6nx4lDGtmKMcQoM5ono5lsx2TzaH8NaTqrTKgjoetMOhdOZArfJcyITbUjJ1xlJB9uVtnx+WyEe3Uy7YrVy37OBWTBITJdWnkYTGv2xHA3G4leIXUbG8Z2oCtgw908QIvuL6cgg5qp+F3Z9kayAqgMe6ZXyKWCaNbMr4n0vluaMr46eRaz+n3WORIRriwAB5dpo3xw4Tttfzzdf9a.eVKG.
    
    • E - Scriptnode filter => smooth parameter creates crackling artefacts (might not be fixed though)

    • G - Removing a parameter crashes Hise. I remember a fix attempt has been made but the issue persists.

    *I - Hise crashes almost every time I modify a look and feel object (at least with the preset browser). Although it doesn't complain after a restart.

    • J - Panel layer Blur also affects the components that are above. Might be no remedy though...

    • K - Scriptnode: Move nodes that have a modulation connection into another container, or out of a container, and you lose the connections. Pretty bad when you move 20 connected nodes... And worse when you realize your first choice was better 🙂

    • L - Engine.getVersion() Returns the project's Name instead of Version

    • M - Scriptnode => Changing a parameter's ID doesn't refresh the displayed name. (Although the new ID is effectively updated in the engine)

    • M' - Same thing when changing a scriptFX name, the graph connection combobox doesn't update

    • N - Midi CC Attack Envelope is always responding to the pitch wheel on top of the selected CC...

    • O - Aftertouch is CC129 and receiving erratic values

    • P - Engine.showErrorMessage() Doesn't work on compiled plugin (His little brother Engine.showMessage() works though)

    • Q - Scriptnode => Custom CPP class loses the inner modulation connections when you unfreeze it.
      Let's take a peak connected to a gain node. It seems that the peak node wants to connect to the same gain ID it has been exported with. But if this ID already exists in the graph, the unfrozen peak node makes a connection to it instead of the gain which embedded with it in the custom CPP class.

    Also, the documentation says that after saving the current state and recompiling Hise, the hardcoded version is automatically used at the next opening. But this doesn't happen. We have to manually remove the old chain and insert the custom class. (Or I don't understand how it works)

    original node.jpeg

    original node and custom.jpeg

    original node and unfrozen.jpeg

    unfrozen node.jpeg

    • R - Scriptnode => Parameter expression crashes Hise when using an expression that contains 1/input and other variations of it... Dividing by 0 issue?

    • S - Viewport => the scrollbar is not clickable when a child panel is larger/taller than the parent. The mouse CB of the panel is therefore triggered before the scrollbar...



  • Moved in first post



  • @Christoph-Hart Ok so to begin, at init we can see in the ScriptWatchTable that,

    const var myTable = Engine.createAndRegisterTableData(1);
    

    creates an object that transforms into a table only when you recompile, which makes the table unknown at init.



  • Why don't you use 0 as index? The registered tables / audio files / slider packs are supposed to be consecutive (so actually the first call will create one at index 0.



  • @Christoph-Hart Ok that explains why I couldn't even reproduce the same snippet you gave me few days ago. And actually in my project I have 8 scriptnode tables up to 12, because the first 4 are not in place already so the counting begins at 4... Will check that in a wee moment! 😉



  • @Christoph-Hart In fact no, in my project I already created the registered table from index 0 (but I don't have the first 4 in the graph)
    But they never connect automatically. I need to recompile first in order to have the globals in the watchtable, and update all indexes in the graph anyway.

    Engine.createDspNetwork("dsp");
    
    global gainTable0 = Engine.createAndRegisterTableData(0);
    global gainTable1 = Engine.createAndRegisterTableData(1);
    global gainTable2 = Engine.createAndRegisterTableData(2);
    global gainTable3 = Engine.createAndRegisterTableData(3);
    
    global freqTable0 = Engine.createAndRegisterTableData(4);
    global freqTable1 = Engine.createAndRegisterTableData(5);
    global freqTable2 = Engine.createAndRegisterTableData(6);
    global freqTable3 = Engine.createAndRegisterTableData(7);
    
    global QTable0 = Engine.createAndRegisterTableData(8);
    global QTable1 = Engine.createAndRegisterTableData(9);
    global QTable2 = Engine.createAndRegisterTableData(10);
    global QTable3 = Engine.createAndRegisterTableData(11);
    


  • @Christoph-Hart Please try this snippet, the second table never seems to update by itself (on top of the fact that you have to recompile to get the globals)

    HiseSnippet 1269.3oc6W0sSibCE1S.uKIEp5J0GfQb0fJMJIc2sHUUsABjpnRXiHzsqTuXqYFmDqLi8HOd.RWw6Vej12f1ismIYxP.ghDza5vEXe74X+4yOe9jARgOMIQHQNUuXVLE4rMd3LtZRmIDFG06Xjy2gUzDkahujEq3h.pqhbYH0MMNfnX7wtv+HtrjjTJ5nYwjjDZ.xwYieQuANU2DY99x6NhDR39zEhPnOHX9zSYQL0BoCZ+qrvvtj.5ErnBZ+5187E7NhPQJ.1MvMPwD+ojwzyHZ0pfQNu3j.lRHGpH.hQNadjHX1vIhq4V8+.KgA.WOoIZHrQVwcEgAZDqkh5LgEFLH2ojffcYvBWzFVWz2h6yBXykuvU8MlEbWXQQ+gSkGBdMKBuFOd34T.daZg2qvCMwpEqnw1Wg6wUT4Hh+xgIqtnJnJ3NBPCtpdDYJsqDlL2Bu21nw9tuoQi89ocpk+GiGx3T2QobeESvcE7iRUJAuodejhPOeQTrfC639tWQBSo6sSsOuSMW3iMx0yJJSf9awnnYWnSwZVWRSnJO8gVZoVEVp5JLjDDXFMPv3JuF0OXe2F0asxMprpszpdPtp2B69sv3beyXppS90xa2rK7t6UOQK2bs6PBCuDRM8J6Or9tBtqyDJ564d6U6y0pV61ZtkWZznUtV11ERkqbYcYi7gLzimFcIUlGTxUDxeVNAEe+InEqe7sdlBJJ383L06io76KsEk4N0IvYnBTUYRe+5rzWqyCwfrzp3LOIx.4hTHneq2w.+S9FA6IbNwTohouBNGSuBnXr0EUwGSSlpDwFcyhgv07Qbr2L+H+yosmMexe+GsYI8EQv9PjfXmJn6VNBjBhfzPhZYlBM8X1BPzYoRRcYGOgolUj97Ig93wB2WgGvT9SVMdqrB7BwimZ7lQFuC9jQin9pEfcSb2O9Ly79RKVpkkCAmuFHamM0s6GatDfNKMZXHKfJG.7D5JMGG3tARMDQEEbXZ.SzkUPXNeccGLT4AOLeEQ5FjD69ytmvGCDx08kT3ddbR7YT00B4Tucgk2Mm4dbn3RR3blxxlcHO3b5XVBP7aTPWb4Yn8W1vVOJCapMbNCTrjFSjzKDCBIy7RHQwgzyAS228xPg+zgr+hdWZqXqW9HsFd9SHbNMLYcX2J0cvFON1sUjCdtHU22SehRx.hArNZBMk3S6jgNcnphljyNugdttjXHkGXl7OvW1hMmGWgEalu3B9QTVPzjwkMFFoSuvXHtpkB8jAUdcI9v0a1.hZhtfUSKCUDTYc+4UFuPaQScdUYndJ3cWRLjjBaad6VV7CjlQFJSnYqrw+NKPebXm8AMro3mCwU8aP8SJ17l1SOfHgd0fDDy9aOA68xbCdoFh6fuVRhMcX1rI5duSIwgPSiOUWDmJ4PqhEZaog1VXKrVFUaCnRRqaV5+DOqyFKnkufHgFTLDkK70Zpp7Yfg83WAOOZIh5y3en7Kp8I2TVV6SEWSkkZTGd5MN9tRaOTQi0kxEe7Z3T50VuVQoVNRCaQOd.8FzcvBpvi4PovchEs9+XwyTr3Kua4XQw6ToIEUac5N6YgfMh3KEex29lgNtrkQBP5yM+dxp3954tya4DiaTuAJB98cex2W2jw2CcErZaZsF17CqgMudMr4MqgMucMr4GWCaN3AsQ+SqOLUIhrMfBBFbhI4xw4DtNu0TEg9WPEFVXa
    


  • Why do you make them global? The whole point of this system is that you can access them over the property system like with any other module that uses tables.



  • @Christoph-Hart I used global because it wasn't working, but it was an to solving the issues, effectively I will retry without. Please don't tell me it's the reason it doesn't work 🙄



  • @Christoph-Hart It doesn't work at all without globals...



  • This post is deleted!


  • This post is deleted!


  • This post is deleted!


  • @Christoph-Hart Do you want me to push some of these issues on git?



  • Nope I‘ll chew through the list when I am done with the current SNeX rewrite.



  • This post is deleted!


  • This post is deleted!


  • This post is deleted!


  • This post is deleted!


  • This post is deleted!

Log in to reply
 

9
Online

1.2k
Users

3.9k
Topics

34.5k
Posts