HISE Logo Forum
    • Categories
    • Register
    • Login
    1. HISE
    2. ericchesek
    3. Best
    E
    • Profile
    • Following 0
    • Followers 0
    • Topics 19
    • Posts 85
    • Groups 0

    Posts

    Recent Best Controversial
    • RE: Words of Encouragement for Students Learning HISE

      @skyscapeparadise
      Yes - the documentation is not amazing. (Sorry to people who worked on it.) Coming from a platform like Native Instruments Kontakt, their KSP guide includes examples and use cases that are decently commented. At least they tell you possible values for function arguments.

      So my encouragement is to USE THE FORUM!

      posted in General Questions
      E
      ericchesek
    • RE: Text Kerning / Character Spacing?

      I see the source of my confusion.
      Using g.setFontWithSpacing(font, size, spacing); results in a length of spacing at the end of the string.

      For example, if I write
      g.getStringWidth("TEXT");
      I expect TEXT's width and spacing (shown with underscores) to be calculated as T_E_X_T.
      Instead, it is calculated as T_E_X_T_.

      So using
      g.drawAlignedText("TEXT", [0, 0, this.getWidth(), this.getHeight()], "centred"); doesn't actually center the text due to that kerning offset.

      posted in General Questions
      E
      ericchesek
    • RE: .HIPs and .XMLs not loading properly after recompiling HISE

      @d-healey Never mind. Something went wrong when I compiled HISE. I suspected it was a permissions issue since HISE normally asks for permission to access folders on my desktop on first startup, but this version did not.

      I deleted HISE, recompiled a fresh version from github, and now everything works as expected.

      posted in General Questions
      E
      ericchesek
    • RE: Multi Channel / Multi Output Help!

      @Soundavid

      That was indeed the issue! Thanks for nudging me in the right direction.

      For anyone else who comes across this issue and wants to follow along, I just decided to hard-code the output routing in the script for testing. I am still learning HISE, so I do not claim this is the best way forward!

      1. Right click on your master container > Create Typed routing matrix script reference
      2. Paste the reference into your Interface script onInit.
      3. I added a simple for loop for 12 outputs.
      // Typed routing matrix script reference:
      const var Container = Synth.getRoutingMatrix("masterContainer");
      
      // change 13 below to your number of channels + 1
      for(i=1; i < 13; i++){
      	Container.addConnection(i,i); // 1 to 1 channel routing
      	Console.print(i); //check for correct channel numbers
      }
      
      posted in General Questions
      E
      ericchesek
    • RE: Detect if two paths intersect

      @ulrik That's an interesting solution! I came up with something a little different. Any XY cursor and pad shape I use is likely going to be symmetrical, so I have the XY cursor area bounds set to a smaller version of the XY pad shape. When the mouse cursor moves outside of the XY pad bounds, the XY cursor locks to the smaller XY pad shape path. Not perfect for all shapes, but maybe close enough for my needs.

      That's probably difficult to read. lol. Snippet below.

      HiseSnippet 1395.3ocsW0saaaCElJIpcVaEaEXO.D8lo.n4ZmD2Mffh0DmjAiszZT2UzBCiBFIZahHSJHQmDg0bydr1U6QZuAamCorMUiaVQvpgUh44O9wye7n94pXdQgJm303UkYbh2W4OnTpm1cJSHI8Nh38k9GmlJxJ3u4sjCKyXEE7Dhm2l+LJfWisHlO+8OcHKkIi4qHQHuVIh4+pXlPuhZ+m8KhzzSXI7WIl4H8dOqWrR1UkplCfYS+VjLV74rI7myPw1vm3cuiSDZU9.MSyKHdacnJobvT0kRq7uVTHNKkiKZSF.FxR9DUZBhXjJo6TQZR+EG5BBXk9qbAaZcAeq+ohDwR5qbEeigAckFt9CuMpCuMqAu1tvqkC7VCj7bfzVVH8P+Aw4hL8JN1PSOolmOlAtcWnXkkrwede+tJPBot4L147SxgEK0H7IsZEQg+r89AAO9wz9LIOM.hAEZ5ErbZlL8Muk9T5BKLgq6plkojvhvGY39HP0akcyBjpTmqR6xRSOChngJogYE4pMuaNG7ZTXCyXIQTPV0k7DJCHCqjIz344vo1AdWU1mom5fuXiIPhgfQWIXks9Dk1tOeTAQrdUoAW.R0SqAnCPpOkNbmNQv2NcZgOi1OvB0lrjjpJoPqrKN61szZNyuQQeIOVyjSR4gCAy0JZuVQsaMBw55DADnCvGjZzZNNU.qRSHRcnZtLoHrcyVaafvAN96O7bU4+Vb31qSD7sCrWvyn.Guq6AzQopS4op4Eb5THVlJjSBL4.X5gg9xjiwykwZgRFxu.b9aG76AMDio1UMSxYSnu+8T6p3TQ747jsCZ.BYjxEK.90PYaQ3PqzWEY+e4nsAMLpzPOUTzLgoYMEE8jEhDNb.04y4.hqw9JfdkY1uNmxkbJ2uAv5Z3gmVvu0sXLCjvXH7A7MiEPFtdJmJvhyBtwEPyTvR5Yb8kbtjFyQdT03ZEGlZiYFWaUEBXQLpUyRO0sH.i+8b3FNzIXMbmQOdmHWB6BDFEcCuXjwQs8xSQcmk6tODKAtgSqlDsMRbM50MRECoIS3IPAGX6qoAWWkCcTN6RzcmWpqkC0Ghz5WplCT4qRgl.oOf9XEFKMddJ1fAcWEPSZtwcacYeWgouipPXbVAF+GdJbOSeuSojwIsuUtxZxUVWtcMxEzXRywvcdPQVn89shlSx4knyy.uD7Xg3YQmE3j.EIbTQSCTTmkpdVJTnf5NAKHtrdKkH5tnuplUMkx4fKZQNyRyCRU2HNA9n12De11yKyzVO5rYE1irosoU7ngWEUFUyIFUyUgMtVDneIOCColMMCuWhBAlX6MFABIhd5h3Ls9EJgwKtEJBZegnAahrjXybqowl4WuefiQdtRyegLzHdv0AzOj03wqkW01lxyWKabHm7aSwP47YmwycAKJHbye8wI7+3iS3NsSr8ZKGAUxdRg9EYb4GaFHR0ccvu9sdGA4w3LHUz.4x34ZABAui3W.CzYmHog+Q7hy0pLirUdWhWf1v8AKlWACdDALUx88MQIxUtCHV5t3RQhd5RB+0e7robwjoZWJl7yEWV.H5q8ghJ5JBmMYw.jMt2+.eP0DZ9rai5NtjI2bzKXnOUB18n9jf33uULf3YswuvtqPudco63w+uMd3mJDeneegNd55w3FqAiPT+yAFqFp9A9GOdLzueE.2x+j274YBZh8tfImxz4BHgy+4ymM.B0wbX2kPFIVO4sAl4aW2BWidfAbYhYAlPTwrMt1qhY6ELIyXw4p2U0TBGa+KLT.LIMuwRC+Sw0z1DSksqedF7VDuKNttotgh6bWUb26ph6cWUrycUwmbWU7GtqJ9i+2Jhuj2Ay0pY1xFB4z9GaZK54crjAYflrUx+xLqGow
      
      posted in Scripting
      E
      ericchesek
    • RE: Why Doesn't This Choke Script Work?

      @d-healey said in Why Doesn't This Choke Script Work?:

      @ericchesek

      @ericchesek said in Why Doesn't This Choke Script Work?:

      The loop is just so the same RR value never appears twice in a row.

      The loop is not needed - https://youtu.be/8NtZJonqXLo

      @ericchesek said in Why Doesn't This Choke Script Work?:

      Thanks for the note about local vs. var! I'm still trying to figure out the appropriate uses for these data types.

      Use const in on init/namespaces for fixes values, arrays, or objects. Use reg in on init/namespaces for values that will be changed. Use local in the default callbacks and within inline function. Use var within paint routines and anywhere that won't let you use local.

      See here - https://docs.hise.audio/scripting/scripting-in-hise/hise-script-coding-standards.html#variables

      @ericchesek said in Why Doesn't This Choke Script Work?:

      I capture an eventID when a PlayNote function is triggered.

      When you play a note you create a brand new note with a brand new ID.

      @ericchesek said in Why Doesn't This Choke Script Work?:

      I attributed it to the MIDI list storing values from -127 to 128 using the setValue function

      A MIDI list is a kind of array with 128 elements. It can only store integers.

      789b4eff-d929-490b-9e4f-0ceae8f67523-image.png

      236bb08d-fef2-4227-b29b-4f57b7958e45-image.png

      I love you, David. :grinning_squinting_face: Seriously, thank you for your willingness to help.
      I'll be back with a solution or more problems!

      posted in Scripting
      E
      ericchesek