I think your solution works quite well.. I compiled a plugin and the performance overhead is quite small and actually, runs smooth.
/+ finally a fascinating method to leverage that weird BlackKeyRatio animation..
Content.makeFrontInterface(600, 500);
const var FloatingTile1 = Content.getComponent("FloatingTile1");
const var Knob2 = Content.getComponent("Knob2");
const var LFOModulator1 = Synth.getModulator("LFO Modulator1");
Globals.funky = {
"Type": "Keyboard",
"KeyWidth": 14,
"DisplayOctaveNumber": false,
"LowKey": 34,
"HiKey": 127,
"CustomGraphics": false,
"DefaultAppearance": true,
"BlackKeyRatio": 0.69999999,
"ToggleMode": true,
"MidiChannel": 1,
"UseVectorGraphics": false,
"UseFlatStyle": true,
"MPEKeyboard": true,
"MPEStartChannel": 2,
"MPEEndChannel": 16
};
inline function onKnob1Control(component, value)
{
Globals.funky["LowKey"] = value;
FloatingTile1.setContentData(Globals.funky);
};
Content.getComponent("Knob1").setControlCallback(onKnob1Control);
inline function onKnob2Control(component, value)
{
Globals.funky["BlackKeyRatio"] = value;
FloatingTile1.setContentData(Globals.funky);
LFOModulator1.setIntensity(value);
};
Content.getComponent("Knob2").setControlCallback(onKnob2Control);
HiseSnippet 1841.3oc4YrsaabbcVJstQzUtQIFoIuTLfnEfpwUgjVVtw4hoDkjihkrHLUbhiQfwvcGRNP6NylcGJYZCC3W5ePA5q8SQu2eh7Ij+.2yYmk6EIJIpHmBGz8ACNmay41btH2NT4vihTgDq41aT.mX86s6LRpGzZ.SHIasNw5Z16vhz7PpAzZiBXQQbWhk0L2CAXM2rj3ue9tqw7XRGdFHB4QJgCeaguPmAscy6K771j4x2S3mi5katkiR1R4oFB5yL10HALm8Y84OfgjUxlXckMbEZUXGMSyiHVytlxcTmApCkF5ejHRz0iiGpS5.Bx.dSkmKpwHTRqABO21is6HBwxtclWXFiW3516HbEovy7FuaLBZFG48GVkNK0qdd0q1DUuZSR8rxodyZTuEr63DJBzYXPc6p1aIg.UOFDBxqVFZIk9WWwtkBnPpWxmsOeyP3PJGUWoVsaPuUsZK9YyWd9xPfHRSOfER2zSwzBY+8Dd75zufNVD845VJ+.kDNTsRAppfxHSB2Wp513T4LF6w3X6M2cGk6POF3Lw6LNkD4KEZ0J.MzLhpXT64KeOOUWlWzR8FJ2eDv5KluLkVAcaUtCsx84i5pXgtUtQLX332Jb0C.T0W1.ZcQTfGaztNZ1A7GLzuKODv1CDI2Pv1pCA1.X2LgiuRXNWuwsM.ZMLRq7uWHKXfvIpH2qy6wF5oWMHfyBwGK.Zc3vDrq4AI7fzdH3KU.lZKsxmZ9L32S0uuGGr5hrgojPJpTx8P8v.7ah3Oh6.9lIqH.5MAWWG8HuiIr1aj5kNFbHuNTmcQMRQrgzM28ux7keYRzPH8DRNEBFNfEIoJIFtqiYBgJupNiSCtAD18FxWb9xwwKJsPX7Iic5+.DPiIDD+bER4VJBSphyuVmoYUKvOlafZzom.B4Oik.nWsXddcgHQ0hp6hmoQ03BaTEi1WBaatBuWPxwm0xHgdTUiJbtNfFmkCnwwb.4r7Gnz7ckUWr7KJOW4WdBL85MITIhyiGNIrXSgvyfspx3Wkmv6FcnP6LHA6hzO4SnleRi3dvCgHpd.mlFbnLoaBK7HZWt9PNWhj3SERZEGVDuBdbDkExoCgRoKYtljaC+PhneG5gtSFvb3wu1L3UQbLoZkmUIQoo+UZcSk1wj8xiI0Ge1REKRNBpS4vgrFSLl94P4hasH8tzZz6PucsOC8.PwcIKbDUEvCwjC5SpJ5E+nFHrpqZQvDEQz6TUEh+jo+ApVk3VRcJwhO5zMqQfYYTl7VD90Mjy1exVo4WXR4Kg1ZE6aZe58My2V2wjMmiPkbKoPua.WdZM6IIOAf9pkRxm.R0wcUuVRW0NdBWdHQ.MO+c1wE.HwtfrIUVuIYpYtwwYF99lsvGxXu8D0ATQHBoEn0asN+.XnISm94rWmGsuVE.WT5SVXJMcxXJlKMe4h3q9OXWnBB4YYW+ZMGkc3Kaln.laqr83R+jt8GOH1bWw0080H0BM2OC5qe8q+nhPaj.NlXM+Y5Lh+OGYfFa2kdrk8Kt7MfWt1u9Mf+sVeWxgn6LM.ejeyAbQ+AYSe+puGycSSjt54l5mk57p7oNu5wMiPa.2X3qTghmC4QLuic8+6Sb8jUa5yxD4QOsouv00i2VAcqfx7YxeWP97fNhmyyuhwwR1VXgELXxYRW4bePlyj957ljaSLoEGjdbdPD4TTOxOcWxImKG1NXba37qLf6Ikf.kQ9YySaTm2Huz6QLwJeSo5tfcar5+j02RSPewRo+JquIakMu8F85AusxT1Ys276dytB14oJWynJW0tCLCX7dIwJxGDel9sPMK583RS215m11xGMT9Om1skCl5skMkL2CppEEnhJH3Nbewdv6in7.wRQg7eLtVWd3sfZPSD0Oe2MAibh7zgoGFFmtrpuZnTWH8XloNlTe5WKd12Z1Z+x7Z6xWbXloScmfGrT6S7W+4cgzX+.O9FxC3dvHIw536YmzzbLzh406njpfAJovIeP+gbcnneedXdcehFzpZMTrMCx0a9PXfcV9D3+bysgDOVH1A9Wnun9Y6Krlx30GZaTWJ9Xj9VUQ84MpssMrMXRtUw+FImmNRH3S6gboyXf+zyu9BMwROaMtxUyx+wa2Dqx0SE5mLhZpItMuObQ4grGGZKCUIKjZzwWof0NvYSSKncze5e7AM2VoB1Px.ufadgXFma7kRr9K1MVdoheGrK7O89X7meZq3yjNvzCwSaZ8D6UhoOG9at6alyj2bYfklxLv2ONplF9v36a4STXz3zbqeCnwm4LPy7+my.8P0PbexcXPccX.ZaX0rNvnGN7jMPv81sJgiOXNWCOal8P5Fe.2LLAYc7rUBx5iQ9+j6vm4DpdpiY8c7g26DCAraY7+MCyYuCdlltzO5afs.DO0wAc1+Mv6LYNZbg43lWXNV9BywstvbrxEliaeg43ueFbfyps5Pnju4oG.n8FlJ4VocGrlg7eAvAt6vJ