Issue: Keyboard Colouring logic is "one step behind" when switching Sample Maps (Race Condition?)
-
Hi everyone,
I am trying to dynamically color the keyboard keys based on the currently loaded Sample Map, but I am running into a logic issue where the coloring update happens before the new sample map is actually finished loading.
The Scenario: I have a toggle button that switches between two sample maps: "Duitara" (small range, ~12 keys) and "Whistle" (large range).
-
Initial State: Plugin loads "Duitara". Keyboard correctly shows 12 blue keys.
-
I click Toggle (to Whistle): The logic runs, but the keyboard remains showing the 12 Duitara keys.
-
I click Toggle again: Now the keyboard updates to show the Whistle keys (even though I switched back to Duitara).
-
As expected, if i toggle again to whistle, the keyboards shows the highlights of the Duitara keys (12)
Below is the
[RTB 2 Project 2-2.mp4](Invalid file type. Allowed types are: .png, .jpg, .bmp, .pdf, .preset, .gif, .js, .xml, .hpa, .wav, .mid, .mp3, .hip, .zip, .txt, .json, .mkv, .webm, .mov, .ogg, .xls, .doc, .avi, .wmv, .mpg, .jpeg) HiseSnippet 7374.3oc68rEaajccCk830hq09JaZ2jlzbW0sanVSSyGRxR1YinnD0i0Rlxhx1wY6BuiHujbhGNC2YFJI5EtwIAsI.s.MEHsE4i.r.8q9US+KE8i5eZP+qEHeTzu5FDzO5iO1+Z.BPcOm68NybmgConjs2UaPo2khy84408bO2y4duC8.WpYcZ863Xp2oC0UQIwo1x1pF0wwxVIQxc50gpj3bpU6Y51ZoVZ5lJqurRhwUWtqtqlslRodczbbn0URj3TqhYmX7Sqv97QKTRyPyrFMHIEkaZoWitgdac2fT2p3U0MLVQqNcG81Rkd5hqWyxbIKCqt.nbJ0rJczpcWslzqogEaLUk0zbZoj3MTymuQs4xlctBElIqlVg5ZZSmiVXdZiYaTalryms9tyjE92rJINS455tV1Uc0boNJINcIq58p1xZeSdGbScG8cMn3C4TpB8LO4UrLpinHlpxRszMp6Sib.JlpDE6TbJ1Kqtodcc+zCnbu.KCRPMjIfIFKL3cpPfWNYvKqD3ECHkPBjNMGjdQ0p0r063FjCBOeFQpAPTtPfDOWkw9EOu5RVlfvhal1Z2kthM7v5vy1MzpQSMe1roIylM6TWIotYMit0ool7qaY0dMMy5FT6LeCmIkyZw0Vt51jM+5ab6n4bUSqccHHC1g.0EgpNTaWcpinjfDgiKYOMahgVCxaR7.pZ1TflsgUMMiMrrt6hl0WgRMRA0.JWFGJ.rF5lzpt8LnUaQotolb2tttVlj2mrKHV0z1pqY8KSrr0LaRuBYWK65T6KXqUWuqykIE5bvUH0.Jt8kI62R2EJQCnmuPCs15F8tLoxA8ZRMuBwEptitqtk4kkZ1KvpIIalYbHTMG5EzghdeBG.tbKq8n1.XvZv8o5Ma4BUFD4jJiVMW88nPgZqY2TGZ77H.4mcsVzZ2kVOBtH.TAXuqAjETGjJJHiNZs6.rGfLxFemoI0sJOoTSJ9QNn3jj.CBodjFcMqgHGoam5.49pzd7gmNolJ46mb7F.RlRGZtrWgnS9Jjb4mC9w4O+TPdiW1D.bJxJ7qVJ8zDQCjYec2VKZzokVJuTX.bZjpME.xie+jIG2.4uBv1PGvf2zCGDB.UoFTFDlZxLuACS4.kCQ2TpdSkbbDj3Mmg09X6fXeJAVmYCK.HwdUTlV.WouBsltWgX8wcgB.s0UH2k7UdSrBvuD3drH+cGNx2kh3dd.2GGZg6ON7M908SdwKRtvEt.IWFxNUVc0MJSJcic1ox0vDE7UWqlMMnk3x2AiQzpWmmVpI2xnas6tCqXSlljGF8laFbzqbMQnM0jtzCbghLoPg+jwVHGs8nqatkMEdBJrqcWJJ1DUpQpWWRyv.kUSUypcGKS.7RCipAjFEjHvG8FjT7DH7DvOdLaCKs5btvlZcRM4sZA7TCJnyzkIt5Ub+1Fgx9zM.JF.jI1xFf1hllroUc5jREu+A.A4cwK5qUBvxEa.ZIWlZn0K0L.cNZEgTfIfa.zo5hl39DpgC8vw5.NxSTLVzre7hwfXcToJrEssL7EThQ3AGeKFMjOCYiEKUdipRCC5nYRMxKM.nI1pBjFneHDto9AHRxKJ1saAyT6tsUWW.9R4I4lp4TuOoIGpXicCoiBX.r7VwBa1Mgucn11ZtrQVrLqaqs+N.8UzoDrWSSdaf3.+GquQX6V50cakZJoTViMaPpodGnUtu+rerrKLP7ZaJLextxHVgOFPLdu9j.yldfXVkttc555iVS+w.Zw6RxMsL51ldrvLOIzBYHas9NKsF4pWqRIIoTzVlszcq0ZazxivpqQyg.k094B.PNTY8klCUVGjd3QvrzI7JzWwX+HUN.UmFZL1j6dcniG5LOZI2DIm.AcXZlkYCVIZjU2nRoE2.gXcMvNTRppszrAyNzpYa4.FrY.yMyrWzgUUXL4RrYkItsnDDWlPBmq1gRYHXbnrelSxlYJMo.BRjIR5mQXTtJLkSadSNIB5gJFGkwVYFzN0bY6qDolDTHo00v8l3LNSJlMTPAJ3SA1uklKokFrPISG3ApIomUWhaWaSht6DCvHIVGASywzl4MI2DIe+IRx0bRtkstfDYR2mmOLCNKglFV6BVevLjaWKM657JIR1AQZVyCjPV8.P99fDWHbKpdTInhKcxzopa1jTwDL+kToQiHlYmeTsyN+QvPagwoCwNagAqm7sy1eQCgWffrk1L4ygYPFq.9FjwD4yyVOkTMGnAY8UlAXOVRgfitCe7xaRxck9jZkfjimQZGpMH4ObiP3vWESYCPBA0j3MU5IXe2nQ7cdVIaVhP3iNTKFRIzj9TZKyqY4RqXxW7DzbjnY0nQr4I5GbcZwkM5FE6gUwTlcauK0VhYxJnRhSG1+CpC1+CxtGoFWbVpfVlqap6VAzSNHmlnHFCnnj3EDPETTWlmJdNgOIpZnC5FTzqitMIzDwDEFjK6YIkQnURptDzD.UMZ8+d+rhiR8OmZfUNGOH3YU8M.7Hz.bILVCLgpjcvGOX34TWz0EDEuC5xM6iWabN00.Emw1BePuQhVNAPIpo0KdfXgQpIdd0pccbA6+hoQd2Fu9pObzZjsoF3jEGN43z7F4kB0HaATRQCcSpgUMc2dqZq0oUzFJcQXZWMkDus5rSmoxasasyeIy8xNWO8R2JeE6UKW+7a8V6N2bKkISlBUfuZbd3qLyeTddjA0OqOnVkxlFcO3mQA3Lx.bN8R4muvLWu4r5u2pkcqP2ovLyeoq278lsG7XnmypWpakaU4stz76Nm4dytz1MeutUVqr67y2.p5kp1aid6A3+bqEBfELnI7bRIZMsXLaGSClIrQAvGVbzFw4aMTjFn36VbzFwIoF+3NZIvF7nsvGsfxMVeYjRqjHgPoXfWOgzVltmdMJ2GtiCCZbtqqUGkDi4utHkDmYPDuyotIL7fvS3.Iv9g8Bd30d39nU+9Ir0OnXKl0Q9oP9iKl3KH0eiOn96rpremStudM49RQYD5KPz7tLuOOVGX4EltR8bHDZOuoiRbJEoxjLLzsdaMfpygN1uCAcJJ8ji3PCcCQ3E9hpu+VaW4sJuzN2YkJarb4su+ZqWsLozpY5X1LBV.vbDr3ge6hZn+7DI7Aq9y+OWXTQqiBtjWFW9nE5I+P.t7kFDt.KQqer4oAO4EcEgEgiGqXXoAKXu4N.HJlSZy6Yz6pzdrU4HgTuauhAH0O4AECCpO3aEET+vtE2soWLiF+LdLYvf71Ao9nG8nOe3TyKR9QXxngfxgcRLpjODLopOTxF0NV8Dpn8mSBIyV87jvpXlIS1zhz3tC.R7RYEItrtSGvFfJ0bAqzuFyRLHazFcV1aXsOTMrByydl4kY3wbYywddIXNOq1r4Xzq4HWyk4qgcQX8ovBCLqQgLanAFHyxsDtbJno1Fn7VPNYyL2LrL3Z1Xt6St7XbpVpklIvUwdmk1Mbn2jVCrPLttGxbECMW1J+jSeysJ6QxB2AaUFLzz1MnSx6kdYy5Rc8rIuuB5qFLZUk.y4aqYRpXTmv5IVNU0uWHUpARqRxii9ntO+naGZfjZmuqjjJY+nRpZQkTevaWrimAwqyFBTUG8sKACiZNE.ZgwttTVdmQkEa0150qaP2xhuxWYkXnHKKjnGtve+olWNYYge1PBdpVVFt5vzNeAUw7cNLGTXwoF6wnFJNvJ.XdPYKqNcgB+LpKtKrna.tk.1a+v1ZRJsJUrMH4wmZql9t.m.za01wEH7bscI9c5S6EXEuUiF2ElRGj2XZvfEzTEqhCBzOPfJNvx+nqngxqA82GtfCSrALLXEuNhA3n+9JYAPlZBF4wALztot4Vd7gilh6eqQYQHRjgkkDddvdEG.mtyeQQGWZmnh6gnuSWTl9BqrwW1fSnA71l9dcol05obTkQGGoY.sHh3obSJ6HMYnX.hawKaJKE6IBNHgqX3cgkg8ZzihLxwQFLF4pGSgnO6nsRz.tcwuYXcPCRgwGtPH15K3o5g2n8wcuE0krAjkQfdlHRN2rOImaFki+hu3KFCGuPgBCli2OAMddX+R.GK9WehBevO7G9utPr7vAIL9jf2J6ifCjsnbDYsi.qID2+r79KBWWUE6+XmWwi+DOmb.r8AN783yjG.C63v6eLGnFwL8Mz10eAQreGxLcYKZAtpOItQeFxLeQLMtM7Pe6GnJdQ4Dty.lDYTW4XYmyKNhtYhQweY9ZkTS7m6auwyoJGrXkPRUIU81AIQzUnb6nBjJe0hccn2vrt0lZl.KiQ7CKbsz+NWlKhvUhDI9UwpvmU3gSHjkx7ripH0DCrEZ56FfMzlH4Lhj+MXRdR9WGIII3NB3vWP9D3j+vb+QWQ9CttjPQmuUwiE67LC1GJdw5VtK+ij5RkuywqKe1A0kOqpeXnkUh8cC2mGpjw5gLlQ4kKxiWz1rvEI4iAQ5gG97BOgIimUX7uDB8K+SeBPDetA69F9h8fkO4LPmVD0kJO32uOmQraQMCCq88hAgC5rxEMLHAIb3p2OVKaX3z.9fM11Lb.tM3rChxLN5UPbGFJQVxJKP+O+shJb8Z8Ib8Z8QV97pKYnC+JMYMVvBecxx1ZMg4EZdDlY+yLpddWZbgcXy+OLPGlBWLuYR0ahdJDlITXd+YTY6h1HqAHtUM3zsQCcT0tJosy.Wa4qULrbvm6O7+9WF0fse5O8eINsyW8pW8K2urQ4xq8nAt.q9sRnDEXQGAp+KMZwrHf57icOxz9mJT5h+IwvSero8Okrd8kFw35bfLk8+mLeTIyu7HG6KI+PcvwjPG3AlPy4hqCKDsFLx9uUlVWuz.Udj+gwnlJryfh0eAJu7COoxR9LibjDkXI26Drre7LfaW7jJCX7iTTXCHb+juu75trK1WHAhCWt289qdTTz9G8i3E8XYq2YOFAlM.GNqr4luqSTWr7JuxuX+3rb6Q6erg2WZDhKqjxhcjguuWTA8o6yDrAIlcDLLqELo95NaisKqLH9Mf.6DdYaIFSZb0Cdz+Trqg30FvJNfA0n.bEyvcbbCONNKNUlELwgD6rOaLYHGiyO38jXJeXzPnskSeZetdwgCbCJdXxHe850eziUf2BVZAOLauS+gYK2zGwHpM8bghn1bSGe.0BBQ0QMhZyNO6ybyk8Rym8R4dZFdsPwQ6wO9Zw3MqCYyTbfmufXNEJch9rSfM5Izr8gWMewuov2WhcXAe66F+7QvRXG8ALmaD2KGgwf+Qe2Z8rp9aAPkXbHzvAj3bWTeNJsQ7NJ8WE6Joezn3woycHJIdd0Aod.lFQdyfTLzn6mWk2kkrs12ADBhDdw+m9wt+lG88ezP7S.ev7e2X7Ay3VFrJfYbVjrzNlS4C5f6xWKSmEcVBivnYH4arHrSloc7UG2AkN80l00EBDgxJHYfoiaZVLd69UZQu8oazVaaP7n8.f9ko3IRJ97pBxR0ZURyNZFqnsmEtcvwS9pbdqz0vXKM2Vd4GVMk.gVGHV0okXyWEJePkHm9gUq.WoG6YllTO0WuMaeslMSgHeReDSGR9c35c0cbWzlp4SRE8P539ies3P11V6ukV85f75nVOeZZIbWYiX5ayyXSKaAaHZNAhdQywiN2Wtfpxvye14aGiSKOxQN3v1zXLUUG3op5bmRYfK4ZJekpRGCjvK55iVHzB7lK1ETH6Qt9OLwufJLgVWX5nvmsYbWJHx.AJ4CRLdXgQSZCsEkdhcfmGUP7E4Tk3gwwhAFUTdp.ihiI9Dpkaz.lwO..Os5JesmRmI7SK0+iuiXYHaYYzqSKKS8Z7H6KNd+dg4evGueEkfX9Ks1zqKd3Cu9O4+cgM49UPTiWo306pYDl5VrjdGKCM6GWJetQG0Gl3wuQvFYfbBWNF4FmrgwOmpf4RPh5IaX84Tu9m7.nXPo2FAiG.Mgl0HaPCY.baKq1gcO2+wBKq0tCt3XdREKT3Wrvsnt78vgzHrks6EIsOZgaIM8Fqs.tG8dTowxLG.l3TOgFbpvO7lM2Ty0l4AKvZkpfYi0nhknfGDkDigl6xeNqW7+qRMqyd.MRVjYNOiiwLy4koLU9Y4T4mgGSTF40eGPHSVYIgteaCZCoI2OaQ+L1N7z9ms3Jv5WPGVHUCfz+yVvKc4JvxXCzJGGGb7grRz0z6KUkkKhgRUh2sCELhnZOyZgjK+zJWQ0yaBKZpYzyQLQzy5+XXdSotvzlQ7TyCKBKUYOc59hsJuOW4Sszjun2jzvxQoZfIbMEaoBFsQZCVLnYom526eKxkvSwe989A+8wcI7zYjuDd.pL6hHHBwONVxOtHqqVrMX+bn9R.4aS6P0bCakvYKt81qZa0sSzZ8QKvLcaGaXfTfpMVFULo.+zUdzwR3IRtAfNr1Jji61pqcSjVEjBSqpS3zv0LIwUQF0MbnnLjdMOAffRy5kr6nwjilQsvrYB+YuJqWdykO+ktcsktzRrmkNBOyWcS2J7lHmnIFSk+b9HOWHxySG44Yh77rQd9RAO6eSRD9BcJ5Y.7Li1nEncXKtQpjkza52G7TNj6Qoy7qU2iR4i8dTJyynF+ws2+dB3lKt85KVZix7axB7HX6HNh24lI6UXITqqMt9RzAGPxWHWnT8hf.jyrSGJmx6AesdcQUt3ECcfZSJeuxrVYxNquY4sIk1dw0uVjKq.7V2Qbe1vOM3ryaZkc+FvBYRIPDPtlj51fNC+KK.GhlKaKi6Z0gXSailuhO5n0lNEVd7z1yHJrly+Lz5ekNHelikI.eU.alhky6KcejP1B2BkXABNtuQoB7K8HzywX4jazzQIlRmDXf84XYPyzwVGu9H1AzE8pxmTXYf3FryZOYCK.m4GT+TaS0pSZXa0VbJ9mxu7.xitqke5cCNa+d2QJIu+TWIliNr7MI.v5JsQkktJiAt5ZUptCYkoIoXjoYmYJ+xsdCFoW2rlENqBwDKftCT3zD8llV1vStr6eKGjawXSboa81so00AbxnWF+lKeFxUWeiMHU1XYtXSURJXnmYcManEzZPA5GuvHJZ0Qb9juBOM+loPFx0pr8lKtAYiJqt9R7z2DFKo0jlgCVLdWJ9wYmme3gBdktIkkBOT.ohTVoAHRk2K0Hv0imPSDLb5Ljp6r8M1jr9JjJWaBewY+AhvHQAkRvTGpbgngu+DIu+.N33dcv.nKXGJg.QGEElagHPU3Y9A+3K69kIVrg79EmSYL4ceodBRVpvTP4ieeeZwFvPLQzAf9tC658va7vS2SD+vuoRBewzDbckfWGXIGGHUC7JCAod3VOlcug3jb7gdYc3q8Kx8GB69KSHUsXFO8LXS6oukmsSnaGDdZ9UrTFX8jZFWvEnNhl3xntg8oDMPEff+XzifR6fdBuqxItZbjjJZecfRogk7U4sc7pnGmKcMd7x0BUciy4sii2bNehckDbrNQteJvKoIFq+61ymWkYRXYy8.sVPBbuKwRi3kX3UXrokoE2kggsgFrItIayaG.4whN78.omeBu2O3MJJ12LdI8W9AUKxKDCLXrhD+tp4mtOipkLh9ZmukSEEQKMv5MeDiuEsySPWMN1HJF7aJ1Knn3+Iaei8Jd6qoSFf5y64+F1sHJCBOmve02ADXeJHptTW687DNe3u8ev+0Brc3nbprOgjqkRoOutgaCU4qKCVyIe4WH1Zehjd.dUVDdHBC3JWyJ7RmORD7CQLVcDENlPHFSXtM3jnicEvGmKbxC.OGe+xdRk94uOSOwR.eNO0SmTIgCMlim5oaLGC4.iw8tMuYvysZQA9IWAOOTwrTH9XPtCmVJBvCF6zaHl0MrN08.ilB6WspssrbaE1Ii5EY.v9X+KM08XpO4lW9S5fuJyGNq+spNKnNqFHIG5F.XXwdkG6BoDtUzSRULW95b1wVHGKp71o93NRqeZH.luj2Aw8jMPxX8mrAxW.uWf9DBD+XNnMCepJtCwIr8k4IRiQXQIffwA5W23Q07ZJ.eD+lOMyoBNGhiYD0VcuyUALWzGKPYa7tz8NBu8fv5YYo.PoI6XfOt5l3yjb8eSj0Vut9cpUKbS0WEyebqXgiaEm93VwYNtUb1iaEuzwshyc3UDiW0hccsZy0.pnr4Vk4BfIJGbPXUns2kVuNsNOfQnDvovKxKPBD+CuWeA0vubM7b2kxX+YiqhdDrqaK7hncoV15nKbaQVCz2fwkYC8Zv3X5kIa0cWC8Zjksv.wjLI1tNczpQIRsbXuft45W6Ne8JU1DuBTyjO6UBk2heMu7lNS3rvjuS0cJuEqd4Bm45WamxauxhKU9N2Z8k2YMnHymcPkXsxqu5Z6fQ0BKRnt..YVvGGn+YEGVXg2YCpYc7PjPsQ1.T22NWtroykc9z4ltP5bExlNet4RO6kfGuD7yYg+NS5Yg+jct9RJREfRjU7uXxJRR9kr+rhzMyOerfWALoromeV+NHbJ8CAHHOKjRAu7SN9vgwvUHF.MTON.3La9z4ymN2bAcR3TFHblalbCn.wCldkOF3LTOxfyb.xCj+2AeOdDirAtqq669uFSL0T7ZHUN1angUrsZiBTojDt3xc9xoC6dqm+lIIt6t99eIgvtnoSSR41R2ICdaclgeGW+5uNIHI1QoBOsTSQV.uz2HWV7ZEg0MfRE1FKOkDZ3eK2mi8+uC6suBGEhdYQyZbDuRwt+6SSrLEX.+9vOLD.zQKyq3mIfhaZ00gtDfKV1oflagIKY4BpH4GpJKaSbOh3neOQQlDf8IulkcaMCQBRuBU3zBFjyfXQmXS6fT5T7WgL.JD.x97CuaH69XRbvqufwPwXYIvynz92jvxk+DWBYb8F7pjoFdNwn0gpxpqTkuGtI9PqBwPLRcQ6LXurYPvg44Et318kas1HzciN9slMECojnXxED4s9kBR8UiS5.yKnIvmXiBz0ZZYpgpV2DkvcdOa2TQTa+FQUie99Ta+FQSfgMiKs4DPDc3393diJ2R+.lt9rrTE3T.l90HeURvS2liXx0KTYeCY.XJxEiNmDqOvaY7g0L2dXMCGg8gUOLos1AUCt.iBO0EL4OkJN1AoXmiiod6BuyfZUY9jXXVbBVmOf34CLgp14AbJX55KRxOU7kSHJzV2Lkb5oifRCn1WPT8FsspGo99cNupw0oraZ+HUyyxjz91gDz0HsAIA6XcCGLLyx0Dsh.kc7CVISF7UeyfJvkc7kIcjkICJj2.SOsAgT4fwwjcejE1DtmWMzKAs.K39qeF0.iwXk48k16Mx2eHCzZG4BE9clVvEfw.qbPQBWUoa0gg7F0wuLgqbn6pfAGEc4RwdsFEzBgNZ8C4UeiTojd8KfsPPHhjeem4uH3TSFT.VMiNUmkoLc0aeCD2aFA19SHn0PwFnp15610klRJcd64UQ91ZHYL6+AoHr.y+AiiEU.eCDjbTDAhamEDK5v28VnHPb3efnwvv9QD4wF6vQcrTGIDWV7MdztOrfizLY2XPZIY5m.XMq0Bi1Qv3fnAMpnbnQcwiy8iDbjVLhKNlcnAiGFlKdQ5AMglMyutBs0cr1OEZDI+kZyEYudkFURk..RGPAhaqAIBNU8RRTK3ufggavfFluz44E.dr8VRxQRIT7zy3HNwqyHjFom.BPh1anhPxwCaTEhhn4LdzNNjAQ63Pbb213uGzXeIquItW5RYy3IcDLDc3kSRrNtBlOaPQCwwhqvWXV+xFBMiqr4DMLPMiat8uj5PeMlFLW++voTESPUiciTxO8mCb1Mu6MX1bqRUP7N+gcw.jlLo+EoY7ky+dOj8xDat3aqfKaSnTbCPiqbduxbF.Dw7cpW9IiAUyeHup27tlsi194GUTN+nfy4GUjN+vw57wh18i0EF9qjPh3U2WnpLpHbgQAgKLpHbggivEFQDd5C4cUXbX7ziJFO8nfwSOpX7zCGimNFLVIvmslzC.3jhgz3+i3hKAJ -
-
@MZLY you need to use the loading callback to wait for the sample map to finish loading before calling your function.
-
@David-Healey Thanks for the response, David!
I understand the logic—I need to wait for the hard drive to finish loading the sample map before I trigger my coloring function.
However, I am not sure how to implement the 'loading callback' you mentioned. I tried using Synth.setLoadingCallback but I got an Unknown Function error.
Could you please show me a code snippet of how to set up this callback? I just need to know the correct syntax to trigger my function updateKeyColours() only after the loading bar hits 100%.
-
@MZLY look at this documentation:
https://docs.hise.dev/scripting/scripting-api/scriptpanel/index.html#setloadingcallback
you will see its not a Synth function, its a panel function.
-
@MZLY said in Issue: Keyboard Colouring logic is "one step behind" when switching Sample Maps (Race Condition?):
However, I am not sure how to implement the 'loading callback' you mentioned. I tried using Synth.setLoadingCallback but I got an Unknown Function error.
I made a video about it a couple of years ago
-
Thanks, David!
That video is exactly what I needed. I didn't realize you had already covered the pnlPreload / setLoadingCallback method in a tutorial.
Using the panel callback instead of a timer completely solved the visual lag/inversion issue. It works perfectly now.
Thanks for digging that link up for me!"
-
M MZLY marked this topic as a question
-
M MZLY has marked this topic as solved
-
@Lindon Thanks for the link!
That explains why I was getting the 'Unknown Function' error—I was trying to call it on the Synth object instead of a ScriptPanel.
I’ve set up a hidden panel to handle the callback now, and it’s working perfectly. Appreciate the clarification!"