• Math.randInt / Stop duplicate returns.

    Solved
    3
    0 Votes
    3 Posts
    375 Views
    ChazroxC

    @d-healey Sweet! I'll watch this now. Hope you're having a great day brother! Thanks 🙏

  • added scriptable FFT

    28
    0 Votes
    28 Posts
    4k Views
    OrvillainO

    Another thing to bear in mind - it seems to me that you cannot run an FFT over a typical array. It HAS to be a buffer.

  • Load preset bank on init

    3
    0 Votes
    3 Posts
    339 Views
    S

    @Lindon Aha! That easy! Thank you!

  • 0 Votes
    22 Posts
    2k Views
    J

    @d-healey thank you for you help one last question how do i get it so that when i make changes on a different pannel
    that the preset with will keep the changes that i made say on a eq but change when i change presets in stead of just keeping the same
    settings from preset to preset

  • How to disable viewport table row selection?

    Solved
    9
    0 Votes
    9 Posts
    1k Views
    David HealeyD

    @Christoph-Hart Here's another use case that doesn't seem possible, combining CSS with paint routines.

    I want to use CSS to draw a rounded image on a panel. I want to use a paint routine to draw some text. Is this achievable? Or can text be drawn with CSS?

  • Quick coding question: Is there a way to check if a variable is a string?

    2
    0 Votes
    2 Posts
    296 Views
    David HealeyD

    @VirtualVirgin

    typeof(myVar) == "string"

    @VirtualVirgin said in Quick coding question: Is there a way to check if a variable is a string?:

    I would like to make an inline function that can accept either an integer or a string as one of the arguments,

    I would try to avoid this. I've started using the type safety stuff in HISE for everything lately and it prevents lots of little type related bugs I used to run into, before they can happen. But to use it you need to allow only one data type possibility per parameter/return value.

    If you want to have one or the other I would create two functions, or turn your strings into numbers with parseInt/parseFloat.

  • Reset All Controls to DEFAULT script?

    Solved
    7
    0 Votes
    7 Posts
    553 Views
    ChazroxC

    @d-healey forehead slap

    Screenshot 2025-03-26 at 8.56.54 AM.png

  • Mouse sensitivity and controlled parameters

    1
    0 Votes
    1 Posts
    185 Views
    No one has replied
  • having trouble triggering each button

    5
    0 Votes
    5 Posts
    464 Views
    D

    @d-healey Thank you so much, this has been a huge help. I’ll keep learning so that I can become someone who helps others someday as well.

  • ComboBox 'restoreState():' - help

    Solved
    4
    0 Votes
    4 Posts
    360 Views
    ChazroxC

    Im marking this as solved but im still not sure what the cause of the problem in the first place even was. Even tho I got it working, im gonna leave this up in case anybody wants to enlighten me.

    Thanks!

  • Connecting broadcasters query

    10
    0 Votes
    10 Posts
    917 Views
    OrvillainO

    @d-healey That's the vid that got me started on broadcasters, and I'm very appreciative of it! So thanks!

  • Easiest Way to Add Shadows?

    Solved
    11
    0 Votes
    11 Posts
    986 Views
    ChazroxC

    @clevername27 No problem! 🙏

  • Store Parametriq eq settings in Combobox.

    Solved
    8
    1 Votes
    8 Posts
    687 Views
    DabDabD

    @Chazrox Excellent. good job bro.

  • Help With SliderPack and CC Control

    26
    0 Votes
    26 Posts
    3k Views
    S

    @d-healey said in Help With SliderPack and CC Control:

    @StephanS said in Help With SliderPack and CC Control:

    how can it work that the slider states stay at the values i selected before and stays in position to each other when i control it via CC.

    This I don't know, because if you are using the current CC value as the starting point, then it's going to be constantly changing.

    I would forget about the sliderpack for now. Just add two knobs to your UI and see if you can get one knob to control the other in the way you want. Once you have that working you can move to the sliderpack version.

    Hi David,

    thank you very much for your help.
    I now have almost everything as it should be. Unfortunately, I can't manage one function. When I move a slider in the pack, the value is passed on to the slider but this must then be saved again. Could you have a look at the snippet?
    And please don't judge me for the horrible code ;)

    HiseSnippet 2650.3oc0Z07baabEGPVHwjsowwMyzdnGPzkRE4Hwkeyp1wThTRkUePVSYm5wiiJHvRwsBDfFXorny3Y7kdN2Zu1Yx8dsG5Eeq+OzSNsoyzdqGZOmtefOVPPBRoXO0hGfDv962a+g26suEXw11wVG55Z6HIm93wCgRxeWkNisv8q2WCYI0rgj7OPoiIx.5zVS+rSpW+jigt3SNGHs83gZttPCIY4arGErbpkkX+922caMSMKcX3kjjdfMRGd.Z.BGd0101GYZtqlA7Xz.AzEp0T21ptso8HhvtgRVogjNW6T3QZTXKoH8y0b6KI+wJ450UOWux4q.pBpVtPU.nXktExlS2nX074Kk2nWtJZkpPH8N6Xfv1NcvZXnqj7xaaaLtSe6mZw6fGfbQcMgzS.RcH8L+x6ZaZPuEoWUpdejoQaeOlqDwJsC8e2f6+9PkCQFnfqG5GuEqA0PFhNP4khJuaDQd.Q4kUPdSQRxBRZYtj9.kN5Nng3vVn546nzzBCc5oQhShRgiUZo8usRcaBBK75CzNCtqC4j.FYJlM6cTKjM6palNMIV4hUOWyQc+i1Fn9yT84cJDW2dvPaKxIYVg13JD7QfmKI34hAOeRvyGCdgjfWHF7hIAuXL3kRBdoXvKmD7xwfWII3UhAuZRvqFCNHahworwIjbfMdjEjXnEDO1BRL3BhGcAIFdAwiufDCvf3QXPhgX.KFqF6WTazgXhGQQeGV9N6Xd1wBriEYGKwNVlcrB6X06viS7+vYC3zAb9.tA.bK.J83HiEoUanR2w1zD5PidrB6zaiCsMFYpQJ2jYEVMIAXQcAGraq.ryxBDLpgfhw+XMRcKQpgylDTOZJFQzI14flM14dyLRval1wzeQBDo2XCU0l8Tw8gp5ZllcI8ppt8.nqZOG6Arqe3VcNlXcaGUKabZZ+gbOrNo25oY5B2jaiNDYQl+QsslEzjX4OYxehx83V2aq81Y15k2tmfoV2SB6eTqs4VNMxxDYAU6MxRGirsTss3X7hTYz8M2cHco4H3po+b1c9FargoM4NU0Qy5TpaO65jDHPtxqmk13gZtjB3pmY0kpt5pOXqCt+NLh9rOrYiljVXmNQFz5tP7VXrCp6HLLyjM1.1SajI9AT03KpMCMM6fmiE6LBxahqUzloS0i3+yfnBdSUj5OkMvYcSn0o39jKr1Zqxv+4AgWNyAHKBEJ1GgdL0MmYExkDGU54MnIfb2NEESjYVkvQ8Sn1HDtuob8A4n9wpGpQxb6YZSRT42WpaPboUHbYsn00MCwHqptZb6n2mFGLxHzD6eddLmhW1lGlmSxMld1COOXkUoRzy+W2KyNyDYIq5k7xJB4CxMnFAj3aP3wBiQ8+2nCSyvljOdFI0ryKezK.aY.uvKPsN6jV8BoPsNO6SUsdeHYDJpmJB+icEGdVea+QnLeVO0LeD0wM8zBLbvvoFwCiBTHOhIkGSPxzbXi9DCxBnnEylIgO5eSkx6Nij1pd2XdzP9Y8bKpq9STWYkMmjLHQxfoPVMjbtDImKYx4Sjb9jIWHQxERlbwDIWLYxkRjbojIWNQxkSlbkDIWIYxUSjb0jICRNECjcNzmSR1bxx.ImlAlSdFH4DMvbxz.ImpAlStFH4jMvzy1R6OZOEqbbZ1TTjhSVr5X9U3Na5EhEJNRJb7buI52Ch4UiG5.cIk93cqaPU0zAkW8qY4lQywQareuQe9BBUxDszmp7w7RRLgoQElG1n0D43We3H29YzDJF5UPiOUjCDOxwxCKSvrG6gnWZQ3ooYMLoGQ3zwJVFJcleJ3wbBmQQcJylveJtjlOIcpzonOmaXOw4DNaE6pagISXQ5TJ1byGKvGa94iMmO1ByGaderEmO1B9XKMerE8wVd9XK4isx7wV1Ga04ishOVP14CtZ.3EHxABBcfEI1ED7.KPzCDD9.KP7CDD.AKPDDDDBAKPLDvChoSkhlTO6m0y+MaldIlHiXXixDFNcjMF1xJCcbCoGRqNYS85M01Beh9o1LcY5bRhXFqQC5BcDF0x.JIubz02RY1quk3xuoycKB.ssZRJ5zZHzZVKJmjmuTRR91dph.EyVIrum2JgwCGRHCI4apveBSIlhCVCxWdRMo.1KyYe6HroEx7r.OR3aAE42mX.CMrlj7iTJUX86c596u1Aic1ubmV+hFOqk8456rlydmUuRc6yexSa8zrZcVqaEqAkQOYusbImipuV4e4V8JONKx3hVeZqhMW627vcOqbGyGd7EsvFGzXs0kjVf6t2QglRF4dqV5e++3tKL2bQ39q6c9Ws3byGg6eXuO5et3bKDgq5u8O+2VbtEip4uv4Rzukhv8Ee3m82Wbtkip4+3e5es3bqDg6qd1+4qWbtUiv8k+2a9WWHtuKK2H6Dh9u7UWBxQyrd0WJ80WBx4tZ2xbx4+1Pdhjq7e4kgbwuMjKMQn5GRRqueyFzZERxxdUtHUyFBcvHZgR4FvyQ5P9B4mRoAz8Lr8PRIofoIHIA7N887Wle5ZTw5yTJdOblzEheJlwhm7TjAtOsnUNxI8gnS6i8OSRnORO+BnB8ApVXe7pQ075C+VeXM+9w+JMqM.YXXBaa6hnSnD1xQ0FncgXUYWLbXGzyfhetIL7BhwVVod8HZ9cWrx1B593ZS22TSVz276HMMzeFmlFzOsSz0uLhJRMqnSZZFQ6sNZmClkDpAmz0gmz08xt05Z6PtutmlAZjqn5QX3.wugV3443WP9VKT.1aNj4lB4eg0mhFcwioytmV4AzDacMSoYEve0cGp4PTjnzBcTQtGRq.JUtb4bjgjSwgO6YzDtS.0R5Novav6jKghyKp3FWGTbAQEez0AEWb9kAdKSwkDU7CuNn3xhJ9ytNn3JBJ9EZWGTbUQerwa4J1+IPEbx8tVHYvrdXm2dkr3zdu3rqERNx7dVWKjr3De0FdsPxhy78hmbsPxhS88Rm++I43a0paoD7V.h67K59iyqAp8E2tUzsTkEoeGK9BMu91NXKInwaw0nB8sU7D1Du2xbE1tNvmLBZoKbQ0ZzMvWyPuVsun1mpcNrmsy.uWa0C4Op1AvSIcjnAOFR7rcFaoKdwNCrsw8QVmFYaARr6A11C2wh90aLDw2tulKcIMcgXwTApYO1lumGpaZSduOANMO0x1AxWlTQR0G4hsG3eCv1rgcHuxYi23Km2kHlCV7XdR4keeV3OHNSSDt7olKuXolIuQJktTJNHI7sDEmNPwQ1SLLEeakI2gUyWv22Ex9BkQRWsNmTrRLsOX8eIF8H1ptGeHTzsUKpl3lzQbQUBsDqi4I6jL+Wa4jKZ.9CTZiv58mdsxklh2RR50VsRo3al22SYmd8f53PAtrxt+p2L6bWo6YOBSp4cnF1AQleSgDT6XOxQGR5cKKnI8ylHuDMtyOOK8bVcNnkA6jug7yqQ.8bYuFA9MJMPS2w9Dcd3lVq3lrqPzjEaqUmR4P54pfI9bHjej4HQmnqG0TwHl6pRL+UkXgqJwhWUhktpDKeUIVY9DokY1ZDYpK9vFIoCauCebrbvLlx2P5+Aomz72A
  • Accessing sampler instance from within midi processor

    Solved
    4
    0 Votes
    4 Posts
    351 Views
    David HealeyD

    @Orvillain said in Accessing midi processor name from within connected script:

    I'm fairly confident this will enable me to have my generic script,

    That's how I do it

  • How to Load Audio File Using Scripting? (External Data)

    Solved
    10
    0 Votes
    10 Posts
    838 Views
    griffinboyG

    @d-healey

    Worked!
    Great, thanks David.

    Answer:

    const var ScriptnodeSynthesiser1 = Synth.getAudioSampleProcessor("Scriptnode Synthesiser1"); inline function onButton1Control(component, value) { if (!value) return; FileSystem.browse(FileSystem.getFolder(FileSystem.Downloads), false, "*.wav", function(file) { if (!isDefined(file) || !file.isFile()) return; ScriptnodeSynthesiser1.setFile(file.toString(file.FullPath)); }); }; Content.getComponent("Button1").setControlCallback(onButton1Control);
  • A snippet to choke off or fade a note

    1
    1 Votes
    1 Posts
    152 Views
    No one has replied
  • Is there a method to rotate a path?

    7
    0 Votes
    7 Posts
    1k Views
    VirtualVirginV

    @d-healey said in Is there a method to rotate a path?:

    @VirtualVirgin Instead of making a function to rotate a path, why not make a function to create a rotated path. You can pass in the data you would have used to create the initial path.

    So based on your suggestion I came up with this and it seems to work:

    inline function createRotatedPath(pathArray, angle, area) { local rad = Math.toRadians(angle); local cosA = Math.cos(rad); local sinA = Math.sin(rad); local path = Content.createPath(); local rotationCenterX = area[0] + (area[2] * 0.5); local rotationCenterY = area[1] + (area[3] * 0.5); for (i = 0; i < pathArray.length; i++) { local x = pathArray[i][0]; local y = pathArray[i][1]; local newX = (x - rotationCenterX) * cosA - (y - rotationCenterY) * sinA + rotationCenterX; local newY = (x - rotationCenterX) * sinA + (y - rotationCenterY) * cosA + rotationCenterY; if (i == 0) path.startNewSubPath(newX, newY); else path.lineTo(newX, newY); } path.closeSubPath(); return path; }

    The pathArray is a 2D array of x,y points
    i.e.
    [[x,y],[x,y] etc..]

  • New Build, All Meters Crashed. How?

    Solved
    32
    0 Votes
    32 Posts
    4k Views
    David HealeyD

    @Chazrox said in New Build, All Meters Crashed. How?:

    this commit works.

    Good, now find the first commit that doesn't work :)

  • Does path.contains() work properly? I am having issues with it.

    3
    0 Votes
    3 Posts
    307 Views
    VirtualVirginV

    @ustk Oh that makes sense! And that method is a lot easier than what I was doing.

27

Online

2.2k

Users

13.3k

Topics

115.6k

Posts