HISE Logo Forum
    • Categories
    • Register
    • Login

    Custom FLAT Piano Keyboard 2 Method [ Panel Script By @d.healey & Project File ]

    Scheduled Pinned Locked Moved Scripting
    63 Posts 2 Posters 3.3k 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.
    • NatanN
      Natan
      last edited by

      @d-healey
      Sir
      Let Me Finish With The Keys, Then Go For The Stucking Script :folded_hands:

      I Managed To Make 36 Keys, Thanks To Your Loop Script, Everything Works Just Fine, But How To Go A 2 Octave Down, Like Start From C0 To C5?

      Panel1.setPaintRoutine(function(g) {
      
          var white = [
                      0, 2, 4, 5, 7, 9,11,
                      12,14,16,17,19,21,23,
                      24,26,28,29,31,33,35,
          ];
          
          g.fillAll(0xFF000000);
          
          for (i = 0; i < 36; i++) {
              
              if (white.contains(i)) {
                  this.data.down && this.getValue() == i ? g.setColour(0xFFAAAAAA) : g.setColour(0xFFFFFFFF);
              }
              else {
                  this.data.down && this.getValue() == i ? g.setColour(0xFF222222) : g.setColour(0xFF000000);
              }
              
              g.fillRect([i * this.getWidth() / 36, 0, this.getWidth() / 36, this.getHeight()]);
          }    
      });
      
      HiseSnippet 1493.3oc4X0saaaCEVJIpqIcoccnXXWxUrUH2n5YYm51rrf5DGmtf0zXDm1NfthBFIJahHSpIQmTihBLrq1i0tZuC6snuAaGRZYI63j4YzVLrwKbLO+P9c9gmywoYL2ijjviMLW7v9QDCyO1pUelnS8NXJyX2sMLup0wj9Gwww99jtbis5GgSRH9Flly+PoLlKtfgZ81GrENDy7HYjLLdJm5QdDsKUjQsYsumFFtC1mbHsaNoWs1tdbVcdHuGfm4sJYDg8NF2l7XrTr4rLLuTCepfG2RfEjDCyE1h62uUG9oLs7OklPOJjH23ZzBNHM4c3g9RDKoZTuCMzuYpcmXXXZ0LyKLu1KbCq8n9zgzy7FehhAJSi79Cy4tH34lGdkld3YlCdKng20sZ4ESiDYbjX6JV6xDj3.LDBxCKsrFy86WxpNGjfIJ1EeLYmXXyPMrqVpjC5tkJUX8kWZ4kTIAE8IAj353vvif.QhsHtGQyFhSIBD4D3r10OAsApAqMkQJ5ES.SW5hdDMQXKENUnhAPP29NqsV9S3DbLpIlQBcgyHEbsIh57tQbFrw9lZ12TqkdSwDhnIDQDGv6Ifq0NnGySP4L61EPuVJGBVxy9zNTAAN5mqIo+L+Br4xNnUAK2AcOGzZNttNmUJ2xNtq53V0w8dNtq4T10obkIHV4UcJW0o78cJulSEWmJUbpb2Ah8h0yif1Jmwlf+nzq1YmRpUgQjHfGiro.xKsNhh9VTkpveWYEk4kdcYeiFfrUlZQvsJ.OShMsvHxJWhNzjh9XAtnOjRht0szT.28Swg8H1EParAbYO.fWhLDHeGp.3lpUAz2bFN5UJzkq2j8URXB4cFFJqVSBCi59FCCYeS6yOf3IreNEc6g26yn9hNv890fO1QlOLYFoT+NBscGHy9EEVWczuQ9wRuY7zy838RHoubxxOUOFRCLYooPEVHTGgiSHvCRsTEeEbyiikaCXYzDEYnWKuWH06Xh+Hg8gO9RRcvvU4fzutiBw8eLWHe5iVAoXTc0B4cjiEs1.Iq.LvtmLH5Js6mDMBHFxUBj14.RAzWrARVQX7rDM9X.11OHXq9MzJeNGRd.eA17fJOWPx3Fn.LjxtdVdzYsTkJ4O3zyTwHlDIKKA08jYDoQcDmIcy6yrKrzqWZwrjD8grGTAGZxIMJoXOtW2iHwPr9qPUUY0oJbl3PFq726Rnwu2f.0EKQ46h6V6jlhKWVOOlGFJOQogOFaYy+IyYfh1LEbbfmH.VGJHzEbz1rVmea17SA3oaujSPNaWFUreDgcdMeMFzSB91S1cavIH6GOfFHWDIVPkPvbaxIvfN5tyKZsMI4XAORI6fFYFlejPwc4zd2RumAE5PeYKsmz3U4mbp+vM+7OV6T46+gD9seoVGUYnLJGTCp0vOcXuZCyqYA8WPYDLN6XDvvLb+dgXwnS3HGqa.CHdLxnDxwEXITQ+7i88dYrmoEtW2pIU30Yx3ctIfWHB99FuCFhbYqFAAP+lLvtf0N+v6+IFyCkqpgxUrZAyIoJqp.xmo1idF9DB5gDFIV5TcO2g6+iq8qS6v8QS8v866Ifq+vXLKIhmLxA2hzkdH7rIIOwmj.irR9oCjQ47zqyk8Mm.q29fc.ibh5zBK5EqRW1D5XwDijdL+TGS9G7iLV3e0+HiObEGle5f6eyuCZwTL1h1MJjzfcBIDpFqv3mBkeCv8BEoTGMudONiG0gynd4C5GPDwz1sIw4w9DMnMEBndZFkaT6.RHAmOA9Kq8HHwCGC9IxL5KbmdewEEu9bKMbQxGin+aTTe9+eVTW+acauGFRTgAErfY0ZA0R8H.RXv3CxAgLmSVOTuujbutXJyWs4Og0.ltx8lCX5lx7CxczE6EyeomdDOYt7kUT.6lo927rn0dx8HWC0XefdVkJVxnKTQ7kddR28c.+yj0o7LnSkYPmUmAct6LnS0YPm6MC5b+KTGYynM6I3c0OEABManlE1zrACCYxprdi+BL+pgML
      
      1 Reply Last reply Reply Quote 0
      • d.healeyD
        d.healey
        last edited by d.healey

        Your white keys array doesn't need to contain every single white key. It just needs to contain one octave. Actually I'd do it with black keys instead of white keys because I already have the function on github.

        inline function isBlackKey(n)
        {
            return [1, 3, 6, 8, 10].indexOf(parseInt(n) % 12) != -1;
        }
        

        Then you can just increase your loop from 36 to whatever upper value you like.

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

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

          @d-healey said in Custom FLAT Piano Keyboard 2 Method [ Panel Script By @d.healey & Project File ]:

          inline function isBlackKey(n)
          {
          return [1, 3, 6, 8, 10].indexOf(parseInt(n) % 12) != -1;
          }

          Thank You Sir, Now I'm Confused Again :/
          So Where is Supposed To Add this Up?

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

            @Natan

            Call the function, pass a note number, and it will tell you if it's a black key or not.

            isBlackKey(60); // false
            isBlackKey(61); //  true
            

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

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

              @d-healey no Idea, This Is Pretty Easy For You Sir, But I've Go No Clue On What Notes And Functions Can Do 😕 😖

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

                @Natan

                Instead of if (white.contains(i)) which only works if you put every singe white note in the array, you can use if (isBlackKey(i)) The only difference is this will trigger true on black keys not white keys.

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

                1 Reply Last reply Reply Quote 0
                • NatanN
                  Natan
                  last edited by

                  @d-healey Sir Could you please help to finish The Full range keyboard.
                  What i reported On Other forum, Forces Us To Use A Painted version :/

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

                    @Natan said in Custom FLAT Piano Keyboard 2 Method [ Panel Script By @d.healey & Project File ]:

                    Forces Us To Use A Painted version

                    Isn't the problem only when a user clicks on the keyboard? Or is when they use a MIDI keyboard too?

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

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

                      @d-healey
                      Play with your Computer keyboard Instead of A Midi Controller, You Will Get Shocked.
                      Computer players Something, While the Ui Send Another Notes,
                      If You Don't Use any Hise Midi Keyboard On Your GUI, It Solves,
                      And I believe the Issue is Because of Hise Midi Keyboard, So Having A Painting One Will Help To Get Rid of the issue.

                      Check The Video:
                      https://youtu.be/ir3cx4OqSjg

                      1 Reply Last reply Reply Quote 0
                      • NatanN
                        Natan
                        last edited by

                        You may Ask why using Computer Keyboard, Well not All Kids Out there have access to Midi Controllers, Also On The Go Producers, Do Not Carry A Midi Keyboard, And They use The Computer Midi Keyboard Instead,

                        I Didn't Touch My Midi Controller For Around 2 Years, And What Ever I Made, I Used My Computer Keyboard.

                        1 Reply Last reply Reply Quote 0
                        • NatanN
                          Natan
                          last edited by

                          Just 127 Notes, and The Hanging Issue From This Needs to be Changed, And We are good to Go:

                          HiseSnippet 1456.3oc4X8taaTDDeujbklTRKEUg3iKUP04FWicHMkRHpNwwtDQSiUbZKhRU0l61ydUNu6wcqSpUUkP7Idr30f2h9F.ytqOe24bM0XJfDreH814O67amY1YF21QBWZbrHBYs3gCCoHq22tyPtrWidDFGs6NHqKaeLc3QBRjmGsu.s8vPRbL0CYYM+8UxXs3BH8502aaR.g6RSIgPOVvboOf0mISo1t92xBBZQ7nGx5mQ50puqqf2PDHF.3Yd6pnPh6wjtzGRThMmMx5BM8XRQTGIQRiQVKrsvaXmdhS4F4eLKlcT.UsoFpCbPFxsDAdJDq9F0nGKvqcx8NFgrram5El23Etl8dLO1X5odiOPy.mpQV+g0bmG7pMivyJC7Vv.uqZ2wMhEJS4nv1kr2kKoQ9DHDjEVFYQy88Wvtg.jfKqzmbLsUDrYrFNqWsZY7sqVszFKuzxKoSBp3Q8oQMHAAGAAhXGYz.pgMDmhkX5IvYsqWLdSbSdWFmVwMhBWckK5ArXoiR3Dgp3CAcmac26l8DNgDgaS3zfZvYj.ttTYCQ+PAG13bcC6qazxroRLU1FhHxCDCjfYc7GvckLA2oaI7KUxggk5rOsGSRgi9ovca0x30faXY7cJiuaYbsZOaCifl+1UCvs.LV8EsZUUuJkSBeQD1gAmV0MvL7WiqsJ7uqrh1j3QqzuX9XGs4q.WUIf1XGVobxpVxdr3JdDIohGjlfuwMLT.WviIACnNkvatIXr6AvKV4VTuMz.bK8pD9qNCGyJA5p0qR+jFDSemggU0qhvPd22DXH8KiO+.pqz4oL7MGa2mv7j8.694fOtLFhcEyHg52PYc6AYaOqzF5i9Up+rzqlLkYOwfXZR1bZNiNAMIvjl5.U8fPcHIJlBORLRU4EfkmDK2DvR9DEUn2Hua.y8XpWtv93GDwINXvTkwlWbgAjgOTHUOGwqf0LVesRYcjSDs1DqdUN5dWLH5qt2OJLGHFyUAjtY.RI7mrIV8JcxrDC93.1122e6gMMJ+FNjr.9btyipFbNIiah8IPJ6Fo4Qm8lpUI6AmblZFQzPUoBnVjJiHIpiEbkadetSokd4RKlljXNj8fppPiG0kRI1CGz+HZDDq+L755r5DENSbHkUV6tDdR656qMrBkuKrswIMEFWUiMRDDnNQ0EeB1pFxEyYjhNbMbJCOQ.rNVPnyT9VeWX5Z84ZJ4mQPAeWNSteHcz9zli0Jn4HZTOC3qGs6NfCQ0ubDMPtPZjjofi0NzSfAQLcOWzdGZ7wRQnV1QMZPVumTyc4jdqJOIhAl9h1FuJ5EYmrY33M+zOT+TUsfwD90etdOcIoTJGTGp6HNcbuTj0UrgdM3TBny1lGF1P3MHfHyOAhZrqQLfXStV8p147XlbX1wx9SLVR0BGKoPO+TB2qZ2lIc6ULdmq.7BQv+tw6ng7V1touOz6IErKX256l0I5lMnbYCTtjcGXNFcIVMP9H8d7SHmPw2mxoQJmZs23v2+1U9koc36vod368ckf4OLhviCEw4N3Nz9rCgmMwYI9nXXjR5OdfJJmkdCgpGZArd88ZAWxB0oCQNHRmtrEz8hKykdL+LMkc9WMYjufQtW3egeQv69md+0qTL+zA22xOZYwDL1g0OLf1jeBM.JMqw3GB0h8ICBjITymjumfKB6I3L2rY.GPkQrtcoQYwdgWnsjRn3ZJkqU+.Z.kjMa9Sq+.HKjDA9I5L5KpM89hyKd8w1F3hUuLw+2nB+7++rBu4Gl1cOBjnBSMXCCw0AJr5RAjvgYI.CYaMmp3nYeU0dSkUtmdyuCqQLqo1aMhYsDl+iXi9D2HwycMy9oxkunlBbu45+OYVzdO0dbMjddPPO6pUph5CUDetqqxceKv+TrNqNC57EyfNqMC5b6YPm0mActyLnyWdt5nZFs0.onu4oHPncS8fwVVM4DHSVm0i9CWXWVdB
                          
                          
                          1 Reply Last reply Reply Quote 1
                          • NatanN
                            Natan
                            last edited by

                            @d-healey Sir Could You Please Fix The Stocking Notes
                            I'm Happy With this 48 Buttons :)

                            HiseSnippet 1544.3oc4XstaaaCEVJIZcwcoccnXX+X+fqnqPtU0Sx141xBZRbr6BVSSPb5EfhhBFIZahHSpIQmTih9m8q8hr2i8Zr2h9FrcHokkriSlWPawvFCfs44B424BO7vreL2mjjviMLm+v9QDCyOypYelnSsNXJyXmsMLul0wj9GwwwAAjtbis5GgSRHAFlly9PoLlyOmgZ7tGrENDy7IYjLLdJm5SdDsKUjQc+M9IZXXCb.4PZ2bRWcic74rZ7PdO.OyZ4ZDg8OF2l7XrTrYrLL+j5ATAOto.KHIFlysEOneyN7SYZ4eJMgdTHQNwynIrPZxM3gARDKoZTqCMLX+T6NwvvzZ+LuvrZuvMs1kFPGROya74JFnLMx6OLm4hfmWd34N8vyLG7lSCuaX0zOlFIx3Hw1Us1gIHwsvPHHOrzxZLyucEqZbPBlnTW7wjFwvjgZXujqqCZQW2hqsPgEJnRBJEPZQhqgCCOBBDI1h3dDMaHNkHPjSf0ZmfDz5n5r1TFojeLALcoK5QzDgsT3TgJ0BB512e0UyuBmfiQ6SwL9OMHGCVpTL1lHpw6FwYvD6aMhT2RuFiPqTBQrODlDGv6I.rX2pGyWP4L61EQuQJNBFxM7zNTAA1nWnIke.tfxNnpfivAsrCZUGOOmyJkWYGupNdK43sri2pNk8bJWYBhUtpS4kbJuhS4Ucp34TohSkEmfXUVxoxJNUccp54TshS0Ecpt7.wd4Z5u0e1V4B2D7htOuQixKK+q3HRzhGirofo4tFhh9AT0Ufuu28T1e51k8KZKjsxWTBBFBv0kXSKNhrxgnCMoT.VfKE.Ixn6bGMEH57TbXOhcQz5qCa1C.3kHiXxSu1tutQiMUihnu+LbzCcLL+VoMPH9wfyCGP7EXV6Ph8Knn6NbSeFMPzA1zuCLNGY7ZBLVMi5ORns6.IhuzwM0UIGuM6mjvDx6MatrZLIa1UMxigOxVr5WuU9Qg2dNGe1k2KgjdbO67i5DbZdQ1wH3ZAHSKBGmPfpHZoJ8Z.Miiu6B.ez7TYlmVd+Pp+wjfQx5FVwHI0eCakCRWRJJD2+wbAwt5Jn6gTLVpZw7V5XAu0QxxVqUHWXebPzUZ2OIZDPLjqDHsyAjhnuYcjrL13IMZ7w.rsWqVa0utV4yYQFOQ3br4AkKufby0QsvPF7ZiGnyaoJUxuvoqohQLIRV1DJVKSLRi5HNS5l2iYWrvaJL+YxUzq0tvsOvEzRaSJ8i608HRLDx+VzRpruwz6LQkyHQdvT.MNXZ0RgFIze+CHseb5Qj7dpXdXnb8ktnwXK6sYxbFnnMSANG3vDf7gBBWxOZWDVmeWD4axwWesYNA4rcXTwdQD140agwf6Zge8jc1F7Ex1MFPCjKhDKnRHXtM4DnONcyGyasMI4XAORI6fKnMLuhPwcgzVSvLRnAEZ.45Vi3PMdcVGe2di9Cm763MNUVvXHgneYiNpZYfKv7qABPgI9oC6FQtvvcgnLBFmsQIncMdPuPrXzd3jMtNfADRFoYIYCQrDpne9Fa+fzX2zB2a.9OgemIi2Yl.dgf3GZ7NnM4Erp2pEbqUFXmypwy+v2SbdnbMMTtpUSnoOUMXEP9R0bzyvmPPOjvHwRmp2497k+35+5z97kno94K6A2meB4vXLKIhmLxB2jzkdHbxIIOwmj.MkS94CjQ47zqwkWxNAVu6AM.ibh5zDK5EqRW1DtdiIFI8X1oNl7O3YTy8u5mQ8wq3vrSGb+ado27oXrIsaTHoN6DRHTPVgwu.p.2B2KTjRcz75c4LdTGNi5mOne.QDSa2lDmG6Szf1THf5oYTt4FGPBI37Iv2diGAId3XvOQtj9Buo2WbQwquxRCWj7vH5+FE0m8+mE00Obu8tXHQEZRvBZdqITK0m.HgAcSH6ExbFY8P8bW4bcwTVfZxeBiAL8jyMGvzKk4Gk8nK1Ol+JecWdxb4OUQAral5ej07V6Jmi7LTc9A5Y4Vx0nKTQ7U99R288A+yj0o7kPmJWBcpdIzYwKgNKcIzY4KgNqbg5HuLZydBdW8QQfv90UsCaZVmggLYUVuweAbu0rZI
                            
                            1 Reply Last reply Reply Quote 0
                            • NatanN
                              Natan
                              last edited by

                              Also, You Can't Make Chords On Painted Version, Only One Note Shows Up On The Graphics

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post

                              23

                              Online

                              1.7k

                              Users

                              11.8k

                              Topics

                              102.5k

                              Posts