Forum

    • Register
    • Login
    • Search
    • Categories

    Velocity-notenumber script?

    General Questions
    3
    17
    584
    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.
    • hisefilo
      hisefilo last edited by hisefilo

      Need some help doing midi velocity curve to affect all of the modules, and also changing by notenumber. In other words need lower notes to be more responsive to velo that higher ones. It's possible?

      d.healey 1 Reply Last reply Reply Quote 0
      • d.healey
        d.healey @hisefilo last edited by

        @hisefilo Why not use a note number modulator?

        Libre Wave - Freedom respecting instruments and effects
        My Patreon - HISE tutorials
        YouTube Channel - Public HISE tutorials

        hisefilo 1 Reply Last reply Reply Quote 0
        • hisefilo
          hisefilo @d.healey last edited by hisefilo

          @d-healey cause I want to change responsiveness, not volume. I m working on a rhodes, and real rhodes lower notes are extremely responsive. Meaning it gets the max timbre and volume with less force. On other words I need lower notes to read a 20 velocity and to act as a 127

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

            Use a Ahdsr and modulate the attack level with both a key and a velocity modulator.

            Or use a script that amplifies the velocities for lower notes.

            hisefilo 1 Reply Last reply Reply Quote 2
            • hisefilo
              hisefilo @Christoph Hart last edited by

              @christoph-hart yes, that last one is it I guess. I think will need to use the note number value times "x" for the new velocity.

              d.healey 1 Reply Last reply Reply Quote 0
              • d.healey
                d.healey @hisefilo last edited by

                @hisefilo You could use a table control to get the "x" if you want to be able to shape it.

                Libre Wave - Freedom respecting instruments and effects
                My Patreon - HISE tutorials
                YouTube Channel - Public HISE tutorials

                hisefilo 1 Reply Last reply Reply Quote 1
                • hisefilo
                  hisefilo @d.healey last edited by

                  @d-healey have to learn how to do that! But will be perfect

                  d.healey 1 Reply Last reply Reply Quote 0
                  • d.healey
                    d.healey @hisefilo last edited by

                    @hisefilo See my woodwind library (specifically the controller handler script) for some hints.

                    Libre Wave - Freedom respecting instruments and effects
                    My Patreon - HISE tutorials
                    YouTube Channel - Public HISE tutorials

                    hisefilo 1 Reply Last reply Reply Quote 0
                    • hisefilo
                      hisefilo @d.healey last edited by

                      @d-healey 🙂 thanks David!

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

                        Or just use this buddy...

                        /** TableVelocity Booster
                        *
                        *   This script is boosting the velocities according to the table value 
                        *   of the given note number and the gain slider.
                        *
                        *   Usage: 1. Set the table to create a boost curve for the note range.
                        *          2. Set the gain slider to control the amount of boost
                        *   
                        *   It will "fill up" the velocity to the max amount. Example:
                        *   
                        *   Table value is at 50% for a given note, gain is at 100%.
                        *   If you press a key with velocity 40, it will add 50% of the difference
                        *   to 127 (~43). If the gain is at 80%, it would add 40% and so on.
                        */
                        
                        Content.setHeight(150);
                        const var table = Content.addTable("table", 0, 0);
                        table.set("width", 512);
                        table.set("height", 150);
                        const var gain = Content.addKnob("Gain", 600, 0);
                        gain.set("mode", "NormalizedPercentage");
                        function onNoteOn()
                        {
                        	local tableValue = table.getTableValue(Message.getNoteNumber());
                        	local veloDifference = 127 - Message.getVelocity();
                        	local delta = parseInt(tableValue * veloDifference * gain.getValue());
                        	local newVelocity = Message.getVelocity() + delta;
                        	
                        	Console.print("In: " + Message.getVelocity() + "Out: " + newVelocity);
                        }
                        function onNoteOff()
                        {
                        	
                        }
                        function onController()
                        {
                        	
                        }
                        function onTimer()
                        {
                        	
                        }
                        function onControl(number, value)
                        {
                        	
                        }
                        
                        hisefilo 2 Replies Last reply Reply Quote 0
                        • hisefilo
                          hisefilo @Christoph Hart last edited by hisefilo

                          @christoph-hart yeah!!! Thanks, scripting is not my field. Maybe in future Hise should add this kind of hardcoded scripts (for newbies like me:)

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

                            Nah this is a prime example for custom MIDI processing. A generic module would not make sense.

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

                              @christoph-hart I can see the script doing the job on console output but seems not to affect the modules,

                              Velo Gain: In: 32Out: 127
                              Velo Gain: In: 44Out: 127
                              Velo Gain: In: 40Out: 127

                              d.healey 1 Reply Last reply Reply Quote 0
                              • d.healey
                                d.healey @hisefilo last edited by

                                @hisefilo Did you place it at the top of the tree?

                                Libre Wave - Freedom respecting instruments and effects
                                My Patreon - HISE tutorials
                                YouTube Channel - Public HISE tutorials

                                hisefilo 1 Reply Last reply Reply Quote 0
                                • hisefilo
                                  hisefilo @d.healey last edited by

                                  @d-healey Yep!

                                  HiseSnippet 1329.3oc4XstaZbDEdVvqcA2DkH4V0etB0JgyEKvI1ooQU9BX6hRvlZHt4eQi2c.FkcmY6ryZGZUdM56PeC5SQUeDxiPdCZOyLKrK1DLXkjVoh7OXNy4x24Lma3VBtKIJhKPVE5LHjfr9b61CXx905ioLTi5HqaZ2DGIIBGCocGDhihHdHKq7GnHXUXAj9y61ZWrOl4RRIgPmvotjmQCnxTps19oTe+8wdjNzfLb+vsa3xY0397X.O4sqfBwtuB2ibHVwVNaj0h64QkbQaIVRhPVKrK2aP697yYF9OgFQO0mnNTE0FTjg79beOEhUeGUqO02q0P+NBgrrakFExahBqX2j5QGQOMZbK8ENoRjMdXkaZvq50DdVYf2BF3ca61tBZnL8FE1V19DhO24fK9LY3Ek62yYWiyjDlbsHh7GHzd8kkqtQkUeRQHtGIcNCKbjX.gNeuyPNwddcTjJWReSo64TA9CDQeTonxkNm5I6C2rQ00G+h9Za.2bQqzCv33F4oL9okKovNv9lURLhhOipB3dJiW5PtH.6S+EhWKhvEDFxOJs5S5FybkTNygyNjKIGwJuZwesXAetK123Smf8iUNlAd8HxNinVtIDDA8nnpj9v3fSIhxqB.HQCmAA15ztcIBBjfCZo55Ox49NYjSE5coxAkSExi3Kw.ugXQDoASVNCNtyEU4czwDslzPJiwYjyGpcPaSzlN20XMPlhEfnZDG7wPAELZoFruyoDvv6SvRGEKMbjwPf0eyEioc6ZBpEeSwLWodCEbeeU.6x2ppvESQrxLcr9dPVA30C4CRzGuRZ4YqRx0jOkgQNqAiJOJjjzgXX5wPJUQibtrLk5TYopclIvVJooWJiRx2gh5bIhBdpTWReijRZcVIhB5XIac9BRGYftTV6.ZvCKwHqMrevlqM9myNZs05F+X0Websjyq08tYNaLu1l4M17lI1rsO0iHzFcQac6iDap6L+1e7O9ysPOuQckog9IINA3XgDgjpddrpSNC5yaZNUvtNI5URdn1KCB4LkKas3U4muV4ip4.CF9EceEPgKhxYlPX5mnn7aCGvjwBKcUdk1BuHWFKDP877Is3QTUZY5nn2tUTb2tzWqdI+Fjp2Cx5KsmTuGXb1kZOCCI3dw9X43SNTXH4Bkwx1htgJjBfXP1woyw3jJSbbR0IkCNiv811snR29SFu4l.dUI0ejwaxv4aXuGz1zUlB1Er2+EW2IwWOnbSCTV1tMkQzaLoAxWnO67S3yHNGPXDgJnNkcl9qYcmovYdmoibkf06HvrnPdzXJtMIf1AJVhxR74Qj8Eje9X0ibV503pwVS3p2s09fONQYZikwBc1xNA7Xlbrri7i+jXOaszGunIC+S+sxZg+EVp6CeU3G0lFywNn4ZcoenvsfT8fPexdL0lL.ESWi5jt3Xe4HpYAbSNiG1myntYSLNlHEzd8HhrtwD8scjR3GDjRYksOl3SvYSx+5seFjbhEM0sre+gk7yVXY1VGehOceksAtNpBVm+S02eICrKZObaOMfWYzQmQtyUCVn8gYTdlWzFviuPpDJkVchK8Th+3uKWdlw09c4Cxbs7++bt1w7XIk0qIFJDU6HA+9m1v7DWBfDFi3q5VaoVAK4bkgqO0lv7zG9a3SxkUUmsRtr5vK+jXi.rqf+RWyVtpZ0OSSA7al9+fPA6lpyNUGteqJ1.q.ReoqqJXeeH5LYIVetk3AysDObtkXi4VhMmaIdzbKw2NEITyY2IVxCLkd.gV6o+cEVV6wTsQzY4n+QJy2+O
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • Christoph Hart
                                    Christoph Hart last edited by

                                    Fail. I forgot Message.setVelocity(newVelocity);

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

                                      @christoph-hart Yesss! it's working now! thank you!!!!!

                                      /** TableVelocity Booster
                                      *
                                      *   This script is boosting the velocities according to the table value 
                                      *   of the given note number and the gain slider.
                                      *
                                      *   Usage: 1. Set the table to create a boost curve for the note range.
                                      *          2. Set the gain slider to control the amount of boost
                                      *   
                                      *   It will "fill up" the velocity to the max amount. Example:
                                      *   
                                      *   Table value is at 50% for a given note, gain is at 100%.
                                      *   If you press a key with velocity 40, it will add 50% of the difference
                                      *   to 127 (~43). If the gain is at 80%, it would add 40% and so on.
                                      */
                                      
                                      Content.setHeight(150);
                                      const var table = Content.addTable("table", 0, 0);
                                      table.set("width", 512);
                                      table.set("height", 150);
                                      const var gain = Content.addKnob("Gain", 600, 0);
                                      gain.set("mode", "NormalizedPercentage");
                                      function onNoteOn()
                                      {
                                      	local tableValue = table.getTableValue(Message.getNoteNumber());
                                      	local veloDifference = 127 - Message.getVelocity();
                                      	local delta = parseInt(tableValue * veloDifference * gain.getValue());
                                      	local newVelocity = Message.getVelocity() + delta;
                                      	Console.print("In: " + Message.getVelocity() + "Out: " + newVelocity);
                                              Message.setVelocity(newVelocity);
                                      }
                                      function onNoteOff()
                                      {
                                      	
                                      }
                                      function onController()
                                      {
                                      	
                                      }
                                      function onTimer()
                                      {
                                      	
                                      }
                                      function onControl(number, value)
                                      {
                                      	
                                      }
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • First post
                                        Last post

                                      10
                                      Online

                                      810
                                      Users

                                      5.5k
                                      Topics

                                      51.9k
                                      Posts