@Christoph-Hart Nice! Based off the last few months in here, AI continues to be a hot topic and the HISE/Moonbase fix is eagerly awaited by a fair few people. I look forward to being part of the meetup if that's alright?
Best posts made by JC
-
RE: W̶h̶e̶r̶e̶'̶s̶ ̶C̶h̶r̶i̶s̶t̶o̶p̶h̶?̶ We found him and now we talk about AIposted in General Questions
-
RE: Thoughts on Moonbase?posted in General Questions
@Christoph-Hart Hey, thanks for the update on the native Moonbase module earlier in the thread, that sounds great and would really benifit quite a lot of people. I wanted to ask: do you have even a rough ballpark for when the native module might appear, and/or when HISE is likely to be fully stable on JUCE 8?
Reason I ask is I've got a plugin close to release, so I'm weighing up whether to wait for the seamless integration or ship now with a serial/Unlocker-based approach and migrate later. I know you're very busy — just trying to pick a direction to commit to. Appreciate all the work you put into HISE.
-
RE: AI takeover the plugin industryposted in AI discussion
With regard to the 'worth' of plugins created using AI as a tool to help with coding... i think a large part of it is to do with the intention behind the plugin by the creator/developer, whether they have previous coding knowledge or not.
For example, if it's just to make a quick buck, then the creator will probably spend as little amount of time as possible testing, honing, redoing, versioning, iterating, bug searching and fixing, optimising, code signing etc etc, and certainly not spend any time supporting, updating, bug fixing etc. after release. Which would make the plugin very questionable to say the least.
I've been using AI as a tool to help with coding a plugin over the last 2 and a half years, mostly boilerplate UI stuff, but also a couple of custom c++ nodes. I have had no previous experience with script coding really, only visual node based coding, but i've been producing music over the last 20 something years, and my education has been in music production, acoustics and a small amount of DSP, so i know how plugins should behave and what is generally required of them in this day and age.
So I'm very meticulous with how i use AI, for example, although I dont always understand the literal code, I do understand what it should ideally do in the realm of the plugin at that juncture, and i test and retest as many times as it takes until it works as flawlessly as possible, not only to my eyes and ears, but also to proper published benchmarks, theories, equations and math, as far as i can. I also plan to have the code reviewed by a professional plugin coder once i feel it is finished. I often audit the script for security issues, cpu usage, optimisation and whether AI has per verbatim used open source blocks of code (there are third party tools for this) and other such issues.
I never ask AI to help with more than one thing at a time, for example, "make me an audio plugin that does x, y and z, make it cpu friendly, give it this ui and that ux etc" , and the one thing at a time that is worked on is always thought out as much as possible by myself beforehand, and split into many smaller parts so it's easier to get right and the management and maintainability of the code is easier.
I also have a vision for my newly created company that includes long term support, proper codesigning and packaging and full testing of the plugins, both the actual binaries and via code reviews by a professional coder. Plus demo's of the plugin so potential users can decide for themselves if the plugin is worth their time and money.
I started because I needed various plugins to help with mundane tasks in production, found HISE and enjoyed building my own plugins, (at first without using AI at all). But now I truly believe that the plugins i have lined up will be genuinely useful, fun to use, sometimes educational, sometimes tongue in cheek, and sometimes quite niche or intriguing. And I'd like to be in it for the long haul, being a solo plugin dev making useful plugins and offering full post release support.
I understand people's objections to plugins built with the help of AI, especially if the creator doesn't have much, or any script coding or plugin development experience. But I do believe that the intentions of the developer, how they use AI, and whether they spend the time to check their plugin and the code in various ways are of importance. Hopefully my plugins will be useful, enjoyable to use and most importantly safe and secure, if not, I'll do whatever is necessary for them to be so.
-
RE: HISE Bootcamp - Full Course for Beginnersposted in General Questions
@David-Healey Nice! And thank you for putting these resources together, they are an incredible source of info and help for beginners like me, and the wider HISE community.
-
RE: Errors when saving and loading XMLposted in General Questions
@David-Healey thanks for replying. I think i sorted it out. After a brief chat with Claude, it said:
This is a known HISE issue related to file locking - something (another program, antivirus, or even HISE itself) is preventing write access to your script files. Here's how to recover:
Immediate Recovery Steps
-
Close HISE completely
-
Check the TempScriptDirectory
Those JS files in Scripts/TempScriptDirectory are actually your current scripts - HISE puts them there when it can't save to the normal location. This is good news - your work exists.
- Manually restore the scripts
Navigate to your project's Scripts folder. You should see:
Your normal script files (possibly corrupted/empty)
TempScriptDirectory/ containing the working versionsCopy the files from TempScriptDirectory back to their correct locations:
ScriptProcessors/YourProject/Interface.js (or wherever your interface script lives)
Same for each ScriptFX- Check what's locking the files
Common culprits:
Cloud sync (Dropbox, OneDrive, iCloud) - if your project is in a synced folder, this is very likely the cause
Antivirus scanning the files
Text editor with the JS files still open
Git or other version control- Restart HISE and reload
Preventing This in Future
Don't keep projects in cloud-synced folders (or pause sync while working)
Close any text editors that have script files open before saving in HISE
Add your HISE projects folder to antivirus exclusionsI then proceeded to leave all my HISE folders and docs out of syncing with OneDrive, copied all the script files from the temp folders of all my projects, and pasted them into their respective 'normal' project script folders. Seems to be working with both saving and loading now.
-
-
RE: Scriptnode fft analyser colour options?posted in General Questions
@ustk Okay I understand, thanks. Since I'm new to this I just wanted to check what the norms are so I don't do something wrong. I am an advocate of giving credit where credit is due!
@Christoph-Hart That's great, thank you for answering!
-
RE: Plugin parameter value jitters in VST3 hosts — host echoes a stale value back during writesposted in Bug Reports
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.030000The 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. -
RE: Plugin parameter value jitters in VST3 hosts — host echoes a stale value back during writesposted in Bug Reports
@dannytaurus Thanks for testing that! A clean AU result is genuinely useful, and it may be format-specific, since AU and VST3 don't share the parameter dispatch path in HISE.
However, I've just updated the reproducer project that takes away any human error by way of uneven mouse movements back and forth, or trusting the human eye to see any jitter, and uses actual data instead, plus a correction to my first post that's needed.
I'll be posting this project in a sec!
Thanks again for your time!
-
Plugin parameter value jitters in VST3 hosts — host echoes a stale value back during writesposted in Bug Reports
Correction: the "script writes are smooth" claim below is wrong — see post #4 for counter data. Both paths are affected; the native drag is worse in degree, not kind.
A plugin parameter's value jitters noticeably while an inbuilt slider is dragged in a VST3 host. Writing the same parameter from script does not jitter.
The snippet below has one parameter under test and TWO ways to change it: the inbuilt knob, and a ScriptPanel handle that writes the same parameter from script. Both send parameter gestures, so the gesture system is not the difference, the only thing that differs is which code path writes the value.
Reproduction:
Load the snippet, compile, export as VST3.
Load in a host.
Drag the KNOB both slowly, then a little quicker, watching first the orange slider/handle, then the value readout under the handle. You should see that the slider/handle jitters/wobbles/shakes back and forth, and if you carefully watch the value below the knob, when this jittering happens, the value flickers between two adjacent values, for example: 0.2500 / 0.2400 / 0.2500
Drag the HANDLE (orange slider/handle) slowly, and it should be smooth. So it only jitters when the knob is used to move the orange slider/handle.Severity scales with load
An earlier version of this snippet had a single plugin parameter and no repainting panel, and was nearly clean in Reaper (however, I could not reproduce that reliably afterwards). This version registers 48 plugin parameters and repaints a panel at 60fps to match a realistic project, and it reproduces in both hosts. My actual plugin, 48 parameters plus an analyser and a custom EQ display is much worse. That scaling suggests a timing race rather than a logic error.
What it is not
Not the gesture system. The Plugin Parameter Simulator highlights the control in yellow/mustard colour for the whole drag, so begin/end gestures are being sent. The panel path sends them explicitly too.
Not quantisation. An explicit stepSize makes no difference.
Not a feedback loop. Completely stable hands-off.
Not the normalised value conversion. A host automation lane sweeping the full range is smooth and uses the same conversion.
Not project-specific. Reproduces on this bare snippet.
Host only. No jitter in the interface designer or the plugin preview.Environment
HISE commit: 5d34685fe1a9e75e40dd4171270d764a2fdc0de9 (2026-08-16)
Ableton Live 12.4.3, VST3 - pronounced
Reaper 7.79, VST3 - present but milder
Windows 11Possibly related:
This may share a root cause with the automation echo issues in https://forum.hise.audio/topic/14165/latest-version-of-hise-breaks-existing-presets — a listener not distinguishing an echo of its own write from a real change. If so this may be a simpler reproducer to work against, since it needs no presets, macros or custom automation.
I also noticed setPluginParameterSortFunction and the gesture API arrived in the same commit as the unified automation base class (a92a701de), so there does not appear to be a version with the newer parameter API but without the rewrite.
Happy to test a patch against this reproducer.
Snippet:
HiseSnippet 3758.3oc0bs0ababElqsWmXkjhDz.zKOMPOTrJVZytjTqjsapsrrbV0XcodkraPPpKE4r6NRbIIHmcWsIw.E44BzWJJP6+f9enOTTf9KnO2W5uf7On8blY3k8hrEEiAJW3KZmYNm4b+7MjT7vPeaZTjenVkkNZR.Uqx6VsyDOd+s6aw7z18QZU9gU+kLNmFRdJMHz2YnMMT6gSBrhhnNZUpb8OEWXkacCMwmu69Ozx0xyllNjl1y7Y1zmvFv3oiF7fOi459XKG5QrAYVs4C1012aaeW+gfPc8pMzBrrOypGceKbYWqpVaqn9ZU9npMan6PW21j10xQWeS602zjZ1zwby0azvrqdCaKq6rg0FmnU4l63v39gc3VbZjVka7PemIc56O1StAOiEwNwkheooVGXmkC+XeWGTEwQ01tOy04vXqUjFvkCSscWWZ69vp6wbXIimZCeewDjTJxZ.qbsoEuqOk30Lq30Hi3s.QpRFQ5FRQ5Cp1wNjEvSmAkm2o5tdfKsqE3mxJJx0pcsezOo5G+wjO46yOKALjzd2N6PBbG1i4QBrBAOJFXcpL95+769ijvjXLxHcRMWeH9vYkkdiHLiZRFB5MwhDw754RmWvr7bHishHdTqP2IDaWpkGAVwSoVAzvUIi6yr6SF.xnfgLNxPWvLS.hniXNTHQnNoCcDMjwmPhrsfYIiY79yuYaevw6ejbKg4ELb.vJHxeMd+PpkCAsFqRh7I79rHBvyHluWpIKBF2OhRfzGHdBlJ5t.WDLhPViXt4b6YDoVSxHY3E41DyMH8YNfPuxpfRws6ClEv5.6sKA1iSo17DtYAbwi5h6NDjyEqjSZ0na.HF9Dea6gAS.AhFqDDoRDKQGr+Noxwpjid9AfkdhfV69Vdv5Y76p1sl0EL5y1+fGJ1al2ICYtbRaVGWvFCj6DZ0qG3J8r3rQTvUUa6aeawnDfYNtzvUT7RWxq1as+idxN.uTYGBcYL3jPEAWPDHYYbNcC8G.tObswZvC8AuXDE7WoKqGMhOLjFI7RwegXERI6evQB9NxJjYAl65jifu464NQvLGV2tzPLbg.tVYbksuCJBvtfBlv8hz6NjVOVF147.voPctK4DgzLvG9u5RC7IQzvQfMAb3Vjm04HCBDcvuqzVEqlBa5.qyTbWZrDAg3WMWygZyFX4J3H597GxiSWOgxGSodD9XehkyoPoDOtT7hpSdT1MQYrAEKq.tOEBySx9i.4LBblhRDI5mhxmS933erMIpeHy6rrhqK3yqS1B79gg9iAVpFOJ.EYglI3lvmJjPRnHDyGxgHC7A2S.6bpaDwuKgGZAQPpzLZpxZ6CAxDpUDC9penfg8sBgvOLlMhREosn8IDWa.yETegWdRR.vb4e0+9ux1Ra6Ck1830Qu5iCgujTpu1FsZrJwrUiUt2R3Fu1ZqQ3C8vvwH7KE4yRPUmHz+GRNbq824Iu34X11mP1nQi6M2bsky0zbp41+38dwga8zs1qCLm4l2CWDHkbeNV+YVS2pP.isqLaNtDluGMC+d3wc97W7jc2eGje55MtmjeKnnJAplGWISXYvHpjnH1WQwJLvPdjSj0zvX9HQsmHHzv0e7R3FJI343tYVGTszwZiZacgDj7A1ltgV1XgZLtSVNsOk0qOO06HpQjsPzPOQDGTZgb07NQtNGgT+Ij3.EKGmOyy+jZKqlZ4UI5Mv+BgIpgpGQ40VlSOGmbYwhldxmh4S0ZTGnqI9OvOM8BdFl1AKX8YYJK5Pgq8vXUD1Ad3P5rqKX5UgnAyJKwVLnGlLgd93EYusKoYC42AP0Yvi.bCxvwzIYQGnJ5ZhRUodEWVDWzmD9eFzjGnCCabRy+Q94g3..dMztOB6.nXHz4b.TNGcLAVB2PD3Y9huTF7v.8pqeHoFCFDhdXjed1rj0HMgwt8sWYoudILhBI4rE4XAVuLzemA9E3Of0BW8YR65XlCuOXIaN8vx.w4GWkpASz0xMhlcxEGCjLc1HfLL7U3+yrpKv6eHj6hZFXftMHoJZhsj0CFF0u1YvnuTDe7oYaHGgsqDs0Es6Es1kca499Ik+OC3ibz3dhh7TjahQk8sAzLO4ywFs.n8ztzhN4gX+Cu5YR.GFzG7Q63A5CstMDzvoGCspODDLJusDsRsLQzyTKBapVagMSVgjiZ.sSpUsnx.pYQ2+5YJEnFd5pAxAIOe44ViLfPWDPnGGWL2pjwEXESToWfP19UJjswxUaNmP1dgBY6kmaMIQsqmF11btUIERo3uDyC5sSIcG5opd6oTmZXiendsGeUYHPblYZmAwvpvTOWDlTcUimZx3zKh4seMLu8kg4YZqHi3WS0WSEec0a5q1uocUBX0PxqbNUeklFnQLV9lpFjB4vrSmTKRgdX14g5s9i2F92SrrOKBc2a6xfeZURaABueVBbTQmhLzdHZadJ.ZCL40hM405ksf5XPkvyaUuGk+bTNqopxH5tmYx1BoL6rifYi6g0KNFBk.bAh8WdYNp037la9XwGE08p2k459T.aesungnp8Xn+0WFSK3FamEhKwxNzORBgu6PW3jLnfJJhAGtEvu6ppHoNZkBMaLuhv9RHFqDPvC.61.zIB8ufpXhij.8qROnfBVrpaP8TCBZtTQ6YLSncpO4ihCUSm4bDG3HXlZig1Y8Gmw5MAmpVeb39q.q.5brPSGZ11ZKCiEX5NeUxDvtg1toLdlD04ZhlEmuMb.+Snhi5.1gtv4DDmQgCBNoGbxFw0KfW+BDio7fv4rFukKqmGEh.NmWSUwGNBEXwNxuCGNFSuZi..4vwsQuLpp5lBWsdiuDhhwSTERcvf1Wt35NcjQWWXogEWEHCtJLYMz2MN4oVBKmqL87qTM4b0JunU1dlju87GFQSVUR1GDL5wiUfzt1jHtUHFPNIfRzgPii2kjQsY.t3yIMxjwInm0kHYXcarj.dsjhweC8gqiGeOATgZipoKR3TXPVLWHey2PjCfmlVxyuNgyuxxFYKNnX54XLtpCgHNeE37txDhDSbBsnrLBvAhnqVJ64IPF1.O1wLK8WH55N2RaN0RmCo9nLha7jxpGNflH8LIeeUhmOmjP6JDKWvsrJlFAPciRfMK33Km0lN.iCNN3R6YhAd9xLfjVzg5tRGiE3WGNX0wqGAAwdaQNYXzDh8vHNfUzgEE3ZMgTyxyxcRDdsm14WASFNhtRcxyUWA.w0mScUGfi3IQBBIrP7JvRNbf6IH6cwFF3kq.LMQI.LOYXOxI.BU7LD.dxn5S2k8gnzbAcYw4hO81cTcYwwdEcYSmNEwunAc1Iey1ljmBGFl+3.7HQWTaxF4oM4zz1BnsUqs2NdVAFSNM.18wP9V5UKHUxNUsTwYvNUdFrSgbuLqkbJd9q4y+CNGV9oP5LtESm4GLQ0MDxzgisrGzhodDyqFGFxndCXnSES1TGa6IWnodJOjsVdB5KBfNb3eUbC9xjXP1xTsWNimDuWKgyWyM1SJbRYaVLE4XAXACp0rENADCF4Cc+CBwku7AeFItM5zWFeLkbh3x6imUKyAXuMLvbGiAZ2koC299b5ARA7VPuKxrS0s6BmS0CRbTpELsTKdEDVya3fSvr6j1ohEpU4FSeuZpdw2qlr2JIaY1ZlE56sqGieP.06htASZpTbMsJ5JoBVJWbWc9Ap6pi75eqwbzpbqppxzZBQVcC096+as+080tDjeypvolaLEsxOWVZaV.Z0K.sFEfVyBP65Ef1VEf1MJ.saV.ZuyUi12RDaznHD2rHDqWDhMJBwlEg30KBwsJBwaTDh2rHDWjHL8hDgoWjHL8hDgoWjHL8hDgoWjHL8hDgoWjHL8hDgoWjHLihDgYTjHLihDgYTjHLihDgYTjHLihDgYTjHLihDgYTjHLyhDgYVjHLyhDgYVjHLyhDgYVjHLyqXD16VM85hMKGZ8fbxg1Swge6e3e7Ouu1w69HKtE9zboN..bnf.ZHmgm2nxiniX1T4y10sp9HZzYb+.sJlaGeovfguDmQ3b3nKU9PXOmD+CCXNf.cnej3QGJqUAOAaG1WMkkBuuJHvPAyl6V3g7rB9L9M+csKgHsLR7aIk32qZlmFGk.qtdgyHveK7ChKmArja92tlTljW.CbjeuRJm9FCnU4mV8htw.SINuyq6TRBgQKVXzxs0KQzqnMqnGOxn3CRJ4e9LwuUU7Fi1LOJUyRhRomGkRujnTF4QoLJIJkYdTJyRhRsddTp0KIJUq7nTsJIJ0F4Qo1njnTalGkZyRhRcm7nT24+6Up2V17swkTqhu.YkD0pYtTqlkE0ROWpkdYQsLxkZYTVTKyboVlkE0Z8boVqWVTqV4RsZUVTqMxkZsQYQs1LWp0lkE05N4RsJKnLzyEJC8xBJC8bgxPurfxPOWnLzKKnLzyEJC8xBJC8bgxPurfxPOWnLzKKnLzyEJC8xBJC8bgxPurfxPOWnLzKKnLzyEJC8xBJCibgxvnrfxvHWnLLJKnLLxEJCixBJCibgxvnrfxvHWnLLJKnLLxEJCixBJCibgxvnrfxvHWnLLJKnLLxEJCixBJCibgxvnrfxvLWnLLKKnLLyEJCyxBJCybgxvrrfxvLWnLLKKnLLyEJCyxBJCybgxvrrfxvLWnLLKKnLLmFkwstbOhkBc6OcUeRE+t6OH6amPsGLv57zu9adf74XbopwuDKVzik3q6Q3THg+3JWJITIM+k+L94ud+Y191Ss827U9TQh+J4MySE4xUdkOUjearPL+aIv2u5d9NCcs3S+RKDe0Npl.0iruo.wWpTdf9MIqs96s2jgWVQ7CpdHia2ewx30VfLpo8FQFUu+Geup6zsK0lmJf2n5i+0uYdYOpI+8ws2dV7PFFGr+vAc7GFZSgc2CBUve6DqfAApu2HN2sC0yQ7k+K7QMYy37WbxlwSpM.ewR7Ba4yzL9Fl7sEi.xjmHw9VU2C+NYAO74PN.6E11Syp4HT+pRnwUkPyqJgqeUIr0UkvMtpDt4qmP78Q5VC49CjoMZZ6c3Nhm67JU1Q7FgSDsp8+.Tn1TlEExpected: when dragging the KNOB, the value and the orange handle should follow the
drag smoothly, without overshooting or undershooting.What happens instead: the value, and the orange handle jump above and below the drag position while the mouse
is moving visually producing a shake or jitter on the orange handle, and settles correctly as soon as the drag stops.
Latest posts made by JC
-
RE: AI takeover the plugin industryposted in AI discussion
With regard to the 'worth' of plugins created using AI as a tool to help with coding... i think a large part of it is to do with the intention behind the plugin by the creator/developer, whether they have previous coding knowledge or not.
For example, if it's just to make a quick buck, then the creator will probably spend as little amount of time as possible testing, honing, redoing, versioning, iterating, bug searching and fixing, optimising, code signing etc etc, and certainly not spend any time supporting, updating, bug fixing etc. after release. Which would make the plugin very questionable to say the least.
I've been using AI as a tool to help with coding a plugin over the last 2 and a half years, mostly boilerplate UI stuff, but also a couple of custom c++ nodes. I have had no previous experience with script coding really, only visual node based coding, but i've been producing music over the last 20 something years, and my education has been in music production, acoustics and a small amount of DSP, so i know how plugins should behave and what is generally required of them in this day and age.
So I'm very meticulous with how i use AI, for example, although I dont always understand the literal code, I do understand what it should ideally do in the realm of the plugin at that juncture, and i test and retest as many times as it takes until it works as flawlessly as possible, not only to my eyes and ears, but also to proper published benchmarks, theories, equations and math, as far as i can. I also plan to have the code reviewed by a professional plugin coder once i feel it is finished. I often audit the script for security issues, cpu usage, optimisation and whether AI has per verbatim used open source blocks of code (there are third party tools for this) and other such issues.
I never ask AI to help with more than one thing at a time, for example, "make me an audio plugin that does x, y and z, make it cpu friendly, give it this ui and that ux etc" , and the one thing at a time that is worked on is always thought out as much as possible by myself beforehand, and split into many smaller parts so it's easier to get right and the management and maintainability of the code is easier.
I also have a vision for my newly created company that includes long term support, proper codesigning and packaging and full testing of the plugins, both the actual binaries and via code reviews by a professional coder. Plus demo's of the plugin so potential users can decide for themselves if the plugin is worth their time and money.
I started because I needed various plugins to help with mundane tasks in production, found HISE and enjoyed building my own plugins, (at first without using AI at all). But now I truly believe that the plugins i have lined up will be genuinely useful, fun to use, sometimes educational, sometimes tongue in cheek, and sometimes quite niche or intriguing. And I'd like to be in it for the long haul, being a solo plugin dev making useful plugins and offering full post release support.
I understand people's objections to plugins built with the help of AI, especially if the creator doesn't have much, or any script coding or plugin development experience. But I do believe that the intentions of the developer, how they use AI, and whether they spend the time to check their plugin and the code in various ways are of importance. Hopefully my plugins will be useful, enjoyable to use and most importantly safe and secure, if not, I'll do whatever is necessary for them to be so.
-
RE: W̶h̶e̶r̶e̶'̶s̶ ̶C̶h̶r̶i̶s̶t̶o̶p̶h̶?̶ We found him and now we talk about AIposted in General Questions
@Christoph-Hart Nice! Based off the last few months in here, AI continues to be a hot topic and the HISE/Moonbase fix is eagerly awaited by a fair few people. I look forward to being part of the meetup if that's alright?
-
RE: Plugin parameter value jitters in VST3 hosts — host echoes a stale value back during writesposted in Bug Reports
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.030000The 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. -
RE: Plugin parameter value jitters in VST3 hosts — host echoes a stale value back during writesposted in Bug Reports
@dannytaurus Thanks for testing that! A clean AU result is genuinely useful, and it may be format-specific, since AU and VST3 don't share the parameter dispatch path in HISE.
However, I've just updated the reproducer project that takes away any human error by way of uneven mouse movements back and forth, or trusting the human eye to see any jitter, and uses actual data instead, plus a correction to my first post that's needed.
I'll be posting this project in a sec!
Thanks again for your time!
-
Plugin parameter value jitters in VST3 hosts — host echoes a stale value back during writesposted in Bug Reports
Correction: the "script writes are smooth" claim below is wrong — see post #4 for counter data. Both paths are affected; the native drag is worse in degree, not kind.
A plugin parameter's value jitters noticeably while an inbuilt slider is dragged in a VST3 host. Writing the same parameter from script does not jitter.
The snippet below has one parameter under test and TWO ways to change it: the inbuilt knob, and a ScriptPanel handle that writes the same parameter from script. Both send parameter gestures, so the gesture system is not the difference, the only thing that differs is which code path writes the value.
Reproduction:
Load the snippet, compile, export as VST3.
Load in a host.
Drag the KNOB both slowly, then a little quicker, watching first the orange slider/handle, then the value readout under the handle. You should see that the slider/handle jitters/wobbles/shakes back and forth, and if you carefully watch the value below the knob, when this jittering happens, the value flickers between two adjacent values, for example: 0.2500 / 0.2400 / 0.2500
Drag the HANDLE (orange slider/handle) slowly, and it should be smooth. So it only jitters when the knob is used to move the orange slider/handle.Severity scales with load
An earlier version of this snippet had a single plugin parameter and no repainting panel, and was nearly clean in Reaper (however, I could not reproduce that reliably afterwards). This version registers 48 plugin parameters and repaints a panel at 60fps to match a realistic project, and it reproduces in both hosts. My actual plugin, 48 parameters plus an analyser and a custom EQ display is much worse. That scaling suggests a timing race rather than a logic error.
What it is not
Not the gesture system. The Plugin Parameter Simulator highlights the control in yellow/mustard colour for the whole drag, so begin/end gestures are being sent. The panel path sends them explicitly too.
Not quantisation. An explicit stepSize makes no difference.
Not a feedback loop. Completely stable hands-off.
Not the normalised value conversion. A host automation lane sweeping the full range is smooth and uses the same conversion.
Not project-specific. Reproduces on this bare snippet.
Host only. No jitter in the interface designer or the plugin preview.Environment
HISE commit: 5d34685fe1a9e75e40dd4171270d764a2fdc0de9 (2026-08-16)
Ableton Live 12.4.3, VST3 - pronounced
Reaper 7.79, VST3 - present but milder
Windows 11Possibly related:
This may share a root cause with the automation echo issues in https://forum.hise.audio/topic/14165/latest-version-of-hise-breaks-existing-presets — a listener not distinguishing an echo of its own write from a real change. If so this may be a simpler reproducer to work against, since it needs no presets, macros or custom automation.
I also noticed setPluginParameterSortFunction and the gesture API arrived in the same commit as the unified automation base class (a92a701de), so there does not appear to be a version with the newer parameter API but without the rewrite.
Happy to test a patch against this reproducer.
Snippet:
HiseSnippet 3758.3oc0bs0ababElqsWmXkjhDz.zKOMPOTrJVZytjTqjsapsrrbV0XcodkraPPpKE4r6NRbIIHmcWsIw.E44BzWJJP6+f9enOTTf9KnO2W5uf7On8blY3k8hrEEiAJW3KZmYNm4b+7MjT7vPeaZTjenVkkNZR.Uqx6VsyDOd+s6aw7z18QZU9gU+kLNmFRdJMHz2YnMMT6gSBrhhnNZUpb8OEWXkacCMwmu69Ozx0xyllNjl1y7Y1zmvFv3oiF7fOi459XKG5QrAYVs4C1012aaeW+gfPc8pMzBrrOypGceKbYWqpVaqn9ZU9npMan6PW21j10xQWeS602zjZ1zwby0azvrqdCaKq6rg0FmnU4l63v39gc3VbZjVka7PemIc56O1StAOiEwNwkheooVGXmkC+XeWGTEwQ01tOy04vXqUjFvkCSscWWZ69vp6wbXIimZCeewDjTJxZ.qbsoEuqOk30Lq30Hi3s.QpRFQ5FRQ5Cp1wNjEvSmAkm2o5tdfKsqE3mxJJx0pcsezOo5G+wjO46yOKALjzd2N6PBbG1i4QBrBAOJFXcpL95+769ijvjXLxHcRMWeH9vYkkdiHLiZRFB5MwhDw754RmWvr7bHishHdTqP2IDaWpkGAVwSoVAzvUIi6yr6SF.xnfgLNxPWvLS.hniXNTHQnNoCcDMjwmPhrsfYIiY79yuYaevw6ejbKg4ELb.vJHxeMd+PpkCAsFqRh7I79rHBvyHluWpIKBF2OhRfzGHdBlJ5t.WDLhPViXt4b6YDoVSxHY3E41DyMH8YNfPuxpfRws6ClEv5.6sKA1iSo17DtYAbwi5h6NDjyEqjSZ0na.HF9Dea6gAS.AhFqDDoRDKQGr+Noxwpjid9AfkdhfV69Vdv5Y76p1sl0EL5y1+fGJ1al2ICYtbRaVGWvFCj6DZ0qG3J8r3rQTvUUa6aeawnDfYNtzvUT7RWxq1as+idxN.uTYGBcYL3jPEAWPDHYYbNcC8G.tObswZvC8AuXDE7WoKqGMhOLjFI7RwegXERI6evQB9NxJjYAl65jifu464NQvLGV2tzPLbg.tVYbksuCJBvtfBlv8hz6NjVOVF147.voPctK4DgzLvG9u5RC7IQzvQfMAb3Vjm04HCBDcvuqzVEqlBa5.qyTbWZrDAg3WMWygZyFX4J3H597GxiSWOgxGSodD9XehkyoPoDOtT7hpSdT1MQYrAEKq.tOEBySx9i.4LBblhRDI5mhxmS933erMIpeHy6rrhqK3yqS1B79gg9iAVpFOJ.EYglI3lvmJjPRnHDyGxgHC7A2S.6bpaDwuKgGZAQPpzLZpxZ6CAxDpUDC9penfg8sBgvOLlMhREosn8IDWa.yETegWdRR.vb4e0+9ux1Ra6Ck1830Qu5iCgujTpu1FsZrJwrUiUt2R3Fu1ZqQ3C8vvwH7KE4yRPUmHz+GRNbq824Iu34X11mP1nQi6M2bsky0zbp41+38dwga8zs1qCLm4l2CWDHkbeNV+YVS2pP.isqLaNtDluGMC+d3wc97W7jc2eGje55MtmjeKnnJAplGWISXYvHpjnH1WQwJLvPdjSj0zvX9HQsmHHzv0e7R3FJI343tYVGTszwZiZacgDj7A1ltgV1XgZLtSVNsOk0qOO06HpQjsPzPOQDGTZgb07NQtNGgT+Ij3.EKGmOyy+jZKqlZ4UI5Mv+BgIpgpGQ40VlSOGmbYwhldxmh4S0ZTGnqI9OvOM8BdFl1AKX8YYJK5Pgq8vXUD1Ad3P5rqKX5UgnAyJKwVLnGlLgd93EYusKoYC42AP0Yvi.bCxvwzIYQGnJ5ZhRUodEWVDWzmD9eFzjGnCCabRy+Q94g3..dMztOB6.nXHz4b.TNGcLAVB2PD3Y9huTF7v.8pqeHoFCFDhdXjed1rj0HMgwt8sWYoudILhBI4rE4XAVuLzemA9E3Of0BW8YR65XlCuOXIaN8vx.w4GWkpASz0xMhlcxEGCjLc1HfLL7U3+yrpKv6eHj6hZFXftMHoJZhsj0CFF0u1YvnuTDe7oYaHGgsqDs0Es6Es1kca499Ik+OC3ibz3dhh7TjahQk8sAzLO4ywFs.n8ztzhN4gX+Cu5YR.GFzG7Q63A5CstMDzvoGCspODDLJusDsRsLQzyTKBapVagMSVgjiZ.sSpUsnx.pYQ2+5YJEnFd5pAxAIOe44ViLfPWDPnGGWL2pjwEXESToWfP19UJjswxUaNmP1dgBY6kmaMIQsqmF11btUIERo3uDyC5sSIcG5opd6oTmZXiendsGeUYHPblYZmAwvpvTOWDlTcUimZx3zKh4seMLu8kg4YZqHi3WS0WSEec0a5q1uocUBX0PxqbNUeklFnQLV9lpFjB4vrSmTKRgdX14g5s9i2F92SrrOKBc2a6xfeZURaABueVBbTQmhLzdHZadJ.ZCL40hM405ksf5XPkvyaUuGk+bTNqopxH5tmYx1BoL6rifYi6g0KNFBk.bAh8WdYNp037la9XwGE08p2k459T.aesungnp8Xn+0WFSK3FamEhKwxNzORBgu6PW3jLnfJJhAGtEvu6ppHoNZkBMaLuhv9RHFqDPvC.61.zIB8ufpXhij.8qROnfBVrpaP8TCBZtTQ6YLSncpO4ihCUSm4bDG3HXlZig1Y8Gmw5MAmpVeb39q.q.5brPSGZ11ZKCiEX5NeUxDvtg1toLdlD04ZhlEmuMb.+Snhi5.1gtv4DDmQgCBNoGbxFw0KfW+BDio7fv4rFukKqmGEh.NmWSUwGNBEXwNxuCGNFSuZi..4vwsQuLpp5lBWsdiuDhhwSTERcvf1Wt35NcjQWWXogEWEHCtJLYMz2MN4oVBKmqL87qTM4b0JunU1dlju87GFQSVUR1GDL5wiUfzt1jHtUHFPNIfRzgPii2kjQsY.t3yIMxjwInm0kHYXcarj.dsjhweC8gqiGeOATgZipoKR3TXPVLWHey2PjCfmlVxyuNgyuxxFYKNnX54XLtpCgHNeE37txDhDSbBsnrLBvAhnqVJ64IPF1.O1wLK8WH55N2RaN0RmCo9nLha7jxpGNflH8LIeeUhmOmjP6JDKWvsrJlFAPciRfMK33Km0lN.iCNN3R6YhAd9xLfjVzg5tRGiE3WGNX0wqGAAwdaQNYXzDh8vHNfUzgEE3ZMgTyxyxcRDdsm14WASFNhtRcxyUWA.w0mScUGfi3IQBBIrP7JvRNbf6IH6cwFF3kq.LMQI.LOYXOxI.BU7LD.dxn5S2k8gnzbAcYw4hO81cTcYwwdEcYSmNEwunAc1Iey1ljmBGFl+3.7HQWTaxF4oM4zz1BnsUqs2NdVAFSNM.18wP9V5UKHUxNUsTwYvNUdFrSgbuLqkbJd9q4y+CNGV9oP5LtESm4GLQ0MDxzgisrGzhodDyqFGFxndCXnSES1TGa6IWnodJOjsVdB5KBfNb3eUbC9xjXP1xTsWNimDuWKgyWyM1SJbRYaVLE4XAXACp0rENADCF4Cc+CBwku7AeFItM5zWFeLkbh3x6imUKyAXuMLvbGiAZ2koC299b5ARA7VPuKxrS0s6BmS0CRbTpELsTKdEDVya3fSvr6j1ohEpU4FSeuZpdw2qlr2JIaY1ZlE56sqGieP.06htASZpTbMsJ5JoBVJWbWc9Ap6pi75eqwbzpbqppxzZBQVcC096+as+080tDjeypvolaLEsxOWVZaV.Z0K.sFEfVyBP65Ef1VEf1MJ.saV.ZuyUi12RDaznHD2rHDqWDhMJBwlEg30KBwsJBwaTDh2rHDWjHL8hDgoWjHL8hDgoWjHL8hDgoWjHL8hDgoWjHL8hDgoWjHLihDgYTjHLihDgYTjHLihDgYTjHLihDgYTjHLihDgYTjHLyhDgYVjHLyhDgYVjHLyhDgYVjHLyqXD16VM85hMKGZ8fbxg1Swge6e3e7Ouu1w69HKtE9zboN..bnf.ZHmgm2nxiniX1T4y10sp9HZzYb+.sJlaGeovfguDmQ3b3nKU9PXOmD+CCXNf.cnej3QGJqUAOAaG1WMkkBuuJHvPAyl6V3g7rB9L9M+csKgHsLR7aIk32qZlmFGk.qtdgyHveK7ChKmArja92tlTljW.CbjeuRJm9FCnU4mV8htw.SINuyq6TRBgQKVXzxs0KQzqnMqnGOxn3CRJ4e9LwuUU7Fi1LOJUyRhRomGkRujnTF4QoLJIJkYdTJyRhRsddTp0KIJUq7nTsJIJ0F4Qo1njnTalGkZyRhRcm7nT24+6Up2V17swkTqhu.YkD0pYtTqlkE0ROWpkdYQsLxkZYTVTKyboVlkE0Z8boVqWVTqV4RsZUVTqMxkZsQYQs1LWp0lkE05N4RsJKnLzyEJC8xBJC8bgxPurfxPOWnLzKKnLzyEJC8xBJC8bgxPurfxPOWnLzKKnLzyEJC8xBJC8bgxPurfxPOWnLzKKnLzyEJC8xBJCibgxvnrfxvHWnLLJKnLLxEJCixBJCibgxvnrfxvHWnLLJKnLLxEJCixBJCibgxvnrfxvHWnLLJKnLLxEJCixBJCibgxvnrfxvLWnLLKKnLLyEJCyxBJCybgxvrrfxvLWnLLKKnLLyEJCyxBJCybgxvrrfxvLWnLLKKnLLmFkwstbOhkBc6OcUeRE+t6OH6amPsGLv57zu9adf74XbopwuDKVzik3q6Q3THg+3JWJITIM+k+L94ud+Y191Ss827U9TQh+J4MySE4xUdkOUjearPL+aIv2u5d9NCcs3S+RKDe0Npl.0iruo.wWpTdf9MIqs96s2jgWVQ7CpdHia2ewx30VfLpo8FQFUu+Geup6zsK0lmJf2n5i+0uYdYOpI+8ws2dV7PFFGr+vAc7GFZSgc2CBUve6DqfAApu2HN2sC0yQ7k+K7QMYy37WbxlwSpM.ewR7Ba4yzL9Fl7sEi.xjmHw9VU2C+NYAO74PN.6E11Syp4HT+pRnwUkPyqJgqeUIr0UkvMtpDt4qmP78Q5VC49CjoMZZ6c3Nhm67JU1Q7FgSDsp8+.Tn1TlEExpected: when dragging the KNOB, the value and the orange handle should follow the
drag smoothly, without overshooting or undershooting.What happens instead: the value, and the orange handle jump above and below the drag position while the mouse
is moving visually producing a shake or jitter on the orange handle, and settles correctly as soon as the drag stops. -
RE: Mono plugin with side-chainposted in Feature Requests
@dannytaurus Thank you kindly for the detailed response :)
-
RE: Mono plugin with side-chainposted in Feature Requests
@ustk what does HISE_SIDECHAIN_CHANNEL_LAYOUT=1 do?
-
RE: Thoughts on Moonbase?posted in General Questions
@Christoph-Hart Hey, thanks for the update on the native Moonbase module earlier in the thread, that sounds great and would really benifit quite a lot of people. I wanted to ask: do you have even a rough ballpark for when the native module might appear, and/or when HISE is likely to be fully stable on JUCE 8?
Reason I ask is I've got a plugin close to release, so I'm weighing up whether to wait for the seamless integration or ship now with a serial/Unlocker-based approach and migrate later. I know you're very busy — just trying to pick a direction to commit to. Appreciate all the work you put into HISE.
-
RE: JUCE 8 Starter license (free tier) + HISE commercial (closed source) license?posted in General Questions
@dannytaurus excellent information, thank you for that! I thought though that if I keep using the standard-for-HISE-right-now JUCE 6, then I'd have to re- enable the splash screen? But if i use the new optional JUCE 8, then I don't have to do that.
Also, I'm not actually sure how I switch to using the newly added JUCE 8.....
-
JUCE 8 Starter license (free tier) + HISE commercial (closed source) license?posted in General Questions
Hi all, hope everyone is good! Am I completely off the mark thinking that this could be a viable option for releasing closed source plugins?
My thinking is that the HISE license is needed for closed source projects made with HISE, always, no debate... and with the free JUCE starter license you can earn up to 20k annually before having to get a paid license. Now that JUCE 8 doesn't require a splash screen on startup on the free tier, we don't need to mess with the HISE source code to enable it again.
Am I missing something here or could this be an option?
Any clarification on the matter would be greatly appreciated!