Keyboard(s) Paint Routine Inline Function
-
@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)" functionTry 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
-
That video is out of date now, you should probably be using LAF for this.
-
@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.
-
@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 !
-
@crd I think you can use isNoteNumberMapped within laf
-
@d-healey Got it. Thanks. I will give it a go.
-
@d-healey
What is the laf function to call? draw___?Sorry -- I see: "drawWhiteNote", "drawBlackNote"
-
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.
-
Unfortunately it seems the
parentName
property of the notes isn't populated - @Christoph-HartIf 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
-
Is there a way to trigger a note in a specific sampler with code directly? That way works but breaks MPE...
-
@crd Sorry I don't know how to do that
-
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?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
-
@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.
-
@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.