HISE Logo Forum
    • Categories
    • Register
    • Login

    Velocity-notenumber script?

    Scheduled Pinned Locked Moved General Questions
    17 Posts 3 Posters 1.1k 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.
    • hisefiloH
      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.healeyD 1 Reply Last reply Reply Quote 0
      • d.healeyD
        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

        hisefiloH 1 Reply Last reply Reply Quote 0
        • hisefiloH
          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 HartC
            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.

            hisefiloH 1 Reply Last reply Reply Quote 2
            • hisefiloH
              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.healeyD 1 Reply Last reply Reply Quote 0
              • d.healeyD
                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

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

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

                  d.healeyD 1 Reply Last reply Reply Quote 0
                  • d.healeyD
                    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

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

                      @d-healey :) thanks David!

                      1 Reply Last reply Reply Quote 0
                      • Christoph HartC
                        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)
                        {
                        	
                        }
                        
                        hisefiloH 2 Replies Last reply Reply Quote 0
                        • hisefiloH
                          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 HartC
                            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
                            • hisefiloH
                              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.healeyD 1 Reply Last reply Reply Quote 0
                              • d.healeyD
                                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

                                hisefiloH 1 Reply Last reply Reply Quote 0
                                • hisefiloH
                                  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 HartC
                                    Christoph Hart
                                    last edited by

                                    Fail. I forgot Message.setVelocity(newVelocity);

                                    hisefiloH 1 Reply Last reply Reply Quote 0
                                    • hisefiloH
                                      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

                                      14

                                      Online

                                      1.7k

                                      Users

                                      11.8k

                                      Topics

                                      102.8k

                                      Posts