HISE Logo Forum
    • Categories
    • Register
    • Login

    Message.delayEvent() for humanization/chord strumming

    Scheduled Pinned Locked Moved Scripting
    3 Posts 3 Posters 248 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • ?
      A Former User
      last edited by

      Okie dokie I'm at the point where I'm adding all sorts of features the end user will probably never use:

      global humanizationLeft = 0; // This one variable is shared between multiple midiProcessors to ensure they are all delayed together.
      
      function onNoteOn() // Global
      {
          humanizationLeft = Math.randInt(0, 2000);
      }
      
      function onNoteOn() // midiProcessor-specific
      {
          Message.delayEvent(humanizationLeft);
      }
      
      function onNoteOff() // midiProcessor-specific
      {
          // To handle stuck notes
          Message.delayEvent(humanizationLeft + 1);
      }
      

      I'm still getting hanging notes, should I remove the +1 from the noteOff? Or am I approaching it wrong?

      I've also tried Synth.setFixNoteOnAfterNoteOff(true) in each midiProcessor but it didn't seem to help either :man_shrugging:

      A 1 Reply Last reply Reply Quote 0
      • A
        aaronventure @A Former User
        last edited by

        @iamlamprey You need to move your entire MIDI processing to a parent container, catch the delayed notes in the onNoteOff there and have them not play if the key isn't down.

        If you want to humanize the note off as well, you have to make sure that the note off goes off after the note on. So definitely add more than just one sample.

        If you want to know more about the delayed message flow, read my posts in this thread https://forum.hise.audio/topic/9244/how-to-delay-note-on

        Christoph HartC 1 Reply Last reply Reply Quote 0
        • Christoph HartC
          Christoph Hart @aaronventure
          last edited by

          Not sure what you're doing wrong, but the Synth.setFixNoteOnAfterNoteOff() is precisely for this use case and should work like in this example that delays note ons by a second and prevents hanging notes if you press the key shorter than a second.

          HiseSnippet 910.3oc2V0saaaCElx1pX1cqncnnnWJLrKbAJJraS6FvtnIwwtvX0IFQo+bWAC0QwDghTihxsFE6cbOJ8MX6PJ6JoFiTGitUr5KLz4OxOdNemC4TshAYYJMwq8IKRAh226GtPZlMXFkKIiOf3cC+IzLCnCJTs+hTZVFDQ77Z9LqBu1sHtee3o6SETICJUQHuTwYvy4IbSo1o696bgXDMBNgmTw6c1cLSIGnDpbDOM86QRoryomAGRst0vm3csgQbiRGZnFHC8YeUzhvYp2JK7+k7L9oBvJzmDhKTgZxfYbQzzUm0LBwyeZ4IuYwI+19S3Q7OpuLCbSmgfxHplC7ZbYPp+U.RdUfTqBHcK+PllmZJsXwy08GKwBRLES0UgRgujF+jm+.E5gz7fD54vHMJ7wH59jd8te.9289sNtJ8ChfXPOfJDmhY6rtwTQFfF6rzbFXFwe2gJCbjbuXbUbeFG20nys9EmKYFtRFnjEN08dcdem1SP7hkNb0EzECmifo6N6z2sss67mcB9zvvEzE2mXydPzJg.zq0rk.our.6JySNEz2OXNUfvckiXFtdY6ZaVYiUjWq3nRNVxMGkBKkGoDQ1xg86KVjIKKL3WuX7ATC0V2WpC8KEzFtENdG.ywFmBVPa+CfryMpTr04BTDjbphxETScFqs0boALeTilXoBxLtYQ0V2q.Mt2kRi2THdK+obCa15wXi0fQLS8uAFW17+C9CiiAloDfs7G85ssSey29aTr8W2OjKAWCmayuiSN3Uz4Pvy.InsIu9Wxv2+ZSG9ltwCeOhYvs+DMUlkpxpsvgPB+DkzlEJU9hLbTC7GGaqlU0OPQ0q0zGd5H7Pt1XBolbsiVrWhJWZpQCZVuNzZyZcq2QTw+0LJt0WgaG9xzV8Uryu1EXsWgwPdRp.FJmCBb7lCi+HNOKllKLqzVmXOQIUoyTRNqZU+Xvn4mcFnqh80df1yXvKxJ0b6cOFD.sJC9m284Hyipw7Drk4hq9k4qsdcW+B3FX6FC9+6D6leaOw9XUtgKOaBEIguCe83g4Ig3fRFf6tTBBbw88ZXG1UH2yJWLoTF4D9a72Ri8sxdKM1ekw+S1iDJSqdCq3sQVd524zfmao6M1swG6ixA8It2KUsVlfS4dCiUeotPfObaC7Qaaf6rsA93sMvmrsA9Kaaf+5mOP6kP6kaTIEslDxjoCcOvzyanjhrbWGA4e.vLdxN.
          
          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          10

          Online

          1.8k

          Users

          12.1k

          Topics

          104.9k

          Posts