Forum
    • Categories
    • Register
    • Login
    1. Home
    2. JC
    3. Topics
    J
    • Profile
    • Following 0
    • Followers 0
    • Topics 5
    • Posts 19
    • Groups 0

    Topics

    • J

      Plugin parameter value jitters in VST3 hosts — host echoes a stale value back during writes

      Watching Ignoring Scheduled Pinned Locked Moved Bug Reports
      4
      1 Votes
      4 Posts
      185 Views
      J

      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.
    • J

      JUCE 8 Starter license (free tier) + HISE commercial (closed source) license?

      Watching Ignoring Scheduled Pinned Locked Moved General Questions
      7
      0 Votes
      7 Posts
      2k Views
      dannytaurusD

      @JC Good point about the splash screen. It's probably not legally 'clean' to use JUCE 6 and also not have a splash screen. Morally, that's up to you.

      As I said before, if you're selling a closed source plugin and you have even moderate success, you'll be on the $40/mo JUCE plan pretty quickly anyway, which makes it legally and morally fine.

    • J

      Errors when saving and loading XML

      Watching Ignoring Scheduled Pinned Locked Moved General Questions
      5
      0 Votes
      5 Posts
      820 Views
      J

      @dannytaurus really is a good tip! I don't really understand though why it happened all of a sudden now though. It's been baking up and syncing with OneDrive for ages without mishap. Anyway, local backups and external drives from now on. I never liked the cloud!

    • J

      Scriptnode fft analyser colour options?

      Watching Ignoring Scheduled Pinned Locked Moved Solved General Questions
      7
      0 Votes
      7 Posts
      2k Views
      J

      @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!

    • J

      Frequency masking plugin advice/help

      Watching Ignoring Scheduled Pinned Locked Moved Newbie League
      8
      0 Votes
      8 Posts
      2k Views
      ustkU

      @griffinboy Yeah it is.
      If by multi-resolution you mean multiple FFTs with different window sizes that would consume quite some CPU...
      A while ago I did something like a downsampling for higher bins in order to remove some details here but keep details in the low end. I don't remember how I did exactly...
      I've also made a tilt that the users can set to whatever slope they need
      Smoothing is a parameter already, or maybe it does not perform the same exact thing you're describing.
      At that time it all happened in the script UI though which is so slow... I would definitely change this nowadays!