Correction, and a reproducer with counters
I need to correct my own post. The central claim: native slider drag jitters, script writes are smooth. That is wrong. I was judging both by eye. The script path only looked clean because the ScriptPanel handle I was watching spreads the 0–1 range over ~676px, while a rotary knob's pointer covers roughly 35px. The same value wobble is unmistakable on one and sub-pixel on the other.
So I replaced the eyeball test with counters. A timer drives the parameter through a strictly monotonic ascending ramp, 400 steps, no mouse involved anywhere. Any decrease is by definition a second writer. The script also counts callbacks against writes, and checks whether the value handed to the callback agrees with getValue() at that instant.
Conditions: 48 plugin parameters, a panel repainting at 60fps to load the message thread.
HISE: 402 paints, 401 callbacks, 0 backward, 0 skew.
Ableton 12.4.3, VST3, same build, three runs: 555 / 562 / 567 callbacks against 401 writes; 153 / 161 / 166 backward; skew 0 / 1 / 0.
The excess callbacks and the backward steps track each other almost exactly — nothing is lost or reordered, something is injecting extra writes. Every backward step is exactly one ramp increment:
cb 0.007500 -> 0.005000
cb 0.012500 -> 0.010000
cb 0.032500 -> 0.030000
The host returns the previous value while the script writes the next. Skew is 0 or 1 across runs, so these are real writes landing in the store and notifying normally, not display sampling artifacts.
Repaints lag the callbacks 132–147 backward paints against 153–166 backward callbacks, because repaints coalesce. Visible jitter is milder than the actual value churn, which is why this was easy to under-report by eye.
Then the same parameter driven by a host automation lane, same build, same host, same session:
Ableton, using automation lane, ramping 0→1: 1000 paints, 1000 callbacks, 0 backward, 0 skew.
That contrast is the useful part. Automation has one writer and nothing to echo. A script write is a second writer, and the host answers it with a stale value. That reads as the a92a701de mechanism directly — a listener can't distinguish an echo of its own write from a real change.
The magnitude varies run to run, which is what a race looks like rather than a logic error. It also explains something I flagged as unexplained earlier: one early Reaper session appeared completely clean and never reproduced. That was the low tail of this distribution, not a mystery.
Consequences for my original post:
The two-path asymmetry isn't real. Both paths are affected. The native drag is worse because the drag base gets perturbed and the error compounds, whereas a panel recomputing position from event.x each event can't accumulate. Difference in degree, not kind.
I pointed at MacroControlledComponents.cpp:735/752 because it was the only differing code path. With the asymmetry gone that nomination is unsupported, and I withdraw it. This looks like shared dispatch, not slider-specific.
Reproducer below as a snippet. Press Sweep, wait ~6.5s for it to stop itself, read the two totals. Results are drawn on screen because Console.print doesn't exist in a compiled plugin.
If you get 0 backward in AU, that's a real result — it would narrow this to the VST3 wrapper, since AU and VST3 don't share the parameter dispatch path. Worth knowing either way.
HiseSnippet 5518.3oc0c80aabkcmzIL+QY2hcAVTTzmtPOrkZMEM4LCojiiSrrrRn2XKqZJa2hfT2QbtTbrGNCwLCEE2tInXet.8khBz8aPeoeB5SEneQJ5Gf7beo8bN26cl6PNTVilDfNDIRl2+btm+cOmem6cn3IgAi3QQAg0pu0oKmwqU+m0X3R+3IGNw10u1ieTs5+oM9stww7vW+b9rv.m4if+4KMp8vkyrih3N0pW+89Jbr0+32uF85G9hGZ6Y6Ohm1TsZuLvcD+ItSciSac1C9ZWOuuz1gep6TsQa8fGOJv+v.uf4.e8dM5Tal8n2ZeN+XabX2pQsA1QSpU+2znaGCGduQV7w1NFF6Op29VbqtNV62qSGqwFcFYae28r26rZ0+fibbiCBGFaGyipU+8eXfyxgSBV3KVfW5F4dlGGeS2ZCgUVz7WF34fhH1ZsCm354bhRgEUCnxIopu2Sn99UMdpqiaR6opweA0AKcF5Jv52JK68dYXut5rWGM1KGVptFK89BV5W1X3nP2Ywo8f7ymz3w9fUcrMXmzYEwXqcq+66z3N2gc+eLesEPP1fGO7H1Lu4m65ylYGBVTfKXugbwX+W+8+SrvD2L1EFrlt9QwgymxAl0Yms9Igkd0fCNkc3fCN9qN5QPCTamNgylExuvMXdD6BdXjafOyN5sbG1xf4r3.1qN3zCGvFGnX91vbriYKriX1rotQw1uk+ov+Tp7s84drI19NdbZAh.pa6DwhgEpytcYg19myYAvRw99960e1krEfwkCDHLH1NbI6s9Am8WDwlE3h1M1HbnQru2r2rKaInX.QrHPkxtv1aNmsH3Lvqg4FwBNSHIfPD3CD02gEM+rcm4dIvUPi3DCfe.RwuctCXaNmH4YKY7knhfLHN.yL11KBlezxofgC3pla6aG6dAm4DZetTSD0hEQBMaQnK3OyrCkx7z.XQ1dm1rGB+FL+wSnNY1iGyGAF31ope2T09gO6EGe5PF5I.pr1rCXwP7hPXIgEVnAS8jhmDFL+7I.qB9Mtih8VxlF3GDG36NhHsczHtuCHgfJe5L1BWfS7CfAMGDLW+KB7t.kT+kK.0AuEpVg2vb3i.CVDoMOaIQIG9XWe2XxyfEwgXVNBIFzhONlAZp.vLM2ONhMx1y6LHHFHtmaiBhT0zBMEDwFMgicCKJZFHgRXDQeFfghEVWEg.5DxAgmX+y4wuDGaycX1wD0hQWQbcr8iSTpOmGM2CXFXGVPHnsQCOXn3b+Vry3irQEvgA9QAd71yBA2LlS.rDfxiwuDbnABxrELavzYfyoibibxJv.CgKJuGC9NHWB+lsKtfTyjzxfvZronJE7Tm4QdUdAKvs6j7BrN4OJIXtuR1YJorbriNKB+U1EGLKwgAdolfU3BGtG3FEtJebUKuhES4CEwkyBhSrPvHIu1UyGf7rHBjt3BgG4rTq4UwCNtQjK.v1wDolFfAIYAiUDcoxp7ziNX3Kd9QOh0jB91ywzp+98FC91ux02IXQDqa2VLq8WKrLnpNadzRnAeJLwNeZpgVDViEsfym0RDUekWVcLXJ6tUmtn0oEqCYZvei5nbo0APLKX6JqqQaq1lrWN7TSVSXaMmyBm6GckZkLu50qG6Nrd8MnetGx.W641smILqt86R+rujqI6ZGrI3+6b8IlIxBxeZsGQrE1gNR0ijNCBfsX1yiClZSwT.LT7TsAQmNc5jnRo2juNkH3QnK.rwEy4mF1vU33pnJoxwPZ1oLEDkclXOBW5Ewx1INd9k1TrULaBEG00GhjfdfeJs.SPgIjGOOzOJyVEhbxzSTBNJmUlzEXK97KiaKz2vp0gAoY6xrGEF.BC5EzRltKRrQESh.gm8Tj.zcTHdo3FAXqDatffYtiWhc4GDNEzJKaQA3fsSy7rEBKEWBGhcHLXPNifDVYMYHO.wLg3Eoplz82xfoDwTw9f3P1dbH2CDI3BAbNEpGP.mB33nn9x.KvhNGjFgdZzDPK1VGYBESyFyhfg+oIj0uAoIo0QzBPFyzdm.3Sd1wGISTITdB8xDTjgzL7QSBvjr5FEgKxviN7YG+H4TEtHI1ZaevWJTXdckLFlCFDZgXjH..MN84O6ICkt8mxgYqhQlMW9beRo.CnM6QH9B23Vnm.36xFRdtDD.n41p8PD.K1qty.JsSj6uS3fEHfWIvewvvisYG+rSWOhmhPBxK4Jgl.B0lfjP3y2gs6myfPmee+18POx3fYQ.yDw8FSJGQh1DZdP3zzrA.ywiE.w.3cwBfBnE3UO9zAO6EmRhFYQTHADPQHscdQdV0CXjM5gRSWAJ4jPLV.g.AMzB1qcdDCz1KPXrYkWIPQh7fYXazaeax8ka6C7J3eKD1ebwnuE.JIFhrzdJ.o9KCg2jT5Ry852oEauNc14dagK7t6B9Py8sgcWQ3aJyqsfcYfq4E1grSN33idxqeEpYtOtZ2as9FH5qqUl9N9EO80mbvyO3oCg9r1+d3f.tLFPz6kW1VHHpWagEWFh.hupQuG9hg+0u9IO93iP5YXz4dB5MEz6P4w6hIIsc.TLvOlA6bTniznvvWczQm75gmdzI.E5ztSGidRhXAoSvn6QHfht8mFACfbrSQLSpXbyiZiDt+pkXSnOVr.x4wKBXQdtNX0ITDxsv0ULgWgrsUaPGk11.Ts0lDkjWvxLNDhAhNy.fFA9iIb2ymDmXlSKLT3zGg0NeCr4Dq3EbNVzCSXEohbtmpim35yiDc7MeK3lgMS50CwsrXyR4gZDSTvVswmXSw3HMtjBiNSNc8AO5L4zy1nb5oTPz7PAJS0XoVoD5uLyfS1WLgbmxM9J6lsuHxygBeeelZKpsiyWCEp1baYWa2hYzA+eXCpro1PfulaGCI3gN2lFT1NeNFqtIv6sPGiVnTr5rgRurgZYHbxamyHD.n6zt2pSzM5DZa2IJk.LavMhu53lkcT3IOoysJcJ.laJBsHm8xSbcbfcEWScJPum4C3oDUF.kiBg5RRttaDrcRyt44Rfqrwe6hvNVR6DcviffuTUtsOBeCn0bnzRpJgPLCyTHQrvujLTQRuZrIWPtvyynoK4PwbYeldDrcYcg1t8s2Yq+tsP2KbJuMOSOP5sY2l4B1E3+.sEN52JzqKbchm.ZxtYaVr2d81kgAgNn8j5cluWRR25d.ZD7Jr+ZiZCV+Sf3pnjAJnaCbpbNJMY6Yyilz7sPqeG4e7Ufux7PwwevhvZyFGFLUGuKd.HfAJfxret9vQHohD+gtXxr1Za5lOaBn0OxG3Pda7PIh4uHhGdBgnP..JrolO5JArwvbMyE6yNrBruePR.8715K6EMn8z19KaNaD.ElssWaLBSrAYhMTV5bnzJQCvLLqMJg+frq7DkAWonL.o69qIJCxUTFr8ZiIwasWp6Z2bnzJhxJx6fTIQzyVt9PkJb1349xrk9RYtIdFMP3de.xLAeTssMMSL0rzG12CAX2VhXnovIdSDev6f3CtNDWKqjX6vtRbDRW0aNZM45k0dRG.KryVzmLsTWSTIp3uLAnjP9Vs6j.URXeq1ODLNXwgpJAQehC8boCcZ.c1t+ZpPFDqAkFQatmf5lmGLGJBf2Toxadtdz1EfHAkoE09bd7qP9roLDDglRqyADWp26EPupDboGvDvA3.n0WbeKM6bY28+R5kb1m2drqm2y4iha9McnP5KfjaeqZtfYT50KNQaUQ5ncc7bOnhbjQk0tDgUbmTUKURFTqb.feUQqHLoEBNFOY5HD72TPugn7nB1N5SIYTUtNiJkQ63HVLg.gpnFeI+LbEQ2UHRZDdRsxyeE4O7H0oCrepajGv6fUARgFNW1MURFUSXhNFs.xMPZZdT0Og8aTd+o8bIBB6BnmlKfzmSVnYPVhc0bB17jcfQ.Ypx0ZfVhCNvzLGqwksXKASAZNRsGqO6L1RGnvtC7bO2mC9BWF2TlFwIXNjk4zfgwgfRn4EsXV6zhg1ajCMrHitQmuE7mgZAhC4NaqVP2wrlR3y6PMH7WSNLXBl6susbzpYbAfsHEZ7tXfN9t2cmjwjRjDBgPiyPGEsRwc+Y2m0emsVsXVEFdQB5sogynD44K8I7UKfZvn1FKyeyC+BbXREL9561JqBfjPvMPLhuaquK+31CE6N2Xn0qPOKqkXckLsQ6yTUP7tzxhpOxUEKKL4ZoeGcF05lUXB14ZpbEm7wlTvRIKIcSFw+o.7p11mE0b8.e3gvQJW1mulRQPWr3JTUnsf4mGSqrgCEW0fJ7eyDi5ZnQVejxNWKa+lF4fURe7T79qRFUR9CHbperxEJETp3PmffcKmwYFf96EOlo434BEFdIqiVNiDWPhfsGgI0vKjUov.Po.W36jfYVtPMMnTFRH14SE1u+2yDMfWh3pN2WYhO8zaRhdIFRUhwgBqtC6Nx3uIp30BEgEOjwA3hjpmyNTxcY8g1MyPWqPzKzXWUmh7eNfjHrLIuWbfzQZ2omW.dS.P1UnRtnjpB0cMS0oz8X9hYWaKiptpuSqhg7NOoazInAzaXLn0ivChGKszVbgRifTrPoPpr3Ms8s8VFgmo7Q+kPmgWv2ocV.cODm1F.zg8oNmg6JAzgscE.5R6NsxSBKndm+zhHKNsHNn+WLCKMeSHx5TDDYYmaeXt86e3gpdoZdvKw49.yeGsSTLkydibnzYA7FwYA7FXSh1XYuAOGf02nN6RX3uA12gKQ1snyVJQIAaIgv8Tv4HW+lwPSls6.M8FpytFHbHw.sLRog.6Blno4L.4C9+RpAuYopTIsTrZVR74KJb8fiJKIYjzhpKiU9n.5NBjcjTVAUEOdNMzs7uHXtmC3dO1CO9Qw8Wfil.OR2tujZN.P24yjW3kxyO4DATWdDF6ExL45XSWFvY3yIwX2ywCFn8JhEFAmDrlc6qs4MveWwk5KOeeV4O9aXIetfVaXGnnW4dPKUQUhVuhcg5CHYenQO09vzt+oYmXoq8YiXsSVXeXgSfG4w8OOdRJWEpuOKTrOKD1m4C+Rs8JeT6JR9Mg.h7uoKVIKtAJD1OzcOfIQL6Xi6g.183ioyrLWbmzgFcnrPmjMDZGuMczxYvfyVoMwoSKSWpAGM4foSwVxVosjC1NyrSNW6jQlnBGAkoEprrotHW8wVH1GrlPlPTndPdXbyNXwMhmfDDOpRJPHphmmDQqjbPMR2NsnQjk24dajrxq.FGqlpMKkSzuuCoStMOm6jTbY92jbz3iLl3ddoijzVBxfvKgOCHwBzx3kXCijBZYKdHrDfUjHuvp7Q5MgtY3P9TvwdjsONB6Qh.hDH.+kvr72UiygrE5I7OK1WbArYh27v4wvvatspWHXgUW0QxoZL6AxIFW1S7CTr4P7zfYJZKO7ZUKqe90Y6IyQXmsq0OE6LC3cjcRdkN2W8Ots1k3oAoV16me+TDpo4lSnQW01rbwoJF1UBVcqzGBJHdJdk2hbPZ8naJjGCed8lA.r5V+bwS.Ov+gxAAyrE9bhLZh5xzSni3gKISAZWs7jirrgRwSV8qpVbYCaPO24J0yo2Uw6PIuR34zNTWX48oRqtWAqCK47IR7BWALgPoh+jCNrqdrNoyJGq+0rdi0ED4stlJ5YiZmfsaqL60Wu9Xk0SCSjc3zLmnG83o.vIV+grf8NCV9Ddbj7wvXsm4hUddKNN8VczdpnBVHdjnltRDO7wCYSw6f9fnG85oEsCZJarNbLazeF5r3dyaz6KMyc9mpbdm+0UMtzqeW2ediNf2PeFoFKWOFnOT2k4wes41O6qYpGRKsGKcrn3kzypNl2V6FRwD5qcqZfMQyTbbPL+YhX6eLvVrU6Z73b6SxyzM6kS2xMgadhM8mO8LLachgmFXs5ue1O3AM17G7.8OWDiDNoZCLv+w9twOaF2eSeZIpI8rqUqtkjqfgFSeDE9SjeDEFRO2H0bcpU+iaHcXpQrr9mkjZWio+AMlY6zoDysaIlqQIlqYIlqUIlauRL29kXt6Uh4teIl6cuYy8CIeiNkYxcKyjMJyjMKyjsJyj6UlI2uLSduxL48KyjKiGlQY7vLJiGlQY7vLJiGlQY7vLJiGlQY7vLJiGlQY7vLJiGlYY7vLKiGlYY7vLKiGlYY7vLKiGlYY7vLKiGlYY7vLKiGlUY7vrJiGlUY7vrJiGlUY7vrJiGl0MzC6m0H8loWkB28AEjBCxPg+1+w+i+yuXiTPTcKQgsZnpnu.xf17+nFhp6xY1u3wOxN1F+fQKK+.JIYFOL1Eq1o9i3W3NhK9XR+wMdDO5swAypUe+CUUJCMeMpP4Rnvo5+JX0Vp9GScc.0wIAQzGOTcNBOpygt+tLbIVAOBKkH1ZOgpHMqieb4W+gRMYR0z33O4cUTDwt0TrasBytzYfBM7A0kMHN5S8VtPU2nf9ESl9vF3CZa2hHTcqHBkQQDJiJhPYVDgxrhHTVEQnrpHBUuhHT8pHBU+hHT8qHB0dEQn1qhHT6WDgZ+JhPc2hHT28+2KTejH4amqoToNOrJhX0sPhU2phXYTHwxnpHVlERrLqJhkUgDKqphX0qPhUuphX0uPhU+phXsWgDq8pJh09ERr1upHV2sPhUUAkgQgPYXTUPYXTHTFFUETFFEBkgQUAkgQgPYXTUPYXTHTFFUETFFEBkgQUAkgQgPYXTUPYXTHTFFUETFFEBkgQUAkgQgPYXTUPYXVHTFlUETFlEBkgYUAkgYgPYXVUPYXVHTFlUETFlEBkgYUAkgYgPYXVUPYXVHTFlUETFlEBkgYUAkgYgPYXVUPYXVHTFlUETFVEBkgUUAkgUgPYXUUPYXUHTFVUETFVEBkgUUAkgUgPYXUUPYXUHTFVUETFVEBkgUUAkgUVTFac8dhJIY6e9l9nA9CewT8uYcp8fo1Wl91+lGHdvA2pg5Ogh0z+yGX5.2+A5b9Gc8dRNIN+Oq90hykb4e7eAe8u9EqvVC1.a8CegNa8gB15m2P6KLE4yYo7u7Fq7bV9GzM8+62ZUS++fj2x9WjuZ0+yaro+h7kw99AWI6f+E3XE1Y65WI67GRedVe2qwmzH4S++Jqx+1UuJ+O4rJMtNO2szp7G0s1Bi3G1Pz+0xRsUC0GM3b1SW7coWOgH4g+kVxe8sVSDZz.6s15ewH8KZ7z.m4d1wY+dZB+1rR1A5lq+kiD92cbev8eotS7OZe4MccYweYiSbiGMIed7V4vi0p8SBOJ+Ju5m23H5qumTF78a7k+U+z78aUMweDXN+o1wgtnA+34SGFLObDGVcevOD+LrVG2VHeeGkyzPtuC8l+W3krytpv9XmcUcVaJ9mvxWK+diA+R05inV.dxmxG7wMdJ9dVNeDEfPjtudznrjZsIZbSmn4MchV2zI16lNw92zIt2Mch6+tmH9UvV52EFv.d5IGQe9.pW+H5KM.xas1+G21UoP.