HISE Logo Forum
    • Categories
    • Register
    • Login

    Keyboard(s) Paint Routine Inline Function

    Scheduled Pinned Locked Moved General Questions
    16 Posts 3 Posters 710 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.
    • ulrikU
      ulrik @crd
      last edited by

      @crd said in Keyboard(s) Paint Routine Inline Function:

      Is it possible to play one particular sampler in a callback? Synth.playNote plays all of the samplers...

      Yes if you have the samplers filtering midi channels and use one of these to be able to set the channel to send

      Synth.playNoteWithStartOffset(int channel, int number, int velocity, int offset)
      
      or
      
      Synth.addNoteOn(int channel, int noteNumber, int velocity, int timeStampSamples)
      

      Hise Develop branch
      MacOs 15.3.1, Xcode 16.2
      http://musikboden.se

      1 Reply Last reply Reply Quote 0
      • ulrikU
        ulrik @crd
        last edited by

        @crd I took your project, added 2 generators instead of samplers, added a channel filter on each of them.
        Added an argument on your "playNote(n, ch)" function

        Try it an see if you can get any use of it

        HiseSnippet 2900.3oc6b0uaaajDmJ1LMRMe0hhC8eNf8LJJjS2JKR8cRChcbrS8kHKAKmzqnnHfgbkDgoH4QR4D2C4c3dTtGg9HbOJ4M3tY2kerjlVVwIJIsQF0oZmYmY+syN6Lytqf664nS78c7jJT7vSbIREtp7fSrCFu8XMSao8dfTguQ9HxIO2Qyy3YSLMLia3BcHvyYZfoMQ59m3p46SLjJTXkGRkrPwUkX+756ceMKMacRBIIom5XpSdr4DyfDp827QlVV6pYPNzbhPuqu4d5N1a6X4LEP4JxUkb0zORaDYeMZ2tjrTgKuigYfi2f.s.huTgUuuiwICF67Bad+epou4ysHzFJRC.EwIuqikAEwTpRaO1zxnej0vWRpvU5mXaVgaa9J4tfEHldhM5lLFnDIDsGEtTZ3sRJ3oHBupBvKGHUP.RqxgzWHOP2yzMHgCEOet7d1ADugZ5oWZ38U5RS+Z4scfdXGTYh1Qjc8fFwRTVoZ0pXD8eW+NkXdCULHCIdaqYY8bv16WNvaJA3swFc25Q6f1a+C6g1Bs6VaeXuC9YfZvXhGAY5izP1NADjiMRy1H7yCGhzcl35XCiNzBELF5nOCXkfEZ+.zwZdnAZSbsHdJn6h3HXDIHjV40hXtFfgSIh5rDQkJhnLfy6OocL4gDahmFrHkZ.Yq.rVfBfdhncEkz2LieVco9Fnqr.ibLXd1yvGTwN1if9WQ2i.9OT+rGa5GTl18nNUYHryo722oCkXIQ03Za8nvMrflhVy0LL5qYSrJul.+0vHXUmtjKPrhOIn7ZuvzHXLvud0bYOlXNZb.vuYtrAuFmWD66.cassrrPIDROwEDW47frBGyJYgkx4.akyA2JyMvKVT.51SmzaHnC5hlhRGXZkwVzmFx7.dHyxCmZqGX5XWdz5k9WkJRUvKFaB6PtK5WphUw0wMvsvcvJJXEUrRcrRSrRKrRGrpBVsFVsNVsIVsMVsCtlBtVMbsF3ZMw0ZiqWEWWAWuFtdCb8V35swMphanhaTC2nAtQKbiN3lUwMUwMqia1.2rEtYGbKEbKUbq53VMwsZga0A2VA2tFtccb6l31sws6f6nf6TC2oAtSSbm1XvxC+B.rZM32Fvu..qBzU.5TTq.zU.5TfCHWQEnqBzAvqnBzUa8qLiXwgNdnxlvbu5cPlne.on1F9v28cqWpHXbJZNDUlYcp.l6.vL5W1bczcA6L5a+13fEUL82Ghwr+zIOm30Uy0kXD1spfdJVbDcQfmIoL++4WgoU1JIwxGBZ8VNPJrAJdiIrw+oZVSITt+s6hfsnn6gxCFZ+1TOx5namKSWS6ihg3BP+O2B7moCPIpMhFL4.hdP4ewDcKV3Y5v7SzMSkWeiXmb1VuYvMh0Ox1kUd8ekN.upXoWs9o2Xz0YpOIZiUxNC1zLd2AT4A3e3p44SfbUblUdIZirf..cLLniIDBw2whTw0C18UFzBelRWo45vvSaTneFcbrz7CdDarhTL2DyVAnRQABXrC6GcAmJZQ+.GWpWQ4HFz9Wz0R6DFUPJHTEi3qJQ+OQHL14Xh2hBCrgSbzzsL0OhXPkJO3I10IzUlm3R6ZrtCMgP+XfyOBbgzYD8Hr5Co.9U7rRYiutLX3BMXn56qfgpKCF9tKXnxmTQCU+3NZn5hKZ3F2pDB9Y6ofZlfhV8Yzrgi0hQu7wN5XzIr+0muQiddWVOJcqMJUxz1hdJhHuCD+3A8OLRWkC0CnjTZf5.QUhkitlEBJQFrl4Umch3.fSD3T03x.DatDpAZncOGWhWfIwGNY4j+9fd6GpN9PiPgkleaZo43HZgkieanb7XZ9vgj1ytuGAzJvIgQlZyuc1Zyi6HwVCNbM6XSDMOanmC0nANnLoqEE2XCX0A1ySPuHxNAGXkE7yL.Y3P7gyo9BGuipvjgawpXnEnUgZDDLsBFivdMqzbztEYOBk5S67darQtGhJ1BUbV4E4a3mcBqTKcmW5wKPZECMui7f.ImQhkjjqyS104Dr7TrfsaloJW.ylDcGkG9L.Qb9zEAJRTNujlEY5ZHesfuXb.jb1yO6D3Ia7eqRjWLL2Wpr17sAmaNyyHoIW5yH0ctGUflMk8aJvDk+dAhF93lZTEximah7zXTHU9oykS6ZtYyOU5bQu.tOgGIXpmcn2.ju+NotPtjDzfs3T4rWK4ygWGGNtLa18s9NPQJEoUf.pZtKX3zEaDadsw5iYkjFuyN1hYiCu7SnjBZe6YWVeLFAjg7MPP10uyFaD1CA0ALWmVkzoGy3EIa1.FuRlJbhcT3jvpG45mdwy8FN79mrCWfbEjelh7lFrKVk5S7J.Ww3wwNbVcFy+tDeesQD5PjD6t75Xj.iH7vFbw6DQrfwRnri4vguwCJeRLmCBsTNOGK5EmyFmLrouOS9bBErrMabwfiJ.p3NJUX0zuDh7Y+RHhOTiNuxRgN5XumsYPOWh8Y87MRgkiBe5I68.HIJ84SBokTdJP6AjiM0I7GSon7CH9GA9YfV2N5MJjJ7YALtWK5oVn0GKYZPoHXNkdILgJPewpSh9.qJWPsW9eWf+VV7RboT9gvWBKccrREtgbp5XoyiyGGWWDGJY.hw6QfbU4j3IKH6woeBraJ20wXpE8UTDeQN5yPFx.bNS8LXzm5x12L3DwmoL6yzs578Lcy9UDmW39Ex8MCzGmOduTN3EbmWz3M7QOul7NCGBkTk.1Uk28eLyW37cNTtNGJetL8kyXwzY.4uHm2qxMiGi9+NuOFs6b+Xz8zCfg+POMaeWG+TJd.Yh4gvVFeQhOwmrqG4ed.cUVj91NzJ.yg0qu2tvjLWYFnAkZvbW1BJmwNHk6wJy8ZhXr1z6ZD5eNOG8pKpWHeNwZh+y49Z4gv6Fx.hrgnU6ZZEP7Bch5t2C1CEx.w4j1IJqsbk4CeyJqDMACKWI7IdzzqGFMcfkoA.MZ3zaHqyQEOOtDKcp3hrzbnjRxSbI.x8BtXxeEp76XaDIsbgaJI8dLN76lutDEiv3.SZks6XeLwBpBfgwuDR6OTapUPD0zq9ccrcbG6XapKZ5NfD3YNZDwSD64Ng1JH.RckP4q17.hEQSLVw2r4ig83ZdfchbAsEJuwe0Qxc85qk4vEQi6g9yQ9yU9zL+I+RGG0UCbTo0hAAQF.oszIgg5nEfW3Rzf.71UiJSa.w1f03+A+DxTg1tPHSkHlhS2+Je59kxCBfSVNAF4vCbxlykjiN9YpJatfeWwl+zy88fczZFCL+Mgt86ad+ovZhWZp+mMYCU1TotaFh7CHtvIlSuEErxG7POmotYk5JaxbHg5BzOBLEhywdPILicRkrdaOGe+gvzgoqT0Kzep2HpsRLxywDO+zzf0VwU0U3EZP8mL0ib.R5MaTpdnFym5Rx71JYZqlocsLsqmociLsalocqj1bCZWMWpmA8KvWlyE9YyWXNPAridHzy6aNJV4bJhaRhMyLnH7MDLm.lW9ilhadahKtL86xzuKS+9g93qyxzc8vDiHdI5ebuNeUYVnbDMy6GJnlorlqkaYMW9sprlPlphRplgYMQIqkgYcQIqmgYCQIaDWJkdD7gYd3mY2aYgU3OgMqdIKH2uk31HenPFpY3xxc6seOIoKhjGzqW2yVxUxH4O+6QRVTdv1+Xuc5O3BeWMpKuqlk2Uya6c0n9Gh6pYyk2UyBoXwZKKVbYwhKuqlExc0n9mp6p4JadF2Uyqu2Gx6povx6p4Oh2US0k2UCkp5xzuKS+t7tZVdWMevJqQ3dSJ7le6GPFs2Knbhltmyyz4Ggi8mW.FE.k1r+LFTTtKsMRI9naxUqTUh9WbgmoqS2H78fENeYTu.xT6BHS8KfLMt.xz7BHSqKfLsmoLzxD1ZZfyDdPRfP+c3NVE1I4xwj9+fjAiQH
        

        Hise Develop branch
        MacOs 15.3.1, Xcode 16.2
        http://musikboden.se

        d.healeyD C 3 Replies Last reply Reply Quote 0
        • d.healeyD
          d.healey @ulrik
          last edited by

          That video is out of date now, you should probably be using LAF for this.

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

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

            @d-healey Is it possible using LAF to display separate keyboards with separate sample map ranges?

            I used the paint routine to get around using Engine.SetKeyColour. .isNoteNumberMapped allows for showing more than one sample map at a time.

            1 Reply Last reply Reply Quote 0
            • C
              crd @ulrik
              last edited by

              @ulrik hm.. I get the idea. I'll see what I can do with it. I'm not sure how routing the midi will work with MPE enabled instruments. Thanks !

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

                @crd I think you can use isNoteNumberMapped within laf

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

                C 2 Replies Last reply Reply Quote 0
                • C
                  crd @d.healey
                  last edited by

                  @d-healey Got it. Thanks. I will give it a go.

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

                    @d-healey What is the laf function to call? draw___?

                    Sorry -- I see: "drawWhiteNote", "drawBlackNote"

                    1 Reply Last reply Reply Quote 1
                    • C
                      crd
                      last edited by

                      It seems like paint routines are still the only way to have multiple keyboards with separate sample map ranges shown. Unless there is some way to assign "Engine.setKeyColour" to a specific floating tile LaF keyboard that I am missing.

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

                        Unfortunately it seems the parentName property of the notes isn't populated - @Christoph-Hart

                        If it was you could query which floating tile the key belonged to and colour it differently.

                        At the moment the only other way I can think to differentiate between them is by setting the key width differently for each one.

                        HiseSnippet 1158.3oc6VszaaaDDdoroQEaRaCPO0SDF8fLfp.kphsSBLhs0CWi3GBVNNAnoHXE4RosZ0trKWZGg.CDzeY8mTu2CtyxGlT1JtwBHEn.UGr47ZmuY42Lb5IEtjvPgDYT9zoADjwCL6OkqF0ZDlxQ62FY7UliISGHvROEITg1cZ.NLj3gLLVZOsOFkWFE+6Oe9tXFl6RxUgPmIntjCnSnpbs819ETFqK1ibJcRAuat89tBdKASDA3YISGT.1cLdH4Hr1sRlHiU53QUBYeEF.C3ytBuo8GItfm3+YzP5.FQKTG0GNnD0nVinLudY0ZHBYrbu7JeojJ+aMOj5QuVe9Mv2DavNOhh2AFktKHU+d.IiBPZ4DH8Hy9tRZfJ2hFOeo49bEQ5igq5hPIwWTo+xvrk.7fqpMAOlzUBBWGQk0cbpZC+YsmYYAW2gJaF12dK6N7gTNolqj.ExdLw.LK4.OPHFuC2qKgvpnCBbuljLjFBmX2HtqhJ3UV0Shu3UinJxQBEY0p19YVFV0VL3WWy58Vko91UfmqwAWNJZx.hzdqs.rrlUYvZYsILj9etwun0WuYMG6maOrVHQkPJpj7uPH8dqY+z4ZZ.Kh.nr7kVkIrPRxIOOGwbE82hHWnwbZ.Vfi9.07DQD2i3cBwUg4CYjJYHqpcCv0KW6YYUmsfqq2i4UhKPqKsruoIe+4ZS+FRJXLhbtl0cFx6JvJ73Kvp1mi0Ubli.0YV93JeZ7Q2DBSAGE784T0wAjT4tBlmlmoe91rWTJiCd5k62FqvZBcpNvu.hTQ0vwnM4bXhPB8trYaR3XkH.ZtaIlDH35SvXEUr0GlQ9wbBCQ8zihB3rWjNMpN5cEGzLMW3629BpmZz0J9iee6QD5vQ4if9va1Vitqy3CToS.RxXWl.qn7gmRgKJch+Zyhp93YFgtUlSuCRJXKyLziFLLaPW4U777tR6NvDmjq8pqt56lUaiT0wNqHuSk6bV9iu5K8FCy2aYauJjsWoAzpO0t9iqp0zlFFvvSOFX1mm1CBF8wPqRr8CDW.AApZzLV9mnIh0arQrbqnPkXxdRbvHpa3Lg1l3iiXpcBBHXo96.fUkLJw3tLXTNbTm.2hBvfSs0eR7uM2zYim3rQ8XuNULDZ2NT3Ql4j0iegwwbfGngRrtWFRNC5OExBX45rAF6xvp9porabR85j8F3l5gFFoJOKMxz2g6UH2qacI7UII7Fs.84F7Rz8lK23iwn9v3Oyb4F+mjK27+4x+qvka.KqcqkRf0gDdQ.jlcGI8xfoFfOTMyhI5kO3gT0zhKKdOVbx4NWb5SEhOxrGU4NZ9XrzbvH7IrOGXLccyGZ1w2GdqmCvkM695Ec2x+gzCazn63ODqjTng2D5V5CcatjT5.b3lFkzeFOQ1QKquA5S3dwB5V0Ti00xFoFqmYDMA6JEu0MY8D8BseQrF.S7382KadnV1tNJdkEHNSmZNnIPCwacc0k+O.yNmeLMVfX9wEHllKPLOdAhY8EHlMVfX17NiQOKZmHXFXR6.nnWm3gtFFc3XfYEyBQ+MvlYZ9D
                        

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

                        1 Reply Last reply Reply Quote 1
                        • C
                          crd @ulrik
                          last edited by

                          @ulrik

                          Is there a way to trigger a note in a specific sampler with code directly? That way works but breaks MPE...

                          ulrikU 1 Reply Last reply Reply Quote 0
                          • ulrikU
                            ulrik @crd
                            last edited by

                            @crd Sorry I don't know how to do that

                            Hise Develop branch
                            MacOs 15.3.1, Xcode 16.2
                            http://musikboden.se

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

                              When the keyboard's useFlatStyle property is set to true the keyboard has a transparent background. However I notice that there is a line at the bottom and a shadow at the top. How can these be removed?

                              fec93afb-afeb-4a78-a698-8c93ba53756f-image.png

                              HiseSnippet 1044.3ocsV01aaaCDlxIpH1qcaEX+.DxmbA7Lj8xxKaXXN9sLiFmXT6lNLTrNZIZINSSJPQkTih.Lr8mZeb+j1+fsiRVVRINACFq5CA9dt6He3wm6XFIENjvPgDYTdxx.Bx3oliWxU9c7wTNZPWjwmZNmrbp.KcmPBUn1KCvggDWjgwNmoiwn7tn3u+96aiYXtCICBgtRPcHmSWPUYniZ8RJi0G6RlPWjK5CZMvQv6HXhHfO6XZiBvNywdjKv5vJYhLdROWpRHGqvJRHxX21B2ki8E2vSh+JZHcJinMZfFCKTBbeAyUyXMJpiOk4NJ8bGhfUYTVUXmjpvWXNj5RWimUM97XGVYYjudXTpH81o.8Zjmd14n2FnjQNJsaBkdt4XGIMPk4QymOwb.WQjyvPYOOURhEU5OML6HfH3p5KvyI8kfw5LpdnscMK3Ou3aqTAJ8gJKFdl02Y0i6Q4j5NRBbPNiIlhYIK34Bw7S4t8IDVUcRP30kDOZHrh8i3NJpfWceWI9lWtRzzFtB8jhHt690rlkFhWMKwze8EU9Pkae7k4M9TE4BghrUY2lA69ilcJpkfqi6RdUsixUtsh0ccMa1F8oKuRAiQjazsVhKerDqxiVLkHqYcMlEQVGHbuWTLY9vho7Zcmja6bAJ3C3T0kAD9C0AfVIQfe85AcwJrVAtBChKfHUTMEL5RtFZmSzikM6RBmqDAPmYGwh.AWuBF6oh89rT0JlSXHJnI2yL92MPuO+7gk4a+gq5Eos+kex+.eZ7Lzl4gug5p7Wm8u7Gs7ITO+rwLshZgxwqmpV0Xmvq9LAVQ4dSnPITSuOyLOzCyxet0pBSRUnhYpPGM0Ki6oIV7Dcezl4gUj2qtevw2Gkdqg4GpXYsOrauQev2+arNvttcMMVWZX.Cu7RGE9ZxEwpIv8LLKjD6+bgtaDfNI17GnIVMZdTrcmnPkXwYRbfO0IrPlcIyvQL0oAADrTOZG7pjQINiatfk5UPUS.Nrqe3IweGer8QmXeTi3nlH77XjgBWRgUVOEElpxAEglJwXuNjbEwAj743x5cCb1mgUiUKYEXwvQ8RuAJtAi5AcNRU1lzLEuG2M2VeXkauiV5u986pk9sepE59Sjg2BDtQ.oJ9.g9UwUNfF8BSk0Sd4gT0x7uZ9+1qF+Wo3yMGQUN9alik1.GgwAeL33p2ZelYuYyf68LBtqY+e7iyCqnWIhz83CwJIEZwMg1kwPCmCYkhPOn0njdjXhss1VWAFS3twF54Oqb1PaarxYiTmnEXGo3cNIi20uluWLBvId7+HSYygZaqFn3Q9PdlPqLZAzR7NGG8w+KgozaNmlaQNe0VjyAaQNe8VjygaQNGsE4b7ilidZzoQvTvj1A.XTu34tFF83XPYEqBQ+qzA2fh
                              

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

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

                                @d-healey setting "DefaultAppearance" to false gets rid of the lower line. I'm not sure if that helps...

                                I ended up using a paint routine instead of the floating tile approach.

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

                                  @crd said in Keyboard(s) Paint Routine Inline Function:

                                  setting "DefaultAppearance" to false gets rid of the lower line. I'm not sure if that helps...

                                  Still shows up here, just moves down a bit.

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

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

                                  29

                                  Online

                                  1.7k

                                  Users

                                  11.7k

                                  Topics

                                  102.3k

                                  Posts