Forum
    • Categories
    • Register
    • Login
    1. Home
    2. Casmat
    3. Topics
    • Profile
    • Following 1
    • Followers 0
    • Topics 118
    • Posts 538
    • Groups 0

    Topics

    • CasmatC

      Optimized Viewport UI Virtualization / Row Recycling

      Watching Ignoring Scheduled Pinned Locked Moved Snippet Waiting Room
      5
      2 Votes
      5 Posts
      142 Views
      CasmatC

      @Christoph-Hart yeah, here's what I could come up with!

      The model occasionally thought you could add child panels directly to viewports. It didn't properly cast/convert the raw result of vpt.get("scrollBarThickness") for calculations. It hallucinated a scroll event listener/callback for viewports. I needed to prompt it specifically to use a 30Hz timer loop for position updates instead. It had the most trouble with local, reg, and const. Especially in long generations with multi level functions, it tried standard JS var/let scoping, leading to long runs of compilation errors. I mainly used Google's Gemini 3.1 Pro via Antigravity, but I also tested Claude Opus/Sonnet 4.6. The Anthropic models had a couple fewer issues, making sense if the MCP server is currently tailored to their behavior.

      I had checked out the viewport's multicolumn mode. I built this as a ScriptPanel recycler to have high LAF control over individual buttons and icons for a custom preset browser. I wouldn't be able to get the same component styling flexibility with multicolumn mode.

      I'll try out the LSP server! I've been following HISE's ai journey and can't wait to see what's next! Being a dev who uses AI to assist in most my work nowadays, it'll make HISE development much much faster and accessible lol. Love the forum, but I dream for the days where I'll ask Claude to explain why my function call is wrong and @David-Healey can enjoy his vacation instead! 😁

      The MCP server in antigravity is amazing, but there's a couple things HISE struggles with against AI.

      Absolute positioning is a bottleneck. Is there anyway to expose JUCE's FlexBox/Grid to hisescript? It would be life changing. If the model can just write relative values, it wouldn't have to guess pixel coordinates anymore. Can't wait for scriptnode to work with MCP. Having models build scriptnode networks from text/json, or piggybacking faust, will make that rodeo a lot simpler.

      I can envision HISE's future as a sidecar rendering engine alongside your everyday IDE, which wil be where the actual code writing/editing and prompting happens. Having HISE run in a headless like manner to compile the plugin, fix errors, and run tests would have massive potential. The LSP and MCP server are great starts for this.

    • CasmatC

      CSS Label Hover Question

      Watching Ignoring Scheduled Pinned Locked Moved Scripting
      2
      0 Votes
      2 Posts
      376 Views
      GabG

      @Casmat Seems to be either a bug or it needs a proper hover state like the button which I'm not sure but its the same thing for Scriptlabel and Focus don't seem to do anything.

      HiseSnippet 1208.3ocsV80aaaCDmJIpqVqcXAXe.DxdnNC0IR9OINtXXNwwYKnIoAycEaXOTPKQYwEJRAJpj3MLf8Ea.6izdeOrcTTwVNwcqvXU1R.7Nd28iGO963kRQ.IKSHQVNudZJAY8D6QS4p3AwXJGc5wHqOxNRHySPGMMEmkQBQVVq+0ZkV01.U77me0QXFlGPlKBgdifFPNilPUykdY+WRYrSvgjWSSpL618OMPvGHXhb.Hqa6gRwAWgmPt.qm1Z1nuAmEir9B6lMiB5540sUqNdXbqPLtsOo0Ajn8hB53cfW33Ndvu8PVOZXHUIjiTXEICYswQhvoihE2vMA3MzL5XFQOvGMBhrQ7IBVndIpkhFDSYgWdWFJCAd4x44q0M4qOy9bZHcl744sOsPg6bKpl.sVaQ3s9BvyuJ77p.uk.IqJPZCCj1zdTfjlplqQimO19TthHivv9TUnXlKZseec6ABXFb0NI3qHmHgAyrndaOum6Be19ENNvdUlx8Zrz8L7XBy28KcuyxID0.QRpfCCpukQ8VKZCaLaPVVEaBjDHIblH.yNSHt5Pd3IDBqt1JGmc20cXBlx18kjolvAeibLNYmLB.QFkSFolxHihIDHpN0b1IqXQwzy24WbbgmwBYHQ1ykCX6EERBfzJH3y8NR+yHaLT2MQJx4g8bURLOKEKALZTFA.tQDNgxl1y8YGJoX1ypnIi9yjdt64kdaEg2PnShU8fvyBMhK9DRyRYXvMQLR4z+o7LEMZZi.SZoma.Qm8MJwL5DdCphjjsnBE4VUiBs8bYjnRjpSIMhKCsuQVJNLjxmzy0y0eFFM9PuPoJp.7Alwb81oYlKAmQZHxKcXBVNgBp6dmgE1.DCIk4IFrE9C00kGyPUVLNTbCD+zaKdaBuxIiw0gJox+63CF7qNKre0KVbMQVtqs7vznS5sKKRMKiR6kDoVauvt9MwPxrH1NaYpzbLUq5ZpGTKZJ2f4EkyCzIJWA+Bgh7Jd8sAjVC7i68UEEsTc5pdofwHxkpVSLJ+2LrNOOYLQ9b3rDKmLahvg+EYTre2LJUI7Jq1pLQA+TNU8pTB+cQChJO4pYeJQELUUA2ymTx8bTtRI3HJPwTy1LvGU.4pMIPe2oGiU36bD3SHNoDohpWBVGStFZhXH0pYeLI6JkHE5GLihAZWYB6SKCawdXQTersY+Dc67.db+oyGD1+FZnJdlf948MmXlI429w95xKM04fQiLrOnwStqO0Sra2b+tM882uYWj9nYUEcOX+CZ0oiGR6gEsv+.nAlGJOMD1oFhChApMSpdtSZBf3Qat4l+UAPprdez6QZtxJ9zpq312aE+GSt+JFcQezC6m.cxDg4vQuEauouDPoBnBcgdJ59FZJkoUujv+a87deg3l1WRUAwKGiqsDLB0geHvX4MEdp8vnHRfZN.2v9ju+Cy0BPeKPcCr8miURJTOXeQdxHntJf.QmyILMCg0Z5ZKyXO8XcFXDgGVL3ugmRk95wVkJ8uSIJAGHEuMvv.nuKxiKj.XhWbusZ1mqG6tjC9IvUidaPvht5AF1bUMr0pZX6U0vNqpg6spFt+pZX2+aC02b8vbkHwbrAgN+xgED0VVC4XnBrnZE8O7uBewC

      Maybe the answer is in that

      https://docs.hise.dev/scripting/scripting-api/scriptlabel/index.html#setstylesheetclass

    • CasmatC

      Viewport Styling Methods?

      Watching Ignoring Scheduled Pinned Locked Moved General Questions
      5
      0 Votes
      5 Posts
      626 Views
      David HealeyD

      @Casmat said in Viewport Styling Methods?:

      One question, should you use just one panel in the viewport or generate a new panel for each list item you have in the viewport?

      If it's a simple list then one panel.

      If each item in the list needs an interactive element then use child panels.

    • CasmatC

      Add SVG to Panel Using CSS Renderer

      Watching Ignoring Scheduled Pinned Locked Moved Scripting
      11
      0 Votes
      11 Posts
      1k Views
      CasmatC

      @Gab Ahh! That's smart!

    • CasmatC

      Recommendation?

      Watching Ignoring Scheduled Pinned Locked Moved Scripting
      10
      0 Votes
      10 Posts
      830 Views
      David HealeyD

      @Casmat Nope, you just have to match the shadow colour to the background. Experiment though you might get better results using radial gradients for example.

    • CasmatC

      Use CSS in Keyboard Floating Tile

      Watching Ignoring Scheduled Pinned Locked Moved Scripting
      5
      0 Votes
      5 Posts
      508 Views
      CasmatC

      bada-bump is there any update on this, didnt find any related commit and messing with it in hise beared no luck, dont know if I missed something or if its still in the works?

    • CasmatC

      Change Hitbox for Keyboard

      Watching Ignoring Scheduled Pinned Locked Moved General Questions
      4
      0 Votes
      4 Posts
      338 Views
      David HealeyD

      @Casmat You can use a single panel to create a custom keyboard. I have a video about it on my YouTube channel.

    • CasmatC

      Paint Routine Rounded Image

      Watching Ignoring Scheduled Pinned Locked Moved General Questions
      7
      0 Votes
      7 Posts
      810 Views
      CasmatC

      @ustk This is sweeet!! Thanks a lot!

    • CasmatC

      Function Problems

      Watching Ignoring Scheduled Pinned Locked Moved Scripting
      8
      0 Votes
      8 Posts
      630 Views
      CasmatC

      @d-healey I see! Thanks for your help!

    • CasmatC

      Animating Hover States

      Watching Ignoring Scheduled Pinned Locked Moved Scripting
      4
      0 Votes
      4 Posts
      659 Views
      A

      @Casmat You can call the timer with framerates with 1000/fps.

      If you have longer animations and find them stuttery (because the UI timer isn't accurate), you can be calculating timing differences between frames and compensating in the alpha increase. This should only be noticeable on very slow machines, for which you should have an option to disable animation anyway (although 4 timer ticks is nothing).

      Then, there are the easings and the standard finterpTo interpolation that you can add.

      The rabbit hole is very deep with animation.

    • CasmatC

      SVG Help!

      Watching Ignoring Scheduled Pinned Locked Moved General Questions
      7
      0 Votes
      7 Posts
      771 Views
      CasmatC

      @d-healey For anyone else with general hise svgs looking wonky, after fiddling around basically to get the svg to properly display, all the render data has to be specified in the path data for hise to correctly render it. Since the svg im using above stores many of its render properties in attributes when taking the path data, those attribute data will be lost.

      To fix this, I saved the svg data in a .svg file and opened it within inkscape. Clicked the path on the canvas and went to Path -> Stroke to Path which basically took all those attributes/what we see and generated a new path that outlines the stroke, then save as optimized svg and take the path out of that svg file and use that within hise to get:

      0772d786-b6b7-48bd-bcc1-b695c84414d8-image.png

      also had to change area to match size of svg path dimensions in inkscape. And used fillPath instead of drawPath in hise

      HiseSnippet 3608.3ocsYu1ihikdG.mZltVscmrQ6Jk88klWUiXjE2unUqRar4NFrAiASTzFiswXvXSgMWi1uq4iP9Fj7+uouT8L8NIpU1Qyr6Od34b7wmyy4.3R8PjsabbzgLO7V8q6cy7v+3iStFlrVZskeXltxYd3e5QEq3D2COcOTiq6shiccx7vCeeaF3g29lLo+y+0+RCq.qPa2OGJSFiHea2A967S9bT0222OHnkkiqt+tWkco220NJTJJH5HFOe+i4xr2xdqkm6PKl128XlG9MMc7ShNLIwJwMNyCuoQjy0IqiNGdOeC+X+kAt7E4yLAcz8vshBb3HlQyHs1OvQ8i22wYPun94Ygu+9rv+7iJ9N9eJ9mmM98ouwSetEud93gu6KGde+WL7x+5gWtWM79JCoGd0P5M2GR+gGmXeveexmeGNd9GdraHVbVYgo8WOTtmalu6c+wGkhPFgIB6r1515.dwmZwyUxk6mdB+O+3e5cuCS8wIOs+o+7SerA1Gbw8gpUx5mQB2e+SVGdZOhHakXgT+ghUpTSHIWfiRnfVwKSVHc9Kr4gcBZ4aqCaX0GVs.cqn8ABZUELX7N8furYFiWOZqfl6ZS11Q8fOUxhwa7xFAsA6cnWL.d9UO37KS7EztpukdnFbYkHlStaqEzjbho0Mg2HegWqS08DzRDJv9WYKsVU5SCfOlWzBdYtUXLmzFN+TW3NkTXb2dvA55vF0x6JnMRvBt0kMvUK6w7EzgijhX7Cxv8MOw1lOuCFykKv1tdObifrL9YW3pKZuDdqA7sYifaILBdg0LXiFco23x3wxvaNuiwEa.uR7DimU.t73hz6DY7MB1nOKJw9+VG37WaCWpgF8LENFTLYN95vsF6AaXXCeRMhwS1Q29Liu+JGa4Jx11VD2WIlBN3Z0TEV8Ra37tqnqOjwmdAdc0ozqah4srurDNPZA7l99L+7GgGrHh4TrEl+KYbD1PxMcMJWZ+TD9jQYFOZLVG6MOK6mJwvsjkcga2Cq6EL6.muyN3j4CnKKi5DYAU549v5ilv7saf5pJMMfMjWC63OmtSCTGtd2Blu+Z3qZKY7wRntUXsMbqgafqLyg4n0D04KuReulue9etac5Ze4ulyoOPVSvK0WyAu3bZ+u0PQVa0NdcCZV.1QxhdzrgxZaaZxbpmGtSBG+A8MFg7qMIsetA24lZ50Zrpr15wJLmZGgUM6xwrw.MYspcZx6qB6fUWKv3KZLFw2Vgy40rfunmmyyl2fCOdhqWG5OQVadg8LmqdvUOrg4DlGdllCWi50SG4ucFyWeI7k8pLmwQvcF1+WyUKBunhDaa61Sk0NsrJq8tLA135M3VkcfWJDSaGBq0bK8hSvsjrY9GyCOnhN8xJvESFvbVUG1wUNsexBqNrJ22smNn5U37mpAe4kWXbkxv8r8oEyA2XrE2eoj.iICF+7V1m86y8imrfCGKwb5qBastB2iKIwwV0qzV2v8XwUG34CFafqpskmIjaL7RUGFuZVLe5YOiN9EX0xpLmAFvurqW5YTYw5xs.YZucbMpXcdNl6PXAmRomSdCqu4mciwmZBWO3HiaTC0CsF7BiuZEb8163YikZ.Oxxm4rcCpkbZsh4D1DdXOaFua.p8pErf42uErr8blyssnVs7AdddqdMguXLkVaCpsKtfm4GLTB1nD+bg66ERt7yrhgU4bqZHWp5s4Ck+Bu8rSCrCHG8KwKaH60n.s29EMjM0KQuLbNhunJ8ocFLtfI7kP8Fx1hMoK7xXzmq5QO4rZC4ymUomWZH5+qynsjUZHKtwkNYbeXoPZ+McQ9COSOnba3lUnKMoUC4nflKfqdVFWqipzazkPbmkzBUEaH28RHscnPC4lg4n6sHqnrY8FVvi0pKJKdUkVZXMQ4sRtzaUqJJWJNlV1rhnbzwpz61UFss0fkb7Wsjnb7QK5kyfEidgtbwhnsGqPmeEbj3.a3oinsVRaJCaV4.cSAXEmZzBoVPv4Ww5RvZ9pziTXeJ4QexF9ryY5q23X3rnKrwXL11VViVOOb27dzAqv8h35yzs0v834JBqfiay6cAUZMYLmHdzgNpUcdsho2ODygQUKS2cIlaOOqiGWWRvbdtwSoiag0hyu3QO2GqQaWESGIi0NyiEoGuGqolFRqgani05ZSTniDQMfYfActKCZHOcfKs9NVyHui9hCpkDURnqOG0XlauQ6OE0ddCJSOTG0jZhYoeQeNqqj7YchApgap0hdqIpsEeoCsoMq4U6Q+hG1KbVnu+G2W3I8KrvHbR+Ww5nPWtqYZ+LX1UU4ZkR6e8E4P7fzqqwxBvNoim5KKwO8HcbVzphpr40zwexbbxQ2w4nGLIKhmM89Ununlb2poyC4y1PSNp6JZqyX1QLZFssaKD2ZX58d2NHtuL8sicQbgxb9OPqulrY9D5qI3SpJ0zmdP6gH+yFzqWLRSNWotoqcgpH+0UWktWVSSN9PBcusiQ7q9+Z9h+Dz+JSocVpiwfZK5NilpIeFe8Nt+pBr37cz27LPNdyRqUEmgSSsaSWcArmRgzZ9X3R2BnyVBVzvfNLKbz0lotNaqZNt+pQAFOYCctPXSMcZYc3tUjnuTDWWujqb+q7LXwDeZgiXrMs5D58Bv0rjoGL.2KSGkimObPi2iyCr938dzfkexw+ReYElCsEGRmy.ysQiEncai47sMtld91EEL9mDPuvDqQwsVP2pROL1bGROdNVSKYKkd91413doYIdNYiVnFvy3HcmYn1vaR.84MnlwqlMsxQgz4M5S4qqJK5Lh9PkppxmM5RaTuLpOwQVbdHaQXmr7L+F0yiZ9jJzwUtoJGcoH87hWPc6K4oMtcB4OO8yQR2ir89mu7YeadbzLodpxpcuUA+ZqWYyVU5ptoPe5b4uzUU9pFs198HtfEcy0q6pp6ti1ycAxQo.cI+wvs6kiwO0C42aUpaIg35knU1Uoi5F2o4gimbqipd3MZMkXDOxn.r3z.X6JzMO31QUN65hbrMwDtsRI3tCl.erTpmo.eJrLrct1vMVTgimcMfcTpBO8Xs1p2J2nFGOCJ0VciZYZEgbsUkMtVmW29mQ7FIY4bRbLhOXuPU0CaC2i3Q6DgMqtisMnAczV3BakfEO4CqGHy7UWCubWSXs9dvMiZAOc0JzmMeoM74QqX+D2g1jwsO1EtacFe04dv0ph1JqdsO8Tz+5d2F.WpCtt25lSgWqoX7Hm81P3nJQvEtNhwKe.8ytyprs3m3ntoE9cfX7HdC4zOZLi2tH7Kqmv3aqh92dgNr2bQLuYpNkWqUsvZwTYC33Z8g6kmVLQCqcm1NCN2oYcTuUe7b1OMc35RM5o62.WdqI6GmWfWzeAs2E3NIzJWJw0WEK1+CEQMSo8zJ46.eUdImm2oBGZQ2zadW0a5GS85UnNLWV5ZggvsUr489sSndq6LZOoRnsEsos0E6g0HO5zZ9M6+EVrZ0FZeEqozTh69oOuTQB+Zayz3QSQ7binMwuiDmLIQW55V3fqbr4cLVRSe+J5RqyAusG84A0P+r3LueEOHKqsQYJsYV7sE2HkmyOwMmvOgQOcdqlIh2+HmOw2qEwiZSqkM.dkMmyMwueVStvIttnU4B9Fz2DmkNlKh15ox0Nk80PbYat9FstQS7466zSW6Z2TSW8DqGL05i38JLNsOGAaWk0OQ9iapsYr.sW3zln+avZLO84HGE4QoqWKP7sxrlza0RjeGYVqdNqMxQPJsFV1EdlHqsiNBuYVVV+KJrBwGTi6Kxki4jsL2unoQWsH2GoM1A4On.2e0rD6+J439tRMsfmjSJMNFOabxw8okFav6w7b+a7jIvEJx80cqh6qMyqlteev.DepXp06g3iBp+q3tRsvb05XdFxTKQ3c444L0rqxe0hH849EvbdzPdVTzV7ME1TvlmQYd3E34GSO6xaKVuzknijcQ7yl7rttymi9I+EdFn2R74Qa1OL87vI8P7ww7LybUw2cZysgzhVUjztoekmwdN4JbgEzlkdA0XdMoEq5CO8JOqtaQKXiMomymLA0p6lmddtWeXrEisUSB4Tq2sJeXuf7nt+L6Os0O7md2dgfHKmVGh1wGZ1ye7om8i7cvpaniTzgP2CwOm+0OHN9f1TsBcCx+pmHmmahTzt8Qg3EO+C2e6efs4NEhcSTs7CSFGcLwOz84UGCsS7iBe16Ge2+w6dK6S9T6RV6Gy9ZPjsUPCNDheN8R+VO1E2eBrOe++KVHv2ach2A2qHCjvJ+ffzmI39e5o+0749I9u0v+UH2+FR3u9ie7Z9TT3vnD2QgOmdse2e8cO8yeqUq9puGuaODED3d3q917gFe3WqgOGdb2R2C+DlCCN59oDy7va9xGO6i+se7ru9oGaeex+UIFE1MzOYzd2v+VOS4LeXECZZWtZymo6Ghg716dHwmCgGjcO4a6d+I791Gkci2lDsOM2OrLm4geSR569693y+kK0Y7cx7vu8w6K6Yt7omg96W89qe9Ap288m8cRV+o.+6wuesKWM+Tj+y8uOyu7QM+6eTIx4XfUxW9ju4i6+CuAlu+hG2Lejxgw9IWe8eNf+e6wg++0g3e3QU+D60e8w328UFiXU4uGiwO7GQ328XyUqbsS97.7MO1Z9ee9KFj49VdOEqjC9nd3wgG2MAaescwUODUIrd+guiUl2ecN9ZNCLwMzI8E+23e9valmu9gO7l4+3alYmk8gn+h88cY7OSwuMMBFSgo+EZd6iJ70OkOS5NuWOOuy2w+uXa+kc0ungE9VaXwu0FV5asgk+VaXku0FV8asg09eug7Opk3wjnc221jIihZyzisd3gl3qVFbuZMy+CXZD9FJ
    • CasmatC

      How to Control Soft Bypass in Clone Containers?

      Watching Ignoring Scheduled Pinned Locked Moved ScriptNode
      1
      0 Votes
      1 Posts
      352 Views
      No one has replied
    • CasmatC

      Network won't Compile (Parameter Amount Problem?)

      Watching Ignoring Scheduled Pinned Locked Moved ScriptNode
      11
      0 Votes
      11 Posts
      1k Views
      CasmatC

      @CyberGen Worked flawlessly!! Thanks!

      @Christoph-Hart Is it possible for you to increase the amount on your end for future builds, or is there a significant performance impact for doing so?

    • CasmatC

      MacOS Compile Error

      Watching Ignoring Scheduled Pinned Locked Moved Scripting
      2
      0 Votes
      2 Posts
      329 Views
      David HealeyD

      @Casmat search the forum, that one's come up several times

    • CasmatC

      Can't Compile Scriptnode EQ

      Watching Ignoring Scheduled Pinned Locked Moved ScriptNode
      3
      0 Votes
      3 Posts
      548 Views
      CasmatC

      @Lindon yeah you’re right! The eq module should just be enough since I was planning on using multiple filters to change slope of eq, but we’re not doing that anymore so we can just use the eq module, nice!

    • CasmatC

      Wrapping Oscillator in Soft Bypass within Clone Container = Crash

      Watching Ignoring Scheduled Pinned Locked Moved ScriptNode
      23
      0 Votes
      23 Posts
      5k Views
      CasmatC

      @HISEnberg Yeah its coming back to me now, I got it to work after leaving out tempo sync abilities... I'll do some more testing myself, but it seems to be a bug

    • CasmatC

      Another HISE Scriptnode Compile Error?

      Watching Ignoring Scheduled Pinned Locked Moved Bug Reports
      3
      0 Votes
      3 Posts
      437 Views
      LindonL

      @Casmat slowly remove each scriptnode from the compile process until you find the culprit.

    • CasmatC

      Get Modulator

      Watching Ignoring Scheduled Pinned Locked Moved Scripting
      3
      0 Votes
      3 Posts
      413 Views
      CasmatC

      @d-healey ahh Thanks!

    • CasmatC

      Converting with TempoSync

      Watching Ignoring Scheduled Pinned Locked Moved General Questions
      7
      0 Votes
      7 Posts
      861 Views
      DanHD

      @Casmat two nodes is probably the way forward

    • CasmatC

      For You: Soft Saturation in ScriptNode

      Watching Ignoring Scheduled Pinned Locked Moved Presets / Scripts / Ideas
      1
      5 Votes
      1 Posts
      1k Views
      No one has replied